Merge pull request #4400 from MaximilianKrambach/previews
refactor import preview strings
This commit is contained in:
commit
fc10ee168c
38
client/src/app/shared/utils/previewStrings.ts
Normal file
38
client/src/app/shared/utils/previewStrings.ts
Normal file
@ -0,0 +1,38 @@
|
||||
import { stripHtmlTags } from './strip-html-tags';
|
||||
|
||||
/**
|
||||
* Helper to get a preview string
|
||||
*
|
||||
* @param input
|
||||
* @returns returns the first and last 150 characters of a string; used within
|
||||
* tooltips for previews
|
||||
*/
|
||||
export function getLongPreview(input: string): string {
|
||||
if (!input || !input.length) {
|
||||
return '';
|
||||
}
|
||||
if (input.length < 300) {
|
||||
return stripHtmlTags(input);
|
||||
}
|
||||
return (
|
||||
stripHtmlTags(input.substring(0, 147)) +
|
||||
' [...] ' +
|
||||
stripHtmlTags(input.substring(input.length - 150, input.length))
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the first characters of a string, for preview purposes
|
||||
*
|
||||
* @param input any string
|
||||
* @returns a string with at most 50 characters
|
||||
*/
|
||||
export function getShortPreview(input: string): string {
|
||||
if (!input || !input.length) {
|
||||
return '';
|
||||
}
|
||||
if (input.length > 50) {
|
||||
return stripHtmlTags(input.substring(0, 47)) + '...';
|
||||
}
|
||||
return stripHtmlTags(input);
|
||||
}
|
@ -10,7 +10,6 @@ import { DurationService } from 'app/core/ui-services/duration.service';
|
||||
import { FileExportService } from 'app/core/ui-services/file-export.service';
|
||||
import { itemVisibilityChoices } from 'app/shared/models/agenda/item';
|
||||
import { ViewCreateTopic } from '../../models/view-create-topic';
|
||||
import { stripHtmlTags } from 'app/shared/utils/strip-html-tags';
|
||||
|
||||
/**
|
||||
* Component for the agenda import list view.
|
||||
@ -49,44 +48,6 @@ export class AgendaImportListComponent extends BaseImportListComponent<ViewCreat
|
||||
this.textAreaForm = formBuilder.group({ inputtext: [''] });
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the first characters of a string, for preview purposes
|
||||
*
|
||||
* @param input any string
|
||||
* @returns a string with at most 50 characters
|
||||
*/
|
||||
public getShortPreview(input: string): string {
|
||||
if (!input) {
|
||||
return '';
|
||||
}
|
||||
if (input.length > 50) {
|
||||
return stripHtmlTags(input.substring(0, 47)) + '...';
|
||||
}
|
||||
return stripHtmlTags(input);
|
||||
}
|
||||
|
||||
/**
|
||||
* Fetch the first and last 150 characters of a string; used within
|
||||
* tooltips for the preview
|
||||
*
|
||||
* @param input any string
|
||||
* @returns a string with the first and last 150 characters of the input
|
||||
* string
|
||||
*/
|
||||
public getLongPreview(input: string): string {
|
||||
if (!input) {
|
||||
return '';
|
||||
}
|
||||
if (input.length < 300) {
|
||||
return stripHtmlTags(input);
|
||||
}
|
||||
return (
|
||||
stripHtmlTags(input.substring(0, 147)) +
|
||||
' [...] ' +
|
||||
stripHtmlTags(input.substring(input.length - 150, input.length))
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Triggers an example csv download
|
||||
*/
|
||||
|
@ -6,6 +6,7 @@ import { BaseViewModel } from './base-view-model';
|
||||
import { NewEntry, ValueLabelCombination, BaseImportService } from 'app/core/ui-services/base-import.service';
|
||||
import { Title } from '@angular/platform-browser';
|
||||
import { TranslateService } from '@ngx-translate/core';
|
||||
import { getLongPreview, getShortPreview } from 'app/shared/utils/previewStrings';
|
||||
|
||||
export abstract class BaseImportListComponent<V extends BaseViewModel> extends BaseViewComponent implements OnInit {
|
||||
/**
|
||||
@ -13,6 +14,16 @@ export abstract class BaseImportListComponent<V extends BaseViewModel> extends B
|
||||
*/
|
||||
public dataSource: MatTableDataSource<NewEntry<V>>;
|
||||
|
||||
/**
|
||||
* Helper function for previews
|
||||
*/
|
||||
public getLongPreview = getLongPreview;
|
||||
|
||||
/**
|
||||
* Helper function for previews
|
||||
*/
|
||||
public getShortPreview = getShortPreview;
|
||||
|
||||
/**
|
||||
* Switch that turns true if a file has been selected in the input
|
||||
*/
|
||||
|
@ -8,7 +8,6 @@ import { BaseImportListComponent } from 'app/site/base/base-import-list';
|
||||
import { MotionCsvExportService } from '../../services/motion-csv-export.service';
|
||||
import { MotionImportService } from '../../services/motion-import.service';
|
||||
import { ViewMotion } from '../../models/view-motion';
|
||||
import { stripHtmlTags } from 'app/shared/utils/strip-html-tags';
|
||||
|
||||
/**
|
||||
* Component for the motion import list view.
|
||||
@ -37,35 +36,6 @@ export class MotionImportListComponent extends BaseImportListComponent<ViewMotio
|
||||
super(importer, titleService, translate, matSnackBar);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the first characters of a string, for preview purposes
|
||||
*
|
||||
* @param input
|
||||
*/
|
||||
public getShortPreview(input: string): string {
|
||||
if (input.length > 50) {
|
||||
return stripHtmlTags(input.substring(0, 47)) + '...';
|
||||
}
|
||||
return stripHtmlTags(input);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the first and last 150 characters of a string; used within
|
||||
* tooltips for the preview
|
||||
*
|
||||
* @param input
|
||||
*/
|
||||
public getLongPreview(input: string): string {
|
||||
if (input.length < 300) {
|
||||
return stripHtmlTags(input);
|
||||
}
|
||||
return (
|
||||
stripHtmlTags(input.substring(0, 147)) +
|
||||
' [...] ' +
|
||||
stripHtmlTags(input.substring(input.length - 150, input.length))
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Triggers an example csv download
|
||||
*/
|
||||
|
@ -7,7 +7,6 @@ import { BaseImportListComponent } from 'app/site/base/base-import-list';
|
||||
import { ViewStatuteParagraph } from 'app/site/motions/models/view-statute-paragraph';
|
||||
import { StatuteImportService } from 'app/site/motions/services/statute-import.service';
|
||||
import { StatuteCsvExportService } from 'app/site/motions/services/statute-csv-export.service';
|
||||
import { stripHtmlTags } from 'app/shared/utils/strip-html-tags';
|
||||
|
||||
/**
|
||||
* Component for the statute paragraphs import list view.
|
||||
@ -36,35 +35,6 @@ export class StatuteImportListComponent extends BaseImportListComponent<ViewStat
|
||||
super(importer, titleService, translate, matSnackBar);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the first characters of a string, for preview purposes
|
||||
*
|
||||
* @param input
|
||||
*/
|
||||
public getShortPreview(input: string): string {
|
||||
if (input.length > 50) {
|
||||
return stripHtmlTags(input.substring(0, 47)) + '...';
|
||||
}
|
||||
return stripHtmlTags(input);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the first and last 150 characters of a string; used within
|
||||
* tooltips for the preview
|
||||
*
|
||||
* @param input
|
||||
*/
|
||||
public getLongPreview(input: string): string {
|
||||
if (input.length < 300) {
|
||||
return stripHtmlTags(input);
|
||||
}
|
||||
return (
|
||||
stripHtmlTags(input.substring(0, 147)) +
|
||||
' [...] ' +
|
||||
stripHtmlTags(input.substring(input.length - 150, input.length))
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Triggers an example csv download
|
||||
*/
|
||||
|
Loading…
Reference in New Issue
Block a user