* fix test

* remove not used events in demo shell host setting components

* [ADF-3156] App config default ALL (BPM and ECM) provider (#3460)

* Use as default provider ALL (BPM and ECM)

* Default host OAUTH

* removing wrong fdescribe (#3461)

* [ADF-3123] removed default choice for the first radio button (#3462)

* Fix host component (#3463)

* [ADF-2824] Doc review and minor changes to review checker tool (#3466)

* restore historical selection order (#3467)

* restore historical selection order

* fix test

* [ADF-2859] fixes for the conditional visibility and disabled states (#3465)

* fixes for the conditional visibility and disabled states

* update docs

* cleanup code

* remove unused code

* [LOC-61] i18n 2.4.0 (#3468)

* i18n 2.4.0

* missing part

* revert development config

* [ADF-3144] Error component displayed when closing file viewer in process tab (#3469)

* [ADF-3173] [Task List] - Empty list message is not translated (#3471)

* Added a missing translation keys.

* Fix dropdown panel in viewer toolbar  because of z-index (#3472)

* [ADF-3162] Setting component - Should be able to render the providers passed as input (#3464)

* Be able to change the available providers values

* Add deprecated tag

* add default providers

* Fix empty OAuth and selected providers
Improve the documentation

* Fix BPM guard to check SSO condition

* Add the oauthConfig again

* SSO or Basic otpion auth setting change

* fix host settings sso/basic
add login documentation

* remove test string

* fix auth guard test

* dispose upload emitter test events

* remove space

* exclude failing test

* Update ADF packages version 2.4.0-beta13 (#3475)

* [ADF-2824] Reviewed search docs for 2.4 (#3477)

* [ADF-2824] Moved search widget docs into separate pages

* [ADF-2824] Separated search widget page and added search filter service docs

* [ADF-2824] Updated new search docs with doc tools

* Remove unused field (#3480)

* Fix default SSO config not filled in (#3479)

* [ADF-3175] renabling upload on single target folder row (#3473)

* [ADF-3191] Not able to login only to BPM or ECM (#3478)

* disable random test

* host setting component reset JS-API

* reload api after user prefrence change

* remove replicate reset

* missing semicolon

* deprecate provider property

* remove trailing space

* check new value before to set

* [ADF-3198] Updated index files + minor doc updates (#3482)

* [ADF-3200] custom Extension filter - file with different extension is uploaded with drag and drop

* [ADF-3181] Auth Guard - redirect by string url (#3474)

* redirect by string url

* auth guard tests fix

* revise

* [ADF-3196] fixed task selection and double click (#3484)

* [ADF-3191] Fix userprefrence oauth2 (#3488)

* remove user preference setting save

* fix host setting test

* remove userPreferences test

* fix title service test

* remove unused imports

* restore input align

* fix service import in test tag rating

* [ADF-3210] Typo People Search (#3487)

* remove vscode changes

* [ADF-3196] [Task list / Process list] - The 'Task details' are not diplayed for the selected Task (#3483)

* [ADF-3196] [Task list / Process list] - The 'Task details' are not displayed for the selected Task

* * After rebase

* [ADF-3176] Fixed permissionsissue when editing metadata (#3476)

* [ADF-3217] reset previous search settings (#3490)

* reset previous search settings

* unit test

* remove fit

* [ADF-3196] fixed selection of first tasklist element (#3491)

* [ADF-3196] [Task list / Process list] - The 'Task details' are not displayed for the selected Task

* * After rebase

* [ADF-3196] fixed selection for fist element

* [ADF-3212] Upload version buttons wrapping fixed (#3492)

* Update ADF packages version 2.4.0-beta14 (#3493)

* demo shell host setting component login redirect after setting

* remove old auth test not  valid anymore

* fix translations (#3497)

* [ADF-3203] Fixed doc tools bugs from Linux run and added verbose option (#3496)

* [ADF-3912] Setting Component - Return as default BASIC authType (#3495)

* Return as default BASIC authType

* remove the commented line

* [ADF-3190] Fix rerendering issue with content-meta-data (#3494)

* Fix rerendering issue with content-meta-data

* Fix indentation

* [ADF-3198] Index and tutorial content review (#3500)

* [ADF-3198] Fixed glitches in doc index files and tools

* [ADF-3198] Reviewed new tutorial content and fixed index glitches

* [ADF-3198] Fixed host settings component brief description

* [ADF-3223] Restore message directive files fix (#3499)

* fix restore notification

* improve path specification property

* fix lint and document issues

* fix test

* remove unused import

* [ADF-3226] remove Double behaviour setting allow download and comment (#3502)

* fix restore notification

* improve path specification property

* fix lint and document issues

* fix test

* remove unused import

* remove double behavior allowComments and allowDonload can be set only thorough input property

* [ADF-3233] fixed demo shell filtering for files on drag&drop] (#3504)

* [ADF-3232] fixing retrieving for ecm user via site service (#3506)

* [ADF-3176] file content reload fixed (#3501)

* file content reload fixed

* refactoring & layout fix

* resolve indentation problems

* missing semicolon

* [ADF-3224] move ticket store logic in js-api (#3505)

* move ticket store logic in js-api

* remove space

* fix test

* fix tests

* [ADF-3212] Fixed permission issues when updating version (#3503)

* [ADF-3213] Fixed permission issues when updating version

* [ADF-3212] fixed test for PR

* allowableOperations include viewer get node

* update demo shell with metadata demo

* undo ADF-3176 changes

* fix login oauth cookie problem (#3508)

* fix login don't check the cookie in oauth2

* fix test

* check boolean storage

* fix provider check

* clean local storage before auth test

* fix missing pdf viewer update when scale is the same (#3510)

* [ADF-3239] Fixed deprecated property descriptions (#3509)

* [ADF-3239] Changed deprecated properties to include full description

* [ADF-3239] Updated deprecated properties of affected doc files

* [ADF-3239] Fixed badly formatted doc comment in tasklist

* [ADF-3229] people widget list reseted if empty input (#3507)

* list reseted when input is empty

* test added

* [ADF-3242] removed filter for string in example log component (#3511)

* [ADF-3242] removed filter for string in example log component

* [ADF-3242] added try catch for circular dependency objects

* [ADF-3242] added try catch and removed error message

* invalidate session in host setting internal component instead to logout

* remove unused import

* use i18n key for "Permission" label

* [ADF-3198] Final doc checks for release (#3513)

* [ADF-3198] Doc link check for release

* [ADF-3198] Updated main index doc page

* remove invalidation session because is concern of the js-api

* check 401 and redirect demo shell (#3516)

* [ADF-3248] fixed readonly status for people widget (#3512)

* [ADF-3248] fixed readonly status for people widget

* [ADF-3248] fixed test people widget

* [ADF-3248] added readonly test

* [ADF-3251] Authentication Service - Check if used loggedin based on the provider (#3515)

* check if loggedin based on the provider

* Fix unit tests

* remove 404 check in demo shell

* [ADF-3262] Remove avoidable css style from task/process list component (#3518)

* [ADF-3230] Changes to stop doc tools from updating files unnecessarily (#3519)

* [ADF-3230] Added basic change detector to doc tools

* [ADF-3230] Updates to type linker to fix before/after inconsistencies

* [ADF-3230] Fixed comparison error caused by adjacent text blocks

* [ADF-3230] Added basic change detector to doc tools

* [ADF-3230] Updates to type linker to fix before/after inconsistencies

* [ADF-3230] Fixed comparison error caused by adjacent text blocks

* [ADF-3230] Modified props tool to remove spaces from union types

* [ADF-3230] Made ToC tool before/after state consistent

* [ADF-3265] Updated index script to remove brief desc links (#3520)

* bump 2.4.0 version

* update lock

* [ADF-3199] Datatable layout fix (#3481)

* [ADF-3193] CardView Variables Item (#3485)

* variables item

* unit tests

* translations fix

* docs added

* change requests

* change requests

* [ADF-2962] Login Hide/Show icon is not reachable (#3489)

* hide/show focused & triggered

* keyup.enter method used

* [ADF-2769] Added example page for content node selector (#3498)

* content node selector test page

* [ADF-2769] start adding more examples to node selector page

* [ADF-2769] added more example for node selector page

* [ADF-2769] added examples on node selector page

* [ADF-3267] changed true/false values showed with a readonly checkbox (#3524)

* [ADF-3238] content size min error added (#3532)

* content size min error added

* clean code

* [ADF-3266] fixed style for amount widget (#3531)

* [ADF-3268] added datetime widget for dynamic table (#3529)

* Expose uriLogout in the host setting form page (#3517)

* [ADF-2876] retrieving user from APS api and not from js-api (#3426)

* [ADF-2876] retrieving user from APS api and not from js-api

* [ADF-2876] added support by checking externalId instead of email

* [ADF-2876] fixed auth service after rebase

* [ADF-2598] Sidenav button only visible when sidenav is enebled (#3526)

* [ADF-3275] Select CardView item (#3530)

* Select card view item

* package json fix

* package json fix

* console.log removed

* Usage of generic

* [ADF-2671] added permission check on permissions (#3521)

* [ADF-2671] start adding permission check for changing permissions

* [ADF-2671] added permission check for inherit button and permission dialog

* [ADF-2671] added permission check for inherit button and permission dialog

* [ADF-2671] start fixing and adding test for new permission check

* ]
[ADF-2671] improved check for node-permission directive

* [ADF-2671] fixed and added more test for permission on permissions

* [ADF-2671] reverting change on node-permission directive

* [ADF-2671] fixing test for permission check

* [ADF-2494] Task Standalone - Provide a way to attach a form (#3459)

* button added for task standalone

* attach form component added

* slide-toggle position fixed

* tests added

* rebase fixed

* review fix

* test added & fixes

* tests fixes

* refresh task details

* tests fixed

* attachFormToATask test added

* formPreview test fixed

* adf-form test fixed

* header separator fix (#3535)

* [ADF-2348] added actions on start and cancel start process buttons (#3543)

* [ADF-3279] Initial refactoring of doc tools (#3541)

* [ADF-3279] Added timing option

* [ADF-3279] Updated to keep md files in memory during processing

* [ADF-3279] Changed read phase to use stored Markdown trees

* [ADF-3279] Renamed tool functions and removed obsolete ones

* [ADF-3279] Added progress bar and better error message handling

* [ADF-3149] New Report Issue page created (#3452)

* [ADF-3149] New Report Issue page created

* [ADF-3149] Added missing comma

* [ADF-3281] - fixed error when user try to involve people (#3538)

* [ADF-3281] moved current user retrieving in the constructor

* [ADF-3281] moved current user retrieving in the constructor #2

* Update ADF packages version 2.5.0-beta1 (#3547)

* [ADF-3294] fixed drag and drop folder to onto a folder (#3550)

* [ADF-3283] added minimatch options into the configuration to allow cu… (#3542)

* [ADF-3283] added minimatch options into the configuration to allow customisation

* [ADF-3283] added documentation

* [ADF-2671] fixed retrieving of error message (#3553)

* [ADF-3301] - added a check when handler is null (#3554)

* [ADF-3177] added general header component (#3537)

* [ADF-3177] added general header component

* [ADF-3177] added documentation and removed user info mobile behaviour

* [ADF-3177] eddited doc file

* [ADF-3177] renamed folder and style changes

* [ADF-3177] style changes

* [ADF-3177] fix tests

* [ADF-3177] fix lint errors and tests

* [APM-3177] css changes

* [ADF-3177] fix pr

* [ADF-3177] updated documentation

* [ADF-3177] expose module with old name

* [ADF-3177] expose module with old name

* [ADF-3305] change logo image directory (#3556)

* [ADF-3298] Select CardView item label removed (#3555)

* placeholder removed

* test added

* [ADF-2599] Share button disabled after clicking it fixed (#3525)

* [ADF-2599] Share button disabled after clicking it fixed

* [ADF-2599] Share button disabling attribute changed

* [ADF-2599] Trailing whitespace removed

* [ADF-3263] added extra options to upload file for upload service (#3546)

* [ADF-2765] Fix for the gallery view in datatable component (#3470)

* [ADF-2765] Fix for the gallery view in datatable component

* [ADF-2765] Fixed lint errors

* [ADF-2765] Changed maximum columns per row number

* [ADF-2765] Removed trailing whitespace

* CardViewItem in demo-shell (#3562)

* [ADF-3255] fixed remember me behaviour (#3564)

* [ADF_NOISSUE] Header image fix (#3563)

* Header image fix

* fix css

* fix title translation (#3565)

* [ADF-3292] fix reset to defaults (#3566)

* fix reset to defaults

* code fixes

* restore providers

* fix category filtering

* [ADF-3103] Task List Demo Component (#3486)

* [ADF-3103] Added Process Definition Id to task list component

* [ADF-3103] Added @input variable

* [ADF-3103] Added search inputs

* [ADF-2753] Fixed select inputs

* [ADF-3103] Improved logic and funcionality overall

* [ADF-3103] FormControl implementation

* [ADF-3103] Added AppId input

* [ADF-3103] Fixed Link errors

* [ADF-3103] Task list table hides when invalid app is selected

* [ADF-3103] Lint error

* [ADF-3103] Improved user experience

* [ADF-3103] changed formControlNames to [FormControl]

* [ADF-3103] Improved logic and added localization

* [ADF-3103] Removed whitespace

* [ADF-3103] Improved logic of task list form

* [ADF-3103] fixed trailing whitespaces

* [ADF-3103] trailing whitespace fix

* [ADF-3103] Added documentation and tests

* [ADF-3103] Added tests and documentation

* [ADF-3103] Tests fixed

* [ADF-3286] Snackbar now supports custom configuration (#3549)

* [ADF-3286] Snackbar now supports custom configuration

* [ADF-3286] Trailing whitespace removed

* [ADF-3286] Tests added

* [ADF-3286] Improved tests

* [ADF-3286] Documentation added

* [ADF-3286]  Logic improved

* [ADF-3286] Styling error fixed

* [ADF-3286] Broken tests fixed

* [ADF-3286] Broken tests fixed

* [ADF-3284] filterParam checking in onChanges (#3561)

* filterParam checking in onChanges

* test improvement

* Add e2e test in ADF main repo (#3534)

* move e2e to ADF main repo

* lint e2e test

* enable first set of tests

* enable test

* firs test js-api integrated

* try change name protractor demo shell file

* remove fdescribe

* Update .travis.yml

* exclude failing test and rewrite analytics component with JS-API

* remove fdescribe

* move first part of tests to js-api

* refactor test alfresco-js-api

* replace js-api step 3

* remove adf prefix

* remove unused code

* remove unused part 2

* add option in e2e test for single test and browser

* exclude temp failing test

* refactoring test step 1

* refactoring test step 2

* refactoring test step 3

* refactoring test step 4

* refactoring test step 5

* run against localhost and proxy options

* fix command

* improve configuration

* improve configuration

* use dev configuratio

* fix defering

* comment out not working remotely test

* fix promise login page e2e

* remove console log

* change test

* revert

* improve utils

* improve task list test
util add also numbers in generation of the email

* remove part of the multi selector

* reinsert trashcan test

* uncomment document list test

* try increase delay in search sorting

* improve document list selector

* execute different util methods

* Upload error screenshot

* make oncomplete async

* add z-finish screenshot workaround

* option save

* remove fit

* remove fit

* restore tslint file

* save screenshot files only if they are present

* Reinsert e2e tag test (#3574)

* solve rendition preview

* reinsert tag e2e

* fix tslint

* fix pack problem

* remove reload

* remove refresh

* Update ADF packages version 2.5.0-beta2 (#3569)

* [ADF-3288] Removed restrictions from upload version button docs (#3578)

* [ADF-3022] Create automated test for attachment list - processes (#3575)

* [ADF-3309] solve rendition preview (#3573)

* solve rendition preview

* fix tslint

* missing semicolon

* solve packaging issues

* reinsert maxretry logic

* [ADF-3193, ADF-3275]  CardView e2e tests (#3577)

* CardView item key-value pair and combobox tests

* Change describe title

* [ADF-3324] Preview - unshared file breaks preview (#3580)

* [ADF-3330]  Create automated tests for Uploader component (#3581)

* Upload button e2e

* improve test organization

* add dev option in test run

* Create desktop.ini

* upload component automation final step

* remove fdescribe

* ignore downloads folder

* exclude pagination

* e2e delete tag test (#3583)

* use local protractor

* [ADF-3329] datatable component e2e (#3589)

* datatable component e2e
minor fix tslint

* fix review

* [ADF-2506] Automation test for Empty process list (#3585)

* [ADF-2506] Automation test for Empty process list

* [ADF-3025] Create automated test for attachment list for tasks (#3590)

* [ADF-3025] Create automated test for attachment list for tasks

* Remove the f from describe

* [ADF-3018] Create automated test for replacing an app (#3572)

* [ADF-3018] Create automated test for replacing an app

* Use await in the test

* Fixing document list pagination test.

* Implemented delete version and delete entire app test cases.

* Added a log.

* Added the api call into protractor control flow.

* Renamed the test cases

* Commented 'Click Audit Log button' test.

* Added some in control flow.

* Changing the test rail ID.

* [ADF-3365] search filter fixes (#3594)

* preserve ordering of facet fields and queries

* update tests

* rework facet queries

* rework facet management, update unit tests

* remove unused interfaces

* fix test

* remove deprecated interfaces

* expose selection for the chip list

* [ADF-3339] added test component for header (#3576)

* [ADF-3339] added test component for header

* [APM-3339] remove lint errors

* [ADF-3339] solved lint error

* [ADF-3339] removed numbers from tests

* [ADF-1858] Automation tests for Viewer Component - Content Services (#3587)

* Automation tests for Viewer Component - Content Services

* Automation tests for Viewer component - Content Services

* Deleting alfresco-ng2-components.iml

* fix core test after e2e modify

* [ADF-3237] Change and remove form from a task (#3597)

* button added for task standalone

* rebase fixed

* review fix

* test added & fixes

* refresh task details

* change and remove form added

* localize & documentation work

* tests added

* tests fixes

* tests fixes

* [ADF-3323] Updated doc tools to use DocFX intermediate files (#3601)

* [ADF-3323] Moved source file parsing to main doc tool

* [ADF-3323] Moved source info classes

* [ADF-3323] Added doc YAML generator tool

* [ADF-3323] Added doc YAML/JSON source paths to gitignore

* [ADF-3323] Completed templates and template context code

* [ADF-3323] Added source paths and updated type linker

* [ADF-3323] Final fixes to templates and type linking

* [ADF-3323] Fixed filter for private and protected methods

* [ADF-3323] Content services docs after check and rebuild

* [ADF-3323] Updated docbuild script in package.json

* [ADF-3331] Create automated tests for Viewer component - Content Services (#3600)

* Automation tests for Viewer Component - Content Services

* Create remaining automation tests for Viewer Component - Content Services

* Deleting alfresco-ng2-components.iml

* Correcting Viewer Page for failing tests

* Updating Viewer Page for failing tests

* Improving the PR quality

* [ADF-3371] fix: Search Filter raises errors when "facetQueries" is not in config

* [ADF-3369] Add toggle for showHeaderContent property (#3603)

* Add toggle for showHeaderContent property

* Add tests for showHeaderContent property

* [ADF-3308] Process list filter by fields (#3588)

* process list component created

* process list renamed

* routing fix

* [ADF-3274] people widget instead of the people list (#3582)

* people list added

* tests added

* style fix

* Update start-task.component.ts

Use correct import

* Update people.widget.spec.ts

add the async

* peopleSelected test fixed

* [ADF-3354] accordion-group closed behaviour (#3595)

* accordion-group closed fix

* tests fixes

* tests added

* tests fixes

* Fix failing unit test and revert deleted method

* [ADF-3259] [ADF-3363] e2e login and card metadata (#3612)

* remember me

* add login component e2e test

* add success route test

* add change logo check

* redirect url after logout e2e

* move redirection test in a separate file

* login component tslint

* cardview e2e

* fix login test

* add test case number

* move version test in a separate file

* clean unused elements

* metadata part 1

* tslint fix

* fix metadata test

* remove fit

* fix formatting file viewerPage

* multi propety test

* metadata and login improvements

* fix data automation fix

* metadata permission e2e

* fix tslint problems

* improve selector

* stabilize search component test

* stabilize test step 1

* fix tag test
add config timeout

* tentative

* delay after download

* change meatdata test

* stabilize metadata

* use smaller file for not extension related test

* stabilize test step 2

* exclude failing test

* timeout fix

* split in multiple task e2e

* trick travis

* trigger build

* fix command issue

* fix save screenshot

* fix run subfolder

* test timeout increase

* protractor conf fix

* revert tests & conditions (#3619)

* Fix update-content tag documentation (#3616)

* Typo convention (#3617)

* [ADF-3367] facets multiselect fixes (#3611)

* group facet buckets by field

* unit tests and code fixes

* [ADF-3336] - added documentlist tests (#3586)

* [ADF-3336] start adding test for documentlist

* [ADF-3336] fixed test for permission message

* [ADF-3336] start adding test custom column type

* [ADF-3336] - added documentlist tests - PART I

* [ADF-3336] removed fdescribe

* [ADF-3336] fixed error on files component

* [ADF-3336] - unified all the diverging tests into one file

* [ADF-3336] fixed label for test

* [ADF-3336] removed fdescribe

* [ADF-3336] added sorting tests and some fix

* [ADF-3336] added other automations

* [ADF-3336] fixed processButton get

* [ADF-3336] stabilising some flaky tests

* [ADF-3336] added line height check

* [ADF-3336] Test that needs to be fixed

* [ADF-3336] commented failing search tests

* [ADF-3336] removed locator from test and added to page object

* ]
[ADF-3336] rebased after last changes on development

* [ADF - 3336] added more test and actions for the test

* [ADF-3336] reenabled disabled tests

* [ADF-3336] reenabled disabled tests

* [ADF-3336] reenabled disabled tests

* [ADF-3336] reenabling disabled tests

* [ADF-3336] stabilized core tests

* [ADF-3336] fixing process service integration tests

* [ADF-3336] removed comments and skipped two tests

* [ADF-3321] Create an automated test for the Share knowledge functionality (#3623)

* Fixed metadata flaky test (#3625)

* [ADF-3385] Implementing start task - test cases (#3613)

* Implementing start task - test cases

* Removed syntax error.

* Add data-automation-id for people widget.

* [ADF-3377] Create automated tests for comments-Tasks (#3624)

* [ADF-3376] Create automated tests for comments - Process services - Process

* [ADF-3377] Create automated tests for comments - Process Services

* Updating test for comments - Processes

* Logging in with the user in the afterAll

* [ADF-3370] Create automated tests for process filters - sorting (#3605)

* [ADF-3337] Creation of automated test for new filters

* [ADF-3370] Create automated tests for process filters - sorting

* Removing the fdescibe

* Removing spaces

* Removing too many characters from a single line

* Removing fdescribe

* changes on the loginPage.js file

* Moving tests to the right folder

* Adding back the chnages on appNavigationBarPage

* Stabilize tests (#3626)

* Stabilize tests

* Added more test fixing to metadata test

* [ADF-3374] Comments -  add/view multiline comments (#3607)

* multiline comment

* add comment e2e

* fix locator syntax

* lint

* clear textarea on ESCAPE event

* multiline comment

* add comment e2e

* fix locator syntax

* lint

* clear textarea on ESCAPE event

* Create automated tests for checklist and people components (#3632)

* [ADF-3399] Create automated tests to cover Header component (#3633)

* [ADF-3388] E2e tests for notification component added (#3630)

* [ADF-3388] E2e tests for notification component added

* [ADF-3388] Added missing function

* [ADF-3406] fix chip list integration regression (#3634)

* fix chip list integration

* add unit test

* Display icon and label in adf-info-drawer-tab (#3628)

- label is not displayed in case there is an icon set on the adf-info-drawer-tab
because it is using a mat-tab-label layout

* [ADF-3407] Create automated tests for comments - Content Services (#3638)

* [ADF-3308] ProcessList Component - Provide a way to filter the list by fields (#3629)

* [ADF-3308] Removed name input added two inputs

* * [ADF-3308] Modified demo component

* [ADF-3367] Modified docs

* [ADF-3308] Added tests

* [ADF-3308] Deprecated processDefinitionKey property

* [ADF-3141] ProcessList Enanchement (#3454)

* * Process list enhancements

* * Updated doc for the recent changes

* * After rebase

* * Require changes done
* after rebase

* Fix failing unit test related to the double merge of ADF-3141 and ADF-3308 (#3642)

* [ADF-3284] ProcessFilter - preselect filter param (#3637)

* preselect filter

* tests fix

* process filter refactor

* unit tests fix

* focus tests fix

*  [ADF-3336] added more tests for Document list component (#3635)

* [ADF-3336] start adding test for documentlist

* [ADF-3336] fixed test for permission message

* [ADF-3336] start adding test custom column type

* [ADF-3336] - added documentlist tests - PART I

* [ADF-3336] removed fdescribe

* [ADF-3336] fixed error on files component

* [ADF-3336] - unified all the diverging tests into one file

* [ADF-3336] fixed label for test

* [ADF-3336] removed fdescribe

* [ADF-3336] added sorting tests and some fix

* [ADF-3336] added other automations

* [ADF-3336] stabilising some flaky tests

* [ADF-3336] added line height check

* [ADF-3336] Test that needs to be fixed

* [ADF-3336] commented failing search tests

* [ADF-3336] removed locator from test and added to page object

* ]
[ADF-3336] rebased after last changes on development

* [ADF - 3336] added more test and actions for the test

* [ADF-3336] reenabled disabled tests

* [ADF-3336] reenabled disabled tests

* [ADF-3336] reenabled disabled tests

* [ADF-3336] reenabling disabled tests

* [ADF-3336] fixing process service integration tests

* [ADF-3336] removed comments and skipped two tests

* [ADF-3336] added thumbnails tests

* [ADF-3336] added tooltip documentlist tests

* [ADF-3336] added tooltip tests

* [ADF-3336] added gallery view tests

* [ADF-3336] removed comment

* [ADF-3336] fixed selectors and check for document list test

* remove injectable decorator from non-services (#3641)

* add missing export (#3646)

* [ADF-3417]Fixing test rail ID's (#3651)

* [ADF-3358][ADF-3359][ADF-3360] Logo link and tooltip and hex colors (#3648)

* [ADF-3358] link on logo

* [ADF-3358] test link on logo

* [ADF-3360] tooltip on logo

* [ADF-3360] update logo docs

* [ADF-3359] allow hex color codes for the background color

* [ADF-3358] better name for property

* [ADF-3103] Added new inputs, columns and overall improvement to Task List Demo (#3653)

* Added columns, inputs and error message alert

* [ADF-3103] Fixed variable name typo

* Add basic documentation

* [ADF-3421] Changed Test Rail IDs (#3654)

* [ADF-3384]  Create automated tests for Version Component (#3631)

* fix version component restore and delete event

* version manager actions

* fix test

* fix unit test

* remove fdescribe

* fix tslint

* fix screenshot rewrite problem

* remove fdescribe

* multi instance try

* remove fdescribe

* try uncomment some test

* error page

* fix user preferences pagiantion

* search page test include

* fix type tslint e2e

* restore code

* default lang momentadapter

* fix test

* [ADF-3384] removed console log from test

* [ADF-3384] adding some fixes for tests and code

* [ADF-3384] fixed some test and code

* [ADF-3358] Header - update demo shell component (#3655)

* [ADF-3358] update demo-shell header component

* [ADF-3358] style demo-shell header component

* [ADF-3299] and [ADF-3300] upgrade to Angular and Material 6 (#3579)

* upgrade to HttpClient

* upgrade to Renderer2

* upgrade Document reference

* remove useless test with deprecated ReflectiveInjector

* upgrade to latest typescript

* upgrade libs

* upgrade package scripts

* remove rxjs blacklists and duplicate rules

* add rxjs compat to help with migration

* fix breaking changes

* fix breaking changes in material

* fix breaking changes (material 6)

* upgrade rxjs, ngx-translate and flex layout

* update unit tests

* restore providers

* upgrade deprecated Observable.error

* rebase
fix first configuration problems

* fix style issues commented

* fix core build

* fix lib template errors

* move lib test execution in angular.json

* ignore

* karma conf files

* fix import statement test

* single run option

* update packages reporter

* restore report

* increase timeout

* improve karma conf test configuration

* fix test issues about lint

* fix test analytics

* fix process service test

* content service fix test

* fix logout directive test

* fix core test

* fix build

* update node-sass to latest

* update angular cli dependencies

* improve build script

create directorites and move files only if previous command succeded

* upgrade individual libs to 6.0

* remove old webpack files

* revert sass change

* fix type issues
fix style issues

* fix tslint demo shell issue

* fix peerdependencies

* fix test e2e BC

* package upate

* fix style import issue

* extract-text-webpack-plugin beta

* fix test dist build command

* remove alpha js-api

* fix tslint issue
add banner tslint rule

* upload service fix

* change BC script

* fix test dist script

* increase demo shell timeout test

* verbose copy

* path absolute

* fix script bc

* fix copy part

* fix path warning
fix monaco editor

* remove duplicate header

* remove unused import

* fix align and check ago tests

* add missing import

* fix notification button selector

* [ANGULAR6] fixed core tests

* fix CS test

* fix cs test step 2

* increase travis_wait for dist

* fix attachment PS

* fix checklist test

* use pdf min

* E2E for multiselect facet search (#3657)

* stop script after test execution

* try to verbose output

* fix wrong import

* [ADF-3323] Fixed broken links in doc files (#3662)

* [ADF-3323] Fixed URL path to Typescript source files

* [ADF-3323] Fixed and checked broken links caused by previous bug

* [ADF-3418] added new languages strings for translation (#3663)

* [ADF-3418] added new languages strings for translation

* [ADF-3418] fixed some missing translation key

* [ADF-3400] fix buckets update on search filter (#3644)

* [ADF-3400] fix buckets update on search filter

* [ADF-3400] test facetFields bucket updates

* [ADF-3400] clean tests

* [ADF-3425] Minor edits to doc files (#3667)

* [ADF-3414] Create automated test for Attach form component (#3665)

* fix problems with rxjs imports

* fix timeout demo shell test

* fix broken test after correction i18n

* [ADF-3372] Added toggle and global configuration to display metadata (#3636)

* [ADF-3372] Added toggle and global configuration to display metadata

* [ADF-3372] Fixed typo in shcema.json

* [ADF-3372] Removed unnecessary variables and variable name changed

* [ADF-3372] Fixed unit test

* [ADF-3372] Improved logic

* [ADF-3372] Improved Metadata component html logic

* [ADF-3372] Demoshell variable from app.config.json removed

* [ADF-3372] fixed bugs and tests

* [ADF-3372] fixed some error in tests

* [ADF-3372] fixed some wrong compilation in test

* [ADF-3372] fixed wrong locator

* [ADF-3372] fixed randomly failing tests

* [ADF-2669] fixed style for confim buttons (#3668)

* [ADF-3380] lazy loading fixes (#3609)

* lazy loading file viewer

* fix issue with CoreModule referencing

* fix issue with app config and lazy loading

* test fixes

* fix import

* lazy loading workaround for content module

* fix providers for lazy loading

* fix tests

* lazy loading for Process Services lib

* lazy loading for Insights, module cleanup

* fix issue with Translate module, optimise imports

* lazy-load blob viewer (demo shell)

* remove duplicate pdf init

* update to more stable pdfjs

* fix license header

* fix lint issues

* fix test import

* fix pdf version

* fix search filter automation id

* demo shell headless chrome

* remove app.component.spec

* reinsert fdescribe ban

* make tag test fater

* move creation PR Docker at the end before after e2e

* [ADF-3284] ProcessFilter - the method ngOnChange doesn't check the property filterParam (e2e) (#3660)

* E2E for process filters urls

* Putting the test in an existing spec

* E2E test default properties (#3671)

* [ADF-3335] Task filter e2e tests (#3614)

* [ADF-3335] Automation Tests for Tasks Filter component

* [ADF-3335] Changed " for \'

* [ADF-3335] Solved style issues

* Update task_filters_component.e2e.ts

* [ADF-3335] Added missing parentheses

* [ADF-3335] Added missing bracket

* [ADF-3335] Improved data automation selectors

* e2e test error page and fix  (#3672)

* fix wrong input parameter functionality

* not reload the page to go to the content service page

* navigate instead to reload to go to the process service page

* [ADF-3439] Update automated tests for Header component (#3673)

* [ADF-3439] Update automated tests for Header component

* small change

* removing unused import

* [no-issue-e2e] directive crete folder new e2e (#3677)

* new folder directive e2e

* fix search test

* fix pr-deploy script

* node 10 travis

* fix pdf worker

* fix mat datetime picker regression

* build fix

* lock file

* fix title viewer issues of priority between name display and real name

* single place to init pdf viewer

* fix placeholder align problem in form

* reload document list after successfully edit node

* fix placeholder people

* [e2e] Added document list actions [E2E] (#3676)

* [e2e] Added document list actions e2e 1

* [e2e - actions] added another test

* [ADF-3103] Added new inputs & columns Task List Demo - Rebase (#3659)

* Added columns, inputs and error message alert

* Add basic documentation

* [ADF-3101] Trailing whitespaces removed

* [ADF-3409] [ADF-3413] Standalone task - Attach/Remove forms bugs (#3670)

* Fix 3409 disable button logic
Fix 3413 change the formName based on selected form

* [ADF-3409] fixed missing import

* [ADF-3409] fixed Observable.of in of

* [ADF-3450] remove css override background color, is already manged by the material component (#3685)

* [ADF-3435][ADF-3436] fix search chips (#3681)

* fix chip list remove

* fix tests

* better find criteria

* swap to fix e2e test

* set 'expanded' for facetFields from config

* fix e2e test

* remove comments

* [ADF-3424] Start task - Object display instead of value for assignee (#3679)

* object input fix

* tests focus fix

* validate config in test also

* remove typo

* viewer fixes for demo shell (#3686)

* remove viewer wrong behavior test if you want not have the toolbar there are other properties

* update docs to remove deprecated feature

* update redame scripts folder (#3689)

* [ADF-3435][ADF-3436]  fix schema json (#3688)

* fix schema json

* fix description

* update search config from documentation

* use default page size for wrong parameter value (#3687)

* move creation day form external class const to not be saved from the "optimization"

* fix core unit test

* stabilize PS e2e

* [3463] add missing informations to report diagram (#3690)

* fix demo shell permission error message

* move back travis node 8

* add option to run remote selenium server

* fix node version

* fix version node sass

* fix documentation header layout

* [ADF-2629] Fix infinite pagination and e2e parallel task (#3691)

* change infinite pagination logic
make merge in share adapter a real merge

* missing semi column

* type problem

* fix pagination infinite test

* tentative file detector

* add other remote files for webdriver

* parallel execution test

* fix refresh browser e2e

* missing driver remote in util

* observable fix (#3692)

* [ADF-3362][ADF-3361] Search on document picker with custom site list - fix (#3592)

* [ADF-3362] Search on document picker with custom site list - fix

* refactor & fix ADF-3361 & ADF-3362

* [ADF-3361][ADF-3362] set spy on the right method

* [ADF-3361][ADF-3362] fix tests

* [ADF-3361][ADF-3362] set constant

* [ADF-3361][ADF-3362] remove unused method

* [ADF-3361][ADF-3362] more relevant tests related to the fix

* [ADF-3362] refactor method

* [ADF-3362] fix tslint errors

* remove pagination override

* [ADF-3467] force the input to be updated when user type for removing … (#3693)

* [ADF-3467] force the input to be updated when user type for removing placeholder

* [ADF-3467] fixed error when search page is opened without any parameters to search

* [ADF-3456] DocumentList - context menu (#3694)

* refactor context menu

* prune log

* remove fdescribe

* remove undescore from private

* fix e2e action buttons

* fix trailing space

* remove fdescribe

* ADF-3474 demo shell process list fix column

* [ADF-3432 ]Added size and page control to task list demo (#3674)

* [ADF-3432] Added size and page control to task listdemo

* [ADF-3432] Removed console log

* [ADF-3432] Errors catched on TaskList component when a bad query is made

* [ADF-3432] It reloads task list content when form is reset

* [ADF-3432] Fixed missing whitespace lint error

* remove unused dependency

* default add comment button translation (#3696)

* [ADF-3473] Show complete button when you can't attach a form (#3695)

* ADF-3473 show complete button

* fix isCompletedTask case

* fix single run test option

* [Dem0 shell] increase default time to message in order to help the e2e

* rename version test describe e2e

* [ADF-3473] added check for no form to not be showed when a form is attached and showed (#3699)

* [ADF-3459] fix datepicker validation regression (#3697)

* fix datepicker validation regression

* improved validation message

* update libs

* exclude validators in readonly mode forms

* 2.5.0 update version
This commit is contained in:
Eugenio Romano
2018-08-14 16:50:12 +01:00
committed by GitHub
parent 8c4492642b
commit 54fbe61c08
1042 changed files with 64961 additions and 24325 deletions
-217
View File
@@ -1,217 +0,0 @@
{
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
"project": {
"name": "myapp"
},
"apps": [
{
"name": "dist",
"root": "demo-shell/src",
"outDir": "demo-shell/dist",
"assets": [
"assets",
"favicon.ico",
"app.config.json",
"versions.json",
{
"glob": "**/*",
"input": "../resources",
"output": "./resources"
},
{
"glob": "**/*",
"input": "./app/components/lazy-loading/i18n",
"output": "./resources/lazy-loading/i18n"
},
{
"glob": "**/*",
"input": "../../node_modules/@alfresco/adf-core/prebuilt-themes",
"output": "./assets/prebuilt-themes"
},
{
"glob": "**/*",
"input": "../../node_modules/@alfresco/adf-core/bundles/assets",
"output": "./assets/"
},
{
"glob": "**/*",
"input": "../../node_modules/@alfresco/adf-insights/bundles/assets",
"output": "./assets/"
},
{
"glob": "**/*",
"input": "../../node_modules/@alfresco/adf-process-services/bundles/assets",
"output": "./assets/"
},
{
"glob": "**/*",
"input": "../../node_modules/@alfresco/adf-content-services/bundles/assets",
"output": "./assets/"
},
{
"glob": "pdf.worker.js",
"input": "../../node_modules/pdfjs-dist/build",
"output": "./"
}
],
"index": "index.html",
"main": "main.ts",
"polyfills": "polyfills.ts",
"test": "test.ts",
"tsconfig": "tsconfig.app.json",
"testTsconfig": "tsconfig.spec.json",
"prefix": "app",
"styles": [
"styles.scss",
"custom-style.scss"
],
"stylePreprocessorOptions": {
"includePaths": [
"./node_modules/"
]
},
"scripts": [
"../../node_modules/pdfjs-dist/build/pdf.js",
"../../node_modules/pdfjs-dist/web/pdf_viewer.js",
"../../node_modules/raphael/raphael.min.js",
"../../node_modules/moment/min/moment.min.js"
],
"environmentSource": "environments/environment.ts",
"environments": {
"dev": "environments/environment.ts",
"prod": "environments/environment.prod.ts"
}
},
{
"name": "dev",
"root": "demo-shell/src",
"outDir": "demo-shell/dist",
"assets": [
"assets",
"app.config.json",
"versions.json",
{
"glob": "**/*",
"input": "./assets",
"output": "./assets"
},
{
"glob": "app.config.json",
"input": "./",
"output": "./"
},
{
"glob": "versions.json",
"input": "./",
"output": "./"
},
{
"glob": "**/*",
"input": "../resources",
"output": "./resources"
},
{
"glob": "**/*",
"input": "./app/components/lazy-loading/i18n",
"output": "./resources/lazy-loading/i18n"
},
{
"glob": "**/*",
"input": "../../lib/dist/core/prebuilt-themes",
"output": "./assets/prebuilt-themes"
},
{
"glob": "**/*",
"input": "../../lib/core/assets",
"output": "./assets"
},
{
"glob": "**/*",
"input": "../../lib/process-services/assets",
"output": "./assets"
},
{
"glob": "**/*",
"input": "../../lib/content-services/assets",
"output": "./assets"
},
{
"glob": "**/*",
"input": "../../lib/core/i18n",
"output": "./assets/adf-core/i18n"
},
{
"glob": "**/*",
"input": "../../lib/content-services/i18n",
"output": "./assets/adf-content-services/i18n"
},
{
"glob": "**/*",
"input": "../../lib/process-services/i18n",
"output": "./assets/adf-process-services/i18n"
},
{
"glob": "**/*",
"input": "../../lib/insights/i18n",
"output": "./assets/adf-insights/i18n"
},
{
"glob": "pdf.worker.js",
"input": "../../node_modules/pdfjs-dist/build",
"output": "./"
}
],
"index": "index.html",
"main": "main.ts",
"polyfills": "polyfills.ts",
"test": "test.ts",
"tsconfig": "tsconfig.dev.json",
"testTsconfig": "tsconfig.spec.json",
"prefix": "app-dev",
"styles": [
"styles.scss",
"custom-style-dev.scss"
],
"stylePreprocessorOptions": {
"includePaths": [
"../../lib/"
]
},
"scripts": [
"../../node_modules/pdfjs-dist/build/pdf.js",
"../../node_modules/pdfjs-dist/web/pdf_viewer.js",
"../../node_modules/raphael/raphael.min.js",
"../../node_modules/moment/min/moment.min.js"
],
"environmentSource": "environments/environment.ts",
"environments": {
"dev": "environments/environment.ts",
"prod": "environments/environment.prod.ts"
}
}
],
"e2e": {
"protractor": {
"config": "./demo-shell/protractor.conf.js"
}
},
"lint": [
{
"project": "./demo-shell/src/tsconfig.app.json",
"exclude": "**/node_modules/**/*"
}
],
"test": {
"karma": {
"config": "./demo-shell/karma.conf.js"
}
},
"defaults": {
"styleExt": "scss",
"component": {
},
"serve": {
"port": 3000
}
}
}
+4
View File
@@ -4,6 +4,8 @@ bundles
workspace.xml
.idea/
dist/
e2e-output/
e2e/downloads/
ng2-components/coverage/
!systemjs.config.js
demo-shell-ng2/app/components/router/
@@ -24,3 +26,5 @@ src/environments/
/lib/config/exportCheck.js
/lib/config/export-check/export-new.json
/lib/config/export-check/exportCheck.js
/docs/sourceinfo
/docs/docs.json
+16 -7
View File
@@ -2,8 +2,9 @@ language: node_js
dist: trusty
sudo: required
node_js:
- "8"
# Use the explicit NodeJS LTS version 8.9.4 to avoid any automatic upgrade of the version.
- '8.9.4'
addons:
chrome: stable
before_script:
@@ -14,6 +15,7 @@ before_install:
- export CHROME_BIN=chromium-browser
- export DISPLAY=:99.0
- sh -e /etc/init.d/xvfb start
- sleep 3 # give xvfb some time to start
env:
matrix:
@@ -64,13 +66,10 @@ script:
jobs:
include:
- stage: Demo shell prod && Demo shell e2e && Check ADF exports
script: ./scripts/test-dist.sh -n $TRAVIS_BUILD_NUMBER && (./scripts/pr-publish.sh -n $TRAVIS_BUILD_NUMBER -r $REPO_DOCKER -u $USERNAME_DOCKER -p $PASSWORD_DOCKER || exit 1)
- # Test Update version 2.0.0
- stage: Test Update version 2.0.0
script: ./scripts/test-e2e-bc.sh
- # Test expors
script: npm run test-export
- stage: Update Apps dependencies
- # Test Update generator-ng2-alfresco-app
if: tag =~ .*beta.*
script: ./scripts/update-project.sh -gnu -t $GITHUB_TOKEN -n generator-ng2-alfresco-app
@@ -86,7 +85,17 @@ jobs:
- # Test Update alfresco-modeler-app
if: tag =~ .*beta.*
script: ./scripts/update-project.sh -gnu -t $GITHUB_TOKEN -n alfresco-modeler-app
- stage: Deploy PR
- stage: e2e Test
script: ./scripts/test-e2e-lib.sh -host localhost:4200 -proxy $E2E_HOST -u $E2E_USERNAME -p $E2E_PASSWORD -e $E2E_EMAIL -b -save -dev -timeout 40000 --folder core
- # Test process-services
script: ./scripts/test-e2e-lib.sh -host localhost:4200 -proxy $E2E_HOST -u $E2E_USERNAME -p $E2E_PASSWORD -e $E2E_EMAIL -b -save -dev -timeout 40000 --folder process-services
- # Test content-services
script: ./scripts/test-e2e-lib.sh -host localhost:4200 -proxy $E2E_HOST -u $E2E_USERNAME -p $E2E_PASSWORD -e $E2E_EMAIL -b -save -dev -timeout 40000 --folder content-services
- # Test insights
script: ./scripts/test-e2e-lib.sh -host localhost:4200 -proxy $E2E_HOST -u $E2E_USERNAME -p $E2E_PASSWORD -e $E2E_EMAIL -b -save -dev -timeout 40000 --folder insights
- stage: Create Docker PR
script: ./scripts/test-dist.sh -n $TRAVIS_BUILD_NUMBER && (./scripts/pr-publish.sh -n $TRAVIS_BUILD_NUMBER -r $REPO_DOCKER -u $USERNAME_DOCKER -p $PASSWORD_DOCKER || exit 1)
- stage: Deploy Docker PR
script: node ./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
# jobs:
+1 -1
View File
@@ -73,6 +73,6 @@ In ADF we are encouraging the use of behavior-driven development (BDD)
### Test Name
Any test should follow the naming convetion:
Any test should follow the naming convention:
[Should] [ ***Expected Behavior** ] [when/after/before] [ ***State Under Test*** ].
+698
View File
@@ -0,0 +1,698 @@
{
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
"version": 1,
"newProjectRoot": "projects",
"projects": {
"dist": {
"root": "demo-shell",
"sourceRoot": "demo-shell/src",
"projectType": "application",
"architect": {
"build": {
"builder": "@angular-devkit/build-angular:browser",
"options": {
"outputPath": "demo-shell/dist",
"index": "demo-shell/src/index.html",
"main": "demo-shell/src/main.ts",
"tsConfig": "demo-shell/src/tsconfig.app.json",
"polyfills": "demo-shell/src/polyfills.ts",
"stylePreprocessorOptions": {
"includePaths": [
"demo-shell/src/node_modules"
]
},
"assets": [
"demo-shell/src/assets",
"demo-shell/src/favicon.ico",
"demo-shell/src/app.config.json",
"demo-shell/src/versions.json",
{
"glob": "**/*",
"input": "demo-shell/resources",
"output": "/resources"
},
{
"glob": "**/*",
"input": "demo-shell/src/app/components/lazy-loading/i18n",
"output": "/resources/lazy-loading/i18n"
},
{
"glob": "**/*",
"input": "node_modules/@alfresco/adf-core/prebuilt-themes",
"output": "/assets/prebuilt-themes"
},
{
"glob": "**/*",
"input": "node_modules/@alfresco/adf-core/bundles/assets",
"output": "/assets"
},
{
"glob": "**/*",
"input": "node_modules/@alfresco/adf-insights/bundles/assets",
"output": "/assets"
},
{
"glob": "**/*",
"input": "node_modules/@alfresco/adf-process-services/bundles/assets",
"output": "/assets"
},
{
"glob": "**/*",
"input": "node_modules/@alfresco/adf-content-services/bundles/assets",
"output": "/assets"
},
{
"glob": "pdf.worker.min.js",
"input": "node_modules/pdfjs-dist/build",
"output": "/"
},
{
"glob": "**/*",
"input": "node_modules/ngx-monaco-editor/assets/monaco",
"output": "/assets/monaco/"
}
],
"styles": [
"demo-shell/src/styles.scss",
"demo-shell/src/custom-style.scss"
],
"scripts": [
"node_modules/pdfjs-dist/build/pdf.js",
"node_modules/pdfjs-dist/web/pdf_viewer.js",
"node_modules/raphael/raphael.min.js",
"node_modules/moment/min/moment.min.js"
]
},
"configurations": {
"production": {
"optimization": true,
"outputHashing": "all",
"sourceMap": false,
"extractCss": true,
"namedChunks": false,
"aot": true,
"extractLicenses": true,
"vendorChunk": true,
"buildOptimizer": true,
"verbose": true,
"fileReplacements": [
{
"replace": "demo-shell/src/environments/environment.ts",
"with": "demo-shell/src/environments/environment.prod.ts"
}
]
}
}
},
"serve": {
"builder": "@angular-devkit/build-angular:dev-server",
"options": {
"browserTarget": "dist:build",
"port": 3000
},
"configurations": {
"production": {
"browserTarget": "dist:build:production"
}
}
},
"extract-i18n": {
"builder": "@angular-devkit/build-angular:extract-i18n",
"options": {
"browserTarget": "dist:build"
}
},
"test": {
"builder": "@angular-devkit/build-angular:karma",
"options": {
"main": "demo-shell/src/test.ts",
"karmaConfig": "./demo-shell/karma.conf.js",
"polyfills": "demo-shell/src/polyfills.ts",
"tsConfig": "demo-shell/src/tsconfig.spec.json",
"scripts": [
"node_modules/pdfjs-dist/build/pdf.js",
"node_modules/pdfjs-dist/web/pdf_viewer.js",
"node_modules/raphael/raphael.min.js",
"node_modules/moment/min/moment.min.js"
],
"styles": [
"demo-shell/src/styles.scss",
"demo-shell/src/custom-style.scss"
],
"assets": [
"demo-shell/src/assets",
"demo-shell/src/favicon.ico",
"demo-shell/src/app.config.json",
"demo-shell/src/versions.json",
{
"glob": "**/*",
"input": "demo-shell/resources",
"output": "/resources"
},
{
"glob": "**/*",
"input": "demo-shell/src/app/components/lazy-loading/i18n",
"output": "/resources/lazy-loading/i18n"
},
{
"glob": "**/*",
"input": "node_modules/@alfresco/adf-core/prebuilt-themes",
"output": "/assets/prebuilt-themes"
},
{
"glob": "**/*",
"input": "node_modules/@alfresco/adf-core/bundles/assets",
"output": "/assets"
},
{
"glob": "**/*",
"input": "node_modules/@alfresco/adf-insights/bundles/assets",
"output": "/assets"
},
{
"glob": "**/*",
"input": "node_modules/@alfresco/adf-process-services/bundles/assets",
"output": "/assets"
},
{
"glob": "**/*",
"input": "node_modules/@alfresco/adf-content-services/bundles/assets",
"output": "/assets"
},
{
"glob": "pdf.worker.min.js",
"input": "node_modules/pdfjs-dist/build",
"output": "/"
},
{
"glob": "**/*",
"input": ".node_modules/ngx-monaco-editor/assets/monaco",
"output": "/assets/monaco/"
}
]
}
},
"lint": {
"builder": "@angular-devkit/build-angular:tslint",
"options": {
"tsConfig": [
"./demo-shell/src/tsconfig.app.json"
],
"exclude": [
"**/node_modules/**/*"
]
}
}
}
},
"dev": {
"root": "demo-shell",
"sourceRoot": "demo-shell/src",
"projectType": "application",
"architect": {
"build": {
"builder": "@angular-devkit/build-angular:browser",
"options": {
"outputPath": "demo-shell/dist",
"index": "demo-shell/src/index.html",
"main": "demo-shell/src/main.ts",
"tsConfig": "demo-shell/src/tsconfig.dev.json",
"polyfills": "demo-shell/src/polyfills.ts",
"stylePreprocessorOptions": {
"includePaths": [
"lib"
]
},
"assets": [
"demo-shell/src/assets",
"demo-shell/src/app.config.json",
"demo-shell/src/versions.json",
{
"glob": "**/*",
"input": "demo-shell/src/assets",
"output": "/assets"
},
{
"glob": "app.config.json",
"input": "demo-shell/src",
"output": "/"
},
{
"glob": "versions.json",
"input": "demo-shell/src",
"output": "/"
},
{
"glob": "**/*",
"input": "demo-shell/resources",
"output": "/resources"
},
{
"glob": "**/*",
"input": "demo-shell/src/app/components/lazy-loading/i18n",
"output": "/resources/lazy-loading/i18n"
},
{
"glob": "**/*",
"input": "lib/dist/core/prebuilt-themes",
"output": "/assets/prebuilt-themes"
},
{
"glob": "**/*",
"input": "lib/core/assets",
"output": "/assets"
},
{
"glob": "**/*",
"input": "lib/process-services/assets",
"output": "/assets"
},
{
"glob": "**/*",
"input": "lib/content-services/assets",
"output": "/assets"
},
{
"glob": "**/*",
"input": "lib/core/i18n",
"output": "/assets/adf-core/i18n"
},
{
"glob": "**/*",
"input": "lib/content-services/i18n",
"output": "/assets/adf-content-services/i18n"
},
{
"glob": "**/*",
"input": "lib/process-services/i18n",
"output": "/assets/adf-process-services/i18n"
},
{
"glob": "**/*",
"input": "lib/insights/i18n",
"output": "/assets/adf-insights/i18n"
},
{
"glob": "pdf.worker.min.js",
"input": "node_modules/pdfjs-dist/build",
"output": "/"
},
{
"glob": "**/*",
"input": "node_modules/ngx-monaco-editor/assets/monaco",
"output": "/assets/monaco/"
}
],
"styles": [
"demo-shell/src/styles.scss",
"demo-shell/src/custom-style-dev.scss"
],
"scripts": [
"node_modules/pdfjs-dist/build/pdf.js",
"node_modules/pdfjs-dist/web/pdf_viewer.js",
"node_modules/raphael/raphael.min.js",
"node_modules/moment/min/moment.min.js"
]
},
"configurations": {
"production": {
"optimization": true,
"outputHashing": "all",
"sourceMap": false,
"extractCss": true,
"namedChunks": false,
"aot": true,
"extractLicenses": true,
"vendorChunk": true,
"buildOptimizer": true,
"verbose": true,
"fileReplacements": [
{
"replace": "demo-shell/src/environments/environment.ts",
"with": "demo-shell/src/environments/environment.prod.ts"
}
]
}
}
},
"serve": {
"builder": "@angular-devkit/build-angular:dev-server",
"options": {
"browserTarget": "dev:build",
"port": 3000
},
"configurations": {
"production": {
"browserTarget": "dev:build:production"
}
}
},
"extract-i18n": {
"builder": "@angular-devkit/build-angular:extract-i18n",
"options": {
"browserTarget": "dev:build"
}
},
"test": {
"builder": "@angular-devkit/build-angular:karma",
"options": {
"main": "demo-shell/src/test.ts",
"karmaConfig": "./demo-shell/karma.conf.js",
"polyfills": "demo-shell/src/polyfills.ts",
"tsConfig": "demo-shell/src/tsconfig.spec.json",
"scripts": [
"node_modules/pdfjs-dist/build/pdf.js",
"node_modules/pdfjs-dist/web/pdf_viewer.js",
"node_modules/raphael/raphael.min.js",
"node_modules/moment/min/moment.min.js"
],
"styles": [
"demo-shell/src/styles.scss",
"demo-shell/src/custom-style-dev.scss"
],
"assets": [
"demo-shell/src/assets",
"demo-shell/src/app.config.json",
"demo-shell/src/versions.json",
{
"glob": "**/*",
"input": "demo-shell/src/assets",
"output": "/assets"
},
{
"glob": "app.config.json",
"input": "demo-shell/src",
"output": "/"
},
{
"glob": "versions.json",
"input": "demo-shell/src",
"output": "/"
},
{
"glob": "**/*",
"input": "demo-shell/resources",
"output": "/resources"
},
{
"glob": "**/*",
"input": "demo-shell/src/app/components/lazy-loading/i18n",
"output": "/resources/lazy-loading/i18n"
},
{
"glob": "**/*",
"input": "lib/dist/core/prebuilt-themes",
"output": "/assets/prebuilt-themes"
},
{
"glob": "**/*",
"input": "lib/core/assets",
"output": "/assets"
},
{
"glob": "**/*",
"input": "lib/process-services/assets",
"output": "/assets"
},
{
"glob": "**/*",
"input": "lib/content-services/assets",
"output": "/assets"
},
{
"glob": "**/*",
"input": "lib/core/i18n",
"output": "/assets/adf-core/i18n"
},
{
"glob": "**/*",
"input": "lib/content-services/i18n",
"output": "/assets/adf-content-services/i18n"
},
{
"glob": "**/*",
"input": "lib/process-services/i18n",
"output": "/assets/adf-process-services/i18n"
},
{
"glob": "**/*",
"input": "lib/insights/i18n",
"output": "/assets/adf-insights/i18n"
},
{
"glob": "pdf.worker.min.js",
"input": "node_modules/pdfjs-dist/build",
"output": "/"
},
{
"glob": "**/*",
"input": "/node_modules/ngx-monaco-editor/assets/monaco",
"output": "/assets/monaco/"
}
]
}
},
"lint": {
"builder": "@angular-devkit/build-angular:tslint",
"options": {
"tsConfig": [
"./demo-shell/src/tsconfig.app.json"
],
"exclude": [
"**/node_modules/**/*"
]
}
}
}
},
"demo-shell-e2e": {
"root": "demo-shell",
"sourceRoot": "demo-shell/e2e",
"projectType": "application",
"architect": {
"e2e": {
"builder": "@angular-devkit/build-angular:protractor",
"options": {
"protractorConfig": "./protractor.conf.js",
"devServerTarget": "dist:serve"
}
},
"lint": {
"builder": "@angular-devkit/build-angular:tslint",
"options": {
"tsConfig": [],
"exclude": [
"**/node_modules/**/*"
]
}
}
}
},
"lib-e2e": {
"root": "demo-shell",
"sourceRoot": "./demo-shell",
"projectType": "application",
"architect": {
"serve": {
"builder": "@angular-devkit/build-angular:dev-server",
"options": {
"proxyConfig": "./e2e/proxy.conf.js",
"browserTarget": "dev:build",
"port": 3000
},
"configurations": {
"production": {
"browserTarget": "dev:build:production"
}
}
},
"e2e": {
"builder": "@angular-devkit/build-angular:protractor",
"options": {
"protractorConfig": "./protractor.conf.js",
"devServerTarget": "lib-e2e:serve"
}
},
"lint": {
"builder": "@angular-devkit/build-angular:tslint",
"options": {
"tsConfig": [],
"exclude": [
"**/node_modules/**/*"
]
}
}
}
},
"core": {
"root": "lib/core",
"sourceRoot": "lib/core/src",
"projectType": "library",
"prefix": "adf",
"architect": {
"build": {
"builder": "@angular-devkit/build-ng-packagr:build",
"options": {
"tsConfig": "lib/core/tsconfig.json",
"project": "lib/core/ng-package.json"
},
"configurations": {
"production": {
"project": "lib/core/ng-package.json"
}
}
},
"test": {
"builder": "@angular-devkit/build-angular:karma",
"options": {
"main": "lib/core/test.ts",
"tsConfig": "lib/core/tsconfig.json",
"karmaConfig": "lib/core/karma.conf.js"
}
},
"lint": {
"builder": "@angular-devkit/build-angular:tslint",
"options": {
"tsConfig": [
"lib/core/tsconfig.json",
"lib/core/tsconfig.json"
],
"exclude": [
"**/node_modules/**"
]
}
}
}
},
"content-services": {
"root": "lib/content-services",
"sourceRoot": "lib/content-services/src",
"projectType": "library",
"prefix": "adf",
"architect": {
"build": {
"builder": "@angular-devkit/build-ng-packagr:build",
"options": {
"tsConfig": "lib/content-services/tsconfig.json",
"project": "lib/content-services/ng-package.json"
},
"configurations": {
"production": {
"project": "lib/content-services/ng-package.json"
}
}
},
"test": {
"builder": "@angular-devkit/build-angular:karma",
"options": {
"main": "lib/content-services/test.ts",
"tsConfig": "lib/content-services/tsconfig.json",
"karmaConfig": "lib/content-services/karma.conf.js"
}
},
"lint": {
"builder": "@angular-devkit/build-angular:tslint",
"options": {
"tsConfig": [
"lib/content-services/tsconfig.json",
"lib/content-services/tsconfig.json"
],
"exclude": [
"**/node_modules/**"
]
}
}
}
},
"process-services": {
"root": "lib/process-services",
"sourceRoot": "lib/process-services/src",
"projectType": "library",
"prefix": "adf",
"architect": {
"build": {
"builder": "@angular-devkit/build-ng-packagr:build",
"options": {
"tsConfig": "lib/process-services/tsconfig.json",
"project": "lib/process-services/ng-package.json"
},
"configurations": {
"production": {
"project": "lib/process-services/ng-package.json"
}
}
},
"test": {
"builder": "@angular-devkit/build-angular:karma",
"options": {
"main": "lib/process-services/test.ts",
"tsConfig": "lib/process-services/tsconfig.json",
"karmaConfig": "lib/process-services/karma.conf.js"
}
},
"lint": {
"builder": "@angular-devkit/build-angular:tslint",
"options": {
"tsConfig": [
"lib/process-services/tsconfig.json",
"lib/process-services/tsconfig.json"
],
"exclude": [
"**/node_modules/**"
]
}
}
}
},
"insights": {
"root": "lib/insights",
"sourceRoot": "lib/insights/src",
"projectType": "library",
"prefix": "adf",
"architect": {
"build": {
"builder": "@angular-devkit/build-ng-packagr:build",
"options": {
"tsConfig": "lib/insights/tsconfig.json",
"project": "lib/insights/ng-package.json"
},
"configurations": {
"production": {
"project": "lib/insights/ng-package.json"
}
}
},
"test": {
"builder": "@angular-devkit/build-angular:karma",
"options": {
"main": "lib/insights/test.ts",
"tsConfig": "lib/insights/tsconfig.json",
"karmaConfig": "lib/insights/karma.conf.js"
}
},
"lint": {
"builder": "@angular-devkit/build-angular:tslint",
"options": {
"tsConfig": [
"lib/insights/tsconfig.json",
"lib/insights/tsconfig.json"
],
"exclude": [
"**/node_modules/**"
]
}
}
}
}
},
"defaultProject": "dist",
"schematics": {
"@schematics/angular:component": {
"prefix": "app",
"styleext": "scss"
},
"@schematics/angular:directive": {
"prefix": "app"
}
}
}
+17
View File
@@ -1,3 +1,20 @@
/*!
* @license
* Copyright 2016 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 { MyappPage } from './app.po';
describe('myapp App', () => {
+17
View File
@@ -1,3 +1,20 @@
/*!
* @license
* Copyright 2016 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 { browser, element, by } from 'protractor';
export class MyappPage {
+50 -39
View File
@@ -2,43 +2,54 @@
// https://karma-runner.github.io/0.13/config/configuration-file.html
module.exports = function (config) {
config.set({
basePath: './',
frameworks: ['jasmine', '@angular/cli'],
plugins: [
require('karma-jasmine'),
require('karma-chrome-launcher'),
require('karma-jasmine-html-reporter'),
require('karma-coverage-istanbul-reporter'),
require('@angular/cli/plugins/karma')
],
client:{
clearContext: false // leave Jasmine Spec Runner output visible in browser
},
files: [
{ pattern: './src/test.ts', watched: false }
],
preprocessors: {
'./src/test.ts': ['@angular/cli']
},
mime: {
'text/x-typescript': ['ts','tsx']
},
coverageIstanbulReporter: {
reports: [ 'html', 'lcovonly' ],
fixWebpackSourcePaths: true
},
angularCli: {
environment: 'dev'
},
reporters: config.angularCli && config.angularCli.codeCoverage
? ['progress', 'coverage-istanbul']
: ['progress', 'kjhtml'],
port: 9876,
colors: true,
logLevel: config.LOG_INFO,
autoWatch: true,
browsers: ['Chrome'],
singleRun: false
});
config.set({
basePath: './',
frameworks: ['jasmine', '@angular-devkit/build-angular'],
plugins: [
require('karma-jasmine'),
require('karma-chrome-launcher'),
require('karma-jasmine-html-reporter'),
require('karma-coverage-istanbul-reporter'),
require('@angular-devkit/build-angular/plugins/karma'),
require('karma-mocha-reporter')
],
client: {
clearContext: false // leave Jasmine Spec Runner output visible in browser
},
files: [],
preprocessors: {},
mime: {
'text/x-typescript': ['ts', 'tsx']
},
coverageIstanbulReporter: {
dir: require('path').join(__dirname, 'coverage'), reports: ['html', 'lcovonly'],
fixWebpackSourcePaths: true
},
customLaunchers: {
ChromeHeadless: {
base: 'Chrome',
flags: [
'--no-sandbox',
'--headless',
'--disable-gpu',
'--remote-debugging-port=9222'
]
}
},
captureTimeout: 180000,
browserDisconnectTimeout: 180000,
browserDisconnectTolerance: 3,
browserNoActivityTimeout: 300000,
reporters: ['mocha', 'kjhtml'],
port: 9876,
colors: true,
logLevel: config.LOG_INFO,
autoWatch: true,
browsers: ['Chrome'],
singleRun: false
});
};
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "Alfresco-ADF-Angular-Demo",
"description": "Demo shell for Alfresco Angular components",
"version": "2.4.0",
"version": "2.5.0",
"author": "Alfresco Software, Ltd.",
"repository": {
"type": "git",
-30
View File
@@ -1,30 +0,0 @@
// Protractor configuration file, see link for more information
// https://github.com/angular/protractor/blob/master/lib/config.ts
const { SpecReporter } = require('jasmine-spec-reporter');
exports.config = {
allScriptsTimeout: 11000,
specs: [
'./e2e/**/*.e2e-spec.ts'
],
capabilities: {
'browserName': 'chrome'
},
directConnect: true,
baseUrl: 'http://localhost:4200/',
framework: 'jasmine',
jasmineNodeOpts: {
showColors: true,
defaultTimeoutInterval: 30000,
print: function() {}
},
beforeLaunch: function() {
require('ts-node').register({
project: './demo-shell/e2e/tsconfig.e2e.json'
});
},
onPrepare() {
jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));
}
};
+21 -21
View File
@@ -1,25 +1,25 @@
module.exports = {
"/alfresco": {
"target": "http://localhost:8080",
"secure": false,
"pathRewrite": {
"^/alfresco/alfresco": ""
"/alfresco": {
"target": "http://localhost:8080",
"secure": false,
"pathRewrite": {
"^/alfresco/alfresco": ""
},
"changeOrigin": true,
// workaround for REPO-2260
onProxyRes: function (proxyRes, req, res) {
const header = proxyRes.headers['www-authenticate'];
if (header && header.startsWith('Basic')) {
proxyRes.headers['www-authenticate'] = 'x' + header;
}
}
},
"changeOrigin": true,
// workaround for REPO-2260
onProxyRes: function (proxyRes, req, res) {
const header = proxyRes.headers['www-authenticate'];
if (header && header.startsWith('Basic')) {
proxyRes.headers['www-authenticate'] = 'x' + header;
}
"/activiti-app": {
"target": "http://localhost:9999",
"secure": false,
"pathRewrite": {
"^/activiti-app/activiti-app": ""
},
"changeOrigin": true
}
},
"/activiti-app": {
"target": "http://localhost:9999",
"secure": false,
"pathRewrite": {
"^/activiti-app/activiti-app": ""
},
"changeOrigin": true
}
};
+44 -6
View File
@@ -6,14 +6,27 @@
"PROPERTIES": "Eigenschaften",
"VERSIONS": "Versionen"
},
"HOME": {
"TITLE": "Angular-Komponenten für Alfresco",
"DOCUMENTATION": "Dokumentation"
},
"LOGOUT": {
"TITLE": "Seite 'Abmelden'",
"SUB_TITLE": "Sie sind nun abgemeldet.",
"LOGIN": "Anmelden",
"HOME": "Startseite"
},
"ADF_VERSION_MANAGER": {
"ALLOW_DELETE": "Löschen zulassen",
"SHOW_COMMENTS": "Anmerkungen zu Versionen einblenden",
"ALLOW_DOWNLOAD": "Versions-Download zulassen",
"READ_ONLY": "Schreibgeschützt"
"ALLOW_DOWNLOAD": "Download zulassen",
"READ_ONLY": "Schreibgeschützt",
"COMMENTS": "Kommentare anzeigen"
},
"PERSONAL-FILES": "Persönliche Dateien",
"WARN-MULTIPLE-UPLOADS": "Warnung bei Mehrfach-Uploads anzeigen.",
"CUSTOM-PERMISSION-MESSAGE": "Meldung 'Benutzerdefinierte Berechtigung aktivieren'",
"MEDIUM-TIME-FORMAT": "Mittleres Zeitformat für Dokumentliste aktivieren",
"SEARCH": {
"RADIO": {
"NONE": "Keine",
@@ -39,11 +52,19 @@
"TITLE": "Metadaten"
}
},
"COMMENTS": {
"ADD_COMMENT": "Hinzufügen"
},
"APP_LAYOUT": {
"APP_NAME": "ADF-Demoanwendung",
"HOME": "Startseite",
"NODE-SELECTOR": "Node-Auswahl",
"CONTENT_SERVICES": "Content Services",
"BREADCRUMB": "Breadcrumb",
"NOTIFICATIONS": "Benachrichtigungen",
"TASK_LIST": "Aufgabenliste",
"PROCESS_LIST": "Prozessliste",
"CARD_VIEW": "CardView",
"PROCESS_SERVICES": "Process Services",
"LOGIN": "Anmelden",
"CUSTOM_SOURCES": "Benutzerdefinierte Quellen",
@@ -58,13 +79,15 @@
"TRASHCAN": "Papierkorb",
"SOCIAL": "Soziale Funktionen",
"SETTINGS": "Einstellungen",
"CONFIG-EDITOR": "Konfigurations-Editor",
"OVERLAY_VIEWER": "Overlay-Viewer",
"ABOUT": "Info",
"SEARCH": "Erweiterte Suche",
"EXTENDED_SEARCH_QUERY_BODY": "Erweiterte Suche mit Abfragetext",
"WORD_TO_SEARCH": "Suchbegriff",
"SEARCH_CREATED_BY": "Erstellt von",
"SEARCH_SERVICE_APPROACH": "Aktivieren Sie diese Option, um die Eingabeeigenschaft zu deaktivieren und die Nutzung des Services zu konfigurieren"
"SEARCH_SERVICE_APPROACH": "Aktivieren Sie diese Option, um die Eingabeeigenschaft zu deaktivieren und die Nutzung des Services zu konfigurieren",
"HEADER_DATA": "Headerdaten"
},
"TRASHCAN": {
"ACTIONS": {
@@ -79,6 +102,7 @@
},
"DOCUMENT_LIST": {
"MULTISELECT_CHECKBOXES": "Mehrfachauswahl (mit Kontrollkästchen)",
"THUMBNAILS": "Miniaturansichten aktivieren",
"MULTIPLE_FILE_UPLOAD": "Mehrere Dateien hochladen",
"FOLDER_UPLOAD": "Ordner hochladen",
"CUSTOM_FILTER": "Filter für benutzerdefinierte Erweiterungen",
@@ -154,7 +178,8 @@
"START-TASK": "Aufgabe starten",
"START-PROCESS": "Prozess starten",
"PROCESS-AUDIT-LOG": "Prozess-Audit-Protokoll",
"TASK-AUDIT-LOG": "Aufgaben-Audit-Protokoll"
"TASK-AUDIT-LOG": "Aufgaben-Audit-Protokoll",
"TASK-SHOW-HEADER": "Detailsheader anzeigen"
},
"FORM-LIST": {
"STORE": "Speichern",
@@ -170,7 +195,10 @@
"LOGIN": {
"CONTENT_SERVICES": "Content Services",
"PROCESS_SERVICES": "Process Services",
"LOGIN_FOOTER": "Login-Fußzeile"
"LOGIN_FOOTER": "Login-Fußzeile",
"SHOW_REMEMBERME": "'Benutzername und Passwort speichern' anzeigen",
"SHOW_SUCCESS_ROUTE": "Erfolgsroute anzeigen",
"CUSTOM_LOGO": "Benutzerdefiniertes Logo"
},
"SEARCH": {
"RESULTS": "Ergebnisse durchsuchen",
@@ -188,5 +216,15 @@
"DEMO_PERMISSION": {
"INHERIT_PERMISSION_BUTTON": "Berechtigungen erben",
"INHERITED_PERMISSIONS_BUTTON": "Berechtigungen geerbt"
}
},
"TASK_LIST_DEMO": {
"APP_ID_REQUIRED_ERROR": "App-ID einfügen",
"APP_ID_TYPE_ERROR": "App-ID muss eine Zahl sein"
},
"PROCESS_LIST_DEMO": {
"APP_ID_REQUIRED_ERROR": "App-ID einfügen",
"APP_ID_TYPE_ERROR": "App-ID muss eine Zahl sein"
},
"GROUP-TITLE1-TRANSLATION-KEY": "Übersetzung benutzerdefinierter Titel 1",
"GROUP-TITLE2-TRANSLATION-KEY": "Übersetzung benutzerdefinierter Titel 2"
}
+37 -6
View File
@@ -20,10 +20,14 @@
"ALLOW_DELETE": "Allow delete",
"SHOW_COMMENTS": "Show comments on versions",
"ALLOW_DOWNLOAD": "Enable version download",
"READ_ONLY": "Read-only"
"READ_ONLY": "Read-only",
"ALLOW_DOWNLOAD": "Allow Download",
"COMMENTS": "Show comments"
},
"PERSONAL-FILES": "Personal Files",
"WARN-MULTIPLE-UPLOADS": "Display warning for multiple uploads.",
"CUSTOM-PERMISSION-MESSAGE": "Enable custom permission message",
"MEDIUM-TIME-FORMAT": "Enable medium time format for document list",
"SEARCH": {
"RADIO": {
"NONE": "None",
@@ -52,8 +56,13 @@
"APP_LAYOUT": {
"APP_NAME": "ADF Demo Application",
"HOME": "Home",
"NODE-SELECTOR": "Node Selector",
"CONTENT_SERVICES": "Content Services",
"BREADCRUMB": "Breadcrumb",
"NOTIFICATIONS": "Notifications",
"TASK_LIST": "Task List",
"PROCESS_LIST": "Process List",
"CARD_VIEW": "CardView",
"PROCESS_SERVICES": "Process Services",
"LOGIN": "Login",
"CUSTOM_SOURCES": "Custom Sources",
@@ -68,6 +77,7 @@
"TRASHCAN": "Trashcan",
"SOCIAL": "Social",
"SETTINGS": "Settings",
"CONFIG-EDITOR": "Configuration Editor",
"OVERLAY_VIEWER": "Overlay Viewer",
"ABOUT": "About",
"SEARCH": "Extended Search",
@@ -75,7 +85,8 @@
"EXTENDED_SEARCH_QUERY_BODY": "Extended Search with Query Body",
"WORD_TO_SEARCH": "Search Word",
"SEARCH_CREATED_BY": "Created By",
"SEARCH_SERVICE_APPROACH": "Check this to disable the input property and configure using the service"
"SEARCH_SERVICE_APPROACH": "Check this to disable the input property and configure using the service",
"HEADER_DATA": "Header Data"
},
"TRASHCAN": {
"ACTIONS": {
@@ -90,7 +101,7 @@
},
"DOCUMENT_LIST": {
"MULTISELECT_CHECKBOXES": "Multiselect (with checkboxes)",
"THUMBNAILS" :"Enable Thumbnails",
"THUMBNAILS": "Enable Thumbnails",
"MULTIPLE_FILE_UPLOAD": "Multiple File Upload",
"FOLDER_UPLOAD": "Folder upload",
"CUSTOM_FILTER": "Custom extensions filter",
@@ -166,7 +177,8 @@
"START-TASK": "Start task",
"START-PROCESS": "Start process",
"PROCESS-AUDIT-LOG": "Process Audit log",
"TASK-AUDIT-LOG": "Task Audit log"
"TASK-AUDIT-LOG": "Task Audit log",
"TASK-SHOW-HEADER": "Show details header"
},
"FORM-LIST": {
"STORE": "Store",
@@ -182,7 +194,10 @@
"LOGIN": {
"CONTENT_SERVICES": "Content Services",
"PROCESS_SERVICES": "Process Services",
"LOGIN_FOOTER": "Login footer"
"LOGIN_FOOTER": "Login footer",
"SHOW_REMEMBERME": "Show remember me",
"SHOW_SUCCESS_ROUTE": "Show success route",
"CUSTOM_LOGO": "Custom Logo"
},
"SEARCH": {
"RESULTS": "Search results",
@@ -200,5 +215,21 @@
"DEMO_PERMISSION": {
"INHERIT_PERMISSION_BUTTON": "Inherit Permission",
"INHERITED_PERMISSIONS_BUTTON": "Permission Inherited"
}
},
"TASK_LIST_DEMO": {
"ERROR_MESSAGE": {
"APP_ID_REQUIRED_ERROR": "Insert App ID",
"APP_ID_TYPE_ERROR": "App ID must be a number",
"NUMBER_TYPE_ERROR": "Value must be a number"
},
"TOOLTIP_MESSAGE": {
"START_INPUT": "Starting page"
}
},
"PROCESS_LIST_DEMO": {
"APP_ID_REQUIRED_ERROR": "Insert App ID",
"APP_ID_TYPE_ERROR": "App ID must be a number"
},
"GROUP-TITLE1-TRANSLATION-KEY": "CUSTOM TITLE TRANSLATION ONE",
"GROUP-TITLE2-TRANSLATION-KEY": "CUSTOM TITLE TRANSLATION TWO"
}
+48 -7
View File
@@ -6,14 +6,27 @@
"PROPERTIES": "Propiedades",
"VERSIONS": "Versiones"
},
"HOME": {
"TITLE": "Componentes angulares para Alfresco",
"DOCUMENTATION": "Documentación"
},
"LOGOUT": {
"TITLE": "Página de cierre de sesión",
"SUB_TITLE": "Se ha cerrado su sesión",
"LOGIN": "Iniciar sesión",
"HOME": "Inicio"
},
"ADF_VERSION_MANAGER": {
"ALLOW_DELETE": "Permitir eliminar",
"SHOW_COMMENTS": "Mostrar comentarios en las versiones",
"ALLOW_DOWNLOAD": "Permitir descarga de la versión",
"READ_ONLY": "Solo lectura"
"ALLOW_DOWNLOAD": "Permitir descarga",
"READ_ONLY": "Solo lectura",
"COMMENTS": "Mostrar comentarios"
},
"PERSONAL-FILES": "Ficheros personales",
"WARN-MULTIPLE-UPLOADS": "Mostrar advertencia de múltiples cargas.",
"CUSTOM-PERMISSION-MESSAGE": "Habilitar mensaje de permiso personalizado",
"MEDIUM-TIME-FORMAT": "Habilitar formato de tiempo mediano para lista de documentos",
"SEARCH": {
"RADIO": {
"NONE": "Ninguno",
@@ -42,8 +55,13 @@
"APP_LAYOUT": {
"APP_NAME": "Aplicación ADF Demo",
"HOME": "Inicio",
"NODE-SELECTOR": "Selector de nodo",
"CONTENT_SERVICES": "Content Services",
"BREADCRUMB": "Ruta de navegación",
"NOTIFICATIONS": "Notificaciones",
"TASK_LIST": "Lista de tareas",
"PROCESS_LIST": "Lista de procesos",
"CARD_VIEW": "CardView",
"PROCESS_SERVICES": "Process Services",
"LOGIN": "Iniciar sesión",
"CUSTOM_SOURCES": "Fuentes personalizadas",
@@ -58,13 +76,15 @@
"TRASHCAN": "Papelera",
"SOCIAL": "Social",
"SETTINGS": "Configuración",
"CONFIG-EDITOR": "Editor de configuración",
"OVERLAY_VIEWER": "Visor de superposición",
"ABOUT": "Acerca de",
"SEARCH": "Búsqueda ampliada",
"EXTENDED_SEARCH_QUERY_BODY": "Búsqueda ampliada con cuerpo de consulta",
"WORD_TO_SEARCH": "Buscar palabra",
"SEARCH_CREATED_BY": "Creado por",
"SEARCH_SERVICE_APPROACH": "Marque esto para desactivar la propiedad de entrada y configurar el uso del servicio"
"SEARCH_SERVICE_APPROACH": "Marque esto para desactivar la propiedad de entrada y configurar el uso del servicio",
"HEADER_DATA": "Datos de encabezado"
},
"TRASHCAN": {
"ACTIONS": {
@@ -79,6 +99,7 @@
},
"DOCUMENT_LIST": {
"MULTISELECT_CHECKBOXES": "Selección múltiple (con casillas)",
"THUMBNAILS": "Habilitar miniaturas",
"MULTIPLE_FILE_UPLOAD": "Carga de varios ficheros",
"FOLDER_UPLOAD": "Carga de carpetas",
"CUSTOM_FILTER": "Filtro de extensiones personalizado",
@@ -154,7 +175,8 @@
"START-TASK": "Iniciar tarea",
"START-PROCESS": "Iniciar proceso",
"PROCESS-AUDIT-LOG": "Registro de auditoría de procesos",
"TASK-AUDIT-LOG": "Registro de auditoría de tareas"
"TASK-AUDIT-LOG": "Registro de auditoría de tareas",
"TASK-SHOW-HEADER": "Mostrar encabezado de detalles"
},
"FORM-LIST": {
"STORE": "Almacenar",
@@ -170,7 +192,10 @@
"LOGIN": {
"CONTENT_SERVICES": "Content Services",
"PROCESS_SERVICES": "Process Services",
"LOGIN_FOOTER": "Pie del inicio de sesión"
"LOGIN_FOOTER": "Pie del inicio de sesión",
"SHOW_REMEMBERME": "Mostrar opción para recordarme",
"SHOW_SUCCESS_ROUTE": "Permitir ruta correcta",
"CUSTOM_LOGO": "Logotipo personalizado"
},
"SEARCH": {
"RESULTS": "Resultados de la búsqueda",
@@ -188,5 +213,21 @@
"DEMO_PERMISSION": {
"INHERIT_PERMISSION_BUTTON": "Heredar permiso",
"INHERITED_PERMISSIONS_BUTTON": "Permiso heredado"
}
}
},
"TASK_LIST_DEMO": {
"ERROR_MESSAGE": {
"APP_ID_REQUIRED_ERROR": "Insertar ID de aplicación",
"APP_ID_TYPE_ERROR": "El ID de aplicación debe ser un número",
"NUMBER_TYPE_ERROR": "El valor ingresado debe ser numérico"
},
"TOOLTIP_MESSAGE": {
"START_INPUT": "Página de inicio"
}
},
"PROCESS_LIST_DEMO": {
"APP_ID_REQUIRED_ERROR": "Insertar ID de aplicación",
"APP_ID_TYPE_ERROR": "El ID de aplicación debe ser un número"
},
"GROUP-TITLE1-TRANSLATION-KEY": "Traducción de título personalizado 1",
"GROUP-TITLE2-TRANSLATION-KEY": "Traducción de título personalizado 2"
}
+48 -7
View File
@@ -6,14 +6,27 @@
"PROPERTIES": "Propriétés",
"VERSIONS": "Versions"
},
"HOME": {
"TITLE": "Composants Angular pour Alfresco",
"DOCUMENTATION": "Documentation"
},
"LOGOUT": {
"TITLE": "Page de déconnexion",
"SUB_TITLE": "Vous êtes bien déconnecté",
"LOGIN": "Connexion",
"HOME": "Accueil"
},
"ADF_VERSION_MANAGER": {
"ALLOW_DELETE": "Autoriser la suppression",
"SHOW_COMMENTS": "Afficher les commentaires sur les versions",
"ALLOW_DOWNLOAD": "Autoriser le téléchargement de la version",
"READ_ONLY": "Lecture seule"
"ALLOW_DOWNLOAD": "Autoriser le téléchargement",
"READ_ONLY": "Lecture seule",
"COMMENTS": "Afficher les commentaires"
},
"PERSONAL-FILES": "Fichiers personnels",
"WARN-MULTIPLE-UPLOADS": "Avertir en cas de téléchargements multiples.",
"CUSTOM-PERMISSION-MESSAGE": "Activer le message de droits d'accès personnalisés",
"MEDIUM-TIME-FORMAT": "Activer le format de date \"medium\" pour la liste de documents",
"SEARCH": {
"RADIO": {
"NONE": "Aucune",
@@ -42,8 +55,13 @@
"APP_LAYOUT": {
"APP_NAME": "Application Démo ADF",
"HOME": "Accueil",
"NODE-SELECTOR": "Sélecteur de nœud",
"CONTENT_SERVICES": "Content Services",
"BREADCRUMB": "Fil d'Ariane",
"NOTIFICATIONS": "Notifications",
"TASK_LIST": "Liste des tâches",
"PROCESS_LIST": "Liste des processus",
"CARD_VIEW": "CardView",
"PROCESS_SERVICES": "Process Services",
"LOGIN": "Connexion",
"CUSTOM_SOURCES": "Sources personnalisées",
@@ -58,13 +76,15 @@
"TRASHCAN": "Corbeille",
"SOCIAL": "Réseaux sociaux",
"SETTINGS": "Paramètres",
"CONFIG-EDITOR": "Editeur de configuration",
"OVERLAY_VIEWER": "Visualisation de la superposition",
"ABOUT": "À propos de",
"SEARCH": "Recherche globale",
"EXTENDED_SEARCH_QUERY_BODY": "Recherche globale sur le corps de la requête",
"WORD_TO_SEARCH": "Mot recherché",
"SEARCH_CREATED_BY": "Créé par",
"SEARCH_SERVICE_APPROACH": "Cochez cette option pour désactiver la propriété d'entrée et configurer à partir du service"
"SEARCH_SERVICE_APPROACH": "Cochez cette option pour désactiver la propriété d'entrée et configurer à partir du service",
"HEADER_DATA": "Données d'en-tête"
},
"TRASHCAN": {
"ACTIONS": {
@@ -79,6 +99,7 @@
},
"DOCUMENT_LIST": {
"MULTISELECT_CHECKBOXES": "Sélection multiple (avec cases à cocher)",
"THUMBNAILS": "Activer les miniatures",
"MULTIPLE_FILE_UPLOAD": "Importation de fichiers multiples",
"FOLDER_UPLOAD": "Importation de dossier",
"CUSTOM_FILTER": "Filtre d'extensions personnalisées",
@@ -154,7 +175,8 @@
"START-TASK": "Démarrer la tâche",
"START-PROCESS": "Démarrer le processus",
"PROCESS-AUDIT-LOG": "Journal d'audit des processus",
"TASK-AUDIT-LOG": "Journal d'audit des tâches"
"TASK-AUDIT-LOG": "Journal d'audit des tâches",
"TASK-SHOW-HEADER": "Afficher l'en-tête de détail"
},
"FORM-LIST": {
"STORE": "Stocker",
@@ -170,7 +192,10 @@
"LOGIN": {
"CONTENT_SERVICES": "Content Services",
"PROCESS_SERVICES": "Process Services",
"LOGIN_FOOTER": "Pied de la page connexion"
"LOGIN_FOOTER": "Pied de la page connexion",
"SHOW_REMEMBERME": "Afficher Mémoriser mes informations",
"SHOW_SUCCESS_ROUTE": "Afficher la success route",
"CUSTOM_LOGO": "Logo personnalisé"
},
"SEARCH": {
"RESULTS": "Résultats de la recherche",
@@ -188,5 +213,21 @@
"DEMO_PERMISSION": {
"INHERIT_PERMISSION_BUTTON": "Hériter les droits d'accès",
"INHERITED_PERMISSIONS_BUTTON": "Droits d'accès hérités"
}
}
},
"TASK_LIST_DEMO": {
"ERROR_MESSAGE": {
"APP_ID_REQUIRED_ERROR": "Insérer l'ID d'application",
"APP_ID_TYPE_ERROR": "L'ID d'application doit être un numéro",
"NUMBER_TYPE_ERROR": "La valeur saisie doit être numérique"
},
"TOOLTIP_MESSAGE": {
"START_INPUT": "Page d'accueil"
}
},
"PROCESS_LIST_DEMO": {
"APP_ID_REQUIRED_ERROR": "Insérer l'ID d'application",
"APP_ID_TYPE_ERROR": "L'ID d'application doit être un numéro"
},
"GROUP-TITLE1-TRANSLATION-KEY": "Titre personnalisé traduction un",
"GROUP-TITLE2-TRANSLATION-KEY": "Titre personnalisé traduction deux"
}
+48 -7
View File
@@ -6,14 +6,27 @@
"PROPERTIES": "Proprietà",
"VERSIONS": "Versione"
},
"HOME": {
"TITLE": "Componenti angolari per Alfresco",
"DOCUMENTATION": "Documentazione"
},
"LOGOUT": {
"TITLE": "Pagina di uscita",
"SUB_TITLE": "Utente disconnesso",
"LOGIN": "Login",
"HOME": "Home"
},
"ADF_VERSION_MANAGER": {
"ALLOW_DELETE": "Consenti eliminazione",
"SHOW_COMMENTS": "Mostra commenti sulle versioni",
"ALLOW_DOWNLOAD": "Abilita download versioni",
"READ_ONLY": "Sola lettura"
"ALLOW_DOWNLOAD": "Abilita download",
"READ_ONLY": "Sola lettura",
"COMMENTS": "Mostra commenti"
},
"PERSONAL-FILES": "File personali",
"WARN-MULTIPLE-UPLOADS": "Mostra avviso per caricamenti multipli.",
"CUSTOM-PERMISSION-MESSAGE": "Abilita messaggio di autorizzazione personalizzato",
"MEDIUM-TIME-FORMAT": "Abilita formato tempo medio per elenco documenti",
"SEARCH": {
"RADIO": {
"NONE": "Nessuno",
@@ -42,8 +55,13 @@
"APP_LAYOUT": {
"APP_NAME": "Applicazione demo ADF",
"HOME": "Home",
"NODE-SELECTOR": "Selezione nodo",
"CONTENT_SERVICES": "Content Services",
"BREADCRUMB": "Breadcrumb",
"NOTIFICATIONS": "Notifiche",
"TASK_LIST": "Elenco attività",
"PROCESS_LIST": "Elenco processi",
"CARD_VIEW": "CardView",
"PROCESS_SERVICES": "Process Services",
"LOGIN": "Login",
"CUSTOM_SOURCES": "Fonti personalizzate",
@@ -58,13 +76,15 @@
"TRASHCAN": "Cestino",
"SOCIAL": "Social",
"SETTINGS": "Impostazioni",
"CONFIG-EDITOR": "Editor configurazione",
"OVERLAY_VIEWER": "Visualizzatore overlay",
"ABOUT": "Informazioni su",
"SEARCH": "Ricerca estesa",
"EXTENDED_SEARCH_QUERY_BODY": "Ricerca estesa con corpo query",
"WORD_TO_SEARCH": "Termine di ricerca",
"SEARCH_CREATED_BY": "Creato da",
"SEARCH_SERVICE_APPROACH": "Selezionare per disattivare la proprietà di input ed eseguire la configurazione utilizzando il servizio"
"SEARCH_SERVICE_APPROACH": "Selezionare per disattivare la proprietà di input ed eseguire la configurazione utilizzando il servizio",
"HEADER_DATA": "Dati intestazione"
},
"TRASHCAN": {
"ACTIONS": {
@@ -79,6 +99,7 @@
},
"DOCUMENT_LIST": {
"MULTISELECT_CHECKBOXES": "Selezione multipla (con caselle di spunta)",
"THUMBNAILS": "Abilita anteprime",
"MULTIPLE_FILE_UPLOAD": "Caricamento di file multipli",
"FOLDER_UPLOAD": "Caricamento cartelle",
"CUSTOM_FILTER": "Filtro estensioni personalizzato",
@@ -154,7 +175,8 @@
"START-TASK": "Avvia compito",
"START-PROCESS": "Avvia processo",
"PROCESS-AUDIT-LOG": "Registro di audit processo",
"TASK-AUDIT-LOG": "Registro di audit compito"
"TASK-AUDIT-LOG": "Registro di audit compito",
"TASK-SHOW-HEADER": "Mostra intestazione dettagli"
},
"FORM-LIST": {
"STORE": "Memorizza",
@@ -170,7 +192,10 @@
"LOGIN": {
"CONTENT_SERVICES": "Content Services",
"PROCESS_SERVICES": "Process Services",
"LOGIN_FOOTER": "Piè di pagina login"
"LOGIN_FOOTER": "Piè di pagina login",
"SHOW_REMEMBERME": "Mostra utente memorizzato",
"SHOW_SUCCESS_ROUTE": "Mostra percorso riuscito",
"CUSTOM_LOGO": "Logo personalizzato"
},
"SEARCH": {
"RESULTS": "Risultati della ricerca",
@@ -188,5 +213,21 @@
"DEMO_PERMISSION": {
"INHERIT_PERMISSION_BUTTON": "Eredita permessi",
"INHERITED_PERMISSIONS_BUTTON": "Permesso ereditato"
}
}
},
"TASK_LIST_DEMO": {
"ERROR_MESSAGE": {
"APP_ID_REQUIRED_ERROR": "Inserisci ID app",
"APP_ID_TYPE_ERROR": "L'ID app deve essere un numero",
"NUMBER_TYPE_ERROR": "Il valore inserito deve essere numerico"
},
"TOOLTIP_MESSAGE": {
"START_INPUT": "Pagina iniziale"
}
},
"PROCESS_LIST_DEMO": {
"APP_ID_REQUIRED_ERROR": "Inserisci ID app",
"APP_ID_TYPE_ERROR": "L'ID app deve essere un numero"
},
"GROUP-TITLE1-TRANSLATION-KEY": "Custom Title Translation One",
"GROUP-TITLE2-TRANSLATION-KEY": "Custom Title Translation Two"
}
+41 -6
View File
@@ -6,14 +6,27 @@
"PROPERTIES": "プロパティ",
"VERSIONS": "バージョン"
},
"HOME": {
"TITLE": "Alfresco の Angular コンポーネント",
"DOCUMENTATION": "文書化"
},
"LOGOUT": {
"TITLE": "ログアウトページ",
"SUB_TITLE": "ログアウトしました",
"LOGIN": "ログイン",
"HOME": "ホーム"
},
"ADF_VERSION_MANAGER": {
"ALLOW_DELETE": "削除を許可する",
"SHOW_COMMENTS": "バージョンに関するコメントを表示",
"ALLOW_DOWNLOAD": "バージョンのダウンロードを許可する",
"READ_ONLY": "読取り専用"
"ALLOW_DOWNLOAD": "ダウンロードを許可する",
"READ_ONLY": "読取り専用",
"COMMENTS": "コメントを表示する"
},
"PERSONAL-FILES": "個人的なファイル",
"WARN-MULTIPLE-UPLOADS": "複数のアップロードの警告を表示します。",
"CUSTOM-PERMISSION-MESSAGE": "カスタムの権限メッセージを有効にする",
"MEDIUM-TIME-FORMAT": "文書リストの medium 時刻形式を有効にする",
"SEARCH": {
"RADIO": {
"NONE": "なし",
@@ -42,8 +55,13 @@
"APP_LAYOUT": {
"APP_NAME": "ADF デモアプリケーション",
"HOME": "ホーム",
"NODE-SELECTOR": "ノードセレクター",
"CONTENT_SERVICES": "Content Services",
"BREADCRUMB": "階層リンク",
"NOTIFICATIONS": "通知",
"TASK_LIST": "タスクリスト",
"PROCESS_LIST": "プロセスリスト",
"CARD_VIEW": "CardView",
"PROCESS_SERVICES": "Process Services",
"LOGIN": "ログイン",
"CUSTOM_SOURCES": "カスタムソース",
@@ -58,13 +76,15 @@
"TRASHCAN": "ごみ箱",
"SOCIAL": "ソーシャル",
"SETTINGS": "設定",
"CONFIG-EDITOR": "設定エディター",
"OVERLAY_VIEWER": "オーバーレイビューア",
"ABOUT": "バージョン情報",
"SEARCH": "詳細検索",
"EXTENDED_SEARCH_QUERY_BODY": "クエリ本体を使った詳細検索",
"WORD_TO_SEARCH": "語句の検索",
"SEARCH_CREATED_BY": "作成者",
"SEARCH_SERVICE_APPROACH": "入力プロパティを無効にし、サービスを使って設定する場合は、このチェックボックスをオンにします"
"SEARCH_SERVICE_APPROACH": "入力プロパティを無効にし、サービスを使って設定する場合は、このチェックボックスをオンにします",
"HEADER_DATA": "ヘッダーの日付"
},
"TRASHCAN": {
"ACTIONS": {
@@ -79,6 +99,7 @@
},
"DOCUMENT_LIST": {
"MULTISELECT_CHECKBOXES": "複数選択 (チェックボックスを使用)",
"THUMBNAILS": "サムネイルを有効にする",
"MULTIPLE_FILE_UPLOAD": "複数ファイルのアップロード",
"FOLDER_UPLOAD": "フォルダのアップロード",
"CUSTOM_FILTER": "カスタム拡張子フィルタ",
@@ -154,7 +175,8 @@
"START-TASK": "タスクの開始",
"START-PROCESS": "プロセスの開始",
"PROCESS-AUDIT-LOG": "プロセスの監査ログ",
"TASK-AUDIT-LOG": "タスクの監査ログ"
"TASK-AUDIT-LOG": "タスクの監査ログ",
"TASK-SHOW-HEADER": "詳細ヘッダーを表示する"
},
"FORM-LIST": {
"STORE": "保存",
@@ -170,7 +192,10 @@
"LOGIN": {
"CONTENT_SERVICES": "Content Services",
"PROCESS_SERVICES": "Process Services",
"LOGIN_FOOTER": "ログインページのフッター"
"LOGIN_FOOTER": "ログインページのフッター",
"SHOW_REMEMBERME": "ログイン情報の保存オプションを表示する",
"SHOW_SUCCESS_ROUTE": "サクセスルートを表示する",
"CUSTOM_LOGO": "カスタムのロゴ"
},
"SEARCH": {
"RESULTS": "検索結果",
@@ -188,5 +213,15 @@
"DEMO_PERMISSION": {
"INHERIT_PERMISSION_BUTTON": "権限の継承",
"INHERITED_PERMISSIONS_BUTTON": "継承された権限"
}
},
"TASK_LIST_DEMO": {
"APP_ID_REQUIRED_ERROR": "アプリケーション ID を挿入する",
"APP_ID_TYPE_ERROR": "アプリケーション ID は番号でなければなりません"
},
"PROCESS_LIST_DEMO": {
"APP_ID_REQUIRED_ERROR": "アプリケーション ID を挿入する",
"APP_ID_TYPE_ERROR": "アプリケーション ID は番号でなければなりません"
},
"GROUP-TITLE1-TRANSLATION-KEY": "カスタムのタイトル翻訳 1",
"GROUP-TITLE2-TRANSLATION-KEY": "カスタムのタイトル翻訳 2"
}
+41 -6
View File
@@ -6,14 +6,27 @@
"PROPERTIES": "Egenskaper",
"VERSIONS": "Versjoner"
},
"HOME": {
"TITLE": "Vinkelkomponenter for Alfresco",
"DOCUMENTATION": "Dokumentasjon"
},
"LOGOUT": {
"TITLE": "Avloggingsside",
"SUB_TITLE": "Du er nå logget av",
"LOGIN": "Logg på",
"HOME": "Hjem"
},
"ADF_VERSION_MANAGER": {
"ALLOW_DELETE": "Tillat sletting",
"SHOW_COMMENTS": "Vis kommentarer om versjoner",
"ALLOW_DOWNLOAD": "Tillat versjonsnedlasting",
"READ_ONLY": "Skrivebeskyttet"
"ALLOW_DOWNLOAD": "Tillat nedlasting",
"READ_ONLY": "Skrivebeskyttet",
"COMMENTS": "Vis kommentarer"
},
"PERSONAL-FILES": "Personlige filer",
"WARN-MULTIPLE-UPLOADS": "Vis advarsel for flere opplastinger.",
"CUSTOM-PERMISSION-MESSAGE": "Aktiver tilpasset tillatelsesmelding",
"MEDIUM-TIME-FORMAT": "Aktiver medium tidsformat for dokumentliste",
"SEARCH": {
"RADIO": {
"NONE": "Ingen",
@@ -42,8 +55,13 @@
"APP_LAYOUT": {
"APP_NAME": "ADF-demoprogam",
"HOME": "Hjem",
"NODE-SELECTOR": "Nodevelger",
"CONTENT_SERVICES": "Content Services",
"BREADCRUMB": "Søkebane",
"NOTIFICATIONS": "Varsler",
"TASK_LIST": "Oppgaveliste",
"PROCESS_LIST": "Prosessliste",
"CARD_VIEW": "CardView",
"PROCESS_SERVICES": "Process Services",
"LOGIN": "Logg på",
"CUSTOM_SOURCES": "Tilpassede kilder",
@@ -58,13 +76,15 @@
"TRASHCAN": "Søppelkurv",
"SOCIAL": "Sosial",
"SETTINGS": "Innstillinger",
"CONFIG-EDITOR": "Konfigurasjonsredigering",
"OVERLAY_VIEWER": "Overleggsfremviser",
"ABOUT": "Om",
"SEARCH": "Utvidet søk",
"EXTENDED_SEARCH_QUERY_BODY": "Utvidet søk med spørringsuttrykk",
"WORD_TO_SEARCH": "Søkeord",
"SEARCH_CREATED_BY": "Opprettet av",
"SEARCH_SERVICE_APPROACH": "Velg dette for å deaktivere inndataegenskapen og konfigurere ved hjelp av tjenesten"
"SEARCH_SERVICE_APPROACH": "Velg dette for å deaktivere inndataegenskapen og konfigurere ved hjelp av tjenesten",
"HEADER_DATA": "Overskriftsdata"
},
"TRASHCAN": {
"ACTIONS": {
@@ -79,6 +99,7 @@
},
"DOCUMENT_LIST": {
"MULTISELECT_CHECKBOXES": "Multivalg (med avskrysningsbokser)",
"THUMBNAILS": "Aktiver miniatyrbilder",
"MULTIPLE_FILE_UPLOAD": "Opplasting av flere filer",
"FOLDER_UPLOAD": "Opplasting av mappe",
"CUSTOM_FILTER": "Tilpasset utvidelsesfilter",
@@ -154,7 +175,8 @@
"START-TASK": "Start oppgave",
"START-PROCESS": "Start prosess",
"PROCESS-AUDIT-LOG": "Prosessrevisjonslogg",
"TASK-AUDIT-LOG": "Oppgaverevisjonslogg"
"TASK-AUDIT-LOG": "Oppgaverevisjonslogg",
"TASK-SHOW-HEADER": "Vis detaljoverskrift"
},
"FORM-LIST": {
"STORE": "Lagre",
@@ -170,7 +192,10 @@
"LOGIN": {
"CONTENT_SERVICES": "Content Services",
"PROCESS_SERVICES": "Process Services",
"LOGIN_FOOTER": "Bunntekt pålogging"
"LOGIN_FOOTER": "Bunntekt pålogging",
"SHOW_REMEMBERME": "Vis husk meg",
"SHOW_SUCCESS_ROUTE": "Vis riktig rute",
"CUSTOM_LOGO": "Egendefinert logo"
},
"SEARCH": {
"RESULTS": "Søkeresultater",
@@ -188,5 +213,15 @@
"DEMO_PERMISSION": {
"INHERIT_PERMISSION_BUTTON": "Arv tillatelse",
"INHERITED_PERMISSIONS_BUTTON": "Tillatelse arvet"
}
},
"TASK_LIST_DEMO": {
"APP_ID_REQUIRED_ERROR": "Sett inn app-ID",
"APP_ID_TYPE_ERROR": "App-ID må være et tall"
},
"PROCESS_LIST_DEMO": {
"APP_ID_REQUIRED_ERROR": "Sett inn app-ID",
"APP_ID_TYPE_ERROR": "App-ID må være et tall"
},
"GROUP-TITLE1-TRANSLATION-KEY": "Egendefinert tittel, oversettelse én",
"GROUP-TITLE2-TRANSLATION-KEY": "Egendefinert tittel, oversettelse to"
}
+41 -6
View File
@@ -6,14 +6,27 @@
"PROPERTIES": "Eigenschappen",
"VERSIONS": "Versies"
},
"HOME": {
"TITLE": "Angular-componenten voor Alfresco",
"DOCUMENTATION": "Documentatie"
},
"LOGOUT": {
"TITLE": "Afmeldingspagina",
"SUB_TITLE": "U bent nu afgemeld",
"LOGIN": "Aanmelden",
"HOME": "Home"
},
"ADF_VERSION_MANAGER": {
"ALLOW_DELETE": "Verwijderen toestaan",
"SHOW_COMMENTS": "Opmerkingen over versies tonen",
"ALLOW_DOWNLOAD": "Downloaden van versies toestaan",
"READ_ONLY": "Alleen-lezen"
"ALLOW_DOWNLOAD": "Downloaden toestaan",
"READ_ONLY": "Alleen-lezen",
"COMMENTS": "Opmerkingen weergeven"
},
"PERSONAL-FILES": "Persoonlijke bestanden",
"WARN-MULTIPLE-UPLOADS": "Waarschuwing weergeven bij meerdere uploads.",
"CUSTOM-PERMISSION-MESSAGE": "Aangepast machtigingsbericht inschakelen",
"MEDIUM-TIME-FORMAT": "Middellange tijdnotatie voor lijst met documenten inschakelen",
"SEARCH": {
"RADIO": {
"NONE": "Geen",
@@ -42,8 +55,13 @@
"APP_LAYOUT": {
"APP_NAME": "ADF-demotoepassing",
"HOME": "Home",
"NODE-SELECTOR": "Selectiefunctie voor node",
"CONTENT_SERVICES": "Content Services",
"BREADCRUMB": "Navigatiepad",
"NOTIFICATIONS": "Meldingen",
"TASK_LIST": "Lijst met taken",
"PROCESS_LIST": "Lijst met processen",
"CARD_VIEW": "CardView",
"PROCESS_SERVICES": "Process Services",
"LOGIN": "Aanmelden",
"CUSTOM_SOURCES": "Aangepaste bronnen",
@@ -58,13 +76,15 @@
"TRASHCAN": "Prullenbak",
"SOCIAL": "Sociaal",
"SETTINGS": "Instellingen",
"CONFIG-EDITOR": "Configuratie-editor",
"OVERLAY_VIEWER": "Overlay-viewer",
"ABOUT": "Info",
"SEARCH": "Uitgebreid zoeken",
"EXTENDED_SEARCH_QUERY_BODY": "Uitgebreid zoeken met queryhoofdcode",
"WORD_TO_SEARCH": "Zoekterm",
"SEARCH_CREATED_BY": "Gemaakt door",
"SEARCH_SERVICE_APPROACH": "Schakel dit in om de invoereigenschap uit te schakelen en om te configureren via de service"
"SEARCH_SERVICE_APPROACH": "Schakel dit in om de invoereigenschap uit te schakelen en om te configureren via de service",
"HEADER_DATA": "Koptekstgegevens"
},
"TRASHCAN": {
"ACTIONS": {
@@ -79,6 +99,7 @@
},
"DOCUMENT_LIST": {
"MULTISELECT_CHECKBOXES": "Multiselect (met selectievakjes)",
"THUMBNAILS": "Miniaturen inschakelen",
"MULTIPLE_FILE_UPLOAD": "Meerdere bestanden uploaden",
"FOLDER_UPLOAD": "Map uploaden",
"CUSTOM_FILTER": "Aangepast extensiefilter",
@@ -154,7 +175,8 @@
"START-TASK": "Taak starten",
"START-PROCESS": "Proces starten",
"PROCESS-AUDIT-LOG": "Auditlog van proces",
"TASK-AUDIT-LOG": "Auditlog van taak"
"TASK-AUDIT-LOG": "Auditlog van taak",
"TASK-SHOW-HEADER": "Detailkoptekst weergeven"
},
"FORM-LIST": {
"STORE": "Opslaan",
@@ -170,7 +192,10 @@
"LOGIN": {
"CONTENT_SERVICES": "Content Services",
"PROCESS_SERVICES": "Process Services",
"LOGIN_FOOTER": "Voettekst aanmeldingspagina"
"LOGIN_FOOTER": "Voettekst aanmeldingspagina",
"SHOW_REMEMBERME": "'Mij onthouden' weergeven",
"SHOW_SUCCESS_ROUTE": "Succesroute weergeven",
"CUSTOM_LOGO": "Aangepast logo"
},
"SEARCH": {
"RESULTS": "Zoekresultaten",
@@ -188,5 +213,15 @@
"DEMO_PERMISSION": {
"INHERIT_PERMISSION_BUTTON": "Machtiging overnemen",
"INHERITED_PERMISSIONS_BUTTON": "Machtiging overgenomen"
}
},
"TASK_LIST_DEMO": {
"APP_ID_REQUIRED_ERROR": "App-id invoegen",
"APP_ID_TYPE_ERROR": "App-id moet een getal zijn"
},
"PROCESS_LIST_DEMO": {
"APP_ID_REQUIRED_ERROR": "App-id invoegen",
"APP_ID_TYPE_ERROR": "App-id moet een getal zijn"
},
"GROUP-TITLE1-TRANSLATION-KEY": "Aangepaste titel vertaling één",
"GROUP-TITLE2-TRANSLATION-KEY": "Aangepaste titel vertaling twee"
}
+41 -6
View File
@@ -6,14 +6,27 @@
"PROPERTIES": "Propriedades",
"VERSIONS": "Versões"
},
"HOME": {
"TITLE": "Componentes do Angular para Alfresco",
"DOCUMENTATION": "Documentação"
},
"LOGOUT": {
"TITLE": "Página de logout",
"SUB_TITLE": "Você está desconectado",
"LOGIN": "Login",
"HOME": "Página Inicial"
},
"ADF_VERSION_MANAGER": {
"ALLOW_DELETE": "Permitir apagar",
"SHOW_COMMENTS": "Mostrar comentários em versões",
"ALLOW_DOWNLOAD": "Permitir download da versão",
"READ_ONLY": "Somente leitura"
"ALLOW_DOWNLOAD": "Permitir download",
"READ_ONLY": "Somente leitura",
"COMMENTS": "Mostrar comentários"
},
"PERSONAL-FILES": "Arquivos pessoais",
"WARN-MULTIPLE-UPLOADS": "Exibir alerta para vários uploads.",
"CUSTOM-PERMISSION-MESSAGE": "Ativar mensagem de permissão personalizada",
"MEDIUM-TIME-FORMAT": "Ativar formato de tempo regular para lista de documento",
"SEARCH": {
"RADIO": {
"NONE": "Nenhum",
@@ -42,8 +55,13 @@
"APP_LAYOUT": {
"APP_NAME": "Aplicativo Demo ADF",
"HOME": "Página Inicial",
"NODE-SELECTOR": "Seletor de nó",
"CONTENT_SERVICES": "Content Services",
"BREADCRUMB": "Trilha de navegação",
"NOTIFICATIONS": "Notificações",
"TASK_LIST": "Lista de tarefas",
"PROCESS_LIST": "Lista de processos",
"CARD_VIEW": "CardView",
"PROCESS_SERVICES": "Process Services",
"LOGIN": "Login",
"CUSTOM_SOURCES": "Origens Personalizadas",
@@ -58,13 +76,15 @@
"TRASHCAN": "Lixeira",
"SOCIAL": "Social",
"SETTINGS": "Configurações",
"CONFIG-EDITOR": "Editor de configuração",
"OVERLAY_VIEWER": "Visualizador de sobreposição",
"ABOUT": "Sobre",
"SEARCH": "Pesquisa estendida",
"EXTENDED_SEARCH_QUERY_BODY": "Pesquisa estendida com corpo de consulta",
"WORD_TO_SEARCH": "Pesquisar palavras",
"SEARCH_CREATED_BY": "Criado por",
"SEARCH_SERVICE_APPROACH": "Marque essa opção para desativar a inserção e configurar a utilização do serviço"
"SEARCH_SERVICE_APPROACH": "Marque essa opção para desativar a inserção e configurar a utilização do serviço",
"HEADER_DATA": "Dados do cabeçalho"
},
"TRASHCAN": {
"ACTIONS": {
@@ -79,6 +99,7 @@
},
"DOCUMENT_LIST": {
"MULTISELECT_CHECKBOXES": "Seleção Múltipla (com caixas de seleção)",
"THUMBNAILS": "Ativar miniaturas",
"MULTIPLE_FILE_UPLOAD": "Carregamento de Vários Arquivos",
"FOLDER_UPLOAD": "Carregamento de Pasta",
"CUSTOM_FILTER": "Filtro de extensões personalizado",
@@ -154,7 +175,8 @@
"START-TASK": "Iniciar tarefa",
"START-PROCESS": "Iniciar processo",
"PROCESS-AUDIT-LOG": "Log de auditoria de processo",
"TASK-AUDIT-LOG": "Log de auditoria de tarefa"
"TASK-AUDIT-LOG": "Log de auditoria de tarefa",
"TASK-SHOW-HEADER": "Mostrar cabeçalho de detalhes"
},
"FORM-LIST": {
"STORE": "Armazenar",
@@ -170,7 +192,10 @@
"LOGIN": {
"CONTENT_SERVICES": "Content Services",
"PROCESS_SERVICES": "Process Services",
"LOGIN_FOOTER": "Rodapé de login"
"LOGIN_FOOTER": "Rodapé de login",
"SHOW_REMEMBERME": "Mostrar o recurso Lembrar-me",
"SHOW_SUCCESS_ROUTE": "Mostrar rota de sucesso",
"CUSTOM_LOGO": "Logo personalizada"
},
"SEARCH": {
"RESULTS": "Resultados da pesquisa",
@@ -188,5 +213,15 @@
"DEMO_PERMISSION": {
"INHERIT_PERMISSION_BUTTON": "Herdar permissão",
"INHERITED_PERMISSIONS_BUTTON": "Permissão herdada"
}
},
"TASK_LIST_DEMO": {
"APP_ID_REQUIRED_ERROR": "Inserir ID do Aplicativo",
"APP_ID_TYPE_ERROR": "O ID do aplicativo deve ser um número"
},
"PROCESS_LIST_DEMO": {
"APP_ID_REQUIRED_ERROR": "Inserir ID do Aplicativo",
"APP_ID_TYPE_ERROR": "O ID do aplicativo deve ser um número"
},
"GROUP-TITLE1-TRANSLATION-KEY": "Tradução um de título personalizado",
"GROUP-TITLE2-TRANSLATION-KEY": "Tradução dois de título personalizado"
}
+44 -6
View File
@@ -6,14 +6,27 @@
"PROPERTIES": "Свойства",
"VERSIONS": "Версии"
},
"HOME": {
"TITLE": "Угловые компоненты для Alfresco",
"DOCUMENTATION": "Документация"
},
"LOGOUT": {
"TITLE": "Страница выхода из системы",
"SUB_TITLE": "Вы не вышли из системы",
"LOGIN": "Войти",
"HOME": "Домашняя"
},
"ADF_VERSION_MANAGER": {
"ALLOW_DELETE": "Разрешить удаление",
"SHOW_COMMENTS": "Показать комментарии к версиям",
"ALLOW_DOWNLOAD": "Разрешить загрузку версии",
"READ_ONLY": "Только чтение"
"ALLOW_DOWNLOAD": "Разрешить загрузку",
"READ_ONLY": "Только чтение",
"COMMENTS": "Показать комментарии"
},
"PERSONAL-FILES": "Личные файлы",
"WARN-MULTIPLE-UPLOADS": "Показывать предупреждение для нескольких загрузок.",
"CUSTOM-PERMISSION-MESSAGE": "Включить сообщение о пользовательском разрешении",
"MEDIUM-TIME-FORMAT": "Включить средний формат времени для списка документов",
"SEARCH": {
"RADIO": {
"NONE": "Нет",
@@ -39,11 +52,19 @@
"TITLE": "Метаданные"
}
},
"COMMENTS": {
"ADD_COMMENT": "Добавить"
},
"APP_LAYOUT": {
"APP_NAME": "Демонстрационное приложение ADF",
"HOME": "Домашняя",
"NODE-SELECTOR": "Селектор узлов",
"CONTENT_SERVICES": "Content Services",
"BREADCRUMB": "Иерархия",
"NOTIFICATIONS": "Оповещения",
"TASK_LIST": "Список задач",
"PROCESS_LIST": "Список процессов",
"CARD_VIEW": "CardView",
"PROCESS_SERVICES": "Process Services",
"LOGIN": "Войти",
"CUSTOM_SOURCES": "Пользовательские источники",
@@ -58,13 +79,15 @@
"TRASHCAN": "Корзина",
"SOCIAL": "Социальный",
"SETTINGS": "Параметры",
"CONFIG-EDITOR": "Редактор конфигурации",
"OVERLAY_VIEWER": "Просмотр наложения",
"ABOUT": "О приложении",
"SEARCH": "Расширенный поиск",
"EXTENDED_SEARCH_QUERY_BODY": "Расширенный поиск с использованием тела запроса",
"WORD_TO_SEARCH": "Искать слово",
"SEARCH_CREATED_BY": "Создано пользователем",
"SEARCH_SERVICE_APPROACH": "Установите флажок, чтобы отключить свойство ввода и настроить, используя службу."
"SEARCH_SERVICE_APPROACH": "Установите флажок, чтобы отключить свойство ввода и настроить, используя службу.",
"HEADER_DATA": "Данные заголовка"
},
"TRASHCAN": {
"ACTIONS": {
@@ -79,6 +102,7 @@
},
"DOCUMENT_LIST": {
"MULTISELECT_CHECKBOXES": "Выбор нескольких вариантов (с флажками)",
"THUMBNAILS": "Включить эскизы",
"MULTIPLE_FILE_UPLOAD": "Загрузка нескольких файлов",
"FOLDER_UPLOAD": "Загрузка папки",
"CUSTOM_FILTER": "Пользовательский фильтр расширений",
@@ -154,7 +178,8 @@
"START-TASK": "Начать задачу",
"START-PROCESS": "Начать процесс",
"PROCESS-AUDIT-LOG": "Журнал проверки процесса",
"TASK-AUDIT-LOG": "Журнал проверки задачи"
"TASK-AUDIT-LOG": "Журнал проверки задачи",
"TASK-SHOW-HEADER": "Показать подробности заголовка"
},
"FORM-LIST": {
"STORE": "Хранилище",
@@ -170,7 +195,10 @@
"LOGIN": {
"CONTENT_SERVICES": "Content Services",
"PROCESS_SERVICES": "Process Services",
"LOGIN_FOOTER": "Нижний колонтитул страницы входа в систему"
"LOGIN_FOOTER": "Нижний колонтитул страницы входа в систему",
"SHOW_REMEMBERME": "Показывать «Запомнить меня»",
"SHOW_SUCCESS_ROUTE": "Показать успешный маршрут",
"CUSTOM_LOGO": "Пользовательский логотип"
},
"SEARCH": {
"RESULTS": "Результаты поиска",
@@ -188,5 +216,15 @@
"DEMO_PERMISSION": {
"INHERIT_PERMISSION_BUTTON": "Наследовать разрешение",
"INHERITED_PERMISSIONS_BUTTON": "Разрешение унаследовано"
}
},
"TASK_LIST_DEMO": {
"APP_ID_REQUIRED_ERROR": "Вставить идентификатор приложения",
"APP_ID_TYPE_ERROR": "Идентификатор приложения должен быть числом"
},
"PROCESS_LIST_DEMO": {
"APP_ID_REQUIRED_ERROR": "Вставить идентификатор приложения",
"APP_ID_TYPE_ERROR": "Идентификатор приложения должен быть числом"
},
"GROUP-TITLE1-TRANSLATION-KEY": "Перевод пользовательского заголовка один",
"GROUP-TITLE2-TRANSLATION-KEY": "Перевод пользовательского заголовка два"
}
+44 -6
View File
@@ -6,14 +6,27 @@
"PROPERTIES": "属性",
"VERSIONS": "版本"
},
"HOME": {
"TITLE": "Alfresco 的 Angular 组件",
"DOCUMENTATION": "文档"
},
"LOGOUT": {
"TITLE": "注销页面",
"SUB_TITLE": "您现在已注销",
"LOGIN": "登录",
"HOME": "主页"
},
"ADF_VERSION_MANAGER": {
"ALLOW_DELETE": "允许删除",
"SHOW_COMMENTS": "显示有关版本的注释",
"ALLOW_DOWNLOAD": "允许版本下载",
"READ_ONLY": "只读"
"ALLOW_DOWNLOAD": "允许下载",
"READ_ONLY": "只读",
"COMMENTS": "显示注释"
},
"PERSONAL-FILES": "个人文件",
"WARN-MULTIPLE-UPLOADS": "针对多个上传显示警告。",
"CUSTOM-PERMISSION-MESSAGE": "启用自定义权限消息",
"MEDIUM-TIME-FORMAT": "对文档列表启用中时间格式",
"SEARCH": {
"RADIO": {
"NONE": "无",
@@ -39,11 +52,19 @@
"TITLE": "元数据"
}
},
"COMMENTS": {
"ADD_COMMENT": "添加"
},
"APP_LAYOUT": {
"APP_NAME": "ADF 演示应用程序",
"HOME": "主页",
"NODE-SELECTOR": "节点选择器",
"CONTENT_SERVICES": "Content Services",
"BREADCRUMB": "面包屑",
"NOTIFICATIONS": "通知",
"TASK_LIST": "任务列表",
"PROCESS_LIST": "流程列表",
"CARD_VIEW": "CardView",
"PROCESS_SERVICES": "Process Services",
"LOGIN": "登录",
"CUSTOM_SOURCES": "自定义来源",
@@ -58,13 +79,15 @@
"TRASHCAN": "垃圾桶",
"SOCIAL": "社交",
"SETTINGS": "设置",
"CONFIG-EDITOR": "配置编辑器",
"OVERLAY_VIEWER": "重叠查看器",
"ABOUT": "关于",
"SEARCH": "扩展搜索",
"EXTENDED_SEARCH_QUERY_BODY": "包含查询主体的扩展搜索",
"WORD_TO_SEARCH": "搜索词",
"SEARCH_CREATED_BY": "创建者",
"SEARCH_SERVICE_APPROACH": "选中此项以禁用输入属性并使用服务进行配置"
"SEARCH_SERVICE_APPROACH": "选中此项以禁用输入属性并使用服务进行配置",
"HEADER_DATA": "标头数据"
},
"TRASHCAN": {
"ACTIONS": {
@@ -79,6 +102,7 @@
},
"DOCUMENT_LIST": {
"MULTISELECT_CHECKBOXES": "多选(含复选框)",
"THUMBNAILS": "启用缩略图",
"MULTIPLE_FILE_UPLOAD": "上传多个文件",
"FOLDER_UPLOAD": "文件夹上传",
"CUSTOM_FILTER": "自定义扩展过滤器",
@@ -154,7 +178,8 @@
"START-TASK": "启动任务",
"START-PROCESS": "启动流程",
"PROCESS-AUDIT-LOG": "流程审计日志",
"TASK-AUDIT-LOG": "任务审计日志"
"TASK-AUDIT-LOG": "任务审计日志",
"TASK-SHOW-HEADER": "显示详细信息标头"
},
"FORM-LIST": {
"STORE": "存储",
@@ -170,7 +195,10 @@
"LOGIN": {
"CONTENT_SERVICES": "Content Services",
"PROCESS_SERVICES": "Process Services",
"LOGIN_FOOTER": "登录页脚"
"LOGIN_FOOTER": "登录页脚",
"SHOW_REMEMBERME": "显示记住我",
"SHOW_SUCCESS_ROUTE": "显示成功路由",
"CUSTOM_LOGO": "自定义徽标"
},
"SEARCH": {
"RESULTS": "搜索结果",
@@ -188,5 +216,15 @@
"DEMO_PERMISSION": {
"INHERIT_PERMISSION_BUTTON": "继承权限",
"INHERITED_PERMISSIONS_BUTTON": "已继承权限"
}
},
"TASK_LIST_DEMO": {
"APP_ID_REQUIRED_ERROR": "插入应用程序 ID",
"APP_ID_TYPE_ERROR": "应用程序 ID 必须为数字"
},
"PROCESS_LIST_DEMO": {
"APP_ID_REQUIRED_ERROR": "插入应用程序 ID",
"APP_ID_TYPE_ERROR": "应用程序 ID 必须为数字"
},
"GROUP-TITLE1-TRANSLATION-KEY": "自定义标题翻译 1",
"GROUP-TITLE2-TRANSLATION-KEY": "自定义标题翻译 2"
}
+28 -21
View File
@@ -72,7 +72,9 @@
"options": [
{ "key": "name", "label": "Name", "type": "FIELD", "field": "cm:name", "ascending": true },
{ "key": "content.sizeInBytes", "label": "Size", "type": "FIELD", "field": "content.size", "ascending": true },
{ "key": "description", "label": "Description", "type": "FIELD", "field": "cm:description", "ascending": true }
{ "key": "description", "label": "Description", "type": "FIELD", "field": "cm:description", "ascending": true },
{ "key": "createdByUser", "label": "Author", "type": "FIELD", "field": "cm:creator", "ascending": true },
{ "key": "createdAt", "label": "Created", "type": "FIELD", "field": "cm:created", "ascending": true }
],
"defaults": [
{ "key": "name", "type": "FIELD", "field": "cm:name", "ascending": true }
@@ -82,25 +84,28 @@
{ "query": "TYPE:'cm:folder' OR TYPE:'cm:content'" },
{ "query": "NOT cm:creator:System" }
],
"facetFields": [
{ "field": "content.mimetype", "mincount": 1, "label": "Type" },
{ "field": "content.size", "mincount": 1, "label": "Size" },
{ "field": "creator", "mincount": 1, "label": "Creator" },
{ "field": "modifier", "mincount": 1, "label": "Modifier" },
{ "field": "created", "mincount": 1, "label": "Created" }
],
"facetFields": {
"expanded": true,
"fields": [
{ "field": "content.mimetype", "mincount": 1, "label": "1:Type" },
{ "field": "content.size", "mincount": 1, "label": "2:Size" },
{ "field": "creator", "mincount": 1, "label": "3:Creator" },
{ "field": "modifier", "mincount": 1, "label": "4:Modifier" },
{ "field": "created", "mincount": 1, "label": "5:Created" }
]
},
"facetQueries": {
"label": "My facet queries",
"pageSize": 5,
"queries": [
{ "query": "created:2018", "label": "Created This Year" },
{ "query": "content.mimetype", "label": "Type" },
{ "query": "content.size:[0 TO 10240]", "label": "Size: xtra small"},
{ "query": "content.size:[10240 TO 102400]", "label": "Size: small"},
{ "query": "content.size:[102400 TO 1048576]", "label": "Size: medium" },
{ "query": "content.size:[1048576 TO 16777216]", "label": "Size: large" },
{ "query": "content.size:[16777216 TO 134217728]", "label": "Size: xtra large" },
{ "query": "content.size:[134217728 TO MAX]", "label": "Size: XX large" }
{ "query": "created:2018", "label": "1.Created This Year" },
{ "query": "content.mimetype", "label": "2.Type" },
{ "query": "content.size:[0 TO 10240]", "label": "3.Size: xtra small"},
{ "query": "content.size:[10240 TO 102400]", "label": "4.Size: small"},
{ "query": "content.size:[102400 TO 1048576]", "label": "5.Size: medium" },
{ "query": "content.size:[1048576 TO 16777216]", "label": "6.Size: large" },
{ "query": "content.size:[16777216 TO 134217728]", "label": "7.Size: xtra large" },
{ "query": "content.size:[134217728 TO MAX]", "label": "8.Size: XX large" }
]
},
"categories": [
@@ -194,11 +199,14 @@
]
},
"pagination": {
"size": 25,
"size": 20,
"supportedPageSizes": [ 5, 10, 15, 20 ]
},
"files": {
"excluded": [".DS_Store", "desktop.ini", ".git"]
"excluded": [".DS_Store", "desktop.ini", ".git"],
"match-options": {
"nocase": true
}
},
"logLevel": "trace",
"activiti": {
@@ -498,10 +506,9 @@
"sortable": true
},
{
"key": "created",
"key": "id",
"type": "text",
"title": "ADF_PROCESS_LIST.PROPERTIES.CREATED",
"cssClass": "hidden",
"title": "ADF_PROCESS_LIST.PROPERTIES.ID",
"sortable": true
}
]
-22
View File
@@ -1,22 +0,0 @@
import { NgModule } from '@angular/core';
import { ContentModule } from '@alfresco/adf-content-services';
import { ProcessModule } from '@alfresco/adf-process-services';
import { CoreModule } from '@alfresco/adf-core';
import { InsightsModule } from '@alfresco/adf-insights';
export function modules() {
return [
CoreModule,
ContentModule,
InsightsModule,
ProcessModule
];
}
@NgModule({
imports: modules(),
exports: modules()
})
export class AdfModule {
}
-25
View File
@@ -1,25 +0,0 @@
import { TestBed, async } from '@angular/core/testing';
import { RouterTestingModule } from '@angular/router/testing';
import { AdfModule } from './adf.module';
import { AppComponent } from './app.component';
describe('AppComponent', () => {
beforeEach(async(() => {
TestBed.configureTestingModule({
imports: [
RouterTestingModule,
AdfModule
],
declarations: [
AppComponent
]
}).compileComponents();
}));
it('should create the app', async(() => {
const fixture = TestBed.createComponent(AppComponent);
const app = fixture.debugElement.componentInstance;
expect(app).toBeTruthy();
}));
});
-1
View File
@@ -43,7 +43,6 @@ export class AppComponent implements OnInit {
this.router.navigate(['/login']);
}
}
});
}
}
+53 -14
View File
@@ -1,3 +1,20 @@
/*!
* @license
* Copyright 2016 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 { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms';
@@ -6,9 +23,8 @@ import { ChartsModule } from 'ng2-charts';
import { HttpClientModule } from '@angular/common/http';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { AppConfigService, TRANSLATION_PROVIDER, DebugAppConfigService } from '@alfresco/adf-core';
import { AppConfigService, TRANSLATION_PROVIDER, DebugAppConfigService, CoreModule } from '@alfresco/adf-core';
import { AppComponent } from './app.component';
import { AdfModule } from './adf.module';
import { MaterialModule } from './material.module';
import { LoginComponent } from './components/login/login.component';
import { LogoutComponent } from './components/logout/logout.component';
@@ -34,13 +50,11 @@ import { AppsViewComponent } from './components/process-service/apps-view.compon
import { DataTableComponent } from './components/datatable/datatable.component';
import { TrashcanComponent } from './components/trashcan/trashcan.component';
import { FilesComponent } from './components/files/files.component';
import { FileViewComponent } from './components/file-view/file-view.component';
import { WebscriptComponent } from './components/webscript/webscript.component';
import { TagComponent } from './components/tag/tag.component';
import { SocialComponent } from './components/social/social.component';
import { VersionManagerDialogAdapterComponent } from './components/files/version-manager-dialog-adapter.component';
import { MetadataDialogAdapterComponent } from './components/files/metadata-dialog-adapter.component';
import { BlobPreviewComponent } from './components/blob-preview/blob-preview.component';
import { ThemePickerModule } from './components/theme-picker/theme-picker';
@@ -52,7 +66,19 @@ import { SharedLinkViewComponent } from './components/shared-link-view/shared-li
import { DemoPermissionComponent } from './components/permissions/demo-permissions.component';
import { PreviewService } from './services/preview.service';
import { BreadcrumbDemoComponent } from './components/breadcrumb-demo/breadcrumb-demo.component';
import { TaskListDemoComponent } from './components/task-list-demo/task-list-demo.component';
import { ProcessListDemoComponent } from './components/process-list-demo/process-list-demo.component';
import { ContentNodeSelectorComponent } from './components/content-node-selector/content-node-selector.component';
import { NotificationsComponent } from './components/notifications/notifications.component';
import { ReportIssueComponent } from './components/report-issue/report-issue.component';
import { CardViewComponent } from './components/card-view/card-view.component';
import { HeaderDataComponent } from './components/header-data/header-data.component';
import { ConfigEditorComponent } from './components/config-editor/config-editor.component';
import { HeaderDataService } from './components/header-data/header-data.service';
import { MonacoEditorModule } from 'ngx-monaco-editor';
import { ContentModule } from '@alfresco/adf-content-services';
import { InsightsModule } from '@alfresco/adf-insights';
import { ProcessModule } from '@alfresco/adf-process-services';
@NgModule({
imports: [
@@ -61,12 +87,16 @@ import { NotificationsComponent } from './components/notifications/notifications
ReactiveFormsModule,
routing,
FormsModule,
MaterialModule,
ThemePickerModule,
FlexLayoutModule,
ChartsModule,
HttpClientModule,
AdfModule
MaterialModule,
FlexLayoutModule,
CoreModule.forRoot(),
ContentModule.forRoot(),
InsightsModule.forRoot(),
ProcessModule.forRoot(),
ThemePickerModule,
ChartsModule,
MonacoEditorModule.forRoot(),
],
declarations: [
AppComponent,
@@ -87,7 +117,6 @@ import { NotificationsComponent } from './components/notifications/notifications
AppsViewComponent,
DataTableComponent,
FilesComponent,
FileViewComponent,
TrashcanComponent,
FormComponent,
FormListComponent,
@@ -104,9 +133,15 @@ import { NotificationsComponent } from './components/notifications/notifications
FormLoadingComponent,
DemoPermissionComponent,
FormLoadingComponent,
BlobPreviewComponent,
BreadcrumbDemoComponent,
NotificationsComponent
NotificationsComponent,
CardViewComponent,
ContentNodeSelectorComponent,
ReportIssueComponent,
TaskListDemoComponent,
ProcessListDemoComponent,
HeaderDataComponent,
ConfigEditorComponent
],
providers: [
{ provide: AppConfigService, useClass: DebugAppConfigService }, // not use this service in production
@@ -126,9 +161,13 @@ import { NotificationsComponent } from './components/notifications/notifications
source: 'resources/lazy-loading'
}
},
PreviewService
PreviewService,
HeaderDataService
],
entryComponents: [
VersionManagerDialogAdapterComponent,
MetadataDialogAdapterComponent
],
entryComponents: [VersionManagerDialogAdapterComponent, MetadataDialogAdapterComponent],
bootstrap: [AppComponent]
})
export class AppModule {}
+91 -5
View File
@@ -40,23 +40,52 @@ import { SocialComponent } from './components/social/social.component';
import { FilesComponent } from './components/files/files.component';
import { FormComponent } from './components/form/form.component';
import { FileViewComponent } from './components/file-view/file-view.component';
import { CustomSourcesComponent } from './components/files/custom-sources.component';
import { FormListComponent } from './components/form/form-list.component';
import { OverlayViewerComponent } from './components/overlay-viewer/overlay-viewer.component';
import { SharedLinkViewComponent } from './components/shared-link-view/shared-link-view.component';
import { FormLoadingComponent } from './components/form/form-loading.component';
import { DemoPermissionComponent } from './components/permissions/demo-permissions.component';
import { BlobPreviewComponent } from './components/blob-preview/blob-preview.component';
import { BreadcrumbDemoComponent } from './components/breadcrumb-demo/breadcrumb-demo.component';
import { TaskListDemoComponent } from './components/task-list-demo/task-list-demo.component';
import { ProcessListDemoComponent } from './components/process-list-demo/process-list-demo.component';
import { NotificationsComponent } from './components/notifications/notifications.component';
import { CardViewComponent } from './components/card-view/card-view.component';
import { ContentNodeSelectorComponent } from './components/content-node-selector/content-node-selector.component';
import { ReportIssueComponent } from './components/report-issue/report-issue.component';
import { HeaderDataComponent } from './components/header-data/header-data.component';
import { ConfigEditorComponent } from './components/config-editor/config-editor.component';
import { AppComponent } from './app.component';
export const appRoutes: Routes = [
{ path: 'login', component: LoginComponent },
{ path: 'logout', component: LogoutComponent },
{ path: 'settings', component: SettingsComponent },
{ path: 'files/:nodeId/view', component: FileViewComponent, canActivate: [ AuthGuardEcm ], outlet: 'overlay' },
{ path: 'preview/blob', component: BlobPreviewComponent, outlet: 'overlay', pathMatch: 'full' },
{
path: 'files/:nodeId/view',
component: AppComponent,
canActivate: [ AuthGuardEcm ],
canActivateChild: [ AuthGuardEcm ],
outlet: 'overlay',
children: [
{
path: '',
loadChildren: 'app/components/file-view/file-view.module#FileViewModule'
}
]
},
{
path: 'preview/blob',
component: AppComponent,
outlet: 'overlay',
pathMatch: 'full',
children: [
{
path: '',
loadChildren: 'app/components/blob-preview/blob-preview.module#BlobPreviewModule'
}
]
},
{ path: 'preview/s/:id', component: SharedLinkViewComponent },
{
path: 'breadcrumb',
@@ -73,6 +102,36 @@ export const appRoutes: Routes = [
}
]
},
{
path: 'config-editor',
component: AppLayoutComponent ,
children: [
{
path: '',
component: ConfigEditorComponent
}
]
},
{
path: 'card-view',
component: AppLayoutComponent ,
children: [
{
path: '',
component: CardViewComponent
}
]
},
{
path: 'header-data',
component: AppLayoutComponent,
children: [
{
path: '',
component: HeaderDataComponent
}
]
},
{
path: '',
component: AppLayoutComponent,
@@ -86,6 +145,10 @@ export const appRoutes: Routes = [
path: 'home',
component: HomeComponent
},
{
path: 'node-selector',
component: ContentNodeSelectorComponent
},
{
path: 'settings-layout',
component: SettingsComponent
@@ -216,10 +279,34 @@ export const appRoutes: Routes = [
component: OverlayViewerComponent,
canActivate: [AuthGuardEcm]
},
{
path: 'report-issue',
component: ReportIssueComponent
},
{
path: 'datatable-lazy',
loadChildren: 'app/components/lazy-loading/lazy-loading.module#LazyLoadingModule'
},
{
path: 'task-list',
component: TaskListDemoComponent,
canActivate: [AuthGuardBpm]
},
{
path: 'task-list/:id',
component: TaskListDemoComponent,
canActivate: [AuthGuardBpm]
},
{
path: 'process-list',
component: ProcessListDemoComponent,
canActivate: [AuthGuardBpm]
},
{
path: 'process-list/:id',
component: ProcessListDemoComponent,
canActivate: [AuthGuardBpm]
},
{
path: 'error/:id',
component: ErrorContentComponent
@@ -228,7 +315,6 @@ export const appRoutes: Routes = [
path: '**',
redirectTo: 'error/404'
}
]
}
];
@@ -1,32 +1,30 @@
<adf-sidenav-layout [sidenavMin]="70" [sidenavMax]="220" [stepOver]="780" [hideSidenav]="false"[expandedSidenav]= "expandedSidenav" (expanded)="setState($event)">
<adf-sidenav-layout [sidenavMin]="70" [sidenavMax]="220" [stepOver]="780" [hideSidenav]="hideSidenav" [expandedSidenav]= "expandedSidenav" (expanded)="setState($event)">
<adf-sidenav-layout-header>
<ng-template let-toggleMenu="toggleMenu">
<mat-toolbar color="primary" class="adf-app-layout-toolbar mat-elevation-z6">
<button mat-icon-button (click)="toggleMenu()">
<mat-icon>menu</mat-icon>
</button>
<adf-layout-header id="adf-header" [title]="title | translate" [redirectUrl]="redirectUrl" [logo]="logo" [tooltip]="tooltip | translate" [showSidenavToggle]="showMenu" [color]="color" (clicked)=toggleMenu($event) >
<span fxFlex="1 1 auto" fxShow fxHide.lt-sm="true">{{'APP_LAYOUT.APP_NAME' | translate }}</span>
<div class="adf-app-layout-menu-spacer"></div>
<div class="adf-app-layout-menu-spacer"></div>
<app-search-bar fxFlex="0 1 auto"></app-search-bar>
<app-search-bar fxFlex="0 1 auto"></app-search-bar>
<div class="adf-header-delimiter"></div>
<adf-userinfo
class="adf-app-layout-user-profile"
[menuPositionX]="'before'"
[menuPositionY]="'above'">
</adf-userinfo>
<adf-userinfo
class="adf-app-layout-user-profile"
[menuPositionX]="'before'"
[menuPositionY]="'above'">
</adf-userinfo>
<app-theme-picker></app-theme-picker>
<button mat-icon-button [matMenuTriggerFor]="langMenu">
<mat-icon>language</mat-icon>
</button>
<mat-menu #langMenu="matMenu" class="adf-menu">
<adf-language-menu></adf-language-menu>
</mat-menu>
</mat-toolbar>
<app-theme-picker></app-theme-picker>
<button data-automation-id="language-menu-button" mat-icon-button [matMenuTriggerFor]="langMenu">
<mat-icon>language</mat-icon>
</button>
<mat-menu #langMenu="matMenu" class="adf-menu">
<adf-language-menu></adf-language-menu>
</mat-menu>
</adf-layout-header>
</ng-template>
</adf-sidenav-layout-header>
@@ -45,7 +43,7 @@
</ng-template>
</adf-sidenav-layout-navigation>
<adf-sidenav-layout-content>
<adf-sidenav-layout-content >
<ng-template>
<router-outlet></router-outlet>
</ng-template>
@@ -23,10 +23,6 @@
overflow: visible !important;
}
.adf-menu {
padding-top: 55px;
}
.adf-app-layout {
display: flex;
flex: 1;
@@ -17,6 +17,8 @@
import { Component, ViewEncapsulation, OnInit } from '@angular/core';
import { UserPreferencesService, AppConfigService, AlfrescoApiService } from '@alfresco/adf-core';
import { HeaderDataService } from '../header-data/header-data.service';
@Component({
templateUrl: 'app-layout.component.html',
@@ -34,6 +36,11 @@ export class AppLayoutComponent implements OnInit {
{ href: '/files', icon: 'folder_open', title: 'APP_LAYOUT.CONTENT_SERVICES' },
{ href: '/breadcrumb', icon: 'label', title: 'APP_LAYOUT.BREADCRUMB' },
{ href: '/notifications', icon: 'alarm', title: 'APP_LAYOUT.NOTIFICATIONS'},
{ href: '/card-view', icon: 'view_headline', title: 'APP_LAYOUT.CARD_VIEW'},
{ href: '/header-data', icon: 'edit', title: 'APP_LAYOUT.HEADER_DATA'},
{ href: '/node-selector', icon: 'attachment', title: 'APP_LAYOUT.NODE-SELECTOR' },
{ href: '/task-list', icon: 'assignment', title: 'APP_LAYOUT.TASK_LIST' },
{ href: '/process-list', icon: 'assignment', title: 'APP_LAYOUT.PROCESS_LIST' },
{ href: '/activiti', icon: 'device_hub', title: 'APP_LAYOUT.PROCESS_SERVICES' },
{ href: '/login', icon: 'vpn_key', title: 'APP_LAYOUT.LOGIN' },
{ href: '/trashcan', icon: 'delete', title: 'APP_LAYOUT.TRASHCAN' },
@@ -47,6 +54,7 @@ export class AppLayoutComponent implements OnInit {
{ href: '/tag', icon: 'local_offer', title: 'APP_LAYOUT.TAG' },
{ href: '/social', icon: 'thumb_up', title: 'APP_LAYOUT.SOCIAL' },
{ 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' },
{ href: '/overlay-viewer', icon: 'pageview', title: 'APP_LAYOUT.OVERLAY_VIEWER' },
{ href: '/about', icon: 'info_outline', title: 'APP_LAYOUT.ABOUT' }
@@ -54,7 +62,15 @@ export class AppLayoutComponent implements OnInit {
expandedSidenav = false;
hideSidenav = false;
showMenu = true;
enabelRedirect = true;
color = 'primary';
title = 'APP_LAYOUT.APP_NAME';
logo: string;
redirectUrl: string | any[] = ['/home'];
tooltip = 'APP_LAYOUT.APP_NAME';
ngOnInit() {
const expand = this.config.get<boolean>('sideNav.expandedSidenav');
@@ -65,9 +81,20 @@ export class AppLayoutComponent implements OnInit {
} else if (expand) {
this.expandedSidenav = expand;
}
this.headerService.hideMenu.subscribe(show => this.showMenu = show);
this.headerService.color.subscribe(color => this.color = color);
this.headerService.title.subscribe(title => this.title = title);
this.headerService.logo.subscribe(path => this.logo = path);
this.headerService.redirectUrl.subscribe(redirectUrl => this.redirectUrl = redirectUrl);
this.headerService.tooltip.subscribe(tooltip => this.tooltip = tooltip);
}
constructor(private userpreference: UserPreferencesService, private config: AppConfigService, private alfrescoApiService: AlfrescoApiService) {
constructor(
private userpreference: UserPreferencesService,
private config: AppConfigService,
private alfrescoApiService: AlfrescoApiService,
private headerService: HeaderDataService) {
if (this.alfrescoApiService.getInstance().isOauthConfiguration()) {
this.enabelRedirect = false;
}
@@ -78,4 +105,4 @@ export class AppLayoutComponent implements OnInit {
this.userpreference.set('expandedSidenav', state);
}
}
}
}
@@ -1,3 +1,20 @@
/*!
* @license
* Copyright 2016 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 { PreviewService } from '../../services/preview.service';
import { Router } from '@angular/router';
@@ -0,0 +1,49 @@
/*!
* @license
* Copyright 2016 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 { CommonModule } from '@angular/common';
import { CoreModule, InfoDrawerModule } from '@alfresco/adf-core';
import { ContentDirectiveModule, ContentMetadataModule, VersionManagerModule } from '@alfresco/adf-content-services';
import { BlobPreviewComponent } from './blob-preview.component';
const routes: Routes = [
{
path: '',
component: BlobPreviewComponent
}
];
@NgModule({
imports: [
CommonModule,
RouterModule.forChild(routes),
CoreModule.forChild(),
InfoDrawerModule,
ContentDirectiveModule,
ContentMetadataModule,
VersionManagerModule
],
declarations: [
BlobPreviewComponent
],
exports: [
BlobPreviewComponent
]
})
export class BlobPreviewModule {}
@@ -19,7 +19,7 @@ import { Component } from '@angular/core';
@Component({
templateUrl: './breadcrumb-demo.component.html',
styleUrls: [`./breadcrumb-demo.component.scss`],
styleUrls: [`./breadcrumb-demo.component.scss`]
})
export class BreadcrumbDemoComponent {
@@ -0,0 +1,30 @@
<div class="main-content">
<h1>CardView Component</h1>
<mat-card class="card-view">
<adf-card-view
[properties]="properties"
[editable]="true">
</adf-card-view>
</mat-card>
<div class="console" #console>
<h3>Changes log:</h3>
<p *ngFor="let log of logs">{{ log }}</p>
</div>
</div>
<p class="toggle">
<mat-slide-toggle
id="adf-toogle-editable"
[color]="'primary'"
(change)="toggleEditable()"
[checked]="isEditable">
Editable
</mat-slide-toggle>
</p>
<button mat-button id="adf-reset-card-log" (click)="reset()" color="primary">Reset Log</button>
<br>
@@ -0,0 +1,28 @@
.main-content {
padding: 0 15px;
}
.card-view {
width: 30%;
display: inline-block;
}
.console {
width: 60%;
display: inline-block;
vertical-align: top;
margin-left: 10px;
height: 500px;
overflow: scroll;
padding-bottom: 30px;
h3 {
margin-top: 0;
}
p {
display: block;
font-family: monospace, monospace;
margin: 0;
}
}
@@ -0,0 +1,146 @@
/*!
* @license
* Copyright 2016 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, OnInit, ElementRef, ViewChild } from '@angular/core';
import {
CardViewTextItemModel,
CardViewDateItemModel,
CardViewDatetimeItemModel,
CardViewBoolItemModel,
CardViewIntItemModel,
CardViewFloatItemModel,
CardViewKeyValuePairsItemModel,
CardViewSelectItemModel,
CardViewUpdateService,
CardViewMapItemModel,
UpdateNotification
} from '@alfresco/adf-core';
import { of } from 'rxjs';
@Component({
templateUrl: './card-view.component.html',
styleUrls: ['./card-view.component.scss']
})
export class CardViewComponent implements OnInit {
@ViewChild('console') console: ElementRef;
isEditable = true;
properties: any;
logs: string[];
constructor(private cardViewUpdateService: CardViewUpdateService) {
this.logs = [];
this.createCard();
}
ngOnInit() {
this.cardViewUpdateService.itemUpdated$.subscribe(this.onItemChange.bind(this));
}
createCard() {
this.properties = [
new CardViewTextItemModel({
label: 'CardView Text Item',
value: 'Spock',
key: 'name',
default: 'default bar',
multiline: false,
icon: 'icon',
editable: this.isEditable
}),
new CardViewDateItemModel({
label: 'CardView Date Item',
value: new Date(1983, 11, 24, 10, 0, 30),
key: 'date',
default: new Date(1983, 11, 24, 10, 0, 30),
format: 'DD.MM.YYYY',
editable: this.isEditable
}),
new CardViewDatetimeItemModel({
label: 'CardView Datetime Item',
value: new Date(1983, 11, 24, 10, 0, 0),
key: 'datetime',
default: new Date(1983, 11, 24, 10, 0, 0),
format: 'DD.MM.YYYY',
editable: this.isEditable
}),
new CardViewBoolItemModel({
label: 'CardView Boolean Item',
value: true,
key: 'boolean',
default: false,
editable: this.isEditable
}),
new CardViewIntItemModel({
label: 'CardView Int Item',
value: 213,
key: 'int',
default: 1,
editable: this.isEditable
}),
new CardViewFloatItemModel({
label: 'CardView Float Item',
value: 9.9,
key: 'float',
default: 0.0,
editable: this.isEditable
}),
new CardViewKeyValuePairsItemModel({
label: 'CardView Key-Value Pairs Item',
value: [],
key: 'key-value-pairs',
editable: this.isEditable
}),
new CardViewSelectItemModel({
label: 'CardView Select Item',
value: 'one',
options$: of([{ key: 'one', label: 'One' }, { key: 'two', label: 'Two' }]),
key: 'select',
editable: this.isEditable
}),
new CardViewMapItemModel({
label: 'My map',
value: new Map([['999', 'My Value']]),
key: 'map',
default: 'default map value'
})
];
}
onItemChange(notification: UpdateNotification) {
let value = notification.changed[notification.target.key];
if (notification.target.type === 'keyvaluepairs') {
value = JSON.stringify(value);
}
this.logs.push(`[${notification.target.label}] - ${value}`);
this.console.nativeElement.scrollTop = this.console.nativeElement.scrollHeight;
}
toggleEditable() {
this.isEditable = !this.isEditable;
this.createCard();
}
reset() {
this.isEditable = true;
this.createCard();
this.logs = [];
}
}
@@ -0,0 +1,29 @@
<h2>Metadata App config editor</h2>
<ngx-monaco-editor id="adf-metadata-editor" class="adf-metadata-editor" [options]="editorOptions" [(ngModel)]="metadataConf" (onInit)="onInitMetadata($event)" ></ngx-monaco-editor>
<button mat-raised-button id="adf-metadata-save" (click)="onSaveMetadata()" color="primary">Save metadata configuration</button>
<button mat-raised-button id="adf-metadata-clear" (click)="onClearMetadata()" color="primary">Clear metadata configuration</button>
<br>
<br>
<br>
<h2>Search App config editor</h2>
<ngx-monaco-editor id="adf-search-editor" class="adf-search-editor" [options]="editorOptions" [(ngModel)]="searchConf" (onInit)="onInitSearch($event)" ></ngx-monaco-editor>
<button mat-raised-button id="adf-search-save" (click)="onSaveSearch()" color="primary">Save Search configuration</button>
<button mat-raised-button id="adf-search-clear" (click)="onClearSearch()" color="primary">Clear Search configuration</button>
<br>
<h2>Excluded File config editor</h2>
<ngx-monaco-editor id="adf-excluded-file" class="adf-excluded-file-editor" [options]="editorOptions" [(ngModel)]="excludedFileConf" (onInit)="onInitExcludedFile($event)" ></ngx-monaco-editor>
<button mat-raised-button id="adf-excluded-file-save" (click)="onSaveExcludedFile()" color="primary">Save excluded file configuration</button>
<button mat-raised-button id="adf-excluded-file-clear" (click)="onClearExcludedFile()" color="primary">Clear excluded file configuration</button>
<br>
@@ -0,0 +1,3 @@
.adf-metadata-editor {
height: 300px;
}
@@ -0,0 +1,115 @@
/*!
* @license
* Copyright 2016 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, NotificationService } from '@alfresco/adf-core';
@Component({
selector: 'app-config-editor',
templateUrl: 'config-editor.component.html',
styleUrls: ['./config-editor.component.scss']
})
export class ConfigEditorComponent {
editor: any;
editorSearch: any;
editorExcludedFile: any;
editorOptions = {
theme: 'vs-dark',
language: 'json',
autoIndent: true,
formatOnPaste: true,
formatOnType: true
};
metadataConf: string;
searchConf: string;
excludedFileConf: string;
onInitMetadata(editor) {
this.editor = editor;
setTimeout(() => {
this.editor.getAction('editor.action.formatDocument').run();
}, 1000);
}
onInitSearch(editor) {
this.editorSearch = editor;
setTimeout(() => {
this.editorSearch.getAction('editor.action.formatDocument').run();
}, 1000);
}
onInitExcludedFile(excludedFile) {
this.editorExcludedFile = excludedFile;
setTimeout(() => {
this.editorExcludedFile.getAction('editor.action.formatDocument').run();
}, 1000);
}
constructor(private appConfig: AppConfigService, private notificationService: NotificationService) {
this.metadataConf = JSON.stringify(appConfig.config['content-metadata']);
this.searchConf = JSON.stringify(appConfig.config['search']);
this.excludedFileConf = JSON.stringify(appConfig.config['files']);
}
onSaveMetadata() {
try {
this.appConfig.config['content-metadata'] = JSON.parse(this.editor.getValue());
} catch (error) {
this.notificationService.openSnackMessage(
'Wrong metadata configuration',
4000
);
}
}
onSaveSearch() {
try {
this.appConfig.config['search'] = JSON.parse(this.editorSearch.getValue());
} catch (error) {
this.notificationService.openSnackMessage(
'Wrong search configuration',
4000
);
}
}
onSaveExcludedFile() {
try {
this.appConfig.config['files'] = JSON.parse(this.editorExcludedFile.getValue());
} catch (error) {
this.notificationService.openSnackMessage(
'Wrong exclude file configuration',
4000
);
}
}
onClearMetadata() {
this.metadataConf = '';
}
onClearSearch() {
this.searchConf = '';
}
onClearExcludedFile() {
this.searchConf = '';
}
}
@@ -0,0 +1,198 @@
<main>
<h1>Object picker</h1>
<mat-accordion>
<mat-expansion-panel>
<mat-expansion-panel-header>
<mat-panel-title>
<h2>Plain picker</h2>
</mat-panel-title>
<mat-panel-description>
<label class="content-node-selector-demo-basic-label">
dropdownHideMyFiles: {{dropdownHideMyFiles}}
</label>
</mat-panel-description>
</mat-expansion-panel-header>
<div class="content-node-selector-demo-basic-table">
<adf-content-node-selector-panel
[currentFolderId]="'-root-'">
</adf-content-node-selector-panel>
</div>
</mat-expansion-panel>
<mat-expansion-panel>
<mat-expansion-panel-header>
<mat-panel-title>
<h2>Hide My files</h2>
</mat-panel-title>
<mat-panel-description>
<label class="content-node-selector-demo-basic-label">
My Files site will be hided from dropdown
</label>
</mat-panel-description>
</mat-expansion-panel-header>
<div class="content-node-selector-demo-basic-table">
<adf-content-node-selector-panel
[currentFolderId]="'-root-'"
[dropdownHideMyFiles]="true">
</adf-content-node-selector-panel>
</div>
</mat-expansion-panel>
<mat-expansion-panel>
<mat-expansion-panel-header>
<mat-panel-title>
<h2>Custom Site List</h2>
</mat-panel-title>
<mat-panel-description>
<label class="content-node-selector-demo-basic-label">
Adding a custom site list
</label>
</mat-panel-description>
</mat-expansion-panel-header>
<div>
<mat-list>
<h3 mat-subheader>Add Site</h3>
<form class="content-node-selector-demo-example-form">
<mat-form-field>
<label>Site Guid</label>
<input matInput [(ngModel)]="customSideGuid" [ngModelOptions]="{standalone: true}">
</mat-form-field>
<mat-form-field>
<label>Site Title</label>
<input matInput [(ngModel)]="customSideTitle" [ngModelOptions]="{standalone: true}">
</mat-form-field>
</form>
<button mat-button color="primary" (click)="onClickAddSite()">Add</button>
<button mat-button color="primary" (click)="onClickResetSite()">Reset</button>
<mat-divider></mat-divider>
<h3 mat-subheader>Custom Sites Added</h3>
<mat-list-item *ngFor="let customSite of customSites.list.entries">
<mat-icon mat-list-icon>shopping_basket</mat-icon>
<h4 mat-line>{{customSite.entry.title}}</h4>
<p mat-line> {{customSite.entry.guid}} </p>
</mat-list-item>
</mat-list>
</div>
<div class="content-node-selector-demo-basic-table">
<adf-content-node-selector-panel
[currentFolderId]="'-root-'"
[dropdownSiteList]="customSites">
</adf-content-node-selector-panel>
</div>
</mat-expansion-panel>
<mat-expansion-panel>
<mat-expansion-panel-header>
<mat-panel-title>
<h2>Row Filtering</h2>
</mat-panel-title>
<mat-panel-description>
<label class="content-node-selector-demo-basic-label">
Will automatically filter the row on the list
</label>
</mat-panel-description>
</mat-expansion-panel-header>
<mat-slide-toggle color="primary" [(ngModel)]="showFiles" (click)="recreateRowFilterFunction()">
Show Files
</mat-slide-toggle>
<mat-slide-toggle color="primary" [(ngModel)]="showFolders" (click)="recreateRowFilterFunction()">
Slide Folders
</mat-slide-toggle>
<div class="content-node-selector-demo-basic-table">
<adf-content-node-selector-panel
[rowFilter]="rowFilterFunction"
[currentFolderId]="'-root-'">
</adf-content-node-selector-panel>
</div>
</mat-expansion-panel>
<mat-expansion-panel>
<mat-expansion-panel-header>
<mat-panel-title>
<h2>Custom Image Resolving</h2>
</mat-panel-title>
<mat-panel-description>
<label class="content-node-selector-demo-basic-label">
A function to manage the way folder/file icons and thumbnails are resolved
</label>
</mat-panel-description>
</mat-expansion-panel-header>
<mat-slide-toggle color="primary" (click)="recreateImageResolverFunction()">
Add Custom Images Resolver
</mat-slide-toggle>
<div class="content-node-selector-demo-basic-table">
<adf-content-node-selector-panel
[imageResolver]="customImageResolver"
[currentFolderId]="'-root-'">
</adf-content-node-selector-panel>
</div>
</mat-expansion-panel>
<mat-expansion-panel>
<mat-expansion-panel-header>
<mat-panel-title>
<h2>Set Page Size</h2>
</mat-panel-title>
<mat-panel-description>
<label class="content-node-selector-demo-basic-label">
Number of items shown per page in the list. actual page {{actualPageSize}}
</label>
</mat-panel-description>
</mat-expansion-panel-header>
<div class="content-node-selector-demo-basic-table">
<adf-content-node-selector-panel
[currentFolderId]="'-root-'"
[pageSize]="actualPageSize"
>
</adf-content-node-selector-panel>
</div>
</mat-expansion-panel>
<mat-expansion-panel>
<mat-expansion-panel-header>
<mat-panel-title>
<h2>Is Valid Selection Function </h2>
</mat-panel-title>
<mat-panel-description>
<label class="content-node-selector-demo-basic-label">
Function used to decide if the selected node has permission to be selected
</label>
</mat-panel-description>
</mat-expansion-panel-header>
<label>Only folder starting with the letter 'a' or 'A' are valid selections</label>
<label>Actual Selection is : {{validSelection}}</label>
<div class="content-node-selector-demo-basic-table">
<adf-content-node-selector-panel
(select)="onNodeSelect($event)"
[isSelectionValid]="customIsValidFunction"
[currentFolderId]="'-root-'">
</adf-content-node-selector-panel>
</div>
</mat-expansion-panel>
<mat-expansion-panel>
<mat-expansion-panel-header>
<mat-panel-title>
<h2>BreadCrumb Transform Function </h2>
</mat-panel-title>
<mat-panel-description>
<label class="content-node-selector-demo-basic-label">
Transformation to be performed on the chosen/folder node before building the breadcrumb UI
</label>
</mat-panel-description>
</mat-expansion-panel-header>
<label>Folder starting with letter 'd' or 'D' won't be displayed in the breadcrumb dropdown</label>
<div class="content-node-selector-demo-basic-table">
<adf-content-node-selector-panel
[breadcrumbTransform]="customBreadcrumbFunction"
[currentFolderId]="'-root-'">
</adf-content-node-selector-panel>
</div>
</mat-expansion-panel>
</mat-accordion>
</main>
@@ -0,0 +1,27 @@
.content-node-selector-demo {
&-main {
display: flex;
flex-direction: column;
justify-content: space-around;
align-content: center;
align-self: center;
align-items: center;
}
&-basic-table {
height:400px;
width:700px
}
&-basic-label {
display: flex;
align-self: center;
}
&-example-form {
display: flex;
flex-direction: column;
align-items: flex-start;
}
}
@@ -0,0 +1,115 @@
/*!
* @license
* Copyright 2016 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, ViewEncapsulation } from '@angular/core';
import { SitePaging, SiteEntry, MinimalNodeEntryEntity } from 'alfresco-js-api';
import { ShareDataRow } from '@alfresco/adf-content-services';
import { DataRow, DataColumn, ThumbnailService } from '@alfresco/adf-core';
@Component({
templateUrl: './content-node-selector.component.html',
styleUrls: [`./content-node-selector.component.scss`],
encapsulation: ViewEncapsulation.None
})
export class ContentNodeSelectorComponent {
constructor(private thumbnailService: ThumbnailService) {
}
dropdownHideMyFiles = false;
showFiles = false;
showFolders = false;
enableImageResolver = false;
validSelection = false;
customSideGuid = '';
customSideTitle = '';
actualPageSize = 2;
rowFilterFunction: any = null;
customImageResolver: any = null;
defaultSites: SiteEntry[] = [
{ entry: { title: 'MINE', guid: '-my-' } },
{ entry: { title: 'ROOTY', guid: '-root-' } }];
customSites: SitePaging = {
list: {
entries: [
{ entry: { title: 'MINE', guid: '-my-' } },
{ entry: { title: 'ROOTY', guid: '-root-' } }],
pagination: {}
}
};
onClickAddSite() {
const newSiteEntry: SiteEntry = { entry: { title: this.customSideTitle, guid: this.customSideGuid } };
this.customSites.list.entries.push(newSiteEntry);
this.customSideGuid = '';
this.customSideTitle = '';
}
onClickResetSite() {
this.customSites.list.entries = this.defaultSites;
this.customSideGuid = '';
this.customSideTitle = '';
}
recreateRowFilterFunction() {
this.rowFilterFunction = this.rowFilteringExample.bind(this);
}
recreateImageResolverFunction() {
this.enableImageResolver = !this.enableImageResolver;
if (this.enableImageResolver) {
this.customImageResolver = this.customImageResolverExample.bind(this);
} else {
this.customImageResolver = null;
}
}
rowFilteringExample(row: ShareDataRow) {
let showNode = true;
const node: MinimalNodeEntryEntity = row.node.entry;
if (this.showFiles) {
showNode = node.isFile;
}
if (this.showFolders) {
showNode = node.isFolder;
}
return showNode;
}
customImageResolverExample(row: DataRow, col: DataColumn) {
return this.thumbnailService.getMimeTypeIcon('video/quicktime');
}
onNodeSelect(node: MinimalNodeEntryEntity) {
this.validSelection = !!node;
}
customIsValidFunction(entry: MinimalNodeEntryEntity): boolean {
return entry.name.startsWith('a') || entry.name.startsWith('A');
}
customBreadcrumbFunction(node: MinimalNodeEntryEntity) {
if (node && node.path && node.path.elements) {
node.path.elements = node.path.elements.filter((element) => !element.name.toLocaleLowerCase().startsWith('d') ? element : null );
}
return node;
}
}
@@ -1,5 +1,5 @@
<mat-form-field>
<input matInput placeholder="Name filter" [(ngModel)]="data.filterValue">
<input id="adf-datatable-filter-input" matInput placeholder="Name filter" [(ngModel)]="data.filterValue">
</mat-form-field>
<adf-datatable
@@ -2,12 +2,88 @@
<ng-template let-node="node" #sidebarTemplate>
<adf-info-drawer [title]="'APP.INFO_DRAWER.TITLE' | translate">
<adf-info-drawer-tab [label]="'APP.INFO_DRAWER.COMMENTS' | translate">
<adf-comments [nodeId]="nodeId"></adf-comments>
</adf-info-drawer-tab>
<adf-info-drawer-tab [label]="'APP.INFO_DRAWER.PROPERTIES' | translate">
<adf-content-metadata-card [node]="node"></adf-content-metadata-card>
<adf-content-metadata-card *ngIf="isPreset" [node]="node"
[multi]="multi"
[preset]="customPreset"
[readOnly]="isReadOnly"
[displayDefaultProperties]="displayDefaultProperties"
[displayEmpty]="displayEmptyMetadata"></adf-content-metadata-card>
<adf-content-metadata-card *ngIf="!isPreset" [node]="node"
[multi]="multi"
[readOnly]="isReadOnly"
[displayDefaultProperties]="displayDefaultProperties"
[displayEmpty]="displayEmptyMetadata"></adf-content-metadata-card>
<p class="toggle">
<mat-slide-toggle
id="adf-metadata-default-properties"
[color]="'primary'"
(change)="toggleDisplayProperties()"
[checked]="displayDefaultProperties">
Display Default Properties
</mat-slide-toggle>
</p>
<p class="toggle">
<mat-slide-toggle
id="adf-metadata-empty"
[color]="'primary'"
(change)="toggleEmptyMetadata()"
[checked]="displayEmptyMetadata">
Display Empty Metadata
</mat-slide-toggle>
</p>
<p class="toggle">
<mat-slide-toggle
id="adf-metadata-multi"
[color]="'primary'"
(change)="toggleMulti()"
[checked]="multi">
multi accordion
</mat-slide-toggle>
</p>
<p class="toggle">
<mat-slide-toggle
id="adf-metadata-readonly"
[color]="'primary'"
(change)="toggleReadOnly()"
[checked]="isReadOnly">
Editable
</mat-slide-toggle>
</p>
<p class="toggle">
<mat-slide-toggle
id="adf-toggle-custom-preset"
[color]="'primary'"
(change)="togglePreset()"
[checked]="isPreset">
Custom preset
</mat-slide-toggle>
</p>
<p class="toggle">
<ng-container *ngIf="isPreset">
<mat-form-field floatPlaceholder="float">
<input matInput
placeholder="Custom Preset"
[(ngModel)]="customPreset"
data-automation-id="adf-text-custom-preset">
</mat-form-field>
<button mat-raised-button id="adf-metadata-aplly" (click)="applyCustomPreset()" color="primary">Apply</button>
</ng-container>
</p>
</adf-info-drawer-tab>
<adf-info-drawer-tab [label]="'APP.INFO_DRAWER.VERSIONS' | translate">
@@ -29,6 +29,13 @@ import { MatSnackBar } from '@angular/material';
export class FileViewComponent implements OnInit {
nodeId: string = null;
displayEmptyMetadata = false;
expanded: boolean;
multi = false;
isReadOnly = false;
isPreset = false;
customPreset: string = null;
displayDefaultProperties = true;
constructor(private router: Router,
private route: ActivatedRoute,
@@ -58,4 +65,34 @@ export class FileViewComponent implements OnInit {
onUploadError(errorMessage: string) {
this.snackBar.open(errorMessage, '', { duration: 4000 });
}
toggleEmptyMetadata() {
this.displayEmptyMetadata = !this.displayEmptyMetadata;
}
toggleMulti() {
this.multi = !this.multi;
}
toggleReadOnly() {
this.isReadOnly = !this.isReadOnly;
}
toggleDisplayProperties() {
this.displayDefaultProperties = !this.displayDefaultProperties;
}
togglePreset() {
this.isPreset = !this.isPreset;
if (!this.isPreset) {
this.customPreset = null;
}
}
applyCustomPreset() {
this.isPreset = false;
setTimeout(() => {
this.isPreset = true;
}, 100);
}
}
@@ -0,0 +1,47 @@
/*!
* @license
* Copyright 2016 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 { CommonModule } from '@angular/common';
import { Routes, RouterModule } from '@angular/router';
import { CoreModule, InfoDrawerModule } from '@alfresco/adf-core';
import { ContentDirectiveModule, VersionManagerModule, ContentMetadataModule } from '@alfresco/adf-content-services';
import { FileViewComponent } from './file-view.component';
const routes: Routes = [
{
path: '',
component: FileViewComponent
}
];
@NgModule({
imports: [
CommonModule,
RouterModule.forChild(routes),
CoreModule.forChild(),
InfoDrawerModule,
ContentDirectiveModule,
ContentMetadataModule,
VersionManagerModule
],
declarations: [FileViewComponent],
exports: [FileViewComponent]
})
export class FileViewModule {
}
@@ -33,7 +33,7 @@
</adf-sites-dropdown>
</div>
<div class="document-list-container" fxLayout="row" fxLayoutAlign="start stretch" fxLayoutGap="16px">
<div id="document-list-container" class="document-list-container" fxLayout="row" fxLayoutAlign="start stretch" fxLayoutGap="16px">
<adf-upload-drag-area fxFlex="1 1 auto"
[disabled]="disableDragArea"
[acceptedFilesType]="getFileFiltering()"
@@ -68,6 +68,7 @@
<div fxFlex="0 0 auto" class="adf-document-action-buttons" fxShow fxHide.lt-sm="true">
<button
mat-icon-button
data-automation-id="document-list-grid-view"
title="{{ 'DOCUMENT_LIST.TOOLBAR.CARDVIEW' | translate }}"
(click)="toogleGalleryView()">
<mat-icon *ngIf="displayMode === 'list'" matTooltip="{{ 'DOCUMENT_LIST.TOOLBAR.CARDVIEW' | translate }}">view_comfy</mat-icon>
@@ -78,6 +79,7 @@
[disabled]="!canCreateContent(documentList.folderNode)"
title="{{ 'DOCUMENT_LIST.TOOLBAR.NEW_FOLDER' | translate }}"
(error)="openSnackMessage($event)"
(success)="documentList.reload()"
[adf-create-folder]="getDocumentListCurrentFolderId()"
matTooltip="{{ 'DOCUMENT_LIST.TOOLBAR.NEW_FOLDER' | translate }}">
<mat-icon>create_new_folder</mat-icon>
@@ -87,6 +89,7 @@
title="{{ 'DOCUMENT_LIST.TOOLBAR.EDIT_FOLDER' | translate }}"
(error)="openSnackMessage($event)"
[adf-edit-folder]="documentList.selection[0]?.entry"
(success)="documentList.reload()"
matTooltip="{{ 'DOCUMENT_LIST.TOOLBAR.EDIT_FOLDER' | translate }}">
<mat-icon>create</mat-icon>
</button>
@@ -116,7 +119,7 @@
</mat-icon>
</button>
<button mat-icon-button
[disabled]="!documentList.selection.length"
disabled
[baseShareUrl]="baseShareUrl"
[adf-share]="documentList.selection[0]"
matTooltip="{{ 'DOCUMENT_LIST.TOOLBAR.SHARE' | translate }}">
@@ -207,6 +210,11 @@
(preview)="showFile($event)"
(folderChange)="onFolderChange($event)"
(permissionError)="handlePermissionError($event)">
<no-permission-content *ngIf="enableCustomPermissionMessage">
<ng-template>
<h1>Cris you don't have permissions</h1>
</ng-template>
</no-permission-content>
<empty-folder-content *ngIf="disableDragArea">
<ng-template>
<div class="adf-empty_template">
@@ -273,7 +281,7 @@
title="{{'DOCUMENT_LIST.COLUMNS.CREATED' | translate}}"
key="createdAt"
type="date"
format="timeAgo"
[format]="enableMediumTimeFormat ? 'medium' : 'timeAgo'"
class="desktop-only">
</data-column>
@@ -337,6 +345,13 @@
title="DOCUMENT_LIST.ACTIONS.METADATA"
(execute)="onManageMetadata($event)">
</content-action>
<content-action
icon="settings_input_component"
title="DOCUMENT_LIST.ACTIONS.PERMISSION"
permission="copy"
(error)="onContentActionError($event)"
(execute)="onPermissionRequested($event)">
</content-action>
<!-- document actions -->
<content-action
icon="storage"
@@ -345,6 +360,7 @@
(execute)="onManageVersions($event)">
</content-action>
<content-action
target="document"
*ngIf="authenticationService.isBpmLoggedIn()"
icon="play_arrow"
target="document"
@@ -352,13 +368,7 @@
(execute)="startProcesAction($event)">
</content-action>
<content-action
icon="settings_input_component"
title="DOCUMENT_LIST.ACTIONS.PERMISSION"
permission="copy"
(error)="onContentActionError($event)"
(execute)="onPermissionRequested($event)">
</content-action>
<content-action
target="document"
icon="lock"
permission="lock"
handler="lock"
@@ -371,7 +381,6 @@
*ngIf="!infiniteScrolling"
class="adf-documentlist-pagination"
[target]="documentList"
[supportedPageSizes]="supportedPages"
(changePageSize)="onChangePageSize($event)"
(changePageNumber)="onChangePageNumber($event)"
(nextPage)="onNextPage($event)"
@@ -388,7 +397,7 @@
<adf-info-drawer-layout *ngIf="showVersions" class="adf-manage-versions-sidebar" fxFlex="0 0 auto">
<div info-drawer-content>
<adf-info-drawer [title]="'Details'">
<adf-info-drawer [title]="'Details'" *ngIf="documentList.selection[0]" >
<adf-info-drawer-tab [label]="'Properties'">
<adf-content-metadata-card
[node]="documentList.selection[0].entry">
@@ -428,7 +437,9 @@
<div *ngIf="processId">
<adf-start-process
[values]="formValues"
[appId]="processId">
[appId]="processId"
(start)="closeStartProcess()"
(cancel)="closeStartProcess()">
</adf-start-process>
</div>
@@ -483,7 +494,7 @@
</section>
<section>
<mat-slide-toggle [color]="'primary'" (click)="toggleThumbnails()" >{{'DOCUMENT_LIST.THUMBNAILS' |
<mat-slide-toggle [color]="'primary'" (click)="toggleThumbnails()" id="enableThumbnails">{{'DOCUMENT_LIST.THUMBNAILS' |
translate}}
</mat-slide-toggle>
</section>
@@ -518,6 +529,18 @@
</mat-slide-toggle>
</section>
<section>
<mat-slide-toggle color="primary" [(ngModel)]="enableCustomPermissionMessage">
{{'APP.CUSTOM-PERMISSION-MESSAGE' | translate}}
</mat-slide-toggle>
</section>
<section>
<mat-slide-toggle color="primary" [(ngModel)]="enableMediumTimeFormat" id="enableMediumTimeFormat">
{{'APP.MEDIUM-TIME-FORMAT' | translate}}
</mat-slide-toggle>
</section>
<h5>Upload</h5>
<section *ngIf="acceptedFilesTypeShow">
<mat-form-field floatPlaceholder="float">
@@ -569,7 +592,7 @@
</adf-upload-button>
</div>
<section>
<mat-checkbox [(ngModel)]="enableUpload">
<mat-checkbox id="adf-disable-upload" [(ngModel)]="enableUpload">
{{'DOCUMENT_LIST.DESCRIPTION_UPLOAD' | translate}}
</mat-checkbox>
</section>
@@ -25,20 +25,26 @@ import { MatDialog } from '@angular/material';
import { ActivatedRoute, Params, Router } from '@angular/router';
import { MinimalNodeEntity, NodePaging, Pagination, MinimalNodeEntryEntity, SiteEntry } from 'alfresco-js-api';
import {
AuthenticationService, AppConfigService, AppConfigValues, ContentService, TranslationService,
AlfrescoApiService, AuthenticationService, AppConfigService, AppConfigValues, ContentService, TranslationService,
FileUploadEvent, FolderCreatedEvent, LogService, NotificationService,
UploadService, DataColumn, DataRow, UserPreferencesService,
PaginationComponent, FormValues, DisplayMode, UserPreferenceValues, InfinitePaginationComponent
PaginationComponent, FormValues, DisplayMode, InfinitePaginationComponent
} from '@alfresco/adf-core';
import { DocumentListComponent, PermissionStyleModel, UploadFilesEvent, ConfirmDialogComponent } from '@alfresco/adf-content-services';
import {
DocumentListComponent,
PermissionStyleModel,
UploadFilesEvent,
ConfirmDialogComponent
} 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/Subscription';
import { Subscription } from 'rxjs';
import { PreviewService } from '../../services/preview.service';
import { debounceTime } from 'rxjs/operators';
const DEFAULT_FOLDER_TO_SHOW = '-my-';
@@ -172,10 +178,11 @@ export class FilesComponent implements OnInit, OnChanges, OnDestroy {
permissionsStyle: PermissionStyleModel[] = [];
infiniteScrolling: boolean;
supportedPages: number[];
currentSiteid = '';
warnOnMultipleUploads = false;
thumbnails = false;
enableCustomPermissionMessage = false;
enableMediumTimeFormat = false;
private onCreateFolder: Subscription;
private onEditFolder: Subscription;
@@ -192,11 +199,12 @@ export class FilesComponent implements OnInit, OnChanges, OnDestroy {
private preference: UserPreferencesService,
private preview: PreviewService,
@Optional() private route: ActivatedRoute,
public authenticationService: AuthenticationService) {
this.preference.select(UserPreferenceValues.SupportedPageSizes)
.subscribe((pages) => {
this.supportedPages = pages;
});
public authenticationService: AuthenticationService,
public alfrescoApiService: AlfrescoApiService) {
this.alfrescoApiService.nodeUpdated.subscribe(() => {
this.documentList.reload();
});
}
showFile(event) {
@@ -238,12 +246,13 @@ export class FilesComponent implements OnInit, OnChanges, OnDestroy {
}
// this.disableDragArea = false;
this.uploadService.fileUploadComplete.asObservable().debounceTime(300).subscribe(value => this.onFileUploadEvent(value));
this.uploadService.fileUploadComplete.asObservable()
.pipe(debounceTime(300))
.subscribe(value => this.onFileUploadEvent(value));
this.uploadService.fileUploadDeleted.subscribe((value) => this.onFileUploadEvent(value));
this.contentService.folderCreated.subscribe(value => this.onFolderCreated(value));
this.onCreateFolder = this.contentService.folderCreate.subscribe(value => this.onFolderAction(value));
this.onEditFolder = this.contentService.folderEdit.subscribe(value => this.onFolderAction(value));
this.supportedPages = this.supportedPages ? this.supportedPages : this.preference.getDefaultPageSizes();
// this.permissionsStyle.push(new PermissionStyleModel('document-list__create', PermissionsEnum.CREATE));
// this.permissionsStyle.push(new PermissionStyleModel('document-list__disable', PermissionsEnum.NOT_CREATE, false, true));
@@ -362,13 +371,13 @@ export class FilesComponent implements OnInit, OnChanges, OnDestroy {
onContentActionSuccess(message) {
const translatedMessage: any = this.translateService.get(message);
this.openSnackMessage(translatedMessage.value);
this.reloadForInfiniteScrolling();
this.documentList.reload();
}
onDeleteActionSuccess(message) {
this.uploadService.fileDeleted.next(message);
this.deleteElementSuccess.emit();
this.reloadForInfiniteScrolling();
this.documentList.reload();
this.openSnackMessage(message);
}
@@ -376,10 +385,6 @@ export class FilesComponent implements OnInit, OnChanges, OnDestroy {
this.router.navigate(['/permissions', node.value.entry.id]);
}
private reloadForInfiniteScrolling() {
this.documentList.reload();
}
onManageVersions(event) {
const contentEntry = event.value.entry;
const showComments = this.showVersionComments;
@@ -474,6 +479,10 @@ export class FilesComponent implements OnInit, OnChanges, OnDestroy {
}
closeStartProcess() {
this.processId = null;
}
onChangePageSize(event: Pagination): void {
this.preference.paginationSize = event.maxItems;
this.changedPageSize.emit(event);
@@ -508,7 +517,7 @@ export class FilesComponent implements OnInit, OnChanges, OnDestroy {
onInfiniteScrolling(): void {
this.infiniteScrolling = !this.infiniteScrolling;
this.infinitePaginationComponent.reset();
this.reloadForInfiniteScrolling();
this.documentList.reload();
}
canDownloadNode = (node: MinimalNodeEntity): boolean => {
@@ -1,11 +1,23 @@
<header mat-dialog-title>{{'VERSION.DIALOG.TITLE' | translate}}</header>
<section>
<mat-slide-toggle color="primary" [(ngModel)]="readOnly">
<mat-slide-toggle id="adf-version-manager-switch-readonly" color="primary" [(ngModel)]="readOnly">
{{'APP.ADF_VERSION_MANAGER.READ_ONLY' | translate}}
</mat-slide-toggle>
</section>
<section>
<mat-slide-toggle id="adf-version-manager-switch-download"color="primary" [(ngModel)]="allowDownload">
{{'APP.ADF_VERSION_MANAGER.ALLOW_DOWNLOAD' | translate}}
</mat-slide-toggle>
</section>
<section>
<mat-slide-toggle id="adf-version-manager-switch-comments" color="primary" [(ngModel)]="showComments">
{{'APP.ADF_VERSION_MANAGER.COMMENTS' | translate}}
</mat-slide-toggle>
</section>
<section mat-dialog-content *ngIf="!readOnly">
<adf-version-manager [node]="contentEntry" [allowDownload]="allowDownload" [showComments]="showComments" (uploadError)="uploadError($event)"></adf-version-manager>
</section>
@@ -1,3 +1,20 @@
/*!
* @license
* Copyright 2016 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.
*/
/*!
* @license
* Copyright 2016 Alfresco Software, Ltd.
@@ -1214,7 +1231,7 @@ export class DemoForm {
'readOnly': false,
'overrideId': false,
'colspan': 1,
'placeholder': null,
'placeholder': '10',
'minLength': 0,
'maxLength': 0,
'minValue': null,
@@ -15,12 +15,12 @@
* limitations under the License.
*/
import { Observable } from 'rxjs/Observable';
import { Observable, of } from 'rxjs';
import { Injectable } from '@angular/core';
import {
AppConfigService, AlfrescoApiService, EcmModelService, LogService, FormService, FormOutcomeEvent
} from '@alfresco/adf-core';
import { Subject } from 'rxjs/Subject';
import { Subject } from 'rxjs';
@Injectable()
export class FakeFormService extends FormService {
@@ -36,7 +36,7 @@ export class FakeFormService extends FormService {
public getRestFieldValues(taskId: string, fieldId: string): Observable<any> {
if (fieldId === 'typeahedField') {
return Observable.of([
return of([
{ 'id': '1', 'name': 'Leanne Graham' },
{ 'id': '2', 'name': 'Ervin Howell' },
{ 'id': '3', 'name': 'Clementine Bauch' },
@@ -1,3 +1,20 @@
/*!
* @license
* Copyright 2016 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.
*/
/*!
* @license
* Copyright 2016 Alfresco Software, Ltd.
@@ -15,7 +32,7 @@
* limitations under the License.
*/
import { Component, Inject, OnInit } from '@angular/core';
import { Component, Inject, OnInit, ViewEncapsulation } from '@angular/core';
import { FormModel, FormService, FormOutcomeEvent } from '@alfresco/adf-core';
import { InMemoryFormService } from '../../services/in-memory-form.service';
import { DemoForm } from './demo-form';
@@ -26,7 +43,8 @@ import { DemoForm } from './demo-form';
styleUrls: ['form.component.css'],
providers: [
{ provide: FormService, useClass: InMemoryFormService }
]
],
encapsulation: ViewEncapsulation.None
})
export class FormComponent implements OnInit {
@@ -0,0 +1,46 @@
<div class="content header-data">
<h1>Header data</h1>
<mat-card>
<div>
<mat-checkbox [(ngModel)]="checkbox" (change)="hideButton()">Show menu button</mat-checkbox>
</div>
<div>
<label>Choose header color</label>
<select (change)="changeColor($event.target.value)">
<option value="primary">Primary</option>
<option value="accent">Accent</option>
<option value="warn">Warn</option>
</select>
OR
<input type="text" name="color" (keyup.enter)="changeColor($event.target.value)" placeholder="hex color code">
<p>*Choose only one value at a time: either hex code or theme color.</p>
<p>*press enter for submitting new hex color</p>
</div>
<div>
<label>Change title</label>
<input type="text" name="title" (keyup.enter)="submitTitle($event.target.value)" placeholder ="{{ 'APP_LAYOUT.APP_NAME' | translate}}">
<p>*press enter for submitting new title</p>
</div>
<div>
<label>Change logo</label>
<input type="text" placeholder="URL path" (keyup.enter)="submitLogo($event.target.value)" >
<p>*press enter for submitting new logo</p>
</div>
<div>
<label>Change logo link</label>
<input type="url" placeholder="Redirect URL" (keyup.enter)="submitRedirectUrl($event.target.value)" >
<p>*Input JSON friendly array or explicit string. E.g. ["/test", 33, "user", 11] or "/test"</p>
<p>*press enter for submitting new link on logo</p>
</div>
<div>
<label>Change logo tooltip</label>
<input type="text" placeholder="Tooltip text" (keyup.enter)="submitTooltip($event.target.value)" >
<p>*press enter for submitting new tooltip</p>
</div>
</mat-card>
</div>
@@ -0,0 +1,28 @@
.content {
padding: 10px;
.mat-card {
padding: 16px 24px;
max-width: 100% !important;
max-height: 100% !important;
div {
padding: 0;
margin-bottom: 30px;
label {
font-weight: bold;
}
.mat-form-field, input, select {
display: block;
width: 100%;
height: 30px;
margin-bottom: 5px;
}
p {
margin: 0 0 5px 0;
}
}
}
}
@@ -0,0 +1,62 @@
/*!
* @license
* Copyright 2016 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 { HeaderDataService } from './header-data.service';
@Component({
templateUrl: './header-data.component.html',
styleUrls: ['./header-data.component.scss']
})
export class HeaderDataComponent {
checkbox = true;
constructor(private headerService: HeaderDataService) {}
hideButton() {
this.headerService.hideMenuButton();
}
changeColor(color: string) {
this.headerService.changeColor(color);
}
submitTitle(title: string) {
if (title) {
this.headerService.changeTitle(title);
}
}
submitLogo(logoPath: string) {
if (logoPath) {
this.headerService.changeLogo(logoPath);
}
}
submitRedirectUrl(value: string) {
const redirectUrl = JSON.parse(value);
if (redirectUrl) {
this.headerService.changeRedirectUrl(redirectUrl);
}
}
submitTooltip(tooltip: string) {
if (tooltip) {
this.headerService.changeTooltip(tooltip);
}
}
}
@@ -0,0 +1,58 @@
/*!
* @license
* Copyright 2016 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 { Injectable, Output, EventEmitter } from '@angular/core';
@Injectable()
export class HeaderDataService {
show = true;
@Output() hideMenu: EventEmitter<boolean> = new EventEmitter();
@Output() color: EventEmitter<string> = new EventEmitter();
@Output() title: EventEmitter<string> = new EventEmitter();
@Output() logo: EventEmitter<string> = new EventEmitter();
@Output() redirectUrl: EventEmitter<string|any[]> = new EventEmitter();
@Output() tooltip: EventEmitter<string> = new EventEmitter();
hideMenuButton() {
this.show = !this.show;
this.hideMenu.emit(this.show);
}
changeColor(color: string) {
this.color.emit(color);
}
changeTitle(title: string) {
this.title.emit(title);
}
changeLogo(logoPath: string) {
this.logo.emit(logoPath);
}
changeRedirectUrl(redirectUrl: string | any[]) {
this.redirectUrl.emit(redirectUrl);
}
changeTooltip(tooltip: string) {
this.tooltip.emit(tooltip);
}
}
@@ -1,3 +1,20 @@
/*!
* @license
* Copyright 2016 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 { ObjectDataTableAdapter, AuthenticationService } from '@alfresco/adf-core';
@@ -1,3 +1,20 @@
/*!
* @license
* Copyright 2016 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 { CoreModule, TranslationService } from '@alfresco/adf-core';
@@ -1,3 +1,20 @@
/*!
* @license
* Copyright 2016 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 { RouterModule, Routes } from '@angular/router';
import { LazyLoadingComponent } from './lazy-loading.component';
@@ -19,6 +19,55 @@
{{ 'LOGIN.LOGIN_FOOTER'| translate }}
</mat-slide-toggle>
</p>
<p class="toggle">
<mat-slide-toggle
id="adf-toogle-show-rememberme"
[color]="'primary'"
(change)="toggleRemamberme()"
[checked]="showRememberMe">
{{ 'LOGIN.SHOW_REMEMBERME'| translate }}
</mat-slide-toggle>
</p>
<p class="toggle">
<mat-slide-toggle
id="adf-toogle-show-successRoute"
[color]="'primary'"
(change)="toggleSuccessRoute()"
[checked]="customSuccessRoute">
{{ 'LOGIN.SHOW_SUCCESS_ROUTE'| translate }}
</mat-slide-toggle>
</p>
<p class="toggle">
<ng-container *ngIf="customSuccessRoute">
<mat-form-field floatPlaceholder="float">
<input matInput
placeholder="Custom success route"
[(ngModel)]="customSuccessRouteURI"
data-automation-id="adf-success-route">
</mat-form-field>
</ng-container>
</p>
<p class="toggle">
<mat-slide-toggle
id="adf-toogle-logo"
[color]="'primary'"
(change)="toggleLogo()"
[checked]="customLogoImage">
{{ 'LOGIN.CUSTOM_LOGO'| translate }}
</mat-slide-toggle>
</p>
<p class="toggle">
<ng-container *ngIf="customLogoImage">
<mat-form-field floatPlaceholder="float">
<input matInput
placeholder="Custom success Logo URL"
[(ngModel)]="customLogoImageURL"
data-automation-id="adf-url-logo">
</mat-form-field>
</ng-container>
</p>
</div>
<!--SETTING BUTTON-->
@@ -29,10 +78,12 @@
<adf-login
#alfrescologin
[successRoute]="customSuccessRouteURI"
[logoImageUrl]="customLogoImageURL"
[fieldsValidation]="customValidation"
[disableCsrf]="disableCsrf"
[showLoginActions]="showFooter"
[showRememberMe]="showFooter"
[showRememberMe]="showFooter && showRememberMe"
(executeSubmit)="checkForm($event)"
copyrightText="{{ 'application.copyright' | adfAppConfig }}"
(success)="onLogin($event)"
@@ -56,7 +107,9 @@
{{ 'LOGIN.LOGIN_FOOTER'| translate }}
</mat-slide-toggle>
</p>
<button type="button" mat-raised-button color="accent" class="mobile-setting-button" routerLink="/settings" data-automation-id="settings">{{ 'APP_LAYOUT.SETTINGS'| translate }}</button>
<button type="button" mat-raised-button color="accent" class="mobile-setting-button" routerLink="/settings"
data-automation-id="settings">{{ 'APP_LAYOUT.SETTINGS'| translate }}
</button>
</div>
</adf-login>
@@ -31,9 +31,14 @@ export class LoginComponent implements OnInit {
alfrescologin: any;
customValidation: any;
customSuccessRouteURI = '';
customLogoImageURL = './assets/images/alfresco-logo.svg';
disableCsrf = false;
showFooter = true;
showRememberMe = true;
customSuccessRoute = false;
customLogoImage = false;
customMinLength = 2;
constructor(private router: Router,
@@ -46,7 +51,7 @@ export class LoginComponent implements OnInit {
ngOnInit() {
this.alfrescologin.addCustomValidationError('username', 'required', 'LOGIN.MESSAGES.USERNAME-REQUIRED');
this.alfrescologin.addCustomValidationError('username', 'minlength', 'LOGIN.MESSAGES.USERNAME-MIN', {minLength: this.customMinLength});
this.alfrescologin.addCustomValidationError('username', 'minlength', 'LOGIN.MESSAGES.USERNAME-MIN', { minLength: this.customMinLength });
this.alfrescologin.addCustomValidationError('password', 'required', 'LOGIN.MESSAGES.PASSWORD-REQUIRED');
}
@@ -66,6 +71,24 @@ export class LoginComponent implements OnInit {
this.showFooter = !this.showFooter;
}
toggleRemamberme() {
this.showRememberMe = !this.showRememberMe;
}
toggleSuccessRoute() {
this.customSuccessRoute = !this.customSuccessRoute;
if (!this.customSuccessRoute) {
this.customSuccessRouteURI = null;
}
}
toggleLogo() {
this.customLogoImage = !this.customLogoImage;
if (!this.customLogoImage) {
this.customLogoImageURL = null;
}
}
checkForm(event: any) {
const values = event.values;
this.logService.log(values);
@@ -16,7 +16,7 @@
data-automation-id="notification-message">
</mat-form-field>
<button mat-icon-button (click)="send()">
<button mat-icon-button (click)="send()" data-automation-id="notification-default-button">
<mat-icon>send</mat-icon>
</button>
@@ -28,8 +28,43 @@
</mat-slide-toggle>
</div>
<div data-automation-id="notification-action-output">
<div data-automation-id="notification-action-output" *ngIf="actionOutput">
{{ actionOutput }}
</div>
<h2>Custom Configuration</h2>
<form [formGroup]="configForm">
<mat-form-field>
<mat-select class="form-control" formControlName="direction" placeholder="Direction" data-automation-id="notification-direction">
<mat-option *ngFor="let direction of directions" [value]="direction.value">
{{ direction.title }}
</mat-option>
</mat-select>
</mat-form-field>
<mat-form-field>
<input matInput type="number" class="form-control" formControlName="duration" [value]="defaultDuration" placeholder="Duration" data-automation-id="notification-duration">
</mat-form-field>
<mat-form-field>
<mat-select class="form-control" formControlName="horizontalPosition" placeholder="Horizontal Position" data-automation-id="notification-horizontal-position">
<mat-option *ngFor="let horizontalPosition of horizontalPositions" [value]="horizontalPosition.value">
{{ horizontalPosition.title }}
</mat-option>
</mat-select>
</mat-form-field>
<mat-form-field>
<mat-select class="form-control" formControlName="verticalPosition" placeholder="Vertical Position" data-automation-id="notification-vertical-position">
<mat-option *ngFor="let verticalPosition of verticalPositions" [value]="verticalPosition.value">{{ verticalPosition.title }}</mat-option>
</mat-select>
</mat-form-field>
<button mat-icon-button (click)="sendCustomConfig()" data-automation-id="notification-custom-config-button">
<mat-icon>send</mat-icon>
</button>
</form>
<div>
<h3>SnackBar Config</h3>
<p *ngIf="snackBarConfigObject" data-automation-id="notification-custom-object">
{{snackBarConfigObject}}
</p>
</div>
</div>
@@ -15,32 +15,115 @@
* limitations under the License.
*/
import { Component } from '@angular/core';
import { Component, OnInit } from '@angular/core';
import { NotificationService } from '@alfresco/adf-core';
import { MatSnackBarConfig } from '@angular/material';
import { FormBuilder, FormGroup, FormControl } from '@angular/forms';
@Component({
templateUrl: './notifications.component.html',
styleUrls: ['./notifications.component.scss']
})
export class NotificationsComponent {
export class NotificationsComponent implements OnInit {
message = 'I ♥️ ADF';
withAction = false;
actionOutput = '';
snackBarConfigObject = '';
constructor(private notificationService: NotificationService) {}
configForm: FormGroup;
snackBarConfig: MatSnackBarConfig = new MatSnackBarConfig();
directions = [
{ value: 'ltr', title: 'Left to right' },
{ value: 'rtl', title: 'Right to left' }
];
horizontalPositions = [
{ value: 'start', title: 'Start' },
{ value: 'center', title: 'Center' },
{ value: 'end', title: 'End' },
{ value: 'left', title: 'Left' },
{ value: 'right', title: 'Right' }
];
verticalPositions = [
{ value: 'top', title: 'Top' },
{ value: 'bottom', title: 'Bottom' }
];
defaultDuration = 20000;
constructor(private notificationService: NotificationService,
private formBuilder: FormBuilder) {
this.snackBarConfig.duration = this.defaultDuration;
}
ngOnInit() {
this.configForm = this.formBuilder.group({
direction: new FormControl(''),
horizontalPosition: new FormControl(''),
verticalPosition: new FormControl(''),
duration: new FormControl('')
});
this.configForm.valueChanges
.subscribe(configFormValues =>
this.setSnackBarConfig(configFormValues)
);
}
setSnackBarConfig(configFormValues: any) {
if (configFormValues.announcementMessage) {
this.snackBarConfig.announcementMessage = configFormValues.announcementMessage;
}
if (configFormValues.direction) {
this.snackBarConfig.direction = configFormValues.direction;
}
if (configFormValues.duration) {
this.snackBarConfig.duration = configFormValues.duration;
}
if (configFormValues.horizontalPosition) {
this.snackBarConfig.horizontalPosition = configFormValues.horizontalPosition;
}
if (configFormValues.verticalPosition) {
this.snackBarConfig.verticalPosition = configFormValues.verticalPosition;
}
}
send() {
this.actionOutput = '';
if (this.message) {
if (this.withAction) {
this.notificationService
.openSnackMessageAction(this.message, 'Some action')
this.notificationService.openSnackMessageAction(this.message, 'Some action', this.snackBarConfig.duration)
.onAction()
.subscribe(() => this.actionOutput = 'Action clicked');
} else {
this.notificationService.openSnackMessage(this.message);
this.notificationService.openSnackMessage(this.message, this.snackBarConfig.duration);
}
}
}
sendCustomConfig() {
this.actionOutput = '';
this.snackBarConfigObject = `{"direction": "${this.snackBarConfig.direction}",
"duration": "${this.snackBarConfig.duration}",
"horizontalPosition": "${ this.snackBarConfig.horizontalPosition}",
"verticalPosition": "${ this.snackBarConfig.verticalPosition}"}`;
if (this.message) {
if (this.withAction) {
this.notificationService
.openSnackMessageAction(this.message, 'Some action', this.snackBarConfig)
.onAction()
.subscribe(() => this.actionOutput = 'Action clicked');
} else {
this.notificationService.openSnackMessage(this.message, this.snackBarConfig);
}
}
}
@@ -1,5 +1,15 @@
<h1>Overlay Viewer</h1>
<p class="toggle">
<mat-slide-toggle
id="adf-viewer-overlay"
[color]="'primary'"
(change)="toggleOverlay()"
[checked]="isOverlay">
Overlay
</mat-slide-toggle>
</p>
<adf-document-list
currentFolderId="-my-"
(preview)="showPreview($event)">
@@ -7,6 +17,6 @@
<adf-viewer
[(showViewer)]="showViewer"
[overlayMode]="true"
[overlayMode]="isOverlay"
[fileNodeId]="nodeId">
</adf-viewer>
@@ -26,6 +26,11 @@ export class OverlayViewerComponent {
showViewer = false;
nodeId: string;
isOverlay = true;
toggleOverlay() {
this.isOverlay = !this.isOverlay;
}
showPreview(event) {
if (event.value.entry.isFile) {
@@ -0,0 +1,81 @@
<div class="process-list-inputs">
<form [formGroup]="processListForm">
<mat-form-field>
<mat-label>App Id</mat-label>
<input
matInput
class="form-control"
[formControl]="processAppId">
<mat-error *ngIf="processAppId.hasError('required')">
{{ 'PROCESS_LIST_DEMO.APP_ID_REQUIRED_ERROR' | translate }}
</mat-error>
<mat-error *ngIf="processAppId.hasError('pattern')">
{{ 'PROCESS_LIST_DEMO.APP_ID_TYPE_ERROR' | translate }}
</mat-error>
</mat-form-field>
<mat-form-field>
<mat-label>ProcessDefinitionId</mat-label>
<input
matInput
class="form-control"
[formControl]="processDefinitionId">
<mat-hint>SimpleProcess:1:2</mat-hint>
</mat-form-field>
<mat-form-field>
<mat-label>ProcessInstanceId</mat-label>
<input
matInput
class="form-control"
[formControl]="processInstanceId">
</mat-form-field>
<mat-form-field>
<mat-label>Status</mat-label>
<mat-select
class="form-control"
[formControl]="processState">
<mat-option *ngFor="let stateOption of stateOptions" [value]="stateOption.value">{{ stateOption.title }}</mat-option>
</mat-select>
</mat-form-field>
<mat-form-field>
<mat-label>Sort</mat-label>
<mat-select
class="form-control"
[formControl]="processSort">
<mat-option *ngFor="let sortOption of sortOptions" [value]="sortOption.value">{{ sortOption.title }}</mat-option>
</mat-select>
</mat-form-field>
<div class="adf-reset-button">
<button mat-raised-button (click)="resetProcessForm()">Reset</button>
</div>
</form>
</div>
<div>
<adf-process-instance-list
#processList
[appId]="appId"
[processDefinitionId]="processDefId"
[processInstanceId]="instanceId"
[state]="state"
[sort]="sort"
[presetColumn]="presetColumn">
<data-columns>
<data-column key="ended" title="ADF_PROCESS_LIST.PROPERTIES.STATUS">
<ng-template let-entry="$implicit">
<div title="{{getStatus(entry.row.obj.ended)}}">{{getStatus(entry.row.obj.ended)}}</div>
</ng-template>
</data-column>
</data-columns>
</adf-process-instance-list>
<adf-pagination
[target]="processList">
</adf-pagination>
</div>
@@ -0,0 +1,17 @@
.process-list-inputs {
margin-top: 100px;
margin-bottom: 50px;
display: flex;
justify-content: space-evenly;
}
.adf-reset-button {
margin-top: 50px;
display: flex;
justify-content: center;
}
.process-list-error-message {
color: red;
text-align: center;
}
@@ -0,0 +1,134 @@
/*!
* @license
* Copyright 2016 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, OnInit } from '@angular/core';
import { FormGroup, FormBuilder, Validators, FormControl, AbstractControl } from '@angular/forms';
import { ActivatedRoute, Params } from '@angular/router';
import { debounceTime } from 'rxjs/operators';
@Component({
templateUrl: './process-list-demo.component.html',
styleUrls: [`./process-list-demo.component.scss`],
})
export class ProcessListDemoComponent implements OnInit {
processListForm: FormGroup;
defaultAppId: number;
appId: number;
name: string;
processDefId: string;
instanceId: number|string;
state: string;
sort: string;
presetColumn = 'default';
stateOptions = [
{ value: 'all', title: 'All' },
{ value: 'active', title: 'Active' },
{ value: 'completed', title: 'Completed' }
];
sortOptions = [
{value: 'created-asc', title: 'Created (asc)'},
{value: 'created-desc', title: 'Created (desc)'}
];
constructor(private route: ActivatedRoute,
private formBuilder: FormBuilder) {
}
ngOnInit() {
if (this.route) {
this.route.params.forEach((params: Params) => {
this.defaultAppId = params['id'] ? +params['id'] : 0;
});
}
this.appId = this.defaultAppId;
this.buildForm();
}
buildForm() {
this.processListForm = this.formBuilder.group({
processAppId: new FormControl(this.defaultAppId, [Validators.required, Validators.pattern('^[0-9]*$')]),
processDefinitionId: new FormControl(''),
processInstanceId: new FormControl(''),
processState: new FormControl(''),
processSort: new FormControl('')
});
this.processListForm.valueChanges
.pipe(
debounceTime(500)
)
.subscribe(processFilter => {
if (this.isFormValid()) {
this.filterProcesses(processFilter);
}
});
}
filterProcesses(processFilter: any) {
this.appId = processFilter.processAppId;
this.name = processFilter.processName;
this.processDefId = processFilter.processDefinitionId;
this.instanceId = processFilter.processInstanceId;
this.state = processFilter.processState;
this.sort = processFilter.processSort;
}
isFormValid() {
return this.processListForm && this.processListForm.dirty && this.processListForm.valid;
}
resetProcessForm() {
this.processListForm.reset();
}
getStatus(ended: Date) {
return ended ? 'Completed' : 'Active';
}
get processAppId(): AbstractControl {
return this.processListForm.get('processAppId');
}
get processDefinitionId(): AbstractControl {
return this.processListForm.get('processDefinitionId');
}
get processInstanceId(): AbstractControl {
return this.processListForm.get('processInstanceId');
}
get processState(): AbstractControl {
return this.processListForm.get('processState');
}
get processSort(): AbstractControl {
return this.processListForm.get('processSort');
}
}
@@ -17,7 +17,7 @@
import { Component, OnDestroy, OnInit } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { Subscription } from 'rxjs/Subscription';
import { Subscription } from 'rxjs';
@Component({
selector: 'app-form-node-viewer',
@@ -17,7 +17,7 @@
import { Component, OnDestroy, OnInit } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { Subscription } from 'rxjs/Subscription';
import { Subscription } from 'rxjs';
@Component({
selector: 'app-form-viewer',
@@ -22,7 +22,7 @@ import { UploadService } from '@alfresco/adf-core';
import { AlfrescoApiService } from '@alfresco/adf-core';
import { AppConfigService } from '@alfresco/adf-core';
import { PreviewService } from '../../services/preview.service';
import { Subscription } from 'rxjs/Subscription';
import { Subscription } from 'rxjs';
export function processUploadServiceFactory(api: AlfrescoApiService, config: AppConfigService) {
return new ProcessUploadService(api, config);
@@ -32,7 +32,7 @@
*ngIf="taskFilter && !isStartTaskMode()">
<adf-tasklist
[appId]="taskFilter?.appId"
[presetColumn]="presetColoum"
[presetColumn]="presetColumn"
[page]="taskPage"
[size]="paginationPageSize"
[processDefinitionKey]="taskFilter?.filter?.processDefinitionKey"
@@ -59,11 +59,10 @@
*ngIf="taskList"
[target]="taskList"
(changePageSize)="onChangePageSize($event)"
[supportedPageSizes]="supportedPages"
#taskListPagination>
</adf-pagination>
</div>
<div class="adf-grid-item adf-tasks-details" *ngIf="!isStartTaskMode()" fxFlex.gt-md="1 1 auto">
<div class="adf-grid-item adf-tasks-details" *ngIf="!isStartTaskMode()" fxFlex.gt-md="1 1 auto" data-automation-id="adf-tasks-details">
<adf-task-details #activitidetails
[debugMode]="true"
[taskId]="currentTaskId"
@@ -123,7 +122,7 @@
[headingIcon]="'assessment'">
<adf-process-instance-filters
#activitiprocessfilter
[filterParam]="{index: 0}"
[filterParam]="filterSelected"
[appId]="appId"
(filterClick)="onProcessFilterClick($event)"
(success)="onSuccessProcessFilterList($event)">
@@ -137,8 +136,7 @@
#processList
*ngIf="processFilter?.filter" [appId]="processFilter?.appId"
[processDefinitionKey]="processFilter?.filter?.processDefinitionKey"
[name]="processFilter?.filter?.name"
[presetColumn]="presetColoum"
[presetColumn]="presetColumn"
[state]="processFilter?.filter?.state"
[page]="processPage"
[size]="paginationPageSize"
@@ -158,7 +156,6 @@
*ngIf="processList"
[target]="processList"
(changePageSize)="onChangePageSize($event)"
[supportedPageSizes]="supportedPages"
#processListPagination>
</adf-pagination>
</div>
@@ -54,7 +54,7 @@ import {
} from '@alfresco/adf-process-services';
import { LogService } from '@alfresco/adf-core';
import { AlfrescoApiService, UserPreferencesService } from '@alfresco/adf-core';
import { Subscription } from 'rxjs/Subscription';
import { Subscription } from 'rxjs';
import { /*CustomEditorComponent*/ CustomStencil01 } from './custom-editor/custom-editor.component';
import { DemoFieldValidator } from './demo-field-validator';
import { PreviewService } from '../../services/preview.service';
@@ -127,8 +127,6 @@ export class ProcessServiceComponent implements AfterViewInit, OnDestroy, OnInit
paginationPageSize = 0;
processSchemaColumns: any[] = [];
supportedPages: number[];
defaultProcessDefinitionName: string;
defaultProcessName: string;
@@ -140,7 +138,7 @@ export class ProcessServiceComponent implements AfterViewInit, OnDestroy, OnInit
blobFile: any;
flag = true;
presetColoum = 'default';
presetColumn = 'default';
showTaskTab: boolean;
showProcessTab: boolean;
@@ -192,7 +190,11 @@ export class ProcessServiceComponent implements AfterViewInit, OnDestroy, OnInit
validateDynamicTableRowEvent.preventDefault();
}
}
)
),
formService.formContentClicked.subscribe(content => {
this.showContentPreview(content);
})
);
// Uncomment this block to see form event handling in action
@@ -225,7 +227,6 @@ export class ProcessServiceComponent implements AfterViewInit, OnDestroy, OnInit
this.currentProcessInstanceId = null;
});
this.layoutType = AppsListComponent.LAYOUT_GRID;
this.supportedPages = this.preferenceService.getDefaultPageSizes();
}
ngOnDestroy() {
@@ -399,6 +400,10 @@ export class ProcessServiceComponent implements AfterViewInit, OnDestroy, OnInit
}
onContentClick(content: any): void {
this.showContentPreview(content);
}
private showContentPreview(content: any) {
if (content.contentBlob) {
this.preview.showBlob(content.name, content.contentBlob);
} else {
@@ -19,7 +19,7 @@ import { Component, Input, OnChanges, OnInit, ViewChild, OnDestroy } from '@angu
import { TaskListService, TaskAttachmentListComponent, TaskDetailsModel, TaskUploadService } from '@alfresco/adf-process-services';
import { UploadService, AlfrescoApiService, AppConfigService } from '@alfresco/adf-core';
import { PreviewService } from '../../services/preview.service';
import { Subscription } from 'rxjs/Subscription';
import { Subscription } from 'rxjs';
export function taskUploadServiceFactory(api: AlfrescoApiService, config: AppConfigService) {
return new TaskUploadService(api, config);
@@ -65,7 +65,7 @@ export class TaskAttachmentsComponent implements OnInit, OnChanges, OnDestroy {
ngOnChanges() {
if (this.taskId) {
this.activitiTaskList.getTaskDetails(this.taskId).map((res) => res)
this.activitiTaskList.getTaskDetails(this.taskId)
.subscribe((taskDetails: TaskDetailsModel) => {
this.taskDetails = taskDetails;
});
@@ -0,0 +1,9 @@
<div class="adf-report-issue">
<h1>Report Issue</h1>
<form class="adf-report-issue-form">
<mat-form-field>
<textarea matInput placeholder="Leave a comment" class="adf-report-issue-form-textarea"></textarea>
</mat-form-field>
</form>
<button mat-raised-button>Submit</button>
</div>
@@ -0,0 +1,24 @@
.adf-report-issue {
margin: 50px 0;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
&-form {
width: 50%;
min-width: 250px;
margin-bottom: 50px;
& mat-form-field {
width: 100%;
}
&-textarea {
background-color: white;
width: 100%;
height: 250px;
}
}
}
@@ -0,0 +1,26 @@
/*!
* @license
* Copyright 2016 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';
@Component({
templateUrl: './report-issue.component.html',
styleUrls: [`./report-issue.component.scss`],
})
export class ReportIssueComponent {
}
@@ -20,7 +20,7 @@ import { Router, ActivatedRoute, Params } from '@angular/router';
import { NodePaging, Pagination } from 'alfresco-js-api';
import { SearchComponent, SearchQueryBuilderService } from '@alfresco/adf-content-services';
import { UserPreferencesService, SearchService, SearchConfigurationService } from '@alfresco/adf-core';
import { Subscription } from 'rxjs/Subscription';
import { Subscription } from 'rxjs';
@Component({
selector: 'app-search-result-component',
@@ -1,3 +1,20 @@
/*!
* @license
* Copyright 2016 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, ViewEncapsulation, OnInit } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
@@ -0,0 +1,148 @@
<div class="task-list-demo-inputs">
<form [formGroup]="taskListForm">
<mat-form-field>
<mat-label>App Id</mat-label>
<input
matInput
class="form-control"
[formControl]="taskAppId">
<mat-error *ngIf="taskAppId.hasError('pattern')">
{{ 'TASK_LIST_DEMO.ERROR_MESSAGE.APP_ID_TYPE_ERROR' | translate }}
</mat-error>
</mat-form-field>
<mat-form-field>
<mat-label>Task Name</mat-label>
<input
matInput
class="form-control"
[formControl]="taskName">
</mat-form-field>
<mat-form-field>
<mat-label>Task Id</mat-label>
<input
matInput
class="form-control"
[formControl]="taskId">
</mat-form-field>
<mat-form-field>
<mat-label>Start</mat-label>
<input
matInput
class="form-control"
matTooltip="{{ 'TASK_LIST_DEMO.TOOLTIP_MESSAGE.START_INPUT' | translate }}"
[formControl]="taskStart">
<mat-error *ngIf="taskStart.hasError('pattern')">
{{ 'TASK_LIST_DEMO.ERROR_MESSAGE.NUMBER_TYPE_ERROR' | translate }}
</mat-error>
</mat-form-field>
<mat-form-field>
<mat-label>ProcessDefinitionId</mat-label>
<input
matInput
class="form-control"
[formControl]="taskProcessDefinitionId">
<mat-hint>E.g. SimpleProcess:1:2</mat-hint>
</mat-form-field>
<mat-form-field>
<mat-label>ProcessInstanceId</mat-label>
<input
matInput
class="form-control"
[formControl]="taskProcessInstanceId">
<mat-hint>E.g. 12345</mat-hint>
</mat-form-field>
<mat-form-field>
<mat-label>Items per page</mat-label>
<input
matInput
class="form-control"
[formControl]="taskSize">
</mat-form-field>
<mat-form-field>
<mat-label>Page</mat-label>
<input
matInput
class="form-control"
[formControl]="taskPage">
</mat-form-field>
<mat-form-field>
<mat-label>Process Instance</mat-label>
<mat-select
class="form-control"
[formControl]="taskIncludeProcessInstance">
<mat-option *ngFor="let includeProcessInstanceOption of includeProcessInstanceOptions" [value]="includeProcessInstanceOption.value">{{ includeProcessInstanceOption.title }}</mat-option>
</mat-select>
</mat-form-field>
<mat-form-field>
<mat-label>Assignment</mat-label>
<mat-select
class="form-control"
[formControl]="taskAssignment">
<mat-option *ngFor="let assignmentOption of assignmentOptions" [value]="assignmentOption.value">{{ assignmentOption.title }}</mat-option>
</mat-select>
</mat-form-field>
<mat-form-field>
<mat-label>State</mat-label>
<mat-select
class="form-control"
[formControl]="taskState">
<mat-option *ngFor="let stateOption of stateOptions" [value]="stateOption.value">{{ stateOption.title }}</mat-option>
</mat-select>
</mat-form-field>
<mat-form-field>
<mat-label>Sort</mat-label>
<mat-select
class="form-control"
[formControl]="taskSort">
<mat-option *ngFor="let sortOption of sortOptions" [value]="sortOption.value">{{ sortOption.title }}</mat-option>
</mat-select>
</mat-form-field>
</form>
</div>
<div class="adf-reset-button">
<button mat-raised-button (click)="resetTaskForm()">Reset</button>
</div>
<div>
<adf-tasklist
[appId]="appId"
[taskId]="id"
[name]="name"
[processDefinitionId]="processDefinitionId"
[processInstanceId]="processInstanceId"
[assignment]="assignment"
[state]="state"
[sort]="sort"
[start]="start"
[page]="page"
[size]="size"
[includeProcessInstance]="includeProcessInstance"
#taskList>
<data-columns>
<data-column key="id" title="Id"></data-column>
<data-column key="name" title="Name"></data-column>
<data-column key="description" title="Description"></data-column>
<data-column key="created" title="Created"></data-column>
<data-column key="dueDate" title="Due Date"></data-column>
<data-column key="processInstanceId" title="Process Instance Id"></data-column>
<data-column key="processDefinitionId" title="Process Definition Id"></data-column>
</data-columns>
</adf-tasklist>
<adf-pagination
[target]="taskList">
</adf-pagination>
</div>
@@ -0,0 +1,23 @@
.task-list-demo-inputs {
margin: 100px auto 0 auto;
width: 80%;
display: flex;
flex: wrap;
justify-content: space-evenly;
& mat-form-field {
margin: 20px 0;
width: calc(100% * (1/4) - 10px);
}
}
.adf-reset-button {
margin-bottom: 50px;
display: flex;
justify-content: center;
}
.task-list-demo-error-message {
color: red;
text-align: center;
}
@@ -0,0 +1,215 @@
/*!
* @license
* Copyright 2016 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, OnInit } from '@angular/core';
import { FormGroup, FormBuilder, Validators, FormControl, AbstractControl } from '@angular/forms';
import { ActivatedRoute, Params } from '@angular/router';
import { debounceTime } from 'rxjs/operators';
@Component({
templateUrl: './task-list-demo.component.html',
styleUrls: [`./task-list-demo.component.scss`],
})
export class TaskListDemoComponent implements OnInit {
defaultAppId: number;
taskListForm: FormGroup;
errorMessage: string;
appId: number;
id: string;
processDefinitionId: string;
processInstanceId: string;
state: string;
assignment: string;
name: string;
sort: string;
start: number;
size: number;
page: number;
includeProcessInstance: boolean;
assignmentOptions = [
{value: 'assignee', title: 'Assignee'},
{value: 'candidate', title: 'Candidate'}
];
includeProcessInstanceOptions = [
{value: 'include', title: 'Include'},
{value: 'exclude', title: 'Exclude'}
];
stateOptions = [
{value: 'all', title: 'All'},
{value: 'active', title: 'Active'},
{value: 'completed', title: 'Completed'}
];
sortOptions = [
{value: 'created-asc', title: 'Created (asc)'},
{value: 'created-desc', title: 'Created (desc)'},
{value: 'due-asc', title: 'Due (asc)'},
{value: 'due-desc', title: 'Due (desc)'}
];
constructor(private route: ActivatedRoute,
private formBuilder: FormBuilder) {
}
ngOnInit() {
if (this.route) {
this.route.params.forEach((params: Params) => {
if (params['id']) {
this.defaultAppId = +params['id'];
}
});
}
this.appId = this.defaultAppId;
this.errorMessage = 'Insert App Id';
this.buildForm();
}
buildForm() {
this.taskListForm = this.formBuilder.group({
taskAppId: new FormControl(this.defaultAppId, [Validators.pattern('^[0-9]*$')]),
taskName: new FormControl(''),
taskId: new FormControl(''),
taskProcessDefinitionId: new FormControl(''),
taskProcessInstanceId: new FormControl(''),
taskAssignment: new FormControl(''),
taskState: new FormControl(''),
taskSort: new FormControl(''),
taskSize: new FormControl(''),
taskPage: new FormControl(''),
taskStart: new FormControl('', [Validators.pattern('^[0-9]*$')]),
taskIncludeProcessInstance: new FormControl('')
});
this.taskListForm.valueChanges
.pipe(
debounceTime(500)
)
.subscribe(taskFilter => {
if (this.isFormValid()) {
this.filterTasks(taskFilter);
}
});
}
filterTasks(taskFilter: any) {
this.appId = taskFilter.taskAppId;
this.id = taskFilter.taskId;
this.processDefinitionId = taskFilter.taskProcessDefinitionId;
this.processInstanceId = taskFilter.taskProcessInstanceId;
this.name = taskFilter.taskName;
this.assignment = taskFilter.taskAssignment;
this.state = taskFilter.taskState;
this.sort = taskFilter.taskSort;
this.start = taskFilter.taskStart;
this.size = taskFilter.taskSize;
this.page = taskFilter.taskPage;
this.includeProcessInstance = taskFilter.taskIncludeProcessInstance === 'include';
}
resetTaskForm() {
this.taskListForm.reset();
this.resetQueryParameters();
}
resetQueryParameters() {
this.appId = null;
this.id = null;
this.processDefinitionId = null;
this.processInstanceId = null;
this.name = null;
this.assignment = null;
this.state = null;
this.sort = null;
this.start = null;
this.size = null;
this.page = null;
}
isFormValid() {
return this.taskListForm && this.taskListForm.dirty && this.taskListForm.valid;
}
get taskAppId(): AbstractControl {
return this.taskListForm.get('taskAppId');
}
get taskId(): AbstractControl {
return this.taskListForm.get('taskId');
}
get taskProcessDefinitionId(): AbstractControl {
return this.taskListForm.get('taskProcessDefinitionId');
}
get taskProcessInstanceId(): AbstractControl {
return this.taskListForm.get('taskProcessInstanceId');
}
get taskName(): AbstractControl {
return this.taskListForm.get('taskName');
}
get taskAssignment(): AbstractControl {
return this.taskListForm.get('taskAssignment');
}
get taskState(): AbstractControl {
return this.taskListForm.get('taskState');
}
get taskSort(): AbstractControl {
return this.taskListForm.get('taskSort');
}
get taskIncludeProcessInstance(): AbstractControl {
return this.taskListForm.get('taskIncludeProcessInstance');
}
get taskStart(): AbstractControl {
return this.taskListForm.get('taskStart');
}
get taskSize(): AbstractControl {
return this.taskListForm.get('taskSize');
}
get taskPage(): AbstractControl {
return this.taskListForm.get('taskPage');
}
}
@@ -1,3 +1,20 @@
/*!
* @license
* Copyright 2016 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 { Injectable } from '@angular/core';
/**
@@ -1,3 +1,20 @@
/*!
* @license
* Copyright 2016 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 { CommonModule } from '@angular/common';
import { ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
import {
@@ -1,3 +1,20 @@
/*!
* @license
* Copyright 2016 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 { EventEmitter, Injectable } from '@angular/core';
export interface DocsSiteTheme {
@@ -91,7 +91,6 @@
</adf-document-list>
<adf-pagination [ngClass]="{ 'no-border' : documentList.isEmpty()}"
[supportedPageSizes]="supportedPages"
[target]="documentList">
</adf-pagination>
</div>
@@ -1,26 +1,18 @@
/*!
* @license
* Alfresco Example Content Application
* Copyright 2016 Alfresco Software, Ltd.
*
* Copyright (C) 2005 - 2017 Alfresco Software Limited
* 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
*
* This file is part of the Alfresco Example Content Application.
* If the software was purchased under a paid Alfresco license, the terms of
* the paid license agreement will prevail. Otherwise, the software is
* provided under the following open source license terms:
* http://www.apache.org/licenses/LICENSE-2.0
*
* The Alfresco Example Content Application is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* The Alfresco Example Content Application is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
* 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, ViewChild } from '@angular/core';
@@ -37,7 +29,6 @@ export class TrashcanComponent {
@ViewChild('documentList')
documentList: DocumentListComponent;
supportedPages = [];
currentLocale;
constructor(
@@ -45,12 +36,6 @@ export class TrashcanComponent {
private router: Router,
private notificationService: NotificationService
) {
this.preference
.select(UserPreferenceValues.SupportedPageSizes)
.subscribe(pages => {
this.supportedPages = pages;
});
this.preference
.select(UserPreferenceValues.Locale)
.subscribe(locale => {
@@ -19,8 +19,7 @@ import { Injectable } from '@angular/core';
import { AppConfigService, AlfrescoApiService, EcmModelService, LogService,
FormFieldOption, FormService, FormValues, FormModel,
FormOutcomeModel, FormOutcomeEvent } from '@alfresco/adf-core';
import { Observable } from 'rxjs/Observable';
import { Subject } from 'rxjs/Subject';
import { Observable, Subject } from 'rxjs';
interface ProcessServiceData {
rest: {
Binary file not shown.

After

Width:  |  Height:  |  Size: 9.6 KiB

@@ -1,3 +1,20 @@
/*!
* @license
* Copyright 2016 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: true
};
@@ -1,3 +1,20 @@
/*!
* @license
* Copyright 2016 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.
*/
// The file contents for the current environment will overwrite these during build.
// The build system defaults to the dev environment which uses `environment.ts`, but if you do
// `ng build --env=prod` then `environment.prod.ts` will be used instead.
+19 -4
View File
@@ -1,17 +1,32 @@
/*!
* @license
* Copyright 2016 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 { enableProdMode } from '@angular/core';
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './app/app.module';
import { environment } from './environments/environment';
import 'hammerjs';
import 'chart.js';
import 'ng2-charts';
import * as pdfjsLib from 'pdfjs-dist';
pdfjsLib.PDFJS.workerSrc = 'pdf.worker.js';
if (environment.production) {
enableProdMode();
enableProdMode();
}
platformBrowserDynamic().bootstrapModule(AppModule);
+17
View File
@@ -1,3 +1,20 @@
/*!
* @license
* Copyright 2016 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.
*/
/**
* This file includes polyfills needed by Angular and is loaded before the app.
* You can add your own extra polyfills to this file.
+17
View File
@@ -1,3 +1,20 @@
/*!
* @license
* Copyright 2016 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.
*/
// This file is required by karma.conf.js and loads recursively all the .spec and framework files
import 'zone.js/dist/zone-testing';
+4 -2
View File
@@ -1,5 +1,4 @@
{
"extends": "../tsconfig.json",
"compileOnSave": false,
"compilerOptions": {
"outDir": "./dist/out-tsc",
@@ -23,5 +22,8 @@
},
"exclude": [
"node_modules"
]
],
"angularCompilerOptions": {
"preserveWhitespaces": false
}
}
+4 -5
View File
@@ -4,6 +4,10 @@
"../tools/tslint-rules/"
],
"rules": {
"adf-license-banner": [
true,
"**/*.ts"
],
"arrow-return-shorthand": true,
"callable-types": true,
"class-name": true,
@@ -14,11 +18,6 @@
"curly": true,
"eofline": true,
"forin": true,
"import-blacklist": [
true,
"rxjs",
"rxjs/Rx"
],
"import-spacing": true,
"indent": [
true,
+10 -10
View File
@@ -58,7 +58,7 @@ for more information about installing and using the source code.
| Name | Description | Source link |
| ---- | ----------- | ----------- |
| [About component](core/about.component.md) ![Experimental](docassets/images/ExperimentalIcon.png) | This component allow you to have a general overview of the version of ADF installed and the status of the Content service and Process service. | [Source](../lib/core/about/about.component.ts) |
| [Buttons menu component](core/buttons-menu.component.md) | Displays buttons on a responsive menu. | [Source](../lib/core/buttons-menu/buttons-menu.component.ts) |
| [Buttons menu component](core/buttons-menu.component.md) | Displays buttons on a responsive menu. | [Source](../lib/core/buttons-menu/buttons-menu.component.ts) |
| [Card view component](core/card-view.component.md) | Displays a configurable property list renderer. | [Source](../lib/core/card-view/components/card-view/card-view.component.ts) |
| [Accordion group component](core/accordion-group.component.md) | Adds a collapsible panel to an accordion menu. | [Source](../lib/core/collapsable/accordion-group.component.ts) |
| [Accordion component](core/accordion.component.md) | Creates a collapsible accordion menu. | [Source](../lib/core/collapsable/accordion.component.ts) |
@@ -78,8 +78,8 @@ for more information about installing and using the source code.
| [Infinite pagination component](core/infinite-pagination.component.md) | Adds "infinite" pagination to the component it is used with. | [Source](../lib/core/pagination/infinite-pagination.component.ts) |
| [Pagination component](core/pagination.component.md) | Adds pagination to the component it is used with. | [Source](../lib/core/pagination/pagination.component.ts) |
| [Host settings component](core/host-settings.component.md) ![Internal](docassets/images/InternalIcon.png) | Validates the URLs for ACS and APS and saves them in the user's local storage | [Source](../lib/core/settings/host-settings.component.ts) |
| [Sidebar action menu component](core/sidebar-action-menu.component.md) | Displays a sidebar-action menu information panel. | [Source](../lib/core/sidenav-layout/components/sidebar-action/sidebar-action-menu.component.ts) |
| [Sidenav layout component](core/sidenav-layout.component.md) | Displays the standard three-region ADF application layout. | [Source](../lib/core/sidenav-layout/components/sidenav-layout/sidenav-layout.component.ts) |
| [Sidebar action menu component](core/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/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/sorting-picker.component.md) | Selects from a set of predefined sorting definitions and directions. | [Source](../lib/core/sorting-picker/sorting-picker.component.ts) |
| [Empty content component](core/empty-content.component.md) | Provides a generic "Empty Content" placeholder for components. | [Source](../lib/core/templates/empty-content/empty-content.component.ts) |
| [Error content component](core/error-content.component.md) | Displays info about a specific error. | [Source](../lib/core/templates/error-content/error-content.component.ts) |
@@ -122,7 +122,7 @@ for more information about installing and using the source code.
| [Node name tooltip pipe](core/node-name-tooltip.pipe.md) | Formats the tooltip for a Node. | [Source](../lib/core/pipes/node-name-tooltip.pipe.ts) |
| [Text highlight pipe](core/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/time-ago.pipe.md) | Converts a recent past date into a number of days ago. | [Source](../lib/core/pipes/time-ago.pipe.ts) |
| [User initial pipe](core/user-initial.pipe.md) | Takes the name fields of a UserProcessModel object and extracts and formats the initials. | [Source](../lib/core/pipes/user-initial.pipe.ts) |
| [User initial pipe](core/user-initial.pipe.md) | Takes the name fields of a `UserProcessModel` object and extracts and formats the initials. | [Source](../lib/core/pipes/user-initial.pipe.ts) |
## Services
@@ -133,7 +133,7 @@ for more information about installing and using the source code.
| [Activiti alfresco service](core/activiti-alfresco.service.md) | Gets Alfresco Repository folder content based on a Repository account configured in Alfresco Process Services (APS). | [Source](../lib/core/form/services/activiti-alfresco.service.ts) |
| [Form rendering service](core/form-rendering.service.md) | Maps an APS form field type string onto the corresponding form widget component type. | [Source](../lib/core/form/services/form-rendering.service.ts) |
| [Form service](core/form.service.md) | Implements Process Services form methods | [Source](../lib/core/form/services/form.service.ts) |
| [Node service](core/node.service.md) | Gets Alfresco Repository node metadata and creates nodes with metadata. | [Source](../lib/core/form/services/node.service.ts) |
| [Node service](core/node.service.md) | Gets Alfresco Repository node metadata and creates nodes with metadata. | [Source](../lib/core/form/services/node.service.ts) |
| [Process content service](core/process-content.service.md) | Manipulates content related to a Process Instance or Task Instance in APS. | [Source](../lib/core/form/services/process-content.service.ts) |
| [Alfresco api service](core/alfresco-api.service.md) | Provides access to an initialized **AlfrescoJSApi** instance. | [Source](../lib/core/services/alfresco-api.service.ts) |
| [Apps process service](core/apps-process.service.md) | Gets details of the Process Services apps that are deployed for the user. | [Source](../lib/core/services/apps-process.service.ts) |
@@ -153,7 +153,7 @@ for more information about installing and using the source code.
| [Nodes api service](core/nodes-api.service.md) | Accesses and manipulates ACS document nodes using their node IDs. | [Source](../lib/core/services/nodes-api.service.ts) |
| [Notification service](core/notification.service.md) | Shows a notification message with optional feedback. | [Source](../lib/core/services/notification.service.ts) |
| [Page title service](core/page-title.service.md) | Sets the page title. | [Source](../lib/core/services/page-title.service.ts) |
| [People content service](core/people-content.service.md) | Gets information about a Content Services user. | [Source](../lib/core/services/people-content.service.ts) |
| [People content service](core/people-content.service.md) | Gets information about a Content Services user. | [Source](../lib/core/services/people-content.service.ts) |
| [People process service](core/people-process.service.md) | Gets information about Process Services users. | [Source](../lib/core/services/people-process.service.ts) |
| [Renditions service](core/renditions.service.md) ![Deprecated](docassets/images/DeprecatedIcon.png) | Manages prearranged conversions of content to different formats. | [Source](../lib/core/services/renditions.service.ts) |
| [Search configuration service](core/search-configuration.service.md) | Provides fine control of parameters to a search. | [Source](../lib/core/services/search-configuration.service.ts) |
@@ -219,7 +219,7 @@ for more information about installing and using the source code.
| [Search slider component](content-services/search-slider.component.md) | Implements a numeric slider widget for the Search Filter component. | [Source](../lib/content-services/search/components/search-slider/search-slider.component.ts) |
| [Search sorting picker component](content-services/search-sorting-picker.component.md) | Provides an ability to select one of the predefined sorting definitions for search results: | [Source](../lib/content-services/search/components/search-sorting-picker/search-sorting-picker.component.ts) |
| [Search text component](content-services/search-text.component.md) | Implements a text input widget for the Search Filter component. | [Source](../lib/content-services/search/components/search-text/search-text.component.ts) |
| [Search component](content-services/search.component.md) | Searches items for supplied search terms. | [Source](../lib/content-services/search/components/search.component.ts) |
| [Search component](content-services/search.component.md) | Searches items for supplied search terms. | [Source](../lib/content-services/search/components/search.component.ts) |
| [Sites dropdown component](content-services/sites-dropdown.component.md) | Displays a dropdown menu to show and interact with the sites of the current user. | [Source](../lib/content-services/site-dropdown/sites-dropdown.component.ts) |
| [Like component](content-services/like.component.md) | Allows a user to add "likes" to an item. | [Source](../lib/content-services/social/like.component.ts) |
| [Rating component](content-services/rating.component.md) | Allows a user to add ratings to an item. | [Source](../lib/content-services/social/rating.component.ts) |
@@ -333,9 +333,9 @@ for more information about installing and using the source code.
| Name | Description | Source link |
| ---- | ----------- | ----------- |
| [Process filter service](process-services/process-filter.service.md) | Manage Process Filters, which are pre-configured Process Instance queries. | [Source](../lib/process-services/process-list/services/process-filter.service.ts) |
| [Process service](process-services/process.service.md) | Manages Process Instances, Process Variables, and Process Audit Log. | [Source](../lib/process-services/process-list/services/process.service.ts) |
| [Task filter service](process-services/task-filter.service.md) | Manage Task Filters, which are pre-configured Task Instance queries. | [Source](../lib/process-services/task-list/services/task-filter.service.ts) |
| [Process filter service](process-services/process-filter.service.md) | Manage Process Filters, which are pre-configured Process Instance queries. | [Source](../lib/process-services/process-list/services/process-filter.service.ts) |
| [Process service](process-services/process.service.md) | Manages Process Instances, Process Variables, and Process Audit Log. | [Source](../lib/process-services/process-list/services/process.service.ts) |
| [Task filter service](process-services/task-filter.service.md) | Manage Task Filters, which are pre-configured Task Instance queries. | [Source](../lib/process-services/task-list/services/task-filter.service.ts) |
| [Tasklist service](process-services/tasklist.service.md) | Manages Task Instances. | [Source](../lib/process-services/task-list/services/tasklist.service.ts) |
<!--process-services end-->
+13 -13
View File
@@ -22,17 +22,17 @@ for more information about installing and using the source code.
| [Add permission panel component](add-permission-panel.component.md) | Searches for people or groups to add to the current node permissions. | [Source](../../lib/content-services/permission-manager/components/add-permission/add-permission-panel.component.ts) |
| [Add permission component](add-permission.component.md) | Searches for people or groups to add to the current node permissions. | [Source](../../lib/content-services/permission-manager/components/add-permission/add-permission.component.ts) |
| [Permission list component](permission-list.component.md) | Shows node permissions as a table. | [Source](../../lib/content-services/permission-manager/components/permission-list/permission-list.component.ts) |
| [Search check list component](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 check list component](search-check-list.component.md) | Implements a checklist widget for the [Search Filter component](../content-services/search-filter.component.md). | [Source](../../lib/content-services/search/components/search-check-list/search-check-list.component.ts) |
| [Search chip list component](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](search-control.component.md) | Displays a input text which shows find-as-you-type suggestions. | [Source](../../lib/content-services/search/components/search-control.component.ts) |
| [Search date range component](search-date-range.component.md) | Implements a date range widget for the Search Filter component. | [Source](../../lib/content-services/search/components/search-date-range/search-date-range.component.ts) |
| [Search date range component](search-date-range.component.md) | Implements a date range widget for the [Search Filter component](../content-services/search-filter.component.md). | [Source](../../lib/content-services/search/components/search-date-range/search-date-range.component.ts) |
| [Search filter component](search-filter.component.md) | Represents a main container component for custom search and faceted search settings. | [Source](../../lib/content-services/search/components/search-filter/search-filter.component.ts) |
| [Search number range component](search-number-range.component.md) | Implements a number range widget for the Search Filter component. | [Source](../../lib/content-services/search/components/search-number-range/search-number-range.component.ts) |
| [Search radio component](search-radio.component.md) | Implements a radio button list widget for the Search Filter component. | [Source](../../lib/content-services/search/components/search-radio/search-radio.component.ts) |
| [Search slider component](search-slider.component.md) | Implements a numeric slider widget for the Search Filter component. | [Source](../../lib/content-services/search/components/search-slider/search-slider.component.ts) |
| [Search number range component](search-number-range.component.md) | Implements a number range widget for the [Search Filter component](../content-services/search-filter.component.md). | [Source](../../lib/content-services/search/components/search-number-range/search-number-range.component.ts) |
| [Search radio component](search-radio.component.md) | Implements a radio button list widget for the [Search Filter component](../content-services/search-filter.component.md). | [Source](../../lib/content-services/search/components/search-radio/search-radio.component.ts) |
| [Search slider component](search-slider.component.md) | Implements a numeric slider widget for the [Search Filter component](../content-services/search-filter.component.md). | [Source](../../lib/content-services/search/components/search-slider/search-slider.component.ts) |
| [Search sorting picker component](search-sorting-picker.component.md) | Provides an ability to select one of the predefined sorting definitions for search results: | [Source](../../lib/content-services/search/components/search-sorting-picker/search-sorting-picker.component.ts) |
| [Search text component](search-text.component.md) | Implements a text input widget for the Search Filter component. | [Source](../../lib/content-services/search/components/search-text/search-text.component.ts) |
| [Search component](search.component.md) | Searches items for supplied search terms. | [Source](../../lib/content-services/search/components/search.component.ts) |
| [Search text component](search-text.component.md) | Implements a text input widget for the [Search Filter component](../content-services/search-filter.component.md). | [Source](../../lib/content-services/search/components/search-text/search-text.component.ts) |
| [Search component](search.component.md) | Searches items for supplied search terms. | [Source](../../lib/content-services/search/components/search.component.ts) |
| [Sites dropdown component](sites-dropdown.component.md) | Displays a dropdown menu to show and interact with the sites of the current user. | [Source](../../lib/content-services/site-dropdown/sites-dropdown.component.ts) |
| [Like component](like.component.md) | Allows a user to add "likes" to an item. | [Source](../../lib/content-services/social/like.component.ts) |
| [Rating component](rating.component.md) | Allows a user to add ratings to an item. | [Source](../../lib/content-services/social/rating.component.ts) |
@@ -43,7 +43,7 @@ for more information about installing and using the source code.
| [Upload button component](upload-button.component.md) | Activates a file upload. | [Source](../../lib/content-services/upload/components/upload-button.component.ts) |
| [Upload drag area component](upload-drag-area.component.md) | Adds a drag and drop area to upload files to ACS. | [Source](../../lib/content-services/upload/components/upload-drag-area.component.ts) |
| [Upload version button component](upload-version-button.component.md) ![Experimental](../docassets/images/ExperimentalIcon.png) | Activates a file version upload. | [Source](../../lib/content-services/upload/components/upload-version-button.component.ts) |
| [Version list component](version-list.component.md) ![Experimental](../docassets/images/ExperimentalIcon.png) | Displays the version history of a node in a Version Manager component. | [Source](../../lib/content-services/version-manager/version-list.component.ts) |
| [Version list component](version-list.component.md) ![Experimental](../docassets/images/ExperimentalIcon.png) | Displays the version history of a node in a [Version Manager component](../content-services/version-manager.component.md). | [Source](../../lib/content-services/version-manager/version-list.component.ts) |
| [Version manager component](version-manager.component.md) ![Experimental](../docassets/images/ExperimentalIcon.png) | Displays the version history of a node with the ability to upload a new version. | [Source](../../lib/content-services/version-manager/version-manager.component.ts) |
| [Webscript component](webscript.component.md) | Provides access to Webscript features. | [Source](../../lib/content-services/webscript/webscript.component.ts) |
@@ -72,12 +72,12 @@ for more information about installing and using the source code.
| ---- | ----------- | ----------- |
| [Content node dialog service](content-node-dialog.service.md) | Displays and manages dialogs for selecting content to open, copy or upload. | [Source](../../lib/content-services/content-node-selector/content-node-dialog.service.ts) |
| [Custom resources service](custom-resources.service.md) | Manages Document List information that is specific to a user. | [Source](../../lib/content-services/document-list/services/custom-resources.service.ts) |
| [Document actions service](document-actions.service.md) | Implements the document menu actions for the Document List component. | [Source](../../lib/content-services/document-list/services/document-actions.service.ts) |
| [Document list service](document-list.service.md) | Implements node operations used by the Document List component. | [Source](../../lib/content-services/document-list/services/document-list.service.ts) |
| [Folder actions service](folder-actions.service.md) | Implements the folder menu actions for the Document List component. | [Source](../../lib/content-services/document-list/services/folder-actions.service.ts) |
| [Document actions service](document-actions.service.md) | Implements the document menu actions for the [Document List component](../content-services/document-list.component.md). | [Source](../../lib/content-services/document-list/services/document-actions.service.ts) |
| [Document list service](document-list.service.md) | Implements node operations used by the [Document List component](../content-services/document-list.component.md). | [Source](../../lib/content-services/document-list/services/document-list.service.ts) |
| [Folder actions service](folder-actions.service.md) | Implements the folder menu actions for the [Document List component](../content-services/document-list.component.md). | [Source](../../lib/content-services/document-list/services/folder-actions.service.ts) |
| [Node permission dialog service](node-permission-dialog.service.md) | Displays dialogs to let the user set node permissions. | [Source](../../lib/content-services/permission-manager/services/node-permission-dialog.service.ts) |
| [Node permission service](node-permission.service.md) | Manages role permissions for content nodes. | [Source](../../lib/content-services/permission-manager/services/node-permission.service.ts) |
| [Search filter service](search-filter.service.md) | Registers widgets for use with the Search Filter component. | [Source](../../lib/content-services/search/components/search-filter/search-filter.service.ts) |
| [Search filter service](search-filter.service.md) | Registers widgets for use with the [Search Filter component](../content-services/search-filter.component.md). | [Source](../../lib/content-services/search/components/search-filter/search-filter.service.ts) |
| [Search query builder service](search-query-builder.service.md) | Stores information from all the custom search and faceted search widgets, compiles and runs the final search query. | [Source](../../lib/content-services/search/search-query-builder.service.ts) |
| [Rating service](rating.service.md) | Manages ratings for items in Content Services. | [Source](../../lib/content-services/social/services/rating.service.ts) |
| [Tag service](tag.service.md) | Manages tags in Content Services. | [Source](../../lib/content-services/tag/services/tag.service.ts) |
@@ -88,4 +88,4 @@ for more information about installing and using the source code.
| Name | Description | Source link |
| ---- | ----------- | ----------- |
| [Search Widget interface](search-widget.interface.md) | Specifies required properties for Search filter component widgets. | [Source](../../lib/content-services/search/search-widget.interface.ts) |
| [Search Widget interface](search-widget.interface.md) | Specifies required properties for [Search filter component](../content-services/search-filter.component.md) widgets. | [Source](../../lib/content-services/search/search-widget.interface.ts) |
@@ -25,7 +25,7 @@ Searches for people or groups to add to the current node permissions.
### Events
| Name | Type | Description |
| -- | -- | -- |
| ---- | ---- | ----------- |
| select | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<any>` | Emitted when a permission list item is selected. |
## Details

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