{"version":3,"file":"app-afb6e809.11511f2a700dc599.bundle.js","mappings":"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","sources":["webpack://client-app/./src/app/project/project-overview/project-overview.scss","webpack://client-app/./src/app/project/project-overview/project-overview.html","webpack://client-app/./src/app/project/project-overview/project-overview.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, `.projects-overview-list{overflow:auto}.projects-overview-list .headers{position:sticky;top:0;grid-template-columns:minmax(225px, 1fr) 120px repeat(2, 155px) repeat(2, 110px) 80px 90px repeat(2, 130px) minmax(120px, 1fr) 180px}.projects-overview-list .headers .cell{height:3em !important;background-color:#fff}.projects-overview-list .main{overflow:visible}.projects-overview-list .main .element{grid-template-columns:minmax(225px, 1fr) 120px repeat(2, 155px) repeat(2, 110px) 80px 90px repeat(2, 130px) minmax(120px, 1fr) 180px}.projects-overview-list .main .element .cell{height:2.5em !important}.projects-overview-list .main .element .overview-missing-all{color:red}.projects-overview-list .main .element .overview-missing-some{color:#ffc300}.projects-overview-list .main .element .overview-missing-none{color:#007e00}.projects-overview-list .cell{border-left:1px solid #d3d3d3;border-right:1px solid #d3d3d3}.projects-overview-list .cell:first{border-left:0px}.projects-overview-list .cell:last-child{border-right:0px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/app/project/project-overview/project-overview.scss\"],\"names\":[],\"mappings\":\"AAgBA,wBACC,aAAA,CACA,iCACC,eAAA,CACA,KAAA,CACA,oIAjBA,CAkBA,uCACC,qBAAA,CACA,qBAAA,CAIF,8BACC,gBAAA,CACA,uCACC,oIA3BD,CA4BC,6CACC,uBAAA,CAED,6DACC,SAAA,CAGD,8DACC,aAAA,CAGD,8DACC,aAAA,CAIH,8BACC,6BAAA,CACA,8BAAA,CAED,oCACC,eAAA,CAED,yCACC,gBAAA\",\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Module\nvar code = ` `;\n// Exports\nexport default code;","import { ListService } from 'app/services/list-service';\r\nimport { Subscription } from 'aurelia-event-aggregator';\r\nimport { AppContextService } from 'app/services/app-context-service';\r\nimport {NavigationInstruction, RouteConfig, Router} from 'aurelia-router';\r\nimport { ProjectDto } from 'app/models/project-dto';\r\nimport { EventAggregator } from 'aurelia-event-aggregator';\r\nimport { autoinject } from 'aurelia-framework';\r\nimport { DateTimeFormatter } from 'app/services/date-time-formatter';\r\nimport { FullProjectInfo, ProjectLogDataService } from 'app/services/project-log-data-service';\r\nimport { ApiClient } from 'app/services/api-client';\r\nimport {ProjectTokenService} from \"../../services/project-token-service\";\r\nimport {verifyAccessOrRedirect} from \"../access-denied-page/access-redirecter\";\r\n\r\n@autoinject\r\nexport class ProjectOverview { //Project Overview in the menu, is actually the dashboard.\r\n\t//public column: string = \"name\";\r\n\t//public column: string = \"syncDate\"; // initial sort by created_UTC\r\n\tpublic column: string = \"created_UTC\"; // initial sort by created_UTC // 1fcb5ed6-b9e8-40f6-bee6-665af5c42503\r\n\r\n\tpublic displayState: { \r\n\t\ticon: string, \r\n\t\tdirection: string // should default to 'descending' or 'ascending'.\r\n\t} | undefined;\r\n\r\n\tpublic searchTerm: string = \"\";\r\n\tpublic viewContext: string;\r\n\tprivate subscriptions: Subscription[] = [];\r\n\r\n\t// hvem saetter vores initielle sortering?\r\n\tprivate fullProjectDataList: FullProjectInfo[] = [];\r\n\tconstructor(private events: EventAggregator, private router: Router, private appContext: AppContextService, \r\n\t\tprivate listService: ListService, private projectLogDataService: ProjectLogDataService,public api: ApiClient, private projectTokenService: ProjectTokenService) {\r\n\t\tthis.viewContext = \"TopBar\";\r\n\t}\r\n\r\n\tasync activate() {\r\n\t\tconsole.log('ProjectOverview_ activate');\r\n\r\n\t\t//this.displayState = { icon: \"fa-sort-up\", direction: \"ascending\" };\r\n\t\tthis.displayState = { icon: \"fa-sort-up\", direction: \"descending\" };\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('finished-getting-projects', () => {this.getFullNewProjectInfo()})\r\n\t\t];\r\n\r\n\t\tconsole.warn('project-overview, FullProjectInfo from appContext');\r\n\t\tthis.fullProjectDataList = this.appContext.projects;\r\n\r\n\t\tconsole.log('ProjectOverview_ calling getAdditionalProjectInfo from activate..');\r\n\t\tthis.getAdditionalProjectInfo(); //Should not be awaited. // in project-overview.activate.\r\n\t}\r\n\r\n\tasync getAdditionalProjectInfo(): Promise {\r\n\t\tconsole.log('ProjectOverview_ getAdditionalProjectInfo');\r\n\t\tthis.projectLogDataService.createOrgToProjectMap();\r\n\t\tthis.fullProjectDataList = await this.projectLogDataService.fetchProjectInfo();\t\r\n\r\n\t\tconsole.log(\"ProjectOverview_ full datalist\" , this.fullProjectDataList);\t\t\r\n\t\t//for (var p of this.fullProjectDataList)\t { console.warn( p.modelSource, 'who?',p.who, p.name); }\r\n\t\t// they are randomly sorted, it is not relevant.\r\n\t}\r\n\r\n\tasync getFullNewProjectInfo(): Promise {\r\n\t\tconsole.log('ProjectOverview_ getFullNewProjectInfo');\r\n\r\n\t\tlet fullProjectDataListId: string[] = this.fullProjectDataList.map(item => item.id);\r\n\t\tlet projectIds = this.appContext.projects.map(item => item.id);\r\n\t\tlet missingId = projectIds.filter(item => fullProjectDataListId.indexOf(item) < 0);\r\n\t\tif (missingId.length > 0) {\r\n\t\t\tlet project: ProjectDto | undefined= this.appContext.projects.find(item => item.id == missingId[0]);\r\n\t\t\tif (project != undefined) {\r\n\t\t\t\tlet fullProjectInfo = await this.projectLogDataService.fetchProjectInfoByProjectId(project);\r\n\t\t\t\tif (fullProjectInfo != undefined) {\r\n\t\t\t\t\tconsole.log(\"ProjectOverview_ fullprojectlist before \" , this.fullProjectDataList);\r\n\t\t\t\t\tthis.fullProjectDataList.push(fullProjectInfo);\r\n\t\t\t\t\tconsole.log(\"ProjectOverview_ fullprojectlist after \" , this.fullProjectDataList);\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tconsole.warn(\"ProjectOverview_ no new project was added\")\r\n\t}\r\n\r\n\tdeactivate() {\r\n\t\tconsole.log('ProjectOverview_ 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\tprivate handleSearchEvent(data: string) {\r\n\t\tconsole.log('ProjectOverview_ handleSearchEvent');\r\n\t\tthis.searchTerm = data;\r\n }\r\n\r\n\tpublic async openProject(project: ProjectDto) { try { await this.impl_openProject(project)} catch (e) { console.error(e); } }\r\n\r\n\tpublic async impl_openProject(project: ProjectDto) {\r\n\t\tconsole.log('ProjectOverview_ impl_openProject');\r\n\r\n\t\tthis.appContext.setProject(project.id);//in-openProject.\r\n\t\t\r\n\t\tawait this.projectTokenService.updatePrjTokenIfNeeded(project.id, this.api);\r\n\t\tthis.events.publish('project-selector:project-changed');//in-openProject.\r\n\r\n\t\t// In bug cases, the router.navigate call may trigger useless async stack trace errors in aurelia-logging-console.js\r\n\t\t// WhyTF do we have 'instructions' and 'subroutes', and them differing from each other?\r\n\t\tlet defaultViewForOpenProject = 'dashboard'; //'building-parts'; // project-work-area\r\n\t\tthis.router.navigate(`project/${project.id}/${defaultViewForOpenProject}`); \r\n\t\t//this.router.navigate(`project/${project.id}/building-parts`); (in openProject.)\r\n\t}\r\n\r\n\tpublic async sortBy(columnName: string) {\r\n\t\tconsole.log('ProjectOverview_ sortBy', columnName, 'listService!!??', this.listService);\r\n\r\n\t\tawait this.listService.sortBy(columnName).then(result => {\r\n\t\t\tthis.column = result.column;\r\n\t\t\tthis.displayState = result.displayState;\r\n\t\t});\r\n\t}\r\n\r\n\tprivate formatDate(date: string): string { return DateTimeFormatter.formatDate(date); }\r\n\r\n\tprivate inSyncInTotalFormat(instancesInSync:number, instancesInTotal: number): string {\r\n\t\treturn instancesInTotal > 0 ? `${instancesInSync} / ${instancesInTotal}` : \"\";\r\n\t}\r\n\t\r\n\tgetStatus(inSync : number, inTotal : number) : string {\t\r\n\t\tif (inSync === inTotal) { return \"overview-missing-none\"; }\t\r\n\t\tif (inSync === 0) { return \"overview-missing-all\" }\r\n\t\treturn \"overview-missing-some\";\r\n\t}\r\n}\r\n"],"names":["___CSS_LOADER_EXPORT___","push","module","id","ProjectOverview","constructor","events","router","appContext","listService","projectLogDataService","api","projectTokenService","column","searchTerm","subscriptions","fullProjectDataList","this","viewContext","activate","console","log","displayState","icon","direction","subscribe","data","handleSearchEvent","getFullNewProjectInfo","warn","projects","getAdditionalProjectInfo","createOrgToProjectMap","fetchProjectInfo","fullProjectDataListId","map","item","missingId","filter","indexOf","length","project","find","undefined","fullProjectInfo","fetchProjectInfoByProjectId","deactivate","forEach","subscription","dispose","openProject","impl_openProject","e","error","setProject","updatePrjTokenIfNeeded","publish","navigate","sortBy","columnName","then","result","formatDate","date","inSyncInTotalFormat","instancesInSync","instancesInTotal","getStatus","inSync","inTotal","autoinject","EventAggregator"],"sourceRoot":""}