{"version":3,"file":"app-a3dad144.68b4e1b5b87c8c4b.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\":\"AAWC,+BACC,yBAPsB,CAUtB,qCACC,yBAXqB,CAetB,oCACC,YAAA,CACA,yBAjBqB,CAmBpB,qDACC,4BAAA\",\"sourcesContent\":[\"@import \\\"src/resources/customized-styles/variables\\\";\\r\\n\\r\\n//$grid-template-columns: minmax(400px, 1fr) auto;\\r\\n//$grid-template-columns--header: calc(16px + #{$gutter} * 2) $grid-template-columns;\\r\\n//$grid-template-columns--element: calc(16px + #{$gutter} * 2) minmax(200px, 1fr);\\r\\n$grid-template-columns: 1fr;\\r\\n$grid-template-columns--header: $grid-template-columns;\\r\\n$grid-template-columns--element: $grid-template-columns;\\r\\n$grid-template-columns--element-values: $grid-template-columns;\\r\\n\\r\\n.classifications-list {\\t\\r\\n\\t.headers {\\r\\n\\t\\tgrid-template-columns: $grid-template-columns--header;\\r\\n\\t}\\r\\n\\t.main {\\r\\n\\t\\t.element {\\r\\n\\t\\t\\tgrid-template-columns: $grid-template-columns--element;\\r\\n\\t\\t}\\r\\n\\t}\\t\\r\\n\\t.cell {\\r\\n\\t\\t&-wrapper {\\r\\n\\t\\t\\tdisplay: grid;\\r\\n\\t\\t\\tgrid-template-columns: $grid-template-columns--element-values;\\r\\n\\t\\t\\tdiv {\\r\\n\\t\\t\\t\\t.space_trash {\\r\\n\\t\\t\\t\\t\\tmargin-right: 20px !important;\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\t}\\r\\n}\\r\\n\\r\\n\"],\"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\",\"sourcesContent\":[\"\\r\\nux-dialog.view-classification { // NB: ux-dialog er flex(column), men det rører jeg ikke direkte ved, jeg PÅVIRKER det bare med min-height på dialog-body!\\r\\n height: 90vh;\\r\\n\\tux-dialog-body {\\t\\t\\r\\n\\t\\tmin-height: 0px; //flex-grow: 1; //flex-shrink: 1; //flex-basis: 0;\\r\\n\\t\\tdiv.scroll-list { overflow-y: scroll; \\r\\n\\t\\t\\tpadding-left: 15px;\\r\\n\\t\\t\\tpadding-right: 15px;\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\r\\n\\tpadding: 15px 15px 0px 15px; \\r\\n\\r\\n\\tux-dialog-footer { // JG: I shouldn't do that, I'm fighting bootstrap here.\\r\\n\\t\\tpadding-left: 0px !important;\\r\\n\\t\\tpadding-right: 0px !important;\\r\\n\\t}\\r\\n\\t.dialog-header-content { // JG: I shouldn't do that, I'm fighting bootstrap here.\\r\\n\\t\\tpadding-right: 0px !important;\\r\\n\\t\\tpadding-bottom: 10px;\\r\\n\\t}\\t\\r\\n}\\r\\n\"],\"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,WCMK,CDLL,uBAAA,CACA,+BAAA,CACA,aAAA,CACA,yBACI,eAAA,CACA,YAAA,CACA,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\",\"sourcesContent\":[\"@import \\\"src/resources/customized-styles/variables\\\";\\r\\n@import \\\"src/resources/styling-admin\\\";\\r\\n\\r\\n.org-info-container {\\r\\n margin: $gutter;\\r\\n width: calc(100% - ($gutter * 2));\\r\\n height: calc(100vh - $top-bar-height - ($gutter * 2));\\r\\n overflow: auto;\\r\\n &-body {\\r\\n min-width: 300px;\\r\\n padding: $gutter;\\r\\n .org-user-header {\\r\\n margin-bottom: 0;\\r\\n }\\r\\n .org-users-list {\\r\\n .org-users-list-item-header, .org-users-list-item {\\r\\n display: grid;\\r\\n grid-template-columns: 1fr 1fr 12.5em;\\r\\n .cell {\\r\\n line-height: 3.5em;\\r\\n height: 3.5em;\\r\\n border-bottom: 1px solid $border-color;\\r\\n padding: 0 5px 0 5px; \\r\\n }\\r\\n .cell-text {\\r\\n overflow: hidden;\\r\\n text-overflow: ellipsis;\\r\\n white-space: nowrap;\\r\\n }\\r\\n }\\r\\n .org-users-list-item-header {\\r\\n font-weight: 800;\\r\\n }\\r\\n }\\r\\n }\\r\\n}\",\"$text-color: #333;\\r\\n$accent: #00B3C9;\\r\\n$accent-15pct: #D9F4F7;\\r\\n$bs-default: #f1f3f4;\\r\\n$grey: #dddddd;\\r\\n$grey-light: #efefef;\\r\\n$grey-lighter: #F0F3F4;\\r\\n$grey-darker: #A5A3A3;\\r\\n$white-hsl-97: hsla(0deg, 0%, 97%, 1);\\r\\n\\r\\n$gutter: 15px;\\r\\n\\r\\n$box-shadow: 0 0 0.25rem rgba(0, 0, 0, 0.175);\\r\\n$box-shadow-right: 0.05rem 0 0.25rem rgba(0, 0, 0, 0.175);\\r\\n$box-shadow-left: -0.05rem 0 0.25rem rgba(0, 0, 0, 0.175);\\r\\n$box-shadow-color: rgba(0, 0, 0, 0.175);\\r\\n\\r\\n$border-color: rgba(0, 0, 0, 0.175);\\r\\n\\r\\n\\r\\n// Showroom header\\r\\n$showroom-header-height: 350px;\\r\\n$showroom-header-height-small: 150px;\\r\\n$showroom-header-height-mobile: 200px;\\r\\n\\r\\n// Navigation\\r\\n$nav-width: 275px;\\r\\n$nav-width-collapsed: 50px;\\r\\n$nav-height-mobile: 50px;\\r\\n\\r\\n// Top bar\\r\\n$top-bar-height: 4em;\\r\\n\\r\\n// CSS grid table\\r\\n$css-grid-header-height: calc(4em + 1px);\\r\\n\\r\\n// Object Presentation\\r\\n$object-presentation-left-content-width: 250px;\\r\\n$object-presentation-left-content-width-lg: 350px;\\r\\n$object-presentation-img-height: 250px;\\r\\n\\r\\n\\r\\n// Card deck\\r\\n$card-height: 250px;\\r\\n\\r\\n\\r\\n// Select\\r\\n$select-min-width: 200px;\\r\\n\\r\\n\\r\\n// Modal\\r\\n$modal-header-height: 50px;\\r\\n$modal-footer-height: 50px;\\r\\n\\r\\n// Object Properties\\r\\n$object-properties-width: 480px;\\r\\n$object-properties-width--detailed: 560px;\\r\\n$object-properties-width-mobile: 100vw;\\r\\n$object-properties-width-mobile--detailed: 100vw;\\r\\n$object-properties-width-tablet: 480px;\\r\\n$object-properties-width-tablet--detailed: 560px;\\r\\n\\r\\n// Notification Center\\r\\n$notification-center-width: 500px;\\r\\n\\r\\n// 7.0 z-index Setting\\r\\n\\r\\n$btn-scroll-to-top-zindex: 1020 !default;\\r\\n$content-zindex: 1020 !default;\\r\\n$float-submenu-zindex: 1020 !default;\\r\\n$footer-zindex: 1020 !default;\\r\\n$header-zindex: 1020 !default;\\r\\n$header-fixed-zindex: 1040 !default;\\r\\n$sidebar-zindex: 1010 !default;\\r\\n$top-menu-zindex: 1015 !default;\\r\\n$theme-panel-zindex: 1020 !default;\\r\\n$page-loader-zindex : 9999 !default;\\r\\n$page-title-zindex: 1020 !default;\\r\\n$pace-loader-zindex: 1030 !default;\\r\\n$panel-expand-zindex: 1080 !default;\\r\\n\\r\\n// 2.0 RTL Setting\\r\\n\\r\\n$enable-rtl: false !default;\\r\\n\\r\\n// 6.0 App Component Setting\\r\\n\\r\\n$boxed-layout-width: rem(1280px) !default;\\r\\n$content-padding-x: rem(30px) !default;\\r\\n$content-padding-y: rem(20px) !default;\\r\\n$content-padding-x-sm: rem(20px) !default;\\r\\n$content-padding-y-sm: rem(20px) !default;\\r\\n$header-height: rem(50px) !default;\\r\\n$header-height-sm: rem(50px) !default;\\r\\n$sidebar-width: rem(220px) !default;\\r\\n$sidebar-minified-width: rem(60px) !default;\\r\\n$sidebar-wide-width: rem(250px) !default;\\r\\n$top-menu-height: rem(40px) !default;\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","module.exports = \"\\r\\n\";","module.exports = \"\\r\\n\";","module.exports = \"\\r\\n\";","module.exports = \"\";","module.exports = {\"debug\":false,\"testing\":false,\"env_src\":\"prod_env\",\"bimviewerUrl\":\"https://bimviewer-prod.azurewebsites.net\",\"azureWebJobsUrl\":\"https://bg-worker-wa.azurewebsites.net\",\"azureWebJobsUrl2\":\"https://bg-worker-wa.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\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) { 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\tlet cm:ClassificationModel = await this.api.orgByToken.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\tthis.classifications = await this.apiClient.orgByToken.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\tlet status = await this.apiClient.orgByToken.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\tlet status:ImportStatus = await this.apiClient.orgByToken.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 {autoinject, bindable} from 'aurelia-framework';\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 { UserDto } from 'app/models/user-administration-dtos';\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)));\r\n\r\n\r\n constructor(public appContext: AppContextService, public apiClient: ApiClient, public events: EventAggregator, public modal: ModalService) { }\r\n \r\n async activate(): Promise {\r\n let token: string | null = sessionStorage.getItem('org_access_token');\r\n if (token != null) {\r\n this.orgInfo = await this.apiClient.orgByToken.get(\"OrgInfo/GetOrgUserInfo\").jsonResult();\r\n }\r\n console.log(\"org-info:activate\");\r\n }\r\n\r\n async attached(): Promise {\r\n console.log(\"org-info:attached\");\r\n this.subscriptions = [\r\n this.events.subscribe(\"global:org-changed\", async () => this.reloadPage())\r\n\r\n\t\t];\r\n }\r\n async reloadPage(): Promise {\r\n this.orgInfo = await this.apiClient.orgByToken.get(\"OrgInfo/GetOrgUserInfo\").jsonResult();\r\n }\r\n \r\n deactivate() {\r\n\t\tthis.subscriptions.forEach(subscription => (\r\n\t\t\tsubscription.dispose()\r\n\t\t));\r\n\t}\r\n\r\n getRoleName(role: number | string): string {\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, role:string): Promise {\r\n let result = await this.apiClient.orgByToken.postJson(\"OrgInfo/SetOrgRoleForUserId\", {userId: user.userId, orgId: this.orgInfo?.orgId, role: OrgRole[role]})\r\n .response()\r\n if (result.statusCode == 200) {\r\n user.role = OrgRole[role];\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\");\r\n }\r\n return;\r\n }\r\n if (result.statusCode != 409) {\r\n this.modal.OpenMessage(\"Role change failed\",\"Changing the role did not succeed.\");\r\n }\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","async","model","getClassificationFromServer","clId","cm","orgByToken","get","jsonResult","classification","ClassificationModel","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","reloadPage","roles","includes","detached","forEach","subscription","dispose","columnName","result","sortBy","toggleElement","selected","toggleAll","c","viewClassification1","OpenModal","s","name","OpenConfirm","whenClosed","wasCancelled","implDeleteClassification","path","status","postJson","handleErrorUsingReason","tr","removeDeletedItemFromList","ix","indexOf","splice","x","doUpload","output","formData","FormData","undefined","version","classificationType","files","append","toString","postForm","reportAnyError","msg","errs","Message","unshift","length","join","OpenLog","I18N","OrgInfo","orgRoles","Object","keys","filter","v","isNaN","Number","sessionStorage","getItem","orgInfo","deactivate","getRoleName","role","user","userId","response","statusCode","publish","OpenMessage"],"sourceRoot":""}