diff --git a/apps/maarch_entreprise/xml/applicationVersion.xml b/apps/maarch_entreprise/xml/applicationVersion.xml index 56a233e50aaddb0b7be1c39cd0dc62fcd847120c..e46649ad951cccbe35c8971bbe8d95722b7362a8 100755 --- a/apps/maarch_entreprise/xml/applicationVersion.xml +++ b/apps/maarch_entreprise/xml/applicationVersion.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <root> - <majorVersion>1.1</majorVersion> - <minorVersion>1.1.1</minorVersion> + <majorVersion>19.04</majorVersion> + <minorVersion>19.04.1</minorVersion> </root> diff --git a/src/frontend/app/administration/versionUpdate/versions-update-administration.component.html b/src/frontend/app/administration/versionUpdate/versions-update-administration.component.html index ff5597d5da2f615613ce7743bd26b99f301e57b2..9c8c676781e93998c4593798accba2c0b6f12f86 100755 --- a/src/frontend/app/administration/versionUpdate/versions-update-administration.component.html +++ b/src/frontend/app/administration/versionUpdate/versions-update-administration.component.html @@ -1,33 +1,9 @@ -<!--<div class="admin-container" [class.admin-is-mobile]="mobileQuery.matches"> - <mat-toolbar color="primary" class="admin-toolbar"> - <button mat-button (click)="snav.toggle()"> - <mat-icon class="maarchLogo" [svgIcon]="mobileQuery.matches ? 'maarchLogoOnly' : 'maarchLogo'"></mat-icon> - </button> - <h1 class="admin-toolbar-title">{{lang.updateVersionControl}} - </h1> - <span style="flex: 1 1 auto;"></span> - <menu-top></menu-top> - </mat-toolbar> - <mat-sidenav-container autosize class="admin-sidenav-container" > - <mat-sidenav #snav [mode]="mobileQuery.matches ? 'over' : 'side'" [fixedInViewport]="mobileQuery.matches" fixedTopGap="56" - [opened]="mobileQuery.matches ? false : true" style="width:300px;"> - <menu-nav></menu-nav> - <mat-divider></mat-divider> - </mat-sidenav> - <mat-sidenav-content> - <div> - Votre version : {{versions.currentVersion}} - <mat-form-field> - <mat-select id="entity_type" name="minorVersions" title="{{lang.availableMinorVersions}}" placeholder="{{lang.entityType}}" maxlength="32" required> - <mat-option *ngFor="let minorVersion of versions.currentMinorVersions" [value]="minorVersion.name"> - {{minorVersion.name}} - </mat-option> - </mat-select> - </mat-form-field> - </div> - </mat-sidenav-content> - </mat-sidenav-container> -</div>--> +<div *ngIf="updateInprogress" class="updateInProgress"> + <mat-spinner diameter="30"></mat-spinner> + <div> + Mise à jour en cours ... + </div> +</div> <div class="admin-container" [class.admin-is-mobile]="mobileQuery.matches"> <mat-sidenav-container autosize class="admin-sidenav-container" > <mat-sidenav #snav [mode]="mobileQuery.matches ? 'over' : 'side'" [fixedInViewport]="mobileQuery.matches" fixedTopGap="56" @@ -53,7 +29,7 @@ <mat-icon class="fa fa-info-circle fa-2x" style="flex: 1;text-align: right;"></mat-icon> </div> <div class="col-sm-12" style="text-align:center;" *ngIf="versions.lastAvailableMinorVersion!=null"> - <button mat-raised-button color="primary" (click)="updateVersionAccess();">{{lang.accessUpdateWizard}}</button> + <button mat-raised-button color="primary" (click)="updateVersionAccess();">{{lang.makeUpdate}}</button> </div> </mat-card> </mat-sidenav-content> diff --git a/src/frontend/app/administration/versionUpdate/versions-update-administration.component.scss b/src/frontend/app/administration/versionUpdate/versions-update-administration.component.scss new file mode 100644 index 0000000000000000000000000000000000000000..00a1d73f143053c7b97884902337bd27ee010ed8 --- /dev/null +++ b/src/frontend/app/administration/versionUpdate/versions-update-administration.component.scss @@ -0,0 +1,12 @@ +.updateInProgress { + z-index: 2; + display: flex; + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: #ffffffed; + justify-content: center; + align-items: center; +} \ No newline at end of file diff --git a/src/frontend/app/administration/versionUpdate/versions-update-administration.component.ts b/src/frontend/app/administration/versionUpdate/versions-update-administration.component.ts index d8cc34d7b0f04638864bfe64a02b0dd71d19dfe7..89ee7092df6c1f017471302c6c426e2bca317ad8 100755 --- a/src/frontend/app/administration/versionUpdate/versions-update-administration.component.ts +++ b/src/frontend/app/administration/versionUpdate/versions-update-administration.component.ts @@ -2,33 +2,38 @@ import { ChangeDetectorRef, Component, OnInit, ViewChild } from '@angular/core'; import { MediaMatcher } from '@angular/cdk/layout'; import { HttpClient } from '@angular/common/http'; import { LANG } from '../../translate.component'; -import { MatSidenav } from '@angular/material'; -import { HeaderService } from '../../../service/header.service'; +import { MatSidenav, MatDialog, MatDialogRef } from '@angular/material'; +import { HeaderService } from '../../../service/header.service'; +import { tap, catchError } from 'rxjs/operators'; +import { NotificationService } from '../../notification.service'; +import { of } from 'rxjs'; +import { AlertComponent } from '../../../plugins/modal/alert.component'; declare function $j(selector: any): any; -declare var angularGlobals: any; - - @Component({ - templateUrl: "versions-update-administration.component.html" + templateUrl: "versions-update-administration.component.html", + styleUrls: ['versions-update-administration.component.scss'], + providers: [NotificationService], }) export class VersionsUpdateAdministrationComponent implements OnInit { - @ViewChild('snav') public sidenavLeft : MatSidenav; - @ViewChild('snav2') public sidenavRight : MatSidenav; + @ViewChild('snav') public sidenavLeft: MatSidenav; + @ViewChild('snav2') public sidenavRight: MatSidenav; - mobileQuery : MediaQueryList; - private _mobileQueryListener : () => void; + mobileQuery: MediaQueryList; + private _mobileQueryListener: () => void; - coreUrl : string; - lang : any = LANG; - loading : boolean = false; + coreUrl: string; + lang: any = LANG; + loading: boolean = false; + updateInprogress: boolean = false; + dialogRef: MatDialogRef<any>; - versions : any = {}; + versions: any = {}; - constructor(changeDetectorRef: ChangeDetectorRef, media: MediaMatcher, public http: HttpClient, private headerService: HeaderService) { + constructor(changeDetectorRef: ChangeDetectorRef, media: MediaMatcher, public http: HttpClient, private headerService: HeaderService, private notify: NotificationService, public dialog: MatDialog) { $j("link[href='merged_css.php']").remove(); this.mobileQuery = media.matchMedia('(max-width: 768px)'); this._mobileQueryListener = () => changeDetectorRef.detectChanges(); @@ -44,19 +49,40 @@ export class VersionsUpdateAdministrationComponent implements OnInit { window['MainHeaderComponent'].setSnav(this.sidenavLeft); window['MainHeaderComponent'].setSnavRight(null); - this.coreUrl = angularGlobals.coreUrl; - this.loading = true; - this.http.get(this.coreUrl + 'rest/versionsUpdate') - .subscribe((data: any) => { + this.http.get('../../rest/versionsUpdate').pipe( + tap((data: any) => { this.versions = data; - + }), + catchError(err => { + this.notify.handleErrors(err); + return of(false); + }), + tap(() => { this.loading = false; - }); + }) + ).subscribe(); } updateVersionAccess() { - location.href = this.coreUrl+'install/index.php?step=update_language'; + this.updateInprogress = true; + + this.http.put('../../rest/versionsUpdate', {}).pipe( + tap(() => { + this.dialogRef = this.dialog.open(AlertComponent, { autoFocus: false, disableClose: true, data: { mode: '', title: 'Mise à jour effectuée avec succès !', msg: '' } }); + this.dialogRef.afterClosed().subscribe(() => { + window.location.reload(true); + this.dialogRef = null; + }); + }), + catchError(err => { + this.notify.handleErrors(err); + return of(false); + }), + tap(() => { + this.updateInprogress = false; + }), + ).subscribe(); } } diff --git a/src/frontend/app/app-common.module.ts b/src/frontend/app/app-common.module.ts index 885ba96f4f9a79e2e69caf306a089d19506de77e..abbd7aac0ff0651cfbe58f63237f94b5cee489d2 100755 --- a/src/frontend/app/app-common.module.ts +++ b/src/frontend/app/app-common.module.ts @@ -43,6 +43,10 @@ import { SearchHomeComponent } from './search/search-home import { BasketHomeComponent } from './basket/basket-home.component'; +/*MODAL*/ +import { AlertComponent } from '../plugins/modal/alert.component'; + + export class MyHammerConfig extends HammerGestureConfig { overrides = <any> { 'pinch': { enable: false }, @@ -80,6 +84,7 @@ export class MyHammerConfig extends HammerGestureConfig { SmdFabSpeedDialComponent, SmdFabSpeedDialTrigger, SmdFabSpeedDialActions, + AlertComponent ], exports: [ CommonModule, @@ -119,7 +124,8 @@ export class MyHammerConfig extends HammerGestureConfig { } ], entryComponents: [ - IndexingGroupModalComponent + IndexingGroupModalComponent, + AlertComponent ], }) export class SharedModule { } diff --git a/src/frontend/lang/lang-en.ts b/src/frontend/lang/lang-en.ts index 74a5a22bc3e8d5ebdc857dd833cc2586dfb28e20..03d882542012814a5560ec5ecbb8086a34cecec1 100755 --- a/src/frontend/lang/lang-en.ts +++ b/src/frontend/lang/lang-en.ts @@ -11,7 +11,7 @@ export const LANG_EN = { 'quotaExceeded' : 'Quota exceeded', "aboutUs" : "About Maarch Courrier", "abs" : "Absent", - "accessUpdateWizard" : "Access to wizard update version", + "makeUpdate" : "Update", "accordingTemplateParameters" : "According to the parameters defined in the model", "accountAdded" : "Account added", "accountDeleted" : "Account deleted", @@ -1024,4 +1024,5 @@ export const LANG_EN = { "to_sign" : "To sign", "to_note" : "To note", "confidential" : "Confidential", + "ok" : "Ok", }; diff --git a/src/frontend/lang/lang-fr.ts b/src/frontend/lang/lang-fr.ts index ec17b28f00b34b52e8a15fde74d1c0cbf10fd2af..8c8716980be8584ce3bfcda182488c219511044d 100755 --- a/src/frontend/lang/lang-fr.ts +++ b/src/frontend/lang/lang-fr.ts @@ -13,7 +13,7 @@ export const LANG_FR = { "abs" : "Absent", "absOff" : "Absence désactivée", "absOn" : "Absence activée", - "accessUpdateWizard" : "Accéder à l'assistant de mise à jour", + "makeUpdate" : "Mettre à jour", "accordingTemplateParameters" : "Selon les paramètres définis dans le modèle", "accountAdded" : "Compte créé", "accountDeleted" : "Compte supprimé", @@ -1057,4 +1057,5 @@ export const LANG_FR = { "to_sign" : "À signer", "to_note" : "À annoter", "confidential" : "Confidentiel", + "ok" : "Ok", }; \ No newline at end of file diff --git a/src/frontend/lang/lang-nl.ts b/src/frontend/lang/lang-nl.ts index ad50c26052387a7c88590451a2037f6bd3752905..233975b87ac64d808e3b8f525207675364253c4b 100755 --- a/src/frontend/lang/lang-nl.ts +++ b/src/frontend/lang/lang-nl.ts @@ -6,7 +6,7 @@ export const LANG_NL = { "abs" : "Afwezig", "absOff" : "Afwezigheid uitgeschakeld", "absOn" : "Afwezigheid ingeschakeld", - "accessUpdateWizard" : "Toegang tot de update-assistent verkrijgen", + "makeUpdate" : "Update", "accordingTemplateParameters" : "According to the parameters defined in the model", //_TO_TRANSLATE "accountAdded" : "Account added", //_TO_TRANSLATE "accountDeleted" : "Account deleted", //_TO_TRANSLATE @@ -1050,4 +1050,5 @@ export const LANG_NL = { "to_sign" : "To sign", //_TO_TRANSLATE "to_note" : "To note", //_TO_TRANSLATE "confidential" : "Confidential", //_TO_TRANSLATE + "ok" : "Ok", //_TO_TRANSLATE }; diff --git a/src/frontend/plugins/modal/alert.component.html b/src/frontend/plugins/modal/alert.component.html new file mode 100644 index 0000000000000000000000000000000000000000..3811499db143700ff3124d074bc003e515232479 --- /dev/null +++ b/src/frontend/plugins/modal/alert.component.html @@ -0,0 +1,9 @@ +<div class="modalContent {{data.mode}}"> + <h1 mat-dialog-title>{{data.title}}</h1> + <div mat-dialog-content [innerHTML]="data.msg"> + + </div> + <div mat-dialog-actions> + <button class="actions" color="primary" mat-raised-button (click)="this.dialogRef.close();">{{lang.ok}}</button> + </div> +</div> \ No newline at end of file diff --git a/src/frontend/plugins/modal/alert.component.scss b/src/frontend/plugins/modal/alert.component.scss new file mode 100644 index 0000000000000000000000000000000000000000..40fc92c036994bd44b5264c2fc47d8e8f82427cd --- /dev/null +++ b/src/frontend/plugins/modal/alert.component.scss @@ -0,0 +1,33 @@ +@import '../../css/vars.scss'; + +.modalContent { + position: relative; +} +.mat-dialog-content, .mat-dialog-title { + text-align:center !important; + color: #666; +} +.mat-dialog-title { + padding-left: 10px; + padding-right: 10px; + color: white; +} +.actions { + width: 100%; + margin: 10px; +} +.close { + position: absolute; + top: -15px; + right: -15px; + width: 40px; + height: 40px; + font-size: 20px; + color: #666; +} + +.warning { + .mat-dialog-title, .actions { + color : $warn; + } +} \ No newline at end of file diff --git a/src/frontend/plugins/modal/alert.component.ts b/src/frontend/plugins/modal/alert.component.ts new file mode 100644 index 0000000000000000000000000000000000000000..b62e0f4f564c197d185414bbd32fd1654b5a796c --- /dev/null +++ b/src/frontend/plugins/modal/alert.component.ts @@ -0,0 +1,21 @@ +import { Component, Inject } from '@angular/core'; +import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material'; +import { LANG } from '../../app/translate.component'; + +@Component({ + templateUrl: 'alert.component.html', + styleUrls: ['alert.component.scss'] +}) +export class AlertComponent { + + lang: any = LANG; + + constructor(@Inject(MAT_DIALOG_DATA) public data: any, public dialogRef: MatDialogRef<AlertComponent>) { + if (this.data.mode === null) { + this.data.mode = ''; + } + if (this.data.msg === null) { + this.data.msg = ''; + } + } +}