fix time slices creation, were all linked

This commit is contained in:
Tykayn 2021-05-18 13:34:28 +02:00 committed by tykayn
parent 0834ea3ffa
commit 4a7b989142
11 changed files with 61 additions and 18 deletions

View File

@ -52,6 +52,7 @@
"chart.js": "^2.9.3", "chart.js": "^2.9.3",
"crypto": "^1.0.1", "crypto": "^1.0.1",
"fork-awesome": "^1.1.7", "fork-awesome": "^1.1.7",
"ng-keyboard-shortcuts": "^10.1.17",
"ng2-charts": "^2.3.0", "ng2-charts": "^2.3.0",
"ngx-clipboard": "^13.0.0", "ngx-clipboard": "^13.0.0",
"ngx-markdown": "^9.0.0", "ngx-markdown": "^9.0.0",

View File

@ -1,4 +1,4 @@
import { Component, OnDestroy, OnInit } from '@angular/core'; import { AfterViewInit, Component, OnDestroy, OnInit } from '@angular/core';
import { Title } from '@angular/platform-browser'; import { Title } from '@angular/platform-browser';
import { Subscription } from 'rxjs'; import { Subscription } from 'rxjs';
@ -8,6 +8,8 @@ import { LanguageService } from './core/services/language.service';
import { ThemeService } from './core/services/theme.service'; import { ThemeService } from './core/services/theme.service';
import { NavigationEnd, Router, RouterOutlet } from '@angular/router'; import { NavigationEnd, Router, RouterOutlet } from '@angular/router';
import { slideInAnimation } from './shared/animations/main'; import { slideInAnimation } from './shared/animations/main';
import { FramaKeyboardShortcuts } from './shared/shortcuts/main';
import { ShortcutInput } from 'ng-keyboard-shortcuts';
@Component({ @Component({
selector: 'app-root', selector: 'app-root',
@ -15,7 +17,9 @@ import { slideInAnimation } from './shared/animations/main';
styleUrls: ['./app.component.scss'], styleUrls: ['./app.component.scss'],
animations: [slideInAnimation], animations: [slideInAnimation],
}) })
export class AppComponent implements OnInit, OnDestroy { export class AppComponent implements OnInit, OnDestroy, AfterViewInit {
shortcuts: ShortcutInput[] = FramaKeyboardShortcuts;
public appTitle: string = environment.appTitle; public appTitle: string = environment.appTitle;
public appLogo: string = environment.appLogo; public appLogo: string = environment.appLogo;
public themeClass: string; public themeClass: string;
@ -61,6 +65,15 @@ export class AppComponent implements OnInit, OnDestroy {
} }
}); });
} }
ngAfterViewInit() {
this.shortcuts.push({
key: ['cmd + g'],
label: 'Help',
description: 'Command + G',
command: (e) => console.log(e),
preventDefault: true,
});
}
ngOnDestroy(): void { ngOnDestroy(): void {
if (this.themeSubscription) { if (this.themeSubscription) {

View File

@ -28,6 +28,8 @@ import { LegalComponent } from './features/shared/components/ui/static-pages/leg
import { PrivacyComponent } from './features/shared/components/ui/static-pages/privacy/privacy.component'; import { PrivacyComponent } from './features/shared/components/ui/static-pages/privacy/privacy.component';
import { CipheringComponent } from './features/shared/components/ui/static-pages/ciphering/ciphering.component'; import { CipheringComponent } from './features/shared/components/ui/static-pages/ciphering/ciphering.component';
import { ErrorsListComponent } from './features/shared/components/ui/form/errors-list/errors-list.component'; import { ErrorsListComponent } from './features/shared/components/ui/form/errors-list/errors-list.component';
import { KeyboardShortcutsModule } from 'ng-keyboard-shortcuts';
import { AdministrationModule } from './features/administration/administration.module';
registerLocaleData(localeEn, 'en-EN'); registerLocaleData(localeEn, 'en-EN');
registerLocaleData(localeFr, 'fr-FR'); registerLocaleData(localeFr, 'fr-FR');
@ -45,6 +47,7 @@ export function HttpLoaderFactory(http: HttpClient): TranslateHttpLoader {
declarations: [AppComponent, CguComponent, LegalComponent, PrivacyComponent, CipheringComponent], declarations: [AppComponent, CguComponent, LegalComponent, PrivacyComponent, CipheringComponent],
imports: [ imports: [
AppRoutingModule, AppRoutingModule,
AdministrationModule,
BrowserAnimationsModule, BrowserAnimationsModule,
BrowserModule, BrowserModule,
ClipboardModule, ClipboardModule,
@ -52,6 +55,7 @@ export function HttpLoaderFactory(http: HttpClient): TranslateHttpLoader {
CoreModule, CoreModule,
FormsModule, FormsModule,
HttpClientModule, HttpClientModule,
KeyboardShortcutsModule.forRoot(),
MarkdownModule.forRoot(), MarkdownModule.forRoot(),
NgxWebstorageModule.forRoot({ prefix: environment.localStorage.key }), NgxWebstorageModule.forRoot({ prefix: environment.localStorage.key }),
SharedModule, SharedModule,

View File

@ -104,22 +104,22 @@ export class DateUtilitiesService {
return [ return [
{ {
literal: this.formateDateToInputStringNg(ladate), literal: this.formateDateToInputStringNg(ladate),
timeList: defaultTimeOfDay, timeList: Object.create(defaultTimeOfDay),
date_object: ladate, date_object: ladate,
}, },
{ {
literal: this.formateDateToInputStringNg(ladate2), literal: this.formateDateToInputStringNg(ladate2),
timeList: defaultTimeOfDay, timeList: Object.create(defaultTimeOfDay),
date_object: ladate2, date_object: ladate2,
}, },
{ {
literal: this.formateDateToInputStringNg(ladate3), literal: this.formateDateToInputStringNg(ladate3),
timeList: defaultTimeOfDay, timeList: Object.create(defaultTimeOfDay),
date_object: ladate3, date_object: ladate3,
}, },
{ {
literal: this.formateDateToInputStringNg(ladate4), literal: this.formateDateToInputStringNg(ladate4),
timeList: defaultTimeOfDay, timeList: Object.create(defaultTimeOfDay),
date_object: ladate4, date_object: ladate4,
}, },
]; ];

View File

@ -18,7 +18,6 @@ import { BaseConfigComponent } from './form/base-config/base-config.component';
import { AdvancedConfigComponent } from './form/advanced-config/advanced-config.component'; import { AdvancedConfigComponent } from './form/advanced-config/advanced-config.component';
import { CalendarModule, DialogModule } from 'primeng'; import { CalendarModule, DialogModule } from 'primeng';
import { DragDropModule } from '@angular/cdk/drag-drop'; import { DragDropModule } from '@angular/cdk/drag-drop';
import { AppModule } from '../../app.module';
import { IntervalComponent } from './form/date/interval/interval.component'; import { IntervalComponent } from './form/date/interval/interval.component';
import { DayListComponent } from './form/date/list/day/day-list.component'; import { DayListComponent } from './form/date/list/day/day-list.component';
import { PickerComponent } from './form/date/picker/picker.component'; import { PickerComponent } from './form/date/picker/picker.component';

View File

@ -7,13 +7,8 @@ import { DateUtilitiesService } from '../../../../core/services/date.utilities.s
import { ApiService } from '../../../../core/services/api.service'; import { ApiService } from '../../../../core/services/api.service';
import { Router } from '@angular/router'; import { Router } from '@angular/router';
import { DOCUMENT } from '@angular/common'; import { DOCUMENT } from '@angular/common';
import { import { DateChoice, defaultTimeOfDay, TimeSlices } from '../../../../../../mocks/old-stuff/config/defaultConfigs';
DateChoice,
defaultTimeOfDay,
otherDefaultDates,
TimeSlices,
} from '../../../../../../mocks/old-stuff/config/defaultConfigs';
import { moveItemInArray, transferArrayItem } from '@angular/cdk/drag-drop';
import { TranslateService } from '@ngx-translate/core'; import { TranslateService } from '@ngx-translate/core';
import { StorageService } from '../../../../core/services/storage.service'; import { StorageService } from '../../../../core/services/storage.service';
@ -71,7 +66,7 @@ export class DateSelectComponent implements OnInit {
this.toastService.display('périodes horaires vidées'); this.toastService.display('périodes horaires vidées');
} }
resetTimes(slices = defaultTimeOfDay) { resetTimes(slices = Object.create(defaultTimeOfDay)) {
this.timeSlices = slices; this.timeSlices = slices;
this.dateList.map((elem) => (elem.timeList = Object.create(slices))); this.dateList.map((elem) => (elem.timeList = Object.create(slices)));
this.toastService.display('périodes horaires réinitialisées'); this.toastService.display('périodes horaires réinitialisées');

View File

@ -30,7 +30,7 @@
cdkDrag cdkDrag
[ngClass]="{ 'day-weekend': isWeekendDay(choice.date_object) }" [ngClass]="{ 'day-weekend': isWeekendDay(choice.date_object) }"
> >
<span class="button is-default" for="dateChoices_{{ id }}"> <span class="button is-default">
<i class="icon fa fa-arrows-v"></i> <i class="icon fa fa-arrows-v"></i>
<span *ngIf="choice.date_object"> <span *ngIf="choice.date_object">
{{ choice.date_object | date: 'E':'Europe/Paris':'fr_FR' }} {{ choice.date_object | date: 'E':'Europe/Paris':'fr_FR' }}

View File

@ -37,7 +37,7 @@
<div class="ui-card-subtitle"> <div class="ui-card-subtitle">
Exporter/Imprimer Exporter/Imprimer
</div> </div>
<button class="replicate export-csv btn" (click)="duplicate()"> <button class="replicate duplicate btn" (click)="duplicate()">
<i class="fa fa-copy" aria-hidden="true"></i> <i class="fa fa-copy" aria-hidden="true"></i>
Dupliquer Dupliquer
</button> </button>

View File

@ -0,0 +1,18 @@
import { ShortcutEventOutput } from 'ng-keyboard-shortcuts';
export const FramaKeyboardShortcuts = [
{
key: ['cmd + a'],
command: (output: ShortcutEventOutput) => console.log('command + a', output),
},
{
key: 'ctrl + a',
preventDefault: true,
command: (output: ShortcutEventOutput) => console.log('control + a', output),
},
{
key: 'ctrl + plus',
preventDefault: true,
command: (output: ShortcutEventOutput) => console.log('control + plus key', output),
},
];

View File

@ -17,6 +17,7 @@
"angularCompilerOptions": { "angularCompilerOptions": {
"fullTemplateTypeCheck": true, "fullTemplateTypeCheck": true,
"strictInjectionParameters": true, "strictInjectionParameters": true,
"strictTemplates": true "strictTemplates": true,
"enableIvy": false
} }
} }

View File

@ -8142,6 +8142,13 @@ next-tick@~1.0.0:
resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c"
integrity sha1-yobR/ogoFpsBICCOPchCS524NCw= integrity sha1-yobR/ogoFpsBICCOPchCS524NCw=
ng-keyboard-shortcuts@^10.1.17:
version "10.1.17"
resolved "https://registry.yarnpkg.com/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-10.1.17.tgz#e31b72632ccb75daca8aae0ddd8fbc63a51f6054"
integrity sha512-uJ71+qMyt3kd6xsIv674uRgHPNcxkNxDMYhHLJor3eyi8kWJIRMok4UdIA4b7WtQ7+Pv3iWB6aO/HOzLRONZxw==
dependencies:
tslib "^2.0.0"
ng2-charts@^2.3.0: ng2-charts@^2.3.0:
version "2.3.2" version "2.3.2"
resolved "https://registry.yarnpkg.com/ng2-charts/-/ng2-charts-2.3.2.tgz#206de368e58f9655e167b6791c9d2a804191ef99" resolved "https://registry.yarnpkg.com/ng2-charts/-/ng2-charts-2.3.2.tgz#206de368e58f9655e167b6791c9d2a804191ef99"
@ -11498,6 +11505,11 @@ tslib@<2.0.0, tslib@^1.10.0, tslib@^1.8.1, tslib@^1.9.0:
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043"
integrity sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q== integrity sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==
tslib@^2.0.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.2.0.tgz#fb2c475977e35e241311ede2693cee1ec6698f5c"
integrity sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==
tsutils@^3.17.1: tsutils@^3.17.1:
version "3.17.1" version "3.17.1"
resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.17.1.tgz#ed719917f11ca0dee586272b2ac49e015a2dd759" resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.17.1.tgz#ed719917f11ca0dee586272b2ac49e015a2dd759"