[ADF-1781] Task List - the default columns must be localisable (#2517)

* Rename processlist.component.ts to process-list.component.ts
Rename processlist.component.md to process-list.component.md

* Add a root scope ADF_TASK_LIST into the json file
Remove the hardcoded string from the component and use keys
Refactoring json structure
This commit is contained in:
Maurizio Vitale
2017-10-20 17:44:29 +02:00
committed by Eugenio Romano
parent 729270b138
commit 4d9591c76c
31 changed files with 1361 additions and 1338 deletions

View File

@@ -44,8 +44,8 @@
<!-- Custom column definition demo -->
<data-columns>
<data-column key="name" title="{{'DOCUMENT_LIST.COLUMNS.DISPLAY_NAME' | translate}}" class="full-width name-column"></data-column>
<data-column key="created" title="{{'DOCUMENT_LIST.COLUMNS.CREATED_BY' | translate}}" class="hidden"></data-column>
<data-column key="name" title="{{'ADF_TASK_LIST.PROPERTIES.NAME' | translate}}" class="full-width name-column"></data-column>
<data-column key="created" title="{{'ADF_TASK_LIST.PROPERTIES.CREATED' | translate}}" class="hidden"></data-column>
</data-columns>
</adf-tasklist>

View File

@@ -34,5 +34,5 @@
</div>
</div>
<div class="menu-container" *ngIf="isEmpty()">
{{ 'APPS.NONE' | translate }}
{{ 'ADF_TASK_LIST.APPS.NONE' | translate }}
</div>

View File

@@ -34,7 +34,7 @@ export class AppsListComponent implements OnInit {
public static LAYOUT_LIST: string = 'LIST';
public static LAYOUT_GRID: string = 'GRID';
public static DEFAULT_TASKS_APP: string = 'tasks';
public static DEFAULT_TASKS_APP_NAME: string = 'APPS.TASK_APP_NAME';
public static DEFAULT_TASKS_APP_NAME: string = 'ADF_TASK_LIST.APPS.TASK_APP_NAME';
public static DEFAULT_TASKS_APP_THEME: string = 'theme-2';
public static DEFAULT_TASKS_APP_ICON: string = 'glyphicon-asterisk';
public static DEFAULT_TASKS_APP_MATERIAL_ICON: string = 'favorite_border';

View File

@@ -1,6 +1,6 @@
<div class="adf-checklist-control">
<mat-chip-list id="checklist-label">
<span class="activiti-label">{{ 'TASK_DETAILS.LABELS.CHECKLIST' | translate }}</span>
<span class="activiti-label">{{ 'ADF_TASK_LIST.DETAILS.LABELS.CHECKLIST' | translate }}</span>
<mat-chip class="adf-process-badge" color="accent" selected="true">{{checklist?.length}}</mat-chip>
</mat-chip-list>
@@ -22,7 +22,7 @@
</div>
<div *ngIf="checklist?.length === 0" id="checklist-none-message">
{{ 'TASK_DETAILS.CHECKLIST.NONE' | translate }}
{{ 'ADF_TASK_LIST.DETAILS.CHECKLIST.NONE' | translate }}
</div>
<ng-template #dialog>

View File

@@ -69,7 +69,7 @@ describe('ChecklistComponent', () => {
it('should show no checklist message', () => {
expect(element.querySelector('#checklist-none-message')).not.toBeNull();
expect(element.querySelector('#checklist-none-message').textContent).toContain('TASK_DETAILS.CHECKLIST.NONE');
expect(element.querySelector('#checklist-none-message').textContent).toContain('ADF_TASK_LIST.DETAILS.CHECKLIST.NONE');
});
describe('when is readonly mode', () => {
@@ -247,7 +247,7 @@ describe('ChecklistComponent', () => {
fixture.whenStable().then(() => {
fixture.detectChanges();
expect(element.querySelector('#checklist-none-message')).not.toBeNull();
expect(element.querySelector('#checklist-none-message').textContent).toContain('TASK_DETAILS.CHECKLIST.NONE');
expect(element.querySelector('#checklist-none-message').textContent).toContain('ADF_TASK_LIST.DETAILS.CHECKLIST.NONE');
});
}));

View File

@@ -3,7 +3,7 @@
(rowClick)="selectComment($event)" *ngIf="hasComments()">
<data-columns>
<data-column key="createdBy" title="{{'TASK_DETAILS.COMMENTS.CREATED_BY_HEADER' | translate }}">
<data-column key="createdBy" title="{{'ADF_TASK_LIST.DETAILS.COMMENTS.CREATED_BY_HEADER' | translate }}">
<ng-template let-entry="$implicit">
<div id="comment-user-icon"
class="adf-comment-img-container">
@@ -17,7 +17,7 @@
</div>
</ng-template>
</data-column>
<data-column key="message" title="{{'TASK_DETAILS.COMMENTS.MESSAGE_HEADER' | translate }}">
<data-column key="message" title="{{'ADF_TASK_LIST.DETAILS.COMMENTS.MESSAGE_HEADER' | translate }}">
<ng-template let-entry="$implicit">
<div class="adf-comment-contents">
<div id="comment-user" class="adf-comment-user-name">

View File

@@ -1,10 +1,10 @@
<div class="adf-comments-container">
<div id="comment-header" class="adf-comments-header">
{{'TASK_DETAILS.COMMENTS.HEADER' | translate: { count: comments?.length} }}
{{'ADF_TASK_LIST.DETAILS.COMMENTS.HEADER' | translate: { count: comments?.length} }}
</div>
<div class="adf-comments-input-container" *ngIf="!isReadOnly()">
<mat-form-field class="adf-full-width">
<input matInput id="comment-input" placeholder="{{'TASK_DETAILS.COMMENTS.ADD' | translate}}" [(ngModel)]="message" (keyup.enter)="add()" (keyup.esc)="clear()">
<input matInput id="comment-input" placeholder="{{'ADF_TASK_LIST.DETAILS.COMMENTS.ADD' | translate}}" [(ngModel)]="message" (keyup.enter)="add()" (keyup.esc)="clear()">
</mat-form-field>
</div>

View File

@@ -119,7 +119,7 @@ describe('CommentsComponent', () => {
fixture.whenStable().then(() => {
fixture.detectChanges();
let element = fixture.nativeElement.querySelector('#comment-header');
expect(element.innerText).toBe('TASK_DETAILS.COMMENTS.HEADER');
expect(element.innerText).toBe('ADF_TASK_LIST.DETAILS.COMMENTS.HEADER');
});
});

View File

@@ -2,7 +2,7 @@
<ng-content select="[people-search-title]"></ng-content>
</div>
<mat-form-field class="search-text-container">
<input matInput placeholder="{{'PEOPLE.SEARCH_USER'|translate}}" type="text" id="userSearchText" [value]="" [formControl]="searchUser">
<input matInput placeholder="{{'ADF_TASK_LIST.PEOPLE.SEARCH_USER'|translate}}" type="text" id="userSearchText" [value]="" [formControl]="searchUser">
</mat-form-field>
<div class="search-list-container" id="search-people-list" *ngIf="hasUsers()">
<adf-people-list
@@ -29,7 +29,7 @@
</div>
<div class="search-list-action-container">
<button mat-button type="button" id="close-people-search" (click)="closeSearchList()">
{{'PEOPLE.DIALOG_CLOSE' | translate }}
{{'ADF_TASK_LIST.PEOPLE.DIALOG_CLOSE' | translate }}
</button>
<button mat-button type="button" id="add-people" (click)="involveUserAndClose()">
<ng-content select="[people-search-action-label]"></ng-content>

View File

@@ -2,10 +2,10 @@
<div mat-card-content class="assignment-top-container-content">
<div class="assignment-header">
<div *ngIf="hasPeople()" class="assigment-count" id="people-title">
{{ 'TASK_DETAILS.LABELS.PEOPLE' | translate }} {{ ' (' + people.length + ')' }}
{{ 'ADF_TASK_LIST.DETAILS.LABELS.PEOPLE' | translate }} {{ ' (' + people.length + ')' }}
</div>
<div *ngIf="!hasPeople()" class="assigment-count" id="no-people-label">
{{ 'TASK_DETAILS.PEOPLE.NONE' | translate }}
{{ 'ADF_TASK_LIST.DETAILS.PEOPLE.NONE' | translate }}
</div>
<div *ngIf="isEditMode()" class="add-people" (click)="onAddAssignement()">
<mat-icon class="adf-add-person-icon">person_add</mat-icon>
@@ -17,8 +17,8 @@
(success)="involveUser($event)"
(closeSearch)="onCloseSearch()"
[results]="peopleSearch$">
<ng-container people-search-title>{{ 'TASK_DETAILS.LABELS.ADD_PEOPLE' | translate }}</ng-container>
<ng-container people-search-action-label>{{ 'PEOPLE.ADD_USER' | translate }}</ng-container>
<ng-container people-search-title>{{ 'ADF_TASK_LIST.DETAILS.LABELS.ADD_PEOPLE' | translate }}</ng-container>
<ng-container people-search-action-label>{{ 'ADF_TASK_LIST.PEOPLE.ADD_USER' | translate }}</ng-container>
</adf-people-search>
</div>
<div class="assignment-list-container" id="assignment-people-list" *ngIf="hasPeople()">

View File

@@ -97,7 +97,7 @@ describe('PeopleComponent', () => {
fixture.whenStable()
.then(() => {
expect(element.querySelector('#no-people-label')).not.toBeNull();
expect(element.querySelector('#no-people-label').textContent).toContain('TASK_DETAILS.PEOPLE.NONE');
expect(element.querySelector('#no-people-label').textContent).toContain('ADF_TASK_LIST.DETAILS.PEOPLE.NONE');
});
});

View File

@@ -1,10 +1,10 @@
<adf-datatable [rows]="attachments" [actions]="true" [loading]="isLoading" (rowDblClick)="openContent($event)" (showRowActionsMenu)="onShowRowActionsMenu($event)"
(executeRowAction)="onExecuteRowAction($event)">
<adf-empty-list *ngIf="isEmpty()">
<div adf-empty-list-header class="adf-empty-list-header"> {{'TASK-ATTACHMENT.EMPTY.HEADER' | translate}} </div>
<div adf-empty-list-header class="adf-empty-list-header"> {{'ADF_TASK_LIST.ATTACHMENT.EMPTY.HEADER' | translate}} </div>
<div adf-empty-list-body *ngIf="!isDisabled()">
<div class="adf-empty-list-drag_drop">{{'TASK-ATTACHMENT.EMPTY.DRAG-AND-DROP.TITLE' | translate}}</div>
<div class="adf-empty-list__any-files-here-to-add"> {{'TASK-ATTACHMENT.EMPTY.DRAG-AND-DROP.SUBTITLE' | translate}} </div>
<div class="adf-empty-list-drag_drop">{{'ADF_TASK_LIST.ATTACHMENT.EMPTY.DRAG-AND-DROP.TITLE' | translate}}</div>
<div class="adf-empty-list__any-files-here-to-add"> {{'ADF_TASK_LIST.ATTACHMENT.EMPTY.DRAG-AND-DROP.SUBTITLE' | translate}} </div>
</div>
<div adf-empty-list-footer *ngIf="!isDisabled()">
<img class="adf-empty-list__empty_doc_lib" [src]="emptyListImageUrl">

View File

@@ -196,7 +196,7 @@ describe('TaskAttachmentList', () => {
fixture.whenStable().then(() => {
fixture.detectChanges();
expect(fixture.nativeElement.querySelector('div[adf-empty-list-header]').innerText.trim()).toEqual('TASK-ATTACHMENT.EMPTY.HEADER');
expect(fixture.nativeElement.querySelector('div[adf-empty-list-header]').innerText.trim()).toEqual('ADF_TASK_LIST.ATTACHMENT.EMPTY.HEADER');
});
}));
@@ -212,7 +212,7 @@ describe('TaskAttachmentList', () => {
fixture.whenStable().then(() => {
fixture.detectChanges();
expect(fixture.nativeElement.querySelector('adf-empty-list .adf-empty-list-drag_drop').innerText.trim()).toEqual('TASK-ATTACHMENT.EMPTY.DRAG-AND-DROP.TITLE');
expect(fixture.nativeElement.querySelector('adf-empty-list .adf-empty-list-drag_drop').innerText.trim()).toEqual('ADF_TASK_LIST.ATTACHMENT.EMPTY.DRAG-AND-DROP.TITLE');
});
}));
@@ -230,7 +230,7 @@ describe('TaskAttachmentList', () => {
fixture.whenStable().then(() => {
fixture.detectChanges();
expect(fixture.nativeElement.querySelector('adf-empty-list .adf-empty-list-drag_drop')).toBeNull();
expect(fixture.nativeElement.querySelector('div[adf-empty-list-header]').innerText.trim()).toEqual('TASK-ATTACHMENT.EMPTY.HEADER');
expect(fixture.nativeElement.querySelector('div[adf-empty-list-header]').innerText.trim()).toEqual('ADF_TASK_LIST.ATTACHMENT.EMPTY.HEADER');
});
}));
@@ -247,7 +247,7 @@ describe('TaskAttachmentList', () => {
fixture.whenStable().then(() => {
fixture.detectChanges();
expect(fixture.nativeElement.querySelector('div[adf-empty-list-header]').innerText.trim()).toEqual('TASK-ATTACHMENT.EMPTY.HEADER');
expect(fixture.nativeElement.querySelector('div[adf-empty-list-header]').innerText.trim()).toEqual('ADF_TASK_LIST.ATTACHMENT.EMPTY.HEADER');
});
}));

View File

@@ -1,10 +1,10 @@
<div *ngIf="!taskDetails">
<ng-template *ngIf="noTaskDetailsTemplateComponent" ngFor [ngForOf]="[data]"
[ngForTemplate]="noTaskDetailsTemplateComponent">
{{ 'TASK_DETAILS.MESSAGES.NONE' | translate }}
{{ 'ADF_TASK_LIST.DETAILS.MESSAGES.NONE' | translate }}
</ng-template>
<div *ngIf="!noTaskDetailsTemplateComponent">
{{ 'TASK_DETAILS.MESSAGES.NONE' | translate }}
{{ 'ADF_TASK_LIST.DETAILS.MESSAGES.NONE' | translate }}
</div>
</div>
<div *ngIf="taskDetails" class="adf-task-details">
@@ -46,29 +46,29 @@
</adf-form>
</div>
<div *ngIf="!isAssigned()">
{{ 'TASK_DETAILS.MESSAGES.CLAIM' | translate }}
{{ 'ADF_TASK_LIST.DETAILS.MESSAGES.CLAIM' | translate }}
</div>
<button mat-raised-button class="activiti-task-details__action-button"
*ngIf="!hasFormKey() && isTaskActive()" (click)="onComplete()">
{{ 'TASK_DETAILS.BUTTON.COMPLETE' | translate }}
{{ 'ADF_TASK_LIST.DETAILS.BUTTON.COMPLETE' | translate }}
</button>
</div>
<div class="adf-task-details-core-sidebar">
<adf-info-drawer *ngIf="showHeaderContent" title="{{ 'TASK_DETAILS.LABELS.INFO_DRAWER_TITLE' | translate }}" class="adf-task-details-core-sidebar-drawer">
<adf-info-drawer *ngIf="showHeaderContent" title="{{ 'ADF_TASK_LIST.DETAILS.LABELS.INFO_DRAWER_TITLE' | translate }}" class="adf-task-details-core-sidebar-drawer">
<div info-drawer-buttons>
<mat-icon (click)="toggleHeaderContent()">clear</mat-icon>
</div>
<adf-info-drawer-tab label="{{ 'TASK_DETAILS.LABELS.INFO_DRAWER_TAB_DETAILS_TITLE' | translate }}">
<adf-info-drawer-tab label="{{ 'ADF_TASK_LIST.DETAILS.LABELS.INFO_DRAWER_TAB_DETAILS_TITLE' | translate }}">
<div class="assignment-container" *ngIf="showAssignee">
<adf-people-search
(searchPeople)="searchUser($event)"
(success)="assignTaskToUser($event)"
(closeSearch)="onCloseSearch()"
[results]="peopleSearch$">
<ng-container people-search-title>{{ 'TASK_DETAILS.LABELS.ADD_ASSIGNEE' | translate }}
<ng-container people-search-title>{{ 'ADF_TASK_LIST.DETAILS.LABELS.ADD_ASSIGNEE' | translate }}
</ng-container>
<ng-container people-search-action-label>{{ 'PEOPLE.ADD_ASSIGNEE' | translate }}
<ng-container people-search-action-label>{{ 'ADF_TASK_LIST.PEOPLE.ADD_ASSIGNEE' | translate }}
</ng-container>
</adf-people-search>
</div>
@@ -87,7 +87,7 @@
</adf-people>
</adf-info-drawer-tab>
<adf-info-drawer-tab label="{{ 'TASK_DETAILS.LABELS.INFO_DRAWER_TAB_ACTIVITY_TITLE' | translate }}">
<adf-info-drawer-tab label="{{ 'ADF_TASK_LIST.DETAILS.LABELS.INFO_DRAWER_TAB_ACTIVITY_TITLE' | translate }}">
<mat-card *ngIf="showComments">
<mat-card-content>
<adf-comments #activiticomments
@@ -115,12 +115,12 @@
</div>
<ng-template #errorDialog>
<h3 matDialogTitle>{{'TASK_DETAILS.ERROR.TITLE'|translate}}</h3>
<h3 matDialogTitle>{{'ADF_TASK_LIST.DETAILS.ERROR.TITLE'|translate}}</h3>
<mat-dialog-content>
<p>{{'TASK_DETAILS.ERROR.DESCRIPTION'|translate}}</p>
<p>{{'ADF_TASK_LIST.DETAILS.ERROR.DESCRIPTION'|translate}}</p>
</mat-dialog-content>
<mat-dialog-actions>
<button mat-button type="button" (click)="closeErrorDialog()">{{'TASK_DETAILS.ERROR.CLOSE'|translate}}
<button mat-button type="button" (click)="closeErrorDialog()">{{'ADF_TASK_LIST.DETAILS.ERROR.CLOSE'|translate}}
</button>
</mat-dialog-actions>
</ng-template>

View File

@@ -117,7 +117,7 @@ describe('TaskDetailsComponent', () => {
it('should set a placeholder message when taskId not initialised', () => {
fixture.detectChanges();
expect(fixture.nativeElement.innerText).toBe('TASK_DETAILS.MESSAGES.NONE');
expect(fixture.nativeElement.innerText).toBe('ADF_TASK_LIST.DETAILS.MESSAGES.NONE');
});
it('shoud display a form when the task has an associated form', () => {
@@ -170,7 +170,7 @@ describe('TaskDetailsComponent', () => {
it('should set a placeholder message when taskId changed to null', () => {
component.ngOnChanges({'taskId': nullChange});
fixture.detectChanges();
expect(fixture.nativeElement.innerText).toBe('TASK_DETAILS.MESSAGES.NONE');
expect(fixture.nativeElement.innerText).toBe('ADF_TASK_LIST.DETAILS.MESSAGES.NONE');
});
});
@@ -217,7 +217,7 @@ describe('TaskDetailsComponent', () => {
getTasksSpy.and.returnValue(Observable.of(noDataMock));
component.onComplete();
fixture.detectChanges();
expect(fixture.nativeElement.innerText).toBe('TASK_DETAILS.MESSAGES.NONE');
expect(fixture.nativeElement.innerText).toBe('ADF_TASK_LIST.DETAILS.MESSAGES.NONE');
});
it('should emit an error event if an error occurs fetching the next task', () => {

View File

@@ -4,9 +4,9 @@
</mat-card-content>
<mat-card-actions class="adf-controls">
<button *ngIf="isAssignedToMe()" mat-button data-automation-id="header-unclaim-button" id="unclaim-task" (click)="unclaimTask(taskDetails.id)" class="adf-claim-controls">{{ 'TASK_DETAILS.BUTTON.UNCLAIM' | translate }}
<button *ngIf="isAssignedToMe()" mat-button data-automation-id="header-unclaim-button" id="unclaim-task" (click)="unclaimTask(taskDetails.id)" class="adf-claim-controls">{{ 'ADF_TASK_LIST.DETAILS.BUTTON.UNCLAIM' | translate }}
</button>
<button *ngIf="!isAssignedToMe()" mat-button data-automation-id="header-claim-button" id="claim-task" (click)="claimTask(taskDetails.id)" class="adf-claim-controls">{{ 'TASK_DETAILS.BUTTON.CLAIM' | translate }}
<button *ngIf="!isAssignedToMe()" mat-button data-automation-id="header-claim-button" id="claim-task" (click)="claimTask(taskDetails.id)" class="adf-claim-controls">{{ 'ADF_TASK_LIST.DETAILS.BUTTON.CLAIM' | translate }}
</button>
</mat-card-actions>
</mat-card>

View File

@@ -80,7 +80,7 @@ describe('TaskHeaderComponent', () => {
component.ngOnChanges({});
fixture.detectChanges();
let valueEl = fixture.debugElement.query(By.css('[data-automation-id="header-assignee"] .adf-property-value'));
expect(valueEl.nativeElement.innerText).toBe('TASK_PROPERTIES.ASSIGNEE_DEFAULT');
expect(valueEl.nativeElement.innerText).toBe('ADF_TASK_LIST.PROPERTIES.ASSIGNEE_DEFAULT');
});
it('should display created-by', () => {
@@ -117,7 +117,7 @@ describe('TaskHeaderComponent', () => {
fixture.detectChanges();
let claimButton = fixture.debugElement.query(By.css('[data-automation-id="header-claim-button"]'));
expect(claimButton.nativeElement.innerText).toBe('TASK_DETAILS.BUTTON.CLAIM');
expect(claimButton.nativeElement.innerText).toBe('ADF_TASK_LIST.DETAILS.BUTTON.CLAIM');
});
});
@@ -135,7 +135,7 @@ describe('TaskHeaderComponent', () => {
it('should display the requeue button if there is assignee', () => {
let unclaimButton = fixture.debugElement.query(By.css('[data-automation-id="header-unclaim-button"]'));
expect(unclaimButton.nativeElement.innerText).toBe('TASK_DETAILS.BUTTON.UNCLAIM');
expect(unclaimButton.nativeElement.innerText).toBe('ADF_TASK_LIST.DETAILS.BUTTON.UNCLAIM');
});
it('should call the service\'s unclaim method on unclaiming' , () => {
@@ -172,7 +172,7 @@ describe('TaskHeaderComponent', () => {
component.ngOnChanges({});
fixture.detectChanges();
let valueEl = fixture.debugElement.query(By.css('[data-automation-id="header-dueDate"] .adf-property-value'));
expect(valueEl.nativeElement.innerText.trim()).toBe('TASK_PROPERTIES.DUE_DATE_DEFAULT');
expect(valueEl.nativeElement.innerText.trim()).toBe('ADF_TASK_LIST.PROPERTIES.DUE_DATE_DEFAULT');
});
it('should display form name', () => {
@@ -188,7 +188,7 @@ describe('TaskHeaderComponent', () => {
component.ngOnChanges({});
fixture.detectChanges();
let valueEl = fixture.debugElement.query(By.css('[data-automation-id="header-parentName"] .adf-property-value'));
expect(valueEl.nativeElement.innerText.trim()).toEqual('TASK_PROPERTIES.PARENT_NAME_DEFAULT');
expect(valueEl.nativeElement.innerText.trim()).toEqual('ADF_TASK_LIST.PROPERTIES.PARENT_NAME_DEFAULT');
});
it('should display the Parent name value', () => {
@@ -204,7 +204,7 @@ describe('TaskHeaderComponent', () => {
component.ngOnChanges({});
fixture.detectChanges();
let valueEl = fixture.debugElement.query(By.css('[data-automation-id="header-formName"] .adf-property-value'));
expect(valueEl.nativeElement.innerText).toBe('TASK_PROPERTIES.FORM_NAME_DEFAULT');
expect(valueEl.nativeElement.innerText).toBe('ADF_TASK_LIST.PROPERTIES.FORM_NAME_DEFAULT');
});
});

View File

@@ -59,89 +59,89 @@ export class TaskHeaderComponent implements OnChanges {
this.properties = [
new CardViewTextItemModel(
{
label: 'TASK_PROPERTIES.ASSIGNEE',
label: 'ADF_TASK_LIST.PROPERTIES.ASSIGNEE',
value: this.taskDetails.getFullName(),
key: 'assignee',
default: 'TASK_PROPERTIES.ASSIGNEE_DEFAULT',
default: 'ADF_TASK_LIST.PROPERTIES.ASSIGNEE_DEFAULT',
clickable: !this.isCompleted()
}
),
new CardViewTextItemModel(
{
label: 'TASK_PROPERTIES.STATUS',
label: 'ADF_TASK_LIST.PROPERTIES.STATUS',
value: this.getTaskStatus(),
key: 'status'
}
),
new CardViewTextItemModel(
{
label: 'TASK_PROPERTIES.PRIORITY',
label: 'ADF_TASK_LIST.PROPERTIES.PRIORITY',
value: this.taskDetails.priority,
key: 'priority'
}
),
new CardViewDateItemModel(
{
label: 'TASK_PROPERTIES.DUE_DATE',
label: 'ADF_TASK_LIST.PROPERTIES.DUE_DATE',
value: this.taskDetails.dueDate,
key: 'dueDate',
default: 'TASK_PROPERTIES.DUE_DATE_DEFAULT',
default: 'ADF_TASK_LIST.PROPERTIES.DUE_DATE_DEFAULT',
editable: true
}
),
new CardViewTextItemModel(
{
label: 'TASK_PROPERTIES.CATEGORY',
label: 'ADF_TASK_LIST.PROPERTIES.CATEGORY',
value: this.taskDetails.category,
key: 'category',
default: 'TASK_PROPERTIES.CATEGORY_DEFAULT'
default: 'ADF_TASK_LIST.PROPERTIES.CATEGORY_DEFAULT'
}
),
new CardViewMapItemModel(
{
label: 'TASK_PROPERTIES.PARENT_NAME',
label: 'ADF_TASK_LIST.PROPERTIES.PARENT_NAME',
value: parentInfoMap, key: 'parentName',
default: 'TASK_PROPERTIES.PARENT_NAME_DEFAULT',
default: 'ADF_TASK_LIST.PROPERTIES.PARENT_NAME_DEFAULT',
clickable: true
}
),
new CardViewTextItemModel(
{
label: 'TASK_PROPERTIES.CREATED_BY',
label: 'ADF_TASK_LIST.PROPERTIES.CREATED_BY',
value: this.taskDetails.getFullName(),
key: 'created-by'
}
),
new CardViewDateItemModel(
{
label: 'TASK_PROPERTIES.CREATED',
label: 'ADF_TASK_LIST.PROPERTIES.CREATED',
value: this.taskDetails.created,
key: 'created'
}
),
new CardViewTextItemModel(
{
label: 'TASK_PROPERTIES.ID',
label: 'ADF_TASK_LIST.PROPERTIES.ID',
value: this.taskDetails.id,
key: 'id'
}
),
new CardViewTextItemModel(
{
label: 'TASK_PROPERTIES.DESCRIPTION',
label: 'ADF_TASK_LIST.PROPERTIES.DESCRIPTION',
value: this.taskDetails.description,
key: 'description',
default: 'TASK_PROPERTIES.DESCRIPTION_DEFAULT',
default: 'ADF_TASK_LIST.PROPERTIES.DESCRIPTION_DEFAULT',
multiline: true,
editable: true
}
),
new CardViewTextItemModel(
{
label: 'TASK_PROPERTIES.FORM_NAME',
label: 'ADF_TASK_LIST.PROPERTIES.FORM_NAME',
value: this.formName,
key: 'formName',
default: 'TASK_PROPERTIES.FORM_NAME_DEFAULT'
default: 'ADF_TASK_LIST.PROPERTIES.FORM_NAME_DEFAULT'
}
)
];

View File

@@ -1,4 +1,4 @@
<div *ngIf="!requestNode">{{ 'TASK_FILTERS.MESSAGES.NONE' | translate }}</div>
<div *ngIf="!requestNode">{{ 'ADF_TASK_LIST.FILTERS.MESSAGES.NONE' | translate }}</div>
<div *ngIf="requestNode">
<div>
<adf-datatable
@@ -24,7 +24,7 @@
<!--Add your custom empty template here-->
<ng-template>
<div class="no-content-message">
{{ 'TASK_LIST.MESSAGES.NONE' | translate }}
{{ 'ADF_TASK_LIST.LIST.MESSAGES.NONE' | translate }}
</div>
</ng-template>
</no-content-template>

View File

@@ -103,8 +103,8 @@ export class TaskListComponent implements OnChanges, OnInit, AfterContentInit {
isStreamLoaded = false;
private defaultSchemaColumn: DataColumn[] = [
{ type: 'text', key: 'name', title: 'Name', cssClass: 'full-width name-column', sortable: true },
{ type: 'text', key: 'created', title: 'Created', cssClass: 'hidden', sortable: true }
{ type: 'text', key: 'name', title: 'ADF_TASK_LIST.PROPERTIES.NAME', cssClass: 'full-width name-column', sortable: true },
{ type: 'text', key: 'created', title: 'ADF_TASK_LIST.PROPERTIES.CREATED', cssClass: 'hidden', sortable: true }
];
constructor(private taskListService: TaskListService) {

View File

@@ -1,13 +1,14 @@
{
"ADF_TASK_LIST": {
"APPS": {
"NONE": "Keine Anwendungen gefunden"
},
"TASK_LIST": {
"LIST": {
"MESSAGES": {
"NONE": "Keine Aufgabenliste gefunden"
}
},
"TASK_DETAILS": {
"DETAILS": {
"LABELS": {
"ASSIGNEE": "Zugewiesener Benutzer",
"DUE": "Fällig",
@@ -66,7 +67,7 @@
"CLOSE": "Schließen"
}
},
"TASK_FILTERS": {
"FILTERS": {
"MESSAGES": {
"NONE": "Kein Aufgabenfilter ausgewählt."
}
@@ -102,7 +103,7 @@
"NO_USERS": "Niemand gefunden, der beteiligt werden kann"
}
},
"TASK-ATTACHMENT": {
"ATTACHMENT": {
"EMPTY": {
"HEADER": "Diese Liste ist leer",
"DRAG-AND-DROP": {
@@ -114,4 +115,5 @@
"HEADER": "Keine Dateien verfügbar"
}
}
}
}

View File

@@ -1,14 +1,16 @@
{
"ADF_TASK_LIST": {
"APPS": {
"NONE": "No apps found",
"TASK_APP_NAME": "Task App"
},
"TASK_LIST": {
"LIST": {
"MESSAGES": {
"NONE": "No task lists found"
}
},
"TASK_PROPERTIES": {
"PROPERTIES": {
"NAME": "Name",
"ASSIGNEE": "Assignee",
"ASSIGNEE_DEFAULT": "No assignee",
"PRIORITY": "Priority",
@@ -27,7 +29,7 @@
"FORM_NAME": "Form Name",
"FORM_NAME_DEFAULT": "No form"
},
"TASK_DETAILS": {
"DETAILS": {
"LABELS": {
"INFO_DRAWER_TITLE": "Activities",
"INFO_DRAWER_TAB_ACTIVITY_TITLE": "Activity",
@@ -91,7 +93,7 @@
"CLOSE": "Close"
}
},
"TASK_FILTERS": {
"FILTERS": {
"MESSAGES": {
"NONE": "No task filter selected."
}
@@ -127,7 +129,7 @@
"NO_USERS": "Nobody found to involve"
}
},
"TASK-ATTACHMENT": {
"ATTACHMENT": {
"EMPTY": {
"HEADER": "This list is empty",
"DRAG-AND-DROP": {
@@ -139,4 +141,5 @@
"HEADER": "No files are available"
}
}
}
}

View File

@@ -1,13 +1,14 @@
{
"ADF_TASK_LIST": {
"APPS": {
"NONE": "No se han encontrado aplicaciones"
},
"TASK_LIST": {
"LIST": {
"MESSAGES": {
"NONE": "No se ha encontrado la lista de tareas"
}
},
"TASK_DETAILS": {
"DETAILS": {
"LABELS": {
"ASSIGNEE": "Asignado a",
"DUE": "Vencimiento",
@@ -66,7 +67,7 @@
"CLOSE": "Cerrar"
}
},
"TASK_FILTERS": {
"FILTERS": {
"MESSAGES": {
"NONE": "No se ha seleccionado filtro de tareas."
}
@@ -102,7 +103,7 @@
"NO_USERS": "No se ha encontrado nadie a quien involucrar"
}
},
"TASK-ATTACHMENT": {
"ATTACHMENT": {
"EMPTY": {
"HEADER": "Esta lista está vacía",
"DRAG-AND-DROP": {
@@ -114,4 +115,5 @@
"HEADER": "No hay ficheros disponibles"
}
}
}
}

View File

@@ -1,13 +1,14 @@
{
"ADF_TASK_LIST": {
"APPS": {
"NONE": "Aucune application trouvée"
},
"TASK_LIST": {
"LIST": {
"MESSAGES": {
"NONE": "Aucune liste de tâches trouvée"
}
},
"TASK_DETAILS": {
"DETAILS": {
"LABELS": {
"ASSIGNEE": "Personne assignée",
"DUE": "Echéance",
@@ -66,7 +67,7 @@
"CLOSE": "Fermer"
}
},
"TASK_FILTERS": {
"FILTERS": {
"MESSAGES": {
"NONE": "Aucun filtre de tâches sélectionné."
}
@@ -102,7 +103,7 @@
"NO_USERS": "Aucune personne à impliquer trouvée"
}
},
"TASK-ATTACHMENT": {
"ATTACHMENT": {
"EMPTY": {
"HEADER": "Cette liste est vide",
"DRAG-AND-DROP": {
@@ -114,4 +115,5 @@
"HEADER": "Aucun fichier disponible"
}
}
}
}

View File

@@ -1,14 +1,15 @@
{
"ADF_TASK_LIST": {
"APPS": {
"NONE": "Nessuna applicazione trovata",
"TASK_APP_NAME": "I miei compiti"
},
"TASK_LIST": {
"LIST": {
"MESSAGES": {
"NONE": "Nessun elenco compiti trovato"
}
},
"TASK_DETAILS": {
"DETAILS": {
"LABELS": {
"ASSIGNEE": "Assegnatario",
"DUE": "Scadenza",
@@ -78,7 +79,7 @@
"CLOSE": "Chiudi"
}
},
"TASK_FILTERS": {
"FILTERS": {
"MESSAGES": {
"NONE": "Nessun filtro compito selezionato."
}
@@ -114,7 +115,7 @@
"NO_USERS": "Nessun utente trovato da coinvolgere"
}
},
"TASK-ATTACHMENT": {
"ATTACHMENT": {
"EMPTY": {
"HEADER": "Questo elenco è vuoto",
"DRAG-AND-DROP": {
@@ -126,4 +127,5 @@
"HEADER": "Nessun file disponibile"
}
}
}
}

View File

@@ -1,13 +1,14 @@
{
"ADF_TASK_LIST": {
"APPS": {
"NONE": "アプリが見つかりません"
},
"TASK_LIST": {
"LIST": {
"MESSAGES": {
"NONE": "タスクリストが見つかりません"
}
},
"TASK_DETAILS": {
"DETAILS": {
"LABELS": {
"ASSIGNEE": "担当者",
"DUE": "期限",
@@ -66,7 +67,7 @@
"CLOSE": "閉じる"
}
},
"TASK_FILTERS": {
"FILTERS": {
"MESSAGES": {
"NONE": "タスクのフィルタが選択されていません。"
}
@@ -102,7 +103,7 @@
"NO_USERS": "タスクに関わっているメンバーが見つかりません"
}
},
"TASK-ATTACHMENT": {
"ATTACHMENT": {
"EMPTY": {
"HEADER": "このリストは空です",
"DRAG-AND-DROP": {
@@ -114,4 +115,5 @@
"HEADER": "使用できるファイルがありません"
}
}
}
}

View File

@@ -1,13 +1,14 @@
{
"ADF_TASK_LIST": {
"APPS": {
"NONE": "Ingen apper funnet"
},
"TASK_LIST": {
"LIST": {
"MESSAGES": {
"NONE": "Ingen oppgaveliste funnet"
}
},
"TASK_DETAILS": {
"DETAILS": {
"LABELS": {
"ASSIGNEE": "Tilordnet",
"DUE": "Forfaller",
@@ -66,7 +67,7 @@
"CLOSE": "Lukk"
}
},
"TASK_FILTERS": {
"FILTERS": {
"MESSAGES": {
"NONE": "Ingen oppgavefilter valgt."
}
@@ -102,7 +103,7 @@
"NO_USERS": "Ingen funnet å involvere"
}
},
"TASK-ATTACHMENT": {
"ATTACHMENT": {
"EMPTY": {
"HEADER": "Denne listen er tom",
"DRAG-AND-DROP": {
@@ -114,4 +115,5 @@
"HEADER": "Ingen tilgjengelige filer"
}
}
}
}

View File

@@ -1,4 +1,5 @@
{
"ADF_TASK_LIST": {
"APPS": {
"NONE": "Geen apps gevonden"
},
@@ -7,7 +8,7 @@
"NONE": "Geen takenlijst gevonden"
}
},
"TASK_DETAILS": {
"DETAILS": {
"LABELS": {
"ASSIGNEE": "Toegewezen persoon",
"DUE": "Vervalt",
@@ -66,7 +67,7 @@
"CLOSE": "Sluiten"
}
},
"TASK_FILTERS": {
"FILTERS": {
"MESSAGES": {
"NONE": "Geen taakfilter geselecteerd."
}
@@ -102,7 +103,7 @@
"NO_USERS": "Niemand gevonden om te betrekken"
}
},
"TASK-ATTACHMENT": {
"ATTACHMENT": {
"EMPTY": {
"HEADER": "Deze lijst is leeg",
"DRAG-AND-DROP": {
@@ -114,4 +115,5 @@
"HEADER": "Er zijn geen bestanden beschikbaar"
}
}
}
}

View File

@@ -1,13 +1,14 @@
{
"ADF_TASK_LIST": {
"APPS": {
"NONE": "Nenhum aplicativo encontrado"
},
"TASK_LIST": {
"LIST": {
"MESSAGES": {
"NONE": "Nenhuma lista de tarefas encontrada"
}
},
"TASK_DETAILS": {
"DETAILS": {
"LABELS": {
"ASSIGNEE": "Destinatário",
"DUE": "Vencimento",
@@ -66,7 +67,7 @@
"CLOSE": "Fechar"
}
},
"TASK_FILTERS": {
"FILTERS": {
"MESSAGES": {
"NONE": "Nenhum filtro de tarefa selecionado."
}
@@ -102,7 +103,7 @@
"NO_USERS": "Ninguém para envolver"
}
},
"TASK-ATTACHMENT": {
"ATTACHMENT": {
"EMPTY": {
"HEADER": "Esta lista está vazia",
"DRAG-AND-DROP": {
@@ -114,4 +115,5 @@
"HEADER": "Nenhum arquivo disponível"
}
}
}
}

View File

@@ -1,13 +1,14 @@
{
"ADF_TASK_LIST": {
"APPS": {
"NONE": "Приложения не найдены"
},
"TASK_LIST": {
"LIST": {
"MESSAGES": {
"NONE": "Не найдено ни одного списка задач"
}
},
"TASK_DETAILS": {
"DETAILS": {
"LABELS": {
"ASSIGNEE": "Исполнитель",
"DUE": "Срок",
@@ -66,7 +67,7 @@
"CLOSE": "Закрыть"
}
},
"TASK_FILTERS": {
"FILTERS": {
"MESSAGES": {
"NONE": "Фильтр задач не выбран."
}
@@ -102,7 +103,7 @@
"NO_USERS": "Участвующие лица не найдены"
}
},
"TASK-ATTACHMENT": {
"ATTACHMENT": {
"EMPTY": {
"HEADER": "Этот список пуст",
"DRAG-AND-DROP": {
@@ -114,4 +115,5 @@
"HEADER": "Нет файлов"
}
}
}
}

View File

@@ -1,13 +1,14 @@
{
"ADF_TASK_LIST": {
"APPS": {
"NONE": "未找到应用程序"
},
"TASK_LIST": {
"LIST": {
"MESSAGES": {
"NONE": "未找到任务列表"
}
},
"TASK_DETAILS": {
"DETAILS": {
"LABELS": {
"ASSIGNEE": "被指派者",
"DUE": "截止时间",
@@ -66,7 +67,7 @@
"CLOSE": "关闭"
}
},
"TASK_FILTERS": {
"FILTERS": {
"MESSAGES": {
"NONE": "未选择任务过滤器。"
}
@@ -102,7 +103,7 @@
"NO_USERS": "没找到涉及的人员"
}
},
"TASK-ATTACHMENT": {
"ATTACHMENT": {
"EMPTY": {
"HEADER": "此列表为空",
"DRAG-AND-DROP": {
@@ -114,4 +115,5 @@
"HEADER": "没有可用文件"
}
}
}
}