From 5ed9f46096404e50e20a9c096d3f4c3225a95bbc Mon Sep 17 00:00:00 2001 From: Mattia Vianelli Date: Thu, 26 Oct 2023 18:47:25 +0200 Subject: [PATCH] CST-11045 Improved css and remove console log and interpolation, added small notify regarding service compatibility --- .../ldn-services-data.service.ts | 4 ++ .../form/submission-form.component.html | 5 --- .../section-container.component.html | 2 +- .../section-coar-notify.component.html | 42 ++++++++++++------ .../section-coar-notify.component.scss | 15 +++++++ .../section-coar-notify.component.ts | 38 ++++++++++++++-- src/assets/i18n/en.json5 | 2 + src/assets/images/notify_logo.png | Bin 0 -> 19269 bytes 8 files changed, 85 insertions(+), 23 deletions(-) create mode 100644 src/assets/images/notify_logo.png diff --git a/src/app/admin/admin-ldn-services/ldn-services-data/ldn-services-data.service.ts b/src/app/admin/admin-ldn-services/ldn-services-data/ldn-services-data.service.ts index cdd259447a..5ffab2000b 100644 --- a/src/app/admin/admin-ldn-services/ldn-services-data/ldn-services-data.service.ts +++ b/src/app/admin/admin-ldn-services/ldn-services-data/ldn-services-data.service.ts @@ -84,6 +84,10 @@ export class LdnServicesService extends IdentifiableDataService impl return this.findAllData.findAll(options, useCachedVersionIfAvailable, reRequestOnStale, ...linksToFollow); } + /*findByPattern(options?: FindListOptions, useCachedVersionIfAvailable?: boolean, reRequestOnStale?: boolean, ...linksToFollow: FollowLinkConfig[]): Observable>> { + return this.findAllData.find + }*/ + public delete(objectId: string, copyVirtualMetadata?: string[]): Observable> { return this.deleteData.delete(objectId, copyVirtualMetadata); } diff --git a/src/app/submission/form/submission-form.component.html b/src/app/submission/form/submission-form.component.html index c79364e2af..8fa1760d8f 100644 --- a/src/app/submission/form/submission-form.component.html +++ b/src/app/submission/form/submission-form.component.html @@ -1,7 +1,6 @@
-

ds-submission-upload-files

@@ -10,7 +9,6 @@
-

ds-submission-form-collection

-

ds-submission-form-section-add

@@ -32,7 +29,6 @@
-

ds-submission-section-container

@@ -44,7 +40,6 @@
diff --git a/src/app/submission/sections/container/section-container.component.html b/src/app/submission/sections/container/section-container.component.html index f39ba72ffa..99bcec168f 100644 --- a/src/app/submission/sections/container/section-container.component.html +++ b/src/app/submission/sections/container/section-container.component.html @@ -42,7 +42,7 @@
-
aaaaaaaaa +
diff --git a/src/app/submission/sections/section-coar-notify/section-coar-notify.component.html b/src/app/submission/sections/section-coar-notify/section-coar-notify.component.html index c9d79293ac..75318b937f 100644 --- a/src/app/submission/sections/section-coar-notify/section-coar-notify.component.html +++ b/src/app/submission/sections/section-coar-notify/section-coar-notify.component.html @@ -1,15 +1,29 @@ -
- - +
+ +
+ +
+ + {{selectedServices[pattern]?.name}} +
+ +
+
+ Select a service for {{ pattern }} of this item + + Coar-Notify-Pattern + + The selected service is compatible with the item according to its current status. {{ selectedServices[pattern].name }}: {{ selectedServices[pattern].description }} + + + {{ 'ldn-new-service.form.label.addPattern' | translate }} +
+
diff --git a/src/app/submission/sections/section-coar-notify/section-coar-notify.component.scss b/src/app/submission/sections/section-coar-notify/section-coar-notify.component.scss index e69de29bb2..c06ef5951c 100644 --- a/src/app/submission/sections/section-coar-notify/section-coar-notify.component.scss +++ b/src/app/submission/sections/section-coar-notify/section-coar-notify.component.scss @@ -0,0 +1,15 @@ +.add-pattern-link { + color: #0048ff; + cursor: pointer; +} +.ds-alert-coar{ + position: relative +} + +.coar-img-submission{ + position: absolute; top: 0; left: 0; width: 50px; height: 50px; +} + +.ds-alert-box{ + +} diff --git a/src/app/submission/sections/section-coar-notify/section-coar-notify.component.ts b/src/app/submission/sections/section-coar-notify/section-coar-notify.component.ts index 726f5ec6c4..39c8c9753d 100644 --- a/src/app/submission/sections/section-coar-notify/section-coar-notify.component.ts +++ b/src/app/submission/sections/section-coar-notify/section-coar-notify.component.ts @@ -61,6 +61,8 @@ export class SubmissionSectionCoarNotifyComponent extends SectionModelComponent patterns: string[] = []; selectedServices: { [key: string]: LdnService } = {}; patternsLoaded = false; + selectedService: any; + public AlertTypeEnum = AlertType; /** @@ -181,6 +183,18 @@ export class SubmissionSectionCoarNotifyComponent extends SectionModelComponent }); } + + addService() { + this.patterns.push(''); + } + + + removeService(index: number) { + if (index >= 0 && index < this.patterns.length) { + this.patterns.splice(index, 1); + } + } + /** * Handle the customEvent (ex. drag-drop move event). * The customEvent is stored inside event.$event @@ -301,25 +315,43 @@ export class SubmissionSectionCoarNotifyComponent extends SectionModelComponent */ fetchLdnServices() { this.ldnServicesRD$ = this.ldnServicesService.findAll().pipe( - getFirstCompletedRemoteData() + getFirstCompletedRemoteData() ); this.ldnServicesRD$.subscribe((data) => { if (this.patternsLoaded) { this.patterns.forEach((pattern) => { this.selectedServices[pattern] = data.payload.page.find((service) => - this.hasInboundPattern(service, `Request ${pattern}`) + this.hasInboundPattern(service, pattern) ); + + //console.log('Pattern:', pattern); + //console.log('Service:', this.selectedServices[pattern]); + + if (this.selectedServices[pattern]) { + //console.log('Name:', this.selectedServices[pattern].name); + //console.log('Description:', this.selectedServices[pattern].description); + } }); } }); } + protected getSectionStatus(): Observable { return undefined; } hasInboundPattern(service: any, patternType: string): boolean { - return service.notifyServiceInboundPatterns.some(pattern => pattern.pattern === patternType); + //console.log('Pattern Type:', patternType); + //console.log('Inbound Patterns in Service:', service.notifyServiceInboundPatterns); + + const hasPattern = service.notifyServiceInboundPatterns.some((pattern: { pattern: string; }) => { + //console.log('Checking Pattern:', pattern.pattern); + return pattern.pattern === patternType; + }); + + //console.log('Has Inbound Pattern:', hasPattern); + return hasPattern; } } diff --git a/src/assets/i18n/en.json5 b/src/assets/i18n/en.json5 index 40f0150022..58453db518 100644 --- a/src/assets/i18n/en.json5 +++ b/src/assets/i18n/en.json5 @@ -1982,6 +1982,8 @@ "info.coar-notify.breadcrumbs": "Notify Support", + "submission.sections.notify.info": "The selected service is compatible with the item according to its current status. {{ service.name }}: {{ service.description }}", + "info.feedback.head": "Feedback", "info.feedback.title": "Feedback", diff --git a/src/assets/images/notify_logo.png b/src/assets/images/notify_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..0350c641df9cb51c2c6a81c0a6badb96adcd5c87 GIT binary patch literal 19269 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