Compare commits

..
Author SHA1 Message Date
Maurizio Vitale f84db2216b Add the default validation array (#4852) 2019-06-14 18:07:21 +01:00
davidcanonieto 334ebd1256 [ADF-4338] Add locale to CardViewDateItemModel and improve logic of LocalizedDat… (#4845)
* Add locale to CardViewDateItemModel and improve logic of LocalizedDatePipe

* Fix e2e tests

* Fix e2e tests

* Fix C305010 test
2019-06-14 17:26:08 +01:00
Eugenio Romano e03290d26c Review doc 3.3.0 (#4851)
* fix documentation missing params

* fix index

* fix aftere release

* fix aftere review
2019-06-14 17:06:52 +01:00
arditdomi 33089a452f Change incorrect e2e test id (#4853) 2019-06-14 17:06:05 +01:00
Eugenio Romano f47cebc0a4 [ADF-4665] [ADF] - Application is refreshed when you have two instances of application opened (#4849)
* refactoring getValueFromToken and fix user token refresh

* refactoring getValueFromToken and fix user token refresh

* refactoring getValueFromToken and fix user token refres

* fix unit test
2019-06-14 16:02:12 +01:00
Eugenio Romano 4733bc7d3b add Vulnerability info 2019-06-14 15:57:53 +01:00
Eugenio Romano c0d1f74d57 license info 3.3.0 2019-06-14 15:43:54 +01:00
Eugenio Romano bd568008f8 fix pagination RTL 2019-06-14 14:39:36 +01:00
Eugenio Romano e578e5dc14 minor fix style demo shell process file list 2019-06-14 13:30:05 +01:00
Eugenio Romano b1e7a594b8 fix flaky test 2019-06-14 13:19:26 +01:00
arditdomi 5f8976004e About component, Add missing Content Services URL label (#4850) 2019-06-14 11:43:52 +01:00
Eugenio Romano c34205d863 Update package.json 2019-06-14 10:09:28 +01:00
Cilibiu Bogdan 4603cef19e [ADF-4667] Document list - sorting icon RTL fix (#4848)
* sorting icon RTL fix

* single quotes over double quotes

* overspecify position
2019-06-14 10:04:59 +01:00
Maurizio Vitale 819ed9ae6a Fix start process form (#4847) 2019-06-13 18:21:33 +01:00
davidcanonieto c44c2eae77 Fix Start Process Cloud Layout (#4846) 2019-06-13 16:41:37 +01:00
Maurizio Vitale 88c04ad7b8 Fix issue (#4844) 2019-06-13 13:50:27 +01:00
Eugenio Romano d43274f891 remove unused general dependency 2019-06-13 13:46:18 +01:00
Eugenio Romano 6d2f2030fe fix license script old licenses array 2019-06-13 11:24:40 +01:00
Geeta Mandakini Ayyalasomayajula ab3bb9002f [ADF-4288] -Sort Process Custom filters (#4826)
* Update data-table-component.page.ts

* new pr

* fix error - sortOrder.toLowerCase is not a function

* new pr

* new process definition added

* taking the development branch changes
2019-06-13 11:04:46 +01:00
Geeta Mandakini Ayyalasomayajula 626bb01bf7 [ADF-4488] - FormCloud - Should be able to render a dropdown with a RestService bind (#4834)
* new test file

* fix failures, passing string instead of boolean flag.

* ADF-4488 - FormCloud - Not able to render a dropdown with a RestService bind

* ADF-4488 - FormCloud - Not able to render a dropdown with a RestService bind

* added await for entry of undefined error

* added missing async for the tests.

* changed location

* changed locatioremoved unnecessary async

* moved the locators to task-form-cloud-component page

* removed the taskDetailsCloudPage as is unnecessary and getting the assertions from taskHeaderCloudPage.

* fiv circular dependency

* fix circular dependency
2019-06-12 20:21:03 +01:00
Eugenio Romano b04b717296 [ADF-4651] fix task form cloud (#4843)
* fix task form cloud

* fix form
2019-06-12 20:16:04 +01:00
Eugenio Romano ecb8410d1b fix pr deploy script 2019-06-12 18:01:13 +01:00
Denys Vuika f64cd9cffd [ADF-4640] share dialog fixes (#4830)
* unshare fixes and error notifications

* fix disabled toggles issue

* code fixes and separate interface

* remove 'isFavorite' include

* safety checks for properties

* update e2e

* refactor test after functionality change

* fix issue with the missing properties

* safety checks
2019-06-12 17:21:23 +01:00
Eugenio Romano 3a2cfb3626 fix date localization (#4841) 2019-06-12 16:16:00 +01:00
Maurizio Vitale 63f00e21cf [ADF-4468] FormCloud - Be able to display the value of a form variables (#4676)
* Fix the value passed as processDefinition
Be sure we fetch the form variables

* * Rename formId to formKey.

* * Reverted form Changes

* * Fixed failing unit test

* Fix the value passed as processDefinition
Be sure we fetch the form variables

* * Fixed failing unit test

* * Rename formId to formKey.

* * Reverted form Changes

* * Fixed failing unit test

* Fix form representation structure

* Refactor form models

* Change tslint config

* Fix lint

* Refactor form models

* Remove duplicated export

* improve variable names

* Update form mock
2019-06-12 12:50:09 +01:00
Eugenio Romano 051e8df091 fix refresh token sso logout 2019-06-12 12:36:05 +01:00
Eugenio Romano 492aa1e850 fix flaky test upload service 2019-06-12 10:15:33 +01:00
davidcanonieto f42e1a4ada [ADF-4041] Fix preselected user selection on People Cloud Component (#4648)
* [ADF-4041] Fix preselected user selection on People Cloud Component

* [ADF-4041] Fix unit test and add new one

* [ADF-4041] Fix validation of users

* Improve code

* Fix C309677 test
2019-06-11 22:47:06 +01:00
Eugenio Romano 9838d1e5d8 [ADF-4524] Checkbox widget is not displayed on a form on APS1 when having some visibility conditions on it (#4838)
* fix visibbility conditions form

* fix visibbility conditions form
2019-06-11 19:44:29 +01:00
Eugenio Romano 1c412ab15f new translation files (#4840) 2019-06-11 19:44:17 +01:00
Eugenio Romano 924c20d410 remove duplicated column and fix null in checkbox 2019-06-11 17:28:12 +01:00
Mario Romano fb082cdfdc [ACTIVITI-3234] add processInstanceId to save/submit event, change get folder… (#4833)
* [ACTIVITI-3234] add processId to save/submit event, change get folder rest call api

* Update form-cloud.component.md

* lint fix

* [ACTIVITI-3234] fix tests

* [ACTIVITI-3234] fix tests

* Fix rename processId in processInstanceId
2019-06-11 14:30:43 +01:00
Maurizio Vitale 7b191d37eb [ADF-4631] Start Process Cloud - Add the start form as part of a process (#4820)
* Add the start form as part of a process
Ability to pre-fill a form with values
Ability to send variables

* Fix unit test

* remove empty before each
2019-06-11 12:02:26 +01:00
davidcanonieto 7497822a46 [ADF-4342] Create localized pipe and centralize date format (#4813)
* [ADF-4342] Date Format defined in app config

* [ADF-4342] Create localized pipe and centralize date format

* Add unit test for new date pipe

* Add info internationalization docs

* Fix lining

* Fix linting

* Fix date pipe unit test

* [ADF-4342] Add supported language files

* Fix e2e tests
2019-06-11 09:35:35 +01:00
Eugenio Romano 990fa4625b fix ordering e2e failing test (#4825)
* ordering fix use common method in datatable

* ordering fix use common method in datatable

* fix sorting ps e2e

* fix ordering

* move search page in testing and fix sorting boolean flag

* fix import

* fix moment

* use common sort method in document list test

* use common sort method in document list test

* remove unnecesary sort control

* remove duplicate test

* remove e2e suspended removed status

* documentation
2019-06-11 07:34:16 +01:00
davidcanonieto c85df84a01 [ADF-4636][ADF-4137][ADF-4596] Datatable and Assignee bugs (#4832) 2019-06-11 00:35:02 +01:00
mcchrys be35267df3 [ADF-4634] Different statuses should load for Tasks than for Processes (#4819)
* Removed 'Suspended' option from Task Status dropdown
2019-06-11 00:13:52 +01:00
Eugenio Romano cb37254cae [ADF-4637] logout cross tabs event (#4823)
* logout cross tabs event

* fix remove listner

* fix remove listner

* Update auth-guard.service.ts
2019-06-10 19:37:28 +01:00
arditdomi 105a1a2b28 [ADF-4435] Added documentation about task-form buttons (#4831)
* [ADF-4435] Added documentation about task-form buttons

* [ADF-4435] Images of the documentation added don't have the correct dimensions

* [ADF-4435] Resize images

* [ADF-4435] Resize images
2019-06-10 19:31:07 +01:00
Geeta Mandakini Ayyalasomayajula 238fbf3d88 [ADF-4600] Should be able to filter groups based on composite roles (#4775)
* ADF-4600 Should be able to filter groups based on composite roles - automated

* minor fixes

* removed the template literals
2019-06-10 14:59:21 +01:00
loictrichaud 6c08231f33 fix adf-delete directive NodeResult (#4827) 2019-06-10 14:26:49 +01:00
arditdomi 117050decf [ADF-4421] Fix excluded tests (#4829) 2019-06-10 12:47:46 +01:00
arditdomi 4ea656e537 [ADF-4441] Save button should be disabled when form fields are invalid (#4817)
* [ADF-4441] Save button should be disabled when form inputs are invalid, Refactored disable custom outcome buttons unit tests

* [ADF-4441] add missing space

* [ADF-4441] Refactor failing unit tests

* [ADF-4441] Added documentation for disableSaveButton property
2019-06-10 12:01:58 +01:00
Eugenio Romano 3e1092d7bf Update process-custom-filters.e2e.ts 2019-06-10 10:27:50 +01:00
Eugenio Romano da5258edcd Revert "[ADF-4421] Fix excluded tests in task filters (#4721)" (#4824)
This reverts commit 51f0a2da47.
2019-06-07 18:48:41 +01:00
arditdomi 51f0a2da47 [ADF-4421] Fix excluded tests in task filters (#4721) 2019-06-07 16:27:48 +01:00
Eugenio Romano 8a2a71d60b fix build cli 2019-06-07 10:46:27 +01:00
Geeta Mandakini Ayyalasomayajula 7a3e2932bb [ADF-4462] - Should be possible to restore an old version of your file and the document list updated (#4708)
* ADF-4462 automated
2019-06-06 18:20:15 +01:00
Eugenio Romano 5e54cd4d43 Increase timeout and modify login async (#4795)
* increase timeout and modify login async

* run e2e if testing is changed

* improve cdk fix

* fix travis update projects

* disable ghostMode lite server

* lint fix

* fix timeout

* multiple try

* Update content-services-e2e.sh

* Update search-e2e.sh

* Update process-services-e2e.sh

* Update core-e2e.sh

* Update protractor.conf.ts

* fix unit

* remove async

* increqase notification time

* 3 parallel

* dix path issue in save

* small refactor protractor ts

* fix save

* create license check first script adf cli

* modify regex check

* refactor notification history component

* decrease notification

* fix notification message problem

* fix test

* update packages wit high risk

* revert cahnge login sso e2e

* fix dep

* fix documentation duplication and issue

* fix after review

* fix after review

* try 6 parallel test

* back to 3 parallel test no real time improve with 6
2019-06-06 16:47:50 +01:00
Denys Vuika 99f4b07878 [ADF-4496] Share dialog enhancements (#4705)
* raise snackbars on unshare errors

* remove time from datepicker

* update tests

* Update en.json

* code updates as per review

* update docs

* bind datetimepicker type attribute

* set datetimepicker type by configuration or default

* tests

* e2e test

* update docs

* e2e set sharedLinkDateTimePickerType config
2019-06-06 16:32:36 +01:00
cristinaj c3b1300d86 Add test for delete standalone task and cancelled process. (#4809) 2019-06-06 11:26:08 +01:00
Cilibiu Bogdan f18d534f9e update documentation (#4814) 2019-06-06 11:17:22 +01:00
Cilibiu Bogdan cb25979a00 mirror mat icon when direction is rtl (#4815) 2019-06-06 11:13:07 +01:00
Geeta Mandakini Ayyalasomayajula e65e32e0cf Enable tests and add a newly created user to run the tests. (#4796)
* enabled tests and added the new user to run the tests.

* lint fix

* adding a new user and add the user to hr group which will be used when deploying the apps.

* Test commit

* adding a new user and add the user to hr group which will be used when deploying the apps.

* linting fixes

* crc's moved the roles constants to identityService.

* crc's moved the roles constants to identityService.

* wrapped the createIdentityUser and assign Role calls into 1 method and used in the tests.

* wrapped the createIdentityUser and assign Role calls into 1 method and used in the tests.

* Added a method in identityService to pass the required roles to be added in a string array.

* linting fixes

* added the command line arguments to run the e2e tests -identity_admin_email and -identity_admin_password

* added the command line arguments to run the e2e tests -identity_admin_email and -identity_admin_password

* crc's, removed the step to add user to the hr group, as not needed in this test.

* renamed the E2E travis variable to end with identity.

* replaced the candidateuserapp with candidatebaseapp

* replaced candidateuserapp with candidatebaseapp

* replaced candidateuserapp with candidatebaseapp

* replaced candidateuserapp with candidatebaseapp

* timeout wait for the test to pass.

* crc's
2019-06-06 11:12:05 +01:00
Suzana Dirla 3d73e94b5d [ADF-4402] Move component related styles from demo-shell to ADF components (#4808)
* [ADF-4402] remove styling of non-existent items

* [ADF-4402] remove not needed style - bcs overwritten by style from core

* [ADF-4559] remove demo-shell only class from core styling

- use class name from core component for styling

* [ADF-4402] remove not used styling code

- .adf-app-layout-toolbar no longer exists, so no need keep its style

* [ADF-4402] move style from demo-shell to core

- same style was needed in ACA, so probably should be best in core ADF

* [ADF-4402] remove not used styling code

* [ADF-4402] move adf-toolbar-title style from demo-shell to core

* [ADF-4402] remove not used styling code

* [ADF-4402] use existing css class

* [ADF-4402] remove style already set from pagination component

* [ADF-4402] remove not used styling code

* [ADF-4402] viewer toolbar width
2019-06-05 16:01:38 +01:00
Maurizio Vitale 67485daece [ADF-4550] Form Cloud - Be able to upload a file on the content taken from the process-storage (#4807)
* * Process-storage

* * Used jsapiServcie

* Be able to upload a file on the content with the createNode api

* Fix lint

* Refactor

* * Removed needless method.

* Remove useless method

* Add properties type
2019-06-05 15:46:28 +01:00
Cilibiu Bogdan 0684098f60 [ADF-4626] Breadcrumb - directionality styling (#4810)
* direction styling

* remove text align
2019-06-05 15:01:05 +01:00
Cilibiu Bogdan 0cfc5bc1b7 [ADF-4625] Search Input does not respect RTL mode (#4806)
* configurable animation

* bind state attribute to value

* configure animation state based on direction

* update tests

* lint

* direction style
2019-06-04 09:15:44 +01:00
mcchrys 656eeaf017 [ADF-4034] Task list cloud - The Deleted task is changing the Status from "Deleted" in "Canceled" (#4803)
Removed DELETED status
Modified unit test to check recent changes
2019-06-04 09:08:39 +01:00
Geeta Mandakini Ayyalasomayajula 2b05f72a2f [ADF-4577] - Should display the processId when Process Definition has process name missing (#4802)
* updated the Test case in TestRail, basically if there is no process name in the process definition, then in the dropdown the processId is displayed and allows the user to start a process using that.

* updated the simpleapp to have a few more processes definitions which will enable to add new e2e tests.

* linting fixes
2019-06-03 17:19:54 +01:00
Cilibiu Bogdan 148f9830aa fix textOrientation value (#4805) 2019-06-03 17:15:37 +01:00
arditdomi 5392f3d229 [ADF-4527] Fix buttons duplication error in taskFormCloudComponent (#4804) 2019-06-03 17:01:05 +01:00
arditdomi 3d67d9dc75 [ADF-4552][ADF-4482] Social component refactoring, add ability to unRate, added e2e automation (#4749)
* [ADF-4552] Rating component refactoring, add ability to unRate

* [ADF-4552] RTL support added

* [ADF-4552] Improve behaviour and styling structure in RTL languages

* [ADF-4552] Improve behaviour and styling structure in RTL languages

* [ADF-4552] Added refresh rating when the node Id input changes

* [ADF-4552][ADF-4482] Refactor social component, add ability to unrate, add e2e automation

* [ADF-4552][ADF-4482] Added unsibscribe from Observables, added css variables, removed unused class id's

* [ADF-4552][ADF-4482] Improve structure and behaviour of e2e automation tests

* [ADF-4552][ADF-4482] Improve structure and behaviour of e2e automation tests

* [ADF-4552][ADF-4482] fix expected single space

* [ADF-4552][ADF-4482] fix lint check failure

* Fix circular dependency error
2019-06-03 14:27:13 +01:00
davidcanonieto b19646d201 [ADF-4232] Fix filePreviewPage methods to reach expectations (#4668)
* [ADF-4232] Fix filePreviewPage methods to reach expectations

* [ADF-4232] Implement new methods

* Fix word spelling

* [ADF-4232] Fix e2e test and rebase

* Rebase branch

* [ADF-4232] add test for reset zoom check

- remove un-reached expects from filePreviewPage

* [ADF-4232] better naming - review changes

* [ADF-4232] no sleep(s), more timeout

* [ADF-4232] some code clean up

* [ADF-4232] some code clean up

* [ADF-4232] refactoring - renaming

* [ADF-4232] refactoring

* [ADF-4232] refactoring move expects to test - code review changes

* [ADF-4232] remove unused methods

- these already exist on viewerPage.ts

* [ADF-4232] remove duplicated code

- use viewerPage instead of filePreviewPage

* [ADF-4232] reset to original timeout in afterAll
2019-06-03 14:24:53 +01:00
Marouan Bentaleb 7611268bd9 [ADF-4613] Fixing tag-component.e2e.ts (#4793)
* [ADF-4613] Enabling tests

* [ADF-4613] Make tag-component tests more stable
2019-05-31 15:40:06 +01:00
Deepak Paul 7eb9ffe688 [ADF-4546] Visibility conditions for Form variables don't work on Multiline Widget. (#4786)
* * Finding variable values by id & used date format

* * Tests to validate visibility by using id

* * [ADF-4529] Refactor conditions

* [ADF-4529] Fixed cloud form editor script error
2019-05-31 13:58:45 +01:00
Silviu Popa 30c42d17d0 [ADF-4530] StartTaskCloud - fix process definition list for empty names (#4790)
* [ADF-4530] - reset filtered process when value it's empty or invalid

* [ADF-4530] - lint

* [ADF-4530] - fix unit test

* [ADF-4530] StartTaskCloud - fix process definition list for empty names

* [ADF-4530] - lint

* [ADF-4530] - add unit test

* [ADF4530] StartProcess - revert changes

* [ADF-4530] - revert changes
2019-05-31 11:48:19 +01:00
Silviu Popa 6040f59391 [ADF-4461] FormCloud - fix date validations (#4776)
* [ADF-4443] FormCloud - fix date validations

* [ADF-4443] - add save validation

* [ADF-4443] - PR changes

* [ADF-4443] FormCloud - fix date validations

* fix unit tests

* [ADF-4443] - add save validation

* [ADF-4443] - PR changes

* Revert changes on save form

* Revert check form valid on save
2019-05-31 11:44:33 +01:00
Eugenio Romano 8b5038218e Update shareDialog.ts
use the right moment format for share dialog pointer
2019-05-31 10:40:17 +01:00
Deepak Paul f27846ec5b [ADF-4544] Cloud Task From - Refresh the buttons and form after an action is complete (#4726)
* [ADF-4544] Reloaded task on action

* [ADF-4544] Changed routing in demo component

* [ADF-4544] Added tests
2019-05-31 10:07:08 +01:00
Silviu Popa 892172150e [ADF-4586] - fix preselecting value for DropdownCloud (#4747)
* [ADF-4586] - fix preselecting value for DropdownCloud

* ADF-4586] - fix form complete for dropdown and tests

* [ADF-4586] - add FormRenderingService as provider

* [ADF-4586] - fix memory leaks

* [ADF-4586] - add type information

* [ADF-4586] - fix memory leak on dropdown

* [ADF-4589] - PR changes

* [ADF-4586] - fix unit tests

* [ADF-4586] - lint
2019-05-30 18:13:41 +01:00
Eugenio Romano ce60915fd9 Reorg script moving in folders (#4791)
* organize script in folder part 1

* improve test e2e

* fix smart build script

* fix relative path
2019-05-30 17:59:22 +01:00
davidcanonieto cccd95562c Fix pre-commit hook (#4792)
* Fix pre-commit hook

* Remove excluded files from tslint lib config
2019-05-30 17:47:58 +01:00
Eugenio Romano b91a942aa1 Multiple option env file (#4788)
* multi configuration file enabling

* improve ignore

* update i18n tool dep

* update webbpack bundle analyzer version

* fix ps cloud test wait setting

* fix script content

* remove use of testconfig for browser options

* convert protractor to ts

* download browser util fix
2019-05-30 11:15:15 +01:00
Cilibiu Bogdan 9aafb80483 [ADF-4601] DemoShell - Side navigation RTL support (#4768)
* rtl support

* fix lint

* Run e2e in case demoshell has been changed

* Skip file

* Skip file

* remove demoshell directive

* refactor side navigation

* remove env.cloud file

* class name selectors

* side navigation selectors

* fix clickMenuButton selector

* nested menu element context

* fix notification navigation selector
2019-05-29 20:02:15 +01:00
Cilibiu Bogdan 9cf6f5519c [ADF-4579] Layout - RTL support (#4741)
* single contentAnimation state

* fine tune contentAnimation state based on direction and position

* tets

* fix mock component inputs

* use native direction attribute

* update docs

* pass direction to calculate sidenav layout

* update test

* fix unit test

* remove dialogs directionality workaround

* set document directionality service

* remove context menu direction workaround

* remove unneeded dependencies

* remove direction style workaround

* remove permission icon direction

* remove sidenav layout direction attribute

* update docs

* update sidenav layout direction

* test

* remove document type

* update test dependencies

* clear storage before test

* test

* fix dl gap

* try to fix Uncaught QuotaExceededError

* fix QuotaExceededError

* fix tests

* fix tests
2019-05-29 16:17:13 +01:00
Francesco Corti f3e90298e6 Update of upgrade paths. (#4789) 2019-05-29 14:28:41 +01:00
Deepak Paul d571480ddd [ADF-4576] Remove duplicate getDeployedApplicationsByStatus service (#4740)
* * Remove overriding & added appconfig apps support

* * Added tests

* * Updated docs

* [ADF-4576] Made one service private

* * Fixed tests

* * [ADF-4576] Improved tests
2019-05-28 18:08:38 +01:00
cristinaj 90617ee3fd [ADF-4477]Add a new check related to endDate (#4694)
* Add a new check related to endDate

* Update task-header-cloud.e2e.ts

* Split the variables.

* no message
2019-05-28 17:40:34 +01:00
Silviu Popa f62236b916 [ADF-4598] StartTask - revert start task assignee and candidateGroups validations (#4785)
* [NO_ISSUE] - revert start task assignee and candidateGroups validations

* [ADF-4598] - fix unit tests
2019-05-28 17:37:36 +01:00
davidcanonieto f2f08a5bf8 [ADF-4529] Enable form configuration from e2e tests (#4738)
* [ADF-4529] Enable form configuration from e2e tests

* Improve linting

* Move form methods to new  file
2019-05-28 15:27:26 +01:00
cristinaj 36faed0fab [ADF-4609]Logging the response in case of error. (#4784)
* Logging the response in case of error.

* Enable all cloud tests

* no message

* no message

* Comment failing tests
2019-05-28 11:09:19 +01:00
Maurizio Vitale f6d8bd4130 CI - Ability to run only e2e cloud in case is the only affected folder (#4783)
* Remove skiplint option in favour of lint
Refactor protractor config

* Move rebase check

* Remove the skiplint and run only e2e cloud

* Remove the skip lint

* Change e2e cloud and check the CI runs only that one

* Enable the smart e2e on content

* Delegate the e2e run on the specific project

* Fix typo on specs option

* Add basic readme and fix process service name problem

* Fix bash else if
2019-05-28 11:04:40 +01:00
arditdomi 6897f20954 [ADF-4466] Fix alignment issues - IE11 (#4772)
* [ADF-4466] Fix alignment issues - IE11

* [ADF-4466] Fix implementation from demo shell specific to generic

* [ADF-4466] Remove unused query for IE11
2019-05-24 16:41:19 +01:00
Marouan Bentaleb 5cd0bc9899 Disable tag-component test (#4782) 2019-05-24 15:32:38 +01:00
davidcanonieto 894a9599a9 Fix e2e tests dist issue (#4779)
* Fix e2e tests dist issue

* Fix linting

* Add await to asyncronous function

* fix lintint
2019-05-24 15:32:09 +01:00
Denys Vuika 7f4e301ec0 run lint after npm install 2019-05-24 13:00:58 +01:00
Suzana Dirla 215f8106ca [ADF-4612] fix linting on npm-build-all script (#4778) 2019-05-24 12:39:03 +01:00
Marouan Bentaleb 65ceaee910 Skip failing tests (#4770) 2019-05-23 14:57:11 +01:00
Maurizio Vitale abb76d956b e2e cloud (#4767)
* Change strategy with process cloud e2e and fixes

* Change strategy with process cloud e2e and fixes

* Fix path and host

* improve the config and run the replace for cloud

* Use the same name of other scripts

* Fix lint

* Run the replace in case of cloud

* typo

* Export variables if needed
Fix the check env passing the oauth
2019-05-23 10:24:32 +01:00
Marouan Bentaleb 446efe4297 [ADF-4514] Move widgets pages to Testing package (#4703) 2019-05-22 18:32:46 +01:00
Silviu Popa 7a3b3583f8 [ADF-4530] StartProcessCloud - fix show process definition dropdown (#4723)
* [ADF-4530] - reset filtered process when value it's empty or invalid

* [ADF-4530] - lint

* [ADF-4530] - fix unit test

* [ADF-4530] - PR changes

* [ADF-4530] - PR changes
2019-05-22 15:57:39 +01:00
Marouan Bentaleb 5e7aabfaea [ADF-4547] Fixing flaky tests in Content Services and Core (#4743) 2019-05-22 14:57:20 +01:00
Cilibiu Bogdan 58cf10be5f [ADF-4582] User preference - set layout orientation based on locale (#4744)
* set textOrientation based on locale

* remove manually setting textOrientation

* tests

* revert to getBrowserCultureLang

* match languages keys

* update tests

* fix types
2019-05-22 14:02:51 +01:00
Silviu Popa 26a495c95d [ADF-4588] Datatable - fix copy content tooltip for ellipsis cell (#4751)
* [ADF-4588] - remove overflow from ellipsis class

* [ADF-4588] - fix css
2019-05-22 10:34:39 +01:00
Marouan Bentaleb 22dc800e13 Making C260107 more stable (#4754) 2019-05-22 10:15:34 +01:00
cristinaj 339a6e7a18 [ADF-4587] Fix e2e tests (#4757)
* Fix user_info test

* Removing duplication and hardcoded protocol

* Fix linting and update script

* Removing hardcoded protocol

* Add protocol to scripts

* Fix C260117

* Enable screenshots for cloud tests

* Update process-services-cloud-e2e.sh
2019-05-22 10:15:12 +01:00
Denys Vuika 57a162fcf0 typed interface for test configuration (#4758) 2019-05-22 10:13:57 +01:00
Marouan Bentaleb 0bba08539e Adding debug option to test script (#4753) 2019-05-21 11:50:51 +01:00
Maurizio Vitale 1141511a07 Remove the dependency with TestConfig (#4752)
* Remove the dependency with TestConfig

* Change protocol to https

* Trigger the cloud change

* Trigger the cloud change
2019-05-20 18:11:01 +01:00
Cilibiu Bogdan cff9bf0930 [ADF-4584] Header RTL styling (#4746) 2019-05-20 16:33:47 +01:00
Cilibiu Bogdan bb0bdbfc1d [ADF-4583] Upload dialog - RTL support (#4745)
* overwrite mat-drawer-content position

* set attributes based on direction and position

* add direction support

* update tests

* update doc

* fix direction description

* use native direction attribute

* bind to dir input

* update docs

* remove direction attribute

* listen to user preference textOrientation changes

* update tests

* remove unused import
2019-05-20 15:45:10 +01:00
davidcanonieto 2f44c45903 Fix concurrently command use (#4748)
* Fix concurrently command use

* Command missing parameter

* Remove parallel linting

* fix script

* Fix build

* Run lint concurrently
2019-05-20 12:25:42 +01:00
Marouan Bentaleb 0af9e45cff [ADF-4535] Fix people-group-cloud-component.e2e.ts (#4725) 2019-05-20 10:58:15 +01:00
davidcanonieto 514b31d975 Improve Rebase branch script (#4742)
* Improve Rebase branch script

* Improve Rebase branch script

* add comment
2019-05-17 16:46:29 +01:00
davidcanonieto 80da3e9932 [ADF-4569] Fix affected-libs.sh script (#4734)
* [ADF-4569] Fix affected-libs.sh script

* [ADF-4569] Create new script to check if branch is updated
2019-05-17 15:03:22 +01:00
Cilibiu Bogdan 52c5ec03bc [ADF-4578] remove duplicate language entry (#4739) 2019-05-17 10:56:37 +01:00
Denys Vuika 6cdae78cf2 extension loader accepts dynamic configurations 2019-05-16 12:43:22 +01:00
Marouan Bentaleb 39fe06ea1a [ADF-4541] Fix task-form-cloud-component.e2e.ts (#4731) 2019-05-16 11:49:45 +01:00
Denys Vuika 3aca244059 extensions: add missing service export 2019-05-16 10:46:11 +01:00
Marouan Bentaleb d8caf3b98c [ADF-4540] Fix task-list-properties.e2e.ts (#4730) 2019-05-16 10:27:37 +01:00
Silviu Popa cf68f656cf [NO_ISSUE] - fix unit test on process-services (#4732)
* [NO_ISSUE] - fix unit test on process-services

* [NO_ISSUE] - lint

* remove unused code
2019-05-16 10:09:26 +01:00
Marouan Bentaleb c9bc63bc3c [ADF-4538] Fix start-task-custom-app-cloud.e2e.ts (#4729) 2019-05-16 09:40:45 +01:00
Silviu Popa 55f920fbb4 [ADF-4521] Form - Multilingual support (#4715)
Maurizio says : YES
2019-05-15 15:59:50 +01:00
Silviu Popa b4e3a71bef [ADF-4269] ProcessCloud - fix start task with invalid Asignee or Candidat… (#4727)
* [ADF-4269] - prevent starting a task with invalid Asignee or CandidateUser

* [ADF-4269] - refractor people/group cloud

* [ADF-4269] - change docs
2019-05-15 15:49:46 +01:00
Silviu Popa 4a363c731b [ADF-4471] TaskCloud - disable editable fields when the task is unclaimed (#4680)
* [ADF-4471] TaskCloud - task header disabled when the task is unclaimed

* [ADF-4471] - fix unit test

* [ADF-4471] - pr changes

* [ADF-4471] - add return type
2019-05-14 15:30:35 +01:00
Silviu Popa d1bc5a608a [ADF-4389] StartProcessCloud - add validation for processName (#4707)
* [ADF-4389] StartProcessCloud - add validation for processName

* [ADF-4389] - change function definition name

* [ADF-4389] - add return type
2019-05-14 15:19:43 +01:00
Cilibiu Bogdan 164d398abc [ADF-4227] Material Dialog - change direction option based on textOrientation (#4716)
* change matDialog direction based on textOrientation

* move dialog providers to material.module

* extend initial options

* move UserPreferencesService from factory

* update module

* update test

* material dialog correct reference

* extend default global options

* tests
2019-05-14 12:52:03 +01:00
Cilibiu Bogdan de0f906163 [ADF-4543] Language Menu - set layout orientation (#4719)
* language entry interface

* pass language object

* set textOrientation

* tests

* update doc

* add rtl language
2019-05-14 12:45:05 +01:00
Cilibiu Bogdan 4f13dcc3e2 [ADF-4545] Context Menu - RTL support (#4722)
* set overlay direction

* test
2019-05-14 12:43:52 +01:00
Denys Vuika 1e4d024c08 Update site-permissions.e2e.ts 2019-05-14 12:26:56 +01:00
Denys Vuika ac224a0b82 [ADF-4489] metadata errors demoshell (#4720)
* raise errors in demo shell for metadata

* remove commented out code
2019-05-14 11:45:07 +01:00
Denys Vuika 60a122f844 disable flaky test 2019-05-14 11:02:09 +01:00
Denys Vuika 238a317f89 disable flaky test 2019-05-14 09:38:19 +01:00
Silviu Popa 96111f588a [ADF-4488] Form - Add dropdown-cloud widget (#4695)
* [ADF-4488] Form - Add dropdown cloud widget

* [ADF-4488] - add form style

* [ADF-4488] - revert formFieldOption change

* [ADF-4488] - PR changes

* [ADF-4488] - move dropdown widget into cloud module

* [ADF-4488] - PR changes and remove unused unit test

* [ADF-4488] - PR changes

* [ADF-4488] - PR changes

* [ADF-4488] - add multilingual support

* [ADF-4488] - PR changes
2019-05-14 09:15:15 +01:00
Denys Vuika 8985319f15 disable flaky e2e test 2019-05-13 15:43:08 +01:00
Denys Vuika cecc13093d disable flaky tests 2019-05-13 13:48:34 +01:00
Eugenio Romano 4d0b646717 Update protractor.conf.js 2019-05-13 08:06:22 +01:00
Eugenio Romano 00aac824c3 Update protractor.conf.js 2019-05-13 08:00:55 +01:00
Denys Vuika bbea17fe37 [ADF-4268] Info drawer fixes (#4709)
* show error popups

* proper error handling

* update tests

* update code as per review

* remove old implementation

* remove old code
2019-05-13 07:24:49 +01:00
davidcanonieto fc9f04c6c6 [ADF-4498] Disable Sticky header on Datatable if header is not visible (#4701)
* [ADF-4498] Disable Sticky header on Datatable if header is not visible

* [ADF-4498] Improve flag check
2019-05-13 07:02:36 +01:00
Eugenio Romano 898e3b5a80 [no-issue] Parallel run e2e and e2e common action refactoring (#4702) 2019-05-13 04:44:35 +02:00
Francesco Corti a48bfc3714 ADF 3.2.1 minor changes to documentation. (#4717) 2019-05-10 12:17:15 +01:00
Francesco Corti 9ebebbb860 Better descriptions into the release notes (#4718)
Better descriptions into the release notes about languages availability
2019-05-10 12:16:38 +01:00
Silviu Popa ead22d9e3c [ADF-4473] TaskCloud - add priority numeric validation (#4684)
* [ADF-4473] TaskCloud - add priority numeric validation

* [ADF-4473] - change validation conditiion

* [ADF-4473] - add return type

* [ADF-4473] - fix unit test
2019-05-09 17:48:23 +01:00
Eugenio Romano 028e2eb981 release note 3.2.1 2019-05-09 15:05:08 +01:00
Eugenio Romano 56982a02b8 Release 3.2.1 2019-05-09 14:34:00 +01:00
davidcanonieto 77109ae59a [ADF-4476] Unify layout for start process/task components (#4699) 2019-05-08 23:07:08 +01:00
Maurizio Vitale 32135e3cbc Fix the context name (#4710) 2019-05-08 19:57:20 +01:00
Maurizio Vitale c0e2429de3 Cloud script - Add users to the deploy phase (#4704)
* Add user and admin to the deploy phase

* Add user and admin to the deploy phase
E
2019-05-07 19:11:38 +01:00
davidcanonieto 7bc99d492a [ADF-4442] Show whole app config in config editor (#4700) 2019-05-07 17:34:59 +01:00
Silviu Popa 5bb8912651 [ADF-3192] Form - fix dropdown field alignment (#4685)
* [ADF-3192] Form - fix dropdown field alignment

* [ADF-3192] - reove unused style
2019-05-07 17:34:08 +01:00
davidcanonieto 9d0e9ec219 [ADF-4467] Fix Upload File Widget layout (#4675)
* [ADF-4467] Fix Upload File Widget layout

* [ADF-4467] Refactor content services upload button
2019-05-07 17:32:35 +01:00
Denys Vuika 0e2e5e35a0 [ADF-3126] i18n support for info drawer tabs (#4698)
* [ADF-3126] i18n support for info drawer tabs

* fix tests

* code fixes
2019-05-07 17:31:22 +01:00
Denys Vuika 58f7a2d0ee update docs 2019-05-07 16:59:48 +01:00
Eugenio Romano bc71efaab3 Merge pull request #4697 from Alfresco/dev-dcano-ADF-4495
[ADF-4495] Fix Remove dependencies script
2019-05-07 16:50:11 +01:00
Denys Vuika 8db915bd2a [ADF-4484] Quick notifications (#4688)
* quick notifications (info, error, warning)

* update code docs
2019-05-07 13:25:12 +01:00
davidcanonieto b7e50dd9eb [ADF-4495] Fix Remove dependencies script 2019-05-07 11:13:15 +01:00
Eugenio Romano 5d49b494fa bump 3.2.0 (#4690) 2019-05-03 17:07:05 +01:00
Maurizio Vitale 4cfc54ad60 Improve the release note with activiti features (#4692) 2019-05-03 15:24:47 +01:00
Eugenio Romano 42d02146fd [ADF-3.2.0] review link doc (#4689)
* review link doc
2019-05-03 14:30:35 +01:00
Eugenio Romano f40eb2560b Update RelNote320.md 2019-05-03 14:02:25 +01:00
Eugenio Romano 2e439bf076 Update RelNote320.md 2019-05-03 13:56:49 +01:00
Eugenio Romano 676efbf2fb Update RelNote320.md 2019-05-03 10:55:53 +01:00
Eugenio Romano f43789b7a7 Update RelNote320.md 2019-05-03 10:53:21 +01:00
839 changed files with 25728 additions and 13450 deletions
+3 -12
View File
@@ -3,22 +3,13 @@ node_modules
bundles
workspace.xml
.idea/
.env.*
dist/
e2e/.env.cloud
tmp
e2e-output/
e2e/downloads/
ng2-components/coverage/
!systemjs.config.js
demo-shell-ng2/app/components/router/
ng2-components/ng2-alfresco-userinfo-old/demo/src/app/
ng2-components/ng2-alfresco-userinfo-old/src/services/bpm-user.service.spec.ts
ng2-components/ng2-alfresco-userinfo-old/src/services/ecm-user.service.spec.ts
src/environments/
/ng2-components/ng2-example-webpack/
/ng2-components/config/coverage/
/e2e/downloads/
*.npmrc
/demo-shell-ng2/ng2-components/
.happypack/
.history
/ng2-components/ng2-alfresco-core/prebuilt-themes/
.ng_pkg_build/
+32 -157
View File
@@ -15,7 +15,7 @@ branches:
only:
- master
- development
- /.*old-env.*/
- /.*old-env.*/
- /.*next-release.*/
- /.*beta.*/
- /.*greenkeeper.*/
@@ -25,8 +25,7 @@ stages:
- name: Warm Up Cache & Lint & Build Dist
- name: Unit test
- name: e2e Test
- name: Create Docker PR
- name: Deploy Docker PR
- name: Deploy PR
addons:
chrome: stable
@@ -43,169 +42,45 @@ before_install:
jobs:
include:
- stage: Warm Up Cache & Lint & Build Dist
name: Warm Up Cache & Lint & Build Dist
script:
- if [[ $TRAVIS_PULL_REQUEST == "false" ]];
then
./scripts/lint.sh || exit 1;
./scripts/npm-build-all.sh || exit 1;
else
./scripts/update-version.sh -gnu -alpha || exit 1;
npm install;
./scripts/lint.sh || exit 1;
rm -rf tmp && mkdir tmp;
git merge-base origin/$TRAVIS_BRANCH HEAD > ./tmp/devhead.txt;
./scripts/smart-build.sh -b $TRAVIS_BRANCH -gnu || exit 1;
fi;
npm run build:dist || exit 1;
./scripts/license-list-generator.sh || exit 1;
./scripts/travis/build/build.sh
- stage: Unit test
name: core and extensions
name: Unit test content
script: ./scripts/travis/unit-test/content.sh
- stage: Unit test
name: Unit test core extension demo
script: ./scripts/travis/unit-test/core-extension-demo.sh
- stage: Unit test
name: Unit test process process-cloud insights
script: ./scripts/travis/unit-test/process.sh
- stage: Deploy PR
name: Deploy PR
script:
AFFECTED_LIBS="$(./scripts/affected-libs.sh -gnu -b $TRAVIS_BRANCH)";
if [[ $AFFECTED_LIBS =~ "core$" || $TRAVIS_PULL_REQUEST == "false" ]];
then
ng test core --watch=false || exit 1;
fi;
AFFECTED_LIBS="$(./scripts/affected-libs.sh -gnu -b $TRAVIS_BRANCH)";
if [[ $AFFECTED_LIBS =~ "extensions$" || $TRAVIS_PULL_REQUEST == "false" ]];
then
ng test extensions --watch=false || exit 1;
fi;
- stage: Unit test
name: process-services and insights
script:
AFFECTED_LIBS="$(./scripts/affected-libs.sh -gnu -b $TRAVIS_BRANCH)";
if [[ $AFFECTED_LIBS =~ "process-services$" || $TRAVIS_PULL_REQUEST == "false" ]];
then
ng test process-services --watch=false || exit 1;
fi;
AFFECTED_LIBS="$(./scripts/affected-libs.sh -gnu -b $TRAVIS_BRANCH)";
if [[ $AFFECTED_LIBS =~ "insights$" || $TRAVIS_PULL_REQUEST == "false" ]];
then
ng test insights --watch=false || exit 1;
fi;
- stage: Unit test
name: content-services
script:
AFFECTED_LIBS="$(./scripts/affected-libs.sh -gnu -b $TRAVIS_BRANCH)";
if [[ $AFFECTED_LIBS =~ "content-services$" || $TRAVIS_PULL_REQUEST == "false" ]];
then
ng test content-services --watch=false || exit 1;
fi;
- stage: Unit test
name: process-services-cloud
script:
AFFECTED_LIBS="$(./scripts/affected-libs.sh -gnu -b $TRAVIS_BRANCH)";
if [[ $AFFECTED_LIBS =~ "process-services-cloud$" || $TRAVIS_PULL_REQUEST == "false" ]];
then
ng test process-services-cloud --watch=false || exit 1;
fi;
- stage: Unit test
name: demo-shell
script: if ([ "$TRAVIS_BRANCH" = "master" ]); then
(./scripts/start.sh -t -ss -si || exit 1;);
else
(./scripts/start.sh -dev -t -ss -si || exit 1;);
fi;
- stage: Update children projects dependency #Update generator-ng2-alfresco-app
name: Update Generator
./scripts/travis/deploy/deploy.sh
- stage: Update children projects dependency #Update children projects dependency
name: Update Related Project
if: tag =~ .*beta.*
script: ./scripts/update-project.sh -gnu -t $GITHUB_TOKEN -n 'Alfresco/generator-ng2-alfresco-app'
- stage: Update children projects dependency # Test Update alfresco-content-app
name: Update ACA
if: tag =~ .*beta.*
script: ./scripts/update-project.sh -gnu -t $GITHUB_TOKEN -n 'Alfresco/alfresco-content-app'
- stage: Update children projects dependency # Test Update adf-app-manager-ui
name: Update adf-app-manager-ui
if: tag =~ .*beta.*
script: ./scripts/update-project.sh -gnu -t $GITHUB_TOKEN -n 'Alfresco/adf-app-manager-ui'
- stage: Update children projects dependency # Test Update alfresco-ng2-components
name: Update alfresco-ng2-components
if: tag =~ .*beta.*
script: ./scripts/update-project.sh -gnu -t $GITHUB_TOKEN -n 'Alfresco/alfresco-ng2-components'
- stage: Update children projects dependency # Test Update alfresco-modeler-app
name: Update alfresco modeler app
if: tag =~ .*beta.*
script: ./scripts/update-project.sh -gnu -t $GITHUB_TOKEN -n 'Alfresco/alfresco-modeler-app'
- stage: Update children projects dependency # Test Update activiti-modeling-app
name: Update alfresco modeler activiti app
if: tag =~ .*beta.*
script: ./scripts/update-project.sh -gnu -t $GITHUB_TOKEN -n 'Activiti/activiti-modeling-app'
- stage: Update children projects dependency # Test alfresco-admin-app
name: Update alfresco admin app
if: tag =~ .*beta.*
script: ./scripts/update-project.sh -gnu -t $GITHUB_TOKEN -n 'Alfresco/alfresco-admin-app'
- stage: e2e Test # Test core
script: ./scripts/travis/update-children.sh
- stage: e2e Test
name: core
script: ./scripts/travis/e2e/core-e2e.sh
- stage: e2e Test
name: content
script:
AFFECTED_E2E="$(./scripts/affected-folder.sh -b $TRAVIS_BRANCH -f "e2e")";
AFFECTED_LIBS="$(./scripts/affected-libs.sh -gnu -b $TRAVIS_BRANCH)";
if [[ $AFFECTED_LIBS =~ "core$" || $AFFECTED_E2E = "e2e" || $TRAVIS_PULL_REQUEST == "false" ]];
then
node ./scripts/check-ps-env.js --host "$E2E_HOST" -u "$E2E_USERNAME" -p "$E2E_PASSWORD" || exit 1;
node ./scripts/check-cs-env.js --host "$E2E_HOST" -u "$E2E_USERNAME" -p "$E2E_PASSWORD" || exit 1;
./scripts/test-e2e-lib.sh -host localhost:4200 -proxy "$E2E_HOST" -u "$E2E_USERNAME" -p "$E2E_PASSWORD" -e "$E2E_EMAIL" --folder core --skip-lint -save --use-dist || exit 1;
fi;
- stage: e2e Test # Test process-services
name: process-services
./scripts/travis/e2e/content-services-e2e.sh
- stage: e2e Test
name: search
script:
AFFECTED_E2E="$(./scripts/affected-folder.sh -b $TRAVIS_BRANCH -f "e2e")";
AFFECTED_LIBS="$(./scripts/affected-libs.sh -gnu -b $TRAVIS_BRANCH)";
if [[ $AFFECTED_LIBS =~ "process-services$" || $AFFECTED_E2E = "e2e" || $TRAVIS_PULL_REQUEST == "false" ]];
then
node ./scripts/check-ps-env.js --host "$E2E_HOST" -u "$E2E_USERNAME" -p "$E2E_PASSWORD" || exit 1;
./scripts/test-e2e-lib.sh -host localhost:4200 -proxy "$E2E_HOST" -u "$E2E_USERNAME" -p "$E2E_PASSWORD" -e "$E2E_EMAIL" --folder process-services --skip-lint --use-dist || exit 1;
fi;
- stage: e2e Test # Test content-services
name: content-services
./scripts/travis/e2e/search-e2e.sh
- stage: e2e Test
name: process
script:
AFFECTED_E2E="$(./scripts/affected-folder.sh -b $TRAVIS_BRANCH -f "e2e")";
AFFECTED_LIBS="$(./scripts/affected-libs.sh -gnu -b $TRAVIS_BRANCH)";
if [[ $AFFECTED_LIBS =~ "content-services$" || $AFFECTED_E2E = "e2e" || $TRAVIS_PULL_REQUEST == "false" ]];
then
node ./scripts/check-cs-env.js --host "$E2E_HOST" -u "$E2E_USERNAME" -p "$E2E_PASSWORD" || exit 1;
./scripts/test-e2e-lib.sh -host localhost:4200 -proxy "$E2E_HOST" -u "$E2E_USERNAME" -p "$E2E_PASSWORD" -e "$E2E_EMAIL" --folder content-services --skip-lint --use-dist || exit 1;
fi;
- stage: e2e Test # Test search
name: search
./scripts/travis/e2e/process-services-e2e.sh
- stage: e2e Test
name: process Cloud
script:
AFFECTED_E2E="$(./scripts/affected-folder.sh -b $TRAVIS_BRANCH -f "e2e")";
AFFECTED_LIBS="$(./scripts/affected-libs.sh -gnu -b $TRAVIS_BRANCH)";
if [[ $AFFECTED_LIBS =~ "content-services$" || $AFFECTED_E2E = "e2e" || $TRAVIS_PULL_REQUEST == "false" ]];
then
node ./scripts/check-cs-env.js --host "$E2E_HOST" -u "$E2E_USERNAME" -p "$E2E_PASSWORD" || exit 1;
./scripts/test-e2e-lib.sh -host localhost:4200 -proxy "$E2E_HOST" -u "$E2E_USERNAME" -p "$E2E_PASSWORD" -e "$E2E_EMAIL" --folder search --skip-lint --use-dist || exit 1;
fi;
- stage: e2e Test # Test process-services-cloud
name: process-services-cloud
script:
AFFECTED_E2E="$(./scripts/affected-folder.sh -b $TRAVIS_BRANCH -f "e2e")";
AFFECTED_LIBS="$(./scripts/affected-libs.sh -gnu -b $TRAVIS_BRANCH)";
if [[ $AFFECTED_LIBS =~ "process-services-cloud$" || $AFFECTED_E2E = "e2e" || $TRAVIS_PULL_REQUEST == "false" ]];
then
node ./scripts/check-activiti-env.js --host "$E2E_HOST_BPM" -u "$E2E_USERNAME" -p "$E2E_PASSWORD" --client 'activiti' || exit 1;
./scripts/test-e2e-lib.sh -host localhost:4200 -proxy "$E2E_HOST_BPM" -u "$E2E_USERNAME" -p "$E2E_PASSWORD" -e "$E2E_EMAIL" --folder process-services-cloud --skip-lint --use-dist -timeout 8000 || exit 1;
fi;
- stage: e2e Test # Test insights
name: insights
script:
AFFECTED_E2E="$(./scripts/affected-folder.sh -b $TRAVIS_BRANCH -f "e2e")";
AFFECTED_LIBS="$(./scripts/affected-libs.sh -gnu -b $TRAVIS_BRANCH)";
if [[ $AFFECTED_LIBS =~ "process-services-cloud$" || $AFFECTED_E2E = "e2e" || $TRAVIS_PULL_REQUEST == "false" ]];
then
node ./scripts/check-ps-env.js --host "$E2E_HOST" -u "$E2E_USERNAME" -p "$E2E_PASSWORD" || exit 1;
./scripts/test-e2e-lib.sh -host localhost:4200 -proxy "$E2E_HOST" -u "$E2E_USERNAME" -p "$E2E_PASSWORD" -e "$E2E_EMAIL" --folder insights --skip-lint --use-dist || exit 1;
fi;
- stage: Create Docker and Deploy Docker PR
script:
- if [ "$TRAVIS_PULL_REQUEST" != "false" ];
then
node ./scripts/move-dist-folder.js --base-href $TRAVIS_BUILD_NUMBER && (./scripts/pr-publish.sh -n $TRAVIS_BUILD_NUMBER -r $REPO_DOCKER -u $USERNAME_DOCKER -p $PASSWORD_DOCKER || exit 1);
fi;
- if [ "$TRAVIS_PULL_REQUEST" != "false" ];
then
(node --no-deprecation ./scripts/pr-deploy.js -n $TRAVIS_BUILD_NUMBER -u $RANCHER_TOKEN -p $RANCHER_SECRET -s $REPO_RANCHER --image "docker:$REPO_DOCKER/adf/demo-shell:$TRAVIS_BUILD_NUMBER" --env $ENVIRONMENT_NAME -r $ENVIRONMENT_URL || exit 1);
fi;
./scripts/travis/e2e/process-services-cloud-e2e.sh
# Send coverage data to codecov
after_success:
+1 -1
View File
@@ -516,7 +516,7 @@
"e2e": {
"builder": "@angular-devkit/build-angular:protractor",
"options": {
"protractorConfig": "./protractor.conf.js",
"protractorConfig": "./protractor.conf.ts",
"devServerTarget": "lib-e2e-test:serve"
}
},
-1
View File
@@ -126,7 +126,6 @@
"uncheck",
"subfolders",
"ECMBPM",
"candidateuserapp",
"processwithvariables"
],
"dictionaries": [
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "Alfresco-ADF-Angular-Demo",
"description": "Demo shell for Alfresco Angular components",
"version": "3.2.0-beta6",
"version": "3.2.1",
"author": "Alfresco Software, Ltd.",
"repository": {
"type": "git",
+3 -2
View File
@@ -95,7 +95,8 @@
"PEOPLE_GROUPS_CLOUD": "سحابة الأشخاص/المجموعة",
"PEOPLE_CLOUD": "مكون سحابة الأشخاص",
"GROUPS_CLOUD": "مكون سحابة المجموعة",
"CONFIRM-DIALOG": "مربع حوار التأكيد"
"CONFIRM-DIALOG": "مربع حوار التأكيد",
"COMMUNITY": "Community"
},
"TRASHCAN": {
"ACTIONS": {
@@ -245,7 +246,7 @@
"RATING": "مكون التقييم"
},
"TAG": {
"LIST": "خدمات محتوى علامات القائمة",
"LIST": "Content Services علامات القائمة",
"INSERT": "إدراج معرف العقدة",
"NODE_LIST": "قائمة العلامات حسب معرف العقدة"
},
+2 -1
View File
@@ -95,7 +95,8 @@
"PEOPLE_GROUPS_CLOUD": "Cloud osob/skupin",
"PEOPLE_CLOUD": "Součást cloudu osob",
"GROUPS_CLOUD": "Součást cloudu skupin",
"CONFIRM-DIALOG": "Dialogové okno s potvrzením"
"CONFIRM-DIALOG": "Dialogové okno s potvrzením",
"COMMUNITY": "Community"
},
"TRASHCAN": {
"ACTIONS": {
+2 -1
View File
@@ -95,7 +95,8 @@
"PEOPLE_GROUPS_CLOUD": "Personen-/Gruppen-Cloud",
"PEOPLE_CLOUD": "Personen-Cloud-Komponente",
"GROUPS_CLOUD": "Gruppen-Cloud-Komponente",
"CONFIRM-DIALOG": "Bestätigungsdialog"
"CONFIRM-DIALOG": "Bestätigungsdialog",
"COMMUNITY": "Community"
},
"TRASHCAN": {
"ACTIONS": {
+1
View File
@@ -78,6 +78,7 @@
"UPLOADER": "Uploader",
"WEBSCRIPT": "Webscript",
"TAG": "Tag",
"DATE": "Date",
"TRASHCAN": "Trashcan",
"SOCIAL": "Social",
"SETTINGS": "Settings",
+2 -1
View File
@@ -95,7 +95,8 @@
"PEOPLE_GROUPS_CLOUD": "Personas/Grupos en la nube",
"PEOPLE_CLOUD": "Componente en la nube de personas",
"GROUPS_CLOUD": "Componente en la nube de grupos",
"CONFIRM-DIALOG": "Cuadro de diálogo de confirmación"
"CONFIRM-DIALOG": "Cuadro de diálogo de confirmación",
"COMMUNITY": "Community"
},
"TRASHCAN": {
"ACTIONS": {
+2 -1
View File
@@ -95,7 +95,8 @@
"PEOPLE_GROUPS_CLOUD": "Ihmispilvi/Ryhmäpilvi",
"PEOPLE_CLOUD": "Ihmispilvi-komponentti",
"GROUPS_CLOUD": "Ryhmäpilvi-komponentti",
"CONFIRM-DIALOG": "Vahvistusvalintaikkuna"
"CONFIRM-DIALOG": "Vahvistusvalintaikkuna",
"COMMUNITY": "Community"
},
"TRASHCAN": {
"ACTIONS": {
+2 -1
View File
@@ -95,7 +95,8 @@
"PEOPLE_GROUPS_CLOUD": "Cloud des personnes/groupes",
"PEOPLE_CLOUD": "Composant cloud des personnes",
"GROUPS_CLOUD": "Composant cloud des groupes",
"CONFIRM-DIALOG": "Boîte de dialogue de confirmation"
"CONFIRM-DIALOG": "Boîte de dialogue de confirmation",
"COMMUNITY": "Communauté"
},
"TRASHCAN": {
"ACTIONS": {
+2 -1
View File
@@ -95,7 +95,8 @@
"PEOPLE_GROUPS_CLOUD": "Cloud persone/gruppi",
"PEOPLE_CLOUD": "Componente Cloud persone",
"GROUPS_CLOUD": "Componente Cloud gruppi",
"CONFIRM-DIALOG": "Finestra di conferma"
"CONFIRM-DIALOG": "Finestra di conferma",
"COMMUNITY": "Community"
},
"TRASHCAN": {
"ACTIONS": {
+2 -1
View File
@@ -95,7 +95,8 @@
"PEOPLE_GROUPS_CLOUD": "メンバー/グループのクラウド",
"PEOPLE_CLOUD": "メンバーのクラウドコンポーネント",
"GROUPS_CLOUD": "グループのクラウドコンポーネント",
"CONFIRM-DIALOG": "確認ダイアログ"
"CONFIRM-DIALOG": "確認ダイアログ",
"COMMUNITY": "Community"
},
"TRASHCAN": {
"ACTIONS": {
+2 -1
View File
@@ -95,7 +95,8 @@
"PEOPLE_GROUPS_CLOUD": "Person-/gruppesky",
"PEOPLE_CLOUD": "Personsky-komponent",
"GROUPS_CLOUD": "Gruppesky-kompontent",
"CONFIRM-DIALOG": "Bekreftelsesdialog"
"CONFIRM-DIALOG": "Bekreftelsesdialog",
"COMMUNITY": "Community"
},
"TRASHCAN": {
"ACTIONS": {
+2 -1
View File
@@ -95,7 +95,8 @@
"PEOPLE_GROUPS_CLOUD": "Personen-/groepencloud",
"PEOPLE_CLOUD": "Component Personencloud",
"GROUPS_CLOUD": "Component Groepencloud",
"CONFIRM-DIALOG": "Bevestigingsdialoogvenster"
"CONFIRM-DIALOG": "Bevestigingsdialoogvenster",
"COMMUNITY": "Community"
},
"TRASHCAN": {
"ACTIONS": {
+2 -1
View File
@@ -95,7 +95,8 @@
"PEOPLE_GROUPS_CLOUD": "Chmura dla osób/grup",
"PEOPLE_CLOUD": "Składnik Chmura dla osób",
"GROUPS_CLOUD": "Składnik Chmura dla grup",
"CONFIRM-DIALOG": "Okno dialogowe potwierdzenia"
"CONFIRM-DIALOG": "Okno dialogowe potwierdzenia",
"COMMUNITY": "Community"
},
"TRASHCAN": {
"ACTIONS": {
+2 -1
View File
@@ -95,7 +95,8 @@
"PEOPLE_GROUPS_CLOUD": "Nuvem de Pessoas/Grupo",
"PEOPLE_CLOUD": "Componente da Nuvem de Pessoas",
"GROUPS_CLOUD": "Componente da Nuvem de Grupos",
"CONFIRM-DIALOG": "Caixa de diálogo de confirmação"
"CONFIRM-DIALOG": "Caixa de diálogo de confirmação",
"COMMUNITY": "Community"
},
"TRASHCAN": {
"ACTIONS": {
+2 -1
View File
@@ -95,7 +95,8 @@
"PEOPLE_GROUPS_CLOUD": "Облако пользователей/групп",
"PEOPLE_CLOUD": "Компонент облака «Пользователи»",
"GROUPS_CLOUD": "Компонент облака «Группы»",
"CONFIRM-DIALOG": "Диалоговое окно подтверждения"
"CONFIRM-DIALOG": "Диалоговое окно подтверждения",
"COMMUNITY": "Community"
},
"TRASHCAN": {
"ACTIONS": {
+2 -1
View File
@@ -95,7 +95,8 @@
"PEOPLE_GROUPS_CLOUD": "Personer/grupp moln",
"PEOPLE_CLOUD": "Personer moln-komponent",
"GROUPS_CLOUD": "Grupper moln-komponent",
"CONFIRM-DIALOG": "Bekräftelsedialog"
"CONFIRM-DIALOG": "Bekräftelsedialog",
"COMMUNITY": "Community"
},
"TRASHCAN": {
"ACTIONS": {
+2 -1
View File
@@ -95,7 +95,8 @@
"PEOPLE_GROUPS_CLOUD": "人员/一组云",
"PEOPLE_CLOUD": "人员云组件",
"GROUPS_CLOUD": "组云组件",
"CONFIRM-DIALOG": "确认对话"
"CONFIRM-DIALOG": "确认对话",
"COMMUNITY": "Community"
},
"TRASHCAN": {
"ACTIONS": {
File diff suppressed because it is too large Load Diff
+4
View File
@@ -12,6 +12,10 @@ router-outlet[name='overlay'] + * {
width: 100%;
}
[dir='rtl'] .mat-icon {
transform: scale(-1, 1);
}
@media (max-width: 425px) {
adf-content-node-selector {
.adf-content-node-selector-content-list {
+35 -4
View File
@@ -27,7 +27,6 @@ import { AppConfigService, TRANSLATION_PROVIDER, DebugAppConfigService, CoreModu
import { ExtensionsModule } from '@alfresco/adf-extensions';
import { AppComponent } from './app.component';
import { MaterialModule } from './material.module';
import { LoginComponent } from './components/login/login.component';
import { LogoutComponent } from './components/logout/logout.component';
import { AppLayoutComponent } from './components/app-layout/app-layout.component';
import { HomeComponent } from './components/home/home.component';
@@ -81,7 +80,6 @@ import { CloudFiltersDemoComponent } from './components/cloud/cloud-filters-demo
import { TemplateDemoComponent } from './components/template-list/template-demo.component';
import { PeopleGroupCloudDemoComponent } from './components/cloud/people-groups-cloud-demo.component';
import { CloudSettingsComponent } from './components/cloud/cloud-settings.component';
import { NestedMenuPositionDirective } from './components/cloud/directives/nested-menu-position.directive';
import { ConfirmDialogExampleComponent } from './components/confirm-dialog/confirm-dialog-example.component';
import { FormCloudDemoComponent } from './components/app-layout/cloud/form-demo/cloud-form-demo.component';
import { CommunityCloudComponent } from './components/cloud/community/community-cloud.component';
@@ -93,6 +91,41 @@ import { CommunityProcessDetailsCloudDemoComponent } from './components/cloud/co
import { CommunityProcessesCloudDemoComponent } from './components/cloud/community/community-processes-cloud.component';
import { CommunityTaskDetailsCloudDemoComponent } from './components/cloud/community/community-task-details-cloud.component';
import { registerLocaleData } from '@angular/common';
import localeFr from '@angular/common/locales/fr';
import localeDe from '@angular/common/locales/de';
import localeIt from '@angular/common/locales/it';
import localeEs from '@angular/common/locales/es';
import localeJa from '@angular/common/locales/ja';
import localeNl from '@angular/common/locales/nl';
import localePt from '@angular/common/locales/pt';
import localeNb from '@angular/common/locales/nb';
import localeRu from '@angular/common/locales/ru';
import localeCh from '@angular/common/locales/zh';
import localeAr from '@angular/common/locales/ar';
import localeCs from '@angular/common/locales/cs';
import localePl from '@angular/common/locales/pl';
import localeFi from '@angular/common/locales/fi';
import localeDa from '@angular/common/locales/da';
import localeSv from '@angular/common/locales/sv';
registerLocaleData(localeFr);
registerLocaleData(localeDe);
registerLocaleData(localeIt);
registerLocaleData(localeEs);
registerLocaleData(localeJa);
registerLocaleData(localeNl);
registerLocaleData(localePt);
registerLocaleData(localeNb);
registerLocaleData(localeRu);
registerLocaleData(localeCh);
registerLocaleData(localeAr);
registerLocaleData(localeCs);
registerLocaleData(localePl);
registerLocaleData(localeFi);
registerLocaleData(localeDa);
registerLocaleData(localeSv);
@NgModule({
imports: [
BrowserModule,
@@ -116,7 +149,6 @@ import { CommunityTaskDetailsCloudDemoComponent } from './components/cloud/commu
],
declarations: [
AppComponent,
LoginComponent,
LogoutComponent,
AppLayoutComponent,
HomeComponent,
@@ -157,7 +189,6 @@ import { CommunityTaskDetailsCloudDemoComponent } from './components/cloud/commu
TemplateDemoComponent,
PeopleGroupCloudDemoComponent,
CloudSettingsComponent,
NestedMenuPositionDirective,
ConfirmDialogExampleComponent,
FormCloudDemoComponent,
ConfirmDialogExampleComponent,
+21 -7
View File
@@ -17,9 +17,14 @@
import { ModuleWithProviders } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';
import { AuthGuard, AuthGuardEcm, ErrorContentComponent, AuthGuardBpm, AuthGuardSsoRoleService } from '@alfresco/adf-core';
import {
AuthGuard,
AuthGuardEcm,
ErrorContentComponent,
AuthGuardBpm,
AuthGuardSsoRoleService
} from '@alfresco/adf-core';
import { AppLayoutComponent } from './components/app-layout/app-layout.component';
import { LoginComponent } from './components/login/login.component';
import { HomeComponent } from './components/home/home.component';
import { LogoutComponent } from './components/logout/logout.component';
import { ProcessServiceComponent } from './components/process-service/process-service.component';
@@ -61,7 +66,7 @@ import { CommunityProcessesCloudDemoComponent } from './components/cloud/communi
import { CommunityTaskDetailsCloudDemoComponent } from './components/cloud/community/community-task-details-cloud.component';
export const appRoutes: Routes = [
{ path: 'login', component: LoginComponent },
{ path: 'login', loadChildren: 'app/components/login/login.module#AppLoginModule' },
{ path: 'logout', component: LogoutComponent },
{
path: 'settings',
@@ -70,8 +75,8 @@ export const appRoutes: Routes = [
{
path: 'files/:nodeId/view',
component: AppComponent,
canActivate: [ AuthGuardEcm ],
canActivateChild: [ AuthGuardEcm ],
canActivate: [AuthGuardEcm],
canActivateChild: [AuthGuardEcm],
outlet: 'overlay',
children: [
{
@@ -121,6 +126,15 @@ export const appRoutes: Routes = [
}
]
},
{
path: 'date',
children: [
{
path: '',
loadChildren: 'app/components/date/date.module#AppDateModule'
}
]
},
{
path: 'card-view',
children: [
@@ -159,7 +173,7 @@ export const appRoutes: Routes = [
{
path: 'cloud',
canActivate: [AuthGuardSsoRoleService],
data: { roles: ['ACTIVITI_USER'], redirectUrl: '/error/403'},
data: { roles: ['ACTIVITI_USER'], redirectUrl: '/error/403' },
children: [
{
@@ -203,7 +217,7 @@ export const appRoutes: Routes = [
{
path: ':appName',
canActivate: [AuthGuardSsoRoleService],
data: { clientRoles: ['appName'], roles: ['ACTIVITI_USER'], redirectUrl: '/error/403'},
data: { clientRoles: ['appName'], roles: ['ACTIVITI_USER'], redirectUrl: '/error/403' },
children: [
{
path: '',
@@ -1,4 +1,4 @@
<adf-sidenav-layout [sidenavMin]="70" [sidenavMax]="220" [stepOver]="780" [hideSidenav]="hideSidenav" [direction]="direction"
<adf-sidenav-layout [sidenavMin]="70" [sidenavMax]="220" [stepOver]="780" [hideSidenav]="hideSidenav"
[expandedSidenav]="expandedSidenav" (expanded)="setState($event)" [position]="position">
<adf-sidenav-layout-header>
@@ -14,7 +14,7 @@
<div class="adf-header-delimiexpandedSidenavter"></div>
<adf-userinfo class="adf-app-layout-user-profile" [menuPositionX]="'before'" [menuPositionY]="'above'">
<adf-userinfo [menuPositionX]="'before'" [menuPositionY]="'above'">
</adf-userinfo>
<app-theme-picker></app-theme-picker>
@@ -25,6 +25,8 @@
<adf-language-menu></adf-language-menu>
</mat-menu>
<adf-notification-history menuPositionX="before" menuPositionY="above"></adf-notification-history>
</adf-layout-header>
</ng-template>
</adf-sidenav-layout-header>
@@ -32,33 +34,31 @@
<adf-sidenav-layout-navigation>
<ng-template let-isMenuMinimized="isMenuMinimized">
<mat-nav-list class="adf-sidenav-linklist">
<ng-container *ngFor="let link of links">
<a appNestedMenuPosition mat-list-item #appMenuTrigger *ngIf="link.children" [attr.data-automation-id]="link.title | translate"
class="adf-sidenav-link" [matMenuTriggerFor]="nestedMenu" [menuMinimized]="isMenuMinimized()"
[matMenuTriggerData]="{links: link.children}">
<ng-container *ngIf="link.children">
<mat-list-item (click)="trigger.openMenu()" [attr.data-automation-id]="link.title | translate" class="adf-sidenav-link">
<mat-icon matListIcon>{{link.icon}}</mat-icon>
<span matLine *ngIf="!isMenuMinimized()">{{link.title | translate }}</span>
<mat-icon class="adf-sidenav-link__expand-button" [matMenuTriggerData]="{links: link.children}"
rippleTrigger mat-icon-button #trigger="matMenuTrigger"
[matMenuTriggerFor]="nestedMenu">arrow_right</mat-icon>
</mat-list-item>
</ng-container>
<mat-icon matListIcon class="adf-sidenav-menu-icon">{{link.icon}}</mat-icon>
<div class="adf-sidenav-menu-label" *ngIf="!isMenuMinimized()">
{{link.title | translate }}</div>
<mat-icon class="adf-menu-expand-icon">arrow_right</mat-icon>
</a>
<a mat-list-item *ngIf="!link.children" [attr.data-automation-id]="link.title | translate"
class="adf-sidenav-link" [routerLink]="link.href" routerLinkActive="active"
[routerLinkActiveOptions]="{ exact: true }">
<mat-icon matListIcon class="adf-sidenav-menu-icon">{{link.icon}}</mat-icon>
<div class="adf-sidenav-menu-label" *ngIf="!isMenuMinimized()">
{{link.title | translate }}</div>
</a>
<ng-container *ngIf="!link.children">
<mat-list-item [routerLink]="link.href"
routerLinkActive="adf-sidenav-link--active" [routerLinkActiveOptions]="{ exact: true }"
[attr.data-automation-id]="link.title | translate" class="adf-sidenav-link">
<mat-icon matListIcon >{{link.icon}}</mat-icon>
<span matLine *ngIf="!isMenuMinimized()">{{link.title | translate }}</span>
</mat-list-item>
</ng-container>
</ng-container>
<a mat-list-item adf-logout [enableRedirect]="enableRedirect" redirectUri="/logout"
class="adf-sidenav-link">
<mat-icon matListIcon class="adf-sidenav-menu-icon">exit_to_app</mat-icon>
<div class="adf-sidenav-menu-label" *ngIf="!isMenuMinimized()">Logout</div>
</a>
<mat-list-item adf-logout [enableRedirect]="enableRedirect" redirectUri="/logout" class="adf-sidenav-link">
<mat-icon matListIcon>exit_to_app</mat-icon>
<span matLine *ngIf="!isMenuMinimized()">Logout</span>
</mat-list-item>
</mat-nav-list>
</ng-template>
@@ -73,15 +73,16 @@
</adf-sidenav-layout>
<app-log></app-log>
<mat-menu #nestedMenu="matMenu" [xPosition]="'before'">
<mat-menu #nestedMenu="matMenu" xPosition="after" class="nestedMenu">
<ng-template matMenuContent let-links="links">
<button mat-menu-item *ngFor="let link of links"
class="adf-sidenav-link"
[attr.data-automation-id]="link.title | translate"
routerLinkActive="active"
routerLinkActive="adf-sidenav-link--active"
[routerLink]="link.href"
[routerLinkActiveOptions]="{ exact: true }">
<mat-icon matListIcon class="adf-sidenav-menu-icon">{{link.icon}}</mat-icon>
<mat-icon matListIcon>{{link.icon}}</mat-icon>
{{ link.title | translate }}
</button>
</ng-template>
@@ -1,9 +1,6 @@
@mixin adf-app-layout-theme($theme) {
$primary: map-get($theme, primary);
$background: map-get($theme, background);
$foreground: map-get($theme, foreground);
$minimumAppWidth: 320px;
$toolbarHeight: 64px;
@media screen and ($mat-xsmall) {
app-search-bar {
@@ -17,45 +14,22 @@
}
}
.adf-app-layout-toolbar {
z-index: 998;
position: relative;
overflow: visible !important;
}
.adf-app-layout {
display: flex;
flex: 1;
min-width: $minimumAppWidth;
height: 100%;
.adf-nav-container {
display: block;
min-width: $minimumAppWidth;
height: 100%;
}
.adf-sidenav-linklist {
height: 100%;
overflow: auto;
padding-bottom: 8px;
box-sizing: border-box;
.adf-sidenav-link--active {
color: mat-color($primary);
}
.adf-sidenav-link {
&.adf-active {
color: mat-color($primary);
}
.adf-sidenav-menu-icon {
margin-right: 20px;
font-size: 14px;
}
.adf-sidenav-menu-label {
.mat-list-text {
font-size: 14px;
white-space: nowrap;
min-width: 120px;
padding: 0 10px;
}
}
@@ -63,34 +37,9 @@
height: 40px;
}
&-user-profile {
margin-right: 10px;
}
&-menu-spacer {
flex: 1 1 auto;
}
&-toolbar {
height: $toolbarHeight;
line-height: $toolbarHeight;
overflow: hidden;
mat-toolbar-row {
height: $toolbarHeight;
align-items: stretch;
justify-content: space-between;
}
.adf-toolbar-link {
min-width: 0;
line-height: $toolbarHeight;
&.adf-active {
background-color: rgba(0, 0, 0, 0.12);
}
}
}
}
@media screen and ($mat-small) {
@@ -113,4 +62,8 @@
flex: auto;
}
}
[dir='rtl'] .adf-sidenav-link__expand-button {
transform: rotateY(180deg);
}
}
@@ -72,6 +72,7 @@ export class AppLayoutComponent implements OnInit {
{ href: '/webscript', icon: 'extension', title: 'APP_LAYOUT.WEBSCRIPT' },
{ href: '/tag', icon: 'local_offer', title: 'APP_LAYOUT.TAG' },
{ href: '/social', icon: 'thumb_up', title: 'APP_LAYOUT.SOCIAL' },
{ href: '/date', icon: 'calendar_today', title: 'APP_LAYOUT.DATE' },
{ href: '/settings-layout', icon: 'settings', title: 'APP_LAYOUT.SETTINGS' },
{ href: '/config-editor', icon: 'code', title: 'APP_LAYOUT.CONFIG-EDITOR' },
{ href: '/extendedSearch', icon: 'search', title: 'APP_LAYOUT.SEARCH' },
@@ -115,23 +116,16 @@ export class AppLayoutComponent implements OnInit {
this.headerService.tooltip.subscribe((tooltip) => this.tooltip = tooltip);
this.headerService.position.subscribe((position) => this.position = position);
this.headerService.hideSidenav.subscribe((hideSidenav) => this.hideSidenav = hideSidenav);
this.userPreferencesService.select('textOrientation').subscribe((textOrientation) => {
this.direction = textOrientation;
});
}
constructor(
private userPreferences: UserPreferencesService,
private config: AppConfigService,
private alfrescoApiService: AlfrescoApiService,
private userPreferencesService: UserPreferencesService,
private headerService: HeaderDataService) {
if (this.alfrescoApiService.getInstance().isOauthConfiguration()) {
this.enableRedirect = false;
}
this.userPreferencesService.set('textOrientation', this.direction);
}
setState(state) {
@@ -16,10 +16,9 @@
*/
import { Component, OnDestroy, OnInit } from '@angular/core';
import { FormFieldModel, NotificationService, FormRenderingService } from '@alfresco/adf-core';
import { FormFieldModel, NotificationService, FormRenderingService, CoreAutomationService } from '@alfresco/adf-core';
import { FormCloud, FormCloudService, UploadCloudWidgetComponent } from '@alfresco/adf-process-services-cloud';
import { Subscription } from 'rxjs';
import { formDefinition } from './demo-form';
@Component({
templateUrl: 'cloud-form-demo.component.html',
@@ -45,7 +44,8 @@ export class FormCloudDemoComponent implements OnInit, OnDestroy {
constructor(
private notificationService: NotificationService,
private formRenderingService: FormRenderingService,
private formService: FormCloudService) {
private formService: FormCloudService,
private automationService: CoreAutomationService) {
this.formRenderingService.setComponentTypeResolver('upload', () => UploadCloudWidgetComponent, true);
}
@@ -54,7 +54,7 @@ export class FormCloudDemoComponent implements OnInit, OnDestroy {
}
ngOnInit() {
this.formConfig = formDefinition;
this.formConfig = JSON.stringify(this.automationService.forms.getFormCloudDefinition());
this.parseForm();
}
@@ -1,96 +0,0 @@
/*!
* @license
* Copyright 2019 Alfresco Software, Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
export const formDefinition = `{
"formRepresentation": {
"id": "text-form",
"name": "test-start-form",
"version": 0,
"description": "",
"formDefinition": {
"tabs": [],
"fields": [
{
"id": "1511517333638",
"type": "container",
"fieldType": "ContainerRepresentation",
"name": "Label",
"tab": null,
"numberOfColumns": 2,
"fields": {
"1": [
{
"fieldType": "FormFieldRepresentation",
"id": "texttest",
"name": "texttest",
"type": "text",
"value": null,
"required": false,
"placeholder": "text",
"params": {
"existingColspan": 2,
"maxColspan": 6,
"inputMaskReversed": true,
"inputMask": "0#",
"inputMaskPlaceholder": "(0-9)"
}
}
],
"2": [{
"fieldType": "AttachFileFieldRepresentation",
"id": "attachfiletest",
"name": "attachfiletest",
"type": "upload",
"required": true,
"colspan": 2,
"placeholder": "attachfile",
"params": {
"existingColspan": 2,
"maxColspan": 2,
"fileSource": {
"serviceId": "local-file",
"name": "Local File"
},
"multiple": true,
"link": false
},
"visibilityCondition": {
}
}]
}
}
],
"outcomes": [],
"metadata": {
"property1": "value1",
"property2": "value2"
},
"variables": [
{
"name": "variable1",
"type": "string",
"value": "value1"
},
{
"name": "variable2",
"type": "string",
"value": "value2"
}
]
}
}}
`;
@@ -8,13 +8,6 @@
margin: 10px 0;
}
.adf-full-content-toolbar {
.adf-toolbar-title {
display: flex;
width: 100%;
.adf-breadcrumb {
width: 0;
}
}
.adf-full-content-toolbar .adf-toolbar-title .adf-breadcrumb {
width: 0;
}
@@ -72,7 +72,7 @@ export class CardViewComponent implements OnInit {
value: new Date(1983, 11, 24, 10, 0, 30),
key: 'date',
default: new Date(1983, 11, 24, 10, 0, 30),
format: 'DD.MM.YYYY',
format: 'shortDate',
editable: this.isEditable
}),
new CardViewDatetimeItemModel({
@@ -80,7 +80,7 @@ export class CardViewComponent implements OnInit {
value: new Date(1983, 11, 24, 10, 0, 0),
key: 'datetime',
default: new Date(1983, 11, 24, 10, 0, 0),
format: 'DD.MM.YYYY',
format: 'short',
editable: this.isEditable
}),
new CardViewBoolItemModel({
@@ -1,43 +0,0 @@
/*!
* @license
* Copyright 2019 Alfresco Software, Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { Directive, HostListener, Input } from '@angular/core';
@Directive({
selector: '[appNestedMenuPosition]'
})
export class NestedMenuPositionDirective {
@Input()
menuMinimized: string;
nestedMenuLeftPadding: string = '220px';
@HostListener('click', ['$event'])
onClick() {
const overlayContainer = (document.querySelector('.cdk-overlay-connected-position-bounding-box') as HTMLElement);
(document.querySelector('.cdk-overlay-pane') as HTMLElement).style.width = '100%';
if (!this.menuMinimized) {
setTimeout(() => {
overlayContainer.style.left = this.nestedMenuLeftPadding;
});
}
}
}
@@ -27,7 +27,7 @@
<input matInput (input)="setPeopleAppName($event)" data-automation-id="adf-people-app-input" />
</mat-form-field>
<mat-form-field class="adf-preselect-value-full">
<mat-label>{{ 'PEOPLE_GROUPS_CLOUD.PRESELECTED_VALUE' | translate }}: {{ DEFAULT_PEOPLE_PLACEHOLDER }}</mat-label>
<mat-label>{{ 'PEOPLE_GROUPS_CLOUD.PRESELECTED_VALUE' | translate }} {{ DEFAULT_PEOPLE_PLACEHOLDER }}</mat-label>
<input matInput (input)="setPeoplePreselectValue($event)" data-automation-id="adf-people-preselect-input" />
</mat-form-field>
<mat-checkbox class="adf-preselect-value" (change)="onChangePeopleValidation($event)">{{
@@ -1,6 +1,8 @@
<adf-cloud-start-process
[appName]="appName"
[name]="processName"
[values]="formValues"
[variables]="variables"
(error)="openSnackMessage($event)"
(success)="onStartProcessSuccess()"
(cancel)="onCancelStartProcess()">
@@ -28,6 +28,8 @@ export class StartProcessCloudDemoComponent implements OnInit {
appName;
processName: string;
formValues: string;
variables: any;
constructor(private appConfig: AppConfigService,
private cloudLayoutService: CloudLayoutService,
@@ -41,7 +43,9 @@ export class StartProcessCloudDemoComponent implements OnInit {
this.appName = params.appName;
});
this.processName = this.appConfig.get<string>('adf-start-process.name');
this.processName = this.appConfig.get<string>('adf-cloud-start-process.name');
this.formValues = this.appConfig.get<string>('adf-cloud-start-process.values');
this.variables = this.appConfig.get<string>('adf-cloud-start-process.variables');
}
onStartProcessSuccess() {
@@ -55,6 +59,6 @@ export class StartProcessCloudDemoComponent implements OnInit {
}
openSnackMessage(event: any) {
this.notificationService.openSnackMessage(event.response.body.message);
this.notificationService.openSnackMessage(event.response.body.entry.message);
}
}
@@ -7,9 +7,7 @@
[appName]="appName"
[taskId]="taskId"
(cancelClick)="goBack()"
(taskClaimed)="onClaimTask()"
(taskCompleted)="onTaskCompleted()"
(taskUnclaimed)="onUnclaimTask()"
(formSaved)="onFormSaved()">
</adf-cloud-task-form>
</div>
@@ -50,18 +50,6 @@ export class TaskDetailsCloudDemoComponent {
this.router.navigate([`/cloud/${this.appName}/`]);
}
onCompletedTask() {
this.goBack();
}
onUnclaimTask() {
this.goBack();
}
onClaimTask() {
this.goBack();
}
onTaskCompleted() {
this.goBack();
}
@@ -1,77 +1,8 @@
<div>
<mat-nav-list class="adf-list-confgurations">
<mat-list-item (click)="metadataConfClick()">
<a matLine id="adf-metadata-conf">Metadata App config editor</a>
<button mat-icon-button>
<mat-icon>info</mat-icon>
</button>
</mat-list-item>
<mat-list-item (click)="searchConfClick()">
<a matLine id="adf-search-conf" >Search App config editor</a>
<button mat-icon-button>
<mat-icon>info</mat-icon>
</button>
</mat-list-item>
<mat-list-item (click)="fileConfClick()">
<a matLine id="adf-file-conf" >Excluded config file</a>
<button mat-icon-button>
<mat-icon>info</mat-icon>
</button>
</mat-list-item>
<mat-list-item (click)="taskHeaderConfClick()">
<a matLine id="adf-task-conf" >Task header</a>
<button mat-icon-button>
<mat-icon>info</mat-icon>
</button>
</mat-list-item>
<mat-list-item (click)="processInstanceHeaderConfClick()">
<a matLine id="adf-process-conf" >Process instance Header</a>
<button mat-icon-button>
<mat-icon>info</mat-icon>
</button>
</mat-list-item>
<mat-list-item (click)="startProcessConfClick()">
<a matLine id="adf-start-process-conf">Start process</a>
<button mat-icon-button>
<mat-icon>info</mat-icon>
</button>
</mat-list-item>
<mat-list-item (click)="applicationListCloudConfClick()">
<a matLine id="adf-apps-cloud-conf">Application List Cloud</a>
<button mat-icon-button>
<mat-icon>info</mat-icon>
</button>
</mat-list-item>
<mat-list-item (click)="taskListCloudConfClick()">
<a matLine id="adf-task-list-cloud-conf">Task List Cloud</a>
<button mat-icon-button>
<mat-icon>info</mat-icon>
</button>
</mat-list-item>
<mat-list-item (click)="editProcessFilterConfClick()">
<a matLine id="adf-edit-process-filter-conf">Edit process filter</a>
<button mat-icon-button>
<mat-icon>info</mat-icon>
</button>
</mat-list-item>
<mat-list-item (click)="processListCloudConfClick()">
<a matLine id="adf-process-list-cloud-conf">Process List Cloud</a>
<button mat-icon-button>
<mat-icon>info</mat-icon>
</button>
</mat-list-item>
<mat-list-item (click)="editTaskFilterConfClick()">
<a matLine id="adf-edit-task-filter-conf">Edit task filter</a>
<mat-list-item (click)="appConfigClick()">
<a matLine id="adf-app-conf">App Config Editor</a>
<button mat-icon-button>
<mat-icon>info</mat-icon>
</button>
@@ -32,7 +32,7 @@ export class ConfigEditorComponent {
editor: any;
code: any;
field = 'content-metadata';
field: string;
invalidJson = false;
isUserPreference = false;
userPreferenceProperty: string;
@@ -53,7 +53,7 @@ export class ConfigEditorComponent {
constructor(private appConfig: AppConfigService,
private userPreferencesService: UserPreferencesService,
private notificationService: NotificationService) {
this.code = JSON.stringify(appConfig.config['content-metadata']);
this.code = JSON.stringify(appConfig.config);
}
onSave() {
@@ -61,7 +61,7 @@ export class ConfigEditorComponent {
if (this.isUserPreference) {
this.userPreferencesService.set(this.userPreferenceProperty, JSON.parse(this.editor.getValue()));
} else {
this.appConfig.config[this.field] = JSON.parse(this.editor.getValue());
this.appConfig.config = JSON.parse(this.editor.getValue());
}
} catch (error) {
this.invalidJson = true;
@@ -77,10 +77,9 @@ export class ConfigEditorComponent {
this.code = '';
}
fileConfClick() {
appConfigClick() {
this.isUserPreference = false;
this.code = JSON.stringify(this.appConfig.config['files']);
this.field = 'files';
this.code = JSON.stringify(this.appConfig.config);
this.indentCode();
}
@@ -97,69 +96,6 @@ export class ConfigEditorComponent {
this.indentCode();
}
searchConfClick() {
this.isUserPreference = false;
this.code = JSON.stringify(this.appConfig.config['search']);
this.field = 'search';
this.indentCode();
}
metadataConfClick() {
this.isUserPreference = false;
this.code = JSON.stringify(this.appConfig.config['content-metadata']);
this.field = 'content-metadata';
this.indentCode();
}
taskHeaderConfClick() {
this.isUserPreference = false;
this.code = JSON.stringify(this.appConfig.config['adf-task-header']);
this.field = 'adf-task-header';
this.indentCode();
}
processInstanceHeaderConfClick() {
this.isUserPreference = false;
this.code = JSON.stringify(this.appConfig.config['adf-process-instance-header']);
this.field = 'adf-process-instance-header';
this.indentCode();
}
startProcessConfClick() {
this.isUserPreference = false;
this.code = JSON.stringify(this.appConfig.config['adf-start-process']);
this.field = 'adf-start-process';
this.indentCode();
}
taskListCloudConfClick() {
this.isUserPreference = false;
this.code = JSON.stringify(this.appConfig.config['adf-cloud-task-list']);
this.field = 'adf-cloud-task-list';
this.indentCode();
}
editProcessFilterConfClick() {
this.isUserPreference = false;
this.code = JSON.stringify(this.appConfig.config['adf-edit-process-filter']);
this.field = 'adf-edit-process-filter';
this.indentCode();
}
editTaskFilterConfClick() {
this.isUserPreference = false;
this.code = JSON.stringify(this.appConfig.config['adf-edit-task-filter']);
this.field = 'adf-edit-task-filter';
this.indentCode();
}
processListCloudConfClick() {
this.isUserPreference = false;
this.code = JSON.stringify(this.appConfig.config['adf-cloud-process-list']);
this.field = 'adf-cloud-process-list';
this.indentCode();
}
infinitePaginationConfClick() {
this.isUserPreference = true;
this.userPreferenceProperty = UserPreferenceValues.PaginationSize;
@@ -180,13 +116,6 @@ export class ConfigEditorComponent {
});
}
applicationListCloudConfClick() {
this.isUserPreference = false;
this.code = JSON.stringify(this.appConfig.config['alfresco-deployed-apps']);
this.field = 'alfresco-deployed-apps';
this.indentCode();
}
indentCode() {
setTimeout(() => {
this.editor.getAction('editor.action.formatDocument').run();
@@ -0,0 +1,32 @@
<div class="adf-date-pipes-container">
<h2>Date Pipes</h2>
<mat-form-field class="adf-date-field">
<input matInput
placeholder="Format"
[(ngModel)]="format">
</mat-form-field>
<mat-form-field class="adf-date-field">
<mat-select placeholder="Locale dropdown" [(ngModel)]="locale">
<mat-option *ngFor="let language of languages" [value]="language.key">
{{language.label}}
</mat-option>
</mat-select>
</mat-form-field>
<h3>AdfLocalizedDate Pipe - Default</h3>
<div>{{ today | adfLocalizedDate }} </div>
<br>
<h3>AdfLocalizedDate Pipe - Custom format</h3>
<div>{{ today | adfLocalizedDate : format }} </div>
<br>
<h3>AdfLocalizedDate Pipe - Custom format and locale</h3>
<div>{{ today | adfLocalizedDate : format : locale }} </div>
<br>
<h3>AdfTimeAgo Pipe</h3>
<div>{{ today | adfTimeAgo }} </div>
<br>
<h3>AdfTimeAgo Pipe - Custom locale</h3>
<div>{{ today | adfTimeAgo : locale}} </div>
</div>
@@ -0,0 +1,7 @@
.adf-date-pipes-container {
padding: 20px;
}
.adf-date-field {
margin: 20px;
}
@@ -0,0 +1,36 @@
/*!
* @license
* Copyright 2019 Alfresco Software, Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { Component } from '@angular/core';
import { AppConfigService } from '@alfresco/adf-core';
@Component({
selector: 'app-date-page',
templateUrl: './date.component.html',
styleUrls: ['date.component.scss']
})
export class DateComponent {
today = new Date();
locale: string;
format: string;
languages: any[];
constructor(private appConfig: AppConfigService) {
this.languages = this.appConfig.get('languages', []);
}
}
@@ -0,0 +1,39 @@
/*!
* @license
* Copyright 2019 Alfresco Software, Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { DateComponent } from './date.component';
import { CommonModule } from '@angular/common';
import { CoreModule } from '@alfresco/adf-core';
const routes: Routes = [
{
path: '',
component: DateComponent
}
];
@NgModule({
imports: [
CommonModule,
CoreModule.forChild(),
RouterModule.forChild(routes)
],
declarations: [DateComponent]
})
export class AppDateModule {}
@@ -3,11 +3,11 @@
<ng-template let-node="node" #sidebarRightTemplate>
<adf-info-drawer [title]="'APP.INFO_DRAWER.TITLE' | translate">
<adf-info-drawer-tab [label]="'APP.INFO_DRAWER.COMMENTS' | translate">
<adf-info-drawer-tab label="APP.INFO_DRAWER.COMMENTS">
<adf-comments [nodeId]="nodeId" [readOnly]="!isCommentEnabled"></adf-comments>
</adf-info-drawer-tab>
<adf-info-drawer-tab [label]="'APP.INFO_DRAWER.PROPERTIES' | translate">
<adf-info-drawer-tab label="APP.INFO_DRAWER.PROPERTIES">
<adf-content-metadata-card *ngIf="isPreset" [node]="node"
[multi]="multi"
[preset]="customPreset"
@@ -104,7 +104,7 @@
</adf-info-drawer-tab>
<adf-info-drawer-tab [label]="'APP.INFO_DRAWER.VERSIONS' | translate">
<adf-info-drawer-tab label="APP.INFO_DRAWER.VERSIONS">
<mat-card>
<mat-card-content>
<adf-version-manager [node]="node"
@@ -120,7 +120,7 @@
<ng-template let-node="node" #sidebarLeftTemplate>
<adf-info-drawer [title]="'Viewer Options'">
<adf-info-drawer-tab [label]="'Settings'">
<adf-info-drawer-tab label="Settings">
<p class="toggle">
<mat-slide-toggle
id="adf-switch-custoname"
@@ -250,12 +250,13 @@
key="$thumbnail"
type="image"
[sortable]="false"
class="adf-image-table-cell "
class="adf-image-table-cell"
[class.adf-cell-thumbnail]="thumbnails">
</data-column>
<data-column
*ngIf="showNameColumn && hyperlinkNavigation"
key="name"
class="adf-ellipsis-cell"
title="{{'DOCUMENT_LIST.COLUMNS.DISPLAY_NAME' | translate}}"
[formatTooltip]="getNodeNameTooltip">
<ng-template let-context>
@@ -282,7 +283,7 @@
key="content.sizeInBytes"
title="{{'DOCUMENT_LIST.COLUMNS.SIZE' | translate}}"
type="fileSize"
class="adf-desktop-only">
class="adf-desktop-only adf-ellipsis-cell">
</data-column>
<data-column
*ngIf="searchTerm"
@@ -313,7 +314,7 @@
<data-column
title="{{'DOCUMENT_LIST.COLUMNS.IS_LOCKED' | translate}}"
key="id"
class="adf-desktop-only">
class="adf-desktop-only adf-ellipsis-cell">
<ng-template let-entry="$implicit">
<button mat-icon-button [adf-node-lock]="entry.row.node.entry" class="adf-lock-button">
<mat-icon *ngIf="entry.row.getValue('isLocked')">lock</mat-icon>
@@ -447,13 +448,13 @@
<div info-drawer-content>
<adf-info-drawer [title]="'Details'" *ngIf="documentList.selection[0]">
<adf-info-drawer-tab [label]="'Properties'">
<adf-info-drawer-tab label="Properties">
<adf-content-metadata-card
[node]="documentList.selection[0].entry"
[displayEmpty]="displayEmptyMetadata">
</adf-content-metadata-card>
</adf-info-drawer-tab>
<adf-info-drawer-tab [label]="'Versions'">
<adf-info-drawer-tab label="Versions">
<ng-container *ngIf="hasOneFileSelected();else choose_document_template">
<ng-container *ngIf="userHasPermissionToManageVersions(); else no_permission_to_versions">
<adf-version-manager
@@ -1,7 +1,4 @@
@mixin adf-file-component-theme($theme) {
$foreground: map-get($theme, foreground);
.adf-container {
margin: 10px !important;
}
@@ -24,26 +21,6 @@
color: #d50000;
}
.adf-not-overlay-viewer {
height: 900px;
}
adf-document-list ::ng-deep adf-datatable tr.adf-document-list__create {
background: green !important;
}
adf-document-list ::ng-deep adf-datatable tr.adf-document-list__disable {
background: red !important;
}
adf-document-list ::ng-deep .adf-datatable-selected > svg {
fill: #00bcd4 !important;
margin-top: -4px;
margin-left: -4px;
width: 32px;
height: 32px;
}
.adf-document-list-container {
min-height: 400px;
@@ -67,13 +44,6 @@
padding: 16px;
}
.adf-files-toolbar {
.adf-toolbar-title {
display: flex;
width: 100%;
}
}
.adf-manage-versions-sidebar {
width: 360px !important;
@@ -117,117 +87,4 @@
justify-content: center;
}
}
@media all {
.adf-isLocked-column {
max-width: 30px !important;
margin-right: 5px;
}
.adf-folder-image-column {
max-width: 28px!important;
}
}
@media (max-width: 768px) {
.adf-createdOn-column {
display: none !important;
}
}
@media (max-width: 500px) {
.adf-datatable-list {
.adf {
&-display-name-column {
max-width: 50% !important;
}
&-size-column {
display: none !important;
}
&-createdBy-column {
max-width: 45% !important;
}
&-nodeId-column {
display: none !important;
}
}
}
}
@media (max-width: 600px) {
.adf-datatable-list {
.adf {
&-display-name-column {
max-width: 35%;
}
&-size-column {
max-width: 8%;
}
&-createdBy-column {
max-width: 35%;
}
&-createdOn-column {
max-width: 15%;
}
&-nodeId-column {
max-width: 10%;
}
&-isLocked-column {
display: none!important;
}
&-standard-breadcrumb {
display: none !important;
}
}
}
}
@media (min-width: 601px) {
.adf-datatable-list {
.adf {
&-display-name-column {
max-width: 30%;
}
&-size-column {
max-width: 10%;
}
&-createdBy-column {
max-width: 30%;
}
&-createdOn-column {
max-width: 15%;
}
&-nodeId-column {
max-width: 12%;
}
&-alternate-breadcrumb {
display: none !important;
}
}
}
}
@media (min-width: 1400px) {
.adf-datatable-list {
.adf {
&-display-name-column {
max-width: 40%;
}
&-size-column {
max-width: 15%;
}
&-createdBy-column {
max-width: 20%;
}
&-createdOn-column {
max-width: 20%;
}
&-nodeId-column {
max-width: 20%;
}
}
}
}
}
@@ -28,7 +28,8 @@ import {
AlfrescoApiService, AuthenticationService, AppConfigService, AppConfigValues, ContentService, TranslationService,
FileUploadEvent, FolderCreatedEvent, LogService, NotificationService,
UploadService, DataColumn, DataRow, UserPreferencesService,
PaginationComponent, FormValues, DisplayMode, InfinitePaginationComponent, HighlightDirective
PaginationComponent, FormValues, DisplayMode, InfinitePaginationComponent, HighlightDirective,
SharedLinksApiService
} from '@alfresco/adf-core';
import {
@@ -36,16 +37,17 @@ import {
PermissionStyleModel,
UploadFilesEvent,
ConfirmDialogComponent,
LibraryDialogComponent
LibraryDialogComponent,
ContentMetadataService
} from '@alfresco/adf-content-services';
import { SelectAppsDialogComponent } from '@alfresco/adf-process-services';
import { VersionManagerDialogAdapterComponent } from './version-manager-dialog-adapter.component';
import { MetadataDialogAdapterComponent } from './metadata-dialog-adapter.component';
import { Subscription } from 'rxjs';
import { Subscription, Subject } from 'rxjs';
import { PreviewService } from '../../services/preview.service';
import { debounceTime } from 'rxjs/operators';
import { debounceTime, takeUntil } from 'rxjs/operators';
import { SearchEntry } from '@alfresco/js-api';
const DEFAULT_FOLDER_TO_SHOW = '-my-';
@@ -57,6 +59,8 @@ const DEFAULT_FOLDER_TO_SHOW = '-my-';
})
export class FilesComponent implements OnInit, OnChanges, OnDestroy {
protected onDestroy$ = new Subject<boolean>();
errorMessage: string = null;
nodeId: any;
showViewer = false;
@@ -213,7 +217,9 @@ export class FilesComponent implements OnInit, OnChanges, OnDestroy {
private preview: PreviewService,
@Optional() private route: ActivatedRoute,
public authenticationService: AuthenticationService,
public alfrescoApiService: AlfrescoApiService) {
public alfrescoApiService: AlfrescoApiService,
private contentMetadataService: ContentMetadataService,
private sharedLinksApiService: SharedLinksApiService) {
}
showFile(event) {
@@ -258,7 +264,6 @@ export class FilesComponent implements OnInit, OnChanges, OnDestroy {
});
}
// this.disableDragArea = false;
this.uploadService.fileUploadComplete.asObservable()
.pipe(debounceTime(300))
.subscribe((value) => this.onFileUploadEvent(value));
@@ -267,13 +272,25 @@ export class FilesComponent implements OnInit, OnChanges, OnDestroy {
this.onCreateFolder = this.contentService.folderCreate.subscribe((value) => this.onFolderAction(value));
this.onEditFolder = this.contentService.folderEdit.subscribe((value) => this.onFolderAction(value));
// this.permissionsStyle.push(new PermissionStyleModel('document-list__create', AllowableOperationsEnum.CREATE));
// this.permissionsStyle.push(new PermissionStyleModel('document-list__disable', AllowableOperationsEnum.NOT_CREATE, false, true));
this.contentMetadataService.error
.pipe(takeUntil(this.onDestroy$))
.subscribe((err: { message: string }) => {
this.notificationService.showError(err.message);
});
this.sharedLinksApiService.error
.pipe(takeUntil(this.onDestroy$))
.subscribe((err: { message: string }) => {
this.notificationService.showError(err.message);
});
}
ngOnDestroy() {
this.onCreateFolder.unsubscribe();
this.onEditFolder.unsubscribe();
this.onDestroy$.next(true);
this.onDestroy$.complete();
}
ngOnChanges(changes: SimpleChanges) {
@@ -16,9 +16,8 @@
*/
import { Component, Inject, OnInit } from '@angular/core';
import { FormModel, FormService, FormOutcomeEvent } from '@alfresco/adf-core';
import { FormModel, FormService, FormOutcomeEvent, CoreAutomationService } from '@alfresco/adf-core';
import { InMemoryFormService } from '../../services/in-memory-form.service';
import { DemoForm } from './demo-form';
import { FakeFormService } from './fake-form.service';
@Component({
@@ -37,7 +36,8 @@ export class FormLoadingComponent implements OnInit {
radioButtonFieldValue = '';
formattedData = {};
constructor(@Inject(FormService) private formService: InMemoryFormService) {
constructor(@Inject(FormService) private formService: InMemoryFormService,
private automationService: CoreAutomationService) {
formService.executeOutcome.subscribe((formOutcomeEvent: FormOutcomeEvent) => {
formOutcomeEvent.preventDefault();
});
@@ -45,7 +45,7 @@ export class FormLoadingComponent implements OnInit {
ngOnInit() {
this.formattedData = {};
const formDefinitionJSON: any = DemoForm.getSimpleFormDefinition();
const formDefinitionJSON: any = this.automationService.forms.getSimpleFormDefinition();
this.form = this.formService.parseForm(formDefinitionJSON);
}
@@ -16,9 +16,8 @@
*/
import { Component, Inject, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core';
import { FormModel, FormFieldModel, FormService, FormOutcomeEvent, NotificationService } from '@alfresco/adf-core';
import { FormModel, FormFieldModel, FormService, FormOutcomeEvent, NotificationService, CoreAutomationService } from '@alfresco/adf-core';
import { InMemoryFormService } from '../../services/in-memory-form.service';
import { DemoForm } from './demo-form';
import { Subscription } from 'rxjs';
@Component({
@@ -48,7 +47,8 @@ export class FormComponent implements OnInit, OnDestroy {
};
constructor(@Inject(FormService) private formService: InMemoryFormService,
private notificationService: NotificationService) {
private notificationService: NotificationService,
private automationService: CoreAutomationService) {
this.subscriptions.push(
formService.executeOutcome.subscribe((formOutcomeEvent: FormOutcomeEvent) => {
@@ -62,8 +62,7 @@ export class FormComponent implements OnInit, OnDestroy {
}
ngOnInit() {
const formDefinitionJSON: any = DemoForm.getDefinition();
this.formConfig = JSON.stringify(formDefinitionJSON);
this.formConfig = JSON.stringify(this.automationService.forms.getFormDefinition());
this.parseForm();
}
@@ -4,7 +4,6 @@
right: 10px;
top: 10px;
z-index: 1;
}
.adf-settings {
@@ -0,0 +1,41 @@
/*!
* @license
* Copyright 2019 Alfresco Software, Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { NgModule } from '@angular/core';
import { LoginComponent } from './login.component';
import { Routes, RouterModule } from '@angular/router';
import { CommonModule } from '@angular/common';
import { CoreModule } from '@alfresco/adf-core';
import { ContentModule } from '@alfresco/adf-content-services';
const routes: Routes = [
{
path: '',
component: LoginComponent
}
];
@NgModule({
imports: [
CommonModule,
CoreModule.forChild(),
RouterModule.forChild(routes),
ContentModule.forChild()
],
declarations: [LoginComponent]
})
export class AppLoginModule {}
@@ -65,4 +65,10 @@
{{snackBarConfigObject}}
</p>
</div>
<div>
<h3>Quick Messages</h3>
<button mat-button color="primary" (click)="quickInfo()">Info</button>
<button mat-button color="warn" (click)="quickError()">Error</button>
<button mat-button color="accent" (click)="quickWarning()">Warning</button>
</div>
</div>
@@ -117,4 +117,16 @@ export class NotificationsComponent implements OnInit {
dismissSnackBar() {
this.notificationService.dismissSnackMessageAction();
}
quickError() {
this.notificationService.showError(this.message, 'Fix');
}
quickInfo() {
this.notificationService.showInfo(this.message);
}
quickWarning() {
this.notificationService.showWarning(this.message, 'Undo');
}
}
@@ -20,6 +20,7 @@ import { NotificationsComponent } from './notifications.component';
import { Routes, RouterModule } from '@angular/router';
import { CommonModule } from '@angular/common';
import { CoreModule } from '@alfresco/adf-core';
import { MatButtonModule } from '@angular/material/button';
const routes: Routes = [
{
@@ -32,7 +33,8 @@ const routes: Routes = [
imports: [
CommonModule,
CoreModule.forChild(),
RouterModule.forChild(routes)
RouterModule.forChild(routes),
MatButtonModule
],
declarations: [NotificationsComponent]
})
@@ -1,5 +1,5 @@
<div id="attachment-process-list" *ngIf="processInstanceId">
<div class="adf-no-form-container">
<div>
<adf-upload-drag-area
[rootFolderId]="processInstanceId"
@@ -34,7 +34,7 @@
</mat-accordion>
</div>
<div class="adf-grid-item adf-tasks-list" fxFlex.gt-md="380px"
[ngClass.gt-md]="{'small-pagination': true}"
[ngClass.gt-md]="{'adf-small-pagination': true}"
*ngIf="taskFilter && !isStartTaskMode()">
<adf-tasklist
[appId]="taskFilter?.appId"
@@ -6,7 +6,6 @@
}
.adf-grid {
.adf-grid-item {
margin: 4px;
box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14),
@@ -19,10 +18,6 @@
margin-bottom: 24px;
}
.adf-list-buttons-start {
width: 100%;
}
.adf-tasks-list.adf-small-pagination,
.adf-processes-list.adf-small-pagination {
.adf-pagination {
@@ -31,10 +26,6 @@
padding-bottom: 24px;
padding-top: 8px;
&__block {
border-right: none;
}
&__range-block.adf-pagination__block:first-child {
order: 1;
width: 60%;
@@ -74,26 +65,6 @@
.adf-datatable-list {
border: none;
}
.adf-datatable tr,
.adf-datatable td {
height: 36px;
font-size: 14px;
}
.adf-datatable td {
padding-top: 0;
padding-bottom: 0;
border-bottom: none;
}
.adf-datatable th {
padding-top: 0;
padding-bottom: 0;
height: 40px;
vertical-align: middle;
font-size: 14px;
}
}
mat-slide-toggle {
@@ -108,7 +79,6 @@
}
.adf-accordion-panel {
.mat-expansion-panel {
background: inherit;
}
@@ -1,5 +1,5 @@
<div id="attachment-task-list" *ngIf="taskId">
<div class="adf-no-form-container">
<div>
<adf-upload-drag-area
[rootFolderId]="taskId">
@@ -1,5 +1,8 @@
<label for="nodeId"><b>{{'TAG.INSERT' | translate }}</b></label><br>
<input id="nodeId" type="text" size="48" [(ngModel)]="nodeId"><br>
<input id="nodeId" type="text" size="48" [(ngModel)]="nodeIdInput">
<button mat-raised-button id="adf-tag-node-send" (click)="onSubmit()" color="primary">Confirm</button>
<br>
<div fxLayout="row" fxLayout.lt-lg="column" fxLayoutAlign="stretch">
<div class="adf-tag-example-area" fxFlex.gt-md="1 1 auto">
<mat-card>
@@ -25,9 +25,14 @@ import { Component } from '@angular/core';
export class TagComponent {
nodeId = '';
nodeIdInput = '';
showDelete = true;
toggleDeleteButton() {
this.showDelete = !this.showDelete;
}
onSubmit() {
this.nodeId = this.nodeIdInput;
}
}
@@ -171,12 +171,12 @@
<data-column key="description" title="Description"></data-column>
<data-column key="created" title="Created">
<ng-template let-entry="$implicit">
<div>{{entry.row.obj.created | date:'MMM d, yyyy' }} </div>
<div>{{entry.row.obj.created | adfLocalizedDate: 'MMM d, yyyy' }} </div>
</ng-template>
</data-column>
<data-column key="dueDate" title="Due Date" type="date">
<ng-template let-entry="$implicit">
<div>{{entry.row.obj.dueDate | date:'MMM d, yyyy' }} </div>
<div>{{entry.row.obj.dueDate | adfLocalizedDate: 'MMM d, yyyy' }} </div>
</ng-template>
</data-column>
<data-column key="processInstanceId" title="Process Instance Id"></data-column>
@@ -22,6 +22,7 @@ import { debounceTime } from 'rxjs/operators';
import moment from 'moment-es6';
@Component({
selector: 'app-task-list-demo',
templateUrl: './task-list-demo.component.html',
styleUrls: [`./task-list-demo.component.scss`]
})
@@ -76,7 +76,8 @@
key="archivedAt"
title="DOCUMENT_LIST.COLUMNS.DELETED_ON">
<ng-template let-value="value">
<span title="{{ value | date:'medium' }}">{{ value | adfTimeAgo: currentLocale }}</span>
<span title="{{ value | adfLocalizedDate: 'medium' }}"
class="adf-datatable-cell-value">{{ value | adfTimeAgo: currentLocale }}</span>
</ng-template>
</data-column>
BIN
View File
Binary file not shown.
+12 -4
View File
@@ -34,7 +34,9 @@ A few other pages of information are also available:
version of ADF.
- The [Roadmap](roadmap.md)
contains a preview of features we hope to release in future versions of ADF.
- The [License info](license-info/license-info-v3.0.0.md) section lists the third-party
- The [License info](license-info/README.md) section lists the third-party libraries used by ADF along with links to their Open Source licenses.
- The [Vulnerability](vulnerability/README.md) section lists the third-party
libraries known vulnerability.
libraries used by ADF along with links to their Open Source licenses.
- The [Breaking changes](breaking-changes/breaking-change-2.6.0-3.0.0.md) section lists
all breaking changes between major versions, such as removal of deprecated items.
@@ -98,11 +100,13 @@ for more information about installing and using the source code.
| [Info drawer layout component](core/components/info-drawer-layout.component.md) | Displays a sidebar-style information panel. | [Source](../lib/core/info-drawer/info-drawer-layout.component.ts) |
| [Info Drawer Tab component](core/components/info-drawer-tab.component.md) | Renders tabs in a Info drawer component. | [Source](../lib/core/info-drawer/info-drawer.component.ts) |
| [Info Drawer component](core/components/info-drawer.component.md) | Displays a sidebar-style information panel with tabs. | [Source](../lib/core/info-drawer/info-drawer.component.ts) |
| [JsonCell component](core/components/json-cell.component.md) | Show Json formated value inside datatable component. | [Source](../lib/core/datatable/components/datatable/json-cell.component.ts) |
| [Json Cell component](core/components/json-cell.component.md) | Shows a JSON-formatted value inside a datatable component. | [Source](../lib/core/datatable/components/datatable/json-cell.component.ts) |
| [Language Menu component](core/components/language-menu.component.md) | Displays all the languages that are present in "app.config.json" and the default (EN). | [Source](../lib/core/language-menu/language-menu.component.ts) |
| [Login Dialog Panel component](core/components/login-dialog-panel.component.md) | Shows and manages a login dialog. | [Source](../lib/core/login/components/login-dialog-panel.component.ts) |
| [Login Dialog component](core/components/login-dialog.component.md) | Allows a user to perform a login via a dialog. | [Source](../lib/core/login/components/login-dialog.component.ts) |
| [Login component](core/components/login.component.md) | Authenticates to Alfresco Content Services and Alfresco Process Services. | [Source](../lib/core/login/components/login.component.ts) |
| [Notification History component](core/components/notification-history.component.md) ![Experimental](docassets/images/ExperimentalIcon.png) | This component is in the current status just an experimental component. | |
| The main purpose of the Notification history component is list all the notification received in the current session. They will disappear from the list after the refresh. | [Source](../lib/core/notification-history/notification-history.component.ts) | |
| [Pagination Component](core/components/pagination.component.md) | Adds pagination to the component it is used with. | [Source](../lib/core/pagination/pagination.component.ts) |
| [Sidebar action menu component](core/components/sidebar-action-menu.component.md) | Displays a sidebar-action menu information panel. | [Source](../lib/core/layout/components/sidebar-action/sidebar-action-menu.component.ts) |
| [Sidenav Layout component](core/components/sidenav-layout.component.md) | Displays the standard three-region ADF application layout. | [Source](../lib/core/layout/components/sidenav-layout/sidenav-layout.component.ts) |
@@ -157,12 +161,13 @@ for more information about installing and using the source code.
| [File Size pipe](core/pipes/file-size.pipe.md) | Converts a number of bytes to the equivalent in KB, MB, etc. | [Source](../lib/core/pipes/file-size.pipe.ts) |
| [Format Space pipe](core/pipes/format-space.pipe.md) | Replaces all the white space in a string with a supplied character. | [Source](../lib/core/pipes/format-space.pipe.ts) |
| [Full name pipe](core/pipes/full-name.pipe.md) | Joins the first and last name properties from a UserProcessModel object into a single string. | [Source](../lib/core/pipes/full-name.pipe.ts) |
| [Localized Date pipe](core/pipes/localized-date.pipe.md) | Converts a date to a given format and locale. | [Source](../lib/core/pipes/localized-date.pipe.ts) |
| [Mime Type Icon pipe](core/pipes/mime-type-icon.pipe.md) | Retrieves an icon to represent a MIME type. | [Source](../lib/core/pipes/mime-type-icon.pipe.ts) |
| [Multi Value Pipe](core/pipes/multi-value.pipe.md) | Takes an array of strings and turns it into one string where items are separated by a separator. The default separator applied to the list is the comma , however, you can set your own separator in the params of the pipe. | [Source](../lib/core/pipes/multi-value.pipe.ts) |
| [Node Name Tooltip pipe](core/pipes/node-name-tooltip.pipe.md) | Formats the tooltip for a Node. | [Source](../lib/core/pipes/node-name-tooltip.pipe.ts) |
| [Text Highlight pipe](core/pipes/text-highlight.pipe.md) | Adds highlighting to words or sections of text that match a search string. | [Source](../lib/core/pipes/text-highlight.pipe.ts) |
| [Time Ago pipe](core/pipes/time-ago.pipe.md) | Converts a recent past date into a number of days ago. | [Source](../lib/core/pipes/time-ago.pipe.ts) |
| [User Initial pipe](core/pipes/user-initial.pipe.md) | Takes the name fields of a UserProcessModel object and extracts and formats the initials. | [Source](../lib/core/pipes/user-initial.pipe.ts) |
| [Multi value pipe](core/pipes/multi-value.pipe.md) | Takes a list of values to stringify them with a custom separator. | [Source](../lib/core/pipes/multi-value.pipe.ts) |
### Services
@@ -251,7 +256,7 @@ for more information about installing and using the source code.
| [File Uploading Dialog Component](content-services/components/file-uploading-dialog.component.md) | Shows a dialog listing all the files uploaded with the Upload Button or Drag Area components. | [Source](../lib/content-services/upload/components/file-uploading-dialog.component.ts) |
| [Like component](content-services/components/like.component.md) | Allows a user to add "likes" to an item. | [Source](../lib/content-services/social/like.component.ts) |
| [Permission List Component](content-services/components/permission-list.component.md) | Shows node permissions as a table. | [Source](../lib/content-services/permission-manager/components/permission-list/permission-list.component.ts) |
| [Rating component](content-services/components/rating.component.md) | Allows a user to add ratings to an item. | [Source](../lib/content-services/social/rating.component.ts) |
| [Rating component](content-services/components/rating.component.md) | Allows a user to add and remove rating to an item. | [Source](../lib/content-services/social/rating.component.ts) |
| [Search check list component](content-services/components/search-check-list.component.md) | Implements a checklist widget for the Search Filter component. | [Source](../lib/content-services/search/components/search-check-list/search-check-list.component.ts) |
| [Search Chip List Component](content-services/components/search-chip-list.component.md) | Displays search criteria as a set of "chips". | [Source](../lib/content-services/search/components/search-chip-list/search-chip-list.component.ts) |
| [Search control component](content-services/components/search-control.component.md) | Displays a input text that shows find-as-you-type suggestions. | [Source](../lib/content-services/search/components/search-control.component.ts) |
@@ -408,7 +413,9 @@ for more information about installing and using the source code.
| [App List Cloud Component](process-services-cloud/components/app-list-cloud.component.md) ![Experimental](docassets/images/ExperimentalIcon.png) | Shows all deployed cloud application instances. | [Source](../lib/process-services-cloud/src/lib/app/components/app-list-cloud.component.ts) |
| [Edit Process Filter Cloud component](process-services-cloud/components/edit-process-filter-cloud.component.md) ![Experimental](docassets/images/ExperimentalIcon.png) | Shows/edits process filter details. | [Source](../lib/process-services-cloud/src/lib/process/process-filters/components/edit-process-filter-cloud.component.ts) |
| [Edit Task Filter Cloud component](process-services-cloud/components/edit-task-filter-cloud.component.md) ![Experimental](docassets/images/ExperimentalIcon.png) | Edits task filter details. | [Source](../lib/process-services-cloud/src/lib/task/task-filters/components/edit-task-filter-cloud.component.ts) |
| [Form cloud custom outcomes component](process-services-cloud/components/form-cloud-custom-outcome.component.md) | Supplies custom outcome buttons to be included in Form cloud component. | [Source](../lib/process-services-cloud/src/lib/form/components/form-cloud-custom-outcomes.component.ts) |
| [Form cloud component](process-services-cloud/components/form-cloud.component.md) | Shows a form from Process Services. | [Source](../lib/process-services-cloud/src/lib/form/components/form-cloud.component.ts) |
| [Form Definition Selector Cloud](process-services-cloud/components/form-definition-selector-cloud.component.md) | Allows one form to be selected. | [Source](../lib/process-services-cloud/src/lib/form/components/form-definition-selector-cloud.component.ts) |
| [Group Cloud component](process-services-cloud/components/group-cloud.component.md) ![Experimental](docassets/images/ExperimentalIcon.png) | Searches Groups. | [Source](../lib/process-services-cloud/src/lib/group/components/group-cloud.component.ts) |
| [People Cloud Component](process-services-cloud/components/people-cloud.component.md) ![Experimental](docassets/images/ExperimentalIcon.png) | Allows one or more users to be selected (with auto-suggestion) based on the input parameters. | [Source](../lib/process-services-cloud/src/lib/task/start-task/components/people-cloud/people-cloud.component.ts) |
| [Process Filters Cloud Component](process-services-cloud/components/process-filters-cloud.component.md) ![Experimental](docassets/images/ExperimentalIcon.png) | Lists all available process filters and allows to select a filter. | [Source](../lib/process-services-cloud/src/lib/process/process-filters/components/process-filters-cloud.component.ts) |
@@ -417,6 +424,7 @@ for more information about installing and using the source code.
| [Start Process Cloud Component](process-services-cloud/components/start-process-cloud.component.md) ![Experimental](docassets/images/ExperimentalIcon.png) | Starts a process. | [Source](../lib/process-services-cloud/src/lib/process/start-process/components/start-process-cloud.component.ts) |
| [Start Task Cloud Component](process-services-cloud/components/start-task-cloud.component.md) ![Experimental](docassets/images/ExperimentalIcon.png) | Creates/starts a new task for the specified app. | [Source](../lib/process-services-cloud/src/lib/task/start-task/components/start-task-cloud.component.ts) |
| [Task Filters Cloud component](process-services-cloud/components/task-filters-cloud.component.md) ![Experimental](docassets/images/ExperimentalIcon.png) | Shows all available filters. | [Source](../lib/process-services-cloud/src/lib/task/task-filters/components/task-filters-cloud.component.ts) |
| [Form cloud component](process-services-cloud/components/task-form-cloud.component.md) | Shows a form for a task. | [Source](../lib/process-services-cloud/src/lib/task/task-form/components/task-form-cloud.component.ts) |
| [Task Header Cloud Component](process-services-cloud/components/task-header-cloud.component.md) ![Experimental](docassets/images/ExperimentalIcon.png) | Shows all the information related to a task. | [Source](../lib/process-services-cloud/src/lib/task/task-header/components/task-header-cloud.component.ts) |
| [Task List Cloud component](process-services-cloud/components/task-list-cloud.component.md) ![Experimental](docassets/images/ExperimentalIcon.png) | Renders a list containing all the tasks matched by the parameters specified. | [Source](../lib/process-services-cloud/src/lib/task/task-list/components/task-list-cloud.component.ts) |
+1
View File
@@ -61,4 +61,5 @@
- compatibility.md: 'Version compatibility'
- release-notes: 'Release notes'
- upgrade-guide: 'Upgrade Guide'
- vulnerability: 'Vulnerability'
- license-info: 'License info'
+2 -2
View File
@@ -20,8 +20,8 @@ You can find further information about released versions of ADF in the
[version index](versionIndex.md) and the [release notes](release-notes/README.md).
| ADF version | Content Services | Process Services |
| -- | -- | -- |
| [3.2.0](versionIndex.md#v320) | **Full test:** v6.1.0 <br/> **Smoke test:** v5.2.4 | **Full test:** v7.1.0 (latest CI pipeline build), v1.9.0 <br/>**Smoke test:** v1.8.1 |
| --- | --- | --- |
| [3.2.0](versionIndex.md#v320) - [3.2.1](versionIndex.md#v321) | **Full test:** v6.1.0 <br/> **Smoke test:** v5.2.4 | **Full test:** v7.1.0 (latest CI pipeline build), v1.9.0 <br/>**Smoke test:** v1.8.1 |
| [3.1.0](versionIndex.md#v310) | **Full test:** v6.1.0 RC7 <br/> **Smoke test:** v5.2.4 | **Full test:** v2.0.0 (latest CI pipeline build), v1.9.0 <br/>**Smoke test:** v1.8.1 |
| [3.0.0](versionIndex.md#v300) | **Full test:** v6.1.0 RC7 <br/> **Smoke test:** v5.2.4 | **Full test:** v2.0.0 (latest CI pipeline build), v1.9.0 <br/>**Smoke test:** v1.8.1 |
| [2.6.0](versionIndex.md#v260) | **Full test:** v6.0.0, v5.2.4 <br/> **Smoke test:** v5.2.3 | **Full test:** v1.9.0 <br/>**Smoke test:** v1.8.1, v1.7.0, v1.6.4 |
@@ -36,7 +36,7 @@ Indicates the current position within a navigation hierarchy.
| Name | Type | Description |
| ---- | ---- | ----------- |
| navigate | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<any>` | Emitted when the user clicks on a breadcrumb. |
| navigate | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<`[`PathElement`](https://github.com/Alfresco/alfresco-js-api/blob/development/src/api/content-rest-api/docs/PathElement.md)`>` | Emitted when the user clicks on a breadcrumb. |
## Details
@@ -11,6 +11,18 @@ Displays and edits metadata related to a node.
![Content metadata screenshot](../../docassets/images/ContentMetadata.png)
## Contents
- [Basic Usage](#basic-usage)
- [Class members](#class-members)
- [Properties](#properties)
- [Details](#details)
- [Application config presets](#application-config-presets)
- [Layout oriented config](#layout-oriented-config)
- [Displaying all properties](#displaying-all-properties)
- [What happens when there is a whitelisted aspect in the config but the given node doesn't relate to that aspect](#what-happens-when-there-is-a-whitelisted-aspect-in-the-config-but-the-given-node-doesnt-relate-to-that-aspect)
- [Multi value card properties](#multi-value-card-properties)
## Basic Usage
```html
@@ -28,13 +40,13 @@ Displays and edits metadata related to a node.
| Name | Type | Default value | Description |
| ---- | ---- | ------------- | ----------- |
| displayAspect | `string` | null | (optional) This flag displays desired aspect when open for the first time fields. |
| displayEmpty | `boolean` | false | (optional) This flag displays/hides empty metadata fields. |
| multi | `boolean` | false | (optional) This flag allows the component to display more than one accordion at a time. |
| node | [`Node`](https://github.com/Alfresco/alfresco-js-api/blob/development/src/api/content-rest-api/docs/Node.md) | | (required) The node entity to fetch metadata about |
| preset | `string` | | (required) Name of the metadata preset, which defines aspects and their properties. |
| readOnly | `boolean` | false | (optional) This flag sets the metadata in read only mode preventing changes. |
| displayDefaultProperties | `boolean` | | (optional) This flag displays/hides the metadata properties. |
| displayAspect | `string` | | (optional) This flag displays the desired metadata property in the expanded card |
## Details
@@ -217,7 +229,6 @@ The result of this config would be two accordion groups with the following prope
| kitten:favourite-food |
| kitten:recommended-food |
### Displaying all properties
You can list all the properties by simply adding the `includeAll: boolean` to your config. This config will display all the aspects and properties available for that specific file.
@@ -277,6 +288,7 @@ Nothing - since this aspect is not related to the node, it will simply be ignore
displayed. The aspects to be displayed are calculated as an intersection of the preset's aspects and the aspects related to the node.
## Multi value card properties
Multi value properties are displayed one after another separated by a comma. This card makes use of the [Multi Value Pipe](../../core/pipes/multi-value.pipe.ts).
To customize the separator used by this card you can set it in your `app.config.json` inside your content-metadata configuration:
@@ -34,12 +34,12 @@ Opens a [Content Node Selector](content-node-selector.component.md) in its own
| currentFolderId | `string` | null | [Node](https://github.com/Alfresco/alfresco-js-api/blob/development/src/api/content-rest-api/docs/Node.md) ID of the folder currently listed. |
| dropdownHideMyFiles | `boolean` | false | Hide the "My Files" option added to the site list by default. See the [Sites Dropdown component](sites-dropdown.component.md) for more information. |
| dropdownSiteList | [`SitePaging`](https://github.com/Alfresco/alfresco-js-api/blob/master/src/alfresco-core-rest-api/docs/SitePaging.md) | null | Custom site for site dropdown. This is the same as the `siteList`. property of the Sites Dropdown component (see its doc page for more information). |
| imageResolver | [`ImageResolver`](../../../lib/content-services/document-list/data/image-resolver.model.ts) | null | Custom image resolver function. See the [Image Resolver Model](../models/image-resolver.model.md) page for more information. |
| imageResolver | [`ImageResolver`](../../../lib/content-services/document-list/data/image-resolver.model.ts) | null | Custom image resolver function. See the [Image Resolver Model](image-resolver.model.md) page for more information. |
| isSelectionValid | [`ValidationFunction`](../../../lib/content-services/content-node-selector/content-node-selector-panel.component.ts) | defaultValidation | Function used to decide if the selected node has permission to be selected. Default value is a function that always returns true. |
| pageSize | `number` | | Number of items shown per page in the list. |
| where | `string` | | Custom _where_ filter function. See the [Document List component](../../content-services/components/document-list.component.md) for more information. |
| excludeSiteContent | `string[]` | | Custom list of site content componentIds. Used to filter out the corresponding items from the displayed nodes |
| rowFilter | [`RowFilter`](../../../lib/content-services/document-list/data/row-filter.model.ts) | | Custom row filter function. See the [Row Filter Model](../models/row-filter.model.md) page for more information. |
| rowFilter | [`RowFilter`](../../../lib/content-services/document-list/data/row-filter.model.ts) | | Custom row filter function. See the [Row Filter Model](row-filter.model.md) page for more information. |
### Events
@@ -62,7 +62,7 @@ Displays the documents from a repository.
| contextMenuActions | `boolean` | false | Toggles context menus for each row |
| display | `string` | DisplayMode.List | Change the display mode of the table. Can be "list" or "gallery". |
| emptyFolderImageUrl | `string` | | Custom image for empty folder. Default value: './assets/images/empty_doc_lib.svg' |
| imageResolver | `any \| null` | null | Custom function to choose image file paths to show. See the [Image Resolver Model](../models/image-resolver.model.md) page for more information. |
| imageResolver | `any \| null` | null | Custom function to choose image file paths to show. See the [Image Resolver Model](image-resolver.model.md) page for more information. |
| includeFields | `string[]` | | Include additional information about the node in the server request. For example: association, isLink, isLocked and others. |
| loading | `boolean` | false | Toggles the loading state and animated spinners for the component. Used in combination with `navigate=false` to perform custom navigation and loading state indication. |
| locationFormat | `string` | "/" | The default route for all the location-based columns (if declared). |
@@ -82,7 +82,7 @@ Displays the documents from a repository.
| thumbnails | `boolean` | false | Show document thumbnails rather than icons |
| where | `string` | | Filters the [`Node`](https://github.com/Alfresco/alfresco-js-api/blob/development/src/api/content-rest-api/docs/Node.md) list using the _where_ condition of the REST API (for example, isFolder=true). See the REST API documentation for more information. |
| currentFolderId | `string` | | The ID of the folder node to display or a reserved string alias for special sources |
| rowFilter | [`RowFilter`](../../../lib/content-services/document-list/data/row-filter.model.ts) | | Custom function to choose whether to show or hide rows. See the [Row Filter Model](../models/row-filter.model.md) page for more information. |
| rowFilter | [`RowFilter`](../../../lib/content-services/document-list/data/row-filter.model.ts) | | Custom function to choose whether to show or hide rows. See the [Row Filter Model](row-filter.model.md) page for more information. |
### Events
@@ -37,7 +37,7 @@ Indicates the current position within a navigation hierarchy using a dropdown me
| Name | Type | Description |
| ---- | ---- | ----------- |
| navigate | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<any>` | Emitted when the user clicks on a breadcrumb. |
| navigate | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<`[`PathElement`](https://github.com/Alfresco/alfresco-js-api/blob/development/src/api/content-rest-api/docs/PathElement.md)`>` | Emitted when the user clicks on a breadcrumb. |
## Details
@@ -7,10 +7,19 @@ Last reviewed: 2019-01-14
# [Rating component](../../../lib/content-services/social/rating.component.ts "Defined in rating.component.ts")
Allows a user to add ratings to an item.
Allows a user to add and remove rating to an item.
It displays the average rating and the number of ratings. If the user has not rated the item the average rating stars color is grey.
![Rating component screenshot](../../docassets/images/social3.png)
If the user has rated the item the average rating stars color is yellow.
![Rating component screenshot](../../docassets/images/social2.png)
In order to remove the rating the user should click on the same star that he rated.
If the average is decimal number it will be rounded.
## Basic Usage
```html
@@ -19,8 +19,8 @@ Represents a main container component for custom search and faceted search setti
- [Categories and widgets](#categories-and-widgets)
- [Facet Fields](#facet-fields)
- [Facet Queries](#facet-queries)
- [Highlight](#highlight)
- [Facet Intervals](#facet-intervals)
- [Highlight](#highlight)
- [See also](#see-also)
## Basic usage
@@ -451,7 +451,6 @@ An example query for search highlighting could look like this:
}
}
}
```
The example above changes the highlighting prefix and postfix from the default to '¿?' for all
@@ -479,7 +478,8 @@ then be added in each node entry response. An example partial response is shown
}
]
},
```
```
## See also
- [Search Query Builder service](../services/search-query-builder.service.md)
@@ -67,3 +67,17 @@ and passes it to a [Viewer component](../../core/components/viewer.component.md)
[allowGoBack]="false">
</adf-viewer>
```
## Date and time widget
Date and time widget for setting the expiration date can be configured to show only the date picker or both date and time piker.
By default, the widget will show both date and time picker if `sharedLinkDateTimePickerType` is not present in the app.config.json.
Possible values are `'date'` or `'datetime'`
```json
{
...
"sharedLinkDateTimePickerType": 'date'
...
}
```
@@ -36,7 +36,7 @@ export interface SearchWidget {
| ---- | ---- | ------------- | ----------- |
| id | `string` | | Unique identifying value for the widget |
| settings | [`SearchWidgetSettings`](../../../lib/content-services/search/search-widget-settings.interface.ts) | | Settings for component properties |
| context | [`SearchQueryBuilderService`](../services/search-query-builder.service.md) | | Instance of the [Search Query Builder service](../services/search-query-builder.service.md) to process the query |
| context | [`SearchQueryBuilderService`](../../content-services/services/search-query-builder.service.md) | | Instance of the [Search Query Builder service](../services/search-query-builder.service.md) to process the query |
## Details
@@ -11,7 +11,7 @@ Defines the Image Resolver function used by the [Document List Component](../com
## Definitions
- `type` **ImageResolver** = (row: [`DataRow`](../../../lib/core/datatable/data/data-row.model.ts), column: [`DataColumn`](../../../lib/core/datatable/data/data-column.model.ts)) => `string`
- `type` **[`ImageResolver`](../../../lib/content-services/document-list/data/image-resolver.model.ts)** = (row: [`DataRow`](../../../lib/core/datatable/data/data-row.model.ts), column: [`DataColumn`](../../../lib/core/datatable/data/data-column.model.ts)) => `string`
- _row:_ [`DataRow`](../../../lib/core/datatable/data/data-row.model.ts) - Data that defines the row
- _column:_ [`DataColumn`](../../../lib/core/datatable/data/data-column.model.ts) - Data that defines the column
- **Returns** File path for the image
@@ -49,7 +49,7 @@ this.permissionsStyle.push(new PermissionStyleModel('document-list__create', All
```
```css
adf-document-list ::ng-deep adf-datatable tr.document-list__create {
adf-document-list adf-datatable .document-list__create {
background: green !important;
}
```
@@ -68,7 +68,7 @@ this.permissionsStyle.push(new PermissionStyleModel('document-list__disable', Al
```
```css
adf-document-list ::ng-deep adf-datatable tr.document-list__disable {
adf-document-list adf-datatable .document-list__disable {
background: red !important;
}
```
@@ -11,7 +11,7 @@ Defines the Row Filter function used by the [Document List Component](../compone
## Definitions
- `type` **RowFilter** = (value: [`ShareDataRow`](../../../lib/content-services/document-list/data/share-data-row.model.ts), index: `number`, array: [`ShareDataRow`](../../../lib/content-services/document-list/data/share-data-row.model.ts)`[]`) => any
- `type` **[`RowFilter`](../../../lib/content-services/document-list/data/row-filter.model.ts)** = (value: [`ShareDataRow`](../../../lib/content-services/document-list/data/share-data-row.model.ts), index: `number`, array: [`ShareDataRow`](../../../lib/content-services/document-list/data/share-data-row.model.ts)`[]`) => any
- _value:_ [`ShareDataRow`](../../../lib/content-services/document-list/data/share-data-row.model.ts) - Data that defines the row
- _index:_ `number` - Index of the row within the list
- _array:_ [`ShareDataRow`](../../../lib/content-services/document-list/data/share-data-row.model.ts)`[]` - The full set of rows for the list
@@ -23,10 +23,11 @@ Manages Document List information that is specific to a user.
- _node:_ `any` - [Node](https://github.com/Alfresco/alfresco-js-api/blob/development/src/api/content-rest-api/docs/Node.md) object
- _nodeId:_ `string` - ID of the node object
- **Returns** `string` - ID value
- **getRecentFiles**(personId: `string`, pagination: [`PaginationModel`](../../../lib/core/models/pagination.model.ts)): [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`NodePaging`](https://github.com/Alfresco/alfresco-js-api/blob/development/src/api/content-rest-api/docs/NodePaging.md)`>`<br/>
- **getRecentFiles**(personId: `string`, pagination: [`PaginationModel`](../../../lib/core/models/pagination.model.ts), filters?: `string[]`): [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`NodePaging`](https://github.com/Alfresco/alfresco-js-api/blob/development/src/api/content-rest-api/docs/NodePaging.md)`>`<br/>
Gets files recently accessed by a user.
- _personId:_ `string` - ID of the user
- _pagination:_ [`PaginationModel`](../../../lib/core/models/pagination.model.ts) - Specifies how to paginate the results
- _filters:_ `string[]` - (Optional) Specifies additional filters to apply (joined with **AND**)
- **Returns** [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`NodePaging`](https://github.com/Alfresco/alfresco-js-api/blob/development/src/api/content-rest-api/docs/NodePaging.md)`>` - List of nodes for the recently used files
- **hasCorrespondingNodeIds**(nodeId: `string`): `boolean`<br/>
Does the well-known alias have a corresponding node ID?
@@ -17,14 +17,14 @@ Implements the document menu actions for the [Document List component](../compon
Checks if actions can be executed for an item.
- _nodeEntry:_ [`NodeEntry`](https://github.com/Alfresco/alfresco-js-api/blob/master/src/alfresco-core-rest-api/docs/NodeEntry.md) - Item to receive an action
- **Returns** `boolean` - True if the action can be executed on this item, false otherwise
- **getHandler**(key: `string`): `ContentActionHandler`<br/>
- **getHandler**(key: `string`): [`ContentActionHandler`](../../../lib/content-services/document-list/models/content-action.model.ts)<br/>
Gets the handler for an action.
- _key:_ `string` - Identifier of the action
- **Returns** `ContentActionHandler` - The handler for the action
- **setHandler**(key: `string`, handler: `ContentActionHandler`): `boolean`<br/>
- **Returns** [`ContentActionHandler`](../../../lib/content-services/document-list/models/content-action.model.ts) - The handler for the action
- **setHandler**(key: `string`, handler: [`ContentActionHandler`](../../../lib/content-services/document-list/models/content-action.model.ts)): `boolean`<br/>
Sets a new handler for an action.
- _key:_ `string` - Identifier of the action
- _handler:_ `ContentActionHandler` - Handler for the action
- _handler:_ [`ContentActionHandler`](../../../lib/content-services/document-list/models/content-action.model.ts) - Handler for the action
- **Returns** `boolean` - False if the key was an empty/null string, true otherwise
## Details
@@ -13,22 +13,15 @@ Implements node operations used by the [Document List component](../components/d
### Methods
- **copyNode**(nodeId: `string`, targetParentId: `string`): `any`<br/>
- **copyNode**(nodeId: `string`, targetParentId: `string`): [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`NodeEntry`](https://github.com/Alfresco/alfresco-js-api/blob/master/src/alfresco-core-rest-api/docs/NodeEntry.md)`>`<br/>
Copy a node to destination node
- _nodeId:_ `string` - The id of the node to be copied
- _targetParentId:_ `string` - The id of the folder where the node will be copied
- **Returns** `any` - [NodeEntry](https://github.com/Alfresco/alfresco-js-api/blob/master/src/alfresco-core-rest-api/docs/NodeEntry.md) for the copied node
- **Returns** [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`NodeEntry`](https://github.com/Alfresco/alfresco-js-api/blob/master/src/alfresco-core-rest-api/docs/NodeEntry.md)`>` - NodeEntry for the copied node
- **deleteNode**(nodeId: `string`): [`Observable`](http://reactivex.io/documentation/observable.html)`<any>`<br/>
Deletes a node.
- _nodeId:_ `string` - ID of the node to delete
- **Returns** [`Observable`](http://reactivex.io/documentation/observable.html)`<any>` - Empty response when the operation is complete
- **getDefaultMimeTypeIcon**(): `string`<br/>
Gets a default icon for MIME types with no specific icon.
- **Returns** `string` - Path to the icon file
- **getDocumentThumbnailUrl**(node: [`NodeEntry`](https://github.com/Alfresco/alfresco-js-api/blob/master/src/alfresco-core-rest-api/docs/NodeEntry.md)): `string`<br/>
Get thumbnail URL for the given document node.
- _node:_ [`NodeEntry`](https://github.com/Alfresco/alfresco-js-api/blob/master/src/alfresco-core-rest-api/docs/NodeEntry.md) - [Node](https://github.com/Alfresco/alfresco-js-api/blob/development/src/api/content-rest-api/docs/Node.md) to get URL for.
- **Returns** `string` - Thumbnail URL string
- **getFolder**(folder: `string`, opts?: `any`, includeFields: `string[]` = `[]`): [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`NodePaging`](https://github.com/Alfresco/alfresco-js-api/blob/development/src/api/content-rest-api/docs/NodePaging.md)`>`<br/>
Gets the folder node with the specified relative name path below the root node.
- _folder:_ `string` - Path to folder.
@@ -40,20 +33,29 @@ Implements node operations used by the [Document List component](../components/d
- _nodeId:_ `string` - ID of the folder node
- _includeFields:_ `string[]` - Extra information to include (available options are "aspectNames", "isLink" and "association")
- **Returns** [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`NodeEntry`](https://github.com/Alfresco/alfresco-js-api/blob/master/src/alfresco-core-rest-api/docs/NodeEntry.md)`>` - Details of the folder
- **getMimeTypeIcon**(mimeType: `string`): `string`<br/>
Gets the icon that represents a MIME type.
- _mimeType:_ `string` - MIME type to get the icon for
- **Returns** `string` - Path to the icon file
- **getNode**(nodeId: `string`, includeFields: `string[]` = `[]`): [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`NodeEntry`](https://github.com/Alfresco/alfresco-js-api/blob/master/src/alfresco-core-rest-api/docs/NodeEntry.md)`>`<br/>
Gets a node via its node ID.
- _nodeId:_ `string` - ID of the target node
- _includeFields:_ `string[]` - Extra information to include (available options are "aspectNames", "isLink" and "association")
- **Returns** [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`NodeEntry`](https://github.com/Alfresco/alfresco-js-api/blob/master/src/alfresco-core-rest-api/docs/NodeEntry.md)`>` - Details of the folder
- **moveNode**(nodeId: `string`, targetParentId: `string`): `any`<br/>
- **isCustomSourceService**(nodeId: `any`): `boolean`<br/>
- _nodeId:_ `any` -
- **Returns** `boolean` -
- **loadFolderByNodeId**(nodeId: `string`, pagination: [`PaginationModel`](../../../lib/core/models/pagination.model.ts), includeFields: `string[]`, where?: `string`): [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`DocumentLoaderNode`](../../../lib/content-services/document-list/models/document-folder.model.ts)`>`<br/>
- _nodeId:_ `string` -
- _pagination:_ [`PaginationModel`](../../../lib/core/models/pagination.model.ts) -
- _includeFields:_ `string[]` -
- _where:_ `string` - (Optional)
- **Returns** [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`DocumentLoaderNode`](../../../lib/content-services/document-list/models/document-folder.model.ts)`>` -
- **moveNode**(nodeId: `string`, targetParentId: `string`): [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`NodeEntry`](https://github.com/Alfresco/alfresco-js-api/blob/master/src/alfresco-core-rest-api/docs/NodeEntry.md)`>`<br/>
Moves a node to destination node.
- _nodeId:_ `string` - The id of the node to be moved
- _targetParentId:_ `string` - The id of the folder where the node will be moved
- **Returns** `any` - [NodeEntry](https://github.com/Alfresco/alfresco-js-api/blob/master/src/alfresco-core-rest-api/docs/NodeEntry.md) for the moved node
- **Returns** [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`NodeEntry`](https://github.com/Alfresco/alfresco-js-api/blob/master/src/alfresco-core-rest-api/docs/NodeEntry.md)`>` - NodeEntry for the moved node
## Details
@@ -17,14 +17,14 @@ Implements the folder menu actions for the [Document List component](../componen
Checks if an action is available for a particular item.
- _nodeEntry:_ [`NodeEntry`](https://github.com/Alfresco/alfresco-js-api/blob/master/src/alfresco-core-rest-api/docs/NodeEntry.md) - Item to check
- **Returns** `boolean` - True if the action is available, false otherwise
- **getHandler**(key: `string`): `ContentActionHandler`<br/>
- **getHandler**(key: `string`): [`ContentActionHandler`](../../../lib/content-services/document-list/models/content-action.model.ts)<br/>
Gets the handler function for an action.
- _key:_ `string` - Identifier for the action
- **Returns** `ContentActionHandler` - The handler function
- **setHandler**(key: `string`, handler: `ContentActionHandler`): `boolean`<br/>
- **Returns** [`ContentActionHandler`](../../../lib/content-services/document-list/models/content-action.model.ts) - The handler function
- **setHandler**(key: `string`, handler: [`ContentActionHandler`](../../../lib/content-services/document-list/models/content-action.model.ts)): `boolean`<br/>
Sets a new handler function for an action.
- _key:_ `string` - Identifier for the action
- _handler:_ `ContentActionHandler` - The new handler function
- _handler:_ [`ContentActionHandler`](../../../lib/content-services/document-list/models/content-action.model.ts) - The new handler function
- **Returns** `boolean` - True if the key was a valid action identifier, false otherwise
## Details
@@ -11,14 +11,6 @@ Stores information from all the custom search and faceted search widgets, compil
## Class members
### Events
| Name | Type | Details |
| --- | --- | --- |
| updated | QueryBody | Raised when query gets updated but before query is executed |
| executed | ResultSetPaging | Raised when query gets executed and results are available |
| error | any | Raised when search api emits internal error |
### Methods
- **addFilterQuery**(query: `string`)<br/>
@@ -20,7 +20,7 @@ Defines column properties for DataTable, Tasklist, Document List and other compo
- [Custom tooltips](#custom-tooltips)
- [Column Template](#column-template)
- [Styling Techniques](#styling-techniques)
- [Using the `copyContent` option](#using-the-copycontent-option)
- [Using the copyContent option](#using-the-copycontent-option)
- [See also](#see-also)
## Basic Usage
@@ -303,7 +303,7 @@ Now you can declare columns and assign the `desktop-only` class where needed:
### Using the `copyContent` option
When the `copyContent` property is true, a
Clipboard directive
[Clipboard directive](../../core/directives/clipboard.directive.md)
is added to each cell in the column. This lets the user copy the cell content
to the clipboard with a mouse click.
@@ -328,6 +328,7 @@ HTML `<data-column>` element example:
</data-columns>
</adf-tasklist>
```
## See also
- [Document list component](../../content-services/components/document-list.component.md)
+1 -1
View File
@@ -311,7 +311,7 @@ while the data for the table is loading:
}
```
###Styling transcluded content
\###Styling transcluded content
When adding your custom templates you can style them as you like. However, for an out of the box experience, if you want to apply datatable styles to your column you will need to follow this structure:
@@ -23,7 +23,7 @@ this.router.navigate(['/error', errorCode]);
| Name | Type | Default value | Description |
| ---- | ---- | ------------- | ----------- |
| errorCode | `string` | "UNKNOWN" | Error code associated with this error. |
| errorCode | `string` | | Error code associated with this error. |
| returnButtonUrl | `string` | "/" | Target URL for the return button. |
| secondaryButtonUrl | `string` | "report-issue" | Target URL for the secondary button. |
+2 -2
View File
@@ -38,8 +38,8 @@ uses `<adf-form-field>` components to render the form fields.
Forms defined in APS have the following default mappings for the form fields:
| _APS [Form](../../../lib/process-services/task-list/models/form.model.ts) Designer_ Widget | Field Type | Component Type |
| ------------------------------------------------------------------------------------------ | ---------- | -------------- |
| _APS [`Form`](../../../lib/process-services/task-list/models/form.model.ts) Designer_ Widget | Field Type | Component Type |
| -------------------------------------------------------------------------------------------- | ---------- | -------------- |
| Text | text | [`TextWidgetComponent`](../../../lib/core/form/components/widgets/text/text.widget.ts) |
| Multi-line text | multi-line-text | [`MultilineTextWidgetComponentComponent`](../../../lib/core/form/components/widgets/multiline-text/multiline-text.widget.ts) |
| Number | integer | [`NumberWidgetComponent`](../../../lib/core/form/components/widgets/number/number.widget.ts) |
@@ -40,7 +40,7 @@ Adds "infinite" pagination to the component it is used with.
| ---- | ---- | ------------- | ----------- |
| isLoading | `boolean` | false | Is a new page loading? |
| pageSize | `number` | | Number of items that are added with each "load more" event. |
| target | | | Component that provides custom pagination support. |
| target | [`PaginatedComponent`](../../../lib/core/pagination/paginated-component.interface.ts) | | Component that provides custom pagination support. |
### Events
@@ -56,7 +56,7 @@ You can also combine `icon` and `label` properties.
| Name | Type | Default value | Description |
| ---- | ---- | ------------- | ----------- |
| icon | `string` | null | Icon to render for the tab. |
| label | `string` | "" | The title of the tab. |
| label | `string` | "" | The title of the tab (string or translation key). |
## Details
@@ -50,7 +50,7 @@ have any content you like:
| Name | Type | Default value | Description |
| ---- | ---- | ------------- | ----------- |
| selectedIndex | `number` | 0 | The selected index tab. |
| title | `string \| null` | null | The title of the info drawer. |
| title | `string \| null` | null | The title of the info drawer (string or translation key). |
### Events
@@ -51,6 +51,17 @@ The component fetches the list of available languages from `app.config.json`:
]
```
For languages that need RTL orientation, `direction` property must be declared. Default is `ltr`.
```json
{
"key": "...",
"label": "...",
"direction": "rtl"
},
```
If no `languages` setting is provided, the component shows only the English language.
### Nested Menu language
@@ -0,0 +1,28 @@
---
Title: Notification History component
Added: v3.3.0
Status: Experimental
Last reviewed: 2019-06-05
---
# [Notification History component](../../../lib/core/notification-history/notification-history.component.ts "Defined in notification-history.component.ts")
This component is in the current status just an experimental component.
The main purpose of the [Notification history component](../../core/components/notification-history.component.md) is list all the notification received in the current session. They will disappear from the list after the refresh.
![Notification history component](../../docassets/notification-history-component.png)
## Basic Usage
```html
<adf-notification-history [menuPositionX]="'before'" [menuPositionY]="'above'"></adf-notification-history>
```
## Class members
### Properties
| Name | Type | Default value | Description |
| ---- | ---- | ------------- | ----------- |
| menuPositionX | `string` | "after" | Custom choice for opening the menu at the bottom. Can be `before` or `after`. |
| menuPositionY | `string` | "below" | Custom choice for opening the menu at the bottom. Can be `above` or `below`. |
@@ -75,7 +75,6 @@ sub-components (note the use of `<ng-template>` in the sub-components' body sect
| sidenavMax | `number` | | Maximum size of the navigation region. |
| sidenavMin | `number` | | Minimum size of the navigation region. |
| stepOver | `number` | | Screen size at which display switches from small screen to large screen configuration. |
| direction | `string` | `ltr` | The direction of the layout. 'ltr' or 'rtl' |
### Events
+3 -3
View File
@@ -5,7 +5,7 @@ Status: Active
Last reviewed: 2018-06-08
---
# [Start Form component](../../../lib/core/form/components/start-form.component.ts "Defined in start-form.component.ts")
# [Start Form component](../../../lib/process-services/form/start-form.component.ts "Defined in start-form.component.ts")
Displays the Start [`Form`](../../../lib/process-services/task-list/models/form.model.ts) for a process.
@@ -28,8 +28,9 @@ Displays the Start [`Form`](../../../lib/process-services/task-list/models/form.
| ---- | ---- | ------------- | ----------- |
| data | [`FormValues`](../../../lib/core/form/components/widgets/core/form-values.ts) | | Custom form values map to be used with the rendered form. |
| disableCompleteButton | `boolean` | false | If true then the `Complete` outcome button is shown but it will be disabled. |
| disableSaveButton | `boolean` | false | If true then the `Save` outcome button is shown but will be disabled. |
| disableStartProcessButton | `boolean` | false | If true then the `Start Process` outcome button is shown but it will be disabled. |
| fieldValidators | [`FormFieldValidator`](../../../lib/core/form/components/widgets/core/form-field-validator.ts)`[]` | \[] | Contains a list of form field validator instances. |
| fieldValidators | [`FormFieldValidator`](../../../lib/core/form/components/widgets/core/form-field-validator.ts)`[]` | | Contains a list of form field validator instances. |
| form | [`FormModel`](../../../lib/core/form/components/widgets/core/form.model.ts) | | Underlying [form model](../../../lib/core/form/components/widgets/core/form.model.ts) instance. |
| formId | `number` | | 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. |
@@ -42,7 +43,6 @@ Displays the Start [`Form`](../../../lib/process-services/task-list/models/form.
| readOnlyForm | `boolean` | false | Is the form read-only (ie, can't be edited)? |
| saveMetadata | `boolean` | false | Toggle saving of form metadata. |
| showCompleteButton | `boolean` | true | Toggle rendering of the `Complete` outcome button. |
| showDebugButton | `boolean` | false | Toggle debug options. |
| showOutcomeButtons | `boolean` | true | Should form outcome buttons be shown? |
| showRefreshButton | `boolean` | true | Should the refresh button be shown? |
| showSaveButton | `boolean` | true | Toggle rendering of the `Save` outcome button. |
+2 -2
View File
@@ -24,7 +24,7 @@ See it live: [Viewer Quickstart](https://embed.plnkr.co/iTuG1lFIXfsP95l6bDW6/)
- [Custom file parameters](#custom-file-parameters)
- [Supported file formats](#supported-file-formats)
- [Content Renditions](#content-renditions)
- [Configuring PDF.js library](#configuring-pdf-js-library)
- [Configuring PDF.js library](#configuring-pdfjs-library)
- [Extending the Viewer](#extending-the-viewer)
- [Custom layout](#custom-layout)
- [Printing](#printing)
@@ -475,7 +475,7 @@ Note: For the pdf viewer the value has to be within the range of 25 - 1000.
"adf-viewer": {
"pdf-viewer-scaling": 150
}
In the same way you can set a default zoom scaling value for the image viewer by adding the following code in `app.config.json`.
"adf-viewer": {
+2 -2
View File
@@ -27,8 +27,8 @@ Copies text to the clipboard.
| Name | Type | Default value | Description |
| ---- | ---- | ------------- | ----------- |
| adf-clipboard | `string` | | Translation key or message for the tooltip. |
| clipboard-notification | `string` | | Translation key or message for snackbar notification. |
| message | `string` | | Translation key or message for snackbar notification. |
| placeholder | `string` | | Translation key or message for the tooltip. |
| target | [`HTMLInputElement`](https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement)` \| `[`HTMLTextAreaElement`](https://developer.mozilla.org/en-US/docs/Web/API/HTMLTextAreaElement) | | Reference to the HTML element containing the text to copy. |
## Details
+34
View File
@@ -0,0 +1,34 @@
---
Title: Localized Date pipe
Added: v3.3.0
Status: Active
---
# [Localized Date pipe](../../../lib/core/pipes/localized-date.pipe.ts "Defined in localized-date.pipe.ts")
Converts a date to a given format and locale.
## Basic Usage
<!-- {% raw %} -->
```HTML
<div>
Created date: {{ date | adfLocalizedDate }}
</div>
```
<!-- {% endraw %} -->
### Properties
| Name | Type | Default value | Description |
| ---- | ---- | ------------- | ----------- |
| format | string | 'medium' | A format to apply to the date value. [Date Pipe Formats.](https://angular.io/api/common/DatePipe#custom-format-options) |
| locale | string | 'en-US' | A locale id for the locale format rules to use. |
## Details
The pipe takes a date and formats it and localizes it so the date is displayed in the proper format for the region. It uses the [Angular Date Pipe](https://angular.io/api/common/DatePipe#custom-format-options) so all the pre-defined and custom formats can be used.
When localizing a date, you will need to add the specific locale file for your region in order to use it. Read more about internationalization [here](https://angular.io/guide/i18n#i18n-pipes).
+7 -1
View File
@@ -1,6 +1,12 @@
---
Title: Multi Value Pipe
Added: v3.2.0
Status: Active
---
# [Multi Value Pipe](../../../lib/core/pipes/multi-value.pipe.ts "Defined in multi-value.pipe.ts")
Takes an array of strings and turns it into one string where items are separated by a separator. The default separator applied to the list is `', '`, however, you can set your own separator in the params of the pipe.
Takes an array of strings and turns it into one string where items are separated by a separator. The default separator applied to the list is the comma ```, ``` however, you can set your own separator in the params of the pipe.
## Basic Usage

Some files were not shown because too many files have changed in this diff Show More