export format json public

This commit is contained in:
tykayn 2020-04-11 17:23:52 +02:00
parent acb091802c
commit e2c388da9e
3 changed files with 45 additions and 7 deletions

View File

@ -23,6 +23,7 @@ export class AppComponent {
this.detectCurrentTabOnRouteChange();
this.isDevelopmentEnv = !environment.production
}
detectCurrentTabOnRouteChange() {

View File

@ -5,8 +5,16 @@
class='btn btn--primary'
(click)='config.execStuff()'
*ngIf='config.isAdmin' >
launch !
launch admin action execStuff !
</button >
<button
class='btn btn--primary'
(click)='config.exportJson()'
*ngIf='config.isAdmin' >
<i class="fa fa-file-archive-o"></i>
export CSV
</button >
<div
class='loading'

View File

@ -62,11 +62,11 @@ export class ConfigService extends PollConfig {
if (storage) {
const preferences = storage.getItem('FramadateConfig');
if(preferences){
if (preferences) {
const parsed = JSON.parse(preferences);
console.log('parsed', parsed)
this.preferences = parsed
const parsed = JSON.parse(preferences);
console.log('parsed', parsed);
this.preferences = parsed;
}
} else {
@ -81,7 +81,7 @@ export class ConfigService extends PollConfig {
if (this.preferences) {
this.preferences[key] = value;
if(key === 'themeName' && this.themeChoices.includes(value)){
if (key === 'themeName' && this.themeChoices.includes(value)) {
this.themeSelected = this.themeChoices.indexOf(value);
this.preferences.themeClass =
this.themeClass = `theme-${value}`;
@ -593,7 +593,6 @@ export class ConfigService extends PollConfig {
}
/**
* TODO
* export all the poll data available to the public as a CSV single file
*/
exportCSV() {
@ -666,6 +665,36 @@ export class ConfigService extends PollConfig {
link.click(); // This will download the data file named "my_data.csv".
}
exportJson() {
this.download('export_poll_' + this.pollSlug + '.json', JSON.stringify(
{
export_date: new Date(),
creation_date: this.creationDate,
title: this.title,
description: this.description,
pollType: this.pollType,
urlPublic: this.urlPublic,
currentPoll: this.currentPoll,
votes: this.voteChoices
})
);
}
download(filename, text) {
var element = document.createElement('a');
element.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(text));
element.setAttribute('download', filename);
element.style.display = 'none';
document.body.appendChild(element);
element.click();
document.body.removeChild(element);
}
print() {
alert('TODO');
}