[ADF-3676] Task Header - Expose task properties out of the box (#3883)

* #3878 Add support for end date in TaskHeaderComponent

* add duration and parentTaskId
This commit is contained in:
Eugenio Romano
2018-10-13 11:13:29 +01:00
committed by GitHub
parent c8aa627a84
commit 04d42e2535
4 changed files with 1142 additions and 697 deletions

View File

@@ -3,137 +3,311 @@
"id": "https://github.com/Alfresco/alfresco-ng2-components/tree/master/lib/core/app-config/schema.json",
"title": "ADF Application config",
"description": "Configuration object for ADF components used by your application",
"definitions": {
"language": {
"description": "Language definition",
"type": "object",
"properties": {
"key": { "type": "string" },
"label": { "type": "string" }
"key": {
"type": "string"
},
"label": {
"type": "string"
}
}
},
"document-list-thumbnail": {
"description": "Document list's thumbnail image column definition",
"type": "object",
"required": [ "key", "type", "srTitle", "sortable" ],
"required": [
"key",
"type",
"srTitle",
"sortable"
],
"properties": {
"key": { "type": "string", "pattern": "^\\$thumbnail$" },
"type": { "type": "string", "pattern": "^image$" },
"srTitle": { "type": "string" },
"sortable": { "type": "boolean" }
"key": {
"type": "string",
"pattern": "^\\$thumbnail$"
},
"type": {
"type": "string",
"pattern": "^image$"
},
"srTitle": {
"type": "string"
},
"sortable": {
"type": "boolean"
}
}
},
"document-list-name": {
"description": "Document list's name column definition",
"type": "object",
"required": [ "key", "type", "title", "sortable" ],
"required": [
"key",
"type",
"title",
"sortable"
],
"properties": {
"key": { "type": "string", "pattern": "^name$" },
"type": { "type": "string", "pattern": "^text$" },
"title": { "type": "string" },
"sortable": { "type": "boolean" }
"key": {
"type": "string",
"pattern": "^name$"
},
"type": {
"type": "string",
"pattern": "^text$"
},
"title": {
"type": "string"
},
"sortable": {
"type": "boolean"
}
}
},
"document-list-title": {
"description": "Document list's title column definition",
"type": "object",
"required": [ "key", "type", "title", "sortable" ],
"required": [
"key",
"type",
"title",
"sortable"
],
"properties": {
"key": { "type": "string", "pattern": "^title$" },
"type": { "type": "string", "pattern": "^text$" },
"title": { "type": "string" },
"sortable": { "type": "boolean" }
"key": {
"type": "string",
"pattern": "^title$"
},
"type": {
"type": "string",
"pattern": "^text$"
},
"title": {
"type": "string"
},
"sortable": {
"type": "boolean"
}
}
},
"document-list-visibility": {
"description": "Document list's visibility column definition",
"type": "object",
"required": [ "key", "type", "title", "sortable" ],
"required": [
"key",
"type",
"title",
"sortable"
],
"properties": {
"key": { "type": "string", "pattern": "^visibility$" },
"type": { "type": "string", "pattern": "^text$" },
"title": { "type": "string" },
"sortable": { "type": "boolean" }
"key": {
"type": "string",
"pattern": "^visibility$"
},
"type": {
"type": "string",
"pattern": "^text$"
},
"title": {
"type": "string"
},
"sortable": {
"type": "boolean"
}
}
},
"document-list-path": {
"description": "Document list's path column definition",
"type": "object",
"required": [ "key", "type", "title", "format", "sortable" ],
"required": [
"key",
"type",
"title",
"format",
"sortable"
],
"properties": {
"key": { "type": "string", "pattern": "^path$" },
"type": { "type": "string", "pattern": "^location$" },
"title": { "type": "string" },
"format": { "type": "string" },
"sortable": { "type": "boolean" }
"key": {
"type": "string",
"pattern": "^path$"
},
"type": {
"type": "string",
"pattern": "^location$"
},
"title": {
"type": "string"
},
"format": {
"type": "string"
},
"sortable": {
"type": "boolean"
}
}
},
"document-list-modifiedAt": {
"description": "Document list's modifiedAt column definition",
"type": "object",
"required": [ "key", "type", "title", "sortable" ],
"required": [
"key",
"type",
"title",
"sortable"
],
"properties": {
"key": { "type": "string", "pattern": "^modifiedAt$" },
"type": { "type": "string", "pattern": "^date$" },
"title": { "type": "string" },
"sortable": { "type": "boolean" }
"key": {
"type": "string",
"pattern": "^modifiedAt$"
},
"type": {
"type": "string",
"pattern": "^date$"
},
"title": {
"type": "string"
},
"sortable": {
"type": "boolean"
}
}
},
"document-list-modifiedByUser": {
"description": "Document list's modifiedByUser column definition",
"type": "object",
"required": [ "key", "type", "title", "sortable" ],
"required": [
"key",
"type",
"title",
"sortable"
],
"properties": {
"key": { "type": "string", "pattern": "^modifiedByUser\\.displayName$" },
"type": { "type": "string", "pattern": "^text$" },
"title": { "type": "string" },
"sortable": { "type": "boolean" }
"key": {
"type": "string",
"pattern": "^modifiedByUser\\.displayName$"
},
"type": {
"type": "string",
"pattern": "^text$"
},
"title": {
"type": "string"
},
"sortable": {
"type": "boolean"
}
}
},
"document-list-sharedByUser": {
"description": "Document list's sharedByUser column definition",
"type": "object",
"required": [ "key", "type", "title", "sortable" ],
"required": [
"key",
"type",
"title",
"sortable"
],
"properties": {
"key": { "type": "string", "pattern": "^sharedByUser\\.displayName$" },
"type": { "type": "string", "pattern": "^text$" },
"title": { "type": "string" },
"sortable": { "type": "boolean" }
"key": {
"type": "string",
"pattern": "^sharedByUser\\.displayName$"
},
"type": {
"type": "string",
"pattern": "^text$"
},
"title": {
"type": "string"
},
"sortable": {
"type": "boolean"
}
}
},
"document-list-filesize": {
"description": "Document list's path column definition",
"type": "object",
"required": [ "key", "type", "title", "sortable" ],
"required": [
"key",
"type",
"title",
"sortable"
],
"properties": {
"key": { "type": "string", "pattern": "^content\\.sizeInBytes$" },
"type": { "type": "string", "pattern": "^fileSize$" },
"title": { "type": "string" },
"sortable": { "type": "boolean" }
"key": {
"type": "string",
"pattern": "^content\\.sizeInBytes$"
},
"type": {
"type": "string",
"pattern": "^fileSize$"
},
"title": {
"type": "string"
},
"sortable": {
"type": "boolean"
}
}
},
"document-list-archivedAt": {
"description": "Document list's archivedAt column definition",
"type": "object",
"required": [ "key", "type", "title", "format", "sortable" ],
"required": [
"key",
"type",
"title",
"format",
"sortable"
],
"properties": {
"key": { "type": "string", "pattern": "^archivedAt$" },
"type": { "type": "string", "pattern": "^date$" },
"title": { "type": "string" },
"format": { "type": "string" },
"sortable": { "type": "boolean" }
"key": {
"type": "string",
"pattern": "^archivedAt$"
},
"type": {
"type": "string",
"pattern": "^date$"
},
"title": {
"type": "string"
},
"format": {
"type": "string"
},
"sortable": {
"type": "boolean"
}
}
},
"document-list-archivedBy": {
"description": "Document list's archivedBy column definition",
"type": "object",
"required": [ "key", "type", "title", "sortable" ],
"required": [
"key",
"type",
"title",
"sortable"
],
"properties": {
"key": { "type": "string", "pattern": "^archivedByUser.displayName$" },
"type": { "type": "string", "pattern": "^text$" },
"title": { "type": "string" },
"sortable": { "type": "boolean" }
"key": {
"type": "string",
"pattern": "^archivedByUser.displayName$"
},
"type": {
"type": "string",
"pattern": "^text$"
},
"title": {
"type": "string"
},
"sortable": {
"type": "boolean"
}
}
},
"content-metadata-aspect": {
@@ -258,7 +432,6 @@
]
}
},
"type": "object",
"properties": {
"ecmHost": {
@@ -276,7 +449,11 @@
"providers": {
"description": "This parameter can accept as value ECM BPM or ALL you can set it accordingly where you want log-in",
"type": "string",
"enum": [ "ECM", "BPM", "ALL"]
"enum": [
"ECM",
"BPM",
"ALL"
]
},
"contextRootBpm": {
"description": "The context root of the BPM host",
@@ -290,23 +467,33 @@
"description": "Application's global configuration",
"type": "object",
"properties": {
"name": { "type": "string", "description": "Name of the application" }
"name": {
"type": "string",
"description": "Name of the application"
}
}
},
"languages": {
"description": "Supported languages",
"type": "array",
"items": { "$ref": "#/definitions/language" }
"items": {
"$ref": "#/definitions/language"
}
},
"pagination": {
"description": "Pagination configuration",
"type": "object",
"properties": {
"size": { "type": "number", "description": "Pagination's default page size" },
"size": {
"type": "number",
"description": "Pagination's default page size"
},
"supportedPageSizes": {
"description": "Pagination's supported page sizes",
"type": "array",
"items": { "type": "number" }
"items": {
"type": "number"
}
}
}
},
@@ -317,7 +504,9 @@
"excluded": {
"description": "File exclusions",
"type": "array",
"items": { "type": "string" }
"items": {
"type": "string"
}
},
"match-options": {
"description": "Minimatch plugin option that will be applied for the check. By default all the options are false",
@@ -325,47 +514,80 @@
"properties": {
"debug": {
"description": "Dump a ton of stuff to stderr",
"type": ["boolean", "null"]
"type": [
"boolean",
"null"
]
},
"nobrace": {
"description": "Do not expand {a,b} and {1..3} brace sets.",
"type": ["boolean", "null"]
"type": [
"boolean",
"null"
]
},
"noglobstar": {
"description": "Disable ** matching against multiple folder names.",
"type": ["boolean", "null"]
"type": [
"boolean",
"null"
]
},
"dot": {
"description": "Allow patterns to match filenames starting with a period, even if the pattern does not explicitly have a period in that spot.",
"type": ["boolean", "null"]
"type": [
"boolean",
"null"
]
},
"noext": {
"description": "Disable 'extglob' style patterns like +(a|b).",
"type": ["boolean", "null"]
"type": [
"boolean",
"null"
]
},
"nocase": {
"description": "Perform a case-insensitive match.",
"type": ["boolean", "null"]
"type": [
"boolean",
"null"
]
},
"nonull": {
"description": "When a match is not found by minimatch.match, return a list containing the pattern itself if this option is set. When not set, an empty list is returned if there are no matches.",
"type": ["boolean", "null"]
"type": [
"boolean",
"null"
]
},
"matchBase": {
"description": "If set, then patterns without slashes will be matched against the basename of the path if it contains slashes.",
"type": ["boolean", "null"]
"type": [
"boolean",
"null"
]
},
"nocomment": {
"description": "Suppress the behavior of treating # at the start of a pattern as a comment.",
"type": ["boolean", "null"]
"type": [
"boolean",
"null"
]
},
"nonegate": {
"description": "Suppress the behavior of treating a leading ! character as negation.",
"type": ["boolean", "null"]
"type": [
"boolean",
"null"
]
},
"flipNegate": {
"description": "Returns from negate expressions the same as if they were not negated.",
"type": ["boolean", "null"]
"type": [
"boolean",
"null"
]
}
}
}
@@ -374,7 +596,14 @@
"logLevel": {
"description": "Application's logging level",
"type": "string",
"enum": [ "trace", "debug", "info", "warn", "error", "silent" ]
"enum": [
"trace",
"debug",
"info",
"warn",
"error",
"silent"
]
},
"activiti": {
"type": "object"
@@ -387,7 +616,15 @@
"description": "Presets for document list component",
"type": "object",
"propertyNames": {
"enum": [ "-trashcan-", "-sites-", "-mysites-", "-favorites-", "-recent-", "-sharedlinks-", "default" ]
"enum": [
"-trashcan-",
"-sites-",
"-mysites-",
"-favorites-",
"-recent-",
"-sharedlinks-",
"default"
]
},
"patternProperties": {
".*": {
@@ -395,17 +632,39 @@
"type": "array",
"items": {
"oneOf": [
{ "$ref": "#/definitions/document-list-thumbnail" },
{ "$ref": "#/definitions/document-list-name" },
{ "$ref": "#/definitions/document-list-title" },
{ "$ref": "#/definitions/document-list-visibility" },
{ "$ref": "#/definitions/document-list-path" },
{ "$ref": "#/definitions/document-list-modifiedAt" },
{ "$ref": "#/definitions/document-list-modifiedByUser" },
{ "$ref": "#/definitions/document-list-sharedByUser" },
{ "$ref": "#/definitions/document-list-filesize" },
{ "$ref": "#/definitions/document-list-archivedAt" },
{ "$ref": "#/definitions/document-list-archivedBy" }
{
"$ref": "#/definitions/document-list-thumbnail"
},
{
"$ref": "#/definitions/document-list-name"
},
{
"$ref": "#/definitions/document-list-title"
},
{
"$ref": "#/definitions/document-list-visibility"
},
{
"$ref": "#/definitions/document-list-path"
},
{
"$ref": "#/definitions/document-list-modifiedAt"
},
{
"$ref": "#/definitions/document-list-modifiedByUser"
},
{
"$ref": "#/definitions/document-list-sharedByUser"
},
{
"$ref": "#/definitions/document-list-filesize"
},
{
"$ref": "#/definitions/document-list-archivedAt"
},
{
"$ref": "#/definitions/document-list-archivedBy"
}
]
}
}
@@ -424,7 +683,21 @@
"properties": {
"type": "array",
"items": {
"enum": [ "assignee", "status", "priority", "dueDate", "category", "parentName", "created", "id", "description", "formName" ]
"enum": [
"assignee",
"status",
"priority",
"dueDate",
"endDate",
"category",
"parentName",
"duration",
"parentTaskId",
"created",
"id",
"description",
"formName"
]
}
}
}
@@ -444,10 +717,18 @@
"items": {
"type": "object",
"properties": {
"key": { "type": "string" },
"type": { "type": "string" },
"title": { "type": "string" },
"sortable": { "type": "boolean" }
"key": {
"type": "string"
},
"type": {
"type": "string"
},
"title": {
"type": "string"
},
"sortable": {
"type": "boolean"
}
}
}
}
@@ -466,7 +747,16 @@
"properties": {
"type": "array",
"items": {
"enum": [ "status", "ended", "category", "businessKey", "assignee", "created", "id", "description" ]
"enum": [
"status",
"ended",
"category",
"businessKey",
"assignee",
"created",
"id",
"description"
]
}
}
}
@@ -486,10 +776,18 @@
"items": {
"type": "object",
"properties": {
"key": { "type": "string" },
"type": { "type": "string" },
"title": { "type": "string" },
"sortable": { "type": "boolean" }
"key": {
"type": "string"
},
"type": {
"type": "string"
},
"title": {
"type": "string"
},
"sortable": {
"type": "boolean"
}
}
}
}
@@ -500,7 +798,9 @@
"content-metadata": {
"description": "Content metadata component's configuration",
"type": "object",
"required": [ "presets" ],
"required": [
"presets"
],
"properties": {
"presets": {
"description": "Presets for content metadata component",
@@ -508,9 +808,17 @@
"patternProperties": {
".*": {
"oneOf": [
{ "type": "string", "pattern": "^\\*$", "description": "Wildcard for every aspect"},
{ "$ref": "#/definitions/content-metadata-aspect" },
{ "$ref": "#/definitions/content-metadata-layout-group" }
{
"type": "string",
"pattern": "^\\*$",
"description": "Wildcard for every aspect"
},
{
"$ref": "#/definitions/content-metadata-aspect"
},
{
"$ref": "#/definitions/content-metadata-layout-group"
}
]
}
}
@@ -520,27 +828,53 @@
"authType": {
"description": "Kind of authentication BASIC or OAUTH, default value BASIC",
"type": "string",
"enum": [ "BASIC", "OAUTH" ]
"enum": [
"BASIC",
"OAUTH"
]
},
"oauth2": {
"description": "AUTH configuration parameters",
"type": "object",
"required": [ "host", "clientId", "secret", "scope" ],
"required": [
"host",
"clientId",
"secret",
"scope"
],
"properties": {
"host": { "type": "string" },
"silentLogin": { "type": "boolean" },
"authPath": { "type": "string" },
"clientId": { "type": "string" },
"secret": { "type": "string" },
"redirectUri": { "type": "string" },
"redirectUriLogout": { "type": "string" },
"scope": { "type": "string" }
"host": {
"type": "string"
},
"silentLogin": {
"type": "boolean"
},
"authPath": {
"type": "string"
},
"clientId": {
"type": "string"
},
"secret": {
"type": "string"
},
"redirectUri": {
"type": "string"
},
"redirectUriLogout": {
"type": "string"
},
"scope": {
"type": "string"
}
}
},
"search": {
"description": "Search configuration parameters",
"type": "object",
"required": [ "categories" ],
"required": [
"categories"
],
"properties": {
"include": {
"type": "array",
@@ -561,15 +895,21 @@
"minItems": 1,
"items": {
"type": "object",
"required": [ "query" ],
"required": [
"query"
],
"properties": {
"query": { "type": "string" }
"query": {
"type": "string"
}
}
}
},
"facetFields": {
"type": "object",
"required": ["fields"],
"required": [
"fields"
],
"properties": {
"expanded": {
"description": "Toggles expanded state of the facet field",
@@ -581,7 +921,11 @@
"minItems": 1,
"items": {
"type": "object",
"required": [ "field", "mincount", "label" ],
"required": [
"field",
"mincount",
"label"
],
"properties": {
"field": {
"type": "string",
@@ -607,7 +951,9 @@
"type": "number",
"description": "Display page size"
},
"offset": { "type": "integer" }
"offset": {
"type": "integer"
}
}
}
}
@@ -615,7 +961,10 @@
},
"facetQueries": {
"type": "object",
"required": ["label", "queries"],
"required": [
"label",
"queries"
],
"properties": {
"label": {
"description": "Category label text",
@@ -634,10 +983,17 @@
"type": "array",
"items": {
"type": "object",
"required": [ "query", "label" ],
"required": [
"query",
"label"
],
"properties": {
"query": { "type": "string" },
"label": { "type": "string" }
"query": {
"type": "string"
},
"label": {
"type": "string"
}
}
}
}
@@ -648,15 +1004,29 @@
"minItems": 1,
"items": {
"type": "object",
"required": [ "id", "name" ],
"required": [
"id",
"name"
],
"properties": {
"id": { "type": "string" },
"name": { "type": "string" },
"enabled": { "type": "boolean" },
"expanded": { "type": "boolean" },
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"enabled": {
"type": "boolean"
},
"expanded": {
"type": "boolean"
},
"component": {
"type": "object",
"required": [ "selector", "settings" ],
"required": [
"selector",
"settings"
],
"properties": {
"selector": {
"description": "Unique component runtime identifier",
@@ -673,7 +1043,9 @@
},
"sorting": {
"description": "Sorting options and defaults",
"required": ["options"],
"required": [
"options"
],
"properties": {
"options": {
"type": "array",
@@ -681,13 +1053,29 @@
"items": {
"description": "Sorting options available for users to choose from",
"type": "object",
"required": ["key", "label", "type", "field", "ascending"],
"required": [
"key",
"label",
"type",
"field",
"ascending"
],
"properties": {
"key": { "type": "string" },
"label": { "type": "string" },
"type": { "type": "string" },
"field": { "type": "string" },
"ascending": { "type": "boolean" }
"key": {
"type": "string"
},
"label": {
"type": "string"
},
"type": {
"type": "string"
},
"field": {
"type": "string"
},
"ascending": {
"type": "boolean"
}
}
}
},
@@ -698,13 +1086,29 @@
"minItems": 1,
"items": {
"type": "object",
"required": ["key", "label", "type", "field", "ascending"],
"required": [
"key",
"label",
"type",
"field",
"ascending"
],
"properties": {
"key": { "type": "string" },
"label": { "type": "string" },
"type": { "type": "string" },
"field": { "type": "string" },
"ascending": { "type": "boolean" }
"key": {
"type": "string"
},
"label": {
"type": "string"
},
"type": {
"type": "string"
},
"field": {
"type": "string"
},
"ascending": {
"type": "boolean"
}
}
}
}

View File

@@ -27,6 +27,8 @@
"PROPERTIES": {
"TASK_NAME": "Task",
"THUMBNAIL": "Thumbnail",
"DURATION": "Duration",
"PARENT_TASK_ID": "Parent task id",
"NAME": "Name",
"ASSIGNEE": "Assignee",
"ASSIGNEE_DEFAULT": "No assignee",
@@ -40,6 +42,7 @@
"PARENT_NAME_DEFAULT": "No parent",
"CREATED_BY": "Created By",
"CREATED": "Created",
"END_DATE": "End date",
"ID": "ID",
"DESCRIPTION": "Description",
"DESCRIPTION_DEFAULT": "No description",

View File

@@ -16,7 +16,8 @@
*/
import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';
import { BpmUserService,
import {
BpmUserService,
CardViewDateItemModel,
CardViewItem,
CardViewMapItemModel,
@@ -24,7 +25,8 @@ import { BpmUserService,
CardViewBaseItemModel,
LogService,
TranslationService,
AppConfigService } from '@alfresco/adf-core';
AppConfigService
} from '@alfresco/adf-core';
import { TaskDetailsModel } from '../models/task-details.model';
import { TaskListService } from './../services/tasklist.service';
@@ -131,6 +133,41 @@ export class TaskHeaderComponent implements OnChanges, OnInit {
key: 'created'
}
),
new CardViewDateItemModel(
{
label: 'ADF_TASK_LIST.PROPERTIES.END_DATE',
value: this.taskDetails.endDate,
key: 'endDate'
}
),
new CardViewTextItemModel(
{
label: 'ADF_TASK_LIST.PROPERTIES.PARENT_NAME',
value: this.taskDetails.parentName,
key: 'parentName'
}
),
new CardViewTextItemModel(
{
label: 'ADF_TASK_LIST.PROPERTIES.DURATION',
value: `${this.taskDetails.duration} ms`,
key: 'duration'
}
),
new CardViewTextItemModel(
{
label: 'ADF_TASK_LIST.PROPERTIES.PARENT_TASK_ID',
value: this.taskDetails.parentTaskId,
key: 'parentTaskId'
}
),
new CardViewDateItemModel(
{
label: 'ADF_TASK_LIST.PROPERTIES.END_DATE',
value: this.taskDetails.endDate,
key: 'endDate'
}
),
new CardViewTextItemModel(
{
label: 'ADF_TASK_LIST.PROPERTIES.ID',

View File

@@ -31,6 +31,7 @@ export class TaskDetailsModel implements TaskRepresentation {
category: string;
created: Date;
description: string;
parentName: string;
dueDate: Date;
duration: number;
endDate: Date;