{"version":3,"file":"app-a3dad144.ad6ac066787bc163.bundle.js","mappings":"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","sources":["webpack://client-app/./src/app/administration/classifications/classifications-list.scss","webpack://client-app/./src/app/administration/classifications/view-classification.scss","webpack://client-app/./src/app/administration/org-info/org-info.scss","webpack://client-app/./src/app/administration/browse-ao/browse-ao.html","webpack://client-app/./src/app/administration/classifications/classifications-list.html","webpack://client-app/./src/app/administration/classifications/view-classification.html","webpack://client-app/./src/app/administration/org-info/org-info.html","webpack://client-app/./config/environment.json","webpack://client-app/./src/app-settings.json","webpack://client-app/./src/app/administration/browse-ao/browse-ao.ts","webpack://client-app/./src/app/administration/classifications/view-classification.ts","webpack://client-app/./src/app/administration/classifications/classifications-list.ts","webpack://client-app/./src/app/administration/org-info/org-info.ts"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.classifications-list .headers{grid-template-columns:1fr}.classifications-list .main .element{grid-template-columns:1fr}.classifications-list .cell-wrapper{display:grid;grid-template-columns:1fr}.classifications-list .cell-wrapper div .space_trash{margin-right:20px !important}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/app/administration/classifications/classifications-list.scss\"],\"names\":[],\"mappings\":\"AAiBC,+BACC,yBAPsB,CAUtB,qCACC,yBAXqB,CAetB,oCACC,YAAA,CACA,yBAjBqB,CAmBpB,qDACC,4BAAA\",\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `ux-dialog.view-classification{height:90vh;padding:15px 15px 0px 15px}ux-dialog.view-classification ux-dialog-body{min-height:0px}ux-dialog.view-classification ux-dialog-body div.scroll-list{overflow-y:scroll;padding-left:15px;padding-right:15px}ux-dialog.view-classification ux-dialog-footer{padding-left:0px !important;padding-right:0px !important}ux-dialog.view-classification .dialog-header-content{padding-right:0px !important;padding-bottom:10px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/app/administration/classifications/view-classification.scss\"],\"names\":[],\"mappings\":\"AACA,8BACI,WAAA,CASH,0BAAA,CARA,6CACC,cAAA,CACA,6DAAA,iBAAA,CACC,iBAAA,CACA,kBAAA,CAMF,+CACC,2BAAA,CACA,4BAAA,CAED,qDACC,4BAAA,CACA,mBAAA\",\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.org-info-container{margin:15px;width:calc(100% - 30px);height:calc(100vh - 4em - 30px);overflow:auto}.org-info-container-body{min-width:300px;padding:15px}.org-info-container-body .org-user-header{margin-bottom:0}.org-info-container-body .org-users-list .org-users-list-item-header,.org-info-container-body .org-users-list .org-users-list-item{display:grid;grid-template-columns:1fr 1fr 12.5em}.org-info-container-body .org-users-list .org-users-list-item-header .cell,.org-info-container-body .org-users-list .org-users-list-item .cell{line-height:3.5em;height:3.5em;border-bottom:1px solid rgba(0,0,0,.175);padding:0 5px 0 5px}.org-info-container-body .org-users-list .org-users-list-item-header .cell-text,.org-info-container-body .org-users-list .org-users-list-item .cell-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.org-info-container-body .org-users-list .org-users-list-item-header{font-weight:800}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/app/administration/org-info/org-info.scss\",\"webpack://./src/resources/customized-styles/variables.scss\"],\"names\":[],\"mappings\":\"AAGA,oBACI,WCaK,CDZL,uBAAA,CACA,+BAAA,CACA,aAAA,CACA,yBACI,eAAA,CACA,YCOC,CDND,0CACI,eAAA,CAGA,mIACI,YAAA,CACA,oCAAA,CACA,+IACI,iBAAA,CACA,YAAA,CACA,wCAAA,CACA,mBAAA,CAEJ,yJACI,eAAA,CACA,sBAAA,CACA,kBAAA,CAGR,qEACI,eAAA\",\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Module\nvar code = ` `;\n// Exports\nexport default code;","// Module\nvar code = ` `;\n// Exports\nexport default code;","// Module\nvar code = ` `;\n// Exports\nexport default code;","// Module\nvar code = ` `;\n// Exports\nexport default code;","module.exports = {\"debug\":false,\"testing\":false,\"env_src\":\"prod_env\",\"bimviewerUrl\":\"https://bimviewer-prod.azurewebsites.net\",\"azureWebJobsUrl\":\"https://bg-worker-prod-wa.azurewebsites.net\",\"azureWebJobsUrl2\":\"https://bg-worker-wa.azurewebsites.net\",\"azureFunctionsUrl\":\"https://prod-my-function-app-name.azurewebsites.net\",\"azureFunctionsUrl2\":\" https://my-function-app-name.azurewebsites.net/api/HttpTrigger1?code=IcCm7U7iTllCxPfGo7TxBJ_nupiL79sO3zPaKqUk1bmTAzFub7R9YQ==\",\"azureFunctionsUrl3\":\" https://my-function-app-name.azurewebsites.net\",\"not\":\"https://localhost:5300\"}","module.exports = {\"devApiUrl\":\"http://localhost:5000\",\"ajour\":{\"phone\":\"+45 7020 0409\",\"email\":\"mail@ajoursystem.dk\",\"website\":\"https://ajoursystem.com\",\"logoWhiteUrl\":\"/images/ajour_white.png\"},\"eg\":{\"phone\":\"+45 72602060\",\"email\":\"mail@ajoursystem.dk\",\"website\":\"https://eg.dk/it/eg-collab/\",\"logoWhiteUrl\":\"/images/EG-Collab-White.svg\"},\"language\":\"en\",\"externalUrls\":{\"signUp\":\"https://signup.ajourobjects.com/Users/Signup\",\"imageServer\":\"https://signup.ajourobjects.com/manu2\"},\"manufacturerOrgId\":\"00000000-feed-dada-1ced-c0ffee000000\",\"version\":\"1.0.0.58\"}","import { ObjectListBuilder, ObjectListSourceStrategy } from 'app/services/object-list/object-list-builder';\r\nimport { ObjectListManager } from 'app/services/object-list/object-list-manager';\r\nimport { autoinject } from 'aurelia-framework';\r\nimport { AppContextService } from '../../services/app-context-service';\r\n\r\n@autoinject\r\nexport class BrowseAO {\r\n public searchActivated: boolean = true;\r\n public objects: ObjectListManager | undefined;\r\n //public filters:Object[];\r\n\r\n constructor(\r\n\t objListBuilder: ObjectListBuilder,\r\n\t private appContext: AppContextService\r\n ) {\r\n\t console.log('BrowseAO-ctor');\r\n\t let orgId: string =\r\n\t\t (appContext.currentUser ? appContext.currentUser.organization.id : 'no-user-logged-in in browse-ao');\r\n\t if (!appContext.currentUser) { console.warn('browse-ao, no user logged in', appContext); }\r\n\r\n\t let strategy: ObjectListSourceStrategy | undefined = objListBuilder.ForAjourObjects_OLB(orgId);\r\n if (strategy) {\r\n this.objects = strategy.BuildServerSide(); \r\n }\r\n }\r\n\r\n\r\n /*\r\n Hvad var det nu, alt det her nedenfor har forsøgt at gøre, hvis det var aktivt..?\r\n\r\n async activate(params): Promise {\r\n if (Boolean(params) && Boolean(params.typeName) && Boolean(params.typeId)) { \r\n this.activateSearch(); \r\n this.objects.initialize(); \r\n let typeFilter = this.objects.columns.static.find(x => x.targetType === ObjectValues.targetTypes.type);\r\n if(!Boolean(typeFilter)) return;\r\n typeFilter.value = params.typeName;\r\n typeFilter.value = params.typeId;\r\n typeFilter.selectedComparisonOption = ObjectValues.comparisonMethods.hasRelation;\r\n typeFilter.selectedSortingOption = ObjectValues.sortingMethods.ascending;\r\n typeFilter.isLocked = true;\r\n typeFilter.hide = true;\r\n await this.objects.columns.setMainSearchFilter(typeFilter);\r\n await this.objects.showAsDeck();\r\n if (this.objects.shownItems.length != 1){ \r\n //This depends on a single result from the id based typeFilter\r\n // console.log(\"Error: result from id based type filter was not 1 when presenting object sharelink\");\r\n } \r\n let row = this.objects.shownItems[0]; \r\n if(Boolean(row)) { \r\n row.value[\"typeName\"] = params.typeName;\r\n row.value[\"typeId\"] = params.typeId;\r\n \t\t console.log('browse-ao presents row:', row);\r\n this.modal.OpenModal(ObjectPresentation, { type: row.value, filters: this.objects.columns.applied });\r\n }\r\n }\r\n }\r\n\r\n // again, WHY are we doing all this?\r\n private getFamilyFilters(objectType: ObjectDetails, filters: ObjectFilter[]): ObjectFilter[]{\r\n let familyFilters = [...filters];\r\n let familyFilter = filters.find(x => x.targetType == ObjectValues.targetTypes.family);\r\n let manufacturerFilter = filters.find(x => x.targetType == ObjectValues.targetTypes.manufacturer);\r\n if(!Boolean(familyFilter)){\r\n familyFilter = ObjectValues.staticFiltersAll.find(x => x.targetType == ObjectValues.targetTypes.family);\r\n }\r\n if(!Boolean(manufacturerFilter)){\r\n manufacturerFilter = ObjectValues.staticFiltersAll.find(x => x.targetType == ObjectValues.targetTypes.manufacturer);\r\n }\r\n this.replaceFilter(familyFilter, objectType.familyId, familyFilters);\r\n this.replaceFilter(manufacturerFilter, objectType.manufacturerId, familyFilters);\r\n return familyFilters;\r\n }\r\n\r\n // this is a helper for getFamilyFilters: (what does 'replaceFilter' do?)\r\n private replaceFilter(filter: ObjectFilter, targetId: string, familyFilters: ObjectFilter[]){\r\n let copy = Object.assign({}, filter);\r\n copy.selectedComparisonOption = ObjectValues.comparisonMethods.hasRelation;\r\n copy.value = targetId;\r\n if (!Boolean(copy.selectedSortingOption)){\r\n copy.selectedSortingOption = ObjectValues.sortingMethods.ascending;\r\n }\r\n let index = familyFilters.indexOf(filter);\r\n if(index < 0)\r\n familyFilters.unshift(copy);\r\n else\r\n familyFilters.splice(index, 1, copy);\r\n }\r\n \r\n public activateSearch() {\r\n this.searchActivated = !this.searchActivated;\r\n } \r\n */ \r\n}\r\n","import { autoinject } from 'aurelia-framework';\r\nimport { DialogController } from 'aurelia-dialog';\r\nimport { ApiClient } from 'app/services/api-client';\r\nimport { ClassificationModel, NodeModel } from 'app/components/object/object-grid/cell/tree-node';\r\nimport { ClassificationDto } from 'app/models/project-dto';\r\n\r\nimport { PLATFORM } from 'aurelia-pal';\r\nimport { useView } from 'aurelia-framework';\r\nimport { AppContextService } from 'app/services/app-context-service';\r\n\r\n@useView(PLATFORM.moduleName('app/administration/classifications/view-classification.html'))\r\n@autoinject\r\nexport class ViewClassification {\r\n\tmodel:ClassificationDto | undefined;\r\n\tclassification:ClassificationModel | undefined;\r\n\tnodes : NodeModel[] = [];\r\n\r\n\tconstructor(private api: ApiClient, protected dialog: DialogController, private appContext: AppContextService) { console.log('ViewClassification.ctor'); }\r\n\tasync activate(model:ClassificationDto) { \r\n\t\tconsole.log('ViewClassification.activate, model:', model); \r\n\t\tthis.model = model; \r\n\t\tawait this.getClassificationFromServer();\r\n\t} \r\n\r\n\tasync getClassificationFromServer() {\r\n\t\tlet clId = this.model?.id;\t\t\r\n\t\tconst currentUser_OrgId = this.appContext.currentUserOrgId(); // this.api.appContext.currentUser?.organization.id;\r\n\t\tlet cm:ClassificationModel = await this.api.orgByToken(currentUser_OrgId).get(`Classification/GetClassificationNodes/${clId}`).jsonResult(); \r\n\t\t\r\n\t\tthis.classification = ClassificationModel.BuildFromServer(cm);\r\n\t\tthis.nodes = this.classification.nodes;\r\n\t}\r\n\r\n}\r\n","import { json } from 'aurelia-fetch-client';\r\nimport { ListService, SortResult } from '../../services/list-service';\r\nimport { ApiClient } from 'app/services/api-client';\r\nimport { Router } from 'aurelia-router';\r\nimport { autoinject } from \"aurelia-framework\";\r\nimport {ClassificationDto, ClassificationList} from \"app/models/project-dto\";\r\nimport { EventAggregator, Subscription } from 'aurelia-event-aggregator';\r\nimport { ContextMenuService } from 'app/services/context-menu-service';\r\nimport {ModalService} from \"../../services/modal-service\";\r\nimport {ClassificationUpload} from \"../../components/file-upload/specific-uploads/classification-upload\";\r\nimport {ImportClassificationModel} from \"../../models/viewmodels/import-classification-model\";\r\nimport {I18N} from \"aurelia-i18n\";\r\nimport {AppContextService} from \"../../services/app-context-service\";\r\nimport { DialogCancellableOpenResult, DialogCloseResult } from 'aurelia-dialog';\r\nimport { ViewClassification } from './view-classification';\r\n\r\n@autoinject\r\nexport class ClassificationsList {\r\n\tpublic classifications: ClassificationList[] = [];\r\n\tpublic selectedClassifications: ClassificationList[] = [];\r\n\tpublic allSelected: boolean = false;\r\n\tpublic column: string = \"name\";\r\n\tpublic displayState: { icon: string, direction: string } | undefined;\r\n\tpublic searchTerm: string = \"\";\r\n\tpublic viewContext: string;\r\n\tpublic isSuperAdmin: boolean = false;\r\n\tprivate subscriptions: Subscription[] = [];\r\n\tconstructor(private router: Router, private apiClient: ApiClient, private i18n: I18N, private modal: ModalService, private appContext: AppContextService, private events: EventAggregator, private contextMenuService: ContextMenuService, private listService: ListService) {\r\n\t\tthis.viewContext = \"TopBar\";\r\n\t}\r\n\tasync activate() {\r\n\t\tawait this.fetchClassifications();\r\n\t\tthis.displayState = { icon: \"fa-sort-up\", direction: \"ascending\" };\r\n\r\n\t\tconst searchHandler = (data: any) => this.handleSearchEvent(data);\r\n\t\tthis.subscriptions = [\r\n\t\t\tthis.events.subscribe(this.viewContext + \":SearchTermChanged\", searchHandler),\r\n\t\t\tthis.events.subscribe(\"global:org-changed\", async () => this.reloadPage())\r\n\r\n\t\t];\r\n\t\tthis.isSuperAdmin = this.appContext?.currentUser?.roles.includes(\"AOC_SuperAdmin\") ? this.appContext?.currentUser?.roles.includes(\"AOC_SuperAdmin\") : false;\r\n\t\t\r\n\t}\r\n\tasync reloadPage(): Promise {\r\n\t\tawait this.fetchClassifications();\r\n\t}\r\n\t\r\n\tdetached() { this.subscriptions.forEach(subscription => ( subscription.dispose() )); }\r\n\tprivate async fetchClassifications(){\r\n\t\tconst currentUser_OrgId = this.appContext.currentUserOrgId(); // this.apiClient.appContext.currentUser?.organization.id;\r\n\t\tthis.classifications = await this.apiClient.orgByToken(currentUser_OrgId).get('Classification/GetClassifications').jsonResult();\r\n\t}\r\n\tprivate handleSearchEvent(data: string) { this.searchTerm = data; } \r\n\tpublic async sortBy(columnName: string) {\r\n\t\t/*\r\n\t\tawait this.listService.sortBy(columnName).then( (result:SortResult) => {\r\n\t\t\tthis.column = result.column;\r\n\t\t\tthis.displayState = result.displayState;\t\t\t \r\n\t\t});\r\n\t\t*/\r\n\t\tlet result:SortResult = await this.listService.sortBy(columnName);\r\n\t\tthis.column = result.column;\r\n\t\tthis.displayState = result.displayState;\r\n\t}\r\n\tpublic async toggleClassification() {\r\n\t\tlet result = await this.listService.toggleElement(this.classifications);\t\t\r\n\t\tthis.selectedClassifications = result.selected;\r\n\t\tthis.allSelected = result.allSelected;\r\n\t}\r\n\tpublic async toggleAll() {\r\n\t\tlet result = await this.listService.toggleAll(this.classifications);\r\n\t\tif (result) {\r\n\t\t\tthis.classifications = result.selected;\r\n\t\t\tthis.allSelected = result.allSelected;\r\n\t\t}\r\n\t}\r\n\r\n\tasync classificationClicked(c:ClassificationList) { this.viewClassification1(c); }\r\n\tasync viewClassification1(c:ClassificationDto) { this.modal.OpenModal(ViewClassification, c); }\r\n\r\n\tasync deleteClassificationClicked(c:ClassificationList):Promise {\r\n\t\tlet s = `Are you sure you want to delete classification ${c.name} ? (${c.id})`;\r\n\t\tlet dlg = await this.modal.OpenConfirm('Confirm Deletion',s).whenClosed();\r\n\t\tif (!dlg.wasCancelled) { await this.implDeleteClassification(c); }\r\n\t\treturn false; // true would propagate.\r\n\t}\r\n\r\n\tasync implDeleteClassification(c:ClassificationList) {\r\n\t\tlet path = `Classification/DeleteClassification/${c.id}`;\r\n\t\tconst currentUser_OrgId = this.appContext.currentUserOrgId(); // this.apiClient.appContext.currentUser?.organization.id;\r\n\r\n\t\tlet status = await this.apiClient.orgByToken(currentUser_OrgId).postJson(path, {}) \r\n\t\t .handleErrorUsingReason(this.i18n.tr('Error_Title_Generic'))\r\n\t\t .jsonResult(); \r\n\t\tconsole.log('delete status :', status);\r\n\t\t//await this.reportAnyError(status);//implDeleteClassification\r\n\t\t// we must update UI to not show the deleted item:\r\n\t\tthis.removeDeletedItemFromList(c);\r\n\t}\r\n\tremoveDeletedItemFromList(c: ClassificationList) {\r\n\t\tlet ix = this.classifications.indexOf(c);\r\n\t\tif (ix < 0) {return;} // give up.\r\n\t\tthis.classifications.splice(ix);\r\n\t}\r\n\r\n\tasync openImportModal() {\r\n\t\tlet x:DialogCloseResult = await this.modal.OpenModal(ClassificationUpload).whenClosed();\r\n\t\tif (!x.wasCancelled) { await this.doUpload(x.output); }\r\n\t}\r\n\r\n\tpublic async doUpload(model: ImportClassificationModel) {\r\n\t\tlet formData = new FormData();\r\n\t\tif (model.version != undefined && model.classificationType != undefined && model.files) {\r\n\t\t\tformData.append(\"Version\", model.version);\r\n\t\t\tformData.append(\"ClassificationType\", model.classificationType.toString());\r\n\t\t\tformData.append(\"File\", model.files[0]);\r\n\r\n\t\t\tconst currentUser_OrgId = this.appContext.currentUserOrgId(); // this.apiClient.appContext.currentUser?.organization.id;\r\n\t\t\tlet status:ImportStatus = await this.apiClient.orgByToken(currentUser_OrgId).postForm(\"Classification/UploadClassification\", formData)\r\n\t\t\t.handleErrorUsingReason(this.i18n.tr('Error_Title_Generic'))\r\n\t\t\t.jsonResult(); \r\n\t\t\tawait this.reportAnyError(status);//doUpload\r\n\r\n\t\t\tconsole.log('(reload classifs)');\r\n\t\t\tawait this.fetchClassifications();\r\n\t\t} else {\r\n\t\t\tconsole.log('doUpload, err, model was:', model);\r\n\t\t}\r\n\t}\r\n\r\n\tasync reportAnyError(status:ImportStatus) {\t\r\n\t\tconsole.log('status:', status);\r\n\t\tlet msg:string = '?';\r\n\t\tif (typeof status != 'object') { // JG: this is not a sufficient test, but it will do.\r\n\t\t\tmsg = `(not even an ImportStatus. ${status}) `;\r\n\t\t} else {\r\n\t\t\tif (!status.errs) { status.errs = []; }\r\n\t\t\tif (status.Message) { // In case of exception\r\n\t\t\t\tstatus.errs.unshift(status.Message); \r\n\t\t\t}\r\n\t\t\tif (status.errs.length == 0) { return; }\r\n\r\n\t\t\tmsg = status.errs.join(\"\\n\");\r\n\t\t}\r\n\r\n\t\tawait this.modal.OpenLog( this.i18n.tr('Warnings'), msg).whenClosed();\t\r\n\t}\r\n}\r\n\r\nexport interface ImportStatus {\r\n\terrs:string[]; // should have length 0 on success.\r\n\tMessage: string; // in case of exception.\r\n}\r\n","import { DialogCancellableOpenResult, DialogCloseResult } from 'aurelia-dialog';\r\nimport {autoinject} from 'aurelia-framework'; //, bindable\r\nimport { ApiClient } from 'app/services/api-client';\r\nimport {EventAggregator, Subscription} from 'aurelia-event-aggregator';\r\nimport { OrgInfoDto, OrgUserDto } from 'app/models/org-info-dto';\r\nimport { OrgRole, UIOrgRoleNames } from 'app/models/org-role';\r\nimport { AppContextService } from 'app/services/app-context-service';\r\nimport { ModalService } from 'app/services/modal-service';\r\n\r\n@autoinject\r\nexport class OrgInfo {\r\n private orgInfo: OrgInfoDto | undefined;\r\n private subscriptions: Subscription[] = [];\r\n private orgRoles: string[] = Object.keys(OrgRole).filter((v) => isNaN(Number(v))); // JG: Øh, virker den ide?\r\n\tisChangeDisabled:boolean = true; //true; // should follow role/permissions.\r\n\r\n constructor(public appContext: AppContextService, public apiClient: ApiClient, public events: EventAggregator, public modal: ModalService) { console.log('org-info.ctor'); }\r\n \r\n async activate(): Promise {\r\n\t\tconsole.log('org-info.activate');\r\n let token: string | null = sessionStorage.getItem('org_access_token');\r\n if (token != null) { await this.initForOrg(); } else { console.warn('(org-info - no-token)'); }\r\n }\r\n\r\n\t// They must do the same, so use same method:\r\n async reloadPage(): Promise { console.log('org-info.reloadPage'); await this.initForOrg(); }\r\n\r\n\tasync initForOrg() {\r\n\t\tconst currentUser_OrgId = this.appContext.currentUserOrgId(); \r\n\t\tthis.orgInfo = await this.apiClient.orgByToken(currentUser_OrgId).get(\"OrgInfo/GetOrgUserInfo\").jsonResult();\r\n\t\tthis.isChangeDisabled = !this.calcMayAdmin(this.orgInfo!);\r\n\t\tconsole.log('disabled?', this.isChangeDisabled);\r\n\t}\r\n\r\n\tcalcMayAdmin(orgInfo: OrgInfoDto): boolean {\r\n\t\tconst curUserId = this.appContext.currentUser?.id;\r\n\t\tif (!curUserId) { console.log('(no cur user'); return false; }\r\n\t\tif (!orgInfo) { console.log('(no orgInfo'); return false; }\r\n\t\tif (!orgInfo.orgUsers) { console.log('(no orgUser'); return false; }\r\n\t\tif (orgInfo.orgUsers.length == 0) { console.log('(zero orgUsers'); return false; }\r\n\r\n\t\tconst thisUser = orgInfo.orgUsers.find(u => u.userId == curUserId);\r\n\t\tif (!thisUser) { console.log(`did not find user ${curUserId} in orgUsers`); return false; }\r\n\t\tif (thisUser.role != OrgRole.Org_Admin) { console.log('unexpected role:', thisUser.role); return false; }\r\n\t\treturn true;\r\n\t}\r\n\r\n async attached(): Promise {\r\n console.log(\"org-info:attached\");\r\n this.subscriptions = [ this.events.subscribe(\"global:org-changed\", async () => this.reloadPage()) ];\r\n }\r\n\r\n \r\n deactivate() { \r\n\t\tconsole.log('org-info.deactivate');\r\n\t\tthis.subscriptions.forEach(subscription => subscription.dispose() ); \r\n\t}\r\n\r\n getRoleName(role: number | string): string {\r\n\t\tconsole.log('org-info.getRoleName');\r\n\t\tif (typeof role === \"number\") {\r\n\t\t\treturn UIOrgRoleNames[OrgRole[role]];\r\n\t\t} else {\r\n\t\t\treturn UIOrgRoleNames[role];\r\n\t\t}\r\n\t}\r\n\r\n async setNewRoleForOrgUser(user: OrgUserDto, newRoleAsString:string): Promise { // button handler when you select an organisation.\r\n\t\tconst newRole:OrgRole = OrgRole[newRoleAsString];\r\n\t\tconsole.log('org-info.setNewRoleForOrgUser', newRoleAsString, newRole);\r\n\r\n\r\n\t\tif (await this.wouldRemoveLastAdmin(user, newRole)) { return; }\r\n\r\n\t\tconst currentUser_OrgId = this.appContext.currentUserOrgId(); // this.apiClient.appContext.currentUser?.organization.id;\r\n let result = await this.apiClient.orgByToken(currentUser_OrgId).postJson(\"OrgInfo/SetOrgRoleForUserId\", // NB, must verify this user is allowed to do this.\r\n\t\t\t{userId: user.userId, orgId: this.orgInfo?.orgId, role: newRole}\r\n\t )\r\n .response();\r\n\r\n if (result.statusCode == 200) {\r\n user.role = newRole; //OrgRole[roleAsString];\r\n if (user.userId == this.appContext.currentUser?.id) {\r\n this.events.publish(\"navigation:update-org-token\", this.orgInfo?.orgId);\r\n this.events.publish(\"navigation:update-prj-token\");//in-setNewRoleForOrgUser\r\n }\r\n return;\r\n }\r\n \r\n if (result.statusCode != 409) { this.modal.OpenMessage(\"Role change failed\",\"Changing the role did not succeed.\"); }\r\n }\r\n\t \r\n\tasync wouldRemoveLastAdmin(user: OrgUserDto, newRole:OrgRole):Promise {\r\n\t\tconst adminLoss = (user.role == OrgRole.Org_Admin && newRole != OrgRole.Org_Admin);\r\n\t\t// If we are not removing an admin, we would not be causing admin loss (based on invariant assumption).\r\n\t\t// (you could instead DEMAND we specify Admin, if we were already at 0.)\r\n\t\tif (!adminLoss) { return false; } \r\n\r\n\t\tconst adminCount = this.orgInfo!.orgUsers.filter(u=>u.role == OrgRole.Org_Admin).length;\r\n\t\tconst lastAdmin = (adminCount <= 1); // If we only had one and are removing one, we are losing admin.\r\n\t\tif (lastAdmin) {\r\n\t\t\tconst DCOR:DialogCancellableOpenResult = \r\n\t\t\tawait this.modal.OpenMessage(\"Role change failed\",\"This would remove the last remaining administrator.\"); \r\n\t\t\tconst DCR = !DCOR.wasCancelled ? await DCOR.closeResult : undefined;\r\n\t\t\tconst output = DCR?.output;\r\n\t\t}\r\n\t\treturn lastAdmin;\r\n\t}\r\n}\r\n"],"names":["___CSS_LOADER_EXPORT___","push","module","id","exports","BrowseAO","constructor","objListBuilder","appContext","searchActivated","console","log","orgId","currentUser","organization","warn","strategy","ForAjourObjects_OLB","this","objects","BuildServerSide","autoinject","ViewClassification","api","dialog","nodes","activate","model","getClassificationFromServer","clId","currentUser_OrgId","currentUserOrgId","cm","orgByToken","get","jsonResult","classification","ClassificationModel","BuildFromServer","useView","DialogController","ClassificationsList","router","apiClient","i18n","modal","events","contextMenuService","listService","classifications","selectedClassifications","allSelected","column","searchTerm","isSuperAdmin","subscriptions","viewContext","fetchClassifications","displayState","icon","direction","subscribe","data","handleSearchEvent","async","reloadPage","roles","includes","detached","forEach","subscription","dispose","sortBy","columnName","result","toggleClassification","toggleElement","selected","toggleAll","classificationClicked","c","viewClassification1","OpenModal","deleteClassificationClicked","s","name","OpenConfirm","whenClosed","wasCancelled","implDeleteClassification","path","status","postJson","handleErrorUsingReason","tr","removeDeletedItemFromList","ix","indexOf","splice","openImportModal","x","doUpload","output","formData","FormData","undefined","version","classificationType","files","append","toString","postForm","reportAnyError","msg","errs","Message","unshift","length","join","OpenLog","I18N","EventAggregator","OrgInfo","orgRoles","Object","keys","filter","v","isNaN","Number","isChangeDisabled","sessionStorage","getItem","initForOrg","orgInfo","calcMayAdmin","curUserId","orgUsers","thisUser","find","u","userId","role","Org_Admin","attached","deactivate","getRoleName","setNewRoleForOrgUser","user","newRoleAsString","newRole","wouldRemoveLastAdmin","response","statusCode","publish","OpenMessage","lastAdmin","DCOR","DCR","closeResult"],"sourceRoot":""}