From 1b3c8ac6eec85649f4116978a53cc8ed7cc3efff Mon Sep 17 00:00:00 2001 From: Andy Stark <30621568+therealandeeee@users.noreply.github.com> Date: Wed, 20 Sep 2017 12:15:07 +0100 Subject: [PATCH] [ADF-1549] Added doc files for remaining Activiti libraries (#2354) --- docIndex.md | 22 +- .../images/analytics-without-parameters.png | Bin 0 -> 70422 bytes docassets/images/demo-validator.png | Bin 0 -> 26571 bytes docassets/images/form-service-sample-01.png | Bin 0 -> 29945 bytes docs/analytics-generator.component.md | 38 ++ docs/analytics-report-list.component.md | 39 ++ docs/analytics.component.md | 53 +++ docs/content.widget.md | 37 ++ docs/diagram.component.md | 49 +++ docs/form-list.component.md | 30 ++ docs/form.component.md | 406 ++++++++++++++++++ docs/form.service.md | 82 ++++ 12 files changed, 745 insertions(+), 11 deletions(-) create mode 100644 docassets/images/analytics-without-parameters.png create mode 100644 docassets/images/demo-validator.png create mode 100644 docassets/images/form-service-sample-01.png create mode 100644 docs/analytics-generator.component.md create mode 100644 docs/analytics-report-list.component.md create mode 100644 docs/analytics.component.md create mode 100644 docs/content.widget.md create mode 100644 docs/diagram.component.md create mode 100644 docs/form-list.component.md create mode 100644 docs/form.component.md create mode 100644 docs/form.service.md diff --git a/docIndex.md b/docIndex.md index 8e173ce482..c30d6e8534 100644 --- a/docIndex.md +++ b/docIndex.md @@ -42,12 +42,12 @@ Contains the Analytics component and other related items. See the library's [README file](ng2-components/ng2-activiti-analytics/README.md) for more information about installing and using the source code. - + **Documented** -- [Analytics component](ng2-components/ng2-activiti-analytics/README.md) -- [Analytics report list component](ng2-components/ng2-activiti-analytics/README.md) -- [Analytics generator component](ng2-components/ng2-activiti-analytics/README.md) +- [Analytics generator component](docs/analytics-generator.component.md) +- [Analytics report list component](docs/analytics-report-list.component.md) +- [Analytics component](docs/analytics.component.md) **Undocumented** @@ -70,10 +70,10 @@ Contains the Diagram component and other related items. See the library's [README file](ng2-components/ng2-activiti-diagrams/README.md) for more information about installing and using the source code. - + **Documented** -- [Diagram component](ng2-components/ng2-activiti-diagrams/README.md) +- [Diagram component](docs/diagram.component.md) **Undocumented** @@ -171,13 +171,13 @@ Contains the Form component and other related items. See the library's [README file](ng2-components/ng2-activiti-form/README.md) for more information about installing and using the source code. - + **Documented** -- [Form component](ng2-components/ng2-activiti-form/README.md) -- [Form list component](ng2-components/ng2-activiti-form/README.md) -- [Form service](ng2-components/ng2-activiti-form/README.md) -- [Content widget](ng2-components/ng2-activiti-form/README.md) +- [Form list component](docs/form-list.component.md) +- [Form component](docs/form.component.md) +- [Content widget](docs/content.widget.md) +- [Form service](docs/form.service.md) **Undocumented** diff --git a/docassets/images/analytics-without-parameters.png b/docassets/images/analytics-without-parameters.png new file mode 100644 index 0000000000000000000000000000000000000000..06146ecd335ca48b510fbfab246a865a18ecb49d GIT binary patch literal 70422 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%0Di1@8uakxF|Xq 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
x-@yV&Bs%Q(ZCOw4UH6zZ(+d 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 literal 0 HcmV?d00001 diff --git a/docassets/images/form-service-sample-01.png b/docassets/images/form-service-sample-01.png new file mode 100644 index 0000000000000000000000000000000000000000..479144ac25a8785a771d5cbbaee01ecb146172dd GIT binary patch literal 29945 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 literal 0 HcmV?d00001 diff --git a/docs/analytics-generator.component.md b/docs/analytics-generator.component.md new file mode 100644 index 0000000000..8fe69e6bcd --- /dev/null +++ b/docs/analytics-generator.component.md @@ -0,0 +1,38 @@ +# Analytics Generator Component + +The component generates and shows the charts + + + + + +- [Basic Usage](#basic-usage) + * [Properties](#properties) + * [Events](#events) + + + + + +## Basic Usage + +```html + + +``` + +### Properties + +| Name | Type | Description | +| --- | --- | -- | +| reportId | string | The report id | +| reportParamQuery | ReportQuery | The object contains all the parameters that the report needs | + +### Events + +| Name | Description | +| --- | --- | +| onSuccess | Raised when the charts are loaded | +| onError | Raised when an error occurs during the loading | \ No newline at end of file diff --git a/docs/analytics-report-list.component.md b/docs/analytics-report-list.component.md new file mode 100644 index 0000000000..43165fb0ad --- /dev/null +++ b/docs/analytics-report-list.component.md @@ -0,0 +1,39 @@ +# Activiti Analytics List Component + +The component shows the list of all the available reports + + + + + +- [Basic Usage](#basic-usage) + * [Properties](#properties) + * [Events](#events) + + + + + +## Basic Usage + +```html + + +``` + +### Properties + +| Name | Type | Required | Default | Description | +| --- | --- | --- | --- | --- | +| appId | string | optional | | The application id | +| layoutType | string | required | | Define the layout of the apps. There are two possible values: GRID or LIST. LIST is the default value| +| selectFirst | boolean | optional | false | Change the value to true if you want to select the first item in the list as default| + +### Events + +| Name | Description | +| --- | --- | +| onSuccess | The event is emitted when the report list is loaded | +| onError | The event is emitted when an error occurs during the loading | +| reportClick | The event is emitted when the report in the list is selected | diff --git a/docs/analytics.component.md b/docs/analytics.component.md new file mode 100644 index 0000000000..2a38d5706d --- /dev/null +++ b/docs/analytics.component.md @@ -0,0 +1,53 @@ +# Activiti Analytics Component + +The component shows the charts related to the reportId passed as input + + + + + +- [Basic Usage](#basic-usage) + * [Properties](#properties) + * [Events](#events) + + + + + +## Basic Usage + +```html + + +``` + +### Properties + +| Name | Type | Description | +| --- | --- | --- | +| appId | string | The application id | +| reportId | string | The report id | +| hideParameters | boolean | Toggle the analytics parameters | + +You can also hide chart parameters UI by setting the `hideParameters` to `true`: + +```html + + +``` + +![Analytics-without-parameters](../docassets/images/analytics-without-parameters.png) + +### Events + +| Name | Description | +| --- | --- | +| onSuccess | The event is emitted when the report parameters are loaded | +| onError | The event is emitted when an error occurs during the loading | +| reportSaved | The event is emitted when a report is saved | +| reportDeleted | The event is emitted when a report is deleted | \ No newline at end of file diff --git a/docs/content.widget.md b/docs/content.widget.md new file mode 100644 index 0000000000..f1fa2b000f --- /dev/null +++ b/docs/content.widget.md @@ -0,0 +1,37 @@ +# Activiti Content Component + +The component shows the content preview. + + + + + +- [Basic Usage](#basic-usage) + * [Properties](#properties) + * [Events](#events) + + + + + +## Basic Usage + +```html + + +``` + +### Properties + +The recommended set of properties can be found in the following table: + +| Name | Type | Default | Description | +| --- | --- | --- | --- | +| contentId | string | | The content id to show. | + +### Events + +| Name | Description | +| --- | --- | +| contentClick | Invoked when the content is clicked. | \ No newline at end of file diff --git a/docs/diagram.component.md b/docs/diagram.component.md new file mode 100644 index 0000000000..ac9cc9473b --- /dev/null +++ b/docs/diagram.component.md @@ -0,0 +1,49 @@ +# Activiti Diagram Component + + + + + +- [Basic Usage](#basic-usage) + * [Properties](#properties) + * [Events](#events) + + + + + +## Basic Usage + +This component shows the diagram of a process. + +```html + + +``` + +The below component shows the diagram of a running process instance with the activities highlighted according to their state (Active/Completed/Pending). + +```html + + +``` + +### Properties + +| Name | Type | Description | +| --- | --- | -- | +| metricPercentages | any | The array that contains the percentage of time for each element | +| processInstanceId | any | | +| metricColor | any | The array that contains the color for each element | +| metricType | any | The string that specifies the metric type | +| width | number | | +| height | number | | + +### Events + +| Name | Description | +| --- | --- | +| onSuccess | Raised when the diagrams elements are loaded | +| onError | Raised when an error occurs during loading | \ No newline at end of file diff --git a/docs/form-list.component.md b/docs/form-list.component.md new file mode 100644 index 0000000000..4a2c814c0e --- /dev/null +++ b/docs/form-list.component.md @@ -0,0 +1,30 @@ +# ADF Form List Component + +The component shows the activiti forms as a list. + + + + + +- [Basic Usage](#basic-usage) + * [Properties](#properties) + + + + + +## Basic Usage + +```html + + +``` + +### Properties + +The recommended set of properties can be found in the following table: + +| Name | Type | Default | Description | +| --- | --- | --- | --- | +| forms | any | | The array that contains the information to show inside the list. | \ No newline at end of file diff --git a/docs/form.component.md b/docs/form.component.md new file mode 100644 index 0000000000..d7f2023395 --- /dev/null +++ b/docs/form.component.md @@ -0,0 +1,406 @@ +# Activiti Form component + +The component shows a Form from Activiti (see it live: [Form Quickstart](https://embed.plnkr.co/YSLXTqb3DtMhVJSqXKkE/)) + + + + + +- [Basic Usage](#basic-usage) + * [Properties](#properties) + * [Advanced properties](#advanced-properties) + * [Events](#events) +- [Details](#details) + * [Custom empty form template](#custom-empty-form-template) + * [Controlling outcome execution behaviour](#controlling-outcome-execution-behaviour) + * [Form Field Validators](#form-field-validators) + + [Custom set of validators](#custom-set-of-validators) + + [Custom validator example](#custom-validator-example) +- [Other documentation](#other-documentation) + * [Common scenarios](#common-scenarios) + + [Changing field value based on another field](#changing-field-value-based-on-another-field) + + [Listen all form Events](#listen-all-form-events) +- [See also](#see-also) + + + + + +## Basic Usage + +```html + + +``` + +**Display form instance by task id:** + +```html + + +``` + +For an existing Task both form and values will be fetched and displayed. + +**Display form definition by form id:** + +```html + + +``` + +Only form definition will be fetched. + +**Display form definition by form name:** + +```html + + +``` + +**Display form definition by ECM nodeId:** + +In this case the metadata of the node are showed in an activiti Form. +If there is no form definied in activiti for the type of the node, +a new form will be automaticaly created in Activiti. + +```html + + +``` + +**Display form definition by form name, and store the form field as metadata:** + +The param nameNode is optional. + +```html + + +``` + +**Display form definition by ECM nodeId:** + +In this case the metadata of the node are shown in an activiti Form, +and store the form field as metadata. The param nameNode is optional. + +```html + + +``` + +### Properties + +| Name | Type | Default | Description | +| --- | --- | --- | --- | +| taskId | string | | Task id to fetch corresponding form and values. | +| formId | string | | The id of the form definition to load and display with custom values. | +| formName | string | | Name of the form definition to load and display with custom values. | +| data | FormValues | | Custom form values map to be used with the rendered form. | +| showTitle | boolean | true | Toggle rendering of the form title. | +| showCompleteButton | boolean | true | Toggle rendering of the `Complete` outcome button. | +| disableCompleteButton | boolean | false | The `Complete` outcome button is shown but it will be disabled. | +| showSaveButton | boolean | true | Toggle rendering of the `Save` outcome button. | +| readOnly | boolean | false | Toggle readonly state of the form. Enforces all form widgets render readonly if enabled. | +| showRefreshButton | boolean | true | Toggle rendering of the `Refresh` button. | +| showValidationIcon | boolean | true | Toggle rendering of the validation icon next form title. | +| saveMetadata | boolean | false | Store the value of the form as metadata. | +| path | string | | Path of the folder where to store the metadata. | +| nameNode | string | true | Name to assign to the new node where the metadata are stored. | +| fieldValidators | FormFieldValidator[] | See [Form Field Validators](#form-field-validators) section below | Contains a list of form field validator instances. | + +### Advanced properties + + The following properties are for complex customisation purposes: + +| Name | Type | Default | Description | +| --- | --- | --- | --- | +| form | FormModel | | Underlying form model instance. | +| showDebugButton | boolean | false | Toggle debug options. | +| debugMode | boolean | false | Toggle debug mode, allows displaying additional data for development and debugging purposes. | + +### Events + +| Name | Return Type | Description | +| --- | --- | --- | +| formLoaded | [FormModel](https://github.com/Alfresco/alfresco-ng2-components/blob/master/ng2-components/ng2-activiti-form/src/components/widgets/core/form.model.ts) | Invoked when form is loaded or reloaded. | +| formSaved | [FormModel](https://github.com/Alfresco/alfresco-ng2-components/blob/master/ng2-components/ng2-activiti-form/src/components/widgets/core/form.model.ts) | Invoked when form is submitted with `Save` or custom outcomes. | +| formCompleted | [FormModel](https://github.com/Alfresco/alfresco-ng2-components/blob/master/ng2-components/ng2-activiti-form/src/components/widgets/core/form.model.ts) | Invoked when form is submitted with `Complete` outcome. | +| formDataRefreshed | [FormModel](https://github.com/Alfresco/alfresco-ng2-components/blob/master/ng2-components/ng2-activiti-form/src/components/widgets/core/form.model.ts) | Invoked when form values are refreshed due to a data property change | +| executeOutcome | [FormOutcomeEvent](https://github.com/Alfresco/alfresco-ng2-components/blob/master/ng2-components/ng2-activiti-form/src/components/widgets/core/form-outcome-event.model.ts) | Invoked when any outcome is executed, default behaviour can be prevented via `event.preventDefault()` | +| onError | any | Invoked at any error | + +## Details + +All `form*` events receive an instance of the `FormModel` as event argument for ease of development: + +**MyView.component.html** + +```html + + +``` + +**MyView.component.ts** + +```ts +onFormSaved(form: FormModel) { + console.log(form); +} +``` + +### Custom empty form template + +You can add a template that will be show if no form definition has been found + +```html + + +
+

Empty form

+
+ +
+ +``` + +### Controlling outcome execution behaviour + +If absolutely needed it is possible taking full control over form outcome execution by means of `executeOutcome` event. +This event is fired upon each outcome execution, both system and custom ones. + +You can prevent default behaviour by calling `event.preventDefault()`. +This allows for example having custom form validation scenarios and/or additional validation summary presentation. + +Alternatively you may want just running additional code on outcome execution without suppressing default one. + +**MyView.component.html** + +```html + + +``` + +**MyView.component.ts** + +```ts +import { FormOutcomeEvent } from 'ng2-activiti-form'; + +export class MyView { + + validateForm(event: FormOutcomeEvent) { + let outcome = event.outcome; + + // you can also get additional properties of outcomes + // if you defined them within outcome definition + + if (outcome) { + let form = outcome.form; + if (form) { + // check/update the form here + event.preventDefault(); + } + } + } + +} +``` + +There are two additional functions that can be of a great value when controlling outcomes: + +- `saveTaskForm()` - saves current form +- `completeTaskForm(outcome?: string)` - save and complete form with a given outcome name + +**Please note that if `event.preventDefault()` is not called then default outcome behaviour +will also be executed after your custom code.** + +### Form Field Validators + +The Form component provides you with access to all Form Field validators. By default the following instances are created automatically: + +- RequiredFieldValidator +- NumberFieldValidator +- MinLengthFieldValidator +- MaxLengthFieldValidator +- MinValueFieldValidator +- MaxValueFieldValidator +- RegExFieldValidator +- DateFieldValidator +- MinDateFieldValidator +- MaxDateFieldValidator + +If needed, you can completely redefine the set of validators used by the form. + +All changes to `fieldValidators` collection are automatically applied to all the further validation cycles. + +#### Custom set of validators + +You can provide your own set of field validators based on either custom validator instances, or a mixture of default and custom ones. + +```html + +``` + +The Form component exposes a special `FORM_FIELD_VALIDATORS` constant that allows you get a quick access to all system validator instances. + +```ts +import { FORM_FIELD_VALIDATORS } from 'ng2-activiti-form'; + +@Component({...}) +export class AppComponent { + + fieldValidators = [ + // default set of ADF validators if needed + ...FORM_FIELD_VALIDATORS, + + // custom validators + new MyValidator1(), + new MyValidator2() + ]; + +} +``` + +#### Custom validator example + +A form field validator must implement the "FormFieldValidator" interface: + +```ts +export interface FormFieldValidator { + + isSupported(field: FormFieldModel): boolean; + validate(field: FormFieldModel): boolean; + +} +``` + +There might be many different validators used for various field types and purposes, +so the validation layer needs every validator instance to support "isSupported" call. + +It is up to validator to declare support for a form field. +If you want to check field types the [FormFieldTypes](https://github.com/Alfresco/alfresco-ng2-components/blob/master/ng2-components/ng2-activiti-form/src/components/widgets/core/form-field-types.ts) class can help you with the predefined constants and helper methods. + +In addition every validator has access to all underlying APIs of the [FormFieldModel](https://github.com/Alfresco/alfresco-ng2-components/blob/master/ng2-components/ng2-activiti-form/src/components/widgets/core/form-field.model.ts), +including the reference to the Form instance and so other form fields. + +Below is a source code for a demo validator that is executed for all the "TEXT" fields, and ensures the value is not "admin", otherwise the `field.validationSummary` value is set to an error. + +```ts +import { FormFieldModel, FormFieldTypes, FormFieldValidator } from 'ng2-activiti-form'; + +export class DemoFieldValidator implements FormFieldValidator { + + isSupported(field: FormFieldModel): boolean { + return field && field.type === FormFieldTypes.TEXT; + } + + validate(field: FormFieldModel): boolean { + if (this.isSupported(field)) { + if (field.value && field.value.toLowerCase() === 'admin') { + field.validationSummary = 'Sorry, the value cannot be "admin".'; + return false; + } + } + return true; + } + +} +``` + +Your component can extend the default validation set instead of replacing it entirely. +In the example below we redefine a default validation set with an additional "DemoFieldValidator": + +```ts +import { DemoFieldValidator } from './demo-field-validator'; + +@Component({...}) +export class AppComponent { + + fieldValidators = [ + ...FORM_FIELD_VALIDATORS, + new DemoFieldValidator() + ]; + +} +``` + +You can now use the 'fieldValidators' property with the Form or Task Details components to assign custom validator set for the underlying Form Model: + +```html + + + + + + + +``` + +Now if you run the application and try to enter "admin" in one of the text fields (either optional or required), you should see the following error: + +![](../docassets/images/demo-validator.png) + +## Other documentation + +### Common scenarios + +#### Changing field value based on another field + +Create a simple Form with a dropdown widget (id: `type`), and a multiline text (id: `description`). + +```ts +formService.formFieldValueChanged.subscribe((e: FormFieldEvent) => { + if (e.field.id === 'type') { + const fields: FormFieldModel[] = e.form.getFormFields(); + const description = fields.find(f => f.id === 'description'); + if (description != null) { + console.log(description); + description.value = 'Type set to ' + e.field.value; + } + } +}); +``` + +You subscribe to the `formFieldValueChanged` event and check whether event is raised for the `type` widget, then you search for a `description` widget and assign its value to some simple text. + +The result should be as following: + +![](../docassets/images/form-service-sample-01.png) + +#### Listen all form Events + +If you want to listen all the events fired in the form you can subscribe to this Subject : + +```ts +formService.formEvents.subscribe((event: Event) => { + console.log('Event fired:' + event.type); + console.log('Event Target:' + event.target); +}); +``` + +## See also + +- [Form Stencils with Angular 2](stencils.md) +- [Form Extensibility and Customisation](extensibility.md). \ No newline at end of file diff --git a/docs/form.service.md b/docs/form.service.md new file mode 100644 index 0000000000..42ad4ed1cd --- /dev/null +++ b/docs/form.service.md @@ -0,0 +1,82 @@ +# FormService Service + + + + + +- [Basic Usage](#basic-usage) + * [Events](#events) + * [Methods](#methods) + + + + + +## Basic Usage + +```ts +import { FormService, FormEvent, FormFieldEvent } from 'ng2-activiti-form'; + +@Component(...) +class MyComponent { + + constructor(formService: FormService) { + + formService.formLoaded.subscribe( + (e: FormEvent) => { + console.log(`Form loaded: ${e.form.id}`); + } + ); + + formService.formFieldValueChanged.subscribe( + (e: FormFieldEvent) => { + console.log(`Field value changed. Form: ${e.form.id}, Field: ${e.field.id}, Value: ${e.field.value}`); + } + ); + + } + +} +``` + +### Events + +| Name | Args Type | Description | +| --- | --- | --- | +| formLoaded | FormEvent | Raised when form has been loaded or reloaded | +| formFieldValueChanged | FormFieldEvent | Raised when input values change | +| taskCompleted | FormEvent | Raised when a task is completed successfully | +| taskCompletedError | FormErrorEvent | Raised when a task is completed unsuccessfully | +| taskSaved | FormEvent | Raised when a task is saved successfully | +| taskSavedError | FormErrorEvent | Raised when a task is saved unsuccessfully | +| executeOutcome | FormOutcomeEvent | Raised when a form outcome is executed | +| formEvents | Event | You can subscribe to this event to listen : ( click, blur, change, focus, focusin, focusout, input, invalid, select) of any elements in the form , see doc below | +| validateForm | ValidateFormEvent | Raised each time a form is validated. You can use it to provide custom validation or prevent default behaviour. | +| validateFormField | ValidateFormFieldEvent | Raised each time a form field is validated. You can use it to provide custom validation or prevent default behaviour.| + +### Methods + +| Name | Params | Returns | Description | +| --- | --- | --- | --- | +| createFormFromANode | (formName: string) | Observable\ | Create a Form with a fields for each metadata properties | +| createForm | (formName: string) | Observable\ | Create a Form | +| addFieldsToAForm | (formId: string, formModel: FormDefinitionModel) | Observable\ | Add Fileds to A form | +| searchFrom | (name: string) | Observable\ | Search For A Form by name | +| getForms | n/a | Observable\ | Get All the forms | +| getProcessDefinitions | n/a | Observable\ | Get Process Definitions | +| getTasks | n/a | Observable\ | Get All the Tasks | +| getTask | (taskId: string) | Observable\ | Get Task | +| saveTaskForm | (taskId: string, formValues: FormValues) | Observable\ | Save Task Form | +| completeTaskForm | (taskId: string, formValues: FormValues, outcome?: string) | Observable\ | Complete Task Form | +| getTaskForm | (taskId: string) | Observable\ | Get Form related to a taskId | +| getFormDefinitionById | (formId: string) | Observable\ | Get Form Definition | +| getFormDefinitionByName | (name: string) | Observable\ | Returns form definition by a given name. | +| getStartFormInstance | (processId: string) | Observable\ | Get start form instance for a given processId | +| getStartFormDefinition | (processId: string) | Observable\ | Get start form definition for a given process | +| createTemporaryRawRelatedContent | (file: any) | Observable\ | Save File | +| getRestFieldValues | (taskId: string, field: string) | Observable\ | | +| getRestFieldValuesByProcessId | (processDefinitionId: string, field: string) | Observable\ | | +| getRestFieldValuesColumnByProcessId | (processDefinitionId: string, field: string, column?: string) | Observable\ | | +| getRestFieldValuesColumn | (taskId: string, field: string, column?: string) | Observable\ | | +| getWorkflowGroups\ | (filter: string, groupId?: string) | Observable\ | | +| getWorkflowUsers\ | (filter: string, groupId?: string) | Observable\ | |