{"version":3,"sources":["./src/app/services/authenticated-user.service.ts","./src/app/models/tab-item.ts","./src/app/models/diplomas/diploma-block-dto.ts","./src/app/services/administration.service.ts","./src/app/components/vertical-menu/vertical-menu.component.ts","./src/app/components/vertical-menu/vertical-menu.component.html","./src/app/pages/administration/rights-admin/rights-admin.component.ts","./src/app/pages/administration/rights-admin/rights-admin.component.html","./src/app/components/main-layout/main-layout.component.ts","./src/app/components/main-layout/main-layout.component.html","fs (ignored)","crypto (ignored)","./src/app/interfaces/abstract-request.component.ts","stream (ignored)","./src/app/utils/string-utils.ts","./src/app/version/version.component.ts","./src/app/version/version.component.html","./src/app/services/calendar.service.ts","./src/app/pages/administration/diplomas/diploma/diploma.component.ts","./src/app/pages/administration/diplomas/diploma/diploma.component.html","./src/app/services/rights.service.ts","./src/app/services/error.service.ts","./src/app/components/loader-screen/loader-screen.component.ts","./src/app/components/loader-screen/loader-screen.component.html","./src/app/components/main-menu/favorite-star/favorite-star.component.ts","./src/app/components/main-menu/favorite-star/favorite-star.component.html","./src/environments/environment.ts","./src/app/services/local-storage.service.ts","./src/app/common/pipes/highlight-pipe.ts","./src/app/components/grid/basic-grid/basic-grid.component.ts","./src/app/components/grid/basic-grid/basic-grid.component.html","./src/app/services/base.service.ts","./src/app/pages/administration/rights/rights.component.ts","./src/app/pages/administration/rights/rights.component.html","./src/app/components/error-dialog/error-dialog.component.ts","./src/app/components/error-dialog/error-dialog.component.html","./src/app/services/pages.service.ts","./src/app/common/utils/common-utils.ts","./src/app/field-loader/field-loader.component.ts","./src/app/field-loader/field-loader.component.html","./src/app/common/utils/string-utils.ts","./src/app/models/query/field-value.ts","./src/app/version.service.ts","./src/app/utils/filterTypeEnum.ts","./src/app/services/schools.service.ts","./src/app/models/school-year-semester-values.ts","./src/app/components/main-menu/formated-entries-menu/formated-entries-menu.component.ts","./src/app/components/main-menu/formated-entries-menu/formated-entries-menu.component.html","./src/app/services/token-interceptor.service.ts","./src/app/pages/welcome-page/welcome-page.component.ts","./src/app/pages/welcome-page/welcome-page.component.html","./src/app/pages/parameters/parameters.component.ts","./src/app/pages/parameters/parameters.component.html","./src/app/interfaces/abstract-page.component.ts","./src/app/models/rights/right.ts","./src/app/models/authenticated-user.model.ts","./src/app/constants/email.constant.ts","./src/app/components/tree/tree.component.ts","./src/app/components/failure-screen/failure-screen.component.ts","./src/app/components/failure-screen/failure-screen.component.html","./src/app/app.component.ts","./src/app/app.component.html","./src/app/components/query/query.component.ts","./src/app/components/query/query.component.html","./src/app/pages/users/login-success/login-success.component.ts","./src/app/services/structure.service.ts","./src/app/services/interfaces.service.ts","./src/app/services/cache.service.ts","./src/app/utils/columnSizeEnum.ts","./src/app/components/tristate-checkbox/tristate-checkbox.component.ts","./src/app/models/diplomas/CertifierAdapter.ts","./src/app/components/search-box/search-box.component.ts","./src/app/components/search-box/search-box.component.html","./src/app/factories/url-factory.service.ts","./src/app/annotations/page.annotation.ts","./src/app/components/report/report.component.ts","./src/app/components/report/report.component.html","./src/app/components/application-params-selector/application-params-selector.component.ts","./src/app/components/application-params-selector/application-params-selector.component.html","./src/app/app.module.ts","./src/app/pages/administration/diplomas/diploma/diploma-skills-block/diploma-skill-block.component.ts","./src/app/pages/administration/diplomas/diploma/diploma-skills-block/diploma-skill-block.component.html","./src/app/components/school-year-semester-selector/school-year-semester-selector.component.ts","./src/app/components/school-year-semester-selector/school-year-semester-selector.component.html","./src/app/services/students.service.ts","./src/app/pages/administration/diplomas/diploma/diploma-skills-block/diploma-skill-block-dialog/diploma-skill-block-dialog.component.ts","./src/app/pages/administration/diplomas/diploma/diploma-skills-block/diploma-skill-block-dialog/diploma-skill-block-dialog.component.html","./src/app/services/api-hearbeat-interceptor.service.ts","./src/app/services/file.service.ts","./src/app/pages/students/students.component.ts","./src/app/pages/students/students.component.html","./src/app/pages/students/student/student.component.ts","./src/app/pages/students/student/student.component.html","./src/app/components/spinner/spinner.component.ts","./src/app/components/spinner/spinner.component.html","./src/app/pages/administration/diplomas/diplomas.component.ts","./src/app/pages/administration/diplomas/diplomas.component.html","./src/app/services/date-utils.service.ts","./src/app/components/tab-layout/tab-layout.component.ts","./src/app/components/tab-layout/tab-layout.component.html","./src/app/directives/tab.directive.ts","./src/app/remove-cross/remove-cross.component.ts","./src/app/remove-cross/remove-cross.component.html","./src/app/utils/sessionsList.ts","./src/app/components/main-menu/main-menu.component.ts","./src/app/components/main-menu/main-menu.component.html","./src/app/components/dynamic-params-selector/dynamic-params-selector.component.ts","./src/app/components/dynamic-params-selector/dynamic-params-selector.component.html","./src/app/common/promises/cancelable-promise.ts","./src/app/components/main-menu/favorite-menu-entries/favorite-menu-entries.component.ts","./src/app/components/main-menu/favorite-menu-entries/favorite-menu-entries.component.html","./src/app/common/promises/request-canceler.ts","./src/app/services/user-preferences.service.ts","./src/app/models/query/selected-params.ts","./src/app/app-routing.module.ts","./src/app/components/main-menu/menu-search-field/menu-search-field.component.ts","./src/app/components/main-menu/menu-search-field/menu-search-field.component.html","./src/app/components/vertical-menu/option-menu/option-menu.component.ts","./src/app/components/vertical-menu/option-menu/option-menu.component.html","./src/app/services/years.service.ts","./src/app/components/combo-box/combo-box.component.ts","./src/app/components/combo-box/combo-box.component.html","./src/app/services/diplomas.service.ts","./src/app/services/reload.service.ts","./src/app/components/icon-chooser/icon-chooser.component.ts","./src/app/components/icon-chooser/icon-chooser.component.html","./src/main.ts","./src/app/models/rights/rights_family.ts","./src/app/models/table-column.ts","./$_lazy_route_resource lazy namespace object"],"names":[],"mappings":"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AE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC5J,aAAQ,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC5J,aAAQ,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC5J,aAAQ,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC5J,aAAQ,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC5J,aAAQ,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC5J,aAAQ,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC5J,aAAQ,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC5J,aAAQ,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC5J,aAAQ,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC5J,aAAQ,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC5J,aAAQ,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAG,CAAC;QAEjH,gBAAW,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAEzB,CAAC;IAEjB,QAAQ;IACR,CAAC;;wFArBU,oBAAoB;oGAApB,oBAAoB;QCPjC,yEAA6B;QAAA,0HAAgH;QAAA,4DAAM;QACnJ,yEAA6B;QAAA,0HAAgH;QAAA,4DAAM;QACnJ,yEAA6B;QAAA,0HAAgH;QAAA,4DAAM;QACnJ,yEAA6B;QAAA,0HAAgH;QAAA,4DAAM;QACnJ,yEAA6B;QAAA,0HAAgH;QAAA,4DAAM;QACnJ,0EAA6B;QAAA,4HAAgH;QAAA,4DAAM;QACnJ,0EAA6B;QAAA,4HAAgH;QAAA,4DAAM;QACnJ,0EAA6B;QAAA,4HAAgH;QAAA,4DAAM;QACnJ,0EAA6B;QAAA,4HAAgH;QAAA,4DAAM;QACnJ,0EAA6B;QAAA,4HAAgH;QAAA,4DAAM;QACnJ,0EAA6B;QAAA,4HAAgH;QAAA,4DAAM;QACnJ,0EAA6B;QAAA,4HAAgH;QAAA,4DAAM;QACnJ,0EAA6B;QAAA,4HAAgH;QAAA,4DAAM;QACnJ,0EAA6B;QAAA,4HAAgH;QAAA,4DAAM;;QAbrE,0DAAW;QAAX,iFAAW;QACX,0DAAW;QAAX,iFAAW;QACX,0DAAW;QAAX,iFAAW;QACX,0DAAW;QAAX,iFAAW;QACX,0DAAW;QAAX,iFAAW;QACX,0DAAW;QAAX,iFAAW;QACX,0DAAW;QAAX,iFAAW;QACX,0DAAW;QAAX,iFAAW;QACX,0DAAW;QAAX,iFAAW;QACX,0DAAW;QAAX,iFAAW;QACX,0DAAW;QAAX,iFAAW;QACX,0DAAW;QAAX,iFAAW;QACX,0DAAW;QAAX,iFAAW;QACX,0DAAc;QAAd,oFAAc;;6FDN/E,oBAAoB;cALhC,uDAAS;eAAC;gBACT,QAAQ,EAAE,kBAAkB;gBAC5B,WAAW,EAAE,+BAA+B;gBAC5C,SAAS,EAAE,CAAC,+BAA+B,EAAE,yBAAyB,CAAC;aACxE;;;;;;;;;;;;;;AEND;AAAA;AAAA;AAAA;AAAA;AAA+C;AAIU;;;AAEzD,IAAI,qEAAW,CAAC,UAAU,EAAE;IAC1B,oEAAc,EAAE,CAAC;CAClB;AAED,2EAAwB,gBAAgB,CAAC,0DAAU;KAChD,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;;;;;;;;;;;;;ACXpC;AAAA;AAAO,MAAM,YAAY;CAMxB;;;;;;;;;;;;;ACND;AAAA;AAAA;AAAuD;AAGhD,MAAM,WAAW;IA+BtB,YAAY,KAAa,EAAE,MAAc,EAAE,KAAK,GAAG,MAAM,EAAE,IAAI,GAAG,QAAQ,EAAE,QAAQ,GAAE,IAAI,EAAE,QAAQ,GAAG,IAAI,EAAE,UAAU,GAAG,EAAE;QAC1H,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IApBD,MAAM,CAAC,aAAa,CAAC,KAAa;QAChC,MAAM,UAAU,GAAG,WAAW,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC5D,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC;QAEtC,IAAI,UAAU,IAAI,IAAI,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YAC/D,OAAO,KAAK,CAAC;SACd;aAAM,IAAI,UAAU,IAAI,IAAI,EAAE;YAC7B,OAAO,oEAAc,CAAC,kBAAkB,CAAC;SAC1C;QACD,OAAQ,UAAU,CAAC;IACrB,CAAC;;AA3Bc,6BAAiB,GAAG,IAAI,GAAG,CAA0B;IAClE,CAAC,YAAY,EAAE,oEAAc,CAAC,sBAAsB,CAAC;IACrD,CAAC,OAAO,EAAE,oEAAc,CAAC,iBAAiB,CAAC;IAC3C,CAAC,QAAQ,EAAE,oEAAc,CAAC,kBAAkB,CAAC;IAC7C,CAAC,OAAO,EAAE,oEAAc,CAAC,iBAAiB,CAAC;IAC3C,CAAC,YAAY,EAAE,oEAAc,CAAC,sBAAsB,CAAC;CACtD,CAAC,CAAC;;;;;;;;;;;;ACXL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA,4CAA4C,WAAW;AACvD;AACA;AACA,qC","file":"main-es2015.9456b83dbe74d9a47ca5.js","sourcesContent":["import { Injectable } from '@angular/core';\nimport { AuthenticatedUser } from '../models/authenticated-user.model';\nimport { UserProfile } from '../models/user-profile.model';\nimport {HttpClient, HttpHeaders} from '@angular/common/http';\nimport { environment } from '../../environments/environment';\nimport { Privilege } from '../models/privilege';\nimport { UrlFactoryService } from '../factories/url-factory.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthenticatedUserService {\n\n privileges: { [id: string]: Privilege; } = {};\n\n constructor(private http: HttpClient,\n private urlFactory: UrlFactoryService) { }\n\n public getToken(): string {\n return localStorage.getItem('kordisToken');\n }\n\n public setToken(token: string): void {\n return localStorage.setItem('kordisToken', token);\n }\n\n public removeToken(): void {\n localStorage.removeItem('kordisToken');\n }\n\n public removePrivileges(): void {\n localStorage.removeItem('kordisPrivileges');\n }\n\n removeProfile(): void {\n localStorage.removeItem('kordisProfile');\n }\n\n public getProfile(): UserProfile {\n return JSON.parse(localStorage.getItem('kordisProfile'));\n }\n\n public saveAuthenticatedUser(fullUrl: string): void {\n\n const strings = fullUrl.split(new RegExp('#|&'));\n\n strings.shift();\n\n const account = new AuthenticatedUser();\n\n strings.forEach(element => {\n const property = element.split('=');\n account[property[0]] = property[1];\n });\n\n localStorage.setItem('kordisToken', account.access_token);\n }\n\n public loadProfile(): Promise {\n return new Promise((resolve, reject) => this.http.get(this.urlFactory.getProfileUrl())\n .subscribe(\n (data) => {\n if (data[`response_code`] === 0) {\n const profile = data[`result`];\n localStorage.setItem('kordisProfile', JSON.stringify(profile));\n resolve(profile);\n } else {\n reject(data[`result`]);\n }\n },\n reject\n )\n );\n }\n\n public loadPrivileges(): Promise {\n return new Promise((resolve, reject) => this.http.get(this.urlFactory.getPrivilegesUrl(),\n { headers: { 'content-type': 'application/json'},\n responseType: 'json',\n observe: 'response'\n })\n .subscribe(\n (data) => {\n if (data.status === 204) {\n this.redirectToAccessDeniedScreen();\n resolve();\n localStorage.setItem('kordisPrivileges', '');\n } else if (data.body && data.body[`response_code`] === 0) {\n resolve(data.body[`result`]);\n localStorage.setItem('kordisPrivileges', JSON.stringify(data.body[`result`]));\n } else {\n reject(data.body ? data.body[`result`] : '');\n }\n },\n reject\n )\n );\n }\n\n public getPrivileges(): Promise<{ [id: string]: Privilege; }> {\n return new Promise((resolve, reject) => {\n if (Object.keys(this.privileges).length > 0) {\n resolve(this.privileges);\n } else {\n this.loadPrivileges()\n .then(rawPrivileges => {\n rawPrivileges.forEach(rawPrivilege => {\n this.privileges[rawPrivilege.label] = rawPrivilege;\n });\n resolve(this.privileges);\n }).catch(reject);\n }\n });\n }\n\n public isAuthenticated(): boolean {\n const token = this.getToken();\n return token !== undefined && token !== null;\n }\n\n public redirectToAuthentication(): void {\n window.location.href = environment.authenticationUrl + '/oauth/authorize?response_type=token&client_id=' + environment.client_id;\n }\n\n public redirectToAccessDeniedScreen() {\n // this.router.navigate(['/', 'access-denied']);\n // TODO\n }\n\n public revokeToken(): Promise {\n return new Promise((resolve, reject) => {\n const httpHeaders = new HttpHeaders({Authorization: 'Bearer ' + this.getToken()});\n\n this.http.get(environment.authenticationUrl + '/oauth/revoke',\n {\n observe: 'response',\n headers: httpHeaders\n })\n .subscribe(\n (response) => {\n resolve(response.status === 200);\n },\n (error) => {\n if (error.status === 200 && error.statusText === 'OK') {\n resolve(true);\n } else {\n reject(error);\n }\n });\n });\n }\n\n public logout(): void {\n this.revokeToken()\n .then(() => this.removeProfile())\n .then(() => this.removeToken())\n .then(() => window.location.href = environment.authenticationUrl + '/logout?client_id=' + environment.client_id);\n }\n\n}\n","import { Type } from '@angular/core';\n\nexport class TabItem {\n constructor(public component: Type, public header: any, public headerAddition: string, public headerWidth: number, public data: any) {}\n}\n","export class DiplomaBlockDTO {\n block_id: number;\n parent_id: number;\n parent_code: string;\n diploma_id: number;\n name: string;\n code: string;\n skill_description: string;\n evaluation_description: string;\n crea_user_id: number;\n crea_user_login: string;\n crea_date: number;\n upd_user_id: number;\n upd_user_login: string;\n upd_date: number;\n is_active: boolean;\n}\n","import { Injectable } from '@angular/core';\nimport {BaseService} from './base.service';\nimport {UrlFactoryService} from '../factories/url-factory.service';\nimport {Administrative} from '../models/administration/administrative';\nimport {CancelablePromise} from \"../common/promises/cancelable-promise\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AdministrationService {\n\n constructor(private baseService: BaseService,\n private urlFactory: UrlFactoryService) { }\n\n getAdministrativesByName(chunk: string): CancelablePromise {\n return this.baseService.getAll(this.urlFactory.getAdministrativesByNameUrl(chunk));\n }\n\n}\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\nimport {UserProfile} from '../../models/user-profile.model';\nimport {MainMenuItem} from '../main-menu/main-menu-item';\n\n@Component({\n selector: 'app-vertical-menu',\n templateUrl: './vertical-menu.component.html',\n styleUrls: ['./vertical-menu.component.scss']\n})\nexport class VerticalMenuComponent implements OnInit {\n\n itemsCollapsed: MainMenuItem[];\n isMenuCollapsed = false;\n\n @Input() menuElements: MainMenuItem[];\n @Output() helpClicked = new EventEmitter();\n @Output() paramsClicked = new EventEmitter();\n @Output() disconnectionClicked = new EventEmitter();\n @Input()\n currentProfile: UserProfile;\n currentProfilePhoto = '';\n\n constructor() { }\n\n ngOnInit(): void {\n\n setTimeout(() => {\n const smallMenuDisplay = localStorage.getItem('smallMenuDisplay');\n if (smallMenuDisplay !== null && JSON.parse(smallMenuDisplay).id === 2) {\n this.isMenuCollapsed = true;\n }\n }, 0);\n\n\n this.itemsCollapsed = this.menuElements.map(x => Object.assign({}, x));\n }\n\n changeMenuLayout() {\n this.isMenuCollapsed = !this.isMenuCollapsed;\n }\n\n private shouldSeeModule(menuId: string) {\n return menuId === 'test';\n }\n\n loadProfile(event) {\n this.currentProfile = event;\n\n if (this.currentProfile[`links`]) {\n this.currentProfilePhoto = this.currentProfile[`links`][`photo`]?.href;\n } else {\n this.currentProfilePhoto = '';\n }\n }\n}\n","
\n\n
\n
\n \n \n \n \n \n \n \n \n \n KORDIS\n
\n
\n\n \n
\n
\n \n \n
\n
\n
\n
\n\n
\n
\n \n \n \n \n \n \n \n \n \n
\n\n \n
\n \n
\n
\n\n
\n\n\n \n\n\n \n\n\n","import {Component, ElementRef, OnInit, ViewChild} from '@angular/core';\nimport {AbstractPageComponent} from '../../../interfaces/abstract-page.component';\nimport {BasicGridComponent, GridTypes} from '../../../components/grid/basic-grid/basic-grid.component';\nimport {TableColumn} from '../../../models/table-column';\nimport {RightsService} from '../../../services/rights.service';\nimport {Right} from '../../../models/rights/right';\nimport {RightsFamily} from '../../../models/rights/rights_family';\nimport {RightsGroupHasRight} from '../../../models/rights/rights-group-has-right';\nimport {ConfirmationService, MessageService} from 'primeng/api';\nimport {Page} from '../../../annotations/page.annotation';\nimport {FormControl, FormGroup, Validators} from '@angular/forms';\nimport {Dialog} from 'primeng/dialog';\nimport {FilterTypeEnum} from '../../../utils/filterTypeEnum';\n\n@Component({\n selector: 'app-rights-admin',\n templateUrl: './rights-admin.component.html',\n styleUrls: ['./rights-admin.component.scss']\n})\n@Page('rights-admin', 'Gestion des droits', undefined, { icon: 'pi pi-user' })\nexport class RightsAdminComponent extends AbstractPageComponent implements OnInit {\n @ViewChild('rightsGrid') rightsGrid: BasicGridComponent;\n @ViewChild('familiesGrid') familiesGrid: BasicGridComponent;\n @ViewChild('rightDialog') rightDialog: Dialog;\n @ViewChild('familyDialog') familyDialog: Dialog;\n @ViewChild('mainDiv') mainDiv: ElementRef;\n @ViewChild('bottomPart') bottomPart: ElementRef;\n\n gridTypes = GridTypes;\n\n rightsColumns: TableColumn[] = [\n new TableColumn('right_id', 'ID', '90px', 'number', true, true, FilterTypeEnum.INPUT_FILTER),\n new TableColumn('right_type_name', 'Type', '250px', 'string', true, true, FilterTypeEnum.INPUT_FILTER),\n new TableColumn('rights_family_name', 'Parent', '250px', 'string', true, true, FilterTypeEnum.INPUT_FILTER),\n new TableColumn('right_name', 'Nom', '', 'string', true, true),\n new TableColumn('right_desc', 'Description', '250', 'string', true, true),\n new TableColumn('is_active', 'Actif', '90px', 'boolean', true, true, FilterTypeEnum.INPUT_FILTER),\n ];\n\n familiesColumns: TableColumn[] = [\n new TableColumn('rights_family_id', 'ID', '90px', 'number', true, true, FilterTypeEnum.INPUT_FILTER),\n new TableColumn('rights_family_name', 'Famille', '', 'string', true, true, FilterTypeEnum.INPUT_FILTER),\n new TableColumn('rights_family_parent_name', 'Parent', '', 'string', true, true, FilterTypeEnum.INPUT_FILTER),\n ];\n\n //#region rights\n rightsTypes: any[] = [];\n rightsData: any[] = [];\n rightsSelectedData: Right[] = [];\n rightUsages: RightsGroupHasRight[] = [];\n loadingData = false;\n loadingUsages = false;\n //#endregion\n\n //#region family members\n familiesData: RightsFamily[] = [];\n familiesAllData: RightsFamily[] = [];\n familiesSelectedData: RightsFamily[] = [];\n //#endregion\n\n //#region dialog\n displayRightDialog = false;\n isCreateDialog = false;\n displayFamilyDialog = false;\n selectedRight: Right;\n editedRight: Right;\n rightForm: FormGroup;\n selectedFamily: RightsFamily;\n editedFamily: RightsFamily;\n familyForm: FormGroup;\n //#endregion\n\n constructor(private rightsService: RightsService,\n private messageService: MessageService,\n private confirmationService: ConfirmationService) {\n super();\n }\n\n ngOnInit(): void {\n\n this.refreshRightsList();\n this.refreshFamiliesList();\n this.rightsService.getRightTypes().\n then(types => {\n this.rightsTypes = types;\n });\n\n this.editedRight = new Right();\n this.editedFamily = new RightsFamily();\n\n this.rightForm = new FormGroup({\n rightType: new FormControl(this.editedRight.right_type_id, Validators.required),\n rightFamily: new FormControl(this.editedRight.rights_family_id, Validators.required),\n rightName: new FormControl(this.editedRight.right_name, Validators.required),\n rightDesc: new FormControl(this.editedRight.right_desc, Validators.required),\n isActive: new FormControl(this.editedRight.is_active),\n rightId: new FormControl(this.editedRight.right_id)\n });\n\n this.familyForm = new FormGroup({\n familyId: new FormControl(this.editedFamily.rights_family_id),\n familyName: new FormControl(this.editedFamily.rights_family_name, Validators.required),\n familyParent: new FormControl(this.editedFamily.rights_family_parent_id),\n });\n }\n\n refreshRightsList(): void {\n this.rightsService.getRights().then(rights => {\n this.rightsGrid.updateDataAfterChange(rights);\n });\n }\n\n refreshFamiliesList(): void {\n this.rightsService.getAllRightsFamilies().\n then(families => {\n this.familiesAllData = families;\n this.familiesGrid.updateDataAfterChange(families);\n });\n }\n\n getHelp(): string {\n return 'L\\'aide de la gestion des droits';\n }\n\n onRightsRowsSelectionChanged(data: any[]) {\n this.rightsSelectedData = data;\n\n if (this.rightsSelectedData.length === 1) {\n this.loadingUsages = true;\n\n this.selectedRight = this.rightsSelectedData[0];\n\n this.rightsService.getRightsGroupByRight(this.selectedRight.right_id)\n .then((rightsGroups) => this.rightUsages = rightsGroups)\n .catch(console.error)\n .finally(() => this.loadingUsages = false);\n }\n }\n\n onFamiliesRowsSelectionChanged(data: any[]) {\n this.familiesSelectedData = data;\n if (this.familiesSelectedData.length === 1) {\n this.selectedFamily = this.familiesSelectedData[0];\n }\n }\n\n // Right dialog\n showRightDialog(isCreating: boolean) {\n this.isCreateDialog = isCreating;\n if (isCreating) {\n this.editedRight = new Right();\n this.editedRight.is_active = true;\n } else {\n this.editedRight = this.selectedRight;\n }\n this.rightForm.get('rightId').setValue(this.editedRight.right_id);\n this.rightForm.get('rightName').setValue(this.editedRight.right_name);\n this.rightForm.get('rightDesc').setValue(this.editedRight.right_desc);\n this.rightForm.get('rightFamily').setValue(this.editedRight.rights_family_id);\n this.rightForm.get('rightType').setValue(this.editedRight.right_type_id);\n this.rightForm.get('isActive').setValue(this.editedRight.is_active);\n\n this.displayRightDialog = true;\n }\n\n reinitEditedRight() {\n this.editedRight = new Right();\n }\n\n saveRight(event: Event): void {\n this.editedRight.right_name = this.rightForm.get('rightName').value;\n this.editedRight.right_desc = this.rightForm.get('rightDesc').value;\n this.editedRight.rights_family_id = this.rightForm.get('rightFamily').value;\n this.editedRight.right_type_id = this.rightForm.get('rightType').value;\n this.editedRight.is_active = this.rightForm.get('isActive').value;\n this.editedRight.right_id = this.rightForm.get('rightId').value;\n\n this.rightsService.saveRight(this.editedRight).then(r =>\n this.messageService.add({\n severity: 'success',\n detail: r.right_name + ' sauvegardé' ,\n life: 5000\n }))\n .then(() => this.refreshRightsList())\n .then(() => {\n if (this.isCreateDialog) {\n this.rightsSelectedData.splice(0, this.rightsSelectedData.length);\n }\n })\n .then(() => this.rightDialog.close(event))\n .catch((error) =>\n this.messageService.add({\n severity: 'error',\n detail: 'Erreur lors de la sauvegarde du droit. Veuillez recommencer',\n life: 5000\n }))\n .catch(console.error);\n }\n\n // Activation dialog\n showRightsActivationDialog(activation: boolean) {\n const detailMessage = this.rightsSelectedData.length === 1 ? 'Le droit sélectionné a été ' + (activation ? 'activé.' : 'désactivé.') :\n 'Les ' + this.rightsSelectedData.length + ' droits ont été ' + (activation ? 'activés.' : 'désactivés.');\n\n this.confirmationService.confirm({\n message: 'Êtes-vous sûr·e de vouloir ' + (activation ? 'activer' : 'désactiver') + ' le(s) droit(s) sélectionné(s)?',\n header: (activation ? 'Activation' : 'Désactivation') + ' des droits sélectionnés',\n icon: 'pi pi-exclamation-triangle',\n key: 'activationDialog',\n acceptLabel: 'Oui',\n rejectLabel: 'Annuler',\n closeOnEscape: true,\n accept: () => {\n // désactivation\n this.rightsService.activateRights(this.rightsSelectedData.map(r => r.right_id), activation).then(() =>\n this.messageService.add({\n severity: 'success',\n summary: (activation ? 'Activation' : 'Désactivation') + ' réussie',\n detail: detailMessage,\n life: 5000\n }))\n .then(() => this.refreshRightsList())\n .catch(() => this.messageService.add({\n severity: 'error',\n detail: 'Erreur lors de ' + (activation ? 'l\\'activation' : 'la désactivation') + ' des droits.',\n life: 5000\n })).catch(console.error);\n }\n });\n }\n\n // Rights suppression dialog\n showRightsSuppressionDialog() {\n const confirmationMessage = 'Vous êtes sur le point de supprimer ' + this.rightsSelectedData.length + ' droits.
Cette action va :
* Restreindre définitivement les accès des groupes liés.
* Supprimer définitivement les historiques du droit.
Êtes-vous sûr·e ?';\n this.confirmationService.confirm( {\n message: confirmationMessage,\n header: 'Suppression du(es) droit(s) sélectionné(s)',\n icon: 'pi pi-ban',\n acceptLabel: 'Oui',\n rejectLabel: 'Annuler',\n key: 'deleteRightDialog',\n closeOnEscape: true,\n accept: () => {\n const successMessage = this.rightsSelectedData.length === 1 ? 'Le droit sélectionné a été supprimé.' :\n 'Les ' + this.rightsSelectedData.length + ' droits sélectionnés ont été supprimés.';\n\n // suppression\n this.rightsService.deleteRights(this.rightsSelectedData).then(() =>\n this.messageService.add({\n severity: 'success',\n summary: 'Suppression effectuée',\n detail: successMessage,\n life: 5000\n }))\n .then(() => this.refreshRightsList())\n .then(() => this.rightsSelectedData.splice(0, this.rightsSelectedData.length))\n .then(() => this.selectedRight = null)\n .catch((error) => {\n if (error.status === 500) {\n this.messageService.add({\n severity: 'error',\n summary: 'Le ou les droit(s) sélectionné(s) sont encore utilisés par un groupe de droit. \\n La suppression n\\'est pas possible.',\n life: 5000\n });\n } else {\n this.messageService.add({\n severity: 'error',\n summary: 'Une erreur inattendue est survenue. Si le problème persiste, veuillez contacter le service informatique.',\n life: 5000\n });\n }\n }).catch(console.error);\n }\n });\n }\n\n // Family dialog\n showFamilyDialog(isCreating: boolean) {\n this.isCreateDialog = isCreating;\n this.editedFamily = isCreating ? new RightsFamily() : this.selectedFamily;\n this.displayFamilyDialog = true;\n\n this.familyForm.get('familyParent').setValue(this.editedFamily.rights_family_parent_id);\n this.familyForm.get('familyId').setValue(this.editedFamily.rights_family_id);\n this.familyForm.get('familyName').setValue(this.editedFamily.rights_family_name);\n }\n\n // Family suppression dialog\n showFamilySuppressionDialog() {\n this.confirmationService.confirm({\n message: 'Êtes-vous sûr·e de vouloir supprimer ' + (this.familiesSelectedData.length === 1 ? 'la famille sélectionnée ?' : 'les familles sélectionnées ?'),\n header: 'Suppression de la famille sélectionnée',\n icon: 'pi pi-ban',\n acceptLabel: 'Oui',\n rejectLabel: 'Annuler',\n key: 'deleteFamilyDialog',\n closeOnEscape: true,\n accept: () => {\n const successMessage = this.familiesSelectedData.length === 1 ? 'La famille sélectionnée a été supprimée.' :\n 'Les ' + this.familiesSelectedData.length + ' familles sélectionnées ont été supprimées.';\n\n // suppression\n this.rightsService.deleteFamilies(this.familiesSelectedData)\n .then(() =>\n this.messageService.add({\n severity: 'success',\n summary: 'Suppression effectuée',\n detail: successMessage,\n life: 5000\n }))\n .then(() => this.refreshFamiliesList())\n .then(() => this.familiesSelectedData.splice(0, this.familiesSelectedData.length))\n .catch((error) => {\n if (error.status === 500) {\n this.messageService.add({\n severity: 'error',\n summary: 'La ou les famille(s) sélectionnée(s) ont encore un lien à un droit ou à une famille de droit. La suppression n\\'est pas possible.',\n life: 20000\n });\n } else {\n this.messageService.add({\n severity: 'error',\n summary: 'Une erreur inattendue est survenue. Si le problème persiste, veuillez contacter le service informatique.',\n life: 20000\n });\n }\n });\n }\n });\n }\n\n reinitEditedFamily() {\n this.editedFamily = new RightsFamily();\n }\n\n saveFamily(event: Event) {\n this.editedFamily.rights_family_parent_id = this.familyForm.get('familyParent').value;\n this.editedFamily.rights_family_name = this.familyForm.get('familyName').value;\n this.rightsService.saveFamily(this.editedFamily).then(f =>\n this.messageService.add({\n severity: 'success',\n detail: f.rights_family_name + ' sauvegardé' ,\n life: 5000\n }))\n .then(() => this.refreshFamiliesList())\n .then(() => this.familyDialog.close(event))\n .then(() => this.familiesSelectedData.splice(0, this.familiesSelectedData.length))\n .then(() => this.reinitEditedFamily())\n .catch(() => this.messageService.add({\n severity: 'error',\n detail: 'Erreur lors de la sauvegarde de la famille de droit. Veuillez recommencer',\n life: 5000\n })).catch(console.error);\n }\n}\n","
\n
\n \n \n \n \n\n
\n \n \n
\n \n \n \n \n \n
\n
\n
\n
\n
\n \n
\n
Utilisations
\n
\n
\n Veuillez sélectionner un droit\n
\n \n
\n\n
\n \n \n \n \n \n
\n \n \n
\n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n {{rightsGroup.rights_group_name}}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n Le droit sélectionné n'est pas utilisé\n
\n
\n
\n
\n
\n \n
\n
\n
{{rightsSelectedData.length}} droits sélectionnés.
\n
Veuillez limiter votre sélection à un droit afin de voir son utilisation.
\n
\n
\n
\n\n
\n
\n
\n
\n
\n\n
\n\n \n
\n \n \n
\n \n \n \n
\n
\n
\n
\n
\n
\n\n
\n
\n\n\n\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n \n \n \n \n
\n\n\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n\n \n \n \n \n
\n\n\n\n\n\n\n\n\n\n","import { Component, OnInit, Input, TemplateRef } from '@angular/core';\n\n@Component({\n selector: 'app-main-layout',\n templateUrl: './main-layout.component.html',\n styleUrls: ['./main-layout.component.scss']\n})\nexport class MainLayoutComponent implements OnInit {\n\n @Input() headerTemplate: TemplateRef;\n @Input() menuTemplate: TemplateRef;\n @Input() contentTemplate: TemplateRef;\n @Input() helpTemplate: TemplateRef;\n @Input() footerTemplate: TemplateRef;\n\n @Input() spaceFromTop = 60;\n @Input() spaceFromLeft = 350;\n @Input() spaceFromRight = 350;\n @Input() spaceFromBottom = 150;\n @Input() noHeader = false;\n @Input() noFooter = false;\n isExpanding = false;\n\n constructor() { }\n\n ngOnInit(): void {\n\n setTimeout(() => {\n const helpDisplay = localStorage.getItem('helpDisplay');\n this.isExpanding = (helpDisplay !== null && JSON.parse(helpDisplay).id === 2);\n }, 0);\n\n if (this.noHeader) {\n this.spaceFromTop = 0;\n }\n\n if (this.noFooter) {\n this.spaceFromBottom = 0;\n }\n }\n\n changeRightAsideVisibility(expanded: boolean) {\n this.isExpanding = expanded;\n }\n\n getRightAsideVisibility() {\n return this.isExpanding;\n }\n\n}\n","\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n \n
\n
\n \n
\n
\n
\n\nEn-tête de page par défaut\nMenu par défaut\nContenu par défaut\nAide par défaut\n
Pied de page par défaut
\n","/* (ignored) */","/* (ignored) */","import {AbstractPageComponent} from './abstract-page.component';\nimport {SelectedParams} from '../models/query/selected-params';\nimport {RequestData} from '../models/query/request-data';\nimport {environment} from '../../environments/environment';\nimport {Canceler} from '../common/promises/request-canceler';\nimport {ParamsData} from '../models/query/params-data';\nimport {BaseService} from '../services/base.service';\nimport {MessageService} from 'primeng/api';\nimport {GridTypes} from '../components/grid/basic-grid/basic-grid.component';\nimport {SchoolYearSemesterValues} from '../models/school-year-semester-values';\nimport {PromotionDTO} from '../models/schools/promotion-dto';\nimport {OptionDTO} from '../models/schools/option-dto';\nimport {ClassDTO} from '../models/schools/class-dto';\nimport {SpecializationDTO} from '../models/schools/specialization-dto';\nimport {QueryData} from '../models/query/query-data';\n\nexport abstract class AbstractRequestComponent extends AbstractPageComponent {\n\n YEAR = 'year';\n SCHOOL = 'school';\n SEMESTER = 'semester';\n PROMOTION = 'promotion';\n SESSION = 'session';\n OPTION = 'option';\n CLASS = 'class';\n SPECIALIZATION = 'specialization';\n\n ROW_INDEX = 'rowIndex';\n\n gridTypes = GridTypes;\n canceler: Canceler = new Canceler();\n\n staticFieldName: Map = new Map([\n [this.YEAR, 'Année scolaire'],\n [this.SCHOOL, 'École'],\n [this.SEMESTER, 'Semestre'],\n [this.PROMOTION, 'Promotion'],\n [this.OPTION, 'Option / Filière'],\n [this.CLASS, 'Classe / Groupe'],\n [this.SPECIALIZATION, 'Spécialisation']]);\n requestData: RequestData;\n selectedParams: SelectedParams[] = [];\n\n responseData: any;\n inputsList: Map = new Map([]);\n\n optionsList: Map = new Map([]);\n\n isLoading = false;\n isReady = false;\n\n mandatoryParamsHaveBeenModified = false;\n\n selectedData: any[] = [];\n\n constructor(public baseService: BaseService,\n public messageService: MessageService) {\n super();\n\n }\n\n abstract initQuery();\n\n orderQueries() {\n return this.requestData.queries.sort((q1, q2) => q1.priority - q2.priority); // on trie par ordre de priorité\n }\n\n executeQuery() {\n let query: string;\n if (this.requestData.query != null) {\n query = this.OldformatUrl(this.requestData.query);\n } else {\n query = this.getAvailableQuery(this.requestData.queries);\n }\n if (query != null) {\n\n this.isLoading = true;\n\n this.baseService.getAll(environment.servicesUrl + query)\n .setCancelAction(this.canceler)\n .then(data => {\n this.selectedData = [];\n this.responseData = data;\n if (this.requestData.dataKey === this.ROW_INDEX) {\n this.setDataIndex();\n }\n this.mandatoryParamsHaveBeenModified = false;\n })\n .catch(console.error) // TODO\n .finally(() => this.isLoading = false);\n }\n }\n\n private setDataIndex() {\n this.responseData.forEach((data, idx) => data[this.ROW_INDEX] = idx );\n }\n\n private getAvailableQuery(queries: QueryData[]) {\n let queryIsValid: boolean;\n let url: string;\n let requiredParams: SelectedParams[];\n let errorField: string;\n queries = queries.sort((q1, q2) => q1.priority - q2.priority); // on trie par ordre de priorité\n\n queries.some(query => { // on boucle sur chaque query\n\n errorField = null;\n url = query.url;\n requiredParams = [];\n queryIsValid = true;\n\n query.fields.some(field => { // on verifie que toutes les parametres de la requête courante sont présent\n const param = this.selectedParams.find(selectedParam => selectedParam.field === field.field);\n\n if (field.is_mandatory && (param == null || param.value == null || param.value.length <= 0) ) {\n errorField = field.field;\n queryIsValid = false;\n }\n if (param != null && param.value != null && param.value.length > 0) {\n requiredParams.push(new SelectedParams(field.field, field.is_mandatory, field.is_request_param, param.value));\n }\n return !queryIsValid; // Si un parametres n'est pas valide on arrete de boucle\n });\n\n return queryIsValid; // si la requête courante est valide on quitte la boucle pour la garder\n });\n\n if (queryIsValid) {\n return this.formatUrl(url, requiredParams);\n } else {\n this.displayErrorField(errorField);\n return null;\n }\n }\n\n protected displayErrorField(fieldError: string) {\n if (fieldError.length > 0) {\n let errorParam = this.staticFieldName.get(fieldError);\n\n if (errorParam == null) {\n const paramData = this.requestData.params.find(param => param.field === fieldError);\n if (paramData != null) {\n errorParam = paramData.name;\n }\n }\n\n this.messageService.add({\n severity: 'error',\n summary: 'Le champ \"' + errorParam + '\" n\\'est pas renseigné',\n life: 2000\n });\n return null;\n }\n }\n\n formatUrl(url: string, requiredParams: SelectedParams[]) {\n let requestIndex = 0;\n requiredParams.forEach(param => {\n\n if (param.is_request_param) {\n if (requestIndex === 0) {\n url += `?${param.field}=${param.value}`;\n } else {\n url += `&${param.field}=${param.value}`;\n }\n requestIndex++;\n } else {\n url = url.replace(`{${param.field}}`, param.value);\n }\n });\n\n return url;\n }\n\n OldformatUrl(url: string) {\n let fieldError = '';\n const requiredParams = this.selectedParams.filter(param => param.is_mandatory || (!param.is_mandatory && param.value !== null));\n let requestIndex = 0;\n\n requiredParams.forEach(param => {\n\n if (param.is_mandatory && param.value === null) {\n fieldError = param.field;\n return;\n }\n\n if (param.is_request_param) {\n if (requestIndex === 0) {\n url += `?${param.field}=${param.value}`;\n } else {\n url += `&${param.field}=${param.value}`;\n }\n requestIndex++;\n } else {\n url = url.replace(`{${param.field}}`, param.value);\n }\n });\n\n if (fieldError.length > 0) {\n let errorParam = this.staticFieldName.get(fieldError);\n\n if (errorParam == null) {\n const paramData = this.requestData.params.find(param => param.field === fieldError);\n if (paramData != null) {\n errorParam = paramData.name;\n }\n }\n\n this.messageService.add({\n severity: 'error',\n summary: 'Le champ \"' + errorParam + '\" n\\'est pas renseigné',\n life: 2000\n });\n return null;\n }\n return url;\n }\n\n initSelectedParams() {\n this.requestData.staticParams.forEach(param => {\n this.selectedParams.push(\n new SelectedParams(param.field, param.is_mandatory != null ? param.is_mandatory : true, param.is_request_param != null ? param.is_request_param : true, null));\n });\n\n this.requestData.params.forEach(param => {\n if (param.type === 'boolean') {\n this.selectedParams.push(\n new SelectedParams(param.field, param.is_mandatory != null ? param.is_mandatory : true, param.is_request_param != null ? param.is_request_param : true, 'false', param.staticParams));\n } else {\n this.selectedParams.push(\n new SelectedParams(param.field, param.is_mandatory != null ? param.is_mandatory : true, param.is_request_param != null ? param.is_request_param : true, null, param.staticParams));\n }\n });\n }\n\n checkIfAllOptionsIsVisible(param: string) {\n if (this.requestData && this.requestData.staticParams) {\n let isVisible = false;\n this.requestData.staticParams.forEach(p => {\n if (p.field.includes(param)) {\n isVisible = p.is_all_options_visible ? p.is_all_options_visible : false;\n }\n });\n return isVisible;\n }\n return false;\n }\n\n checkIfStaticParamIsPresent(param: string) {\n if (this.requestData && this.requestData.staticParams) {\n let paramIsPresent = false;\n this.requestData.staticParams.forEach(o => {\n if (o.field.includes(param)) {\n paramIsPresent = true;\n }\n });\n return paramIsPresent;\n }\n return false;\n }\n\n updateSelectedValueParam(paramField: string, paramValue: string, isStatic: boolean) {\n const selectedValueParam = this.selectedParams.find(param => param.field === paramField);\n if (selectedValueParam != null) {\n selectedValueParam.value = paramValue;\n }\n if (isStatic) {\n this.refreshDynamicParams();\n }\n\n if (this.getMinimumRequirementsFields().indexOf(paramField) !== -1) {\n if (this.responseData != null && this.responseData.length > 0) {\n this.mandatoryParamsHaveBeenModified = true;\n }\n this.selectedData = [];\n }\n }\n\n refreshDynamicParams() {\n this.requestData.params.forEach(param => {\n if (param.staticData != null) {\n this.optionsList[param.field] = param.staticData;\n }\n else {\n if (param.type === 'dropdown' && this.isDynamicParamReady(param)) {\n this.resetParamSelectedValue(param);\n\n const query = this.formatSourceUrl(param);\n\n if (query != null) {\n this.baseService.getAll(environment.servicesUrl + query)\n .setCancelAction(this.canceler)\n .then(data => {\n this.optionsList[param.field] = data;\n })\n .catch(console.error) // TODO\n .finally(() => this.isLoading = false);\n }\n }\n }\n\n if (param.type === 'suggestbox' && this.isDynamicParamReady(param)) {\n this.inputsList[param.field] = null;\n this.resetParamSelectedValue(param);\n }\n });\n }\n\n isDynamicParamReady(param: ParamsData) {\n let isDynamicParamReady = true;\n\n if (param.staticParams != null) {\n\n param.staticParams.forEach(staticParam => {\n const optionalSelectedParam = this.selectedParams.find(selectedParam => selectedParam.field === staticParam.field);\n if (optionalSelectedParam == null) {\n isDynamicParamReady = false;\n }\n if (optionalSelectedParam.is_mandatory && optionalSelectedParam.value == null) {\n isDynamicParamReady = false;\n }\n if (!optionalSelectedParam.is_request_param && optionalSelectedParam.value == null) {\n isDynamicParamReady = false;\n }\n });\n }\n\n return isDynamicParamReady;\n }\n\n resetParamSelectedValue(param: ParamsData) {\n const optionalSelectedParam = this.selectedParams.find(selectedParam => selectedParam.field === param.field);\n\n if (optionalSelectedParam != null) {\n optionalSelectedParam.value = null;\n }\n }\n\n formatSourceUrl(param: ParamsData) {\n let fieldError = '';\n let requestIndex = 0;\n let url = param.source;\n\n if (param.staticParams != null) {\n param.staticParams.forEach(staticParam => {\n\n const optionalSelectedParam = this.selectedParams.find(selectedParam => selectedParam.field === staticParam.field);\n\n if (optionalSelectedParam == null) {\n fieldError = staticParam.field;\n return;\n }\n\n if (staticParam.is_request_param == null || staticParam.is_request_param) {\n if (requestIndex === 0) {\n url += `?${staticParam.field}=${optionalSelectedParam.value}`;\n } else {\n url += `&${staticParam.field}=${optionalSelectedParam.value}`;\n }\n requestIndex++;\n } else {\n url = url.replace(`{${staticParam.field}}`, optionalSelectedParam.value);\n }\n });\n }\n\n if (fieldError.length > 0) {\n return null;\n }\n\n return url;\n }\n\n onYearSelected(values: SchoolYearSemesterValues) {\n this.updateSelectedValueParam(this.YEAR, values.selectedYear.toString(), true);\n }\n\n onSchoolSelected(values: SchoolYearSemesterValues) {\n this.updateSelectedValueParam(this.SCHOOL, values.selectedSchoolId.toString(), true);\n if (values.selectedSchoolId === 0) {\n const semesterParam = this.selectedParams.find(param => param.field === this.SEMESTER);\n if (semesterParam != null) {\n semesterParam.value = null;\n }\n }\n }\n\n onSemesterSelected(values: SchoolYearSemesterValues) {\n if (values.selectedSchoolId !== 0) {\n this.updateSelectedValueParam(this.SEMESTER, values.selectedSemesterId.toString(), true);\n }\n }\n\n areRequiredParamsPresents() {\n if (this.requestData.queries != null && this.requestData.queries.length > 0) {\n return this.canExecuteQuery();\n } else {\n const requiredParams = this.selectedParams.filter(param => (param.is_mandatory) || (!param.is_request_param));\n return requiredParams.filter(param => param.value == null).length === 0;\n }\n }\n\n onPromoSelected(promotionDTO: PromotionDTO) {\n this.updateSelectedValueParam(this.PROMOTION, promotionDTO ? promotionDTO.puid.toString() : null, true);\n }\n\n onSessionSelected(session: string) {\n this.updateSelectedValueParam(this.SESSION, session, true);\n }\n\n onOptionSelected(optionDTO: OptionDTO) {\n this.updateSelectedValueParam(this.OPTION, optionDTO ? optionDTO.puid.toString() : null , true);\n }\n\n onClassSelected(classDTO: ClassDTO) {\n this.updateSelectedValueParam(this.CLASS, classDTO ? classDTO.puid.toString() : null, true);\n }\n\n onSpecializationSelected(specializationDTO: SpecializationDTO) {\n this.updateSelectedValueParam(this.SPECIALIZATION, specializationDTO ? specializationDTO.puid.toString() : null, true);\n }\n\n getMinimumRequirementsFields() {\n if (this.requestData != null && this.requestData.queries != null && this.requestData.queries.length > 0) {\n const queries = this.orderQueries();\n const query = queries[this.requestData.queries.length - 1];\n if (query.fields != null) {\n return query.fields\n .filter(field => field.is_mandatory)\n .map(mandatoryField => mandatoryField.field);\n }\n }\n return [];\n }\n\n canExecuteQuery() {\n const mandatoryFields = this.getMinimumRequirementsFields();\n for (const mandatoryField of mandatoryFields) {\n const mandatoryFieldIsPresent = this.selectedParams.some(selectedParam => selectedParam.field === mandatoryField\n && selectedParam.value != null && selectedParam.value.length > 0);\n if (!mandatoryFieldIsPresent) {\n return false;\n }\n }\n return true;\n }\n\n onRowSelectionChanged(newSelectedData: any[]) {\n this.selectedData = newSelectedData;\n }\n}\n","/* (ignored) */","export class StringUtils {\n static getRandomString(size: number) {\n let result = '';\n const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n const charactersLength = characters.length;\n for (let i = 0; i < size; i++) {\n result += characters.charAt(Math.floor(Math.random() *\n charactersLength));\n }\n return result;\n }\n}\n","import {Component, OnInit} from '@angular/core';\nimport {VersionService} from '../version.service';\n\n@Component({\n selector: 'app-version',\n templateUrl: './version.component.html',\n styleUrls: ['./version.component.scss']\n})\nexport class VersionComponent implements OnInit {\n\n version = VersionService.getVersion();\n\n constructor() {\n }\n\n\n ngOnInit(): void {\n }\n\n}\n","
{{version}}
\n","import { Injectable } from '@angular/core';\nimport {Translation} from 'primeng/api';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CalendarService {\n\n constructor() { }\n\n static getCalendarTraduction(): Translation {\n return {\n monthNames: [\n 'Janvier',\n 'Février',\n 'Mars',\n 'Avril',\n 'Mai',\n 'Juin',\n 'Juillet',\n 'Août',\n 'Septembre',\n 'Octobre',\n 'Novembre',\n 'Décembre'\n ],\n monthNamesShort: [\n 'Jan.',\n 'Fév.',\n 'Mars',\n 'Avr.',\n 'Mai',\n 'Juin',\n 'Juil.',\n 'Août',\n 'Sep.',\n 'Oct.',\n 'Nov.',\n 'Déc.'\n ],\n dayNamesMin: [\n 'Lu',\n 'Ma',\n 'Me',\n 'Je',\n 'Ve',\n 'Sa',\n 'Di',\n ],\n today: `Aujourd'hui`,\n clear: 'Vider',\n };\n }\n}\n","import {AfterViewInit, Component, ElementRef, OnInit, ViewChild} from '@angular/core';\nimport {Page} from '../../../../annotations/page.annotation';\nimport {PagesService} from '../../../../services/pages.service';\nimport {AbstractPageComponent} from '../../../../interfaces/abstract-page.component';\nimport {DiplomasService} from '../../../../services/diplomas.service';\nimport {MessageService} from 'primeng/api';\nimport {ErrorService} from '../../../../services/error.service';\nimport {DiplomaTypeDTO} from '../../../../models/diplomas/diploma-type-dto';\nimport {FormControl, FormGroup, Validators} from '@angular/forms';\nimport {StructureService} from '../../../../services/structure.service';\nimport {Structure} from '../../../../models/structure/structure';\nimport {Dropdown} from 'primeng/dropdown/dropdown';\nimport {GradeDTO} from '../../../../models/diplomas/grade-dto';\nimport {Certifier} from '../../../../models/diplomas/certifier';\nimport {CertifierAdapter} from '../../../../models/diplomas/CertifierAdapter';\nimport {DiplomaWithCertifierDto} from '../../../../models/diplomas/diploma-with-certifier-dto';\n\n@Component({\n selector: 'app-diploma',\n templateUrl: './diploma.component.html',\n styleUrls: ['./diploma.component.scss']\n})\n@Page(PagesService.DIPLOMA, 'Création d\\'un titre', undefined, {icon: 'pi pi-user'})\nexport class DiplomaComponent extends AbstractPageComponent implements OnInit, AfterViewInit {\n private readonly certifierAdapter: CertifierAdapter;\n\n private ESTABLISHMENT_TYPE_ID = 1;\n private RNCP_TYPE_ID = 2;\n\n diplomaForm: FormGroup;\n\n @ViewChild('diplomaCertifier') diplomaCertifier: Dropdown;\n @ViewChild('rncpLevel') rncpLevel: Dropdown;\n showRncpFieldset = false;\n\n //#region data\n diploma: DiplomaWithCertifierDto;\n structures: Structure[] = [];\n certifiers: Certifier[] = [];\n diplomasTypes: DiplomaTypeDTO[] = [];\n grades: GradeDTO[] = [];\n //#endregion\n\n //#region tabs\n @ViewChild('bottomTabs') bottomTabs: ElementRef;\n subTabs = [{value: 'general', label: 'Général'}];\n selectedTab: string;\n bottomTabsHeight = 28;\n\n //#endregion\n\n constructor(private messageService: MessageService,\n private errorService: ErrorService,\n private diplomasService: DiplomasService,\n private structureService: StructureService) {\n super();\n }\n\n ngOnInit(): void {\n this.diploma = this.extraData;\n this.addTabsIfInEditMode();\n\n this.loadDiplomasTypes();\n this.loadGrades();\n this.loadCertifiers();\n\n this.initDiplomaForm();\n\n this.onSubTabClicked(this.subTabs[0]);\n this.onTypeSelectionChanged();\n }\n\n getHelp(): string {\n return '';\n }\n\n onSubTabClicked(subTab: { value: string, label: string }): void {\n\n this.selectedTab = subTab.value;\n\n switch (this.selectedTab) {\n case 'general':\n this.loadGeneral();\n break;\n case 'bloc':\n this.loadBlock();\n break;\n case 'log':\n this.loadLog();\n break;\n }\n }\n\n private loadGeneral() {\n // TODO\n }\n\n private loadBlock() {\n }\n\n private loadLog() {\n // TODO\n }\n\n ngAfterViewInit(): void {\n this.bottomTabsHeight = this.bottomTabs.nativeElement.offsetHeight;\n }\n\n isAddMode(): boolean {\n return this.diploma.diploma_id == null;\n }\n\n private addTabsIfInEditMode(): void {\n if (!this.isAddMode()) {\n this.subTabs = [\n {value: 'general', label: 'Général'},\n {value: 'bloc', label: 'Blocs de compétences'},\n {value: 'log', label: 'Historique'}\n ];\n }\n }\n\n private initDiplomaForm(): void {\n this.diplomaForm = new FormGroup({\n diplomaName: new FormControl(this.diploma.name, Validators.required),\n diplomaCode: new FormControl(this.diploma.code, Validators.required),\n diplomaType: new FormControl(this.isAddMode() ? this.ESTABLISHMENT_TYPE_ID : this.diploma.type_id, Validators.required),\n diplomaCertifier: new FormControl(this.diploma.certifier?.certifier_id, Validators.required),\n diplomaIsActive: new FormControl(this.isAddMode() ? true : this.diploma.is_active),\n diplomaUrl: new FormControl(this.diploma.url, Validators.maxLength(255)),\n diplomaAcronym: new FormControl(this.diploma.acronym, Validators.maxLength(255)),\n diplomaStartDate: new FormControl(this.diploma.start_delivery_date != null\n ? new Date(this.diploma.start_delivery_date)\n : new Date(), Validators.required),\n diplomaEndDate: new FormControl(this.diploma.end_delivery_date != null\n ? new Date(this.diploma.end_delivery_date)\n : null),\n rncpLevel: new FormControl(this.diploma.grade_id),\n codeLearning: new FormControl(this.diploma.code_learning)\n });\n }\n\n private updateDiplomaWithFormData(): void {\n this.diploma.name = this.diplomaForm.get('diplomaName').value;\n this.diploma.code = this.diplomaForm.get('diplomaCode').value;\n this.diploma.code = this.diploma.code.replace(/ /g, '');\n this.diploma.type_id = this.diplomaForm.get('diplomaType').value;\n this.diploma.struct_id = this.diplomaForm.get('diplomaCertifier').value;\n this.diploma.acronym = this.diplomaForm.get('diplomaAcronym').value;\n this.diploma.url = this.diplomaForm.get('diplomaUrl').value;\n this.diploma.start_delivery_date = this.diplomaForm.get('diplomaStartDate').value;\n this.diploma.end_delivery_date = this.diplomaForm.get('diplomaEndDate').value;\n if (this.diplomaCertifierDropdownHasSelectedOption()) {\n this.diploma.certifier = {\n certifier_id: this.diplomaCertifier.selectedOption.certifier_id,\n certifier_name: this.diplomaCertifier.selectedOption.certifier_name,\n is_structure: this.diplomaCertifier.selectedOption.is_structure\n };\n } else {\n this.resetDiplomaCertifierDTO();\n }\n this.diploma.is_active = this.diplomaForm.get('diplomaIsActive').value;\n if (this.rncpLevel != null) {\n this.diploma.grade_id = this.rncpLevel.value != null ? this.rncpLevel.selectedOption.grade_id : null;\n this.diploma.grade_name = this.rncpLevel.value != null ? this.rncpLevel.selectedOption.grade_name : null;\n this.diploma.grade_ects = this.rncpLevel.value != null ? this.rncpLevel.selectedOption.grade_ects : null;\n this.diploma.eqf_id = this.rncpLevel.value != null ? this.rncpLevel.selectedOption.eqf_id : null;\n this.diploma.eqf_name = this.rncpLevel.value != null ? this.rncpLevel.selectedOption.eqf_name : null;\n }\n this.diploma.code_learning = this.diplomaForm.get('codeLearning').value;\n }\n\n private updateTabHeader(): void {\n this.tabLayout.tabs[this.tabLayout.currentTabIndex - 1].header = `TITRE : ${this.diploma.code}`;\n }\n\n private loadDiplomasTypes(): void {\n this.diplomasService.getSchoolsDiplomasTypes()\n .then(types => {\n this.diplomasTypes = types\n .sort((a, b) => (a.name > b.name)\n ? 1 : ((b.name > a.name)\n ? -1 : 0));\n const btsType = this.diplomasTypes.find(diplomaType => diplomaType.name === 'BTS');\n if (btsType) {\n btsType.disabled = true;\n }\n })\n .catch(error => this.errorService.showError(error));\n }\n\n private loadCertifiers(): void {\n this.diplomasService.getCertifiers()\n .then(certifierDTOs => this.certifiers = certifierDTOs\n .map(dto => CertifierAdapter.adapt(dto)))\n .catch(error => this.errorService.showError(error));\n }\n\n\n private loadGrades(): void {\n this.diplomasService.getGrades()\n .then(grades => this.grades = grades)\n .catch(error => this.errorService.showError(error));\n }\n\n private resetGradeSelection(): void {\n this.diploma.grade_id = null;\n this.diploma.grade_name = null;\n this.diploma.grade_ects = null;\n this.diploma.eqf_id = null;\n this.diploma.eqf_name = null;\n }\n\n formIsValid(): boolean {\n if (this.diploma.type_id === this.RNCP_TYPE_ID) {\n if (this.diploma.grade_id == null) {\n return false;\n } else {\n return this.diplomaForm.valid;\n }\n } else {\n return this.diplomaForm.valid;\n }\n }\n\n onSave(): void {\n const addMode = this.isAddMode();\n this.updateDiplomaWithFormData();\n\n this.diplomasService.saveOrUpdateSchoolsDiplomas(this.diploma)\n .then(savedDiploma => {\n this.onSaveSuccessful(savedDiploma, addMode);\n })\n .catch(error => {\n this.onSaveError(error);\n });\n\n }\n\n onSaveSuccessful(savedDiploma: DiplomaWithCertifierDto, addMode: boolean): void {\n this.diploma = savedDiploma;\n this.messageService.add({\n severity: 'success',\n summary: 'Le titre \"' + this.diploma.code + '\" a bien été ' + (addMode ? 'créé.' : 'modifié.'),\n life: 5000\n });\n this.diplomasService.refreshData();\n this.addTabsIfInEditMode();\n this.updateTabHeader();\n }\n\n onSaveError(error): void {\n const diplomaAcronymConflict = error.status === 409 && error.error.result.data === this.diploma.acronym;\n if (diplomaAcronymConflict) {\n this.errorService.showCustomErrorToast({\n is_visible: true,\n header: 'Erreur',\n message: `Cet acronyme n'est pas disponible.`\n }, 5000);\n this.diplomaForm.get('diplomaAcronym').setErrors({conflict: true});\n } else {\n this.errorService.showError(error);\n }\n }\n\n onTypeSelectionChanged(): void {\n this.updateDiplomaWithFormData();\n if (this.diplomaForm.get('diplomaType').value === this.RNCP_TYPE_ID) {\n this.showRncpFieldset = true;\n } else {\n this.showRncpFieldset = false;\n this.rncpLevel = null;\n this.diplomaForm.get('rncpLevel').reset();\n this.onGradeSelectionChanged();\n }\n }\n\n onGradeSelectionChanged(): void {\n this.updateDiplomaWithFormData();\n if (this.rncpLevel == null) {\n this.resetGradeSelection();\n }\n }\n\n private diplomaCertifierDropdownHasSelectedOption() {\n return this.diplomaCertifier != null;\n }\n\n private resetDiplomaCertifierDTO() {\n if (this.diploma.certifier) {\n this.diploma.certifier = {\n certifier_id: null,\n certifier_name: null,\n is_structure: null\n };\n }\n }\n}\n","
\n
\n\n
\n
\n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n
\n \n\n \n \n \n
\n \n \n \n \n
\n
\n\n \n \n \n \n \n \n
\n \n \n \n
\n
\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n
\n
\n
\n
\n\n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n
\n \n \n \n
\n
\n
\n
\n\n
\n \n \n
\n\n
\n //TODO\n
\n
\n\n
\n
{{ subTab.label }}
\n
\n
\n\n
\n \n
\n","import {Injectable} from '@angular/core';\nimport {UrlFactoryService} from '../factories/url-factory.service';\nimport {BaseService} from './base.service';\nimport {RightsGroup} from '../models/rights/rights-group';\nimport {Right} from '../models/rights/right';\nimport {UserHasRight} from '../models/rights/user_has_right';\nimport {RightsGroupHasRight} from '../models/rights/rights-group-has-right';\nimport {RightsFamily} from '../models/rights/rights_family';\nimport {Administrative} from '../models/administration/administrative';\nimport {RightsGroupMemberLogDTO} from '../models/rights/rights-group-member-log-dto';\nimport {RightLogDTO} from '../models/rights/right-log-dto';\nimport {RightType} from '../models/rights/right-type';\nimport {CancelablePromise} from '../common/promises/cancelable-promise';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class RightsService {\n\n constructor(private baseService: BaseService,\n private urlFactory: UrlFactoryService) {\n }\n\n getRights(): CancelablePromise {\n return this.baseService.getAll(this.urlFactory.getRightsUrl());\n }\n\n saveRight(rightToSave: any): CancelablePromise {\n return this.baseService.save(this.urlFactory.getRightsUrl(), rightToSave, false);\n }\n\n activateRights(ids: number[], active: boolean): CancelablePromise {\n return this.baseService.patch(this.urlFactory.getRightsActivationUrl() + '/' + active, ids);\n }\n\n deleteRights(rightsToDelete: Right[]): CancelablePromise {\n return this.baseService.deleteAll(this.urlFactory.getRightsUrl(), rightsToDelete);\n }\n\n getAllRightsGroups(): CancelablePromise {\n return this.baseService.getAll(this.urlFactory.getAllRightsGroupsUrl());\n }\n\n getRightsGroupsByName(chunk: string): CancelablePromise {\n return this.baseService.getAll(this.urlFactory.getRightsGroupsByNameUrl(chunk));\n }\n\n getCurrentRightsGroup(): CancelablePromise {\n return this.baseService.getAll(this.urlFactory.getCurrentRightsGroupUrl());\n }\n\n getRightsGroupsFromMember(uid: number): CancelablePromise {\n return this.baseService.getAll(this.urlFactory.getRightsGroupsFromMemberUrl(uid));\n }\n\n getMembersFromMyRightsGroups(): CancelablePromise {\n return this.baseService.getAll(this.urlFactory.getMembersFromMyRightsGroupsUrl());\n }\n\n getRightsGroupChildren(rightsGroupId: number): CancelablePromise {\n return this.baseService.getAll(this.urlFactory.getRightsGroupChildrenUrl(rightsGroupId));\n }\n\n getRightsGroupMembers(rightsGroupId: number): CancelablePromise {\n return this.baseService.getAll(this.urlFactory.getRightsGroupMembersUrl(rightsGroupId));\n }\n\n getRightsGroupRights(rightsGroupId: number): CancelablePromise {\n return this.baseService.getAll(this.urlFactory.getRightsGroupRightsUrl(rightsGroupId));\n }\n\n getRightsGroupByRight(rightId: number): CancelablePromise {\n return this.baseService.getAll(this.urlFactory.getRightsGroupByRightUrl(rightId));\n }\n\n getRightsFamilies(): CancelablePromise {\n return this.baseService.getAll(this.urlFactory.getRightsFamiliesUrl());\n }\n\n getAllRightsFamilies(): CancelablePromise {\n return this.baseService.getAll(this.urlFactory.getAllRightsFamiliesUrl());\n }\n\n saveFamily(familyToSave: any): CancelablePromise {\n return this.baseService.save(this.urlFactory.getRightsFamiliesUrl(), familyToSave, false);\n }\n\n deleteFamilies(familiesToDelete: RightsFamily[]): CancelablePromise {\n return this.baseService.deleteAll(this.urlFactory.getRightsFamiliesUrl(), familiesToDelete);\n }\n\n getRightTypes(): CancelablePromise {\n return this.baseService.getAll(this.urlFactory.getRightsTypesUrl());\n }\n\n saveRightsGroupRights(rightsGroupId: number, rightsToSave: any[]): CancelablePromise {\n return this.baseService.save(this.urlFactory.getRightsGroupRightsUrl(rightsGroupId), rightsToSave, false);\n }\n\n removeRightsGroupMembers(rightsGroupId: number, toRemove: number[]): CancelablePromise {\n const elementsToRemove = toRemove.map(a => ({uid: a}));\n return this.baseService.deleteAll(this.urlFactory.getRightsGroupMembersUrl(rightsGroupId), elementsToRemove);\n }\n\n removeRightsGroupsFromMember(uid: number, toRemove: number[]): CancelablePromise {\n const elementsToRemove = toRemove.map(rg => ({rights_group_id: rg}));\n return this.baseService.deleteAll(this.urlFactory.getRightsGroupsFromMemberUrl(uid), elementsToRemove);\n }\n\n addRightsGroupMembers(rightsGroupId: number, toAdd: number[]): CancelablePromise {\n const elementsToSave = toAdd.map(a => ({uid: a}));\n return this.baseService.save(this.urlFactory.getRightsGroupMembersUrl(rightsGroupId), elementsToSave, false);\n }\n\n addRightsGroupsToMember(uid: number, toAdd: number[]): CancelablePromise {\n const elementsToSave = toAdd.map(rg => ({rights_group_id: rg}));\n return this.baseService.save(this.urlFactory.getRightsGroupsFromMemberUrl(uid), elementsToSave, false);\n }\n\n getUserRights(uid: number): CancelablePromise {\n return this.baseService.getAll(this.urlFactory.getUserRightsUrl(uid));\n }\n\n saveRightsGroup(rightsGroupToSave: RightsGroup): CancelablePromise {\n return this.baseService.save(this.urlFactory.getAllRightsGroupsUrl(), rightsGroupToSave, false);\n }\n\n removeRightsGroup(rightsGroupId: number): CancelablePromise {\n return this.baseService.deleteFromUrl(this.urlFactory.getRightsGroupUrl(rightsGroupId));\n }\n\n getRightsGroupMemberLogs(rightsGroupId: number): CancelablePromise {\n return this.baseService.getAll(this.urlFactory.getRightsGroupMemberLogsUrl(rightsGroupId));\n }\n\n getRightsLogs(rightsGroupId: number, rightId: number): CancelablePromise {\n return this.baseService.getAll(this.urlFactory.getRightsLogsUrl(rightsGroupId, rightId));\n }\n\n getRightsLogsByUser(rightId: number, userId: number): CancelablePromise {\n return this.baseService.getAll(this.urlFactory.getRightsLogsByUserUrl(rightId, userId));\n }\n}\n","import { Injectable } from '@angular/core';\nimport {MessageService} from 'primeng/api';\nimport {BehaviorSubject, Observable} from 'rxjs';\nimport {ErrorDialogMessage} from '../models/error-dialog-message';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ErrorService {\n private mIsErrorDialogVisible = new BehaviorSubject({is_visible: false, header: '', message: ''});\n readonly mObservedErrorDialogVisibility = this.mIsErrorDialogVisible.asObservable();\n private errorDialogVisibility: ErrorDialogMessage | undefined;\n\n get isErrorDialogVisible(): Observable {\n return this.mObservedErrorDialogVisibility;\n }\n\n constructor(private messageService: MessageService) { }\n\n showCustomErrorDialog(val: ErrorDialogMessage): void {\n this.errorDialogVisibility = val;\n this.mIsErrorDialogVisible.next(this.errorDialogVisibility);\n }\n\n showError(error: any): void {\n switch (error.status) {\n case 404: this.showCustomErrorToast({ is_visible: true, header: 'Erreur', message: `La ressource demandée n'a pas été trouvée.`}); break;\n case 405: this.showCustomErrorToast({ is_visible: true, header: 'Erreur', message: `Vous n'êtes pas autorisé à accéder à cette ressource.`}); break;\n case 423: this.showCustomErrorDialog({is_visible: true, header: 'Erreur', message: 'Votre compte a été momentanément bloqué pour la raison suivante : .'}); break;\n case 500: this.showCustomErrorDialog({is_visible: true, header: 'Erreur', message: 'Impossible de contacter le serveur.'}); break;\n default: this.showCustomErrorDialog({is_visible: true, header: 'Erreur', message: 'Une erreur inconnue est survenue.'}); break;\n }\n }\n\n showCustomErrorToast(errorDialogMessage: ErrorDialogMessage, duration?: number): void {\n this.messageService.add({severity: 'error', summary: errorDialogMessage.header, detail: errorDialogMessage.message, life: duration});\n }\n\n showCustomWarningToast(errorDialogMessage: ErrorDialogMessage, duration?: number): void {\n this.messageService.add({severity: 'warn', summary: errorDialogMessage.header, detail: errorDialogMessage.message, life: duration});\n }\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-loader-screen',\n templateUrl: './loader-screen.component.html',\n styleUrls: ['./loader-screen.component.scss']\n})\nexport class LoaderScreenComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","
\n
\n
\n \n
\n
Chargement en cours, veuillez patienter
\n \n
\n
\n
\n
\n","import {Component, Input, OnInit, Output, EventEmitter} from '@angular/core';\n\n@Component({\n selector: 'app-favorite-star',\n templateUrl: './favorite-star.component.html',\n styleUrls: ['./favorite-star.component.scss']\n})\nexport class FavoriteStarComponent implements OnInit {\n @Input()\n isFavorite = false;\n\n @Output()\n changeFavorite = new EventEmitter();\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n registerFavorite() {\n this.isFavorite = !this.isFavorite;\n this.changeFavorite.emit();\n }\n}\n","
\n \n \n \n
\n","declare const require: any;\n\nexport const environment = {\n title: 'Kordis',\n production: true,\n authenticationUrl: 'https://authentication.kordis.fr',\n servicesUrl: 'https://api.kordis.fr',\n client_id: 'kordis',\n version: require('../../package.json').version,\n version_type: require('../../package.json').version_type,\n\n};\n","import { Injectable } from '@angular/core';\nimport {environment} from '../../environments/environment';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LocalStorageService {\n\n public static CACHED_APP_VERSION = 'KordisAppVersionTag';\n\n constructor() { }\n\n // Nous gardons en cache la dernière version enregistrée de la version de l'APP, et la comparons avec la version d'environnement pour détecter une maj\n static isAppUpdated(): Promise {\n return new Promise( ((resolve) => {\n const newAppVersion = environment.version;\n\n if (localStorage.getItem(LocalStorageService.CACHED_APP_VERSION)) {\n const oldAppVersion = localStorage.getItem(LocalStorageService.CACHED_APP_VERSION);\n\n if (oldAppVersion !== newAppVersion) {\n resolve(true);\n } else {\n resolve(false);\n }\n }\n resolve(false);\n }));\n }\n\n static cleanCache() {\n // comme window.location.reload(true) est déprécié pour forcer le reload, cette méthode fonctionne\n // noinspection SillyAssignmentJS\n window.location.href = window.location.href;\n }\n\n static updateCachedVersion() {\n localStorage.setItem(LocalStorageService.CACHED_APP_VERSION, environment.version);\n }\n}\n","import {Pipe, PipeTransform} from '@angular/core';\n\n@Pipe({\n name: 'highlight'\n})\nexport class HighlightPipe implements PipeTransform {\n\n transform(value: any, args: any): any {\n if (!args) {\n return value;\n }\n const re = new RegExp(args, 'gi'); // 'gi' for case insensitive and can use 'g' if you want the search to be case sensitive.\n return value.replace(re, '$&');\n }\n}\n","import {\n AfterViewInit,\n Component,\n EventEmitter,\n HostListener,\n Input,\n OnInit,\n Output,\n TemplateRef,\n ViewChild\n} from '@angular/core';\nimport {Table} from 'primeng/table/table';\nimport {TableColumn} from 'src/app/models/table-column';\nimport {CustomToolbarButton} from 'src/app/models/custom-toolbar-button';\nimport jsPDF from 'jspdf';\nimport autoTable from 'jspdf-autotable';\nimport {FilterMatchMode, FilterService, MenuItem, MessageService, PrimeNGConfig, SelectItem} from 'primeng/api';\nimport {CustomToolbarSplitButton} from '../../../models/custom-toolbar-split-button';\nimport {DatePipe} from '@angular/common';\nimport {FileService} from '../../../services/file.service';\nimport {StringUtils} from '../../../common/utils/string-utils';\nimport {FilterTypeEnum} from '../../../utils/filterTypeEnum';\n\nexport enum GridTypes {\n MAIN_GRID = ('main-grid'),\n REGULAR_GRID = ('regular-grid'),\n QUERY_GRID = ('query-grid'),\n RIGHT_GRID = ('right-grid'),\n DIPLOMA_GRID = ('diploma-grid')\n}\n\n@Component({\n selector: 'app-basic-grid',\n templateUrl: './basic-grid.component.html',\n styleUrls: ['./basic-grid.component.scss']\n})\nexport class BasicGridComponent implements OnInit, AfterViewInit {\n\n @ViewChild('dt') table: Table;\n @Input() gridType: GridTypes = GridTypes.REGULAR_GRID;\n\n @Input() isDisabled = false;\n\n @Input() customButtonsTemplate: TemplateRef;\n\n @Input() gridTitle = '';\n private baseExportTitle = 'Export';\n @Input() exportTitle = this.baseExportTitle;\n\n isTabActiveValue = false;\n @Input() heightToKeep = 0;\n @Input() rowToRemove = 0;\n\n @Input()\n get isTabActive() {\n return this.isTabActiveValue;\n }\n\n set isTabActive(val) {\n this.isTabActiveValue = val;\n if (this.isTabActiveValue === true) {\n setTimeout(() => this.calculateRows(), 0);\n }\n }\n\n @Input() selectedData: any[];\n\n //#region outputs\n @Output() customToolbarButtonClicked = new EventEmitter();\n @Output() rowsSelectionChanged = new EventEmitter();\n @Output() refreshRequested = new EventEmitter();\n @Output() addRequested = new EventEmitter();\n @Output() deleteSelectedRequested = new EventEmitter();\n @Output() showRequested = new EventEmitter();\n @Output() sendPublipostageClicked = new EventEmitter();\n @Output() sendEmailingClicked = new EventEmitter();\n @Output() sendSmsClicked = new EventEmitter();\n @Output() sendNotificationClicked = new EventEmitter();\n @Output() rowDblClicked = new EventEmitter();\n @Output() cancel: EventEmitter = new EventEmitter();\n //#endregion\n\n //#region customToolbarButtons\n private mCustomToolbarButtons: CustomToolbarButton[];\n\n public get customToolbarButtons() {\n return this.mCustomToolbarButtons;\n }\n\n @Input()\n public set customToolbarButtons(value) {\n this.mCustomToolbarButtons = value;\n }\n\n //#endregion\n\n //#region customToolbarButtons\n private mCustomToolbarSplitButtons: CustomToolbarSplitButton[];\n\n public get customToolbarSplitButtons() {\n return this.mCustomToolbarSplitButtons;\n }\n\n @Input()\n public set customToolbarSplitButtons(value) {\n this.mCustomToolbarSplitButtons = value;\n }\n\n //#endregion\n\n //#region data\n private mAllData: any[];\n mData: any[];\n\n get data(): any[] {\n return this.mData;\n }\n\n @Input()\n set data(value: any[]) {\n this.mAllData = value;\n this.mData = value;\n\n this.selectedOptions = {};\n\n if (this.columns && this.columns.length > 0) {\n\n const options = this.getColumnsWithDropdownFilter();\n\n options.forEach(option => this.options[option] = this.mData\n .map(d => ({label: d[option], value: d[option]}))\n .filter((v, i, array) => array.findIndex(t => t.value === v.value) === i)\n .sort((a, b) => a.value > b.value ? 1 : -1));\n }\n this.calculateRows();\n\n this.dataChanged.emit(this.mData);\n }\n\n @Output() dataChanged = new EventEmitter();\n //#endregion\n\n //#region columns\n mColumns: TableColumn[];\n\n get columns(): TableColumn[] {\n return this.mColumns;\n }\n\n @Input('columns')\n set columns(value: TableColumn[]) {\n this.mColumns = value;\n this.columnsChanged.emit(this.mColumns);\n }\n\n @Output() columnsChanged = new EventEmitter();\n\n @Input() globalFilterFields: any[];\n\n //#endregion\n\n parentDivWidth = 0;\n\n //region publipostage\n displayPublipostageDialog = false;\n displayPublipostageDownloadDialog = false;\n publipostageMode = 'existingDocument';\n publipostageSelectedFiles: any[];\n //endregion\n\n customFilterName = 'strict-equals';\n matchModeOptions: SelectItem[] = [\n {label: 'Valeur exacte', value: this.customFilterName},\n {label: 'Commence par...', value: FilterMatchMode.STARTS_WITH},\n {label: 'Contient...', value: FilterMatchMode.CONTAINS},\n ];\n\n options: { [key: string]: any[]; } = {};\n selectedOptions: { [key: string]: string[]; } = {};\n rows = 0;\n\n @Input() loading = true;\n @Input() gridWidth = 200;\n\n @Input() dataKey = 'id';\n @Input() topColumns: any[];\n @Input() showRefreshButton = true;\n @Input() showAddButton = false;\n @Input() showDeleteButton = false;\n @Input() showShowButton = false;\n @Input() totalHeight = 0;\n\n @Input() sendExportExcelVisible = true;\n @Input() sendExportPDFVisible = true;\n @Input() sendPublipostageVisible = true;\n @Input() sendEmailingVisible = true;\n @Input() sendSmsVisible = true;\n @Input() sendNotificationVisible = true;\n\n @Input() scrollable = true;\n\n //region scrollSizeInPx\n mScrollSizeInPx = 0;\n @Output() scrollSizeInPxChanged = new EventEmitter();\n\n @Input()\n get scrollSizeInPx(): number {\n return this.mScrollSizeInPx;\n }\n\n set scrollSizeInPx(val: number) {\n this.mScrollSizeInPx = val;\n this.scrollSizeInPxChanged.emit(val);\n }\n\n //endregion\n\n //region bottomSize\n mBottomSize = 0;\n @Output() bottomSizeChanged = new EventEmitter();\n\n @Input()\n get bottomSize(): number {\n return this.mBottomSize;\n }\n\n set bottomSize(val: number) {\n this.mBottomSize = val;\n this.bottomSizeChanged.emit(val);\n }\n\n //endregion\n\n //region globalSearch\n @Input() showGlobalSearch = false;\n searchInput = '';\n //region exportSplitButton\n exportItems: MenuItem[];\n //endregion\n //region moreActionsButton\n moreActionItems: MenuItem[] = [];\n\n //endregion\n\n private formatString(stringToConvert: string): string {\n return stringToConvert.toLowerCase().normalize('NFD').replace(/\\p{Diacritic}/gu, '');\n }\n\n onResetSearchInput(): void {\n if (this.searchInput) {\n this.searchInput = '';\n this.mData = this.mAllData;\n }\n }\n\n searchGlobal(event: any): void {\n if (event != null) {\n const stringToSearch = this.formatString(event);\n const filteredData: any[] = [];\n this.mAllData.forEach(element => {\n for (const column of this.columns) {\n if (element[column.field] != null && this.formatString(element[column.field].toString()).indexOf(stringToSearch) >= 0) {\n filteredData.push(element);\n break;\n }\n }\n });\n\n this.mData = filteredData;\n }\n }\n\n updateDataAfterChange(newData: any[]): void {\n this.mData = newData;\n this.mAllData = newData;\n this.handleGridBorder();\n this.searchGlobal(this.searchInput);\n }\n\n //#endregion\n\n constructor(private filterService: FilterService,\n private config: PrimeNGConfig,\n private fileService: FileService,\n private messageService: MessageService,\n public datePipe: DatePipe) {\n }\n\n ngOnInit(): void {\n this.filterService.register(this.customFilterName, (value, filter): boolean => {\n if (filter === undefined || filter === null || filter.trim() === '') {\n return true;\n }\n\n if (value === undefined || value === null) {\n return false;\n }\n\n return value.toString() === filter.toString();\n });\n\n this.config.setTranslation({\n accept: 'Accepter',\n reject: 'Annuler',\n apply: 'Appliquer',\n addRule: 'Ajouter une règle',\n cancel: 'Annuler',\n clear: 'Effacer',\n removeRule: 'Retirer la règle'\n });\n this.initExportItems();\n }\n\n ngAfterViewInit(): void {\n this.parentDivWidth = this.table?.el?.nativeElement?.children[0]?.offsetWidth;\n setTimeout(() => this.calculateRows(), 0);\n }\n\n initExportItems(): void {\n this.exportItems = [\n {\n label: 'Export Excel',\n icon: 'pi pi-file-excel',\n command: () => this.exportExcel(),\n visible: this.sendExportExcelVisible\n },\n {\n label: 'Export PDF',\n icon: 'pi pi-file-pdf',\n command: () => this.exportPdf(),\n visible: this.sendExportPDFVisible\n },\n {\n label: 'Publipostage',\n icon: 'pi pi-file-o',\n command: () => this.displayPublipostageDialog = true,\n visible: this.sendPublipostageVisible\n },\n {\n label: 'E-mailing',\n icon: 'pi pi-envelope',\n command: () => this.sendEmailing(),\n visible: this.sendEmailingVisible\n },\n {label: 'Envoi SMS', icon: 'pi pi-phone', command: () => this.sendSms(), visible: this.sendSmsVisible},\n {\n label: 'Notification',\n icon: 'pi pi-exclamation-circle',\n command: () => this.sendNotification(),\n visible: this.sendNotificationVisible\n },\n ];\n }\n\n onCustomToolbarButtonClicked(buttonIndex): void {\n this.customToolbarButtonClicked.emit(this.customToolbarButtons[buttonIndex].buttonId);\n }\n\n onRowSelect(): void {\n this.rowsSelectionChanged.emit(this.selectedData);\n }\n\n onRowUnselect(): void {\n this.rowsSelectionChanged.emit(this.selectedData);\n }\n\n onHeaderCheckboxToggle(): void {\n this.rowsSelectionChanged.emit(this.selectedData);\n }\n\n exportPdf(): void {\n // noinspection JSPotentiallyInvalidConstructorUsage\n const doc = new jsPDF(this.columns.length > 6 ? 'l' : 'p');\n\n const fields = this.columns.map(o => o.field);\n const headers = [this.columns.map(o => o.header)];\n\n autoTable(doc, {\n head: headers,\n body: this.data.map(d => fields.map(k => {\n const dataType = this.columns.find(o => o.field === k);\n\n if (dataType?.type === 'boolean') {\n return d[k] ? 'oui' : 'non';\n } else if (dataType?.type === 'date') {\n return new Date(d[k]).toLocaleDateString();\n }\n return d[k];\n })),\n didDrawPage: (dataArg) => {\n doc.text(this.exportTitle.length > 0 ? this.exportTitle : this.baseExportTitle, dataArg.settings.margin.left, 10);\n }\n });\n\n doc.save(`${this.exportTitle.length > 0 ? this.exportTitle : this.baseExportTitle}.pdf`);\n }\n\n exportExcel(): void {\n const excelRawData = JSON.parse(JSON.stringify(this.selectedData && this.selectedData.length > 0 ? this.selectedData : this.data));\n\n const excelBuffer: Blob = this.fileService.createFileBlobFromRawDataAndColumns(excelRawData, this.columns, this.topColumns);\n this.fileService.saveBlobAsExcelFile(excelBuffer, this.exportTitle.length > 0 ? this.exportTitle : this.baseExportTitle);\n }\n\n refresh(): void {\n this.table.selectionKeys = {};\n this.selectedData = [];\n this.refreshRequested.emit(true);\n }\n\n add(): void {\n this.addRequested.emit();\n }\n\n deleteSelected(): void {\n this.deleteSelectedRequested.emit();\n }\n\n showSelectedElement(): void {\n if (this.selectedData && this.selectedData.length === 1) {\n this.showRequested.emit(this.selectedData[0]);\n }\n }\n\n filterValues(): void {\n const options = this.getColumnsWithDropdownFilter();\n let data = [...this.mAllData];\n\n options.forEach(opt => {\n if (this.selectedOptions[opt] && this.selectedOptions[opt].length > 0) {\n data = data.filter(d => this.selectedOptions[opt].findIndex(o => o === d[opt]) !== -1);\n }\n });\n\n this.mData = [...data];\n }\n\n sendEmailing(): void {\n this.sendEmailingClicked.emit();\n }\n\n sendSms(): void {\n this.sendSmsClicked.emit();\n }\n\n sendNotification(): void {\n this.sendNotificationClicked.emit();\n }\n\n onRowClicked(event, rowData: any): void {\n // si l'on a cliqué sur la checkbox de la ligne, la sélection est déjà gérée et ne doit l'être ici\n if (event.target.classList.contains('p-checkbox-box') || this.isDisabled) {\n return;\n }\n\n if (!this.selectedData) {\n this.selectedData = [];\n }\n\n const index = this.selectedData.findIndex(o => o[this.dataKey] === rowData[this.dataKey]);\n\n if (index > -1) {\n this.selectedData.splice(index, 1);\n }\n // cette condition détermine si la checkbox a servi à décocher la ligne courante ou non\n else if (!event.target.classList.contains('p-checkbox-icon')) {\n this.selectedData.push(rowData);\n }\n\n this.selectedData = [...this.selectedData];\n this.rowsSelectionChanged.emit(this.selectedData);\n }\n\n hasAnySendButton(): boolean {\n return this.sendExportExcelVisible || this.sendExportPDFVisible || this.sendPublipostageVisible || this.sendEmailingVisible || this.sendSmsVisible || this.sendNotificationVisible;\n }\n\n onDblClick(event: any): void {\n this.rowDblClicked.emit(event);\n }\n\n cancelRequest(): void {\n this.cancel.emit('cancel');\n }\n\n @HostListener('window:resize', ['$event'])\n calculateRows(): void {\n if (this.isTabActive && this.table != null && this.table.containerViewChild != null && this.table.containerViewChild.nativeElement != null) {\n const lineHeight = 24;\n const titleHeight = 45;\n const buttonsHeight = 58;\n const headerFooterHeights = 200;\n const headerFooterAndColumnFamilyHeights = 243;\n const topPosition = this.table.containerViewChild.nativeElement.getElementsByTagName('tbody')[0].getBoundingClientRect().top;\n\n // Calcul de la hauteur restante\n let availableHeight = window.innerHeight - topPosition;\n if (this.gridTitle == null || this.gridTitle.trim().length === 0) {\n availableHeight += titleHeight; // Si la grid ne possède pas de titre\n }\n if (this.isButtonsRowNotDisplayed()) {\n availableHeight += buttonsHeight; // Si la grid ne possède pas de bouttons\n }\n\n if (this.gridType === GridTypes.RIGHT_GRID) {\n const heightUsedByOtherTabPanel = 50;\n availableHeight -= heightUsedByOtherTabPanel; // La grid de la page right est contenue dans un autre tab-panel\n }\n\n // division par la taille d'une ligne (24px) plus réduction de 2 pour le scroll horizontal et pagination\n if (Math.round((availableHeight / lineHeight)) > 0) {\n this.rows = Math.round((availableHeight / lineHeight) - 2 - this.rowToRemove);\n if (this.gridType === GridTypes.MAIN_GRID) {\n // Mise à jour de la taille de la grid quand elle a des famille de colonne\n this.table.containerViewChild.nativeElement.style.height = lineHeight * this.rows + headerFooterAndColumnFamilyHeights + 'px';\n } else {\n // Mise à jour de la taille de la grid quand elle n'a pas de famille de colonne\n this.table.containerViewChild.nativeElement.style.height = lineHeight * this.rows + headerFooterHeights - this.heightToKeep + 'px';\n }\n }\n this.handleGridBorder();\n }\n }\n\n private isButtonsRowNotDisplayed(): boolean {\n return this.showAddButton === false && this.showDeleteButton === false && this.showShowButton === false && this.customButtonsTemplate == null;\n }\n\n private handleGridBorder(): void {\n if (this.mData === undefined || this.mData === null || this.mData.length === 0) {\n this.table.containerViewChild.nativeElement.getElementsByClassName('p-datatable-scrollable-body')[0].style.borderStyle = 'none';\n } else {\n this.table.containerViewChild.nativeElement.getElementsByClassName('p-datatable-scrollable-body')[0].style.borderStyle = 'solid';\n }\n }\n\n isFilterActivated(col: TableColumn, inputType: string): boolean {\n return col.filterType != null && col.filterType.includes(inputType) && col.type !== 'boolean';\n }\n\n private getColumnsWithDropdownFilter(): string[] {\n return this.columns.filter(c => c.filterType != null && c.filterType.includes(FilterTypeEnum.DROPDOWN_FILTER)).map(c => c.field);\n }\n\n onDownloadPublipostageModelFiles(): void {\n this.displayPublipostageDialog = false;\n this.displayPublipostageDownloadDialog = false;\n\n if (this.publipostageSelectedFiles[0] && this.publipostageSelectedFiles[0].size === 0) {\n this.messageService.add({\n summary: 'Le document existant ne peut pas être complètement vide.',\n severity: 'error',\n life: 10000\n });\n return;\n }\n\n this.loading = true;\n const excelRawData = JSON.parse(JSON.stringify(this.selectedData && this.selectedData.length > 0 ? this.selectedData : this.data));\n\n const data: Blob = this.fileService.createFileBlobFromRawDataAndColumns(excelRawData, this.columns, this.topColumns);\n const filename = StringUtils.getRandomString(10);\n\n if (this.publipostageSelectedFiles[0]) {\n\n this.fileService.getPublipostedWordFileFromPassedWordFile(\n this.fileService.blobToFile(data, filename),\n this.publipostageSelectedFiles\n && this.publipostageSelectedFiles.length\n ? this.publipostageSelectedFiles[0]\n : null)\n .then(() => {\n this.fileService.saveBlobAsExcelFile(data, filename);\n this.loading = false;\n });\n } else {\n this.fileService.getPublipostedWordFileWithoutWordFile(\n this.fileService.blobToFile(data, filename)\n )\n .then(() => {\n this.fileService.saveBlobAsExcelFile(data, filename);\n this.loading = false;\n });\n }\n\n this.resetPublipostageFiles();\n }\n\n importOnClick(event: any): void {\n this.publipostageSelectedFiles = event.currentFiles;\n }\n\n resetPublipostageSelectedFiles(): void {\n this.publipostageSelectedFiles.splice(0);\n }\n\n onValidatePublipostage(event: MouseEvent): void {\n this.displayPublipostageDialog = false;\n this.displayPublipostageDownloadDialog = true;\n }\n\n resetPublipostageFiles(): void {\n this.publipostageSelectedFiles = [];\n }\n\n removeAllSelection(): void {\n this.selectedData = [];\n }\n}\n","
\n 0\" [rowHover]=\"true\" [rows]=\"rows\"\n [showCurrentPageReport]=\"true\"\n currentPageReportTemplate=\"Résultats {first} à {last} / {totalRecords} entrées\"\n [resizableColumns]=\"true\" columnResizeMode=\"fit\"\n [scrollable]=\"true\"\n [style]=\"{'min-width': '100%', 'position': 'relative', 'height' : 'auto'}\"\n [scrollHeight]=\"'flex'\"\n [filterDelay]=\"0\"\n [globalFilterFields]=\"globalFilterFields\">\n \n
0\" class=\"header-grid-title\">{{ gridTitle }}
\n\n
\n
\n\n
\n \n \n 0\" class=\"pi pi-times clickable\" style=\"color: red\" (click)=\"onResetSearchInput()\">\n \n \n
\n\n \n \n \n 0\" icon=\"pi pi-ellipsis-h\" [model]=\"moreActionItems\" styleClass=\"p-button-secondary moreButton\">\n
\n
\n
\n \n \n
\n 0\"> {{selectedData.length}} élément(s) sélectionné(s)\n\n
\n
\n \n \n \n \n \n \n \n 0\">\n \n \n
{{ col.header }}
\n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n {{col.header}}\n
\n \n \n
\n \n \n \n \n \n \n 0 && col.type === 'boolean'\"\n [(ngModel)]=\"rowData[col.field]\" binary=\"true\" [disabled]=\"col.readonly\">\n 0 && col.type === 'number' || col.type === 'string'\">{{rowData[col.field]}}\n 0 && col.type === 'date'\">{{rowData[col.field] | date}}\n 0 && col.type === 'link'\"\n class=\"link-span\"\n pTooltip=\"{{rowData[col.field]}}\" tooltipPosition=\"bottom\" tooltipEvent=\"hover\"\n escape=\"false\"\n tooltipStyleClass=\"link-tooltip\">Afficher\n \n \n \n \n
\n Aucun résultat\n
\n
\n\n \n
\n
\n \n
\n\n
\n
\n
\n\n
\n \n
\n
\n
\n
\n
\n \n

Les paramêtres obligatoires ont changés.

\n

Si votre paramétrage est terminé, veuillez cliquer sur le bouton \"Exécuter\".

\n
\n
\n
\n\n\n\n
\n La génération de votre publipostage va nécessiter le télechargement de 2 documents:
\n Un modèle Word et\n une base de données Excel\n

\n Attention, pour que le publipostage fonctionne, vous devrez respecter les règles suivantes:
\n
\n
\n
\n 1. Le nom du fichier Excel téléchargé ne devra pas\n être modifié.
\n Seul le nom du fichier Word pourra être changé.\n
\n
\n
\n
\n
\n
\n 2. Les deux fichiers devront se situer dans le même\n répertoire.\n
\n
\n
\n
\n 3.Vous devrez fermer TOUS les logiciels de la\n suite Office ouverts avant d'ouvrir le document word de publipostage.\n
\n
\n
\n
\n
\n Pour poursuivre la procédure de publipostage, veuillez cliquer sur le bouton Télécharger les documents.\n
\n\n \n \n \n \n
\n\n\n\n
\n
Publipostage depuis un :
\n
\n \n \n
\n\n
\n
\n
Document (.docx) :
\n
\n \n \n \n \n \n
\n
\n
\n\n \n \n \n \n
\n\n\n","import {Injectable} from '@angular/core';\nimport {HttpClient, HttpHeaders, HttpRequest, HttpResponse} from '@angular/common/http';\nimport {AuthenticatedUserService} from './authenticated-user.service';\nimport {Linked} from '../models/linked';\nimport {Page} from '../models/page';\nimport {saveAs} from 'file-saver';\nimport {CancelablePromise} from '../common/promises/cancelable-promise';\nimport {Canceler} from '../common/promises/request-canceler';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BaseService {\n\n constructor(private http: HttpClient,\n private authenticatedUserService: AuthenticatedUserService) {\n }\n\n get(url: string): CancelablePromise {\n const canceler = new Canceler();\n\n const callback = (resolve, reject) => {\n canceler.cancel = () => {\n reject('Request canceled');\n };\n this.http.get(url,\n {\n headers: {'content-type': 'application/json'},\n responseType: 'json',\n observe: 'response'\n }\n )\n .subscribe(\n (data) => {\n if (data.status === 204) {\n resolve();\n } else if (data.body && data.body[`response_code`] === 0) {\n resolve(data.body[`result`]);\n } else {\n reject(data.body ? data.body[`result`] : '');\n }\n },\n (error) => {\n if (error.status === 401) {\n this.authenticatedUserService.removeToken();\n localStorage.removeItem('kordisToken');\n setTimeout(() => {\n this.authenticatedUserService.redirectToAuthentication();\n }, 1000);\n } else {\n reject(error);\n }\n }\n );\n };\n\n return new CancelablePromise(callback, canceler);\n }\n\n getFile(url: string, accept: string, filename: string): CancelablePromise {\n const canceler = new Canceler();\n\n const callback = (resolve, reject) => {\n canceler.cancel = () => {\n reject('Request canceled');\n };\n this.http.get(url,\n {\n headers: {Accept: accept},\n responseType: 'blob',\n observe: 'response'\n }\n )\n .subscribe(\n (data) => {\n if (data.status === 204) {\n resolve();\n } else if (data.body) {\n saveAs(data.body, filename);\n resolve();\n } else {\n reject(data.body ? data.body[`result`] : '');\n }\n },\n (error) => {\n if (error.status === 401) {\n this.authenticatedUserService.removeToken();\n this.authenticatedUserService.redirectToAuthentication();\n } else {\n reject(error);\n }\n }\n );\n };\n\n return new CancelablePromise(callback, canceler);\n }\n\n getAll(url: string): CancelablePromise {\n const canceler = new Canceler();\n const callback = (resolve, reject) => {\n canceler.cancel = () => {\n reject('Request canceled');\n };\n\n this.http.get(url, {\n headers: {'content-type': 'application/json'},\n responseType: 'json',\n observe: 'response'\n })\n .subscribe(\n (data) => {\n if (data.status === 204) {\n resolve([]);\n } else if (data.body && data.body[`response_code`] === 0) {\n resolve(data.body[`result`]);\n } else {\n reject(data.body ? data.body[`result`] : []);\n }\n },\n (error) => {\n if (error.status === 401) {\n this.authenticatedUserService.removeToken();\n this.authenticatedUserService.redirectToAuthentication();\n } else {\n reject(error);\n }\n }\n );\n };\n return new CancelablePromise(callback, canceler);\n }\n\n getAllFiltered(url: string, filters: any): CancelablePromise {\n const canceler = new Canceler();\n\n const callback = (resolve, reject) => {\n canceler.cancel = () => {\n reject('Request canceled');\n };\n this.http.post(url, JSON.stringify(filters), {\n headers: {'content-type': 'application/json'},\n responseType: 'json',\n observe: 'response'\n })\n .subscribe(\n (data) => {\n if (data.body && data.body[`response_code`] === 0) {\n resolve(data.body[`result`]);\n } else {\n reject(data.body[`result`]);\n }\n },\n (error) => {\n if (error.status === 401) {\n this.authenticatedUserService.removeToken();\n this.authenticatedUserService.redirectToAuthentication();\n } else {\n reject(error);\n }\n }\n );\n };\n\n return new CancelablePromise(callback, canceler);\n }\n\n getFiltered(url: string, filters: any): CancelablePromise {\n const canceler = new Canceler();\n const callback = (resolve, reject) => {\n canceler.cancel = () => {\n reject('Request canceled');\n };\n this.http.post(url, JSON.stringify(filters), {\n headers: {'content-type': 'application/json'},\n responseType: 'json',\n observe: 'response'\n })\n .subscribe(\n (data) => {\n if (data.body && data.body[`response_code`] === 0) {\n resolve(data.body[`result`]);\n } else {\n reject(data.body[`result`]);\n }\n },\n (error) => {\n if (error.status === 401) {\n this.authenticatedUserService.removeToken();\n this.authenticatedUserService.redirectToAuthentication();\n } else {\n reject(error);\n }\n }\n );\n };\n\n return new CancelablePromise(callback, canceler);\n }\n\n getPage(url: string, page: number): CancelablePromise> {\n const canceler = new Canceler();\n\n const callback = (resolve, reject) => {\n canceler.cancel = () => {\n reject('Request canceled');\n };\n this.http.get(url + '?page=' + page, {\n headers: {'content-type': 'application/json'},\n responseType: 'json',\n observe: 'response'\n })\n .subscribe(\n (data) => {\n if (data.status === 204) {\n resolve(undefined);\n } else if (data.body && data.body[`response_code`] === 0) {\n resolve(data.body[`result`]);\n } else {\n reject(data.body ? data.body[`result`] : []);\n }\n },\n (error) => {\n if (error.status === 401) {\n this.authenticatedUserService.removeToken();\n this.authenticatedUserService.redirectToAuthentication();\n } else {\n reject(error);\n }\n }\n );\n };\n\n return new CancelablePromise>(callback, canceler);\n }\n\n add(url: string, element: T, force: boolean): CancelablePromise {\n const canceler = new Canceler();\n\n let urlToSend = url;\n if (force) {\n urlToSend += urlToSend.includes('?') ? '&' : '?';\n urlToSend += 'force=true';\n }\n const callback = (resolve, reject) => {\n canceler.cancel = () => {\n reject('Request canceled');\n };\n this.http.post(urlToSend, JSON.stringify(element), {\n headers: {'content-type': 'application/json'},\n responseType: 'json',\n observe: 'response'\n })\n .subscribe(\n (data) => {\n if (data.body && data.body[`response_code`] === 0) {\n resolve(data.body[`result`]);\n } else {\n reject(data.body[`result`]);\n }\n },\n (error) => {\n if (error.status === 401) {\n this.authenticatedUserService.removeToken();\n this.authenticatedUserService.redirectToAuthentication();\n } else {\n reject(error);\n }\n }\n );\n };\n\n return new CancelablePromise(callback, canceler);\n }\n\n save(url: string, element: T, force: boolean): CancelablePromise {\n const canceler = new Canceler();\n let urlToSend = url;\n if (force) {\n urlToSend += urlToSend.includes('?') ? '&' : '?';\n urlToSend += 'force=true';\n }\n const callback = (resolve, reject) => {\n canceler.cancel = () => {\n reject('Request canceled');\n };\n this.http.post(urlToSend, JSON.stringify(element), {\n headers: {'content-type': 'application/json'},\n responseType: 'json',\n observe: 'response'\n })\n .subscribe(\n (data) => {\n if (data.status === 204) {\n resolve();\n } else if (data.body && data.body[`response_code`] === 0) {\n resolve(data.body[`result`]);\n } else {\n reject(data.body[`result`]);\n }\n },\n (error) => {\n if (error.status === 401) {\n this.authenticatedUserService.removeToken();\n this.authenticatedUserService.redirectToAuthentication();\n } else {\n reject(error);\n }\n }\n );\n };\n\n return new CancelablePromise(callback, canceler);\n }\n\n callConflicts(url: string, element: T): CancelablePromise {\n const canceler = new Canceler();\n\n const callback = (resolve, reject) => {\n canceler.cancel = () => {\n reject('Request canceled');\n };\n this.http.post(url, JSON.stringify(element), {\n headers: {'content-type': 'application/json'},\n responseType: 'json',\n observe: 'response'\n })\n .subscribe(\n (data) => {\n if (data.status === 204) {\n resolve([]);\n } else if (data.body && data.body[`response_code`] === 0) {\n resolve(data.body[`result`]);\n } else {\n reject(data.body[`result`]);\n }\n },\n (error) => {\n if (error.status === 401) {\n this.authenticatedUserService.removeToken();\n this.authenticatedUserService.redirectToAuthentication();\n } else {\n reject(error);\n }\n }\n );\n };\n\n return new CancelablePromise(callback, canceler);\n }\n\n update(element: T, force: boolean): CancelablePromise {\n const canceler = new Canceler();\n\n let url = element._links[`self`][`href`];\n if (force) {\n url += url.includes('?') ? '&' : '?';\n url += 'force=true';\n }\n\n delete element._links;\n\n const callback = (resolve, reject) => {\n canceler.cancel = () => {\n reject('Request canceled');\n };\n this.http.put(url, JSON.stringify(element), {\n headers: {'content-type': 'application/json'},\n responseType: 'json',\n observe: 'response'\n })\n .subscribe(\n (data) => {\n if (data.body[`response_code`] === 0) {\n resolve(data.body[`result`]);\n } else {\n reject(data.body[`result`]);\n }\n },\n (error) => {\n if (error.status === 401) {\n this.authenticatedUserService.removeToken();\n this.authenticatedUserService.redirectToAuthentication();\n } else {\n reject(error);\n }\n }\n );\n };\n\n return new CancelablePromise(callback, canceler);\n }\n\n updateUnlinked(url: string, element: T, force: boolean = false): CancelablePromise {\n const canceler = new Canceler();\n\n if (force) {\n url += url.includes('?') ? '&' : '?';\n url += 'force=true';\n }\n const callback = (resolve, reject) => {\n canceler.cancel = () => {\n reject('Request canceled');\n };\n this.http.put(url, JSON.stringify(element), {\n headers: {'content-type': 'application/json'},\n responseType: 'json',\n observe: 'response'\n })\n .subscribe(\n (data) => {\n if (data.body[`response_code`] === 0) {\n resolve(data.body[`result`]);\n } else {\n reject(data.body[`result`]);\n }\n },\n (error) => {\n if (error.status === 401) {\n this.authenticatedUserService.removeToken();\n this.authenticatedUserService.redirectToAuthentication();\n } else {\n reject(error);\n }\n }\n );\n };\n\n return new CancelablePromise(callback, canceler);\n }\n\n patch(url: string, bodyElements?: T[]): CancelablePromise {\n const canceler = new Canceler();\n\n const callback = (resolve, reject) => {\n canceler.cancel = () => {\n reject('Request canceled');\n };\n this.http.patch(url, bodyElements, {\n headers: {'content-type': 'application/json'},\n responseType: 'json',\n observe: 'response'\n })\n .subscribe(\n (data) => {\n if (data.ok) {\n resolve();\n } else {\n reject();\n }\n },\n (error) => {\n if (error.status === 401) {\n this.authenticatedUserService.removeToken();\n this.authenticatedUserService.redirectToAuthentication();\n } else {\n reject(error);\n }\n }\n );\n };\n\n return new CancelablePromise(callback, canceler);\n }\n\n patchOne(url: string, bodyElement?: T): CancelablePromise {\n const canceler = new Canceler();\n\n const callback = (resolve, reject) => {\n canceler.cancel = () => {\n reject('Request canceled');\n };\n this.http.patch(url, bodyElement, {\n headers: {'content-type': 'application/json'},\n responseType: 'json',\n observe: 'response'\n })\n .subscribe(\n (data) => {\n if (data.ok) {\n resolve();\n } else {\n reject();\n }\n },\n (error) => {\n if (error.status === 401) {\n this.authenticatedUserService.removeToken();\n this.authenticatedUserService.redirectToAuthentication();\n } else {\n reject(error);\n }\n }\n );\n };\n\n return new CancelablePromise(callback, canceler);\n }\n\n deleteFromUrl(url: string): CancelablePromise {\n const canceler = new Canceler();\n\n const callback = (resolve, reject) => {\n canceler.cancel = () => {\n reject('Request canceled');\n };\n this.http.delete(url, {\n headers: {'content-type': 'application/json'},\n responseType: 'json',\n observe: 'response'\n })\n .subscribe(\n (data) => {\n resolve(true);\n },\n (error) => {\n if (error.status === 401) {\n this.authenticatedUserService.removeToken();\n this.authenticatedUserService.redirectToAuthentication();\n } else {\n reject(error);\n }\n }\n );\n };\n return new CancelablePromise(callback, canceler);\n }\n\n deleteAll(url: string, bodyElements: T[]): CancelablePromise {\n const canceler = new Canceler();\n\n const callback = (resolve, reject) => {\n canceler.cancel = () => {\n reject('Request canceled');\n };\n const options = {\n headers: new HttpHeaders({'Content-Type': 'application/json'}),\n body: bodyElements\n };\n\n return this.http\n .delete(url, options)\n .subscribe((data) => {\n resolve(true);\n },\n (error) => {\n if (error.status === 401) {\n this.authenticatedUserService.removeToken();\n this.authenticatedUserService.redirectToAuthentication();\n } else {\n reject(error);\n }\n }\n );\n };\n return new CancelablePromise(callback, canceler);\n }\n\n delete(element: T): CancelablePromise {\n return this.deleteFromUrl(element._links[`self`][`href`]);\n }\n\n downloadByteFile(url: string, element: any, accept: string, filename: string): CancelablePromise {\n const canceler = new Canceler();\n\n const callback = (resolve, reject) => {\n canceler.cancel = () => {\n reject('Request canceled');\n };\n this.http.post(url, element,\n {\n headers: {Accept: accept},\n responseType: 'blob',\n observe: 'response'\n }\n )\n .subscribe(\n (data) => {\n if (data.status === 204) {\n resolve();\n } else if (data.body) {\n saveAs(data.body, filename);\n resolve();\n } else {\n reject(data.body ? data.body[`result`] : '');\n }\n },\n (error) => {\n if (error.status === 401) {\n this.authenticatedUserService.removeToken();\n this.authenticatedUserService.redirectToAuthentication();\n } else {\n reject(error);\n }\n }\n );\n };\n\n return new CancelablePromise(callback, canceler);\n }\n\n getJson(url: string): CancelablePromise {\n const canceler = new Canceler();\n\n const callback = (resolve, reject) => {\n canceler.cancel = () => {\n reject('Request canceled');\n };\n\n this.http.get(url).subscribe(\n (data) => {\n resolve(data);\n },\n (error) => {\n reject(error);\n }\n );\n };\n\n return new CancelablePromise(callback, canceler);\n }\n\n uploadFileToDownloadFile(url: string, formData: FormData, accept: string, filename: string): CancelablePromise {\n const canceler = new Canceler();\n\n const req = new HttpRequest('POST', url, formData, {\n responseType: 'blob',\n });\n\n const callback = (resolve, reject) => this.http.request(req).subscribe(\n (data) => {\n canceler.cancel = () => {\n reject('Request canceled');\n };\n if (data instanceof HttpResponse) {\n if (data.status === 204 || data.status === 201) {\n resolve();\n } else if (data.body) {\n saveAs(data.body, filename);\n resolve();\n } else {\n reject(data.body[`result`]);\n }\n }\n },\n (error) => {\n if (error.status === 401) {\n this.authenticatedUserService.removeToken();\n this.authenticatedUserService.redirectToAuthentication();\n } else {\n reject(error);\n }\n });\n return new CancelablePromise(callback, canceler);\n }\n}\n","import {Component, Inject, OnInit, ViewChild} from '@angular/core';\nimport {AbstractPageComponent} from '../../../interfaces/abstract-page.component';\nimport {ConfirmationService, MessageService, TreeNode} from 'primeng/api';\nimport {RightsService} from '../../../services/rights.service';\nimport {RightsGroup} from '../../../models/rights/rights-group';\nimport {RightsGroupHasRight} from '../../../models/rights/rights-group-has-right';\nimport {AdministrationService} from '../../../services/administration.service';\nimport {Administrative} from '../../../models/administration/administrative';\nimport {AuthenticatedUserService} from '../../../services/authenticated-user.service';\nimport {AutoComplete} from 'primeng/autocomplete';\nimport {HasRights} from '../../../models/rights/has-rights';\nimport {RightLogDTO} from '../../../models/rights/right-log-dto';\nimport {RightsGroupMemberLogDTO} from '../../../models/rights/rights-group-member-log-dto';\nimport {OrganizationChart} from 'primeng/organizationchart';\nimport {TreeComponent} from '../../../components/tree/tree.component';\nimport {MainLayoutComponent} from '../../../components/main-layout/main-layout.component';\nimport {UserHasRight} from '../../../models/rights/user_has_right';\nimport {Page} from '../../../annotations/page.annotation';\n\n@Component({\n selector: 'app-rights',\n templateUrl: './rights.component.html',\n styleUrls: ['./rights.component.scss']\n})\n@Page('rights', 'Attribution des droits', undefined, { icon: 'pi pi-user' })\nexport class RightsComponent extends AbstractPageComponent implements OnInit {\n\n //#region tab\n GROUPS_TAB_INDEX = 0;\n USERS_DETAILS_TAB_INDEX = 1;\n SCHOOLS_RIGHTS_TAB_INDEX = 0;\n INTERFACES_RIGHTS_TAB_INDEX = 1;\n FUNCTIONS_RIGHTS_TAB_INDEX = 2;\n MEMBERS_RIGHTS_TAB_INDEX = 3;\n GROUPS_RIGHTS_TAB_INDEX = 3;\n //#endregion\n\n //#region rights\n SCHOOLS_RIGHTS_FAMILY_IDS = [1, 2, 3];\n APPLICATION_RIGHTS_FAMILY_IDS = [4, 5];\n SCHOOLS_RIGHTS_TYPE_ID = 4;\n INTERFACES_RIGHTS_TYPE_IDS = [2, 3];\n FUNCTIONS_RIGHTS_TYPE_ID = 1;\n //#endregion\n\n @ViewChild('schoolsTree') schoolsTree: TreeComponent;\n @ViewChild('interfacesTree') interfacesTree: TreeComponent;\n @ViewChild('functionsTree') functionsTree: TreeComponent;\n @ViewChild('userSearchInput') userSearchInput: AutoComplete;\n @ViewChild('chart') chart: OrganizationChart;\n\n userTypeTabActiveIndex = 0;\n rightsTabActiveIndex = 0;\n\n //#region filters\n rightsGroupSearchInput: string;\n memberSearchInput: string;\n rightsGroupLogsSearchInput: string;\n //#endregion\n\n loading = false;\n\n //#region users\n //#endregion\n\n //#region rights group\n loadingGroups = false;\n rightsGroups: TreeNode[] = [];\n allRightsGroupsTree: TreeNode[] = [];\n allRightsGroups: RightsGroup[] = [];\n selectedRightsGroup: any;\n\n loadingRightsGroupHasRights = false;\n selectedRightsGroupRights: TreeNode[] = [];\n flatRights: RightsGroupHasRight[];\n selectedRightsGroupHasRight: any;\n mSavedSelectedRightsGroupHasRight: any;\n private mSavedRightFamilies: string;\n\n hasAnyRightToSave = false;\n\n allRights = {\n can_read: null,\n can_update: null,\n can_delete: null,\n can_transmit: null\n };\n\n private currentUserRights: { [id: number]: RightsGroupHasRight[]; } = {};\n private currentUserRightsGroupIds: number[] = [];\n private userRightsGroupIds: number[] = [];\n //#endregion\n\n //#region dialogs\n displayRightsGroupOrganizationChartDialog = false;\n displayRightsGroupOrganizationChart = true;\n displaySelectedMemberRights = false;\n displayRightsGroupSaveOrUpdateDialog = false;\n displayRightsGroupDuplicationDialog = false;\n displayRightsGroupDeleteDialog = false;\n displayLogsDialog = false;\n displayMembersHistoryDialog = false;\n\n rightsGroupOrganizationChartSelectedNode: any;\n\n selectedMemberRightsLogs: TreeNode[] = [];\n selectedMemberUpperRights: TreeNode[] = [];\n\n rightsGroupToSaveOrUpdate: RightsGroup;\n rightsGroupToDuplicate: RightsGroup;\n rightsGroupToDuplicateRights: RightsGroupHasRight[];\n selectedRightsGroupsMembersToDuplicate: Administrative[];\n selectedRightsGroupsRightsToDuplicate: RightsGroupHasRight[];\n selectedUserToDisplay: Administrative;\n //#endregion\n\n //#region Logs\n rightsGroupHasRightHistories: RightLogDTO[] = [];\n filteredRightsGroupHasRightHistories: RightLogDTO[] = [];\n rightsGroupMemberLogs: RightsGroupMemberLogDTO[];\n contextMenuItems = [\n {label: 'Historique des membres', icon: 'pi pi-clock', command: () => this.showMembersHistoryDialog()}\n ];\n //#endregion\n\n //#region details/groups\n selectedGroup: string;\n filteredGroups: RightsGroup[] = [];\n rightsGroupsFromMember: RightsGroup[] = [];\n filteredRightsGroupsFromMember: RightsGroup[] = [];\n selectedRightsGroupIdsFromMemberToRemove: number[] = [];\n hasMemberRightsGroupsToSave = false;\n selectedMemberCurrentRightsGroupIds: number[] = [];\n //#endregion\n\n //#region groups/members\n areMembersLoading = false;\n selectedAdministrative: any;\n filteredAdministratives: any;\n membersFromRightsGroup: Administrative[] = [];\n filteredMembersFromRightsGroup: Administrative[] = [];\n selectedMemberIdsFromRightsGroupToRemove: number[] = [];\n hasRightsGroupMembersToSave = false;\n selectedRightsGroupsCurrentMemberIds: number[] = [];\n //#endregion\n\n hasRightToEdit = false;\n private rootParentRightsGroupId: number;\n\n //#region static methods\n private static affectRightType(cr: TreeNode): TreeNode {\n cr.type = cr.data.right_type_name === 'school' ? 'schoolRight' : 'right';\n return cr;\n }\n\n private static adaptRightWithNoRights(element: RightsGroupHasRight): RightsGroupHasRight {\n return {\n can_create: false,\n can_create_disabled: !element.can_create,\n can_read: false,\n can_read_disabled: !element.can_read,\n can_update: false,\n can_update_disabled: !element.can_update,\n can_delete: false,\n can_delete_disabled: !element.can_delete,\n can_transmit: false,\n can_transmit_disabled: !element.can_transmit,\n right_desc: element.right_desc,\n right_id: element.right_id,\n right_name: element.right_name,\n rights_family_id: element.rights_family_id,\n rights_family_name: element.rights_family_name,\n right_type_id: element.right_type_id,\n right_type_name: element.right_type_name,\n rights_group_id: element.rights_group_id,\n rights_group_name: element.rights_group_name\n };\n }\n\n private static disableRightsAccordingToCurrentUserRights(cr: TreeNode, currentUserRight: RightsGroupHasRight, hasRightToEdit: boolean): TreeNode {\n cr.data.can_create_disabled = !hasRightToEdit || !currentUserRight.can_create;\n cr.data.can_read_disabled = !hasRightToEdit || !currentUserRight.can_read;\n cr.data.can_update_disabled = !hasRightToEdit || !currentUserRight.can_update;\n cr.data.can_delete_disabled = !hasRightToEdit || !currentUserRight.can_delete;\n cr.data.can_transmit_disabled = !hasRightToEdit || !currentUserRight.can_transmit;\n return cr;\n }\n\n private static createHtmlList(elements: any[], property: string): string {\n let result = '
    ';\n elements.forEach(el => result += `
  • ${el[property]}
  • `);\n return result + '
';\n }\n\n //#endregion\n\n constructor(private rightsService: RightsService,\n private authenticatedUserService: AuthenticatedUserService,\n private administrationService: AdministrationService,\n private messageService: MessageService,\n private confirmationService: ConfirmationService,\n @Inject(MainLayoutComponent) public mainLayout: MainLayoutComponent) {\n super();\n }\n\n ngOnInit(): void {\n this.initRightsGroupsTree(undefined);\n }\n\n parseRightsGroupHasRightLog(text: string): HasRights {\n\n const splitted = text\n .replace(') ', ' ')\n .split('RRightsGroupHasRightId(').join()\n .split(')').join()\n .split(' ').join()\n .split('RRightsGroupHasRight(id').join()\n .split('=').join()\n .split(',').filter(i => i);\n\n const map = [];\n\n for (let i = 0; i < splitted.length; i += 2) {\n map[splitted[i]] = splitted[i + 1];\n }\n\n return {\n can_create: map[`canCreate`] === 'true',\n can_read: map[`canRead`] === 'true',\n can_update: map[`canUpdate`] === 'true',\n can_delete: map[`canDelete`] === 'true',\n can_transmit: map[`canTransmit`] === 'true'\n };\n }\n\n getHelp(): string {\n return 'L\\'aide de l\\'attribution des droits';\n }\n\n //#region util methods\n private reduce(elements: any[], source: any[], property: string, childProperty: string) {\n source.forEach(el => {\n elements.push(el[property]);\n if (el[childProperty] !== undefined && el[childProperty] !== null && el[childProperty].length > 0) {\n this.reduce(elements, el[childProperty], property, childProperty);\n }\n });\n }\n\n private expandRecursive(node: TreeNode, isExpand: boolean) {\n node.expanded = isExpand;\n if (node.children) {\n node.children.forEach(childNode => {\n this.expandRecursive(childNode, isExpand);\n });\n }\n }\n\n private getRootParentRightsGroupId(node: any): number {\n if (node.parent === undefined) {\n return node.data.rights_group_id;\n } else {\n const parentId = node.parent.rights_group_id;\n if (parentId === node.data.rights_group_id) {\n return parentId;\n } else {\n return this.getRootParentRightsGroupId(node.parent);\n }\n }\n }\n\n private getRightsGroupsParents(allRightsGroups: RightsGroup[], filteredRightsGroups: RightsGroup[]) {\n allRightsGroups.forEach(\n o => filteredRightsGroups.map(rg => {\n if (o.rights_group_id === rg.rights_group_parent_id) {\n rg.rights_group_name = o.rights_group_name.concat(' > ', rg.rights_group_name);\n }\n }));\n }\n\n private getPropertyTriStateValue(property: string, selectedRights, length) {\n const canLength = selectedRights.filter(o => o.data[property] === true).length;\n return length > 0 && (canLength === 0 || canLength === length)\n ? canLength === length\n : null;\n }\n\n private extractCurrentRightsFromTree(tree): RightsGroupHasRight[] {\n return this\n .reduceRights(tree, 'data', 'children')\n .sort((a, b) => a.right_id > b.right_id ? 1 : -1);\n }\n\n //#endregion\n\n initRightsGroupsTree(rightsGroupIdToDisplay: number) {\n this.loading = true;\n\n this.resetArray(this.selectedRightsGroupRights);\n this.resetArray(this.membersFromRightsGroup);\n\n delete this.selectedRightsGroup;\n\n this.rightsService.getCurrentRightsGroup()\n .then((rgs: RightsGroup[]) => {\n\n // on stock les groupes de droits sur lesquels l'utilisateur n'a pas de droit de modifications\n this.currentUserRightsGroupIds = rgs\n .filter(r => !r.has_right_to_edit).map(r => r.rights_group_id);\n\n // on stock les ids des groupes de droits dans une variable\n rgs.forEach(rg => this.userRightsGroupIds.push(rg.rights_group_id));\n\n // récupération de tous les droits de l'utilisateur, quelque soient les groupes\n Promise.all(this.currentUserRightsGroupIds\n .map(rgId => this.rightsService.getRightsGroupRights(rgId)))\n .then((values) => {\n this.currentUserRights = [];\n\n values.forEach(o => {\n if (o && o.length > 0) {\n\n if (!this.rootParentRightsGroupId) {\n this.rootParentRightsGroupId = o[0].rights_group_id;\n }\n\n this.currentUserRights[o[0].rights_group_id] = o;\n }\n });\n\n rgs.forEach(rg => rg[`key`] = rg.rights_group_id);\n this.rightsGroups = this.createRightsGroupsDataTree(rgs);\n\n if (rightsGroupIdToDisplay) {\n this.expandRecursiveToRightsGroup(this.rightsGroups, rightsGroupIdToDisplay, true);\n }\n })\n .then(() => this.loading = false);\n })\n .catch(() => {\n this.loading = false;\n this.messageService.add({\n severity: 'error',\n detail: 'Erreur lors du chargement de votre groupe de droits. Si le problème persiste, Veuillez contacter le support informatique.',\n life: 20000\n });\n });\n }\n\n private resetArray(array: Array) {\n if (array) {\n array.splice(0, array.length);\n }\n }\n\n onResetRightsGroupMembersSearchInput() {\n if (this.memberSearchInput) {\n this.memberSearchInput = '';\n this.filteredMembersFromRightsGroup = [...this.membersFromRightsGroup];\n }\n }\n\n onResetRightsGroupSearchInput() {\n if (this.rightsGroupSearchInput) {\n this.rightsGroupSearchInput = '';\n this.filteredRightsGroupsFromMember = [...this.rightsGroupsFromMember];\n }\n }\n\n onResetRightsGroupLogsSearchInput() {\n if (this.rightsGroupLogsSearchInput) {\n this.rightsGroupLogsSearchInput = '';\n this.filteredRightsGroupHasRightHistories = [...this.rightsGroupHasRightHistories];\n }\n }\n\n onRightsGroupNodeUnselect(event: any) {\n this.resetArray(this.selectedRightsGroupHasRight);\n this.messageService.add({\n severity: 'warn',\n summary: event.node.data.rights_group_name\n });\n }\n\n resetFilters() {\n this.schoolsTree.onResetFilter();\n this.interfacesTree.onResetFilter();\n this.functionsTree.onResetFilter();\n if (this.userTypeTabActiveIndex === this.GROUPS_TAB_INDEX) {\n this.onResetRightsGroupMembersSearchInput();\n }\n }\n\n createRightsDataTree(dataset, rights: TreeNode[], hasRightToEdit: boolean) {\n const currentUserRights = this.filterRightsBySelectedTab(this.currentUserRights[this.rootParentRightsGroupId]);\n\n const hashTable = Object.create(null);\n dataset.forEach(aData => {\n aData.data = aData;\n aData.type = 'family';\n aData.label = aData.rights_family_name;\n // aData.expanded = expanded;\n hashTable[aData.rights_family_id] = {...aData, children: []};\n\n const childRights = rights.filter(r => r.data.rights_family_id === aData.rights_family_id);\n\n if (childRights.length > 0) {\n childRights\n .map(cr => RightsComponent.disableRightsAccordingToCurrentUserRights(cr, currentUserRights.find(o => o.right_id === cr.data.right_id), hasRightToEdit))\n .map(cr => RightsComponent.affectRightType(cr))\n .map(cr => hashTable[aData.rights_family_id].children.push(cr));\n }\n });\n\n const dataTree = [];\n dataset.forEach(aData => {\n if (aData.rights_family_parent_id) {\n hashTable[aData.rights_family_parent_id].children.push(hashTable[aData.rights_family_id]);\n } else {\n dataTree.push(hashTable[aData.rights_family_id]);\n }\n });\n return this.filterRightFamiliesBySelectedTab(dataTree);\n }\n\n createRightsGroupsDataTree(dataset) {\n const hashTable = Object.create(null);\n dataset.forEach(aData => {\n aData.data = aData;\n\n const isRightsGroupMember = this.currentUserRightsGroupIds.findIndex(o => o === aData.data.rights_group_id) !== -1;\n aData.type = aData.has_right_to_edit\n ? 'rightsGroupWithRights'\n : isRightsGroupMember\n ? 'rightsGroupMember'\n : 'rightsGroupWithoutRights';\n\n aData.label = aData.rights_group_name;\n hashTable[aData.rights_group_id] = {...aData, children: []};\n });\n const dataTree = [];\n dataset.forEach(aData => {\n if (aData.rights_group_parent_id && hashTable[aData.rights_group_parent_id]) {\n hashTable[aData.rights_group_parent_id].children.push(hashTable[aData.rights_group_id]);\n } else {\n dataTree.push(hashTable[aData.rights_group_id]);\n }\n });\n return dataTree;\n }\n\n loadRightsGroupRights(rightsGroupId: number, rootRightsGroupId: number) {\n return new Promise((resolve => {\n this.loadingRightsGroupHasRights = true;\n\n this.rightsService.getRightsGroupRights(rightsGroupId)\n .then((nodes) => {\n const notOwnedRights: RightsGroupHasRight[] = [];\n\n const currentUserRights = this.currentUserRights[rootRightsGroupId];\n\n if (!currentUserRights || currentUserRights.length === 0) {\n this.messageService.add({\n severity: 'warn',\n detail: 'Ce groupe ne possède aucun droit, veuillez vous adresser à un membre d\\'un groupe de droits supérieur.',\n life: 10000\n });\n\n this.resetArray(this.selectedRightsGroupRights);\n this.resetArray(this.membersFromRightsGroup);\n\n this.hasRightToEdit = this.currentUserRightsGroupIds.findIndex(o => o === rightsGroupId) === -1;\n\n return;\n }\n\n for (const cur of currentUserRights) {\n if (nodes.findIndex(r => r.right_id === cur.right_id) === -1) {\n notOwnedRights.push(cur);\n }\n }\n\n const allRightsToAdd: TreeNode[] = notOwnedRights\n .map(rg => RightsComponent.adaptRightWithNoRights(rg))\n .map(rg => ({label: rg.right_desc, data: rg, type: 'right', children: []}));\n\n this.hasRightToEdit = this.currentUserRightsGroupIds.findIndex(o => o === rightsGroupId) === -1;\n\n this.flatRights = nodes;\n\n this.rightsService.getRightsFamilies()\n .then((data) => {\n this.mSavedRightFamilies = JSON.stringify(data);\n\n const rights = (nodes !== undefined && nodes !== null && nodes.length > 0)\n ? nodes.map(rg => ({label: rg.right_desc, data: rg, type: 'right', children: []}))\n : [];\n\n rights.map(r => allRightsToAdd.push(r));\n\n allRightsToAdd\n .map(r => RightsComponent.disableRightsAccordingToCurrentUserRights(r, currentUserRights.find(o => o.right_id === r.data.right_id), this.hasRightToEdit))\n .map(r => r.data)\n .sort((a, b) => a.right_id > b.right_id ? 1 : -1);\n\n let sortedRights = allRightsToAdd.sort((a, b) => a.data.right_id > b.data.right_id ? 1 : -1);\n sortedRights.forEach(r => {\n r.key = r.data.right_id.toString();\n r[`right_type_id`] = r.data.right_type_id;\n r[`rights_family_id`] = r.data.rights_family_id;\n });\n sortedRights = this.filterRightsBySelectedTab(sortedRights);\n this.mSavedSelectedRightsGroupHasRight = JSON.stringify(sortedRights.map(r => r.data));\n\n data.forEach(rf => rf[`key`] = rf.rights_family_id);\n this.selectedRightsGroupRights = this.createRightsDataTree(data, sortedRights, this.hasRightToEdit)\n .sort((a, b) => a.rights_family_id > b.rights_family_id ? 1 : -1);\n\n resolve();\n });\n })\n .catch(() => {\n this.messageService.add({\n severity: 'error',\n detail: 'Erreur lors du chargement des droits de ce groupe. Si le problème persiste, Veuillez contacter le support informatique.',\n life: 20000\n });\n })\n .finally(() => {\n this.loadingRightsGroupHasRights = false;\n });\n }));\n }\n\n onUserSelect(adm: Administrative) {\n this.onResetRightsGroupSearchInput();\n this.resetArray(this.selectedRightsGroupHasRight);\n\n this.selectedUserToDisplay = adm;\n this.getAllRightsGroups();\n\n this.loadSelectedUserRights(adm.uid).then();\n this.loadRightsGroupsFromMember(adm.uid);\n }\n\n onRightsGroupNodeSelect(event: any) {\n this.resetArray(this.selectedRightsGroupHasRight);\n this.resetFilters();\n\n this.rootParentRightsGroupId = this.getRootParentRightsGroupId(event.node);\n\n this.loadRightsGroupRights(event.node.data.rights_group_id, this.rootParentRightsGroupId)\n .then(() => this.refreshRights());\n\n this.loadRightsGroupMembers(event.node.data.rights_group_id);\n }\n\n refreshSelectedRightsMultiSelectors() {\n if (!this.selectedRightsGroupHasRight) {\n return;\n }\n\n const selectedRights = this.selectedRightsGroupHasRight.filter(r => r.data !== undefined && r.data.right_id !== undefined);\n\n const length = selectedRights.length;\n\n const canRead = this.getPropertyTriStateValue('can_read', selectedRights, length);\n const canUpdate = this.getPropertyTriStateValue('can_update', selectedRights, length);\n const canDelete = this.getPropertyTriStateValue('can_delete', selectedRights, length);\n const canTransmit = this.getPropertyTriStateValue('can_transmit', selectedRights, length);\n\n this.allRights = {\n can_read: canRead,\n can_update: canUpdate,\n can_delete: canDelete,\n can_transmit: canTransmit\n };\n }\n\n private reduceRights(source: any[], property: string, childProperty: string): RightsGroupHasRight[] {\n const elements: any[] = [];\n this.reduce(elements, source, property, childProperty);\n return elements.filter(r => r.right_id !== undefined);\n }\n\n refreshRightsSaveButtons() {\n const currentStateRights = this.extractCurrentRightsFromTree(this.selectedRightsGroupRights)\n .map(o => this.adaptToVerySimpleRight(o));\n\n const savedRights = JSON.parse(this.mSavedSelectedRightsGroupHasRight)\n .map(savedRight => this.adaptToVerySimpleRight(savedRight));\n\n this.hasAnyRightToSave = JSON.stringify(savedRights) !== JSON.stringify(currentStateRights);\n }\n\n adaptToVerySimpleRight(element) {\n return {\n can_create: element.can_create,\n can_read: element.can_read,\n can_update: element.can_update,\n can_delete: element.can_delete,\n can_transmit: element.can_transmit,\n right_id: element.right_id\n };\n }\n\n expandAllRightsFamilies() {\n this.getTreeFromCurrentContext().forEach(node => {\n this.expandRecursive(node, true);\n });\n }\n\n collapseAllRightsFamilies() {\n this.getTreeFromCurrentContext().forEach(node => {\n this.expandRecursive(node, false);\n });\n }\n\n affectValueToAllSelectedValues(event: MouseEvent, property: string) {\n const selectedRights = this.selectedRightsGroupHasRight.filter(r => r.data !== undefined && r.data.right_id !== undefined);\n const can = this.getPropertyTriStateValue(property, selectedRights, selectedRights.length);\n this.selectedRightsGroupHasRight.forEach(o => {\n\n if (o.data[property + '_disabled'] === false) {\n o.data[property] = (can === null || can === false);\n }\n });\n this.refreshSelectedRightsMultiSelectors();\n this.refreshRightsSaveButtons();\n }\n\n refreshRights() {\n this.refreshSelectedRightsMultiSelectors();\n this.refreshRightsSaveButtons();\n }\n\n resetTreesRights() {\n if (this.selectedRightsGroupRights) {\n this.selectedRightsGroupRights.splice(0, this.selectedRightsGroupRights.length);\n this.resetArray(this.selectedRightsGroupHasRight);\n }\n\n this.resetArray(this.selectedMemberUpperRights);\n this.resetArray(this.selectedMemberRightsLogs);\n\n if (this.selectedRightsGroup) {\n this.loadRightsGroupRights(this.selectedRightsGroup.rights_group_id, this.rootParentRightsGroupId)\n .then(() => this.refreshRights());\n }\n }\n\n saveRights() {\n this.loading = true;\n const currentStateRights = this.extractCurrentRightsFromTree(this.selectedRightsGroupRights);\n const oldData = JSON.parse(this.mSavedSelectedRightsGroupHasRight);\n\n const rightsToSave = currentStateRights.filter(updated =>\n !!oldData.find(old => updated.right_id === old.right_id\n && (updated.can_read !== old.can_read\n || updated.can_update !== old.can_update\n || updated.can_delete !== old.can_delete\n || updated.can_transmit !== old.can_transmit)\n )\n );\n\n // Pour le moment, les drots create et update son fusionnés, mais on se laisse la possibilité de modifier ce comportement à l'avenir\n rightsToSave.forEach(r => r.can_create = r.can_update);\n\n const rightsGroupId = this.selectedRightsGroup.data.rights_group_id;\n\n this.rightsService.saveRightsGroupRights(rightsGroupId, rightsToSave)\n .then(() => {\n this.messageService.add({severity: 'success', summary: 'Droits mis à jour.'});\n\n this.loading = false;\n this.mSavedSelectedRightsGroupHasRight = JSON.stringify(currentStateRights);\n\n if (this.selectedRightsGroupHasRight) {\n this.selectedRightsGroupHasRight.splice(0, this.selectedRightsGroupHasRight.length);\n }\n\n this.refreshRights();\n })\n .catch((error) => {\n this.loading = false;\n if (error.status === 403) {\n this.messageService.add({\n severity: 'error',\n summary: 'Ces droits sont supérieurs à ceux attribuables à ce groupe de droits.',\n life: 20000\n });\n } else if (error.status === 409) {\n const result = error.error.result;\n const detailedInformation = RightsComponent.createHtmlList(result.data, 'rights_group_name');\n this.messageService.add({\n severity: 'error',\n summary: result.message,\n detail: detailedInformation,\n sticky: true\n });\n } else {\n this.messageService.add({\n severity: 'error',\n summary: 'Une erreur inattendue est survenue. Si le problème persiste, veuillez contacter le service informatique.',\n life: 20000\n });\n }\n });\n }\n\n showRightsGroupsOrganizationChart() {\n\n this.forceOrganizationChartFamiliesRefresh();\n\n this.rightsService.getAllRightsGroups()\n .then(rightsGroups => {\n\n this.allRightsGroupsTree = this.createRightsGroupsDataTree(rightsGroups);\n\n // ici on déplie les groupes de droits jusqu'à afficher les groupes dont l'utilisateur courant est membre\n const rightsGroupIdsToDisplay = this.rightsGroups.map(o => o.data.rights_group_id);\n if (rightsGroupIdsToDisplay && rightsGroupIdsToDisplay.length > 0) {\n rightsGroupIdsToDisplay.forEach(rightsGroupIdToDisplay => this.expandRecursiveToRightsGroup(this.allRightsGroupsTree, rightsGroupIdToDisplay, false));\n }\n\n // on affiche la dialog avec l'organigramme préparé\n this.displayRightsGroupOrganizationChartDialog = true;\n\n // this.allRightsGroupsTree.forEach(rg => this.expandRecursive(rg, true));\n })\n .catch(() => {\n this.messageService.add({\n severity: 'error',\n detail: 'Erreur lors du chargement de l\\'arborescence des groupes de droits. Si le problème persiste, Veuillez contacter le support informatique.',\n life: 20000\n });\n });\n }\n\n getSaveOrUpdateDialogHeader(): string {\n let header = '';\n if (this.rightsGroupToSaveOrUpdate) {\n this.rightsGroupToSaveOrUpdate.rights_group_id\n ? header = 'Modification'\n : header = 'Création';\n header += ` d'un groupe de droits`;\n }\n return header;\n }\n\n //#region rights groups\n showRightsGroupsDuplicationDialog() {\n this.rightsGroupToDuplicate = {\n rights_group_name: '',\n rights_group_parent_id: this.selectedRightsGroup.rights_group_parent_id\n };\n\n this.rightsGroupToDuplicateRights = this\n .extractCurrentRightsFromTree(this.selectedRightsGroupRights)\n .filter(o => (o.can_create || o.can_read || o.can_update || o.can_delete || o.can_transmit));\n\n this.displayRightsGroupDuplicationDialog = true;\n }\n\n showRightsGroupsSaveOrUpdateDialog(addMode: boolean) {\n if (addMode) {\n this.rightsGroupToSaveOrUpdate = {\n rights_group_name: '',\n rights_group_parent_id: this.selectedRightsGroup.rights_group_id\n };\n } else {\n this.rightsGroupToSaveOrUpdate = {\n rights_group_name: this.selectedRightsGroup.rights_group_name,\n rights_group_parent_id: this.selectedRightsGroup.rights_group_parent_id,\n rights_group_id: this.selectedRightsGroup.rights_group_id\n };\n }\n\n this.displayRightsGroupSaveOrUpdateDialog = true;\n }\n\n showRightsGroupsDeleteDialog() {\n this.rightsGroupToSaveOrUpdate = {\n rights_group_name: this.selectedRightsGroup.rights_group_name,\n rights_group_parent_id: this.selectedRightsGroup.rights_group_parent_id,\n rights_group_id: this.selectedRightsGroup.rights_group_id\n };\n\n this.displayRightsGroupDeleteDialog = true;\n }\n\n createOrUpdateRightsGroup(rightsGroupToSave: RightsGroup) {\n const addMode = rightsGroupToSave.rights_group_id == null;\n\n this.rightsService.saveRightsGroup(rightsGroupToSave)\n .then((savedRightsGroup) => {\n this.messageService.add({\n severity: 'success',\n summary: 'Le groupe de droits \"' + savedRightsGroup.rights_group_name + '\" a bien été ' + (addMode ? 'créé.' : 'modifié.'),\n life: 10000\n });\n this.displayRightsGroupSaveOrUpdateDialog = false;\n this.initRightsGroupsTree(savedRightsGroup.rights_group_id);\n this.resetFilters();\n\n })\n .catch((error) => {\n if (error.status === 409) {\n this.messageService.add({\n severity: 'error',\n summary: 'Conflit',\n detail: error.error.result.message,\n life: 20000\n });\n } else {\n this.messageService.add({\n severity: 'error',\n summary: 'Erreur de ' + (addMode ? 'création' : 'modification'),\n detail: 'La ' + (addMode ? 'création' : 'modification') + ' du groupe de droits a échouée. Si le problème persiste, merci de contacter le support.',\n life: 20000\n });\n }\n });\n\n }\n\n duplicateRightsGroup(rightsGroupToSave: RightsGroup) {\n this.rightsService.saveRightsGroup(rightsGroupToSave)\n .then((savedRightsGroup) => {\n if (this.selectedRightsGroupsMembersToDuplicate && this.selectedRightsGroupsMembersToDuplicate.length > 0) {\n this.rightsService.addRightsGroupMembers(savedRightsGroup.rights_group_id, this.selectedRightsGroupsMembersToDuplicate.map(o => o.uid))\n .then((users) => {\n this.messageService.add({\n severity: 'success',\n summary: users.length + ' membres ajoutés avec succès au nouveau groupe \"' + savedRightsGroup.rights_group_name + '\"',\n life: 10000\n });\n })\n .catch(() => {\n this.messageService.add({\n severity: 'warn',\n summary: 'duplication partielle',\n detail: 'La création du groupe de droits a aboutie, mais les droits sélectionnés n\\'ont pas été ajoutés. Merci de les gérer manuellement en sélectionnant le groupe de droits nouvellement créé.',\n sticky: true\n });\n });\n }\n\n if (this.selectedRightsGroupsRightsToDuplicate && this.selectedRightsGroupsRightsToDuplicate.length > 0) {\n\n // Pour le moment, les drots create et update son fusionnés, mais on se laisse la possibilité de modifier ce comportement à l'avenir\n this.selectedRightsGroupsRightsToDuplicate.forEach(r => r.can_create = r.can_update);\n\n this.rightsService.saveRightsGroupRights(savedRightsGroup.rights_group_id, this.selectedRightsGroupsRightsToDuplicate)\n .then((rights) => {\n this.messageService.add({\n severity: 'success',\n summary: rights.length + ' droits ajoutés avec succès au nouveau groupe \"' + savedRightsGroup.rights_group_name + '\"',\n life: 10000\n });\n })\n .catch(() => {\n this.messageService.add({\n severity: 'warn',\n summary: 'duplication partielle',\n detail: 'La création du groupe de droits a aboutie, mais les droits sélectionnés n\\'ont pas été ajoutés. Merci de les gérer manuellement en sélectionnant le groupe de droits nouvellement créé.',\n sticky: true\n });\n });\n }\n\n this.messageService.add({\n severity: 'success',\n summary: 'Le groupe de droits \"' + savedRightsGroup.rights_group_name + '\" a bien été créé.',\n life: 10000\n });\n this.displayRightsGroupDuplicationDialog = false;\n\n this.initRightsGroupsTree(savedRightsGroup.rights_group_id);\n })\n .catch((error) => {\n if (error.status === 409) {\n this.messageService.add({\n severity: 'error',\n detail: error.error.result,\n life: 20000\n });\n } else {\n this.messageService.add({\n severity: 'error',\n summary: 'Erreur de duplication',\n detail: 'La création du groupe de droits a échouée. Si le problème persiste, merci de contacter le support.',\n life: 20000\n });\n }\n });\n }\n\n onRightsGroupCreationDialogClose() {\n delete this.rightsGroupToSaveOrUpdate;\n }\n\n onRightsGroupDuplicationDialogClose() {\n delete this.rightsGroupToDuplicate;\n delete this.selectedRightsGroupsMembersToDuplicate;\n delete this.selectedRightsGroupsRightsToDuplicate;\n }\n\n onRightsGroupDeleteDialogClose() {\n delete this.rightsGroupToSaveOrUpdate;\n this.displayRightsGroupDeleteDialog = false;\n }\n\n //#endregion\n\n //#region users\n\n loadMembersFromMyRightsGroups() {\n this.areMembersLoading = true;\n this.rightsService.getMembersFromMyRightsGroups()\n .then((members) => {\n // suppression des doublons\n members = members.filter((adm, index, instance) => instance.findIndex(m => (m.uid === adm.uid)) === index);\n this.membersFromRightsGroup = members;\n this.filteredMembersFromRightsGroup = members;\n })\n .then(() => this.areMembersLoading = false)\n .catch(() => {\n this.messageService.add({\n severity: 'error',\n detail: 'Erreur lors du chargement des membres de mes groupes de droits. Si le problème persiste, Veuillez contacter le support informatique.',\n life: 20000\n });\n });\n }\n\n private loadRightsGroupsFromMember(memberId: number) {\n this.rightsService.getRightsGroupsFromMember(memberId)\n .then((rightsGroups) => {\n this.getRightsGroupsParents(this.allRightsGroups, rightsGroups);\n this.rightsGroupsFromMember = rightsGroups;\n this.filteredRightsGroupsFromMember = rightsGroups;\n\n this.selectedMemberCurrentRightsGroupIds = rightsGroups\n .map(rg => rg.rights_group_id)\n .sort((a, b) => a > b ? 1 : -1);\n\n this.resetArray(this.selectedRightsGroupIdsFromMemberToRemove);\n this.refreshRightsGroupsSaveButtons();\n })\n .catch(() => {\n this.messageService.add({\n severity: 'error',\n detail: 'Erreur lors du chargement des groupes de droits de l\\'utilisateur. Si le problème persiste, Veuillez contacter le support informatique.',\n life: 20000\n });\n });\n }\n\n private loadRightsGroupMembers(rightsGroupId: number) {\n this.areMembersLoading = true;\n this.rightsService.getRightsGroupMembers(rightsGroupId)\n .then((members) => {\n this.membersFromRightsGroup = members;\n this.filteredMembersFromRightsGroup = members;\n\n this.selectedRightsGroupsCurrentMemberIds = members\n .map(m => m.uid)\n .sort((a, b) => a > b ? 1 : -1);\n\n this.resetArray(this.selectedMemberIdsFromRightsGroupToRemove);\n this.refreshMembersSaveButtons();\n })\n .then(() => this.areMembersLoading = false)\n .catch(() => {\n\n this.messageService.add({\n severity: 'error',\n detail: 'Erreur lors du chargement des membres du groupe de droits. Si le problème persiste, Veuillez contacter le support informatique.',\n life: 20000\n });\n });\n }\n\n private loadSelectedUserRights(uid: number) {\n return new Promise((resolve, reject) =>\n this.rightsService.getUserRights(uid)\n .then((rights) => {\n\n rights.forEach(r => r[`textColor`] = this.createColorFromString(r.rights_group_name));\n\n let upperRights = JSON.parse(JSON.stringify(rights));\n upperRights = this.getUpperRightsFromAllRightsGroup(upperRights);\n\n this.rightsService.getRightsFamilies()\n .then((data) => {\n\n const sortedRights = this.formatRightsProperties(rights);\n\n this.mSavedRightFamilies = JSON.stringify(data);\n this.mSavedSelectedRightsGroupHasRight = JSON.stringify(sortedRights.map(r => r.data));\n\n this.selectedMemberRightsLogs = this.createRightsDataTree(data, sortedRights, false)\n .sort((a, b) => a.rights_family_id > b.rights_family_id ? 1 : -1);\n this.selectedMemberUpperRights = this.createRightsDataTree(data, this.formatRightsProperties(upperRights), false)\n .sort((a, b) => a.rights_family_id > b.rights_family_id ? 1 : -1);\n\n resolve();\n });\n resolve();\n })\n .catch(reject)\n );\n }\n\n private getUpperRightsFromAllRightsGroup(rights: any[]): any[] {\n return rights.filter((right, index, instance) => instance\n .findIndex(o => {\n if (o.right_id === right.right_id && o.rights_group_id !== right.rights_group_id) {\n o.can_read = right.can_read || o.can_read;\n o.can_create = right.can_create || o.can_create;\n o.can_update = right.can_update || o.can_update;\n o.can_delete = right.can_delete || o.can_delete;\n o.can_transmit = right.can_transmit || o.can_transmit;\n }\n return (o.right_id === right.right_id);\n }) === index);\n }\n\n private formatRightsProperties(rights: UserHasRight[]): any[] {\n const theRights = (rights !== undefined && rights !== null && rights.length > 0)\n ? rights.map(rg => ({label: rg.right_desc, data: rg, type: 'right', children: []}))\n : [];\n\n theRights\n .map(r => RightsComponent.disableRightsAccordingToCurrentUserRights(r, undefined, false))\n .map(r => r.data)\n .sort((a, b) => a.right_id > b.right_id ? 1 : -1);\n\n let sortedRights = theRights.sort((a, b) => a.data.right_id > b.data.right_id ? 1 : -1);\n sortedRights.forEach(r => {\n r[`key`] = r.data.right_id.toString();\n r[`right_type_id`] = r.data.right_type_id;\n r[`rights_family_id`] = r.data.rights_family_id;\n });\n sortedRights = this.filterRightsBySelectedTab(sortedRights);\n\n return sortedRights;\n }\n\n private refreshMembersSaveButtons() {\n const memberIds = this.filteredMembersFromRightsGroup\n .map(m => m.uid)\n .sort((a, b) => a > b ? 1 : -1);\n\n this.hasRightsGroupMembersToSave = (JSON.stringify(memberIds) !== JSON.stringify(this.selectedRightsGroupsCurrentMemberIds)) || (this.selectedMemberIdsFromRightsGroupToRemove.length > 0);\n }\n\n private refreshRightsGroupsSaveButtons() {\n const rightsGroupIds = this.filteredRightsGroupsFromMember\n .map(rg => rg.rights_group_id)\n .sort((a, b) => a > b ? 1 : -1);\n\n this.hasMemberRightsGroupsToSave = (JSON.stringify(rightsGroupIds) !== JSON.stringify(this.selectedMemberCurrentRightsGroupIds)) || (this.selectedRightsGroupIdsFromMemberToRemove.length > 0);\n }\n\n searchAdministrative(event: any) {\n const query = event.query;\n const connectedUserUid = this.authenticatedUserService.getProfile().uid;\n\n this.administrationService.getAdministrativesByName(query)\n .then((administratives) => {\n this.filteredAdministratives = administratives.filter(adm => this.filteredMembersFromRightsGroup.findIndex(gm => gm.uid === adm.uid) === -1);\n })\n .catch(console.error);\n }\n\n searchRightsGroup(event: any) {\n const query = event.query;\n\n this.rightsService.getRightsGroupsByName(query)\n .then((rightsgroups) => {\n this.filteredGroups = rightsgroups.filter(rg => rg.has_right_to_edit && (this.filteredRightsGroupsFromMember.findIndex(o => o.rights_group_id === rg.rights_group_id) === -1));\n this.getRightsGroupsParents(this.allRightsGroups, this.filteredGroups);\n })\n .catch(console.error);\n }\n\n filterRightsGroupsFromMemberByName(event: any) {\n this.filteredRightsGroupsFromMember = [...this.rightsGroupsFromMember.filter(rg => rg.rights_group_name.toUpperCase().includes(event.toUpperCase()))];\n }\n\n filterAdministrativesFromRightsGroupByName(event: any) {\n this.filteredMembersFromRightsGroup = [...this.membersFromRightsGroup.filter(member => member.name.toUpperCase().includes(event.toUpperCase()))];\n this.selectedRightsGroupsCurrentMemberIds = this.filteredMembersFromRightsGroup.map(member => member.uid);\n }\n\n filterRightsGroupFromLogsByName(event: any) {\n this.filteredRightsGroupHasRightHistories = [...this.rightsGroupHasRightHistories.filter(rg => rg.rights_group_name.toUpperCase().includes(event.toUpperCase()))];\n }\n\n selectUser(event: any) {\n this.filteredMembersFromRightsGroup.push(event);\n this.selectedAdministrative = undefined;\n this.refreshMembersSaveButtons();\n }\n\n selectRightsGroup(event: any) {\n this.filteredRightsGroupsFromMember.push(event);\n this.selectedGroup = undefined;\n this.refreshRightsGroupsSaveButtons();\n }\n\n saveMembersFromRightsGroup() {\n const rightsGroupId = this.selectedRightsGroup.rights_group_id;\n const newIds = this.filteredMembersFromRightsGroup.map(m => m.uid);\n const toRemove = this.selectedMemberIdsFromRightsGroupToRemove;\n\n if (toRemove && toRemove.length > 0) {\n this.rightsService.removeRightsGroupMembers(rightsGroupId, toRemove)\n .then(() => this.messageService.add({\n severity: 'success',\n detail: toRemove.length > 1 ? toRemove.length + ' membres supprimés' : 'Membre supprimé',\n life: 5000\n }))\n .then(() => this.loadRightsGroupMembers(rightsGroupId))\n .catch(console.error);\n }\n\n const toAdd = newIds.filter(newId => this.selectedRightsGroupsCurrentMemberIds.findIndex(oldId => oldId === newId) === -1);\n if (toAdd && toAdd.length > 0) {\n this.rightsService.addRightsGroupMembers(rightsGroupId, toAdd)\n .then((addedAdministratives) => {\n let customDetail = '
    ';\n\n addedAdministratives.forEach(adm => customDetail += '
  • ' + adm.civility + ' ' + adm.name + ' ' + adm.firstname + ' ' + '
  • ');\n\n this.messageService.add({\n severity: 'success',\n summary: toAdd.length > 1 ? toAdd.length + ' membres ajoutés : ' : 'Membre ajouté : ',\n detail: customDetail + '
',\n life: 10000\n });\n })\n .then(() => this.loadRightsGroupMembers(rightsGroupId))\n .catch(console.error);\n }\n }\n\n saveRightsGroupsFromMember() {\n const uid = this.selectedUserToDisplay.uid;\n const newIds = this.filteredRightsGroupsFromMember.map(rg => rg.rights_group_id);\n const toRemove = this.selectedRightsGroupIdsFromMemberToRemove;\n\n if (toRemove && toRemove.length > 0) {\n this.rightsService.removeRightsGroupsFromMember(uid, toRemove)\n .then(() => this.messageService.add({\n severity: 'success',\n detail: toRemove.length > 1 ? toRemove.length + ' groupes supprimés' : 'Groupe supprimé',\n life: 5000\n }))\n .then(() => this.loadRightsGroupsFromMember(uid))\n .catch(console.error);\n }\n\n const toAdd = newIds.filter(newId => this.selectedMemberCurrentRightsGroupIds.findIndex(oldId => oldId === newId) === -1);\n if (toAdd && toAdd.length > 0) {\n this.rightsService.addRightsGroupsToMember(uid, toAdd)\n .then((addedRightsGroups) => {\n this.messageService.add({\n severity: 'success',\n summary: toAdd.length > 1 ? toAdd.length + ' groupes ajoutés' : 'Groupe ajouté',\n life: 10000\n });\n })\n .then(() => this.loadRightsGroupsFromMember(uid))\n .catch(console.error);\n }\n }\n\n removeMemberFromRightsGroup(adm: Administrative) {\n if (!this.selectedMemberIdsFromRightsGroupToRemove.includes(adm.uid)) {\n this.selectedMemberIdsFromRightsGroupToRemove.push(adm.uid);\n }\n\n this.refreshMembersSaveButtons();\n }\n\n removeRightsGroupFromMember(rg: RightsGroup) {\n if (!this.selectedRightsGroupIdsFromMemberToRemove.includes(rg.rights_group_id)) {\n this.selectedRightsGroupIdsFromMemberToRemove.push(rg.rights_group_id);\n }\n\n this.refreshRightsGroupsSaveButtons();\n }\n\n reloadSelectedRightsGroupMembers() {\n this.loadRightsGroupMembers(this.selectedRightsGroup.rights_group_id);\n }\n\n reloadSelectedMemberRightsGroups() {\n this.loadRightsGroupsFromMember(this.selectedUserToDisplay.uid);\n }\n\n showUserRightsDialog(user: Administrative) {\n\n this.selectedUserToDisplay = user;\n this.loadSelectedUserRights(user.uid)\n .then(() => this.displaySelectedMemberRights = true);\n }\n\n //#endregion\n\n isDuplicationRightsGroupNameInvalid() {\n return this.rightsGroupToDuplicate === undefined\n || this.selectedRightsGroup === undefined\n || this.rightsGroupToDuplicate.rights_group_name.trim().length === 0\n || this.selectedRightsGroup.parent.children.findIndex(o => o.rights_group_name === this.rightsGroupToDuplicate.rights_group_name) !== -1;\n }\n\n isCreationRightsGroupNameInvalid() {\n return this.rightsGroupToSaveOrUpdate.rights_group_name.trim().length === 0;\n }\n\n deactivateRightsGroup(rightsGroup: RightsGroup) {\n this.rightsService.removeRightsGroup(rightsGroup.rights_group_id)\n .then(() => {\n this.messageService.add({\n severity: 'success',\n detail: 'Le groupe de droits a été supprimé.',\n life: 10000\n });\n\n this.initRightsGroupsTree(undefined);\n this.onRightsGroupDeleteDialogClose();\n })\n .catch(() => {\n this.loading = false;\n this.messageService.add({\n severity: 'error',\n detail: 'Erreur lors de la suppression du groupe de droits. Si le problème persiste, Veuillez contacter le support informatique.',\n life: 20000\n });\n });\n }\n\n private expandRecursiveToRightsGroup(rightsGroups: TreeNode[], rightsGroupIdToDisplay: number, shouldForceNodeSelection: boolean) {\n rightsGroups\n .map(rg => this.searchTree(rg, rightsGroupIdToDisplay))\n .forEach(elementToReach => this.expandAscRecursive(elementToReach, shouldForceNodeSelection));\n }\n\n private expandAscRecursive(elementToReach: any, shouldForceNodeSelection: boolean) {\n if (shouldForceNodeSelection && elementToReach) {\n this.selectedRightsGroup = elementToReach;\n this.hasRightToEdit = true;\n this.onRightsGroupNodeSelect({node: elementToReach});\n }\n\n if (elementToReach && elementToReach.parent) {\n elementToReach.parent.expanded = true;\n this.expandAscRecursive(elementToReach.parent, false);\n }\n }\n\n private searchTree(element: TreeNode, rightsGroupIdToDisplay: number) {\n if (element.data.rights_group_id === rightsGroupIdToDisplay) {\n return element;\n } else if (element.children != null) {\n let result = null;\n for (let i = 0; result == null && i < element.children.length; i++) {\n element.children[i].parent = element;\n\n result = this.searchTree(element.children[i], rightsGroupIdToDisplay);\n }\n return result;\n }\n return null;\n }\n\n expandSelectedMemberRightsFamilies() {\n this.selectedMemberRightsLogs.forEach(node => {\n this.expandRecursive(node, true);\n });\n }\n\n collapseSelectedMemberRightsFamilies() {\n this.selectedMemberRightsLogs.forEach(node => {\n this.expandRecursive(node, false);\n });\n }\n\n expandOrganizationChartFamilies() {\n this.allRightsGroupsTree.forEach(node => {\n this.expandRecursive(node, true);\n });\n\n this.forceOrganizationChartFamiliesRefresh();\n }\n\n collapseOrganizationChartFamilies() {\n this.allRightsGroupsTree.forEach(node => {\n this.expandRecursive(node, false);\n });\n this.forceOrganizationChartFamiliesRefresh();\n }\n\n forceOrganizationChartFamiliesRefresh() {\n this.displayRightsGroupOrganizationChart = false;\n setTimeout(() => {\n this.displayRightsGroupOrganizationChart = true;\n }, 0);\n }\n\n createColorFromString(str): string {\n\n const colors = [\n '#66ccff',\n '#feeb6a',\n '#7278ad',\n '#8ba5c0',\n '#7b0412',\n '#cc3433',\n '#003874',\n '#261d11',\n '#6e1010',\n '#535353',\n '#008169',\n '#f6ab49',\n '#ff4a4a',\n '#2b6896'\n ];\n\n let sum = 0;\n str.split('').forEach(c => sum += (c.charCodeAt()));\n\n const index = sum % colors.length;\n\n return colors[index];\n }\n\n showRightLogsDialog() {\n this.displayLogsDialog = true;\n }\n\n onMemberRightGroupSelected(rightsGroupId: number) {\n this.initRightsGroupsTree(rightsGroupId);\n this.displaySelectedMemberRights = false;\n }\n\n showRightHistoryDialog(event) {\n const rightsGroupId = event.data.rights_group_id;\n const rightId = event.data.right_id;\n\n const currentLogs = this.userTypeTabActiveIndex === this.GROUPS_TAB_INDEX\n ? this.rightsService.getRightsLogs(rightsGroupId, rightId)\n : this.rightsService.getRightsLogsByUser(rightId, this.selectedUserToDisplay.uid);\n\n currentLogs\n .then((data) => {\n\n data.forEach(d => {\n if (d.new_value) {\n d[`newValue`] = this.parseRightsGroupHasRightLog(d.new_value);\n }\n if (d.previous_value) {\n d[`previousValue`] = this.parseRightsGroupHasRightLog(d.previous_value);\n }\n\n return d;\n });\n\n this.rightsGroupHasRightHistories = data.sort((a, b) => a.update_date < b.update_date ? 1 : -1);\n this.filteredRightsGroupHasRightHistories = [...this.rightsGroupHasRightHistories];\n\n this.showRightLogsDialog();\n })\n .catch(console.error);\n\n }\n\n getAllRightsGroups() {\n this.rightsService.getAllRightsGroups()\n .then(rightsGroups => {\n this.allRightsGroups = rightsGroups;\n });\n }\n\n showMembersHistoryDialog() {\n\n if (!this.selectedRightsGroup || !this.selectedRightsGroup.data || !this.selectedRightsGroup.data.rights_group_id) {\n this.messageService.add({\n severity: 'warn',\n detail: 'Impossible de charger l\\'historique des membres de ce groupe de droits. Si le problème persiste, veuillez contacter le support informatique.',\n life: 10000\n });\n return;\n }\n\n this.displayMembersHistoryDialog = true;\n\n this.rightsService.getRightsGroupMemberLogs(this.selectedRightsGroup.data.rights_group_id)\n .then((memberLogs) => {\n this.rightsGroupMemberLogs = memberLogs.sort((a, b) => a.upd_date < b.upd_date ? 1 : -1);\n })\n .catch(console.error);\n\n\n }\n\n onSelectedMemberRightsDialogHide() {\n delete this.selectedAdministrative;\n }\n\n onRightsGroupOrganizationChartNodeSelected(event: any) {\n this.initRightsGroupsTree(event.node.rights_group_id);\n this.displayRightsGroupOrganizationChartDialog = false;\n }\n\n onUserTypeTabChange(event: any) {\n this.userTypeTabActiveIndex = event.index;\n\n this.resetFilters();\n this.resetTreesRights();\n this.resetArray(this.selectedRightsGroupRights);\n this.resetArray(this.membersFromRightsGroup);\n this.resetArray(this.rightsGroupsFromMember);\n\n delete this.selectedUserToDisplay;\n delete this.selectedRightsGroup;\n\n if (this.userTypeTabActiveIndex === this.USERS_DETAILS_TAB_INDEX) {\n this.loadMembersFromMyRightsGroups();\n }\n }\n\n onRightsTabChange(event: any) {\n this.rightsTabActiveIndex = event.index;\n\n this.resetFilters();\n this.resetTreesRights();\n this.resetArray(this.selectedRightsGroupRights);\n\n if (this.selectedRightsGroup) {\n const rightsGroupId = this.selectedRightsGroup.data.rights_group_id;\n const rootParentRightsGroupId = this.getRootParentRightsGroupId(this.selectedRightsGroup);\n\n this.loadRightsGroupRights(rightsGroupId, rootParentRightsGroupId)\n .then(() => this.refreshRights());\n\n this.loadRightsGroupMembers(rightsGroupId);\n\n } else if (this.selectedUserToDisplay) {\n this.loadSelectedUserRights(this.selectedUserToDisplay.uid).then();\n }\n\n if (this.rightsTabActiveIndex === this.GROUPS_RIGHTS_TAB_INDEX) {\n this.getAllRightsGroups();\n }\n }\n\n private filterRightsBySelectedTab(rights: any[]): any[] {\n switch (this.rightsTabActiveIndex) {\n case this.SCHOOLS_RIGHTS_TAB_INDEX : rights = rights.filter(r => r.right_type_id === this.SCHOOLS_RIGHTS_TYPE_ID); break;\n case this.INTERFACES_RIGHTS_TAB_INDEX : rights = rights.filter(r => this.INTERFACES_RIGHTS_TYPE_IDS.indexOf(r.right_type_id) !== -1); break;\n case this.FUNCTIONS_RIGHTS_TAB_INDEX : rights = rights.filter(r => r.right_type_id === this.FUNCTIONS_RIGHTS_TYPE_ID); break;\n default : rights = rights.filter(r => r.right_type_id === this.SCHOOLS_RIGHTS_TYPE_ID); break;\n }\n return rights;\n }\n\n private filterRightFamiliesBySelectedTab(rightFamilies: any) {\n switch (this.rightsTabActiveIndex) {\n\n case this.SCHOOLS_RIGHTS_TAB_INDEX :\n rightFamilies = rightFamilies.filter(rf => this.SCHOOLS_RIGHTS_FAMILY_IDS.indexOf(rf.rights_family_id) !== -1);\n rightFamilies.forEach(rf => rf.expanded = true);\n break;\n\n case this.INTERFACES_RIGHTS_TAB_INDEX :\n case this.FUNCTIONS_RIGHTS_TAB_INDEX :\n rightFamilies = rightFamilies.filter(rf => this.APPLICATION_RIGHTS_FAMILY_IDS.indexOf(rf.rights_family_id) !== -1);\n break;\n\n default :\n rightFamilies = rightFamilies.filter(rf => this.SCHOOLS_RIGHTS_FAMILY_IDS.indexOf(rf.rights_family_id) !== -1);\n rightFamilies.forEach(rf => rf.expanded = true);\n break;\n }\n return rightFamilies;\n }\n\n // cette méthode n'est pas utilisée mais elle permet de récupérer le type de droit en fonction de l'onglet sélectionné\n private getRightsTypeBySelectedTab(): number {\n let selectedRightsType;\n switch (this.rightsTabActiveIndex) {\n case this.SCHOOLS_RIGHTS_TAB_INDEX : selectedRightsType = this.SCHOOLS_RIGHTS_TYPE_ID; break;\n case this.INTERFACES_RIGHTS_TAB_INDEX : selectedRightsType = this.INTERFACES_RIGHTS_TYPE_IDS; break;\n case this.FUNCTIONS_RIGHTS_TAB_INDEX : selectedRightsType = this.FUNCTIONS_RIGHTS_TYPE_ID; break;\n default : selectedRightsType = this.SCHOOLS_RIGHTS_TYPE_ID; break;\n }\n return selectedRightsType;\n }\n\n getTreeFromSelectedTab(): TreeNode[] {\n return this.userTypeTabActiveIndex === this.GROUPS_TAB_INDEX\n ? this.selectedRightsGroupRights\n : this.selectedMemberUpperRights;\n }\n\n getTreeFromCurrentContext(): TreeNode[] {\n let currentTree: TreeNode[];\n if (this.userTypeTabActiveIndex === this.GROUPS_TAB_INDEX) {\n currentTree = this.selectedRightsGroupRights;\n } else {\n currentTree = this.displaySelectedMemberRights ? this.selectedMemberRightsLogs : this.selectedMemberUpperRights;\n }\n return currentTree;\n }\n\n // cette méthode permet actuellement d'ajouter une checkbox à un noeud, la condition peut changer dans le futur\n getSelectionModeFromSelectedTab(): string {\n return this.userTypeTabActiveIndex === this.GROUPS_TAB_INDEX\n ? 'checkbox'\n : 'checkbox';\n }\n\n getEmptyMessageFromSelectedTab(): string {\n let message = '';\n if (this.userTypeTabActiveIndex === this.GROUPS_TAB_INDEX) {\n this.selectedRightsGroup\n ? message = 'Aucun droit pour le groupe sélectionné'\n : message = 'Veuillez sélectionner un groupe de droits';\n } else {\n this.selectedUserToDisplay\n ? message = 'Aucun droit pour l\\'utilisateur sélectionné'\n : message = 'Veuillez sélectionner un utilisateur';\n }\n return message;\n }\n}\n","
\n\n\n \n \n \n \n \n
\n \n \n \n \n \n \n
\n
\n
\n
\n \n\n
\n \n \n \n
\n\n \n \n
\n
\n Membres : {{ filteredMembersFromRightsGroup.length }}\n
\n
\n
\n \n
\n
\n
\n {{adm.civility}} {{adm.name}} {{adm.firstname}}
\n {{adm.service}} - {{adm.email}}\n
\n
\n \n
\n
\n
\n
\n
\n\n
\n
\n\n \n
\n\n \n \n \n\n
\n\n \n\n \n
\n {{ node.label }}\n
\n
\n\n \n
\n
{{ node.label }}
\n
\n \n \n \n \n
\n
\n
\n\n
\n
\n\n \n\n
\n \n\n
\n \n\n \n
\n {{ node.label }}\n
\n
\n\n \n
\n
{{ node.label }}
\n
\n \n \n \n \n \n \n \n \n
\n
\n
\n\n
\n
\n\n \n\n
\n \n\n
\n \n\n \n
\n {{ node.label }}\n
\n
\n\n \n
\n
{{ node.label }}
\n
\n \n \n \n \n \n \n \n \n
\n
\n
\n\n
\n
\n\n \n\n
\n \n\n
\n\n
\n \n \n \n
\n\n \n \n
\n
\n Membres : {{ filteredMembersFromRightsGroup.length }}\n \n \n \n
{{adm.civility}} {{adm.name}} {{adm.firstname}}
\n
{{adm.service}} - {{adm.email}}
\n
\n
\n
\n
\n
Vous ne pouvez pas modifier les membres de votre groupe
\n
\n
\n \n
\n
\n
\n
\n {{adm.civility}} {{adm.name}} {{adm.firstname}}
\n {{adm.service}} - {{adm.email}}\n
\n
\n \n \n
\n
\n
\n
\n
\n\n
\n\n
\n
\n \n \n
\n
\n\n
\n \n
\n\n
\n \n\n
\n\n
\n \n \n \n
\n\n \n \n
\n
\n Groupes : {{ filteredRightsGroupsFromMember.length }}\n \n \n \n
{{rg.rights_group_name}}
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n {{rg.rights_group_name}}\n
\n
\n \n
\n
\n
\n
\n
\n\n
\n\n
\n
\n \n \n
\n
\n\n
\n \n
\n\n
\n
\n {{selectedUserToDisplay.civility}} {{selectedUserToDisplay.name}} {{selectedUserToDisplay.firstname}}\n {{selectedRightsGroup.rights_group_name}}\n
\n\n \n
\n
\n
\n
\n
Vous ne pouvez pas modifier les droits de votre groupe
\n
\n
\n\n \n
\n
0 && userTypeTabActiveIndex === GROUPS_TAB_INDEX\" class=\"centerContent\">\n

Actions sur la sélection

\n \n \n \n \n \n \n \n \n
\n\n
\n
\n
\n
\n
\n
\n\n
\n\n\n\n \n
\n \n \n
\n
\n \n\n \n
\n \n {{node.label}}\n
\n
\n\n \n {{node.label}}\n
éditable
\n
\n\n \n {{node.label}}\n
Membre de ce groupe
\n
\n\n \n {{node.label}}\n
Membre de ce groupe
\n
éditable
\n
\n
\n
\n\n\n\n
\n
\n
{{selectedUserToDisplay?.civility}} {{selectedUserToDisplay?.name}} {{selectedUserToDisplay?.firstname}}
\n
{{selectedUserToDisplay?.service}} - {{selectedUserToDisplay?.function}} - {{selectedUserToDisplay?.location}}
\n
Tel : {{selectedUserToDisplay?.telephone}} - {{selectedUserToDisplay?.mobile}} - Email : {{selectedUserToDisplay?.email}}
\n
\n
\n \n \n
\n
\n\n \n \n
\n {{ node.label }}\n
\n
\n\n \n
\n
{{ node.label }}
\n
\n \n \n \n \n
\n
\n
\n Groupe : \"{{ node.data.rights_group_name }}\"\n
\n
\n
\n\n \n
\n
{{ node.label }}
\n
\n \n \n
\n
\n
\n Groupe : \"{{ node.data.rights_group_name }}\"\n
\n
\n
\n
\n
\n\n\n\n
\n \n \n \n \n
\n\n \n \n \n\n
\n\n\n\n
\n \n \n \n \n
\n\n

Veuillez sélectionner les membres à importer

\n\n \n \n \n \n \n \n Nom\n Fonctions\n Coordonnées\n \n \n \n \n \n \n \n {{adm.civility}} {{adm.name}} {{adm.firstname}}\n {{adm.service}} - {{adm.function}} - {{adm.location}}\n Tel : {{adm.telephone}} - {{adm.mobile}} - Email : {{adm.email}}\n \n \n \n\n
\n\n

Veuillez sélectionner les droits à dupliquer

\n\n \n \n \n \n \n \n Nom\n Droits\n Groupe de droits\n \n \n \n \n \n \n \n {{right.right_desc}}\n \n \n \n \n \n \n {{right.rights_group_name}}\n \n \n \n\n \n \n \n\n
\n\n\n\n
\n
Confirmez-vous la suppression du groupe de droits \"{{rightsGroupToSaveOrUpdate.rights_group_name}}\" ?
\n
Cette action va restreindre les droits de ses membres, qui ne pourraient ne plus avoir accès à certaines fonctionnalités.
\n
Cette opération ne peut pas être annulée.
\n
\n\n \n \n \n \n\n
\n\n\n\n
0\" class=\"p-mb-3\">\n
Groupe de droits : {{ selectedRightsGroupHasRight[0].data.rights_group_name }}
\n
Droit concerné : {{ selectedRightsGroupHasRight[0].data.right_name }}
\n
0 && selectedUserToDisplay\">\n \n \n \n
\n
\n\n
0; else noRightHistories\" class=\"p-d-flex centerContent\">\n \n \n \n Date\n Mis à jour par\n Groupe de droits\n Ancienne valeur\n Nouvelle valeur\n \n \n \n \n {{right.update_date | date : 'medium'}}\n {{right.civility}} {{right.firstname}} {{right.name}}\n {{right.rights_group_name}}\n \n
\n \n \n \n \n
\n \n \n \n
\n \n \n \n \n
\n \n \n
\n
\n
\n \n
\n Pas d'historique pour ce droit au sein de ce groupe de droits\n
\n
\n\n \n \n \n\n
\n\n\n\n
\n
Groupe de droits : {{ selectedRightsGroup.data.rights_group_name }}
\n
\n\n
0; else noMemberHistories\" class=\"p-d-flex centerContent\">\n \n \n \n Date\n Membre\n Action\n Mis à jour par\n \n \n \n \n {{member.upd_date | date : 'medium'}}\n {{member.updated_user_civility}} {{member.updated_user_firstname}} {{member.updated_user_name}}\n {{member.log_action === 'ADD' ? 'Ajout' : 'Suppression'}}\n {{member.civility}} {{member.firstname}} {{member.name}}\n \n \n \n
\n \n
\n Pas d'historique de membres pour ce groupe de droits\n
\n
\n\n \n \n \n\n
\n\n
\n \n
\n","import {Component, Input, OnInit} from '@angular/core';\nimport * as emailConstants from '../../constants/email.constant';\nimport {AuthenticatedUserService} from '../../services/authenticated-user.service';\n\n@Component({\n selector: 'app-error-dialog',\n templateUrl: './error-dialog.component.html',\n styleUrls: ['./error-dialog.component.scss']\n})\nexport class ErrorDialogComponent implements OnInit {\n\n @Input()\n errorDialogDisplayed = false;\n\n @Input() errorMessage = '';\n @Input() title = 'Erreur';\n supportAddress = emailConstants.SUPPORT_ADDRESS;\n\n constructor(private authenticatedUserService: AuthenticatedUserService) { }\n\n ngOnInit(): void {\n }\n\n refreshPage(): void {\n window.location.reload();\n }\n\n disconnect(): void {\n this.authenticatedUserService.removeToken();\n this.authenticatedUserService.removeProfile();\n this.authenticatedUserService.logout();\n }\n}\n","\n
{{errorMessage}}
\n
\n Essayez de rafraîchir la page.\n
\n
Si le problème persiste veuillez contacter le support à l'adresse suivante: {{supportAddress}}
\n \n \n \n \n
\n","import {Injectable} from '@angular/core';\nimport {CancelablePromise} from '../common/promises/cancelable-promise';\nimport {MenuDTO} from '../models/interfaces/menu-dto';\nimport {AbstractPageComponent} from '../interfaces/abstract-page.component';\nimport {InterfacesService} from './interfaces.service';\n\nexport type pageData = {type: AbstractPageComponent, header: string, rightId: number, data: any};\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PagesService {\n\n static componentsList: { [id: string]: pageData } = {};\n public static KORDIS_ID = 4;\n public static STUDENT = 'student';\n public static QUERY = 'query';\n public static REPORT = 'state';\n // public static DIPLOMAS_LIST = 'diplomasList';\n public static DIPLOMAS_LIST = 'diplomas';\n public static DIPLOMA = 'diploma';\n\n components: { [id: string]: any; } = {};\n\n constructor(\n private interfacesService: InterfacesService\n ) {\n this.components = PagesService.componentsList;\n }\n\n public getComponentsMap(): any {\n return this.components;\n }\n\n getMenuElements(): CancelablePromise {\n return this.interfacesService.getMenu(PagesService.KORDIS_ID);\n }\n\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CommonUtilsService {\n\n constructor() { }\n\n public static getMimeTypeFromExtension(extension: string): string {\n switch (extension) {\n case '.aac': return 'audio/aac';\n case '.abw': return 'application/x-abiword';\n case '.arc': return 'application/octet-stream';\n case '.avi': return 'video/x-msvideo';\n case '.azw': return 'application/vnd.amazon.ebook';\n case '.bin': return 'application/octet-stream';\n case '.bmp': return 'image/bmp';\n case '.bz': return 'application/x-bzip';\n case '.bz2': return 'application/x-bzip2';\n case '.csh': return 'application/x-csh';\n case '.css': return 'text/css';\n case '.csv': return 'text/csv';\n case '.doc': return 'application/msword';\n case '.docx': return 'application/vnd.openxmlformats-officedocument.wordprocessingml.document';\n case '.eot': return 'application/vnd.ms-fontobject';\n case '.epub': return 'application/epub+zip';\n case '.gif': return 'image/gif';\n case '.htm': return 'text/html';\n case '.html': return 'text/html';\n case '.ico': return 'image/x-icon';\n case '.ics': return 'text/calendar';\n case '.jar': return 'application/java-archive';\n case '.jpeg': return 'image/jpeg';\n case '.jpg': return 'image/jpeg';\n case '.js': return 'application/javascript';\n case '.json': return 'application/json';\n case '.mid': return 'audio/midi';\n case '.midi': return 'audio/midi';\n case '.mpeg': return 'video/mpeg';\n case '.mpkg': return 'application/vnd.apple.installer+xml';\n case '.odp': return 'application/vnd.oasis.opendocument.presentation';\n case '.ods': return 'application/vnd.oasis.opendocument.spreadsheet';\n case '.odt': return 'application/vnd.oasis.opendocument.text';\n case '.oga': return 'audio/ogg';\n case '.ogv': return 'video/ogg';\n case '.ogx': return 'application/ogg';\n case '.otf': return 'font/otf';\n case '.png': return 'image/png';\n case '.pdf': return 'application/pdf';\n case '.ppt': return 'application/vnd.ms-powerpoint';\n case '.pptx': return 'application/vnd.openxmlformats-officedocument.presentationml.presentation';\n case '.rar': return 'application/x-rar-compressed';\n case '.rtf': return 'application/rtf';\n case '.sh': return 'application/x-sh';\n case '.svg': return 'image/svg+xml';\n case '.swf': return 'application/x-shockwave-flash';\n case '.tar': return 'application/x-tar';\n case '.tif': return 'image/tiff';\n case '.tiff': return 'image/tiff';\n case '.ts': return 'application/typescript';\n case '.ttf': return 'font/ttf';\n case '.vsd': return 'application/vnd.visio';\n case '.wav': return 'audio/x-wav';\n case '.weba': return 'audio/webm';\n case '.webm': return 'video/webm';\n case '.webp': return 'image/webp';\n case '.woff': return 'font/woff';\n case '.woff2': return 'font/woff2';\n case '.xhtml': return 'application/xhtml+xml';\n case '.xls': return 'application/vnd.ms-excel';\n case '.xlsx': return 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';\n case '.xml': return 'application/xml';\n case '.xul': return 'application/vnd.mozilla.xul+xml';\n case '.zip': return 'application/zip';\n case '.3gp': return 'video/3gpp';\n case '.3g2': return 'video/3gpp2';\n case '.7z': return 'application/x-7z-compressed';\n default: return '';\n }\n }\n\n public static isNullOrUndefined(property: any | null | undefined): boolean {\n return property === undefined || property === null;\n }\n}\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\n\n@Component({\n selector: 'app-field-loader',\n templateUrl: './field-loader.component.html',\n styleUrls: ['./field-loader.component.scss']\n})\nexport class FieldLoaderComponent implements OnInit {\n @Input()\n loadingCondition = false;\n\n @Output()\n cancel: EventEmitter = new EventEmitter();\n\n constructor() {\n }\n\n ngOnInit(): void {\n }\n\n @Input()\n interruptLoading() {\n this.loadingCondition = false;\n this.cancel.emit('cancel');\n }\n}\n","
\n
\n
\n
\n
\n
Chargement en cours
\n \n
\n
Annuler
\n
\n\n
\n
\n
\n\n","export class StringUtils {\n static getRandomString(size: number) {\n let result = '';\n const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n const charactersLength = characters.length;\n for (let i = 0; i < size; i++) {\n result += characters.charAt(Math.floor(Math.random() *\n charactersLength));\n }\n return result;\n }\n}\n","export class FieldValue {\n field: string;\n value: string;\n\n constructor(field: string, value: string) {\n this.field = field;\n this.value = value;\n }\n}\n","import {Injectable} from '@angular/core';\nimport {environment} from '../environments/environment';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class VersionService {\n\n constructor() {\n }\n\n static getVersion(): string {\n return environment.version_type + ' ' + environment.version;\n }\n}\n","export enum FilterTypeEnum {\n INPUT_FILTER = 'input',\n DROPDOWN_FILTER = 'dropdown'\n}\n","import {Injectable} from '@angular/core';\nimport {BaseService} from './base.service';\nimport {SchoolDTO} from '../models/schools/school-dto';\nimport {environment} from '../../environments/environment';\nimport {TrimesterDTO} from '../models/schools/trimester-dto';\nimport {CancelablePromise} from '../common/promises/cancelable-promise';\nimport {PromotionDTO} from '../models/schools/promotion-dto';\nimport {ClassDTO} from '../models/schools/class-dto';\nimport {OptionDTO} from '../models/schools/option-dto';\nimport {SpecializationDTO} from '../models/schools/specialization-dto';\nimport {Session, sessions} from '../utils/sessionsList';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SchoolsService {\n\n constructor(private baseService: BaseService) { }\n\n getAll(): CancelablePromise {\n return this.baseService.getAll(`${environment.servicesUrl}/me/schools`);\n }\n\n getSchoolSemesters(schoolId: number): CancelablePromise {\n return this.baseService.getAll(`${environment.servicesUrl}/promotions/${schoolId}/trimesters`);\n }\n\n getAllPromotionsByYearAndSchool(schoolId: number, year: number): CancelablePromise {\n return this.baseService.getAll(`${environment.servicesUrl}/schools/${schoolId}/promotions/${year}`);\n }\n\n getAllSessionsByPromotion(): Session[] {\n return sessions;\n }\n\n getAllClassesByYearAndPromotion(year: number, promoId: number): CancelablePromise {\n return this.baseService.getAll(`${environment.servicesUrl}/promotions/${promoId}/classes/${year}`);\n }\n\n getAllOptionsByYearAndPromotion(year: number, promoId: number): CancelablePromise {\n return this.baseService.getAll(`${environment.servicesUrl}/promotions/${promoId}/options/${year}`);\n }\n\n getAllSpecializationsByOption(optionId: number): CancelablePromise {\n return this.baseService.getAll(`${environment.servicesUrl}/options/${optionId}/specialisations`);\n }\n}\n","export class SchoolYearSemesterValues {\n selectedYear: number;\n selectedSchoolId: number;\n selectedSemesterId: number;\n}\n","import {Component, ElementRef, EventEmitter, HostListener, Input, OnInit, Output} from '@angular/core';\nimport {EntryTypeDTO} from '../../../models/entry-type-dto';\nimport {EntryDTO} from '../../../models/interfaces/entry-dto';\n\n@Component({\n selector: 'app-formated-entries-menu',\n templateUrl: './formated-entries-menu.component.html',\n styleUrls: ['./formated-entries-menu.component.scss']\n})\nexport class FormatedEntriesMenuComponent implements OnInit {\n\n @Input()\n formattedEntries: Map;\n\n @Output()\n closePannel = new EventEmitter();\n\n @Input()\n filter = '';\n\n @Input()\n onOpening = true;\n\n @Output()\n changeFavoriteStatus = new EventEmitter();\n \n @Input()\n displayStar = true;\n\n crossDisplayedEntryId: number;\n\n constructor(private elementRef: ElementRef) {\n }\n\n ngOnInit(): void {\n }\n\n @HostListener('document:click', ['$event.target'])\n public onPageClick(targetElement) {\n const clickedInside = this.elementRef.nativeElement.contains(targetElement);\n if (!(this.onOpening || clickedInside)) {\n this.close(false);\n } else {\n this.onOpening = false;\n }\n\n }\n\n close(resetFilter: boolean) {\n this.closePannel.emit(resetFilter);\n }\n\n getEntryTypeClass(entryTypeName: string) {\n let entryTypeClass;\n\n switch (entryTypeName) {\n case 'saisie' :\n entryTypeClass = 'saisieTitle';\n break;\n case 'requêtes' :\n entryTypeClass = 'requetesTitle';\n break;\n case 'états' :\n entryTypeClass = 'etatsTitle';\n break;\n }\n\n return entryTypeClass + ' entryLabel';\n }\n\n openEntry(entry: EntryDTO) {\n entry[`command`]();\n this.close(true);\n }\n\n updateEntryFavoriteStatus(entry: EntryDTO) {\n this.onOpening = true;\n this.changeFavoriteStatus.emit(entry);\n }\n\n displayCross(entryId: number) {\n if (!this.displayStar) {\n this.crossDisplayedEntryId = entryId;\n }\n }\n\n displayEntryCross(entry_id: number) {\n return entry_id === this.crossDisplayedEntryId;\n }\n\n removeEntryCross() {\n this.crossDisplayedEntryId = null;\n }\n}\n","
0\">\n
\n
{{moduleAndCategory}}\n
\n\n
\n\n\n
\n
\n\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n
\n","import { Injectable } from '@angular/core';\nimport { HttpRequest, HttpHandler, HttpEvent, HttpErrorResponse } from '@angular/common/http';\nimport { Observable, throwError } from 'rxjs';\nimport { AuthenticatedUserService } from './authenticated-user.service';\nimport { retry, catchError } from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TokenInterceptorService {\n\n constructor(public auth: AuthenticatedUserService) {}\n\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\n request = request.clone({\n headers: request.headers\n .set('Access-Control-Allow-Origin', '*')\n .set('Authorization', 'Bearer ' + this.auth.getToken())\n });\n return next.handle(request).pipe(\n retry(0),\n catchError((error: HttpErrorResponse) => {\n return throwError(error);\n })\n );\n }\n\n}\n","import { Component, OnInit, EventEmitter, Output } from '@angular/core';\nimport {TableColumn} from '../../models/table-column';\n\n@Component({\n selector: 'app-welcome-page',\n templateUrl: './welcome-page.component.html',\n styleUrls: ['./welcome-page.component.scss']\n})\nexport class WelcomePageComponent implements OnInit {\n\n cols: TableColumn[] = [\n { field: 'student_id', header: 'ID', type: 'string', width: '200px', readonly: false },\n { field: 'student_name', header: 'Nom', type: 'string', width: '200px', readonly: false },\n { field: 'student_firstname', header: 'Prénom', type: 'string', width: '200px', readonly: false }\n ];\n\n testData: any[] = [\n { student_id: 'test1', student_name: 'test nom 1', student_firstname: 'prénom 1' },\n { student_id: 'test2', student_name: 'test nom 2', student_firstname: 'test prénom 2' },\n { student_id: 'test3', student_name: 'test nom 3', student_firstname: 'test prénom 3' },\n { student_id: 'test4', student_name: 'test nom 4', student_firstname: 'test prénom 4' },\n { student_id: 'test5', student_name: 'test nom 5', student_firstname: 'test prénom 5' },\n { student_id: 'test6', student_name: 'test nom 6', student_firstname: 'test prénom 6' },\n { student_id: 'test7', student_name: 'test nom 7', student_firstname: 'test prénom 7' },\n { student_id: 'test8', student_name: 'test nom 8', student_firstname: 'test prénom 8' },\n { student_id: 'test9', student_name: 'test nom 9', student_firstname: 'test prénom 9' },\n { student_id: 'test10', student_name: 'test nom 10', student_firstname: 'test prénom 10' },\n { student_id: 'test11', student_name: 'test nom 11', student_firstname: 'test prénom 11' },\n { student_id: 'test12', student_name: 'test nom 12', student_firstname: 'test prénom 12' },\n { student_id: 'test13', student_name: 'test nom 13', student_firstname: 'test prénom 13' },\n { student_id: 'test14', student_name: 'test nom 14', student_firstname: 'test prénom 14' },\n { student_id: 'test15', student_name: 'test nom 15', student_firstname: 'test prénom 15' },\n { student_id: 'test16', student_name: 'test nom 16', student_firstname: 'test prénom 16' },\n { student_id: 'test17', student_name: 'test nom 17', student_firstname: 'test prénom 17' },\n { student_id: 'test18', student_name: 'test nom 18', student_firstname: 'test prénom 18' },\n { student_id: 'test19', student_name: 'test nom 19', student_firstname: 'test prénom 19' },\n { student_id: 'test20', student_name: 'test nom 20', student_firstname: 'test prénom 20' },\n { student_id: 'test21', student_name: 'test nom 21', student_firstname: 'test prénom 21' },\n { student_id: 'test22', student_name: 'test nom 22', student_firstname: 'test prénom 22' },\n { student_id: 'test23', student_name: 'test nom 23', student_firstname: 'test prénom 23' },\n { student_id: 'test24', student_name: 'test nom 24', student_firstname: 'test prénom 24' },\n { student_id: 'test25', student_name: 'test nom 25', student_firstname: 'test prénom 25' },\n { student_id: 'test26', student_name: 'test nom 26', student_firstname: 'test prénom 26' },\n { student_id: 'test27', student_name: 'test nom 27', student_firstname: 'test prénom 27' },\n { student_id: 'test28', student_name: 'test nom 28', student_firstname: 'test prénom 28' },\n { student_id: 'test29', student_name: 'test nom 29', student_firstname: 'test prénom 29' },\n { student_id: 'test30', student_name: 'test nom 30', student_firstname: 'test prénom 30' },\n { student_id: 'test31', student_name: 'test nom 31', student_firstname: 'test prénom 31' },\n { student_id: 'test32', student_name: 'test nom 32', student_firstname: 'test prénom 32' },\n ];\n filteredStudentData: any[] = [];\n\n //#region Combobox\n\n @Output() tabAdded = new EventEmitter();\n //#endregion\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n addTab(type) {\n this.tabAdded.emit(type);\n }\n\n onFilterChanged(filter: string) {\n this.filteredStudentData = this.testData.filter(student =>\n student.student_firstname.toLowerCase().indexOf(filter.toLowerCase()) !== -1);\n }\n\n onDataSelected(selectedData: any) {\n // TODO\n }\n\n}\n","\n
\n\n
\n
\n
\n

Ceci est une version préliminaire de Kordis®.

\n

Si vous remarquez un dysfonctionnement ou que vous avez une suggestion en lien avec les écrans présents, veuillez vous adresser au support à l'adresse service.informatique@geschool.fr.

\n

Ici prendra bientôt place un outil de recherche rapide.

\n

En attendant, vous pouvez d'ores et déjà naviguer à l'aide du menu latéral gauche.

\n
\n
\n\n\n\n\n\n\n\n
\n
\n","import {Component, OnInit} from '@angular/core';\nimport {AbstractPageComponent} from '../../interfaces/abstract-page.component';\nimport {MessageService} from 'primeng/api';\nimport {ReloadService} from '../../services/reload.service';\nimport {Page} from '../../annotations/page.annotation';\nimport {PagesService} from '../../services/pages.service';\n\n@Component({\n selector: 'app-parameters',\n templateUrl: './parameters.component.html',\n styleUrls: ['./parameters.component.scss']\n})\n@Page('params', 'Paramètres', undefined,{ icon: 'pi pi-cog' })\nexport class ParametersComponent extends AbstractPageComponent implements OnInit {\n\n helpOptions = [\n {label: 'Non', value: {id: 1, name: 'Non'}},\n {label: 'Oui', value: {id: 2, name: 'Oui'}}\n ];\n selectedHelpOption = this.helpOptions[0].value;\n\n smallMenuOptions = [\n {label: 'Menu complet', value: {id: 1, name: 'Menu complet'}},\n {label: 'Juste les icônes', value: {id: 2, name: 'Juste les icônes'}}\n ];\n selectedSmallMenuOption = this.smallMenuOptions[1].value;\n\n constructor(private messageService: MessageService,\n private reloadService: ReloadService) {\n super();\n }\n\n ngOnInit(): void {\n\n setTimeout(() => {\n const helpDisplay = localStorage.getItem('helpDisplay');\n const smallMenuDisplay = localStorage.getItem('smallMenuDisplay');\n\n if (helpDisplay === null) {\n this.selectedHelpOption = this.helpOptions[0].value;\n } else {\n this.selectedHelpOption = JSON.parse(helpDisplay);\n }\n\n if (smallMenuDisplay === null) {\n this.selectedSmallMenuOption = this.smallMenuOptions[0].value;\n } else {\n this.selectedSmallMenuOption = JSON.parse(smallMenuDisplay);\n }\n\n }, 10);\n\n }\n\n getHelp(): string {\n return 'Aide des paramètres';\n }\n\n onSave() {\n setTimeout(() => {\n localStorage.setItem('helpDisplay', JSON.stringify(this.selectedHelpOption));\n localStorage.setItem('smallMenuDisplay', JSON.stringify(this.selectedSmallMenuOption));\n this.messageService.add({severity: 'success', summary: 'Paramètres enregistrés'});\n\n this.reloadService.shouldRefreshLayouts([\n {id: 'helpDisplay', value: this.selectedHelpOption},\n {id: 'smallMenuDisplay', value: this.selectedSmallMenuOption},\n ]);\n }, 0);\n\n }\n\n}\n","\n
\n \n\n \n\n \n
\n","import {TabLayoutComponent} from '../components/tab-layout/tab-layout.component';\n\nexport abstract class AbstractPageComponent {\n\n extraData: any;\n tabLayout: TabLayoutComponent;\n\n abstract getHelp(): string;\n\n isActive(): boolean {\n return this.tabLayout.tabs[this.tabLayout.currentTabIndex - 1]?.data[`pageId`] === this.extraData[`pageId`];\n }\n\n}\n","export class Right {\n right_id: number;\n right_name: string;\n right_desc: string;\n is_active: boolean;\n rights_family_id: number;\n rights_family_name: string;\n right_type_id: number;\n right_type_name: string;\n}\n","export class AuthenticatedUser {\n public access_token: string;\n public token_type: string;\n public expires_in: string;\n public scope: string[];\n public uid: string;\n\n constructor() {}\n}\n","export const SUPPORT_ADDRESS = 'service.informatique@geschool.fr';\n","/* tslint:disable:variable-name */\n// tslint:disable:no-output-on-prefix\n\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n forwardRef,\n Inject,\n Input,\n NgModule,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n QueryList,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport {CdkVirtualScrollViewport, ScrollingModule} from '@angular/cdk/scrolling';\nimport {CommonModule} from '@angular/common';\nimport {BlockableUI, PrimeTemplate, SharedModule, TreeDragDropService, TreeNode} from 'primeng/api';\nimport {Subscription} from 'rxjs';\nimport {ObjectUtils} from 'primeng/utils';\nimport {DomHandler} from 'primeng/dom';\nimport {RippleModule} from 'primeng/ripple';\n\n@Component({\n selector: 'app-treenode',\n template: `\n \n
  • \n
  • \n
    \n \n
    \n
    \n \n
    \n
    \n \n \n {{node.label}}\n \n \n \n \n
    \n
      \n \n
    \n
  • \n
  • \n \n \n \n \n \n \n \n \n
    \n \n \n \n \n \n \n \n \n \n
    \n
    \n
    \n \n \n \n {{node.label}}\n \n \n \n \n
    \n
    \n
    \n \n
    \n
    \n
    \n `,\n encapsulation: ViewEncapsulation.None\n})\n// tslint:disable-next-line:component-class-suffix\nexport class UITreeNode implements OnInit {\n\n static ICON_CLASS = 'p-treenode-icon ';\n\n @Input() rowNode: any;\n\n @Input() node: TreeNode;\n\n @Input() parentNode: TreeNode;\n\n @Input() root: boolean;\n\n @Input() index: number;\n\n @Input() firstChild: boolean;\n\n @Input() lastChild: boolean;\n\n @Input() level: number;\n\n @Input() indentation: number;\n\n tree: TreeComponent;\n\n constructor(@Inject(forwardRef(() => TreeComponent)) tree) {\n this.tree = tree as TreeComponent;\n }\n\n draghoverPrev: boolean;\n\n draghoverNext: boolean;\n\n draghoverNode: boolean;\n\n ngOnInit() {\n this.node.parent = this.parentNode;\n\n if (this.parentNode) {\n this.tree.syncNodeOption(this.node, this.tree.value, 'parent', this.tree.getNodeWithKey(this.parentNode.key, this.tree.value));\n }\n }\n\n getIcon() {\n let icon: string;\n\n if (this.node.icon) {\n icon = this.node.icon;\n } else {\n icon = this.node.expanded && this.node.children && this.node.children.length ? this.node.expandedIcon : this.node.collapsedIcon;\n }\n\n return UITreeNode.ICON_CLASS + ' ' + icon;\n }\n\n isLeaf() {\n return this.tree.isNodeLeaf(this.node);\n }\n\n toggle(event: Event) {\n if (this.node.expanded) {\n this.collapse(event);\n } else {\n this.expand(event);\n }\n }\n\n expand(event: Event) {\n this.node.expanded = true;\n if (this.tree.virtualScroll) {\n this.tree.updateSerializedValue();\n }\n this.tree.onNodeExpand.emit({originalEvent: event, node: this.node});\n }\n\n collapse(event: Event) {\n this.node.expanded = false;\n if (this.tree.virtualScroll) {\n this.tree.updateSerializedValue();\n }\n this.tree.onNodeCollapse.emit({originalEvent: event, node: this.node});\n }\n\n onNodeClick(event: MouseEvent) {\n this.tree.onNodeClick(event, this.node);\n }\n\n onNodeKeydown(event: KeyboardEvent) {\n if (event.which === 13) {\n this.tree.onNodeClick(event, this.node);\n }\n }\n\n onNodeTouchEnd() {\n this.tree.onNodeTouchEnd();\n }\n\n onNodeRightClick(event: MouseEvent) {\n this.tree.onNodeRightClick(event, this.node);\n }\n\n isSelected() {\n return this.tree.isSelected(this.node);\n }\n\n onDropPoint(event: Event, position: number) {\n event.preventDefault();\n const dragNode = this.tree.dragNode;\n const dragNodeIndex = this.tree.dragNodeIndex;\n const dragNodeScope = this.tree.dragNodeScope;\n const isValidDropPointIndex = this.tree.dragNodeTree === this.tree ? (position === 1 || dragNodeIndex !== this.index - 1) : true;\n\n if (this.tree.allowDrop(dragNode, this.node, dragNodeScope) && isValidDropPointIndex) {\n const dropParams = {...this.createDropPointEventMetadata(position)};\n\n if (this.tree.validateDrop) {\n this.tree.onNodeDrop.emit({\n originalEvent: event,\n dragNode,\n dropNode: this.node,\n dropIndex: this.index,\n accept: () => {\n this.processPointDrop(dropParams);\n }\n });\n } else {\n this.processPointDrop(dropParams);\n this.tree.onNodeDrop.emit({\n originalEvent: event,\n dragNode,\n dropNode: this.node,\n dropIndex: this.index\n });\n }\n }\n\n this.draghoverPrev = false;\n this.draghoverNext = false;\n }\n\n processPointDrop(event) {\n const newNodeList = event.dropNode.parent ? event.dropNode.parent.children : this.tree.value;\n event.dragNodeSubNodes.splice(event.dragNodeIndex, 1);\n let dropIndex = this.index;\n\n if (event.position < 0) {\n dropIndex = (event.dragNodeSubNodes === newNodeList) ? ((event.dragNodeIndex > event.index) ? event.index : event.index - 1) : event.index;\n newNodeList.splice(dropIndex, 0, event.dragNode);\n } else {\n dropIndex = newNodeList.length;\n newNodeList.push(event.dragNode);\n }\n\n this.tree.dragDropService.stopDrag({\n node: event.dragNode,\n subNodes: event.dropNode.parent ? event.dropNode.parent.children : this.tree.value,\n index: event.dragNodeIndex\n });\n }\n\n createDropPointEventMetadata(position) {\n return {\n dragNode: this.tree.dragNode,\n dragNodeIndex: this.tree.dragNodeIndex,\n dragNodeSubNodes: this.tree.dragNodeSubNodes,\n dropNode: this.node,\n index: this.index,\n position\n };\n }\n\n onDropPointDragOver(event) {\n event.dataTransfer.dropEffect = 'move';\n event.preventDefault();\n }\n\n onDropPointDragEnter(event: Event, position: number) {\n if (this.tree.allowDrop(this.tree.dragNode, this.node, this.tree.dragNodeScope)) {\n if (position < 0) {\n this.draghoverPrev = true;\n } else {\n this.draghoverNext = true;\n }\n }\n }\n\n onDropPointDragLeave(event: Event) {\n this.draghoverPrev = false;\n this.draghoverNext = false;\n }\n\n onDragStart(event) {\n if (this.tree.draggableNodes && this.node.draggable !== false) {\n event.dataTransfer.setData('text', 'data');\n\n this.tree.dragDropService.startDrag({\n tree: this,\n node: this.node,\n subNodes: this.node.parent ? this.node.parent.children : this.tree.value,\n index: this.index,\n scope: this.tree.draggableScope\n });\n } else {\n event.preventDefault();\n }\n }\n\n onDragStop(event) {\n this.tree.dragDropService.stopDrag({\n node: this.node,\n subNodes: this.node.parent ? this.node.parent.children : this.tree.value,\n index: this.index\n });\n }\n\n onDropNodeDragOver(event) {\n event.dataTransfer.dropEffect = 'move';\n if (this.tree.droppableNodes) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n\n onDropNode(event) {\n if (this.tree.droppableNodes && this.node.droppable !== false) {\n const dragNode = this.tree.dragNode;\n\n if (this.tree.allowDrop(dragNode, this.node, this.tree.dragNodeScope)) {\n const dropParams = {...this.createDropNodeEventMetadata()};\n\n if (this.tree.validateDrop) {\n this.tree.onNodeDrop.emit({\n originalEvent: event,\n dragNode,\n dropNode: this.node,\n index: this.index,\n accept: () => {\n this.processNodeDrop(dropParams);\n }\n });\n } else {\n this.processNodeDrop(dropParams);\n this.tree.onNodeDrop.emit({\n originalEvent: event,\n dragNode,\n dropNode: this.node,\n index: this.index\n });\n }\n }\n }\n\n event.preventDefault();\n event.stopPropagation();\n this.draghoverNode = false;\n }\n\n createDropNodeEventMetadata() {\n return {\n dragNode: this.tree.dragNode,\n dragNodeIndex: this.tree.dragNodeIndex,\n dragNodeSubNodes: this.tree.dragNodeSubNodes,\n dropNode: this.node\n };\n }\n\n processNodeDrop(event) {\n const dragNodeIndex = event.dragNodeIndex;\n event.dragNodeSubNodes.splice(dragNodeIndex, 1);\n\n if (event.dropNode.children) {\n event.dropNode.children.push(event.dragNode);\n } else {\n event.dropNode.children = [event.dragNode];\n }\n\n this.tree.dragDropService.stopDrag({\n node: event.dragNode,\n subNodes: event.dropNode.parent ? event.dropNode.parent.children : this.tree.value,\n index: dragNodeIndex\n });\n }\n\n onDropNodeDragEnter(event) {\n if (this.tree.droppableNodes && this.node.droppable !== false && this.tree.allowDrop(this.tree.dragNode, this.node, this.tree.dragNodeScope)) {\n this.draghoverNode = true;\n }\n }\n\n onDropNodeDragLeave(event) {\n if (this.tree.droppableNodes) {\n const rect = event.currentTarget.getBoundingClientRect();\n if (event.x > rect.left + rect.width || event.x < rect.left || event.y >= Math.floor(rect.top + rect.height) || event.y < rect.top) {\n this.draghoverNode = false;\n }\n }\n }\n\n onKeyDown(event: KeyboardEvent) {\n const nodeElement = (event.target as HTMLDivElement).parentElement.parentElement;\n\n if (nodeElement.nodeName !== 'P-TREENODE' || (this.tree.contextMenu && this.tree.contextMenu.containerViewChild.nativeElement.style.display === 'block')) {\n return;\n }\n\n switch (event.which) {\n // down arrow\n case 40:\n const listElement = (this.tree.droppableNodes) ? nodeElement.children[1].children[1] : nodeElement.children[0].children[1];\n if (listElement && listElement.children.length > 0) {\n this.focusNode(listElement.children[0]);\n } else {\n const nextNodeElement = nodeElement.nextElementSibling;\n if (nextNodeElement) {\n this.focusNode(nextNodeElement);\n } else {\n const nextSiblingAncestor = this.findNextSiblingOfAncestor(nodeElement);\n if (nextSiblingAncestor) {\n this.focusNode(nextSiblingAncestor);\n }\n }\n }\n\n event.preventDefault();\n break;\n\n // up arrow\n case 38:\n if (nodeElement.previousElementSibling) {\n this.focusNode(this.findLastVisibleDescendant(nodeElement.previousElementSibling));\n } else {\n const parentNodeElement = this.getParentNodeElement(nodeElement);\n if (parentNodeElement) {\n this.focusNode(parentNodeElement);\n }\n }\n\n event.preventDefault();\n break;\n\n // right arrow\n case 39:\n if (!this.node.expanded && !this.tree.isNodeLeaf(this.node)) {\n this.expand(event);\n }\n\n event.preventDefault();\n break;\n\n // left arrow\n case 37:\n if (this.node.expanded) {\n this.collapse(event);\n } else {\n const parentNodeElement = this.getParentNodeElement(nodeElement);\n if (parentNodeElement) {\n this.focusNode(parentNodeElement);\n }\n }\n\n event.preventDefault();\n break;\n\n // enter\n case 13:\n this.tree.onNodeClick(event, this.node);\n event.preventDefault();\n break;\n\n default:\n // no op\n break;\n }\n }\n\n findNextSiblingOfAncestor(nodeElement) {\n const parentNodeElement = this.getParentNodeElement(nodeElement);\n if (parentNodeElement) {\n if (parentNodeElement.nextElementSibling) {\n return parentNodeElement.nextElementSibling;\n } else {\n return this.findNextSiblingOfAncestor(parentNodeElement);\n }\n } else {\n return null;\n }\n }\n\n findLastVisibleDescendant(nodeElement) {\n const listElement = Array.from(nodeElement.children).find(el => DomHandler.hasClass(el, 'p-treenode')) as HTMLElement;\n const childrenListElement = listElement.children[1];\n if (childrenListElement && childrenListElement.children.length > 0) {\n const lastChildElement = childrenListElement.children[childrenListElement.children.length - 1];\n\n return this.findLastVisibleDescendant(lastChildElement);\n } else {\n return nodeElement;\n }\n }\n\n getParentNodeElement(nodeElement) {\n const parentNodeElement = nodeElement.parentElement.parentElement.parentElement;\n\n return parentNodeElement.tagName === 'P-TREENODE' ? parentNodeElement : null;\n }\n\n focusNode(element) {\n if (this.tree.droppableNodes) {\n element.children[1].children[0].focus();\n } else {\n element.children[0].children[0].focus();\n }\n }\n}\n\n@Component({\n selector: 'app-tree',\n template: `\n
    \n
    \n \n
    \n
    \n \n \n \n \n
    \n \n
    \n
      \n \n
    \n
    \n
    \n \n \n
      \n \n
    \n
    \n
    \n
    {{emptyMessage}}
    \n
    \n
    \n
    \n \n
    \n \n \n
    \n
    {{emptyMessage}}
    \n
    \n `,\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['./tree.component.scss']\n})\nexport class TreeComponent implements OnInit, AfterContentInit, OnChanges, OnDestroy, BlockableUI {\n\n constructor(public el: ElementRef, @Optional() public dragDropService: TreeDragDropService) {\n }\n\n get horizontal(): boolean {\n return this.layout === 'horizontal';\n }\n\n @Input() value: TreeNode[];\n\n @Input() selectionMode: string;\n\n @Input() selection: any;\n\n @Output() selectionChange: EventEmitter = new EventEmitter();\n\n @Output() onNodeSelect: EventEmitter = new EventEmitter();\n\n @Output() onNodeUnselect: EventEmitter = new EventEmitter();\n\n @Output() onNodeExpand: EventEmitter = new EventEmitter();\n\n @Output() onNodeCollapse: EventEmitter = new EventEmitter();\n\n @Output() onNodeContextMenuSelect: EventEmitter = new EventEmitter();\n\n @Output() onNodeDrop: EventEmitter = new EventEmitter();\n\n @Input() style: any;\n\n @Input() styleClass: string;\n\n @Input() contextMenu: any;\n\n @Input() layout = 'vertical';\n\n @Input() draggableScope: any;\n\n @Input() droppableScope: any;\n\n @Input() draggableNodes: boolean;\n\n @Input() droppableNodes: boolean;\n\n @Input() metaKeySelection = true;\n\n @Input() propagateSelectionUp = true;\n\n @Input() propagateSelectionDown = true;\n\n @Input() loading: boolean;\n\n @Input() loadingIcon = 'pi pi-spinner';\n\n @Input() emptyMessage = 'No records found';\n\n @Input() ariaLabel: string;\n\n @Input() ariaLabelledBy: string;\n\n @Input() validateDrop: boolean;\n\n @Input() customButtonsTemplate: TemplateRef;\n\n @Input() filter: boolean;\n\n @Input() filterBy = 'label';\n\n @Input() filterMode = 'lenient';\n\n @Input() filterPlaceholder: string;\n\n @Input() filterLocale: string;\n\n @Input() scrollHeight: string;\n\n @Input() virtualScroll: boolean;\n\n @Input() virtualNodeHeight: string;\n\n @Input() minBufferPx: number;\n\n @Input() maxBufferPx: number;\n\n @Input() indentation = 1.5;\n\n @Output() onFilter: EventEmitter = new EventEmitter();\n\n @ContentChildren(PrimeTemplate) templates: QueryList;\n\n @ViewChild(CdkVirtualScrollViewport) virtualScrollBody: CdkVirtualScrollViewport;\n\n serializedValue: any[];\n\n public templateMap: any;\n\n public nodeTouched: boolean;\n\n public dragNodeTree: TreeComponent;\n\n public dragNode: TreeNode;\n\n public dragNodeSubNodes: TreeNode[];\n\n public dragNodeIndex: number;\n\n public dragNodeScope: any;\n\n public dragHover: boolean;\n\n public dragStartSubscription: Subscription;\n\n public dragStopSubscription: Subscription;\n\n public isFiltered = false;\n\n public filteredNodes: TreeNode[];\n\n @ViewChild('filter') filterInput: ElementRef;\n\n @Input() trackBy = (index: number, item: any) => item;\n\n ngOnInit() {\n if (this.droppableNodes) {\n this.dragStartSubscription = this.dragDropService.dragStart$.subscribe(\n event => {\n this.dragNodeTree = event.tree;\n this.dragNode = event.node;\n this.dragNodeSubNodes = event.subNodes;\n this.dragNodeIndex = event.index;\n this.dragNodeScope = event.scope;\n });\n\n this.dragStopSubscription = this.dragDropService.dragStop$.subscribe(\n event => {\n this.dragNodeTree = null;\n this.dragNode = null;\n this.dragNodeSubNodes = null;\n this.dragNodeIndex = null;\n this.dragNodeScope = null;\n this.dragHover = false;\n });\n }\n }\n\n ngOnChanges(simpleChange: SimpleChanges) {\n if (simpleChange.value) {\n this.updateSerializedValue();\n }\n\n if (simpleChange.scrollHeight && this.virtualScrollBody) {\n this.virtualScrollBody.ngOnInit();\n }\n }\n\n ngAfterContentInit() {\n if (this.templates.length) {\n this.templateMap = {};\n }\n\n this.templates.forEach((item) => {\n this.templateMap[item.name] = item.template;\n });\n }\n\n updateSerializedValue() {\n this.serializedValue = [];\n this.serializeNodes(null, this.getRootNode(), 0, true);\n }\n\n serializeNodes(parent, nodes, level, visible) {\n if (nodes && nodes.length) {\n for (const node of nodes) {\n node.parent = parent;\n const rowNode = {\n node,\n parent,\n level,\n visible: visible && (parent ? parent.expanded : true)\n };\n this.serializedValue.push(rowNode);\n\n if (rowNode.visible && node.expanded) {\n this.serializeNodes(node, node.children, level + 1, rowNode.visible);\n }\n }\n }\n }\n\n onNodeClick(event, node: TreeNode) {\n const eventTarget = (event.target as Element);\n\n if (DomHandler.hasClass(eventTarget, 'p-tree-toggler') || DomHandler.hasClass(eventTarget, 'p-tree-toggler-icon')) {\n return;\n } else if (this.selectionMode) {\n if (node.selectable === false) {\n return;\n }\n\n if (this.hasFilteredNodes()) {\n node = this.getNodeWithKey(node.key, this.filteredNodes);\n\n if (!node) {\n return;\n }\n }\n\n const index = this.findIndexInSelection(node);\n const selected = (index >= 0);\n\n if (this.isCheckboxSelectionMode()) {\n if (selected) {\n if (this.propagateSelectionDown) {\n this.propagateDown(node, false);\n } else {\n this.selection = this.selection.filter((val, i) => i !== index);\n }\n\n if (this.propagateSelectionUp && node.parent) {\n this.propagateUp(node.parent, false);\n }\n\n this.selectionChange.emit(this.selection);\n this.onNodeUnselect.emit({originalEvent: event, node});\n } else {\n if (this.propagateSelectionDown) {\n this.propagateDown(node, true);\n } else {\n this.selection = [...this.selection || [], node];\n }\n\n if (this.propagateSelectionUp && node.parent) {\n this.propagateUp(node.parent, true);\n }\n\n this.selectionChange.emit(this.selection);\n this.onNodeSelect.emit({originalEvent: event, node});\n }\n } else {\n const metaSelection = this.nodeTouched ? false : this.metaKeySelection;\n\n if (metaSelection) {\n const metaKey = (event.metaKey || event.ctrlKey);\n\n if (selected && metaKey) {\n if (this.isSingleSelectionMode()) {\n this.selectionChange.emit(null);\n } else {\n this.selection = this.selection.filter((val, i) => i !== index);\n this.selectionChange.emit(this.selection);\n }\n\n this.onNodeUnselect.emit({originalEvent: event, node});\n } else {\n if (this.isSingleSelectionMode()) {\n this.selectionChange.emit(node);\n } else if (this.isMultipleSelectionMode()) {\n this.selection = (!metaKey) ? [] : this.selection || [];\n this.selection = [...this.selection, node];\n this.selectionChange.emit(this.selection);\n }\n\n this.onNodeSelect.emit({originalEvent: event, node});\n }\n } else {\n if (this.isSingleSelectionMode()) {\n if (selected) {\n this.selection = null;\n this.onNodeUnselect.emit({originalEvent: event, node});\n } else {\n this.selection = node;\n this.onNodeSelect.emit({originalEvent: event, node});\n }\n } else {\n if (selected) {\n this.selection = this.selection.filter((val, i) => i !== index);\n this.onNodeUnselect.emit({originalEvent: event, node});\n } else {\n this.selection = [...this.selection || [], node];\n this.onNodeSelect.emit({originalEvent: event, node});\n }\n }\n\n this.selectionChange.emit(this.selection);\n }\n }\n }\n\n this.nodeTouched = false;\n }\n\n onNodeTouchEnd() {\n this.nodeTouched = true;\n }\n\n onNodeRightClick(event: MouseEvent, node: TreeNode) {\n if (this.contextMenu) {\n const eventTarget = (event.target as Element);\n\n if (eventTarget.className && eventTarget.className.indexOf('p-tree-toggler') === 0) {\n return;\n } else {\n const index = this.findIndexInSelection(node);\n const selected = (index >= 0);\n\n if (!selected) {\n if (this.isSingleSelectionMode()) {\n this.selectionChange.emit(node);\n } else {\n this.selectionChange.emit([node]);\n }\n }\n\n this.contextMenu.show(event);\n this.onNodeContextMenuSelect.emit({originalEvent: event, node});\n }\n }\n }\n\n findIndexInSelection(node: TreeNode) {\n let index = -1;\n\n if (this.selectionMode && this.selection) {\n if (this.isSingleSelectionMode()) {\n const areNodesEqual = (this.selection.key && this.selection.key === node.key) || this.selection === node;\n index = areNodesEqual ? 0 : -1;\n } else {\n for (let i = 0; i < this.selection.length; i++) {\n const selectedNode = this.selection[i];\n const areNodesEqual = (selectedNode.key && selectedNode.key === node.key) || selectedNode === node;\n if (areNodesEqual) {\n index = i;\n break;\n }\n }\n }\n }\n\n return index;\n }\n\n syncNodeOption(node, parentNodes, option, value?: any) {\n // to synchronize the node option between the filtered nodes and the original nodes(this.value)\n const _node = this.hasFilteredNodes() ? this.getNodeWithKey(node.key, parentNodes) : null;\n if (_node) {\n _node[option] = value || node[option];\n }\n }\n\n hasFilteredNodes() {\n return this.filter && this.filteredNodes && this.filteredNodes.length;\n }\n\n getNodeWithKey(key: string, nodes: TreeNode[]) {\n for (const node of nodes) {\n if (node.key === key) {\n return node;\n }\n\n if (node.children) {\n const matchedNode = this.getNodeWithKey(key, node.children);\n if (matchedNode) {\n return matchedNode;\n }\n }\n }\n }\n\n propagateUp(node: TreeNode, select: boolean) {\n if (node.children && node.children.length) {\n let selectedCount = 0;\n let childPartialSelected = false;\n for (const child of node.children) {\n if (this.isSelected(child)) {\n selectedCount++;\n } else if (child.partialSelected) {\n childPartialSelected = true;\n }\n }\n\n if (select && selectedCount === node.children.length) {\n this.selection = [...this.selection || [], node];\n node.partialSelected = false;\n } else {\n if (!select) {\n const index = this.findIndexInSelection(node);\n if (index >= 0) {\n this.selection = this.selection.filter((val, i) => i !== index);\n }\n }\n\n if (childPartialSelected || selectedCount > 0 && selectedCount !== node.children.length) {\n node.partialSelected = true;\n } else {\n node.partialSelected = false;\n }\n }\n\n this.syncNodeOption(node, this.filteredNodes, 'partialSelected');\n }\n\n const parent = node.parent;\n if (parent) {\n this.propagateUp(parent, select);\n }\n }\n\n propagateDown(node: TreeNode, select: boolean) {\n const index = this.findIndexInSelection(node);\n\n if (select && index === -1) {\n this.selection = [...this.selection || [], node];\n } else if (!select && index > -1) {\n this.selection = this.selection.filter((val, i) => i !== index);\n }\n\n node.partialSelected = false;\n\n this.syncNodeOption(node, this.filteredNodes, 'partialSelected');\n\n if (node.children && node.children.length) {\n for (const child of node.children) {\n this.propagateDown(child, select);\n }\n }\n }\n\n isSelected(node: TreeNode) {\n return this.findIndexInSelection(node) !== -1;\n }\n\n isSingleSelectionMode() {\n return this.selectionMode && this.selectionMode === 'single';\n }\n\n isMultipleSelectionMode() {\n return this.selectionMode && this.selectionMode === 'multiple';\n }\n\n isCheckboxSelectionMode() {\n return this.selectionMode && this.selectionMode === 'checkbox';\n }\n\n isNodeLeaf(node) {\n return node.leaf === false ? false : !(node.children && node.children.length);\n }\n\n getRootNode() {\n return this.filteredNodes ? this.filteredNodes : this.value;\n }\n\n getTemplateForNode(node: TreeNode): TemplateRef {\n if (this.templateMap) {\n return node.type ? this.templateMap[node.type] : this.templateMap.default;\n } else {\n return null;\n }\n }\n\n onDragOver(event) {\n if (this.droppableNodes && (!this.value || this.value.length === 0)) {\n event.dataTransfer.dropEffect = 'move';\n event.preventDefault();\n }\n }\n\n onDrop(event) {\n if (this.droppableNodes && (!this.value || this.value.length === 0)) {\n event.preventDefault();\n const dragNode = this.dragNode;\n if (this.allowDrop(dragNode, null, this.dragNodeScope)) {\n const dragNodeIndex = this.dragNodeIndex;\n this.dragNodeSubNodes.splice(dragNodeIndex, 1);\n this.value = this.value || [];\n this.value.push(dragNode);\n\n this.dragDropService.stopDrag({\n node: dragNode\n });\n }\n }\n }\n\n onDragEnter(event) {\n if (this.droppableNodes && this.allowDrop(this.dragNode, null, this.dragNodeScope)) {\n this.dragHover = true;\n }\n }\n\n onDragLeave(event) {\n if (this.droppableNodes) {\n const rect = event.currentTarget.getBoundingClientRect();\n if (event.x > rect.left + rect.width || event.x < rect.left || event.y > rect.top + rect.height || event.y < rect.top) {\n this.dragHover = false;\n }\n }\n }\n\n allowDrop(dragNode: TreeNode, dropNode: TreeNode, dragNodeScope: any): boolean {\n if (!dragNode) {\n // prevent random html elements to be dragged\n return false;\n } else if (this.isValidDragScope(dragNodeScope)) {\n let allow = true;\n if (dropNode) {\n if (dragNode === dropNode) {\n allow = false;\n } else {\n let parent = dropNode.parent;\n while (parent !== null) {\n if (parent === dragNode) {\n allow = false;\n break;\n }\n parent = parent.parent;\n }\n }\n }\n\n return allow;\n } else {\n return false;\n }\n }\n\n isValidDragScope(dragScope: any): boolean {\n const dropScope = this.droppableScope;\n\n if (dropScope) {\n if (typeof dropScope === 'string') {\n if (typeof dragScope === 'string') {\n return dropScope === dragScope;\n } else if (dragScope instanceof Array) {\n return (dragScope as Array).indexOf(dropScope) !== -1;\n }\n } else if (dropScope instanceof Array) {\n if (typeof dragScope === 'string') {\n return (dropScope as Array).indexOf(dragScope) !== -1;\n } else if (dragScope instanceof Array) {\n for (const s of dropScope) {\n for (const ds of dragScope) {\n if (s === ds) {\n return true;\n }\n }\n }\n }\n }\n return false;\n } else {\n return true;\n }\n }\n\n _filter(event) {\n const filterValue = event.target.value;\n if (filterValue === '') {\n this.filteredNodes = null;\n } else {\n this.isFiltered = true;\n this.filteredNodes = [];\n const searchFields: string[] = this.filterBy.split(',');\n const filterText = ObjectUtils.removeAccents(filterValue).toLocaleLowerCase(this.filterLocale);\n const isStrictMode = this.filterMode === 'strict';\n for (const node of this.value) {\n const copyNode = {...node};\n const paramsWithoutNode = {searchFields, filterText, isStrictMode};\n if ((isStrictMode && (this.findFilteredNodes(copyNode, paramsWithoutNode) || this.isFilterMatched(copyNode, paramsWithoutNode))) ||\n (!isStrictMode && (this.isFilterMatched(copyNode, paramsWithoutNode) || this.findFilteredNodes(copyNode, paramsWithoutNode)))) {\n this.filteredNodes.push(copyNode);\n }\n }\n }\n\n this.updateSerializedValue();\n this.onFilter.emit({\n filter: filterValue,\n filteredValue: this.filteredNodes\n });\n }\n\n findFilteredNodes(node, paramsWithoutNode) {\n if (node) {\n let matched = false;\n if (node.children) {\n const childNodes = [...node.children];\n node.children = [];\n for (const childNode of childNodes) {\n const copyChildNode = {...childNode};\n if (this.isFilterMatched(copyChildNode, paramsWithoutNode)) {\n matched = true;\n node.children.push(copyChildNode);\n }\n }\n }\n\n if (matched) {\n node.expanded = true;\n return true;\n }\n }\n }\n\n isFilterMatched(node, {searchFields, filterText, isStrictMode}) {\n let matched = false;\n for (const field of searchFields) {\n const fieldValue = ObjectUtils.removeAccents(String(ObjectUtils.resolveFieldData(node, field))).toLocaleLowerCase(this.filterLocale);\n if (fieldValue.indexOf(filterText) > -1) {\n matched = true;\n }\n }\n\n if (!matched || (isStrictMode && !this.isNodeLeaf(node))) {\n matched = this.findFilteredNodes(node, {searchFields, filterText, isStrictMode}) || matched;\n }\n\n return matched;\n }\n\n onResetFilter() {\n this.filteredNodes = null;\n this.filterInput.nativeElement.value = '';\n this.isFiltered = false;\n this.onFilter.emit(null);\n }\n\n getBlockableElement(): HTMLElement {\n return this.el.nativeElement.children[0];\n }\n\n ngOnDestroy() {\n if (this.dragStartSubscription) {\n this.dragStartSubscription.unsubscribe();\n }\n\n if (this.dragStopSubscription) {\n this.dragStopSubscription.unsubscribe();\n }\n }\n}\n\n@NgModule({\n imports: [CommonModule, ScrollingModule, RippleModule],\n exports: [TreeComponent, SharedModule, ScrollingModule],\n declarations: [TreeComponent, UITreeNode]\n})\nexport class TreeModule {\n}\n","import {Component, OnInit} from '@angular/core';\nimport {ActivatedRoute, Router} from \"@angular/router\";\n\n@Component({\n selector: 'app-failure-screen',\n templateUrl: './failure-screen.component.html',\n styleUrls: ['./failure-screen.component.scss']\n})\nexport class FailureScreenComponent implements OnInit {\n\n constructor(private router: Router) {\n }\n\n ngOnInit(): void {\n }\n\n refresh() {\n this.router.navigate(['/']).then(()=>window.location.reload());\n }\n}\n","\n\n
    \n
    \n
    \n \n
    \n
    Echec de connexion.\n Si le problème devait persister, merci de\n contacter le support Applicatif (support@kordis.fr)\n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n\n","import {AfterViewInit, Component, OnInit, ViewChild} from '@angular/core';\nimport {environment} from '../environments/environment';\n\nimport {TabLayoutComponent} from './components/tab-layout/tab-layout.component';\nimport {VerticalMenuComponent} from './components/vertical-menu/vertical-menu.component';\nimport {MainLayoutComponent} from './components/main-layout/main-layout.component';\n\nimport {AuthenticatedUserService} from './services/authenticated-user.service';\nimport {ReloadService} from './services/reload.service';\nimport {BaseService} from './services/base.service';\n\nimport {Linked} from './models/linked';\nimport {PagesService} from './services/pages.service';\nimport {LocalStorageService} from './services/local-storage.service';\nimport {ModuleDTO} from './models/interfaces/module-dto';\nimport {UserPreferencesService} from './services/user-preferences.service';\nimport {MenuDTO} from './models/interfaces/menu-dto';\nimport {UserEntryPreferenceDTO} from './models/interfaces/user-entry-preference-dto';\nimport {Subject} from 'rxjs';\nimport {ErrorService} from './services/error.service';\nimport {UserProfile} from './models/user-profile.model';\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./styles/icons.scss', './app.component.scss']\n})\nexport class AppComponent implements OnInit, AfterViewInit {\n\n QUERY_ENTRY_TYPE_ID = 2;\n REPORT_ENTRY_TYPE_ID = 3;\n\n @ViewChild('tabLayout') tabLayout: TabLayoutComponent;\n @ViewChild('verticalMenu') verticalMenu: VerticalMenuComponent;\n @ViewChild('mainLayout') mainLayout: MainLayoutComponent;\n\n loadingApp = true;\n isMenuLoaded = false;\n title = 'Kordis';\n defaultHelp = 'Bienvenue dans le volet d\\'aide de Kordis.\\n\\n' +\n 'En fonction de l\\'interface affichée, vous trouverez ici des informations pour vous guider dans l\\'utilisation de l\\'application.';\n\n //#region errorDialog\n isErrorDialogDisplayed = false;\n mainErrorMessage = '';\n mainErrorTitle = '';\n userProfile: UserProfile;\n //#endregion\n\n currentHelp = {value: this.defaultHelp};\n\n //#endregion\n\n menuElements: ModuleDTO[];\n private userPreferences = [];\n\n userPreferencesChanged: Subject = this.userPreferencesService.userPreferencesChanged;\n\n\n constructor(private authenticatedUserService: AuthenticatedUserService,\n private errorService: ErrorService,\n private pagesService: PagesService,\n private baseService: BaseService,\n private reloadService: ReloadService,\n private userPreferencesService: UserPreferencesService) {\n\n this.userPreferencesChanged.subscribe((value) => {\n if (this.menuElements) {\n this.updateEntriesPreferences();\n }\n\n this.errorService.isErrorDialogVisible.subscribe(error => {\n this.mainErrorMessage = error.message;\n this.mainErrorTitle = error.header;\n this.isErrorDialogDisplayed = error.is_visible;\n });\n });\n\n if (this.authenticatedUserService.isAuthenticated()) {\n setTimeout(() => {\n this.baseService.get(environment.servicesUrl + '/me')\n .then((user: Linked) => {\n this.baseService.get(`${environment.servicesUrl}/me/profile`)\n .then((profile: UserProfile) => {\n localStorage.setItem('kordisProfile', JSON.stringify(profile));\n this.userProfile = profile;\n })\n .catch(console.error); // TODO : la récupération du profile génère parfois une erreur, dans l'attente, laisser commenter la ligne du dessous.\n // .catch(error => this.errorService.showError(error));\n })\n .catch(() => this.disconnectUser());\n });\n } else {\n this.authenticatedUserService.redirectToAuthentication();\n }\n\n document.body.style.zoom = '80%';\n\n this.reloadService.getObservedLayoutsShouldRefresh().subscribe((v) => {\n const helpDisplay = v.find(o => o.id === 'helpDisplay');\n const smallMenuDisplay = v.find(o => o.id === 'smallMenuDisplay');\n\n if (helpDisplay !== null) {\n this.mainLayout.changeRightAsideVisibility((helpDisplay.value.id === 2));\n }\n\n if (smallMenuDisplay !== null) {\n this.verticalMenu.isMenuCollapsed = (smallMenuDisplay.value.id === 2);\n }\n });\n\n }\n\n ngOnInit(): void {\n this.getApplicationMenu();\n // On vérifie la dernière version de l'app qui s'est exécuté sur le client. Sur une mise à jour a été faite, on vide le cache client.\n // On garde intacte les prefs utilisateur\n LocalStorageService.isAppUpdated()\n .then(updated => {\n if (updated) {\n LocalStorageService.cleanCache();\n }\n }).then(() => {\n LocalStorageService.updateCachedVersion();\n });\n }\n\n onTabSelected(event: any): void {\n if (event === null) {\n this.currentHelp.value = this.defaultHelp;\n } else {\n this.currentHelp.value = event;\n }\n }\n\n ngAfterViewInit(): void {\n }\n\n disconnectUser(): void {\n this.authenticatedUserService.logout();\n }\n\n private getApplicationMenu(): void {\n this.userPreferencesService.loadUserPreferences()\n .then(() => this.getEntries())\n .catch(error => this.errorService.showError(error));\n }\n\n\n private adaptMenu(menu: MenuDTO, userEntryPreference: UserEntryPreferenceDTO[]): void {\n menu.items.forEach(module => {\n\n module.items.forEach(category => {\n\n if (category.items) {\n\n category.items.forEach(entryType => {\n\n entryType.items.forEach(entry => {\n if (entry.page_id) {\n entry[`pageId`] = entry.page_id;\n entry[`command`] = () => {\n if (entryType.entry_type_id === this.QUERY_ENTRY_TYPE_ID) {\n this.tabLayout.onAddTabWithDataAndHeader(PagesService.QUERY, entry, entry.label);\n } else if (entryType.entry_type_id === this.REPORT_ENTRY_TYPE_ID) {\n this.tabLayout.onAddTabWithDataAndHeader(PagesService.REPORT, entry, entry.label);\n } else {\n this.tabLayout.onAddTab(entry.page_id);\n }\n if (userEntryPreference.map(preference => preference.entry_id).includes(entry.entry_id)) {\n entry.is_favorite = true;\n }\n };\n }\n });\n });\n }\n });\n });\n }\n\n private getEntries(): void {\n this.pagesService.getMenuElements()\n .then(menu => {\n this.adaptMenu(menu, this.userPreferencesService.userPreferences);\n this.menuElements = menu.items;\n this.isMenuLoaded = true;\n this.loadingApp = false;\n this.updateEntriesPreferences();\n }).catch(error => this.errorService.showError(error));\n }\n\n private updateEntriesPreferences(): void {\n this.menuElements.forEach(module => {\n\n module.items.forEach(category => {\n\n if (category.items) {\n\n category.items.forEach(entryType => {\n\n entryType.items.forEach(entry => {\n if (entry.page_id) {\n\n entry.is_favorite = this.userPreferencesService.userPreferences.map(preference => preference.entry_id).includes(entry.entry_id);\n }\n });\n });\n }\n });\n });\n }\n}\n","\n\n
    \n\n \n \n \n \n \n \n
    \n \n
    \n
    \n \n
    \n
    \n\n
    \n
    \n
    \n\n
    \n\n\n\n\n\n\n\n\n\n \n
    \n
    {{message.summary}}
    \n

    \n
    \n
    \n
    \n","import {Component, OnInit, ViewChild} from '@angular/core';\nimport {Page} from '../../annotations/page.annotation';\nimport {BasicGridComponent} from '../grid/basic-grid/basic-grid.component';\nimport {PagesService} from '../../services/pages.service';\nimport {EntryDTO} from '../../models/interfaces/entry-dto';\n\nimport {environment} from '../../../environments/environment';\n\nimport {AbstractRequestComponent} from '../../interfaces/abstract-request.component';\nimport {BaseService} from '../../services/base.service';\nimport {MessageService} from 'primeng/api';\nimport {FieldValue} from '../../models/query/field-value';\nimport {TableColumn} from '../../models/table-column';\n\n@Component({\n selector: 'app-query',\n templateUrl: './query.component.html',\n styleUrls: ['./query.component.scss']\n})\n@Page(PagesService.QUERY, 'Composant des requêtes', undefined, { icon: 'pi pi-users' })\nexport class QueryComponent extends AbstractRequestComponent implements OnInit {\n\n @ViewChild('grid') grid: BasicGridComponent;\n\n constructor(public baseService: BaseService,\n public messageService: MessageService) {\n super(baseService, messageService);\n }\n\n\n private entryValue: EntryDTO;\n\n get entry(): EntryDTO {\n return this.entryValue;\n }\n\n set entry(value) {\n this.entryValue = value;\n this.initQuery();\n }\n\n\n\n ngOnInit(): void {\n this.entry = this.extraData;\n }\n\n getHelp(): string {\n return 'Cette interface permet de réaliser une extraction des données de notre système (requête).' +\n '\\n \\n' +\n 'Après paramètrage si nécessaire, il vous suffit de cliquer sur le bouton \"Exécuter\" pour afficher les données.';\n }\n\n initQuery() {\n this.isReady = false;\n this.baseService.getJson(`../assets/documents/queries/${this.entry.entry_id}.json`)\n .then(data => {\n this.requestData = data;\n this.requestData.columns = this.requestData.columns.map(column => new TableColumn(column.field, column.header, column.width, column.type, column.readonly, column.sortable, column.filterType) );\n this.setDefaultDataKeyIfNotExist();\n this.initSelectedParams();\n this.isReady = true;\n }).catch(() => {\n this.messageService.add({severity: 'error', summary: 'Cette requête n\\'est pas disponible.'});\n if (environment.production) {\n this.tabLayout.closeCurrentTab();\n } else {\n this.baseService.getJson(`../assets/documents/queries/query_sample.json`)\n .then(data => {\n this.requestData = data;\n this.initSelectedParams();\n this.isReady = true;\n });\n }\n });\n }\n\n private setDefaultDataKeyIfNotExist() {\n if (this.requestData != null && (this.requestData.dataKey == null || this.requestData.dataKey.length <= 0)) {\n this.requestData.dataKey = this.ROW_INDEX;\n }\n }\n\n onUpdateDynamicParam(fieldValue: FieldValue) {\n this.updateSelectedValueParam(fieldValue.field, fieldValue.value, false);\n }\n}\n","
    \n
    \n
    \n \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n \n
    \n
    \n
    \n\n\n\n","import { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Message } from 'primeng/api';\nimport { AuthenticatedUserService } from '../../../services/authenticated-user.service';\n\n@Component({\n selector: 'app-login-success',\n templateUrl: './login-success.component.html',\n styleUrls: ['./login-success.component.scss']\n})\nexport class LoginSuccessComponent implements OnInit {\n\n msgs: Message[] = [];\n\n constructor(\n private router: Router,\n private authenticatedUserService: AuthenticatedUserService\n ) { }\n\n ngOnInit() {\n this.authenticatedUserService.saveAuthenticatedUser(window.location.href);\n\n // TODO enregistrer les privilèges\n // this.authenticatedUserService.loadPrivileges().then(\n // (privileges) => {\n this.authenticatedUserService.loadProfile()\n .then((profile) => {\n this.router.navigate(['/']);\n }\n // }\n ).catch((error) => {\n // TODO affichage du bon écran\n this.msgs.push({\n severity: 'error',\n summary: 'Erreur de connexion',\n detail: 'Erreur de récupération de profil, merci de vous reconnecter'});\n this.authenticatedUserService.removeToken();\n this.authenticatedUserService.revokeToken();\n window.location.href = '/';\n });\n }\n}\n","import {Injectable} from '@angular/core';\nimport {BaseService} from './base.service';\nimport {UrlFactoryService} from '../factories/url-factory.service';\nimport {CancelablePromise} from '../common/promises/cancelable-promise';\nimport {Structure} from '../models/structure/structure';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class StructureService {\n\n constructor(private baseService: BaseService,\n private urlFactory: UrlFactoryService) { }\n\n getStructures(): CancelablePromise {\n return this.baseService.getAll(this.urlFactory.getStructuresUrl());\n }\n\n getStructuresByUid(): CancelablePromise {\n return this.baseService.getAll(this.urlFactory.getStructuresByUidUrl());\n }\n}\n","import {Injectable} from '@angular/core';\nimport {BaseService} from './base.service';\nimport {UrlFactoryService} from '../factories/url-factory.service';\nimport {ModuleDTO} from '../models/interfaces/module-dto';\nimport {CategoryDTO} from '../models/interfaces/category-dto';\nimport {EntryDTO} from '../models/interfaces/entry-dto';\nimport {MenuDTO} from '../models/interfaces/menu-dto';\nimport {CancelablePromise} from '../common/promises/cancelable-promise';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class InterfacesService {\n\n constructor(private baseService: BaseService,\n private urlFactory: UrlFactoryService) { }\n\n getAllModules(): CancelablePromise {\n return this.baseService.getAll(this.urlFactory.getAllModulesUrl());\n }\n\n getAllCategories(): CancelablePromise {\n return this.baseService.getAll(this.urlFactory.getAllCategoriesUrl());\n }\n\n getAllCategoriesByModule(moduleId: number): CancelablePromise {\n return this.baseService.getAll(this.urlFactory.getAllCategoriesByModuleUrl(moduleId));\n }\n\n getAllEntries(): CancelablePromise {\n return this.baseService.getAll(this.urlFactory.getAllEntriesUrl());\n }\n\n getAllEntriesByCategory(categoryId: number): CancelablePromise {\n return this.baseService.getAll(this.urlFactory.getAllEntriesByCategoryUrl(categoryId));\n }\n\n getMenu(applicationId: number): CancelablePromise {\n return this.baseService.get(this.urlFactory.getMenuUrl(applicationId));\n }\n\n}\n","import {Injectable} from '@angular/core';\nimport {SchoolDTO} from '../models/schools/school-dto';\nimport {SchoolYearSemesterValues} from '../models/school-year-semester-values';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CacheService {\n\n private MAIN_FILTERS_KEY = 'kordisMainFilters';\n private USER_YEARS_KEY = 'kordisUserYears';\n private USER_SCHOOLS_KEY = 'kordisUserSchools';\n\n mMainFilters: SchoolYearSemesterValues;\n mUserYears: number[];\n mUserSchools: SchoolDTO[];\n\n constructor() { }\n\n //region mainFilters\n getMainFilters(): Promise {\n return new Promise((resolve => {\n if (!this.mMainFilters) {\n const mainFilters = localStorage.getItem(this.MAIN_FILTERS_KEY);\n this.mMainFilters = JSON.parse(mainFilters) ?? {selectedYear: -1, selectedSchoolId: -1, selectedSemesterId: -1};\n }\n resolve(this.mMainFilters);\n }));\n }\n\n setMainFilters(mainFilters: SchoolYearSemesterValues) {\n this.mMainFilters = mainFilters;\n localStorage.setItem(this.MAIN_FILTERS_KEY, JSON.stringify(mainFilters));\n }\n //endregion\n\n //region userYears\n getUserYears(): Promise {\n return new Promise((resolve => {\n if (!this.mUserYears) {\n const years = localStorage.getItem(this.USER_YEARS_KEY);\n this.mUserYears = JSON.parse(years) ?? [];\n }\n resolve(this.mUserYears);\n }));\n }\n\n setUserYears(years: number[]) {\n this.mUserYears = years;\n localStorage.setItem(this.USER_YEARS_KEY, JSON.stringify(years));\n }\n //endregion\n\n //region userSchools\n getUserSchools(): Promise {\n return new Promise((resolve => {\n if (!this.mUserSchools) {\n const schools = localStorage.getItem(this.USER_SCHOOLS_KEY);\n this.mUserSchools = JSON.parse(schools) ?? [];\n }\n resolve(this.mUserSchools);\n }));\n }\n\n setUserSchools(schools: SchoolDTO[]) {\n this.mUserSchools = schools;\n localStorage.setItem(this.USER_SCHOOLS_KEY, JSON.stringify(schools));\n }\n //endregion\n}\n","export enum ColumnSizeEnum {\n EXTRA_SMALL_30_COLUMN_SIZE = '30px',\n EXTRA_SMALL_35_COLUMN_SIZE = '35px',\n EXTRA_SMALL_COLUMN_SIZE = '40px',\n VERY_SMALL_45_COLUMN_SIZE = '45px',\n VERY_SMALL_50_COLUMN_SIZE = '50px',\n VERY_SMALL_60_COLUMN_SIZE = '60px',\n VERY_SMALL_COLUMN_SIZE = '80px',\n SMALL_COLUMN_SIZE = '120px',\n MEDIUM_COLUMN_SIZE = '160px',\n LARGE_COLUMN_SIZE = '200px',\n VERY_LARGE_COLUMN_SIZE = '240px',\n VERY_LARGE_300_COLUMN_SIZE = '300px',\n EXTRA_LARGE_COLUMN_SIZE = '520px',\n DATE_WITHOUT_TIME_COLUMN_SIZE = EXTRA_SMALL_35_COLUMN_SIZE,\n\n}\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n forwardRef,\n ChangeDetectorRef,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n NgModule\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\nimport {CommonModule} from '@angular/common';\n\nexport const TRISTATECHECKBOX_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TristateCheckboxComponent),\n multi: true\n};\n\n@Component({\n selector: 'app-tristate-checkbox',\n template: `\n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n `,\n providers: [TRISTATECHECKBOX_VALUE_ACCESSOR],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class TristateCheckboxComponent implements ControlValueAccessor {\n\n constructor(private cd: ChangeDetectorRef) {}\n\n @Input() disabled: boolean;\n\n @Input() name: string;\n\n @Input() ariaLabelledBy: string;\n\n @Input() tabindex: number;\n\n @Input() inputId: string;\n\n @Input() style: any;\n\n @Input() styleClass: string;\n\n @Input() label: string;\n\n @Input() readonly: boolean;\n\n // tslint:disable-next-line:no-output-on-prefix\n @Output() onChange: EventEmitter = new EventEmitter();\n\n focused: boolean;\n\n value: any;\n\n onModelChange = (value: any) => {};\n\n onModelTouched = () => {};\n\n onClick(event: Event, input: HTMLInputElement) {\n if (!this.disabled && !this.readonly) {\n this.toggle(event);\n this.focused = true;\n input.focus();\n }\n }\n\n onKeydown(event: KeyboardEvent) {\n if (event.keyCode === 32) {\n event.preventDefault();\n }\n }\n\n onKeyup(event: KeyboardEvent) {\n if (event.keyCode === 32 && !this.readonly) {\n this.toggle(event);\n event.preventDefault();\n }\n }\n\n toggle(event: Event) {\n if (this.value === null || this.value === undefined) {\n this.value = true;\n }\n else if (this.value === true) {\n this.value = false;\n }\n else if (this.value === false) {\n this.value = null;\n }\n\n this.onModelChange(this.value);\n this.onChange.emit({\n originalEvent: event,\n value: this.value\n });\n }\n\n onFocus() {\n this.focused = true;\n }\n\n onBlur() {\n this.focused = false;\n this.onModelTouched();\n }\n\n registerOnChange(fn): void {\n this.onModelChange = fn;\n }\n\n registerOnTouched(fn): void {\n this.onModelTouched = fn;\n }\n\n writeValue(value: any): void {\n this.value = value;\n this.cd.markForCheck();\n }\n\n setDisabledState(disabled: boolean): void {\n this.disabled = disabled;\n this.cd.markForCheck();\n }\n}\n\n@NgModule({\n imports: [CommonModule],\n exports: [TristateCheckboxComponent],\n declarations: [TristateCheckboxComponent]\n})\nexport class TristateCheckboxModule { }\n","import {Certifier} from './certifier';\nimport {CertifierDTO} from './certifierDTO';\n\nexport class CertifierAdapter{\n public static adapt(dto: CertifierDTO): Certifier {\n return {\n certifier_id: dto.certifier_id,\n certifier_name: dto.certifier_name,\n is_structure: dto.is_structure\n } as Certifier;\n }\n}\n","import {Component, OnInit, Output, Input, EventEmitter, ViewChild, TemplateRef} from '@angular/core';\nimport {AutoComplete} from 'primeng/autocomplete';\n\n@Component({\n selector: 'app-search-box',\n templateUrl: './search-box.component.html',\n styleUrls: ['./search-box.component.scss']\n})\nexport class SearchBoxComponent implements OnInit {\n\n //#region child\n @ViewChild('autoComplete') autoComplete: AutoComplete;\n //#endregion\n\n //#region template\n @Input() rowTemplate: TemplateRef;\n //#endregion\n\n //#region emitters\n @Output() dataSelected = new EventEmitter();\n @Output() filterChanged = new EventEmitter();\n //#endregion\n\n dataValues: any[] = [];\n //#region input\n @Input() width = 300;\n @Input() fieldName = 'title';\n @Input() placeHolder = '';\n @Input()\n get data() { return this.dataValues; }\n set data(val) {\n this.dataValues = val;\n this.suggestions = [...this.suggestions];\n }\n //#endregion\n\n mainDataInput: any;\n textFilter = '';\n dropdownEnable = false;\n suggestions = [];\n\n constructor() { }\n\n ngOnInit() {\n }\n\n onSearchData() {\n this.updateDropdownVisibility(true);\n this.filterChanged.emit(this.textFilter);\n }\n\n onSelectData(selectedData: any) {\n this.updateDropdownVisibility(false);\n this.dataSelected.emit(selectedData);\n this.textFilter = selectedData[this.fieldName];\n }\n\n displayDropdown() {\n return this.textFilter.length > 1 && this.dropdownEnable;\n }\n\n updateDropdownVisibility(state: boolean) {\n this.dropdownEnable = state;\n }\n}\n","
    \n \n \n\n \n
    \n \n \n \n \n \n \n \n \n \n
    \n
    \n\n\n {{ rowData[fieldName]}}\n\n","import {Injectable} from '@angular/core';\nimport {environment} from '../../environments/environment';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UrlFactoryService {\n\n constructor() { }\n\n //#region Profile\n getProfileUrl(): string {\n return environment.servicesUrl + '/me/profile';\n }\n\n getPrivilegesUrl(): string {\n return environment.servicesUrl + '/privileges?filter=kordis.';\n }\n\n getFavoritesEntriesUrl(applicationId: number): string {\n return environment.servicesUrl + '/interfaces/menu/favorites/' + applicationId;\n }\n\n\n addFavoriteEntryUrl(entryId: number): string {\n return environment.servicesUrl + '/interfaces/menu/favorites/' + entryId;\n }\n\n deleteFavoriteEntryUrl(entryId: number): string {\n return environment.servicesUrl + '/interfaces/menu/favorites/' + entryId;\n }\n //#endregion\n\n //#region Interfaces\n getAllModulesUrl(): string {\n return environment.servicesUrl + '/interfaces/modules';\n }\n\n getAllCategoriesUrl(): string {\n return environment.servicesUrl + '/interfaces/categories';\n }\n\n getAllCategoriesByModuleUrl(moduleId: number): string {\n return environment.servicesUrl + '/interfaces/categories/module/' + moduleId;\n }\n\n getAllEntriesUrl(): string {\n return environment.servicesUrl + '/interfaces/entries';\n }\n\n getAllEntriesByCategoryUrl(categoryId: number): string {\n return environment.servicesUrl + '/interfaces/entries/category/' + categoryId;\n }\n\n getMenuUrl(applicationId: number): string {\n return environment.servicesUrl + '/interfaces/menu/' + applicationId;\n }\n //#endregion\n\n //#region StudentsGroups\n getStudentsGroupsForYearAndSchoolIdsUrl(isClass: boolean, schoolIds: string): string {\n return environment.servicesUrl + '/studentsgroups/{year}?isclass=' + isClass.toString() + '&schools=' + schoolIds + '&includeDesisted=false';\n }\n //#endregion\n\n //#region Rights\n getRightsUrl(): string {\n return environment.servicesUrl + '/rights';\n }\n\n getRightsActivationUrl(): string {\n return environment.servicesUrl + '/rights/activate';\n }\n //#endregion\n\n //#region RightGroups\n getAllRightsGroupsUrl(): string {\n return environment.servicesUrl + '/rightsgroups';\n }\n\n getCurrentRightsGroupUrl(): string {\n return environment.servicesUrl + '/rightsgroups/mine';\n }\n\n getMembersFromMyRightsGroupsUrl(): string {\n return environment.servicesUrl + '/rightsgroups/mine/members';\n }\n\n getRightsGroupChildrenUrl(rightsGroupId: number): string {\n return environment.servicesUrl + '/rightsgroups/' + rightsGroupId + '/children';\n }\n\n getRightsGroupByRightUrl(rightId: number): string {\n return environment.servicesUrl + '/rights/' + rightId + '/rightsgroups';\n }\n //#endregion\n\n getRightsGroupRightsUrl(rightsGroupId: number): string {\n return environment.servicesUrl + '/rightsgroups/' + rightsGroupId + '/rights';\n }\n\n\n //#region RightGroup members\n getRightsGroupMembersUrl(rightsGroupId: number): string {\n return environment.servicesUrl + '/rightsgroups/' + rightsGroupId + '/members';\n }\n //#endregion\n\n //#region Rights families\n getRightsFamiliesUrl(): string {\n return environment.servicesUrl + '/rights/families';\n }\n\n getAllRightsFamiliesUrl(): string {\n return environment.servicesUrl + '/rights/families/all';\n }\n //#endregion\n\n //#region Rights types\n getRightsTypesUrl(): string {\n return environment.servicesUrl + '/rights/types';\n }\n //#endregion\n\n //#region users\n getAdministrativesByNameUrl(chunk: string): string {\n return environment.servicesUrl + '/administrations/search/' + chunk;\n }\n\n getRightsGroupsByNameUrl(chunk: string): string {\n return environment.servicesUrl + '/rightsgroups/search/' + chunk;\n }\n\n getUserRightsUrl(uid: number): string {\n return environment.servicesUrl + '/administrations/' + uid + '/rights';\n }\n\n getRightsGroupsFromMemberUrl(uid: number): string {\n return environment.servicesUrl + '/administrations/' + uid + '/rightsgroups';\n }\n //#endregion\n\n getRightsGroupUrl(rightsGroupId: number): string {\n return environment.servicesUrl + '/rightsgroups/' + rightsGroupId;\n }\n\n //#region Logs\n getRightsLogsUrl(rightsGroupId: number, rightId: number): string {\n return environment.servicesUrl + '/rightsgroups/' + rightsGroupId + '/rights/' + rightId + '/logs';\n }\n\n getRightsLogsByUserUrl(rightId: number, userId: number): string {\n return environment.servicesUrl + '/rights/' + rightId + '/member/' + userId + '/logs';\n }\n\n getRightsGroupMemberLogsUrl(rightsGroupId: number): string {\n return environment.servicesUrl + '/rightsgroups/' + rightsGroupId + '/members/logs';\n }\n //#endregion\n\n //#region diplomas\n getSchoolsDiplomasUrl(): string {\n return environment.servicesUrl + '/schoolsDiplomas';\n }\n\n getSchoolsDiplomasWithCertifierUrl() {\n return environment.servicesUrl + '/schoolsDiplomas/withStructures';\n }\n\n getStructuresDiplomasByUserUrl(): string {\n return environment.servicesUrl + '/schoolsDiplomas/user';\n }\n\n getSchoolsDiplomasTypesUrl(): string {\n return environment.servicesUrl + '/schoolsDiplomas/types';\n }\n\n getGradesUrl(): string {\n return environment.servicesUrl + '/schoolsDiplomas/grades';\n }\n\n getStructureDiplomaBlocksUrl(): string {\n return environment.servicesUrl + '/structuresDiplomaBlocks';\n }\n //#endregion\n\n //#region structure\n getStructuresUrl(): string {\n return environment.servicesUrl + '/structures';\n }\n\n getStructuresByUidUrl(): string {\n return environment.servicesUrl + '/structures/user';\n }\n //#endregion\n\n}\n","import 'reflect-metadata';\nimport {PagesService} from '../services/pages.service';\n\n\nexport const Page = (pageName: string, header: string, rightId?: number, data?: any) => {\n return (target) => {\n PagesService.componentsList[pageName] = {type: target, header, rightId, data};\n };\n};\n","import {Component, OnInit} from '@angular/core';\nimport {Page} from '../../annotations/page.annotation';\nimport {PagesService} from '../../services/pages.service';\nimport {BaseService} from '../../services/base.service';\nimport {MessageService} from 'primeng/api';\nimport {EntryDTO} from '../../models/interfaces/entry-dto';\nimport {environment} from '../../../environments/environment';\nimport {AbstractRequestComponent} from '../../interfaces/abstract-request.component';\nimport {FieldValue} from '../../models/query/field-value';\nimport {SelectedParams} from '../../models/query/selected-params';\nimport {TableColumn} from '../../models/table-column';\n\n@Component({\n selector: 'app-report',\n templateUrl: './report.component.html',\n styleUrls: ['./report.component.scss']\n})\n@Page(PagesService.REPORT, 'Composant des etats', undefined, { icon: 'pi pi-users' })\nexport class ReportComponent extends AbstractRequestComponent implements OnInit {\n\n exportUrl: string;\n fileName: string;\n\n\n constructor(public baseService: BaseService,\n public messageService: MessageService) {\n super(baseService, messageService);\n }\n\n private entryValue: EntryDTO;\n\n get entry() {\n return this.entryValue;\n }\n\n set entry(value) {\n this.entryValue = value;\n this.initQuery();\n }\n\n ngOnInit(): void {\n this.entry = this.extraData;\n\n }\n\n initQuery() {\n this.isReady = false;\n this.baseService.getJson(`../assets/documents/reports/${this.entry.entry_id}.json`)\n .then(data => {\n this.exportUrl = data.export.url;\n this.fileName = data.export.filename;\n if (this.exportUrl == null) {\n this.messageService.add({severity: 'error', summary: 'L\\'état ne possède pas de lien pour générer les pdf '});\n this.tabLayout.closeCurrentTab();\n }\n this.requestData = data;\n this.requestData.columns = this.requestData.columns.map(column => new TableColumn(column.field, column.header, column.width, column.type, column.readonly, column.sortable, column.filterType) );\n this.initSelectedParams();\n this.isReady = true;\n }).catch(() => {\n this.messageService.add({severity: 'error', summary: 'Cet état n\\'est pas disponible.'});\n if (environment.production) {\n this.tabLayout.closeCurrentTab();\n } else {\n this.baseService.getJson(`../assets/documents/reports/report_sample.json`)\n .then(data => {\n this.exportUrl = data.export.url;\n this.fileName = data.export.filename;\n if (this.exportUrl == null) {\n this.messageService.add({severity: 'error', summary: 'L\\'état ne possède pas de lien pour générer les pdf '});\n }\n this.requestData = data;\n this.initSelectedParams();\n this.isReady = true;\n });\n }\n });\n }\n\n getHelp(): string {\n return 'Cette interface permet l\\'édition d\\'un document à partir des données de notre système (état).' +\n '\\n \\n' +\n 'Après paramètrage (si nécessaire), il vous suffit de cliquer sur le bouton \"Exécuter\" pour afficher les données.' +\n '\\n\\n' +\n 'Vous pouvez ensuite sélectionner la ou les lignes qui vous intéréssent et cliquer sur le bouton \"Générer\" pour télécharger le ou les documents.';\n }\n\n canGenerateReport() {\n return this.exportUrl != null && this.exportUrl.length > 0 && this.selectedData != null && this.selectedData.length > 0;\n }\n\n executeExport() {\n this.isLoading = true;\n const exportIds = this.selectedData.map(data => data[this.requestData.dataKey]);\n if (exportIds == null || exportIds.length <= 0) {\n this.messageService.add({severity: 'error', summary: 'Aucun élément sélectionné.'});\n }\n const urlWithFields = this.getUrlWithExportFields();\n if (urlWithFields != null) {\n const finalUrl = this.formatExportUrl(urlWithFields, exportIds);\n if (finalUrl != null) {\n const fileNameWithFields = this.getFilenameWithExportFields();\n if (fileNameWithFields == null) {\n return;\n }\n\n this.baseService.getFile(environment.servicesUrl + finalUrl, 'application/pdf', fileNameWithFields)\n .then(() => {\n this.messageService.add({severity: 'success', summary: 'Le fichier a été généré.'});\n }).catch(() => {\n this.messageService.add({severity: 'error', summary: 'Le fichier a pas été généré.'});\n }).finally(() => this.isLoading = false);\n }\n }\n }\n\n getUrlWithExportFields() {\n\n let errorField = null;\n const url = this.exportUrl;\n const requiredParams = [];\n let queryIsValid = true;\n\n this.requestData.export.fields.some(field => { // on verifie que toutes les parametres de la requête courante sont présent\n const param = this.selectedParams.find(selectedParam => selectedParam.field === field.field);\n\n if (field.is_mandatory && (param == null || param.value == null || param.value.length <= 0) ) {\n errorField = field.field;\n queryIsValid = false;\n }\n if (param != null && param.value != null && param.value.length > 0) {\n requiredParams.push(new SelectedParams(field.field, field.is_mandatory, field.is_request_param, param.value));\n }\n return !queryIsValid; // Si un parametres n'est pas valide on arrete de boucle\n });\n\n if (queryIsValid) {\n return this.formatUrl(url, requiredParams);\n } else {\n this.displayErrorField(errorField);\n return null;\n }\n }\n\n formatExportUrl(url, exportIds) {\n if (url.indexOf('?') !== -1) {\n url += `&ids=${exportIds}`;\n } else {\n url += `?ids=${exportIds}`;\n }\n return url;\n }\n\n onUpdateDynamicParam(fieldValue: FieldValue) {\n this.updateSelectedValueParam(fieldValue.field, fieldValue.value, false);\n }\n\n private getFilenameWithExportFields() {\n\n let errorField = null;\n let url = this.fileName;\n const requiredParams = [];\n let queryIsValid = true;\n\n this.requestData.export.fields.some(field => { // on verifie que toutes les parametres de la requête courante sont présent\n const param = this.selectedParams.find(selectedParam => selectedParam.field === field.field);\n\n if (field.is_mandatory && (param == null || param.value == null || param.value.length <= 0) ) {\n errorField = field.field;\n queryIsValid = false;\n }\n if (param != null && param.value != null && param.value.length > 0) {\n requiredParams.push(new SelectedParams(field.field, field.is_mandatory, field.is_request_param, param.value));\n }\n return !queryIsValid; // Si un parametres n'est pas valide on arrete de boucle\n });\n\n if (errorField != null) {\n this.displayErrorField(errorField);\n return null;\n } else {\n requiredParams.forEach(param => {\n url = url.replace(`{${param.field}}`, param.value);\n });\n return url;\n }\n }\n}\n","
    \n
    \n
    \n \n \n
    \n
    \n \n\n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n\n\n\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\nimport {SchoolYearSemesterValues} from '../../models/school-year-semester-values';\nimport {SchoolsService} from '../../services/schools.service';\nimport {PromotionDTO} from '../../models/schools/promotion-dto';\nimport {MessageService} from 'primeng/api';\nimport {ClassDTO} from '../../models/schools/class-dto';\nimport {OptionDTO} from '../../models/schools/option-dto';\nimport {SpecializationDTO} from '../../models/schools/specialization-dto';\nimport {Session} from '../../utils/sessionsList';\n\n@Component({\n selector: 'app-application-params-selector',\n templateUrl: './application-params-selector.component.html',\n styleUrls: ['./application-params-selector.component.scss']\n})\nexport class ApplicationParamsSelectorComponent implements OnInit {\n\n @Input() yearIsVisible = true;\n @Input() schoolIsVisible = true;\n @Input() allSchoolsIsVisible = true;\n @Input() semesterIsVisible = true;\n @Input() promoIsVisible = true;\n @Input() sessionIsVisible = true;\n @Input() classIsVisible = true;\n @Input() optionIsVisible = true;\n @Input() specializationIsVisible = true;\n @Input() mandatoryFields = [];\n\n //region emitters\n @Output() yearSelected = new EventEmitter();\n @Output() schoolSelected = new EventEmitter();\n @Output() allSchoolsSelected = new EventEmitter();\n @Output() semesterSelected = new EventEmitter();\n @Output() promotionSelected = new EventEmitter();\n @Output() sessionSelected = new EventEmitter();\n @Output() classSelected = new EventEmitter();\n @Output() optionSelected = new EventEmitter();\n @Output() specializationSelected = new EventEmitter();\n //endregion\n\n //region loaders\n loadingPromotions = false;\n loadingSessions = false;\n loadingClasses = false;\n loadingOptions = false;\n loadingSpecializations = false;\n //endregion\n\n //region data\n schoolYearSemesterValues: SchoolYearSemesterValues = new SchoolYearSemesterValues();\n selectedPromotion: PromotionDTO;\n promoList: PromotionDTO[] = [];\n selectedSession: string;\n sessionsList: Session[] = [];\n selectedClass: ClassDTO;\n classesList: ClassDTO[] = [];\n selectedOption: OptionDTO;\n optionsList: OptionDTO[] = [];\n selectedSpecialization: SpecializationDTO;\n specializationsList: SpecializationDTO[] = [];\n //endregion\n PROMOTION = 'promotion';\n SESSION = 'session';\n OPTION = 'option';\n CLASS = 'class';\n SPECIALIZATION = 'specialization';\n\n constructor(private messageService: MessageService,\n private schoolsService: SchoolsService) { }\n\n ngOnInit(): void {\n if (this.sessionIsVisible) {\n this.loadSessions();\n }\n }\n\n checkIfPromoIsDisabled(): boolean {\n return this.schoolYearSemesterValues.selectedSchoolId === 0;\n }\n\n onYearSelected(schoolYearSemesterValues: SchoolYearSemesterValues) {\n this.schoolYearSemesterValues.selectedYear = schoolYearSemesterValues.selectedYear;\n this.yearSelected.emit(schoolYearSemesterValues);\n\n this.selectedPromotion = null;\n this.onPromotionSelected();\n }\n\n onSchoolSelected(schoolYearSemesterValues: SchoolYearSemesterValues) {\n this.schoolYearSemesterValues.selectedSchoolId = schoolYearSemesterValues.selectedSchoolId;\n this.schoolSelected.emit(schoolYearSemesterValues);\n if (this.promoIsVisible) {\n this.loadPromotions();\n }\n }\n\n onAllSchoolsSelected(schoolYearSemesterValues: SchoolYearSemesterValues) {\n this.selectedPromotion = null;\n this.onPromotionSelected();\n\n this.allSchoolsSelected.emit(schoolYearSemesterValues);\n }\n\n onSemesterSelected(schoolYearSemesterValues: SchoolYearSemesterValues) {\n this.schoolYearSemesterValues.selectedSemesterId = schoolYearSemesterValues.selectedSemesterId;\n this.semesterSelected.emit(schoolYearSemesterValues);\n }\n\n onPromotionSelected() {\n this.promotionSelected.emit(this.selectedPromotion);\n\n this.selectedClass = null;\n this.onClassSelected();\n this.selectedOption = null;\n this.onOptionSelected();\n if (this.selectedPromotion != null) {\n this.loadClasses();\n this.loadOptions();\n }\n }\n\n onSessionSelected() {\n this.sessionSelected.emit(this.selectedSession);\n }\n\n onClassSelected() {\n this.classSelected.emit(this.selectedClass);\n }\n\n onOptionSelected() {\n this.optionSelected.emit(this.selectedOption);\n this.selectedSpecialization = null;\n this.onSpecializationSelected();\n\n if (this.selectedOption != null) {\n this.loadSpecializations();\n }\n }\n\n onSpecializationSelected() {\n this.specializationSelected.emit(this.selectedSpecialization);\n }\n\n private loadPromotions() {\n this.loadingPromotions = true;\n\n this.schoolsService.getAllPromotionsByYearAndSchool(this.schoolYearSemesterValues.selectedSchoolId, this.schoolYearSemesterValues.selectedYear)\n .then(promotions => {\n this.promoList = promotions;\n if (this.promoList.length > 0) {\n this.selectedPromotion = this.promoList[0];\n this.onPromotionSelected();\n }\n })\n .catch(() => this.displayError('promotions'))\n .finally(() => this.loadingPromotions = false);\n }\n\n private loadSessions() {\n this.loadingSessions = true;\n\n this.sessionsList = this.schoolsService.getAllSessionsByPromotion();\n\n if (this.sessionsList.length > 0) {\n this.selectedSession = this.sessionsList[0].value;\n this.onSessionSelected();\n }\n this.loadingSessions = false;\n }\n\n private loadClasses() {\n this.loadingClasses = true;\n\n this.schoolsService.getAllClassesByYearAndPromotion(this.schoolYearSemesterValues.selectedYear, this.selectedPromotion.puid)\n .then(classes => {\n this.classesList = classes;\n })\n .catch(() => this.displayError('classes'))\n .finally(() => this.loadingClasses = false);\n }\n\n private loadOptions() {\n this.loadingOptions = true;\n\n this.schoolsService.getAllOptionsByYearAndPromotion(this.schoolYearSemesterValues.selectedYear, this.selectedPromotion.puid)\n .then(options => {\n this.optionsList = options;\n })\n .catch(() => this.displayError('options'))\n .finally(() => this.loadingOptions = false);\n }\n\n private loadSpecializations() {\n this.loadingSpecializations = true;\n\n this.schoolsService.getAllSpecializationsByOption(this.selectedOption.puid)\n .then(specializations => {\n this.specializationsList = specializations;\n })\n .catch(() => this.displayError('specialisations'))\n .finally(() => this.loadingSpecializations = false);\n }\n\n private displayError(name: string) {\n this.messageService.add({\n severity: 'error',\n summary: `Problème lors du chargement des ${name}.`,\n life: 2000\n });\n }\n\n isElementMandatory(currentField: string) {\n return this.mandatoryFields.some(field => field === currentField);\n }\n}\n","
    \n \n\n
    \n \n \n \n
    {{element.name}}
    \n
    \n
    \n \n
    \n
    \n
    \n\n
    \n \n \n \n
    {{element.name}}
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n \n \n
    {{element.description}}
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n \n \n
    {{element.name}}
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n \n \n
    {{element.description}}
    \n
    \n
    \n \n
    \n
    \n
    \n\n
    \n","import { BrowserModule } from '@angular/platform-browser';\nimport { LOCALE_ID, NgModule } from '@angular/core';\nimport { HTTP_INTERCEPTORS, HttpClient, HttpClientModule } from '@angular/common/http';\n\nimport { AppRoutingModule } from './app-routing.module';\nimport { AppComponent } from './app.component';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport localeFr from '@angular/common/locales/fr';\nimport {DatePipe, registerLocaleData} from '@angular/common';\n\nimport { MarkdownModule } from 'ngx-markdown';\nimport { AngularSplitModule } from 'angular-split';\n\n// PrimeNG\nimport { AutoCompleteModule } from 'primeng/autocomplete';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { ButtonModule } from 'primeng/button';\nimport { CalendarModule } from 'primeng/calendar';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { ConfirmDialogModule } from 'primeng/confirmdialog';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { ContextMenuModule } from 'primeng/contextmenu';\nimport { DataViewModule } from 'primeng/dataview';\nimport { DialogModule } from 'primeng/dialog';\nimport { DynamicDialogModule } from 'primeng/dynamicdialog';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { FileUploadModule } from 'primeng/fileupload';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { MegaMenuModule } from 'primeng/megamenu';\nimport { ConfirmationService, MessageService } from 'primeng/api';\nimport { MessagesModule } from 'primeng/messages';\nimport { MultiSelectModule } from 'primeng/multiselect';\nimport { OrganizationChartModule } from 'primeng/organizationchart';\nimport { OverlayPanelModule } from 'primeng/overlaypanel';\nimport { PaginatorModule } from 'primeng/paginator';\nimport { ProgressBarModule } from 'primeng/progressbar';\nimport { ProgressSpinnerModule } from 'primeng/progressspinner';\nimport { RadioButtonModule } from 'primeng/radiobutton';\nimport { RippleModule } from 'primeng/ripple';\nimport { SidebarModule } from 'primeng/sidebar';\nimport { SplitButtonModule } from 'primeng/splitbutton';\nimport { TableModule } from 'primeng/table';\nimport { TabViewModule } from 'primeng/tabview';\nimport { ToastModule } from 'primeng/toast';\nimport { TooltipModule } from 'primeng/tooltip';\nimport { TreeTableModule } from 'primeng/treetable';\nimport { FieldsetModule } from 'primeng/fieldset';\nimport {PanelModule} from 'primeng/panel';\n\n// Services\nimport { TokenInterceptorService } from './services/token-interceptor.service';\nimport { PagesService } from './services/pages.service';\n\n// Pages\nimport { LoginSuccessComponent } from './pages/users/login-success/login-success.component';\nimport { ParametersComponent } from './pages/parameters/parameters.component';\nimport { RightsComponent } from './pages/administration/rights/rights.component';\nimport { RightsAdminComponent} from './pages/administration/rights-admin/rights-admin.component';\nimport { StudentsComponent } from './pages/students/students.component';\nimport { StudentComponent } from './pages/students/student/student.component';\nimport { DiplomasComponent } from './pages/administration/diplomas/diplomas.component';\nimport { DiplomaComponent } from './pages/administration/diplomas/diploma/diploma.component';\n\n// Components\nimport { ErrorDialogComponent } from './components/error-dialog/error-dialog.component';\nimport { BasicGridComponent } from './components/grid/basic-grid/basic-grid.component';\nimport { ComboBoxComponent } from './components/combo-box/combo-box.component';\nimport { IconChooserComponent } from './components/icon-chooser/icon-chooser.component';\nimport { LoaderScreenComponent } from './components/loader-screen/loader-screen.component';\nimport { MainLayoutComponent } from './components/main-layout/main-layout.component';\nimport { SchoolYearSemesterSelectorComponent } from './components/school-year-semester-selector/school-year-semester-selector.component';\nimport { SearchBoxComponent } from './components/search-box/search-box.component';\nimport { SpinnerComponent } from './components/spinner/spinner.component';\nimport { TabLayoutComponent } from './components/tab-layout/tab-layout.component';\nimport { TreeModule } from './components/tree/tree.component';\nimport { TristateCheckboxModule } from './components/tristate-checkbox/tristate-checkbox.component';\nimport { VerticalMenuComponent } from './components/vertical-menu/vertical-menu.component';\nimport { MainMenuComponent } from './components/main-menu/main-menu.component';\nimport { FieldLoaderComponent } from './field-loader/field-loader.component';\nimport { WelcomePageComponent } from './pages/welcome-page/welcome-page.component';\nimport { MenuSearchFieldComponent } from './components/main-menu/menu-search-field/menu-search-field.component';\nimport { FavoriteMenuEntriesComponent } from './components/main-menu/favorite-menu-entries/favorite-menu-entries.component';\nimport { FavoriteStarComponent } from './components/main-menu/favorite-star/favorite-star.component';\nimport { QueryComponent } from './components/query/query.component';\n\n\n// Directives\nimport { TabDirective } from './directives/tab.directive';\nimport { ApplicationParamsSelectorComponent } from './components/application-params-selector/application-params-selector.component';\n\n// Pipes\nimport {HighlightPipe} from './common/pipes/highlight-pipe';\nimport { RemoveCrossComponent } from './remove-cross/remove-cross.component';\nimport { FailureScreenComponent } from './components/failure-screen/failure-screen.component';\nimport { FormatedEntriesMenuComponent } from './components/main-menu/formated-entries-menu/formated-entries-menu.component';\nimport { ApiHeartbeatInterceptor } from './services/api-hearbeat-interceptor.service';\nimport { DiplomaSkillBlockComponent } from './pages/administration/diplomas/diploma/diploma-skills-block/diploma-skill-block.component';\nimport { ReportComponent } from './components/report/report.component';\nimport { DynamicParamsSelectorComponent } from './components/dynamic-params-selector/dynamic-params-selector.component';\nimport { OptionMenuComponent } from './components/vertical-menu/option-menu/option-menu.component';\nimport { DiplomaSkillBlockDialog } from './pages/administration/diplomas/diploma/diploma-skills-block/diploma-skill-block-dialog/diploma-skill-block-dialog.component';\nimport { VersionComponent } from './version/version.component';\n\n\n\n// the second parameter 'fr' is optional\nregisterLocaleData(localeFr, 'fr');\n\n@NgModule({\n declarations: [\n AppComponent,\n // Pages\n LoginSuccessComponent, ParametersComponent,\n // Components\n ErrorDialogComponent, BasicGridComponent, ComboBoxComponent, IconChooserComponent,\n LoaderScreenComponent, MainLayoutComponent, RightsComponent, RightsAdminComponent, SearchBoxComponent, SpinnerComponent,\n TabLayoutComponent, VerticalMenuComponent, WelcomePageComponent,\n // Directives\n TabDirective,\n StudentsComponent,\n StudentComponent,\n SchoolYearSemesterSelectorComponent,\n FieldLoaderComponent,\n MainMenuComponent,\n QueryComponent,\n ApplicationParamsSelectorComponent,\n MenuSearchFieldComponent,\n FormatedEntriesMenuComponent,\n HighlightPipe,\n FavoriteMenuEntriesComponent,\n FavoriteStarComponent,\n RemoveCrossComponent,\n FailureScreenComponent,\n DiplomasComponent,\n DiplomaComponent,\n DiplomaSkillBlockComponent,\n ReportComponent,\n DynamicParamsSelectorComponent,\n OptionMenuComponent,\n DiplomaSkillBlockDialog,\n VersionComponent,\n ],\n imports: [\n BrowserModule,\n AppRoutingModule,\n HttpClientModule,\n // Third party library\n MarkdownModule.forRoot({loader: HttpClient}),\n AngularSplitModule,\n // PrimeNG\n BrowserAnimationsModule, FormsModule,\n AutoCompleteModule, ButtonModule, CalendarModule, CheckboxModule, ConfirmDialogModule, ConfirmPopupModule, ContextMenuModule,\n DataViewModule, DialogModule, DynamicDialogModule, DropdownModule, FileUploadModule, InputTextModule,\n MegaMenuModule, MessagesModule, MultiSelectModule, OrganizationChartModule, OverlayPanelModule,\n PaginatorModule, ProgressBarModule, ProgressSpinnerModule, RadioButtonModule, RippleModule, SidebarModule, SplitButtonModule,\n TableModule, TabViewModule, ToastModule, TooltipModule, TreeModule, TreeTableModule,\n // Project modules\n TristateCheckboxModule, TreeModule, ReactiveFormsModule, FieldsetModule, PanelModule\n ],\n providers: [\n DatePipe,\n MessageService,\n ConfirmationService,\n PagesService,\n {\n provide: HTTP_INTERCEPTORS,\n useClass: TokenInterceptorService,\n multi: true\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: ApiHeartbeatInterceptor,\n multi: true\n },\n {\n provide: LOCALE_ID,\n useValue: 'fr'\n }\n ],\n bootstrap: [AppComponent]\n})\nexport class AppModule { }\n","import {Component, ElementRef, Input, OnInit, ViewChild} from '@angular/core';\nimport {Canceler} from '../../../../../common/promises/request-canceler';\nimport {TableColumn} from '../../../../../models/table-column';\nimport {ColumnSizeEnum} from '../../../../../utils/columnSizeEnum';\nimport {FilterTypeEnum} from '../../../../../utils/filterTypeEnum';\nimport {BasicGridComponent, GridTypes} from '../../../../../components/grid/basic-grid/basic-grid.component';\nimport {DiplomaWithCertifierDto} from '../../../../../models/diplomas/diploma-with-certifier-dto';\nimport {DiplomasService} from '../../../../../services/diplomas.service';\nimport {DiplomaBlockDTO} from '../../../../../models/diplomas/diploma-block-dto';\nimport {ErrorService} from '../../../../../services/error.service';\nimport {ConfirmationService, MessageService} from 'primeng/api';\nimport {DiplomaSkillBlockDialog} from './diploma-skill-block-dialog/diploma-skill-block-dialog.component';\n\n@Component({\n selector: 'app-diploma-skills-block',\n templateUrl: './diploma-skill-block.component.html',\n styleUrls: ['./diploma-skill-block.component.scss']\n})\nexport class DiplomaSkillBlockComponent implements OnInit {\n title = 'Liste des blocs de compétences rattachés';\n exportTitle = 'Liste des blocs de compétences rattachés';\n\n canceler: Canceler = new Canceler();\n @Input() selectedDiploma: DiplomaWithCertifierDto;\n @Input() active = false;\n isAddMode = true;\n\n @ViewChild('grid') grid: BasicGridComponent;\n @ViewChild('blockDialog') dialog: DiplomaSkillBlockDialog;\n\n loadingData = false;\n gridTypes = GridTypes;\n\n //#region colonnes\n columns: TableColumn[] = [\n // Bloc\n new TableColumn('code', 'Code', ColumnSizeEnum.MEDIUM_COLUMN_SIZE, 'string', true, true, FilterTypeEnum.DROPDOWN_FILTER),\n new TableColumn('name', 'Intitulé', ColumnSizeEnum.LARGE_COLUMN_SIZE, 'string', true, true, FilterTypeEnum.DROPDOWN_FILTER),\n new TableColumn('skill_description', 'Compétences', ColumnSizeEnum.MEDIUM_COLUMN_SIZE, 'link', true, false),\n new TableColumn('evaluation_description', 'Evaluation', ColumnSizeEnum.MEDIUM_COLUMN_SIZE, 'link', true, false),\n new TableColumn('block_id', 'ID', ColumnSizeEnum.MEDIUM_COLUMN_SIZE, 'string', true, true, FilterTypeEnum.DROPDOWN_FILTER),\n new TableColumn('is_active', 'Actif ', ColumnSizeEnum.MEDIUM_COLUMN_SIZE, 'boolean', true, true, FilterTypeEnum.DROPDOWN_FILTER),\n\n // Parent\n new TableColumn('parent_code', 'Code', ColumnSizeEnum.MEDIUM_COLUMN_SIZE, 'string', true, true, FilterTypeEnum.DROPDOWN_FILTER),\n new TableColumn('parent_id', 'ID', ColumnSizeEnum.MEDIUM_COLUMN_SIZE, 'string', true, true, FilterTypeEnum.DROPDOWN_FILTER),\n\n // Historique\n new TableColumn('crea_user_login', 'Crée par', ColumnSizeEnum.MEDIUM_COLUMN_SIZE, 'string', true, true, FilterTypeEnum.DROPDOWN_FILTER),\n new TableColumn('crea_date', 'Le', ColumnSizeEnum.MEDIUM_COLUMN_SIZE, 'date', true, true, FilterTypeEnum.DROPDOWN_FILTER),\n new TableColumn('upd_user_login', 'Modifié par', ColumnSizeEnum.MEDIUM_COLUMN_SIZE, 'string', true, true, FilterTypeEnum.DROPDOWN_FILTER),\n new TableColumn('upd_date', 'le', ColumnSizeEnum.MEDIUM_COLUMN_SIZE, 'date', true, true, FilterTypeEnum.DROPDOWN_FILTER),\n ];\n\n blockTopColumns = [\n {span: 6, header: 'Bloc'},\n {span: 2, header: 'Parent'},\n {span: 4, header: 'Historique'}\n ];\n //#endregion\n\n diplomaBlockData: DiplomaBlockDTO[] = [];\n selectedBlocks: DiplomaBlockDTO[] = [];\n\n selectedData = [];\n displaySkillBlockDetails = false;\n\n isActive(): boolean {\n return this.active;\n }\n\n constructor(private diplomasService: DiplomasService,\n private errorService: ErrorService,\n private confirmationService: ConfirmationService,\n private messageService: MessageService) {\n }\n\n loadDiplomaBlocks(): void {\n this.loadingData = true;\n\n this.resetSelectedBlocks();\n\n this.diplomasService.getDiplomaBlocksByDiplomaId(this.selectedDiploma.diploma_id)\n .setCancelAction(this.canceler)\n .then(blocks => this.addBlocks(blocks))\n .catch(error => this.errorService.showError(error))\n .finally(() => this.loadingData = false);\n }\n\n ngOnInit(): void {\n this.loadDiplomaBlocks();\n }\n\n onRefreshRequested(): void {\n this.loadDiplomaBlocks();\n }\n\n private resetSelectedBlocks(): void {\n this.selectedBlocks.splice(0);\n }\n\n private addBlocks(blocks: DiplomaBlockDTO[]): void {\n blocks.forEach(block => {\n if (block.crea_date != null) {\n const createDate = new Date();\n createDate.setTime(Number(block.crea_date));\n block.upd_date = createDate.getTime();\n }\n\n if (block.upd_date != null) {\n const updDate = new Date();\n updDate.setTime(Number(block.upd_date));\n block.upd_date = updDate.getTime();\n }\n });\n this.diplomaBlockData = blocks.sort((block1, block2) => block1.code > block2.code ? 1 : -1);\n }\n\n onDelete(): void {\n const confirmationMessage = 'Vous êtes sur le point de désactiver ' + this.selectedBlocks.length + ' bloc(s) de compétences.
    Êtes-vous sûr·e ?';\n this.confirmationService.confirm({\n message: confirmationMessage,\n header: 'Suppression de bloc de compétences',\n icon: 'pi pi-ban',\n acceptLabel: 'Oui',\n rejectLabel: 'Annuler',\n key: 'deleteBlockDialog',\n closeOnEscape: true,\n accept: () => this.deleteBlock()\n });\n }\n\n onRowsSelectionChanged(blocks: DiplomaBlockDTO[]): void {\n this.selectedBlocks = blocks;\n }\n\n private deleteBlock(): void {\n const successMessage = this.selectedBlocks.length === 1\n ? 'Le bloc de compétences sélectionné a été désactivé.'\n : 'Les ' + this.selectedBlocks.length + ' blocs de compétences sélectionnés ont été désactivés.';\n\n const blockIdsToDelete: number[] = this.selectedBlocks.map(selectedBlock => selectedBlock.block_id);\n this.diplomasService.deleteDiplomaBlock(blockIdsToDelete)\n .then(() => this.messageService.add({\n severity: 'success',\n summary: 'Suppression effectuée',\n detail: successMessage,\n life: 10000\n }))\n .catch((error) => {\n this.errorService.showError(error);\n })\n .finally(() => {\n this.selectedBlocks = [];\n this.loadDiplomaBlocks();\n });\n }\n\n onAddRequest(): void {\n this.dialog.showDialog(true, this.selectedDiploma.diploma_id, null);\n }\n\n onDetailsRequested(selected: DiplomaBlockDTO) {\n const diplomaBlockId = selected.block_id;\n this.dialog.showDialog(false, this.selectedDiploma.diploma_id, diplomaBlockId);\n }\n\n showLoading(isLoading: boolean) {\n this.loadingData = isLoading;\n }\n}\n","\n \n
    \n \n \n \n
    \n
    \n
    \n\n\n\n\n\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\nimport {SchoolsService} from '../../services/schools.service';\nimport {YearsService} from '../../services/years.service';\nimport {CacheService} from '../../services/cache.service';\nimport {SchoolYearSemesterValues} from '../../models/school-year-semester-values';\nimport {DateUtilsService} from '../../services/date-utils.service';\nimport {ErrorService} from '../../services/error.service';\n\n@Component({\n selector: 'app-school-year-semester-selector',\n templateUrl: './school-year-semester-selector.component.html',\n styleUrls: ['./school-year-semester-selector.component.scss']\n})\nexport class SchoolYearSemesterSelectorComponent implements OnInit {\n yearOptions: any[];\n selectedYearOption: any;\n loadingYears = false;\n\n schoolOptions: any[];\n selectedSchoolOption: any;\n loadingSchools = false;\n\n semesterOptions: any[];\n selectedSemesterOption: any;\n loadingSemesters = false;\n\n selectedValues = {\n selectedYear: -1,\n selectedSchoolId: -1,\n selectedSemesterId: -1,\n };\n\n @Input() yearIsVisible = true;\n @Input() schoolIsVisible = true;\n @Input() allSchoolsIsVisible = true;\n @Input() semesterIsVisible = true;\n @Input() mandatoryFields: string[] = [];\n\n //region emitters\n @Output() yearSelected = new EventEmitter();\n @Output() schoolSelected = new EventEmitter();\n @Output() allSchoolsSelected = new EventEmitter();\n @Output() semesterSelected = new EventEmitter();\n //endregion\n YEAR = 'year';\n SCHOOL = 'school';\n SEMESTER = 'semester';\n\n\n constructor(private schoolsService: SchoolsService,\n private yearsService: YearsService,\n private dateUtils: DateUtilsService,\n private cacheService: CacheService,\n private errorService: ErrorService) { }\n\n ngOnInit(): void {\n this.cacheService.getMainFilters()\n .then(mainFilters => {\n this.selectedValues = mainFilters;\n this.loadYears();\n this.loadSchools();\n });\n }\n\n onSelectedSchoolChanged(event: any): void {\n\n this.resetSemesters();\n\n this.loadingSemesters = true;\n\n this.selectedValues.selectedSchoolId = event.value;\n this.cacheService.setMainFilters(this.selectedValues);\n this.schoolSelected.emit(this.selectedValues);\n\n if (this.selectedValues.selectedSchoolId > 0) {\n this.schoolsService.getSchoolSemesters(event.value)\n .then((semesters) => {\n this.semesterOptions = semesters\n .sort((a, b) => a.tri_describe > b.tri_describe ? 1 : -1)\n .map((s) => (({label: s.tri_describe, value: s.tri_id})));\n\n if (this.selectedValues.selectedSemesterId > -1) {\n this.selectSemester(this.selectedValues.selectedSemesterId);\n } else {\n this.selectFirstSemester();\n }\n })\n .catch(error => this.errorService.showError(error))\n .finally(() => this.loadingSemesters = false);\n } else {\n this.selectedSemesterOption = null;\n this.loadingSemesters = false;\n this.allSchoolsSelected.emit(this.selectedValues);\n }\n\n }\n\n onSelectedYearChanged(event: any): void {\n this.selectedValues.selectedYear = event.value;\n this.cacheService.setMainFilters(this.selectedValues);\n this.yearSelected.emit(this.selectedValues);\n }\n\n onSelectedSemesterChanged(event: any): void {\n this.selectedValues.selectedSemesterId = event.value;\n this.cacheService.setMainFilters(this.selectedValues);\n this.semesterSelected.emit(this.selectedValues);\n }\n\n private loadSchools(): void {\n this.loadingSchools = true;\n\n this.cacheService.getUserSchools().then(schools => {\n if (schools.length > 0) {\n this.schoolOptions = schools.map(school => ({label: school.name, value: school.puid}));\n this.loadingSchools = false;\n if (this.selectedValues.selectedSchoolId > -1) {\n this.selectedSchoolOption = this.selectedValues.selectedSchoolId;\n }\n\n this.onSelectedSchoolChanged({value: this.selectedValues.selectedSchoolId});\n }\n\n // dans tous les cas, on rafraîchit la liste des écoles en fonction des données fournies par l'API\n this.schoolsService.getAll()\n .then((fetchedSchools) => {\n\n if (this.allSchoolsIsVisible) {\n fetchedSchools = [{puid: 0, name: 'Toutes mes écoles (chargement long)', description: 'Toutes mes écoles (chargement long)'}, ...fetchedSchools];\n }\n\n this.cacheService.setUserSchools(fetchedSchools);\n this.schoolOptions = fetchedSchools.map(school => ({label: school.name, value: school.puid}));\n })\n .catch(error => this.errorService.showError(error))\n .finally(() => this.loadingSchools = false);\n });\n }\n\n private loadYears(): void {\n this.loadingYears = true;\n\n this.cacheService.getUserYears().then(years => {\n\n if (years.length > 0) {\n this.yearOptions = years.map(year => ({label: `${year}-${year + 1}`, value: year}));\n this.loadingYears = false;\n\n this.affectCurrentYearIfNoneSelected();\n\n this.selectedYearOption = this.selectedValues.selectedYear;\n this.onSelectedYearChanged({value: this.selectedValues.selectedYear});\n }\n\n // dans tous les cas, on rafraîchit la liste des années en fonction des données fournies par l'API\n this.yearsService.getAllYears()\n .then((ys) => {\n this.cacheService.setUserYears(ys);\n this.yearOptions = ys.map(year => ({label: `${year}-${year + 1}`, value: year}));\n\n this.affectCurrentYearIfNoneSelected();\n\n this.selectedYearOption = this.selectedValues.selectedYear;\n this.onSelectedYearChanged({value: this.selectedValues.selectedYear});\n })\n .catch(error => this.errorService.showError(error))\n .finally(() => this.loadingYears = false);\n });\n }\n\n private affectCurrentYearIfNoneSelected(): void {\n if (this.selectedValues.selectedYear === -1) {\n const now = new Date();\n this.selectedValues.selectedYear = now.getMonth() > this.dateUtils.AUGUST ? now.getUTCFullYear() : now.getUTCFullYear() - 1;\n this.cacheService.setMainFilters(this.selectedValues);\n }\n }\n private resetSemesters(): void {\n if (this.semesterOptions) {\n this.semesterOptions.splice(0);\n }\n }\n\n private selectFirstSemester(): void {\n if (this.semesterOptions.length > 0) {\n this.selectedSemesterOption = this.semesterOptions[0].value;\n this.selectedValues.selectedSemesterId = this.selectedSemesterOption;\n this.cacheService.setMainFilters(this.selectedValues);\n this.semesterSelected.emit(this.selectedValues);\n }\n }\n\n private selectSemester(selectedSemesterId: number): void {\n if (this.semesterOptions.length > 0) {\n this.selectedSemesterOption = this.semesterOptions.find(o => o.value === selectedSemesterId) ? selectedSemesterId : this.semesterOptions[0].value;\n this.selectedValues.selectedSemesterId = this.selectedSemesterOption;\n this.cacheService.setMainFilters(this.selectedValues);\n this.semesterSelected.emit(this.selectedValues);\n }\n }\n\n public getSelectedSchoolName(): string {\n if (!this.schoolOptions) {\n return null;\n }\n const schools = this.schoolOptions.filter(s => s.value === this.selectedValues.selectedSchoolId);\n return schools && schools.length > 0 ? schools[0].label : null;\n }\n\n public getSelectedSemesterName(): string {\n if (!this.semesterOptions) {\n return null;\n }\n const schools = this.semesterOptions.filter(s => s.value === this.selectedValues.selectedSemesterId);\n return schools && schools.length > 0 ? schools[0].label : null;\n }\n\n public getSelectedYearName(): string {\n if (!this.yearOptions) {\n return null;\n }\n const schools = this.yearOptions.filter(s => s.value === this.selectedValues.selectedYear);\n return schools && schools.length > 0 ? schools[0].label : null;\n }\n\n isElementMandatory(currentField: string) {\n return this.mandatoryFields.some(field => field === currentField);\n }\n}\n","\n
    \n
    \n \n \n \n
    {{element.label}}
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n \n \n
    {{element.label}}
    \n
    \n
    \n \n
    \n
    \n
    \n\n
    \n \n \n \n
    {{element.label}}
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n","import {Injectable} from '@angular/core';\nimport {BaseService} from './base.service';\nimport {StudentCompleteDTO} from '../models/students/student-complete-dto';\nimport {environment} from '../../environments/environment';\nimport {StudentYearInfoDTO} from '../models/students/student-year-info-dto';\nimport {CancelablePromise} from '../common/promises/cancelable-promise';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class StudentsService {\n\n constructor(private baseService: BaseService) { }\n\n getRegisteredStudents(schoolId: number, year: number, trimesterId: number): CancelablePromise {\n const url = `${environment.servicesUrl}/students/registered?schoolId=${schoolId}&year=${year}&trimesterId=${trimesterId}`;\n return this.baseService.getAll(url);\n }\n\n getDesistedStudents(schoolId: number, year: number, trimesterId: number): CancelablePromise {\n const url = `${environment.servicesUrl}/students/desisted?schoolId=${schoolId}&year=${year}&trimesterId=${trimesterId}`;\n return this.baseService.getAll(url);\n }\n\n getRegisteredStudentsForAllSchools(year: number): CancelablePromise {\n const url = `${environment.servicesUrl}/students/registered/allSchools?year=${year}`;\n return this.baseService.getAll(url);\n }\n\n getDesistedStudentsForAllSchools(year: number): CancelablePromise {\n const url = `${environment.servicesUrl}/students/desisted/allSchools?year=${year}`;\n return this.baseService.getAll(url);\n }\n\n getStudentYearInfo(year: number, uid: number): CancelablePromise {\n const url = `${environment.servicesUrl}/students/${uid}/info/${year}`;\n return this.baseService.getAll(url);\n }\n}\n","import {Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild} from '@angular/core';\nimport {DiplomaBlockDTO} from '../../../../../../models/diplomas/diploma-block-dto';\nimport {FormControl, FormGroup, Validators} from '@angular/forms';\nimport {DiplomasService} from '../../../../../../services/diplomas.service';\nimport {Canceler} from '../../../../../../common/promises/request-canceler';\nimport {MessageService} from 'primeng/api';\nimport {ErrorService} from '../../../../../../services/error.service';\nimport {AutoComplete} from 'primeng/autocomplete';\n\n@Component({\n selector: 'app-diploma-skill-block-dialog',\n templateUrl: './diploma-skill-block-dialog.component.html',\n styleUrls: ['./diploma-skill-block-dialog.component.scss']\n})\n// tslint:disable-next-line:component-class-suffix\nexport class DiplomaSkillBlockDialog implements OnInit {\n dialogAddHeader = 'Création d\\'un bloc de compétence';\n\n canceler: Canceler = new Canceler();\n filteredParents: DiplomaBlockDTO[];\n\n @Input()\n visible = false;\n isAddMode = true;\n isLoading = false;\n\n @Input() parents: DiplomaBlockDTO[];\n\n // tslint:disable-next-line:no-output-on-prefix\n @Output()\n onSave = new EventEmitter();\n\n // tslint:disable-next-line:no-output-on-prefix\n @Output()\n onLoading = new EventEmitter();\n\n @Output() cancel: EventEmitter = new EventEmitter();\n\n //#region tabs\n @ViewChild('topTabs') bottomTabs: ElementRef;\n subTabs = [\n {value: 'general', label: 'Général'},\n {value: 'skill', label: 'Compétences'},\n {value: 'evaluation', label: 'Modalités d\\'évaluation'}\n ];\n selectedTab = 'general';\n bottomTabsHeight = 28;\n\n @ViewChild('generalTab') generalTab: ElementRef;\n @ViewChild('skillTab') skillTab: ElementRef;\n @ViewChild('evaluationTab') evaluationTab: ElementRef;\n //#endregion\n\n //#region dialog tabs\n isGeneralTabHidden = false;\n isSkillTabHidden = true;\n isEvaluationTabHidden = true;\n //#endregion\n\n @ViewChild('parentInput') parentInput: AutoComplete;\n diplomaId: number;\n selectedDiplomaBlockId: number;\n skillBlockForm: FormGroup;\n diplomaBlockDTO: DiplomaBlockDTO;\n filterValue: string;\n selectedParent: DiplomaBlockDTO;\n\n constructor(private diplomasService: DiplomasService,\n private messageService: MessageService,\n private errorService: ErrorService) {\n }\n\n ngOnInit(): void {\n }\n\n cancelRequest(): void {\n this.cancel.emit('cancel');\n }\n\n //#region gestion des tabs\n onSubTabClicked(subTab: { value: string, label: string }): void {\n this.selectedTab = subTab.value;\n\n switch (this.selectedTab) {\n case 'general':\n this.loadGeneral();\n break;\n case 'skill':\n this.loadSkill();\n break;\n case 'evaluation':\n this.loadEvaluation();\n break;\n }\n }\n\n private loadGeneral(): void {\n this.isGeneralTabHidden = false;\n this.isSkillTabHidden = true;\n this.isEvaluationTabHidden = true;\n }\n\n private loadSkill(): void {\n this.isGeneralTabHidden = true;\n this.isSkillTabHidden = false;\n this.isEvaluationTabHidden = true;\n }\n\n private loadEvaluation(): void {\n this.isGeneralTabHidden = true;\n this.isSkillTabHidden = true;\n this.isEvaluationTabHidden = false;\n }\n\n //#endregion\n\n showDialog(isAddMode: boolean, diplomaId: number, diplomaBlockId: number) {\n this.filteredParents = this.parents;\n this.onLoading.emit(true);\n this.isAddMode = isAddMode;\n this.isLoading = true;\n this.diplomaId = diplomaId;\n this.selectedDiplomaBlockId = diplomaBlockId;\n this.selectedParent = null;\n this.filterValue = null;\n\n if (diplomaBlockId != null) {\n this.diplomasService.getDiplomaBlockByBlockId(diplomaBlockId)\n .setCancelAction(this.canceler)\n .then(blockDTO => {\n this.diplomaBlockDTO = blockDTO;\n this.initSkillBlockForm();\n\n this.skillBlockForm.setValue(\n {\n code: this.diplomaBlockDTO.code,\n name: this.diplomaBlockDTO.name,\n parent_id: this.diplomaBlockDTO.parent_id,\n is_active: this.diplomaBlockDTO.is_active,\n skill_description: this.diplomaBlockDTO.skill_description,\n evaluation_description: this.diplomaBlockDTO.evaluation_description\n }\n );\n this.visible = true;\n this.isLoading = false;\n\n if (blockDTO.parent_id != null) {\n this.diplomasService.getDiplomaBlockByBlockId(blockDTO.parent_id)\n .then(parentDTO => {\n this.selectedParent = parentDTO;\n this.parentInput.value = parentDTO;\n this.parentInput.updateInputField();\n });\n } else {\n this.selectedParent = null;\n this.parentInput.value = null;\n this.parentInput.updateInputField();\n }\n\n this.onLoading.emit(this.isLoading);\n });\n } else {\n this.diplomaBlockDTO = new DiplomaBlockDTO();\n this.diplomaBlockDTO.is_active = true;\n this.initSkillBlockForm();\n this.visible = true;\n this.isLoading = false;\n this.selectedParent = null;\n this.parentInput.value = null;\n this.parentInput.updateInputField();\n\n this.onLoading.emit(this.isLoading);\n }\n }\n\n //region formulaire\n private initSkillBlockForm(): void {\n this.skillBlockForm = new FormGroup({\n code: new FormControl(this.diplomaBlockDTO.code, Validators.required),\n name: new FormControl(this.diplomaBlockDTO.name, Validators.required),\n parent_id: new FormControl(this.diplomaBlockDTO.parent_id),\n is_active: new FormControl(this.diplomaBlockDTO.is_active),\n skill_description: new FormControl(this.diplomaBlockDTO.skill_description),\n evaluation_description: new FormControl(this.diplomaBlockDTO.evaluation_description)\n });\n }\n\n onCheckboxChange(e) {\n if (e.target.checked) {\n this.skillBlockForm.addControl('is_active', new FormControl(e.target.value));\n }\n }\n\n formIsValid(): boolean {\n return this.skillBlockForm != null && this.skillBlockForm.valid;\n }\n\n onSaveBlock(): void {\n if (!this.skillBlockForm.valid) {\n return;\n }\n this.isLoading = true;\n if (this.selectedParent != null) {\n this.skillBlockForm.value.parent_id = this.selectedParent.block_id;\n }\n\n if (this.isAddMode) {\n this.diplomasService.addDiplomaBlockForDiplomaId(this.diplomaId, this.skillBlockForm.value)\n .setCancelAction(this.canceler)\n .catch(error => this.errorService.showError(error))\n .then(() => {\n this.visible = false;\n this.onSave.emit(true);\n\n this.messageService.add({\n severity: 'success',\n summary: 'Création effectuée',\n detail: 'Le bloc de compétence a été créé avec succès',\n life: 10000\n });\n })\n .finally(() => {\n this.isLoading = false;\n this.onLoading.emit(false);\n });\n } else {\n this.diplomasService.updateDiplomaBlockByBlockId(this.selectedDiplomaBlockId, this.skillBlockForm.value)\n .setCancelAction(this.canceler)\n .catch(error => this.errorService.showError(error))\n .then(() => {\n this.visible = false;\n this.onSave.emit(true);\n\n this.messageService.add({\n severity: 'success',\n summary: 'Modification effectuée',\n detail: 'Le bloc de compétence a été modifié avec succès',\n life: 10000\n });\n })\n .finally(() => {\n this.isLoading = false;\n this.onLoading.emit(false);\n });\n }\n }\n\n //#endregion\n\n updateSelectedParentBloc(event: any): void {\n if (event != null) {\n this.selectedParent = event;\n }\n }\n\n filterDiplomaBlocksByName(event: any): void {\n if (event.query != null) {\n this.filterValue = event.query;\n }\n\n this.filteredParents = this.parents\n .filter(blockDto => blockDto.block_id !== this.selectedDiplomaBlockId)\n .filter(blockDto => blockDto.name.indexOf(this.filterValue) > -1 || blockDto.code.indexOf(this.filterValue) > -1);\n }\n\n clearParent(): void {\n this.clearAllParentInfo();\n }\n\n private clearAllParentInfo(): void {\n this.selectedParent = null;\n this.filterValue = '';\n this.skillBlockForm.value.parent_id = null;\n }\n}\n","\n
    \n
    {{ subTab.label }}
    \n
    \n\n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n \n \n
    \n
    \n\n \n \n \n \n
    \n \n
    \n
    \n
    \n
    \n\n
    \n
    \n \n \n \n
    \n
    \n\n
    \n
    \n \n \n \n
    \n
    \n
    \n\n \n \n \n \n\n \n
    \n","import {Injectable} from '@angular/core';\nimport {HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest} from '@angular/common/http';\n\nimport {Observable, of, throwError} from 'rxjs';\nimport {catchError} from 'rxjs/operators';\nimport {Router} from '@angular/router';\n\n@Injectable()\nexport class ApiHeartbeatInterceptor implements HttpInterceptor {\n\n constructor(public router: Router) {\n }\n\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\n return next.handle(request).pipe(\n catchError((error: HttpErrorResponse) => {\n if (error.status === 0) {\n this.router.navigate(['error']);\n }\n return throwError(error);\n })\n );\n }\n}\n\n","import {Injectable} from '@angular/core';\nimport * as xlsx from 'xlsx';\nimport {TableColumn} from '../models/table-column';\nimport * as fileSaver from 'file-saver';\nimport {CancelablePromise} from \"../common/promises/cancelable-promise\";\nimport {BaseService} from \"./base.service\";\nimport {environment} from \"../../environments/environment\";\nimport {CommonUtilsService} from \"../common/utils/common-utils\";\nimport {StringUtils} from \"../common/utils/string-utils\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FileService {\n\n constructor(private baseService: BaseService) {\n\n }\n\n createFileBlobFromRawDataAndColumns(excelRawData: any[], columns: TableColumn[], topColumns: any[] = null): Blob {\n const excelData = [];\n\n const editedColumn = this.prepareColumns(excelRawData, columns, topColumns);\n\n excelRawData.forEach(d => {\n const dataWithHeader = {};\n // on peuple le nouvel objet (avec les NOMS des colonnes, et non les ids)\n editedColumn.forEach(column => dataWithHeader[column.header] = d[column.field]);\n excelData.push(dataWithHeader);\n });\n\n const worksheet = xlsx.utils.json_to_sheet(excelData);\n const workbook = {Sheets: {data: worksheet}, SheetNames: ['data']};\n const excelBuffer: any = xlsx.write(workbook, {bookType: 'xlsx', type: 'array'});\n\n const EXCEL_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8';\n return new Blob([excelBuffer], {\n type: EXCEL_TYPE\n });\n }\n\n prepareColumns(excelRawData: any[], columns: TableColumn[], topColumns: any[]): TableColumn[] {\n let dooblons = [];\n for (let i = 0; i < columns.length; i++) {\n for (let j = i + 1; j < columns.length; j++) {\n if (columns[i].header === columns[j].header)\n dooblons.push(i, j)\n }\n }\n\n const editedColumns: TableColumn[] = [];\n columns.forEach(column => editedColumns.push({...column}));\n\n if (dooblons.length > 0) {\n dooblons.forEach(index => {\n let topColumnIndex = 0;\n\n if (topColumns != null) {\n let indexTmp = index;\n while (indexTmp - topColumns[topColumnIndex].span >= 0 && topColumnIndex < topColumns.length) {\n indexTmp -= topColumns[topColumnIndex++].span;\n }\n }\n\n let nb = 1;\n editedColumns[index].header = editedColumns[index].header + ' - ' + (topColumns != null ? topColumns[topColumnIndex].header : nb++);\n })\n }\n\n return editedColumns;\n }\n\n saveBlobAsExcelFile(file: Blob, fileName: string): void {\n const EXCEL_EXTENSION = '.xlsx';\n fileSaver.saveAs(file, fileName + EXCEL_EXTENSION);\n }\n\n blobToFile(blob: Blob, fileName: string): File {\n const b: any = blob;\n b.lastModifiedDate = new Date();\n b.name = fileName;\n\n return blob as File;\n }\n\n getPublipostedWordFileFromPassedWordFile(excelFile: File, wordFile: File): CancelablePromise {\n const formData = new FormData();\n formData.append('excel_file', excelFile, excelFile.name);\n formData.append('word_file', wordFile, wordFile.name);\n\n return this.baseService.uploadFileToDownloadFile(\n `${environment.servicesUrl}/mailing/uploadPublipostageWithWordFile`,\n formData,\n CommonUtilsService.getMimeTypeFromExtension('.docx'),\n StringUtils.getRandomString(10) + '.docx');\n }\n\n getPublipostedWordFileWithoutWordFile(excelFile: File): CancelablePromise {\n const formData = new FormData();\n formData.append('excel_file', excelFile, excelFile.name);\n\n return this.baseService.uploadFileToDownloadFile(\n `${environment.servicesUrl}/mailing/uploadPublipostage`,\n formData,\n CommonUtilsService.getMimeTypeFromExtension('.docx'),\n StringUtils.getRandomString(10) + '.docx');\n }\n}\n","import {Component, ElementRef, OnInit, ViewChild} from '@angular/core';\nimport {AbstractPageComponent} from '../../interfaces/abstract-page.component';\nimport {BasicGridComponent, GridTypes} from '../../components/grid/basic-grid/basic-grid.component';\nimport {StudentsService} from '../../services/students.service';\nimport {TableColumn} from '../../models/table-column';\nimport {StudentYearInfoDTO} from '../../models/students/student-year-info-dto';\nimport {StudentCompleteDTO} from '../../models/students/student-complete-dto';\nimport {MessageService} from 'primeng/api';\nimport {SchoolYearSemesterSelectorComponent} from '../../components/school-year-semester-selector/school-year-semester-selector.component';\nimport {SchoolYearSemesterValues} from '../../models/school-year-semester-values';\nimport {Canceler} from '../../common/promises/request-canceler';\nimport {Page} from '../../annotations/page.annotation';\nimport {PagesService} from '../../services/pages.service';\nimport {FilterTypeEnum} from '../../utils/filterTypeEnum';\nimport {ColumnSizeEnum} from '../../utils/columnSizeEnum';\n\n@Component({\n selector: 'app-students',\n templateUrl: './students.component.html',\n styleUrls: ['./students.component.scss']\n})\n@Page('studentsList', 'Liste des étudiants', undefined, { icon: 'pi pi-users' })\nexport class StudentsComponent extends AbstractPageComponent implements OnInit {\n\n gridTypes = GridTypes;\n\n\n @ViewChild('grid') grid: BasicGridComponent;\n @ViewChild('mainDiv') mainDiv: ElementRef;\n @ViewChild('schoolYearSemesterSelector') schoolYearSemesterSelector: ElementRef;\n @ViewChild('bottomPart') bottomPart: ElementRef;\n @ViewChild('selector') selector: SchoolYearSemesterSelectorComponent;\n\n columns: TableColumn[] = [\n new TableColumn('student_id', 'ID', ColumnSizeEnum.SMALL_COLUMN_SIZE),\n new TableColumn('student_number', 'N° Etudiant', ColumnSizeEnum.MEDIUM_COLUMN_SIZE),\n new TableColumn('civility', 'Civ.', ColumnSizeEnum.MEDIUM_COLUMN_SIZE, 'string', true, true, FilterTypeEnum.DROPDOWN_FILTER),\n new TableColumn('name', 'Nom', ColumnSizeEnum.MEDIUM_COLUMN_SIZE, 'string', true, true, FilterTypeEnum.INPUT_FILTER),\n new TableColumn('firstname', 'Prénom', ColumnSizeEnum.MEDIUM_COLUMN_SIZE),\n new TableColumn('promotion', 'Promotion', ColumnSizeEnum.LARGE_COLUMN_SIZE, 'string', true, true, FilterTypeEnum.DROPDOWN_FILTER),\n new TableColumn('classe', 'Classe', ColumnSizeEnum.MEDIUM_COLUMN_SIZE, 'string', true, false, FilterTypeEnum.DROPDOWN_FILTER),\n new TableColumn('code', 'Code', ColumnSizeEnum.MEDIUM_COLUMN_SIZE, 'string', true, false, FilterTypeEnum.INPUT_FILTER),\n new TableColumn('option', 'Option', ColumnSizeEnum.VERY_LARGE_COLUMN_SIZE, 'string', true, false, FilterTypeEnum.DROPDOWN_FILTER),\n new TableColumn('session', 'Session', ColumnSizeEnum.MEDIUM_COLUMN_SIZE, 'string', true, false, FilterTypeEnum.DROPDOWN_FILTER),\n new TableColumn('campus', 'Campus', ColumnSizeEnum.MEDIUM_COLUMN_SIZE, 'string', true, false, FilterTypeEnum.DROPDOWN_FILTER),\n new TableColumn('trimester_name', 'Semestre', ColumnSizeEnum.MEDIUM_COLUMN_SIZE, 'string', true, false, FilterTypeEnum.DROPDOWN_FILTER),\n new TableColumn('email', 'Email', ColumnSizeEnum.VERY_LARGE_COLUMN_SIZE),\n new TableColumn('email_school', 'Email École', ColumnSizeEnum.VERY_LARGE_COLUMN_SIZE),\n new TableColumn('mobile', 'Mobile', ColumnSizeEnum.LARGE_COLUMN_SIZE),\n new TableColumn('telephone', 'Téléphone', ColumnSizeEnum.MEDIUM_COLUMN_SIZE),\n new TableColumn('address1', 'Adresse', ColumnSizeEnum.VERY_LARGE_COLUMN_SIZE),\n new TableColumn('address2', 'Adresse suite', ColumnSizeEnum.VERY_LARGE_COLUMN_SIZE),\n new TableColumn('zip_code', 'Code Postal', ColumnSizeEnum.MEDIUM_COLUMN_SIZE),\n new TableColumn('city', 'Ville', ColumnSizeEnum.MEDIUM_COLUMN_SIZE),\n new TableColumn('country', 'Pays', ColumnSizeEnum.MEDIUM_COLUMN_SIZE),\n new TableColumn('nationality', 'Nationalité', ColumnSizeEnum.MEDIUM_COLUMN_SIZE),\n new TableColumn('international', 'International', ColumnSizeEnum.MEDIUM_COLUMN_SIZE),\n new TableColumn('outside_ue', 'Hors UE', ColumnSizeEnum.MEDIUM_COLUMN_SIZE, 'boolean'),\n new TableColumn('desist_date', 'Date désistement', ColumnSizeEnum.MEDIUM_COLUMN_SIZE, 'string', true, true, FilterTypeEnum.INPUT_FILTER),\n new TableColumn('accounting_code', 'Code Comptable', ColumnSizeEnum.MEDIUM_COLUMN_SIZE),\n new TableColumn('cvec', 'CVEC', ColumnSizeEnum.MEDIUM_COLUMN_SIZE),\n new TableColumn('cvec_exoneration', 'Exonéré(e) de CVEC ?', ColumnSizeEnum.MEDIUM_COLUMN_SIZE, 'boolean'),\n new TableColumn('hyphenation_year', 'Année de césure', ColumnSizeEnum.MEDIUM_COLUMN_SIZE, 'boolean'),\n new TableColumn('csfp', 'CSFP', ColumnSizeEnum.MEDIUM_COLUMN_SIZE, 'boolean'),\n new TableColumn('registration_fee', 'Frais d\\'inscription', ColumnSizeEnum.MEDIUM_COLUMN_SIZE, 'boolean'),\n new TableColumn('scolar_fee_mod_1', 'Frais de scolarité (Modalité 1)', ColumnSizeEnum.MEDIUM_COLUMN_SIZE, 'boolean'),\n new TableColumn('scolar_fee_mod_23', 'Frais de scolarité (Modalité 2/3)', ColumnSizeEnum.MEDIUM_COLUMN_SIZE, 'boolean'),\n new TableColumn('parcoursup', 'Parcoursup', ColumnSizeEnum.MEDIUM_COLUMN_SIZE, 'boolean'),\n new TableColumn('parcoursup_desist', 'Désisté Parcoursup', ColumnSizeEnum.MEDIUM_COLUMN_SIZE, 'boolean'),\n ];\n\n data: any[] = [];\n loadingData = false;\n topColumns = [\n { span: 2, header: '' },\n { span: 3, header: 'Étudiant' },\n { span: 5, header: 'Cursus' },\n { span: 1, header: '' },\n { span: 9, header: 'Coordonnées' },\n ];\n listMode = 'registered';\n selectedData = [];\n\n publipostageMode = 'existingDocument';\n\n studentYearInfo: StudentYearInfoDTO[];\n loadingStudentYearInfo = false;\n gridScrollSizeInPx = 0;\n gridBottomSize = 0;\n schoolYearSemesterSelectorSizeInPx = 0;\n private selectedMainFilters: SchoolYearSemesterValues;\n\n exportTitle = 'Liste des étudiants';\n\n displayPublipostageDialog = false;\n publipostageSelectedFiles: any[];\n canceler: Canceler = new Canceler();\n\n\n constructor(private studentsService: StudentsService,\n private messageService: MessageService) {\n super();\n }\n\n ngOnInit(): void {\n setTimeout(() => {\n this.gridScrollSizeInPx = this.mainDiv.nativeElement.offsetHeight;\n this.schoolYearSemesterSelectorSizeInPx = this.schoolYearSemesterSelector.nativeElement.offsetHeight;\n this.gridBottomSize = this.bottomPart.nativeElement.offsetHeight + 8;\n });\n }\n\n getHelp(): string {\n return '';\n }\n\n onDataChanged(event: any[]) { }\n\n alert(test: string) {\n alert(test);\n }\n\n loadStudents(schoolId, year, trimesterId) {\n this.loadingData = true;\n\n this.resetSelectedStudents();\n\n if (this.listMode === 'registered') {\n (schoolId === 0 // id de \"toutes les écoles\"\n ? this.studentsService.getRegisteredStudentsForAllSchools(year)\n : this.studentsService.getRegisteredStudents(schoolId, year, trimesterId))\n .setCancelAction(this.canceler)\n .then((students) => this.addStudents(students, year))\n .catch(console.error)\n .finally(() => this.loadingData = false);\n } else {\n (schoolId === 0 // id de \"toutes les écoles\"\n ? this.studentsService.getDesistedStudentsForAllSchools(year)\n : this.studentsService.getDesistedStudents(schoolId, year, trimesterId))\n .setCancelAction(this.canceler)\n .then((students) => this.addStudents(students, year))\n .catch(console.error)\n .finally(() => this.loadingData = false);\n }\n }\n\n private addStudents(students: StudentCompleteDTO[], year: number): void {\n students.forEach(s => {\n s[`key`] = s.student_id;\n s[`headerAddition`] = `${s.name} ${s.firstname} [${year}]`;\n });\n this.data = students;\n }\n\n onListModeChanged() {\n this.loadStudents(this.selectedMainFilters.selectedSchoolId, this.selectedMainFilters.selectedYear, this.selectedMainFilters.selectedSemesterId);\n }\n\n onRefreshRequested() {\n this.loadStudents(this.selectedMainFilters.selectedSchoolId, this.selectedMainFilters.selectedYear, this.selectedMainFilters.selectedSemesterId);\n }\n\n onRowsSelectionChanged(data: any[]) {\n this.selectedData = data;\n\n if (this.selectedData.length === 1) {\n this.loadingStudentYearInfo = true;\n\n this.studentsService.getStudentYearInfo(2020, this.selectedData[0].student_id)\n .then((info) => this.studentYearInfo = info)\n .catch(console.error)\n .finally(() => this.loadingStudentYearInfo = false);\n }\n\n }\n\n onSendPublipostageClicked() {\n // alert('envoi publipostage');\n this.displayPublipostageDialog = true;\n }\n\n onSendEmailingClicked() {\n alert('envoi Emailing');\n }\n\n onSendSmsClicked() {\n alert('envoi SMS');\n }\n\n onSendNotificationClicked() {\n alert('envoi Notification');\n }\n\n onShowStudent(student: StudentCompleteDTO) {\n this.tabLayout.onAddTabWithData(PagesService.STUDENT, student);\n }\n\n // noinspection JSUnusedLocalSymbols\n onResize(mainDiv: HTMLDivElement, bottomPart: HTMLDivElement) {\n\n setTimeout(() => {\n this.gridScrollSizeInPx = this.mainDiv.nativeElement.offsetHeight;\n this.schoolYearSemesterSelectorSizeInPx = this.schoolYearSemesterSelector.nativeElement.offsetHeight;\n this.gridBottomSize = this.bottomPart.nativeElement.offsetHeight;\n });\n }\n\n onSemesterSelected(event: SchoolYearSemesterValues) {\n\n this.setExportTitle();\n\n this.selectedMainFilters = event;\n if (event.selectedYear > -1 && event.selectedSchoolId > -1 && event.selectedSemesterId > -1) {\n this.loadStudents(event.selectedSchoolId, event.selectedYear, event.selectedSemesterId);\n } else if (event.selectedYear === -1) {\n this.messageService.add({ severity: 'warn', summary: 'Information', detail: 'Veuillez sélectionner également une année scolaire', life: 10000 });\n }\n }\n\n onYearSelected(event: SchoolYearSemesterValues) {\n\n this.setExportTitle();\n\n this.selectedMainFilters = event;\n if (event.selectedYear > -1 && event.selectedSchoolId > -1 && event.selectedSemesterId > -1) {\n this.loadStudents(event.selectedSchoolId, event.selectedYear, event.selectedSemesterId);\n }\n }\n\n private setExportTitle() {\n this.exportTitle = `[${this.selector.getSelectedYearName()}][${this.selector.getSelectedSchoolName()}][${this.selector.getSelectedSemesterName()}]`;\n }\n\n private resetSelectedStudents() {\n this.selectedData.splice(0);\n }\n\n onValidatePublipostage(event: MouseEvent) {\n this.messageService.add({severity: 'success', summary: 'Bientôt', detail: `On validera ici l'envoi du modèle au back pour validation : ${(this.publipostageSelectedFiles && this.publipostageSelectedFiles.length === 1) ? this.publipostageSelectedFiles[0].name.substr(0, 30) : ''}`, sticky: true});\n this.displayPublipostageDialog = false;\n }\n\n importOnClick(event: any) {\n this.publipostageSelectedFiles = event.currentFiles;\n }\n\n resetPublipostageSelectedFiles() {\n this.publipostageSelectedFiles.splice(0);\n }\n\n onAllSchoolsSelected(values: SchoolYearSemesterValues) {\n if (values.selectedYear > -1 && values.selectedSchoolId > -1) {\n this.loadStudents(values.selectedSchoolId, values.selectedYear, values.selectedSemesterId);\n }\n }\n}\n","\n
    \n
    \n
    \n \n
    \n\n \n \n
    \n \n \n
    \n
    \n\n
    \n
    \n\n
    \n\n
    \n
    \n Veuillez sélectionner un ou plusieurs étudiants\n
    \n \n
    \n
    \n
    Informations annuelles
    \n
    \n \n \n \n Ecole\n Semestre\n Promotion\n Option\n Classe\n Session\n Inscrit\n Désisté\n \n \n \n \n {{info.school}}\n {{info.description}}\n {{info.promo}}\n {{info.option}}\n {{info.classe}}\n {{info.session}}\n \n \n \n \n \n
    \n
    \n
    \n
    Observations
    \n
    \n
    \n
    \n
    Message comptable
    \n
    ')\">
    \n
    \n
    \n\n \n
    \n
    \n
    {{selectedData.length}} étudiants sélectionnés.
    \n
    Veuillez limiter votre sélection à un·e étudiant·e pour voir ses informations annuelles.
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n\n\n
    \n
    Publipostage depuis un :
    \n
    \n \n \n
    \n\n
    \n
    \n
    Document (.docx) :
    \n
    \n \n \n \n \n \n
    \n
    \n
    \n\n \n \n \n \n
    \n","import {AfterViewInit, Component, ElementRef, OnInit, ViewChild} from '@angular/core';\nimport {AbstractPageComponent} from '../../../interfaces/abstract-page.component';\nimport {StudentCompleteDTO} from '../../../models/students/student-complete-dto';\nimport {Page} from '../../../annotations/page.annotation';\nimport {PagesService} from '../../../services/pages.service';\n\n@Component({\n selector: 'app-student',\n templateUrl: './student.component.html',\n styleUrls: ['./student.component.scss']\n})\n@Page(PagesService.STUDENT, 'Étudiant : ', undefined, { icon: 'pi pi-user' })\nexport class StudentComponent extends AbstractPageComponent implements OnInit, AfterViewInit {\n\n @ViewChild('bottomTabs') bottomTabs: ElementRef;\n\n student: StudentCompleteDTO;\n subTabs = [\n { value: 'profile', label: 'Profil' },\n { value: 'formations', label: 'Formations' },\n { value: 'disciplines', label: 'Matières' },\n { value: 'proofs', label: 'Justificatifs' },\n { value: 'compléments', label: 'Compléments' },\n { value: 'documents', label: 'Documents' },\n { value: 'gesTracking', label: 'Suivi GES' },\n { value: 'pikicomTracking', label: 'Suivi Pikicom' },\n { value: 'accounting', label: 'Comptabilité' },\n { value: 'billing', label: 'Facturation' },\n { value: 'sepa', label: 'SEPA' },\n { value: 'planning', label: 'Planning étudiant' },\n ];\n\n selectedTab: string;\n bottomTabsHeight = 28;\n\n constructor() {\n super();\n }\n\n ngOnInit(): void {\n this.student = this.extraData;\n this.onSubTabClicked(this.subTabs[0]);\n }\n\n getHelp(): string {\n return '';\n }\n\n onSubTabClicked(subTab: { value: string, label: string }) {\n\n this.selectedTab = subTab.value;\n\n switch (this.selectedTab) {\n case 'profile': this.loadProfile(); break;\n case 'formations': this.loadFormations(); break;\n case 'disciplines': this.loadDisciplines(); break;\n case 'proofs': this.loadProofs(); break;\n case 'compléments': this.loadComplements(); break;\n case 'documents': this.loadDocuments(); break;\n case 'gesTracking': this.loadGesTracking(); break;\n case 'pikicomTracking': this.loadPikicomTracking(); break;\n case 'accounting': this.loadAccounting(); break;\n case 'billing': this.loadBilling(); break;\n case 'sepa': this.loadSepa(); break;\n case 'planning': this.loadPlanning(); break;\n }\n }\n\n private loadProfile() {\n // TODO:\n }\n\n private loadFormations() {\n // TODO:\n }\n\n private loadDisciplines() {\n // TODO:\n }\n\n private loadProofs() {\n // TODO:\n }\n\n private loadComplements() {\n // TODO:\n }\n\n private loadDocuments() {\n // TODO:\n }\n\n private loadGesTracking() {\n // TODO:\n }\n\n private loadPikicomTracking() {\n // TODO:\n }\n\n private loadAccounting() {\n // TODO:\n }\n\n private loadBilling() {\n // TODO:\n }\n\n private loadSepa() {\n // TODO:\n }\n\n private loadPlanning() {\n // TODO:\n }\n\n ngAfterViewInit(): void {\n this.bottomTabsHeight = this.bottomTabs.nativeElement.offsetHeight;\n }\n}\n","
    \n
    \n
    \n\n\n\n \n \n test 1\n \n \n test 2\n \n \n
    \n
    \n Formations\n
    \n
    \n Matières\n
    \n
    \n Justificatifs\n
    \n
    \n Compléments\n
    \n
    \n Documents\n
    \n
    \n Suivi GES\n
    \n
    \n Suivi Pikicom\n
    \n
    \n Comptabilité\n
    \n
    \n Facturation\n
    \n
    \n SEPA\n
    \n
    \n Planning étudiant\n
    \n
    \n\n
    \n
    {{ subTab.label }}
    \n
    \n
    \n","import {Component, Input, OnInit} from '@angular/core';\n\n@Component({\n selector: 'app-spinner',\n templateUrl: './spinner.component.html',\n styleUrls: ['./spinner.component.scss']\n})\nexport class SpinnerComponent implements OnInit {\n @Input() strokeWidth = '6';\n @Input() spinnerWidth = '50px';\n @Input() spinnerHeight = '50px';\n @Input() fillColor = 'transparent';\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","\n","import {Component, OnInit, ViewChild} from '@angular/core';\nimport {Page} from '../../../annotations/page.annotation';\nimport {PagesService} from '../../../services/pages.service';\nimport {AbstractPageComponent} from '../../../interfaces/abstract-page.component';\nimport {BasicGridComponent, GridTypes} from '../../../components/grid/basic-grid/basic-grid.component';\nimport {TableColumn} from '../../../models/table-column';\nimport {DiplomasService} from '../../../services/diplomas.service';\nimport {DiplomaWithCertifierDto} from '../../../models/diplomas/diploma-with-certifier-dto';\nimport {Canceler} from '../../../common/promises/request-canceler';\nimport {FilterTypeEnum} from '../../../utils/filterTypeEnum';\nimport {ColumnSizeEnum} from '../../../utils/columnSizeEnum';\nimport {ConfirmationService, MessageService} from 'primeng/api';\nimport {ErrorService} from '../../../services/error.service';\n\n@Component({\n selector: 'app-diplomas',\n templateUrl: './diplomas.component.html',\n styleUrls: ['./diplomas.component.scss']\n})\n@Page(PagesService.DIPLOMAS_LIST, 'Gestion des dipômes/titres', undefined, {icon: 'pi pi-user'})\nexport class DiplomasComponent extends AbstractPageComponent implements OnInit {\n\n canceler: Canceler = new Canceler();\n\n //#region data\n diplomasData: DiplomaWithCertifierDto[] = [];\n selectedDiplomas: DiplomaWithCertifierDto[] = [];\n //#endregion\n\n //#region grid\n @ViewChild('diplomasGrid') diplomasGrid: BasicGridComponent;\n gridTypes = GridTypes;\n loadingDiplomas = false;\n\n topColumns = [\n {span: 1, header: 'Certificateur'},\n {span: 5, header: 'Diplôme/titre'},\n {span: 2, header: 'Enregistrement'},\n {span: 2, header: ''}\n ];\n\n diplomasColumns: TableColumn[] = [\n new TableColumn('certifier_name', 'Nom', ColumnSizeEnum.SMALL_COLUMN_SIZE, 'string', true, true, FilterTypeEnum.DROPDOWN_FILTER),\n new TableColumn('type', 'Type', ColumnSizeEnum.EXTRA_SMALL_COLUMN_SIZE, 'string', true, true, FilterTypeEnum.DROPDOWN_FILTER),\n new TableColumn('code', 'RNCP', ColumnSizeEnum.EXTRA_SMALL_35_COLUMN_SIZE, 'string', true, true, FilterTypeEnum.INPUT_FILTER),\n new TableColumn('code_learning', 'App.', ColumnSizeEnum.EXTRA_SMALL_30_COLUMN_SIZE, 'string', true, true, FilterTypeEnum.INPUT_FILTER),\n new TableColumn('name', 'Intitulé', ColumnSizeEnum.VERY_LARGE_300_COLUMN_SIZE, 'string', true, true, FilterTypeEnum.INPUT_FILTER),\n new TableColumn('acronym', 'Acr.', ColumnSizeEnum.EXTRA_SMALL_30_COLUMN_SIZE, 'string', true, true, FilterTypeEnum.INPUT_FILTER),\n new TableColumn('start_delivery_date', 'Début', ColumnSizeEnum.DATE_WITHOUT_TIME_COLUMN_SIZE, 'date', true, true, FilterTypeEnum.INPUT_FILTER),\n new TableColumn('end_delivery_date', 'Fin', ColumnSizeEnum.DATE_WITHOUT_TIME_COLUMN_SIZE, 'date', true, true, FilterTypeEnum.INPUT_FILTER),\n new TableColumn('diploma_id', 'ID', ColumnSizeEnum.EXTRA_SMALL_30_COLUMN_SIZE, 'number', true, true, FilterTypeEnum.INPUT_FILTER),\n new TableColumn('is_active', 'Actif', ColumnSizeEnum.EXTRA_SMALL_35_COLUMN_SIZE, 'boolean', true, true, FilterTypeEnum.DROPDOWN_FILTER)\n ];\n\n //#endregion\n\n constructor(private confirmationService: ConfirmationService,\n private errorService: ErrorService,\n private messageService: MessageService,\n private diplomasService: DiplomasService) {\n super();\n if (this.diplomasService) {\n this.diplomasService.listen().subscribe(() => this.onDataChanged());\n }\n }\n\n ngOnInit(): void {\n this.loadDiplomas();\n }\n\n getHelp(): string {\n return 'Cette interface liste l\\'ensemble des titres et diplômes utilisés dans nos kits et nos sessions de formation.\\n' +\n '\\n' +\n 'Pour les titres/diplômes, cette interface permet :\\n' +\n '- Lister l\\'ensemble des titres/diplômes.\\n' +\n '- Rechercher une information sur l\\'ensemble des titres/diplômes.\\n' +\n '- Filtrer la liste.\\n' +\n '- Exporter la liste au format Excel.\\n' +\n '\\n' +\n 'Pour un titre/diplôme, cette interface permet :\\n' +\n '- Afficher le détail du titre/diplôme. \\n' +\n '- Ajouter un titre/diplôme.\\n' +\n '- Modifier les informations du titre/diplôme.\\n' +\n '- Désactiver le titre/diplôme.\\n' +\n '- Supprimer le titre/diplôme.\\n' +\n '- Afficher la liste des blocs de compétences.\\n' +\n '- Ajouter un bloc de compétence.\\n' +\n '- Modifier un bloc de compétence.\\n' +\n '- Supprimer un bloc de compétence.\\n' +\n '- Consulter l\\'historique des modifications (A venir).\\n';\n }\n\n onRefreshRequested(): void {\n this.loadDiplomas();\n }\n\n onDataChanged(): void {\n this.loadDiplomas();\n }\n\n onRowsSelectionChanged(diplomas: DiplomaWithCertifierDto[]): void {\n this.selectedDiplomas = diplomas;\n }\n\n onShowDiploma(diploma: DiplomaWithCertifierDto, addMode: boolean): void {\n this.tabLayout.onAddTabWithDataAndHeader(PagesService.DIPLOMA, diploma, addMode ? `Création d'un titre/diplôme` : `TITRE/DIPLÔME : ${diploma.code}`);\n }\n\n onDelete(): void {\n const confirmationMessage = 'Vous êtes sur le point de supprimer ' + this.selectedDiplomas.length + ' titre(s).
    Êtes-vous sûr·e ?';\n\n this.confirmationService.confirm({\n message: confirmationMessage,\n header: 'Suppression du(es) titre(s) diplôme(s) sélectionné(s)',\n icon: 'pi pi-ban',\n acceptLabel: 'Oui',\n rejectLabel: 'Annuler',\n key: 'deleteDiplomaDialog',\n closeOnEscape: true,\n accept: () => this.deleteDiploma()\n });\n }\n\n private loadDiplomas(): void {\n this.loadingDiplomas = true;\n this.diplomasService.getStructuresDiplomasWithStructure()\n .setCancelAction(this.canceler)\n .then(diplomas => {\n diplomas.forEach(d => d.certifier_name = d.certifier.certifier_name);\n this.diplomasData = diplomas.filter(d => d.type !== 'BTS');\n })\n .catch(error => this.errorService.showError(error))\n .finally(() => this.loadingDiplomas = false);\n }\n\n\n isBTS(diploma: DiplomaWithCertifierDto): boolean {\n return diploma && diploma.type === 'BTS';\n }\n\n\n private deleteDiploma(): void {\n const successMessage = this.selectedDiplomas.length === 1\n ? 'Le titre/diplôme sélectionné a été supprimé.'\n : 'Les ' + this.selectedDiplomas.length + ' titres/diplômes sélectionnés ont été supprimés.';\n\n this.diplomasService.deleteSchoolsDiplomas(this.selectedDiplomas)\n .then(() => this.messageService.add({\n severity: 'success',\n summary: 'Suppression effectuée',\n detail: successMessage,\n life: 10000\n }))\n .catch((error) => {\n if (error.status === 409) {\n this.errorService.showCustomErrorToast({\n is_visible: true,\n header: 'Erreur',\n message: `Titre(s) ou diplôme(s) encore affecté(s) à un stage.`\n }, 5000);\n } else {\n this.errorService.showError(error);\n }\n })\n .finally(() => {\n this.selectedDiplomas = [];\n this.loadDiplomas();\n });\n }\n}\n","\n \n
    \n \n \n \n
    \n
    \n
    \n\n\n\n","import {Injectable} from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DateUtilsService {\n FRENCH_DAYS = [\n 'Dimanche',\n 'Lundi',\n 'Mardi',\n 'Mercredi',\n 'Jeudi',\n 'Vendredi',\n 'Samedi',\n ];\n ONE_YEAR = 31536000000;\n ONE_DAY = 86400000;\n ONE_HOUR = 3600000;\n ONE_MINUTE = 60000;\n ONE_SECOND = 1000;\n ONE_MONTH = this.ONE_YEAR / 12;\n SEVEN_DAYS = 7 * this.ONE_DAY;\n NINETY_MINUTES = 90 * this.ONE_MINUTE;\n FIFTEEN_MINUTES = 15 * this.ONE_MINUTE;\n FIVE_MINUTES = 5 * this.ONE_MINUTE;\n JANUARY = 0;\n FEBRUARY = 1;\n MARCH = 2;\n APRIL = 3;\n MAY = 4;\n JUNE = 5;\n JULY = 6;\n AUGUST = 7;\n SEPTEMBER = 8;\n OCTOBER = 9;\n NOVEMBER = 10;\n DECEMBER = 11;\n\n getFrenchDayNameFromTimeStamp(timestamp: number): string | null {\n if (timestamp <= 0) {\n return null;\n }\n return this.FRENCH_DAYS[new Date(timestamp).getDay() % 7];\n }\n\n toTwoDigitsDate(n: number): string {\n return (n < 10 && n >= 0) ? '0' + n : n.toString();\n }\n\n formatDateToString(date: Date): string {\n return date.getUTCFullYear() + '-' + this.toTwoDigitsDate(date.getUTCMonth() + 1) + '-' + this.toTwoDigitsDate(date.getUTCDate()) + 'T'\n + this.toTwoDigitsDate(date.getUTCHours()) + ':' + this.toTwoDigitsDate(date.getUTCMinutes())\n + ':' + this.toTwoDigitsDate(date.getUTCSeconds());\n }\n\n getDisplayableFrenchDateWithoutTime(date: Date): string {\n return this.toTwoDigitsDate(date.getDate()) + '/' + this.toTwoDigitsDate(date.getMonth() + 1) + '/' + date.getFullYear();\n }\n\n getDisplayableFrenchDayAndMonthInText(date: Date): string {\n return date.getDate() + ' ' + this.shortenFrenchMonthName(this.getDisplayableFrenchMonth(date.getMonth()));\n }\n\n getDisplayableFrenchDayMonthAndYearInText(date: Date): string {\n return date.getDate()\n + ' ' + this.shortenFrenchMonthName(this.getDisplayableFrenchMonth(date.getMonth()))\n + ' ' + date.getUTCFullYear();\n }\n\n getDisplayableFrenchMonth(n: number): string {\n switch (n) {\n case 0:\n return 'janvier';\n case 1:\n return 'février';\n case 2:\n return 'mars';\n case 3:\n return 'avril';\n case 4:\n return 'mai';\n case 5:\n return 'juin';\n case 6:\n return 'juillet';\n case 7:\n return 'août';\n case 8:\n return 'septembre';\n case 9:\n return 'octobre';\n case 10:\n return 'novembre';\n case 11:\n return 'décembre';\n default:\n return '';\n }\n }\n\n shortenFrenchMonthName(name: string): string {\n let shortName = '';\n if (name.length < 5) {\n shortName = name;\n } else if (name === 'juillet') {\n shortName = 'juill.';\n } else if (name === 'février' || name === 'janvier' || name === 'septembre') {\n shortName = name.slice(0, 4) + '.';\n } else {\n shortName = name.slice(0, 3) + '.';\n }\n return shortName;\n }\n\n adaptTimestampToDisplayableFrenchDateWithoutTime(timestamp: number): string {\n return this.getDisplayableFrenchDateWithoutTime(new Date(timestamp));\n }\n\n getMinutesBetweenTwoTimestamps(start: number, end: number): number {\n return Math.floor((end - start) / 60000);\n }\n\n getHoursBeetweenTwoTimestamps(start: number, end: number): number {\n return Math.floor(Math.floor((end - start) / 1000) / 3600) % 24;\n }\n\n areSameSlot(timestamp1: number, timestamp2: number): boolean {\n const date1 = new Date(timestamp1);\n const date2 = new Date(timestamp2);\n\n return date1.getHours() === date2.getHours() && date1.getMinutes() === date2.getMinutes();\n }\n\n /**\n * Retourne le nombre de semaine de l'année passée en paramètre\n * @param year: année\n */\n getWeekCountForYear(year: number): number {\n const when = new Date(year, 0, 1);\n const testedYear = when.getFullYear();\n const dayNumberOfFirstDay = this.getDayNumberOfDate(year, 0, 1);\n\n if (dayNumberOfFirstDay === 4) { // l'année commence un jeudi\n return 53;\n } else {\n if (dayNumberOfFirstDay === 3) { // l'année commence un mercredi\n if ((testedYear / 400) - (Math.floor(testedYear / 400)) === 0) { // test du 1er cas d'année bissextile\n return 53;\n } else {\n if ((testedYear / 4) - (Math.floor(testedYear / 4)) === 0) { // test du 2eme cas d'année bissextile\n if ((testedYear / 100) - (Math.floor(testedYear / 100)) === 0) { // test du 2eme cas d'année bissextile\n return 52;\n } else {\n return 53;\n }\n } else {\n return 52;\n }\n }\n } else {\n return 52;\n }\n }\n }\n\n /**\n * Retourne pour une année et un numéro de semaine donné, la date du mercredi.\n * @param week => { year, weekNumber }\n */\n adaptWeekToWednesdayDate(week: any): Date {\n // On calcul le total de jours entre le 1er janvier et le lundi de la semaine\n const totalDaysFor1stJanuaryWeek = this.getTotalDaysFromCurrentYearInAWeek(week.year, 0, 1);\n let totalDaysGones;\n if (totalDaysFor1stJanuaryWeek >= 4) {\n totalDaysGones = (1 + (week.weekNumber - 1) * 7); // 1st of January + 7 days for each week\n } else {\n totalDaysGones = (1 + (week.weekNumber - 1) * 7) + totalDaysFor1stJanuaryWeek; // 1st of January + 7 days for each week\n }\n const weekBeginDate = new Date(Date.UTC(week.year, 0, totalDaysGones));\n\n // Calcul du nombre de jour d'écart en entre le jour de la semaine de la date de début et mercredi\n const wednesdayOffset = 3 - weekBeginDate.getDay();\n return new Date(Date.UTC(week.year, 0, totalDaysGones + wednesdayOffset));\n }\n\n /**\n * Retourne pour la date passée en paramètre, le nombre de jour de la semaine appartenant à l'année de la semaine.\n * @param year => année\n * @param month => mois\n * @param day => jour\n */\n getTotalDaysFromCurrentYearInAWeek(year: number, month: number, day: number): number {\n const dayNumberOfSearchDate = this.getDayNumberOfDate(year, month, day);\n const daysGonesForCurrentYear = this.getDaysGonesForCurrentYear(year, month, day);\n const when = new Date(year, month, day);\n\n const daysLeftForCurrentYear = ((Date.UTC(year + 1, 0, 1, 0, 0, 0) - Date.UTC(year, when.getMonth(), when.getDate(), 0, 0, 0))\n / 1000 / 60 / 60 / 24\n ) - 1;\n\n if (daysGonesForCurrentYear < (dayNumberOfSearchDate + 1)) {\n return daysGonesForCurrentYear + (7 - (dayNumberOfSearchDate));\n } else {\n if (daysLeftForCurrentYear > (7 - (dayNumberOfSearchDate))) {\n return 7;\n } else {\n return (dayNumberOfSearchDate) + daysLeftForCurrentYear;\n }\n }\n }\n\n getWeek(year: number, month: number, day: number): number {\n const daysGonesForCurrentYear = this.getDaysGonesForCurrentYear(year, month, day);\n const totalDaysFromCurrentYearInTheWeek = this.getTotalDaysFromCurrentYearInAWeek(year, month, day);\n\n if (daysGonesForCurrentYear > 362) {\n if (totalDaysFromCurrentYearInTheWeek >= 4) {\n return this.getWeekCountForYear(year);\n } else {\n return 1;\n }\n } else {\n if (daysGonesForCurrentYear >= 4) {\n const totalDaysFromCurrentYearInTheFirstWeek = this.getTotalDaysFromCurrentYearInAWeek(year, 0, 1);\n if (totalDaysFromCurrentYearInTheFirstWeek >= 4) {\n return Math.floor((daysGonesForCurrentYear - totalDaysFromCurrentYearInTheFirstWeek) / 7) + 2;\n } else {\n return Math.floor((daysGonesForCurrentYear - totalDaysFromCurrentYearInTheFirstWeek) / 7) + 1;\n }\n } else {\n if (totalDaysFromCurrentYearInTheWeek >= 4) {\n return 1;\n } else {\n return this.getWeekCountForYear(year - 1);\n }\n }\n }\n }\n\n getWeekFromDate(date: Date): number {\n return this.getWeek(date.getFullYear(), date.getMonth(), date.getDate());\n }\n\n getWeekFromTimestamp(timestamp: number): number {\n return this.getWeekFromDate(new Date(timestamp));\n }\n\n isCurrentWeek(weekNumber: number, year: number): boolean {\n const now = new Date(Date.now());\n return weekNumber === this.getWeekFromDate(now) && year === now.getFullYear();\n }\n\n addDays(date: string | number | Date, days: number): Date {\n const result = new Date(date);\n result.setDate(result.getDate() + days);\n return result;\n }\n\n convertMinutesToHHmm(totalMinutes: number): string {\n const minutesPart = Math.abs(totalMinutes) % 60;\n const firstMinuteDigit = (minutesPart < 10) ? '0' : '';\n if (totalMinutes >= 0) {\n return Math.floor(totalMinutes / 60) + ' h ' + firstMinuteDigit + minutesPart;\n } else if (totalMinutes / 60 > -1) {\n return '-0 h ' + firstMinuteDigit + minutesPart;\n } else {\n return Math.ceil(totalMinutes / 60) + ' h ' + firstMinuteDigit + minutesPart;\n }\n }\n\n offsetStartDate(startDate: number): number {\n return startDate + 28800000; // + 8 heures\n }\n\n offsetEndDate(endDate: number): number {\n return endDate + 75600000; // +21 heures\n }\n\n areSameDay(timestamp1: number | string | Date, timestamp2: number | string | Date): boolean {\n const date1 = new Date(timestamp1);\n const date2 = new Date(timestamp2);\n\n return date1.getFullYear() === date2.getFullYear()\n && date1.getMonth() === date2.getMonth()\n && date1.getDate() === date2.getDate();\n }\n\n isSameDayOrAfter(timestamp1: string | number | Date, timestamp2: string | number | Date): boolean {\n const date1 = new Date(timestamp1);\n const date2 = new Date(timestamp2);\n\n return date2.getFullYear() > date1.getFullYear() // si l'année est plus grande\n || date2.getFullYear() === date1.getFullYear() // si l'année est le meme mais le mois plus grand\n && date2.getMonth() > date1.getMonth()\n || date2.getFullYear() === date1.getFullYear() // si le mois est le meme mais le jour plus 'grand'\n && date2.getMonth() === date1.getMonth()\n && date2.getDate() >= date1.getDate();\n }\n\n getMondayOf(timestamp: number): Date {\n let newTimestamp: number;\n if (timestamp % this.SEVEN_DAYS <= (3 * this.ONE_DAY) || new Date(timestamp).getDay() === 0) {\n newTimestamp = timestamp - (timestamp % this.SEVEN_DAYS) - 3 * this.ONE_DAY;\n } else {\n newTimestamp = timestamp - (timestamp % this.SEVEN_DAYS) + 4 * this.ONE_DAY;\n }\n return new Date(newTimestamp);\n }\n\n createDate(timestamp: number, hours: number, minutes: number): number {\n const originalDate = new Date(timestamp);\n originalDate.setHours(hours);\n originalDate.setMinutes(minutes);\n originalDate.setSeconds(0);\n originalDate.setMilliseconds(0);\n return originalDate.getTime();\n }\n\n convertMiliSecondsToHHMM(miliseconds: number): string {\n const minutes = miliseconds / 60000;\n\n return this.convertMinutesToHHmm(minutes);\n }\n\n mergeDayAndTime(dayDate: Date, timeDate: Date): Date {\n dayDate = new Date(dayDate);\n timeDate = new Date(timeDate);\n\n return new Date(dayDate.getFullYear(),\n dayDate.getMonth(),\n dayDate.getDate(),\n timeDate.getHours(),\n timeDate.getMinutes(),\n timeDate.getSeconds(),\n 0);\n }\n\n /**\n * Retourne le nombre de jour écoulés entre le 1er jour de l'année et la date passée en paramètre\n * @param year => année\n * @param month => mois\n * @param day => jour\n */\n getDaysGonesForCurrentYear(year: number, month: number, day: number): number {\n const when = new Date(year, month, day);\n\n const now = Date.UTC(year, when.getMonth(), when.getDate(), 0, 0, 0);\n const beginYear = Date.UTC(year, 0, 1, 0, 0, 0);\n if (now === beginYear) {\n return 1;\n } else {\n return ((Date.UTC(year, when.getMonth(), when.getDate(), 0, 0, 0) - Date.UTC(year, 0, 1, 0, 0, 0))\n / 1000 / 60 / 60 / 24\n ) + 1;\n }\n }\n\n /**\n * Retourne une valeur de 1 à 7 correspondant au jour de la semaine passé en paramètre.\n * lundi = 1, mardi = 2, mercredi = 3, jeudi = 4, vendredi = 5, samedi = 6, dimanche = 7\n * @param year => année\n * @param month => mois\n * @param day => jour\n */\n getDayNumberOfDate(year: number, month: number, day: number): number {\n const when = new Date(year, month, day);\n\n let dayNumberOfDate = when.getDay();\n if (dayNumberOfDate === 0) {\n dayNumberOfDate = 7;\n }\n return dayNumberOfDate;\n }\n\n convertMinutesToMiliSeconds(minutes: number): number {\n return minutes * this.ONE_MINUTE;\n }\n\n getDaysLeftForCurrentYear(year: number, month: number, day: number): number {\n const when = new Date(year, month, day);\n const now = Date.UTC(year, when.getMonth(), when.getDate(), 0, 0, 0);\n return ((Date.UTC(year + 1, 0, 1, 0, 0, 0) - now)\n / 1000 / 60 / 60 / 24\n );\n }\n\n getYearOfWeek(date: Date): number {\n const monday = this.getMondayOf(date.getTime());\n const sunday = this.addDays(monday, 6);\n if (monday.getFullYear() === sunday.getFullYear()) {\n return monday.getFullYear();\n } else {\n const daysLeft = this.getDaysLeftForCurrentYear(monday.getFullYear(), monday.getMonth(), monday.getDate());\n if (daysLeft >= 4) {\n return monday.getFullYear();\n } else {\n return sunday.getFullYear();\n }\n }\n }\n\n getStartOfDay(timestamp: number): number {\n return timestamp - (timestamp % this.ONE_DAY);\n }\n\n getEndOfDay(timestamp: number): number {\n return this.getStartOfDay(timestamp) + this.ONE_DAY - 1;\n }\n\n getTimestampHoursBeforeTimestamp(timestamp: number, hours: number): number {\n return timestamp - (hours * 3600000);\n }\n\n convertDateToTimestamp(date: Date): number {\n return (date.getTime() / 1000);\n }\n}\n","import {\n Component,\n ComponentFactoryResolver,\n EventEmitter,\n Input,\n OnInit,\n Output,\n Predicate,\n QueryList,\n ViewChild,\n ViewChildren\n} from '@angular/core';\nimport {TabItem} from 'src/app/models/tab-item';\nimport {TabDirective} from 'src/app/directives/tab.directive';\nimport {TabComponent} from '../tab.component';\nimport {TabView} from 'primeng/tabview';\nimport {PagesService} from '../../services/pages.service';\nimport {AbstractPageComponent} from '../../interfaces/abstract-page.component';\nimport {StringUtils} from '../../utils/string-utils';\n\n@Component({\n selector: 'app-tab-layout',\n templateUrl: './tab-layout.component.html',\n styleUrls: ['./tab-layout.component.scss']\n})\nexport class TabLayoutComponent implements OnInit {\n\n @Input() tab: TabItem;\n\n currentTabIndex = 0;\n\n tabs: TabItem[] = [];\n\n helps: { [id: string]: string; } = { null: 'test' };\n\n @ViewChild('closableTabView') closableTabView: TabView;\n @ViewChildren(TabDirective) appTab: QueryList;\n\n @Output() tabSelected = new EventEmitter();\n\n constructor(private componentFactoryResolver: ComponentFactoryResolver,\n private pagesService: PagesService) { }\n\n ngOnInit(): void {}\n\n loadComponent() {\n const tabItem = this.tabs[this.tabs.length - 1];\n\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(tabItem.component);\n\n const viewContainerRef = this.appTab.last.viewContainerRef;\n viewContainerRef.clear();\n\n const pageId = StringUtils.getRandomString(10);\n const componentRef = viewContainerRef.createComponent(componentFactory);\n\n tabItem.data[`pageId`] = pageId;\n componentRef.instance.data = tabItem.data;\n componentRef.instance[`extraData`] = tabItem.data.extraData;\n\n if (componentRef.instance[`extraData`] == null) {\n componentRef.instance[`extraData`] = {};\n }\n componentRef.instance[`extraData`][`pageId`] = pageId;\n componentRef.instance[`tabLayout`] = this;\n\n this.currentTabIndex = 0;\n this.currentTabIndex = this.tabs.length;\n this.onTabChanged({index : this.currentTabIndex });\n this.scrollToActiveTab();\n\n }\n\n private scrollToActiveTab() {\n const destinationY = 93 + this.tabs.slice(0, this.currentTabIndex)\n .map(t => t.headerWidth)\n .reduce((accumulator, currentValue) => accumulator + currentValue);\n\n this.closableTabView.navbar.nativeElement.scrollTo(destinationY, 0);\n }\n\n onTabChanged(event: any) {\n setTimeout(() => {\n this.currentTabIndex = event.index;\n const key = this.tabs[this.currentTabIndex - 1]?.data?.id;\n this.tabSelected.emit(this.currentTabIndex > 0\n ? (key\n ? this.helps[key]\n : null)\n : null);\n }, 0);\n }\n\n handleClose(event: any) {\n event.close();\n this.closeTabAtIndex(event.index);\n }\n\n private closeTabAtIndex(index: number) {\n this.tabs.splice(index - 1, 1);\n this.tabSelected.emit(null);\n this.onClosedTabAtIndex(index);\n }\n\n private onClosedTabAtIndex(index: number) {\n if (index === this.currentTabIndex) {\n this.onClosedCurrentTab();\n return;\n }\n const closeTabAtLeftOfCurrentTab: boolean = index < this.currentTabIndex;\n const newCurrentIndex: number = closeTabAtLeftOfCurrentTab\n ? this.currentTabIndex - 1\n : this.currentTabIndex;\n this.onTabChanged({index: newCurrentIndex});\n }\n\n private onClosedCurrentTab() {\n this.currentTabIndex -= 1;\n const closeLastTab: boolean = this.currentTabIndex >= this.tabs.length;\n const newCurrentIndex = closeLastTab\n ? this.tabs.length\n : this.currentTabIndex + 1;\n this.onTabChanged({index: newCurrentIndex});\n }\n\n closeCurrentTab() {\n this.closeTabAtIndex(this.currentTabIndex);\n }\n\n public onAddTab(type: string) {\n this.addTab(type, undefined, o => o.data.id === type && !o.data.extraData);\n }\n\n public onAddTabWithData(type: string, data: any) {\n this.addTab(type, data, o => o.data.id === type && o.data.extraData.key === data.key);\n }\n\n public onAddTabWithDataAndHeader(type: string, data: any, header: string) {\n this.addTab(type, data, o => o.data.id === type && o.data.extraData.key === data.key, header);\n }\n\n private addTab(type: string, data: any, predicate: Predicate, headerName: string = null) {\n const existingTabIndex = this.tabs.findIndex(predicate);\n\n // on laisse la possibilité à l'utilisateur de dupliquer l'écran des requêtes\n if (existingTabIndex !== -1 && !type.includes(PagesService.QUERY) && !type.includes(PagesService.REPORT)) {\n this.currentTabIndex = existingTabIndex + 1; // on décale pour tenir compte de l'accueil\n this.scrollToActiveTab();\n return;\n }\n\n // on renomme les requêtes lorsqu'il s'agit de doublons\n if (type.includes(PagesService.QUERY) || type.includes(PagesService.REPORT)) {\n const existingQueries = this.tabs.filter(page => page.header.includes(headerName));\n let finalIndex = 0;\n if (existingQueries.length > 0) {\n for (const query of existingQueries) {\n query.header = headerName + ' (' + (finalIndex + 1) + ')';\n finalIndex++;\n }\n headerName = headerName + ' (' + (finalIndex + 1) + ')';\n }\n }\n\n const componentsMapElement = this.pagesService.getComponentsMap()[type];\n\n if (componentsMapElement === undefined) {\n return;\n }\n\n const createdComponentForHelp = this.instantiateClass(componentsMapElement.type);\n this.helps[type] = createdComponentForHelp.getHelp();\n\n this.tabs.push(new TabItem(\n componentsMapElement.type,\n headerName ? headerName : componentsMapElement.header,\n data?.headerAddition,\n this.getHeaderWidth(componentsMapElement.header, data?.headerAddition),\n {id: type, extraData: data, ...componentsMapElement.data}));\n\n setTimeout(() => {\n this.loadComponent();\n }, 0);\n }\n\n // noinspection JSMethodCanBeStatic\n private instantiateClass(Clazz: new() => T ) {\n return new Clazz();\n }\n\n private getHeaderWidth(header, headerAddition: any) {\n return (header.length * 6.5) + 110 + ((headerAddition) ? (headerAddition.length * 6.5) : 0);\n }\n}\n","\n \n \n \n \n {{ tab.header + (tab.headerAddition ? tab.headerAddition : '') }}\n \n \n\n\n","import { Directive, ViewContainerRef } from '@angular/core';\n\n@Directive({\n selector: '[appTab]'\n})\nexport class TabDirective {\n\n constructor(public viewContainerRef: ViewContainerRef) { }\n\n}\n","import {EventEmitter, Component, OnInit, Output} from '@angular/core';\n\n@Component({\n selector: 'app-remove-cross',\n templateUrl: './remove-cross.component.html',\n styleUrls: ['./remove-cross.component.scss']\n})\nexport class RemoveCrossComponent implements OnInit {\n\n @Output()\n crossPressed = new EventEmitter();\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","
    X
    \n","export interface Session {\n name: string;\n value: string;\n}\n\nexport const sessions = [\n {name: 'TOUTES', value: 'TOUTES'},\n {name: 'SEPTEMBRE', value: 'SEPTEMBRE'},\n {name: 'OCTOBRE', value: 'OCTOBRE'},\n {name: 'NOVEMBRE', value: 'NOVEMBRE'},\n {name: 'DECEMBRE', value: 'DECEMBRE'},\n {name: 'JANVIER', value: 'JANVIER'},\n {name: 'FEVRIER', value: 'FEVRIER'},\n {name: 'MARS', value: 'MARS'},\n {name: 'AVRIL', value: 'AVRIL'},\n {name: 'MAI', value: 'MAI'},\n {name: 'JUIN', value: 'JUIN'},\n {name: 'JUILLET', value: 'JUILLET'},\n {name: 'AOUT', value: 'AOUT'}\n ];\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n NgModule,\n Output,\n QueryList,\n Renderer2,\n TemplateRef,\n ViewEncapsulation\n} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {MenuItem, PrimeTemplate} from 'primeng/api';\nimport {RouterModule} from '@angular/router';\nimport {RippleModule} from 'primeng/ripple';\nimport {MainMenuItem} from './main-menu-item';\nimport {EntryDTO} from '../../models/interfaces/entry-dto';\nimport {ModuleDTO} from '../../models/interfaces/module-dto';\nimport {EntryTypeDTO} from '../../models/entry-type-dto';\nimport {UserPreferencesService} from '../../services/user-preferences.service';\nimport {VersionService} from '../../version.service';\n\n@Component({\n templateUrl: 'main-menu.component.html',\n selector: 'app-mainmenu',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['./megamenu.scss']\n})\nexport class MainMenuComponent implements AfterContentInit {\n\n @Output() menuCollapseClicked = new EventEmitter();\n\n @Input() model: MainMenuItem[];\n\n @Input() style: any;\n\n @Input() styleClass: string;\n\n @Input() orientation = 'horizontal';\n\n @Input() autoZIndex = true;\n\n @Input() baseZIndex = 0;\n\n @Input() isMenuCollapsed = true;\n\n @ContentChildren(PrimeTemplate) templates: QueryList;\n\n flattenedEntries: Map = new Map();\n\n version = VersionService.getVersion();\n\n activeItem: any;\n\n documentClickListener: any;\n\n startTemplate: TemplateRef;\n\n endTemplate: TemplateRef;\n hoveredCategoryEntryTypes: any[];\n menuOpened = false;\n\n\n constructor(\n public elementRef: ElementRef,\n public renderer: Renderer2,\n public cd: ChangeDetectorRef,\n private userPreferenceService: UserPreferencesService,\n ) {\n }\n\n ngAfterContentInit() {\n this.templates.forEach((item) => {\n switch (item.getType()) {\n case 'start':\n this.startTemplate = item.template;\n break;\n\n case 'end':\n this.endTemplate = item.template;\n break;\n }\n });\n\n\n this.setFlattenMenu();\n }\n\n\n @HostListener('document:click', ['$event.target'])\n public onPageClick(targetElement) {\n const clickedInside = this.elementRef.nativeElement.contains(targetElement);\n if (!clickedInside) {\n this.menuOpened = false;\n }\n }\n\n onModuleMouseEnter(event, menuitem: MainMenuItem) {\n if (this.menuOpened) {\n if (menuitem.disabled) {\n event.preventDefault();\n return;\n }\n\n if (this.activeItem) {\n this.activeItem = menuitem;\n }\n }\n }\n\n onModuleClick(event, item: MenuItem | MainMenuItem) {\n if (item.disabled) {\n event.preventDefault();\n return;\n }\n\n if (!item.url) {\n event.preventDefault();\n }\n\n if (item.command) {\n item.command({\n originalEvent: event,\n item\n });\n }\n\n if (item.items) {\n if (this.activeItem && this.activeItem === item) {\n this.activeItem = null;\n this.menuOpened = false;\n this.unbindDocumentClickListener();\n } else {\n this.activeItem = item;\n this.menuOpened = true;\n this.bindDocumentClickListener();\n }\n }\n }\n\n itemClick(event, item: MenuItem | MainMenuItem) {\n if (item.disabled) {\n event.preventDefault();\n return;\n }\n\n if (!item.url) {\n event.preventDefault();\n }\n\n if (item.command) {\n item.command({\n originalEvent: event,\n item\n });\n }\n\n this.activeItem = null;\n }\n\n getColumnClass(menuitem: MainMenuItem) {\n const length = menuitem.items ? menuitem.items.length : 0;\n let columnClass;\n switch (length) {\n case 2:\n columnClass = 'p-megamenu-col-6';\n break;\n\n case 3:\n columnClass = 'p-megamenu-col-4';\n break;\n\n case 4:\n columnClass = 'p-megamenu-col-3';\n break;\n\n case 6:\n columnClass = 'p-megamenu-col-2';\n break;\n\n default:\n columnClass = 'p-megamenu-col-12';\n break;\n }\n\n return columnClass;\n }\n\n bindDocumentClickListener() {\n if (!this.documentClickListener) {\n this.documentClickListener = (event) => {\n if (this.elementRef && !this.elementRef.nativeElement.contains(event.target)) {\n this.activeItem = null;\n this.unbindDocumentClickListener();\n this.cd.markForCheck();\n }\n };\n\n document.addEventListener('click', this.documentClickListener);\n }\n }\n\n unbindDocumentClickListener() {\n if (this.documentClickListener) {\n document.removeEventListener('click', this.documentClickListener);\n this.documentClickListener = null;\n }\n }\n\n onCategoryHover(event: MouseEvent, entryTypes: MenuItem[]) {\n this.hoveredCategoryEntryTypes = entryTypes;\n }\n\n onModuleCategoriesLeave(event: MouseEvent) {\n this.hoveredCategoryEntryTypes = [];\n\n }\n\n onMenuCollapseClicked() {\n this.menuCollapseClicked.emit();\n }\n\n closeCategories() {\n this.activeItem = null;\n this.menuOpened = false;\n }\n\n registerFavorite(entry: EntryDTO) {\n entry.is_favorite = !entry.is_favorite;\n }\n\n private setFlattenMenu() {\n this.model.forEach((module: ModuleDTO) => {\n module.items.forEach(category => {\n this.flattenedEntries.set(`${module.label} > ${category.label}`, category.items);\n });\n });\n }\n\n\n updateFavoriteStatus(entryDTO: EntryDTO) {\n // check if the entry is in the favorites list (from ges-api),\n // if yes, remove it from the list\n // if not, it is added to the favorites\n this.userPreferenceService.getFavoritesEntries(entryDTO.application_id).then(userPreference => {\n if (userPreference.filter(u => u.entry_id === entryDTO.entry_id).length > 0) {\n this.userPreferenceService.deleteEntryFavorite(entryDTO.entry_id).then(() => this.userPreferenceService.removePreference(entryDTO.entry_id));\n } else {\n this.userPreferenceService.addEntryFavorite(entryDTO.entry_id).then((entry) => this.userPreferenceService.addPreference(entryDTO.entry_id));\n }\n });\n }\n\n onModuleMouseLeave() {\n this.activeItem = [];\n }\n\n onCommandClicked(entry: any) {\n entry.command();\n this.closeCategories();\n }\n}\n\n@NgModule({\n imports: [CommonModule, RouterModule, RippleModule],\n exports: [RouterModule]\n})\nexport class MegaMenuModule {\n}\n","
    \n
    \n \n
    \n
      \n\n
      \n \n {{ isMenuCollapsed ? '' : 'Replier le menu' }}\n
      \n\n \n\n \n\n\n \n
    • \n
    • \n \n \n {{!isMenuCollapsed ? module.label : ''}}\n \n \n \n
      \n
      \n
      \n
      \n
      \n
      {{category.label}}
      \n \n
      \n
      \n
      \n
      0\">\n
      \n
      {{entryType['entry_type_name']}}
      \n
      {{entryType['entry_type_name']}}
      \n
      {{entryType['entry_type_name']}}
      \n
      \n
      \n
      \n
      \n \n {{ entry.label }}\n
      \n
      \n
      \n
      \n
      \n
      \n
      \n
    • \n
      \n
      \n \n
      \n \n
      \n \n
      \n
      \n
    \n
    \n \n
    \n
    \n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\nimport {ParamsData} from '../../models/query/params-data';\nimport {SelectedParams} from '../../models/query/selected-params';\nimport {environment} from '../../../environments/environment';\nimport {Canceler} from '../../common/promises/request-canceler';\nimport {BaseService} from '../../services/base.service';\nimport {PrimeNGConfig} from 'primeng/api';\nimport {CalendarService} from '../../services/calendar.service';\nimport {SchoolYearSemesterValues} from '../../models/school-year-semester-values';\nimport {FieldValue} from '../../models/query/field-value';\n\n@Component({\n selector: 'app-dynamic-params-selector',\n templateUrl: './dynamic-params-selector.component.html',\n styleUrls: ['./dynamic-params-selector.component.scss']\n})\nexport class DynamicParamsSelectorComponent implements OnInit {\n\n\n constructor(private baseService: BaseService,\n private config: PrimeNGConfig) { }\n\n @Input()\n params: ParamsData[];\n\n @Input()\n selectedParams: SelectedParams[] = [];\n\n @Input()\n mandatoryFields: string[];\n\n @Output() dynamicParamSelected = new EventEmitter();\n\n isLoading = false;\n\n canceler: Canceler = new Canceler();\n inputsList: Map = new Map([]);\n\n @Input()\n optionsList: Map = new Map([]);\n\n\n ngOnInit(): void {\n this.config.setTranslation(CalendarService.getCalendarTraduction());\n }\n\n isDynamicParamReady(param: ParamsData) {\n let isDynamicParamReady = true;\n\n if (param.staticParams != null) {\n\n param.staticParams.forEach(staticParam => {\n const optionalSelectedParam = this.selectedParams.find(selectedParam => selectedParam.field === staticParam.field);\n if (optionalSelectedParam == null) {\n isDynamicParamReady = false;\n }\n if (optionalSelectedParam.is_mandatory && optionalSelectedParam.value == null) {\n isDynamicParamReady = false;\n }\n if (!optionalSelectedParam.is_request_param && optionalSelectedParam.value == null) {\n isDynamicParamReady = false;\n }\n });\n }\n\n return isDynamicParamReady;\n }\n\n updateSelectedValueParam(field: string, value: any) {\n this.dynamicParamSelected.emit(new FieldValue(field, value));\n }\n\n updateDateParam(field: string, date: any) {\n this.updateSelectedValueParam(field, (date.getTime()).toString());\n }\n\n getSuggestBoxList(param: ParamsData, currentSelection: string) {\n if (this.isDynamicParamReady(param)) {\n const query = this.formatSourceUrl(param);\n\n if (query != null) {\n this.baseService.getAll(environment.servicesUrl + query + '/' + currentSelection)\n .setCancelAction(this.canceler)\n .then(data => {\n this.optionsList[param.field] = data;\n })\n .catch(console.error) // TODO\n .finally(() => this.isLoading = false);\n }\n }\n }\n\n formatSourceUrl(param: ParamsData) {\n let fieldError = '';\n let requestIndex = 0;\n let url = param.source;\n\n if (param.staticParams != null) {\n param.staticParams.forEach(staticParam => {\n\n const optionalSelectedParam = this.selectedParams.find(selectedParam => selectedParam.field === staticParam.field);\n\n if (optionalSelectedParam == null) {\n fieldError = staticParam.field;\n return;\n }\n\n if (staticParam.is_request_param == null || staticParam.is_request_param) {\n if (requestIndex === 0) {\n url += `?${staticParam.field}=${optionalSelectedParam.value}`;\n } else {\n url += `&${staticParam.field}=${optionalSelectedParam.value}`;\n }\n requestIndex++;\n } else {\n url = url.replace(`{${staticParam.field}}`, optionalSelectedParam.value);\n }\n });\n }\n\n if (fieldError.length > 0) {\n return null;\n }\n\n return url;\n }\n\n isElementMandatory(currentField: string) {\n return this.mandatoryFields.some(field => field === currentField);\n }\n}\n","
    \n
    \n \n * \n
    \n \n \n \n \n
    \n
    \n \n \n \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n
    \n","import {Canceler} from './request-canceler';\n\nexport class CancelablePromise {\n promise: Promise;\n\n canceler: Canceler;\n\n setCancelAction(a: Canceler): Promise {\n a.cancel = this.canceler.cancel;\n return this.promise;\n }\n\n catch(onrejected?: ((reason: any) => TResult | PromiseLike) | undefined | null): Promise {\n return this.promise.catch(onrejected);\n }\n\n then(onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): Promise {\n return this.promise.then(onfulfilled);\n }\n\n finally(onfinally?: (() => void) | undefined | null): Promise {\n return this.promise.finally(onfinally);\n }\n\n\n constructor(callback: (resolve: (value?: T | PromiseLike ) => void, reject: (reason?: any) => void) => void, canceler: Canceler) {\n this.promise = new Promise(callback);\n this.canceler = canceler;\n }\n}\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\nimport {EntryTypeDTO} from '../../../models/entry-type-dto';\nimport {EntryDTO} from '../../../models/interfaces/entry-dto';\nimport {UserPreferencesService} from '../../../services/user-preferences.service';\nimport {UserEntryPreferenceDTO} from '../../../models/interfaces/user-entry-preference-dto';\nimport {Subject} from 'rxjs';\n\n@Component({\n selector: 'app-favorite-menu-entries',\n templateUrl: './favorite-menu-entries.component.html',\n styleUrls: ['./favorite-menu-entries.component.scss']\n})\nexport class FavoriteMenuEntriesComponent implements OnInit {\n\n @Input()\n isMenuCollapsed = false;\n displayFavoriteEntries = false;\n\n @Input()\n fullEntries: Map;\n\n favoriteEntries: Map;\n\n toFilter: EntryDTO[] = [];\n\n @Input()\n opened = false;\n\n @Output()\n changeFavoriteStatus = new EventEmitter();\n\n @Output()\n openedEmitter = new EventEmitter();\n\n userPreferencesChanged: Subject = this.userPreferenceService.userPreferencesChanged;\n private selfSuppressed = false;\n\n\n constructor(private userPreferenceService: UserPreferencesService) {\n this.userPreferencesChanged.subscribe((value) => {\n if (!this.selfSuppressed) {\n this.loadPreferences(this.userPreferenceService.userPreferences);\n } else {\n // Ici, on retire le dernier élément de la liste, car il s'agit forcément de l'élément à ne plus filtrer des préférences (qui ont été update en base à ce moment)\n this.toFilter.shift();\n if (!this.toFilter.length) {\n this.selfSuppressed = false;\n }\n }\n });\n }\n\n ngOnInit(): void {\n this.loadPreferences(this.userPreferenceService.userPreferences);\n }\n\n private loadPreferences(preferences: UserEntryPreferenceDTO[]) {\n const favoriteEntries = new Map();\n\n for (const categoryModule of this.fullEntries.keys()) {\n for (const entryType of this.fullEntries.get(categoryModule)) {\n for (const entry of entryType.items) {\n if (this.isInPreferences(entry, preferences)) {\n\n if (!favoriteEntries.has(categoryModule)) {\n favoriteEntries.set(categoryModule, []);\n }\n\n if (!favoriteEntries.get(categoryModule).map(etype => etype.entry_type_name).includes(entryType.entry_type_name)) {\n favoriteEntries.get(categoryModule).push({\n entry_type_id: entryType.entry_type_id,\n entry_type_name: entryType.entry_type_name,\n entry_type_position: entryType.entry_type_position,\n items: [],\n });\n }\n\n favoriteEntries.get(categoryModule).find(type => type.entry_type_name === entryType.entry_type_name).items.push(entry);\n }\n }\n }\n }\n\n this.favoriteEntries = favoriteEntries;\n }\n\n changeDisplayFavoriteEntries(): void {\n this.displayFavoriteEntries = !this.displayFavoriteEntries;\n if (this.displayFavoriteEntries) {\n this.openedEmitter.emit(true);\n }\n }\n\n updateFavoriteStatus(entryDTO: EntryDTO) {\n // Lorsqu'on change le statut de favoris du pannel de favoris, c'est qu'on la supprime\n // Dans ce cas, on va update la liste envoyée à l'enfant pour en retirer le favoris avant tout le reste\n // On va aussi interdire l'update par événement\n this.toFilter.push(entryDTO);\n this.selfSuppressed = true;\n this.loadPreferences(this.userPreferenceService.userPreferences\n .filter(preference => !(this.toFilter\n .map(entry => entry.entry_id))\n .includes(preference.entry_id)));\n this.changeFavoriteStatus.emit(entryDTO);\n }\n\n private isInPreferences(entry: EntryDTO, preferences: UserEntryPreferenceDTO[]): boolean {\n return preferences.map(preference => preference.entry_id).includes(entry.entry_id);\n }\n\n onButtonClicked() {\n this.changeDisplayFavoriteEntries();\n this.opened = this.displayFavoriteEntries;\n this.openedEmitter.emit(this.displayFavoriteEntries);\n }\n}\n","\n\n
    \n \n \n \n Favoris\n \n
    \n\n\n
    \n \n \n \n\n
    \n\n
    \n\n \n\n
    \n\n\n","export class Canceler {\n cancel = (): void => {\n }\n}\n","import {Injectable} from '@angular/core';\nimport {BaseService} from './base.service';\nimport {UrlFactoryService} from '../factories/url-factory.service';\nimport {CancelablePromise} from '../common/promises/cancelable-promise';\nimport {UserEntryPreferenceDTO} from '../models/interfaces/user-entry-preference-dto';\nimport {EntryDTO} from '../models/interfaces/entry-dto';\nimport {Subject} from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UserPreferencesService {\n\n userPreferences: UserEntryPreferenceDTO[];\n\n userPreferencesChanged: Subject = new Subject();\n\n constructor(private baseService: BaseService,\n private urlFactory: UrlFactoryService) {\n this.userPreferencesChanged.subscribe((value) => {\n this.userPreferences = value;\n });\n }\n\n getFavoritesEntries(applicationId: number): CancelablePromise {\n return this.baseService.getAll(this.urlFactory.getFavoritesEntriesUrl(applicationId));\n }\n\n addEntryFavorite(entryId: number): CancelablePromise {\n return this.baseService.add(this.urlFactory.addFavoriteEntryUrl(entryId), null, true);\n }\n\n deleteEntryFavorite(entryId: number): CancelablePromise {\n return this.baseService.deleteFromUrl(this.urlFactory.deleteFavoriteEntryUrl(entryId));\n }\n\n loadUserPreferences(): Promise {\n return this.getFavoritesEntries(4)\n .then(preferences =>\n this.userPreferences = this.updateUserPreferences(preferences)\n );\n }\n\n addPreference(entryId: number) {\n this.updateUserPreferences(\n [\n ...this.userPreferences,\n {\n rup_id: null,\n uid: null,\n application_id: 4,\n entry_id: entryId\n }]\n );\n }\n\n removePreference(entryId: number) {\n this.updateUserPreferences(this.userPreferences.filter(entry => !(entry.entry_id === entryId)));\n }\n\n private updateUserPreferences(preferences: UserEntryPreferenceDTO[]) {\n this.userPreferences = preferences;\n this.userPreferencesChanged.next(this.userPreferences);\n return preferences;\n }\n}\n","import {StaticParamsData} from './static-params-data';\n\nexport class SelectedParams {\n\n field: string;\n is_mandatory: boolean;\n is_request_param: boolean;\n value: string;\n staticParams: StaticParamsData[];\n\n constructor(field: string, is_mandatory: boolean, is_request_param: boolean, value: string, staticParams: StaticParamsData[] = []) {\n this.field = field;\n this.is_mandatory = is_mandatory;\n this.is_request_param = is_request_param;\n this.value = value;\n this.staticParams = staticParams;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport {LoginSuccessComponent} from './pages/users/login-success/login-success.component';\nimport {FailureScreenComponent} from \"./components/failure-screen/failure-screen.component\";\n\n\nconst routes: Routes = [\n { path: 'login-success', component: LoginSuccessComponent },\n { path: 'error', component: FailureScreenComponent },\n { path: '', redirectTo: '/', pathMatch: 'full' }\n];\n\n@NgModule({\n imports: [RouterModule.forRoot(routes)],\n exports: [RouterModule]\n})\nexport class AppRoutingModule { }\n","import {Component, ElementRef, EventEmitter, HostListener, Input, OnInit, Output} from '@angular/core';\nimport {EntryTypeDTO} from '../../../models/entry-type-dto';\nimport {EntryDTO} from '../../../models/interfaces/entry-dto';\n\n@Component({\n selector: 'app-menu-search-field',\n templateUrl: './menu-search-field.component.html',\n styleUrls: ['./menu-search-field.component.scss']\n})\nexport class MenuSearchFieldComponent implements OnInit {\n @Input()\n isMenuCollapsed: boolean;\n\n interfaceFilter = '';\n\n @Input()\n flattenedEntries: Map;\n\n displayedEntries: Map;\n displaySearchedEntries = false;\n collapsedSearchFieldDisplayed = false;\n\n @Output()\n changeFavoriteStatus = new EventEmitter();\n\n constructor(private elementRef: ElementRef) {\n }\n\n ngOnInit(): void {\n }\n\n @HostListener('document:click', ['$event.target'])\n public onPageClick(targetElement) {\n const clickedInside = this.elementRef.nativeElement.contains(targetElement);\n if (!clickedInside && this.isMenuCollapsed) {\n this.hideDisplayedEntries(true, this.isMenuCollapsed);\n }\n }\n\n searchInterface(newValue: string) {\n if (newValue.length > 0) {\n this.displayedEntries = this.getFilteredFlattenedEntries(newValue);\n this.changeDisplayEntries();\n } else {\n this.hideDisplayedEntries(false, !this.isMenuCollapsed);\n }\n }\n\n changeDisplayEntries() {\n this.displaySearchedEntries = true;\n }\n\n hideDisplayedEntries(resetFilter: boolean, hideCollaspedFilter: boolean) {\n this.displaySearchedEntries = false;\n this.interfaceFilter = resetFilter ? '' : this.interfaceFilter;\n\n if (hideCollaspedFilter) {\n this.collapsedSearchFieldDisplayed = false;\n }\n }\n\n private getFilteredFlattenedEntries(filter: string): Map {\n const displayedEntries = new Map();\n\n for (const categoryModule of this.flattenedEntries.keys()) {\n for (const entryType of this.flattenedEntries.get(categoryModule)) {\n for (const entry of entryType.items) {\n if (entry.label.toLowerCase().includes(filter.toLowerCase())) {\n\n if (!displayedEntries.has(categoryModule)) {\n displayedEntries.set(categoryModule, []);\n }\n\n if (!displayedEntries.get(categoryModule).includes(entryType)) {\n displayedEntries.get(categoryModule).push({\n entry_type_id: entryType.entry_type_id,\n entry_type_name: entryType.entry_type_name,\n entry_type_position: entryType.entry_type_position,\n items: [],\n });\n }\n\n displayedEntries.get(categoryModule).find(type => type.entry_type_name === entryType.entry_type_name).items.push(entry);\n }\n }\n\n }\n }\n\n return displayedEntries;\n }\n\n changeCollapsedSearchFieldVisibility() {\n this.collapsedSearchFieldDisplayed = !this.collapsedSearchFieldDisplayed;\n\n if (!this.collapsedSearchFieldDisplayed) {\n this.hideDisplayedEntries(true, false);\n }\n }\n\n updateFavoriteStatus(entryDTO: EntryDTO) {\n this.changeFavoriteStatus.emit(entryDTO);\n }\n}\n","
    \n\n
    \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n
    \n\n \n \n \n \n \n \n \n \n \n \n\n
    \n\n
    \n
    \n \n
    \n\n\n \n\n
    \n
    \n
    \n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\nimport {UserProfile} from '../../../models/user-profile.model';\n\n@Component({\n selector: 'app-option-menu',\n templateUrl: './option-menu.component.html',\n styleUrls: ['./option-menu.component.scss']\n})\nexport class OptionMenuComponent implements OnInit {\n\n @Input()\n currentProfile: UserProfile;\n\n @Output() helpClicked = new EventEmitter();\n @Output() paramsClicked = new EventEmitter();\n @Output() disconnectionClicked = new EventEmitter();\n\n constructor() {\n }\n\n ngOnInit(): void {\n }\n\n\n getProfilePhoto(): string {\n return this.currentProfile[`_links`] ? this.currentProfile[`_links`][`photo`]?.href : '';\n }\n\n}\n","
    \n
    \n \"photo\"/\n
    \n
    \n
    \n

    {{currentProfile.firstname}} {{currentProfile.name}}

    \n
    \n\n
    \n \n
    \n\n
    \n \n
    \n\n
    \n \n
    \n","import { Injectable } from '@angular/core';\nimport {BaseService} from './base.service';\nimport {environment} from '../../environments/environment';\nimport {CancelablePromise} from '../common/promises/cancelable-promise';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class YearsService {\n\n constructor(private baseService: BaseService) { }\n\n getAllYears(): CancelablePromise {\n return this.baseService.getAll(`${environment.servicesUrl}/me/years`);\n }\n}\n","import { Component, OnInit, Input, EventEmitter, Output, ViewChild, AfterViewInit } from '@angular/core';\nimport { DropdownOption } from 'src/app/models/dropdown-option';\nimport { Dropdown } from 'primeng/dropdown/dropdown';\n\n@Component({\n selector: 'app-combo-box',\n templateUrl: './combo-box.component.html',\n styleUrls: ['./combo-box.component.scss']\n})\nexport class ComboBoxComponent implements OnInit, AfterViewInit {\n\n @ViewChild('dropdown') dropdown: Dropdown;\n\n //#region properties\n labelClasses = 'p-col-4';\n dropdownClasses = 'p-col-7';\n //#endregion\n\n //#region emitters\n @Output() selectedOptionChanged = new EventEmitter();\n @Output() selectedOptionCleared = new EventEmitter();\n //#endregion\n\n @Input() showClear = true;\n\n //#region label\n private mLabel: string;\n public get label(): string {\n return this.mLabel;\n }\n @Input('label')\n public set label(value: string) {\n this.mLabel = value;\n }\n //#endregion\n\n //#region labelWeight\n private mLabelWeight: number;\n public get labelWeight(): number {\n return this.mLabelWeight;\n }\n @Input('labelWeight')\n public set labelWeight(value: number) {\n this.mLabelWeight = (value < 1 || value > 10) ? 4 : value;\n\n this.labelClasses = 'p-col-' + this.mLabelWeight;\n this.dropdownClasses = 'p-col-' + (12 - this.mLabelWeight - 1);\n }\n //#endregion\n\n //#region width\n private mWidth: number;\n public get width(): number {\n return this.mWidth;\n }\n @Input('width')\n public set width(value: number) {\n this.mWidth = value;\n }\n //#endregion\n\n //#region options\n private mOptions: any[] = [];\n public get options(): any[] {\n return this.mOptions;\n }\n @Input('options')\n public set options(value: any[]) {\n this.mOptions = value;\n if (this.mSelectedOption !== undefined && this.mSelectedOption !== null) {\n this.selectOption(this.mSelectedOption);\n }\n }\n //#endregion\n\n //#region selectedOption\n private mSelectedOption: DropdownOption = null;\n\n @Output() selectedOptionChange = new EventEmitter();\n\n public get selectedOption(): DropdownOption {\n return this.mSelectedOption;\n }\n @Input('selectedOption')\n public set selectedOption(value: DropdownOption) {\n this.mSelectedOption = value;\n\n if (this.dropdown !== undefined) {\n this.selectOption(value);\n this.selectedOptionChange.emit(value);\n }\n }\n //#endregion\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n ngAfterViewInit() {\n setTimeout(() => {\n this.selectOption(this.selectedOption);\n }, 0);\n }\n\n //#region methods\n selectOption(newValue: DropdownOption) {\n if (this.dropdown !== undefined && this.dropdown !== null) {\n this.dropdown.selectedOption = this.options.find(o => o.value === newValue);\n }\n }\n\n clearSelectedOption() {\n this.selectOption(null);\n this.selectedOptionCleared.emit();\n }\n //#endregion\n\n //#region callbacks\n onSelectionChanged(selection: any) {\n this.selectedOption = selection.value;\n if (selection !== null) {\n this.selectedOptionChanged.emit(selection.value);\n } else {\n this.selectedOptionCleared.emit();\n }\n }\n //#endregion\n\n}\n","
    \n
    \n
    {{ label }}
    \n
    \n
    \n
    \n \n \n
    {{element.label}}
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n","import {Injectable} from '@angular/core';\nimport {UrlFactoryService} from '../factories/url-factory.service';\nimport {BaseService} from './base.service';\nimport {CancelablePromise} from '../common/promises/cancelable-promise';\nimport {DiplomaDTO} from '../models/diplomas/diploma-dto';\nimport {DiplomaTypeDTO} from '../models/diplomas/diploma-type-dto';\nimport {GradeDTO} from '../models/diplomas/grade-dto';\nimport {Observable, Subject} from 'rxjs';\nimport {DiplomaWithCertifierDto} from '../models/diplomas/diploma-with-certifier-dto';\nimport {DiplomaBlockDTO} from '../models/diplomas/diploma-block-dto';\nimport {CertifierDTO} from '../models/diplomas/certifierDTO';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DiplomasService {\n\n dataChanged = new Subject();\n\n constructor(private baseService: BaseService,\n private urlFactory: UrlFactoryService) {\n }\n\n listen(): Observable {\n return this.dataChanged.asObservable();\n }\n\n refreshData(): void {\n this.dataChanged.next();\n }\n\n getSchoolsDiplomas(): CancelablePromise {\n return this.baseService.getAll(this.urlFactory.getSchoolsDiplomasUrl());\n }\n\n\n getSchoolsDiplomasTypes(): CancelablePromise {\n return this.baseService.getAll(this.urlFactory.getSchoolsDiplomasTypesUrl());\n }\n\n getGrades(): CancelablePromise {\n return this.baseService.getAll(this.urlFactory.getGradesUrl());\n }\n\n saveOrUpdateSchoolsDiplomas(diplomaToSave: DiplomaWithCertifierDto): CancelablePromise {\n return this.baseService.save(this.urlFactory.getSchoolsDiplomasUrl(), diplomaToSave, false);\n }\n\n deleteSchoolsDiplomas(diplomasToDelete: DiplomaWithCertifierDto[]): CancelablePromise {\n return this.baseService.deleteAll(this.urlFactory.getSchoolsDiplomasUrl(), diplomasToDelete);\n }\n\n getDiplomaBlocksByDiplomaId(diplomaId: number): CancelablePromise {\n return this.baseService.getAll(this.urlFactory.getSchoolsDiplomasUrl() + '/' + diplomaId + '/blocks');\n }\n\n deleteDiplomaBlock(blockIdsToDelete: number[]): CancelablePromise {\n return this.baseService.deleteAll(this.urlFactory.getSchoolsDiplomasUrl() + '/blocks', blockIdsToDelete);\n }\n\n addDiplomaBlockForDiplomaId(diplomaId: number, toAddDto: DiplomaBlockDTO): CancelablePromise {\n return this.baseService.save(this.urlFactory.getSchoolsDiplomasUrl() + '/' + diplomaId + '/blocks', toAddDto, false);\n }\n\n getDiplomaBlockByBlockId(blockId: number): CancelablePromise {\n return this.baseService.get(this.urlFactory.getStructureDiplomaBlocksUrl() + '/' + blockId);\n }\n\n updateDiplomaBlockByBlockId(blockId: number, dto: DiplomaBlockDTO): CancelablePromise {\n return this.baseService.patchOne(this.urlFactory.getStructureDiplomaBlocksUrl() + '/' + blockId, dto);\n }\n\n getAllDiplomaBlocksByNameLike(name: string): CancelablePromise {\n return this.baseService.getAll(this.urlFactory.getStructureDiplomaBlocksUrl() + '/byName/' + name);\n }\n\n getStructuresDiplomasWithStructure(): CancelablePromise {\n return this.baseService.getAll(this.urlFactory.getSchoolsDiplomasWithCertifierUrl());\n }\n\n getCertifiers(): CancelablePromise {\n return this.baseService.getAll(this.urlFactory.getSchoolsDiplomasUrl() + '/certifiers');\n }\n}\n","import { Injectable } from '@angular/core';\nimport {Observable, Subscriber} from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ReloadService {\n\n private layoutsShouldRefreshSubscriber: Subscriber;\n private observedLayoutsShouldRefresh: Observable = Observable.create((consumer) => this.layoutsShouldRefreshSubscriber = consumer);\n private layoutsShouldRefresh = false;\n\n constructor() { }\n\n shouldRefreshLayouts(val: any) {\n this.layoutsShouldRefresh = val;\n if (this.layoutsShouldRefreshSubscriber !== undefined) {\n this.layoutsShouldRefreshSubscriber.next(val);\n }\n }\n\n getObservedLayoutsShouldRefresh(): Observable {\n return this.observedLayoutsShouldRefresh;\n }\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-icon-chooser',\n templateUrl: './icon-chooser.component.html',\n styleUrls: ['./icon-chooser.component.scss', '../../styles/icons.scss']\n})\nexport class IconChooserComponent implements OnInit {\n\n icons900 = ['\\e900', '\\e901', '\\e902', '\\e903', '\\e904', '\\e905', '\\e906', '\\e907', '\\e908', '\\e909', '\\e90a', '\\e90b', '\\e90c', '\\e90d', '\\e90e', '\\e90f'];\n icons910 = ['\\e910', '\\e911', '\\e912', '\\e913', '\\e914', '\\e915', '\\e916', '\\e917', '\\e918', '\\e919', '\\e91a', '\\e91b', '\\e91c', '\\e91d', '\\e91e', '\\e91f'];\n icons920 = ['\\e920', '\\e921', '\\e922', '\\e923', '\\e924', '\\e925', '\\e926', '\\e927', '\\e928', '\\e929', '\\e92a', '\\e92b', '\\e92c', '\\e92d', '\\e92e', '\\e92f'];\n icons930 = ['\\e930', '\\e931', '\\e932', '\\e933', '\\e934', '\\e935', '\\e936', '\\e937', '\\e938', '\\e939', '\\e93a', '\\e93b', '\\e93c', '\\e93d', '\\e93e', '\\e93f'];\n icons940 = ['\\e940', '\\e941', '\\e942', '\\e943', '\\e944', '\\e945', '\\e946', '\\e947', '\\e948', '\\e949', '\\e94a', '\\e94b', '\\e94c', '\\e94d', '\\e94e', '\\e94f'];\n icons950 = ['\\e950', '\\e951', '\\e952', '\\e953', '\\e954', '\\e955', '\\e956', '\\e957', '\\e958', '\\e959', '\\e95a', '\\e95b', '\\e95c', '\\e95d', '\\e95e', '\\e95f'];\n icons960 = ['\\e960', '\\e961', '\\e962', '\\e963', '\\e964', '\\e965', '\\e966', '\\e967', '\\e968', '\\e969', '\\e96a', '\\e96b', '\\e96c', '\\e96d', '\\e96e', '\\e96f'];\n icons970 = ['\\e970', '\\e971', '\\e972', '\\e973', '\\e974', '\\e975', '\\e976', '\\e977', '\\e978', '\\e979', '\\e97a', '\\e97b', '\\e97c', '\\e97d', '\\e97e', '\\e97f'];\n icons980 = ['\\e980', '\\e981', '\\e982', '\\e983', '\\e984', '\\e985', '\\e986', '\\e987', '\\e988', '\\e989', '\\e98a', '\\e98b', '\\e98c', '\\e98d', '\\e98e', '\\e98f'];\n icons990 = ['\\e990', '\\e991', '\\e992', '\\e993', '\\e994', '\\e995', '\\e996', '\\e997', '\\e998', '\\e999', '\\e99a', '\\e99b', '\\e99c', '\\e99d', '\\e99e', '\\e99f'];\n icons9a0 = ['\\e9a0', '\\e9a1', '\\e9a2', '\\e9a3', '\\e9a4', '\\e9a5', '\\e9a6', '\\e9a7', '\\e9a8', '\\e9a9', '\\e9aa', '\\e9ab', '\\e9ac', '\\e9ad', '\\e9ae', '\\e9af'];\n icons9b0 = ['\\e9b0', '\\e9b1', '\\e9b2', '\\e9b3', '\\e9b4', '\\e9b5', '\\e9b6', '\\e9b7', '\\e9b8', '\\e9b9', '\\e9ba', '\\e9bb', '\\e9bc', '\\e9bd', '\\e9be', '\\e9bf'];\n icons9c0 = ['\\e9c0', '\\e9c1', '\\e9c2', '\\e9c3', '\\e9c4', '\\e9c5', '\\e9c6', '\\e9c7', '\\e9c8', '\\e9c9', '\\e9ca', ];\n\n iconsOthers = ['test', 'graduation-cap'];\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.error(err));\n","export class RightsFamily {\n rights_family_id: number;\n rights_family_name: string;\n rights_family_parent_id: number;\n rights_family_parent_name: string;\n children: RightsFamily[];\n}\n","import {ColumnSizeEnum} from '../utils/columnSizeEnum';\nimport {Validators} from '@angular/forms';\n\nexport class TableColumn {\n\n private static COLUMN_WIDTH_SIZE = new Map ([\n ['VERY_SMALL', ColumnSizeEnum.VERY_SMALL_COLUMN_SIZE],\n ['SMALL', ColumnSizeEnum.SMALL_COLUMN_SIZE],\n ['MEDIUM', ColumnSizeEnum.MEDIUM_COLUMN_SIZE],\n ['LARGE', ColumnSizeEnum.LARGE_COLUMN_SIZE],\n ['VERY_LARGE', ColumnSizeEnum.VERY_LARGE_COLUMN_SIZE],\n ]);\n\n field: string;\n header: string;\n type?: string;\n width?: string;\n readonly?: boolean;\n sortable?: boolean;\n filterType?: string;\n\n\n static setColumnSize(width: string) {\n const finalWidth = TableColumn.COLUMN_WIDTH_SIZE.get(width);\n const regex = new RegExp('(\\\\d+)px$');\n\n if (finalWidth == null && width.length > 0 && regex.exec(width)) {\n return width;\n } else if (finalWidth == null) {\n return ColumnSizeEnum.MEDIUM_COLUMN_SIZE;\n }\n return finalWidth;\n }\n\n constructor(field: string, header: string, width = '90px', type = 'string', readonly= true, sortable = true, filterType = '') {\n this.field = field;\n this.header = header;\n this.type = type;\n this.width = TableColumn.setColumnSize(width);\n this.readonly = readonly;\n this.sortable = sortable;\n this.filterType = filterType;\n }\n}\n","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"zn8P\";"],"sourceRoot":"webpack:///"}