Skip to content

Commit 9513bee

Browse files
committed
Merge remote-tracking branch 'origin/main'
2 parents 4fef7ce + 20e79cd commit 9513bee

File tree

5 files changed

+174
-48
lines changed

5 files changed

+174
-48
lines changed

DUUIRestService/pom.xml

Lines changed: 72 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,11 @@
4040
<maven.compiler.target>21</maven.compiler.target>
4141
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
4242
<maven.javadoc.skip>true</maven.javadoc.skip>
43-
<duui.version>duui-gateway-main-merge-SNAPSHOT</duui.version>
43+
<duui.version>275fd0123fcd9206741e00034e7e8723a4632d5e</duui.version>
4444
<uima.version>3.5.0</uima.version>
45+
<typesystem.version>3.0.8</typesystem.version>
4546
<maven.javadoc.skip>false</maven.javadoc.skip>
47+
<dkpro.core.version>2.4.0</dkpro.core.version>
4648
</properties>
4749

4850
<repositories>
@@ -182,10 +184,78 @@
182184
<!-- </plugin>-->
183185
<!-- </plugins>-->
184186
<!-- </build>-->
185-
187+
188+
<dependencyManagement>
189+
<dependencies>
190+
<dependency>
191+
<groupId>org.dkpro.core</groupId>
192+
<artifactId>dkpro-core-asl</artifactId>
193+
<version>${dkpro.core.version}</version>
194+
<type>pom</type>
195+
<scope>import</scope>
196+
</dependency>
197+
198+
<dependency>
199+
<groupId>com.amazonaws</groupId>
200+
<artifactId>aws-java-sdk-bom</artifactId>
201+
<version>1.11.1000</version>
202+
<type>pom</type>
203+
<scope>import</scope>
204+
</dependency>
205+
</dependencies>
206+
</dependencyManagement>
186207

187208
<dependencies>
188209

210+
211+
<!-- https://mvnrepository.com/artifact/org.dkpro.core/dkpro-core-tokit-asl -->
212+
<dependency>
213+
<groupId>org.dkpro.core</groupId>
214+
<artifactId>dkpro-core-tokit-asl</artifactId>
215+
<scope>test</scope>
216+
</dependency>
217+
218+
<!-- https://mvnrepository.com/artifact/org.dkpro.core/dkpro-core-api-segmentation-asl -->
219+
<dependency>
220+
<groupId>org.dkpro.core</groupId>
221+
<artifactId>dkpro-core-api-segmentation-asl</artifactId>
222+
</dependency>
223+
224+
<!-- https://mvnrepository.com/artifact/org.dkpro.core/dkpro-core-opennlp-asl -->
225+
<dependency>
226+
<groupId>org.dkpro.core</groupId>
227+
<artifactId>dkpro-core-opennlp-asl</artifactId>
228+
<scope>test</scope>
229+
</dependency>
230+
<!-- https://mvnrepository.com/artifact/org.dkpro.core/dkpro-core-api-io-asl -->
231+
<dependency>
232+
<groupId>org.dkpro.core</groupId>
233+
<artifactId>dkpro-core-api-io-asl</artifactId>
234+
</dependency>
235+
<!-- https://mvnrepository.com/artifact/org.dkpro.core/dkpro-core-io-xmi-asl -->
236+
<dependency>
237+
<groupId>org.dkpro.core</groupId>
238+
<artifactId>dkpro-core-io-xmi-asl</artifactId>
239+
<scope>test</scope>
240+
</dependency>
241+
<!-- https://mvnrepository.com/artifact/org.dkpro.core/dkpro-core-io-text-asl -->
242+
<dependency>
243+
<groupId>org.dkpro.core</groupId>
244+
<artifactId>dkpro-core-io-text-asl</artifactId>
245+
<scope>test</scope>
246+
</dependency>
247+
248+
<!-- https://mvnrepository.com/artifact/org.dkpro.core/dkpro-core-api-resources-asl -->
249+
<dependency>
250+
<groupId>org.dkpro.core</groupId>
251+
<artifactId>dkpro-core-api-resources-asl</artifactId>
252+
</dependency>
253+
254+
<dependency>
255+
<groupId>com.github.texttechnologylab</groupId>
256+
<artifactId>UIMATypeSystem</artifactId>
257+
<version>${typesystem.version}</version>
258+
</dependency>
189259

190260
<!-- SLF4J API -->
191261
<dependency>

DUUIWeb/src/lib/svelte/components/Drawer/ComponentDrawer.svelte

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -401,10 +401,18 @@
401401
const registryEntry = event.detail.entry
402402
const entryMetadata = event.detail.metaData
403403

404+
if (!registryEntry.name) {
405+
return
406+
}
407+
404408
component.name = registryEntry.name
405409
component.target = registryEntry.registry_url
406410
? `${registryEntry.registry_url}${registryEntry.name}:${entryMetadata.tag}`
407411
: "";
412+
413+
if (component.target.startsWith('https://')) {
414+
component.target = component.target.replace(/^https?:\/\//, '');
415+
}
408416

409417
component.description = entryMetadata.description
410418
}

DUUIWeb/src/lib/svelte/components/Input/RegistryDropdown.svelte

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
import { onMount, createEventDispatcher } from 'svelte';
1616
import type {DUUIComponentMetaData, DUUIRegistryEntry} from "$lib/duui/component";
1717
import Tip from "$lib/svelte/components/Tip.svelte";
18-
import {infoToast} from "$lib/duui/utils/ui";
18+
import {errorToast, infoToast} from "$lib/duui/utils/ui";
1919
import Popup from "$lib/svelte/components/Popup.svelte";
2020
import Link from "$lib/svelte/components/Link.svelte";
2121
import Chip from "$lib/svelte/components/Chip.svelte"; // wherever you put the types
@@ -153,6 +153,9 @@
153153
154154
if (response.ok) {
155155
entries = await response.json()
156+
} else {
157+
toastStore.trigger(errorToast(`ERROR ${response.status}: ${response.statusText} \n Failed to fetch registry entries. Registry is not reachable.`))
158+
entries = [];
156159
}
157160
}
158161
@@ -352,10 +355,10 @@
352355
<Tip tipTheme="error">
353356
You have no registries available. Access can be granted by an administrator.
354357
</Tip>
355-
<!--{:else if !selectedRegistryEndpoint }-->
356-
<!-- <Tip tipTheme="tertiary">-->
357-
<!-- Please select a registry endpoint to view entries.-->
358-
<!-- </Tip>-->
358+
{:else if !entries.length }
359+
<Tip tipTheme="tertiary">
360+
No entries found in the selected registry.
361+
</Tip>
359362
{:else}
360363
<div class="overflow-visible">
361364

DUUIWeb/src/lib/svelte/components/Paginator.svelte

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,10 +55,11 @@
5555
<Dropdown
5656
on:change={() => dispatcher('change', { settings: settings })}
5757
bind:value={settings.limit}
58+
capitalize={false}
5859
options={settings.sizes}
5960
border="bordered-soft"
6061
style={"shadow-md grow bg-surface-50-900-token self-stretch"}
61-
/>
62+
/>
6263
<div
6364
class="input-no-highlight bordered-soft !bg-surface-50-900-token !py-0 flex justify-center !rounded-md shadow-md overflow-hidden"
6465
>

DUUIWeb/src/routes/processes/+page.svelte

Lines changed: 84 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -80,29 +80,33 @@ import {
8080
8181
onMount(async () => {
8282
83+
8384
$userSession = user
8485
8586
const getLFS = async () => {
86-
const response = await fetch('/api/settings/filtered-folder-structure', {
87-
method: 'GET'
88-
})
87+
try {
88+
const response = await fetch('/api/settings/filtered-folder-structure', {
89+
method: 'GET'
90+
})
8991
90-
if (response.ok) {
91-
return (await response.json()) as TreeViewNode
92-
} else {
93-
toastStore.trigger(errorToast(response.statusText))
94-
return {} as TreeViewNode
92+
if (response.ok) {
93+
lfs = (await response.json()) as TreeViewNode
94+
}
95+
96+
} catch (err) {
97+
toastStore.trigger(errorToast('Failed to fetch local file system structure: '))
9598
}
9699
}
97100
98-
lfs = await getLFS();
101+
getLFS().catch(() => {/* ignore error */})
99102
100103
fileStorage = {
101104
storeFiles: false,
102105
provider: IO.Dropbox,
103106
provider_id: '',
104107
path: '/upload'
105108
}
109+
106110
inputAliases = hasConnections($processSettingsStore.input.provider) ? getCloudProviderAliases($userSession?.connections[$processSettingsStore.input.provider.toLowerCase()]) : new Map()
107111
outputAliases = hasConnections($processSettingsStore.output.provider) ? getCloudProviderAliases($userSession?.connections[$processSettingsStore.output.provider.toLowerCase()]) : new Map()
108112
fileUploadAliases = hasConnections(fileStorage.provider) ? getCloudProviderAliases($userSession?.connections[fileStorage.provider.toLowerCase()]) : new Map()
@@ -118,6 +122,7 @@ import {
118122
goto(`/processes?pipeline_id=${params.get('pipeline_id')}`)
119123
}
120124
125+
121126
$processSettingsStore.pipeline_id =
122127
params.get('pipeline_id') || $processSettingsStore.pipeline_id
123128
@@ -290,7 +295,7 @@ import {
290295
await goto(`/pipelines/${$processSettingsStore.pipeline_id}`)
291296
}
292297
} else {
293-
toastStore.trigger(errorToast(JSON.stringify(response.body)))
298+
toastStore.trigger(errorToast((await response.text())))
294299
starting = false
295300
}
296301
@@ -300,7 +305,7 @@ import {
300305
301306
const getFolderStructure = async (provider: IOProvider, providerId: string, isReset: boolean) => {
302307
303-
if (!hasFolderPicker(provider, true)) {
308+
if (!hasFolderPicker(provider, true) || !providerId) {
304309
return undefined;
305310
}
306311
@@ -385,6 +390,31 @@ import {
385390
let isOutputError = false;
386391
let isFileUploadError = false;
387392
393+
394+
$: if (!fileUploadTree && !isFileUploadError && fileStorage.provider_id && hasConnections(fileStorage.provider.toLowerCase())) {
395+
setFileUploadTree(
396+
fileStorage.provider,
397+
fileStorage.provider_id,
398+
false
399+
)
400+
}
401+
402+
$: if (!inputTree && !isInputError && $processSettingsStore.input.provider_id && hasConnections($processSettingsStore.input.provider.toLowerCase())) {
403+
setInputTree(
404+
$processSettingsStore.input.provider,
405+
$processSettingsStore.input.provider_id,
406+
false
407+
)
408+
}
409+
410+
$: if (!outputTree && !isOutputError && $processSettingsStore.output.provider_id && hasConnections($processSettingsStore.output.provider.toLowerCase())) {
411+
setOutputTree(
412+
$processSettingsStore.output.provider,
413+
$processSettingsStore.output.provider_id,
414+
false
415+
)
416+
}
417+
388418
$: isInputError =
389419
![IO.File, IO.Text, IO.None, IO.LocalDrive].includes($processSettingsStore.input.provider as IO) &&
390420
!hasConnections($processSettingsStore.input.provider);
@@ -521,24 +551,31 @@ import {
521551
label="Source"
522552
options={IO_INPUT}
523553
bind:value={$processSettingsStore.input.provider}
554+
on:change={() => {
555+
$processSettingsStore.input.provider_id = ''
556+
$processSettingsStore.input.path = ''
557+
inputTree = undefined
558+
}}
524559
/>
525560
</div>
526561
{#if !isInputError && !equals($processSettingsStore.input.provider, IO.Text)}
527562
{#if !isStatelessProvider($processSettingsStore.input.provider) && hasConnections($processSettingsStore.input.provider.toLowerCase())}
528-
<Dropdown
529-
label="Connection Alias"
530-
name="input-alias"
531-
options={inputAliases}
532-
initFirst={true}
533-
bind:value={$processSettingsStore.input.provider_id}
534-
on:change={() => {
535-
setInputTree(
536-
$processSettingsStore.input.provider,
537-
$processSettingsStore.input.provider_id,
538-
false
539-
)
540-
}}
541-
/>
563+
{#key $processSettingsStore.input.provider}
564+
<Dropdown
565+
label="Connection Alias"
566+
name="input-alias"
567+
options={inputAliases}
568+
initFirst={true}
569+
bind:value={$processSettingsStore.input.provider_id}
570+
on:change={() => {
571+
setInputTree(
572+
$processSettingsStore.input.provider,
573+
$processSettingsStore.input.provider_id,
574+
false
575+
)
576+
}}
577+
/>
578+
{/key}
542579
{/if}
543580
<Dropdown
544581
label="File extension"
@@ -654,7 +691,7 @@ import {
654691
{/if}
655692
{/if}
656693
{:else if equals($processSettingsStore.input.provider, IO.LocalDrive) }
657-
{#if Object.keys(lfs).length > 0}
694+
{#if lfs && Object.keys(lfs).length > 0}
658695
<FolderStructure
659696
tree={lfs}
660697
label="Folder Picker"
@@ -791,24 +828,31 @@ import {
791828
label="Target"
792829
options={IO_OUTPUT}
793830
bind:value={$processSettingsStore.output.provider}
831+
on:change={() => {
832+
$processSettingsStore.output.provider_id = ''
833+
$processSettingsStore.output.path = ''
834+
outputTree = undefined
835+
}}
794836
/>
795837
</div>
796838
{#if !isOutputError && !isStatelessProvider($processSettingsStore.output.provider)}
797839
{#if hasConnections($processSettingsStore.output.provider.toLowerCase())}
798-
<Dropdown
799-
label="Connection Alias"
800-
name="output-alias"
801-
options={outputAliases}
802-
initFirst={true}
803-
bind:value={$processSettingsStore.output.provider_id}
804-
on:change={() =>
805-
setOutputTree(
806-
$processSettingsStore.output.provider,
807-
$processSettingsStore.output.provider_id,
808-
false
809-
)
810-
}
811-
/>
840+
{#key $processSettingsStore.output.provider_id}
841+
<Dropdown
842+
label="Connection Alias"
843+
name="output-alias"
844+
options={outputAliases}
845+
initFirst={true}
846+
bind:value={$processSettingsStore.output.provider_id}
847+
on:change={() =>
848+
setOutputTree(
849+
$processSettingsStore.output.provider,
850+
$processSettingsStore.output.provider_id,
851+
false
852+
)
853+
}
854+
/>
855+
{/key}
812856
{/if}
813857
<Dropdown
814858
label="File extension"

0 commit comments

Comments
 (0)