mirror of
https://framagit.org/framasoft/framadate/funky-framadate-front.git
synced 2023-08-25 13:53:14 +02:00
Merge branch 'creation-calendar-and-cancellation' into 'master'
Creation calendar and cancellation See merge request framasoft/framadate/funky-framadate-front!51
This commit is contained in:
commit
5dfa315848
18
angular.json
18
angular.json
@ -22,10 +22,16 @@
|
|||||||
"main": "src/main.ts",
|
"main": "src/main.ts",
|
||||||
"polyfills": "src/polyfills.ts",
|
"polyfills": "src/polyfills.ts",
|
||||||
"tsConfig": "tsconfig.app.json",
|
"tsConfig": "tsconfig.app.json",
|
||||||
"assets": ["src/favicon.ico", "src/assets"],
|
"assets": [
|
||||||
|
"src/favicon.ico",
|
||||||
|
"src/assets"
|
||||||
|
],
|
||||||
"styles": [
|
"styles": [
|
||||||
"node_modules/fork-awesome/css/fork-awesome.min.css",
|
"node_modules/fork-awesome/css/fork-awesome.min.css",
|
||||||
"node_modules/bulma-switch/dist/css/bulma-switch.min.css",
|
"node_modules/bulma-switch/dist/css/bulma-switch.min.css",
|
||||||
|
"node_modules/primeicons/primeicons.css",
|
||||||
|
"node_modules/primeng/resources/themes/saga-blue/theme.css",
|
||||||
|
"node_modules/primeng/resources/primeng.min.css",
|
||||||
"src/styles.scss"
|
"src/styles.scss"
|
||||||
],
|
],
|
||||||
"scripts": [
|
"scripts": [
|
||||||
@ -93,8 +99,14 @@
|
|||||||
"lint": {
|
"lint": {
|
||||||
"builder": "@angular-devkit/build-angular:tslint",
|
"builder": "@angular-devkit/build-angular:tslint",
|
||||||
"options": {
|
"options": {
|
||||||
"tsConfig": ["tsconfig.app.json", "tsconfig.spec.json", "e2e/tsconfig.json"],
|
"tsConfig": [
|
||||||
"exclude": ["**/node_modules/**"]
|
"tsconfig.app.json",
|
||||||
|
"tsconfig.spec.json",
|
||||||
|
"e2e/tsconfig.json"
|
||||||
|
],
|
||||||
|
"exclude": [
|
||||||
|
"**/node_modules/**"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"e2e": {
|
"e2e": {
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
export interface DateChoice {
|
export interface DateChoice {
|
||||||
literal: string;
|
literal: String;
|
||||||
timeSlices: TimeSlices[];
|
timeSlices: TimeSlices[];
|
||||||
date_object: Date;
|
date_object: Date;
|
||||||
}
|
}
|
||||||
|
@ -59,6 +59,7 @@
|
|||||||
"ngx-markdown": "^9.0.0",
|
"ngx-markdown": "^9.0.0",
|
||||||
"ngx-webstorage": "^5.0.0",
|
"ngx-webstorage": "^5.0.0",
|
||||||
"node-forge": "^0.10.0",
|
"node-forge": "^0.10.0",
|
||||||
|
"primeicons": "^5.0.0",
|
||||||
"primeng": "^11.0.0",
|
"primeng": "^11.0.0",
|
||||||
"quill": "^1.3.7",
|
"quill": "^1.3.7",
|
||||||
"rxjs": "^6.5.5",
|
"rxjs": "^6.5.5",
|
||||||
|
@ -101,7 +101,7 @@ export class AppComponent implements OnInit, OnDestroy, AfterViewInit {
|
|||||||
});
|
});
|
||||||
|
|
||||||
// debug cors
|
// debug cors
|
||||||
this.apiService.getAllAvailablePolls();
|
// this.apiService.getAllAvailablePolls();
|
||||||
}
|
}
|
||||||
|
|
||||||
ngAfterViewInit(): void {
|
ngAfterViewInit(): void {
|
||||||
|
@ -2,6 +2,7 @@ export interface DateChoice {
|
|||||||
literal: string;
|
literal: string;
|
||||||
timeSlices: TimeSlices[];
|
timeSlices: TimeSlices[];
|
||||||
date_object: Date;
|
date_object: Date;
|
||||||
|
date_input: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface TimeSlices {
|
export interface TimeSlices {
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
import { Injectable } from '@angular/core';
|
import { Injectable } from '@angular/core';
|
||||||
import { DateChoice, defaultTimeOfDay } from '../../../../mocks/old-stuff/config/defaultConfigs';
|
import { defaultTimeOfDay } from '../../../../mocks/old-stuff/config/defaultConfigs';
|
||||||
|
import { DateChoice } from '../models/dateChoice.model';
|
||||||
|
|
||||||
@Injectable({
|
@Injectable({
|
||||||
providedIn: 'root',
|
providedIn: 'root',
|
||||||
@ -91,37 +92,43 @@ export class DateUtilitiesService {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
makeDefaultCalendarDateChoices(): Date[] {
|
||||||
|
return [
|
||||||
|
this.addDaysToDate(1, new Date()),
|
||||||
|
this.addDaysToDate(2, new Date()),
|
||||||
|
this.addDaysToDate(3, new Date()),
|
||||||
|
];
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* fill default dates for today + the next 3 dateChoices
|
* fill default dates for today + the next 3 dateChoices
|
||||||
*/
|
*/
|
||||||
makeDefaultDateChoices(): DateChoice[] {
|
makeDefaultDateChoices(): DateChoice[] {
|
||||||
const today = new Date();
|
const today = new Date();
|
||||||
const ladate = this.addDaysToDate(0, today);
|
|
||||||
const ladate2 = this.addDaysToDate(1, today);
|
const ladate2 = this.addDaysToDate(1, today);
|
||||||
const ladate3 = this.addDaysToDate(2, today);
|
const ladate3 = this.addDaysToDate(2, today);
|
||||||
const ladate4 = this.addDaysToDate(3, today);
|
const ladate4 = this.addDaysToDate(3, today);
|
||||||
|
|
||||||
return [
|
return [
|
||||||
{
|
this.convertDateToDateChoiceObject(ladate2),
|
||||||
literal: this.formateDateToInputStringNg(ladate),
|
this.convertDateToDateChoiceObject(ladate3),
|
||||||
timeSlices: Object.create(defaultTimeOfDay),
|
this.convertDateToDateChoiceObject(ladate4),
|
||||||
date_object: ladate,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
literal: this.formateDateToInputStringNg(ladate2),
|
|
||||||
timeSlices: Object.create(defaultTimeOfDay),
|
|
||||||
date_object: ladate2,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
literal: this.formateDateToInputStringNg(ladate3),
|
|
||||||
timeSlices: Object.create(defaultTimeOfDay),
|
|
||||||
date_object: ladate3,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
literal: this.formateDateToInputStringNg(ladate4),
|
|
||||||
timeSlices: Object.create(defaultTimeOfDay),
|
|
||||||
date_object: ladate4,
|
|
||||||
},
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* convert a date to a DateChoice
|
||||||
|
* @param date
|
||||||
|
*/
|
||||||
|
convertDateToDateChoiceObject(date: Date): DateChoice {
|
||||||
|
let isUnder10 = date.getDate() < 10;
|
||||||
|
let day = isUnder10 ? `0${date.getDate()}` : date.getDate();
|
||||||
|
// get month is based on 0, so yeah
|
||||||
|
let input = `${date.getFullYear()}-${date.getMonth() + 1}-${day}`;
|
||||||
|
return {
|
||||||
|
literal: this.formateDateToInputStringNg(date),
|
||||||
|
timeSlices: Object.create(defaultTimeOfDay),
|
||||||
|
date_object: date,
|
||||||
|
date_input: input,
|
||||||
|
};
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -33,7 +33,7 @@ export class PollService implements Resolve<Poll> {
|
|||||||
public endDateInterval: string;
|
public endDateInterval: string;
|
||||||
public intervalDays: number = 1;
|
public intervalDays: number = 1;
|
||||||
public intervalDaysDefault = 7;
|
public intervalDaysDefault = 7;
|
||||||
public dateList: DateChoice[] = []; // sets of days as strings, config to set identical time for days in a special days poll
|
public dateChoiceList: DateChoice[] = []; // sets of days as strings, config to set identical time for days in a special days poll
|
||||||
public timeList: TimeSlices[] = []; // ranges of time expressed as strings
|
public timeList: TimeSlices[] = []; // ranges of time expressed as strings
|
||||||
public previousRouteName: string = '/administration';
|
public previousRouteName: string = '/administration';
|
||||||
public nextRouteName: string = '/administration/step/2';
|
public nextRouteName: string = '/administration/step/2';
|
||||||
@ -67,11 +67,9 @@ export class PollService implements Resolve<Poll> {
|
|||||||
this.createFormGroup();
|
this.createFormGroup();
|
||||||
|
|
||||||
// fill in the next 3 days of the calendar date picker
|
// fill in the next 3 days of the calendar date picker
|
||||||
this.calendar = [
|
this.calendar = this.DateUtilitiesService.makeDefaultCalendarDateChoices();
|
||||||
this.DateUtilitiesService.addDaysToDate(1, new Date()),
|
this.dateChoiceList = this.DateUtilitiesService.makeDefaultDateChoices();
|
||||||
this.DateUtilitiesService.addDaysToDate(2, new Date()),
|
|
||||||
this.DateUtilitiesService.addDaysToDate(3, new Date()),
|
|
||||||
];
|
|
||||||
// disable days before today
|
// disable days before today
|
||||||
for (let i = 1; i < 31; i++) {
|
for (let i = 1; i < 31; i++) {
|
||||||
this.disabled_dates.push(this.DateUtilitiesService.addDaysToDate(-i, new Date()));
|
this.disabled_dates.push(this.DateUtilitiesService.addDaysToDate(-i, new Date()));
|
||||||
@ -142,6 +140,7 @@ export class PollService implements Resolve<Poll> {
|
|||||||
hasMaxCountOfAnswers: [300, [Validators.required]],
|
hasMaxCountOfAnswers: [300, [Validators.required]],
|
||||||
useVoterUniqueLink: [false, [Validators.required]],
|
useVoterUniqueLink: [false, [Validators.required]],
|
||||||
voterEmailList: ['', []],
|
voterEmailList: ['', []],
|
||||||
|
hasSeveralHours: [false, []],
|
||||||
allowNewDateTime: [true, [Validators.required]],
|
allowNewDateTime: [true, [Validators.required]],
|
||||||
});
|
});
|
||||||
this.form = form;
|
this.form = form;
|
||||||
@ -306,12 +305,12 @@ export class PollService implements Resolve<Poll> {
|
|||||||
timeList: [],
|
timeList: [],
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
this.dateList = [...new Set(converted)];
|
this.dateChoiceList = [...new Set(converted)];
|
||||||
// add only dates that are not already present with a Set of unique items
|
// add only dates that are not already present with a Set of unique items
|
||||||
console.log('this.dateList', this.dateList);
|
console.log('this.dateChoiceList', this.dateChoiceList);
|
||||||
this.showDateInterval = false;
|
this.showDateInterval = false;
|
||||||
|
|
||||||
this.form.patchValue({ choices: this.dateList });
|
this.form.patchValue({ choices: this.dateChoiceList });
|
||||||
|
|
||||||
this.toastService.display(`les dates ont été ajoutées aux réponses possibles.`);
|
this.toastService.display(`les dates ont été ajoutées aux réponses possibles.`);
|
||||||
}
|
}
|
||||||
@ -662,8 +661,39 @@ export class PollService implements Resolve<Poll> {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
convertCalendarDatesToChoices(array_dates) {
|
/**
|
||||||
return array_dates;
|
* convertir les dates de la propriété Calendar en objets de saisie de texte
|
||||||
|
*/
|
||||||
|
convertCalendarToText() {
|
||||||
|
let converted = [];
|
||||||
|
for (let someDate of this.calendar) {
|
||||||
|
converted.push(this.DateUtilitiesService.convertDateToDateChoiceObject(someDate));
|
||||||
|
}
|
||||||
|
this.dateChoiceList = converted.sort((first: any, second: any) => {
|
||||||
|
return first.date_object - second.date_object;
|
||||||
|
});
|
||||||
|
|
||||||
|
return converted;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* convert the DateChoices to an arrray of Dates for calendar picker
|
||||||
|
*/
|
||||||
|
convertTextToCalendar() {
|
||||||
|
console.log('convert text to calendar', this.dateChoiceList);
|
||||||
|
let converted = [];
|
||||||
|
for (let someDateChoice of this.dateChoiceList) {
|
||||||
|
let dateObj = new Date(someDateChoice.date_input);
|
||||||
|
console.log('dateObj', dateObj);
|
||||||
|
// check that date is not part of the disabled dates
|
||||||
|
if (this.disabled_dates.indexOf(dateObj) === -1) {
|
||||||
|
converted.push(dateObj);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log('converted', converted);
|
||||||
|
this.calendar = converted;
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
patchFormWithPoll(poll: Poll) {
|
patchFormWithPoll(poll: Poll) {
|
||||||
@ -693,7 +723,7 @@ export class PollService implements Resolve<Poll> {
|
|||||||
const field = form.value[pk];
|
const field = form.value[pk];
|
||||||
newpoll[pk] = field;
|
newpoll[pk] = field;
|
||||||
} else {
|
} else {
|
||||||
// console.log('manque pollKey', pk);
|
console.log('newPollFromForm : manque pollKey', pk);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -720,11 +750,7 @@ export class PollService implements Resolve<Poll> {
|
|||||||
|
|
||||||
for (let elem of this.calendar) {
|
for (let elem of this.calendar) {
|
||||||
console.log('elem', elem);
|
console.log('elem', elem);
|
||||||
let converted_day = {
|
let converted_day = this.DateUtilitiesService.convertDateToDateChoiceObject(elem);
|
||||||
literal: this.DateUtilitiesService.formateDateToInputStringNg(elem),
|
|
||||||
timeSlices: [],
|
|
||||||
date_object: elem,
|
|
||||||
};
|
|
||||||
newpoll.dateChoices.push(converted_day);
|
newpoll.dateChoices.push(converted_day);
|
||||||
}
|
}
|
||||||
console.log('newpoll.dateChoices', newpoll.dateChoices);
|
console.log('newpoll.dateChoices', newpoll.dateChoices);
|
||||||
|
@ -28,6 +28,7 @@ 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';
|
||||||
import { TimeListComponent } from './form/date/list/time/time-list.component';
|
import { TimeListComponent } from './form/date/list/time/time-list.component';
|
||||||
import { AdminConsultationComponent } from './consultation/consultation.component';
|
import { AdminConsultationComponent } from './consultation/consultation.component';
|
||||||
|
import { ConfirmDialogModule } from 'primeng/confirmdialog';
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
declarations: [
|
declarations: [
|
||||||
@ -62,6 +63,7 @@ import { AdminConsultationComponent } from './consultation/consultation.componen
|
|||||||
FormsModule,
|
FormsModule,
|
||||||
TranslateModule.forChild({ extend: true }),
|
TranslateModule.forChild({ extend: true }),
|
||||||
DragDropModule,
|
DragDropModule,
|
||||||
|
ConfirmDialogModule,
|
||||||
],
|
],
|
||||||
})
|
})
|
||||||
export class AdministrationModule {}
|
export class AdministrationModule {}
|
||||||
|
@ -98,11 +98,7 @@
|
|||||||
<app-shortcuts-help *ngIf="display"></app-shortcuts-help>
|
<app-shortcuts-help *ngIf="display"></app-shortcuts-help>
|
||||||
<br />
|
<br />
|
||||||
<br />
|
<br />
|
||||||
<app-day-list
|
<app-day-list [form]="form" [hasSeveralHours]="form.value.hasSeveralHours"></app-day-list>
|
||||||
[form]="form"
|
|
||||||
[dateChoices]="dateChoices"
|
|
||||||
[hasSeveralHours]="form.value.hasSeveralHours"
|
|
||||||
></app-day-list>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -6,14 +6,6 @@
|
|||||||
{{ 'dates.add' | translate }}
|
{{ 'dates.add' | translate }}
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="column">
|
|
||||||
<span class="count-dates title">
|
|
||||||
{{ dateChoices.length }}
|
|
||||||
</span>
|
|
||||||
<span>
|
|
||||||
{{ 'dates.count_dates' | translate }}
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div
|
<div
|
||||||
@ -36,12 +28,10 @@
|
|||||||
</span>
|
</span>
|
||||||
</span>
|
</span>
|
||||||
<input
|
<input
|
||||||
[(ngModel)]="choice.date_object"
|
[(ngModel)]="choice.date_input"
|
||||||
(keyup)="keyOnChoice($event, id)"
|
|
||||||
class="date-choice-item"
|
class="date-choice-item"
|
||||||
name="dateChoices_{{ id }}"
|
name="dateChoices_{{ id }}"
|
||||||
id="dateChoices_{{ id }}"
|
id="dateChoices_{{ id }}"
|
||||||
useValueAsDate
|
|
||||||
type="date"
|
type="date"
|
||||||
/>
|
/>
|
||||||
<button (click)="dateChoices.splice(id, 1)" class="btn btn-warning">
|
<button (click)="dateChoices.splice(id, 1)" class="btn btn-warning">
|
||||||
@ -55,7 +45,7 @@
|
|||||||
<div class="text-right">
|
<div class="text-right">
|
||||||
<button (click)="addTimeToDate(choice, id)" class="btn btn--primary">
|
<button (click)="addTimeToDate(choice, id)" class="btn btn--primary">
|
||||||
<i class="fa fa-plus"></i>
|
<i class="fa fa-plus"></i>
|
||||||
<!-- {{ 'dates.add_time' | translate }}-->
|
{{ 'dates.add_time' | translate }}
|
||||||
<i class="fa fa-clock-o"></i>
|
<i class="fa fa-clock-o"></i>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
@ -7,7 +7,8 @@ import { StorageService } from '../../../../../../core/services/storage.service'
|
|||||||
import { MatDialog } from '@angular/material/dialog';
|
import { MatDialog } from '@angular/material/dialog';
|
||||||
import { ShortcutsHelpComponent } from '../../../../../shared/components/ui/shortcuts-help/shortcuts-help.component';
|
import { ShortcutsHelpComponent } from '../../../../../shared/components/ui/shortcuts-help/shortcuts-help.component';
|
||||||
import { DateChoice } from '../../../../../../core/models/dateChoice.model';
|
import { DateChoice } from '../../../../../../core/models/dateChoice.model';
|
||||||
|
import { PollService } from '../../../../../../core/services/poll.service';
|
||||||
|
import { DateUtilitiesService } from '../../../../../../core/services/date.utilities.service';
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-day-list',
|
selector: 'app-day-list',
|
||||||
templateUrl: './day-list.component.html',
|
templateUrl: './day-list.component.html',
|
||||||
@ -17,8 +18,7 @@ import { DateChoice } from '../../../../../../core/models/dateChoice.model';
|
|||||||
export class DayListComponent {
|
export class DayListComponent {
|
||||||
@Input()
|
@Input()
|
||||||
form: FormGroup;
|
form: FormGroup;
|
||||||
@Input()
|
public dateChoices: DateChoice[] = [];
|
||||||
public dateChoices: Array<DateChoice> = [];
|
|
||||||
@Input()
|
@Input()
|
||||||
public hasSeveralHours: boolean;
|
public hasSeveralHours: boolean;
|
||||||
timeList: any;
|
timeList: any;
|
||||||
@ -27,11 +27,13 @@ export class DayListComponent {
|
|||||||
constructor(
|
constructor(
|
||||||
public dialog: MatDialog,
|
public dialog: MatDialog,
|
||||||
private toastService: ToastService,
|
private toastService: ToastService,
|
||||||
|
private pollService: PollService,
|
||||||
|
private dateUtilitiesService: DateUtilitiesService,
|
||||||
private cd: ChangeDetectorRef,
|
private cd: ChangeDetectorRef,
|
||||||
@Inject(DOCUMENT) private document: any,
|
@Inject(DOCUMENT) private document: any,
|
||||||
private storageService: StorageService
|
private storageService: StorageService
|
||||||
) {
|
) {
|
||||||
// this.setDemoTextChoices();
|
this.dateChoices = this.pollService.dateChoiceList;
|
||||||
}
|
}
|
||||||
|
|
||||||
reinitChoices(): void {
|
reinitChoices(): void {
|
||||||
@ -127,12 +129,24 @@ export class DayListComponent {
|
|||||||
}
|
}
|
||||||
|
|
||||||
addChoice(optionalLabel = ''): void {
|
addChoice(optionalLabel = ''): void {
|
||||||
this.storageService.dateChoices.push({
|
let lastDateChoice = this.pollService.dateChoiceList[this.pollService.dateChoiceList.length];
|
||||||
literal: '',
|
console.log('lastDateChoice', lastDateChoice);
|
||||||
timeSlices: [],
|
let lastDateChoiceObject = this.dateUtilitiesService.addDaysToDate(
|
||||||
date_object: new Date(),
|
this.pollService.dateChoiceList.length,
|
||||||
});
|
new Date()
|
||||||
|
);
|
||||||
|
|
||||||
|
if (lastDateChoice && lastDateChoice.date_object) {
|
||||||
|
lastDateChoiceObject = lastDateChoice.date_object;
|
||||||
|
}
|
||||||
|
this.pollService.dateChoiceList.push(
|
||||||
|
this.dateUtilitiesService.convertDateToDateChoiceObject(
|
||||||
|
this.dateUtilitiesService.addDaysToDate(1, lastDateChoiceObject)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
this.pollService.dateChoiceList.sort((a: any, b: any) => {
|
||||||
|
return a.date_object - b.date_object;
|
||||||
|
});
|
||||||
this.focusOnChoice(this.storageService.dateChoices.length - 1);
|
this.focusOnChoice(this.storageService.dateChoices.length - 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -150,10 +164,6 @@ export class DayListComponent {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
openKeyboardShortcutsModal() {
|
|
||||||
this.display = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
isWeekendDay(date_object: Date) {
|
isWeekendDay(date_object: Date) {
|
||||||
if (date_object) {
|
if (date_object) {
|
||||||
const day = date_object.getDay();
|
const day = date_object.getDay();
|
||||||
|
@ -58,10 +58,31 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
<p-confirmDialog #cd [style]="{ width: '50vw' }">
|
||||||
|
<ng-template pTemplate="header">
|
||||||
|
<h3>{{ 'creation.dialog' | translate }}</h3>
|
||||||
|
</ng-template>
|
||||||
|
<ng-template pTemplate="footer">
|
||||||
|
<button
|
||||||
|
type="button"
|
||||||
|
pButton
|
||||||
|
icon="pi pi-times"
|
||||||
|
[label]="'dialogs.no' | translate"
|
||||||
|
(click)="cd.reject()"
|
||||||
|
></button>
|
||||||
|
<button
|
||||||
|
type="button"
|
||||||
|
pButton
|
||||||
|
icon="pi pi-check"
|
||||||
|
[label]="'dialogs.yes' | translate"
|
||||||
|
(click)="cd.accept()"
|
||||||
|
></button>
|
||||||
|
</ng-template>
|
||||||
|
</p-confirmDialog>
|
||||||
<div class="columns">
|
<div class="columns">
|
||||||
<div class="column">
|
<div class="column">
|
||||||
<button class="button is-warning is-fullwidth" [routerLink]="['/']">
|
<button pButton class="button is-warning is-fullwidth" (click)="cancelCreationDialog()">
|
||||||
Annuler
|
{{ 'SENTENCES.Cancel' | translate }}
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="column">
|
<div class="column">
|
||||||
|
@ -2,6 +2,8 @@ import { Component, Inject, Input, OnInit } from '@angular/core';
|
|||||||
import { FormGroup } from '@angular/forms';
|
import { FormGroup } from '@angular/forms';
|
||||||
import { PollService } from '../../../../../core/services/poll.service';
|
import { PollService } from '../../../../../core/services/poll.service';
|
||||||
import { DOCUMENT } from '@angular/common';
|
import { DOCUMENT } from '@angular/common';
|
||||||
|
import { ConfirmationService } from 'primeng/api';
|
||||||
|
import { Router } from '@angular/router';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-step-one',
|
selector: 'app-step-one',
|
||||||
@ -9,13 +11,18 @@ import { DOCUMENT } from '@angular/common';
|
|||||||
styleUrls: ['./step-one.component.scss'],
|
styleUrls: ['./step-one.component.scss'],
|
||||||
})
|
})
|
||||||
export class StepOneComponent implements OnInit {
|
export class StepOneComponent implements OnInit {
|
||||||
constructor(public pollService: PollService, @Inject(DOCUMENT) private document: any) {}
|
|
||||||
|
|
||||||
@Input()
|
@Input()
|
||||||
step_max: any;
|
step_max: any;
|
||||||
@Input()
|
@Input()
|
||||||
form: FormGroup;
|
form: FormGroup;
|
||||||
|
|
||||||
|
constructor(
|
||||||
|
public pollService: PollService,
|
||||||
|
@Inject(DOCUMENT) private document: any,
|
||||||
|
private router: Router,
|
||||||
|
private confirmationService: ConfirmationService
|
||||||
|
) {}
|
||||||
|
|
||||||
ngOnInit(): void {
|
ngOnInit(): void {
|
||||||
this.pollService.step_current = 1;
|
this.pollService.step_current = 1;
|
||||||
const selector = '#title';
|
const selector = '#title';
|
||||||
@ -24,4 +31,13 @@ export class StepOneComponent implements OnInit {
|
|||||||
firstField.focus();
|
firstField.focus();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
cancelCreationDialog() {
|
||||||
|
this.confirmationService.confirm({
|
||||||
|
message: 'Quitter la création de sondage?',
|
||||||
|
accept: () => {
|
||||||
|
this.router.navigate(['/']);
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,11 +2,6 @@
|
|||||||
<app-stepper [step_current]="3" [step_max]="5"></app-stepper>
|
<app-stepper [step_current]="3" [step_max]="5"></app-stepper>
|
||||||
<app-errors-list [form]="pollService.form"></app-errors-list>
|
<app-errors-list [form]="pollService.form"></app-errors-list>
|
||||||
<!-- choix spécialement pour les dates-->
|
<!-- choix spécialement pour les dates-->
|
||||||
<span class="count-dates title">
|
|
||||||
{{ pollService.calendar.length }}
|
|
||||||
</span>
|
|
||||||
<span> - {{ 'dates.count_dates' | translate }} </span>
|
|
||||||
|
|
||||||
<div class="calendar" *ngIf="mode_calendar">
|
<div class="calendar" *ngIf="mode_calendar">
|
||||||
<p-calendar
|
<p-calendar
|
||||||
[(ngModel)]="pollService.calendar"
|
[(ngModel)]="pollService.calendar"
|
||||||
@ -20,8 +15,17 @@
|
|||||||
[showWeek]="false"
|
[showWeek]="false"
|
||||||
></p-calendar>
|
></p-calendar>
|
||||||
</div>
|
</div>
|
||||||
<button class="button" (click)="mode_calendar = !mode_calendar" [ngClass]="{ 'is-primary': !mode_calendar }">
|
|
||||||
Saisir les dates manuellement
|
<div class="text-date-list" *ngIf="!mode_calendar">
|
||||||
|
<app-day-list
|
||||||
|
[form]="pollService.form"
|
||||||
|
[hasSeveralHours]="pollService.form.value.hasSeveralHours"
|
||||||
|
></app-day-list>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<button class="button" (click)="changeDateInputMode()" [ngClass]="{ 'is-primary': !mode_calendar }">
|
||||||
|
<span *ngIf="mode_calendar"> <i class="fa fa-pencil"></i> Saisir les dates manuellement </span>
|
||||||
|
<span *ngIf="!mode_calendar"> <i class="fa fa-calendar-o"></i> Saisir les dates dans le calendrier </span>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="columns">
|
<div class="columns">
|
||||||
@ -38,8 +42,9 @@
|
|||||||
{{ 'dates.add_time' | translate }}
|
{{ 'dates.add_time' | translate }}
|
||||||
</button>
|
</button>
|
||||||
<button class="button" (click)="pollService.allowSeveralHours = !pollService.allowSeveralHours">
|
<button class="button" (click)="pollService.allowSeveralHours = !pollService.allowSeveralHours">
|
||||||
Horaires différentes pour chaque jour
|
<i class="fa fa-clock-o" aria-hidden="true"></i> Horaires différentes pour chaque jour
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
<button
|
<button
|
||||||
(click)="pollService.removeAllTimes()"
|
(click)="pollService.removeAllTimes()"
|
||||||
*ngIf="pollService.timeList.length && false == pollService.allowSeveralHours"
|
*ngIf="pollService.timeList.length && false == pollService.allowSeveralHours"
|
||||||
|
@ -7,3 +7,6 @@
|
|||||||
.calendar {
|
.calendar {
|
||||||
margin-top: 1em;
|
margin-top: 1em;
|
||||||
}
|
}
|
||||||
|
#add_time_button {
|
||||||
|
margin-bottom: 1em;
|
||||||
|
}
|
||||||
|
@ -12,7 +12,7 @@ export class StepThreeComponent implements OnInit {
|
|||||||
step_max: any;
|
step_max: any;
|
||||||
@Input()
|
@Input()
|
||||||
form: any;
|
form: any;
|
||||||
public mode_calendar = true;
|
public mode_calendar = false;
|
||||||
|
|
||||||
constructor(public pollService: PollService) {
|
constructor(public pollService: PollService) {
|
||||||
this.pollService.step_current = 3;
|
this.pollService.step_current = 3;
|
||||||
@ -23,4 +23,10 @@ export class StepThreeComponent implements OnInit {
|
|||||||
drop(event: CdkDragDrop<string[]>) {
|
drop(event: CdkDragDrop<string[]>) {
|
||||||
// moveItemInArray(this.pollService.choices, event.previousIndex, event.currentIndex);
|
// moveItemInArray(this.pollService.choices, event.previousIndex, event.currentIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
changeDateInputMode() {
|
||||||
|
this.mode_calendar ? this.pollService.convertCalendarToText() : this.pollService.convertTextToCalendar();
|
||||||
|
|
||||||
|
this.mode_calendar = !this.mode_calendar;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -20,6 +20,7 @@
|
|||||||
<div class="column">
|
<div class="column">
|
||||||
<button
|
<button
|
||||||
class="button is-fullwidth"
|
class="button is-fullwidth"
|
||||||
|
[disabled]="true"
|
||||||
[ngClass]="{ 'is-selected is-primary': !pollService.form.controls.isAboutDate.value }"
|
[ngClass]="{ 'is-selected is-primary': !pollService.form.controls.isAboutDate.value }"
|
||||||
(click)="pollService.form.controls.isAboutDate.setValue(false)"
|
(click)="pollService.form.controls.isAboutDate.setValue(false)"
|
||||||
>
|
>
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
.kind-of-poll {
|
.kind-of-poll {
|
||||||
margin-top: 5em;
|
margin-top: 5em;
|
||||||
|
min-height: 30vh;
|
||||||
.fa {
|
.fa {
|
||||||
margin-right: 1em;
|
margin-right: 1em;
|
||||||
}
|
}
|
||||||
|
@ -42,8 +42,6 @@ export class StepTwoComponent implements OnInit {
|
|||||||
this.pollService.step_current = 2;
|
this.pollService.step_current = 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
addIntervalOfDates() {}
|
|
||||||
|
|
||||||
get choices(): FormArray {
|
get choices(): FormArray {
|
||||||
return this.form.get('choices') as FormArray;
|
return this.form.get('choices') as FormArray;
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
<section class="creation-stepper">
|
<section class="creation-stepper" id="creation_stepper">
|
||||||
<div class="shortcuts">
|
<div class="shortcuts">
|
||||||
<a
|
<a
|
||||||
class="shortcut"
|
class="shortcut"
|
||||||
@ -35,8 +35,20 @@
|
|||||||
[ngClass]="{ 'is-active': pollService.step_current == 5 }"
|
[ngClass]="{ 'is-active': pollService.step_current == 5 }"
|
||||||
>5</a
|
>5</a
|
||||||
>
|
>
|
||||||
<!-- <a class="shortcut" href="#" [routerLink]="['/administration/step/6']" [ngClass]="{'is-active':pollService.step_current == 6}">6</a>-->
|
<a
|
||||||
<!-- <a class="shortcut" href="#" [routerLink]="['/administration/step/7']" [ngClass]="{'is-active':pollService.step_current == 7}">7</a>-->
|
class="shortcut"
|
||||||
|
href="#"
|
||||||
|
[routerLink]="['/administration/step/6']"
|
||||||
|
[ngClass]="{ 'is-active': pollService.step_current == 6 }"
|
||||||
|
>6</a
|
||||||
|
>
|
||||||
|
<a
|
||||||
|
class="shortcut"
|
||||||
|
href="#"
|
||||||
|
[routerLink]="['/administration/step/7']"
|
||||||
|
[ngClass]="{ 'is-active': pollService.step_current == 7 }"
|
||||||
|
>7</a
|
||||||
|
>
|
||||||
</div>
|
</div>
|
||||||
<div class="step-info">
|
<div class="step-info">
|
||||||
<h2 classs="title is-2" *ngIf="pollService.step_current == 1">
|
<h2 classs="title is-2" *ngIf="pollService.step_current == 1">
|
||||||
@ -47,9 +59,42 @@
|
|||||||
{{ pollService.form.value.title }}
|
{{ pollService.form.value.title }}
|
||||||
</span>
|
</span>
|
||||||
</h2>
|
</h2>
|
||||||
|
<div class="columns">
|
||||||
|
<div class="column">
|
||||||
<h3 class="title is-2">Étape {{ step_current }} sur {{ step_max }}</h3>
|
<h3 class="title is-2">Étape {{ step_current }} sur {{ step_max }}</h3>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="column is-narrow has-text-right">
|
||||||
|
<a class="shortcut cancel-button" (click)="cancelDialog()">
|
||||||
|
<i class="fa fa-times"></i>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="step-bar-container" style="width: 100%;">
|
<div class="step-bar-container" style="width: 100%;">
|
||||||
<div class="step-bar-progress" [ngStyle]="{ width: (step_current / step_max) * 100 + '%' }"></div>
|
<div class="step-bar-progress" [ngStyle]="{ width: (step_current / step_max) * 100 + '%' }"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<!-- modale de confirmation pour quitter-->
|
||||||
|
<p-confirmDialog #cd [style]="{ width: '50vw' }">
|
||||||
|
<ng-template pTemplate="header">
|
||||||
|
<h3>{{ 'creation.dialog' | translate }}</h3>
|
||||||
|
</ng-template>
|
||||||
|
<ng-template pTemplate="footer">
|
||||||
|
<button
|
||||||
|
type="button"
|
||||||
|
pButton
|
||||||
|
icon="pi pi-times"
|
||||||
|
[label]="'dialogs.no' | translate"
|
||||||
|
(click)="cd.reject()"
|
||||||
|
></button>
|
||||||
|
<button
|
||||||
|
type="button"
|
||||||
|
pButton
|
||||||
|
icon="pi pi-check"
|
||||||
|
[label]="'dialogs.yes' | translate"
|
||||||
|
(click)="cd.accept()"
|
||||||
|
></button>
|
||||||
|
</ng-template>
|
||||||
|
</p-confirmDialog>
|
||||||
|
<a href="#creation_stepper" (click)="cancelDialog()"></a>
|
||||||
</section>
|
</section>
|
||||||
|
@ -29,6 +29,16 @@
|
|||||||
&.is-active {
|
&.is-active {
|
||||||
background: $font_color;
|
background: $font_color;
|
||||||
}
|
}
|
||||||
|
&:hover {
|
||||||
|
background: $clicked-color;
|
||||||
|
}
|
||||||
|
&.cancel-button {
|
||||||
|
background: $border-color;
|
||||||
|
margin-top: -0.5em;
|
||||||
|
&:hover {
|
||||||
|
background: $font_color;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
.poll-title {
|
.poll-title {
|
||||||
color: $d-neutral;
|
color: $d-neutral;
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
import { Component, Input, OnInit } from '@angular/core';
|
import { Component, Input, OnInit } from '@angular/core';
|
||||||
import { PollService } from '../../../core/services/poll.service';
|
import { PollService } from '../../../core/services/poll.service';
|
||||||
import { environment } from '../../../../environments/environment';
|
import { environment } from '../../../../environments/environment';
|
||||||
|
import { ConfirmationService } from 'primeng/api';
|
||||||
|
import { Router } from '@angular/router';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-stepper',
|
selector: 'app-stepper',
|
||||||
@ -13,5 +15,18 @@ export class StepperComponent {
|
|||||||
@Input()
|
@Input()
|
||||||
public step_max: number = 5;
|
public step_max: number = 5;
|
||||||
public show_shortcuts = environment.showStepperShortcuts;
|
public show_shortcuts = environment.showStepperShortcuts;
|
||||||
constructor(public pollService: PollService) {}
|
constructor(
|
||||||
|
public pollService: PollService,
|
||||||
|
private confirmationService: ConfirmationService,
|
||||||
|
private router: Router
|
||||||
|
) {}
|
||||||
|
|
||||||
|
cancelDialog() {
|
||||||
|
this.confirmationService.confirm({
|
||||||
|
message: 'Quitter la création de sondage?',
|
||||||
|
accept: () => {
|
||||||
|
this.router.navigate(['/']);
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -11,6 +11,7 @@ a {
|
|||||||
max-width: 20em;
|
max-width: 20em;
|
||||||
@extend .truncate;
|
@extend .truncate;
|
||||||
}
|
}
|
||||||
|
.admin-ok pre,
|
||||||
.truncate {
|
.truncate {
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
|
@ -28,6 +28,8 @@ import { ErasableInputComponent } from './components/ui/erasable-input/erasable-
|
|||||||
import { WipTodoComponent } from './components/ui/wip-todo/wip-todo.component';
|
import { WipTodoComponent } from './components/ui/wip-todo/wip-todo.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 { ShortcutsHelpComponent } from '../features/shared/components/ui/shortcuts-help/shortcuts-help.component';
|
import { ShortcutsHelpComponent } from '../features/shared/components/ui/shortcuts-help/shortcuts-help.component';
|
||||||
|
import { ConfirmDialogModule } from 'primeng/confirmdialog';
|
||||||
|
import { ConfirmationService } from 'primeng/api';
|
||||||
|
|
||||||
const COMPONENTS = [
|
const COMPONENTS = [
|
||||||
ChoiceDetailsComponent,
|
ChoiceDetailsComponent,
|
||||||
@ -63,7 +65,8 @@ const MATERIAL_MODULES = [
|
|||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
declarations: COMPONENTS,
|
declarations: COMPONENTS,
|
||||||
imports: [...ANGULAR_MODULES, ...MATERIAL_MODULES],
|
imports: [...ANGULAR_MODULES, ...MATERIAL_MODULES, ConfirmDialogModule],
|
||||||
exports: [...ANGULAR_MODULES, ...MATERIAL_MODULES, ...COMPONENTS],
|
exports: [...ANGULAR_MODULES, ...MATERIAL_MODULES, ...COMPONENTS],
|
||||||
|
providers: [ConfirmationService],
|
||||||
})
|
})
|
||||||
export class SharedModule {}
|
export class SharedModule {}
|
||||||
|
@ -29,6 +29,7 @@
|
|||||||
"creation": {
|
"creation": {
|
||||||
"title": "Créer un sondage",
|
"title": "Créer un sondage",
|
||||||
"want": "Choisissez le type de sondage",
|
"want": "Choisissez le type de sondage",
|
||||||
|
"dialog": "Quitter la création de sondage?",
|
||||||
"advanced": "Options avancées",
|
"advanced": "Options avancées",
|
||||||
"kind": {
|
"kind": {
|
||||||
"classic": "Propositions",
|
"classic": "Propositions",
|
||||||
@ -143,6 +144,10 @@
|
|||||||
"choiceNotColorblind": "Je ne suis pas",
|
"choiceNotColorblind": "Je ne suis pas",
|
||||||
"colorblindText": "daltonien."
|
"colorblindText": "daltonien."
|
||||||
},
|
},
|
||||||
|
"dialogs" : {
|
||||||
|
"no": "non",
|
||||||
|
"yes": "oui"
|
||||||
|
},
|
||||||
"selectors": {
|
"selectors": {
|
||||||
"lang": "Sélectionner la langue"
|
"lang": "Sélectionner la langue"
|
||||||
},
|
},
|
||||||
|
@ -12,16 +12,14 @@ export const environment = {
|
|||||||
production: false,
|
production: false,
|
||||||
display_routes: true, // demo paths to test polls
|
display_routes: true, // demo paths to test polls
|
||||||
autofill_creation: true,
|
autofill_creation: true,
|
||||||
advanced_options_display: true,
|
advanced_options_display: false,
|
||||||
autofill_participation: true,
|
autofill_participation: false,
|
||||||
// autofill: false,
|
|
||||||
showDemoWarning: false,
|
showDemoWarning: false,
|
||||||
// autoSendNewPoll: true,
|
|
||||||
autoSendNewPoll: false,
|
autoSendNewPoll: false,
|
||||||
showStepperShortcuts: true,
|
showStepperShortcuts: true,
|
||||||
interval_days_default: 7,
|
interval_days_default: 7,
|
||||||
expiresDaysDelay: 60,
|
expiresDaysDelay: 60,
|
||||||
maxCountOfAnswers: 150,
|
maxCountOfAnswers: 300,
|
||||||
appTitle: 'Framadate',
|
appTitle: 'Framadate',
|
||||||
appVersion: '0.6.0',
|
appVersion: '0.6.0',
|
||||||
appLogo: 'assets/img/logo.png',
|
appLogo: 'assets/img/logo.png',
|
||||||
|
@ -190,6 +190,7 @@ mat-checkbox {
|
|||||||
background: white;
|
background: white;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
|
padding: 1em 2em;
|
||||||
}
|
}
|
||||||
|
|
||||||
.example-box {
|
.example-box {
|
||||||
@ -270,49 +271,49 @@ mat-checkbox {
|
|||||||
padding: 0.5em;
|
padding: 0.5em;
|
||||||
margin: 1em auto;
|
margin: 1em auto;
|
||||||
|
|
||||||
|
p-button,
|
||||||
button {
|
button {
|
||||||
border: solid 1px $primary_color;
|
border: solid 1px $secondary_color !important;
|
||||||
|
color: $secondary_color !important;
|
||||||
}
|
}
|
||||||
.p-datepicker-buttonbar {
|
.p-datepicker-buttonbar {
|
||||||
margin-top: 0.5em;
|
margin-top: 0.5em;
|
||||||
}
|
}
|
||||||
.pi-chevron-left:after {
|
|
||||||
content: '<';
|
|
||||||
}
|
|
||||||
|
|
||||||
.pi-chevron-right:after {
|
|
||||||
content: '>';
|
|
||||||
}
|
|
||||||
|
|
||||||
.p-datepicker-month {
|
.p-datepicker-month {
|
||||||
margin-right: 1em;
|
margin-right: 1em;
|
||||||
}
|
}
|
||||||
|
|
||||||
.p-datepicker-weeknumber span {
|
.p-datepicker-weeknumber span {
|
||||||
border-right: 1px solid $legend_color;
|
border-right: 1px solid $secondary_color;
|
||||||
}
|
}
|
||||||
|
|
||||||
.p-datepicker-today span {
|
.p-datepicker-today td span {
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
border: solid 1px $legend_color;
|
border: solid 3px $secondary_color;
|
||||||
|
background: $white;
|
||||||
}
|
}
|
||||||
|
|
||||||
.p-datepicker-calendar td span {
|
.p-datepicker-calendar td span {
|
||||||
padding: 1em;
|
padding: 1.5em 0.5em;
|
||||||
width: 3.5em;
|
width: 3.5em;
|
||||||
transition: all ease 0.5s;
|
transition: all ease 0.5s;
|
||||||
|
background: $white;
|
||||||
|
border: solid 1px $secondary_color;
|
||||||
|
color: $secondary_color;
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
background: mix($white, $legend_color);
|
background: mix($white, $secondary_color);
|
||||||
color: $white;
|
color: $white;
|
||||||
transition: all ease 0.2s;
|
transition: all ease 0.2s;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
table td > span {
|
||||||
|
border-radius: 0.25em;
|
||||||
|
}
|
||||||
.p-highlight {
|
.p-highlight {
|
||||||
background: $legend_color;
|
background: $secondary_color !important;
|
||||||
color: $white;
|
color: $white !important;
|
||||||
border-radius: 100%;
|
|
||||||
}
|
}
|
||||||
.p-disabled {
|
.p-disabled {
|
||||||
background: $d-grey;
|
background: $d-grey;
|
||||||
@ -326,7 +327,7 @@ mat-checkbox {
|
|||||||
&:nth-of-type(6),
|
&:nth-of-type(6),
|
||||||
&:nth-of-type(7) {
|
&:nth-of-type(7) {
|
||||||
//border-left: 1px solid $border-color;
|
//border-left: 1px solid $border-color;
|
||||||
background: $grey;
|
background: $grey-lighter;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -14,6 +14,7 @@
|
|||||||
display: inline-block;
|
display: inline-block;
|
||||||
}
|
}
|
||||||
.time-choice {
|
.time-choice {
|
||||||
|
padding: 1em;
|
||||||
input {
|
input {
|
||||||
width: 80%;
|
width: 80%;
|
||||||
}
|
}
|
||||||
|
@ -9463,6 +9463,11 @@ pretty-format@^26.0.0, pretty-format@^26.1.0:
|
|||||||
ansi-styles "^4.0.0"
|
ansi-styles "^4.0.0"
|
||||||
react-is "^16.12.0"
|
react-is "^16.12.0"
|
||||||
|
|
||||||
|
primeicons@^5.0.0:
|
||||||
|
version "5.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/primeicons/-/primeicons-5.0.0.tgz#73a0b6028a77c58a9eeb331ad13aaf085e8451ee"
|
||||||
|
integrity sha512-heygWF0X5HFI1otlZE62pp6ye7sZ8om78J9au2BRkg8O7Y8AHTZ9qKMRzchZUHLe8zUAvdi6hZzzm9XxgwIExw==
|
||||||
|
|
||||||
primeng@^11.0.0:
|
primeng@^11.0.0:
|
||||||
version "11.4.5"
|
version "11.4.5"
|
||||||
resolved "https://registry.yarnpkg.com/primeng/-/primeng-11.4.5.tgz#128137d727d555f68c212a1dcb1f2af3b0f4afd4"
|
resolved "https://registry.yarnpkg.com/primeng/-/primeng-11.4.5.tgz#128137d727d555f68c212a1dcb1f2af3b0f4afd4"
|
||||||
|
Loading…
Reference in New Issue
Block a user