@smarterplan/ngx-smarterplan-admin 0.1.53 → 0.1.55
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/admin/admin.component.mjs +3 -3
- package/esm2020/lib/chevron/chevron.component.mjs +3 -3
- package/esm2020/lib/guest-link/guest-link.component.mjs +3 -3
- package/esm2020/lib/guide.guard.mjs +1 -1
- package/esm2020/lib/helpers.mjs +1 -1
- package/esm2020/lib/name-from-id.pipe.mjs +1 -1
- package/esm2020/lib/ngx-smarterplan-admin-routing.module.mjs +1 -1
- package/esm2020/lib/ngx-smarterplan-admin.module.mjs +1 -1
- package/esm2020/lib/organisation/organisation.component.mjs +3 -3
- package/esm2020/lib/sp-admin.guard.mjs +1 -1
- package/esm2020/lib/user/detail-organisation/detail-organisation.component.mjs +3 -3
- package/esm2020/lib/user/form-mission/form-mission.component.mjs +3 -3
- package/esm2020/lib/user/form-organisation/form-organisation.component.mjs +3 -3
- package/esm2020/lib/user/user-mission-form/user-mission-form.component.mjs +3 -3
- package/esm2020/lib/user/user.component.mjs +3 -3
- package/esm2020/lib/visitor/create-batch/create-batch.component.mjs +3 -3
- package/esm2020/lib/visitor/template/template.component.mjs +3 -3
- package/esm2020/lib/visitor/visitor.component.mjs +3 -3
- package/fesm2015/smarterplan-ngx-smarterplan-admin.mjs +24 -24
- package/fesm2015/smarterplan-ngx-smarterplan-admin.mjs.map +1 -1
- package/fesm2020/smarterplan-ngx-smarterplan-admin.mjs +24 -24
- package/fesm2020/smarterplan-ngx-smarterplan-admin.mjs.map +1 -1
- package/package.json +2 -2
|
@@ -40,10 +40,10 @@ class ChevronComponent {
|
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
42
|
ChevronComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: ChevronComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
43
|
-
ChevronComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: ChevronComponent, selector: "lib-chevron", inputs: { conditionShowing: "conditionShowing" }, ngImport: i0, template: "<div style=\"height: 30px; width: 30px;\">\
|
|
43
|
+
ChevronComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: ChevronComponent, selector: "lib-chevron", inputs: { conditionShowing: "conditionShowing" }, ngImport: i0, template: "<div style=\"height: 30px; width: 30px;\">\n <span class=\"icon-container\" >\n <div [class]=\"conditionShowing ? 'icon-img-up' : 'icon-img-down'\"></div>\n </span>\n</div>\n", styles: [".icon-container{height:30px;width:30px}.icon-img-down{width:30px;height:100%;background:url(https://api.iconify.design/mdi-light/chevron-right.svg?width=28) no-repeat center center/contain}.icon-img-up{width:30px;height:100%;background:url(https://api.iconify.design/mdi-light/chevron-down.svg?width=28) no-repeat center center/contain}\n"] });
|
|
44
44
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: ChevronComponent, decorators: [{
|
|
45
45
|
type: Component,
|
|
46
|
-
args: [{ selector: 'lib-chevron', template: "<div style=\"height: 30px; width: 30px;\">\
|
|
46
|
+
args: [{ selector: 'lib-chevron', template: "<div style=\"height: 30px; width: 30px;\">\n <span class=\"icon-container\" >\n <div [class]=\"conditionShowing ? 'icon-img-up' : 'icon-img-down'\"></div>\n </span>\n</div>\n", styles: [".icon-container{height:30px;width:30px}.icon-img-down{width:30px;height:100%;background:url(https://api.iconify.design/mdi-light/chevron-right.svg?width=28) no-repeat center center/contain}.icon-img-up{width:30px;height:100%;background:url(https://api.iconify.design/mdi-light/chevron-down.svg?width=28) no-repeat center center/contain}\n"] }]
|
|
47
47
|
}], ctorParameters: function () { return []; }, propDecorators: { conditionShowing: [{
|
|
48
48
|
type: Input
|
|
49
49
|
}] } });
|
|
@@ -212,10 +212,10 @@ class OrganisationComponent {
|
|
|
212
212
|
}
|
|
213
213
|
}
|
|
214
214
|
OrganisationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: OrganisationComponent, deps: [{ token: i1.OrganisationService }, { token: i1$1.FormBuilder }, { token: i1.BaseUserService }, { token: i1.MissionService }, { token: i3.TranslateService }, { token: i1.PropertyService }], target: i0.ɵɵFactoryTarget.Component });
|
|
215
|
-
OrganisationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: OrganisationComponent, selector: "lib-organisation", ngImport: i0, template: "<div class=\"container-fluid\" class=\"dashboard-tab\">\r\n <h3>{{'SmarterPlan Client Organisations' | translate}}</h3>\r\n <div class=\"row\">\r\n <div class=\"col-md-8 col-lg-6\">\r\n\r\n <div *ngIf=\"error\" class=\"alert alert-danger alert-dismissible fade show\" role=\"alert\">\r\n <strong>{{'Error' | translate}}!</strong> We haven't been able to fulfil your request.\r\n <button type=\"button\" class=\"close\" data-dismiss=\"alert\" (click)=\"onDismiss()\" aria-label=\"Close\">\r\n <span aria-hidden=\"true\">×</span>\r\n </button>\r\n </div>\r\n\r\n <div *ngIf=\"!create && !editing\">\r\n <div class=\"d-flex justify-content-between align-items-center p-1\">\r\n <input class=\"form-control search-button\" [(ngModel)]=\"query\" i18n-placeholder placeholder=\"Search\"\r\n type=\"text\"> \r\n </div>\r\n <!-- <button class=\"btn btn-outline-primary rounded-pill\" (click)=\"onAdd()\">{{'Add new client organisation' |\r\n translate}}</button> -->\r\n <div class=\"d-flex justify-content-center\" *ngIf=\"loading\">\r\n <lib-loader></lib-loader>\r\n </div>\r\n <ul class=\"list-group list-group-flush\">\r\n <li class=\"list-group-item list-group-item-action\" *ngFor=\"let a of clients; index as index\"\r\n (click)=\"onToggleDetail(index)\">\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n {{a.name}}\r\n <lib-chevron [conditionShowing]=\"index==details\"></lib-chevron>\r\n <!-- <ic-icon [icon]=\"index==details ? chevronDown : chevronRight\"></ic-icon> -->\r\n </div>\r\n\r\n <div *ngIf=\"index==details\">\r\n <ul class=\"list-group list-group-flush\">\r\n <!-- <li class=\"list-group-item bg-transparent\">{{'Activit\u00E9' | translate}}</li> -->\r\n <li class=\"list-group-item bg-transparent\">{{'Address' | translate}}: {{ a.organisation.address }}</li>\r\n <li class=\"list-group-item bg-transparent\">{{ 'Postal Code' | translate}}: {{ a.organisation.postal }}\r\n </li>\r\n <li class=\"list-group-item bg-transparent\">{{'City' | translate}}: {{ a.organisation.city }}</li>\r\n <li class=\"list-group-item bg-transparent\">{{'SIRET' | translate}}: {{ a.organisation.siret ?\r\n a.organisation.siret : 'Not provided' | translate }}</li>\r\n <li class=\"list-group-item bg-transparent\">{{'Created' | translate}}: {{ a.organisation.createdAt | date:'long' }}\r\n </li>\r\n <ng-container *ngIf=\"a.adminMissions.length > 0\">\r\n <li *ngIf=\"a.adminMissions.length <= 1\" class=\"list-group-item bg-transparent\">\r\n {{'Administrator User' | translate}} :</li>\r\n <li *ngIf=\"a.adminMissions.length > 1\" class=\"list-group-item bg-transparent\">\r\n {{'Administrator User(s)' | translate}} :</li>\r\n <li class=\"list-group-item list-group-item-action\"\r\n *ngFor=\"let admin of a.adminMissions; index as index\" (click)=\"onToggleDetail(index)\">\r\n <ul class=\"list-group list-group-flush\">\r\n <li class=\"ml-4\"> {{admin.user.displayName}} ({{admin.user.email}})\r\n <!-- <button type=\"button\" class=\"btn btn-primary rounded-pill\" style=\"float: right;\"\r\n (click)=\"onRemoveAdmin(admin)\">\r\n {{'Remove'|translate}}</button> \r\n </li>\r\n <li class=\"list-group-item bg-transparent\">{{'Phone'}}: {{admin.user.phone}}</li> -->\r\n </ul>\r\n\r\n </ng-container>\r\n <ng-container *ngIf=\"a.adminMissions.length == 0\">\r\n <li class=\"list-group-item bg-warning\"><span class=\"badge badge-warning\">\r\n {{'Warning' | translate}}</span> {{'No Administrator User'| translate}} </li>\r\n </ng-container>\r\n <ng-container *ngIf=\"a.properties.length > 0\">\r\n <li class=\"list-group-item bg-transparent\">{{'Locations' | translate}}: </li>\r\n <li class=\"list-group-item list-group-item-action\" *ngFor=\"let property of a.properties\">\r\n <ul class=\"list-group list-group-flush\">\r\n <li class=\"ml-4\">{{property}}</li>\r\n </ul>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n <div class=\"action-button-container\">\r\n <button type=\"button\" class=\"btn btn-primary rounded-pill action-button\"\r\n (click)=\"onEdit(a.organisation)\">\r\n {{'Edit' | translate}}</button>\r\n <button type=\"button\" class=\"btn btn-primary rounded-pill action-button\"\r\n (click)=\"onArchive(a.organisation)\" disabled>\r\n {{'Archive' | translate}}</button>\r\n <button type=\"button\" class=\"btn btn-primary rounded-pill action-button\"\r\n (click)=\"onDeleteOrg(a.organisation)\">\r\n {{'Delete' | translate}}</button>\r\n </div>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n\r\n <div *ngIf=\"form && (create || editing)\">\r\n <form (ngSubmit)=\"onSubmitOrg()\" [formGroup]=\"form\">\r\n <div class=\"form-group row\">\r\n <label class=\"col-sm-3 col-form-label\">{{'Name' | translate}} *</label>\r\n <div class=\"col-sm-9\">\r\n <input type=\"text\" class=\"form-control\" [class.is-invalid]=\"name.invalid && name.touched\" required\r\n formControlName=\"name\">\r\n <div class=\"invalid-feedback\">\r\n {{'A name is required' | translate}}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group row\">\r\n <label class=\"col-sm-3 col-form-label\">{{'Address' | translate}}</label>\r\n <div class=\"col-sm-9\">\r\n <input type=\"text\" class=\"form-control\" formControlName=\"address\">\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group row\">\r\n <label class=\"col-sm-3 col-form-label\">{{'City' | translate}}</label>\r\n <div class=\"col-sm-9\">\r\n <input type=\"text\" class=\"form-control\" formControlName=\"city\">\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group row\">\r\n <label class=\"col-sm-3 col-form-label\">{{'Postal code' | translate}}</label>\r\n <div class=\"col-sm-9\">\r\n <input type=\"text\" class=\"form-control\" formControlName=\"postal\">\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group row\">\r\n <label class=\"col-sm-3 col-form-label\">{{'SIRET' | translate}}</label>\r\n <div class=\"col-sm-9\">\r\n <input type=\"text\" class=\"form-control\" formControlName=\"siret\">\r\n </div>\r\n </div>\r\n <div *ngIf=\"working\">\r\n <lib-loader></lib-loader>\r\n </div>\r\n <div class=\"action-button-container\">\r\n <button type=\"submit\" class=\"btn btn-outline-primary rounded-pill action-button\"\r\n [disabled]=\"working || form.invalid\">{{'Save' | translate}}</button>\r\n <button type=\"button\" (click)=\"onCancel()\" [disabled]=\"working\"\r\n class=\"btn btn-outline-primary rounded-pill action-button\">{{'Cancel' | translate}}</button>\r\n </div>\r\n </form>\r\n </div>\r\n <!--<spOrganisationForm [model]=\" editingOrganisation\" (submit)=\"onSave($event)\" (cancel)=\"onCancel()\">\r\n </spOrganisationForm>-->\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<!-- <div>{{'Administrator User' | translate}}</div>\r\n <div formGroupName=\"user\" *ngIf=\"create || isAddingAdmin\">\r\n <div *ngIf=\"form\" class=\"form-group row\">\r\n <label class=\"col-sm-3 col-form-label\">{{'Email' | translate}} *</label>\r\n <div class=\"col-sm-9\">\r\n <input type=\"text\" class=\"form-control\" [class.is-invalid]=\"email.invalid && email.touched\" required\r\n formControlName=\"email\">\r\n <div class=\"invalid-feedback\">\r\n {{'An email is required' | translate}}\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"form-group row\">\r\n <label class=\"col-sm-3 col-form-label\">{{'First name' | translate}}</label>\r\n <div class=\"col-sm-9\">\r\n <input type=\"text\" class=\"form-control\" formControlName=\"firstName\">\r\n </div>\r\n </div>\r\n \r\n <div class=\"form-group row\">\r\n <label class=\"col-sm-3 col-form-label\">{{'Last name' | translate}}</label>\r\n <div class=\"col-sm-9\">\r\n <input type=\"text\" class=\"form-control\" formControlName=\"lastName\">\r\n </div>\r\n </div>\r\n \r\n <div class=\"form-group row\">\r\n <label class=\"col-sm-3 col-form-label\">{{'Phone' | translate}}</label>\r\n <div class=\"col-sm-9\">\r\n <input type=\"text\" class=\"form-control\" formControlName=\"phone\">\r\n </div>\r\n </div>\r\n </div> -->", styles: [".form-group{margin:1.5rem 0}.search-button{width:-moz-fit-content;width:fit-content}li.ml-4{margin-left:3rem}.action-button-container{display:flex;justify-content:space-evenly}.action-button-container .action-button{width:145px}\n"], components: [{ type: i1.LoaderComponent, selector: "lib-loader", inputs: ["useLogo", "color"] }, { type: ChevronComponent, selector: "lib-chevron", inputs: ["conditionShowing"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }], pipes: { "translate": i3.TranslatePipe, "date": i5.DatePipe } });
|
|
215
|
+
OrganisationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: OrganisationComponent, selector: "lib-organisation", ngImport: i0, template: "<div class=\"container-fluid\" class=\"dashboard-tab\">\n <h3>{{'SmarterPlan Client Organisations' | translate}}</h3>\n <div class=\"row\">\n <div class=\"col-md-8 col-lg-6\">\n\n <div *ngIf=\"error\" class=\"alert alert-danger alert-dismissible fade show\" role=\"alert\">\n <strong>{{'Error' | translate}}!</strong> We haven't been able to fulfil your request.\n <button type=\"button\" class=\"close\" data-dismiss=\"alert\" (click)=\"onDismiss()\" aria-label=\"Close\">\n <span aria-hidden=\"true\">×</span>\n </button>\n </div>\n\n <div *ngIf=\"!create && !editing\">\n <div class=\"d-flex justify-content-between align-items-center p-1\">\n <input class=\"form-control search-button\" [(ngModel)]=\"query\" i18n-placeholder placeholder=\"Search\"\n type=\"text\"> \n </div>\n <!-- <button class=\"btn btn-outline-primary rounded-pill\" (click)=\"onAdd()\">{{'Add new client organisation' |\n translate}}</button> -->\n <div class=\"d-flex justify-content-center\" *ngIf=\"loading\">\n <lib-loader></lib-loader>\n </div>\n <ul class=\"list-group list-group-flush\">\n <li class=\"list-group-item list-group-item-action\" *ngFor=\"let a of clients; index as index\"\n (click)=\"onToggleDetail(index)\">\n <div class=\"d-flex justify-content-between align-items-center\">\n {{a.name}}\n <lib-chevron [conditionShowing]=\"index==details\"></lib-chevron>\n <!-- <ic-icon [icon]=\"index==details ? chevronDown : chevronRight\"></ic-icon> -->\n </div>\n\n <div *ngIf=\"index==details\">\n <ul class=\"list-group list-group-flush\">\n <!-- <li class=\"list-group-item bg-transparent\">{{'Activit\u00E9' | translate}}</li> -->\n <li class=\"list-group-item bg-transparent\">{{'Address' | translate}}: {{ a.organisation.address }}</li>\n <li class=\"list-group-item bg-transparent\">{{ 'Postal Code' | translate}}: {{ a.organisation.postal }}\n </li>\n <li class=\"list-group-item bg-transparent\">{{'City' | translate}}: {{ a.organisation.city }}</li>\n <li class=\"list-group-item bg-transparent\">{{'SIRET' | translate}}: {{ a.organisation.siret ?\n a.organisation.siret : 'Not provided' | translate }}</li>\n <li class=\"list-group-item bg-transparent\">{{'Created' | translate}}: {{ a.organisation.createdAt | date:'long' }}\n </li>\n <ng-container *ngIf=\"a.adminMissions.length > 0\">\n <li *ngIf=\"a.adminMissions.length <= 1\" class=\"list-group-item bg-transparent\">\n {{'Administrator User' | translate}} :</li>\n <li *ngIf=\"a.adminMissions.length > 1\" class=\"list-group-item bg-transparent\">\n {{'Administrator User(s)' | translate}} :</li>\n <li class=\"list-group-item list-group-item-action\"\n *ngFor=\"let admin of a.adminMissions; index as index\" (click)=\"onToggleDetail(index)\">\n <ul class=\"list-group list-group-flush\">\n <li class=\"ml-4\"> {{admin.user.displayName}} ({{admin.user.email}})\n <!-- <button type=\"button\" class=\"btn btn-primary rounded-pill\" style=\"float: right;\"\n (click)=\"onRemoveAdmin(admin)\">\n {{'Remove'|translate}}</button> \n </li>\n <li class=\"list-group-item bg-transparent\">{{'Phone'}}: {{admin.user.phone}}</li> -->\n </ul>\n\n </ng-container>\n <ng-container *ngIf=\"a.adminMissions.length == 0\">\n <li class=\"list-group-item bg-warning\"><span class=\"badge badge-warning\">\n {{'Warning' | translate}}</span> {{'No Administrator User'| translate}} </li>\n </ng-container>\n <ng-container *ngIf=\"a.properties.length > 0\">\n <li class=\"list-group-item bg-transparent\">{{'Locations' | translate}}: </li>\n <li class=\"list-group-item list-group-item-action\" *ngFor=\"let property of a.properties\">\n <ul class=\"list-group list-group-flush\">\n <li class=\"ml-4\">{{property}}</li>\n </ul>\n </li>\n </ng-container>\n </ul>\n <div class=\"action-button-container\">\n <button type=\"button\" class=\"btn btn-primary rounded-pill action-button\"\n (click)=\"onEdit(a.organisation)\">\n {{'Edit' | translate}}</button>\n <button type=\"button\" class=\"btn btn-primary rounded-pill action-button\"\n (click)=\"onArchive(a.organisation)\" disabled>\n {{'Archive' | translate}}</button>\n <button type=\"button\" class=\"btn btn-primary rounded-pill action-button\"\n (click)=\"onDeleteOrg(a.organisation)\">\n {{'Delete' | translate}}</button>\n </div>\n </div>\n </li>\n </ul>\n </div>\n\n <div *ngIf=\"form && (create || editing)\">\n <form (ngSubmit)=\"onSubmitOrg()\" [formGroup]=\"form\">\n <div class=\"form-group row\">\n <label class=\"col-sm-3 col-form-label\">{{'Name' | translate}} *</label>\n <div class=\"col-sm-9\">\n <input type=\"text\" class=\"form-control\" [class.is-invalid]=\"name.invalid && name.touched\" required\n formControlName=\"name\">\n <div class=\"invalid-feedback\">\n {{'A name is required' | translate}}\n </div>\n </div>\n </div>\n\n <div class=\"form-group row\">\n <label class=\"col-sm-3 col-form-label\">{{'Address' | translate}}</label>\n <div class=\"col-sm-9\">\n <input type=\"text\" class=\"form-control\" formControlName=\"address\">\n </div>\n </div>\n\n <div class=\"form-group row\">\n <label class=\"col-sm-3 col-form-label\">{{'City' | translate}}</label>\n <div class=\"col-sm-9\">\n <input type=\"text\" class=\"form-control\" formControlName=\"city\">\n </div>\n </div>\n\n <div class=\"form-group row\">\n <label class=\"col-sm-3 col-form-label\">{{'Postal code' | translate}}</label>\n <div class=\"col-sm-9\">\n <input type=\"text\" class=\"form-control\" formControlName=\"postal\">\n </div>\n </div>\n\n <div class=\"form-group row\">\n <label class=\"col-sm-3 col-form-label\">{{'SIRET' | translate}}</label>\n <div class=\"col-sm-9\">\n <input type=\"text\" class=\"form-control\" formControlName=\"siret\">\n </div>\n </div>\n <div *ngIf=\"working\">\n <lib-loader></lib-loader>\n </div>\n <div class=\"action-button-container\">\n <button type=\"submit\" class=\"btn btn-outline-primary rounded-pill action-button\"\n [disabled]=\"working || form.invalid\">{{'Save' | translate}}</button>\n <button type=\"button\" (click)=\"onCancel()\" [disabled]=\"working\"\n class=\"btn btn-outline-primary rounded-pill action-button\">{{'Cancel' | translate}}</button>\n </div>\n </form>\n </div>\n <!--<spOrganisationForm [model]=\" editingOrganisation\" (submit)=\"onSave($event)\" (cancel)=\"onCancel()\">\n </spOrganisationForm>-->\n </div>\n </div>\n</div>\n\n<!-- <div>{{'Administrator User' | translate}}</div>\n <div formGroupName=\"user\" *ngIf=\"create || isAddingAdmin\">\n <div *ngIf=\"form\" class=\"form-group row\">\n <label class=\"col-sm-3 col-form-label\">{{'Email' | translate}} *</label>\n <div class=\"col-sm-9\">\n <input type=\"text\" class=\"form-control\" [class.is-invalid]=\"email.invalid && email.touched\" required\n formControlName=\"email\">\n <div class=\"invalid-feedback\">\n {{'An email is required' | translate}}\n </div>\n </div>\n </div>\n \n <div class=\"form-group row\">\n <label class=\"col-sm-3 col-form-label\">{{'First name' | translate}}</label>\n <div class=\"col-sm-9\">\n <input type=\"text\" class=\"form-control\" formControlName=\"firstName\">\n </div>\n </div>\n \n <div class=\"form-group row\">\n <label class=\"col-sm-3 col-form-label\">{{'Last name' | translate}}</label>\n <div class=\"col-sm-9\">\n <input type=\"text\" class=\"form-control\" formControlName=\"lastName\">\n </div>\n </div>\n \n <div class=\"form-group row\">\n <label class=\"col-sm-3 col-form-label\">{{'Phone' | translate}}</label>\n <div class=\"col-sm-9\">\n <input type=\"text\" class=\"form-control\" formControlName=\"phone\">\n </div>\n </div>\n </div> -->", styles: [".form-group{margin:1.5rem 0}.search-button{width:-moz-fit-content;width:fit-content}li.ml-4{margin-left:3rem}.action-button-container{display:flex;justify-content:space-evenly}.action-button-container .action-button{width:145px}\n"], components: [{ type: i1.LoaderComponent, selector: "lib-loader", inputs: ["useLogo", "color"] }, { type: ChevronComponent, selector: "lib-chevron", inputs: ["conditionShowing"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }], pipes: { "translate": i3.TranslatePipe, "date": i5.DatePipe } });
|
|
216
216
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: OrganisationComponent, decorators: [{
|
|
217
217
|
type: Component,
|
|
218
|
-
args: [{ selector: 'lib-organisation', template: "<div class=\"container-fluid\" class=\"dashboard-tab\">\r\n <h3>{{'SmarterPlan Client Organisations' | translate}}</h3>\r\n <div class=\"row\">\r\n <div class=\"col-md-8 col-lg-6\">\r\n\r\n <div *ngIf=\"error\" class=\"alert alert-danger alert-dismissible fade show\" role=\"alert\">\r\n <strong>{{'Error' | translate}}!</strong> We haven't been able to fulfil your request.\r\n <button type=\"button\" class=\"close\" data-dismiss=\"alert\" (click)=\"onDismiss()\" aria-label=\"Close\">\r\n <span aria-hidden=\"true\">×</span>\r\n </button>\r\n </div>\r\n\r\n <div *ngIf=\"!create && !editing\">\r\n <div class=\"d-flex justify-content-between align-items-center p-1\">\r\n <input class=\"form-control search-button\" [(ngModel)]=\"query\" i18n-placeholder placeholder=\"Search\"\r\n type=\"text\"> \r\n </div>\r\n <!-- <button class=\"btn btn-outline-primary rounded-pill\" (click)=\"onAdd()\">{{'Add new client organisation' |\r\n translate}}</button> -->\r\n <div class=\"d-flex justify-content-center\" *ngIf=\"loading\">\r\n <lib-loader></lib-loader>\r\n </div>\r\n <ul class=\"list-group list-group-flush\">\r\n <li class=\"list-group-item list-group-item-action\" *ngFor=\"let a of clients; index as index\"\r\n (click)=\"onToggleDetail(index)\">\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n {{a.name}}\r\n <lib-chevron [conditionShowing]=\"index==details\"></lib-chevron>\r\n <!-- <ic-icon [icon]=\"index==details ? chevronDown : chevronRight\"></ic-icon> -->\r\n </div>\r\n\r\n <div *ngIf=\"index==details\">\r\n <ul class=\"list-group list-group-flush\">\r\n <!-- <li class=\"list-group-item bg-transparent\">{{'Activit\u00E9' | translate}}</li> -->\r\n <li class=\"list-group-item bg-transparent\">{{'Address' | translate}}: {{ a.organisation.address }}</li>\r\n <li class=\"list-group-item bg-transparent\">{{ 'Postal Code' | translate}}: {{ a.organisation.postal }}\r\n </li>\r\n <li class=\"list-group-item bg-transparent\">{{'City' | translate}}: {{ a.organisation.city }}</li>\r\n <li class=\"list-group-item bg-transparent\">{{'SIRET' | translate}}: {{ a.organisation.siret ?\r\n a.organisation.siret : 'Not provided' | translate }}</li>\r\n <li class=\"list-group-item bg-transparent\">{{'Created' | translate}}: {{ a.organisation.createdAt | date:'long' }}\r\n </li>\r\n <ng-container *ngIf=\"a.adminMissions.length > 0\">\r\n <li *ngIf=\"a.adminMissions.length <= 1\" class=\"list-group-item bg-transparent\">\r\n {{'Administrator User' | translate}} :</li>\r\n <li *ngIf=\"a.adminMissions.length > 1\" class=\"list-group-item bg-transparent\">\r\n {{'Administrator User(s)' | translate}} :</li>\r\n <li class=\"list-group-item list-group-item-action\"\r\n *ngFor=\"let admin of a.adminMissions; index as index\" (click)=\"onToggleDetail(index)\">\r\n <ul class=\"list-group list-group-flush\">\r\n <li class=\"ml-4\"> {{admin.user.displayName}} ({{admin.user.email}})\r\n <!-- <button type=\"button\" class=\"btn btn-primary rounded-pill\" style=\"float: right;\"\r\n (click)=\"onRemoveAdmin(admin)\">\r\n {{'Remove'|translate}}</button> \r\n </li>\r\n <li class=\"list-group-item bg-transparent\">{{'Phone'}}: {{admin.user.phone}}</li> -->\r\n </ul>\r\n\r\n </ng-container>\r\n <ng-container *ngIf=\"a.adminMissions.length == 0\">\r\n <li class=\"list-group-item bg-warning\"><span class=\"badge badge-warning\">\r\n {{'Warning' | translate}}</span> {{'No Administrator User'| translate}} </li>\r\n </ng-container>\r\n <ng-container *ngIf=\"a.properties.length > 0\">\r\n <li class=\"list-group-item bg-transparent\">{{'Locations' | translate}}: </li>\r\n <li class=\"list-group-item list-group-item-action\" *ngFor=\"let property of a.properties\">\r\n <ul class=\"list-group list-group-flush\">\r\n <li class=\"ml-4\">{{property}}</li>\r\n </ul>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n <div class=\"action-button-container\">\r\n <button type=\"button\" class=\"btn btn-primary rounded-pill action-button\"\r\n (click)=\"onEdit(a.organisation)\">\r\n {{'Edit' | translate}}</button>\r\n <button type=\"button\" class=\"btn btn-primary rounded-pill action-button\"\r\n (click)=\"onArchive(a.organisation)\" disabled>\r\n {{'Archive' | translate}}</button>\r\n <button type=\"button\" class=\"btn btn-primary rounded-pill action-button\"\r\n (click)=\"onDeleteOrg(a.organisation)\">\r\n {{'Delete' | translate}}</button>\r\n </div>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n\r\n <div *ngIf=\"form && (create || editing)\">\r\n <form (ngSubmit)=\"onSubmitOrg()\" [formGroup]=\"form\">\r\n <div class=\"form-group row\">\r\n <label class=\"col-sm-3 col-form-label\">{{'Name' | translate}} *</label>\r\n <div class=\"col-sm-9\">\r\n <input type=\"text\" class=\"form-control\" [class.is-invalid]=\"name.invalid && name.touched\" required\r\n formControlName=\"name\">\r\n <div class=\"invalid-feedback\">\r\n {{'A name is required' | translate}}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group row\">\r\n <label class=\"col-sm-3 col-form-label\">{{'Address' | translate}}</label>\r\n <div class=\"col-sm-9\">\r\n <input type=\"text\" class=\"form-control\" formControlName=\"address\">\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group row\">\r\n <label class=\"col-sm-3 col-form-label\">{{'City' | translate}}</label>\r\n <div class=\"col-sm-9\">\r\n <input type=\"text\" class=\"form-control\" formControlName=\"city\">\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group row\">\r\n <label class=\"col-sm-3 col-form-label\">{{'Postal code' | translate}}</label>\r\n <div class=\"col-sm-9\">\r\n <input type=\"text\" class=\"form-control\" formControlName=\"postal\">\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group row\">\r\n <label class=\"col-sm-3 col-form-label\">{{'SIRET' | translate}}</label>\r\n <div class=\"col-sm-9\">\r\n <input type=\"text\" class=\"form-control\" formControlName=\"siret\">\r\n </div>\r\n </div>\r\n <div *ngIf=\"working\">\r\n <lib-loader></lib-loader>\r\n </div>\r\n <div class=\"action-button-container\">\r\n <button type=\"submit\" class=\"btn btn-outline-primary rounded-pill action-button\"\r\n [disabled]=\"working || form.invalid\">{{'Save' | translate}}</button>\r\n <button type=\"button\" (click)=\"onCancel()\" [disabled]=\"working\"\r\n class=\"btn btn-outline-primary rounded-pill action-button\">{{'Cancel' | translate}}</button>\r\n </div>\r\n </form>\r\n </div>\r\n <!--<spOrganisationForm [model]=\" editingOrganisation\" (submit)=\"onSave($event)\" (cancel)=\"onCancel()\">\r\n </spOrganisationForm>-->\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<!-- <div>{{'Administrator User' | translate}}</div>\r\n <div formGroupName=\"user\" *ngIf=\"create || isAddingAdmin\">\r\n <div *ngIf=\"form\" class=\"form-group row\">\r\n <label class=\"col-sm-3 col-form-label\">{{'Email' | translate}} *</label>\r\n <div class=\"col-sm-9\">\r\n <input type=\"text\" class=\"form-control\" [class.is-invalid]=\"email.invalid && email.touched\" required\r\n formControlName=\"email\">\r\n <div class=\"invalid-feedback\">\r\n {{'An email is required' | translate}}\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"form-group row\">\r\n <label class=\"col-sm-3 col-form-label\">{{'First name' | translate}}</label>\r\n <div class=\"col-sm-9\">\r\n <input type=\"text\" class=\"form-control\" formControlName=\"firstName\">\r\n </div>\r\n </div>\r\n \r\n <div class=\"form-group row\">\r\n <label class=\"col-sm-3 col-form-label\">{{'Last name' | translate}}</label>\r\n <div class=\"col-sm-9\">\r\n <input type=\"text\" class=\"form-control\" formControlName=\"lastName\">\r\n </div>\r\n </div>\r\n \r\n <div class=\"form-group row\">\r\n <label class=\"col-sm-3 col-form-label\">{{'Phone' | translate}}</label>\r\n <div class=\"col-sm-9\">\r\n <input type=\"text\" class=\"form-control\" formControlName=\"phone\">\r\n </div>\r\n </div>\r\n </div> -->", styles: [".form-group{margin:1.5rem 0}.search-button{width:-moz-fit-content;width:fit-content}li.ml-4{margin-left:3rem}.action-button-container{display:flex;justify-content:space-evenly}.action-button-container .action-button{width:145px}\n"] }]
|
|
218
|
+
args: [{ selector: 'lib-organisation', template: "<div class=\"container-fluid\" class=\"dashboard-tab\">\n <h3>{{'SmarterPlan Client Organisations' | translate}}</h3>\n <div class=\"row\">\n <div class=\"col-md-8 col-lg-6\">\n\n <div *ngIf=\"error\" class=\"alert alert-danger alert-dismissible fade show\" role=\"alert\">\n <strong>{{'Error' | translate}}!</strong> We haven't been able to fulfil your request.\n <button type=\"button\" class=\"close\" data-dismiss=\"alert\" (click)=\"onDismiss()\" aria-label=\"Close\">\n <span aria-hidden=\"true\">×</span>\n </button>\n </div>\n\n <div *ngIf=\"!create && !editing\">\n <div class=\"d-flex justify-content-between align-items-center p-1\">\n <input class=\"form-control search-button\" [(ngModel)]=\"query\" i18n-placeholder placeholder=\"Search\"\n type=\"text\"> \n </div>\n <!-- <button class=\"btn btn-outline-primary rounded-pill\" (click)=\"onAdd()\">{{'Add new client organisation' |\n translate}}</button> -->\n <div class=\"d-flex justify-content-center\" *ngIf=\"loading\">\n <lib-loader></lib-loader>\n </div>\n <ul class=\"list-group list-group-flush\">\n <li class=\"list-group-item list-group-item-action\" *ngFor=\"let a of clients; index as index\"\n (click)=\"onToggleDetail(index)\">\n <div class=\"d-flex justify-content-between align-items-center\">\n {{a.name}}\n <lib-chevron [conditionShowing]=\"index==details\"></lib-chevron>\n <!-- <ic-icon [icon]=\"index==details ? chevronDown : chevronRight\"></ic-icon> -->\n </div>\n\n <div *ngIf=\"index==details\">\n <ul class=\"list-group list-group-flush\">\n <!-- <li class=\"list-group-item bg-transparent\">{{'Activit\u00E9' | translate}}</li> -->\n <li class=\"list-group-item bg-transparent\">{{'Address' | translate}}: {{ a.organisation.address }}</li>\n <li class=\"list-group-item bg-transparent\">{{ 'Postal Code' | translate}}: {{ a.organisation.postal }}\n </li>\n <li class=\"list-group-item bg-transparent\">{{'City' | translate}}: {{ a.organisation.city }}</li>\n <li class=\"list-group-item bg-transparent\">{{'SIRET' | translate}}: {{ a.organisation.siret ?\n a.organisation.siret : 'Not provided' | translate }}</li>\n <li class=\"list-group-item bg-transparent\">{{'Created' | translate}}: {{ a.organisation.createdAt | date:'long' }}\n </li>\n <ng-container *ngIf=\"a.adminMissions.length > 0\">\n <li *ngIf=\"a.adminMissions.length <= 1\" class=\"list-group-item bg-transparent\">\n {{'Administrator User' | translate}} :</li>\n <li *ngIf=\"a.adminMissions.length > 1\" class=\"list-group-item bg-transparent\">\n {{'Administrator User(s)' | translate}} :</li>\n <li class=\"list-group-item list-group-item-action\"\n *ngFor=\"let admin of a.adminMissions; index as index\" (click)=\"onToggleDetail(index)\">\n <ul class=\"list-group list-group-flush\">\n <li class=\"ml-4\"> {{admin.user.displayName}} ({{admin.user.email}})\n <!-- <button type=\"button\" class=\"btn btn-primary rounded-pill\" style=\"float: right;\"\n (click)=\"onRemoveAdmin(admin)\">\n {{'Remove'|translate}}</button> \n </li>\n <li class=\"list-group-item bg-transparent\">{{'Phone'}}: {{admin.user.phone}}</li> -->\n </ul>\n\n </ng-container>\n <ng-container *ngIf=\"a.adminMissions.length == 0\">\n <li class=\"list-group-item bg-warning\"><span class=\"badge badge-warning\">\n {{'Warning' | translate}}</span> {{'No Administrator User'| translate}} </li>\n </ng-container>\n <ng-container *ngIf=\"a.properties.length > 0\">\n <li class=\"list-group-item bg-transparent\">{{'Locations' | translate}}: </li>\n <li class=\"list-group-item list-group-item-action\" *ngFor=\"let property of a.properties\">\n <ul class=\"list-group list-group-flush\">\n <li class=\"ml-4\">{{property}}</li>\n </ul>\n </li>\n </ng-container>\n </ul>\n <div class=\"action-button-container\">\n <button type=\"button\" class=\"btn btn-primary rounded-pill action-button\"\n (click)=\"onEdit(a.organisation)\">\n {{'Edit' | translate}}</button>\n <button type=\"button\" class=\"btn btn-primary rounded-pill action-button\"\n (click)=\"onArchive(a.organisation)\" disabled>\n {{'Archive' | translate}}</button>\n <button type=\"button\" class=\"btn btn-primary rounded-pill action-button\"\n (click)=\"onDeleteOrg(a.organisation)\">\n {{'Delete' | translate}}</button>\n </div>\n </div>\n </li>\n </ul>\n </div>\n\n <div *ngIf=\"form && (create || editing)\">\n <form (ngSubmit)=\"onSubmitOrg()\" [formGroup]=\"form\">\n <div class=\"form-group row\">\n <label class=\"col-sm-3 col-form-label\">{{'Name' | translate}} *</label>\n <div class=\"col-sm-9\">\n <input type=\"text\" class=\"form-control\" [class.is-invalid]=\"name.invalid && name.touched\" required\n formControlName=\"name\">\n <div class=\"invalid-feedback\">\n {{'A name is required' | translate}}\n </div>\n </div>\n </div>\n\n <div class=\"form-group row\">\n <label class=\"col-sm-3 col-form-label\">{{'Address' | translate}}</label>\n <div class=\"col-sm-9\">\n <input type=\"text\" class=\"form-control\" formControlName=\"address\">\n </div>\n </div>\n\n <div class=\"form-group row\">\n <label class=\"col-sm-3 col-form-label\">{{'City' | translate}}</label>\n <div class=\"col-sm-9\">\n <input type=\"text\" class=\"form-control\" formControlName=\"city\">\n </div>\n </div>\n\n <div class=\"form-group row\">\n <label class=\"col-sm-3 col-form-label\">{{'Postal code' | translate}}</label>\n <div class=\"col-sm-9\">\n <input type=\"text\" class=\"form-control\" formControlName=\"postal\">\n </div>\n </div>\n\n <div class=\"form-group row\">\n <label class=\"col-sm-3 col-form-label\">{{'SIRET' | translate}}</label>\n <div class=\"col-sm-9\">\n <input type=\"text\" class=\"form-control\" formControlName=\"siret\">\n </div>\n </div>\n <div *ngIf=\"working\">\n <lib-loader></lib-loader>\n </div>\n <div class=\"action-button-container\">\n <button type=\"submit\" class=\"btn btn-outline-primary rounded-pill action-button\"\n [disabled]=\"working || form.invalid\">{{'Save' | translate}}</button>\n <button type=\"button\" (click)=\"onCancel()\" [disabled]=\"working\"\n class=\"btn btn-outline-primary rounded-pill action-button\">{{'Cancel' | translate}}</button>\n </div>\n </form>\n </div>\n <!--<spOrganisationForm [model]=\" editingOrganisation\" (submit)=\"onSave($event)\" (cancel)=\"onCancel()\">\n </spOrganisationForm>-->\n </div>\n </div>\n</div>\n\n<!-- <div>{{'Administrator User' | translate}}</div>\n <div formGroupName=\"user\" *ngIf=\"create || isAddingAdmin\">\n <div *ngIf=\"form\" class=\"form-group row\">\n <label class=\"col-sm-3 col-form-label\">{{'Email' | translate}} *</label>\n <div class=\"col-sm-9\">\n <input type=\"text\" class=\"form-control\" [class.is-invalid]=\"email.invalid && email.touched\" required\n formControlName=\"email\">\n <div class=\"invalid-feedback\">\n {{'An email is required' | translate}}\n </div>\n </div>\n </div>\n \n <div class=\"form-group row\">\n <label class=\"col-sm-3 col-form-label\">{{'First name' | translate}}</label>\n <div class=\"col-sm-9\">\n <input type=\"text\" class=\"form-control\" formControlName=\"firstName\">\n </div>\n </div>\n \n <div class=\"form-group row\">\n <label class=\"col-sm-3 col-form-label\">{{'Last name' | translate}}</label>\n <div class=\"col-sm-9\">\n <input type=\"text\" class=\"form-control\" formControlName=\"lastName\">\n </div>\n </div>\n \n <div class=\"form-group row\">\n <label class=\"col-sm-3 col-form-label\">{{'Phone' | translate}}</label>\n <div class=\"col-sm-9\">\n <input type=\"text\" class=\"form-control\" formControlName=\"phone\">\n </div>\n </div>\n </div> -->", styles: [".form-group{margin:1.5rem 0}.search-button{width:-moz-fit-content;width:fit-content}li.ml-4{margin-left:3rem}.action-button-container{display:flex;justify-content:space-evenly}.action-button-container .action-button{width:145px}\n"] }]
|
|
219
219
|
}], ctorParameters: function () { return [{ type: i1.OrganisationService }, { type: i1$1.FormBuilder }, { type: i1.BaseUserService }, { type: i1.MissionService }, { type: i3.TranslateService }, { type: i1.PropertyService }]; } });
|
|
220
220
|
|
|
221
221
|
class GuestLinkComponent {
|
|
@@ -266,10 +266,10 @@ class GuestLinkComponent {
|
|
|
266
266
|
}
|
|
267
267
|
}
|
|
268
268
|
GuestLinkComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: GuestLinkComponent, deps: [{ token: i1.SpaceService }, { token: i4.NgbActiveModal }], target: i0.ɵɵFactoryTarget.Component });
|
|
269
|
-
GuestLinkComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: GuestLinkComponent, selector: "lib-guest-link", inputs: { spaceID: "spaceID", username: "username" }, ngImport: i0, template: "<div class=\"main\">\
|
|
269
|
+
GuestLinkComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: GuestLinkComponent, selector: "lib-guest-link", inputs: { spaceID: "spaceID", username: "username" }, ngImport: i0, template: "<div class=\"main\">\n <p>{{'Current password for account:' | translate}} {{username}}</p>\n <input type=\"password\" class=\"form-control\" id=\"password\">\n <p *ngIf=\"errorMessage\">{{errorMessage}}</p>\n <div class=\"row ml-0 mt-3\" *ngIf=\"link\">\n <a id=\"linkHref\" target=\"_blank\">{{'Try the link' | translate }}</a>\n <div ngxClipboard [cbContent]=\"link\" [style.cursor]=\"'pointer'\" style=\"margin-left: 5px; max-width: 20px;\"\n ngbTooltip=\"Copied!\" triggers=\"click:blur\">\n <span class=\"iconify\" data-icon=\"mdi:content-copy\" data-inline=\"false\" data-width=\"20\"\n data-height=\"20\"></span>\n </div>\n\n </div>\n <div class=\"row ml-0 mt-3\">\n <button class=\"btn btn-primary rounded-pill mr-2\" (click)=\"onGenerate()\">{{'Generate link' | translate\n }}</button>\n <button class=\"btn btn-primary rounded-pill\" (click)=\"onCancel()\">{{'Cancel' | translate }}</button>\n </div>\n\n</div>\n", styles: [".main{margin:1.5rem}\n"], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4$1.ClipboardDirective, selector: "[ngxClipboard]", inputs: ["ngxClipboard", "container", "cbContent", "cbSuccessMsg"], outputs: ["cbOnSuccess", "cbOnError"] }, { type: i4.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "triggers", "container", "disableTooltip", "tooltipClass", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }], pipes: { "translate": i3.TranslatePipe } });
|
|
270
270
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: GuestLinkComponent, decorators: [{
|
|
271
271
|
type: Component,
|
|
272
|
-
args: [{ selector: 'lib-guest-link', template: "<div class=\"main\">\
|
|
272
|
+
args: [{ selector: 'lib-guest-link', template: "<div class=\"main\">\n <p>{{'Current password for account:' | translate}} {{username}}</p>\n <input type=\"password\" class=\"form-control\" id=\"password\">\n <p *ngIf=\"errorMessage\">{{errorMessage}}</p>\n <div class=\"row ml-0 mt-3\" *ngIf=\"link\">\n <a id=\"linkHref\" target=\"_blank\">{{'Try the link' | translate }}</a>\n <div ngxClipboard [cbContent]=\"link\" [style.cursor]=\"'pointer'\" style=\"margin-left: 5px; max-width: 20px;\"\n ngbTooltip=\"Copied!\" triggers=\"click:blur\">\n <span class=\"iconify\" data-icon=\"mdi:content-copy\" data-inline=\"false\" data-width=\"20\"\n data-height=\"20\"></span>\n </div>\n\n </div>\n <div class=\"row ml-0 mt-3\">\n <button class=\"btn btn-primary rounded-pill mr-2\" (click)=\"onGenerate()\">{{'Generate link' | translate\n }}</button>\n <button class=\"btn btn-primary rounded-pill\" (click)=\"onCancel()\">{{'Cancel' | translate }}</button>\n </div>\n\n</div>\n", styles: [".main{margin:1.5rem}\n"] }]
|
|
273
273
|
}], ctorParameters: function () { return [{ type: i1.SpaceService }, { type: i4.NgbActiveModal }]; }, propDecorators: { spaceID: [{
|
|
274
274
|
type: Input
|
|
275
275
|
}], username: [{
|
|
@@ -528,10 +528,10 @@ class FormMissionComponent {
|
|
|
528
528
|
}
|
|
529
529
|
}
|
|
530
530
|
FormMissionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: FormMissionComponent, deps: [{ token: i1$1.FormBuilder }, { token: i1.SpaceService }, { token: i1.BaseUserService }, { token: i1.DomainService }, { token: i1.OrganisationService }, { token: i1.ZoneService }, { token: i1.HashtagService }, { token: i1.LocaleService }, { token: i1.ValidatorsService }], target: i0.ɵɵFactoryTarget.Component });
|
|
531
|
-
FormMissionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: FormMissionComponent, selector: "lib-form-mission", inputs: { missionToEdit: "missionToEdit", organisationForMission: "organisationForMission", isSP: "isSP", userForMissionID: "userForMissionID", currentUserOrganisation: "currentUserOrganisation" }, outputs: { addedMissionInput: "addedMissionInput" }, ngImport: i0, template: "<div class=\"form-containter\" *ngIf=\"missionForm\">\r\n <div style=\"margin-top: 1rem;\">\r\n <h4>{{ 'Mission details' | translate }}</h4>\r\n </div>\r\n <form (ngSubmit)=\"onSubmit()\" [formGroup]=\"missionForm\">\r\n <div class=\"form-group row\">\r\n <label class=\"col-sm-4 col-form-label\">{{'Organisation' | translate}}</label>\r\n <div class=\"col-sm-8\">\r\n <input type=\"text\" data-testid=\"form-mission-organisation\" class=\"form-control\"\r\n formControlName=\"organisation\">\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group row\" *ngIf=\"isSP\">\r\n <label class=\"col-sm-4 col-form-label\">{{ 'Ordered by' | translate }}</label>\r\n <div class=\"col-sm-8\">\r\n <select class=\"form-control\" required formControlName=\"orderedOrganisationID\">\r\n <option *ngFor=\"let org of allOrgs\" [ngValue]=\"org.id\">\r\n {{ org.name }}\r\n </option>\r\n </select>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group row\">\r\n <label class=\"col-sm-4 col-form-label\">{{'Description' | translate}}</label>\r\n <div class=\"col-sm-8\">\r\n <textarea class=\"form-control\" formControlName=\"description\" rows=\"10\" (ngModelChange)=\"onVerifForm()\"\r\n [ngClass]=\"{'is-invalid' : validatorsService.isControlError(missionForm.controls['description'])|| isFormError(missionForm.controls['description'])} \"\r\n data-testid=\"form-mission-description\"></textarea>\r\n <div class=\"invalid-feedback\">\r\n <ngb-alert data-testid=\"form-mission-description-invalid\" [dismissible]=\"false\" type=\"danger\" *ngIf=\" validatorsService.isControlError(missionForm.controls['description']) \r\n || isFormError(missionForm.controls['description'])\">\r\n {{validatorsService.getError(missionForm.controls['description']) |\r\n translate}}\r\n </ngb-alert>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group row\">\r\n <label class=\"col-sm-4 col-form-label\">{{'Role' | translate}}*</label>\r\n <div class=\"col-sm-8\">\r\n <select class=\"form-control\" required formControlName=\"role\" data-testid=\"form-mission-role\" (ngModelChange)=\"onVerifForm()\"\r\n [ngClass]=\"{'is-invalid' : validatorsService.isControlError(missionForm.controls['role'])|| isFormError(missionForm.controls['role'])} \">\r\n <option *ngFor=\"let r of availableRoles\" [ngValue]=\"r\">\r\n {{ r }}\r\n </option>\r\n </select>\r\n <div class=\"invalid-feedback\">\r\n <ngb-alert data-testid=\"form-mission-role-invalid\" [dismissible]=\"false\" type=\"danger\" *ngIf=\" validatorsService.isControlError(missionForm.controls['role']) \r\n || isFormError(missionForm.controls['role'])\">\r\n {{validatorsService.getError(missionForm.controls['role']) |\r\n translate}}\r\n </ngb-alert>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group row\"\r\n *ngIf=\"missionForm.get('role').value !== 'VISITOR_MUSEUM' && missionForm.get('role').value !== 'GUIDE_MUSEUM'\">\r\n <label class=\"col-sm-4 col-form-label\">{{'Domains' | translate}}</label>\r\n <div class=\"col-sm-8\" *ngIf=\"domains\">\r\n <select class=\"form-control\" multiple formControlName=\"domains\">\r\n <option *ngFor=\"let domain of domains\" [ngValue]=\"domain.id\">\r\n {{ domain.name }}\r\n </option>\r\n </select>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group row\">\r\n <label class=\"col-sm-4 col-form-label\">{{'Access level' | translate}}</label>\r\n <div class=\"col-sm-8\">\r\n <select class=\"form-control\" required formControlName=\"level\" data-testid=\"form-mission-level\">\r\n <option *ngFor=\"let level of availableLevels\" [ngValue]=\"level\">\r\n {{ level }}\r\n </option>\r\n </select>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group row\">\r\n <label class=\"col-sm-4 col-form-label\">{{ 'Authorized location' | translate }}*</label>\r\n <div class=\"col-sm-8\" *ngIf=\"availableSpaces\">\r\n <select class=\"form-control\" required formControlName=\"space\" (ngModelChange)=\"onVerifForm()\" (change)=\"onSpaceClick()\"\r\n data-testid=\"form-mission-space\"\r\n [ngClass]=\"{'is-invalid' : validatorsService.isControlError(missionForm.controls['space'])|| isFormError(missionForm.controls['space'])} \">\r\n <option *ngFor=\"let space of availableSpaces\" [ngValue]=\"space.id\">\r\n {{ space.name }}\r\n </option>\r\n </select>\r\n <div class=\"invalid-feedback\">\r\n <ngb-alert data-testid=\"form-mission-space-invalid\" [dismissible]=\"false\" type=\"danger\" *ngIf=\" validatorsService.isControlError(missionForm.controls['space']) \r\n || isFormError(missionForm.controls['space'])\">\r\n {{validatorsService.getError(missionForm.controls['space']) |\r\n translate}}\r\n </ngb-alert>\r\n </div>\r\n </div>\r\n <div class=\"col-sm-8\" *ngIf=\"!availableSpaces\">\r\n {{ 'No locations available' | translate}}\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group row\">\r\n <label class=\"col-sm-4 col-form-label\">{{ 'Authorized zone' | translate }}</label>\r\n <div class=\"col-sm-8\" *ngIf=\"zonesForSpace; else noSpace\">\r\n <select class=\"form-control\" formControlName=\"zone\" data-testid=\"form-mission-zone\">\r\n <option [ngValue]=\"defaultZone.id\">\r\n {{ 'All zones' | translate }}\r\n </option>\r\n <option *ngFor=\"let zone of zonesForSpace\" [ngValue]=\"zone.id\">\r\n {{ zone.name }}\r\n </option>\r\n </select>\r\n </div>\r\n <ng-template #noSpace>\r\n <div class=\"col-sm-8 hint-container\">\r\n <p class=\"hint keywordsRules\">{{'You need to choose the location first' | translate}} </p>\r\n </div>\r\n </ng-template>\r\n </div>\r\n <div class=\"form-group row\">\r\n <label class=\"col-sm-4 col-form-label\">{{'Language' | translate}}</label>\r\n <div class=\"col-sm-8\">\r\n <select class=\"form-control\" formControlName=\"locale\">\r\n <option [ngValue]=\"null\">{{'Not applicable' | translate}}</option>\r\n <option *ngFor=\"let locale of locales\" [ngValue]=\"locale\">\r\n {{ locale }}\r\n </option>\r\n </select>\r\n </div>\r\n </div>\r\n <!-- Hashtags are available after Space is set -->\r\n <div class=\"form-group row\">\r\n <label class=\"col-sm-4 col-form-label\">{{'Hashtags' | translate}}</label>\r\n <div class=\"col-sm-8\" *ngIf=\"spaceID.value\">\r\n <p class=\"keywordsRules\" *ngIf=\"availableHashtags.length > 0\">{{'Available hashtags' | translate}} </p>\r\n <p class=\"keywordsRules\" *ngIf=\"availableHashtags.length === 0\">\r\n {{'No hashtags created for this location' | translate}} </p>\r\n <div *ngIf=\"availableHashtags.length > 0\">\r\n <ul class=\"keywordsDisplay no-border\">\r\n <div class=\"keywordsdisplayContainer\">\r\n <li *ngFor=\"let hashtag of availableHashtags\"\r\n [class]=\"hashtagAdded(hashtag) ? 'keywordsItem added' : 'keywordsItem'\"\r\n (click)=\"onHashtagClick(hashtag)\" style=\"cursor: pointer;\"\r\n ngbTooltip=\"{{hashtagAdded(hashtag) ? ('Remove'|translate) : ('Add'|translate) }}\">\r\n {{hashtag.name}}\r\n </li>\r\n </div>\r\n </ul>\r\n <p class=\"keywordsRules\">{{'Added hashtags' | translate}} </p>\r\n <ul class=\"keywordsDisplay\">\r\n <div class=\"keywordsdisplayContainer\" *ngIf=\"addedHashtags.length> 0\">\r\n <li class=\"keywordsItem\" *ngFor=\"let hashtag of addedHashtags\">{{ hashtag.name }}\r\n <a type=\"button\" class=\"closeButton\" (click)=\"removeHashtag(hashtag)\">\r\n <span class=\"crossItem\"></span>\r\n </a>\r\n </li>\r\n </div>\r\n </ul>\r\n </div>\r\n </div>\r\n <div class=\"col-sm-8 hint-container\" *ngIf=\"!spaceID.value\">\r\n <p class=\"hint keywordsRules\">{{'You need to choose the location first' | translate}} </p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group row\">\r\n <label class=\"col-sm-4 col-form-label\">{{'Mission Start Date' | translate}}</label>\r\n <div class=\"input-group col-sm-8\">\r\n <input class=\"form-control\" placeholder=\"dd/mm/yyyy\" formControlName=\"startDate\" ngbDatepicker\r\n #d1=\"ngbDatepicker\" data-testid=\"form-mission-startDate\" (ngModelChange)=\"onVerifDate();onVerifForm()\"\r\n [ngClass]=\"{'is-invalid' : validatorsService.isControlError(missionForm.controls['startDate'])|| isFormError(missionForm.controls['startDate'])} \">\r\n <div class=\"input-group-append\">\r\n <button class=\"btn btn-outline-secondary calendar\" (click)=\"d1.toggle()\" type=\"button\"></button>\r\n </div>\r\n <div class=\"invalid-feedback\">\r\n <ngb-alert data-testid=\"form-mission-startDate-invalid\" [dismissible]=\"false\" type=\"danger\" *ngIf=\" validatorsService.isControlError(missionForm.controls['startDate']) \r\n || isFormError(missionForm.controls['startDate'])\">\r\n {{validatorsService.getError(missionForm.controls['startDate']) |\r\n translate}}\r\n </ngb-alert>\r\n\r\n <ngb-alert data-testid=\"form-mission-startDate-invalid-verif\" [dismissible]=\"false\" type=\"danger\"\r\n *ngIf=\"dateError\">\r\n {{'errorForm.date_start_end' |\r\n translate}}\r\n </ngb-alert>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group row\">\r\n <label class=\"col-sm-4 col-form-label\">{{'Mission Start Time' | translate}}</label>\r\n <div class=\"input-group col-sm-8 timeZoneContainer\">\r\n <ngb-timepicker [(ngModel)]=\"missionTimeStart\" [ngModelOptions]=\"{standalone: true}\"\r\n (ngModelChange)=\"onVerifDate();onVerifForm()\"></ngb-timepicker>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group row\">\r\n <label class=\"col-sm-4 col-form-label\">{{'Mission End Date' | translate}}</label>\r\n <div class=\"input-group col-sm-8\">\r\n <input class=\"form-control\" placeholder=\"dd/mm/yyyy\" ngbDatepicker #d2=\"ngbDatepicker\"\r\n formControlName=\"endDate\" data-testid=\"form-mission-endDate\"\r\n [class.is-invalid]=\"validatorsService.isControlError(missionForm.controls['endDate'])\"\r\n [ngClass]=\"{'is-invalid' : validatorsService.isControlError(missionForm.controls['endDate'])|| isFormError(missionForm.controls['endDate'])} \"\r\n (ngModelChange)=\"onVerifDate();onVerifForm()\">\r\n <div class=\"input-group-append\">\r\n <button class=\"btn btn-outline-secondary calendar\" (click)=\"d2.toggle()\" type=\"button\"></button>\r\n </div>\r\n <div class=\"invalid-feedback\">\r\n <ngb-alert data-testid=\"form-mission-endDate-invalid\" [dismissible]=\"false\" type=\"danger\" *ngIf=\" validatorsService.isControlError(missionForm.controls['endDate']) \r\n || isFormError(missionForm.controls['endDate'])\">\r\n {{validatorsService.getError(missionForm.controls['endDate']) |\r\n translate}}\r\n </ngb-alert>\r\n\r\n <ngb-alert data-testid=\"form-mission-endDate-invalid-verif\" [dismissible]=\"false\" type=\"danger\"\r\n *ngIf=\"dateError\">\r\n {{'errorForm.date_end_start' |\r\n translate}}\r\n </ngb-alert>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group row\">\r\n <label class=\"col-sm-4 col-form-label\">{{'Mission End Time' | translate}}</label>\r\n <div class=\"input-group col-sm-8 timeZoneContainer\">\r\n <ngb-timepicker [(ngModel)]=\"missionTimeEnd\" [ngModelOptions]=\"{standalone: true}\"\r\n (ngModelChange)=\"onVerifDate();onVerifForm()\"></ngb-timepicker>\r\n </div>\r\n </div>\r\n\r\n <div class=\"btn-control-div action-button-container\">\r\n <button type=\"submit\" class=\"btn btn-outline-primary rounded-pill mr-3 action-button\"\r\n data-testid=\"form-mission-submit-btn\" [ngClass]=\"{'is-invalid' : errorForm }\">{{'Save' |\r\n translate}}</button>\r\n <button type=\"button\" (click)=\"onCancel()\" data-testid=\"form-mission-cancel-btn\"\r\n class=\"btn btn-outline-primary rounded-pill action-button\">{{'Cancel' |\r\n translate}}</button>\r\n </div>\r\n <div class=\"invalid-feedback\" *ngIf=\"errorForm\">\r\n <ngb-alert data-testid=\"form-mission-invalid\" [dismissible]=\"false\" type=\"danger\">\r\n {{'errorForm.infoBtn' |translate}}\r\n </ngb-alert>\r\n </div>\r\n </form>\r\n</div>", styles: [".form-containter{padding:0rem 1rem;margin-bottom:2rem}.checkbox-apply{margin-top:calc(.375rem + 1px)}.keywordsDisplay{min-height:40px}.hint{margin:0!important}.hint-container{display:flex;align-items:center}.crossItem{margin:0;padding:0;border:0;background:none;position:relative;width:7px;height:20px}.crossItem:before,.crossItem:after{content:\"\";position:absolute;top:6.25px;left:0;right:0;height:1.5px;background:#fff;border-radius:1.5px}.crossItem:before{transform:rotate(45deg)}.crossItem:after{transform:rotate(-45deg)}.crossItem span{display:block}.btn-control-div .btn{width:8rem}.timeZoneContainer{align-items:center}.timeZoneContainer span{margin-left:5px}.form-group{margin:1.5rem 0}label.col-sm-4.col-form-label{width:200px;min-width:200px}.action-button-container{display:flex;justify-content:space-evenly}.action-button-container .action-button{width:145px}\n"], components: [{ type: i4.NgbAlert, selector: "ngb-alert", inputs: ["animation", "dismissible", "type"], outputs: ["closed"], exportAs: ["ngbAlert"] }, { type: i4.NgbTimepicker, selector: "ngb-timepicker", inputs: ["meridian", "spinners", "seconds", "hourStep", "minuteStep", "secondStep", "readonlyInputs", "size"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i1$1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1$1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i1$1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i1$1.SelectMultipleControlValueAccessor, selector: "select[multiple][formControlName],select[multiple][formControl],select[multiple][ngModel]", inputs: ["compareWith"] }, { type: i4.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "triggers", "container", "disableTooltip", "tooltipClass", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { type: i4.NgbInputDatepicker, selector: "input[ngbDatepicker]", inputs: ["autoClose", "datepickerClass", "dayTemplate", "dayTemplateData", "displayMonths", "firstDayOfWeek", "footerTemplate", "markDisabled", "minDate", "maxDate", "navigation", "outsideDays", "placement", "restoreFocus", "showWeekNumbers", "startDate", "container", "positionTarget", "weekdays", "disabled"], outputs: ["dateSelect", "navigate", "closed"], exportAs: ["ngbDatepicker"] }, { type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], pipes: { "translate": i3.TranslatePipe } });
|
|
531
|
+
FormMissionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: FormMissionComponent, selector: "lib-form-mission", inputs: { missionToEdit: "missionToEdit", organisationForMission: "organisationForMission", isSP: "isSP", userForMissionID: "userForMissionID", currentUserOrganisation: "currentUserOrganisation" }, outputs: { addedMissionInput: "addedMissionInput" }, ngImport: i0, template: "<div class=\"form-containter\" *ngIf=\"missionForm\">\n <div style=\"margin-top: 1rem;\">\n <h4>{{ 'Mission details' | translate }}</h4>\n </div>\n <form (ngSubmit)=\"onSubmit()\" [formGroup]=\"missionForm\">\n <div class=\"form-group row\">\n <label class=\"col-sm-4 col-form-label\">{{'Organisation' | translate}}</label>\n <div class=\"col-sm-8\">\n <input type=\"text\" data-testid=\"form-mission-organisation\" class=\"form-control\"\n formControlName=\"organisation\">\n </div>\n </div>\n\n <div class=\"form-group row\" *ngIf=\"isSP\">\n <label class=\"col-sm-4 col-form-label\">{{ 'Ordered by' | translate }}</label>\n <div class=\"col-sm-8\">\n <select class=\"form-control\" required formControlName=\"orderedOrganisationID\">\n <option *ngFor=\"let org of allOrgs\" [ngValue]=\"org.id\">\n {{ org.name }}\n </option>\n </select>\n </div>\n </div>\n\n <div class=\"form-group row\">\n <label class=\"col-sm-4 col-form-label\">{{'Description' | translate}}</label>\n <div class=\"col-sm-8\">\n <textarea class=\"form-control\" formControlName=\"description\" rows=\"10\" (ngModelChange)=\"onVerifForm()\"\n [ngClass]=\"{'is-invalid' : validatorsService.isControlError(missionForm.controls['description'])|| isFormError(missionForm.controls['description'])} \"\n data-testid=\"form-mission-description\"></textarea>\n <div class=\"invalid-feedback\">\n <ngb-alert data-testid=\"form-mission-description-invalid\" [dismissible]=\"false\" type=\"danger\" *ngIf=\" validatorsService.isControlError(missionForm.controls['description']) \n || isFormError(missionForm.controls['description'])\">\n {{validatorsService.getError(missionForm.controls['description']) |\n translate}}\n </ngb-alert>\n </div>\n </div>\n </div>\n\n <div class=\"form-group row\">\n <label class=\"col-sm-4 col-form-label\">{{'Role' | translate}}*</label>\n <div class=\"col-sm-8\">\n <select class=\"form-control\" required formControlName=\"role\" data-testid=\"form-mission-role\" (ngModelChange)=\"onVerifForm()\"\n [ngClass]=\"{'is-invalid' : validatorsService.isControlError(missionForm.controls['role'])|| isFormError(missionForm.controls['role'])} \">\n <option *ngFor=\"let r of availableRoles\" [ngValue]=\"r\">\n {{ r }}\n </option>\n </select>\n <div class=\"invalid-feedback\">\n <ngb-alert data-testid=\"form-mission-role-invalid\" [dismissible]=\"false\" type=\"danger\" *ngIf=\" validatorsService.isControlError(missionForm.controls['role']) \n || isFormError(missionForm.controls['role'])\">\n {{validatorsService.getError(missionForm.controls['role']) |\n translate}}\n </ngb-alert>\n </div>\n </div>\n </div>\n\n <div class=\"form-group row\"\n *ngIf=\"missionForm.get('role').value !== 'VISITOR_MUSEUM' && missionForm.get('role').value !== 'GUIDE_MUSEUM'\">\n <label class=\"col-sm-4 col-form-label\">{{'Domains' | translate}}</label>\n <div class=\"col-sm-8\" *ngIf=\"domains\">\n <select class=\"form-control\" multiple formControlName=\"domains\">\n <option *ngFor=\"let domain of domains\" [ngValue]=\"domain.id\">\n {{ domain.name }}\n </option>\n </select>\n </div>\n </div>\n\n <div class=\"form-group row\">\n <label class=\"col-sm-4 col-form-label\">{{'Access level' | translate}}</label>\n <div class=\"col-sm-8\">\n <select class=\"form-control\" required formControlName=\"level\" data-testid=\"form-mission-level\">\n <option *ngFor=\"let level of availableLevels\" [ngValue]=\"level\">\n {{ level }}\n </option>\n </select>\n </div>\n </div>\n\n <div class=\"form-group row\">\n <label class=\"col-sm-4 col-form-label\">{{ 'Authorized location' | translate }}*</label>\n <div class=\"col-sm-8\" *ngIf=\"availableSpaces\">\n <select class=\"form-control\" required formControlName=\"space\" (ngModelChange)=\"onVerifForm()\" (change)=\"onSpaceClick()\"\n data-testid=\"form-mission-space\"\n [ngClass]=\"{'is-invalid' : validatorsService.isControlError(missionForm.controls['space'])|| isFormError(missionForm.controls['space'])} \">\n <option *ngFor=\"let space of availableSpaces\" [ngValue]=\"space.id\">\n {{ space.name }}\n </option>\n </select>\n <div class=\"invalid-feedback\">\n <ngb-alert data-testid=\"form-mission-space-invalid\" [dismissible]=\"false\" type=\"danger\" *ngIf=\" validatorsService.isControlError(missionForm.controls['space']) \n || isFormError(missionForm.controls['space'])\">\n {{validatorsService.getError(missionForm.controls['space']) |\n translate}}\n </ngb-alert>\n </div>\n </div>\n <div class=\"col-sm-8\" *ngIf=\"!availableSpaces\">\n {{ 'No locations available' | translate}}\n </div>\n </div>\n\n <div class=\"form-group row\">\n <label class=\"col-sm-4 col-form-label\">{{ 'Authorized zone' | translate }}</label>\n <div class=\"col-sm-8\" *ngIf=\"zonesForSpace; else noSpace\">\n <select class=\"form-control\" formControlName=\"zone\" data-testid=\"form-mission-zone\">\n <option [ngValue]=\"defaultZone.id\">\n {{ 'All zones' | translate }}\n </option>\n <option *ngFor=\"let zone of zonesForSpace\" [ngValue]=\"zone.id\">\n {{ zone.name }}\n </option>\n </select>\n </div>\n <ng-template #noSpace>\n <div class=\"col-sm-8 hint-container\">\n <p class=\"hint keywordsRules\">{{'You need to choose the location first' | translate}} </p>\n </div>\n </ng-template>\n </div>\n <div class=\"form-group row\">\n <label class=\"col-sm-4 col-form-label\">{{'Language' | translate}}</label>\n <div class=\"col-sm-8\">\n <select class=\"form-control\" formControlName=\"locale\">\n <option [ngValue]=\"null\">{{'Not applicable' | translate}}</option>\n <option *ngFor=\"let locale of locales\" [ngValue]=\"locale\">\n {{ locale }}\n </option>\n </select>\n </div>\n </div>\n <!-- Hashtags are available after Space is set -->\n <div class=\"form-group row\">\n <label class=\"col-sm-4 col-form-label\">{{'Hashtags' | translate}}</label>\n <div class=\"col-sm-8\" *ngIf=\"spaceID.value\">\n <p class=\"keywordsRules\" *ngIf=\"availableHashtags.length > 0\">{{'Available hashtags' | translate}} </p>\n <p class=\"keywordsRules\" *ngIf=\"availableHashtags.length === 0\">\n {{'No hashtags created for this location' | translate}} </p>\n <div *ngIf=\"availableHashtags.length > 0\">\n <ul class=\"keywordsDisplay no-border\">\n <div class=\"keywordsdisplayContainer\">\n <li *ngFor=\"let hashtag of availableHashtags\"\n [class]=\"hashtagAdded(hashtag) ? 'keywordsItem added' : 'keywordsItem'\"\n (click)=\"onHashtagClick(hashtag)\" style=\"cursor: pointer;\"\n ngbTooltip=\"{{hashtagAdded(hashtag) ? ('Remove'|translate) : ('Add'|translate) }}\">\n {{hashtag.name}}\n </li>\n </div>\n </ul>\n <p class=\"keywordsRules\">{{'Added hashtags' | translate}} </p>\n <ul class=\"keywordsDisplay\">\n <div class=\"keywordsdisplayContainer\" *ngIf=\"addedHashtags.length> 0\">\n <li class=\"keywordsItem\" *ngFor=\"let hashtag of addedHashtags\">{{ hashtag.name }}\n <a type=\"button\" class=\"closeButton\" (click)=\"removeHashtag(hashtag)\">\n <span class=\"crossItem\"></span>\n </a>\n </li>\n </div>\n </ul>\n </div>\n </div>\n <div class=\"col-sm-8 hint-container\" *ngIf=\"!spaceID.value\">\n <p class=\"hint keywordsRules\">{{'You need to choose the location first' | translate}} </p>\n </div>\n </div>\n\n <div class=\"form-group row\">\n <label class=\"col-sm-4 col-form-label\">{{'Mission Start Date' | translate}}</label>\n <div class=\"input-group col-sm-8\">\n <input class=\"form-control\" placeholder=\"dd/mm/yyyy\" formControlName=\"startDate\" ngbDatepicker\n #d1=\"ngbDatepicker\" data-testid=\"form-mission-startDate\" (ngModelChange)=\"onVerifDate();onVerifForm()\"\n [ngClass]=\"{'is-invalid' : validatorsService.isControlError(missionForm.controls['startDate'])|| isFormError(missionForm.controls['startDate'])} \">\n <div class=\"input-group-append\">\n <button class=\"btn btn-outline-secondary calendar\" (click)=\"d1.toggle()\" type=\"button\"></button>\n </div>\n <div class=\"invalid-feedback\">\n <ngb-alert data-testid=\"form-mission-startDate-invalid\" [dismissible]=\"false\" type=\"danger\" *ngIf=\" validatorsService.isControlError(missionForm.controls['startDate']) \n || isFormError(missionForm.controls['startDate'])\">\n {{validatorsService.getError(missionForm.controls['startDate']) |\n translate}}\n </ngb-alert>\n\n <ngb-alert data-testid=\"form-mission-startDate-invalid-verif\" [dismissible]=\"false\" type=\"danger\"\n *ngIf=\"dateError\">\n {{'errorForm.date_start_end' |\n translate}}\n </ngb-alert>\n </div>\n </div>\n </div>\n\n <div class=\"form-group row\">\n <label class=\"col-sm-4 col-form-label\">{{'Mission Start Time' | translate}}</label>\n <div class=\"input-group col-sm-8 timeZoneContainer\">\n <ngb-timepicker [(ngModel)]=\"missionTimeStart\" [ngModelOptions]=\"{standalone: true}\"\n (ngModelChange)=\"onVerifDate();onVerifForm()\"></ngb-timepicker>\n </div>\n </div>\n\n <div class=\"form-group row\">\n <label class=\"col-sm-4 col-form-label\">{{'Mission End Date' | translate}}</label>\n <div class=\"input-group col-sm-8\">\n <input class=\"form-control\" placeholder=\"dd/mm/yyyy\" ngbDatepicker #d2=\"ngbDatepicker\"\n formControlName=\"endDate\" data-testid=\"form-mission-endDate\"\n [class.is-invalid]=\"validatorsService.isControlError(missionForm.controls['endDate'])\"\n [ngClass]=\"{'is-invalid' : validatorsService.isControlError(missionForm.controls['endDate'])|| isFormError(missionForm.controls['endDate'])} \"\n (ngModelChange)=\"onVerifDate();onVerifForm()\">\n <div class=\"input-group-append\">\n <button class=\"btn btn-outline-secondary calendar\" (click)=\"d2.toggle()\" type=\"button\"></button>\n </div>\n <div class=\"invalid-feedback\">\n <ngb-alert data-testid=\"form-mission-endDate-invalid\" [dismissible]=\"false\" type=\"danger\" *ngIf=\" validatorsService.isControlError(missionForm.controls['endDate']) \n || isFormError(missionForm.controls['endDate'])\">\n {{validatorsService.getError(missionForm.controls['endDate']) |\n translate}}\n </ngb-alert>\n\n <ngb-alert data-testid=\"form-mission-endDate-invalid-verif\" [dismissible]=\"false\" type=\"danger\"\n *ngIf=\"dateError\">\n {{'errorForm.date_end_start' |\n translate}}\n </ngb-alert>\n </div>\n </div>\n </div>\n\n <div class=\"form-group row\">\n <label class=\"col-sm-4 col-form-label\">{{'Mission End Time' | translate}}</label>\n <div class=\"input-group col-sm-8 timeZoneContainer\">\n <ngb-timepicker [(ngModel)]=\"missionTimeEnd\" [ngModelOptions]=\"{standalone: true}\"\n (ngModelChange)=\"onVerifDate();onVerifForm()\"></ngb-timepicker>\n </div>\n </div>\n\n <div class=\"btn-control-div action-button-container\">\n <button type=\"submit\" class=\"btn btn-outline-primary rounded-pill mr-3 action-button\"\n data-testid=\"form-mission-submit-btn\" [ngClass]=\"{'is-invalid' : errorForm }\">{{'Save' |\n translate}}</button>\n <button type=\"button\" (click)=\"onCancel()\" data-testid=\"form-mission-cancel-btn\"\n class=\"btn btn-outline-primary rounded-pill action-button\">{{'Cancel' |\n translate}}</button>\n </div>\n <div class=\"invalid-feedback\" *ngIf=\"errorForm\">\n <ngb-alert data-testid=\"form-mission-invalid\" [dismissible]=\"false\" type=\"danger\">\n {{'errorForm.infoBtn' |translate}}\n </ngb-alert>\n </div>\n </form>\n</div>", styles: [".form-containter{padding:0rem 1rem;margin-bottom:2rem}.checkbox-apply{margin-top:calc(.375rem + 1px)}.keywordsDisplay{min-height:40px}.hint{margin:0!important}.hint-container{display:flex;align-items:center}.crossItem{margin:0;padding:0;border:0;background:none;position:relative;width:7px;height:20px}.crossItem:before,.crossItem:after{content:\"\";position:absolute;top:6.25px;left:0;right:0;height:1.5px;background:#fff;border-radius:1.5px}.crossItem:before{transform:rotate(45deg)}.crossItem:after{transform:rotate(-45deg)}.crossItem span{display:block}.btn-control-div .btn{width:8rem}.timeZoneContainer{align-items:center}.timeZoneContainer span{margin-left:5px}.form-group{margin:1.5rem 0}label.col-sm-4.col-form-label{width:200px;min-width:200px}.action-button-container{display:flex;justify-content:space-evenly}.action-button-container .action-button{width:145px}\n"], components: [{ type: i4.NgbAlert, selector: "ngb-alert", inputs: ["animation", "dismissible", "type"], outputs: ["closed"], exportAs: ["ngbAlert"] }, { type: i4.NgbTimepicker, selector: "ngb-timepicker", inputs: ["meridian", "spinners", "seconds", "hourStep", "minuteStep", "secondStep", "readonlyInputs", "size"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i1$1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1$1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i1$1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i1$1.SelectMultipleControlValueAccessor, selector: "select[multiple][formControlName],select[multiple][formControl],select[multiple][ngModel]", inputs: ["compareWith"] }, { type: i4.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "triggers", "container", "disableTooltip", "tooltipClass", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { type: i4.NgbInputDatepicker, selector: "input[ngbDatepicker]", inputs: ["autoClose", "datepickerClass", "dayTemplate", "dayTemplateData", "displayMonths", "firstDayOfWeek", "footerTemplate", "markDisabled", "minDate", "maxDate", "navigation", "outsideDays", "placement", "restoreFocus", "showWeekNumbers", "startDate", "container", "positionTarget", "weekdays", "disabled"], outputs: ["dateSelect", "navigate", "closed"], exportAs: ["ngbDatepicker"] }, { type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], pipes: { "translate": i3.TranslatePipe } });
|
|
532
532
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: FormMissionComponent, decorators: [{
|
|
533
533
|
type: Component,
|
|
534
|
-
args: [{ selector: 'lib-form-mission', template: "<div class=\"form-containter\" *ngIf=\"missionForm\">\r\n <div style=\"margin-top: 1rem;\">\r\n <h4>{{ 'Mission details' | translate }}</h4>\r\n </div>\r\n <form (ngSubmit)=\"onSubmit()\" [formGroup]=\"missionForm\">\r\n <div class=\"form-group row\">\r\n <label class=\"col-sm-4 col-form-label\">{{'Organisation' | translate}}</label>\r\n <div class=\"col-sm-8\">\r\n <input type=\"text\" data-testid=\"form-mission-organisation\" class=\"form-control\"\r\n formControlName=\"organisation\">\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group row\" *ngIf=\"isSP\">\r\n <label class=\"col-sm-4 col-form-label\">{{ 'Ordered by' | translate }}</label>\r\n <div class=\"col-sm-8\">\r\n <select class=\"form-control\" required formControlName=\"orderedOrganisationID\">\r\n <option *ngFor=\"let org of allOrgs\" [ngValue]=\"org.id\">\r\n {{ org.name }}\r\n </option>\r\n </select>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group row\">\r\n <label class=\"col-sm-4 col-form-label\">{{'Description' | translate}}</label>\r\n <div class=\"col-sm-8\">\r\n <textarea class=\"form-control\" formControlName=\"description\" rows=\"10\" (ngModelChange)=\"onVerifForm()\"\r\n [ngClass]=\"{'is-invalid' : validatorsService.isControlError(missionForm.controls['description'])|| isFormError(missionForm.controls['description'])} \"\r\n data-testid=\"form-mission-description\"></textarea>\r\n <div class=\"invalid-feedback\">\r\n <ngb-alert data-testid=\"form-mission-description-invalid\" [dismissible]=\"false\" type=\"danger\" *ngIf=\" validatorsService.isControlError(missionForm.controls['description']) \r\n || isFormError(missionForm.controls['description'])\">\r\n {{validatorsService.getError(missionForm.controls['description']) |\r\n translate}}\r\n </ngb-alert>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group row\">\r\n <label class=\"col-sm-4 col-form-label\">{{'Role' | translate}}*</label>\r\n <div class=\"col-sm-8\">\r\n <select class=\"form-control\" required formControlName=\"role\" data-testid=\"form-mission-role\" (ngModelChange)=\"onVerifForm()\"\r\n [ngClass]=\"{'is-invalid' : validatorsService.isControlError(missionForm.controls['role'])|| isFormError(missionForm.controls['role'])} \">\r\n <option *ngFor=\"let r of availableRoles\" [ngValue]=\"r\">\r\n {{ r }}\r\n </option>\r\n </select>\r\n <div class=\"invalid-feedback\">\r\n <ngb-alert data-testid=\"form-mission-role-invalid\" [dismissible]=\"false\" type=\"danger\" *ngIf=\" validatorsService.isControlError(missionForm.controls['role']) \r\n || isFormError(missionForm.controls['role'])\">\r\n {{validatorsService.getError(missionForm.controls['role']) |\r\n translate}}\r\n </ngb-alert>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group row\"\r\n *ngIf=\"missionForm.get('role').value !== 'VISITOR_MUSEUM' && missionForm.get('role').value !== 'GUIDE_MUSEUM'\">\r\n <label class=\"col-sm-4 col-form-label\">{{'Domains' | translate}}</label>\r\n <div class=\"col-sm-8\" *ngIf=\"domains\">\r\n <select class=\"form-control\" multiple formControlName=\"domains\">\r\n <option *ngFor=\"let domain of domains\" [ngValue]=\"domain.id\">\r\n {{ domain.name }}\r\n </option>\r\n </select>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group row\">\r\n <label class=\"col-sm-4 col-form-label\">{{'Access level' | translate}}</label>\r\n <div class=\"col-sm-8\">\r\n <select class=\"form-control\" required formControlName=\"level\" data-testid=\"form-mission-level\">\r\n <option *ngFor=\"let level of availableLevels\" [ngValue]=\"level\">\r\n {{ level }}\r\n </option>\r\n </select>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group row\">\r\n <label class=\"col-sm-4 col-form-label\">{{ 'Authorized location' | translate }}*</label>\r\n <div class=\"col-sm-8\" *ngIf=\"availableSpaces\">\r\n <select class=\"form-control\" required formControlName=\"space\" (ngModelChange)=\"onVerifForm()\" (change)=\"onSpaceClick()\"\r\n data-testid=\"form-mission-space\"\r\n [ngClass]=\"{'is-invalid' : validatorsService.isControlError(missionForm.controls['space'])|| isFormError(missionForm.controls['space'])} \">\r\n <option *ngFor=\"let space of availableSpaces\" [ngValue]=\"space.id\">\r\n {{ space.name }}\r\n </option>\r\n </select>\r\n <div class=\"invalid-feedback\">\r\n <ngb-alert data-testid=\"form-mission-space-invalid\" [dismissible]=\"false\" type=\"danger\" *ngIf=\" validatorsService.isControlError(missionForm.controls['space']) \r\n || isFormError(missionForm.controls['space'])\">\r\n {{validatorsService.getError(missionForm.controls['space']) |\r\n translate}}\r\n </ngb-alert>\r\n </div>\r\n </div>\r\n <div class=\"col-sm-8\" *ngIf=\"!availableSpaces\">\r\n {{ 'No locations available' | translate}}\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group row\">\r\n <label class=\"col-sm-4 col-form-label\">{{ 'Authorized zone' | translate }}</label>\r\n <div class=\"col-sm-8\" *ngIf=\"zonesForSpace; else noSpace\">\r\n <select class=\"form-control\" formControlName=\"zone\" data-testid=\"form-mission-zone\">\r\n <option [ngValue]=\"defaultZone.id\">\r\n {{ 'All zones' | translate }}\r\n </option>\r\n <option *ngFor=\"let zone of zonesForSpace\" [ngValue]=\"zone.id\">\r\n {{ zone.name }}\r\n </option>\r\n </select>\r\n </div>\r\n <ng-template #noSpace>\r\n <div class=\"col-sm-8 hint-container\">\r\n <p class=\"hint keywordsRules\">{{'You need to choose the location first' | translate}} </p>\r\n </div>\r\n </ng-template>\r\n </div>\r\n <div class=\"form-group row\">\r\n <label class=\"col-sm-4 col-form-label\">{{'Language' | translate}}</label>\r\n <div class=\"col-sm-8\">\r\n <select class=\"form-control\" formControlName=\"locale\">\r\n <option [ngValue]=\"null\">{{'Not applicable' | translate}}</option>\r\n <option *ngFor=\"let locale of locales\" [ngValue]=\"locale\">\r\n {{ locale }}\r\n </option>\r\n </select>\r\n </div>\r\n </div>\r\n <!-- Hashtags are available after Space is set -->\r\n <div class=\"form-group row\">\r\n <label class=\"col-sm-4 col-form-label\">{{'Hashtags' | translate}}</label>\r\n <div class=\"col-sm-8\" *ngIf=\"spaceID.value\">\r\n <p class=\"keywordsRules\" *ngIf=\"availableHashtags.length > 0\">{{'Available hashtags' | translate}} </p>\r\n <p class=\"keywordsRules\" *ngIf=\"availableHashtags.length === 0\">\r\n {{'No hashtags created for this location' | translate}} </p>\r\n <div *ngIf=\"availableHashtags.length > 0\">\r\n <ul class=\"keywordsDisplay no-border\">\r\n <div class=\"keywordsdisplayContainer\">\r\n <li *ngFor=\"let hashtag of availableHashtags\"\r\n [class]=\"hashtagAdded(hashtag) ? 'keywordsItem added' : 'keywordsItem'\"\r\n (click)=\"onHashtagClick(hashtag)\" style=\"cursor: pointer;\"\r\n ngbTooltip=\"{{hashtagAdded(hashtag) ? ('Remove'|translate) : ('Add'|translate) }}\">\r\n {{hashtag.name}}\r\n </li>\r\n </div>\r\n </ul>\r\n <p class=\"keywordsRules\">{{'Added hashtags' | translate}} </p>\r\n <ul class=\"keywordsDisplay\">\r\n <div class=\"keywordsdisplayContainer\" *ngIf=\"addedHashtags.length> 0\">\r\n <li class=\"keywordsItem\" *ngFor=\"let hashtag of addedHashtags\">{{ hashtag.name }}\r\n <a type=\"button\" class=\"closeButton\" (click)=\"removeHashtag(hashtag)\">\r\n <span class=\"crossItem\"></span>\r\n </a>\r\n </li>\r\n </div>\r\n </ul>\r\n </div>\r\n </div>\r\n <div class=\"col-sm-8 hint-container\" *ngIf=\"!spaceID.value\">\r\n <p class=\"hint keywordsRules\">{{'You need to choose the location first' | translate}} </p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group row\">\r\n <label class=\"col-sm-4 col-form-label\">{{'Mission Start Date' | translate}}</label>\r\n <div class=\"input-group col-sm-8\">\r\n <input class=\"form-control\" placeholder=\"dd/mm/yyyy\" formControlName=\"startDate\" ngbDatepicker\r\n #d1=\"ngbDatepicker\" data-testid=\"form-mission-startDate\" (ngModelChange)=\"onVerifDate();onVerifForm()\"\r\n [ngClass]=\"{'is-invalid' : validatorsService.isControlError(missionForm.controls['startDate'])|| isFormError(missionForm.controls['startDate'])} \">\r\n <div class=\"input-group-append\">\r\n <button class=\"btn btn-outline-secondary calendar\" (click)=\"d1.toggle()\" type=\"button\"></button>\r\n </div>\r\n <div class=\"invalid-feedback\">\r\n <ngb-alert data-testid=\"form-mission-startDate-invalid\" [dismissible]=\"false\" type=\"danger\" *ngIf=\" validatorsService.isControlError(missionForm.controls['startDate']) \r\n || isFormError(missionForm.controls['startDate'])\">\r\n {{validatorsService.getError(missionForm.controls['startDate']) |\r\n translate}}\r\n </ngb-alert>\r\n\r\n <ngb-alert data-testid=\"form-mission-startDate-invalid-verif\" [dismissible]=\"false\" type=\"danger\"\r\n *ngIf=\"dateError\">\r\n {{'errorForm.date_start_end' |\r\n translate}}\r\n </ngb-alert>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group row\">\r\n <label class=\"col-sm-4 col-form-label\">{{'Mission Start Time' | translate}}</label>\r\n <div class=\"input-group col-sm-8 timeZoneContainer\">\r\n <ngb-timepicker [(ngModel)]=\"missionTimeStart\" [ngModelOptions]=\"{standalone: true}\"\r\n (ngModelChange)=\"onVerifDate();onVerifForm()\"></ngb-timepicker>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group row\">\r\n <label class=\"col-sm-4 col-form-label\">{{'Mission End Date' | translate}}</label>\r\n <div class=\"input-group col-sm-8\">\r\n <input class=\"form-control\" placeholder=\"dd/mm/yyyy\" ngbDatepicker #d2=\"ngbDatepicker\"\r\n formControlName=\"endDate\" data-testid=\"form-mission-endDate\"\r\n [class.is-invalid]=\"validatorsService.isControlError(missionForm.controls['endDate'])\"\r\n [ngClass]=\"{'is-invalid' : validatorsService.isControlError(missionForm.controls['endDate'])|| isFormError(missionForm.controls['endDate'])} \"\r\n (ngModelChange)=\"onVerifDate();onVerifForm()\">\r\n <div class=\"input-group-append\">\r\n <button class=\"btn btn-outline-secondary calendar\" (click)=\"d2.toggle()\" type=\"button\"></button>\r\n </div>\r\n <div class=\"invalid-feedback\">\r\n <ngb-alert data-testid=\"form-mission-endDate-invalid\" [dismissible]=\"false\" type=\"danger\" *ngIf=\" validatorsService.isControlError(missionForm.controls['endDate']) \r\n || isFormError(missionForm.controls['endDate'])\">\r\n {{validatorsService.getError(missionForm.controls['endDate']) |\r\n translate}}\r\n </ngb-alert>\r\n\r\n <ngb-alert data-testid=\"form-mission-endDate-invalid-verif\" [dismissible]=\"false\" type=\"danger\"\r\n *ngIf=\"dateError\">\r\n {{'errorForm.date_end_start' |\r\n translate}}\r\n </ngb-alert>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group row\">\r\n <label class=\"col-sm-4 col-form-label\">{{'Mission End Time' | translate}}</label>\r\n <div class=\"input-group col-sm-8 timeZoneContainer\">\r\n <ngb-timepicker [(ngModel)]=\"missionTimeEnd\" [ngModelOptions]=\"{standalone: true}\"\r\n (ngModelChange)=\"onVerifDate();onVerifForm()\"></ngb-timepicker>\r\n </div>\r\n </div>\r\n\r\n <div class=\"btn-control-div action-button-container\">\r\n <button type=\"submit\" class=\"btn btn-outline-primary rounded-pill mr-3 action-button\"\r\n data-testid=\"form-mission-submit-btn\" [ngClass]=\"{'is-invalid' : errorForm }\">{{'Save' |\r\n translate}}</button>\r\n <button type=\"button\" (click)=\"onCancel()\" data-testid=\"form-mission-cancel-btn\"\r\n class=\"btn btn-outline-primary rounded-pill action-button\">{{'Cancel' |\r\n translate}}</button>\r\n </div>\r\n <div class=\"invalid-feedback\" *ngIf=\"errorForm\">\r\n <ngb-alert data-testid=\"form-mission-invalid\" [dismissible]=\"false\" type=\"danger\">\r\n {{'errorForm.infoBtn' |translate}}\r\n </ngb-alert>\r\n </div>\r\n </form>\r\n</div>", styles: [".form-containter{padding:0rem 1rem;margin-bottom:2rem}.checkbox-apply{margin-top:calc(.375rem + 1px)}.keywordsDisplay{min-height:40px}.hint{margin:0!important}.hint-container{display:flex;align-items:center}.crossItem{margin:0;padding:0;border:0;background:none;position:relative;width:7px;height:20px}.crossItem:before,.crossItem:after{content:\"\";position:absolute;top:6.25px;left:0;right:0;height:1.5px;background:#fff;border-radius:1.5px}.crossItem:before{transform:rotate(45deg)}.crossItem:after{transform:rotate(-45deg)}.crossItem span{display:block}.btn-control-div .btn{width:8rem}.timeZoneContainer{align-items:center}.timeZoneContainer span{margin-left:5px}.form-group{margin:1.5rem 0}label.col-sm-4.col-form-label{width:200px;min-width:200px}.action-button-container{display:flex;justify-content:space-evenly}.action-button-container .action-button{width:145px}\n"] }]
|
|
534
|
+
args: [{ selector: 'lib-form-mission', template: "<div class=\"form-containter\" *ngIf=\"missionForm\">\n <div style=\"margin-top: 1rem;\">\n <h4>{{ 'Mission details' | translate }}</h4>\n </div>\n <form (ngSubmit)=\"onSubmit()\" [formGroup]=\"missionForm\">\n <div class=\"form-group row\">\n <label class=\"col-sm-4 col-form-label\">{{'Organisation' | translate}}</label>\n <div class=\"col-sm-8\">\n <input type=\"text\" data-testid=\"form-mission-organisation\" class=\"form-control\"\n formControlName=\"organisation\">\n </div>\n </div>\n\n <div class=\"form-group row\" *ngIf=\"isSP\">\n <label class=\"col-sm-4 col-form-label\">{{ 'Ordered by' | translate }}</label>\n <div class=\"col-sm-8\">\n <select class=\"form-control\" required formControlName=\"orderedOrganisationID\">\n <option *ngFor=\"let org of allOrgs\" [ngValue]=\"org.id\">\n {{ org.name }}\n </option>\n </select>\n </div>\n </div>\n\n <div class=\"form-group row\">\n <label class=\"col-sm-4 col-form-label\">{{'Description' | translate}}</label>\n <div class=\"col-sm-8\">\n <textarea class=\"form-control\" formControlName=\"description\" rows=\"10\" (ngModelChange)=\"onVerifForm()\"\n [ngClass]=\"{'is-invalid' : validatorsService.isControlError(missionForm.controls['description'])|| isFormError(missionForm.controls['description'])} \"\n data-testid=\"form-mission-description\"></textarea>\n <div class=\"invalid-feedback\">\n <ngb-alert data-testid=\"form-mission-description-invalid\" [dismissible]=\"false\" type=\"danger\" *ngIf=\" validatorsService.isControlError(missionForm.controls['description']) \n || isFormError(missionForm.controls['description'])\">\n {{validatorsService.getError(missionForm.controls['description']) |\n translate}}\n </ngb-alert>\n </div>\n </div>\n </div>\n\n <div class=\"form-group row\">\n <label class=\"col-sm-4 col-form-label\">{{'Role' | translate}}*</label>\n <div class=\"col-sm-8\">\n <select class=\"form-control\" required formControlName=\"role\" data-testid=\"form-mission-role\" (ngModelChange)=\"onVerifForm()\"\n [ngClass]=\"{'is-invalid' : validatorsService.isControlError(missionForm.controls['role'])|| isFormError(missionForm.controls['role'])} \">\n <option *ngFor=\"let r of availableRoles\" [ngValue]=\"r\">\n {{ r }}\n </option>\n </select>\n <div class=\"invalid-feedback\">\n <ngb-alert data-testid=\"form-mission-role-invalid\" [dismissible]=\"false\" type=\"danger\" *ngIf=\" validatorsService.isControlError(missionForm.controls['role']) \n || isFormError(missionForm.controls['role'])\">\n {{validatorsService.getError(missionForm.controls['role']) |\n translate}}\n </ngb-alert>\n </div>\n </div>\n </div>\n\n <div class=\"form-group row\"\n *ngIf=\"missionForm.get('role').value !== 'VISITOR_MUSEUM' && missionForm.get('role').value !== 'GUIDE_MUSEUM'\">\n <label class=\"col-sm-4 col-form-label\">{{'Domains' | translate}}</label>\n <div class=\"col-sm-8\" *ngIf=\"domains\">\n <select class=\"form-control\" multiple formControlName=\"domains\">\n <option *ngFor=\"let domain of domains\" [ngValue]=\"domain.id\">\n {{ domain.name }}\n </option>\n </select>\n </div>\n </div>\n\n <div class=\"form-group row\">\n <label class=\"col-sm-4 col-form-label\">{{'Access level' | translate}}</label>\n <div class=\"col-sm-8\">\n <select class=\"form-control\" required formControlName=\"level\" data-testid=\"form-mission-level\">\n <option *ngFor=\"let level of availableLevels\" [ngValue]=\"level\">\n {{ level }}\n </option>\n </select>\n </div>\n </div>\n\n <div class=\"form-group row\">\n <label class=\"col-sm-4 col-form-label\">{{ 'Authorized location' | translate }}*</label>\n <div class=\"col-sm-8\" *ngIf=\"availableSpaces\">\n <select class=\"form-control\" required formControlName=\"space\" (ngModelChange)=\"onVerifForm()\" (change)=\"onSpaceClick()\"\n data-testid=\"form-mission-space\"\n [ngClass]=\"{'is-invalid' : validatorsService.isControlError(missionForm.controls['space'])|| isFormError(missionForm.controls['space'])} \">\n <option *ngFor=\"let space of availableSpaces\" [ngValue]=\"space.id\">\n {{ space.name }}\n </option>\n </select>\n <div class=\"invalid-feedback\">\n <ngb-alert data-testid=\"form-mission-space-invalid\" [dismissible]=\"false\" type=\"danger\" *ngIf=\" validatorsService.isControlError(missionForm.controls['space']) \n || isFormError(missionForm.controls['space'])\">\n {{validatorsService.getError(missionForm.controls['space']) |\n translate}}\n </ngb-alert>\n </div>\n </div>\n <div class=\"col-sm-8\" *ngIf=\"!availableSpaces\">\n {{ 'No locations available' | translate}}\n </div>\n </div>\n\n <div class=\"form-group row\">\n <label class=\"col-sm-4 col-form-label\">{{ 'Authorized zone' | translate }}</label>\n <div class=\"col-sm-8\" *ngIf=\"zonesForSpace; else noSpace\">\n <select class=\"form-control\" formControlName=\"zone\" data-testid=\"form-mission-zone\">\n <option [ngValue]=\"defaultZone.id\">\n {{ 'All zones' | translate }}\n </option>\n <option *ngFor=\"let zone of zonesForSpace\" [ngValue]=\"zone.id\">\n {{ zone.name }}\n </option>\n </select>\n </div>\n <ng-template #noSpace>\n <div class=\"col-sm-8 hint-container\">\n <p class=\"hint keywordsRules\">{{'You need to choose the location first' | translate}} </p>\n </div>\n </ng-template>\n </div>\n <div class=\"form-group row\">\n <label class=\"col-sm-4 col-form-label\">{{'Language' | translate}}</label>\n <div class=\"col-sm-8\">\n <select class=\"form-control\" formControlName=\"locale\">\n <option [ngValue]=\"null\">{{'Not applicable' | translate}}</option>\n <option *ngFor=\"let locale of locales\" [ngValue]=\"locale\">\n {{ locale }}\n </option>\n </select>\n </div>\n </div>\n <!-- Hashtags are available after Space is set -->\n <div class=\"form-group row\">\n <label class=\"col-sm-4 col-form-label\">{{'Hashtags' | translate}}</label>\n <div class=\"col-sm-8\" *ngIf=\"spaceID.value\">\n <p class=\"keywordsRules\" *ngIf=\"availableHashtags.length > 0\">{{'Available hashtags' | translate}} </p>\n <p class=\"keywordsRules\" *ngIf=\"availableHashtags.length === 0\">\n {{'No hashtags created for this location' | translate}} </p>\n <div *ngIf=\"availableHashtags.length > 0\">\n <ul class=\"keywordsDisplay no-border\">\n <div class=\"keywordsdisplayContainer\">\n <li *ngFor=\"let hashtag of availableHashtags\"\n [class]=\"hashtagAdded(hashtag) ? 'keywordsItem added' : 'keywordsItem'\"\n (click)=\"onHashtagClick(hashtag)\" style=\"cursor: pointer;\"\n ngbTooltip=\"{{hashtagAdded(hashtag) ? ('Remove'|translate) : ('Add'|translate) }}\">\n {{hashtag.name}}\n </li>\n </div>\n </ul>\n <p class=\"keywordsRules\">{{'Added hashtags' | translate}} </p>\n <ul class=\"keywordsDisplay\">\n <div class=\"keywordsdisplayContainer\" *ngIf=\"addedHashtags.length> 0\">\n <li class=\"keywordsItem\" *ngFor=\"let hashtag of addedHashtags\">{{ hashtag.name }}\n <a type=\"button\" class=\"closeButton\" (click)=\"removeHashtag(hashtag)\">\n <span class=\"crossItem\"></span>\n </a>\n </li>\n </div>\n </ul>\n </div>\n </div>\n <div class=\"col-sm-8 hint-container\" *ngIf=\"!spaceID.value\">\n <p class=\"hint keywordsRules\">{{'You need to choose the location first' | translate}} </p>\n </div>\n </div>\n\n <div class=\"form-group row\">\n <label class=\"col-sm-4 col-form-label\">{{'Mission Start Date' | translate}}</label>\n <div class=\"input-group col-sm-8\">\n <input class=\"form-control\" placeholder=\"dd/mm/yyyy\" formControlName=\"startDate\" ngbDatepicker\n #d1=\"ngbDatepicker\" data-testid=\"form-mission-startDate\" (ngModelChange)=\"onVerifDate();onVerifForm()\"\n [ngClass]=\"{'is-invalid' : validatorsService.isControlError(missionForm.controls['startDate'])|| isFormError(missionForm.controls['startDate'])} \">\n <div class=\"input-group-append\">\n <button class=\"btn btn-outline-secondary calendar\" (click)=\"d1.toggle()\" type=\"button\"></button>\n </div>\n <div class=\"invalid-feedback\">\n <ngb-alert data-testid=\"form-mission-startDate-invalid\" [dismissible]=\"false\" type=\"danger\" *ngIf=\" validatorsService.isControlError(missionForm.controls['startDate']) \n || isFormError(missionForm.controls['startDate'])\">\n {{validatorsService.getError(missionForm.controls['startDate']) |\n translate}}\n </ngb-alert>\n\n <ngb-alert data-testid=\"form-mission-startDate-invalid-verif\" [dismissible]=\"false\" type=\"danger\"\n *ngIf=\"dateError\">\n {{'errorForm.date_start_end' |\n translate}}\n </ngb-alert>\n </div>\n </div>\n </div>\n\n <div class=\"form-group row\">\n <label class=\"col-sm-4 col-form-label\">{{'Mission Start Time' | translate}}</label>\n <div class=\"input-group col-sm-8 timeZoneContainer\">\n <ngb-timepicker [(ngModel)]=\"missionTimeStart\" [ngModelOptions]=\"{standalone: true}\"\n (ngModelChange)=\"onVerifDate();onVerifForm()\"></ngb-timepicker>\n </div>\n </div>\n\n <div class=\"form-group row\">\n <label class=\"col-sm-4 col-form-label\">{{'Mission End Date' | translate}}</label>\n <div class=\"input-group col-sm-8\">\n <input class=\"form-control\" placeholder=\"dd/mm/yyyy\" ngbDatepicker #d2=\"ngbDatepicker\"\n formControlName=\"endDate\" data-testid=\"form-mission-endDate\"\n [class.is-invalid]=\"validatorsService.isControlError(missionForm.controls['endDate'])\"\n [ngClass]=\"{'is-invalid' : validatorsService.isControlError(missionForm.controls['endDate'])|| isFormError(missionForm.controls['endDate'])} \"\n (ngModelChange)=\"onVerifDate();onVerifForm()\">\n <div class=\"input-group-append\">\n <button class=\"btn btn-outline-secondary calendar\" (click)=\"d2.toggle()\" type=\"button\"></button>\n </div>\n <div class=\"invalid-feedback\">\n <ngb-alert data-testid=\"form-mission-endDate-invalid\" [dismissible]=\"false\" type=\"danger\" *ngIf=\" validatorsService.isControlError(missionForm.controls['endDate']) \n || isFormError(missionForm.controls['endDate'])\">\n {{validatorsService.getError(missionForm.controls['endDate']) |\n translate}}\n </ngb-alert>\n\n <ngb-alert data-testid=\"form-mission-endDate-invalid-verif\" [dismissible]=\"false\" type=\"danger\"\n *ngIf=\"dateError\">\n {{'errorForm.date_end_start' |\n translate}}\n </ngb-alert>\n </div>\n </div>\n </div>\n\n <div class=\"form-group row\">\n <label class=\"col-sm-4 col-form-label\">{{'Mission End Time' | translate}}</label>\n <div class=\"input-group col-sm-8 timeZoneContainer\">\n <ngb-timepicker [(ngModel)]=\"missionTimeEnd\" [ngModelOptions]=\"{standalone: true}\"\n (ngModelChange)=\"onVerifDate();onVerifForm()\"></ngb-timepicker>\n </div>\n </div>\n\n <div class=\"btn-control-div action-button-container\">\n <button type=\"submit\" class=\"btn btn-outline-primary rounded-pill mr-3 action-button\"\n data-testid=\"form-mission-submit-btn\" [ngClass]=\"{'is-invalid' : errorForm }\">{{'Save' |\n translate}}</button>\n <button type=\"button\" (click)=\"onCancel()\" data-testid=\"form-mission-cancel-btn\"\n class=\"btn btn-outline-primary rounded-pill action-button\">{{'Cancel' |\n translate}}</button>\n </div>\n <div class=\"invalid-feedback\" *ngIf=\"errorForm\">\n <ngb-alert data-testid=\"form-mission-invalid\" [dismissible]=\"false\" type=\"danger\">\n {{'errorForm.infoBtn' |translate}}\n </ngb-alert>\n </div>\n </form>\n</div>", styles: [".form-containter{padding:0rem 1rem;margin-bottom:2rem}.checkbox-apply{margin-top:calc(.375rem + 1px)}.keywordsDisplay{min-height:40px}.hint{margin:0!important}.hint-container{display:flex;align-items:center}.crossItem{margin:0;padding:0;border:0;background:none;position:relative;width:7px;height:20px}.crossItem:before,.crossItem:after{content:\"\";position:absolute;top:6.25px;left:0;right:0;height:1.5px;background:#fff;border-radius:1.5px}.crossItem:before{transform:rotate(45deg)}.crossItem:after{transform:rotate(-45deg)}.crossItem span{display:block}.btn-control-div .btn{width:8rem}.timeZoneContainer{align-items:center}.timeZoneContainer span{margin-left:5px}.form-group{margin:1.5rem 0}label.col-sm-4.col-form-label{width:200px;min-width:200px}.action-button-container{display:flex;justify-content:space-evenly}.action-button-container .action-button{width:145px}\n"] }]
|
|
535
535
|
}], ctorParameters: function () { return [{ type: i1$1.FormBuilder }, { type: i1.SpaceService }, { type: i1.BaseUserService }, { type: i1.DomainService }, { type: i1.OrganisationService }, { type: i1.ZoneService }, { type: i1.HashtagService }, { type: i1.LocaleService }, { type: i1.ValidatorsService }]; }, propDecorators: { missionToEdit: [{
|
|
536
536
|
type: Input
|
|
537
537
|
}], organisationForMission: [{
|
|
@@ -647,10 +647,10 @@ class UserMissionFormComponent {
|
|
|
647
647
|
}
|
|
648
648
|
}
|
|
649
649
|
UserMissionFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: UserMissionFormComponent, deps: [{ token: i1$1.FormBuilder }, { token: i1.BaseUserService }, { token: i3.TranslateService }, { token: i1.ValidatorsService }], target: i0.ɵɵFactoryTarget.Component });
|
|
650
|
-
UserMissionFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: UserMissionFormComponent, selector: "lib-user-mission-form", inputs: { addToOrganisation: "addToOrganisation", isSP: "isSP", createForExistingUser: "createForExistingUser", currentOrg: "currentOrg" }, outputs: { added: "added" }, ngImport: i0, template: "<div *ngIf=\"form\">\
|
|
650
|
+
UserMissionFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: UserMissionFormComponent, selector: "lib-user-mission-form", inputs: { addToOrganisation: "addToOrganisation", isSP: "isSP", createForExistingUser: "createForExistingUser", currentOrg: "currentOrg" }, outputs: { added: "added" }, ngImport: i0, template: "<div *ngIf=\"form\">\n <form (ngSubmit)=\"onSubmit()\" [formGroup]=\"form\">\n <div id=\"personalInfo\">\n <div style=\"margin-top: 1rem;\">\n <h4>{{ 'User Personal Information' | translate }}</h4>\n </div>\n <div class=\"form-group row\">\n <label class=\"col-sm-4 col-form-label\">{{'Email' | translate}} *</label>\n <div class=\"col-sm-8\">\n <input type=\"text\" class=\"form-control\" data-testid=\"new-user-email\"\n [ngClass]=\"{'is-invalid' : validatorsService.isControlError(form.controls['email'])|| isFormError(form.controls['email'])}\"\n required formControlName=\"email\">\n <div class=\"invalid-feedback\">\n <ngb-alert data-testid=\"new-user-email-invalid\" [dismissible]=\"false\" type=\"danger\" *ngIf=\"validatorsService.isControlError(form.controls['email']) \n || isFormError(form.controls['email'])\">\n {{validatorsService.getError(form.controls['email']) | translate}}\n </ngb-alert>\n\n </div>\n </div>\n </div>\n\n <div class=\"form-group row\">\n <label class=\"col-sm-4 col-form-label\">{{'Last name' | translate}}</label>\n <div class=\"col-sm-8\">\n <input type=\"text\" class=\"form-control\" formControlName=\"lastName\" data-testid=\"new-user-lastName\"\n [ngClass]=\"{'is-invalid' : validatorsService.isControlError(form.controls['lastName'])|| isFormError(form.controls['lastName'])}\">\n <div class=\"invalid-feedback\">\n <ngb-alert data-testid=\"new-user-lastName-invalid\" [dismissible]=\"false\" type=\"danger\" *ngIf=\"validatorsService.isControlError(form.controls['lastName']) \n || isFormError(form.controls['lastName'])\">\n {{validatorsService.getError(form.controls['lastName']) | translate}}\n </ngb-alert>\n\n </div>\n </div>\n </div>\n\n <div class=\"form-group row\">\n <label class=\"col-sm-4 col-form-label\">{{'First name' | translate}}</label>\n <div class=\"col-sm-8\">\n <input type=\"text\" class=\"form-control\" formControlName=\"firstName\" data-testid=\"new-user-firstName\"\n [ngClass]=\"{'is-invalid' : validatorsService.isControlError(form.controls['firstName'])|| isFormError(form.controls['firstName'])}\">\n <div class=\"invalid-feedback\">\n <ngb-alert data-testid=\"new-user-firstName-invalid\" [dismissible]=\"false\" type=\"danger\" *ngIf=\"validatorsService.isControlError(form.controls['firstName']) \n || isFormError(form.controls['firstName'])\">\n {{validatorsService.getError(form.controls['firstName']) | translate}}\n </ngb-alert>\n\n </div>\n </div>\n </div>\n </div>\n <div class=\"d-flex justify-content-center\" *ngIf=\"working\">\n <lib-loader></lib-loader>\n </div>\n\n <div *ngIf=\"createdUser; else waitingForUser\">\n <div class=\"alert alert-info\">\n {{'User successfully created' | translate}}\n </div>\n <lib-form-mission [organisationForMission]=\"addToOrganisation\" [userForMissionID]=\"createdUser.id\"\n [currentUserOrganisation]=\"currentOrg\" [isSP]=\"isSP\" (addedMissionInput)=\"onMissionInput($event)\">\n </lib-form-mission>\n </div>\n <ng-template #waitingForUser>\n <div class=\"action-button-container\">\n <button data-testid=\"new-user-submit-btn\" type=\"submit\" class=\"btn btn-outline-primary rounded-pill mr-3 action-button\"\n [disabled]=\"working\">{{'Create user' | translate}}</button>\n <button data-testid=\"new-user-cancel-btn\" type=\"button\" (click)=\"onCancel()\" [disabled]=\"working\"\n class=\"btn btn-outline-primary rounded-pill action-button\">{{'Cancel' | translate}}</button>\n </div>\n <div class=\"invalid-feedback\" *ngIf=\"errorForm\">\n <ngb-alert data-testid=\"new-user-form-invalid\" [dismissible]=\"false\" type=\"danger\">\n {{'errorForm.infoBtn' |translate}}\n </ngb-alert>\n </div>\n <div style=\"margin-top: 1rem;\">\n <h4>{{ 'Mission details' | translate }}</h4>\n </div>\n <ngb-alert type=\"warning\" [dismissible]=\"false\">{{'Please create a user first' | translate}}.</ngb-alert>\n\n </ng-template>\n </form>\n</div>", styles: [".form-group{margin:1.5rem 0}.action-button-container{display:flex;justify-content:space-evenly}.action-button-container .action-button{width:145px}\n"], components: [{ type: i4.NgbAlert, selector: "ngb-alert", inputs: ["animation", "dismissible", "type"], outputs: ["closed"], exportAs: ["ngbAlert"] }, { type: i1.LoaderComponent, selector: "lib-loader", inputs: ["useLogo", "color"] }, { type: FormMissionComponent, selector: "lib-form-mission", inputs: ["missionToEdit", "organisationForMission", "isSP", "userForMissionID", "currentUserOrganisation"], outputs: ["addedMissionInput"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "translate": i3.TranslatePipe } });
|
|
651
651
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: UserMissionFormComponent, decorators: [{
|
|
652
652
|
type: Component,
|
|
653
|
-
args: [{ selector: 'lib-user-mission-form', template: "<div *ngIf=\"form\">\
|
|
653
|
+
args: [{ selector: 'lib-user-mission-form', template: "<div *ngIf=\"form\">\n <form (ngSubmit)=\"onSubmit()\" [formGroup]=\"form\">\n <div id=\"personalInfo\">\n <div style=\"margin-top: 1rem;\">\n <h4>{{ 'User Personal Information' | translate }}</h4>\n </div>\n <div class=\"form-group row\">\n <label class=\"col-sm-4 col-form-label\">{{'Email' | translate}} *</label>\n <div class=\"col-sm-8\">\n <input type=\"text\" class=\"form-control\" data-testid=\"new-user-email\"\n [ngClass]=\"{'is-invalid' : validatorsService.isControlError(form.controls['email'])|| isFormError(form.controls['email'])}\"\n required formControlName=\"email\">\n <div class=\"invalid-feedback\">\n <ngb-alert data-testid=\"new-user-email-invalid\" [dismissible]=\"false\" type=\"danger\" *ngIf=\"validatorsService.isControlError(form.controls['email']) \n || isFormError(form.controls['email'])\">\n {{validatorsService.getError(form.controls['email']) | translate}}\n </ngb-alert>\n\n </div>\n </div>\n </div>\n\n <div class=\"form-group row\">\n <label class=\"col-sm-4 col-form-label\">{{'Last name' | translate}}</label>\n <div class=\"col-sm-8\">\n <input type=\"text\" class=\"form-control\" formControlName=\"lastName\" data-testid=\"new-user-lastName\"\n [ngClass]=\"{'is-invalid' : validatorsService.isControlError(form.controls['lastName'])|| isFormError(form.controls['lastName'])}\">\n <div class=\"invalid-feedback\">\n <ngb-alert data-testid=\"new-user-lastName-invalid\" [dismissible]=\"false\" type=\"danger\" *ngIf=\"validatorsService.isControlError(form.controls['lastName']) \n || isFormError(form.controls['lastName'])\">\n {{validatorsService.getError(form.controls['lastName']) | translate}}\n </ngb-alert>\n\n </div>\n </div>\n </div>\n\n <div class=\"form-group row\">\n <label class=\"col-sm-4 col-form-label\">{{'First name' | translate}}</label>\n <div class=\"col-sm-8\">\n <input type=\"text\" class=\"form-control\" formControlName=\"firstName\" data-testid=\"new-user-firstName\"\n [ngClass]=\"{'is-invalid' : validatorsService.isControlError(form.controls['firstName'])|| isFormError(form.controls['firstName'])}\">\n <div class=\"invalid-feedback\">\n <ngb-alert data-testid=\"new-user-firstName-invalid\" [dismissible]=\"false\" type=\"danger\" *ngIf=\"validatorsService.isControlError(form.controls['firstName']) \n || isFormError(form.controls['firstName'])\">\n {{validatorsService.getError(form.controls['firstName']) | translate}}\n </ngb-alert>\n\n </div>\n </div>\n </div>\n </div>\n <div class=\"d-flex justify-content-center\" *ngIf=\"working\">\n <lib-loader></lib-loader>\n </div>\n\n <div *ngIf=\"createdUser; else waitingForUser\">\n <div class=\"alert alert-info\">\n {{'User successfully created' | translate}}\n </div>\n <lib-form-mission [organisationForMission]=\"addToOrganisation\" [userForMissionID]=\"createdUser.id\"\n [currentUserOrganisation]=\"currentOrg\" [isSP]=\"isSP\" (addedMissionInput)=\"onMissionInput($event)\">\n </lib-form-mission>\n </div>\n <ng-template #waitingForUser>\n <div class=\"action-button-container\">\n <button data-testid=\"new-user-submit-btn\" type=\"submit\" class=\"btn btn-outline-primary rounded-pill mr-3 action-button\"\n [disabled]=\"working\">{{'Create user' | translate}}</button>\n <button data-testid=\"new-user-cancel-btn\" type=\"button\" (click)=\"onCancel()\" [disabled]=\"working\"\n class=\"btn btn-outline-primary rounded-pill action-button\">{{'Cancel' | translate}}</button>\n </div>\n <div class=\"invalid-feedback\" *ngIf=\"errorForm\">\n <ngb-alert data-testid=\"new-user-form-invalid\" [dismissible]=\"false\" type=\"danger\">\n {{'errorForm.infoBtn' |translate}}\n </ngb-alert>\n </div>\n <div style=\"margin-top: 1rem;\">\n <h4>{{ 'Mission details' | translate }}</h4>\n </div>\n <ngb-alert type=\"warning\" [dismissible]=\"false\">{{'Please create a user first' | translate}}.</ngb-alert>\n\n </ng-template>\n </form>\n</div>", styles: [".form-group{margin:1.5rem 0}.action-button-container{display:flex;justify-content:space-evenly}.action-button-container .action-button{width:145px}\n"] }]
|
|
654
654
|
}], ctorParameters: function () { return [{ type: i1$1.FormBuilder }, { type: i1.BaseUserService }, { type: i3.TranslateService }, { type: i1.ValidatorsService }]; }, propDecorators: { addToOrganisation: [{
|
|
655
655
|
type: Input
|
|
656
656
|
}], isSP: [{
|
|
@@ -770,10 +770,10 @@ class FormOrganisationComponent {
|
|
|
770
770
|
}
|
|
771
771
|
}
|
|
772
772
|
FormOrganisationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: FormOrganisationComponent, deps: [{ token: i1.OrganisationService }, { token: i1$1.FormBuilder }, { token: i1.BaseUserService }], target: i0.ɵɵFactoryTarget.Component });
|
|
773
|
-
FormOrganisationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: FormOrganisationComponent, selector: "lib-form-organisation", inputs: { currentOrg: "currentOrg", currentUser: "currentUser", existing: "existing" }, outputs: { added: "added" }, ngImport: i0, template: "<div *ngIf=\"form\">\
|
|
773
|
+
FormOrganisationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: FormOrganisationComponent, selector: "lib-form-organisation", inputs: { currentOrg: "currentOrg", currentUser: "currentUser", existing: "existing" }, outputs: { added: "added" }, ngImport: i0, template: "<div *ngIf=\"form\">\n <form (ngSubmit)=\"onSubmit()\" [formGroup]=\"form\">\n <div>\n <h4>{{ 'Organisation' | translate }}</h4>\n </div>\n <div class=\"form-group row\" *ngIf=\"existing\">\n <label class=\"col-sm-3 col-form-label\">{{'Organisation Token' | translate}}</label>\n <div class=\"col-sm-9\">\n <input type=\"text\" class=\"form-control\" id=\"tokenInput\" placeholder=\"Paste organisation token here\">\n </div>\n </div>\n <div class=\"form-group row\">\n <label class=\"col-sm-3 col-form-label\">{{'Name' | translate}} *</label>\n <div class=\"col-sm-9\">\n <input type=\"text\" class=\"form-control\" [class.is-invalid]=\"name.invalid && name.touched\" required\n formControlName=\"name\">\n <div class=\"invalid-feedback\">\n {{'Name is mandatory' | translate}}\n </div>\n </div>\n </div>\n\n <div class=\"form-group row\">\n <label class=\"col-sm-3 col-form-label\">{{'Address' | translate}}</label>\n <div class=\"col-sm-9\">\n <input type=\"text\" class=\"form-control\" formControlName=\"address\">\n </div>\n </div>\n\n <div class=\"form-group row\">\n <label class=\"col-sm-3 col-form-label\">{{'City' | translate}}</label>\n <div class=\"col-sm-9\">\n <input type=\"text\" class=\"form-control\" formControlName=\"city\">\n </div>\n </div>\n\n <div class=\"form-group row\">\n <label class=\"col-sm-3 col-form-label\">{{'Postal Code' | translate}}</label>\n <div class=\"col-sm-9\">\n <input type=\"text\" class=\"form-control\" formControlName=\"postal\">\n </div>\n </div>\n\n <div class=\"form-group row\">\n <label class=\"col-sm-3 col-form-label\">{{'SIRET' | translate}}</label>\n <div class=\"col-sm-9\">\n <input type=\"text\" class=\"form-control\" formControlName=\"siret\">\n </div>\n </div>\n\n\n <div *ngIf=\"createdOrg; else noOrg\">\n <div class=\"alert alert-info\">\n {{'Organisation successfully created' | translate}}\n </div>\n <lib-user-mission-form [addToOrganisation]=\"createdOrg\" [currentOrg]=\"currentOrg\" [isSP]=\"isSP\"\n (added)=\"userAndMissionAdded($event)\">\n </lib-user-mission-form>\n </div>\n <ng-template #noOrg>\n <div class=\"action-button-container\">\n <button type=\"submit\" class=\"btn btn-outline-primary rounded-pill mr-3 action-button\"\n [disabled]=\"this.working || form.invalid\">{{'Create organisation' | translate}}</button>\n <button type=\"button\" (click)=\"onCancel()\" [disabled]=\"this.working\"\n class=\"btn btn-outline-primary rounded-pill action-button\">{{'Cancel' | translate}}</button>\n </div>\n <div style='margin-top: 1rem'>\n <h4>{{ 'User Personal Information' | translate }}</h4>\n </div>\n <ngb-alert type=\"warning\" [dismissible]=\"false\">{{'Please create new organisation first' | translate}}\n </ngb-alert>\n\n </ng-template>\n\n\n </form>\n</div>", styles: [".form-group{margin:1.5rem 0}.action-button-container{display:flex;justify-content:space-evenly}.action-button-container .action-button{width:145px}\n"], components: [{ type: UserMissionFormComponent, selector: "lib-user-mission-form", inputs: ["addToOrganisation", "isSP", "createForExistingUser", "currentOrg"], outputs: ["added"] }, { type: i4.NgbAlert, selector: "ngb-alert", inputs: ["animation", "dismissible", "type"], outputs: ["closed"], exportAs: ["ngbAlert"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }], pipes: { "translate": i3.TranslatePipe } });
|
|
774
774
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: FormOrganisationComponent, decorators: [{
|
|
775
775
|
type: Component,
|
|
776
|
-
args: [{ selector: 'lib-form-organisation', template: "<div *ngIf=\"form\">\
|
|
776
|
+
args: [{ selector: 'lib-form-organisation', template: "<div *ngIf=\"form\">\n <form (ngSubmit)=\"onSubmit()\" [formGroup]=\"form\">\n <div>\n <h4>{{ 'Organisation' | translate }}</h4>\n </div>\n <div class=\"form-group row\" *ngIf=\"existing\">\n <label class=\"col-sm-3 col-form-label\">{{'Organisation Token' | translate}}</label>\n <div class=\"col-sm-9\">\n <input type=\"text\" class=\"form-control\" id=\"tokenInput\" placeholder=\"Paste organisation token here\">\n </div>\n </div>\n <div class=\"form-group row\">\n <label class=\"col-sm-3 col-form-label\">{{'Name' | translate}} *</label>\n <div class=\"col-sm-9\">\n <input type=\"text\" class=\"form-control\" [class.is-invalid]=\"name.invalid && name.touched\" required\n formControlName=\"name\">\n <div class=\"invalid-feedback\">\n {{'Name is mandatory' | translate}}\n </div>\n </div>\n </div>\n\n <div class=\"form-group row\">\n <label class=\"col-sm-3 col-form-label\">{{'Address' | translate}}</label>\n <div class=\"col-sm-9\">\n <input type=\"text\" class=\"form-control\" formControlName=\"address\">\n </div>\n </div>\n\n <div class=\"form-group row\">\n <label class=\"col-sm-3 col-form-label\">{{'City' | translate}}</label>\n <div class=\"col-sm-9\">\n <input type=\"text\" class=\"form-control\" formControlName=\"city\">\n </div>\n </div>\n\n <div class=\"form-group row\">\n <label class=\"col-sm-3 col-form-label\">{{'Postal Code' | translate}}</label>\n <div class=\"col-sm-9\">\n <input type=\"text\" class=\"form-control\" formControlName=\"postal\">\n </div>\n </div>\n\n <div class=\"form-group row\">\n <label class=\"col-sm-3 col-form-label\">{{'SIRET' | translate}}</label>\n <div class=\"col-sm-9\">\n <input type=\"text\" class=\"form-control\" formControlName=\"siret\">\n </div>\n </div>\n\n\n <div *ngIf=\"createdOrg; else noOrg\">\n <div class=\"alert alert-info\">\n {{'Organisation successfully created' | translate}}\n </div>\n <lib-user-mission-form [addToOrganisation]=\"createdOrg\" [currentOrg]=\"currentOrg\" [isSP]=\"isSP\"\n (added)=\"userAndMissionAdded($event)\">\n </lib-user-mission-form>\n </div>\n <ng-template #noOrg>\n <div class=\"action-button-container\">\n <button type=\"submit\" class=\"btn btn-outline-primary rounded-pill mr-3 action-button\"\n [disabled]=\"this.working || form.invalid\">{{'Create organisation' | translate}}</button>\n <button type=\"button\" (click)=\"onCancel()\" [disabled]=\"this.working\"\n class=\"btn btn-outline-primary rounded-pill action-button\">{{'Cancel' | translate}}</button>\n </div>\n <div style='margin-top: 1rem'>\n <h4>{{ 'User Personal Information' | translate }}</h4>\n </div>\n <ngb-alert type=\"warning\" [dismissible]=\"false\">{{'Please create new organisation first' | translate}}\n </ngb-alert>\n\n </ng-template>\n\n\n </form>\n</div>", styles: [".form-group{margin:1.5rem 0}.action-button-container{display:flex;justify-content:space-evenly}.action-button-container .action-button{width:145px}\n"] }]
|
|
777
777
|
}], ctorParameters: function () { return [{ type: i1.OrganisationService }, { type: i1$1.FormBuilder }, { type: i1.BaseUserService }]; }, propDecorators: { currentOrg: [{
|
|
778
778
|
type: Input
|
|
779
779
|
}], currentUser: [{
|
|
@@ -960,10 +960,10 @@ class DetailOrganisationComponent {
|
|
|
960
960
|
}
|
|
961
961
|
}
|
|
962
962
|
DetailOrganisationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: DetailOrganisationComponent, deps: [{ token: i1.OrganisationService }, { token: i1$1.FormBuilder }, { token: i1.PropertyService }, { token: i1.MissionService }, { token: i3.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
|
|
963
|
-
DetailOrganisationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: DetailOrganisationComponent, selector: "lib-detail-organisation", inputs: { org: "org", currentOrg: "currentOrg", isSP: "isSP" }, outputs: { orgChanged: "orgChanged" }, usesOnChanges: true, ngImport: i0, template: "<div>\
|
|
963
|
+
DetailOrganisationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: DetailOrganisationComponent, selector: "lib-detail-organisation", inputs: { org: "org", currentOrg: "currentOrg", isSP: "isSP" }, outputs: { orgChanged: "orgChanged" }, usesOnChanges: true, ngImport: i0, template: "<div>\n <h5>{{'Organisation Details' | translate }}</h5>\n <div *ngIf=\"!editForm\">\n <ul class=\"list-group list-group-flush\">\n <li class=\"list-group-item bg-transparent\">{{'Name' | translate}}: {{ org.name }}</li>\n <li class=\"list-group-item bg-transparent\">{{'Logo' | translate }}: {{ org.logoUrl ? \"\" : \"No logo uploaded\"}} \n <img class=\"logo-img\" *ngIf=\"signedLogo\" [src]=\"signedLogo\">\n </li>\n <li class=\"list-group-item bg-transparent\">{{'SIRET' | translate }}: {{\n org.siret ? org.siret : (\"No data\" | translate)}}</li>\n <li class=\"list-group-item bg-transparent\">{{'Address' | translate }}: {{\n org.address ? org.address : (\"No data\" | translate)}}</li>\n <li class=\"list-group-item bg-transparent\">{{'City' | translate }}: {{org.city }}</li>\n <li class=\"list-group-item bg-transparent\">{{'Contact information' | translate}}:\n {{ org.contactDetails ? org.contactDetails : (\"No data\" | translate)}}</li>\n <!-- <li class=\"list-group-item bg-transparent\" *ngIf=\"isSP\">\n <div class=\"row ml-0\">\n <div>\n {{'Active token' | translate }}:\n {{ org.shareToken ? prettifyToken() : ('No' | translate) }}\n </div>\n <div *ngIf=\"org.shareToken && !tokenExpired\" ngxClipboard [cbContent]=\"org.shareToken\"\n [style.cursor]=\"'pointer'\" style=\"margin-left: 5px; max-width: 20px;\" ngbTooltip=\"Copied!\"\n triggers=\"click:blur\">\n <span class=\"iconify\" data-icon=\"mdi:content-copy\" data-inline=\"false\" data-width=\"20\"\n data-height=\"20\"></span>\n </div>\n </div>\n </li> -->\n </ul>\n <div class=\"action-button-container\">\n <button class=\"btn btn-outline-primary rounded-pill mt-2 ml-3 action-button\" *ngIf=\"isSP || myOrg\"\n (click)=\"onEdit()\"> {{'Edit' | translate}}</button>\n <button class=\"btn btn-outline-primary rounded-pill mt-2 ml-3 action-button\" *ngIf=\"isSP\"\n (click)=\"onDelete()\"> {{'Delete' | translate}}</button>\n <!-- <button class=\"btn btn-outline-primary rounded-pill mt-2 ml-3 action-button\" *ngIf=\"isSP\"\n (click)=\"onToken()\">{{'Generate token' | translate}}</button> -->\n </div>\n </div>\n\n <!--Edit Form-->\n <div *ngIf=\"editForm\">\n <form (ngSubmit)=\"onSubmit()\" [formGroup]=\"editForm\">\n <div class=\"form-group row\">\n <label class=\"col-sm-3 col-form-label\">{{'Name' | translate}} *</label>\n <div class=\"col-sm-9\">\n <input type=\"text\" class=\"form-control\" [class.is-invalid]=\"name.invalid && name.touched\" required\n formControlName=\"name\">\n <div class=\"invalid-feedback\">\n {{'A name is required' | translate}}\n </div>\n </div>\n </div>\n <div class=\"form-group row\">\n <label class=\"col-sm-3 col-form-label\">{{'Contact information' | translate}}</label>\n <div class=\"col-sm-9\">\n <input type=\"text\" class=\"form-control\" formControlName=\"contactDetails\"\n placeholder=\"{{'Name, phone, email' | translate}}\">\n </div>\n </div>\n\n <div class=\"form-group row\">\n <label class=\"col-sm-3 col-form-label\">{{'Address' | translate}}</label>\n <div class=\"col-sm-9\">\n <input type=\"text\" class=\"form-control\" formControlName=\"address\">\n </div>\n </div>\n\n <div class=\"form-group row\">\n <label class=\"col-sm-3 col-form-label\">{{'City' | translate}}</label>\n <div class=\"col-sm-9\">\n <input type=\"text\" class=\"form-control\" formControlName=\"city\">\n </div>\n </div>\n\n <div class=\"form-group row\">\n <label class=\"col-sm-3 col-form-label\">{{'Postal code' | translate}}</label>\n <div class=\"col-sm-9\">\n <input type=\"text\" class=\"form-control\" formControlName=\"postal\">\n </div>\n </div>\n\n <div class=\"form-group row\">\n <label class=\"col-sm-3 col-form-label\">{{'SIRET' | translate}}</label>\n <div class=\"col-sm-9\">\n <input type=\"text\" class=\"form-control\" formControlName=\"siret\">\n </div>\n </div>\n \n <div class=\"form-group row\">\n <label class=\"col-sm-3 col-form-label\">{{'Logo' | translate}}</label>\n <div class=\"col-sm-9\">\n <label for=\"file\" class=\"btn btn-label-file rounded-pill\">\n <input type=\"file\" id=\"file\" (change)=\"handleFileInput($event)\" />\n {{'Add logo image' | translate}}</label>\n <p class=\"fileToUploadName\" *ngIf=\"fileToUpload\">{{fileToUpload.name}}</p>\n </div>\n \n </div>\n <div class=\"action-button-container\">\n <button type=\"submit\" class=\"btn btn-outline-primary rounded-pill action-button\"\n [disabled]=\"editForm.invalid\">{{'Save' |\n translate}}</button>\n <button type=\"button\" (click)=\"onCancel()\"\n class=\"btn btn-outline-primary rounded-pill action-button\">{{'Cancel' |\n translate}}</button>\n </div>\n </form>\n </div>\n <!--Loading-->\n <div class=\"d-flex justify-content-center\" *ngIf=\"loading\">\n <lib-loader></lib-loader>\n </div>\n\n <!--Stripe-->\n <!-- <hr>\n <h5>{{'stripe.account' | translate }}</h5>\n <ul class=\"list-group list-group-flush\">\n <li class=\"list-group-item bg-transparent\" *ngIf=\"(isSP || myOrg) && org.connectedAccountStripeID\">\n {{'stripe.connected' | translate }}: {{org.connectedAccountStripeID.substring(0, 15) }}...</li>\n <li class=\"list-group-item bg-transparent\" *ngIf=\"(isSP || myOrg) && org.stripeOnBoardingCompleted !== null\">\n {{'stripe.completed' | translate }}: {{org.stripeOnBoardingCompleted }}</li>\n </ul> -->\n</div>", styles: [".form-group{margin:1.5rem 0}.action-button-container{display:flex;justify-content:space-evenly}.action-button-container .action-button{width:145px}.logo-img{height:100px;object-fit:contain;margin:4px 10px}\n"], components: [{ type: i1.LoaderComponent, selector: "lib-loader", inputs: ["useLogo", "color"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }], pipes: { "translate": i3.TranslatePipe } });
|
|
964
964
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: DetailOrganisationComponent, decorators: [{
|
|
965
965
|
type: Component,
|
|
966
|
-
args: [{ selector: 'lib-detail-organisation', template: "<div>\
|
|
966
|
+
args: [{ selector: 'lib-detail-organisation', template: "<div>\n <h5>{{'Organisation Details' | translate }}</h5>\n <div *ngIf=\"!editForm\">\n <ul class=\"list-group list-group-flush\">\n <li class=\"list-group-item bg-transparent\">{{'Name' | translate}}: {{ org.name }}</li>\n <li class=\"list-group-item bg-transparent\">{{'Logo' | translate }}: {{ org.logoUrl ? \"\" : \"No logo uploaded\"}} \n <img class=\"logo-img\" *ngIf=\"signedLogo\" [src]=\"signedLogo\">\n </li>\n <li class=\"list-group-item bg-transparent\">{{'SIRET' | translate }}: {{\n org.siret ? org.siret : (\"No data\" | translate)}}</li>\n <li class=\"list-group-item bg-transparent\">{{'Address' | translate }}: {{\n org.address ? org.address : (\"No data\" | translate)}}</li>\n <li class=\"list-group-item bg-transparent\">{{'City' | translate }}: {{org.city }}</li>\n <li class=\"list-group-item bg-transparent\">{{'Contact information' | translate}}:\n {{ org.contactDetails ? org.contactDetails : (\"No data\" | translate)}}</li>\n <!-- <li class=\"list-group-item bg-transparent\" *ngIf=\"isSP\">\n <div class=\"row ml-0\">\n <div>\n {{'Active token' | translate }}:\n {{ org.shareToken ? prettifyToken() : ('No' | translate) }}\n </div>\n <div *ngIf=\"org.shareToken && !tokenExpired\" ngxClipboard [cbContent]=\"org.shareToken\"\n [style.cursor]=\"'pointer'\" style=\"margin-left: 5px; max-width: 20px;\" ngbTooltip=\"Copied!\"\n triggers=\"click:blur\">\n <span class=\"iconify\" data-icon=\"mdi:content-copy\" data-inline=\"false\" data-width=\"20\"\n data-height=\"20\"></span>\n </div>\n </div>\n </li> -->\n </ul>\n <div class=\"action-button-container\">\n <button class=\"btn btn-outline-primary rounded-pill mt-2 ml-3 action-button\" *ngIf=\"isSP || myOrg\"\n (click)=\"onEdit()\"> {{'Edit' | translate}}</button>\n <button class=\"btn btn-outline-primary rounded-pill mt-2 ml-3 action-button\" *ngIf=\"isSP\"\n (click)=\"onDelete()\"> {{'Delete' | translate}}</button>\n <!-- <button class=\"btn btn-outline-primary rounded-pill mt-2 ml-3 action-button\" *ngIf=\"isSP\"\n (click)=\"onToken()\">{{'Generate token' | translate}}</button> -->\n </div>\n </div>\n\n <!--Edit Form-->\n <div *ngIf=\"editForm\">\n <form (ngSubmit)=\"onSubmit()\" [formGroup]=\"editForm\">\n <div class=\"form-group row\">\n <label class=\"col-sm-3 col-form-label\">{{'Name' | translate}} *</label>\n <div class=\"col-sm-9\">\n <input type=\"text\" class=\"form-control\" [class.is-invalid]=\"name.invalid && name.touched\" required\n formControlName=\"name\">\n <div class=\"invalid-feedback\">\n {{'A name is required' | translate}}\n </div>\n </div>\n </div>\n <div class=\"form-group row\">\n <label class=\"col-sm-3 col-form-label\">{{'Contact information' | translate}}</label>\n <div class=\"col-sm-9\">\n <input type=\"text\" class=\"form-control\" formControlName=\"contactDetails\"\n placeholder=\"{{'Name, phone, email' | translate}}\">\n </div>\n </div>\n\n <div class=\"form-group row\">\n <label class=\"col-sm-3 col-form-label\">{{'Address' | translate}}</label>\n <div class=\"col-sm-9\">\n <input type=\"text\" class=\"form-control\" formControlName=\"address\">\n </div>\n </div>\n\n <div class=\"form-group row\">\n <label class=\"col-sm-3 col-form-label\">{{'City' | translate}}</label>\n <div class=\"col-sm-9\">\n <input type=\"text\" class=\"form-control\" formControlName=\"city\">\n </div>\n </div>\n\n <div class=\"form-group row\">\n <label class=\"col-sm-3 col-form-label\">{{'Postal code' | translate}}</label>\n <div class=\"col-sm-9\">\n <input type=\"text\" class=\"form-control\" formControlName=\"postal\">\n </div>\n </div>\n\n <div class=\"form-group row\">\n <label class=\"col-sm-3 col-form-label\">{{'SIRET' | translate}}</label>\n <div class=\"col-sm-9\">\n <input type=\"text\" class=\"form-control\" formControlName=\"siret\">\n </div>\n </div>\n \n <div class=\"form-group row\">\n <label class=\"col-sm-3 col-form-label\">{{'Logo' | translate}}</label>\n <div class=\"col-sm-9\">\n <label for=\"file\" class=\"btn btn-label-file rounded-pill\">\n <input type=\"file\" id=\"file\" (change)=\"handleFileInput($event)\" />\n {{'Add logo image' | translate}}</label>\n <p class=\"fileToUploadName\" *ngIf=\"fileToUpload\">{{fileToUpload.name}}</p>\n </div>\n \n </div>\n <div class=\"action-button-container\">\n <button type=\"submit\" class=\"btn btn-outline-primary rounded-pill action-button\"\n [disabled]=\"editForm.invalid\">{{'Save' |\n translate}}</button>\n <button type=\"button\" (click)=\"onCancel()\"\n class=\"btn btn-outline-primary rounded-pill action-button\">{{'Cancel' |\n translate}}</button>\n </div>\n </form>\n </div>\n <!--Loading-->\n <div class=\"d-flex justify-content-center\" *ngIf=\"loading\">\n <lib-loader></lib-loader>\n </div>\n\n <!--Stripe-->\n <!-- <hr>\n <h5>{{'stripe.account' | translate }}</h5>\n <ul class=\"list-group list-group-flush\">\n <li class=\"list-group-item bg-transparent\" *ngIf=\"(isSP || myOrg) && org.connectedAccountStripeID\">\n {{'stripe.connected' | translate }}: {{org.connectedAccountStripeID.substring(0, 15) }}...</li>\n <li class=\"list-group-item bg-transparent\" *ngIf=\"(isSP || myOrg) && org.stripeOnBoardingCompleted !== null\">\n {{'stripe.completed' | translate }}: {{org.stripeOnBoardingCompleted }}</li>\n </ul> -->\n</div>", styles: [".form-group{margin:1.5rem 0}.action-button-container{display:flex;justify-content:space-evenly}.action-button-container .action-button{width:145px}.logo-img{height:100px;object-fit:contain;margin:4px 10px}\n"] }]
|
|
967
967
|
}], ctorParameters: function () { return [{ type: i1.OrganisationService }, { type: i1$1.FormBuilder }, { type: i1.PropertyService }, { type: i1.MissionService }, { type: i3.TranslateService }]; }, propDecorators: { org: [{
|
|
968
968
|
type: Input
|
|
969
969
|
}], currentOrg: [{
|
|
@@ -1314,10 +1314,10 @@ class UserComponent {
|
|
|
1314
1314
|
}
|
|
1315
1315
|
}
|
|
1316
1316
|
UserComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: UserComponent, deps: [{ token: i1.BaseUserService }, { token: i1.MissionService }, { token: i1.DomainService }, { token: i1.OrganisationService }, { token: i4.NgbModal }, { token: i3.TranslateService }, { token: i1.ProfileService }], target: i0.ɵɵFactoryTarget.Component });
|
|
1317
|
-
UserComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: UserComponent, selector: "lib-user", ngImport: i0, template: "<div class=\"dashboard-tab\">\r\n <div class=\"header-dashboard-tab\">\r\n <h3>{{'Users' | translate}}</h3>\r\n <!-- <app-search-bar *ngIf=\"!hideList\" [searchable]=\"orgsUsersMissions\" objectType=\"USER\"\r\n (searchEvent)=\"applyResultsSearchBar($event)\">\r\n </app-search-bar> -->\r\n <hr>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-8 col-lg-6\">\r\n <div class=\"row ml-0 mb-2\" *ngIf=\"!hideList\">\r\n <button class=\"btn btn-outline-primary rounded-pill add-button\" *ngIf=\"!isGuide\" (click)=\"onAddOrg()\">\r\n {{'Add user to new organisation' | translate}}</button>\r\n </div>\r\n <div class=\"d-flex justify-content-center\" *ngIf=\"loading\">\r\n <lib-loader></lib-loader>\r\n </div>\r\n <div *ngIf=\"!hideList\">\r\n <ul class=\"list-group list-group-flush\" *ngIf=\"filteredOrgsUsersMissions\" data-testid=\"mission-organisation-list\">\r\n <li class=\"list-group-item list-group-item-action\" *ngFor=\"let o of filteredOrgsUsersMissions\">\r\n <div class=\"d-flex justify-content-between align-items-center font-weight-bold\"\r\n ngbTooltip=\"See details and users\" style=\"cursor: pointer;\" (click)=\"onToggleDetailOrg(o.org.id, o.org)\">\r\n {{o.org.name}} <small *ngIf=\"o.org.id == currentOrg.id\">({{'My organisation' | translate}})</small>\r\n <small *ngIf=\"isSP && clientsSP.includes(o.org.id)\">({{'Client of SmarterPlan' | translate}})</small>\r\n <small *ngIf=\"isSP && getOrderedOrg(o.org.id)\">({{'Client of ' | translate}}\r\n {{getOrderedOrg(o.org.id)}})</small>\r\n <lib-chevron [conditionShowing]=\"detailsOrg==o.org.id\" [ngClass]=\"[getStringNoSpace(o.org.name)]\"></lib-chevron>\r\n </div>\r\n <div class=\"missions\" *ngIf=\"detailsOrg==o.org.id\">\r\n <div class='d-flex'>\r\n <button data-testid=\"user-new-btn\" class=\"btn btn-outline-primary rounded-pill mt-3 mb-3\" (click)=\"onAdd(o.org)\">{{'Add user' |\r\n translate}}</button>\r\n </div>\r\n\r\n <ul class=\"list-group list-group-flush\" data-testid=\"mission-user-list\">\r\n <li class=\"list-group-item list-group-item-action\" *ngFor=\"let a of o.users\"\r\n (click)=\"onToggleDetailUser(a.user.id)\">\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n {{a.user.displayName}}\r\n <lib-chevron [conditionShowing]=\"detailsUser==a.user.id\" [ngClass]=\"[getStringNoSpace(a.user.displayName)]\"></lib-chevron>\r\n </div>\r\n\r\n <div *ngIf=\"detailsUser==a.user.id\">\r\n <div class=\"ml-3\">\r\n <div class=\"d-flex justify-content-between align-items-center mt-3\">\r\n {{'Email' | translate}}: {{a.user.email }}\r\n </div>\r\n <div class=\"d-flex justify-content-between align-items-center mt-3\">\r\n <button type=\"button\" class=\"btn btn-primary rounded-pill\" data-testid=\"mission-new-btn\"\r\n (click)=\"onAddForUser(o.org, a.user)\">{{'Add new mission' | translate}}</button>\r\n <button type=\"button\" class=\"btn btn-primary rounded-pill\" (click)=\"onClearToken(a)\">\r\n {{'Clear Token' | translate}}</button>\r\n <button type=\"button\" class=\"btn btn-primary rounded-pill\"\r\n (click)=\"onDeleteUser(a.user)\">{{'Delete user' | translate}}</button>\r\n </div>\r\n <div class=\"d-flex justify-content-between align-items-center mt-3\">\r\n {{ a.missions.length > 0 ? ('Current Missions' | translate) : ('No missions' | translate)}}\r\n </div>\r\n </div>\r\n <ul class=\"list-group list-group-flush\">\r\n <li class=\"list-group-item\" *ngFor=\"let mis of a.missions\">\r\n <ul class=\"list-group list-group-flush\">\r\n <li class=\"list-group-item bg-transparent\" *ngIf=\"mis.description\">\r\n {{'Description' | translate}}: {{mis.description}}</li>\r\n <li class=\"list-group-item bg-transparent\" *ngIf=\"mis.templateMissionID\">\r\n {{'Attendee of tour' | translate}}: {{mis.templateMission.title}}</li>\r\n\r\n <li class=\"list-group-item bg-transparent\">{{'Role' | translate}}: {{ mis.role }}</li>\r\n <li class=\"list-group-item bg-transparent\" *ngIf=\"mis.hashtags && mis.hashtags.length> 0\">\r\n {{'Hashtags' | translate}}: <ul class=\"keywordsDisplay no-border\">\r\n <div class=\"keywordsdisplayContainer\">\r\n <li class=\"keywordsItem\" *ngFor=\"let hashtag of mis.hashtags\">\r\n {{ hashtag | hashtagFromID | async }}</li>\r\n </div>\r\n </ul>\r\n </li>\r\n <li class=\"list-group-item bg-transparent\">{{'Language' | translate }}: {{\r\n mis.locale ? mis.locale : ('Not applicable' | translate)}}</li>\r\n <li class=\"list-group-item bg-transparent\">{{'Access level' | translate }}: {{\r\n mis.level}}</li>\r\n <li class=\"list-group-item bg-transparent\">{{'Ordered by' | translate }}: {{\r\n mis.orderedOrganisation.name}}</li>\r\n <li class=\"list-group-item bg-transparent\" *ngIf=\"mis.domains\">{{'Domains' | translate }}:\r\n {{mis.domains ?\r\n domainIdsToStringForMission(mis) : (\"No data\" | translate) }}</li>\r\n <li class=\"list-group-item bg-transparent\">{{'Authorized location' | translate }}:\r\n {{ mis.space ? mis.space.name : \"No location\" | translate}}</li>\r\n <li class=\"list-group-item bg-transparent\">{{'Authorized zone' | translate }}:\r\n {{ mis.zone ? mis.zone.name : \"All zones allowed\" | translate}}</li>\r\n <li class=\"list-group-item bg-transparent\">{{'Starts' | translate }}:\r\n {{ mis.startDateTime ? (mis.startDateTime | timeDateString: \"day_time_zone\" | async) :\r\n \"No data\" | translate}}, {{'Ends' | translate}}: {{ mis.endDateTime\r\n ? (mis.endDateTime | timeDateString: \"day_time_zone\" | async)\r\n : \"No data\" | translate}}.\r\n </li>\r\n </ul>\r\n <div class=\"action-button-container\" >\r\n <button type=\"button\" data-testid=\"edit-mission-btn\" class=\"btn btn-outline-primary rounded-pill mr-2 action-button\"\r\n (click)=\"onEdit(mis)\">{{'Edit' |\r\n translate}}</button>\r\n <button type=\"button\" *ngIf=\"mis.role === 'VISITOR' || mis.role === 'VISITOR_MUSEUM'\"\r\n class=\"btn btn-outline-primary rounded-pill mr-2 action-button share-visitor-button\"\r\n (click)=\"onSetForShareableLink(a.user, mis)\">{{'Generate Shareable Link' |\r\n translate}}</button>\r\n <button type=\"button\" class=\"btn btn-outline-primary rounded-pill action-button\"\r\n (click)=\"onDeleteMission(mis)\">{{'Delete' | translate}}</button>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </li>\r\n <li class=\"list-group-item list-group-item-action\" *ngIf=\"profilesWithoutMission && profilesWithoutMission.length > 0\">\r\n <div class=\"d-flex justify-content-between align-items-center font-weight-bold\"\r\n ngbTooltip=\"See details\" style=\"cursor: pointer;\" (click)=\"onToggleDetailOrg('-2', null)\">\r\n {{\"Users without missions\" | translate}}\r\n <lib-chevron [conditionShowing]=\"detailsOrg=='-2'\"></lib-chevron>\r\n </div>\r\n <div class=\"missions\" *ngIf=\"detailsOrg=='-2'\">\r\n <ul class=\"list-group list-group-flush\" data-testid=\"mission-organisation-list\">\r\n <li class=\"list-group-item list-group-item-action\" *ngFor=\"let profile of profilesWithoutMission\" \r\n (click)=\"onToggleDetailUser(profile.id)\">\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n {{profile.displayName}}\r\n <lib-chevron [conditionShowing]=\"detailsUser==profile.id\" [ngClass]=\"[getStringNoSpace(profile.displayName)]\"></lib-chevron>\r\n </div>\r\n <div *ngIf=\"detailsUser==profile.id\">\r\n <div class=\"ml-3\">\r\n <div class=\"d-flex justify-content-between align-items-center mt-3\">\r\n {{'Email' | translate}}: {{profile.email }}\r\n </div>\r\n <div class=\"d-flex justify-content-between align-items-center mt-3\">\r\n <button type=\"button\" class=\"btn btn-primary rounded-pill\" data-testid=\"mission-new-btn\"\r\n (click)=\"onAddForUser(currentOrg, profile)\">{{'Add new mission' | translate}}</button>\r\n <button type=\"button\" class=\"btn btn-primary rounded-pill\"\r\n (click)=\"onDeleteUser(profile)\">{{'Delete user' | translate}}</button>\r\n </div>\r\n </div>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n\r\n <div *ngIf=\"create\">\r\n <lib-user-mission-form [addToOrganisation]=\"addToOrg\" [currentOrg]=\"currentOrg\" [isSP]=\"isSP\"\r\n (added)=\"userAdded($event)\">\r\n </lib-user-mission-form>\r\n </div>\r\n <div *ngIf=\"edit\">\r\n <lib-form-mission [missionToEdit]=\"missionToEdit\" [currentUserOrganisation]=\"currentOrg\" [isSP]=\"isSP\"\r\n (addedMissionInput)=\"onMissionEdited($event)\"></lib-form-mission>\r\n </div>\r\n <div *ngIf=\"createForExistingUser\">\r\n <lib-form-mission [organisationForMission]=\"addToOrg\" [currentUserOrganisation]=\"currentOrg\" [isSP]=\"isSP\"\r\n [userForMissionID]=\"userForAddingMission.id\" (addedMissionInput)=\"onMissionCreated($event)\">\r\n </lib-form-mission>\r\n </div>\r\n <div *ngIf=\"isAddingOrg || isAddingToExistingOrg\">\r\n <lib-form-organisation [currentOrg]=\"currentOrg\" [currentUser]=\"me\" [existing]=\"isAddingToExistingOrg\"\r\n (added)=\"orgAdded($event)\"></lib-form-organisation>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-md-4 col-lg-6\" *ngIf=\"orgSelectedDetails && !isGuide\">\r\n <lib-detail-organisation [org]=\"orgSelectedDetails\" [currentOrg]=\"currentOrg\" [isSP]=\"isSP\"\r\n (orgChanged)='orgAdded($event)'></lib-detail-organisation>\r\n </div>\r\n </div>\r\n</div>", styles: [".add-button{width:-moz-fit-content;width:fit-content;margin-left:.5rem}li.ml-4{margin-left:3rem}.action-button-container{display:flex;justify-content:space-evenly}.action-button-container .action-button{width:145px}.action-button-container .share-visitor-button{width:-moz-fit-content;width:fit-content}\n"], components: [{ type: i1.LoaderComponent, selector: "lib-loader", inputs: ["useLogo", "color"] }, { type: ChevronComponent, selector: "lib-chevron", inputs: ["conditionShowing"] }, { type: UserMissionFormComponent, selector: "lib-user-mission-form", inputs: ["addToOrganisation", "isSP", "createForExistingUser", "currentOrg"], outputs: ["added"] }, { type: FormMissionComponent, selector: "lib-form-mission", inputs: ["missionToEdit", "organisationForMission", "isSP", "userForMissionID", "currentUserOrganisation"], outputs: ["addedMissionInput"] }, { type: FormOrganisationComponent, selector: "lib-form-organisation", inputs: ["currentOrg", "currentUser", "existing"], outputs: ["added"] }, { type: DetailOrganisationComponent, selector: "lib-detail-organisation", inputs: ["org", "currentOrg", "isSP"], outputs: ["orgChanged"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "triggers", "container", "disableTooltip", "tooltipClass", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "translate": i3.TranslatePipe, "async": i5.AsyncPipe, "hashtagFromID": i1.HashtagFromIdPipe, "timeDateString": i1.TimeDateToLocalStringPipe } });
|
|
1317
|
+
UserComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: UserComponent, selector: "lib-user", ngImport: i0, template: "<div class=\"dashboard-tab\">\n <div class=\"header-dashboard-tab\">\n <h3>{{'Users' | translate}}</h3>\n <!-- <app-search-bar *ngIf=\"!hideList\" [searchable]=\"orgsUsersMissions\" objectType=\"USER\"\n (searchEvent)=\"applyResultsSearchBar($event)\">\n </app-search-bar> -->\n <hr>\n </div>\n <div class=\"row\">\n <div class=\"col-md-8 col-lg-6\">\n <div class=\"row ml-0 mb-2\" *ngIf=\"!hideList\">\n <button class=\"btn btn-outline-primary rounded-pill add-button\" *ngIf=\"!isGuide\" (click)=\"onAddOrg()\">\n {{'Add user to new organisation' | translate}}</button>\n </div>\n <div class=\"d-flex justify-content-center\" *ngIf=\"loading\">\n <lib-loader></lib-loader>\n </div>\n <div *ngIf=\"!hideList\">\n <ul class=\"list-group list-group-flush\" *ngIf=\"filteredOrgsUsersMissions\" data-testid=\"mission-organisation-list\">\n <li class=\"list-group-item list-group-item-action\" *ngFor=\"let o of filteredOrgsUsersMissions\">\n <div class=\"d-flex justify-content-between align-items-center font-weight-bold\"\n ngbTooltip=\"See details and users\" style=\"cursor: pointer;\" (click)=\"onToggleDetailOrg(o.org.id, o.org)\">\n {{o.org.name}} <small *ngIf=\"o.org.id == currentOrg.id\">({{'My organisation' | translate}})</small>\n <small *ngIf=\"isSP && clientsSP.includes(o.org.id)\">({{'Client of SmarterPlan' | translate}})</small>\n <small *ngIf=\"isSP && getOrderedOrg(o.org.id)\">({{'Client of ' | translate}}\n {{getOrderedOrg(o.org.id)}})</small>\n <lib-chevron [conditionShowing]=\"detailsOrg==o.org.id\" [ngClass]=\"[getStringNoSpace(o.org.name)]\"></lib-chevron>\n </div>\n <div class=\"missions\" *ngIf=\"detailsOrg==o.org.id\">\n <div class='d-flex'>\n <button data-testid=\"user-new-btn\" class=\"btn btn-outline-primary rounded-pill mt-3 mb-3\" (click)=\"onAdd(o.org)\">{{'Add user' |\n translate}}</button>\n </div>\n\n <ul class=\"list-group list-group-flush\" data-testid=\"mission-user-list\">\n <li class=\"list-group-item list-group-item-action\" *ngFor=\"let a of o.users\"\n (click)=\"onToggleDetailUser(a.user.id)\">\n <div class=\"d-flex justify-content-between align-items-center\">\n {{a.user.displayName}}\n <lib-chevron [conditionShowing]=\"detailsUser==a.user.id\" [ngClass]=\"[getStringNoSpace(a.user.displayName)]\"></lib-chevron>\n </div>\n\n <div *ngIf=\"detailsUser==a.user.id\">\n <div class=\"ml-3\">\n <div class=\"d-flex justify-content-between align-items-center mt-3\">\n {{'Email' | translate}}: {{a.user.email }}\n </div>\n <div class=\"d-flex justify-content-between align-items-center mt-3\">\n <button type=\"button\" class=\"btn btn-primary rounded-pill\" data-testid=\"mission-new-btn\"\n (click)=\"onAddForUser(o.org, a.user)\">{{'Add new mission' | translate}}</button>\n <button type=\"button\" class=\"btn btn-primary rounded-pill\" (click)=\"onClearToken(a)\">\n {{'Clear Token' | translate}}</button>\n <button type=\"button\" class=\"btn btn-primary rounded-pill\"\n (click)=\"onDeleteUser(a.user)\">{{'Delete user' | translate}}</button>\n </div>\n <div class=\"d-flex justify-content-between align-items-center mt-3\">\n {{ a.missions.length > 0 ? ('Current Missions' | translate) : ('No missions' | translate)}}\n </div>\n </div>\n <ul class=\"list-group list-group-flush\">\n <li class=\"list-group-item\" *ngFor=\"let mis of a.missions\">\n <ul class=\"list-group list-group-flush\">\n <li class=\"list-group-item bg-transparent\" *ngIf=\"mis.description\">\n {{'Description' | translate}}: {{mis.description}}</li>\n <li class=\"list-group-item bg-transparent\" *ngIf=\"mis.templateMissionID\">\n {{'Attendee of tour' | translate}}: {{mis.templateMission.title}}</li>\n\n <li class=\"list-group-item bg-transparent\">{{'Role' | translate}}: {{ mis.role }}</li>\n <li class=\"list-group-item bg-transparent\" *ngIf=\"mis.hashtags && mis.hashtags.length> 0\">\n {{'Hashtags' | translate}}: <ul class=\"keywordsDisplay no-border\">\n <div class=\"keywordsdisplayContainer\">\n <li class=\"keywordsItem\" *ngFor=\"let hashtag of mis.hashtags\">\n {{ hashtag | hashtagFromID | async }}</li>\n </div>\n </ul>\n </li>\n <li class=\"list-group-item bg-transparent\">{{'Language' | translate }}: {{\n mis.locale ? mis.locale : ('Not applicable' | translate)}}</li>\n <li class=\"list-group-item bg-transparent\">{{'Access level' | translate }}: {{\n mis.level}}</li>\n <li class=\"list-group-item bg-transparent\">{{'Ordered by' | translate }}: {{\n mis.orderedOrganisation.name}}</li>\n <li class=\"list-group-item bg-transparent\" *ngIf=\"mis.domains\">{{'Domains' | translate }}:\n {{mis.domains ?\n domainIdsToStringForMission(mis) : (\"No data\" | translate) }}</li>\n <li class=\"list-group-item bg-transparent\">{{'Authorized location' | translate }}:\n {{ mis.space ? mis.space.name : \"No location\" | translate}}</li>\n <li class=\"list-group-item bg-transparent\">{{'Authorized zone' | translate }}:\n {{ mis.zone ? mis.zone.name : \"All zones allowed\" | translate}}</li>\n <li class=\"list-group-item bg-transparent\">{{'Starts' | translate }}:\n {{ mis.startDateTime ? (mis.startDateTime | timeDateString: \"day_time_zone\" | async) :\n \"No data\" | translate}}, {{'Ends' | translate}}: {{ mis.endDateTime\n ? (mis.endDateTime | timeDateString: \"day_time_zone\" | async)\n : \"No data\" | translate}}\n </li>\n <li class=\"list-group-item bg-transparent\">{{'Created' | translate }}:\n {{ mis.createdAt | timeDateString: \"day_time_zone\" | async }}\n </li>\n </ul>\n <div class=\"action-button-container\" >\n <button type=\"button\" data-testid=\"edit-mission-btn\" class=\"btn btn-outline-primary rounded-pill mr-2 action-button\"\n (click)=\"onEdit(mis)\">{{'Edit' |\n translate}}</button>\n <button type=\"button\" *ngIf=\"mis.role === 'VISITOR' || mis.role === 'VISITOR_MUSEUM'\"\n class=\"btn btn-outline-primary rounded-pill mr-2 action-button share-visitor-button\"\n (click)=\"onSetForShareableLink(a.user, mis)\">{{'Generate Shareable Link' |\n translate}}</button>\n <button type=\"button\" class=\"btn btn-outline-primary rounded-pill action-button\"\n (click)=\"onDeleteMission(mis)\">{{'Delete' | translate}}</button>\n </div>\n </li>\n </ul>\n </div>\n </li>\n </ul>\n </div>\n </li>\n <li class=\"list-group-item list-group-item-action\" *ngIf=\"profilesWithoutMission && profilesWithoutMission.length > 0\">\n <div class=\"d-flex justify-content-between align-items-center font-weight-bold\"\n ngbTooltip=\"See details\" style=\"cursor: pointer;\" (click)=\"onToggleDetailOrg('-2', null)\">\n {{\"Users without missions\" | translate}}\n <lib-chevron [conditionShowing]=\"detailsOrg=='-2'\"></lib-chevron>\n </div>\n <div class=\"missions\" *ngIf=\"detailsOrg=='-2'\">\n <ul class=\"list-group list-group-flush\" data-testid=\"mission-organisation-list\">\n <li class=\"list-group-item list-group-item-action\" *ngFor=\"let profile of profilesWithoutMission\" \n (click)=\"onToggleDetailUser(profile.id)\">\n <div class=\"d-flex justify-content-between align-items-center\">\n {{profile.displayName}}\n <lib-chevron [conditionShowing]=\"detailsUser==profile.id\" [ngClass]=\"[getStringNoSpace(profile.displayName)]\"></lib-chevron>\n </div>\n <div *ngIf=\"detailsUser==profile.id\">\n <div class=\"ml-3\">\n <div class=\"d-flex justify-content-between align-items-center mt-3\">\n {{'Email' | translate}}: {{profile.email }}\n </div>\n <div class=\"d-flex justify-content-between align-items-center mt-3\">\n <button type=\"button\" class=\"btn btn-primary rounded-pill\" data-testid=\"mission-new-btn\"\n (click)=\"onAddForUser(currentOrg, profile)\">{{'Add new mission' | translate}}</button>\n <button type=\"button\" class=\"btn btn-primary rounded-pill\"\n (click)=\"onDeleteUser(profile)\">{{'Delete user' | translate}}</button>\n </div>\n </div>\n </div>\n </li>\n </ul>\n </div>\n </li>\n </ul>\n </div>\n\n <div *ngIf=\"create\">\n <lib-user-mission-form [addToOrganisation]=\"addToOrg\" [currentOrg]=\"currentOrg\" [isSP]=\"isSP\"\n (added)=\"userAdded($event)\">\n </lib-user-mission-form>\n </div>\n <div *ngIf=\"edit\">\n <lib-form-mission [missionToEdit]=\"missionToEdit\" [currentUserOrganisation]=\"currentOrg\" [isSP]=\"isSP\"\n (addedMissionInput)=\"onMissionEdited($event)\"></lib-form-mission>\n </div>\n <div *ngIf=\"createForExistingUser\">\n <lib-form-mission [organisationForMission]=\"addToOrg\" [currentUserOrganisation]=\"currentOrg\" [isSP]=\"isSP\"\n [userForMissionID]=\"userForAddingMission.id\" (addedMissionInput)=\"onMissionCreated($event)\">\n </lib-form-mission>\n </div>\n <div *ngIf=\"isAddingOrg || isAddingToExistingOrg\">\n <lib-form-organisation [currentOrg]=\"currentOrg\" [currentUser]=\"me\" [existing]=\"isAddingToExistingOrg\"\n (added)=\"orgAdded($event)\"></lib-form-organisation>\n </div>\n </div>\n\n <div class=\"col-md-4 col-lg-6\" *ngIf=\"orgSelectedDetails && !isGuide\">\n <lib-detail-organisation [org]=\"orgSelectedDetails\" [currentOrg]=\"currentOrg\" [isSP]=\"isSP\"\n (orgChanged)='orgAdded($event)'></lib-detail-organisation>\n </div>\n </div>\n</div>", styles: [".add-button{width:-moz-fit-content;width:fit-content;margin-left:.5rem}li.ml-4{margin-left:3rem}.action-button-container{display:flex;justify-content:space-evenly}.action-button-container .action-button{width:145px}.action-button-container .share-visitor-button{width:-moz-fit-content;width:fit-content}\n"], components: [{ type: i1.LoaderComponent, selector: "lib-loader", inputs: ["useLogo", "color"] }, { type: ChevronComponent, selector: "lib-chevron", inputs: ["conditionShowing"] }, { type: UserMissionFormComponent, selector: "lib-user-mission-form", inputs: ["addToOrganisation", "isSP", "createForExistingUser", "currentOrg"], outputs: ["added"] }, { type: FormMissionComponent, selector: "lib-form-mission", inputs: ["missionToEdit", "organisationForMission", "isSP", "userForMissionID", "currentUserOrganisation"], outputs: ["addedMissionInput"] }, { type: FormOrganisationComponent, selector: "lib-form-organisation", inputs: ["currentOrg", "currentUser", "existing"], outputs: ["added"] }, { type: DetailOrganisationComponent, selector: "lib-detail-organisation", inputs: ["org", "currentOrg", "isSP"], outputs: ["orgChanged"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "triggers", "container", "disableTooltip", "tooltipClass", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "translate": i3.TranslatePipe, "async": i5.AsyncPipe, "hashtagFromID": i1.HashtagFromIdPipe, "timeDateString": i1.TimeDateToLocalStringPipe } });
|
|
1318
1318
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: UserComponent, decorators: [{
|
|
1319
1319
|
type: Component,
|
|
1320
|
-
args: [{ selector: 'lib-user', template: "<div class=\"dashboard-tab\">\r\n <div class=\"header-dashboard-tab\">\r\n <h3>{{'Users' | translate}}</h3>\r\n <!-- <app-search-bar *ngIf=\"!hideList\" [searchable]=\"orgsUsersMissions\" objectType=\"USER\"\r\n (searchEvent)=\"applyResultsSearchBar($event)\">\r\n </app-search-bar> -->\r\n <hr>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-8 col-lg-6\">\r\n <div class=\"row ml-0 mb-2\" *ngIf=\"!hideList\">\r\n <button class=\"btn btn-outline-primary rounded-pill add-button\" *ngIf=\"!isGuide\" (click)=\"onAddOrg()\">\r\n {{'Add user to new organisation' | translate}}</button>\r\n </div>\r\n <div class=\"d-flex justify-content-center\" *ngIf=\"loading\">\r\n <lib-loader></lib-loader>\r\n </div>\r\n <div *ngIf=\"!hideList\">\r\n <ul class=\"list-group list-group-flush\" *ngIf=\"filteredOrgsUsersMissions\" data-testid=\"mission-organisation-list\">\r\n <li class=\"list-group-item list-group-item-action\" *ngFor=\"let o of filteredOrgsUsersMissions\">\r\n <div class=\"d-flex justify-content-between align-items-center font-weight-bold\"\r\n ngbTooltip=\"See details and users\" style=\"cursor: pointer;\" (click)=\"onToggleDetailOrg(o.org.id, o.org)\">\r\n {{o.org.name}} <small *ngIf=\"o.org.id == currentOrg.id\">({{'My organisation' | translate}})</small>\r\n <small *ngIf=\"isSP && clientsSP.includes(o.org.id)\">({{'Client of SmarterPlan' | translate}})</small>\r\n <small *ngIf=\"isSP && getOrderedOrg(o.org.id)\">({{'Client of ' | translate}}\r\n {{getOrderedOrg(o.org.id)}})</small>\r\n <lib-chevron [conditionShowing]=\"detailsOrg==o.org.id\" [ngClass]=\"[getStringNoSpace(o.org.name)]\"></lib-chevron>\r\n </div>\r\n <div class=\"missions\" *ngIf=\"detailsOrg==o.org.id\">\r\n <div class='d-flex'>\r\n <button data-testid=\"user-new-btn\" class=\"btn btn-outline-primary rounded-pill mt-3 mb-3\" (click)=\"onAdd(o.org)\">{{'Add user' |\r\n translate}}</button>\r\n </div>\r\n\r\n <ul class=\"list-group list-group-flush\" data-testid=\"mission-user-list\">\r\n <li class=\"list-group-item list-group-item-action\" *ngFor=\"let a of o.users\"\r\n (click)=\"onToggleDetailUser(a.user.id)\">\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n {{a.user.displayName}}\r\n <lib-chevron [conditionShowing]=\"detailsUser==a.user.id\" [ngClass]=\"[getStringNoSpace(a.user.displayName)]\"></lib-chevron>\r\n </div>\r\n\r\n <div *ngIf=\"detailsUser==a.user.id\">\r\n <div class=\"ml-3\">\r\n <div class=\"d-flex justify-content-between align-items-center mt-3\">\r\n {{'Email' | translate}}: {{a.user.email }}\r\n </div>\r\n <div class=\"d-flex justify-content-between align-items-center mt-3\">\r\n <button type=\"button\" class=\"btn btn-primary rounded-pill\" data-testid=\"mission-new-btn\"\r\n (click)=\"onAddForUser(o.org, a.user)\">{{'Add new mission' | translate}}</button>\r\n <button type=\"button\" class=\"btn btn-primary rounded-pill\" (click)=\"onClearToken(a)\">\r\n {{'Clear Token' | translate}}</button>\r\n <button type=\"button\" class=\"btn btn-primary rounded-pill\"\r\n (click)=\"onDeleteUser(a.user)\">{{'Delete user' | translate}}</button>\r\n </div>\r\n <div class=\"d-flex justify-content-between align-items-center mt-3\">\r\n {{ a.missions.length > 0 ? ('Current Missions' | translate) : ('No missions' | translate)}}\r\n </div>\r\n </div>\r\n <ul class=\"list-group list-group-flush\">\r\n <li class=\"list-group-item\" *ngFor=\"let mis of a.missions\">\r\n <ul class=\"list-group list-group-flush\">\r\n <li class=\"list-group-item bg-transparent\" *ngIf=\"mis.description\">\r\n {{'Description' | translate}}: {{mis.description}}</li>\r\n <li class=\"list-group-item bg-transparent\" *ngIf=\"mis.templateMissionID\">\r\n {{'Attendee of tour' | translate}}: {{mis.templateMission.title}}</li>\r\n\r\n <li class=\"list-group-item bg-transparent\">{{'Role' | translate}}: {{ mis.role }}</li>\r\n <li class=\"list-group-item bg-transparent\" *ngIf=\"mis.hashtags && mis.hashtags.length> 0\">\r\n {{'Hashtags' | translate}}: <ul class=\"keywordsDisplay no-border\">\r\n <div class=\"keywordsdisplayContainer\">\r\n <li class=\"keywordsItem\" *ngFor=\"let hashtag of mis.hashtags\">\r\n {{ hashtag | hashtagFromID | async }}</li>\r\n </div>\r\n </ul>\r\n </li>\r\n <li class=\"list-group-item bg-transparent\">{{'Language' | translate }}: {{\r\n mis.locale ? mis.locale : ('Not applicable' | translate)}}</li>\r\n <li class=\"list-group-item bg-transparent\">{{'Access level' | translate }}: {{\r\n mis.level}}</li>\r\n <li class=\"list-group-item bg-transparent\">{{'Ordered by' | translate }}: {{\r\n mis.orderedOrganisation.name}}</li>\r\n <li class=\"list-group-item bg-transparent\" *ngIf=\"mis.domains\">{{'Domains' | translate }}:\r\n {{mis.domains ?\r\n domainIdsToStringForMission(mis) : (\"No data\" | translate) }}</li>\r\n <li class=\"list-group-item bg-transparent\">{{'Authorized location' | translate }}:\r\n {{ mis.space ? mis.space.name : \"No location\" | translate}}</li>\r\n <li class=\"list-group-item bg-transparent\">{{'Authorized zone' | translate }}:\r\n {{ mis.zone ? mis.zone.name : \"All zones allowed\" | translate}}</li>\r\n <li class=\"list-group-item bg-transparent\">{{'Starts' | translate }}:\r\n {{ mis.startDateTime ? (mis.startDateTime | timeDateString: \"day_time_zone\" | async) :\r\n \"No data\" | translate}}, {{'Ends' | translate}}: {{ mis.endDateTime\r\n ? (mis.endDateTime | timeDateString: \"day_time_zone\" | async)\r\n : \"No data\" | translate}}.\r\n </li>\r\n </ul>\r\n <div class=\"action-button-container\" >\r\n <button type=\"button\" data-testid=\"edit-mission-btn\" class=\"btn btn-outline-primary rounded-pill mr-2 action-button\"\r\n (click)=\"onEdit(mis)\">{{'Edit' |\r\n translate}}</button>\r\n <button type=\"button\" *ngIf=\"mis.role === 'VISITOR' || mis.role === 'VISITOR_MUSEUM'\"\r\n class=\"btn btn-outline-primary rounded-pill mr-2 action-button share-visitor-button\"\r\n (click)=\"onSetForShareableLink(a.user, mis)\">{{'Generate Shareable Link' |\r\n translate}}</button>\r\n <button type=\"button\" class=\"btn btn-outline-primary rounded-pill action-button\"\r\n (click)=\"onDeleteMission(mis)\">{{'Delete' | translate}}</button>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </li>\r\n <li class=\"list-group-item list-group-item-action\" *ngIf=\"profilesWithoutMission && profilesWithoutMission.length > 0\">\r\n <div class=\"d-flex justify-content-between align-items-center font-weight-bold\"\r\n ngbTooltip=\"See details\" style=\"cursor: pointer;\" (click)=\"onToggleDetailOrg('-2', null)\">\r\n {{\"Users without missions\" | translate}}\r\n <lib-chevron [conditionShowing]=\"detailsOrg=='-2'\"></lib-chevron>\r\n </div>\r\n <div class=\"missions\" *ngIf=\"detailsOrg=='-2'\">\r\n <ul class=\"list-group list-group-flush\" data-testid=\"mission-organisation-list\">\r\n <li class=\"list-group-item list-group-item-action\" *ngFor=\"let profile of profilesWithoutMission\" \r\n (click)=\"onToggleDetailUser(profile.id)\">\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n {{profile.displayName}}\r\n <lib-chevron [conditionShowing]=\"detailsUser==profile.id\" [ngClass]=\"[getStringNoSpace(profile.displayName)]\"></lib-chevron>\r\n </div>\r\n <div *ngIf=\"detailsUser==profile.id\">\r\n <div class=\"ml-3\">\r\n <div class=\"d-flex justify-content-between align-items-center mt-3\">\r\n {{'Email' | translate}}: {{profile.email }}\r\n </div>\r\n <div class=\"d-flex justify-content-between align-items-center mt-3\">\r\n <button type=\"button\" class=\"btn btn-primary rounded-pill\" data-testid=\"mission-new-btn\"\r\n (click)=\"onAddForUser(currentOrg, profile)\">{{'Add new mission' | translate}}</button>\r\n <button type=\"button\" class=\"btn btn-primary rounded-pill\"\r\n (click)=\"onDeleteUser(profile)\">{{'Delete user' | translate}}</button>\r\n </div>\r\n </div>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n\r\n <div *ngIf=\"create\">\r\n <lib-user-mission-form [addToOrganisation]=\"addToOrg\" [currentOrg]=\"currentOrg\" [isSP]=\"isSP\"\r\n (added)=\"userAdded($event)\">\r\n </lib-user-mission-form>\r\n </div>\r\n <div *ngIf=\"edit\">\r\n <lib-form-mission [missionToEdit]=\"missionToEdit\" [currentUserOrganisation]=\"currentOrg\" [isSP]=\"isSP\"\r\n (addedMissionInput)=\"onMissionEdited($event)\"></lib-form-mission>\r\n </div>\r\n <div *ngIf=\"createForExistingUser\">\r\n <lib-form-mission [organisationForMission]=\"addToOrg\" [currentUserOrganisation]=\"currentOrg\" [isSP]=\"isSP\"\r\n [userForMissionID]=\"userForAddingMission.id\" (addedMissionInput)=\"onMissionCreated($event)\">\r\n </lib-form-mission>\r\n </div>\r\n <div *ngIf=\"isAddingOrg || isAddingToExistingOrg\">\r\n <lib-form-organisation [currentOrg]=\"currentOrg\" [currentUser]=\"me\" [existing]=\"isAddingToExistingOrg\"\r\n (added)=\"orgAdded($event)\"></lib-form-organisation>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-md-4 col-lg-6\" *ngIf=\"orgSelectedDetails && !isGuide\">\r\n <lib-detail-organisation [org]=\"orgSelectedDetails\" [currentOrg]=\"currentOrg\" [isSP]=\"isSP\"\r\n (orgChanged)='orgAdded($event)'></lib-detail-organisation>\r\n </div>\r\n </div>\r\n</div>", styles: [".add-button{width:-moz-fit-content;width:fit-content;margin-left:.5rem}li.ml-4{margin-left:3rem}.action-button-container{display:flex;justify-content:space-evenly}.action-button-container .action-button{width:145px}.action-button-container .share-visitor-button{width:-moz-fit-content;width:fit-content}\n"] }]
|
|
1320
|
+
args: [{ selector: 'lib-user', template: "<div class=\"dashboard-tab\">\n <div class=\"header-dashboard-tab\">\n <h3>{{'Users' | translate}}</h3>\n <!-- <app-search-bar *ngIf=\"!hideList\" [searchable]=\"orgsUsersMissions\" objectType=\"USER\"\n (searchEvent)=\"applyResultsSearchBar($event)\">\n </app-search-bar> -->\n <hr>\n </div>\n <div class=\"row\">\n <div class=\"col-md-8 col-lg-6\">\n <div class=\"row ml-0 mb-2\" *ngIf=\"!hideList\">\n <button class=\"btn btn-outline-primary rounded-pill add-button\" *ngIf=\"!isGuide\" (click)=\"onAddOrg()\">\n {{'Add user to new organisation' | translate}}</button>\n </div>\n <div class=\"d-flex justify-content-center\" *ngIf=\"loading\">\n <lib-loader></lib-loader>\n </div>\n <div *ngIf=\"!hideList\">\n <ul class=\"list-group list-group-flush\" *ngIf=\"filteredOrgsUsersMissions\" data-testid=\"mission-organisation-list\">\n <li class=\"list-group-item list-group-item-action\" *ngFor=\"let o of filteredOrgsUsersMissions\">\n <div class=\"d-flex justify-content-between align-items-center font-weight-bold\"\n ngbTooltip=\"See details and users\" style=\"cursor: pointer;\" (click)=\"onToggleDetailOrg(o.org.id, o.org)\">\n {{o.org.name}} <small *ngIf=\"o.org.id == currentOrg.id\">({{'My organisation' | translate}})</small>\n <small *ngIf=\"isSP && clientsSP.includes(o.org.id)\">({{'Client of SmarterPlan' | translate}})</small>\n <small *ngIf=\"isSP && getOrderedOrg(o.org.id)\">({{'Client of ' | translate}}\n {{getOrderedOrg(o.org.id)}})</small>\n <lib-chevron [conditionShowing]=\"detailsOrg==o.org.id\" [ngClass]=\"[getStringNoSpace(o.org.name)]\"></lib-chevron>\n </div>\n <div class=\"missions\" *ngIf=\"detailsOrg==o.org.id\">\n <div class='d-flex'>\n <button data-testid=\"user-new-btn\" class=\"btn btn-outline-primary rounded-pill mt-3 mb-3\" (click)=\"onAdd(o.org)\">{{'Add user' |\n translate}}</button>\n </div>\n\n <ul class=\"list-group list-group-flush\" data-testid=\"mission-user-list\">\n <li class=\"list-group-item list-group-item-action\" *ngFor=\"let a of o.users\"\n (click)=\"onToggleDetailUser(a.user.id)\">\n <div class=\"d-flex justify-content-between align-items-center\">\n {{a.user.displayName}}\n <lib-chevron [conditionShowing]=\"detailsUser==a.user.id\" [ngClass]=\"[getStringNoSpace(a.user.displayName)]\"></lib-chevron>\n </div>\n\n <div *ngIf=\"detailsUser==a.user.id\">\n <div class=\"ml-3\">\n <div class=\"d-flex justify-content-between align-items-center mt-3\">\n {{'Email' | translate}}: {{a.user.email }}\n </div>\n <div class=\"d-flex justify-content-between align-items-center mt-3\">\n <button type=\"button\" class=\"btn btn-primary rounded-pill\" data-testid=\"mission-new-btn\"\n (click)=\"onAddForUser(o.org, a.user)\">{{'Add new mission' | translate}}</button>\n <button type=\"button\" class=\"btn btn-primary rounded-pill\" (click)=\"onClearToken(a)\">\n {{'Clear Token' | translate}}</button>\n <button type=\"button\" class=\"btn btn-primary rounded-pill\"\n (click)=\"onDeleteUser(a.user)\">{{'Delete user' | translate}}</button>\n </div>\n <div class=\"d-flex justify-content-between align-items-center mt-3\">\n {{ a.missions.length > 0 ? ('Current Missions' | translate) : ('No missions' | translate)}}\n </div>\n </div>\n <ul class=\"list-group list-group-flush\">\n <li class=\"list-group-item\" *ngFor=\"let mis of a.missions\">\n <ul class=\"list-group list-group-flush\">\n <li class=\"list-group-item bg-transparent\" *ngIf=\"mis.description\">\n {{'Description' | translate}}: {{mis.description}}</li>\n <li class=\"list-group-item bg-transparent\" *ngIf=\"mis.templateMissionID\">\n {{'Attendee of tour' | translate}}: {{mis.templateMission.title}}</li>\n\n <li class=\"list-group-item bg-transparent\">{{'Role' | translate}}: {{ mis.role }}</li>\n <li class=\"list-group-item bg-transparent\" *ngIf=\"mis.hashtags && mis.hashtags.length> 0\">\n {{'Hashtags' | translate}}: <ul class=\"keywordsDisplay no-border\">\n <div class=\"keywordsdisplayContainer\">\n <li class=\"keywordsItem\" *ngFor=\"let hashtag of mis.hashtags\">\n {{ hashtag | hashtagFromID | async }}</li>\n </div>\n </ul>\n </li>\n <li class=\"list-group-item bg-transparent\">{{'Language' | translate }}: {{\n mis.locale ? mis.locale : ('Not applicable' | translate)}}</li>\n <li class=\"list-group-item bg-transparent\">{{'Access level' | translate }}: {{\n mis.level}}</li>\n <li class=\"list-group-item bg-transparent\">{{'Ordered by' | translate }}: {{\n mis.orderedOrganisation.name}}</li>\n <li class=\"list-group-item bg-transparent\" *ngIf=\"mis.domains\">{{'Domains' | translate }}:\n {{mis.domains ?\n domainIdsToStringForMission(mis) : (\"No data\" | translate) }}</li>\n <li class=\"list-group-item bg-transparent\">{{'Authorized location' | translate }}:\n {{ mis.space ? mis.space.name : \"No location\" | translate}}</li>\n <li class=\"list-group-item bg-transparent\">{{'Authorized zone' | translate }}:\n {{ mis.zone ? mis.zone.name : \"All zones allowed\" | translate}}</li>\n <li class=\"list-group-item bg-transparent\">{{'Starts' | translate }}:\n {{ mis.startDateTime ? (mis.startDateTime | timeDateString: \"day_time_zone\" | async) :\n \"No data\" | translate}}, {{'Ends' | translate}}: {{ mis.endDateTime\n ? (mis.endDateTime | timeDateString: \"day_time_zone\" | async)\n : \"No data\" | translate}}\n </li>\n <li class=\"list-group-item bg-transparent\">{{'Created' | translate }}:\n {{ mis.createdAt | timeDateString: \"day_time_zone\" | async }}\n </li>\n </ul>\n <div class=\"action-button-container\" >\n <button type=\"button\" data-testid=\"edit-mission-btn\" class=\"btn btn-outline-primary rounded-pill mr-2 action-button\"\n (click)=\"onEdit(mis)\">{{'Edit' |\n translate}}</button>\n <button type=\"button\" *ngIf=\"mis.role === 'VISITOR' || mis.role === 'VISITOR_MUSEUM'\"\n class=\"btn btn-outline-primary rounded-pill mr-2 action-button share-visitor-button\"\n (click)=\"onSetForShareableLink(a.user, mis)\">{{'Generate Shareable Link' |\n translate}}</button>\n <button type=\"button\" class=\"btn btn-outline-primary rounded-pill action-button\"\n (click)=\"onDeleteMission(mis)\">{{'Delete' | translate}}</button>\n </div>\n </li>\n </ul>\n </div>\n </li>\n </ul>\n </div>\n </li>\n <li class=\"list-group-item list-group-item-action\" *ngIf=\"profilesWithoutMission && profilesWithoutMission.length > 0\">\n <div class=\"d-flex justify-content-between align-items-center font-weight-bold\"\n ngbTooltip=\"See details\" style=\"cursor: pointer;\" (click)=\"onToggleDetailOrg('-2', null)\">\n {{\"Users without missions\" | translate}}\n <lib-chevron [conditionShowing]=\"detailsOrg=='-2'\"></lib-chevron>\n </div>\n <div class=\"missions\" *ngIf=\"detailsOrg=='-2'\">\n <ul class=\"list-group list-group-flush\" data-testid=\"mission-organisation-list\">\n <li class=\"list-group-item list-group-item-action\" *ngFor=\"let profile of profilesWithoutMission\" \n (click)=\"onToggleDetailUser(profile.id)\">\n <div class=\"d-flex justify-content-between align-items-center\">\n {{profile.displayName}}\n <lib-chevron [conditionShowing]=\"detailsUser==profile.id\" [ngClass]=\"[getStringNoSpace(profile.displayName)]\"></lib-chevron>\n </div>\n <div *ngIf=\"detailsUser==profile.id\">\n <div class=\"ml-3\">\n <div class=\"d-flex justify-content-between align-items-center mt-3\">\n {{'Email' | translate}}: {{profile.email }}\n </div>\n <div class=\"d-flex justify-content-between align-items-center mt-3\">\n <button type=\"button\" class=\"btn btn-primary rounded-pill\" data-testid=\"mission-new-btn\"\n (click)=\"onAddForUser(currentOrg, profile)\">{{'Add new mission' | translate}}</button>\n <button type=\"button\" class=\"btn btn-primary rounded-pill\"\n (click)=\"onDeleteUser(profile)\">{{'Delete user' | translate}}</button>\n </div>\n </div>\n </div>\n </li>\n </ul>\n </div>\n </li>\n </ul>\n </div>\n\n <div *ngIf=\"create\">\n <lib-user-mission-form [addToOrganisation]=\"addToOrg\" [currentOrg]=\"currentOrg\" [isSP]=\"isSP\"\n (added)=\"userAdded($event)\">\n </lib-user-mission-form>\n </div>\n <div *ngIf=\"edit\">\n <lib-form-mission [missionToEdit]=\"missionToEdit\" [currentUserOrganisation]=\"currentOrg\" [isSP]=\"isSP\"\n (addedMissionInput)=\"onMissionEdited($event)\"></lib-form-mission>\n </div>\n <div *ngIf=\"createForExistingUser\">\n <lib-form-mission [organisationForMission]=\"addToOrg\" [currentUserOrganisation]=\"currentOrg\" [isSP]=\"isSP\"\n [userForMissionID]=\"userForAddingMission.id\" (addedMissionInput)=\"onMissionCreated($event)\">\n </lib-form-mission>\n </div>\n <div *ngIf=\"isAddingOrg || isAddingToExistingOrg\">\n <lib-form-organisation [currentOrg]=\"currentOrg\" [currentUser]=\"me\" [existing]=\"isAddingToExistingOrg\"\n (added)=\"orgAdded($event)\"></lib-form-organisation>\n </div>\n </div>\n\n <div class=\"col-md-4 col-lg-6\" *ngIf=\"orgSelectedDetails && !isGuide\">\n <lib-detail-organisation [org]=\"orgSelectedDetails\" [currentOrg]=\"currentOrg\" [isSP]=\"isSP\"\n (orgChanged)='orgAdded($event)'></lib-detail-organisation>\n </div>\n </div>\n</div>", styles: [".add-button{width:-moz-fit-content;width:fit-content;margin-left:.5rem}li.ml-4{margin-left:3rem}.action-button-container{display:flex;justify-content:space-evenly}.action-button-container .action-button{width:145px}.action-button-container .share-visitor-button{width:-moz-fit-content;width:fit-content}\n"] }]
|
|
1321
1321
|
}], ctorParameters: function () { return [{ type: i1.BaseUserService }, { type: i1.MissionService }, { type: i1.DomainService }, { type: i1.OrganisationService }, { type: i4.NgbModal }, { type: i3.TranslateService }, { type: i1.ProfileService }]; } });
|
|
1322
1322
|
|
|
1323
1323
|
function stringDateToMillis(dateString) {
|
|
@@ -1602,10 +1602,10 @@ class TemplateComponent {
|
|
|
1602
1602
|
}
|
|
1603
1603
|
}
|
|
1604
1604
|
TemplateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: TemplateComponent, deps: [{ token: i1$1.FormBuilder }, { token: i1.BaseUserService }, { token: i1.SpaceService }, { token: i1.ZoneService }, { token: i1.HashtagService }, { token: i3.TranslateService }, { token: i1.ValidatorsService }], target: i0.ɵɵFactoryTarget.Component });
|
|
1605
|
-
TemplateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: TemplateComponent, selector: "lib-template", inputs: { currentOrg: "currentOrg", editTemplate: "editTemplate", zoneID: "zoneID" }, outputs: { updatedTemplate: "updatedTemplate", createdTemplate: "createdTemplate" }, ngImport: i0, template: "<div class=\"form-container\" *ngIf=\"form\">\r\n <div>\r\n <h4>{{ 'Visit Template' | translate }}</h4>\r\n </div>\r\n <form (ngSubmit)=\"onSubmit()\" [formGroup]=\"form\">\r\n <div>\r\n <div class=\"form-group row\">\r\n <label class=\"col-sm-4 col-form-label\">{{'Visit Title' | translate}} *</label>\r\n <div class=\"col-sm-8\">\r\n <input type=\"text\" class=\"form-control\"\r\n placeholder=\"Edvard Munch - \u00AB Un po\u00E8me d\u2019amour, de vie et de mort \u00BB\" formControlName=\"title\"\r\n [ngClass]=\"{'is-invalid' : validatorsService.isControlError(form.controls['title'])|| isFormError(form.controls['title'])} \"\r\n data-testid=\"form-template-title\" (ngModelChange)=\"onVerifForm()\">\r\n <div class=\"invalid-feedback\">\r\n <ngb-alert data-testid=\"form-template-title-invalid\" [dismissible]=\"false\" type=\"danger\" *ngIf=\" validatorsService.isControlError(form.controls['title']) \r\n || isFormError(form.controls['title'])\">\r\n {{validatorsService.getError(form.controls['title']) |\r\n translate}}\r\n </ngb-alert>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group row\">\r\n <label class=\"col-sm-4 col-form-label\">{{'Description' | translate}}</label>\r\n <div class=\"col-sm-8\">\r\n <textarea class=\"form-control\" formControlName=\"description\" style=\"height:200px\" (ngModelChange)=\"onVerifForm()\"\r\n [ngClass]=\"{'is-invalid' : validatorsService.isControlError(form.controls['description'])|| isFormError(form.controls['description'])} \"\r\n data-testid=\"form-template-description\"\r\n placeholder=\"Cette visite d\u20191h30 vous pr\u00E9sentera les \u0153uvres embl\u00E9matiques du c\u00E9l\u00E8bre peintre norv\u00E9gien Edvard Munch (1863-1944)...\"></textarea>\r\n <div class=\"invalid-feedback\">\r\n <ngb-alert data-testid=\"form-template-description-invalid\" [dismissible]=\"false\" type=\"danger\"\r\n *ngIf=\" validatorsService.isControlError(form.controls['description']) \r\n || isFormError(form.controls['description'])\">\r\n {{validatorsService.getError(form.controls['description']) |\r\n translate}}\r\n </ngb-alert>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group row\">\r\n <label class=\"col-sm-4 col-form-label\">{{'Language' | translate}}</label>\r\n <div class=\"col-sm-8\">\r\n <select class=\"form-control\" formControlName=\"locale\">\r\n <option [ngValue]=\"null\">{{'Not applicable' | translate}}</option>\r\n <option *ngFor=\"let locale of locales\" [ngValue]=\"locale\">\r\n {{ locale }}\r\n </option>\r\n </select>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group row\">\r\n <label class=\"col-sm-4 col-form-label\">{{'Level' | translate}}*</label>\r\n <div class=\"col-sm-8\">\r\n <select class=\"form-control\" formControlName=\"level\">\r\n <option *ngFor=\"let level of availableLevels\" [ngValue]=\"level\">\r\n {{ level }}\r\n </option>\r\n </select>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group row\">\r\n <label class=\"col-sm-4 col-form-label\">{{ 'Authorized location' | translate }}*</label>\r\n <div class=\"col-sm-8\" *ngIf=\"availableSpaces && !inputZone\">\r\n <select class=\"form-control\" formControlName=\"space\" (change)=\"onSpaceClick()\" (ngModelChange)=\"onVerifForm()\"\r\n data-testid=\"form-template-space\"\r\n [ngClass]=\"{'is-invalid' : validatorsService.isControlError(form.controls['space'])|| isFormError(form.controls['space'])} \">\r\n <option *ngFor=\"let space of availableSpaces\" [ngValue]=\"space.id\">\r\n {{ space.name }}\r\n </option>\r\n </select>\r\n <div class=\"invalid-feedback\">\r\n <ngb-alert data-testid=\"form-template-space-invalid\" [dismissible]=\"false\" type=\"danger\" *ngIf=\" validatorsService.isControlError(form.controls['space']) \r\n || isFormError(form.controls['space'])\">\r\n {{validatorsService.getError(form.controls['space']) |\r\n translate}}\r\n </ngb-alert>\r\n </div>\r\n </div>\r\n <div class=\"col-sm-8\" *ngIf=\"!availableSpaces\">\r\n {{ 'No locations available' | translate}}\r\n </div>\r\n <div class=\"col-sm-8\" *ngIf=\"inputZone\">\r\n <input type=\"text\" class=\"form-control\" [value]=\"inputZone.space.name\" disabled>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group row\">\r\n <label class=\"col-sm-4 col-form-label\">{{ 'Authorized zone' | translate }}*</label>\r\n <div class=\"col-sm-8\" *ngIf=\"zonesForSpace && zonesForSpace.length > 0 && !inputZone\">\r\n <select class=\"form-control\" required formControlName=\"zone\" (ngModelChange)=\"onVerifForm()\"\r\n [ngClass]=\"{'is-invalid' : validatorsService.isControlError(form.controls['zone'])|| isFormError(form.controls['zone'])} \"\r\n data-testid=\"form-template-zone\">\r\n <option *ngFor=\"let zone of zonesForSpace\" [ngValue]=\"zone.id\">\r\n {{ zone.name }}\r\n </option>\r\n </select>\r\n <div class=\"invalid-feedback\">\r\n <ngb-alert data-testid=\"form-template-zone-invalid\" [dismissible]=\"false\" type=\"danger\" *ngIf=\" validatorsService.isControlError(form.controls['zone']) \r\n || isFormError(form.controls['zone'])\">\r\n {{validatorsService.getError(form.controls['zone']) |\r\n translate}}\r\n </ngb-alert>\r\n </div>\r\n </div>\r\n <div class=\"col-sm-8\" *ngIf=\"zonesForSpace && zonesForSpace.length === 0 && !inputZone\">\r\n <p class=\"warning col-form-label\">{{\"No Museum Zones found for this location\"| translate}}</p>\r\n </div>\r\n <div class=\"col-sm-8\" *ngIf=\"inputZone\">\r\n <input type=\"text\" class=\"form-control\" [value]=\"inputZone.name\" disabled>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group row\">\r\n <label class=\"col-sm-4 col-form-label\">{{'Hashtags' | translate}}</label>\r\n <div class=\"col-sm-8\" *ngIf=\"spaceID.value\">\r\n <p class=\"keywordsRules\" *ngIf=\"availableHashtags.length > 0\">{{'Available hashtags' | translate}}\r\n </p>\r\n <p class=\"keywordsRules\" *ngIf=\"availableHashtags.length === 0\">\r\n {{'No hashtags created for this location' | translate}} </p>\r\n <div *ngIf=\"availableHashtags.length > 0\">\r\n <ul class=\"keywordsDisplay no-border\">\r\n <div class=\"keywordsdisplayContainer\">\r\n <li [class]=\"addedHashtags.includes(hashtag) ? 'keywordsItem added' : 'keywordsItem'\"\r\n *ngFor=\"let hashtag of availableHashtags\" (click)=\"onHashtagClick(hashtag)\"\r\n style=\"cursor: pointer;\"\r\n ngbTooltip=\"{{addedHashtags.includes(hashtag) ? ('Remove'|translate) : ('Add'|translate) }}\">\r\n {{hashtag.name}}</li>\r\n </div>\r\n </ul>\r\n <p class=\"keywordsRules\">{{'Added hashtags' | translate}} </p>\r\n <ul class=\"keywordsDisplay\">\r\n <div class=\"keywordsdisplayContainer\" *ngIf=\"addedHashtags.length> 0\">\r\n <li class=\"keywordsItem\" *ngFor=\"let hashtag of addedHashtags\">{{ hashtag.name }}</li>\r\n </div>\r\n </ul>\r\n </div>\r\n </div>\r\n <div class=\"col-sm-8\" *ngIf=\"!spaceID.value\">\r\n <p class=\"keywordsRules\">{{'You need to choose the location first' | translate}} </p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group row\">\r\n <label class=\"col-sm-4 col-form-label\">{{'Start Date' | translate}} *</label>\r\n <div class=\"input-group col-sm-8\">\r\n <input class=\"form-control\" placeholder=\"dd/mm/yyyy\" formControlName=\"startDate\" ngbDatepicker\r\n data-testid=\"form-template-startDate\" #d1=\"ngbDatepicker\" (ngModelChange)=\"onVerifDate();onVerifForm()\"\r\n [ngClass]=\"{'is-invalid' : validatorsService.isControlError(form.controls['startDate'])|| isFormError(form.controls['startDate'])|| dateError} \">\r\n <div class=\"input-group-append\">\r\n <button class=\"btn btn-outline-secondary calendar\" (click)=\"d1.toggle()\" type=\"button\"></button>\r\n </div>\r\n <div class=\"invalid-feedback\">\r\n <ngb-alert data-testid=\"form-template-startDate-invalid\" [dismissible]=\"false\" type=\"danger\"\r\n *ngIf=\" validatorsService.isControlError(form.controls['startDate']) \r\n || isFormError(form.controls['startDate'])\">\r\n {{validatorsService.getError(form.controls['startDate']) |\r\n translate}}\r\n </ngb-alert>\r\n\r\n <ngb-alert data-testid=\"form-template-startDate-invalid-verif\" [dismissible]=\"false\" type=\"danger\"\r\n *ngIf=\"startDateInvalid\">\r\n {{'errorForm.date_invalid' | translate}}\r\n </ngb-alert>\r\n\r\n <ngb-alert data-testid=\"form-template-startDate-invalid-verif\" [dismissible]=\"false\"\r\n type=\"danger\" *ngIf=\"dateError\">\r\n {{'errorForm.date_start_end' | translate}}\r\n </ngb-alert>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group row\">\r\n <label class=\"col-sm-4 col-form-label\">{{'Start Time' | translate}}</label>\r\n <div class=\"input-group col-sm-8\">\r\n <ngb-timepicker [(ngModel)]=\"missionTimeStart\" [ngModelOptions]=\"{standalone: true}\"\r\n (ngModelChange)=\"onVerifDate();onVerifForm()\">\r\n </ngb-timepicker>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group row\">\r\n <label class=\"col-sm-4 col-form-label\">{{'End Date' | translate}} *</label>\r\n <div class=\"input-group col-sm-8\">\r\n <input class=\"form-control\" placeholder=\"dd/mm/yyyy\" formControlName=\"endDate\" ngbDatepicker\r\n #d2=\"ngbDatepicker\" data-testid=\"form-template-endDate\" (ngModelChange)=\"onVerifDate();onVerifForm()\"\r\n [ngClass]=\"{'is-invalid' : validatorsService.isControlError(form.controls['endDate'])|| isFormError(form.controls['endDate'])|| dateError} \">\r\n <div class=\"input-group-append\">\r\n <button class=\"btn btn-outline-secondary calendar\" (click)=\"d2.toggle()\" type=\"button\"></button>\r\n </div>\r\n <div class=\"invalid-feedback\">\r\n <ngb-alert data-testid=\"form-template-endDate-invalid\" [dismissible]=\"false\" type=\"danger\"\r\n *ngIf=\" validatorsService.isControlError(form.controls['endDate']) || isFormError(form.controls['endDate'])\">\r\n {{validatorsService.getError(form.controls['endDate']) |\r\n translate}}\r\n </ngb-alert>\r\n\r\n <ngb-alert data-testid=\"form-template-endDate-invalid-verif\" [dismissible]=\"false\" type=\"danger\"\r\n *ngIf=\"endDateInvalid\">\r\n {{'errorForm.date_invalid' | translate}}\r\n </ngb-alert>\r\n\r\n <ngb-alert data-testid=\"form-template-endDate-invalid-verif\" [dismissible]=\"false\" type=\"danger\"\r\n *ngIf=\"dateError\">\r\n {{'errorForm.date_end_start' |\r\n translate}}\r\n </ngb-alert>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group row\">\r\n <label class=\"col-sm-4 col-form-label\">{{'End Time' | translate}}</label>\r\n <div class=\"input-group col-sm-8\">\r\n <ngb-timepicker [(ngModel)]=\"missionTimeEnd\" [ngModelOptions]=\"{standalone: true}\"\r\n (ngModelChange)=\"onVerifDate();onVerifForm()\"></ngb-timepicker>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <div class=\"btn-control-div action-button-container\">\r\n <button type=\"submit\" class=\"btn btn-outline-primary rounded-pill action-button\"\r\n [ngClass]=\"{'is-invalid' : errorForm }\" [disabled]=\"this.working \"\r\n data-testid=\"form-template-submit-btn\">{{'Save' |\r\n translate}}</button>\r\n <button type=\"button\" (click)=\"onCancel()\" [disabled]=\"this.working\" data-testid=\"form-template-cancel-btn\"\r\n class=\"btn btn-outline-primary rounded-pill action-button\">{{'Cancel' | translate}}</button>\r\n </div>\r\n <div class=\"invalid-feedback\" *ngIf=\"errorForm\">\r\n <ngb-alert data-testid=\"form-template-invalid\" [dismissible]=\"false\" type=\"danger\">\r\n {{'errorForm.infoBtn' |translate}}\r\n </ngb-alert>\r\n </div>\r\n\r\n </form>\r\n</div>", styles: [".form-container{margin:2rem 0rem}.form-container .btn-control-div .btn{width:8rem}.warning{margin:0;color:red}.keywordsDisplay{min-height:40px}.keywordsRules{margin-bottom:2px}.form-group{margin:1.5rem 0}label.col-sm-4.col-form-label{width:200px;min-width:200px}.action-button-container{display:flex;justify-content:space-evenly}.action-button-container .action-button{width:145px!important}\n"], components: [{ type: i4.NgbAlert, selector: "ngb-alert", inputs: ["animation", "dismissible", "type"], outputs: ["closed"], exportAs: ["ngbAlert"] }, { type: i4.NgbTimepicker, selector: "ngb-timepicker", inputs: ["meridian", "spinners", "seconds", "hourStep", "minuteStep", "secondStep", "readonlyInputs", "size"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i1$1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { type: i1$1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i1$1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i4.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "triggers", "container", "disableTooltip", "tooltipClass", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { type: i4.NgbInputDatepicker, selector: "input[ngbDatepicker]", inputs: ["autoClose", "datepickerClass", "dayTemplate", "dayTemplateData", "displayMonths", "firstDayOfWeek", "footerTemplate", "markDisabled", "minDate", "maxDate", "navigation", "outsideDays", "placement", "restoreFocus", "showWeekNumbers", "startDate", "container", "positionTarget", "weekdays", "disabled"], outputs: ["dateSelect", "navigate", "closed"], exportAs: ["ngbDatepicker"] }, { type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], pipes: { "translate": i3.TranslatePipe } });
|
|
1605
|
+
TemplateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: TemplateComponent, selector: "lib-template", inputs: { currentOrg: "currentOrg", editTemplate: "editTemplate", zoneID: "zoneID" }, outputs: { updatedTemplate: "updatedTemplate", createdTemplate: "createdTemplate" }, ngImport: i0, template: "<div class=\"form-container\" *ngIf=\"form\">\n <div>\n <h4>{{ 'Visit Template' | translate }}</h4>\n </div>\n <form (ngSubmit)=\"onSubmit()\" [formGroup]=\"form\">\n <div>\n <div class=\"form-group row\">\n <label class=\"col-sm-4 col-form-label\">{{'Visit Title' | translate}} *</label>\n <div class=\"col-sm-8\">\n <input type=\"text\" class=\"form-control\"\n placeholder=\"Edvard Munch - \u00AB Un po\u00E8me d\u2019amour, de vie et de mort \u00BB\" formControlName=\"title\"\n [ngClass]=\"{'is-invalid' : validatorsService.isControlError(form.controls['title'])|| isFormError(form.controls['title'])} \"\n data-testid=\"form-template-title\" (ngModelChange)=\"onVerifForm()\">\n <div class=\"invalid-feedback\">\n <ngb-alert data-testid=\"form-template-title-invalid\" [dismissible]=\"false\" type=\"danger\" *ngIf=\" validatorsService.isControlError(form.controls['title']) \n || isFormError(form.controls['title'])\">\n {{validatorsService.getError(form.controls['title']) |\n translate}}\n </ngb-alert>\n </div>\n </div>\n </div>\n <div class=\"form-group row\">\n <label class=\"col-sm-4 col-form-label\">{{'Description' | translate}}</label>\n <div class=\"col-sm-8\">\n <textarea class=\"form-control\" formControlName=\"description\" style=\"height:200px\" (ngModelChange)=\"onVerifForm()\"\n [ngClass]=\"{'is-invalid' : validatorsService.isControlError(form.controls['description'])|| isFormError(form.controls['description'])} \"\n data-testid=\"form-template-description\"\n placeholder=\"Cette visite d\u20191h30 vous pr\u00E9sentera les \u0153uvres embl\u00E9matiques du c\u00E9l\u00E8bre peintre norv\u00E9gien Edvard Munch (1863-1944)...\"></textarea>\n <div class=\"invalid-feedback\">\n <ngb-alert data-testid=\"form-template-description-invalid\" [dismissible]=\"false\" type=\"danger\"\n *ngIf=\" validatorsService.isControlError(form.controls['description']) \n || isFormError(form.controls['description'])\">\n {{validatorsService.getError(form.controls['description']) |\n translate}}\n </ngb-alert>\n </div>\n </div>\n </div>\n\n <div class=\"form-group row\">\n <label class=\"col-sm-4 col-form-label\">{{'Language' | translate}}</label>\n <div class=\"col-sm-8\">\n <select class=\"form-control\" formControlName=\"locale\">\n <option [ngValue]=\"null\">{{'Not applicable' | translate}}</option>\n <option *ngFor=\"let locale of locales\" [ngValue]=\"locale\">\n {{ locale }}\n </option>\n </select>\n </div>\n </div>\n\n <div class=\"form-group row\">\n <label class=\"col-sm-4 col-form-label\">{{'Level' | translate}}*</label>\n <div class=\"col-sm-8\">\n <select class=\"form-control\" formControlName=\"level\">\n <option *ngFor=\"let level of availableLevels\" [ngValue]=\"level\">\n {{ level }}\n </option>\n </select>\n </div>\n </div>\n\n <div class=\"form-group row\">\n <label class=\"col-sm-4 col-form-label\">{{ 'Authorized location' | translate }}*</label>\n <div class=\"col-sm-8\" *ngIf=\"availableSpaces && !inputZone\">\n <select class=\"form-control\" formControlName=\"space\" (change)=\"onSpaceClick()\" (ngModelChange)=\"onVerifForm()\"\n data-testid=\"form-template-space\"\n [ngClass]=\"{'is-invalid' : validatorsService.isControlError(form.controls['space'])|| isFormError(form.controls['space'])} \">\n <option *ngFor=\"let space of availableSpaces\" [ngValue]=\"space.id\">\n {{ space.name }}\n </option>\n </select>\n <div class=\"invalid-feedback\">\n <ngb-alert data-testid=\"form-template-space-invalid\" [dismissible]=\"false\" type=\"danger\" *ngIf=\" validatorsService.isControlError(form.controls['space']) \n || isFormError(form.controls['space'])\">\n {{validatorsService.getError(form.controls['space']) |\n translate}}\n </ngb-alert>\n </div>\n </div>\n <div class=\"col-sm-8\" *ngIf=\"!availableSpaces\">\n {{ 'No locations available' | translate}}\n </div>\n <div class=\"col-sm-8\" *ngIf=\"inputZone\">\n <input type=\"text\" class=\"form-control\" [value]=\"inputZone.space.name\" disabled>\n </div>\n </div>\n\n <div class=\"form-group row\">\n <label class=\"col-sm-4 col-form-label\">{{ 'Authorized zone' | translate }}*</label>\n <div class=\"col-sm-8\" *ngIf=\"zonesForSpace && zonesForSpace.length > 0 && !inputZone\">\n <select class=\"form-control\" required formControlName=\"zone\" (ngModelChange)=\"onVerifForm()\"\n [ngClass]=\"{'is-invalid' : validatorsService.isControlError(form.controls['zone'])|| isFormError(form.controls['zone'])} \"\n data-testid=\"form-template-zone\">\n <option *ngFor=\"let zone of zonesForSpace\" [ngValue]=\"zone.id\">\n {{ zone.name }}\n </option>\n </select>\n <div class=\"invalid-feedback\">\n <ngb-alert data-testid=\"form-template-zone-invalid\" [dismissible]=\"false\" type=\"danger\" *ngIf=\" validatorsService.isControlError(form.controls['zone']) \n || isFormError(form.controls['zone'])\">\n {{validatorsService.getError(form.controls['zone']) |\n translate}}\n </ngb-alert>\n </div>\n </div>\n <div class=\"col-sm-8\" *ngIf=\"zonesForSpace && zonesForSpace.length === 0 && !inputZone\">\n <p class=\"warning col-form-label\">{{\"No Museum Zones found for this location\"| translate}}</p>\n </div>\n <div class=\"col-sm-8\" *ngIf=\"inputZone\">\n <input type=\"text\" class=\"form-control\" [value]=\"inputZone.name\" disabled>\n </div>\n </div>\n\n <div class=\"form-group row\">\n <label class=\"col-sm-4 col-form-label\">{{'Hashtags' | translate}}</label>\n <div class=\"col-sm-8\" *ngIf=\"spaceID.value\">\n <p class=\"keywordsRules\" *ngIf=\"availableHashtags.length > 0\">{{'Available hashtags' | translate}}\n </p>\n <p class=\"keywordsRules\" *ngIf=\"availableHashtags.length === 0\">\n {{'No hashtags created for this location' | translate}} </p>\n <div *ngIf=\"availableHashtags.length > 0\">\n <ul class=\"keywordsDisplay no-border\">\n <div class=\"keywordsdisplayContainer\">\n <li [class]=\"addedHashtags.includes(hashtag) ? 'keywordsItem added' : 'keywordsItem'\"\n *ngFor=\"let hashtag of availableHashtags\" (click)=\"onHashtagClick(hashtag)\"\n style=\"cursor: pointer;\"\n ngbTooltip=\"{{addedHashtags.includes(hashtag) ? ('Remove'|translate) : ('Add'|translate) }}\">\n {{hashtag.name}}</li>\n </div>\n </ul>\n <p class=\"keywordsRules\">{{'Added hashtags' | translate}} </p>\n <ul class=\"keywordsDisplay\">\n <div class=\"keywordsdisplayContainer\" *ngIf=\"addedHashtags.length> 0\">\n <li class=\"keywordsItem\" *ngFor=\"let hashtag of addedHashtags\">{{ hashtag.name }}</li>\n </div>\n </ul>\n </div>\n </div>\n <div class=\"col-sm-8\" *ngIf=\"!spaceID.value\">\n <p class=\"keywordsRules\">{{'You need to choose the location first' | translate}} </p>\n </div>\n </div>\n\n <div class=\"form-group row\">\n <label class=\"col-sm-4 col-form-label\">{{'Start Date' | translate}} *</label>\n <div class=\"input-group col-sm-8\">\n <input class=\"form-control\" placeholder=\"dd/mm/yyyy\" formControlName=\"startDate\" ngbDatepicker\n data-testid=\"form-template-startDate\" #d1=\"ngbDatepicker\" (ngModelChange)=\"onVerifDate();onVerifForm()\"\n [ngClass]=\"{'is-invalid' : validatorsService.isControlError(form.controls['startDate'])|| isFormError(form.controls['startDate'])|| dateError} \">\n <div class=\"input-group-append\">\n <button class=\"btn btn-outline-secondary calendar\" (click)=\"d1.toggle()\" type=\"button\"></button>\n </div>\n <div class=\"invalid-feedback\">\n <ngb-alert data-testid=\"form-template-startDate-invalid\" [dismissible]=\"false\" type=\"danger\"\n *ngIf=\" validatorsService.isControlError(form.controls['startDate']) \n || isFormError(form.controls['startDate'])\">\n {{validatorsService.getError(form.controls['startDate']) |\n translate}}\n </ngb-alert>\n\n <ngb-alert data-testid=\"form-template-startDate-invalid-verif\" [dismissible]=\"false\" type=\"danger\"\n *ngIf=\"startDateInvalid\">\n {{'errorForm.date_invalid' | translate}}\n </ngb-alert>\n\n <ngb-alert data-testid=\"form-template-startDate-invalid-verif\" [dismissible]=\"false\"\n type=\"danger\" *ngIf=\"dateError\">\n {{'errorForm.date_start_end' | translate}}\n </ngb-alert>\n\n </div>\n </div>\n </div>\n\n <div class=\"form-group row\">\n <label class=\"col-sm-4 col-form-label\">{{'Start Time' | translate}}</label>\n <div class=\"input-group col-sm-8\">\n <ngb-timepicker [(ngModel)]=\"missionTimeStart\" [ngModelOptions]=\"{standalone: true}\"\n (ngModelChange)=\"onVerifDate();onVerifForm()\">\n </ngb-timepicker>\n </div>\n </div>\n\n <div class=\"form-group row\">\n <label class=\"col-sm-4 col-form-label\">{{'End Date' | translate}} *</label>\n <div class=\"input-group col-sm-8\">\n <input class=\"form-control\" placeholder=\"dd/mm/yyyy\" formControlName=\"endDate\" ngbDatepicker\n #d2=\"ngbDatepicker\" data-testid=\"form-template-endDate\" (ngModelChange)=\"onVerifDate();onVerifForm()\"\n [ngClass]=\"{'is-invalid' : validatorsService.isControlError(form.controls['endDate'])|| isFormError(form.controls['endDate'])|| dateError} \">\n <div class=\"input-group-append\">\n <button class=\"btn btn-outline-secondary calendar\" (click)=\"d2.toggle()\" type=\"button\"></button>\n </div>\n <div class=\"invalid-feedback\">\n <ngb-alert data-testid=\"form-template-endDate-invalid\" [dismissible]=\"false\" type=\"danger\"\n *ngIf=\" validatorsService.isControlError(form.controls['endDate']) || isFormError(form.controls['endDate'])\">\n {{validatorsService.getError(form.controls['endDate']) |\n translate}}\n </ngb-alert>\n\n <ngb-alert data-testid=\"form-template-endDate-invalid-verif\" [dismissible]=\"false\" type=\"danger\"\n *ngIf=\"endDateInvalid\">\n {{'errorForm.date_invalid' | translate}}\n </ngb-alert>\n\n <ngb-alert data-testid=\"form-template-endDate-invalid-verif\" [dismissible]=\"false\" type=\"danger\"\n *ngIf=\"dateError\">\n {{'errorForm.date_end_start' |\n translate}}\n </ngb-alert>\n </div>\n </div>\n </div>\n\n <div class=\"form-group row\">\n <label class=\"col-sm-4 col-form-label\">{{'End Time' | translate}}</label>\n <div class=\"input-group col-sm-8\">\n <ngb-timepicker [(ngModel)]=\"missionTimeEnd\" [ngModelOptions]=\"{standalone: true}\"\n (ngModelChange)=\"onVerifDate();onVerifForm()\"></ngb-timepicker>\n </div>\n </div>\n\n </div>\n <div class=\"btn-control-div action-button-container\">\n <button type=\"submit\" class=\"btn btn-outline-primary rounded-pill action-button\"\n [ngClass]=\"{'is-invalid' : errorForm }\" [disabled]=\"this.working \"\n data-testid=\"form-template-submit-btn\">{{'Save' |\n translate}}</button>\n <button type=\"button\" (click)=\"onCancel()\" [disabled]=\"this.working\" data-testid=\"form-template-cancel-btn\"\n class=\"btn btn-outline-primary rounded-pill action-button\">{{'Cancel' | translate}}</button>\n </div>\n <div class=\"invalid-feedback\" *ngIf=\"errorForm\">\n <ngb-alert data-testid=\"form-template-invalid\" [dismissible]=\"false\" type=\"danger\">\n {{'errorForm.infoBtn' |translate}}\n </ngb-alert>\n </div>\n\n </form>\n</div>", styles: [".form-container{margin:2rem 0rem}.form-container .btn-control-div .btn{width:8rem}.warning{margin:0;color:red}.keywordsDisplay{min-height:40px}.keywordsRules{margin-bottom:2px}.form-group{margin:1.5rem 0}label.col-sm-4.col-form-label{width:200px;min-width:200px}.action-button-container{display:flex;justify-content:space-evenly}.action-button-container .action-button{width:145px!important}\n"], components: [{ type: i4.NgbAlert, selector: "ngb-alert", inputs: ["animation", "dismissible", "type"], outputs: ["closed"], exportAs: ["ngbAlert"] }, { type: i4.NgbTimepicker, selector: "ngb-timepicker", inputs: ["meridian", "spinners", "seconds", "hourStep", "minuteStep", "secondStep", "readonlyInputs", "size"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i1$1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { type: i1$1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i1$1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i4.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "triggers", "container", "disableTooltip", "tooltipClass", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { type: i4.NgbInputDatepicker, selector: "input[ngbDatepicker]", inputs: ["autoClose", "datepickerClass", "dayTemplate", "dayTemplateData", "displayMonths", "firstDayOfWeek", "footerTemplate", "markDisabled", "minDate", "maxDate", "navigation", "outsideDays", "placement", "restoreFocus", "showWeekNumbers", "startDate", "container", "positionTarget", "weekdays", "disabled"], outputs: ["dateSelect", "navigate", "closed"], exportAs: ["ngbDatepicker"] }, { type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], pipes: { "translate": i3.TranslatePipe } });
|
|
1606
1606
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: TemplateComponent, decorators: [{
|
|
1607
1607
|
type: Component,
|
|
1608
|
-
args: [{ selector: 'lib-template', template: "<div class=\"form-container\" *ngIf=\"form\">\r\n <div>\r\n <h4>{{ 'Visit Template' | translate }}</h4>\r\n </div>\r\n <form (ngSubmit)=\"onSubmit()\" [formGroup]=\"form\">\r\n <div>\r\n <div class=\"form-group row\">\r\n <label class=\"col-sm-4 col-form-label\">{{'Visit Title' | translate}} *</label>\r\n <div class=\"col-sm-8\">\r\n <input type=\"text\" class=\"form-control\"\r\n placeholder=\"Edvard Munch - \u00AB Un po\u00E8me d\u2019amour, de vie et de mort \u00BB\" formControlName=\"title\"\r\n [ngClass]=\"{'is-invalid' : validatorsService.isControlError(form.controls['title'])|| isFormError(form.controls['title'])} \"\r\n data-testid=\"form-template-title\" (ngModelChange)=\"onVerifForm()\">\r\n <div class=\"invalid-feedback\">\r\n <ngb-alert data-testid=\"form-template-title-invalid\" [dismissible]=\"false\" type=\"danger\" *ngIf=\" validatorsService.isControlError(form.controls['title']) \r\n || isFormError(form.controls['title'])\">\r\n {{validatorsService.getError(form.controls['title']) |\r\n translate}}\r\n </ngb-alert>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group row\">\r\n <label class=\"col-sm-4 col-form-label\">{{'Description' | translate}}</label>\r\n <div class=\"col-sm-8\">\r\n <textarea class=\"form-control\" formControlName=\"description\" style=\"height:200px\" (ngModelChange)=\"onVerifForm()\"\r\n [ngClass]=\"{'is-invalid' : validatorsService.isControlError(form.controls['description'])|| isFormError(form.controls['description'])} \"\r\n data-testid=\"form-template-description\"\r\n placeholder=\"Cette visite d\u20191h30 vous pr\u00E9sentera les \u0153uvres embl\u00E9matiques du c\u00E9l\u00E8bre peintre norv\u00E9gien Edvard Munch (1863-1944)...\"></textarea>\r\n <div class=\"invalid-feedback\">\r\n <ngb-alert data-testid=\"form-template-description-invalid\" [dismissible]=\"false\" type=\"danger\"\r\n *ngIf=\" validatorsService.isControlError(form.controls['description']) \r\n || isFormError(form.controls['description'])\">\r\n {{validatorsService.getError(form.controls['description']) |\r\n translate}}\r\n </ngb-alert>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group row\">\r\n <label class=\"col-sm-4 col-form-label\">{{'Language' | translate}}</label>\r\n <div class=\"col-sm-8\">\r\n <select class=\"form-control\" formControlName=\"locale\">\r\n <option [ngValue]=\"null\">{{'Not applicable' | translate}}</option>\r\n <option *ngFor=\"let locale of locales\" [ngValue]=\"locale\">\r\n {{ locale }}\r\n </option>\r\n </select>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group row\">\r\n <label class=\"col-sm-4 col-form-label\">{{'Level' | translate}}*</label>\r\n <div class=\"col-sm-8\">\r\n <select class=\"form-control\" formControlName=\"level\">\r\n <option *ngFor=\"let level of availableLevels\" [ngValue]=\"level\">\r\n {{ level }}\r\n </option>\r\n </select>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group row\">\r\n <label class=\"col-sm-4 col-form-label\">{{ 'Authorized location' | translate }}*</label>\r\n <div class=\"col-sm-8\" *ngIf=\"availableSpaces && !inputZone\">\r\n <select class=\"form-control\" formControlName=\"space\" (change)=\"onSpaceClick()\" (ngModelChange)=\"onVerifForm()\"\r\n data-testid=\"form-template-space\"\r\n [ngClass]=\"{'is-invalid' : validatorsService.isControlError(form.controls['space'])|| isFormError(form.controls['space'])} \">\r\n <option *ngFor=\"let space of availableSpaces\" [ngValue]=\"space.id\">\r\n {{ space.name }}\r\n </option>\r\n </select>\r\n <div class=\"invalid-feedback\">\r\n <ngb-alert data-testid=\"form-template-space-invalid\" [dismissible]=\"false\" type=\"danger\" *ngIf=\" validatorsService.isControlError(form.controls['space']) \r\n || isFormError(form.controls['space'])\">\r\n {{validatorsService.getError(form.controls['space']) |\r\n translate}}\r\n </ngb-alert>\r\n </div>\r\n </div>\r\n <div class=\"col-sm-8\" *ngIf=\"!availableSpaces\">\r\n {{ 'No locations available' | translate}}\r\n </div>\r\n <div class=\"col-sm-8\" *ngIf=\"inputZone\">\r\n <input type=\"text\" class=\"form-control\" [value]=\"inputZone.space.name\" disabled>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group row\">\r\n <label class=\"col-sm-4 col-form-label\">{{ 'Authorized zone' | translate }}*</label>\r\n <div class=\"col-sm-8\" *ngIf=\"zonesForSpace && zonesForSpace.length > 0 && !inputZone\">\r\n <select class=\"form-control\" required formControlName=\"zone\" (ngModelChange)=\"onVerifForm()\"\r\n [ngClass]=\"{'is-invalid' : validatorsService.isControlError(form.controls['zone'])|| isFormError(form.controls['zone'])} \"\r\n data-testid=\"form-template-zone\">\r\n <option *ngFor=\"let zone of zonesForSpace\" [ngValue]=\"zone.id\">\r\n {{ zone.name }}\r\n </option>\r\n </select>\r\n <div class=\"invalid-feedback\">\r\n <ngb-alert data-testid=\"form-template-zone-invalid\" [dismissible]=\"false\" type=\"danger\" *ngIf=\" validatorsService.isControlError(form.controls['zone']) \r\n || isFormError(form.controls['zone'])\">\r\n {{validatorsService.getError(form.controls['zone']) |\r\n translate}}\r\n </ngb-alert>\r\n </div>\r\n </div>\r\n <div class=\"col-sm-8\" *ngIf=\"zonesForSpace && zonesForSpace.length === 0 && !inputZone\">\r\n <p class=\"warning col-form-label\">{{\"No Museum Zones found for this location\"| translate}}</p>\r\n </div>\r\n <div class=\"col-sm-8\" *ngIf=\"inputZone\">\r\n <input type=\"text\" class=\"form-control\" [value]=\"inputZone.name\" disabled>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group row\">\r\n <label class=\"col-sm-4 col-form-label\">{{'Hashtags' | translate}}</label>\r\n <div class=\"col-sm-8\" *ngIf=\"spaceID.value\">\r\n <p class=\"keywordsRules\" *ngIf=\"availableHashtags.length > 0\">{{'Available hashtags' | translate}}\r\n </p>\r\n <p class=\"keywordsRules\" *ngIf=\"availableHashtags.length === 0\">\r\n {{'No hashtags created for this location' | translate}} </p>\r\n <div *ngIf=\"availableHashtags.length > 0\">\r\n <ul class=\"keywordsDisplay no-border\">\r\n <div class=\"keywordsdisplayContainer\">\r\n <li [class]=\"addedHashtags.includes(hashtag) ? 'keywordsItem added' : 'keywordsItem'\"\r\n *ngFor=\"let hashtag of availableHashtags\" (click)=\"onHashtagClick(hashtag)\"\r\n style=\"cursor: pointer;\"\r\n ngbTooltip=\"{{addedHashtags.includes(hashtag) ? ('Remove'|translate) : ('Add'|translate) }}\">\r\n {{hashtag.name}}</li>\r\n </div>\r\n </ul>\r\n <p class=\"keywordsRules\">{{'Added hashtags' | translate}} </p>\r\n <ul class=\"keywordsDisplay\">\r\n <div class=\"keywordsdisplayContainer\" *ngIf=\"addedHashtags.length> 0\">\r\n <li class=\"keywordsItem\" *ngFor=\"let hashtag of addedHashtags\">{{ hashtag.name }}</li>\r\n </div>\r\n </ul>\r\n </div>\r\n </div>\r\n <div class=\"col-sm-8\" *ngIf=\"!spaceID.value\">\r\n <p class=\"keywordsRules\">{{'You need to choose the location first' | translate}} </p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group row\">\r\n <label class=\"col-sm-4 col-form-label\">{{'Start Date' | translate}} *</label>\r\n <div class=\"input-group col-sm-8\">\r\n <input class=\"form-control\" placeholder=\"dd/mm/yyyy\" formControlName=\"startDate\" ngbDatepicker\r\n data-testid=\"form-template-startDate\" #d1=\"ngbDatepicker\" (ngModelChange)=\"onVerifDate();onVerifForm()\"\r\n [ngClass]=\"{'is-invalid' : validatorsService.isControlError(form.controls['startDate'])|| isFormError(form.controls['startDate'])|| dateError} \">\r\n <div class=\"input-group-append\">\r\n <button class=\"btn btn-outline-secondary calendar\" (click)=\"d1.toggle()\" type=\"button\"></button>\r\n </div>\r\n <div class=\"invalid-feedback\">\r\n <ngb-alert data-testid=\"form-template-startDate-invalid\" [dismissible]=\"false\" type=\"danger\"\r\n *ngIf=\" validatorsService.isControlError(form.controls['startDate']) \r\n || isFormError(form.controls['startDate'])\">\r\n {{validatorsService.getError(form.controls['startDate']) |\r\n translate}}\r\n </ngb-alert>\r\n\r\n <ngb-alert data-testid=\"form-template-startDate-invalid-verif\" [dismissible]=\"false\" type=\"danger\"\r\n *ngIf=\"startDateInvalid\">\r\n {{'errorForm.date_invalid' | translate}}\r\n </ngb-alert>\r\n\r\n <ngb-alert data-testid=\"form-template-startDate-invalid-verif\" [dismissible]=\"false\"\r\n type=\"danger\" *ngIf=\"dateError\">\r\n {{'errorForm.date_start_end' | translate}}\r\n </ngb-alert>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group row\">\r\n <label class=\"col-sm-4 col-form-label\">{{'Start Time' | translate}}</label>\r\n <div class=\"input-group col-sm-8\">\r\n <ngb-timepicker [(ngModel)]=\"missionTimeStart\" [ngModelOptions]=\"{standalone: true}\"\r\n (ngModelChange)=\"onVerifDate();onVerifForm()\">\r\n </ngb-timepicker>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group row\">\r\n <label class=\"col-sm-4 col-form-label\">{{'End Date' | translate}} *</label>\r\n <div class=\"input-group col-sm-8\">\r\n <input class=\"form-control\" placeholder=\"dd/mm/yyyy\" formControlName=\"endDate\" ngbDatepicker\r\n #d2=\"ngbDatepicker\" data-testid=\"form-template-endDate\" (ngModelChange)=\"onVerifDate();onVerifForm()\"\r\n [ngClass]=\"{'is-invalid' : validatorsService.isControlError(form.controls['endDate'])|| isFormError(form.controls['endDate'])|| dateError} \">\r\n <div class=\"input-group-append\">\r\n <button class=\"btn btn-outline-secondary calendar\" (click)=\"d2.toggle()\" type=\"button\"></button>\r\n </div>\r\n <div class=\"invalid-feedback\">\r\n <ngb-alert data-testid=\"form-template-endDate-invalid\" [dismissible]=\"false\" type=\"danger\"\r\n *ngIf=\" validatorsService.isControlError(form.controls['endDate']) || isFormError(form.controls['endDate'])\">\r\n {{validatorsService.getError(form.controls['endDate']) |\r\n translate}}\r\n </ngb-alert>\r\n\r\n <ngb-alert data-testid=\"form-template-endDate-invalid-verif\" [dismissible]=\"false\" type=\"danger\"\r\n *ngIf=\"endDateInvalid\">\r\n {{'errorForm.date_invalid' | translate}}\r\n </ngb-alert>\r\n\r\n <ngb-alert data-testid=\"form-template-endDate-invalid-verif\" [dismissible]=\"false\" type=\"danger\"\r\n *ngIf=\"dateError\">\r\n {{'errorForm.date_end_start' |\r\n translate}}\r\n </ngb-alert>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group row\">\r\n <label class=\"col-sm-4 col-form-label\">{{'End Time' | translate}}</label>\r\n <div class=\"input-group col-sm-8\">\r\n <ngb-timepicker [(ngModel)]=\"missionTimeEnd\" [ngModelOptions]=\"{standalone: true}\"\r\n (ngModelChange)=\"onVerifDate();onVerifForm()\"></ngb-timepicker>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <div class=\"btn-control-div action-button-container\">\r\n <button type=\"submit\" class=\"btn btn-outline-primary rounded-pill action-button\"\r\n [ngClass]=\"{'is-invalid' : errorForm }\" [disabled]=\"this.working \"\r\n data-testid=\"form-template-submit-btn\">{{'Save' |\r\n translate}}</button>\r\n <button type=\"button\" (click)=\"onCancel()\" [disabled]=\"this.working\" data-testid=\"form-template-cancel-btn\"\r\n class=\"btn btn-outline-primary rounded-pill action-button\">{{'Cancel' | translate}}</button>\r\n </div>\r\n <div class=\"invalid-feedback\" *ngIf=\"errorForm\">\r\n <ngb-alert data-testid=\"form-template-invalid\" [dismissible]=\"false\" type=\"danger\">\r\n {{'errorForm.infoBtn' |translate}}\r\n </ngb-alert>\r\n </div>\r\n\r\n </form>\r\n</div>", styles: [".form-container{margin:2rem 0rem}.form-container .btn-control-div .btn{width:8rem}.warning{margin:0;color:red}.keywordsDisplay{min-height:40px}.keywordsRules{margin-bottom:2px}.form-group{margin:1.5rem 0}label.col-sm-4.col-form-label{width:200px;min-width:200px}.action-button-container{display:flex;justify-content:space-evenly}.action-button-container .action-button{width:145px!important}\n"] }]
|
|
1608
|
+
args: [{ selector: 'lib-template', template: "<div class=\"form-container\" *ngIf=\"form\">\n <div>\n <h4>{{ 'Visit Template' | translate }}</h4>\n </div>\n <form (ngSubmit)=\"onSubmit()\" [formGroup]=\"form\">\n <div>\n <div class=\"form-group row\">\n <label class=\"col-sm-4 col-form-label\">{{'Visit Title' | translate}} *</label>\n <div class=\"col-sm-8\">\n <input type=\"text\" class=\"form-control\"\n placeholder=\"Edvard Munch - \u00AB Un po\u00E8me d\u2019amour, de vie et de mort \u00BB\" formControlName=\"title\"\n [ngClass]=\"{'is-invalid' : validatorsService.isControlError(form.controls['title'])|| isFormError(form.controls['title'])} \"\n data-testid=\"form-template-title\" (ngModelChange)=\"onVerifForm()\">\n <div class=\"invalid-feedback\">\n <ngb-alert data-testid=\"form-template-title-invalid\" [dismissible]=\"false\" type=\"danger\" *ngIf=\" validatorsService.isControlError(form.controls['title']) \n || isFormError(form.controls['title'])\">\n {{validatorsService.getError(form.controls['title']) |\n translate}}\n </ngb-alert>\n </div>\n </div>\n </div>\n <div class=\"form-group row\">\n <label class=\"col-sm-4 col-form-label\">{{'Description' | translate}}</label>\n <div class=\"col-sm-8\">\n <textarea class=\"form-control\" formControlName=\"description\" style=\"height:200px\" (ngModelChange)=\"onVerifForm()\"\n [ngClass]=\"{'is-invalid' : validatorsService.isControlError(form.controls['description'])|| isFormError(form.controls['description'])} \"\n data-testid=\"form-template-description\"\n placeholder=\"Cette visite d\u20191h30 vous pr\u00E9sentera les \u0153uvres embl\u00E9matiques du c\u00E9l\u00E8bre peintre norv\u00E9gien Edvard Munch (1863-1944)...\"></textarea>\n <div class=\"invalid-feedback\">\n <ngb-alert data-testid=\"form-template-description-invalid\" [dismissible]=\"false\" type=\"danger\"\n *ngIf=\" validatorsService.isControlError(form.controls['description']) \n || isFormError(form.controls['description'])\">\n {{validatorsService.getError(form.controls['description']) |\n translate}}\n </ngb-alert>\n </div>\n </div>\n </div>\n\n <div class=\"form-group row\">\n <label class=\"col-sm-4 col-form-label\">{{'Language' | translate}}</label>\n <div class=\"col-sm-8\">\n <select class=\"form-control\" formControlName=\"locale\">\n <option [ngValue]=\"null\">{{'Not applicable' | translate}}</option>\n <option *ngFor=\"let locale of locales\" [ngValue]=\"locale\">\n {{ locale }}\n </option>\n </select>\n </div>\n </div>\n\n <div class=\"form-group row\">\n <label class=\"col-sm-4 col-form-label\">{{'Level' | translate}}*</label>\n <div class=\"col-sm-8\">\n <select class=\"form-control\" formControlName=\"level\">\n <option *ngFor=\"let level of availableLevels\" [ngValue]=\"level\">\n {{ level }}\n </option>\n </select>\n </div>\n </div>\n\n <div class=\"form-group row\">\n <label class=\"col-sm-4 col-form-label\">{{ 'Authorized location' | translate }}*</label>\n <div class=\"col-sm-8\" *ngIf=\"availableSpaces && !inputZone\">\n <select class=\"form-control\" formControlName=\"space\" (change)=\"onSpaceClick()\" (ngModelChange)=\"onVerifForm()\"\n data-testid=\"form-template-space\"\n [ngClass]=\"{'is-invalid' : validatorsService.isControlError(form.controls['space'])|| isFormError(form.controls['space'])} \">\n <option *ngFor=\"let space of availableSpaces\" [ngValue]=\"space.id\">\n {{ space.name }}\n </option>\n </select>\n <div class=\"invalid-feedback\">\n <ngb-alert data-testid=\"form-template-space-invalid\" [dismissible]=\"false\" type=\"danger\" *ngIf=\" validatorsService.isControlError(form.controls['space']) \n || isFormError(form.controls['space'])\">\n {{validatorsService.getError(form.controls['space']) |\n translate}}\n </ngb-alert>\n </div>\n </div>\n <div class=\"col-sm-8\" *ngIf=\"!availableSpaces\">\n {{ 'No locations available' | translate}}\n </div>\n <div class=\"col-sm-8\" *ngIf=\"inputZone\">\n <input type=\"text\" class=\"form-control\" [value]=\"inputZone.space.name\" disabled>\n </div>\n </div>\n\n <div class=\"form-group row\">\n <label class=\"col-sm-4 col-form-label\">{{ 'Authorized zone' | translate }}*</label>\n <div class=\"col-sm-8\" *ngIf=\"zonesForSpace && zonesForSpace.length > 0 && !inputZone\">\n <select class=\"form-control\" required formControlName=\"zone\" (ngModelChange)=\"onVerifForm()\"\n [ngClass]=\"{'is-invalid' : validatorsService.isControlError(form.controls['zone'])|| isFormError(form.controls['zone'])} \"\n data-testid=\"form-template-zone\">\n <option *ngFor=\"let zone of zonesForSpace\" [ngValue]=\"zone.id\">\n {{ zone.name }}\n </option>\n </select>\n <div class=\"invalid-feedback\">\n <ngb-alert data-testid=\"form-template-zone-invalid\" [dismissible]=\"false\" type=\"danger\" *ngIf=\" validatorsService.isControlError(form.controls['zone']) \n || isFormError(form.controls['zone'])\">\n {{validatorsService.getError(form.controls['zone']) |\n translate}}\n </ngb-alert>\n </div>\n </div>\n <div class=\"col-sm-8\" *ngIf=\"zonesForSpace && zonesForSpace.length === 0 && !inputZone\">\n <p class=\"warning col-form-label\">{{\"No Museum Zones found for this location\"| translate}}</p>\n </div>\n <div class=\"col-sm-8\" *ngIf=\"inputZone\">\n <input type=\"text\" class=\"form-control\" [value]=\"inputZone.name\" disabled>\n </div>\n </div>\n\n <div class=\"form-group row\">\n <label class=\"col-sm-4 col-form-label\">{{'Hashtags' | translate}}</label>\n <div class=\"col-sm-8\" *ngIf=\"spaceID.value\">\n <p class=\"keywordsRules\" *ngIf=\"availableHashtags.length > 0\">{{'Available hashtags' | translate}}\n </p>\n <p class=\"keywordsRules\" *ngIf=\"availableHashtags.length === 0\">\n {{'No hashtags created for this location' | translate}} </p>\n <div *ngIf=\"availableHashtags.length > 0\">\n <ul class=\"keywordsDisplay no-border\">\n <div class=\"keywordsdisplayContainer\">\n <li [class]=\"addedHashtags.includes(hashtag) ? 'keywordsItem added' : 'keywordsItem'\"\n *ngFor=\"let hashtag of availableHashtags\" (click)=\"onHashtagClick(hashtag)\"\n style=\"cursor: pointer;\"\n ngbTooltip=\"{{addedHashtags.includes(hashtag) ? ('Remove'|translate) : ('Add'|translate) }}\">\n {{hashtag.name}}</li>\n </div>\n </ul>\n <p class=\"keywordsRules\">{{'Added hashtags' | translate}} </p>\n <ul class=\"keywordsDisplay\">\n <div class=\"keywordsdisplayContainer\" *ngIf=\"addedHashtags.length> 0\">\n <li class=\"keywordsItem\" *ngFor=\"let hashtag of addedHashtags\">{{ hashtag.name }}</li>\n </div>\n </ul>\n </div>\n </div>\n <div class=\"col-sm-8\" *ngIf=\"!spaceID.value\">\n <p class=\"keywordsRules\">{{'You need to choose the location first' | translate}} </p>\n </div>\n </div>\n\n <div class=\"form-group row\">\n <label class=\"col-sm-4 col-form-label\">{{'Start Date' | translate}} *</label>\n <div class=\"input-group col-sm-8\">\n <input class=\"form-control\" placeholder=\"dd/mm/yyyy\" formControlName=\"startDate\" ngbDatepicker\n data-testid=\"form-template-startDate\" #d1=\"ngbDatepicker\" (ngModelChange)=\"onVerifDate();onVerifForm()\"\n [ngClass]=\"{'is-invalid' : validatorsService.isControlError(form.controls['startDate'])|| isFormError(form.controls['startDate'])|| dateError} \">\n <div class=\"input-group-append\">\n <button class=\"btn btn-outline-secondary calendar\" (click)=\"d1.toggle()\" type=\"button\"></button>\n </div>\n <div class=\"invalid-feedback\">\n <ngb-alert data-testid=\"form-template-startDate-invalid\" [dismissible]=\"false\" type=\"danger\"\n *ngIf=\" validatorsService.isControlError(form.controls['startDate']) \n || isFormError(form.controls['startDate'])\">\n {{validatorsService.getError(form.controls['startDate']) |\n translate}}\n </ngb-alert>\n\n <ngb-alert data-testid=\"form-template-startDate-invalid-verif\" [dismissible]=\"false\" type=\"danger\"\n *ngIf=\"startDateInvalid\">\n {{'errorForm.date_invalid' | translate}}\n </ngb-alert>\n\n <ngb-alert data-testid=\"form-template-startDate-invalid-verif\" [dismissible]=\"false\"\n type=\"danger\" *ngIf=\"dateError\">\n {{'errorForm.date_start_end' | translate}}\n </ngb-alert>\n\n </div>\n </div>\n </div>\n\n <div class=\"form-group row\">\n <label class=\"col-sm-4 col-form-label\">{{'Start Time' | translate}}</label>\n <div class=\"input-group col-sm-8\">\n <ngb-timepicker [(ngModel)]=\"missionTimeStart\" [ngModelOptions]=\"{standalone: true}\"\n (ngModelChange)=\"onVerifDate();onVerifForm()\">\n </ngb-timepicker>\n </div>\n </div>\n\n <div class=\"form-group row\">\n <label class=\"col-sm-4 col-form-label\">{{'End Date' | translate}} *</label>\n <div class=\"input-group col-sm-8\">\n <input class=\"form-control\" placeholder=\"dd/mm/yyyy\" formControlName=\"endDate\" ngbDatepicker\n #d2=\"ngbDatepicker\" data-testid=\"form-template-endDate\" (ngModelChange)=\"onVerifDate();onVerifForm()\"\n [ngClass]=\"{'is-invalid' : validatorsService.isControlError(form.controls['endDate'])|| isFormError(form.controls['endDate'])|| dateError} \">\n <div class=\"input-group-append\">\n <button class=\"btn btn-outline-secondary calendar\" (click)=\"d2.toggle()\" type=\"button\"></button>\n </div>\n <div class=\"invalid-feedback\">\n <ngb-alert data-testid=\"form-template-endDate-invalid\" [dismissible]=\"false\" type=\"danger\"\n *ngIf=\" validatorsService.isControlError(form.controls['endDate']) || isFormError(form.controls['endDate'])\">\n {{validatorsService.getError(form.controls['endDate']) |\n translate}}\n </ngb-alert>\n\n <ngb-alert data-testid=\"form-template-endDate-invalid-verif\" [dismissible]=\"false\" type=\"danger\"\n *ngIf=\"endDateInvalid\">\n {{'errorForm.date_invalid' | translate}}\n </ngb-alert>\n\n <ngb-alert data-testid=\"form-template-endDate-invalid-verif\" [dismissible]=\"false\" type=\"danger\"\n *ngIf=\"dateError\">\n {{'errorForm.date_end_start' |\n translate}}\n </ngb-alert>\n </div>\n </div>\n </div>\n\n <div class=\"form-group row\">\n <label class=\"col-sm-4 col-form-label\">{{'End Time' | translate}}</label>\n <div class=\"input-group col-sm-8\">\n <ngb-timepicker [(ngModel)]=\"missionTimeEnd\" [ngModelOptions]=\"{standalone: true}\"\n (ngModelChange)=\"onVerifDate();onVerifForm()\"></ngb-timepicker>\n </div>\n </div>\n\n </div>\n <div class=\"btn-control-div action-button-container\">\n <button type=\"submit\" class=\"btn btn-outline-primary rounded-pill action-button\"\n [ngClass]=\"{'is-invalid' : errorForm }\" [disabled]=\"this.working \"\n data-testid=\"form-template-submit-btn\">{{'Save' |\n translate}}</button>\n <button type=\"button\" (click)=\"onCancel()\" [disabled]=\"this.working\" data-testid=\"form-template-cancel-btn\"\n class=\"btn btn-outline-primary rounded-pill action-button\">{{'Cancel' | translate}}</button>\n </div>\n <div class=\"invalid-feedback\" *ngIf=\"errorForm\">\n <ngb-alert data-testid=\"form-template-invalid\" [dismissible]=\"false\" type=\"danger\">\n {{'errorForm.infoBtn' |translate}}\n </ngb-alert>\n </div>\n\n </form>\n</div>", styles: [".form-container{margin:2rem 0rem}.form-container .btn-control-div .btn{width:8rem}.warning{margin:0;color:red}.keywordsDisplay{min-height:40px}.keywordsRules{margin-bottom:2px}.form-group{margin:1.5rem 0}label.col-sm-4.col-form-label{width:200px;min-width:200px}.action-button-container{display:flex;justify-content:space-evenly}.action-button-container .action-button{width:145px!important}\n"] }]
|
|
1609
1609
|
}], ctorParameters: function () { return [{ type: i1$1.FormBuilder }, { type: i1.BaseUserService }, { type: i1.SpaceService }, { type: i1.ZoneService }, { type: i1.HashtagService }, { type: i3.TranslateService }, { type: i1.ValidatorsService }]; }, propDecorators: { currentOrg: [{
|
|
1610
1610
|
type: Input
|
|
1611
1611
|
}], editTemplate: [{
|
|
@@ -1711,10 +1711,10 @@ class CreateBatchComponent {
|
|
|
1711
1711
|
}
|
|
1712
1712
|
}
|
|
1713
1713
|
CreateBatchComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: CreateBatchComponent, deps: [{ token: i1.MissionService }, { token: i1.BaseUserService }, { token: i3.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
|
|
1714
|
-
CreateBatchComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: CreateBatchComponent, selector: "lib-create-batch", inputs: { template: "template" }, outputs: { createdMissions: "createdMissions" }, ngImport: i0, template: "<div>\
|
|
1714
|
+
CreateBatchComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: CreateBatchComponent, selector: "lib-create-batch", inputs: { template: "template" }, outputs: { createdMissions: "createdMissions" }, ngImport: i0, template: "<div>\n <h4>{{'Add email address' | translate}}</h4>\n <div class=\"row\">\n <input class=\"form-control custom-form\" #box (keyup.enter)=\"onAddEmail(box.value); box.value=''\"\n placeholder=\"me@example.com\" data-testid=\"form-user-email\">\n <div class=\"outer_circle\" style='margin-left: 1.1em;'>\n <button id='btn-icon' (click)=\"onAddEmail(box.value); box.value=''\" data-testid=\"form-user-email-btn\"></button>\n </div>\n </div>\n\n <div class=\"row mt-3\">\n <label for=\"file\" class=\"btn btn-label-file rounded-pill\">\n <input type=\"file\" id=\"file\" (change)=\"handleFileInput($event.target)\" />\n {{'Upload from csv' | translate}}</label>\n </div>\n\n <ul *ngIf=\"addedEmails.length > 0\">\n <li class=\"list_item\" *ngFor=\"let mail of addedEmails; index as index\">{{mail}}\n <div class=\"icon-container\" (click)=\"onDelete(index)\">\n <span class=\"iconify\" data-icon=\"mdi:trash-can-outline\"></span>\n </div>\n </li>\n </ul>\n <div class=\"d-flex justify-content-center\" *ngIf=\"working\">\n <lib-loader></lib-loader>\n </div>\n <div class=\"row action-button-container\">\n <button class=\"btn btn-outline-primary rounded-pill mr-2 mt-3 action-button\" data-testid=\"form-user-submit-btn\" (click)=\"onCreateMissions()\">\n {{'Create users' | translate}}</button>\n <button class=\"btn btn-outline-primary rounded-pill mr-2 mt-3 action-button\" data-testid=\"form-user-cancel-btn\" (click)=\"onCancel()\">\n {{'Cancel' | translate}}</button>\n </div>\n\n</div>", styles: ["#btn-icon{width:30px;height:30px;background:url(../../../../assets/icons/plus.svg);border:none;vertical-align:middle}#btn-icon:hover{background:url(../../../../assets/icons/plus-over.svg)}#btn-icon[disabled]:hover{background:url(../../../../assets/icons/plus.svg)}.outer_circle{background-color:#ebebeb;border-radius:50%;width:32px;height:32px;padding:1px;margin-left:5px}.custom-form{width:80%}h4{color:var(--smarterplan-primary)}.pointer{cursor:pointer}.list_item{display:flex;font-size:1.1em}.icon-container{cursor:pointer;margin-left:5px}input[type=file]{display:none}.form-group{margin:1.5rem 0}label.col-sm-4.col-form-label{width:200px;min-width:200px}.action-button-container{display:flex;justify-content:space-evenly}.action-button-container .action-button{width:145px}\n"], components: [{ type: i1.LoaderComponent, selector: "lib-loader", inputs: ["useLogo", "color"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "translate": i3.TranslatePipe } });
|
|
1715
1715
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: CreateBatchComponent, decorators: [{
|
|
1716
1716
|
type: Component,
|
|
1717
|
-
args: [{ selector: 'lib-create-batch', template: "<div>\
|
|
1717
|
+
args: [{ selector: 'lib-create-batch', template: "<div>\n <h4>{{'Add email address' | translate}}</h4>\n <div class=\"row\">\n <input class=\"form-control custom-form\" #box (keyup.enter)=\"onAddEmail(box.value); box.value=''\"\n placeholder=\"me@example.com\" data-testid=\"form-user-email\">\n <div class=\"outer_circle\" style='margin-left: 1.1em;'>\n <button id='btn-icon' (click)=\"onAddEmail(box.value); box.value=''\" data-testid=\"form-user-email-btn\"></button>\n </div>\n </div>\n\n <div class=\"row mt-3\">\n <label for=\"file\" class=\"btn btn-label-file rounded-pill\">\n <input type=\"file\" id=\"file\" (change)=\"handleFileInput($event.target)\" />\n {{'Upload from csv' | translate}}</label>\n </div>\n\n <ul *ngIf=\"addedEmails.length > 0\">\n <li class=\"list_item\" *ngFor=\"let mail of addedEmails; index as index\">{{mail}}\n <div class=\"icon-container\" (click)=\"onDelete(index)\">\n <span class=\"iconify\" data-icon=\"mdi:trash-can-outline\"></span>\n </div>\n </li>\n </ul>\n <div class=\"d-flex justify-content-center\" *ngIf=\"working\">\n <lib-loader></lib-loader>\n </div>\n <div class=\"row action-button-container\">\n <button class=\"btn btn-outline-primary rounded-pill mr-2 mt-3 action-button\" data-testid=\"form-user-submit-btn\" (click)=\"onCreateMissions()\">\n {{'Create users' | translate}}</button>\n <button class=\"btn btn-outline-primary rounded-pill mr-2 mt-3 action-button\" data-testid=\"form-user-cancel-btn\" (click)=\"onCancel()\">\n {{'Cancel' | translate}}</button>\n </div>\n\n</div>", styles: ["#btn-icon{width:30px;height:30px;background:url(../../../../assets/icons/plus.svg);border:none;vertical-align:middle}#btn-icon:hover{background:url(../../../../assets/icons/plus-over.svg)}#btn-icon[disabled]:hover{background:url(../../../../assets/icons/plus.svg)}.outer_circle{background-color:#ebebeb;border-radius:50%;width:32px;height:32px;padding:1px;margin-left:5px}.custom-form{width:80%}h4{color:var(--smarterplan-primary)}.pointer{cursor:pointer}.list_item{display:flex;font-size:1.1em}.icon-container{cursor:pointer;margin-left:5px}input[type=file]{display:none}.form-group{margin:1.5rem 0}label.col-sm-4.col-form-label{width:200px;min-width:200px}.action-button-container{display:flex;justify-content:space-evenly}.action-button-container .action-button{width:145px}\n"] }]
|
|
1718
1718
|
}], ctorParameters: function () { return [{ type: i1.MissionService }, { type: i1.BaseUserService }, { type: i3.TranslateService }]; }, propDecorators: { template: [{
|
|
1719
1719
|
type: Input
|
|
1720
1720
|
}], createdMissions: [{
|
|
@@ -2023,10 +2023,10 @@ class VisitorComponent {
|
|
|
2023
2023
|
}
|
|
2024
2024
|
}
|
|
2025
2025
|
VisitorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: VisitorComponent, deps: [{ token: i1.BaseUserService }, { token: i1.MissionService }, { token: i2.Router }, { token: i3.TranslateService }, { token: i1.SpaceService }, { token: i1.ZoneService }, { token: i4.NgbModal }, { token: i1.TemplateService }], target: i0.ɵɵFactoryTarget.Component });
|
|
2026
|
-
VisitorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: VisitorComponent, selector: "lib-visitor", viewQueries: [{ propertyName: "modal", first: true, predicate: ["deleteUsers"], descendants: true }], ngImport: i0, template: "<div class=\"dashboard-tab\">\r\n <div class=\"header-dashboard-tab\">\r\n <h3>{{'Museum Visitors' | translate}}</h3>\r\n <!-- <app-search-bar [searchable]=\"allZoneTemplatesMap\" objectType=\"TEMPLATE\"\r\n (searchEvent)=\"applyResultsSearchBar($event)\">\r\n </app-search-bar> -->\r\n <hr>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-8 col-lg-7\">\r\n <div class=\"row ml-0 mb-2\">\r\n <h4 class=\"header-small\">{{'Itineraries' | translate}}</h4>\r\n </div>\r\n <div class=\"row ml-0 mb-2\" *ngIf=\"!editing && !creating\">\r\n <button class=\"btn btn-outline-primary rounded-pill ml-3 add-button\" (click)=\"onCreateTemplate()\"\r\n data-testid=\"new-museum-template-btn\">\r\n {{'Create template for new itinerary' | translate}}</button>\r\n </div>\r\n <div class=\"d-flex justify-content-center\" *ngIf=\"loading\">\r\n <lib-loader></lib-loader>\r\n </div>\r\n <div *ngIf=\"!editing && !creating\">\r\n <ul class=\"list-group list-group-flush\" data-testid=\"open-museum-zone-btn\">\r\n <li class=\"list-group-item\" *ngFor=\"let pair of allZoneTemplatesMapFiltered | keyvalue\">\r\n <h4>{{pair.key.name}} <span style=\"font-size:0.8em\"> - {{pair.key.space.name}}</span> </h4>\r\n <div class=\"d-flex justify-content-between align-items-center\"\r\n (click)=\"onToggleMissionsForZone(pair.key.id)\">\r\n <ng-container *ngIf=\"pair.value.length <= 1\">\r\n {{pair.value.length}} {{'visit template found' | translate}}\r\n </ng-container>\r\n <ng-container *ngIf=\"pair.value.length > 1\">\r\n {{pair.value.length}} {{'visit templates found' | translate}}\r\n </ng-container>\r\n <lib-chevron [ngClass]=\"[pair.key.name]\" [conditionShowing]=\"detailsForZones.includes(pair.key.id)\"></lib-chevron>\r\n\r\n </div>\r\n <div *ngIf=\"detailsForZones.includes(pair.key.id)\">\r\n <button class=\"btn btn-outline-primary rounded-pill mt-3 mb-3 ml-2\"\r\n (click)=\"onAddNewTemplateToZone(pair.key)\">{{'Add new template' | translate}}</button>\r\n\r\n <ul class=\"container-fluid list-group list-group-flush\">\r\n <li class=\"list-group-item\" *ngFor=\"let template of pair.value\">\r\n <div class=\"d-flex justify-content-between align-items-center\"\r\n (click)=\"onToggleTemplateDetails(template)\">\r\n <h5>{{template.title}}</h5>\r\n <lib-chevron data-testid=\"open-museum-template-btn\" [conditionShowing]=\"templateShowing === template.id\"></lib-chevron>\r\n </div>\r\n <div *ngIf=\"templateShowing === template.id\">\r\n <ul class=\"list-group list-group-flush\">\r\n <li class=\"list-group-item bg-transparent\">{{'Description' | translate }}:\r\n {{ template.description}}</li>\r\n <li class=\"list-group-item bg-transparent\">{{'Language' | translate }}:\r\n {{ template.locale ? template.locale : ('Not applicable' | translate)}}\r\n </li>\r\n <li class=\"list-group-item bg-transparent\"\r\n *ngIf=\"template.hashtags && template.hashtags.length> 0\">\r\n {{'Hashtags' | translate}}:\r\n <ul class=\"keywordsDisplay no-border\">\r\n <div class=\"keywordsdisplayContainer\"\r\n *ngIf=\"template.hashtags.length> 0\">\r\n <li class=\"keywordsItem\"\r\n *ngFor=\"let hashtag of template.hashtags\">{{\r\n hashtag | hashtagFromID | async }}</li>\r\n </div>\r\n </ul>\r\n </li>\r\n <li class=\"list-group-item bg-transparent\">{{'Access level' | translate }}:\r\n {{ template.level}}</li>\r\n <li class=\"list-group-item bg-transparent\">{{'Planned at' | translate }} :\r\n {{ template.startDateTime ? (template.startDateTime |\r\n timeDateString:\"day_time_zone\" | async) :\r\n \"No data\" | translate }} -\r\n {{ template.endDateTime ?\r\n (template.endDateTime | timeDateString:\"day_time_zone\" | async) : \"No\r\n data\" |\r\n translate}}\r\n </li>\r\n <li class=\"list-group-item bg-transparent\">\r\n {{'Effective start/end time ' | translate }}:\r\n {{ template.realStartedAt ? (template.realStartedAt |\r\n timeDateString:\"day_time_zone\" | async) : ('No data' | translate)}} /\r\n {{ template.realEndedAt ? (template.realEndedAt |\r\n timeDateString:\"day_time_zone\" | async) : ('No data' | translate)}}\r\n </li>\r\n <li class=\"list-group-item bg-transparent\"\r\n *ngIf=\"allTemplateMissionsMap.get(template.id)\">\r\n {{'Visitors created' |\r\n translate}}:{{allTemplateMissionsMap.get(template.id).length}}\r\n <lib-csv-export [headers]=\"csvHeaders\" [title]=\"'Users'\"\r\n buttonLabel=\"Download users\"\r\n [rowsInput]=\"generateCSVUsers(template)\">\r\n </lib-csv-export>\r\n </li>\r\n\r\n </ul>\r\n <div class=\"action-button-container\">\r\n <div class=\"d-inline-block mr-2 action-button\" ngbDropdown\r\n #myDrop=\"ngbDropdown\">\r\n <button class=\"btn btn-label-file rounded-pill\" id=\"dropdownManual\" data-testid=\"open-dropdownManual-museum-btn\"\r\n ngbDropdownToggle>{{'Manage users' |\r\n translate}}</button>\r\n <div ngbDropdownMenu aria-labelledby=\"dropdownManual\">\r\n <button (click)=\"onGenerateBatch(template)\" ngbDropdownItem data-testid=\"new-user-template-btn\"> \r\n {{'Create users from this template' | translate}}</button>\r\n <button (click)=\"onSendInvitation(template)\" ngbDropdownItem>\r\n {{'Send invitation to all users' | translate}}\r\n </button>\r\n <button (click)=\"onSendUpdate(template)\" ngbDropdownItem>\r\n {{'Send update to all users' | translate}}\r\n </button>\r\n <button (click)=\"onSendSatisfaction(template)\" ngbDropdownItem>\r\n {{'Send satisfaction mail to all users' | translate}}\r\n </button>\r\n <button (click)=\"onDeleteUsers(template)\" ngbDropdownItem>\r\n {{'Remove users' | translate}}\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"d-inline-block mr-2 action-button\" ngbDropdown\r\n #myDrop2=\"ngbDropdown\">\r\n <button class=\"btn btn-label-file rounded-pill\" id=\"dropdown2\" data-testid=\"open-dropdown2-museum-template-btn\"\r\n ngbDropdownToggle>{{'Manage template' |\r\n translate}}</button>\r\n <div ngbDropdownMenu aria-labelledby=\"dropdown2\">\r\n <button (click)=\"onEditTemplate(template)\" ngbDropdownItem data-testid=\"edit-museum-template-btn\">\r\n {{'Edit template' | translate}}</button>\r\n <button (click)=\"onCleanTimeTemplate(template)\" ngbDropdownItem>\r\n {{'Clean effective times' | translate}}\r\n </button>\r\n <button (click)=\"onArchiveTemplate(template)\" ngbDropdownItem>\r\n {{'Archive template' | translate}}\r\n </button>\r\n <button (click)=\"onCancelTemplate(template)\" ngbDropdownItem>\r\n {{'Cancel visit' | translate}}\r\n </button>\r\n <button (click)=\"onDuplicateTemplate(template)\" ngbDropdownItem>\r\n {{'Duplicate' | translate}}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- <button type=\"button\" class=\"btn btn-primary rounded-pill mr-2 ml-auto\"\r\n (click)=\"onEdit(mis)\">\r\n {{'Edit' | translate}}</button>\r\n <button class=\"btn btn-primary rounded-pill mt-3 mb-3 ml-auto\"\r\n (click)=\"onArchiveTemplate(mis)\">{{'Archive' | translate}}</button> -->\r\n </div>\r\n\r\n </li>\r\n </ul>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n <div *ngIf=\"editing\">\r\n <lib-template [editTemplate]=\"templateToEdit\" [currentOrg]=\"currentOrg\"\r\n (updatedTemplate)=\"onUpdatedTemplate($event)\"></lib-template>\r\n </div>\r\n <div *ngIf=\"creating\">\r\n <lib-template [currentOrg]=\"currentOrg\" [zoneID]=\"zoneIDForNewTemplate\"\r\n (createdTemplate)=\"onCreatedTemplate($event)\"></lib-template>\r\n </div>\r\n </div>\r\n <div class=\"col-md-4 col-lg-5\" *ngIf=\"isAddingBatch\">\r\n <lib-create-batch [template]=\"chosenTemplate\" (createdMissions)=\"onUpdatedEvent($event)\"></lib-create-batch>\r\n </div>\r\n <ng-template #deleteUsers let-modal>\r\n <div class=\"modal-header\">\r\n <h4 class=\"modal-title\" id=\"modal-basic-title\">{{\"Delete users\" | translate}}\r\n </h4>\r\n <button type=\"button\" class=\"close\" aria-label=\"Close\" (click)=\"modalRef.close()\">\r\n <span aria-hidden=\"true\">×</span>\r\n </button>\r\n </div>\r\n <div class=\"modal-body\">\r\n <div class=\"column align-items-center\">\r\n <div class=\"row\" style=\"padding: 0 1.25rem;\">\r\n <ul class=\"container-fluid list-group list-group-flush\">\r\n <li class=\"list-group-item\" *ngFor=\"let object of currentTemplateUsers\">\r\n <input type=\"checkbox\" [(ngModel)]=\"object.checked\"> {{object.profile.email}}\r\n </li>\r\n </ul>\r\n </div>\r\n\r\n <div class=\"row\" style=\"padding: 1.25rem;\">\r\n <button class=\"btn btn-outline-primary rounded-pill mr-4\" (click)=\"onDeleteChosen()\">{{\"Apply\" |\r\n translate}}\r\n </button>\r\n <button class=\"btn btn-outline-primary rounded-pill\" (click)=\"modalRef.close()\">{{\"Cancel\" |\r\n translate}}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </div>\r\n</div>", styles: [".add-button{width:-moz-fit-content;width:fit-content;margin-left:.5rem}li.ml-4{margin-left:3rem}.action-button-container{display:flex;justify-content:space-evenly}.action-button-container .action-button{width:145px!important}\n"], components: [{ type: i1.LoaderComponent, selector: "lib-loader", inputs: ["useLogo", "color"] }, { type: ChevronComponent, selector: "lib-chevron", inputs: ["conditionShowing"] }, { type: i1.CsvExportComponent, selector: "lib-csv-export", inputs: ["headers", "rowsInput", "getRows", "title", "buttonLabel"] }, { type: TemplateComponent, selector: "lib-template", inputs: ["currentOrg", "editTemplate", "zoneID"], outputs: ["updatedTemplate", "createdTemplate"] }, { type: CreateBatchComponent, selector: "lib-create-batch", inputs: ["template"], outputs: ["createdMissions"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { type: i4.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { type: i4.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { type: i4.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["disabled"] }, { type: i1$1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], pipes: { "translate": i3.TranslatePipe, "keyvalue": i5.KeyValuePipe, "async": i5.AsyncPipe, "hashtagFromID": i1.HashtagFromIdPipe, "timeDateString": i1.TimeDateToLocalStringPipe } });
|
|
2026
|
+
VisitorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: VisitorComponent, selector: "lib-visitor", viewQueries: [{ propertyName: "modal", first: true, predicate: ["deleteUsers"], descendants: true }], ngImport: i0, template: "<div class=\"dashboard-tab\">\n <div class=\"header-dashboard-tab\">\n <h3>{{'Museum Visitors' | translate}}</h3>\n <!-- <app-search-bar [searchable]=\"allZoneTemplatesMap\" objectType=\"TEMPLATE\"\n (searchEvent)=\"applyResultsSearchBar($event)\">\n </app-search-bar> -->\n <hr>\n </div>\n <div class=\"row\">\n <div class=\"col-md-8 col-lg-7\">\n <div class=\"row ml-0 mb-2\">\n <h4 class=\"header-small\">{{'Itineraries' | translate}}</h4>\n </div>\n <div class=\"row ml-0 mb-2\" *ngIf=\"!editing && !creating\">\n <button class=\"btn btn-outline-primary rounded-pill ml-3 add-button\" (click)=\"onCreateTemplate()\"\n data-testid=\"new-museum-template-btn\">\n {{'Create template for new itinerary' | translate}}</button>\n </div>\n <div class=\"d-flex justify-content-center\" *ngIf=\"loading\">\n <lib-loader></lib-loader>\n </div>\n <div *ngIf=\"!editing && !creating\">\n <ul class=\"list-group list-group-flush\" data-testid=\"open-museum-zone-btn\">\n <li class=\"list-group-item\" *ngFor=\"let pair of allZoneTemplatesMapFiltered | keyvalue\">\n <h4>{{pair.key.name}} <span style=\"font-size:0.8em\"> - {{pair.key.space.name}}</span> </h4>\n <div class=\"d-flex justify-content-between align-items-center\"\n (click)=\"onToggleMissionsForZone(pair.key.id)\">\n <ng-container *ngIf=\"pair.value.length <= 1\">\n {{pair.value.length}} {{'visit template found' | translate}}\n </ng-container>\n <ng-container *ngIf=\"pair.value.length > 1\">\n {{pair.value.length}} {{'visit templates found' | translate}}\n </ng-container>\n <lib-chevron [ngClass]=\"[pair.key.name]\" [conditionShowing]=\"detailsForZones.includes(pair.key.id)\"></lib-chevron>\n\n </div>\n <div *ngIf=\"detailsForZones.includes(pair.key.id)\">\n <button class=\"btn btn-outline-primary rounded-pill mt-3 mb-3 ml-2\"\n (click)=\"onAddNewTemplateToZone(pair.key)\">{{'Add new template' | translate}}</button>\n\n <ul class=\"container-fluid list-group list-group-flush\">\n <li class=\"list-group-item\" *ngFor=\"let template of pair.value\">\n <div class=\"d-flex justify-content-between align-items-center\"\n (click)=\"onToggleTemplateDetails(template)\">\n <h5>{{template.title}}</h5>\n <lib-chevron data-testid=\"open-museum-template-btn\" [conditionShowing]=\"templateShowing === template.id\"></lib-chevron>\n </div>\n <div *ngIf=\"templateShowing === template.id\">\n <ul class=\"list-group list-group-flush\">\n <li class=\"list-group-item bg-transparent\">{{'Description' | translate }}:\n {{ template.description}}</li>\n <li class=\"list-group-item bg-transparent\">{{'Language' | translate }}:\n {{ template.locale ? template.locale : ('Not applicable' | translate)}}\n </li>\n <li class=\"list-group-item bg-transparent\"\n *ngIf=\"template.hashtags && template.hashtags.length> 0\">\n {{'Hashtags' | translate}}:\n <ul class=\"keywordsDisplay no-border\">\n <div class=\"keywordsdisplayContainer\"\n *ngIf=\"template.hashtags.length> 0\">\n <li class=\"keywordsItem\"\n *ngFor=\"let hashtag of template.hashtags\">{{\n hashtag | hashtagFromID | async }}</li>\n </div>\n </ul>\n </li>\n <li class=\"list-group-item bg-transparent\">{{'Access level' | translate }}:\n {{ template.level}}</li>\n <li class=\"list-group-item bg-transparent\">{{'Planned at' | translate }} :\n {{ template.startDateTime ? (template.startDateTime |\n timeDateString:\"day_time_zone\" | async) :\n \"No data\" | translate }} -\n {{ template.endDateTime ?\n (template.endDateTime | timeDateString:\"day_time_zone\" | async) : \"No\n data\" |\n translate}}\n </li>\n <li class=\"list-group-item bg-transparent\">\n {{'Effective start/end time ' | translate }}:\n {{ template.realStartedAt ? (template.realStartedAt |\n timeDateString:\"day_time_zone\" | async) : ('No data' | translate)}} /\n {{ template.realEndedAt ? (template.realEndedAt |\n timeDateString:\"day_time_zone\" | async) : ('No data' | translate)}}\n </li>\n <li class=\"list-group-item bg-transparent\"\n *ngIf=\"allTemplateMissionsMap.get(template.id)\">\n {{'Visitors created' |\n translate}}:{{allTemplateMissionsMap.get(template.id).length}}\n <lib-csv-export [headers]=\"csvHeaders\" [title]=\"'Users'\"\n buttonLabel=\"Download users\"\n [rowsInput]=\"generateCSVUsers(template)\">\n </lib-csv-export>\n </li>\n\n </ul>\n <div class=\"action-button-container\">\n <div class=\"d-inline-block mr-2 action-button\" ngbDropdown\n #myDrop=\"ngbDropdown\">\n <button class=\"btn btn-label-file rounded-pill\" id=\"dropdownManual\" data-testid=\"open-dropdownManual-museum-btn\"\n ngbDropdownToggle>{{'Manage users' |\n translate}}</button>\n <div ngbDropdownMenu aria-labelledby=\"dropdownManual\">\n <button (click)=\"onGenerateBatch(template)\" ngbDropdownItem data-testid=\"new-user-template-btn\"> \n {{'Create users from this template' | translate}}</button>\n <button (click)=\"onSendInvitation(template)\" ngbDropdownItem>\n {{'Send invitation to all users' | translate}}\n </button>\n <button (click)=\"onSendUpdate(template)\" ngbDropdownItem>\n {{'Send update to all users' | translate}}\n </button>\n <button (click)=\"onSendSatisfaction(template)\" ngbDropdownItem>\n {{'Send satisfaction mail to all users' | translate}}\n </button>\n <button (click)=\"onDeleteUsers(template)\" ngbDropdownItem>\n {{'Remove users' | translate}}\n </button>\n </div>\n </div>\n <div class=\"d-inline-block mr-2 action-button\" ngbDropdown\n #myDrop2=\"ngbDropdown\">\n <button class=\"btn btn-label-file rounded-pill\" id=\"dropdown2\" data-testid=\"open-dropdown2-museum-template-btn\"\n ngbDropdownToggle>{{'Manage template' |\n translate}}</button>\n <div ngbDropdownMenu aria-labelledby=\"dropdown2\">\n <button (click)=\"onEditTemplate(template)\" ngbDropdownItem data-testid=\"edit-museum-template-btn\">\n {{'Edit template' | translate}}</button>\n <button (click)=\"onCleanTimeTemplate(template)\" ngbDropdownItem>\n {{'Clean effective times' | translate}}\n </button>\n <button (click)=\"onArchiveTemplate(template)\" ngbDropdownItem>\n {{'Archive template' | translate}}\n </button>\n <button (click)=\"onCancelTemplate(template)\" ngbDropdownItem>\n {{'Cancel visit' | translate}}\n </button>\n <button (click)=\"onDuplicateTemplate(template)\" ngbDropdownItem>\n {{'Duplicate' | translate}}\n </button>\n </div>\n </div>\n </div>\n <!-- <button type=\"button\" class=\"btn btn-primary rounded-pill mr-2 ml-auto\"\n (click)=\"onEdit(mis)\">\n {{'Edit' | translate}}</button>\n <button class=\"btn btn-primary rounded-pill mt-3 mb-3 ml-auto\"\n (click)=\"onArchiveTemplate(mis)\">{{'Archive' | translate}}</button> -->\n </div>\n\n </li>\n </ul>\n </div>\n </li>\n </ul>\n </div>\n <div *ngIf=\"editing\">\n <lib-template [editTemplate]=\"templateToEdit\" [currentOrg]=\"currentOrg\"\n (updatedTemplate)=\"onUpdatedTemplate($event)\"></lib-template>\n </div>\n <div *ngIf=\"creating\">\n <lib-template [currentOrg]=\"currentOrg\" [zoneID]=\"zoneIDForNewTemplate\"\n (createdTemplate)=\"onCreatedTemplate($event)\"></lib-template>\n </div>\n </div>\n <div class=\"col-md-4 col-lg-5\" *ngIf=\"isAddingBatch\">\n <lib-create-batch [template]=\"chosenTemplate\" (createdMissions)=\"onUpdatedEvent($event)\"></lib-create-batch>\n </div>\n <ng-template #deleteUsers let-modal>\n <div class=\"modal-header\">\n <h4 class=\"modal-title\" id=\"modal-basic-title\">{{\"Delete users\" | translate}}\n </h4>\n <button type=\"button\" class=\"close\" aria-label=\"Close\" (click)=\"modalRef.close()\">\n <span aria-hidden=\"true\">×</span>\n </button>\n </div>\n <div class=\"modal-body\">\n <div class=\"column align-items-center\">\n <div class=\"row\" style=\"padding: 0 1.25rem;\">\n <ul class=\"container-fluid list-group list-group-flush\">\n <li class=\"list-group-item\" *ngFor=\"let object of currentTemplateUsers\">\n <input type=\"checkbox\" [(ngModel)]=\"object.checked\"> {{object.profile.email}}\n </li>\n </ul>\n </div>\n\n <div class=\"row\" style=\"padding: 1.25rem;\">\n <button class=\"btn btn-outline-primary rounded-pill mr-4\" (click)=\"onDeleteChosen()\">{{\"Apply\" |\n translate}}\n </button>\n <button class=\"btn btn-outline-primary rounded-pill\" (click)=\"modalRef.close()\">{{\"Cancel\" |\n translate}}\n </button>\n </div>\n </div>\n </div>\n </ng-template>\n </div>\n</div>", styles: [".add-button{width:-moz-fit-content;width:fit-content;margin-left:.5rem}li.ml-4{margin-left:3rem}.action-button-container{display:flex;justify-content:space-evenly}.action-button-container .action-button{width:145px!important}\n"], components: [{ type: i1.LoaderComponent, selector: "lib-loader", inputs: ["useLogo", "color"] }, { type: ChevronComponent, selector: "lib-chevron", inputs: ["conditionShowing"] }, { type: i1.CsvExportComponent, selector: "lib-csv-export", inputs: ["headers", "rowsInput", "getRows", "title", "buttonLabel"] }, { type: TemplateComponent, selector: "lib-template", inputs: ["currentOrg", "editTemplate", "zoneID"], outputs: ["updatedTemplate", "createdTemplate"] }, { type: CreateBatchComponent, selector: "lib-create-batch", inputs: ["template"], outputs: ["createdMissions"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { type: i4.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { type: i4.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { type: i4.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["disabled"] }, { type: i1$1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], pipes: { "translate": i3.TranslatePipe, "keyvalue": i5.KeyValuePipe, "async": i5.AsyncPipe, "hashtagFromID": i1.HashtagFromIdPipe, "timeDateString": i1.TimeDateToLocalStringPipe } });
|
|
2027
2027
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: VisitorComponent, decorators: [{
|
|
2028
2028
|
type: Component,
|
|
2029
|
-
args: [{ selector: 'lib-visitor', template: "<div class=\"dashboard-tab\">\r\n <div class=\"header-dashboard-tab\">\r\n <h3>{{'Museum Visitors' | translate}}</h3>\r\n <!-- <app-search-bar [searchable]=\"allZoneTemplatesMap\" objectType=\"TEMPLATE\"\r\n (searchEvent)=\"applyResultsSearchBar($event)\">\r\n </app-search-bar> -->\r\n <hr>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-8 col-lg-7\">\r\n <div class=\"row ml-0 mb-2\">\r\n <h4 class=\"header-small\">{{'Itineraries' | translate}}</h4>\r\n </div>\r\n <div class=\"row ml-0 mb-2\" *ngIf=\"!editing && !creating\">\r\n <button class=\"btn btn-outline-primary rounded-pill ml-3 add-button\" (click)=\"onCreateTemplate()\"\r\n data-testid=\"new-museum-template-btn\">\r\n {{'Create template for new itinerary' | translate}}</button>\r\n </div>\r\n <div class=\"d-flex justify-content-center\" *ngIf=\"loading\">\r\n <lib-loader></lib-loader>\r\n </div>\r\n <div *ngIf=\"!editing && !creating\">\r\n <ul class=\"list-group list-group-flush\" data-testid=\"open-museum-zone-btn\">\r\n <li class=\"list-group-item\" *ngFor=\"let pair of allZoneTemplatesMapFiltered | keyvalue\">\r\n <h4>{{pair.key.name}} <span style=\"font-size:0.8em\"> - {{pair.key.space.name}}</span> </h4>\r\n <div class=\"d-flex justify-content-between align-items-center\"\r\n (click)=\"onToggleMissionsForZone(pair.key.id)\">\r\n <ng-container *ngIf=\"pair.value.length <= 1\">\r\n {{pair.value.length}} {{'visit template found' | translate}}\r\n </ng-container>\r\n <ng-container *ngIf=\"pair.value.length > 1\">\r\n {{pair.value.length}} {{'visit templates found' | translate}}\r\n </ng-container>\r\n <lib-chevron [ngClass]=\"[pair.key.name]\" [conditionShowing]=\"detailsForZones.includes(pair.key.id)\"></lib-chevron>\r\n\r\n </div>\r\n <div *ngIf=\"detailsForZones.includes(pair.key.id)\">\r\n <button class=\"btn btn-outline-primary rounded-pill mt-3 mb-3 ml-2\"\r\n (click)=\"onAddNewTemplateToZone(pair.key)\">{{'Add new template' | translate}}</button>\r\n\r\n <ul class=\"container-fluid list-group list-group-flush\">\r\n <li class=\"list-group-item\" *ngFor=\"let template of pair.value\">\r\n <div class=\"d-flex justify-content-between align-items-center\"\r\n (click)=\"onToggleTemplateDetails(template)\">\r\n <h5>{{template.title}}</h5>\r\n <lib-chevron data-testid=\"open-museum-template-btn\" [conditionShowing]=\"templateShowing === template.id\"></lib-chevron>\r\n </div>\r\n <div *ngIf=\"templateShowing === template.id\">\r\n <ul class=\"list-group list-group-flush\">\r\n <li class=\"list-group-item bg-transparent\">{{'Description' | translate }}:\r\n {{ template.description}}</li>\r\n <li class=\"list-group-item bg-transparent\">{{'Language' | translate }}:\r\n {{ template.locale ? template.locale : ('Not applicable' | translate)}}\r\n </li>\r\n <li class=\"list-group-item bg-transparent\"\r\n *ngIf=\"template.hashtags && template.hashtags.length> 0\">\r\n {{'Hashtags' | translate}}:\r\n <ul class=\"keywordsDisplay no-border\">\r\n <div class=\"keywordsdisplayContainer\"\r\n *ngIf=\"template.hashtags.length> 0\">\r\n <li class=\"keywordsItem\"\r\n *ngFor=\"let hashtag of template.hashtags\">{{\r\n hashtag | hashtagFromID | async }}</li>\r\n </div>\r\n </ul>\r\n </li>\r\n <li class=\"list-group-item bg-transparent\">{{'Access level' | translate }}:\r\n {{ template.level}}</li>\r\n <li class=\"list-group-item bg-transparent\">{{'Planned at' | translate }} :\r\n {{ template.startDateTime ? (template.startDateTime |\r\n timeDateString:\"day_time_zone\" | async) :\r\n \"No data\" | translate }} -\r\n {{ template.endDateTime ?\r\n (template.endDateTime | timeDateString:\"day_time_zone\" | async) : \"No\r\n data\" |\r\n translate}}\r\n </li>\r\n <li class=\"list-group-item bg-transparent\">\r\n {{'Effective start/end time ' | translate }}:\r\n {{ template.realStartedAt ? (template.realStartedAt |\r\n timeDateString:\"day_time_zone\" | async) : ('No data' | translate)}} /\r\n {{ template.realEndedAt ? (template.realEndedAt |\r\n timeDateString:\"day_time_zone\" | async) : ('No data' | translate)}}\r\n </li>\r\n <li class=\"list-group-item bg-transparent\"\r\n *ngIf=\"allTemplateMissionsMap.get(template.id)\">\r\n {{'Visitors created' |\r\n translate}}:{{allTemplateMissionsMap.get(template.id).length}}\r\n <lib-csv-export [headers]=\"csvHeaders\" [title]=\"'Users'\"\r\n buttonLabel=\"Download users\"\r\n [rowsInput]=\"generateCSVUsers(template)\">\r\n </lib-csv-export>\r\n </li>\r\n\r\n </ul>\r\n <div class=\"action-button-container\">\r\n <div class=\"d-inline-block mr-2 action-button\" ngbDropdown\r\n #myDrop=\"ngbDropdown\">\r\n <button class=\"btn btn-label-file rounded-pill\" id=\"dropdownManual\" data-testid=\"open-dropdownManual-museum-btn\"\r\n ngbDropdownToggle>{{'Manage users' |\r\n translate}}</button>\r\n <div ngbDropdownMenu aria-labelledby=\"dropdownManual\">\r\n <button (click)=\"onGenerateBatch(template)\" ngbDropdownItem data-testid=\"new-user-template-btn\"> \r\n {{'Create users from this template' | translate}}</button>\r\n <button (click)=\"onSendInvitation(template)\" ngbDropdownItem>\r\n {{'Send invitation to all users' | translate}}\r\n </button>\r\n <button (click)=\"onSendUpdate(template)\" ngbDropdownItem>\r\n {{'Send update to all users' | translate}}\r\n </button>\r\n <button (click)=\"onSendSatisfaction(template)\" ngbDropdownItem>\r\n {{'Send satisfaction mail to all users' | translate}}\r\n </button>\r\n <button (click)=\"onDeleteUsers(template)\" ngbDropdownItem>\r\n {{'Remove users' | translate}}\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"d-inline-block mr-2 action-button\" ngbDropdown\r\n #myDrop2=\"ngbDropdown\">\r\n <button class=\"btn btn-label-file rounded-pill\" id=\"dropdown2\" data-testid=\"open-dropdown2-museum-template-btn\"\r\n ngbDropdownToggle>{{'Manage template' |\r\n translate}}</button>\r\n <div ngbDropdownMenu aria-labelledby=\"dropdown2\">\r\n <button (click)=\"onEditTemplate(template)\" ngbDropdownItem data-testid=\"edit-museum-template-btn\">\r\n {{'Edit template' | translate}}</button>\r\n <button (click)=\"onCleanTimeTemplate(template)\" ngbDropdownItem>\r\n {{'Clean effective times' | translate}}\r\n </button>\r\n <button (click)=\"onArchiveTemplate(template)\" ngbDropdownItem>\r\n {{'Archive template' | translate}}\r\n </button>\r\n <button (click)=\"onCancelTemplate(template)\" ngbDropdownItem>\r\n {{'Cancel visit' | translate}}\r\n </button>\r\n <button (click)=\"onDuplicateTemplate(template)\" ngbDropdownItem>\r\n {{'Duplicate' | translate}}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- <button type=\"button\" class=\"btn btn-primary rounded-pill mr-2 ml-auto\"\r\n (click)=\"onEdit(mis)\">\r\n {{'Edit' | translate}}</button>\r\n <button class=\"btn btn-primary rounded-pill mt-3 mb-3 ml-auto\"\r\n (click)=\"onArchiveTemplate(mis)\">{{'Archive' | translate}}</button> -->\r\n </div>\r\n\r\n </li>\r\n </ul>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n <div *ngIf=\"editing\">\r\n <lib-template [editTemplate]=\"templateToEdit\" [currentOrg]=\"currentOrg\"\r\n (updatedTemplate)=\"onUpdatedTemplate($event)\"></lib-template>\r\n </div>\r\n <div *ngIf=\"creating\">\r\n <lib-template [currentOrg]=\"currentOrg\" [zoneID]=\"zoneIDForNewTemplate\"\r\n (createdTemplate)=\"onCreatedTemplate($event)\"></lib-template>\r\n </div>\r\n </div>\r\n <div class=\"col-md-4 col-lg-5\" *ngIf=\"isAddingBatch\">\r\n <lib-create-batch [template]=\"chosenTemplate\" (createdMissions)=\"onUpdatedEvent($event)\"></lib-create-batch>\r\n </div>\r\n <ng-template #deleteUsers let-modal>\r\n <div class=\"modal-header\">\r\n <h4 class=\"modal-title\" id=\"modal-basic-title\">{{\"Delete users\" | translate}}\r\n </h4>\r\n <button type=\"button\" class=\"close\" aria-label=\"Close\" (click)=\"modalRef.close()\">\r\n <span aria-hidden=\"true\">×</span>\r\n </button>\r\n </div>\r\n <div class=\"modal-body\">\r\n <div class=\"column align-items-center\">\r\n <div class=\"row\" style=\"padding: 0 1.25rem;\">\r\n <ul class=\"container-fluid list-group list-group-flush\">\r\n <li class=\"list-group-item\" *ngFor=\"let object of currentTemplateUsers\">\r\n <input type=\"checkbox\" [(ngModel)]=\"object.checked\"> {{object.profile.email}}\r\n </li>\r\n </ul>\r\n </div>\r\n\r\n <div class=\"row\" style=\"padding: 1.25rem;\">\r\n <button class=\"btn btn-outline-primary rounded-pill mr-4\" (click)=\"onDeleteChosen()\">{{\"Apply\" |\r\n translate}}\r\n </button>\r\n <button class=\"btn btn-outline-primary rounded-pill\" (click)=\"modalRef.close()\">{{\"Cancel\" |\r\n translate}}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </div>\r\n</div>", styles: [".add-button{width:-moz-fit-content;width:fit-content;margin-left:.5rem}li.ml-4{margin-left:3rem}.action-button-container{display:flex;justify-content:space-evenly}.action-button-container .action-button{width:145px!important}\n"] }]
|
|
2029
|
+
args: [{ selector: 'lib-visitor', template: "<div class=\"dashboard-tab\">\n <div class=\"header-dashboard-tab\">\n <h3>{{'Museum Visitors' | translate}}</h3>\n <!-- <app-search-bar [searchable]=\"allZoneTemplatesMap\" objectType=\"TEMPLATE\"\n (searchEvent)=\"applyResultsSearchBar($event)\">\n </app-search-bar> -->\n <hr>\n </div>\n <div class=\"row\">\n <div class=\"col-md-8 col-lg-7\">\n <div class=\"row ml-0 mb-2\">\n <h4 class=\"header-small\">{{'Itineraries' | translate}}</h4>\n </div>\n <div class=\"row ml-0 mb-2\" *ngIf=\"!editing && !creating\">\n <button class=\"btn btn-outline-primary rounded-pill ml-3 add-button\" (click)=\"onCreateTemplate()\"\n data-testid=\"new-museum-template-btn\">\n {{'Create template for new itinerary' | translate}}</button>\n </div>\n <div class=\"d-flex justify-content-center\" *ngIf=\"loading\">\n <lib-loader></lib-loader>\n </div>\n <div *ngIf=\"!editing && !creating\">\n <ul class=\"list-group list-group-flush\" data-testid=\"open-museum-zone-btn\">\n <li class=\"list-group-item\" *ngFor=\"let pair of allZoneTemplatesMapFiltered | keyvalue\">\n <h4>{{pair.key.name}} <span style=\"font-size:0.8em\"> - {{pair.key.space.name}}</span> </h4>\n <div class=\"d-flex justify-content-between align-items-center\"\n (click)=\"onToggleMissionsForZone(pair.key.id)\">\n <ng-container *ngIf=\"pair.value.length <= 1\">\n {{pair.value.length}} {{'visit template found' | translate}}\n </ng-container>\n <ng-container *ngIf=\"pair.value.length > 1\">\n {{pair.value.length}} {{'visit templates found' | translate}}\n </ng-container>\n <lib-chevron [ngClass]=\"[pair.key.name]\" [conditionShowing]=\"detailsForZones.includes(pair.key.id)\"></lib-chevron>\n\n </div>\n <div *ngIf=\"detailsForZones.includes(pair.key.id)\">\n <button class=\"btn btn-outline-primary rounded-pill mt-3 mb-3 ml-2\"\n (click)=\"onAddNewTemplateToZone(pair.key)\">{{'Add new template' | translate}}</button>\n\n <ul class=\"container-fluid list-group list-group-flush\">\n <li class=\"list-group-item\" *ngFor=\"let template of pair.value\">\n <div class=\"d-flex justify-content-between align-items-center\"\n (click)=\"onToggleTemplateDetails(template)\">\n <h5>{{template.title}}</h5>\n <lib-chevron data-testid=\"open-museum-template-btn\" [conditionShowing]=\"templateShowing === template.id\"></lib-chevron>\n </div>\n <div *ngIf=\"templateShowing === template.id\">\n <ul class=\"list-group list-group-flush\">\n <li class=\"list-group-item bg-transparent\">{{'Description' | translate }}:\n {{ template.description}}</li>\n <li class=\"list-group-item bg-transparent\">{{'Language' | translate }}:\n {{ template.locale ? template.locale : ('Not applicable' | translate)}}\n </li>\n <li class=\"list-group-item bg-transparent\"\n *ngIf=\"template.hashtags && template.hashtags.length> 0\">\n {{'Hashtags' | translate}}:\n <ul class=\"keywordsDisplay no-border\">\n <div class=\"keywordsdisplayContainer\"\n *ngIf=\"template.hashtags.length> 0\">\n <li class=\"keywordsItem\"\n *ngFor=\"let hashtag of template.hashtags\">{{\n hashtag | hashtagFromID | async }}</li>\n </div>\n </ul>\n </li>\n <li class=\"list-group-item bg-transparent\">{{'Access level' | translate }}:\n {{ template.level}}</li>\n <li class=\"list-group-item bg-transparent\">{{'Planned at' | translate }} :\n {{ template.startDateTime ? (template.startDateTime |\n timeDateString:\"day_time_zone\" | async) :\n \"No data\" | translate }} -\n {{ template.endDateTime ?\n (template.endDateTime | timeDateString:\"day_time_zone\" | async) : \"No\n data\" |\n translate}}\n </li>\n <li class=\"list-group-item bg-transparent\">\n {{'Effective start/end time ' | translate }}:\n {{ template.realStartedAt ? (template.realStartedAt |\n timeDateString:\"day_time_zone\" | async) : ('No data' | translate)}} /\n {{ template.realEndedAt ? (template.realEndedAt |\n timeDateString:\"day_time_zone\" | async) : ('No data' | translate)}}\n </li>\n <li class=\"list-group-item bg-transparent\"\n *ngIf=\"allTemplateMissionsMap.get(template.id)\">\n {{'Visitors created' |\n translate}}:{{allTemplateMissionsMap.get(template.id).length}}\n <lib-csv-export [headers]=\"csvHeaders\" [title]=\"'Users'\"\n buttonLabel=\"Download users\"\n [rowsInput]=\"generateCSVUsers(template)\">\n </lib-csv-export>\n </li>\n\n </ul>\n <div class=\"action-button-container\">\n <div class=\"d-inline-block mr-2 action-button\" ngbDropdown\n #myDrop=\"ngbDropdown\">\n <button class=\"btn btn-label-file rounded-pill\" id=\"dropdownManual\" data-testid=\"open-dropdownManual-museum-btn\"\n ngbDropdownToggle>{{'Manage users' |\n translate}}</button>\n <div ngbDropdownMenu aria-labelledby=\"dropdownManual\">\n <button (click)=\"onGenerateBatch(template)\" ngbDropdownItem data-testid=\"new-user-template-btn\"> \n {{'Create users from this template' | translate}}</button>\n <button (click)=\"onSendInvitation(template)\" ngbDropdownItem>\n {{'Send invitation to all users' | translate}}\n </button>\n <button (click)=\"onSendUpdate(template)\" ngbDropdownItem>\n {{'Send update to all users' | translate}}\n </button>\n <button (click)=\"onSendSatisfaction(template)\" ngbDropdownItem>\n {{'Send satisfaction mail to all users' | translate}}\n </button>\n <button (click)=\"onDeleteUsers(template)\" ngbDropdownItem>\n {{'Remove users' | translate}}\n </button>\n </div>\n </div>\n <div class=\"d-inline-block mr-2 action-button\" ngbDropdown\n #myDrop2=\"ngbDropdown\">\n <button class=\"btn btn-label-file rounded-pill\" id=\"dropdown2\" data-testid=\"open-dropdown2-museum-template-btn\"\n ngbDropdownToggle>{{'Manage template' |\n translate}}</button>\n <div ngbDropdownMenu aria-labelledby=\"dropdown2\">\n <button (click)=\"onEditTemplate(template)\" ngbDropdownItem data-testid=\"edit-museum-template-btn\">\n {{'Edit template' | translate}}</button>\n <button (click)=\"onCleanTimeTemplate(template)\" ngbDropdownItem>\n {{'Clean effective times' | translate}}\n </button>\n <button (click)=\"onArchiveTemplate(template)\" ngbDropdownItem>\n {{'Archive template' | translate}}\n </button>\n <button (click)=\"onCancelTemplate(template)\" ngbDropdownItem>\n {{'Cancel visit' | translate}}\n </button>\n <button (click)=\"onDuplicateTemplate(template)\" ngbDropdownItem>\n {{'Duplicate' | translate}}\n </button>\n </div>\n </div>\n </div>\n <!-- <button type=\"button\" class=\"btn btn-primary rounded-pill mr-2 ml-auto\"\n (click)=\"onEdit(mis)\">\n {{'Edit' | translate}}</button>\n <button class=\"btn btn-primary rounded-pill mt-3 mb-3 ml-auto\"\n (click)=\"onArchiveTemplate(mis)\">{{'Archive' | translate}}</button> -->\n </div>\n\n </li>\n </ul>\n </div>\n </li>\n </ul>\n </div>\n <div *ngIf=\"editing\">\n <lib-template [editTemplate]=\"templateToEdit\" [currentOrg]=\"currentOrg\"\n (updatedTemplate)=\"onUpdatedTemplate($event)\"></lib-template>\n </div>\n <div *ngIf=\"creating\">\n <lib-template [currentOrg]=\"currentOrg\" [zoneID]=\"zoneIDForNewTemplate\"\n (createdTemplate)=\"onCreatedTemplate($event)\"></lib-template>\n </div>\n </div>\n <div class=\"col-md-4 col-lg-5\" *ngIf=\"isAddingBatch\">\n <lib-create-batch [template]=\"chosenTemplate\" (createdMissions)=\"onUpdatedEvent($event)\"></lib-create-batch>\n </div>\n <ng-template #deleteUsers let-modal>\n <div class=\"modal-header\">\n <h4 class=\"modal-title\" id=\"modal-basic-title\">{{\"Delete users\" | translate}}\n </h4>\n <button type=\"button\" class=\"close\" aria-label=\"Close\" (click)=\"modalRef.close()\">\n <span aria-hidden=\"true\">×</span>\n </button>\n </div>\n <div class=\"modal-body\">\n <div class=\"column align-items-center\">\n <div class=\"row\" style=\"padding: 0 1.25rem;\">\n <ul class=\"container-fluid list-group list-group-flush\">\n <li class=\"list-group-item\" *ngFor=\"let object of currentTemplateUsers\">\n <input type=\"checkbox\" [(ngModel)]=\"object.checked\"> {{object.profile.email}}\n </li>\n </ul>\n </div>\n\n <div class=\"row\" style=\"padding: 1.25rem;\">\n <button class=\"btn btn-outline-primary rounded-pill mr-4\" (click)=\"onDeleteChosen()\">{{\"Apply\" |\n translate}}\n </button>\n <button class=\"btn btn-outline-primary rounded-pill\" (click)=\"modalRef.close()\">{{\"Cancel\" |\n translate}}\n </button>\n </div>\n </div>\n </div>\n </ng-template>\n </div>\n</div>", styles: [".add-button{width:-moz-fit-content;width:fit-content;margin-left:.5rem}li.ml-4{margin-left:3rem}.action-button-container{display:flex;justify-content:space-evenly}.action-button-container .action-button{width:145px!important}\n"] }]
|
|
2030
2030
|
}], ctorParameters: function () { return [{ type: i1.BaseUserService }, { type: i1.MissionService }, { type: i2.Router }, { type: i3.TranslateService }, { type: i1.SpaceService }, { type: i1.ZoneService }, { type: i4.NgbModal }, { type: i1.TemplateService }]; }, propDecorators: { modal: [{
|
|
2031
2031
|
type: ViewChild,
|
|
2032
2032
|
args: ["deleteUsers"]
|
|
@@ -2053,10 +2053,10 @@ class AdminComponent {
|
|
|
2053
2053
|
}
|
|
2054
2054
|
}
|
|
2055
2055
|
AdminComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: AdminComponent, deps: [{ token: i1.BaseUserService }], target: i0.ɵɵFactoryTarget.Component });
|
|
2056
|
-
AdminComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: AdminComponent, selector: "lib-admin", ngImport: i0, template: "<div class=\"container-fluid\">\
|
|
2056
|
+
AdminComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: AdminComponent, selector: "lib-admin", ngImport: i0, template: "<div class=\"container-fluid\">\n <div class=\"row\">\n <div class=\"d-none col-md-3 col-lg-2 d-md-block sidebar\">\n <ul class=\"nav nav-pills flex-column\">\n <li class=\"nav-item\"><a class=\"nav-link\" routerLink=\"/admin/users\" [routerLinkActive]=\"['active']\"\n #rlaUser=\"routerLinkActive\">\n <img class=\"big-icon\" [src]=\"getIcon(['menu', 'user'], rlaUser.isActive)\" />{{'Users' |\n translate}}</a></li>\n <li class=\"nav-item\" *ngIf=\"isSmarterPlanUser\"><a class=\"nav-link\" routerLink=\"/admin/clients\"\n [routerLinkActive]=\"['active']\" #rlaOrganization=\"routerLinkActive\">\n <img class=\"big-icon\"\n [src]=\"getIcon(['menu', 'organisation'], rlaOrganization.isActive)\" />{{'Clients' |\n translate}}</a></li>\n <li class=\"nav-item\" *ngIf=\"isMuseumModule\" data-testid=\"admin-visitor-btn\"> <a class=\"nav-link\"\n routerLink=\"/admin/visitors\" [routerLinkActive]=\"['active']\" #rlaVisitor=\"routerLinkActive\">\n <img class=\"big-icon\" [src]=\"getIcon(['menu', 'user'], rlaVisitor.isActive)\" />\n {{'Museum Visitors' | translate }}</a></li>\n </ul>\n </div> <!-- ml-sm-auto -->\n <main role=\"main\" class=\"col-12 col-md-9 col-lg-10 px-md-4\">\n <router-outlet></router-outlet>\n </main>\n </div>\n</div>", styles: [""], directives: [{ type: i2.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }, { type: i2.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.RouterOutlet, selector: "router-outlet", outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }], pipes: { "translate": i3.TranslatePipe } });
|
|
2057
2057
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: AdminComponent, decorators: [{
|
|
2058
2058
|
type: Component,
|
|
2059
|
-
args: [{ selector: 'lib-admin', template: "<div class=\"container-fluid\">\
|
|
2059
|
+
args: [{ selector: 'lib-admin', template: "<div class=\"container-fluid\">\n <div class=\"row\">\n <div class=\"d-none col-md-3 col-lg-2 d-md-block sidebar\">\n <ul class=\"nav nav-pills flex-column\">\n <li class=\"nav-item\"><a class=\"nav-link\" routerLink=\"/admin/users\" [routerLinkActive]=\"['active']\"\n #rlaUser=\"routerLinkActive\">\n <img class=\"big-icon\" [src]=\"getIcon(['menu', 'user'], rlaUser.isActive)\" />{{'Users' |\n translate}}</a></li>\n <li class=\"nav-item\" *ngIf=\"isSmarterPlanUser\"><a class=\"nav-link\" routerLink=\"/admin/clients\"\n [routerLinkActive]=\"['active']\" #rlaOrganization=\"routerLinkActive\">\n <img class=\"big-icon\"\n [src]=\"getIcon(['menu', 'organisation'], rlaOrganization.isActive)\" />{{'Clients' |\n translate}}</a></li>\n <li class=\"nav-item\" *ngIf=\"isMuseumModule\" data-testid=\"admin-visitor-btn\"> <a class=\"nav-link\"\n routerLink=\"/admin/visitors\" [routerLinkActive]=\"['active']\" #rlaVisitor=\"routerLinkActive\">\n <img class=\"big-icon\" [src]=\"getIcon(['menu', 'user'], rlaVisitor.isActive)\" />\n {{'Museum Visitors' | translate }}</a></li>\n </ul>\n </div> <!-- ml-sm-auto -->\n <main role=\"main\" class=\"col-12 col-md-9 col-lg-10 px-md-4\">\n <router-outlet></router-outlet>\n </main>\n </div>\n</div>", styles: [""] }]
|
|
2060
2060
|
}], ctorParameters: function () { return [{ type: i1.BaseUserService }]; } });
|
|
2061
2061
|
|
|
2062
2062
|
class GuideGuard {
|