diff --git a/src/app/admin/admin-ldn-services/admin-ldn-services-routing.module.ts b/src/app/admin/admin-ldn-services/admin-ldn-services-routing.module.ts index 43dc4f3462..282ca430a2 100644 --- a/src/app/admin/admin-ldn-services/admin-ldn-services-routing.module.ts +++ b/src/app/admin/admin-ldn-services/admin-ldn-services-routing.module.ts @@ -1,34 +1,34 @@ -import { NgModule } from '@angular/core'; -import { RouterModule } from '@angular/router'; -import { I18nBreadcrumbResolver } from 'src/app/core/breadcrumbs/i18n-breadcrumb.resolver'; -import { LdnServicesOverviewComponent } from './ldn-services-directory/ldn-services-directory.component'; -import { LdnServiceNewComponent } from './ldn-service-new/ldn-service-new.component'; -import { LdnServiceFormEditComponent } from './ldn-service-form-edit/ldn-service-form-edit.component'; +import {NgModule} from '@angular/core'; +import {RouterModule} from '@angular/router'; +import {I18nBreadcrumbResolver} from 'src/app/core/breadcrumbs/i18n-breadcrumb.resolver'; +import {LdnServicesOverviewComponent} from './ldn-services-directory/ldn-services-directory.component'; +import {LdnServiceNewComponent} from './ldn-service-new/ldn-service-new.component'; +import {LdnServiceFormEditComponent} from './ldn-service-form-edit/ldn-service-form-edit.component'; @NgModule({ - imports: [ - RouterModule.forChild([ - { - path: '', - pathMatch: 'full', - component: LdnServicesOverviewComponent, - resolve: {breadcrumb: I18nBreadcrumbResolver}, - data: {title: 'ldn-registered-services.title', breadcrumbKey: 'ldn-registered-services.new'}, - }, - { - path: 'new', - resolve: {breadcrumb: I18nBreadcrumbResolver}, - component: LdnServiceNewComponent, - data: {title: 'ldn-register-new-service.title', breadcrumbKey: 'ldn-register-new-service'} - }, - { - path: 'edit/:serviceId', - resolve: {breadcrumb: I18nBreadcrumbResolver}, - component: LdnServiceFormEditComponent, - data: {title: 'ldn-edit-service.title', breadcrumbKey: 'ldn-edit-service'} - }, - ]), - ] + imports: [ + RouterModule.forChild([ + { + path: '', + pathMatch: 'full', + component: LdnServicesOverviewComponent, + resolve: {breadcrumb: I18nBreadcrumbResolver}, + data: {title: 'ldn-registered-services.title', breadcrumbKey: 'ldn-registered-services.new'}, + }, + { + path: 'new', + resolve: {breadcrumb: I18nBreadcrumbResolver}, + component: LdnServiceNewComponent, + data: {title: 'ldn-register-new-service.title', breadcrumbKey: 'ldn-register-new-service'} + }, + { + path: 'edit/:serviceId', + resolve: {breadcrumb: I18nBreadcrumbResolver}, + component: LdnServiceFormEditComponent, + data: {title: 'ldn-edit-service.title', breadcrumbKey: 'ldn-edit-service'} + }, + ]), + ] }) export class AdminLdnServicesRoutingModule { diff --git a/src/app/admin/admin-ldn-services/admin-ldn-services.module.ts b/src/app/admin/admin-ldn-services/admin-ldn-services.module.ts index 9ca3775a9e..48ad89fdcc 100644 --- a/src/app/admin/admin-ldn-services/admin-ldn-services.module.ts +++ b/src/app/admin/admin-ldn-services/admin-ldn-services.module.ts @@ -1,29 +1,29 @@ -import { NgModule } from '@angular/core'; -import { CommonModule } from '@angular/common'; -import { AdminLdnServicesRoutingModule } from './admin-ldn-services-routing.module'; -import { LdnServicesOverviewComponent } from './ldn-services-directory/ldn-services-directory.component'; -import { SharedModule } from '../../shared/shared.module'; -import { LdnServiceNewComponent } from './ldn-service-new/ldn-service-new.component'; -import { LdnServiceFormComponent } from './ldn-service-form/ldn-service-form.component'; -import { LdnServiceFormEditComponent } from './ldn-service-form-edit/ldn-service-form-edit.component'; -import { FormsModule } from '@angular/forms'; -import { LdnItemfiltersService } from './ldn-services-data/ldn-itemfilters-data.service'; +import {NgModule} from '@angular/core'; +import {CommonModule} from '@angular/common'; +import {AdminLdnServicesRoutingModule} from './admin-ldn-services-routing.module'; +import {LdnServicesOverviewComponent} from './ldn-services-directory/ldn-services-directory.component'; +import {SharedModule} from '../../shared/shared.module'; +import {LdnServiceNewComponent} from './ldn-service-new/ldn-service-new.component'; +import {LdnServiceFormComponent} from './ldn-service-form/ldn-service-form.component'; +import {LdnServiceFormEditComponent} from './ldn-service-form-edit/ldn-service-form-edit.component'; +import {FormsModule} from '@angular/forms'; +import {LdnItemfiltersService} from './ldn-services-data/ldn-itemfilters-data.service'; @NgModule({ - imports: [ - CommonModule, - SharedModule, - AdminLdnServicesRoutingModule, - FormsModule - ], - declarations: [ - LdnServicesOverviewComponent, - LdnServiceNewComponent, - LdnServiceFormComponent, - LdnServiceFormEditComponent, - ], - providers: [LdnItemfiltersService] + imports: [ + CommonModule, + SharedModule, + AdminLdnServicesRoutingModule, + FormsModule + ], + declarations: [ + LdnServicesOverviewComponent, + LdnServiceNewComponent, + LdnServiceFormComponent, + LdnServiceFormEditComponent, + ], + providers: [LdnItemfiltersService] }) export class AdminLdnServicesModule { } diff --git a/src/app/admin/admin-ldn-services/ldn-service-form-edit/ldn-service-form-edit.component.html b/src/app/admin/admin-ldn-services/ldn-service-form-edit/ldn-service-form-edit.component.html index 2940ee0039..c563c38043 100644 --- a/src/app/admin/admin-ldn-services/ldn-service-form-edit/ldn-service-form-edit.component.html +++ b/src/app/admin/admin-ldn-services/ldn-service-form-edit/ldn-service-form-edit.component.html @@ -87,7 +87,8 @@
-
+
@@ -95,17 +96,12 @@ (click)="inboundPatternDropdown.open();" [readonly]="true" [value]="selectedInboundPatterns" - class="form-control w-100 scrollable-dropdown-input" + class="form-control w-80 scrollable-dropdown-input" formControlName="pattern" id="inboundPatternDropdownButton" ngbDropdownAnchor type="text" /> - - -
{{ selectedInboundPatterns ? ('ldn-service.form.pattern.' + selectedInboundPatterns + '.label' | translate) : ('ldn-new-service.form.label.placeholder.inboundPattern' | translate) }}
-
{{ selectedInboundPatterns ? ('ldn-service.form.pattern.' + selectedInboundPatterns + '.description' | translate) : ('' | translate) }}
+ + +
+
- -
- -
+ class="small-text">{{ 'ldn-service.form.pattern.' + pattern + '.description' | translate }}
+
- - -
- - {{ 'ldn-new-service.form.label.addPattern' | translate }} - -
-   -
- - + + + +
+ +
+
+ + + +
{{ selectedInboundItemfilters ? ('ldn-service.form.pattern.' + selectedInboundItemfilters + '.label' | translate) : ('ldn-new-service.form.label.placeholder.inboundPattern' | translate) }}
+
{{ selectedInboundItemfilters ? ('ldn-service.form.pattern.' + selectedInboundItemfilters + '.description' | translate) : ('' | translate) }}
+ +
+ +
+
+
+
+
+ +
+ +
+
+
+
+ +
+ +
+ + + + + {{ 'ldn-new-service.form.label.addPattern' | translate }} - +
+   +
+ + +
+
+ +
+
+ +
+
+
+
+
+
+ +
+ + + + +
+
+
+
+ + + + +
{{ selectedOutboundPatterns ? ('ldn-service.form.pattern.' + selectedOutboundPatterns + '.label' | translate) : ('ldn-new-service.form.label.placeholder.outboundPattern' | translate) }}
+
{{ selectedOutboundPatterns ? ('ldn-service.form.pattern.' + selectedOutboundPatterns + '.description' | translate) : ('' | translate) }}
+ +
+ +
+
+
+
+ +
+ +
+
+ + + +
+ +
+
+
+
+
+ +
+ +
+
+
+
+ +
+ +
+
+
+ +
+ + {{ 'ldn-new-service.form.label.addPattern' | translate }} + +
+   +
+ + + + + -
+
- - - + + + +
-
+
- - - + + + +
diff --git a/src/app/admin/admin-ldn-services/ldn-service-form/ldn-service-form.component.spec.ts b/src/app/admin/admin-ldn-services/ldn-service-form/ldn-service-form.component.spec.ts index c5c9f11817..f017d4bab2 100644 --- a/src/app/admin/admin-ldn-services/ldn-service-form/ldn-service-form.component.spec.ts +++ b/src/app/admin/admin-ldn-services/ldn-service-form/ldn-service-form.component.spec.ts @@ -1,20 +1,20 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing'; +import {ComponentFixture, TestBed} from '@angular/core/testing'; -import { LdnServiceFormComponent } from './ldn-service-form.component'; -import { FormBuilder, ReactiveFormsModule } from '@angular/forms'; -import { RouterTestingModule } from '@angular/router/testing'; -import { NgbModal, NgbModalModule } from '@ng-bootstrap/ng-bootstrap'; -import { TranslateModule, TranslateService } from '@ngx-translate/core'; -import { LdnItemfiltersService } from '../ldn-services-data/ldn-itemfilters-data.service'; -import { LdnServicesService } from '../ldn-services-data/ldn-services-data.service'; -import { NotificationsService } from 'src/app/shared/notifications/notifications.service'; -import { Router } from '@angular/router'; -import { RouterStub } from 'src/app/shared/testing/router.stub'; -import { createPaginatedList } from 'src/app/shared/testing/utils.test'; -import { Itemfilter } from '../ldn-services-model/ldn-service-itemfilters'; -import { createSuccessfulRemoteDataObject$ } from 'src/app/shared/remote-data.utils'; -import { of } from 'rxjs'; -import { EventEmitter } from '@angular/core'; +import {LdnServiceFormComponent} from './ldn-service-form.component'; +import {FormBuilder, ReactiveFormsModule} from '@angular/forms'; +import {RouterTestingModule} from '@angular/router/testing'; +import {NgbModal, NgbModalModule} from '@ng-bootstrap/ng-bootstrap'; +import {TranslateModule, TranslateService} from '@ngx-translate/core'; +import {LdnItemfiltersService} from '../ldn-services-data/ldn-itemfilters-data.service'; +import {LdnServicesService} from '../ldn-services-data/ldn-services-data.service'; +import {NotificationsService} from 'src/app/shared/notifications/notifications.service'; +import {Router} from '@angular/router'; +import {RouterStub} from 'src/app/shared/testing/router.stub'; +import {createPaginatedList} from 'src/app/shared/testing/utils.test'; +import {Itemfilter} from '../ldn-services-model/ldn-service-itemfilters'; +import {createSuccessfulRemoteDataObject$} from 'src/app/shared/remote-data.utils'; +import {of} from 'rxjs'; +import {EventEmitter} from '@angular/core'; describe('LdnServiceFormComponent', () => { let component: LdnServiceFormComponent; @@ -54,12 +54,17 @@ describe('LdnServiceFormComponent', () => { TranslateModule.forRoot() ], providers: [ - { provide: LdnItemfiltersService, useValue: ldnItemfiltersService }, - { provide: LdnServicesService, useValue: ldnServicesService }, - { provide: NotificationsService, useValue: notificationsService }, - { provide: TranslateService, useValue: translateServiceStub }, - { provide: Router, useValue: new RouterStub() }, - { provide: NgbModal, useValue: { open: () => {/*comment*/ } } }, + {provide: LdnItemfiltersService, useValue: ldnItemfiltersService}, + {provide: LdnServicesService, useValue: ldnServicesService}, + {provide: NotificationsService, useValue: notificationsService}, + {provide: TranslateService, useValue: translateServiceStub}, + {provide: Router, useValue: new RouterStub()}, + { + provide: NgbModal, useValue: { + open: () => {/*comment*/ + } + } + }, FormBuilder ], declarations: [LdnServiceFormComponent] diff --git a/src/app/admin/admin-ldn-services/ldn-service-form/ldn-service-form.component.ts b/src/app/admin/admin-ldn-services/ldn-service-form/ldn-service-form.component.ts index 83d71ea4b2..3f8588972d 100644 --- a/src/app/admin/admin-ldn-services/ldn-service-form/ldn-service-form.component.ts +++ b/src/app/admin/admin-ldn-services/ldn-service-form/ldn-service-form.component.ts @@ -36,8 +36,6 @@ export class LdnServiceFormComponent implements OnInit { formModel: FormGroup; @ViewChild('confirmModal', {static: true}) confirmModal: TemplateRef; @ViewChild('resetFormModal', {static: true}) resetFormModal: TemplateRef; - //public inboundPatterns: object[] = notifyPatterns; - //public outboundPatterns: object[] = notifyPatterns; public inboundPatterns: string[] = notifyPatterns; public outboundPatterns: string[] = notifyPatterns; itemfiltersRD$: Observable>>; @@ -207,18 +205,12 @@ export class LdnServiceFormComponent implements OnInit { const patternArray = (this.formModel.get('notifyServiceInboundPatterns') as FormArray).controls[index] console.log((this.formModel.get('notifyServiceInboundPatterns') as FormArray)) patternArray.patchValue({pattern: patternValue}) - //console.log(patternArray); - //this.getPatternControlNames(index) } selectInboundItemFilter(filterValue: string, index: number): void { - // this.selectedOutboundPatterns = patternValue; const filterArray = (this.formModel.get('notifyServiceInboundPatterns') as FormArray) console.log((this.formModel.get('notifyServiceInboundPatterns') as FormArray)) filterArray.controls[index].patchValue({constraint: filterValue}) - - //console.log(patternArray); - //this.getPatternControlNames(index) } selectOutboundItemFilter(filterValue: string, index: number) { @@ -227,19 +219,10 @@ export class LdnServiceFormComponent implements OnInit { filterArray.controls[index].patchValue({constraint: filterValue}) } - getPatternControlNames(index: number) { - const patternArrayValue = (this.formModel.get('notifyServiceOutboundPatterns') as FormArray).controls[index].value - return patternArrayValue - } - private sendBack() { this.router.navigateByUrl('admin/ldn/services'); } - //selectInboundPattern(pattern: string, index: number): void { - //this.selectedInboundPatterns = pattern; - //} - private createOutboundPatternFormGroup(): FormGroup { return this.formBuilder.group({ diff --git a/src/app/admin/admin-ldn-services/ldn-service-new/ldn-service-new.component.spec.ts b/src/app/admin/admin-ldn-services/ldn-service-new/ldn-service-new.component.spec.ts index d49d393195..ced1371623 100644 --- a/src/app/admin/admin-ldn-services/ldn-service-new/ldn-service-new.component.spec.ts +++ b/src/app/admin/admin-ldn-services/ldn-service-new/ldn-service-new.component.spec.ts @@ -1,25 +1,25 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing'; +import {ComponentFixture, TestBed} from '@angular/core/testing'; -import { LdnServiceNewComponent } from './ldn-service-new.component'; +import {LdnServiceNewComponent} from './ldn-service-new.component'; describe('LdnServiceNewComponent', () => { - let component: LdnServiceNewComponent; - let fixture: ComponentFixture; + let component: LdnServiceNewComponent; + let fixture: ComponentFixture; - beforeEach(async () => { - await TestBed.configureTestingModule({ - declarations: [LdnServiceNewComponent] - }) - .compileComponents(); - }); + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [LdnServiceNewComponent] + }) + .compileComponents(); + }); - beforeEach(() => { - fixture = TestBed.createComponent(LdnServiceNewComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); + beforeEach(() => { + fixture = TestBed.createComponent(LdnServiceNewComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); - it('should create', () => { - expect(component).toBeTruthy(); - }); + it('should create', () => { + expect(component).toBeTruthy(); + }); }); diff --git a/src/app/admin/admin-ldn-services/ldn-service-new/ldn-service-new.component.ts b/src/app/admin/admin-ldn-services/ldn-service-new/ldn-service-new.component.ts index d3ad155e0d..773f042d11 100644 --- a/src/app/admin/admin-ldn-services/ldn-service-new/ldn-service-new.component.ts +++ b/src/app/admin/admin-ldn-services/ldn-service-new/ldn-service-new.component.ts @@ -1,9 +1,9 @@ -import { Component } from '@angular/core'; +import {Component} from '@angular/core'; @Component({ - selector: 'ds-ldn-service-new', - templateUrl: './ldn-service-new.component.html', - styleUrls: ['./ldn-service-new.component.scss'] + selector: 'ds-ldn-service-new', + templateUrl: './ldn-service-new.component.html', + styleUrls: ['./ldn-service-new.component.scss'] }) export class LdnServiceNewComponent { } diff --git a/src/app/admin/admin-ldn-services/ldn-service-serviceMock/ldnServicesRD$-mock.ts b/src/app/admin/admin-ldn-services/ldn-service-serviceMock/ldnServicesRD$-mock.ts index b1a954b9d6..3bd1bf249f 100644 --- a/src/app/admin/admin-ldn-services/ldn-service-serviceMock/ldnServicesRD$-mock.ts +++ b/src/app/admin/admin-ldn-services/ldn-service-serviceMock/ldnServicesRD$-mock.ts @@ -1,67 +1,67 @@ -import { LdnService } from '../ldn-services-model/ldn-services.model'; -import { LDN_SERVICE } from '../ldn-services-model/ldn-service.resource-type'; -import { RemoteData } from '../../../core/data/remote-data'; -import { PaginatedList } from '../../../core/data/paginated-list.model'; -import { Observable, of } from 'rxjs'; +import {LdnService} from '../ldn-services-model/ldn-services.model'; +import {LDN_SERVICE} from '../ldn-services-model/ldn-service.resource-type'; +import {RemoteData} from '../../../core/data/remote-data'; +import {PaginatedList} from '../../../core/data/paginated-list.model'; +import {Observable, of} from 'rxjs'; // Create a mock data object for a single LDN notify service export const mockLdnService: LdnService = { - id: 1, - name: 'Service Name', - description: 'Service Description', - url: 'Service URL', - ldnUrl: 'Service LDN URL', - notifyServiceInboundPatterns: [ - { - pattern: 'patternA', - constraint: 'itemFilterA', - automatic: false, - }, - { - pattern: 'patternB', - constraint: 'itemFilterB', - automatic: true, - }, - ], - notifyServiceOutboundPatterns: [ - { - pattern: 'patternC', - constraint: 'itemFilterC', - }, - ], - type: LDN_SERVICE, - _links: { - self: { - href: 'http://localhost/api/ldn/ldnservices/1', - }, + id: 1, + name: 'Service Name', + description: 'Service Description', + url: 'Service URL', + ldnUrl: 'Service LDN URL', + notifyServiceInboundPatterns: [ + { + pattern: 'patternA', + constraint: 'itemFilterA', + automatic: false, }, + { + pattern: 'patternB', + constraint: 'itemFilterB', + automatic: true, + }, + ], + notifyServiceOutboundPatterns: [ + { + pattern: 'patternC', + constraint: 'itemFilterC', + }, + ], + type: LDN_SERVICE, + _links: { + self: { + href: 'http://localhost/api/ldn/ldnservices/1', + }, + }, }; const mockLdnServices = { - payload: { - elementsPerPage: 20, - totalPages: 1, - totalElements: 1, - currentPage: 1, - first: undefined, - prev: undefined, - next: undefined, - last: undefined, - page: [mockLdnService], - type: LDN_SERVICE, - self: undefined, - getPageLength: function () { - return this.page.length; - }, - _links: { - self: { - href: 'http://localhost/api/ldn/ldnservices/1', - }, - page: [], - }, + payload: { + elementsPerPage: 20, + totalPages: 1, + totalElements: 1, + currentPage: 1, + first: undefined, + prev: undefined, + next: undefined, + last: undefined, + page: [mockLdnService], + type: LDN_SERVICE, + self: undefined, + getPageLength: function () { + return this.page.length; }, - hasSucceeded: true, - msToLive: 0, + _links: { + self: { + href: 'http://localhost/api/ldn/ldnservices/1', + }, + page: [], + }, + }, + hasSucceeded: true, + msToLive: 0, }; diff --git a/src/app/admin/admin-ldn-services/ldn-services-data/ldn-itemfilters-data.service.ts b/src/app/admin/admin-ldn-services/ldn-services-data/ldn-itemfilters-data.service.ts index babb00c959..7aa6231b4d 100644 --- a/src/app/admin/admin-ldn-services/ldn-services-data/ldn-itemfilters-data.service.ts +++ b/src/app/admin/admin-ldn-services/ldn-services-data/ldn-itemfilters-data.service.ts @@ -1,20 +1,20 @@ -import { Injectable } from '@angular/core'; -import { dataService } from '../../../core/data/base/data-service.decorator'; -import { LDN_SERVICE_CONSTRAINT_FILTERS } from '../ldn-services-model/ldn-service.resource-type'; -import { IdentifiableDataService } from '../../../core/data/base/identifiable-data.service'; -import { FindAllData, FindAllDataImpl } from '../../../core/data/base/find-all-data'; +import {Injectable} from '@angular/core'; +import {dataService} from '../../../core/data/base/data-service.decorator'; +import {LDN_SERVICE_CONSTRAINT_FILTERS} from '../ldn-services-model/ldn-service.resource-type'; +import {IdentifiableDataService} from '../../../core/data/base/identifiable-data.service'; +import {FindAllData, FindAllDataImpl} from '../../../core/data/base/find-all-data'; -import { RequestService } from '../../../core/data/request.service'; -import { RemoteDataBuildService } from '../../../core/cache/builders/remote-data-build.service'; -import { ObjectCacheService } from '../../../core/cache/object-cache.service'; -import { HALEndpointService } from '../../../core/shared/hal-endpoint.service'; -import { NotificationsService } from '../../../shared/notifications/notifications.service'; -import { FindListOptions } from '../../../core/data/find-list-options.model'; -import { FollowLinkConfig } from '../../../shared/utils/follow-link-config.model'; -import { Observable } from 'rxjs'; -import { RemoteData } from '../../../core/data/remote-data'; -import { Itemfilter } from '../ldn-services-model/ldn-service-itemfilters'; -import { PaginatedList } from '../../../core/data/paginated-list.model'; +import {RequestService} from '../../../core/data/request.service'; +import {RemoteDataBuildService} from '../../../core/cache/builders/remote-data-build.service'; +import {ObjectCacheService} from '../../../core/cache/object-cache.service'; +import {HALEndpointService} from '../../../core/shared/hal-endpoint.service'; +import {NotificationsService} from '../../../shared/notifications/notifications.service'; +import {FindListOptions} from '../../../core/data/find-list-options.model'; +import {FollowLinkConfig} from '../../../shared/utils/follow-link-config.model'; +import {Observable} from 'rxjs'; +import {RemoteData} from '../../../core/data/remote-data'; +import {Itemfilter} from '../ldn-services-model/ldn-service-itemfilters'; +import {PaginatedList} from '../../../core/data/paginated-list.model'; /** @@ -23,25 +23,25 @@ import { PaginatedList } from '../../../core/data/paginated-list.model'; @Injectable() @dataService(LDN_SERVICE_CONSTRAINT_FILTERS) export class LdnItemfiltersService extends IdentifiableDataService implements FindAllData { - private findAllData: FindAllDataImpl; + private findAllData: FindAllDataImpl; - constructor( - protected requestService: RequestService, - protected rdbService: RemoteDataBuildService, - protected objectCache: ObjectCacheService, - protected halService: HALEndpointService, - protected notificationsService: NotificationsService, - ) { - super('itemfilters', requestService, rdbService, objectCache, halService); + constructor( + protected requestService: RequestService, + protected rdbService: RemoteDataBuildService, + protected objectCache: ObjectCacheService, + protected halService: HALEndpointService, + protected notificationsService: NotificationsService, + ) { + super('itemfilters', requestService, rdbService, objectCache, halService); - this.findAllData = new FindAllDataImpl(this.linkPath, requestService, rdbService, objectCache, halService, this.responseMsToLive); - } + this.findAllData = new FindAllDataImpl(this.linkPath, requestService, rdbService, objectCache, halService, this.responseMsToLive); + } - getEndpoint() { - return this.halService.getEndpoint(this.linkPath); - } + getEndpoint() { + return this.halService.getEndpoint(this.linkPath); + } - findAll(options?: FindListOptions, useCachedVersionIfAvailable?: boolean, reRequestOnStale?: boolean, ...linksToFollow: FollowLinkConfig[]): Observable>> { - return this.findAllData.findAll(options, useCachedVersionIfAvailable, reRequestOnStale, ...linksToFollow); - } + findAll(options?: FindListOptions, useCachedVersionIfAvailable?: boolean, reRequestOnStale?: boolean, ...linksToFollow: FollowLinkConfig[]): Observable>> { + return this.findAllData.findAll(options, useCachedVersionIfAvailable, reRequestOnStale, ...linksToFollow); + } } 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 8e3e3a2747..b8d28f0886 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 @@ -1,38 +1,38 @@ -import { Injectable } from '@angular/core'; -import { dataService } from '../../../core/data/base/data-service.decorator'; -import { LDN_SERVICE } from '../ldn-services-model/ldn-service.resource-type'; -import { IdentifiableDataService } from '../../../core/data/base/identifiable-data.service'; -import { FindAllData, FindAllDataImpl } from '../../../core/data/base/find-all-data'; -import { DeleteData, DeleteDataImpl } from '../../../core/data/base/delete-data'; -import { RequestService } from '../../../core/data/request.service'; -import { RemoteDataBuildService } from '../../../core/cache/builders/remote-data-build.service'; -import { ObjectCacheService } from '../../../core/cache/object-cache.service'; -import { HALEndpointService } from '../../../core/shared/hal-endpoint.service'; -import { NotificationsService } from '../../../shared/notifications/notifications.service'; -import { FindListOptions } from '../../../core/data/find-list-options.model'; -import { FollowLinkConfig } from '../../../shared/utils/follow-link-config.model'; -import { Observable } from 'rxjs'; -import { RemoteData } from '../../../core/data/remote-data'; -import { PaginatedList } from '../../../core/data/paginated-list.model'; -import { NoContent } from '../../../core/shared/NoContent.model'; -import { map, take } from 'rxjs/operators'; -import { URLCombiner } from '../../../core/url-combiner/url-combiner'; -import { MultipartPostRequest } from '../../../core/data/request.models'; -import { RestRequest } from '../../../core/data/rest-request.model'; +import {Injectable} from '@angular/core'; +import {dataService} from '../../../core/data/base/data-service.decorator'; +import {LDN_SERVICE} from '../ldn-services-model/ldn-service.resource-type'; +import {IdentifiableDataService} from '../../../core/data/base/identifiable-data.service'; +import {FindAllData, FindAllDataImpl} from '../../../core/data/base/find-all-data'; +import {DeleteData, DeleteDataImpl} from '../../../core/data/base/delete-data'; +import {RequestService} from '../../../core/data/request.service'; +import {RemoteDataBuildService} from '../../../core/cache/builders/remote-data-build.service'; +import {ObjectCacheService} from '../../../core/cache/object-cache.service'; +import {HALEndpointService} from '../../../core/shared/hal-endpoint.service'; +import {NotificationsService} from '../../../shared/notifications/notifications.service'; +import {FindListOptions} from '../../../core/data/find-list-options.model'; +import {FollowLinkConfig} from '../../../shared/utils/follow-link-config.model'; +import {Observable} from 'rxjs'; +import {RemoteData} from '../../../core/data/remote-data'; +import {PaginatedList} from '../../../core/data/paginated-list.model'; +import {NoContent} from '../../../core/shared/NoContent.model'; +import {map, take} from 'rxjs/operators'; +import {URLCombiner} from '../../../core/url-combiner/url-combiner'; +import {MultipartPostRequest} from '../../../core/data/request.models'; +import {RestRequest} from '../../../core/data/rest-request.model'; -import { LdnService } from '../ldn-services-model/ldn-services.model'; +import {LdnService} from '../ldn-services-model/ldn-services.model'; -import { PatchData, PatchDataImpl } from '../../../core/data/base/patch-data'; -import { ChangeAnalyzer } from '../../../core/data/change-analyzer'; -import { Operation } from 'fast-json-patch'; -import { RestRequestMethod } from '../../../core/data/rest-request-method'; -import { CreateData, CreateDataImpl } from '../../../core/data/base/create-data'; -import { LdnServiceConstrain } from '../ldn-services-model/ldn-service.constrain.model'; -import { getFirstCompletedRemoteData } from '../../../core/shared/operators'; -import { hasValue } from '../../../shared/empty.util'; -import { SearchDataImpl } from '../../../core/data/base/search-data'; -import { RequestParam } from '../../../core/cache/models/request-param.model'; +import {PatchData, PatchDataImpl} from '../../../core/data/base/patch-data'; +import {ChangeAnalyzer} from '../../../core/data/change-analyzer'; +import {Operation} from 'fast-json-patch'; +import {RestRequestMethod} from '../../../core/data/rest-request-method'; +import {CreateData, CreateDataImpl} from '../../../core/data/base/create-data'; +import {LdnServiceConstrain} from '../ldn-services-model/ldn-service.constrain.model'; +import {getFirstCompletedRemoteData} from '../../../core/shared/operators'; +import {hasValue} from '../../../shared/empty.util'; +import {SearchDataImpl} from '../../../core/data/base/search-data'; +import {RequestParam} from '../../../core/cache/models/request-param.model'; /** * A service responsible for fetching/sending data from/to the REST API on the ldnservices endpoint @@ -40,99 +40,99 @@ import { RequestParam } from '../../../core/cache/models/request-param.model'; @Injectable() @dataService(LDN_SERVICE) export class LdnServicesService extends IdentifiableDataService implements FindAllData, DeleteData, PatchData, CreateData { - createData: CreateDataImpl; - private findAllData: FindAllDataImpl; - private deleteData: DeleteDataImpl; - private patchData: PatchDataImpl; - private comparator: ChangeAnalyzer; - private searchData: SearchDataImpl; + createData: CreateDataImpl; + private findAllData: FindAllDataImpl; + private deleteData: DeleteDataImpl; + private patchData: PatchDataImpl; + private comparator: ChangeAnalyzer; + private searchData: SearchDataImpl; - private findByPatternEndpoint = 'byInboundPattern'; + private findByPatternEndpoint = 'byInboundPattern'; - constructor( - protected requestService: RequestService, - protected rdbService: RemoteDataBuildService, - protected objectCache: ObjectCacheService, - protected halService: HALEndpointService, - protected notificationsService: NotificationsService, - ) { - super('ldnservices', requestService, rdbService, objectCache, halService); + constructor( + protected requestService: RequestService, + protected rdbService: RemoteDataBuildService, + protected objectCache: ObjectCacheService, + protected halService: HALEndpointService, + protected notificationsService: NotificationsService, + ) { + super('ldnservices', requestService, rdbService, objectCache, halService); - this.findAllData = new FindAllDataImpl(this.linkPath, requestService, rdbService, objectCache, halService, this.responseMsToLive); - this.searchData = new SearchDataImpl(this.linkPath, requestService, rdbService, objectCache, halService, this.responseMsToLive); - this.deleteData = new DeleteDataImpl(this.linkPath, requestService, rdbService, objectCache, halService, notificationsService, this.responseMsToLive, this.constructIdEndpoint); - this.patchData = new PatchDataImpl(this.linkPath, requestService, rdbService, objectCache, halService, this.comparator, this.responseMsToLive, this.constructIdEndpoint); - this.createData = new CreateDataImpl(this.linkPath, requestService, rdbService, objectCache, halService, notificationsService, this.responseMsToLive); - } + this.findAllData = new FindAllDataImpl(this.linkPath, requestService, rdbService, objectCache, halService, this.responseMsToLive); + this.searchData = new SearchDataImpl(this.linkPath, requestService, rdbService, objectCache, halService, this.responseMsToLive); + this.deleteData = new DeleteDataImpl(this.linkPath, requestService, rdbService, objectCache, halService, notificationsService, this.responseMsToLive, this.constructIdEndpoint); + this.patchData = new PatchDataImpl(this.linkPath, requestService, rdbService, objectCache, halService, this.comparator, this.responseMsToLive, this.constructIdEndpoint); + this.createData = new CreateDataImpl(this.linkPath, requestService, rdbService, objectCache, halService, notificationsService, this.responseMsToLive); + } - create(object: LdnService): Observable> { - return this.createData.create(object); - } + create(object: LdnService): Observable> { + return this.createData.create(object); + } - patch(object: LdnService, operations: Operation[]): Observable> { - return this.patchData.patch(object, operations); - } + patch(object: LdnService, operations: Operation[]): Observable> { + return this.patchData.patch(object, operations); + } - update(object: LdnService): Observable> { - return this.patchData.update(object); - } + update(object: LdnService): Observable> { + return this.patchData.update(object); + } - commitUpdates(method?: RestRequestMethod): void { - return this.patchData.commitUpdates(method); - } + commitUpdates(method?: RestRequestMethod): void { + return this.patchData.commitUpdates(method); + } - createPatchFromCache(object: LdnService): Observable { - return this.patchData.createPatchFromCache(object); - } + createPatchFromCache(object: LdnService): Observable { + return this.patchData.createPatchFromCache(object); + } - findAll(options?: FindListOptions, useCachedVersionIfAvailable?: boolean, reRequestOnStale?: boolean, ...linksToFollow: FollowLinkConfig[]): Observable>> { - return this.findAllData.findAll(options, useCachedVersionIfAvailable, reRequestOnStale, ...linksToFollow); - } + findAll(options?: FindListOptions, useCachedVersionIfAvailable?: boolean, reRequestOnStale?: boolean, ...linksToFollow: FollowLinkConfig[]): Observable>> { + return this.findAllData.findAll(options, useCachedVersionIfAvailable, reRequestOnStale, ...linksToFollow); + } - findByInboundPattern(pattern: string, options?: FindListOptions, useCachedVersionIfAvailable?: boolean, reRequestOnStale?: boolean, ...linksToFollow: FollowLinkConfig[]): Observable>> { - const params = [new RequestParam('pattern', pattern)]; - const findListOptions = Object.assign(new FindListOptions(), options, { searchParams: params }); - return this.searchData.searchBy(this.findByPatternEndpoint, findListOptions, useCachedVersionIfAvailable, reRequestOnStale, ...linksToFollow); - } + findByInboundPattern(pattern: string, options?: FindListOptions, useCachedVersionIfAvailable?: boolean, reRequestOnStale?: boolean, ...linksToFollow: FollowLinkConfig[]): Observable>> { + const params = [new RequestParam('pattern', pattern)]; + const findListOptions = Object.assign(new FindListOptions(), options, {searchParams: params}); + return this.searchData.searchBy(this.findByPatternEndpoint, findListOptions, useCachedVersionIfAvailable, reRequestOnStale, ...linksToFollow); + } - public delete(objectId: string, copyVirtualMetadata?: string[]): Observable> { - return this.deleteData.delete(objectId, copyVirtualMetadata); - } + public delete(objectId: string, copyVirtualMetadata?: string[]): Observable> { + return this.deleteData.delete(objectId, copyVirtualMetadata); + } - public deleteByHref(href: string, copyVirtualMetadata?: string[]): Observable> { - return this.deleteData.deleteByHref(href, copyVirtualMetadata); - } + public deleteByHref(href: string, copyVirtualMetadata?: string[]): Observable> { + return this.deleteData.deleteByHref(href, copyVirtualMetadata); + } - public invoke(serviceName: string, serviceId: string, parameters: LdnServiceConstrain[], files: File[]): Observable> { - const requestId = this.requestService.generateRequestId(); - this.getBrowseEndpoint().pipe( - take(1), - map((endpoint: string) => new URLCombiner(endpoint, serviceName, 'processes', serviceId).toString()), - map((endpoint: string) => { - const body = this.getInvocationFormData(parameters, files); - return new MultipartPostRequest(requestId, endpoint, body); - }) - ).subscribe((request: RestRequest) => this.requestService.send(request)); + public invoke(serviceName: string, serviceId: string, parameters: LdnServiceConstrain[], files: File[]): Observable> { + const requestId = this.requestService.generateRequestId(); + this.getBrowseEndpoint().pipe( + take(1), + map((endpoint: string) => new URLCombiner(endpoint, serviceName, 'processes', serviceId).toString()), + map((endpoint: string) => { + const body = this.getInvocationFormData(parameters, files); + return new MultipartPostRequest(requestId, endpoint, body); + }) + ).subscribe((request: RestRequest) => this.requestService.send(request)); - return this.rdbService.buildFromRequestUUID(requestId); - } + return this.rdbService.buildFromRequestUUID(requestId); + } - public ldnServiceWithNameExistsAndCanExecute(scriptName: string): Observable { - return this.findById(scriptName).pipe( - getFirstCompletedRemoteData(), - map((rd: RemoteData) => { - return hasValue(rd.payload); - }), - ); - } + public ldnServiceWithNameExistsAndCanExecute(scriptName: string): Observable { + return this.findById(scriptName).pipe( + getFirstCompletedRemoteData(), + map((rd: RemoteData) => { + return hasValue(rd.payload); + }), + ); + } - private getInvocationFormData(constrain: LdnServiceConstrain[], files: File[]): FormData { - const form: FormData = new FormData(); - form.set('properties', JSON.stringify(constrain)); - files.forEach((file: File) => { - form.append('file', file); - }); - return form; - } + private getInvocationFormData(constrain: LdnServiceConstrain[], files: File[]): FormData { + const form: FormData = new FormData(); + form.set('properties', JSON.stringify(constrain)); + files.forEach((file: File) => { + form.append('file', file); + }); + return form; + } } diff --git a/src/app/admin/admin-ldn-services/ldn-services-directory/ldn-services-directory.component.html b/src/app/admin/admin-ldn-services/ldn-services-directory/ldn-services-directory.component.html index 45c2106468..e19f986e1a 100644 --- a/src/app/admin/admin-ldn-services/ldn-services-directory/ldn-services-directory.component.html +++ b/src/app/admin/admin-ldn-services/ldn-services-directory/ldn-services-directory.component.html @@ -1,83 +1,84 @@
-
-

{{ 'ldn-registered-services.title' | translate }}

-
-
- -
- -
- - - - - - - - - - - - - - + + + +
{{ 'service.overview.table.name' | translate }}{{ 'service.overview.table.description' | translate }}{{ 'service.overview.table.status' | translate }}{{ 'service.overview.table.actions' | translate }}
{{ ldnService.name }}{{ ldnService.description }} +
+

{{ 'ldn-registered-services.title' | translate }}

+
+
+ +
+ +
+ + + + + + + + + + + + + + - - - -
{{ 'service.overview.table.name' | translate }}{{ 'service.overview.table.description' | translate }}{{ 'service.overview.table.status' | translate }}{{ 'service.overview.table.actions' | translate }}
{{ ldnService.name }}{{ ldnService.description }} {{ ldnService.enabled ? ('ldn-service.overview.table.enabled' | translate) : ('ldn-service.overview.table.disabled' | translate) }} - -
- - -
-
-
-
+
+
+ + +
+
+
+
-
+
- - - + + + +
diff --git a/src/app/admin/admin-ldn-services/ldn-services-directory/ldn-services-directory.component.spec.ts b/src/app/admin/admin-ldn-services/ldn-services-directory/ldn-services-directory.component.spec.ts index 4efa29bce8..87a1da27a1 100644 --- a/src/app/admin/admin-ldn-services/ldn-services-directory/ldn-services-directory.component.spec.ts +++ b/src/app/admin/admin-ldn-services/ldn-services-directory/ldn-services-directory.component.spec.ts @@ -1,14 +1,14 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing'; -import { LdnServicesOverviewComponent } from './ldn-services-directory.component'; -import { ChangeDetectorRef, EventEmitter } from '@angular/core'; -import { NotificationsService } from '../../../shared/notifications/notifications.service'; -import { NotificationsServiceStub } from '../../../shared/testing/notifications-service.stub'; -import { TranslateModule, TranslateService } from '@ngx-translate/core'; -import { NgbModal } from '@ng-bootstrap/ng-bootstrap'; -import { LdnServicesService } from '../ldn-services-data/ldn-services-data.service'; -import { PaginationService } from '../../../core/pagination/pagination.service'; -import { PaginationServiceStub } from '../../../shared/testing/pagination-service.stub'; -import { of } from 'rxjs'; +import {ComponentFixture, TestBed} from '@angular/core/testing'; +import {LdnServicesOverviewComponent} from './ldn-services-directory.component'; +import {ChangeDetectorRef, EventEmitter} from '@angular/core'; +import {NotificationsService} from '../../../shared/notifications/notifications.service'; +import {NotificationsServiceStub} from '../../../shared/testing/notifications-service.stub'; +import {TranslateModule, TranslateService} from '@ngx-translate/core'; +import {NgbModal} from '@ng-bootstrap/ng-bootstrap'; +import {LdnServicesService} from '../ldn-services-data/ldn-services-data.service'; +import {PaginationService} from '../../../core/pagination/pagination.service'; +import {PaginationServiceStub} from '../../../shared/testing/pagination-service.stub'; +import {of} from 'rxjs'; describe('LdnServicesOverviewComponent', () => { let component: LdnServicesOverviewComponent; @@ -26,17 +26,17 @@ describe('LdnServicesOverviewComponent', () => { imports: [TranslateModule.forRoot()], declarations: [LdnServicesOverviewComponent], providers: [ - { provide: LdnServicesService, useValue: {} }, - { provide: PaginationService, useValue: new PaginationServiceStub() }, + {provide: LdnServicesService, useValue: {}}, + {provide: PaginationService, useValue: new PaginationServiceStub()}, { provide: NgbModal, useValue: { open: () => {/*comment*/ } } }, - { provide: ChangeDetectorRef, useValue: {} }, - { provide: NotificationsService, useValue: NotificationsServiceStub }, - { provide: TranslateService, useValue: translateServiceStub }, + {provide: ChangeDetectorRef, useValue: {}}, + {provide: NotificationsService, useValue: NotificationsServiceStub}, + {provide: TranslateService, useValue: translateServiceStub}, ] }) .compileComponents(); diff --git a/src/app/admin/admin-ldn-services/ldn-services-directory/ldn-services-directory.component.ts b/src/app/admin/admin-ldn-services/ldn-services-directory/ldn-services-directory.component.ts index 3db9231ac2..9fa237fc4e 100644 --- a/src/app/admin/admin-ldn-services/ldn-services-directory/ldn-services-directory.component.ts +++ b/src/app/admin/admin-ldn-services/ldn-services-directory/ldn-services-directory.component.ts @@ -7,140 +7,140 @@ import { TemplateRef, ViewChild } from '@angular/core'; -import { Observable, Subscription } from 'rxjs'; -import { RemoteData } from '../../../core/data/remote-data'; -import { PaginatedList } from '../../../core/data/paginated-list.model'; -import { FindListOptions } from '../../../core/data/find-list-options.model'; -import { LdnService } from '../ldn-services-model/ldn-services.model'; -import { PaginationComponentOptions } from '../../../shared/pagination/pagination-component-options.model'; -import { map, switchMap } from 'rxjs/operators'; -import { LdnServicesService } from 'src/app/admin/admin-ldn-services/ldn-services-data/ldn-services-data.service'; -import { PaginationService } from 'src/app/core/pagination/pagination.service'; -import { NgbModal } from '@ng-bootstrap/ng-bootstrap'; -import { hasValue } from '../../../shared/empty.util'; -import { Operation } from 'fast-json-patch'; -import { getFirstCompletedRemoteData } from '../../../core/shared/operators'; -import { NotificationsService } from '../../../shared/notifications/notifications.service'; -import { TranslateService } from '@ngx-translate/core'; +import {Observable, Subscription} from 'rxjs'; +import {RemoteData} from '../../../core/data/remote-data'; +import {PaginatedList} from '../../../core/data/paginated-list.model'; +import {FindListOptions} from '../../../core/data/find-list-options.model'; +import {LdnService} from '../ldn-services-model/ldn-services.model'; +import {PaginationComponentOptions} from '../../../shared/pagination/pagination-component-options.model'; +import {map, switchMap} from 'rxjs/operators'; +import {LdnServicesService} from 'src/app/admin/admin-ldn-services/ldn-services-data/ldn-services-data.service'; +import {PaginationService} from 'src/app/core/pagination/pagination.service'; +import {NgbModal} from '@ng-bootstrap/ng-bootstrap'; +import {hasValue} from '../../../shared/empty.util'; +import {Operation} from 'fast-json-patch'; +import {getFirstCompletedRemoteData} from '../../../core/shared/operators'; +import {NotificationsService} from '../../../shared/notifications/notifications.service'; +import {TranslateService} from '@ngx-translate/core'; @Component({ - selector: 'ds-ldn-services-directory', - templateUrl: './ldn-services-directory.component.html', - styleUrls: ['./ldn-services-directory.component.scss'], - changeDetection: ChangeDetectionStrategy.Default + selector: 'ds-ldn-services-directory', + templateUrl: './ldn-services-directory.component.html', + styleUrls: ['./ldn-services-directory.component.scss'], + changeDetection: ChangeDetectionStrategy.Default }) export class LdnServicesOverviewComponent implements OnInit, OnDestroy { - selectedServiceId: string | number | null = null; - servicesData: any[] = []; - @ViewChild('deleteModal', {static: true}) deleteModal: TemplateRef; - ldnServicesRD$: Observable>>; - config: FindListOptions = Object.assign(new FindListOptions(), { - elementsPerPage: 20 - }); - pageConfig: PaginationComponentOptions = Object.assign(new PaginationComponentOptions(), { - id: 'po', - pageSize: 20 - }); - isProcessingSub: Subscription; - private modalRef: any; + selectedServiceId: string | number | null = null; + servicesData: any[] = []; + @ViewChild('deleteModal', {static: true}) deleteModal: TemplateRef; + ldnServicesRD$: Observable>>; + config: FindListOptions = Object.assign(new FindListOptions(), { + elementsPerPage: 20 + }); + pageConfig: PaginationComponentOptions = Object.assign(new PaginationComponentOptions(), { + id: 'po', + pageSize: 20 + }); + isProcessingSub: Subscription; + private modalRef: any; - constructor( - protected ldnServicesService: LdnServicesService, - protected paginationService: PaginationService, - protected modalService: NgbModal, - private cdRef: ChangeDetectorRef, - private notificationService: NotificationsService, - private translateService: TranslateService, - ) { + constructor( + protected ldnServicesService: LdnServicesService, + protected paginationService: PaginationService, + protected modalService: NgbModal, + private cdRef: ChangeDetectorRef, + private notificationService: NotificationsService, + private translateService: TranslateService, + ) { + } + + ngOnInit(): void { + this.setLdnServices(); + } + + setLdnServices() { + this.ldnServicesRD$ = this.paginationService.getFindListOptions(this.pageConfig.id, this.config).pipe( + switchMap((config) => this.ldnServicesService.findAll(config, false, false).pipe( + getFirstCompletedRemoteData() + )) + ); + } + + ngOnDestroy(): void { + this.paginationService.clearPagination(this.pageConfig.id); + if (hasValue(this.isProcessingSub)) { + this.isProcessingSub.unsubscribe(); } + } - ngOnInit(): void { - this.setLdnServices(); - } + openDeleteModal(content) { + this.modalRef = this.modalService.open(content); + } - setLdnServices() { - this.ldnServicesRD$ = this.paginationService.getFindListOptions(this.pageConfig.id, this.config).pipe( - switchMap((config) => this.ldnServicesService.findAll(config, false, false).pipe( - getFirstCompletedRemoteData() - )) - ); - } + closeModal() { + this.modalRef.close(); + this.cdRef.detectChanges(); + } - ngOnDestroy(): void { - this.paginationService.clearPagination(this.pageConfig.id); - if (hasValue(this.isProcessingSub)) { - this.isProcessingSub.unsubscribe(); + selectServiceToDelete(serviceId: number) { + this.selectedServiceId = serviceId; + this.openDeleteModal(this.deleteModal); + } + + deleteSelected(serviceId: string, ldnServicesService: LdnServicesService): void { + if (this.selectedServiceId !== null) { + ldnServicesService.delete(serviceId).pipe(getFirstCompletedRemoteData()).subscribe((rd: RemoteData) => { + if (rd.hasSucceeded) { + this.servicesData = this.servicesData.filter(service => service.id !== serviceId); + this.ldnServicesRD$ = this.ldnServicesRD$.pipe( + map((remoteData: RemoteData>) => { + if (remoteData.hasSucceeded) { + remoteData.payload.page = remoteData.payload.page.filter(service => service.id.toString() !== serviceId); + } + return remoteData; + }) + ); + this.cdRef.detectChanges(); + this.closeModal(); + this.notificationService.success(this.translateService.get('ldn-service-delete.notification.success.title'), + this.translateService.get('ldn-service-delete.notification.success.content')); + } else { + this.notificationService.error(this.translateService.get('ldn-service-delete.notification.error.title'), + this.translateService.get('ldn-service-delete.notification.error.content')); + this.cdRef.detectChanges(); } + }); } + } - openDeleteModal(content) { - this.modalRef = this.modalService.open(content); - } - closeModal() { - this.modalRef.close(); - this.cdRef.detectChanges(); - } + toggleStatus(ldnService: any, ldnServicesService: LdnServicesService): void { + const newStatus = !ldnService.enabled; + const originalStatus = ldnService.enabled; - selectServiceToDelete(serviceId: number) { - this.selectedServiceId = serviceId; - this.openDeleteModal(this.deleteModal); - } + const patchOperation: Operation = { + op: 'replace', + path: '/enabled', + value: newStatus, + }; - deleteSelected(serviceId: string, ldnServicesService: LdnServicesService): void { - if (this.selectedServiceId !== null) { - ldnServicesService.delete(serviceId).pipe(getFirstCompletedRemoteData()).subscribe((rd: RemoteData) => { - if (rd.hasSucceeded) { - this.servicesData = this.servicesData.filter(service => service.id !== serviceId); - this.ldnServicesRD$ = this.ldnServicesRD$.pipe( - map((remoteData: RemoteData>) => { - if (remoteData.hasSucceeded) { - remoteData.payload.page = remoteData.payload.page.filter(service => service.id.toString() !== serviceId); - } - return remoteData; - }) - ); - this.cdRef.detectChanges(); - this.closeModal(); - this.notificationService.success(this.translateService.get('ldn-service-delete.notification.success.title'), - this.translateService.get('ldn-service-delete.notification.success.content')); - } else { - this.notificationService.error(this.translateService.get('ldn-service-delete.notification.error.title'), - this.translateService.get('ldn-service-delete.notification.error.content')); - this.cdRef.detectChanges(); - } - }); + ldnServicesService.patch(ldnService, [patchOperation]).pipe(getFirstCompletedRemoteData()).subscribe( + (rd: RemoteData) => { + if (rd.hasSucceeded) { + ldnService.enabled = newStatus; + this.notificationService.success(this.translateService.get('ldn-enable-service.notification.success.title'), + this.translateService.get('ldn-enable-service.notification.success.content')); + } else { + ldnService.enabled = originalStatus; + this.notificationService.error(this.translateService.get('ldn-enable-service.notification.error.title'), + this.translateService.get('ldn-enable-service.notification.error.content')); } - } - - - toggleStatus(ldnService: any, ldnServicesService: LdnServicesService): void { - const newStatus = !ldnService.enabled; - const originalStatus = ldnService.enabled; - - const patchOperation: Operation = { - op: 'replace', - path: '/enabled', - value: newStatus, - }; - - ldnServicesService.patch(ldnService, [patchOperation]).pipe(getFirstCompletedRemoteData()).subscribe( - (rd: RemoteData) => { - if (rd.hasSucceeded) { - ldnService.enabled = newStatus; - this.notificationService.success(this.translateService.get('ldn-enable-service.notification.success.title'), - this.translateService.get('ldn-enable-service.notification.success.content')); - } else { - ldnService.enabled = originalStatus; - this.notificationService.error(this.translateService.get('ldn-enable-service.notification.error.title'), - this.translateService.get('ldn-enable-service.notification.error.content')); - } - } - ); - } + } + ); + } } diff --git a/src/app/admin/admin-ldn-services/ldn-services-model/ldn-service-itemfilters.ts b/src/app/admin/admin-ldn-services/ldn-services-model/ldn-service-itemfilters.ts index 6aceada3df..55b7ad8b98 100644 --- a/src/app/admin/admin-ldn-services/ldn-services-model/ldn-service-itemfilters.ts +++ b/src/app/admin/admin-ldn-services/ldn-services-model/ldn-service-itemfilters.ts @@ -1,31 +1,31 @@ -import { autoserialize, deserialize, inheritSerialization } from 'cerialize'; -import { LDN_SERVICE_CONSTRAINT_FILTER } from './ldn-service.resource-type'; -import { CacheableObject } from '../../../core/cache/cacheable-object.model'; -import { typedObject } from '../../../core/cache/builders/build-decorators'; -import { excludeFromEquals } from '../../../core/utilities/equals.decorators'; -import { ResourceType } from '../../../core/shared/resource-type'; +import {autoserialize, deserialize, inheritSerialization} from 'cerialize'; +import {LDN_SERVICE_CONSTRAINT_FILTER} from './ldn-service.resource-type'; +import {CacheableObject} from '../../../core/cache/cacheable-object.model'; +import {typedObject} from '../../../core/cache/builders/build-decorators'; +import {excludeFromEquals} from '../../../core/utilities/equals.decorators'; +import {ResourceType} from '../../../core/shared/resource-type'; /** A single filter value and its properties. */ @typedObject @inheritSerialization(CacheableObject) export class Itemfilter extends CacheableObject { - static type = LDN_SERVICE_CONSTRAINT_FILTER; + static type = LDN_SERVICE_CONSTRAINT_FILTER; - @excludeFromEquals - @autoserialize - type: ResourceType; + @excludeFromEquals + @autoserialize + type: ResourceType; - @autoserialize - id: string; + @autoserialize + id: string; - @deserialize - _links: { - self: { - href: string; - }; + @deserialize + _links: { + self: { + href: string; }; + }; - get self(): string { - return this._links.self.href; - } + get self(): string { + return this._links.self.href; + } } diff --git a/src/app/admin/admin-ldn-services/ldn-services-model/ldn-service-patterns.model.ts b/src/app/admin/admin-ldn-services/ldn-services-model/ldn-service-patterns.model.ts index 1103056e47..7fb8072a6f 100644 --- a/src/app/admin/admin-ldn-services/ldn-services-model/ldn-service-patterns.model.ts +++ b/src/app/admin/admin-ldn-services/ldn-services-model/ldn-service-patterns.model.ts @@ -1,13 +1,13 @@ -import { autoserialize } from 'cerialize'; +import {autoserialize} from 'cerialize'; /** * notify service patterns */ export class NotifyServicePattern { - @autoserialize - pattern: string; - @autoserialize - constraint: string; - @autoserialize - automatic: string; + @autoserialize + pattern: string; + @autoserialize + constraint: string; + @autoserialize + automatic: string; } diff --git a/src/app/admin/admin-ldn-services/ldn-services-model/ldn-service-status.model.ts b/src/app/admin/admin-ldn-services/ldn-services-model/ldn-service-status.model.ts index d9e45d91a9..040e4d37b8 100644 --- a/src/app/admin/admin-ldn-services/ldn-services-model/ldn-service-status.model.ts +++ b/src/app/admin/admin-ldn-services/ldn-services-model/ldn-service-status.model.ts @@ -2,7 +2,7 @@ * List of services statuses */ export enum LdnServiceStatus { - UNKOWN, - DISABLED, - ENABLED, + UNKOWN, + DISABLED, + ENABLED, } diff --git a/src/app/admin/admin-ldn-services/ldn-services-model/ldn-service.constrain.model.ts b/src/app/admin/admin-ldn-services/ldn-services-model/ldn-service.constrain.model.ts index 500cefbd52..5121e47f69 100644 --- a/src/app/admin/admin-ldn-services/ldn-services-model/ldn-service.constrain.model.ts +++ b/src/app/admin/admin-ldn-services/ldn-services-model/ldn-service.constrain.model.ts @@ -1,3 +1,3 @@ export class LdnServiceConstrain { - void: any; + void: any; } diff --git a/src/app/admin/admin-ldn-services/ldn-services-model/ldn-service.resource-type.ts b/src/app/admin/admin-ldn-services/ldn-services-model/ldn-service.resource-type.ts index 05a881e7e7..4fb510c032 100644 --- a/src/app/admin/admin-ldn-services/ldn-services-model/ldn-service.resource-type.ts +++ b/src/app/admin/admin-ldn-services/ldn-services-model/ldn-service.resource-type.ts @@ -4,7 +4,7 @@ * Needs to be in a separate file to prevent circular * dependencies in webpack. */ -import { ResourceType } from '../../../core/shared/resource-type'; +import {ResourceType} from '../../../core/shared/resource-type'; export const LDN_SERVICE = new ResourceType('ldnservice'); export const LDN_SERVICE_CONSTRAINT_FILTERS = new ResourceType('itemfilters'); diff --git a/src/app/admin/admin-ldn-services/ldn-services-model/ldn-services.model.ts b/src/app/admin/admin-ldn-services/ldn-services-model/ldn-services.model.ts index 8631ef2451..631434f7f0 100644 --- a/src/app/admin/admin-ldn-services/ldn-services-model/ldn-services.model.ts +++ b/src/app/admin/admin-ldn-services/ldn-services-model/ldn-services.model.ts @@ -1,57 +1,57 @@ -import { ResourceType } from '../../../core/shared/resource-type'; -import { CacheableObject } from '../../../core/cache/cacheable-object.model'; -import { autoserialize, deserialize, deserializeAs, inheritSerialization } from 'cerialize'; -import { LDN_SERVICE } from './ldn-service.resource-type'; -import { excludeFromEquals } from '../../../core/utilities/equals.decorators'; -import { typedObject } from '../../../core/cache/builders/build-decorators'; -import { NotifyServicePattern } from './ldn-service-patterns.model'; +import {ResourceType} from '../../../core/shared/resource-type'; +import {CacheableObject} from '../../../core/cache/cacheable-object.model'; +import {autoserialize, deserialize, deserializeAs, inheritSerialization} from 'cerialize'; +import {LDN_SERVICE} from './ldn-service.resource-type'; +import {excludeFromEquals} from '../../../core/utilities/equals.decorators'; +import {typedObject} from '../../../core/cache/builders/build-decorators'; +import {NotifyServicePattern} from './ldn-service-patterns.model'; /** An LdnService and its properties. */ @typedObject @inheritSerialization(CacheableObject) export class LdnService extends CacheableObject { - static type = LDN_SERVICE; + static type = LDN_SERVICE; - @excludeFromEquals - @autoserialize - type: ResourceType; + @excludeFromEquals + @autoserialize + type: ResourceType; - @autoserialize - id: number; + @autoserialize + id: number; - @deserializeAs('id') - uuid: string; + @deserializeAs('id') + uuid: string; - @autoserialize - name: string; + @autoserialize + name: string; - @autoserialize - description: string; + @autoserialize + description: string; - @autoserialize - url: string; + @autoserialize + url: string; - @autoserialize - enabled: boolean; + @autoserialize + enabled: boolean; - @autoserialize - ldnUrl: string; + @autoserialize + ldnUrl: string; - @autoserialize - notifyServiceInboundPatterns?: NotifyServicePattern[]; + @autoserialize + notifyServiceInboundPatterns?: NotifyServicePattern[]; - @autoserialize - notifyServiceOutboundPatterns?: NotifyServicePattern[]; + @autoserialize + notifyServiceOutboundPatterns?: NotifyServicePattern[]; - @deserialize - _links: { - self: { - href: string; - }; + @deserialize + _links: { + self: { + href: string; }; + }; - get self(): string { - return this._links.self.href; - } + get self(): string { + return this._links.self.href; + } } diff --git a/src/app/admin/admin-ldn-services/ldn-services-model/service-constrain-type.model.ts b/src/app/admin/admin-ldn-services/ldn-services-model/service-constrain-type.model.ts index d3f55c815e..c734503d95 100644 --- a/src/app/admin/admin-ldn-services/ldn-services-model/service-constrain-type.model.ts +++ b/src/app/admin/admin-ldn-services/ldn-services-model/service-constrain-type.model.ts @@ -2,9 +2,9 @@ * List of parameter types used for scripts */ export enum LdnServiceConstrainType { - STRING = 'String', - DATE = 'date', - BOOLEAN = 'boolean', - FILE = 'InputStream', - OUTPUT = 'OutputStream' + STRING = 'String', + DATE = 'date', + BOOLEAN = 'boolean', + FILE = 'InputStream', + OUTPUT = 'OutputStream' }