funky-framadate-front/src/app/pages/visibility/visibility.component.ts

46 lines
1.4 KiB
TypeScript
Raw Normal View History

2019-08-11 16:21:49 +02:00
import {Component, OnInit} from '@angular/core';
2019-08-10 16:57:36 +02:00
import {BaseComponent} from '../base-page/base.component';
2019-12-03 17:20:57 +01:00
import {ConfigService} from '../../services/config.service';
import {environment} from "../../../environments/environment";
2019-08-10 16:57:36 +02:00
@Component({
2019-08-11 16:21:49 +02:00
selector: 'framadate-visibility',
templateUrl: './visibility.component.html',
styleUrls: ['./visibility.component.scss']
2019-08-10 16:57:36 +02:00
})
export class VisibilityComponent extends BaseComponent implements OnInit {
showCustomPassword = false;
baseUrl = environment.baseApiHref;
2019-08-10 16:57:36 +02:00
2019-08-11 16:21:49 +02:00
constructor(public config: ConfigService) {
super(config);
}
2019-08-10 16:57:36 +02:00
2019-08-11 16:21:49 +02:00
ngOnInit() {
this.config.customUrl = this.makeUuid();
2019-11-23 15:35:27 +01:00
this.config.expirationDate = (this.addDaysToDate(this.config.expiracyDateDefaultInDays, new Date())).toISOString().substring(0, 10);
}
/**
* generate unique id to have a default url for future poll
*/
makeUuid() {
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);
return v.toString(16);
});
2019-08-11 16:21:49 +02:00
}
2019-08-10 16:57:36 +02:00
2019-11-23 15:35:27 +01:00
/**
* add some days to a date, to compute intervals
* @param days
* @param date
*/
addDaysToDate(days: number, date: Date) {
date = new Date(date.valueOf());
date.setDate(date.getDate() + days);
return date;
};
2019-08-10 16:57:36 +02:00
}