windmill-components 1.394.8 → 1.405.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/ata/edgeCases.d.ts +0 -1
- package/package/ata/edgeCases.js +2 -8
- package/package/ata/index.js +4 -3
- package/package/common.d.ts +1 -1
- package/package/common.js +2 -2
- package/package/components/ApiConnectForm.svelte +33 -7
- package/package/components/ArgInput.svelte +4 -2
- package/package/components/CenteredModal.svelte +4 -1
- package/package/components/CenteredModal.svelte.d.ts +1 -0
- package/package/components/DateInput.svelte +2 -0
- package/package/components/DateInput.svelte.d.ts +1 -0
- package/package/components/DefaultScripts.svelte +8 -3
- package/package/components/DefaultScripts.svelte.d.ts +5 -1
- package/package/components/DefaultScriptsInner.svelte +16 -7
- package/package/components/DefaultScriptsInner.svelte.d.ts +3 -1
- package/package/components/Dev.svelte +68 -11
- package/package/components/DropdownV2.svelte.d.ts +3 -3
- package/package/components/DropdownV2Inner.svelte.d.ts +3 -3
- package/package/components/EditableSchemaForm.svelte +1 -0
- package/package/components/Editor.svelte +3 -2
- package/package/components/Editor.svelte.d.ts +1 -1
- package/package/components/ExecutionDuration.svelte +44 -0
- package/package/components/ExecutionDuration.svelte.d.ts +24 -0
- package/package/components/FlowBuilder.svelte +20 -12
- package/package/components/FlowGraphViewer.svelte +9 -2
- package/package/components/FlowGraphViewerStep.svelte +23 -10
- package/package/components/FlowJobResult.svelte +0 -1
- package/package/components/FlowStatusViewerInner.svelte +17 -4
- package/package/components/FlowTimeline.svelte +3 -3
- package/package/components/HighlightCode.svelte +3 -0
- package/package/components/IconedResourceType.svelte +17 -10
- package/package/components/IconedResourceType.svelte.d.ts +2 -0
- package/package/components/IdEditorInput.svelte +0 -1
- package/package/components/InstanceSettings.svelte +247 -129
- package/package/components/InstanceSettings.svelte.d.ts +2 -0
- package/package/components/JobArgs.svelte +3 -1
- package/package/components/LightweightArgInput.svelte +35 -10
- package/package/components/LightweightArgInput.svelte.d.ts +1 -0
- package/package/components/LightweightObjectResourceInput.svelte +2 -0
- package/package/components/LightweightObjectResourceInput.svelte.d.ts +1 -0
- package/package/components/LightweightSchemaForm.svelte +2 -0
- package/package/components/LightweightSchemaForm.svelte.d.ts +1 -0
- package/package/components/Login.svelte +10 -5
- package/package/components/Login.svelte.d.ts +1 -0
- package/package/components/ModulePreview.svelte +21 -2
- package/package/components/ModuleStatus.svelte +3 -0
- package/package/components/ModuleStatus.svelte.d.ts +1 -0
- package/package/components/OAuthSetting.svelte +40 -15
- package/package/components/ObjectStoreConfigSettings.svelte +78 -76
- package/package/components/ParqetCsvTableRenderer.svelte +25 -3
- package/package/components/Password.svelte.d.ts +1 -1
- package/package/components/Path.svelte +74 -54
- package/package/components/Path.svelte.d.ts +2 -1
- package/package/components/ResourceEditor.svelte +38 -9
- package/package/components/ResultJobLoader.svelte +6 -3
- package/package/components/ResultJobLoader.svelte.d.ts +1 -1
- package/package/components/ScheduleEditorInner.svelte +2 -2
- package/package/components/SchemaForm.svelte +6 -1
- package/package/components/ScriptBuilder.svelte +12 -5
- package/package/components/ScriptEditor.svelte +33 -3
- package/package/components/ScriptEditor.svelte.d.ts +1 -1
- package/package/components/Scrollable.svelte +47 -0
- package/package/components/Scrollable.svelte.d.ts +21 -0
- package/package/components/ShareModal.svelte.d.ts +2 -2
- package/package/components/SuperadminSettings.svelte +5 -7
- package/package/components/TestJobLoader.svelte +46 -5
- package/package/components/TestJobLoader.svelte.d.ts +2 -1
- package/package/components/ToggleHubWorkspaceQuick.svelte +14 -0
- package/package/components/ToggleHubWorkspaceQuick.svelte.d.ts +16 -0
- package/package/components/WorkspaceGroup.svelte +3 -2
- package/package/components/apps/components/helpers/DebouncedInput.svelte +9 -1
- package/package/components/apps/components/inputs/AppSelect.svelte +1 -1
- package/package/components/apps/editor/component/components.d.ts +79 -79
- package/package/components/apps/svelte-select/lib/Select.svelte +1 -1
- package/package/components/common/fileUpload/FileUpload.svelte +1 -1
- package/package/components/common/languageIcons/LanguageIcon.svelte +5 -2
- package/package/components/common/menu/Menu.svelte +2 -1
- package/package/components/common/menu/MenuV2.svelte +3 -1
- package/package/components/common/menu/MenuV2.svelte.d.ts +1 -0
- package/package/components/common/popup/Popup.svelte +22 -12
- package/package/components/common/popup/Popup.svelte.d.ts +2 -0
- package/package/components/common/popup/PopupV2.svelte +58 -0
- package/package/components/common/popup/PopupV2.svelte.d.ts +27 -0
- package/package/components/copilot/CronGen.svelte +1 -1
- package/package/components/copilot/RegexGen.svelte +4 -4
- package/package/components/copilot/StepGen.svelte +6 -6
- package/package/components/copilot/StepGenQuick.svelte +57 -0
- package/package/components/copilot/StepGenQuick.svelte.d.ts +23 -0
- package/package/components/copilot/flow.d.ts +2 -0
- package/package/components/copilot/flow.js +55 -0
- package/package/components/details/DetailPageDetailPanel.svelte +9 -1
- package/package/components/details/DetailPageDetailPanel.svelte.d.ts +2 -1
- package/package/components/details/DetailPageLayout.svelte +2 -0
- package/package/components/details/DetailPageLayout.svelte.d.ts +3 -0
- package/package/components/details/utils.d.ts +0 -1
- package/package/components/details/utils.js +1 -12
- package/package/components/flows/FlowEditor.svelte +2 -1
- package/package/components/flows/FlowProgressBar.svelte +16 -1
- package/package/components/flows/FlowProgressBar.svelte.d.ts +1 -0
- package/package/components/flows/content/FlowBranchesAllWrapper.svelte +8 -0
- package/package/components/flows/content/FlowBranchesAllWrapper.svelte.d.ts +1 -0
- package/package/components/flows/content/FlowBranchesOneWrapper.svelte +8 -0
- package/package/components/flows/content/FlowBranchesOneWrapper.svelte.d.ts +1 -0
- package/package/components/flows/content/FlowConstants.svelte +1 -1
- package/package/components/flows/content/FlowEditorPanel.svelte +3 -0
- package/package/components/flows/content/FlowInputs.svelte +7 -6
- package/package/components/flows/content/FlowInputs.svelte.d.ts +1 -0
- package/package/components/flows/content/FlowInputsFlowQuick.svelte +65 -0
- package/package/components/flows/content/FlowInputsFlowQuick.svelte.d.ts +19 -0
- package/package/components/flows/content/FlowInputsQuick.svelte +419 -0
- package/package/components/flows/content/FlowInputsQuick.svelte.d.ts +33 -0
- package/package/components/flows/content/FlowLoop.svelte +7 -1
- package/package/components/flows/content/FlowModuleComponent.svelte +12 -3
- package/package/components/flows/content/FlowModuleComponent.svelte.d.ts +1 -0
- package/package/components/flows/content/FlowModuleSkip.svelte +69 -0
- package/package/components/flows/content/FlowModuleSkip.svelte.d.ts +20 -0
- package/package/components/flows/content/FlowModuleWrapper.svelte +17 -4
- package/package/components/flows/content/FlowPreprocessorModule.svelte +16 -0
- package/package/components/flows/content/FlowPreprocessorModule.svelte.d.ts +16 -0
- package/package/components/flows/content/FlowWhileLoop.svelte +9 -0
- package/package/components/flows/content/FlowWhileLoop.svelte.d.ts +1 -0
- package/package/components/flows/content/GenAiQuick.svelte +30 -0
- package/package/components/flows/content/GenAiQuick.svelte.d.ts +20 -0
- package/package/components/flows/content/ScriptEditorDrawer.svelte +3 -2
- package/package/components/flows/flowInfers.js +1 -1
- package/package/components/flows/header/FlowPreviewButtons.svelte +1 -0
- package/package/components/flows/idUtils.js +3 -1
- package/package/components/flows/map/FlowCopilotButton.svelte +55 -0
- package/package/components/flows/map/FlowCopilotButton.svelte.d.ts +16 -0
- package/package/components/flows/map/FlowErrorHandlerItem.svelte +77 -47
- package/package/components/flows/map/FlowJobsMenu.svelte +1 -1
- package/package/components/flows/map/FlowModuleSchemaItem.svelte +25 -12
- package/package/components/flows/map/FlowModuleSchemaItem.svelte.d.ts +1 -0
- package/package/components/flows/map/FlowModuleSchemaMap.svelte +61 -18
- package/package/components/flows/map/InsertModuleButton.svelte +161 -138
- package/package/components/flows/map/InsertModuleButton.svelte.d.ts +7 -4
- package/package/components/flows/map/MapItem.svelte +11 -0
- package/package/components/flows/map/MapItem.svelte.d.ts +1 -0
- package/package/components/flows/pickers/FlowScriptPickerQuick.svelte +48 -0
- package/package/components/flows/pickers/FlowScriptPickerQuick.svelte.d.ts +23 -0
- package/package/components/flows/pickers/FlowToplevelNode.svelte +19 -0
- package/package/components/flows/pickers/FlowToplevelNode.svelte.d.ts +19 -0
- package/package/components/flows/pickers/PickHubScriptQuick.svelte +138 -0
- package/package/components/flows/pickers/PickHubScriptQuick.svelte.d.ts +33 -0
- package/package/components/flows/pickers/TopLevelNode.svelte +58 -0
- package/package/components/flows/pickers/TopLevelNode.svelte.d.ts +21 -0
- package/package/components/flows/pickers/WorkspaceScriptPickerQuick.svelte +120 -0
- package/package/components/flows/pickers/WorkspaceScriptPickerQuick.svelte.d.ts +35 -0
- package/package/components/flows/types.d.ts +1 -0
- package/package/components/graph/FlowGraphV2.svelte +93 -58
- package/package/components/graph/FlowGraphV2.svelte.d.ts +2 -1
- package/package/components/graph/graphBuilder.d.ts +2 -1
- package/package/components/graph/graphBuilder.js +345 -280
- package/package/components/graph/model.d.ts +1 -0
- package/package/components/graph/renderers/edges/BaseEdge.svelte +36 -14
- package/package/components/graph/renderers/nodes/BranchOneStart.svelte +1 -1
- package/package/components/graph/renderers/nodes/InputNode.svelte +31 -51
- package/package/components/graph/renderers/nodes/InputNode.svelte.d.ts +6 -1
- package/package/components/graph/renderers/nodes/ModuleNode.svelte +2 -1
- package/package/components/graph/util.d.ts +1 -1
- package/package/components/graph/util.js +7 -2
- package/package/components/home/ListFiltersQuick.svelte +51 -0
- package/package/components/home/ListFiltersQuick.svelte.d.ts +23 -0
- package/package/components/icons/AnsibleIcon.svelte +42 -0
- package/package/components/icons/AnsibleIcon.svelte.d.ts +25 -0
- package/package/components/icons/WindmillIcon2.svelte +141 -0
- package/package/components/icons/WindmillIcon2.svelte.d.ts +20 -0
- package/package/components/icons/index.d.ts +2 -1
- package/package/components/icons/index.js +2 -1
- package/package/components/instanceSettings.d.ts +2 -2
- package/package/components/instanceSettings.js +25 -58
- package/package/components/jobs/JobProgressBar.svelte +52 -0
- package/package/components/jobs/JobProgressBar.svelte.d.ts +23 -0
- package/package/components/progressBar/ProgressBar.svelte +18 -1
- package/package/components/progressBar/ProgressBar.svelte.d.ts +3 -0
- package/package/components/runs/JobPreview.svelte +1 -0
- package/package/components/runs/PreprocessedArgsDisplay.svelte +71 -0
- package/package/components/runs/PreprocessedArgsDisplay.svelte.d.ts +16 -0
- package/package/components/schema/AddProperty.svelte +1 -0
- package/package/components/schema/EditableSchemaWrapper.svelte +142 -19
- package/package/components/schema/EditableSchemaWrapper.svelte.d.ts +1 -0
- package/package/components/schema/FlowPropertyEditor.svelte +12 -0
- package/package/components/schema/FlowPropertyEditor.svelte.d.ts +1 -0
- package/package/components/scriptEditor/LogPanel.svelte +1 -0
- package/package/components/scriptEditor/LogPanel.svelte.d.ts +3 -1
- package/package/components/search/GlobalSearchModal.svelte +2 -1
- package/package/components/sidebar/SidebarContent.svelte +69 -8
- package/package/components/sidebar/changelogs.js +10 -0
- package/package/components/triggers/RouteEditor.svelte +19 -0
- package/package/components/triggers/RouteEditor.svelte.d.ts +21 -0
- package/package/components/triggers/RouteEditorInner.svelte +327 -0
- package/package/components/triggers/RouteEditorInner.svelte.d.ts +21 -0
- package/package/components/triggers/RoutesPanel.svelte +74 -0
- package/package/components/triggers/RoutesPanel.svelte.d.ts +17 -0
- package/package/editorUtils.js +2 -0
- package/package/gen/core/OpenAPI.js +1 -1
- package/package/gen/schemas.gen.d.ts +159 -8
- package/package/gen/schemas.gen.js +161 -8
- package/package/gen/services.gen.d.ts +139 -1
- package/package/gen/services.gen.js +282 -1
- package/package/gen/types.gen.d.ts +455 -12
- package/package/hubPaths.json +6 -8
- package/package/infer.d.ts +4 -2
- package/package/infer.js +25 -23
- package/package/inferArgSig.js +8 -2
- package/package/monaco_workers/graphql.worker.bundle.js +45440 -174
- package/package/relative_imports.d.ts +3 -0
- package/package/relative_imports.js +25 -0
- package/package/script_helpers.d.ts +7 -2
- package/package/script_helpers.js +151 -3
- package/package/scripts.d.ts +1 -1
- package/package/scripts.js +5 -1
- package/package/stores.d.ts +1 -0
- package/package/stores.js +1 -0
- package/package/utils.d.ts +1 -0
- package/package/utils.js +4 -0
- package/package.json +16 -7
- package/package/components/flows/map/InsertTriggerButton.svelte +0 -48
- package/package/components/flows/map/InsertTriggerButton.svelte.d.ts +0 -24
|
@@ -49,7 +49,7 @@ async function testConnection() {
|
|
|
49
49
|
/>
|
|
50
50
|
</div>
|
|
51
51
|
{#if bucket_config}
|
|
52
|
-
<div class="flex gap-2">
|
|
52
|
+
<div class="flex gap-2 py-1">
|
|
53
53
|
<Button
|
|
54
54
|
spacingSize="sm"
|
|
55
55
|
size="xs"
|
|
@@ -100,81 +100,83 @@ async function testConnection() {
|
|
|
100
100
|
<Tab size="sm" value="S3">S3</Tab>
|
|
101
101
|
<Tab size="sm" value="Azure">Azure Blob</Tab>
|
|
102
102
|
</Tabs>
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
<
|
|
106
|
-
|
|
107
|
-
|
|
103
|
+
<div class="flex flex-col gap-2 mt-2 p-2 border rounded-md">
|
|
104
|
+
{#if bucket_config.type === 'S3'}
|
|
105
|
+
<label class="block pb-2">
|
|
106
|
+
<span class="text-primary font-semibold text-sm">Bucket</span>
|
|
107
|
+
<input type="text" placeholder="bucket-name" bind:value={bucket_config.bucket} />
|
|
108
|
+
</label>
|
|
108
109
|
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
110
|
+
<label class="block pb-2">
|
|
111
|
+
<span class="text-primary font-semibold text-sm">Region</span>
|
|
112
|
+
<span class="text-tertiary text-2xs"
|
|
113
|
+
>If left empty, will be derived automatically from $AWS_REGION</span
|
|
114
|
+
>
|
|
115
|
+
<input type="text" bind:value={bucket_config.region} />
|
|
116
|
+
</label>
|
|
117
|
+
<label class="block pb-2">
|
|
118
|
+
<span class="text-primary font-semibold text-sm">Access key ID</span>
|
|
119
|
+
<span class="text-tertiary text-2xs"
|
|
120
|
+
>If left empty, will be derived automatically from $AWS_ACCESS_KEY_ID, pod or ec2 profile</span
|
|
121
|
+
>
|
|
122
|
+
<input type="text" bind:value={bucket_config.access_key} />
|
|
123
|
+
</label>
|
|
124
|
+
<label class="block pb-2">
|
|
125
|
+
<span class="text-primary font-semibold text-sm">Secret key</span>
|
|
126
|
+
<span class="text-tertiary text-2xs"
|
|
127
|
+
>If left empty, will be derived automatically from $AWS_SECRET_KEY, pod or ec2 profile</span
|
|
128
|
+
>
|
|
129
|
+
<input type="password" autocomplete="new-password" bind:value={bucket_config.secret_key} />
|
|
130
|
+
</label>
|
|
131
|
+
<label class="block pb-2">
|
|
132
|
+
<span class="text-primary font-semibold text-sm">Endpoint</span>
|
|
133
|
+
<span class="text-tertiary text-2xs"
|
|
134
|
+
>Only needed for non AWS S3 providers like R2 or MinIo</span
|
|
135
|
+
>
|
|
136
|
+
<input type="text" bind:value={bucket_config.endpoint} />
|
|
137
|
+
</label>
|
|
138
|
+
<div class="block pb-2">
|
|
139
|
+
<span class="text-tertiary text-2xs">Disable if using https only policy</span>
|
|
140
|
+
<div>
|
|
141
|
+
<Toggle bind:checked={bucket_config.allow_http} options={{ right: 'Allow http' }} />
|
|
142
|
+
</div>
|
|
141
143
|
</div>
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
>
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
>
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
>
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
>
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
144
|
+
{:else if bucket_config.type === 'Azure'}
|
|
145
|
+
<label class="block pb-2">
|
|
146
|
+
<span class="text-primary font-semibold text-sm">Account name</span>
|
|
147
|
+
<input type="text" placeholder="account-name" bind:value={bucket_config.accountName} />
|
|
148
|
+
</label>
|
|
149
|
+
<label class="block pb-2">
|
|
150
|
+
<span class="text-primary font-semibold text-sm">Container name</span>
|
|
151
|
+
<input type="text" placeholder="container-name" bind:value={bucket_config.containerName} />
|
|
152
|
+
</label>
|
|
153
|
+
<label class="block pb-2">
|
|
154
|
+
<span class="text-primary font-semibold text-sm">Access key</span>
|
|
155
|
+
<input type="password" autocomplete="new-password" bind:value={bucket_config.accessKey} />
|
|
156
|
+
</label>
|
|
157
|
+
<label class="block pb-2">
|
|
158
|
+
<span class="text-primary font-semibold text-sm"
|
|
159
|
+
>Tenant ID <span class="text-2xs text-tertiary">(optional)</span></span
|
|
160
|
+
>
|
|
161
|
+
<input type="text" bind:value={bucket_config.tenantId} />
|
|
162
|
+
</label>
|
|
163
|
+
<label class="block pb-2">
|
|
164
|
+
<span class="text-primary font-semibold text-sm"
|
|
165
|
+
>Client ID <span class="text-2xs text-tertiary">(optional)</span></span
|
|
166
|
+
>
|
|
167
|
+
<input type="text" bind:value={bucket_config.clientId} />
|
|
168
|
+
</label>
|
|
169
|
+
<label class="block pb-2">
|
|
170
|
+
<span class="text-primary font-semibold text-sm"
|
|
171
|
+
>Endpoint <span class="text-2xs text-tertiary">(optional)</span></span
|
|
172
|
+
>
|
|
173
|
+
<span class="text-tertiary text-2xs"
|
|
174
|
+
>Only needed for non Azure Blob providers like Azurite</span
|
|
175
|
+
>
|
|
176
|
+
<input type="text" bind:value={bucket_config.endpoint} />
|
|
177
|
+
</label>
|
|
178
|
+
{:else}
|
|
179
|
+
<div>Unknown bucket type {bucket_config['type']}</div>
|
|
180
|
+
{/if}
|
|
181
|
+
</div>
|
|
180
182
|
{/if}
|
|
@@ -7,19 +7,36 @@ import { HelpersService } from '../gen';
|
|
|
7
7
|
import { base } from '../base';
|
|
8
8
|
import { enterpriseLicense, workspaceStore } from '../stores';
|
|
9
9
|
import { Download } from 'lucide-svelte';
|
|
10
|
+
import { Loader2 } from 'lucide-svelte';
|
|
10
11
|
// import 'ag-grid-community/dist/styles/ag-theme-alpine-dark.css'
|
|
11
12
|
let selectedRowIndex = -1;
|
|
12
13
|
export let s3resource;
|
|
13
14
|
export let storage;
|
|
14
15
|
export let workspaceId;
|
|
15
16
|
export let disable_download = false;
|
|
17
|
+
let lastSearch = undefined;
|
|
18
|
+
let nbRows = undefined;
|
|
16
19
|
let csvSeparatorChar = ',';
|
|
17
20
|
let datasource = {
|
|
18
21
|
rowCount: 0,
|
|
19
22
|
getRows: async function (params) {
|
|
20
23
|
try {
|
|
21
24
|
const searchCol = params.filterModel ? Object.keys(params.filterModel)?.[0] : undefined;
|
|
25
|
+
const searchTerm = searchCol ? params.filterModel?.[searchCol]?.filter : undefined;
|
|
22
26
|
const csv = s3resource.endsWith('.csv');
|
|
27
|
+
const newSearch = searchCol ? searchCol + searchTerm : undefined;
|
|
28
|
+
if (!nbRows || lastSearch != newSearch) {
|
|
29
|
+
nbRows = undefined;
|
|
30
|
+
const res = await HelpersService.loadTableRowCount({
|
|
31
|
+
workspace: workspaceId ?? $workspaceStore,
|
|
32
|
+
path: s3resource,
|
|
33
|
+
searchCol: searchCol,
|
|
34
|
+
storage,
|
|
35
|
+
searchTerm
|
|
36
|
+
});
|
|
37
|
+
nbRows = res.count;
|
|
38
|
+
lastSearch = newSearch;
|
|
39
|
+
}
|
|
23
40
|
const requestBody = {
|
|
24
41
|
workspace: workspaceId ?? $workspaceStore,
|
|
25
42
|
path: s3resource,
|
|
@@ -27,8 +44,8 @@ let datasource = {
|
|
|
27
44
|
limit: params.endRow - params.startRow,
|
|
28
45
|
sortCol: params.sortModel?.[0]?.colId,
|
|
29
46
|
sortDesc: params.sortModel?.[0]?.sort == 'desc',
|
|
30
|
-
searchCol
|
|
31
|
-
searchTerm
|
|
47
|
+
searchCol,
|
|
48
|
+
searchTerm,
|
|
32
49
|
storage: storage,
|
|
33
50
|
csvSeparator: csv ? csvSeparatorChar : undefined
|
|
34
51
|
};
|
|
@@ -45,7 +62,7 @@ let datasource = {
|
|
|
45
62
|
});
|
|
46
63
|
}
|
|
47
64
|
}
|
|
48
|
-
params.successCallback(res.rows);
|
|
65
|
+
params.successCallback(res.rows, nbRows);
|
|
49
66
|
}
|
|
50
67
|
catch (e) {
|
|
51
68
|
console.error(e);
|
|
@@ -164,6 +181,11 @@ let darkMode = false;
|
|
|
164
181
|
>
|
|
165
182
|
{/if}
|
|
166
183
|
|
|
184
|
+
{#if nbRows != undefined}
|
|
185
|
+
<div class="text-secondary ml-0.5 text-2xs">{nbRows} rows</div>
|
|
186
|
+
{:else}
|
|
187
|
+
<Loader2 class="animate-spin ml-0.5" size={12} />
|
|
188
|
+
{/if}
|
|
167
189
|
<div
|
|
168
190
|
class="ag-theme-alpine shadow-sm h-full"
|
|
169
191
|
class:ag-theme-alpine-dark={darkMode}
|
|
@@ -3,7 +3,7 @@ const lastMetaUsed = writable(undefined);
|
|
|
3
3
|
</script>
|
|
4
4
|
|
|
5
5
|
<script>import { pathToMeta } from '../common';
|
|
6
|
-
import { AppService, FlowService, FolderService, ResourceService, ScheduleService, ScriptService, VariableService } from '../gen';
|
|
6
|
+
import { AppService, FlowService, FolderService, ResourceService, ScheduleService, ScriptService, HttpTriggerService, VariableService } from '../gen';
|
|
7
7
|
import { superadmin, userStore, workspaceStore } from '../stores';
|
|
8
8
|
import { createEventDispatcher, getContext } from 'svelte';
|
|
9
9
|
import { writable } from 'svelte/store';
|
|
@@ -27,6 +27,7 @@ export let checkInitialPathExistence = false;
|
|
|
27
27
|
export let autofocus = true;
|
|
28
28
|
export let dirty = false;
|
|
29
29
|
export let kind;
|
|
30
|
+
export let hideUser = false;
|
|
30
31
|
let inputP = undefined;
|
|
31
32
|
const dispatch = createEventDispatcher();
|
|
32
33
|
let folders = [];
|
|
@@ -65,22 +66,33 @@ export async function reset() {
|
|
|
65
66
|
if (path == '' || path == 'u//') {
|
|
66
67
|
if ($lastMetaUsed == undefined || $lastMetaUsed.owner != $userStore?.username) {
|
|
67
68
|
meta = {
|
|
68
|
-
ownerKind: 'user',
|
|
69
|
+
ownerKind: hideUser ? 'folder' : 'user',
|
|
69
70
|
name: fullNamePlaceholder ?? random_adj() + '_' + namePlaceholder,
|
|
70
71
|
owner: ''
|
|
71
72
|
};
|
|
72
|
-
if (
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
73
|
+
if (!hideUser) {
|
|
74
|
+
if ($userStore?.username?.includes('@')) {
|
|
75
|
+
meta.owner = $userStore.username.split('@')[0].replace(/[^a-zA-Z0-9_]/g, '');
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
meta.owner = $userStore.username;
|
|
79
|
+
}
|
|
77
80
|
}
|
|
78
81
|
}
|
|
79
82
|
else {
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
83
|
+
if ($lastMetaUsed.ownerKind == 'user' && hideUser) {
|
|
84
|
+
meta = {
|
|
85
|
+
ownerKind: 'folder',
|
|
86
|
+
owner: '',
|
|
87
|
+
name: fullNamePlaceholder ?? random_adj() + '_' + namePlaceholder
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
meta = {
|
|
92
|
+
...$lastMetaUsed,
|
|
93
|
+
name: fullNamePlaceholder ?? random_adj() + '_' + namePlaceholder
|
|
94
|
+
};
|
|
95
|
+
}
|
|
84
96
|
}
|
|
85
97
|
let newMeta = { ...meta };
|
|
86
98
|
while (await pathExists(metaToPath(newMeta), kind)) {
|
|
@@ -94,7 +106,7 @@ export async function reset() {
|
|
|
94
106
|
path = metaToPath(meta);
|
|
95
107
|
}
|
|
96
108
|
else {
|
|
97
|
-
meta = pathToMeta(path);
|
|
109
|
+
meta = pathToMeta(path, hideUser);
|
|
98
110
|
}
|
|
99
111
|
}
|
|
100
112
|
async function loadFolders() {
|
|
@@ -167,6 +179,12 @@ async function pathExists(path, kind) {
|
|
|
167
179
|
else if (kind == 'app') {
|
|
168
180
|
return await AppService.existsApp({ workspace: $workspaceStore, path: path });
|
|
169
181
|
}
|
|
182
|
+
else if (kind == 'http_trigger') {
|
|
183
|
+
return await HttpTriggerService.existsHttpTrigger({
|
|
184
|
+
workspace: $workspaceStore,
|
|
185
|
+
path: path
|
|
186
|
+
});
|
|
187
|
+
}
|
|
170
188
|
else {
|
|
171
189
|
return false;
|
|
172
190
|
}
|
|
@@ -200,7 +218,7 @@ $: {
|
|
|
200
218
|
}
|
|
201
219
|
function initPath() {
|
|
202
220
|
if (path != undefined && path != '') {
|
|
203
|
-
meta = pathToMeta(path);
|
|
221
|
+
meta = pathToMeta(path, hideUser);
|
|
204
222
|
onMetaChange();
|
|
205
223
|
return;
|
|
206
224
|
}
|
|
@@ -208,7 +226,7 @@ function initPath() {
|
|
|
208
226
|
reset();
|
|
209
227
|
}
|
|
210
228
|
else {
|
|
211
|
-
meta = pathToMeta(initialPath);
|
|
229
|
+
meta = pathToMeta(initialPath, hideUser);
|
|
212
230
|
onMetaChange();
|
|
213
231
|
path = initialPath;
|
|
214
232
|
}
|
|
@@ -267,47 +285,49 @@ const openSearchWithPrefilledText = getContext('openSearchWithPrefilledText');
|
|
|
267
285
|
{#if meta != undefined}
|
|
268
286
|
<div class="flex gap-x-4 shrink">
|
|
269
287
|
<!-- svelte-ignore a11y-label-has-associated-control -->
|
|
270
|
-
|
|
271
|
-
<
|
|
288
|
+
{#if !hideUser}
|
|
289
|
+
<div class="block">
|
|
290
|
+
<span class="text-secondary text-sm whitespace-nowrap"> </span>
|
|
272
291
|
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
292
|
+
<ToggleButtonGroup
|
|
293
|
+
class="mt-0.5"
|
|
294
|
+
bind:selected={meta.ownerKind}
|
|
295
|
+
on:selected={(e) => {
|
|
296
|
+
setDirty()
|
|
297
|
+
const kind = e.detail
|
|
298
|
+
if (meta) {
|
|
299
|
+
if (kind === 'folder') {
|
|
300
|
+
meta.owner = folders?.[0]?.name ?? ''
|
|
301
|
+
} else if (kind === 'group') {
|
|
302
|
+
meta.owner = 'all'
|
|
303
|
+
} else {
|
|
304
|
+
meta.owner = $userStore?.username?.split('@')[0] ?? ''
|
|
305
|
+
}
|
|
286
306
|
}
|
|
287
|
-
}
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
</
|
|
310
|
-
|
|
307
|
+
}}
|
|
308
|
+
>
|
|
309
|
+
<ToggleButton
|
|
310
|
+
icon={User}
|
|
311
|
+
{disabled}
|
|
312
|
+
light
|
|
313
|
+
size="xs"
|
|
314
|
+
value="user"
|
|
315
|
+
position="left"
|
|
316
|
+
label="User"
|
|
317
|
+
/>
|
|
318
|
+
<!-- <ToggleButton light size="xs" value="group" position="center">Group</ToggleButton> -->
|
|
319
|
+
<ToggleButton
|
|
320
|
+
icon={Folder}
|
|
321
|
+
{disabled}
|
|
322
|
+
light
|
|
323
|
+
size="xs"
|
|
324
|
+
value="folder"
|
|
325
|
+
position="right"
|
|
326
|
+
label="Folder"
|
|
327
|
+
/>
|
|
328
|
+
</ToggleButtonGroup>
|
|
329
|
+
</div>
|
|
330
|
+
{/if}
|
|
311
331
|
{#if meta.ownerKind === 'user'}
|
|
312
332
|
<label class="block shrink min-w-0">
|
|
313
333
|
<span class="text-secondary text-sm">User</span>
|
|
@@ -417,7 +437,7 @@ const openSearchWithPrefilledText = getContext('openSearchWithPrefilledText');
|
|
|
417
437
|
<div class="text-red-600 dark:text-red-400 text-2xs">{error}</div>
|
|
418
438
|
</div>
|
|
419
439
|
|
|
420
|
-
{#if kind != 'app' && kind != 'schedule' && initialPath != '' && initialPath != undefined && initialPath != path}
|
|
440
|
+
{#if kind != 'app' && kind != 'schedule' && kind != 'http_trigger' && initialPath != '' && initialPath != undefined && initialPath != path}
|
|
421
441
|
<Alert type="warning" class="mt-4" title="Moving may break other items relying on it">
|
|
422
442
|
You are renaming an item that may be depended upon by other items. This may break apps, flows
|
|
423
443
|
or resources. Find if it used elsewhere using the content search. Note that linked variables
|
|
@@ -10,7 +10,8 @@ declare const __propDef: {
|
|
|
10
10
|
checkInitialPathExistence?: boolean | undefined;
|
|
11
11
|
autofocus?: boolean | undefined;
|
|
12
12
|
dirty?: boolean | undefined;
|
|
13
|
-
kind: "script" | "flow" | "resource" | "schedule" | "app" | "variable" | "raw_app";
|
|
13
|
+
kind: "script" | "flow" | "resource" | "schedule" | "app" | "variable" | "raw_app" | "http_trigger";
|
|
14
|
+
hideUser?: boolean | undefined;
|
|
14
15
|
focus?: (() => void) | undefined;
|
|
15
16
|
setName?: ((x: string) => void) | undefined;
|
|
16
17
|
reset?: (() => Promise<void>) | undefined;
|
|
@@ -95,6 +95,9 @@ async function loadResourceType() {
|
|
|
95
95
|
if (resourceType.schema) {
|
|
96
96
|
resourceSchema = resourceType.schema;
|
|
97
97
|
}
|
|
98
|
+
if (resourceTypeInfo?.format_extension) {
|
|
99
|
+
textFileContent = args.content;
|
|
100
|
+
}
|
|
98
101
|
}
|
|
99
102
|
catch (err) {
|
|
100
103
|
resourceSchema = undefined;
|
|
@@ -121,6 +124,8 @@ function updateArgsFromLinkedVars() {
|
|
|
121
124
|
args[k] = `$var:${path}`;
|
|
122
125
|
});
|
|
123
126
|
}
|
|
127
|
+
let textFileContent = '';
|
|
128
|
+
$: textFileContent && parseTextFileContent();
|
|
124
129
|
function switchTab(asJson) {
|
|
125
130
|
viewJsonSchema = asJson;
|
|
126
131
|
if (asJson) {
|
|
@@ -128,8 +133,16 @@ function switchTab(asJson) {
|
|
|
128
133
|
}
|
|
129
134
|
else {
|
|
130
135
|
parseJson();
|
|
136
|
+
if (resourceTypeInfo?.format_extension) {
|
|
137
|
+
textFileContent = args.content;
|
|
138
|
+
}
|
|
131
139
|
}
|
|
132
140
|
}
|
|
141
|
+
function parseTextFileContent() {
|
|
142
|
+
args = {
|
|
143
|
+
content: textFileContent
|
|
144
|
+
};
|
|
145
|
+
}
|
|
133
146
|
</script>
|
|
134
147
|
|
|
135
148
|
<div>
|
|
@@ -200,15 +213,31 @@ function switchTab(asJson) {
|
|
|
200
213
|
{#if loadingSchema}
|
|
201
214
|
<Skeleton layout={[[4]]} />
|
|
202
215
|
{:else if !viewJsonSchema && resourceSchema && resourceSchema?.properties}
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
216
|
+
{#if resourceTypeInfo?.format_extension}
|
|
217
|
+
<h5 class="mt-4 inline-flex items-center gap-4 pb-2">
|
|
218
|
+
File content ({resourceTypeInfo.format_extension})
|
|
219
|
+
</h5>
|
|
220
|
+
<div class="h-full w-full border p-1 rounded">
|
|
221
|
+
|
|
222
|
+
<SimpleEditor
|
|
223
|
+
autoHeight
|
|
224
|
+
class="editor"
|
|
225
|
+
lang={resourceTypeInfo.format_extension}
|
|
226
|
+
bind:code={textFileContent}
|
|
227
|
+
fixedOverflowWidgets={false}
|
|
228
|
+
/>
|
|
229
|
+
</div>
|
|
230
|
+
{:else}
|
|
231
|
+
<SchemaForm
|
|
232
|
+
onlyMaskPassword
|
|
233
|
+
noDelete
|
|
234
|
+
disabled={!can_write}
|
|
235
|
+
compact
|
|
236
|
+
schema={resourceSchema}
|
|
237
|
+
bind:args
|
|
238
|
+
bind:isValid
|
|
239
|
+
/>
|
|
240
|
+
{/if}
|
|
212
241
|
{:else if !can_write}
|
|
213
242
|
<input type="text" disabled value={rawCode} />
|
|
214
243
|
{:else}
|
|
@@ -59,21 +59,24 @@ export async function runScriptByPath(path, args, callbacks) {
|
|
|
59
59
|
return abstractRun(() => JobService.runScriptByPath({
|
|
60
60
|
workspace: $workspaceStore,
|
|
61
61
|
path: path,
|
|
62
|
-
requestBody: args
|
|
62
|
+
requestBody: args,
|
|
63
|
+
skipPreprocessor: true
|
|
63
64
|
}), callbacks);
|
|
64
65
|
}
|
|
65
66
|
export async function runScriptByHash(hash, args, callbacks) {
|
|
66
67
|
return abstractRun(() => JobService.runScriptByHash({
|
|
67
68
|
workspace: $workspaceStore,
|
|
68
69
|
hash: hash,
|
|
69
|
-
requestBody: args
|
|
70
|
+
requestBody: args,
|
|
71
|
+
skipPreprocessor: true
|
|
70
72
|
}), callbacks);
|
|
71
73
|
}
|
|
72
74
|
export async function runFlowByPath(path, args, callbacks) {
|
|
73
75
|
return abstractRun(() => JobService.runFlowByPath({
|
|
74
76
|
workspace: $workspaceStore,
|
|
75
77
|
path: path ?? '',
|
|
76
|
-
requestBody: args
|
|
78
|
+
requestBody: args,
|
|
79
|
+
skipPreprocessor: true
|
|
77
80
|
}), callbacks);
|
|
78
81
|
}
|
|
79
82
|
export async function runPreview(path, code, lang, args, tag, callbacks) {
|
|
@@ -81,7 +81,7 @@ export default class ResultJobLoader extends SvelteComponent<ResultJobLoaderProp
|
|
|
81
81
|
cancel: () => void;
|
|
82
82
|
error: (err: Error) => void;
|
|
83
83
|
} | undefined) => Promise<string>;
|
|
84
|
-
get runPreview(): (path: string | undefined, code: string, lang: "python3" | "deno" | "go" | "bash" | "powershell" | "postgresql" | "mysql" | "bigquery" | "snowflake" | "mssql" | "graphql" | "nativets" | "bun" | "php" | "rust", args: Record<string, any>, tag: string | undefined, callbacks?: {
|
|
84
|
+
get runPreview(): (path: string | undefined, code: string, lang: "python3" | "deno" | "go" | "bash" | "powershell" | "postgresql" | "mysql" | "bigquery" | "snowflake" | "mssql" | "graphql" | "nativets" | "bun" | "php" | "rust" | "ansible", args: Record<string, any>, tag: string | undefined, callbacks?: {
|
|
85
85
|
done: (x: any) => void;
|
|
86
86
|
cancel: () => void;
|
|
87
87
|
error: (err: Error) => void;
|
|
@@ -737,7 +737,7 @@ $: !showPauseUntil && (paused_until = undefined);
|
|
|
737
737
|
bind:handlerPath={errorHandlerPath}
|
|
738
738
|
customInitialScriptPath={errorHandlerCustomInitialPath}
|
|
739
739
|
slackToggleText="Alert channel on error"
|
|
740
|
-
customScriptTemplate="/scripts/add?hub=hub%
|
|
740
|
+
customScriptTemplate="/scripts/add?hub=hub%2F9081%2Fwindmill%2Fschedule_error_handler_template"
|
|
741
741
|
bind:customHandlerKind={errorHandleritemKind}
|
|
742
742
|
bind:handlerExtraArgs={errorHandlerExtraArgs}
|
|
743
743
|
>
|
|
@@ -830,7 +830,7 @@ $: !showPauseUntil && (paused_until = undefined);
|
|
|
830
830
|
bind:handlerPath={recoveryHandlerPath}
|
|
831
831
|
customInitialScriptPath={recoveryHandlerCustomInitialPath}
|
|
832
832
|
slackToggleText="Alert channel when error recovered"
|
|
833
|
-
customScriptTemplate="/scripts/add?hub=hub%
|
|
833
|
+
customScriptTemplate="/scripts/add?hub=hub%2F9082%2Fwindmill%2Fschedule_recovery_handler_template"
|
|
834
834
|
bind:customHandlerKind={recoveryHandlerItemKind}
|
|
835
835
|
bind:handlerExtraArgs={recoveryHandlerExtraArgs}
|
|
836
836
|
>
|
|
@@ -157,6 +157,9 @@ $: fields = items ?? keys.map((x) => ({ id: x, value: x }));
|
|
|
157
157
|
extra={schema.properties[argName]}
|
|
158
158
|
title={schema.properties[argName].title}
|
|
159
159
|
placeholder={schema.properties[argName].placeholder}
|
|
160
|
+
disabled={disabledArgs.includes(argName) ||
|
|
161
|
+
disabled ||
|
|
162
|
+
schema.properties[argName].disabled}
|
|
160
163
|
>
|
|
161
164
|
<svelte:fragment slot="actions">
|
|
162
165
|
<slot name="actions" />
|
|
@@ -213,7 +216,9 @@ $: fields = items ?? keys.map((x) => ({ id: x, value: x }));
|
|
|
213
216
|
bind:order={schema.properties[argName].order}
|
|
214
217
|
nestedRequired={schema.properties[argName]?.required}
|
|
215
218
|
itemsType={schema.properties[argName].items}
|
|
216
|
-
disabled={disabledArgs.includes(argName) ||
|
|
219
|
+
disabled={disabledArgs.includes(argName) ||
|
|
220
|
+
disabled ||
|
|
221
|
+
schema.properties[argName].disabled}
|
|
217
222
|
{compact}
|
|
218
223
|
{variableEditor}
|
|
219
224
|
{itemPicker}
|