Compare commits

...
182 Commits
Author SHA1 Message Date
cristinaj 5c5bb7f9b7 [ADF-4576]Add new tests for application cloud component (#4873)
* Add a new test

* Revert file

* Fix lint errors

* Add a wait

* fix roles constant uppercase

* fix lint
2019-06-26 19:47:09 +01:00
davidcanonieto 069e4297ea [ADF-4499] Form definition selector should only display standAlone co… (#4880)
* [ADF-4499] Form definition selector should only display standAlone compatible forms

* Improve service method

* fix typo
2019-06-26 13:07:51 +01:00
Eugenio Romano 24714b8a87 codeowners 2019-06-26 10:28:05 +01:00
Eugenio Romano d401018519 codeowners 2019-06-26 10:02:17 +01:00
Denys Vuika f99b943bcb [ADF-4594] e2e configuration to disable animations (#4760)
* e2e environment

* configuration fixes

* update dist configuration

* use e2e configuration on travis
2019-06-26 09:50:50 +01:00
davidcanonieto 5c07d5b3e6 [ADF-4457] StorageService should be independent of AppConfigService (#4712)
* [ADF-4457] StorageService should be independent of AppConfigService

* [ADF-4457] Fix e2e tests

* [ADF-4457] Fix e2e tests

* [ADF-4457] Improve storage service workflow

* Fix linting

* Fix unit tests

* Fix e2e test

* Add missing class to constructor

* Fix e2e test

* Rebase branch

* Improve unit test

* fix test
2019-06-25 16:21:13 +01:00
Eugenio Romano 90c403ae9e [ADF-4707] add properties in node selector search (#4878)
* add properties in node selector search

* fix test
2019-06-25 15:37:24 +01:00
Geeta Mandakini Ayyalasomayajula d531a022d0 [ADF-4026] - automate process filter results check (#4874)
* process-filter-results test automated

* updated the test case numbers

* fix test

* fix test

* added wait for the datatable to load

* fixes

* created another process instance in simpleApp by anotherUser, to test the negative scenario's in filtering.

* created another process instance in simpleApp by anotherUser, to test the negative scenario's in filtering.

* delete both the users created.
2019-06-25 14:44:30 +01:00
Eugenio Romano 72eab9e84d fix script 2019-06-25 13:00:05 +01:00
Marouan Bentaleb 31d98fc368 [ADF-4515] Removing duplicated test and moving other test to the right spec (#4872) 2019-06-24 17:43:33 +01:00
Suzana Dirla 317ae3db68 [ADF-4696] Display name on metadata card (#4870)
* [ADF-4696] Display names on content metadata

* [ADF-4696] unit test
2019-06-24 17:39:06 +01:00
Geeta Mandakini Ayyalasomayajula be234f227f [ADF-4448] Automate Start and Save a task with a form. (#4876)
* automated Start and save a task with a form.

* crc's

* test title updated

* test title updated

* start process with start event form automated

* moved the expect statements to the tests.

* fix circular dependency

* deleting the standalonetask in afterAll

* split the tests for better readability

* split the tests for better readability
2019-06-24 17:36:02 +01:00
Geeta Mandakini Ayyalasomayajula 938286671d test enabled (#4871) 2019-06-20 14:25:46 +01:00
davidcanonieto 685404432a Add typeahead unit test for start process cloud component (#4869) 2019-06-20 14:06:01 +01:00
Marouan Bentaleb 82d6ebd763 [ADF-4593] Fixing skipped tests in Start Task Cloud (#4868) 2019-06-20 12:33:46 +01:00
Eugenio Romano f861b94de4 [Staging-branch] 3.4.0 (#4839)
* next 3.4.0

* next 3.4.0

* [ADF-4426] Move CSS overrides from ACA to ADF - 2nd round (#4837)

* [ADF-4426] align toolbar icon color with design

* [ADF-4426] clean-up style - it is never applied

* [ADF-4426] display title for name location cell - useful for long names

* [ADF-4426] move content-node-selector cell fix from ACA

- fixes https://github.com/Alfresco/alfresco-ng2-components/issues/4686

* [ADF-4426] move content-node-selector cell fix from ACA

- fixes https://github.com/Alfresco/alfresco-ng2-components/issues/4686

* [ADF-4426] move image width fix from ACA

* [ADF-4426] allow more customization of data-table borders

* [ADF-4426] move fix from ACA

[ACA-2363] fixes issue with text being visible underneath the info drawer

* [ADF-4426] get adf-datatable-link style from ACA

* [ADF-4426] allow set of DL selected row icon color

* [ADF-4426] allow more document list customization

- code moved from ACA
- more css variables
- removed non used and duplicated outline styles
- some code clean-up...

* [ADF-4635] The Status drop-down is looking different for Processes than for Tasks (#4822)
2019-06-20 12:32:41 +01:00
Eugenio Romano f063d94316 fix test 2019-06-19 13:16:50 +01:00
Eugenio Romano bb322bb5ed fix form variables 2019-06-19 12:23:31 +01:00
Eugenio Romano c5739ff435 updated translation files 3.3.0 2019-06-19 11:01:50 +01:00
siva kumar 45af7ca88d * Added content-services as peer dependency into process-cloud-services (#4863) 2019-06-19 10:26:56 +01:00
Eugenio Romano 09c62d5046 Release 3.3.0 2019-06-18 21:35:58 +01:00
siva kumar 957a76b1b5 [ADF-4519] Attach an ACS content to a form (#4842)
* * Process-storage

* * Used jsapiServcie

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

* Refactor

* [ADF-4519] Attach an ACS content to a form.

* * Created attachfile-cloud-widget component

* * Created a component to attach an acs content to a form.

* * Added unit tests

* * Removed unused methods* FIxed tslint errors.

* * Reverted demo shell changes.

* * Removed unnecessary methods

* * Fixed at able to remove attached file

* * After rebase.

* * Removed tempFile and currentFile properties.* Refactored attach-file-cloud-widget.

* Update upload-cloud.widget.html

* fix

* Fixed readonly form
2019-06-18 18:54:33 +01:00
m-hulbert 3d4ea197ee [ADF-4656] Release note for 3.3.0 (#4861) 2019-06-18 18:53:33 +01:00
Eugenio Romano fac04a9707 add logs 2019-06-18 18:35:20 +01:00
Eugenio Romano f934aa306b restore install 2019-06-18 16:26:34 +01:00
davidcanonieto 25446b5ba3 [ADF-4680] Add documentation for dateValues in app.config.json (#4859)
* [ADF-4680] Add documentation for dateValues in app.config.json

* Improve English

* Create new localization file

* Update localized-date.pipe.md

* Update card-view-datetimeitem.model.ts

* Update localized-date.pipe.md
2019-06-18 15:17:48 +01:00
Francesco Corti e64eee90af [ADF-4656] Release note for ADF 3.3 in draft. (#4857)
* [ADF-4658] Release note for ADF 3.3.

* License info update.

* Version index issue.

* release note
2019-06-18 10:01:52 +01:00
Eugenio Romano d6c3373298 fix names config e2e cloud 2019-06-17 21:17:47 +01:00
Alexa Fabian 725cf22956 'Testing' Moved Upload Actions to shared testing package (#4616)
* 'Testing' Moved Upload Actions to shared testing package

* Updated Upload Actionswith suggested changes

* Failing tests updated

* Resolving merge conflicts

* updating latest merge conflicts

* resolved merge conflicts

* update to fix previous issues with this.

* testing changes

* fix for failed travis test

* updates to fix failing travis test

* fixes file path error

* latest fix for failing travis test

* latest fix for failing travis test

* Fixing undefined rootPath

* fixes timing issues in content-services travis test

* resolves requested changes
2019-06-17 15:07:25 +01:00
davidcanonieto 5f1caca5da [ADF-4677] Make time ago use Angular Date formats (#4856) 2019-06-17 14:16:48 +01:00
Eugenio Romano 73b871a233 fix deploy pr script 2019-06-17 14:15:55 +01:00
Eugenio Romano f8fcb6395d update script correct directory 2019-06-17 11:53:53 +01:00
Eugenio Romano 5589120ed7 [ADF-4657] Upgrade Guide (#4855)
* fix documentation missing params

* fix index

* fix aftere release

* fix aftere review

* upgrade guide from 3.2.0 to 3.3.0

* upgrade guide from 3.2.0 to 3.3.0
2019-06-17 11:46:28 +01:00
Eugenio Romano 64a5a98dc6 [ADF-4658] Compatibility matrix 3.3.0 (#4854)
* fix documentation missing params

* fix index

* fix aftere release

* fix aftere review

* compatibility matric 3.3.0
2019-06-17 10:22:43 +01:00
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
858 changed files with 27877 additions and 14092 deletions
+39
View File
@@ -0,0 +1,39 @@
# This is a comment.
# Each line is a file pattern followed by one or more owners.
# These owners will be the default owners for everything in
# the repo. Unless a later match takes precedence,
# these users will be requested for
# review when someone opens a pull request.
* @eromano @popovicsandras @DenysVuika
# Order is important; the last matching pattern takes the most
# precedence. When someone opens a pull request that only
# modifies JS files, only @js-owner and not the global
# owner(s) will be requested for a review.
e2e/* @eromano @cristinaj @gmandakini @marouanbentaleb
# You can also use email addresses if you prefer. They'll be
# used to look up users just like we do for commit author
# emails.
#*.go docs@example.com
docs/* @m-hulbert @eromano
# In this example, @doctocat owns any files in the build/logs
# directory at the root of the repository and any of its
# subdirectories.
#/build/logs/ @doctocat
# The `docs/*` pattern will match files like
# `docs/getting-started.md` but not further nested files like
# `docs/build-app/troubleshooting.md`.
#docs/* docs@example.com
# In this example, @octocat owns any file in an apps directory
# anywhere in your repository.
#apps/ @octocat
# In this example, @doctocat owns any file in the `/docs`
# directory in the root of your repository.
#/docs/ @doctocat
+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/
+33 -158
View File
@@ -6,7 +6,7 @@ dist: trusty
sudo: required
node_js:
# Use the explicit NodeJS LTS version 8.9.4 to avoid any automatic upgrade of the version.
- '8.9.4'
- '10.16.0'
install:
echo "no install"
@@ -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/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
@@ -14,7 +14,7 @@
<a href='https://github.com/Alfresco/alfresco-ng2-components/blob/master/LICENSE'>
<img src='https://img.shields.io/hexpm/l/plug.svg' alt='license' />
</a>
</p>
</p
## Introduction
+31 -3
View File
@@ -106,6 +106,14 @@
"with": "demo-shell/src/environments/environment.prod.ts"
}
]
},
"e2e": {
"fileReplacements": [
{
"replace": "demo-shell/src/environments/environment.ts",
"with": "demo-shell/src/environments/environment.e2e.ts"
}
]
}
}
},
@@ -113,11 +121,17 @@
"builder": "@angular-devkit/build-angular:dev-server",
"options": {
"browserTarget": "dist:build",
"port": 3000
"host": "0.0.0.0",
"port": 3000,
"proxyConfig": "demo-shell/proxy.conf.js",
"disableHostCheck": true
},
"configurations": {
"production": {
"browserTarget": "dist:build:production"
},
"e2e": {
"browserTarget": "dist:build:e2e"
}
}
},
@@ -352,6 +366,14 @@
"with": "demo-shell/src/environments/environment.prod.ts"
}
]
},
"e2e": {
"fileReplacements": [
{
"replace": "demo-shell/src/environments/environment.ts",
"with": "demo-shell/src/environments/environment.e2e.ts"
}
]
}
}
},
@@ -359,11 +381,17 @@
"builder": "@angular-devkit/build-angular:dev-server",
"options": {
"browserTarget": "dev:build",
"port": 3000
"host": "0.0.0.0",
"port": 3000,
"proxyConfig": "demo-shell/proxy.conf.js",
"disableHostCheck": true
},
"configurations": {
"production": {
"browserTarget": "dev:build:production"
},
"e2e": {
"browserTarget": "dev:build:e2e"
}
}
},
@@ -516,7 +544,7 @@
"e2e": {
"builder": "@angular-devkit/build-angular:protractor",
"options": {
"protractorConfig": "./protractor.conf.js",
"protractorConfig": "./protractor.conf.ts",
"devServerTarget": "lib-e2e-test:serve"
}
},
+2 -2
View File
@@ -126,8 +126,8 @@
"uncheck",
"subfolders",
"ECMBPM",
"candidateuserapp",
"processwithvariables"
"processwithvariables",
"devops"
],
"dictionaries": [
"html",
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "Alfresco-ADF-Angular-Demo",
"description": "Demo shell for Alfresco Angular components",
"version": "3.2.0",
"version": "3.3.0",
"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": "Person/gruppecloud",
"PEOPLE_CLOUD": "Personcloudkomponent",
"GROUPS_CLOUD": "Gruppecloudkomponent",
"CONFIRM-DIALOG": "Bekræftelsesdialogboks"
"CONFIRM-DIALOG": "Bekræftelsesdialogboks",
"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": {
+10 -9
View File
@@ -64,7 +64,7 @@
"TASK_LIST": "Uppgiftslista",
"PROCESS_LIST": "Processlista",
"PROCESS_CLOUD": "Activiti Cloud",
"CARD_VIEW": "CardView",
"CARD_VIEW": "Kortvy",
"PROCESS_SERVICES": "Process Services",
"LOGIN": "Inloggning",
"CUSTOM_SOURCES": "Anpassade källor",
@@ -75,7 +75,7 @@
"FORM": "Formulär",
"FORM_LIST": "Formulärlista",
"FORM_LOADING": "Formulär läses in",
"UPLOADER": "Uppladdare",
"UPLOADER": "Uppladdad av",
"WEBSCRIPT": "Webbskript",
"TAG": "Tagg",
"TRASHCAN": "Papperskorg",
@@ -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": "Dialogruta för bekräftelse",
"COMMUNITY": "Community"
},
"TRASHCAN": {
"ACTIONS": {
@@ -109,7 +110,7 @@
}
},
"DOCUMENT_LIST": {
"MULTISELECT_CHECKBOXES": "Flera val (med kryssrutor)",
"MULTISELECT_CHECKBOXES": "Fleraval (med kryssrutor)",
"THUMBNAILS": "Aktivera miniatyrbilder",
"ALLOW_DROP_FILES": "Aktivera släpp filer i en mapp",
"MULTIPLE_FILE_UPLOAD": "Uppladdning av flera filer",
@@ -177,8 +178,8 @@
"ADD_ROW": "Lägg till rad",
"REPLACE_ROWS": "Ersätt rader",
"REPLACE_COLUMNS": "Ersätt kolumner",
"LOAD_NODE": "Ladda upp nod",
"MULTISELECT": "Flera val",
"LOAD_NODE": "Läs in nod",
"MULTISELECT": "Fleraval",
"MULTISELECT_DESCRIPTION": "Använd Cmd (Mac) eller Ctrl (Windows) för att växla val av flera objekt"
},
"ANALYTICS_REPORT": {
@@ -208,7 +209,7 @@
"FORM_DATA_MESSAGE": "Ange värden för att fylla formuläret",
"TYPEAHEAD_PLACEHOLDER": "Typeahead",
"RADIO_PLACEHOLDER": "Radioknapp",
"SELECT_PLACEHOLDER": "DropDown"
"SELECT_PLACEHOLDER": "Dropdown"
},
"LOGIN": {
"CONTENT_SERVICES": "Content Services",
@@ -224,8 +225,8 @@
"FACET_FIELDS": {
"TYPE": "1:Typ",
"SIZE": "2:Storlek",
"CREATOR": "3:Skapat av",
"MODIFIER": "4:Ändrat av",
"CREATOR": "3:Skapad av",
"MODIFIER": "4:Ändrad av",
"CREATED": "5:Skapad den"
},
"FACET_QUERIES": {
+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
+2 -13
View File
@@ -12,17 +12,6 @@ router-outlet[name='overlay'] + * {
width: 100%;
}
@media (max-width: 425px) {
adf-content-node-selector {
.adf-content-node-selector-content-list {
.adf-datatable-cell {
display: none;
}
.adf-datatable-cell:first-child,
.adf-datatable-cell:nth-child(2) {
display: table-cell;
}
}
}
[dir='rtl'] .mat-icon {
transform: scale(-1, 1);
}
+38 -6
View File
@@ -21,13 +21,12 @@ import { FormsModule } from '@angular/forms';
import { FlexLayoutModule } from '@angular/flex-layout';
import { ChartsModule } from 'ng2-charts';
import { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { BrowserAnimationsModule, NoopAnimationsModule } from '@angular/platform-browser/animations';
import { AppConfigService, TRANSLATION_PROVIDER, DebugAppConfigService, CoreModule, CoreAutomationService } from '@alfresco/adf-core';
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';
@@ -92,11 +90,47 @@ import { CommunityStartTaskCloudDemoComponent } from './components/cloud/communi
import { CommunityProcessDetailsCloudDemoComponent } from './components/cloud/community/community-process-details-cloud.component';
import { CommunityProcessesCloudDemoComponent } from './components/cloud/community/community-processes-cloud.component';
import { CommunityTaskDetailsCloudDemoComponent } from './components/cloud/community/community-task-details-cloud.component';
import { environment } from '../environments/environment';
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,
BrowserAnimationsModule,
environment.e2e ? NoopAnimationsModule : BrowserAnimationsModule,
ReactiveFormsModule,
routing,
FormsModule,
@@ -116,7 +150,6 @@ import { CommunityTaskDetailsCloudDemoComponent } from './components/cloud/commu
],
declarations: [
AppComponent,
LoginComponent,
LogoutComponent,
AppLayoutComponent,
HomeComponent,
@@ -157,7 +190,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>
@@ -0,0 +1,21 @@
/*!
* @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 environment = {
production: false,
e2e: true
};
@@ -16,5 +16,6 @@
*/
export const environment = {
production: true
production: true,
e2e: false
};
+2 -1
View File
@@ -21,5 +21,6 @@
// The list of which env maps to which file can be found in `.angular-cli.json`.
export const environment = {
production: false
production: false,
e2e: false
};
BIN
View File
Binary file not shown.
+13 -7
View File
@@ -34,11 +34,13 @@ 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.
- The [Upgrade guide](upgrade-guide/upgrade26-30.md) explains how to upgrade your project from an earlier version of ADF to the current version.
- The [Upgrade guide](upgrade-guide/README.md) explains how to upgrade your project from an earlier version of ADF to the current version.
## Contents
@@ -57,6 +59,7 @@ A few other pages of information are also available:
- [Angular Material Design](user-guide/angular-material-design.md)
- [Form Extensibility and Customisation](user-guide/extensibility.md)
- [Internationalization in ADF](user-guide/internationalization.md)
- [Localization in ADF](user-guide/localization.md)
- [Theming](user-guide/theming.md)
- [Transclusion](user-guide/transclusion.md)
- [Typography](user-guide/typography.md)
@@ -103,11 +106,13 @@ for more information about installing and using the source code.
| [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) |
| [Sorting Picker Component](core/components/sorting-picker.component.md) | Selects from a set of predefined sorting definitions and directions. | [Source](../lib/core/sorting-picker/sorting-picker.component.ts) |
| [Start Form component](core/components/start-form.component.md) | Displays the Start Form for a process. | [Source](../lib/core/form/components/start-form.component.ts) |
| [Start Form component](core/components/start-form.component.md) | Displays the Start Form for a process. | [Source](../lib/process-services/form/start-form.component.ts) |
| [Text Mask directive](core/components/text-mask.component.md) | Implements text field input masks. | [Source](../lib/core/form/components/widgets/text/text-mask.component.ts) |
| [Toolbar Divider Component](core/components/toolbar-divider.component.md) | Divides groups of elements in a Toolbar with a visual separator. | [Source](../lib/core/toolbar/toolbar-divider.component.ts) |
| [Toolbar Title Component](core/components/toolbar-title.component.md) | Supplies custom HTML to be included in a Toolbar component title. | [Source](../lib/core/toolbar/toolbar-title.component.ts) |
@@ -157,8 +162,9 @@ 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 ', ', however, you can set your own separator in the params of the pipe. | [Source](../lib/core/pipes/multi-value.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) |
@@ -251,7 +257,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) |
@@ -410,7 +416,7 @@ for more information about installing and using the source code.
| [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 componet](process-services-cloud/components/form-definition-selector-cloud.component.md) | Allows one form to be selected. | [Source](../lib/process-services-cloud/src/lib/form-definition-selector/components/form-definition-selector-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) |
@@ -419,7 +425,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/form/components/task-form-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'
+3 -2
View File
@@ -20,8 +20,9 @@ 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.3.0](versionIndex.md#v330) | **Full test:** v6.1.0 <br/> **Smoke test:** v5.2.4 | **Full test:** v7.1.0 M2 (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 |
@@ -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
@@ -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'
...
}
```
@@ -11,7 +11,7 @@ Defines the Image Resolver function used by the [Document List Component](../com
## Definitions
- `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`
- `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](../../../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
- `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
@@ -48,7 +48,7 @@ Implements node operations used by the [Document List component](../components/d
- _nodeId:_ `string` -
- _pagination:_ [`PaginationModel`](../../../lib/core/models/pagination.model.ts) -
- _includeFields:_ `string[]` -
- _where:_ `string` - (Optional)
- _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/>
@@ -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`. |
@@ -69,7 +69,6 @@ sub-components (note the use of `<ng-template>` in the sub-components' body sect
| Name | Type | Default value | Description |
| ---- | ---- | ------------- | ----------- |
| direction | `string` | "ltr" | The direction of the layout. 'ltr' or 'rtl' |
| expandedSidenav | `boolean` | true | Should the navigation region be expanded initially? |
| hideSidenav | `boolean` | false | Toggles showing/hiding the navigation region. |
| position | `string` | "start" | The side that the drawer is attached to. Possible values are 'start' and 'end'. |
+2 -1
View File
@@ -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. |
+70
View File
@@ -0,0 +1,70 @@
---
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.
To localize the dates in your application, 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).
For example, if you want add the japanese date localization in your ADF app you can add in your ```app.module.ts```:
```typescript
import { AppConfigService, TRANSLATION_PROVIDER, DebugAppConfigService, CoreModule, CoreAutomationService } from '@alfresco/adf-core';
.....
.....
import { registerLocaleData } from '@angular/common';
import localeJa from '@angular/common/locales/ja';
registerLocaleData(localeJa);
```
### Default values
You can overwrite the default values of this pipe by adding these properties to your ```app.config.json```:
```json
"dateValues": {
"defaultDateFormat": "mediumDate",
"defaultDateTimeFormat": "MMM d, y, H:mm",
"defaultLocale": "en-US"
}
```
| Name | Type | Description |
| ---- | ---- | ----------- |
| defaultDateFormat | string | The format to apply to date values |
| defaultDateTimeFormat | string | The format to apply to date-time values |
| defaultLocale | string | The locale id to apply |
This configuration overwrites the values in the localized date pipe as well as other components to have more consistency across your app. However, you can still overwrite these values any time by using the pipe in your code.
+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
+6
View File
@@ -21,8 +21,14 @@ Converts a recent past date into a number of days ago.
<!-- {% endraw %} -->
| Name | Type | Default value | Description |
| ---- | ---- | ------------- | ----------- |
| locale | string | 'en-US' | A locale id for the locale format rules to use. |
## Details
The pipe finds the difference between the input date and the current date. If it
is less than seven days then then the date will be formatted as "X days ago".
Otherwise, the usual full date format is used.
By default, it localizes the date to the language that is currently in use by the app. Furthermore, a different locale id can be passed to the pipe to overwrite the locale id to set a custom one.
+7
View File
@@ -17,6 +17,13 @@ Decodes a JSON Web Token (JWT) to a JavaScript object.
Decodes a JSON web token into a JS object.
- _token:_ `any` - Token in encoded form
- **Returns** `Object` - Decoded token data object
- **getValueFromLocalAccessToken**(key: `string`)<br/>
Gets a named value from the user access token.
- _key:_ `string` - Key name of the field to retrieve
- **getValueFromToken**(accessToken: `string`, key: `string`)<br/>
Gets a named value from the user access token.
- _accessToken:_ `string` -
- _key:_ `string` -
## Details
@@ -28,6 +28,21 @@ Shows a notification message with optional feedback.
- _action:_ `string` - Caption for the response button
- _config:_ `number|MatSnackBarConfig` - (Optional) Time before notification disappears after being shown or MatSnackBarConfig object
- **Returns** [`MatSnackBarRef`](https://material.angular.io/components/snack-bar/overview)`<any>` - Information/control object for the SnackBar
- **showError**(message: `string`, action?: `string`): [`MatSnackBarRef`](https://material.angular.io/components/snack-bar/overview)`<any>`<br/>
Rase error message
- _message:_ `string` - Text message or translation key for the message.
- _action:_ `string` - (Optional) Action name
- **Returns** [`MatSnackBarRef`](https://material.angular.io/components/snack-bar/overview)`<any>` -
- **showInfo**(message: `string`, action?: `string`): [`MatSnackBarRef`](https://material.angular.io/components/snack-bar/overview)`<any>`<br/>
Rase info message
- _message:_ `string` - Text message or translation key for the message.
- _action:_ `string` - (Optional) Action name
- **Returns** [`MatSnackBarRef`](https://material.angular.io/components/snack-bar/overview)`<any>` -
- **showWarning**(message: `string`, action?: `string`): [`MatSnackBarRef`](https://material.angular.io/components/snack-bar/overview)`<any>`<br/>
Rase warning message
- _message:_ `string` - Text message or translation key for the message.
- _action:_ `string` - (Optional) Action name
- **Returns** [`MatSnackBarRef`](https://material.angular.io/components/snack-bar/overview)`<any>` -
## Details
@@ -84,7 +84,7 @@ Associate an uploaded file with a Process Instance.
Let's say we have an upload button as follows:
```html
<div class="button-row">
<div>
<button mat-button color="accent" mat-mini-fab (click)="fileInput.click()">
<mat-icon>attachment</mat-icon>
</button>
@@ -18,10 +18,10 @@ Finds shared links to Content Services items.
- _nodeId:_ `string` - ID of the node to link to
- _options:_ `any` - Options supported by JS-API
- **Returns** [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`SharedLinkEntry`](https://github.com/Alfresco/alfresco-js-api/blob/development/src/api/content-rest-api/docs/SharedLinkEntry.md)`>` - The shared link just created
- **deleteSharedLink**(sharedId: `string`): [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`SharedLinkEntry`](https://github.com/Alfresco/alfresco-js-api/blob/development/src/api/content-rest-api/docs/SharedLinkEntry.md)`>`<br/>
- **deleteSharedLink**(sharedId: `string`): [`Observable`](http://reactivex.io/documentation/observable.html)`<any|Error>`<br/>
Deletes a shared link.
- _sharedId:_ `string` - ID of the link to delete
- **Returns** [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`SharedLinkEntry`](https://github.com/Alfresco/alfresco-js-api/blob/development/src/api/content-rest-api/docs/SharedLinkEntry.md)`>` - Null response notifying when the operation is complete
- **Returns** [`Observable`](http://reactivex.io/documentation/observable.html)`<any|Error>` - Null response notifying when the operation is complete
- **getSharedLinks**(options: `any` = `{}`): [`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 shared links available to the current user.
- _options:_ `any` - Options supported by JS-API
Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.3 KiB

After

Width:  |  Height:  |  Size: 9.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 KiB

@@ -16,7 +16,7 @@ Manages and runs basic extension functionality.
- **evaluateRule**(ruleId: `string`, context?: [`RuleContext`](../../../lib/extensions/src/lib/config/rule.extensions.ts)): `boolean`<br/>
Evaluates a rule.
- _ruleId:_ `string` - ID of the rule to evaluate
- _context:_ [`RuleContext`](../../../lib/extensions/src/lib/config/rule.extensions.ts) - (Optional) (optional) Custom rule execution context.
- _context:_ [`RuleContext`](../../../lib/extensions/src/lib/config/rule.extensions.ts) - (Optional) Custom rule execution context.
- **Returns** `boolean` - True if the rule passed, false otherwise
- **getActionById**(id: `string`): [`ActionRef`](../../../lib/extensions/src/lib/config/action.extensions.ts)<br/>
Retrieves an action using its ID value.

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