simpler csv export option for agenda type

This commit is contained in:
Maximilian Krambach 2018-12-17 12:54:42 +01:00 committed by Emanuel Schütze
parent 70437ed083
commit c56a2880a4
3 changed files with 23 additions and 4 deletions

View File

@ -15,9 +15,9 @@ interface ContentObject {
* Coming from "OpenSlidesConfigVariables" property "agenda_hide_internal_items_on_projector" * Coming from "OpenSlidesConfigVariables" property "agenda_hide_internal_items_on_projector"
*/ */
export const itemVisibilityChoices = [ export const itemVisibilityChoices = [
{ key: 1, name: 'Public item' }, { key: 1, name: 'Public item', csvName: '' },
{ key: 2, name: 'Internal item' }, { key: 2, name: 'Internal item', csvName: 'internal' },
{ key: 3, name: 'Hidden item' } { key: 3, name: 'Hidden item', csvName: 'hidden' }
]; ];
/** /**
@ -73,6 +73,18 @@ export class Item extends ProjectableBaseModel {
return type ? type.name : ''; return type ? type.name : '';
} }
/**
* Gets a shortened string for CSV export
* @returns empty string if it is a public item, 'internal' or 'hidden' otherwise
*/
public get verboseCsvType(): string {
if (!this.type) {
return '';
}
const type = itemVisibilityChoices.find(choice => choice.key === this.type);
return type ? type.csvName : '';
}
public getTitle(): string { public getTitle(): string {
return this.title; return this.title;
} }

View File

@ -51,6 +51,13 @@ export class ViewItem extends BaseViewModel {
return ''; return '';
} }
public get verboseCsvType() : string {
if (this.item) {
return this.item.verboseCsvType;
}
return '';
}
public constructor(item: Item, contentObject: AgendaBaseModel) { public constructor(item: Item, contentObject: AgendaBaseModel) {
super(); super();
this._item = item; this._item = item;

View File

@ -33,7 +33,7 @@ export class AgendaCsvExportService {
{ label: 'Text', map: viewItem => viewItem.contentObject ? viewItem.contentObject.getCSVExportText() : '' }, { label: 'Text', map: viewItem => viewItem.contentObject ? viewItem.contentObject.getCSVExportText() : '' },
{ label: 'Duration', property: 'duration' }, { label: 'Duration', property: 'duration' },
{ label: 'Comment', property: 'comment' }, { label: 'Comment', property: 'comment' },
{ label: 'Item type', property: 'verboseType' } { label: 'Item type', property: 'verboseCsvType' }
], ],
this.translate.instant('Agenda') + '.csv' this.translate.instant('Agenda') + '.csv'
); );