windmill-components 1.511.0 → 1.522.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package/components/AppConnectInner.svelte.d.ts +1 -1
- package/package/components/ArgInput.svelte +56 -18
- package/package/components/ArgInput.svelte.d.ts +2 -10
- package/package/components/AssignableTagsInner.svelte +5 -0
- package/package/components/AuthSettings.svelte +4 -2
- package/package/components/AuthSettings.svelte.d.ts +1 -0
- package/package/components/DBManagerDrawer.svelte +154 -151
- package/package/components/DBManagerDrawer.svelte.d.ts +2 -2
- package/package/components/DBTable.svelte +3 -3
- package/package/components/DBTable.svelte.d.ts +1 -0
- package/package/components/DBTableEditor.svelte +7 -7
- package/package/components/DBTableEditor.svelte.d.ts +1 -1
- package/package/components/DeployWorkspace.svelte +1 -1
- package/package/components/DisplayResult.svelte +34 -8
- package/package/components/DisplayResult.svelte.d.ts +4 -1
- package/package/components/DynSelect.svelte +58 -34
- package/package/components/DynSelect.svelte.d.ts +3 -11
- package/package/components/EditableSchemaForm.svelte +126 -6
- package/package/components/EditableSchemaForm.svelte.d.ts +5 -1
- package/package/components/Editor.svelte +1 -1
- package/package/components/EditorBar.svelte +82 -4
- package/package/components/ErrorOrRecoveryHandler.svelte +76 -8
- package/package/components/ErrorOrRecoveryHandler.svelte.d.ts +2 -1
- package/package/components/ExploreAssetButton.svelte +14 -4
- package/package/components/ExploreAssetButton.svelte.d.ts +1 -0
- package/package/components/FlowJobResult.svelte +3 -3
- package/package/components/FlowJobResult.svelte.d.ts +1 -0
- package/package/components/FlowPreviewContent.svelte +9 -0
- package/package/components/FlowPreviewContent.svelte.d.ts +3 -0
- package/package/components/FlowPreviewResult.svelte +4 -1
- package/package/components/FlowPreviewResult.svelte.d.ts +1 -0
- package/package/components/FlowStatusViewer.svelte +2 -1
- package/package/components/FlowStatusViewer.svelte.d.ts +3 -0
- package/package/components/FlowStatusViewerInner.svelte +23 -3
- package/package/components/FlowStatusViewerInner.svelte.d.ts +10 -1
- package/package/components/FolderEditor.svelte +1 -1
- package/package/components/GitDiffPreview.svelte +14 -18
- package/package/components/GitDiffPreview.svelte.d.ts +2 -8
- package/package/components/GitHubAppIntegration.svelte +3 -1
- package/package/components/IdEditorInput.svelte +25 -22
- package/package/components/IdEditorInput.svelte.d.ts +11 -23
- package/package/components/InstanceSetting.svelte +7 -2
- package/package/components/InstanceSettings.svelte +1 -0
- package/package/components/JobLoader.svelte +48 -5
- package/package/components/JobLoader.svelte.d.ts +7 -2
- package/package/components/Login.svelte +8 -2
- package/package/components/MemoryFootprintViewer.svelte +1 -1
- package/package/components/ModulePreviewResultViewer.svelte +2 -2
- package/package/components/MoveDrawer.svelte.d.ts +2 -2
- package/package/components/NextcloudSetting.svelte +84 -0
- package/package/components/NextcloudSetting.svelte.d.ts +7 -0
- package/package/components/ObjectResourceInput.svelte +3 -2
- package/package/components/ObjectResourceInput.svelte.d.ts +1 -0
- package/package/components/ParqetCsvTableRenderer.svelte +1 -1
- package/package/components/ResourceEditor.svelte +1 -1
- package/package/components/ResourcePicker.svelte +8 -1
- package/package/components/ResourcePicker.svelte.d.ts +1 -0
- package/package/components/ResultStreamDisplay.svelte +5 -0
- package/package/components/ResultStreamDisplay.svelte.d.ts +5 -0
- package/package/components/RunForm.svelte +9 -1
- package/package/components/SchemaForm.svelte +2 -2
- package/package/components/SchemaForm.svelte.d.ts +2 -10
- package/package/components/ScriptBuilder.svelte +13 -8
- package/package/components/ScriptBuilder.svelte.d.ts +1 -1
- package/package/components/ScriptEditor.svelte.d.ts +1 -1
- package/package/components/ScriptWrapper.svelte +1 -1
- package/package/components/ShareModal.svelte.d.ts +1 -1
- package/package/components/SimpleAgTable.svelte +2 -0
- package/package/components/SimpleAgTable.svelte.d.ts +2 -0
- package/package/components/SqlRepl.svelte +21 -7
- package/package/components/SqlRepl.svelte.d.ts +2 -2
- package/package/components/StringTypeNarrowing.svelte.d.ts +1 -1
- package/package/components/WorkerTagSelect.svelte +70 -1
- package/package/components/apps/components/display/AppDisplayComponent.svelte +13 -1
- package/package/components/apps/components/display/AppText.svelte +2 -2
- package/package/components/apps/components/display/dbtable/AppDbExplorer.svelte +8 -1
- package/package/components/apps/components/display/dbtable/InsertRow.svelte +5 -4
- package/package/components/apps/components/display/dbtable/queries/count.js +11 -1
- package/package/components/apps/components/display/dbtable/queries/createTable.d.ts +1 -1
- package/package/components/apps/components/display/dbtable/queries/createTable.js +3 -3
- package/package/components/apps/components/display/dbtable/queries/delete.js +7 -0
- package/package/components/apps/components/display/dbtable/queries/insert.js +2 -0
- package/package/components/apps/components/display/dbtable/queries/select.js +14 -0
- package/package/components/apps/components/display/dbtable/queries/update.js +7 -0
- package/package/components/apps/components/display/dbtable/utils.d.ts +6 -5
- package/package/components/apps/components/display/dbtable/utils.js +52 -28
- package/package/components/apps/components/display/table/AppAggridExplorerTable.svelte +1 -1
- package/package/components/apps/components/display/table/AppAggridInfiniteTable.svelte +1 -0
- package/package/components/apps/components/display/table/AppAggridInfiniteTable.svelte.d.ts +1 -0
- package/package/components/apps/components/display/table/AppAggridTable.svelte +5 -4
- package/package/components/apps/components/display/table/AppAggridTable.svelte.d.ts +1 -0
- package/package/components/apps/components/display/table/utils.js +7 -4
- package/package/components/apps/components/helpers/HiddenComponent.svelte +2 -2
- package/package/components/apps/components/helpers/RunnableComponent.svelte +4 -1
- package/package/components/apps/components/helpers/RunnableComponent.svelte.d.ts +2 -1
- package/package/components/apps/components/inputs/AppS3FileInput.svelte +2 -2
- package/package/components/apps/components/layout/AppDecisionTree.svelte +1 -1
- package/package/components/apps/components/layout/AppStepper.svelte +1 -1
- package/package/components/apps/components/layout/AppTabs.svelte +1 -1
- package/package/components/apps/editor/AppEditorHeader.svelte +13 -2
- package/package/components/apps/editor/GridViewer.svelte +1 -0
- package/package/components/apps/editor/RunnableJobPanelInner.svelte +2 -1
- package/package/components/apps/editor/contextPanel/components/IdEditor.svelte +7 -7
- package/package/components/apps/editor/contextPanel/components/IdEditor.svelte.d.ts +7 -19
- package/package/components/apps/editor/contextPanel/components/OutputHeader.svelte +8 -12
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte.d.ts +1 -1
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditorDrawer.svelte.d.ts +1 -1
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte.d.ts +1 -1
- package/package/components/apps/editor/settingsPanel/DecisionTreeGraphEditor.svelte +3 -3
- package/package/components/apps/editor/settingsPanel/decisionTree/DecisionTreePreview.svelte +1 -3
- package/package/components/assets/AssetsDropdownButton.svelte +1 -1
- package/package/components/assets/JobAssetsViewer.svelte +2 -2
- package/package/components/assets/lib.js +4 -0
- package/package/components/auditLogs/AuditLogsFilters.svelte +7 -9
- package/package/components/common/button/Button.svelte +4 -3
- package/package/components/common/button/Button.svelte.d.ts +1 -0
- package/package/components/common/confirmationModal/ConfirmationModal.svelte +6 -5
- package/package/components/common/confirmationModal/ConfirmationModal.svelte.d.ts +6 -11
- package/package/components/common/confirmationModal/asyncConfirmationModal.svelte.d.ts +26 -0
- package/package/components/common/confirmationModal/asyncConfirmationModal.svelte.js +50 -0
- package/package/components/common/modal/Modal.svelte +2 -5
- package/package/components/common/tabs/TabsV2.svelte +2 -1
- package/package/components/common/tabs/TabsV2.svelte.d.ts +1 -0
- package/package/components/copilot/chat/AIChatManager.svelte.js +61 -7
- package/package/components/copilot/chat/ContextTextarea.svelte +1 -1
- package/package/components/copilot/chat/script/core.js +28 -29
- package/package/components/copilot/chat/shared.d.ts +1 -1
- package/package/components/copilot/chat/shared.js +8 -2
- package/package/components/custom_ui.d.ts +3 -0
- package/package/components/dbOps.d.ts +20 -8
- package/package/components/dbOps.js +85 -40
- package/package/components/details/DetailPageHeader.svelte +0 -2
- package/package/components/flows/content/FlowInput.svelte +5 -0
- package/package/components/flows/content/FlowModuleComponent.svelte +1 -0
- package/package/components/flows/content/FlowModuleScript.svelte +0 -1
- package/package/components/flows/idUtils.js +2 -1
- package/package/components/flows/map/FlowModuleSchemaItem.svelte +3 -3
- package/package/components/flows/map/FlowModuleSchemaMap.svelte +5 -0
- package/package/components/flows/map/InsertModuleButton.svelte +4 -1
- package/package/components/flows/propPicker/OutputBadge.svelte +5 -1
- package/package/components/flows/propPicker/OutputPickerInner.svelte +9 -5
- package/package/components/flows/propPicker/OutputPickerInner.svelte.d.ts +6 -2
- package/package/components/flows/propPicker/StepHistory.svelte +4 -1
- package/package/components/git_sync/DetectionFlow.svelte +202 -0
- package/package/components/git_sync/DetectionFlow.svelte.d.ts +6 -0
- package/package/components/git_sync/GitSyncContext.svelte.d.ts +82 -0
- package/package/components/git_sync/GitSyncContext.svelte.js +461 -0
- package/package/components/git_sync/GitSyncModalManager.svelte +99 -0
- package/package/components/git_sync/GitSyncModalManager.svelte.d.ts +18 -0
- package/package/components/git_sync/GitSyncRepositoryCard.svelte +339 -0
- package/package/components/git_sync/GitSyncRepositoryCard.svelte.d.ts +6 -0
- package/package/components/git_sync/GitSyncRepositoryList.svelte +17 -0
- package/package/components/git_sync/GitSyncRepositoryList.svelte.d.ts +18 -0
- package/package/components/git_sync/GitSyncSection.svelte +89 -0
- package/package/components/git_sync/GitSyncSection.svelte.d.ts +3 -0
- package/package/components/git_sync/GitSyncSuccessModal.svelte +58 -0
- package/package/components/git_sync/GitSyncSuccessModal.svelte.d.ts +7 -0
- package/package/components/git_sync/PullWorkspaceModal.svelte +575 -0
- package/package/components/git_sync/PullWorkspaceModal.svelte.d.ts +15 -0
- package/package/components/git_sync/PushWorkspaceModal.svelte +320 -0
- package/package/components/git_sync/PushWorkspaceModal.svelte.d.ts +12 -0
- package/package/components/graph/FlowGraphV2.svelte +5 -1
- package/package/components/graph/graphBuilder.svelte.js +1 -1
- package/package/components/graph/renderers/nodes/AssetNode.svelte +4 -4
- package/package/components/icons/AssetDucklakeIcon.svelte +28 -0
- package/package/components/icons/AssetDucklakeIcon.svelte.d.ts +9 -0
- package/package/components/icons/AssetGenericIcon.svelte +3 -0
- package/package/components/icons/DucklakeIcon.svelte +18 -0
- package/package/components/icons/DucklakeIcon.svelte.d.ts +6 -0
- package/package/components/instanceSettings.js +11 -3
- package/package/components/runs/JobPreview.svelte +2 -2
- package/package/components/runs/NoWorkerWithTagWarning.svelte +3 -3
- package/package/components/runs/RunsFilter.svelte.d.ts +1 -1
- package/package/components/schema/FlowPropertyEditor.svelte +3 -2
- package/package/components/schema/FlowPropertyEditor.svelte.d.ts +1 -1
- package/package/components/schema/PropertyEditor.svelte +0 -2
- package/package/components/schema/PropertyEditor.svelte.d.ts +1 -1
- package/package/components/schema/SchemaFormDND.svelte +2 -1
- package/package/components/schema/SchemaFormDND.svelte.d.ts +2 -0
- package/package/components/scriptEditor/LogPanel.svelte +5 -3
- package/package/components/scriptEditor/LogPanel.svelte.d.ts +5 -1
- package/package/components/select/Select.svelte +7 -4
- package/package/components/select/Select.svelte.d.ts +5 -0
- package/package/components/select/SelectDropdown.svelte +2 -1
- package/package/components/select/SelectDropdown.svelte.d.ts +3 -0
- package/package/components/sidebar/changelogs.js +5 -0
- package/package/components/table/AutoDataTable.svelte +6 -4
- package/package/components/table/AutoDataTable.svelte.d.ts +1 -0
- package/package/components/table/DataTable.svelte +12 -10
- package/package/components/table/DataTable.svelte.d.ts +1 -0
- package/package/components/triggers/TriggerRetriesAndErrorHandler.svelte.d.ts +2 -2
- package/package/components/triggers/gcp/GcpTriggerEditorConfigSection.svelte +1 -1
- package/package/components/triggers/gcp/GcpTriggerEditorConfigSection.svelte.d.ts +2 -1
- package/package/components/triggers/gcp/GcpTriggerEditorInner.svelte +50 -11
- package/package/components/triggers/gcp/utils.js +1 -0
- package/package/components/triggers/http/utils.js +1 -1
- package/package/components/triggers/kafka/utils.js +1 -1
- package/package/components/triggers/mqtt/utils.js +1 -1
- package/package/components/triggers/nats/utils.js +1 -1
- package/package/components/triggers/postgres/utils.js +1 -1
- package/package/components/triggers/sqs/utils.js +1 -1
- package/package/components/triggers/utils.js +2 -1
- package/package/components/triggers/webhook/WebhooksConfigSection.svelte +24 -26
- package/package/components/triggers/webhook/WebhooksPanel.svelte +1 -15
- package/package/components/triggers/websocket/utils.js +1 -1
- package/package/components/workspaceSettings/AISettings.svelte +52 -36
- package/package/components/workspaceSettings/DucklakeSettings.svelte +321 -0
- package/package/components/workspaceSettings/DucklakeSettings.svelte.d.ts +23 -0
- package/package/components/workspaceSettings/GitSyncFilterSettings.svelte +122 -499
- package/package/components/workspaceSettings/GitSyncFilterSettings.svelte.d.ts +8 -10
- package/package/consts.js +2 -1
- package/package/gen/core/OpenAPI.js +1 -1
- package/package/gen/schemas.gen.d.ts +33 -24
- package/package/gen/schemas.gen.js +36 -27
- package/package/gen/services.gen.d.ts +19 -1
- package/package/gen/services.gen.js +38 -0
- package/package/gen/types.gen.d.ts +103 -9
- package/package/git-sync.d.ts +36 -0
- package/package/git-sync.js +1 -0
- package/package/hub.d.ts +1 -0
- package/package/hubPaths.json +5 -2
- package/package/infer.js +3 -2
- package/package/script_helpers.d.ts +2 -2
- package/package/script_helpers.js +29 -11
- package/package/services/JobManager.d.ts +28 -0
- package/package/services/JobManager.js +114 -0
- package/package/stores.d.ts +1 -1
- package/package/utils.d.ts +18 -1
- package/package/utils.js +55 -2
- package/package.json +13 -12
- package/package/components/InitGitRepoPopover.svelte +0 -410
- package/package/components/InitGitRepoPopover.svelte.d.ts +0 -13
- package/package/components/PullGitRepoPopover.svelte +0 -355
- package/package/components/PullGitRepoPopover.svelte.d.ts +0 -18
- package/package/inferArgSig.d.ts +0 -35
- package/package/inferArgSig.js +0 -191
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
<script lang="ts">import { FileSearch, Save, Loader2, CheckCircle2, XCircle } from 'lucide-svelte';
|
|
2
|
+
import { Button, Alert } from '../common';
|
|
3
|
+
import { getGitSyncContext } from './GitSyncContext.svelte';
|
|
4
|
+
import GitSyncFilterSettings from '../workspaceSettings/GitSyncFilterSettings.svelte';
|
|
5
|
+
import Toggle from '../Toggle.svelte';
|
|
6
|
+
import { sendUserToast } from '../../toast';
|
|
7
|
+
import { workspaceStore } from '../../stores';
|
|
8
|
+
let { idx } = $props();
|
|
9
|
+
const gitSyncContext = getGitSyncContext();
|
|
10
|
+
const repo = $derived(gitSyncContext.getRepository(idx));
|
|
11
|
+
async function handleDetect() {
|
|
12
|
+
try {
|
|
13
|
+
await gitSyncContext.detectRepository(idx);
|
|
14
|
+
}
|
|
15
|
+
catch (error) {
|
|
16
|
+
console.error('Detection failed:', error);
|
|
17
|
+
sendUserToast('Detection failed: ' + error.message, true);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
async function handleInitialize() {
|
|
21
|
+
if (!repo || repo.detectionState !== 'no-wmill')
|
|
22
|
+
return;
|
|
23
|
+
try {
|
|
24
|
+
// Show push modal for initialization
|
|
25
|
+
gitSyncContext.showPushModal(idx);
|
|
26
|
+
}
|
|
27
|
+
catch (error) {
|
|
28
|
+
console.error('Failed to initialize repository:', error);
|
|
29
|
+
sendUserToast('Failed to initialize repository: ' + error.message, true);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
async function handleSaveConnection() {
|
|
33
|
+
if (!repo || repo.detectionState !== 'has-wmill')
|
|
34
|
+
return;
|
|
35
|
+
try {
|
|
36
|
+
await gitSyncContext.saveRepository(idx);
|
|
37
|
+
sendUserToast('Git sync connection saved successfully');
|
|
38
|
+
}
|
|
39
|
+
catch (error) {
|
|
40
|
+
console.error('Failed to save connection:', error);
|
|
41
|
+
sendUserToast('Failed to save connection: ' + error.message, true);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
</script>
|
|
45
|
+
|
|
46
|
+
{#if repo}
|
|
47
|
+
<div class="space-y-4">
|
|
48
|
+
{#if !repo.detectionState || repo.detectionState === 'idle'}
|
|
49
|
+
<!-- Step 1: Show toggles first, then check button -->
|
|
50
|
+
<div class="space-y-3">
|
|
51
|
+
<Toggle
|
|
52
|
+
disabled={!repo.git_repo_resource_path}
|
|
53
|
+
bind:checked={repo.use_individual_branch}
|
|
54
|
+
options={{
|
|
55
|
+
left: 'Sync mode',
|
|
56
|
+
leftTooltip: 'Changes will be committed directly to the branch',
|
|
57
|
+
right: 'Promotion mode',
|
|
58
|
+
rightTooltip: "Changes will be made to a new branch per deployed object (prefixed with 'wm_deploy/')"
|
|
59
|
+
}}
|
|
60
|
+
/>
|
|
61
|
+
|
|
62
|
+
{#if repo.use_individual_branch}
|
|
63
|
+
<Toggle
|
|
64
|
+
disabled={!repo.git_repo_resource_path}
|
|
65
|
+
bind:checked={repo.group_by_folder}
|
|
66
|
+
options={{
|
|
67
|
+
right: 'Group all changes from same folder in the same branch',
|
|
68
|
+
rightTooltip: 'Instead of creating a branch per object, Windmill will create a branch per folder containing objects being deployed.'
|
|
69
|
+
}}
|
|
70
|
+
/>
|
|
71
|
+
{/if}
|
|
72
|
+
</div>
|
|
73
|
+
|
|
74
|
+
<!-- Check repo settings button -->
|
|
75
|
+
<div class="flex justify-start">
|
|
76
|
+
<Button
|
|
77
|
+
color="primary"
|
|
78
|
+
variant="border"
|
|
79
|
+
size="sm"
|
|
80
|
+
onclick={handleDetect}
|
|
81
|
+
startIcon={{ icon: FileSearch }}
|
|
82
|
+
>
|
|
83
|
+
Check repo settings
|
|
84
|
+
</Button>
|
|
85
|
+
</div>
|
|
86
|
+
{:else if repo.detectionState === 'loading'}
|
|
87
|
+
<!-- Loading state -->
|
|
88
|
+
<div class="flex items-center gap-2">
|
|
89
|
+
<Loader2 size={16} class="animate-spin" />
|
|
90
|
+
<span class="text-sm">Checking repository...</span>
|
|
91
|
+
</div>
|
|
92
|
+
{:else if repo.detectionState === 'no-wmill'}
|
|
93
|
+
<!-- No wmill.yaml found - new repository -->
|
|
94
|
+
<Alert type="info" title="Uninitialized Windmill repository found" class="mb-2">
|
|
95
|
+
No git sync configuration found. Configure your sync settings below.
|
|
96
|
+
</Alert>
|
|
97
|
+
|
|
98
|
+
<GitSyncFilterSettings
|
|
99
|
+
git_repo_resource_path={repo.git_repo_resource_path}
|
|
100
|
+
bind:include_path={repo.settings.include_path}
|
|
101
|
+
bind:include_type={repo.settings.include_type}
|
|
102
|
+
bind:exclude_types_override={repo.exclude_types_override}
|
|
103
|
+
isLegacyRepo={false}
|
|
104
|
+
bind:excludes={repo.settings.exclude_path}
|
|
105
|
+
bind:extraIncludes={repo.settings.extra_include_path}
|
|
106
|
+
isInitialSetup={true}
|
|
107
|
+
requiresMigration={false}
|
|
108
|
+
useIndividualBranch={repo.use_individual_branch}
|
|
109
|
+
/>
|
|
110
|
+
|
|
111
|
+
<!-- Display mode settings as prominent text -->
|
|
112
|
+
<div class="text-base">
|
|
113
|
+
{#if repo.use_individual_branch}
|
|
114
|
+
<div><span class="font-bold">Promotion:</span> Creating branches whose promotion target is main</div>
|
|
115
|
+
{#if repo.group_by_folder}
|
|
116
|
+
<div class="text-sm text-tertiary mt-1">Grouped by folder</div>
|
|
117
|
+
{/if}
|
|
118
|
+
{:else}
|
|
119
|
+
<div>Sync: <span class="font-bold">Syncing back to branch main</span></div>
|
|
120
|
+
{/if}
|
|
121
|
+
</div>
|
|
122
|
+
|
|
123
|
+
<!-- Initialize button -->
|
|
124
|
+
<div class="flex justify-start">
|
|
125
|
+
<Button
|
|
126
|
+
size="md"
|
|
127
|
+
onclick={handleInitialize}
|
|
128
|
+
startIcon={{ icon: Save }}
|
|
129
|
+
>
|
|
130
|
+
Initialize Git repository
|
|
131
|
+
</Button>
|
|
132
|
+
</div>
|
|
133
|
+
{:else if repo.detectionState === 'has-wmill'}
|
|
134
|
+
<!-- wmill.yaml found - existing repository -->
|
|
135
|
+
<Alert type="success" title="Existing Windmill repository found" class="mb-2">
|
|
136
|
+
Found existing git sync configuration. Settings loaded from repository.
|
|
137
|
+
</Alert>
|
|
138
|
+
|
|
139
|
+
<GitSyncFilterSettings
|
|
140
|
+
git_repo_resource_path={repo.git_repo_resource_path}
|
|
141
|
+
bind:include_path={repo.settings.include_path}
|
|
142
|
+
bind:include_type={repo.settings.include_type}
|
|
143
|
+
bind:exclude_types_override={repo.exclude_types_override}
|
|
144
|
+
isLegacyRepo={false}
|
|
145
|
+
bind:excludes={repo.settings.exclude_path}
|
|
146
|
+
bind:extraIncludes={repo.settings.extra_include_path}
|
|
147
|
+
isInitialSetup={false}
|
|
148
|
+
requiresMigration={false}
|
|
149
|
+
useIndividualBranch={repo.use_individual_branch}
|
|
150
|
+
/>
|
|
151
|
+
|
|
152
|
+
<!-- Display mode settings as prominent text -->
|
|
153
|
+
<div class="text-base">
|
|
154
|
+
{#if repo.use_individual_branch}
|
|
155
|
+
<div><span class="font-bold">Promotion:</span> Creating branches whose promotion target is main</div>
|
|
156
|
+
{#if repo.group_by_folder}
|
|
157
|
+
<div class="text-sm text-tertiary mt-1">Grouped by folder</div>
|
|
158
|
+
{/if}
|
|
159
|
+
{:else}
|
|
160
|
+
<div>Sync: <span class="font-bold">Syncing back to branch main</span></div>
|
|
161
|
+
{/if}
|
|
162
|
+
</div>
|
|
163
|
+
|
|
164
|
+
<!-- Save connection button -->
|
|
165
|
+
<div class="flex justify-start">
|
|
166
|
+
<Button
|
|
167
|
+
size="md"
|
|
168
|
+
onclick={handleSaveConnection}
|
|
169
|
+
startIcon={{ icon: Save }}
|
|
170
|
+
>
|
|
171
|
+
Save connection
|
|
172
|
+
</Button>
|
|
173
|
+
</div>
|
|
174
|
+
{:else if repo.detectionState === 'error'}
|
|
175
|
+
<!-- Error state -->
|
|
176
|
+
<Alert type="error" title="Detection error" class="my-2">
|
|
177
|
+
{repo.detectionError || 'Failed to check repository'}
|
|
178
|
+
</Alert>
|
|
179
|
+
{/if}
|
|
180
|
+
|
|
181
|
+
<!-- Job status display -->
|
|
182
|
+
{#if repo.detectionJobId && (repo.detectionState === 'loading' || repo.detectionState === 'error')}
|
|
183
|
+
<div class="flex items-center gap-2 text-xs text-tertiary">
|
|
184
|
+
{#if repo.detectionJobStatus === 'running'}
|
|
185
|
+
<Loader2 class="animate-spin" size={14} />
|
|
186
|
+
{:else if repo.detectionJobStatus === 'success'}
|
|
187
|
+
<CheckCircle2 size={14} class="text-green-600" />
|
|
188
|
+
{:else if repo.detectionJobStatus === 'failure'}
|
|
189
|
+
<XCircle size={14} class="text-red-700" />
|
|
190
|
+
{/if}
|
|
191
|
+
Detection job:
|
|
192
|
+
<a
|
|
193
|
+
target="_blank"
|
|
194
|
+
class="underline"
|
|
195
|
+
href={`/run/${repo.detectionJobId}?workspace=${$workspaceStore}`}
|
|
196
|
+
>
|
|
197
|
+
{repo.detectionJobId}
|
|
198
|
+
</a>
|
|
199
|
+
</div>
|
|
200
|
+
{/if}
|
|
201
|
+
</div>
|
|
202
|
+
{/if}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import type { GitRepositorySettings as BackendGitRepositorySettings, GitSyncObjectType } from '../../gen';
|
|
2
|
+
import type { SettingsObject } from '../../git-sync';
|
|
3
|
+
export type GitSyncRepository = BackendGitRepositorySettings & {
|
|
4
|
+
settings: SettingsObject;
|
|
5
|
+
exclude_types_override: GitSyncObjectType[];
|
|
6
|
+
legacyImported?: boolean;
|
|
7
|
+
isUnsavedConnection?: boolean;
|
|
8
|
+
collapsed?: boolean;
|
|
9
|
+
detectionState?: 'idle' | 'loading' | 'no-wmill' | 'has-wmill' | 'error';
|
|
10
|
+
extractedSettings?: SettingsObject;
|
|
11
|
+
detectionError?: string;
|
|
12
|
+
detectionJobId?: string;
|
|
13
|
+
detectionJobStatus?: 'running' | 'success' | 'failure';
|
|
14
|
+
_trackedPath?: string;
|
|
15
|
+
};
|
|
16
|
+
export type GitSyncTestJob = {
|
|
17
|
+
jobId: string;
|
|
18
|
+
status: 'running' | 'success' | 'failure' | undefined;
|
|
19
|
+
};
|
|
20
|
+
export type GitSyncSettings = {
|
|
21
|
+
repositories: GitSyncRepository[];
|
|
22
|
+
};
|
|
23
|
+
export type ModalState = {
|
|
24
|
+
push: {
|
|
25
|
+
idx: number;
|
|
26
|
+
repo: GitSyncRepository;
|
|
27
|
+
open: boolean;
|
|
28
|
+
} | null;
|
|
29
|
+
pull: {
|
|
30
|
+
idx: number;
|
|
31
|
+
repo: GitSyncRepository;
|
|
32
|
+
open: boolean;
|
|
33
|
+
settingsOnly?: boolean;
|
|
34
|
+
} | null;
|
|
35
|
+
success: {
|
|
36
|
+
open: boolean;
|
|
37
|
+
savedWithoutInit?: boolean;
|
|
38
|
+
} | null;
|
|
39
|
+
};
|
|
40
|
+
export type ValidationState = {
|
|
41
|
+
isValid: boolean;
|
|
42
|
+
isDuplicate: boolean;
|
|
43
|
+
hasChanges: boolean;
|
|
44
|
+
};
|
|
45
|
+
export declare function createGitSyncContext(workspace: string): {
|
|
46
|
+
readonly repositories: GitSyncRepository[];
|
|
47
|
+
readonly loading: boolean;
|
|
48
|
+
readonly activeModals: ModalState;
|
|
49
|
+
readonly gitSyncTestJobs: GitSyncTestJob[];
|
|
50
|
+
readonly initialRepositories: GitSyncRepository[];
|
|
51
|
+
readonly legacyWorkspaceIncludePath: string[];
|
|
52
|
+
readonly legacyWorkspaceIncludeType: GitSyncObjectType[];
|
|
53
|
+
readonly validationStates: {
|
|
54
|
+
isValid: boolean;
|
|
55
|
+
isDuplicate: boolean;
|
|
56
|
+
hasChanges: boolean;
|
|
57
|
+
}[];
|
|
58
|
+
readonly hasAnyChanges: boolean;
|
|
59
|
+
readonly allRepositoriesValid: boolean;
|
|
60
|
+
readonly hasUnsavedConnections: boolean;
|
|
61
|
+
readonly hasWorkspaceLevelSettings: boolean;
|
|
62
|
+
addRepository: () => void;
|
|
63
|
+
removeRepository: (idx: number) => Promise<void>;
|
|
64
|
+
getRepository: (idx: number) => GitSyncRepository;
|
|
65
|
+
getValidation: (idx: number) => ValidationState;
|
|
66
|
+
revertRepository: (idx: number) => void;
|
|
67
|
+
runTestJob: (idx: number) => Promise<void>;
|
|
68
|
+
resetDetectionState: (idx: number) => void;
|
|
69
|
+
detectRepository: (idx: number) => Promise<void>;
|
|
70
|
+
migrateLegacyRepository: (repo: GitSyncRepository) => GitSyncRepository;
|
|
71
|
+
showPushModal: (idx: number) => void;
|
|
72
|
+
showPullModal: (idx: number, settingsOnly?: boolean) => void;
|
|
73
|
+
closePushModal: () => void;
|
|
74
|
+
closePullModal: () => void;
|
|
75
|
+
showSuccessModal: (savedWithoutInit?: boolean) => void;
|
|
76
|
+
closeSuccessModal: () => void;
|
|
77
|
+
loadSettings: () => Promise<void>;
|
|
78
|
+
saveRepository: (idx: number, savedWithoutInit?: boolean) => Promise<void>;
|
|
79
|
+
};
|
|
80
|
+
export type GitSyncContextType = ReturnType<typeof createGitSyncContext>;
|
|
81
|
+
export declare function setGitSyncContext(workspace: string): GitSyncContextType;
|
|
82
|
+
export declare function getGitSyncContext(): GitSyncContextType;
|