diff --git a/apps/metadata-editor-e2e/src/e2e/edit.cy.ts b/apps/metadata-editor-e2e/src/e2e/edit.cy.ts
index 44c3c64479..0fe966b57c 100644
--- a/apps/metadata-editor-e2e/src/e2e/edit.cy.ts
+++ b/apps/metadata-editor-e2e/src/e2e/edit.cy.ts
@@ -464,10 +464,7 @@ describe('editor form', () => {
.find('gn-ui-url-input')
.find('input')
.type('http://example.com/wms')
- cy.get('gn-ui-form-field-online-resources')
- .find('gn-ui-url-input')
- .find('button')
- .click()
+ cy.get('gn-ui-form-field-online-resources').find('button').eq(2).click()
cy.editor_publishAndReload()
cy.get('@saveStatus').should('eq', 'record_up_to_date')
cy.get('@resourcePageBtn').click()
diff --git a/libs/feature/editor/src/lib/components/constraint-card/constraint-card.component.html b/libs/feature/editor/src/lib/components/constraint-card/constraint-card.component.html
index c789c63c97..1281ce6a9b 100644
--- a/libs/feature/editor/src/lib/components/constraint-card/constraint-card.component.html
+++ b/libs/feature/editor/src/lib/components/constraint-card/constraint-card.component.html
@@ -22,7 +22,7 @@
class="mt-3.5"
[value]="constraint_.url?.toString()"
(valueChange)="handleURLChange($event)"
- [showUploadButton]="false"
+ [showValidateButton]="false"
>
diff --git a/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.html b/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.html
index d7e845ff71..f425e7a6b1 100644
--- a/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.html
+++ b/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.html
@@ -26,8 +26,33 @@
-
+
+
+
+
+
+
+
+
+
+
+
+ editor.record.form.field.onlineResource.edit.identifier.submit
+
+
diff --git a/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.ts b/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.ts
index 9b4f6a187a..d58b885cac 100644
--- a/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.ts
+++ b/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.ts
@@ -2,8 +2,10 @@ import { CommonModule } from '@angular/common'
import {
ChangeDetectionStrategy,
Component,
+ EventEmitter,
Input,
OnChanges,
+ Output,
} from '@angular/core'
import { FormsModule } from '@angular/forms'
import { MatRadioModule } from '@angular/material/radio'
@@ -13,8 +15,18 @@ import {
DatasetServiceDistribution,
ServiceProtocol,
} from '@geonetwork-ui/common/domain/model/record'
-import { TextInputComponent } from '@geonetwork-ui/ui/inputs'
+import {
+ ButtonComponent,
+ TextInputComponent,
+ UrlInputComponent,
+} from '@geonetwork-ui/ui/inputs'
import { TranslateModule } from '@ngx-translate/core'
+import {
+ NgIconComponent,
+ provideIcons,
+ provideNgIconsConfig,
+} from '@ng-icons/core'
+import { iconoirCloudUpload } from '@ng-icons/iconoir'
@Component({
selector: 'gn-ui-online-service-resource-input',
@@ -23,18 +35,29 @@ import { TranslateModule } from '@ngx-translate/core'
changeDetection: ChangeDetectionStrategy.OnPush,
standalone: true,
imports: [
+ ButtonComponent,
CommonModule,
+ FormsModule,
MatTooltipModule,
MatRadioModule,
- FormsModule,
+ NgIconComponent,
TextInputComponent,
TranslateModule,
+ UrlInputComponent,
+ ],
+ providers: [
+ provideIcons({ iconoirCloudUpload }),
+ provideNgIconsConfig({
+ size: '1.5em',
+ }),
],
})
export class OnlineServiceResourceInputComponent implements OnChanges {
@Input() service: Omit
@Input() protocolHint?: string
@Input() disabled? = false
+ @Output() urlChange: EventEmitter = new EventEmitter()
+ @Output() identifierSubmit: EventEmitter = new EventEmitter()
selectedProtocol: ServiceProtocol
@@ -78,4 +101,22 @@ export class OnlineServiceResourceInputComponent implements OnChanges {
(option) => option.value === this.service.accessServiceProtocol
)?.value ?? 'other'
}
+
+ handleUrlChange(url: string) {
+ if (!url) return
+ this.urlChange.emit(url)
+ }
+
+ submitIdentifier(identifier: string) {
+ if (!identifier) return
+ this.identifierSubmit.emit(identifier)
+ }
+
+ getIdentifierPlaceholder(): string {
+ const baseKey =
+ 'editor.record.form.field.onlineResource.edit.identifier.placeholder'
+ return this.service.accessServiceProtocol === 'wps'
+ ? `${baseKey}.wps`
+ : baseKey
+ }
}
diff --git a/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.html b/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.html
index dd83fc7362..8322aa8b59 100644
--- a/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.html
+++ b/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.html
@@ -42,7 +42,7 @@
class="w-full"
[disabled]="true"
[value]="onlineResource.url"
- [showUploadButton]="false"
+ [showValidateButton]="false"
[disabled]="disabled$ | async"
>
diff --git a/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.html b/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.html
index 3d54511b29..e5490d2733 100644
--- a/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.html
+++ b/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.html
@@ -23,13 +23,9 @@
-
-
class="w-full"
[disabled]="true"
[value]="onlineResource.url"
- [showUploadButton]="false"
+ [showValidateButton]="false"
>
diff --git a/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.ts b/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.ts
index d5ebd80cfd..86b12e3192 100644
--- a/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.ts
+++ b/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.ts
@@ -174,6 +174,16 @@ export class FormFieldOnlineResourcesComponent {
])
}
+ handleIdentifierSubmit(identifier: string) {
+ this.valueChange.emit([
+ ...this.allResources,
+ {
+ ...this.newService,
+ url: new URL('https://TODO.gov'),
+ },
+ ])
+ }
+
handleServiceModify(
oldService: DatasetServiceDistribution,
newService: DatasetServiceDistribution
diff --git a/libs/ui/inputs/src/lib/url-input/url-input.component.html b/libs/ui/inputs/src/lib/url-input/url-input.component.html
index 923783154e..b8a48a39bf 100644
--- a/libs/ui/inputs/src/lib/url-input/url-input.component.html
+++ b/libs/ui/inputs/src/lib/url-input/url-input.component.html
@@ -21,12 +21,14 @@
-
+
+
+
diff --git a/libs/ui/inputs/src/lib/url-input/url-input.component.stories.ts b/libs/ui/inputs/src/lib/url-input/url-input.component.stories.ts
index c19b4e7de5..1a676d4f9b 100644
--- a/libs/ui/inputs/src/lib/url-input/url-input.component.stories.ts
+++ b/libs/ui/inputs/src/lib/url-input/url-input.component.stories.ts
@@ -20,7 +20,7 @@ export const Primary: StoryObj = {
value: 'http://aaa.org/bbb',
placeholder: 'write a URL here',
disabled: false,
- showUploadButton: true,
+ showValidateButton: true,
},
}
@@ -46,12 +46,12 @@ export const WithoutUploadButton: StoryObj = {
value: null,
disabled: false,
placeholder: 'https://mysite.org/file',
- showUploadButton: false,
+ showValidateButton: false,
},
render: (args) => ({
props: args,
template: `
-
`,
}),
diff --git a/libs/ui/inputs/src/lib/url-input/url-input.component.ts b/libs/ui/inputs/src/lib/url-input/url-input.component.ts
index d725c4bc1b..65a2aeef63 100644
--- a/libs/ui/inputs/src/lib/url-input/url-input.component.ts
+++ b/libs/ui/inputs/src/lib/url-input/url-input.component.ts
@@ -45,7 +45,7 @@ export class UrlInputComponent {
@Input() extraClass = ''
@Input() placeholder = 'https://'
@Input() disabled: boolean
- @Input() showUploadButton = true
+ @Input() showValidateButton = true
/**
* This will emit null if the field is emptied
diff --git a/translations/de.json b/translations/de.json
index 910d1c886c..652ee67880 100644
--- a/translations/de.json
+++ b/translations/de.json
@@ -226,6 +226,9 @@
"editor.record.form.field.onlineResource.dialogTitle": "",
"editor.record.form.field.onlineResource.edit.description": "",
"editor.record.form.field.onlineResource.edit.protocol": "",
+ "editor.record.form.field.onlineResource.edit.identifier.placeholder": "Ebenenname",
+ "editor.record.form.field.onlineResource.edit.identifier.placeholder.wps": "Prozessname",
+ "editor.record.form.field.onlineResource.edit.identifier.submit": "Link zum Dienst",
"editor.record.form.field.onlineResource.edit.title": "",
"editor.record.form.field.onlineResource.fileSize": "",
"editor.record.form.field.onlineResource.modify": "",
diff --git a/translations/en.json b/translations/en.json
index a133e09cc9..1fd456b951 100644
--- a/translations/en.json
+++ b/translations/en.json
@@ -226,6 +226,9 @@
"editor.record.form.field.onlineResource.dialogTitle": "Modify the dataset preview",
"editor.record.form.field.onlineResource.edit.description": "Description",
"editor.record.form.field.onlineResource.edit.protocol": "Protocol",
+ "editor.record.form.field.onlineResource.edit.identifier.placeholder": "Layer name",
+ "editor.record.form.field.onlineResource.edit.identifier.placeholder.wps": "Process name",
+ "editor.record.form.field.onlineResource.edit.identifier.submit": "Link to the service",
"editor.record.form.field.onlineResource.edit.title": "Title",
"editor.record.form.field.onlineResource.fileSize": "{sizeMB}MB",
"editor.record.form.field.onlineResource.modify": "Modify",
diff --git a/translations/es.json b/translations/es.json
index c331eb2040..e13e78b190 100644
--- a/translations/es.json
+++ b/translations/es.json
@@ -226,6 +226,9 @@
"editor.record.form.field.onlineResource.dialogTitle": "",
"editor.record.form.field.onlineResource.edit.description": "",
"editor.record.form.field.onlineResource.edit.protocol": "",
+ "editor.record.form.field.onlineResource.edit.identifier.placeholder": "Nombre de la capa",
+ "editor.record.form.field.onlineResource.edit.identifier.placeholder.wps": "Nombre del proceso",
+ "editor.record.form.field.onlineResource.edit.identifier.submit": "Enlace al servicio",
"editor.record.form.field.onlineResource.edit.title": "",
"editor.record.form.field.onlineResource.fileSize": "",
"editor.record.form.field.onlineResource.modify": "",
diff --git a/translations/fr.json b/translations/fr.json
index 781cd7e099..b3a2734734 100644
--- a/translations/fr.json
+++ b/translations/fr.json
@@ -226,6 +226,9 @@
"editor.record.form.field.onlineResource.dialogTitle": "Modifier l'aperçu du jeu de données",
"editor.record.form.field.onlineResource.edit.description": "Description",
"editor.record.form.field.onlineResource.edit.protocol": "Protocole",
+ "editor.record.form.field.onlineResource.edit.identifier.placeholder": "Nom de la couche",
+ "editor.record.form.field.onlineResource.edit.identifier.placeholder.wps": "Nom du processus",
+ "editor.record.form.field.onlineResource.edit.identifier.submit": "Lier le service",
"editor.record.form.field.onlineResource.edit.title": "Titre",
"editor.record.form.field.onlineResource.fileSize": "{sizeMB} Mo",
"editor.record.form.field.onlineResource.modify": "Modifier",
diff --git a/translations/it.json b/translations/it.json
index 26beec3f06..96f27ff851 100644
--- a/translations/it.json
+++ b/translations/it.json
@@ -226,6 +226,9 @@
"editor.record.form.field.onlineResource.dialogTitle": "",
"editor.record.form.field.onlineResource.edit.description": "",
"editor.record.form.field.onlineResource.edit.protocol": "",
+ "editor.record.form.field.onlineResource.edit.identifier.placeholder": "Nome del livello",
+ "editor.record.form.field.onlineResource.edit.identifier.placeholder.wps": "Nome del processo",
+ "editor.record.form.field.onlineResource.edit.identifier.submit": "Collegamento al servizio",
"editor.record.form.field.onlineResource.edit.title": "",
"editor.record.form.field.onlineResource.fileSize": "",
"editor.record.form.field.onlineResource.modify": "",
diff --git a/translations/nl.json b/translations/nl.json
index 428c012fa4..cc27530324 100644
--- a/translations/nl.json
+++ b/translations/nl.json
@@ -226,6 +226,9 @@
"editor.record.form.field.onlineResource.dialogTitle": "",
"editor.record.form.field.onlineResource.edit.description": "",
"editor.record.form.field.onlineResource.edit.protocol": "",
+ "editor.record.form.field.onlineResource.edit.identifier.placeholder": "Laagnaam",
+ "editor.record.form.field.onlineResource.edit.identifier.placeholder.wps": "Procesnaam",
+ "editor.record.form.field.onlineResource.edit.identifier.submit": "Link naar de dienst",
"editor.record.form.field.onlineResource.edit.title": "",
"editor.record.form.field.onlineResource.fileSize": "",
"editor.record.form.field.onlineResource.modify": "",
diff --git a/translations/pt.json b/translations/pt.json
index c5ceccddac..4ebc167b7f 100644
--- a/translations/pt.json
+++ b/translations/pt.json
@@ -226,6 +226,9 @@
"editor.record.form.field.onlineResource.dialogTitle": "",
"editor.record.form.field.onlineResource.edit.description": "",
"editor.record.form.field.onlineResource.edit.protocol": "",
+ "editor.record.form.field.onlineResource.edit.identifier.placeholder": "Nome da camada",
+ "editor.record.form.field.onlineResource.edit.identifier.placeholder.wps": "Nome do processo",
+ "editor.record.form.field.onlineResource.edit.identifier.submit": "Link para o serviço",
"editor.record.form.field.onlineResource.edit.title": "",
"editor.record.form.field.onlineResource.fileSize": "",
"editor.record.form.field.onlineResource.modify": "",
diff --git a/translations/sk.json b/translations/sk.json
index 9081d8f0d8..7024b85a12 100644
--- a/translations/sk.json
+++ b/translations/sk.json
@@ -226,6 +226,9 @@
"editor.record.form.field.onlineResource.dialogTitle": "",
"editor.record.form.field.onlineResource.edit.description": "",
"editor.record.form.field.onlineResource.edit.protocol": "",
+ "editor.record.form.field.onlineResource.edit.identifier.placeholder": "Názov vrstvy",
+ "editor.record.form.field.onlineResource.edit.identifier.placeholder.wps": "Názov procesu",
+ "editor.record.form.field.onlineResource.edit.identifier.submit": "Odkaz na službu",
"editor.record.form.field.onlineResource.edit.title": "",
"editor.record.form.field.onlineResource.fileSize": "",
"editor.record.form.field.onlineResource.modify": "",