diff --git a/src/frontend/app/administration/home/administration.component.html b/src/frontend/app/administration/home/administration.component.html index 3fc96874ed37a3afa07e7b7974fa460b658ad2e0..913c41908cd916e00d660f7e70d08f72c3d8e019 100644 --- a/src/frontend/app/administration/home/administration.component.html +++ b/src/frontend/app/administration/home/administration.component.html @@ -34,7 +34,7 @@ </mat-form-field> <div style="margin: 20px;display: grid;grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));gap: 20px;padding:20px;padding-top:0px;margin-top:0px;"> - <button [joyrideStep]="administration.id" [text]="lang[administration.id+'Tour']" mat-button *ngFor="let administration of filteredAdministrations | async | sortBy : 'label'" + <button [joyrideStep]="administration.id" mat-button *ngFor="let administration of filteredAdministrations | async | sortBy : 'label'" [title]="administration.comment" style="font-size:20px;height:80px;" (click)="goToSpecifiedAdministration(administration)"> <div style="display: flex;align-items: center;"> diff --git a/src/frontend/app/administration/notification/notifications-administration.component.html b/src/frontend/app/administration/notification/notifications-administration.component.html index 89fc6e42b3c73414eec4f1858581cbd4669a93a1..d59bfb7d9806680ea5d40cf345175931f9aabda4 100755 --- a/src/frontend/app/administration/notification/notifications-administration.component.html +++ b/src/frontend/app/administration/notification/notifications-administration.component.html @@ -94,8 +94,8 @@ </div> </mat-sidenav-content> <mat-sidenav #snav2 [mode]="appService.getViewMode() ? 'over' : 'side'" [fixedInViewport]="appService.getViewMode()" - fixedTopGap="56" position='end' [opened]="appService.getViewMode() ? false : false" (next)="paramCron()" stepPosition="center" joyrideStep="notifTour2" [text]="'Nous allons la plannifier pour chaque jour à 8h00 du lundi au vendredi'"> - <mat-list (next)="saveCron()" joyrideStep="notifTour3" [text]="'Pouvez choisir différentes périodes pour paramétrer votre tâche'"> + fixedTopGap="56" position='end' [opened]="appService.getViewMode() ? false : false" (next)="paramCron()" stepPosition="center" joyrideStep="notifTour2"> + <mat-list (next)="saveCron()" joyrideStep="notifTour3"> <h3 mat-subheader>{{lang.notificationSchedule}}</h3> <form class="form-horizontal" #notifForm="ngForm" style="overflow:hidden;"> <div class="form-group" style="padding-left:15px;padding-right:15px;"> @@ -172,7 +172,7 @@ <div class="alert alert-info" role="alert" style="margin:15px;"> {{lang.NotificationScheduleInfo}} </div> - <mat-list joyrideStep="notifTour4" [text]="'La liste de vos tâche actives apparait ici'"> + <mat-list joyrideStep="notifTour4"> <h3 mat-subheader>{{lang.activeCron}}</h3> <mat-chip-list #chipList class="mat-chip-list-stacked"> <span *ngFor="let notif of crontab;let i = index"> diff --git a/src/frontend/app/administration/notification/notifications-administration.component.ts b/src/frontend/app/administration/notification/notifications-administration.component.ts index 67e657086210fa18413ba92025f2bcaa90e6787c..137347e038ba34895a0f2dd1df14f1d4aa69366f 100755 --- a/src/frontend/app/administration/notification/notifications-administration.component.ts +++ b/src/frontend/app/administration/notification/notifications-administration.component.ts @@ -216,13 +216,15 @@ export class NotificationsAdministrationComponent implements OnInit { } paramCron() { + const notifBasket = this.authorizedNotification.filter((notif: any) => notif.path.indexOf('notification_cs_recette_BASKETS.sh') > -1)[0]; this.newCron = { 'm': '0', 'h': '8', 'dom': '*', + 'dow': '*', 'mon': '*', - 'cmd': '/var/www/html/maarch_courrier_develop/custom/cs_recette/bin/notification/scripts/notification_cs_recette_BASKETS.sh', - 'description': 'notification_cs_recette_BASKETS.sh', + 'cmd': notifBasket.path, + 'description': notifBasket.description, 'state': 'normal' }; } diff --git a/src/frontend/app/administration/sendmail/sendmail-administration.component.html b/src/frontend/app/administration/sendmail/sendmail-administration.component.html index 4cd4da598f792204c561d5849777c7afa9603169..ae97d288f4f11b1c71290c7dfded3b18679b6bbe 100644 --- a/src/frontend/app/administration/sendmail/sendmail-administration.component.html +++ b/src/frontend/app/administration/sendmail/sendmail-administration.component.html @@ -2,7 +2,7 @@ <ng-template #adminMenuTemplate> <mat-nav-list> <h3 mat-subheader>{{lang.actions}}</h3> - <a mat-list-item (click)="snav2.toggle();"> + <a mat-list-item (click)="snav2.toggle();" joyrideStep="emailTour2"> <mat-icon color="primary" mat-list-icon class="fas fa-signal"></mat-icon> <p mat-line> {{lang.checkSendmail}} @@ -24,7 +24,7 @@ </div> </div> <div class="container" [class.fullContainer]="appService.getViewMode()"> - <div class="container-content"> + <div class="container-content" joyrideStep="emailTour"> <div *ngIf="loading" style="display:flex;height:100%;"> <mat-spinner style="margin:auto;"></mat-spinner> </div> diff --git a/src/frontend/lang/lang-en.ts b/src/frontend/lang/lang-en.ts index 8005ff8240347febb50e1e3a5a38afc22efe3fba..e4dc81bbb537bdddaa688929664405e622c82473 100755 --- a/src/frontend/lang/lang-en.ts +++ b/src/frontend/lang/lang-en.ts @@ -1837,5 +1837,22 @@ export const LANG_EN = { "collaboraOnlineEditDenied2": "cannot be edited with Collabora Online", "documentEditor_collaboraonline": "Open Collabora Online directly inside Maarch Courrier", "canUpdateResourcesInSignatureBook": "Can modify the documents included in the signature book", - "includeFolderPerimeter": "Access out-of-scope mails in folders and followed mails" + "includeFolderPerimeter": "Access out-of-scope mails in folders and followed mails", + "admin_email_serverTour": "You must configure a mail server in order to be able to create users or activate notifications.", + "admin_notifTour": "We advise you to configure the notifications of baskets.", + "getIt": "I get it", + "admin_email_serverTitle": "Configure a mail server", + "emailTourTitle": "Server information", + "emailTourDescription": "Fill the necessary information.", + "emailTour2Title": "Test connection", + "emailTour2Description": "It is strongly recommended to test the information provided to ensure that the connection is effective.", + "admin_notifTitle": "Manage notifications", + "notifTourTitle": "Plan", + "notifTourDescription": "You can schedule your notifications precisely.", + "notifTour2Title": "Baskets notification", + "notifTour2Description": "We will schedule the <b color=\"primary\">baskets notification</b> for <b color=\"primary\">each day at 8:00 am<b>. <br/><br/>This will notify users of new contents in their baskets.", + "notifTour3Title": "Task period", + "notifTour3Description": "You can choose different periods to configure your task.", + "notifTour4Title": "To do-list", + "notifTour4Description": "The list of your active tasks appears here." }; \ No newline at end of file diff --git a/src/frontend/lang/lang-fr.ts b/src/frontend/lang/lang-fr.ts index ece708b48885efc46ccced5a11d02594a34451b4..1a6868746be8de4e62358d815219b2bf5ef25655 100755 --- a/src/frontend/lang/lang-fr.ts +++ b/src/frontend/lang/lang-fr.ts @@ -1835,4 +1835,19 @@ export const LANG_FR = { "admin_email_serverTour": "Vous devez paramétrer un serveur de mail afin de pouvoir créer des utilisateurs ou d'activer les notifications.", "admin_notifTour": "Nous vous conseillons de paramétrer les notifications de bannettes", "includeFolderPerimeter": "Consulter les courriers hors périmètre dans les dossiers et courriers suivis", + "getIt": "J'ai compris", + "admin_email_serverTitle": "Paramétrer un serveur de mail", + "emailTourTitle": "Informations du serveur", + "emailTourDescription": "Renseignez les informations nécessaires", + "emailTour2Title": "Tester la connexion", + "emailTour2Description": "Il est fortement recommandé de tester les informations renseignées afin de s'assurer que la connexion soit effective.", + "admin_notifTitle": "Gérer les notifications", + "notifTourTitle": "Planifier", + "notifTourDescription": "Vous pouvez planifier vos notifications de manière précise", + "notifTour2Title": "Notification de bannettes", + "notifTour2Description": "Nous allons planifier la <b color=\"primary\">notification de bannettes</b> pour <b color=\"primary\">chaque jour à 8h00<b>.<br/><br/>Cela avertira les utilisateurs de nouveaux contenus dans leur bannettes.", + "notifTour3Title": "Période de la tâche", + "notifTour3Description": "Vous pouvez choisir différentes périodes pour paramétrer votre tâche", + "notifTour4Title": "Liste des tâches", + "notifTour4Description": "La liste de vos tâches actives apparaissent ici" }; diff --git a/src/frontend/lang/lang-nl.ts b/src/frontend/lang/lang-nl.ts index d120b1e24b3909287fdf6b3389e389e01cfc4321..c5fe2a1def55df8e7cdad3eec1ccfb5a1a982565 100755 --- a/src/frontend/lang/lang-nl.ts +++ b/src/frontend/lang/lang-nl.ts @@ -1849,5 +1849,22 @@ export const LANG_NL = { "collaboraOnlineEditDenied2": "cannot be edited with Collabora Online__TO_TRANSLATE", "documentEditor_collaboraonline": "Open Collabora Online inside Maarch Courrier application__TO_TRANSLATE", "canUpdateResourcesInSignatureBook": "Pouvoir modifier les documents intégrés au parapheur__TO_TRANSLATE", - "includeFolderPerimeter": "Consulter les courriers hors périmètre dans les dossiers et courriers suivis__TO_TRANSLATE" + "includeFolderPerimeter": "Consulter les courriers hors périmètre dans les dossiers et courriers suivis__TO_TRANSLATE", + "admin_email_serverTour": "Vous devez paramétrer un serveur de mail afin de pouvoir créer des utilisateurs ou d'activer les notifications.__TO_TRANSLATE", + "admin_notifTour": "Nous vous conseillons de paramétrer les notifications de bannettes__TO_TRANSLATE", + "getIt": "J'ai compris__TO_TRANSLATE", + "admin_email_serverTitle": "Paramétrer un serveur de mail__TO_TRANSLATE", + "emailTourTitle": "Informations du serveur__TO_TRANSLATE", + "emailTourDescription": "Renseignez les informations nécessaires__TO_TRANSLATE", + "emailTour2Title": "Tester la connexion__TO_TRANSLATE", + "emailTour2Description": "Il est fortement recommandé de tester les informations renseignées afin de s'assurer que la connexion soit effective.__TO_TRANSLATE", + "admin_notifTitle": "Gérer les notifications__TO_TRANSLATE", + "notifTourTitle": "Planifier__TO_TRANSLATE", + "notifTourDescription": "Vous pouvez planifier vos notifications de manière précise__TO_TRANSLATE", + "notifTour2Title": "Notification de bannettes__TO_TRANSLATE", + "notifTour2Description": "Nous allons planifier la <b color=\"primary\">notification de bannettes</b> pour <b color=\"primary\">chaque jour à 8h00<b>.<br/><br/>Cela avertira les utilisateurs de nouveaux contenus dans leur bannettes.__TO_TRANSLATE", + "notifTour3Title": "Période de la tâche__TO_TRANSLATE", + "notifTour3Description": "Vous pouvez choisir différentes périodes pour paramétrer votre tâche__TO_TRANSLATE", + "notifTour4Title": "Liste des tâches__TO_TRANSLATE", + "notifTour4Description": "La liste de vos tâches actives apparaissent ici__TO_TRANSLATE" }; \ No newline at end of file diff --git a/src/frontend/service/featureTour.service.ts b/src/frontend/service/featureTour.service.ts index d2bd1ba64cd53335e3af6eace58913781fb0c9ac..5d35725b238343aeeaf8afd7940c494a374f3d8b 100644 --- a/src/frontend/service/featureTour.service.ts +++ b/src/frontend/service/featureTour.service.ts @@ -15,30 +15,64 @@ export class FeatureTourService { currentStepType: string = ''; + currentTour: any = null; + tour: any[] = [ + { + type: 'email', + stepId: 'admin_email_server', + title: `<i class="far fa-question-circle" color="primary"></i> <b color="primary">${this.lang.admin_email_serverTitle}</b>`, + description: this.lang.admin_email_serverTour, + redirectToAdmin : false, + }, + { + type: 'email', + stepId: 'emailTour@administration/sendmail', + title: `<i class="far fa-question-circle" color="primary"></i> <b color="primary">${this.lang.emailTourTitle}</b>`, + description: this.lang.emailTourDescription, + redirectToAdmin : false, + }, + { + type: 'email', + stepId: 'emailTour2@administration/sendmail', + title: `<i class="far fa-question-circle" color="primary"></i> <b color="primary">${this.lang.emailTour2Title}</b>`, + description: this.lang.emailTour2Description, + redirectToAdmin : false, + }, { type: 'notification', stepId: 'admin_notif', + title: `<i class="far fa-question-circle" color="primary"></i> <b color="primary">${this.lang.admin_notifTitle}</b>`, + description: this.lang.admin_notifTour, + redirectToAdmin : false, }, { type: 'notification', stepId: 'notifTour@administration/notifications', + title: `<i class="far fa-question-circle" color="primary"></i> <b color="primary">${this.lang.notifTourTitle}</b>`, + description: this.lang.notifTourDescription, + redirectToAdmin : false, }, { type: 'notification', stepId: 'notifTour2@administration/notifications', + title: `<i class="far fa-question-circle" color="primary"></i> <b color="primary">${this.lang.notifTour2Title}</b>`, + description: this.lang.notifTour2Description, + redirectToAdmin : false, }, { type: 'notification', stepId: 'notifTour3@administration/notifications', + title: `<i class="far fa-question-circle" color="primary"></i> <b color="primary">${this.lang.notifTour3Title}</b>`, + description: this.lang.notifTour3Description, + redirectToAdmin : false, }, { type: 'notification', stepId: 'notifTour4@administration/notifications', - }, - { - type: 'email', - stepId: 'admin_email_server', + title: `<i class="far fa-question-circle" color="primary"></i> <b color="primary">${this.lang.notifTour4Title}</b>`, + description: this.lang.notifTour4Description, + redirectToAdmin : true, }, ]; @@ -59,23 +93,34 @@ export class FeatureTourService { setTimeout(() => { const steps = this.tour.filter(step => step.type === this.currentStepType).map(step => step.stepId); this.joyrideService.startTour( - { steps: steps } + { + customTexts: { + next: '>>', + prev: '<<', + done: this.lang.getIt + }, + steps: steps + } ).subscribe( step => { /*Do something*/ + this.currentTour = this.tour.filter((item: any) => item.stepId.split('@')[0] === step.name)[0]; + const containerElement = document.getElementsByClassName('joyride-step__container') as HTMLCollectionOf<HTMLElement> + containerElement[0].style.width = 'auto'; + containerElement[0].style.height = 'auto'; + document.getElementsByClassName('joyride-step__header')[0].innerHTML = `${this.currentTour.title}`; + document.getElementsByClassName('joyride-step__body')[0].innerHTML = `${this.currentTour.description}`; }, error => { /*handle error*/ }, () => { - console.log('end tour'); - this.router.navigate(['/administration']); + if (this.currentTour.redirectToAdmin) { + this.router.navigate(['/administration']); + } this.endTour(); } ); - /*this.joyrideService.startTour( - { steps: ['admin_email_server', 'admin_notif', 'notifTour@administration/notifications', 'notifTour2@administration/notifications', 'notifTour3@administration/notifications', 'notifTour4@administration/notifications', 'admin_users'] } - );*/ }, 500); } }