windmill-components 1.383.8 → 1.389.1
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/assets/app.css +25 -1
- package/package/components/ArgInput.svelte +2 -1
- package/package/components/ChangeInstanceUsername.svelte +9 -108
- package/package/components/ChangeInstanceUsernameInner.svelte +112 -0
- package/package/components/ChangeInstanceUsernameInner.svelte.d.ts +21 -0
- package/package/components/DiffDrawer.svelte +27 -20
- package/package/components/DiffEditor.svelte +13 -1
- package/package/components/DisplayResult.svelte +39 -9
- package/package/components/DropdownV2.svelte +4 -26
- package/package/components/DropdownV2.svelte.d.ts +9 -1
- package/package/components/DropdownV2Inner.svelte +42 -0
- package/package/components/DropdownV2Inner.svelte.d.ts +40 -0
- package/package/components/Editor.svelte +142 -128
- package/package/components/Editor.svelte.d.ts +5 -4
- package/package/components/EditorBar.svelte +9 -11
- package/package/components/EditorSettings.svelte +44 -0
- package/package/components/EditorSettings.svelte.d.ts +17 -0
- package/package/components/EditorTheme.svelte +1 -1
- package/package/components/ErrorOrRecoveryHandler.svelte +27 -20
- package/package/components/FlowBuilder.svelte +17 -3
- package/package/components/FlowBuilder.svelte.d.ts +3 -0
- package/package/components/FlowGraphViewerStep.svelte +1 -1
- package/package/components/FlowStatusViewer.svelte +3 -1
- package/package/components/FlowStatusViewer.svelte.d.ts +1 -0
- package/package/components/FlowStatusViewerInner.svelte +5 -2
- package/package/components/FlowViewerInner.svelte +3 -7
- package/package/components/FormatOnSave.svelte +12 -29
- package/package/components/GraphqlSchemaViewer.svelte +1 -1
- package/package/components/GraphqlSchemaViewer.svelte.d.ts +1 -1
- package/package/components/HighlightCode.svelte +3 -0
- package/package/components/InstanceNameEditor.svelte +64 -0
- package/package/components/InstanceNameEditor.svelte.d.ts +23 -0
- package/package/components/LightweightArgInput.svelte +6 -11
- package/package/components/LogViewer.svelte +37 -29
- package/package/components/LogViewer.svelte.d.ts +2 -0
- package/package/components/ObjectResourceInput.svelte +1 -1
- package/package/components/ObjectResourceInput.svelte.d.ts +1 -0
- package/package/components/Path.svelte +3 -3
- package/package/components/QueueMetricsDrawer.svelte +6 -218
- package/package/components/QueueMetricsDrawer.svelte.d.ts +2 -3
- package/package/components/QueueMetricsDrawerInner.svelte +211 -0
- package/package/components/QueueMetricsDrawerInner.svelte.d.ts +15 -0
- package/package/components/ResourceEditorDrawer.svelte +14 -11
- package/package/components/ResourceEditorDrawer.svelte.d.ts +1 -1
- package/package/components/ResultJobLoader.svelte.d.ts +1 -1
- package/package/components/S3FilePicker.svelte +20 -8
- package/package/components/ScheduleEditorInner.svelte +497 -469
- package/package/components/ScriptBuilder.svelte +12 -1
- package/package/components/ScriptBuilder.svelte.d.ts +3 -0
- package/package/components/ScriptEditor.svelte +2 -0
- package/package/components/ScriptEditor.svelte.d.ts +2 -1
- package/package/components/ServiceLogsInner.svelte +511 -0
- package/package/components/ServiceLogsInner.svelte.d.ts +20 -0
- package/package/components/SimpleEditor.svelte +75 -37
- package/package/components/SimpleEditor.svelte.d.ts +9 -3
- package/package/components/Summary.svelte +33 -31
- package/package/components/Summary.svelte.d.ts +1 -0
- package/package/components/SuperadminSettings.svelte +28 -10
- package/package/components/TemplateEditor.svelte +1 -1
- package/package/components/TestJobLoader.svelte.d.ts +1 -1
- package/package/components/VimMode.svelte +16 -0
- package/package/components/VimMode.svelte.d.ts +14 -0
- package/package/components/WorkerTagPicker.svelte +4 -1
- package/package/components/WorkspaceGroup.svelte +139 -68
- package/package/components/WorkspaceGroup.svelte.d.ts +3 -0
- package/package/components/apps/components/display/table/AppAggridExplorerTable.svelte +19 -2
- package/package/components/apps/components/display/table/AppAggridInfiniteTable.svelte +1 -0
- package/package/components/apps/components/display/table/AppAggridInfiniteTable.svelte.d.ts +2 -1
- package/package/components/apps/components/display/table/AppAggridInfiniteTableEe.svelte +2 -0
- package/package/components/apps/components/display/table/AppAggridInfiniteTableEe.svelte.d.ts +2 -1
- package/package/components/apps/components/display/table/AppAggridTable.svelte +45 -3
- package/package/components/apps/components/display/table/AppAggridTable.svelte.d.ts +2 -1
- package/package/components/apps/components/display/table/AppAggridTableEe.svelte +2 -0
- package/package/components/apps/components/display/table/AppAggridTableEe.svelte.d.ts +2 -1
- package/package/components/apps/editor/AppEditor.svelte +239 -92
- package/package/components/apps/editor/AppEditorBottomPanel.svelte +22 -0
- package/package/components/apps/editor/AppEditorBottomPanel.svelte.d.ts +24 -0
- package/package/components/apps/editor/AppEditorHeader.svelte +44 -2
- package/package/components/apps/editor/AppEditorHeader.svelte.d.ts +9 -0
- package/package/components/apps/editor/AppExportButton.svelte +1 -1
- package/package/components/apps/editor/AppPreview.svelte +4 -0
- package/package/components/apps/editor/DeploymentHistory.svelte +7 -3
- package/package/components/apps/editor/GridEditor.svelte +4 -13
- package/package/components/apps/editor/RunnableJobPanel.svelte +25 -58
- package/package/components/apps/editor/RunnableJobPanel.svelte.d.ts +10 -1
- package/package/components/apps/editor/RunnalbeJobPanelInner.svelte +56 -0
- package/package/components/apps/editor/RunnalbeJobPanelInner.svelte.d.ts +18 -0
- package/package/components/apps/editor/SubGridEditor.svelte +3 -1
- package/package/components/apps/editor/component/Component.svelte +26 -4
- package/package/components/apps/editor/component/Component.svelte.d.ts +1 -0
- package/package/components/apps/editor/component/components.d.ts +5 -0
- package/package/components/apps/editor/componentsPanel/CssProperty.svelte +2 -0
- package/package/components/apps/editor/componentsPanel/tailwindUtils.js +267 -1
- package/package/components/apps/editor/contextPanel/ContextPanel.svelte +9 -1
- package/package/components/apps/editor/contextPanel/ContextPanel.svelte.d.ts +2 -0
- package/package/components/apps/editor/inlineScriptsPanel/CacheTtlPopup.svelte +1 -0
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte +4 -0
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanel.svelte +7 -2
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanel.svelte.d.ts +5 -1
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanelList.svelte +14 -2
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanelList.svelte.d.ts +1 -0
- package/package/components/apps/editor/settingsPanel/ComponentPanel.svelte +25 -5
- package/package/components/apps/editor/settingsPanel/HideButton.svelte +47 -0
- package/package/components/apps/editor/settingsPanel/HideButton.svelte.d.ts +22 -0
- package/package/components/apps/editor/settingsPanel/TableActions.svelte +43 -4
- package/package/components/apps/editor/settingsPanel/TableActions.svelte.d.ts +2 -1
- package/package/components/apps/editor/settingsPanel/inputEditor/JsonEditor.svelte +2 -1
- package/package/components/apps/editor/settingsPanel/inputEditor/JsonEditor.svelte.d.ts +1 -0
- package/package/components/apps/svelte-grid/Grid.svelte +6 -2
- package/package/components/apps/svelte-grid/Grid.svelte.d.ts +1 -0
- package/package/components/apps/svelte-grid/MoveResize.svelte +11 -3
- package/package/components/apps/svelte-grid/MoveResize.svelte.d.ts +1 -0
- package/package/components/apps/svelte-grid/utils/item.d.ts +4 -1
- package/package/components/apps/svelte-grid/utils/item.js +11 -4
- package/package/components/build_workers.d.ts +1 -1
- package/package/components/build_workers.js +16 -122
- package/package/components/common/button/Button.svelte.d.ts +2 -2
- package/package/components/common/calendarPicker/CalendarPicker.svelte +6 -2
- package/package/components/common/calendarPicker/CalendarPicker.svelte.d.ts +2 -0
- package/package/components/common/drawer/ConditionalPortal.svelte +2 -1
- package/package/components/common/drawer/ConditionalPortal.svelte.d.ts +1 -0
- package/package/components/common/languageIcons/LanguageIcon.svelte +5 -2
- package/package/components/common/popup/Popup.svelte +2 -1
- package/package/components/common/popup/Popup.svelte.d.ts +1 -0
- package/package/components/common/table/AppRow.svelte +11 -8
- package/package/components/common/table/AppRow.svelte.d.ts +1 -2
- package/package/components/common/table/FlowRow.svelte +3 -3
- package/package/components/common/table/FlowRow.svelte.d.ts +1 -2
- package/package/components/common/table/RawAppRow.svelte +3 -3
- package/package/components/common/table/RawAppRow.svelte.d.ts +1 -2
- package/package/components/common/table/ScriptRow.svelte +3 -3
- package/package/components/common/table/ScriptRow.svelte.d.ts +1 -2
- package/package/components/copilot/CodeCompletionStatus.svelte +21 -46
- package/package/components/copilot/StepGen.svelte +2 -1
- package/package/components/custom_ui.d.ts +4 -1
- package/package/components/flows/CreateActionsApp.svelte +11 -8
- package/package/components/flows/CreateActionsFlow.svelte +11 -8
- package/package/components/flows/FlowEditor.svelte +1 -2
- package/package/components/flows/FlowEditor.svelte.d.ts +0 -1
- package/package/components/flows/FlowHistory.svelte +6 -3
- package/package/components/flows/content/FlowModuleComponent.svelte +1 -0
- package/package/components/flows/content/FlowModuleScript.svelte +15 -11
- package/package/components/flows/content/FlowSettings.svelte +1 -4
- package/package/components/flows/content/ScriptEditorDrawer.svelte +3 -0
- package/package/components/flows/header/FlowYamlEditor.svelte +55 -0
- package/package/components/flows/header/FlowYamlEditor.svelte.d.ts +17 -0
- package/package/components/flows/map/InsertTriggerButton.svelte +1 -1
- package/package/components/flows/map/InsertTriggerButton.svelte.d.ts +1 -0
- package/package/components/flows/map/VirtualItem.svelte +1 -1
- package/package/components/flows/pickers/PickHubScript.svelte +1 -0
- package/package/components/flows/types.d.ts +7 -6
- package/package/components/flows/utils.d.ts +9 -0
- package/package/components/flows/utils.js +21 -0
- package/package/components/graph/graphBuilder.js +1 -0
- package/package/components/graph/model.d.ts +1 -0
- package/package/components/graph/renderers/edges/BaseEdge.svelte +16 -0
- package/package/components/graph/renderers/nodes/BranchOneStart.svelte +1 -1
- package/package/components/graph/renderers/nodes/NoBranchNode.svelte +5 -1
- package/package/components/graph/renderers/nodes/NoBranchNode.svelte.d.ts +1 -0
- package/package/components/home/Item.svelte +0 -17
- package/package/components/home/deploy_ui.d.ts +2 -0
- package/package/components/home/deploy_ui.js +21 -0
- package/package/components/icons/RustIcon.svelte +70 -0
- package/package/components/icons/RustIcon.svelte.d.ts +25 -0
- package/package/components/icons/rust-logo.svg +1 -0
- package/package/components/instanceSettings.js +2 -2
- package/package/components/monaco_keybindings.d.ts +3 -0
- package/package/components/monaco_keybindings.js +9 -0
- package/package/components/preview/FlowPreviewStatus.svelte +6 -2
- package/package/components/runs/JobLoader.svelte +12 -3
- package/package/components/runs/JobLoader.svelte.d.ts +1 -1
- package/package/components/runs/ManuelDatePicker.svelte +31 -44
- package/package/components/runs/ManuelDatePicker.svelte.d.ts +6 -2
- package/package/components/runs/RunsFilter.svelte +4 -1
- package/package/components/runs/RunsFilter.svelte.d.ts +1 -0
- package/package/components/search/GlobalSearchModal.svelte +36 -25
- package/package/components/vscode.js +1 -1
- package/package/components/wizards/TableActionsWizard.svelte +84 -0
- package/package/components/wizards/TableActionsWizard.svelte.d.ts +22 -0
- package/package/editorUtils.js +2 -0
- package/package/gen/core/OpenAPI.js +1 -1
- package/package/gen/schemas.gen.d.ts +8 -8
- package/package/gen/schemas.gen.js +8 -8
- package/package/gen/services.gen.d.ts +4 -0
- package/package/gen/services.gen.js +16 -0
- package/package/gen/types.gen.d.ts +20 -8
- package/package/infer.d.ts +1 -1
- package/package/infer.js +48 -7
- package/package/script_helpers.d.ts +1 -0
- package/package/script_helpers.js +39 -1
- package/package/scripts.d.ts +1 -1
- package/package/scripts.js +12 -4
- package/package/stores.d.ts +5 -1
- package/package/stores.js +7 -2
- package/package.json +18 -9
package/package/assets/app.css
CHANGED
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
|
|
29
29
|
@font-face {
|
|
30
30
|
font-family: 'Inter';
|
|
31
|
-
src: url('/Inter-Variable.
|
|
31
|
+
src: url('/Inter-Variable.woff2') format('woff2');
|
|
32
32
|
font-weight: 100 900;
|
|
33
33
|
font-display: swap;
|
|
34
34
|
}
|
|
@@ -120,3 +120,27 @@ svelte-virtual-list-contents > * + * {
|
|
|
120
120
|
@apply bg-surface;
|
|
121
121
|
@apply disabled:placeholder:text-gray-200 disabled:placeholder:dark:text-gray-500 disabled:text-gray-200 disabled:dark:text-gray-500 disabled:border-gray-200 disabled:dark:border-gray-600;
|
|
122
122
|
}
|
|
123
|
+
|
|
124
|
+
.nonmain-editor .cursor.monaco-mouse-cursor-text {
|
|
125
|
+
width: 1px !important;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
.bg-locked {
|
|
129
|
+
background-image: repeating-linear-gradient(
|
|
130
|
+
-45deg,
|
|
131
|
+
rgba(128, 128, 128, 0.2),
|
|
132
|
+
rgba(128, 128, 128, 0.2) 10px,
|
|
133
|
+
rgba(192, 192, 192, 0.2) 10px,
|
|
134
|
+
rgba(192, 192, 192, 0.2) 20px
|
|
135
|
+
);
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
.bg-locked-hover {
|
|
139
|
+
background-image: repeating-linear-gradient(
|
|
140
|
+
-45deg,
|
|
141
|
+
rgba(255, 99, 71, 0.2),
|
|
142
|
+
rgba(255, 99, 71, 0.2) 10px,
|
|
143
|
+
rgba(255, 69, 58, 0.2),
|
|
144
|
+
rgba(255, 69, 58, 0.2) 20px
|
|
145
|
+
);
|
|
146
|
+
}
|
|
@@ -366,7 +366,8 @@ $: shouldDispatchChanges && debounced(value);
|
|
|
366
366
|
/>
|
|
367
367
|
{:else if itemsType?.type == 'resource' && itemsType?.resourceType && resourceTypes?.includes(itemsType.resourceType)}
|
|
368
368
|
<ObjectResourceInput
|
|
369
|
-
|
|
369
|
+
value={v ? `$res:${v}` : undefined}
|
|
370
|
+
bind:path={v}
|
|
370
371
|
format={'resource-' + itemsType?.resourceType}
|
|
371
372
|
defaultValue={undefined}
|
|
372
373
|
/>
|
|
@@ -1,52 +1,9 @@
|
|
|
1
|
-
<script>import {
|
|
2
|
-
import { Button, Popup } from './common';
|
|
3
|
-
import { sendUserToast } from '../toast';
|
|
4
|
-
import Alert from './common/alert/Alert.svelte';
|
|
1
|
+
<script>import { Button, Popup } from './common';
|
|
5
2
|
import { autoPlacement } from '@floating-ui/core';
|
|
6
|
-
import
|
|
3
|
+
import ChangeInstanceUsernameInner from './ChangeInstanceUsernameInner.svelte';
|
|
7
4
|
export let email;
|
|
8
5
|
export let username;
|
|
9
6
|
export let isConflict = false;
|
|
10
|
-
let loading = false;
|
|
11
|
-
let usernameInfo = undefined;
|
|
12
|
-
function handleKeyUp(event) {
|
|
13
|
-
const key = event.key;
|
|
14
|
-
if (key === 'Enter') {
|
|
15
|
-
event.preventDefault();
|
|
16
|
-
renameUser();
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
async function getUsernameInfo() {
|
|
20
|
-
usernameInfo = await UserService.globalUsernameInfo({
|
|
21
|
-
email
|
|
22
|
-
});
|
|
23
|
-
if (isConflict) {
|
|
24
|
-
username = usernameInfo.username;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
getUsernameInfo();
|
|
28
|
-
const dispatch = createEventDispatcher();
|
|
29
|
-
async function renameUser() {
|
|
30
|
-
loading = true;
|
|
31
|
-
try {
|
|
32
|
-
const automateUsernameCreation = (await SettingService.getGlobal({ key: 'automate_username_creation' })) ?? false;
|
|
33
|
-
if (!automateUsernameCreation) {
|
|
34
|
-
sendUserToast('Modifying the username is only possible when the creation of usernames is automated and defined at instance level..');
|
|
35
|
-
return;
|
|
36
|
-
}
|
|
37
|
-
await UserService.globalUserRename({
|
|
38
|
-
email,
|
|
39
|
-
requestBody: {
|
|
40
|
-
new_username: username
|
|
41
|
-
}
|
|
42
|
-
});
|
|
43
|
-
sendUserToast(`Renamed user ${email} to ${username}`);
|
|
44
|
-
dispatch('renamed');
|
|
45
|
-
}
|
|
46
|
-
finally {
|
|
47
|
-
loading = false;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
7
|
</script>
|
|
51
8
|
|
|
52
9
|
<Popup
|
|
@@ -65,67 +22,11 @@ async function renameUser() {
|
|
|
65
22
|
>{isConflict ? 'Fix username conflict' : 'Change username'}</Button
|
|
66
23
|
>
|
|
67
24
|
</svelte:fragment>
|
|
68
|
-
<
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
>
|
|
76
|
-
<input
|
|
77
|
-
type="text"
|
|
78
|
-
class="mb-4"
|
|
79
|
-
on:keyup={handleKeyUp}
|
|
80
|
-
bind:value={username}
|
|
81
|
-
disabled={isConflict}
|
|
82
|
-
/>
|
|
83
|
-
|
|
84
|
-
{#if isConflict}
|
|
85
|
-
<Alert title="Username conflict" class="mb-4">
|
|
86
|
-
Users are required to have an instance-wide username that is shared across all workspaces.
|
|
87
|
-
However, this user has different usernames in different workspaces.
|
|
88
|
-
|
|
89
|
-
{#if usernameInfo?.workspace_usernames && usernameInfo.workspace_usernames.filter((w) => w.username !== username).length > 0}
|
|
90
|
-
<br />
|
|
91
|
-
<br />
|
|
92
|
-
Workspaces requiring username modification: {usernameInfo.workspace_usernames
|
|
93
|
-
.filter((w) => w.username !== username)
|
|
94
|
-
.map((wu) => `${wu.workspace_id} (${wu.username})`)
|
|
95
|
-
.join(', ')}
|
|
96
|
-
{/if}
|
|
97
|
-
</Alert>
|
|
98
|
-
{/if}
|
|
99
|
-
|
|
100
|
-
{#if !isConflict && usernameInfo?.workspace_usernames && usernameInfo.workspace_usernames.filter((w) => w.username !== username).length > 0}
|
|
101
|
-
<Alert title="Concerned workspaces" class="mb-4">
|
|
102
|
-
{usernameInfo.workspace_usernames
|
|
103
|
-
.filter((w) => w.username !== username)
|
|
104
|
-
.map((wu) => `${wu.workspace_id}`)
|
|
105
|
-
.join(', ')}
|
|
106
|
-
</Alert>
|
|
107
|
-
{/if}
|
|
108
|
-
|
|
109
|
-
<Alert type="warning" title="Manual action required" class="mb-4">
|
|
110
|
-
This operation does not handle references in scripts, workflows and applications to scripts in
|
|
111
|
-
the workspace, and references in resources to variables. You will have to handle those
|
|
112
|
-
manually.
|
|
113
|
-
<br />
|
|
114
|
-
</Alert>
|
|
115
|
-
|
|
116
|
-
<Button
|
|
117
|
-
variant="contained"
|
|
118
|
-
color="blue"
|
|
119
|
-
size="xs"
|
|
120
|
-
on:click={() => {
|
|
121
|
-
renameUser().then(() => {
|
|
122
|
-
close(null)
|
|
123
|
-
})
|
|
124
|
-
}}
|
|
125
|
-
disabled={email === undefined || !username}
|
|
126
|
-
{loading}
|
|
127
|
-
>
|
|
128
|
-
Confirm username change
|
|
129
|
-
</Button>
|
|
130
|
-
</div>
|
|
25
|
+
<ChangeInstanceUsernameInner
|
|
26
|
+
{email}
|
|
27
|
+
{username}
|
|
28
|
+
{isConflict}
|
|
29
|
+
on:close={() => close(null)}
|
|
30
|
+
on:renamed
|
|
31
|
+
/>
|
|
131
32
|
</Popup>
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
<script>import { SettingService, UserService } from '../gen';
|
|
2
|
+
import { Button } from './common';
|
|
3
|
+
import { sendUserToast } from '../toast';
|
|
4
|
+
import Alert from './common/alert/Alert.svelte';
|
|
5
|
+
import { createEventDispatcher } from 'svelte';
|
|
6
|
+
export let email;
|
|
7
|
+
export let username;
|
|
8
|
+
export let isConflict = false;
|
|
9
|
+
let loading = false;
|
|
10
|
+
let usernameInfo = undefined;
|
|
11
|
+
function handleKeyUp(event) {
|
|
12
|
+
const key = event.key;
|
|
13
|
+
if (key === 'Enter') {
|
|
14
|
+
event.preventDefault();
|
|
15
|
+
renameUser();
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
async function getUsernameInfo() {
|
|
19
|
+
usernameInfo = await UserService.globalUsernameInfo({
|
|
20
|
+
email
|
|
21
|
+
});
|
|
22
|
+
if (isConflict) {
|
|
23
|
+
username = usernameInfo.username;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
getUsernameInfo();
|
|
27
|
+
const dispatch = createEventDispatcher();
|
|
28
|
+
async function renameUser() {
|
|
29
|
+
loading = true;
|
|
30
|
+
try {
|
|
31
|
+
const automateUsernameCreation = (await SettingService.getGlobal({ key: 'automate_username_creation' })) ?? false;
|
|
32
|
+
if (!automateUsernameCreation) {
|
|
33
|
+
sendUserToast('Modifying the username is only possible when the creation of usernames is automated and defined at instance level..');
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
await UserService.globalUserRename({
|
|
37
|
+
email,
|
|
38
|
+
requestBody: {
|
|
39
|
+
new_username: username
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
sendUserToast(`Renamed user ${email} to ${username}`);
|
|
43
|
+
dispatch('renamed');
|
|
44
|
+
}
|
|
45
|
+
finally {
|
|
46
|
+
loading = false;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
</script>
|
|
50
|
+
|
|
51
|
+
<div class="flex flex-col max-w-2xl p-2">
|
|
52
|
+
<span class="text-sm mb-2 leading-6 font-semibold"
|
|
53
|
+
>{isConflict ? 'Fix username conflict' : 'Change username'}</span
|
|
54
|
+
>
|
|
55
|
+
|
|
56
|
+
<span class="text-xs mb-1 leading-6"
|
|
57
|
+
>{isConflict ? 'Auto-generated instance username' : 'New username'}</span
|
|
58
|
+
>
|
|
59
|
+
<input
|
|
60
|
+
type="text"
|
|
61
|
+
class="mb-4"
|
|
62
|
+
on:keyup={handleKeyUp}
|
|
63
|
+
bind:value={username}
|
|
64
|
+
disabled={isConflict}
|
|
65
|
+
/>
|
|
66
|
+
|
|
67
|
+
{#if isConflict}
|
|
68
|
+
<Alert title="Username conflict" class="mb-4">
|
|
69
|
+
Users are required to have an instance-wide username that is shared across all workspaces.
|
|
70
|
+
However, this user has different usernames in different workspaces.
|
|
71
|
+
|
|
72
|
+
{#if usernameInfo?.workspace_usernames && usernameInfo.workspace_usernames.filter((w) => w.username !== username).length > 0}
|
|
73
|
+
<br />
|
|
74
|
+
<br />
|
|
75
|
+
Workspaces requiring username modification: {usernameInfo.workspace_usernames
|
|
76
|
+
.filter((w) => w.username !== username)
|
|
77
|
+
.map((wu) => `${wu.workspace_id} (${wu.username})`)
|
|
78
|
+
.join(', ')}
|
|
79
|
+
{/if}
|
|
80
|
+
</Alert>
|
|
81
|
+
{/if}
|
|
82
|
+
|
|
83
|
+
{#if !isConflict && usernameInfo?.workspace_usernames && usernameInfo.workspace_usernames.filter((w) => w.username !== username).length > 0}
|
|
84
|
+
<Alert title="Concerned workspaces" class="mb-4">
|
|
85
|
+
{usernameInfo.workspace_usernames
|
|
86
|
+
.filter((w) => w.username !== username)
|
|
87
|
+
.map((wu) => `${wu.workspace_id}`)
|
|
88
|
+
.join(', ')}
|
|
89
|
+
</Alert>
|
|
90
|
+
{/if}
|
|
91
|
+
|
|
92
|
+
<Alert type="warning" title="Manual action required" class="mb-4">
|
|
93
|
+
This operation does not handle references in scripts, workflows and applications to scripts in
|
|
94
|
+
the workspace, and references in resources to variables. You will have to handle those manually.
|
|
95
|
+
<br />
|
|
96
|
+
</Alert>
|
|
97
|
+
|
|
98
|
+
<Button
|
|
99
|
+
variant="contained"
|
|
100
|
+
color="blue"
|
|
101
|
+
size="xs"
|
|
102
|
+
on:click={() => {
|
|
103
|
+
renameUser().then(() => {
|
|
104
|
+
dispatch('close')
|
|
105
|
+
})
|
|
106
|
+
}}
|
|
107
|
+
disabled={email === undefined || !username}
|
|
108
|
+
{loading}
|
|
109
|
+
>
|
|
110
|
+
Confirm username change
|
|
111
|
+
</Button>
|
|
112
|
+
</div>
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { SvelteComponent } from "svelte";
|
|
2
|
+
declare const __propDef: {
|
|
3
|
+
props: {
|
|
4
|
+
email: string;
|
|
5
|
+
username: string;
|
|
6
|
+
isConflict?: boolean | undefined;
|
|
7
|
+
};
|
|
8
|
+
events: {
|
|
9
|
+
close: CustomEvent<any>;
|
|
10
|
+
renamed: CustomEvent<any>;
|
|
11
|
+
} & {
|
|
12
|
+
[evt: string]: CustomEvent<any>;
|
|
13
|
+
};
|
|
14
|
+
slots: {};
|
|
15
|
+
};
|
|
16
|
+
export type ChangeInstanceUsernameInnerProps = typeof __propDef.props;
|
|
17
|
+
export type ChangeInstanceUsernameInnerEvents = typeof __propDef.events;
|
|
18
|
+
export type ChangeInstanceUsernameInnerSlots = typeof __propDef.slots;
|
|
19
|
+
export default class ChangeInstanceUsernameInner extends SvelteComponent<ChangeInstanceUsernameInnerProps, ChangeInstanceUsernameInnerEvents, ChangeInstanceUsernameInnerSlots> {
|
|
20
|
+
}
|
|
21
|
+
export {};
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
<script>import { Alert, Button, Drawer, DrawerContent } from './common';
|
|
2
2
|
import { Loader2 } from 'lucide-svelte';
|
|
3
|
-
import DiffEditor from './DiffEditor.svelte';
|
|
4
3
|
import { scriptLangToEditorLang } from '../scripts';
|
|
5
4
|
import Tabs from './common/tabs/Tabs.svelte';
|
|
6
5
|
import Tab from './common/tabs/Tab.svelte';
|
|
@@ -157,26 +156,34 @@ $: updateContentType(data, diffType);
|
|
|
157
156
|
<div class="flex-1">
|
|
158
157
|
{#key diffType}
|
|
159
158
|
{#if contentType === 'content'}
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
159
|
+
{#await import('./DiffEditor.svelte')}
|
|
160
|
+
<Loader2 class="animate-spin" />
|
|
161
|
+
{:then Module}
|
|
162
|
+
<Module.default
|
|
163
|
+
open={true}
|
|
164
|
+
automaticLayout
|
|
165
|
+
class="h-full"
|
|
166
|
+
defaultLang={lang}
|
|
167
|
+
defaultModifiedLang={data.current.lang}
|
|
168
|
+
defaultOriginal={content}
|
|
169
|
+
defaultModified={data.current.content}
|
|
170
|
+
readOnly
|
|
171
|
+
/>
|
|
172
|
+
{/await}
|
|
170
173
|
{:else if contentType === 'metadata'}
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
174
|
+
{#await import('./DiffEditor.svelte')}
|
|
175
|
+
<Loader2 class="animate-spin" />
|
|
176
|
+
{:then Module}
|
|
177
|
+
<Module.default
|
|
178
|
+
open={true}
|
|
179
|
+
automaticLayout
|
|
180
|
+
class="h-full"
|
|
181
|
+
defaultLang="yaml"
|
|
182
|
+
defaultOriginal={metadata}
|
|
183
|
+
defaultModified={data.current.metadata}
|
|
184
|
+
readOnly
|
|
185
|
+
/>
|
|
186
|
+
{/await}
|
|
180
187
|
{/if}
|
|
181
188
|
{/key}
|
|
182
189
|
</div>
|
|
@@ -42,8 +42,12 @@ async function loadDiffEditor() {
|
|
|
42
42
|
if (defaultOriginal !== undefined &&
|
|
43
43
|
defaultModified !== undefined &&
|
|
44
44
|
defaultLang !== undefined) {
|
|
45
|
+
console.log('SETUP');
|
|
45
46
|
setupModel(defaultLang, defaultOriginal, defaultModified, defaultModifiedLang);
|
|
46
47
|
}
|
|
48
|
+
else {
|
|
49
|
+
console.log('NO SETUP', defaultOriginal, defaultModified, defaultLang);
|
|
50
|
+
}
|
|
47
51
|
}
|
|
48
52
|
export function setupModel(lang, original, modified, modifiedLang) {
|
|
49
53
|
diffEditor?.setModel({
|
|
@@ -58,18 +62,22 @@ export function setupModel(lang, original, modified, modifiedLang) {
|
|
|
58
62
|
}
|
|
59
63
|
}
|
|
60
64
|
export function setOriginal(code) {
|
|
65
|
+
console.log('setOriginal', code);
|
|
61
66
|
diffEditor?.getModel()?.original?.setValue(code);
|
|
67
|
+
defaultOriginal = code;
|
|
62
68
|
}
|
|
63
69
|
export function getOriginal() {
|
|
64
70
|
return diffEditor?.getModel()?.original.getValue() ?? '';
|
|
65
71
|
}
|
|
66
72
|
export function setModified(code) {
|
|
67
73
|
diffEditor?.getModel()?.modified?.setValue(code);
|
|
74
|
+
defaultModified = code;
|
|
68
75
|
}
|
|
69
76
|
export function getModified() {
|
|
70
77
|
return diffEditor?.getModel()?.modified.getValue() ?? '';
|
|
71
78
|
}
|
|
72
79
|
export function show() {
|
|
80
|
+
console.log('show');
|
|
73
81
|
open = true;
|
|
74
82
|
}
|
|
75
83
|
export function hide() {
|
|
@@ -91,5 +99,9 @@ onMount(() => {
|
|
|
91
99
|
|
|
92
100
|
{#if open}
|
|
93
101
|
<EditorTheme />
|
|
94
|
-
<div
|
|
102
|
+
<div
|
|
103
|
+
bind:this={diffDivEl}
|
|
104
|
+
class="{$$props.class} editor nonmain-editor"
|
|
105
|
+
bind:clientWidth={editorWidth}
|
|
106
|
+
/>
|
|
95
107
|
{/if}
|
|
@@ -555,15 +555,26 @@ let seeS3PreviewFileFromList = '';
|
|
|
555
555
|
</button>
|
|
556
556
|
{/if}
|
|
557
557
|
</div>
|
|
558
|
-
{#if typeof result?.s3
|
|
559
|
-
{#
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
558
|
+
{#if typeof result?.s3 === 'string'}
|
|
559
|
+
{#if result?.s3?.endsWith('.parquet') || result?.s3?.endsWith('.csv')}
|
|
560
|
+
{#key result.s3}
|
|
561
|
+
<ParqetTableRenderer
|
|
562
|
+
disable_download={result?.disable_download}
|
|
563
|
+
{workspaceId}
|
|
564
|
+
s3resource={result?.s3}
|
|
565
|
+
storage={result?.storage}
|
|
566
|
+
/>
|
|
567
|
+
{/key}
|
|
568
|
+
{:else if result?.s3?.endsWith('.png') || result?.s3?.endsWith('.jpeg') || result?.s3?.endsWith('.jpg') || result?.s3?.endsWith('.webp')}
|
|
569
|
+
<div class="h-full mt-2">
|
|
570
|
+
<img
|
|
571
|
+
alt="preview rendered"
|
|
572
|
+
class="w-auto h-full"
|
|
573
|
+
src={`/api/w/${workspaceId}/job_helpers/load_image_preview?file_key=${result.s3}` +
|
|
574
|
+
(result.storage ? `&storage=${result.storage}` : '')}
|
|
575
|
+
/>
|
|
576
|
+
</div>
|
|
577
|
+
{/if}
|
|
567
578
|
{/if}
|
|
568
579
|
</div>
|
|
569
580
|
{:else if !forceJson && resultKind == 's3object-list'}
|
|
@@ -612,6 +623,25 @@ let seeS3PreviewFileFromList = '';
|
|
|
612
623
|
>open table preview <ArrowDownFromLine />
|
|
613
624
|
</button>
|
|
614
625
|
{/if}
|
|
626
|
+
{:else if s3object?.s3?.endsWith('.png') || s3object?.s3?.endsWith('.jpeg') || s3object?.s3?.endsWith('.jpg') || s3object?.s3?.endsWith('.webp')}
|
|
627
|
+
{#if seeS3PreviewFileFromList == s3object?.s3}
|
|
628
|
+
<div class="h-full mt-2">
|
|
629
|
+
<img
|
|
630
|
+
alt="preview rendered"
|
|
631
|
+
class="w-auto h-full"
|
|
632
|
+
src={`/api/w/${workspaceId}/job_helpers/load_image_preview?file_key=${s3object.s3}` +
|
|
633
|
+
(s3object.storage ? `&storage=${s3object.storage}` : '')}
|
|
634
|
+
/>
|
|
635
|
+
</div>
|
|
636
|
+
{:else}
|
|
637
|
+
<button
|
|
638
|
+
class="text-secondary whitespace-nowrap flex gap-2 items-center"
|
|
639
|
+
on:click={() => {
|
|
640
|
+
seeS3PreviewFileFromList = s3object?.s3
|
|
641
|
+
}}
|
|
642
|
+
>open image preview <ArrowDownFromLine />
|
|
643
|
+
</button>
|
|
644
|
+
{/if}
|
|
615
645
|
{/if}
|
|
616
646
|
{/each}
|
|
617
647
|
</div>
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
<script>import { MoreVertical } from 'lucide-svelte';
|
|
2
2
|
import Menu from './common/menu/MenuV2.svelte';
|
|
3
|
-
import
|
|
4
|
-
import { twMerge } from 'tailwind-merge';
|
|
3
|
+
import DropdownV2Inner from './DropdownV2Inner.svelte';
|
|
5
4
|
export let items = [];
|
|
6
5
|
export let justifyEnd = true;
|
|
7
|
-
function computeItems() {
|
|
6
|
+
async function computeItems() {
|
|
8
7
|
if (typeof items === 'function') {
|
|
9
|
-
return (items() ?? []).filter((item) => !item.hide);
|
|
8
|
+
return ((await items()) ?? []).filter((item) => !item.hide);
|
|
10
9
|
}
|
|
11
10
|
else {
|
|
12
11
|
return items.filter((item) => !item.hide);
|
|
@@ -26,26 +25,5 @@ function computeItems() {
|
|
|
26
25
|
{/if}
|
|
27
26
|
</div>
|
|
28
27
|
|
|
29
|
-
<
|
|
30
|
-
{#each computeItems() ?? [] as item}
|
|
31
|
-
<MenuItem
|
|
32
|
-
on:click={(e) => item?.action?.(e)}
|
|
33
|
-
href={item?.href}
|
|
34
|
-
disabled={item?.disabled}
|
|
35
|
-
class={twMerge(
|
|
36
|
-
'px-4 py-2 text-primary hover:bg-surface-hover hover:text-primary cursor-pointer text-xs transition-all',
|
|
37
|
-
'flex flex-row gap-2 items-center',
|
|
38
|
-
item?.disabled && 'text-gray-400 cursor-not-allowed',
|
|
39
|
-
item?.type === 'delete' &&
|
|
40
|
-
!item?.disabled &&
|
|
41
|
-
'text-red-500 hover:bg-red-100 hover:text-red-500'
|
|
42
|
-
)}
|
|
43
|
-
>
|
|
44
|
-
{#if item.icon}
|
|
45
|
-
<svelte:component this={item.icon} size={14} />
|
|
46
|
-
{/if}
|
|
47
|
-
{item.displayName}
|
|
48
|
-
</MenuItem>
|
|
49
|
-
{/each}
|
|
50
|
-
</div>
|
|
28
|
+
<DropdownV2Inner items={computeItems} />
|
|
51
29
|
</Menu>
|
|
@@ -17,7 +17,15 @@ declare const __propDef: {
|
|
|
17
17
|
disabled?: boolean | undefined;
|
|
18
18
|
type?: "action" | "delete" | undefined;
|
|
19
19
|
hide?: boolean | undefined;
|
|
20
|
-
}[]) |
|
|
20
|
+
}[]) | (() => Promise<{
|
|
21
|
+
displayName: string;
|
|
22
|
+
action?: ((e: CustomEvent<any>) => void) | undefined;
|
|
23
|
+
icon?: any;
|
|
24
|
+
href?: string | undefined;
|
|
25
|
+
disabled?: boolean | undefined;
|
|
26
|
+
type?: "action" | "delete" | undefined;
|
|
27
|
+
hide?: boolean | undefined;
|
|
28
|
+
}[]>) | undefined;
|
|
21
29
|
justifyEnd?: boolean | undefined;
|
|
22
30
|
};
|
|
23
31
|
events: {
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
<script>import { MenuItem } from '@rgossiaux/svelte-headlessui';
|
|
2
|
+
import { Loader2 } from 'lucide-svelte';
|
|
3
|
+
import { twMerge } from 'tailwind-merge';
|
|
4
|
+
export let items = [];
|
|
5
|
+
let computedItems = undefined;
|
|
6
|
+
async function computeItems() {
|
|
7
|
+
if (typeof items === 'function') {
|
|
8
|
+
computedItems = ((await items()) ?? []).filter((item) => !item.hide);
|
|
9
|
+
}
|
|
10
|
+
else {
|
|
11
|
+
computedItems = items.filter((item) => !item.hide);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
computeItems();
|
|
15
|
+
</script>
|
|
16
|
+
|
|
17
|
+
{#if computedItems}
|
|
18
|
+
<div class="flex flex-col">
|
|
19
|
+
{#each computedItems ?? [] as item}
|
|
20
|
+
<MenuItem
|
|
21
|
+
on:click={(e) => item?.action?.(e)}
|
|
22
|
+
href={item?.href}
|
|
23
|
+
disabled={item?.disabled}
|
|
24
|
+
class={twMerge(
|
|
25
|
+
'px-4 py-2 text-primary hover:bg-surface-hover hover:text-primary cursor-pointer text-xs transition-all',
|
|
26
|
+
'flex flex-row gap-2 items-center',
|
|
27
|
+
item?.disabled && 'text-gray-400 cursor-not-allowed',
|
|
28
|
+
item?.type === 'delete' &&
|
|
29
|
+
!item?.disabled &&
|
|
30
|
+
'text-red-500 hover:bg-red-100 hover:text-red-500'
|
|
31
|
+
)}
|
|
32
|
+
>
|
|
33
|
+
{#if item.icon}
|
|
34
|
+
<svelte:component this={item.icon} size={14} />
|
|
35
|
+
{/if}
|
|
36
|
+
{item.displayName}
|
|
37
|
+
</MenuItem>
|
|
38
|
+
{/each}
|
|
39
|
+
</div>
|
|
40
|
+
{:else}
|
|
41
|
+
<Loader2 class="animate-spin mx-auto p-4" size={24} />
|
|
42
|
+
{/if}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { SvelteComponent } from "svelte";
|
|
2
|
+
declare const __propDef: {
|
|
3
|
+
props: {
|
|
4
|
+
items?: {
|
|
5
|
+
displayName: string;
|
|
6
|
+
action?: ((e: CustomEvent<any>) => void) | undefined;
|
|
7
|
+
icon?: any;
|
|
8
|
+
href?: string | undefined;
|
|
9
|
+
disabled?: boolean | undefined;
|
|
10
|
+
type?: "action" | "delete" | undefined;
|
|
11
|
+
hide?: boolean | undefined;
|
|
12
|
+
}[] | (() => {
|
|
13
|
+
displayName: string;
|
|
14
|
+
action?: ((e: CustomEvent<any>) => void) | undefined;
|
|
15
|
+
icon?: any;
|
|
16
|
+
href?: string | undefined;
|
|
17
|
+
disabled?: boolean | undefined;
|
|
18
|
+
type?: "action" | "delete" | undefined;
|
|
19
|
+
hide?: boolean | undefined;
|
|
20
|
+
}[]) | (() => Promise<{
|
|
21
|
+
displayName: string;
|
|
22
|
+
action?: ((e: CustomEvent<any>) => void) | undefined;
|
|
23
|
+
icon?: any;
|
|
24
|
+
href?: string | undefined;
|
|
25
|
+
disabled?: boolean | undefined;
|
|
26
|
+
type?: "action" | "delete" | undefined;
|
|
27
|
+
hide?: boolean | undefined;
|
|
28
|
+
}[]>) | undefined;
|
|
29
|
+
};
|
|
30
|
+
events: {
|
|
31
|
+
[evt: string]: CustomEvent<any>;
|
|
32
|
+
};
|
|
33
|
+
slots: {};
|
|
34
|
+
};
|
|
35
|
+
export type DropdownV2InnerProps = typeof __propDef.props;
|
|
36
|
+
export type DropdownV2InnerEvents = typeof __propDef.events;
|
|
37
|
+
export type DropdownV2InnerSlots = typeof __propDef.slots;
|
|
38
|
+
export default class DropdownV2Inner extends SvelteComponent<DropdownV2InnerProps, DropdownV2InnerEvents, DropdownV2InnerSlots> {
|
|
39
|
+
}
|
|
40
|
+
export {};
|