├── .code-style-intellij
├── codeStyleConfig.xml
├── inspection-profile.xml
└── udc-code-style.xml
├── .editorconfig
├── .githooks
├── pre-commit-check
└── secrets-check
├── .gitignore
├── .secretlintrc.json
├── .travis.yml
├── LICENSE
├── README.md
├── angular.json
├── e2e
├── app
│ ├── base
│ │ ├── base.e2e.ts
│ │ └── base.po.ts
│ ├── category
│ │ ├── categories.e2e-spec.ts
│ │ ├── categories.po.ts
│ │ └── operations
│ │ │ ├── data.ts
│ │ │ ├── dbScripts.ts
│ │ │ └── operations.ts
│ ├── data-entity
│ │ ├── columns
│ │ │ ├── columns.e2e-spec.ts
│ │ │ ├── columns.po.ts
│ │ │ └── operations
│ │ │ │ ├── data.ts
│ │ │ │ └── operations.ts
│ │ ├── documentschema
│ │ │ ├── documentschema.e2e-spec.ts
│ │ │ ├── documentschema.po.ts
│ │ │ └── operations
│ │ │ │ ├── data.ts
│ │ │ │ └── operations.ts
│ │ ├── list
│ │ │ ├── data-entity-list.e2e-spec.ts
│ │ │ ├── data-entity-list.po.ts
│ │ │ └── operations
│ │ │ │ ├── data.ts
│ │ │ │ └── operations.ts
│ │ ├── overview
│ │ │ ├── operations
│ │ │ │ ├── data.ts
│ │ │ │ └── operations.ts
│ │ │ ├── overview.e2e-spec.ts
│ │ │ └── overview.po.ts
│ │ ├── sampledata
│ │ │ ├── sampledata.e2e-spec.ts
│ │ │ └── sampledata.po.ts
│ │ └── sme
│ │ │ ├── operations
│ │ │ ├── data.ts
│ │ │ └── operations.ts
│ │ │ ├── sme.e2e-spec.ts
│ │ │ └── sme.po.ts
│ ├── data-objects
│ │ ├── detail
│ │ │ ├── base-detail.ts
│ │ │ ├── data-object-detail.e2e-spec.ts
│ │ │ ├── data-object-detail.po.ts
│ │ │ ├── lineage
│ │ │ │ ├── bdata-lineage-history.e2e-spec.ts
│ │ │ │ └── operations
│ │ │ │ │ ├── data.ts
│ │ │ │ │ └── operations.ts
│ │ │ ├── operations
│ │ │ │ ├── data.ts
│ │ │ │ └── operations.ts
│ │ │ └── storage-units
│ │ │ │ ├── bdata-storage-units.e2e-spec.ts
│ │ │ │ └── operations
│ │ │ │ ├── data.ts
│ │ │ │ └── operations.ts
│ │ └── list
│ │ │ ├── data-objects-list.e2e-spec.ts
│ │ │ ├── data-objects-list.po.ts
│ │ │ └── operations
│ │ │ ├── data.ts
│ │ │ └── operations.ts
│ ├── format
│ │ ├── externalinterfaces
│ │ │ ├── externalinterfaces.e2e-spec.ts
│ │ │ ├── externalinterfaces.po.ts
│ │ │ └── operations
│ │ │ │ ├── data.ts
│ │ │ │ └── operations.ts
│ │ ├── format.e2e-spec.ts
│ │ ├── format.po.ts
│ │ └── operations
│ │ │ ├── data.ts
│ │ │ └── operations.ts
│ ├── home
│ │ ├── home.e2e-spec.ts
│ │ ├── home.po.ts
│ │ └── operations
│ │ │ ├── data.ts
│ │ │ └── operations.ts
│ ├── login
│ │ └── login.po.ts
│ ├── search
│ │ ├── operations
│ │ │ ├── data.ts
│ │ │ └── operations.ts
│ │ ├── search.e2e-spec.ts
│ │ └── search.po.ts
│ └── smoke
│ │ └── smoke.e2e-spec.ts
├── config
│ ├── README.md
│ └── conf.e2e.json
├── tsconfig.e2e.json
└── util
│ ├── DataManager.ts
│ ├── JsonSchema.ts
│ ├── S3Manager.ts
│ ├── database
│ └── queries.ts
│ └── utils.ts
├── herd-ui-dist-package
├── README.md
├── distDeploy.sh
└── package.json
├── karma.conf.ci.js
├── karma.conf.js
├── license-check.js
├── package.json
├── protractor.conf.ci.js
├── protractor.conf.js
├── run-in-saucelab.sh
├── setmeup.sh
├── src
├── app
│ ├── app-routing.module.ts
│ ├── app.component.html
│ ├── app.component.scss
│ ├── app.component.spec.ts
│ ├── app.component.ts
│ ├── app.module.ts
│ ├── categories
│ │ ├── categories-routing.module.ts
│ │ ├── categories.module.ts
│ │ ├── components
│ │ │ └── category-detail
│ │ │ │ ├── category-detail.component.html
│ │ │ │ ├── category-detail.component.scss
│ │ │ │ ├── category-detail.component.spec.ts
│ │ │ │ └── category-detail.component.ts
│ │ └── services
│ │ │ ├── categories-detail-resolver.spec.ts
│ │ │ └── categories-detail-resolver.ts
│ ├── core
│ │ ├── components
│ │ │ ├── alerts
│ │ │ │ ├── alerts.component.html
│ │ │ │ ├── alerts.component.scss
│ │ │ │ ├── alerts.component.spec.ts
│ │ │ │ └── alerts.component.ts
│ │ │ ├── back-track
│ │ │ │ ├── back-track.component.html
│ │ │ │ ├── back-track.component.scss
│ │ │ │ ├── back-track.component.spec.ts
│ │ │ │ └── back-track.component.ts
│ │ │ ├── header
│ │ │ │ ├── header.component.html
│ │ │ │ ├── header.component.scss
│ │ │ │ ├── header.component.spec.ts
│ │ │ │ └── header.component.ts
│ │ │ ├── home
│ │ │ │ ├── home.component.html
│ │ │ │ ├── home.component.scss
│ │ │ │ ├── home.component.spec.ts
│ │ │ │ └── home.component.ts
│ │ │ └── login
│ │ │ │ ├── login.component.html
│ │ │ │ ├── login.component.scss
│ │ │ │ ├── login.component.spec.ts
│ │ │ │ └── login.component.ts
│ │ ├── core.module.ts
│ │ └── services
│ │ │ ├── alert.service.spec.ts
│ │ │ ├── alert.service.ts
│ │ │ ├── auth-guard.service.spec.ts
│ │ │ ├── auth-guard.service.ts
│ │ │ ├── custom-location.service.spec.ts
│ │ │ ├── custom-location.service.ts
│ │ │ ├── custom-route-reuse-strategy.service.spec.ts
│ │ │ ├── custom-route-reuse-strategy.service.ts
│ │ │ ├── http-intercept.service.spec.ts
│ │ │ ├── http-intercept.service.ts
│ │ │ ├── no-auth-guard.service.ts
│ │ │ ├── user.service.spec.ts
│ │ │ └── user.service.ts
│ ├── data-entities
│ │ ├── components
│ │ │ ├── contacts
│ │ │ │ ├── contacts.component.html
│ │ │ │ ├── contacts.component.scss
│ │ │ │ ├── contacts.component.spec.ts
│ │ │ │ └── contacts.component.ts
│ │ │ ├── data-entity-detail
│ │ │ │ ├── data-entity-detail.component.html
│ │ │ │ ├── data-entity-detail.component.scss
│ │ │ │ ├── data-entity-detail.component.spec.ts
│ │ │ │ └── data-entity-detail.component.ts
│ │ │ ├── data-entity-list
│ │ │ │ ├── data-entity-list.component.html
│ │ │ │ ├── data-entity-list.component.scss
│ │ │ │ ├── data-entity-list.component.spec.ts
│ │ │ │ └── data-entity-list.component.ts
│ │ │ ├── suggestions
│ │ │ │ ├── suggestions.component.html
│ │ │ │ ├── suggestions.component.scss
│ │ │ │ ├── suggestions.component.spec.ts
│ │ │ │ └── suggestions.component.ts
│ │ │ └── tags
│ │ │ │ ├── tags.component.html
│ │ │ │ ├── tags.component.scss
│ │ │ │ ├── tags.component.spec.ts
│ │ │ │ └── tags.component.ts
│ │ ├── data-entities-routing.module.ts
│ │ ├── data-entities.module.ts
│ │ └── services
│ │ │ ├── data-entity-detail-resolver.spec.ts
│ │ │ ├── data-entity-detail-resolver.ts
│ │ │ ├── data-entity-list-resolver.spec.ts
│ │ │ └── data-entity-list-resolver.ts
│ ├── data-objects
│ │ ├── components
│ │ │ ├── attribute-filter
│ │ │ │ ├── attribute-filter.component.html
│ │ │ │ ├── attribute-filter.component.scss
│ │ │ │ ├── attribute-filter.component.spec.ts
│ │ │ │ └── attribute-filter.component.ts
│ │ │ ├── data-object-detail
│ │ │ │ ├── data-object-detail.component.html
│ │ │ │ ├── data-object-detail.component.scss
│ │ │ │ ├── data-object-detail.component.spec.ts
│ │ │ │ └── data-object-detail.component.ts
│ │ │ ├── data-object-list-filters
│ │ │ │ ├── data-object-list-filters.component.html
│ │ │ │ ├── data-object-list-filters.component.scss
│ │ │ │ ├── data-object-list-filters.component.spec.ts
│ │ │ │ └── data-object-list-filters.component.ts
│ │ │ ├── data-object-list
│ │ │ │ ├── data-object-list.component.html
│ │ │ │ ├── data-object-list.component.scss
│ │ │ │ ├── data-object-list.component.spec.ts
│ │ │ │ └── data-object-list.component.ts
│ │ │ ├── filter-template
│ │ │ │ ├── filter-template.component.html
│ │ │ │ ├── filter-template.component.scss
│ │ │ │ ├── filter-template.component.spec.ts
│ │ │ │ └── filter-template.component.ts
│ │ │ ├── latest-valid-version-filter
│ │ │ │ ├── latest-valid-version-filter.component.html
│ │ │ │ ├── latest-valid-version-filter.component.scss
│ │ │ │ ├── latest-valid-version-filter.component.spec.ts
│ │ │ │ └── latest-valid-version-filter.component.ts
│ │ │ ├── lineage
│ │ │ │ ├── lineage.component.html
│ │ │ │ ├── lineage.component.scss
│ │ │ │ ├── lineage.component.spec.ts
│ │ │ │ └── lineage.component.ts
│ │ │ ├── partition-filter
│ │ │ │ ├── partition-filter.component.html
│ │ │ │ ├── partition-filter.component.scss
│ │ │ │ ├── partition-filter.component.spec.ts
│ │ │ │ └── partition-filter.component.ts
│ │ │ ├── registration-date-range-filter
│ │ │ │ ├── registration-date-range-filter.component.html
│ │ │ │ ├── registration-date-range-filter.component.scss
│ │ │ │ ├── registration-date-range-filter.component.spec.ts
│ │ │ │ └── registration-date-range-filter.component.ts
│ │ │ └── storage-units
│ │ │ │ ├── storage-units.component.html
│ │ │ │ ├── storage-units.component.scss
│ │ │ │ ├── storage-units.component.spec.ts
│ │ │ │ └── storage-units.component.ts
│ │ ├── data-objects-routing.module.ts
│ │ ├── data-objects.module.ts
│ │ └── services
│ │ │ ├── data-object-detail-resolver.service.spec.ts
│ │ │ ├── data-object-detail-resolver.service.ts
│ │ │ ├── data-objects-resolver.service.spec.ts
│ │ │ └── data-objects-resolver.service.ts
│ ├── formats
│ │ ├── components
│ │ │ ├── attribute-definitions
│ │ │ │ ├── attribute-definitions.component.html
│ │ │ │ ├── attribute-definitions.component.scss
│ │ │ │ ├── attribute-definitions.component.spec.ts
│ │ │ │ └── attribute-definitions.component.ts
│ │ │ ├── format-detail
│ │ │ │ ├── format-detail.component.html
│ │ │ │ ├── format-detail.component.scss
│ │ │ │ ├── format-detail.component.spec.ts
│ │ │ │ └── format-detail.component.ts
│ │ │ └── schema-columns
│ │ │ │ ├── schema-columns.component.html
│ │ │ │ ├── schema-columns.component.scss
│ │ │ │ ├── schema-columns.component.spec.ts
│ │ │ │ └── schema-columns.component.ts
│ │ ├── format-resolver.service.spec.ts
│ │ ├── format-resolver.service.ts
│ │ ├── formats-routing.module.ts
│ │ └── formats.module.ts
│ ├── search
│ │ ├── components
│ │ │ └── search
│ │ │ │ ├── search.component.html
│ │ │ │ ├── search.component.scss
│ │ │ │ ├── search.component.spec.ts
│ │ │ │ └── search.component.ts
│ │ ├── search-routing.module.ts
│ │ ├── search.module.ts
│ │ └── services
│ │ │ ├── search-resolve.service.spec.ts
│ │ │ └── search-resolver.service.ts
│ ├── shared
│ │ ├── components
│ │ │ ├── attributes
│ │ │ │ ├── attributes.component.html
│ │ │ │ ├── attributes.component.scss
│ │ │ │ ├── attributes.component.spec.ts
│ │ │ │ └── attributes.component.ts
│ │ │ ├── edit
│ │ │ │ ├── edit.component.html
│ │ │ │ ├── edit.component.scss
│ │ │ │ ├── edit.component.spec.ts
│ │ │ │ └── edit.component.ts
│ │ │ ├── ellipsis-overflow
│ │ │ │ ├── ellipsis-overflow.component.html
│ │ │ │ ├── ellipsis-overflow.component.scss
│ │ │ │ ├── ellipsis-overflow.component.spec.ts
│ │ │ │ └── ellipsis-overflow.component.ts
│ │ │ ├── facet
│ │ │ │ ├── facet.component.html
│ │ │ │ ├── facet.component.scss
│ │ │ │ ├── facet.component.spec.ts
│ │ │ │ └── facet.component.ts
│ │ │ ├── generic-view
│ │ │ │ ├── generic-view.component.html
│ │ │ │ ├── generic-view.component.scss
│ │ │ │ ├── generic-view.component.spec.ts
│ │ │ │ └── generic-view.component.ts
│ │ │ ├── global-search
│ │ │ │ ├── global-search.component.html
│ │ │ │ ├── global-search.component.scss
│ │ │ │ ├── global-search.component.spec.ts
│ │ │ │ └── global-search.component.ts
│ │ │ ├── side-action
│ │ │ │ ├── side-action.component.html
│ │ │ │ ├── side-action.component.scss
│ │ │ │ ├── side-action.component.spec.ts
│ │ │ │ └── side-action.component.ts
│ │ │ ├── side-actions
│ │ │ │ ├── side-actions.component.html
│ │ │ │ ├── side-actions.component.scss
│ │ │ │ ├── side-actions.component.spec.ts
│ │ │ │ └── side-actions.component.ts
│ │ │ ├── spinner
│ │ │ │ ├── spinner.component.html
│ │ │ │ ├── spinner.component.scss
│ │ │ │ ├── spinner.component.spec.ts
│ │ │ │ └── spinner.component.ts
│ │ │ ├── tri-state
│ │ │ │ ├── tri-state.component.html
│ │ │ │ ├── tri-state.component.scss
│ │ │ │ ├── tri-state.component.spec.ts
│ │ │ │ └── tri-state.component.ts
│ │ │ └── truncated-content
│ │ │ │ ├── truncated-content.component.html
│ │ │ │ ├── truncated-content.component.scss
│ │ │ │ ├── truncated-content.component.spec.ts
│ │ │ │ └── truncated-content.component.ts
│ │ ├── directive
│ │ │ ├── authorized
│ │ │ │ ├── authorized.directive.spec.ts
│ │ │ │ └── authorized.directive.ts
│ │ │ └── file-downloader
│ │ │ │ ├── file-downloader.directive.spec.ts
│ │ │ │ └── file-downloader.directive.ts
│ │ ├── pipes
│ │ │ ├── safe-html.pipe.spec.ts
│ │ │ └── safe-html.pipe.ts
│ │ ├── read-more
│ │ │ ├── read-more.component.html
│ │ │ ├── read-more.component.scss
│ │ │ ├── read-more.component.spec.ts
│ │ │ └── read-more.component.ts
│ │ ├── services
│ │ │ ├── beast-actions.enum.ts
│ │ │ ├── beast-components.enum.ts
│ │ │ ├── beast.service.spec.ts
│ │ │ ├── beast.service.ts
│ │ │ ├── encryption.service.spec.ts
│ │ │ ├── encryption.service.ts
│ │ │ ├── facet-tri-state.enum.ts
│ │ │ ├── highlight-display-mapping.ts
│ │ │ ├── search.service.spec.ts
│ │ │ ├── search.service.ts
│ │ │ └── tri-state-enum.enum.ts
│ │ ├── shared.module.ts
│ │ ├── styles
│ │ │ └── shared.scss
│ │ └── utils
│ │ │ ├── app-icons.ts
│ │ │ └── click-helper.ts
│ └── utils
│ │ └── utils.ts
├── assets
│ └── svg
│ │ ├── LOGO.svg
│ │ ├── maze.svg
│ │ └── testing-image.svg
├── ckset.ts
├── environments
│ ├── environment.prod.ts
│ └── environment.ts
├── favicon.ico
├── index.html
├── main.ts
├── polyfills.ts
├── styles.scss
├── test.ts
├── testing
│ ├── IndexSearchMockData.ts
│ ├── RelatedDataEntities.ts
│ ├── mock-ckeditor.component.ts
│ ├── mockFormat.ts
│ ├── router-stubs.ts
│ └── testing-utils.ts
├── tsconfig.app.json
├── tsconfig.spec.json
└── typings.d.ts
├── tsconfig.json
└── tslint.json
/.code-style-intellij/codeStyleConfig.xml:
--------------------------------------------------------------------------------
1 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/.code-style-intellij/inspection-profile.xml:
--------------------------------------------------------------------------------
1 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/.editorconfig:
--------------------------------------------------------------------------------
1 | # Copyright 2018 herd-ui contributors
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 | # Editor configuration, see http://editorconfig.org
16 | root = true
17 |
18 | [*]
19 | charset = utf-8
20 | indent_style = space
21 | indent_size = 2
22 | insert_final_newline = true
23 | trim_trailing_whitespace = true
24 |
25 | [*.md]
26 | max_line_length = off
27 | trim_trailing_whitespace = false
28 |
--------------------------------------------------------------------------------
/.githooks/pre-commit-check:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | # Copyright 2018 herd-ui contributors
4 | #
5 | # Licensed under the Apache License, Version 2.0 (the "License");
6 | # you may not use this file except in compliance with the License.
7 | # You may obtain a copy of the License at
8 | #
9 | # http://www.apache.org/licenses/LICENSE-2.0
10 | #
11 | # Unless required by applicable law or agreed to in writing, software
12 | # distributed under the License is distributed on an "AS IS" BASIS,
13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | # See the License for the specific language governing permissions and
15 | # limitations under the License.
16 |
17 | # shellcheck disable=SC2039
18 | declare -a illegalPatterns=("\bOATS" "[^:]datamgt[^:]" "[^/]Datamanagement[^/]" "nasd" "corp[^o]" "\btdate\b")
19 |
20 | for illegalPattern in "${illegalPatterns[@]}"
21 | do
22 | matchedLines=$(git diff --cached --diff-filter=AM --no-color | grep '^+' | grep -i "${illegalPattern}")
23 | if [ "$matchedLines" ]
24 | then
25 | echo 'Illegal pattern'
26 | echo "${illegalPattern}"
27 | echo 'found in:'
28 | echo "$matchedLines"
29 | exit 1
30 | fi
31 |
32 | matchedAuthorInfo=$(git var GIT_AUTHOR_IDENT | grep -i "${illegalPattern}")
33 | if [ "$matchedAuthorInfo" ]
34 | then
35 | echo 'Illegal pattern'
36 | echo "${illegalPattern}"
37 | echo 'found in author info:'
38 | echo "$matchedAuthorInfo"
39 | exit 1
40 | fi
41 | done
42 |
--------------------------------------------------------------------------------
/.githooks/secrets-check:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | # Copyright 2018 herd-ui contributors
4 | #
5 | # Licensed under the Apache License, Version 2.0 (the "License");
6 | # you may not use this file except in compliance with the License.
7 | # You may obtain a copy of the License at
8 | #
9 | # http://www.apache.org/licenses/LICENSE-2.0
10 | #
11 | # Unless required by applicable law or agreed to in writing, software
12 | # distributed under the License is distributed on an "AS IS" BASIS,
13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | # See the License for the specific language governing permissions and
15 | # limitations under the License.
16 |
17 | FILES=$(git diff --cached --name-only --diff-filter=ACMR | sed 's| |\\ |g')
18 | [ -z "$FILES" ] && exit 0
19 |
20 | # secret-lint all selected files
21 | echo "$FILES" | xargs ./../node_modules/.bin/secretlint
22 | RET=$?
23 | if [ $RET -eq 0 ] ;then
24 | exit 0
25 | else
26 | printf "\n Commit did not pass secret-lint check. Aborting."
27 | exit 1
28 | fi
29 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Copyright 2018 herd-ui contributors
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 | # See http://help.github.com/ignore-files/ for more about ignoring files.
16 |
17 | # compiled output
18 | /herd-ui-dist-package/dist
19 | /dist
20 | /tmp
21 | /out-tsc
22 |
23 | # dependencies
24 | /node_modules
25 |
26 | # IDEs and editors
27 | /.idea
28 | .project
29 | .classpath
30 | .c9/
31 | *.launch
32 | .settings/
33 | *.sublime-workspace
34 | shepherd.iml
35 | .vscode
36 |
37 | # misc
38 | /.sass-cache
39 | /connect.lock
40 | /coverage
41 | /libpeerconnection.log
42 | npm-debug.log
43 | testem.log
44 | /typings
45 | debug.log
46 |
47 | # e2e
48 | /e2e/*.js
49 | /e2e/*.map
50 | /e2e/config/conf.e2e.json
51 | protractor.conf.debug.js
52 |
53 | # System Files
54 | .DS_Store
55 | Thumbs.db
56 |
57 | # package lock file
58 | package-lock.json
59 |
60 | #junit xml code coverage for protractor tests
61 | chrome.xml
62 | firefox.xml
63 | internet explorer.xml
64 | microsoftedge.xml
65 | safari.xml
66 |
67 | #jenkins slack intergration needed files
68 | slack.properties
69 | urls.txt
70 |
71 | #used in deciding what data to create / delete for protractor tests
72 | processed.txt
73 |
74 | #file that can be used to save the previous commit message
75 | .gittemplate.txt
76 |
77 |
78 | # Ignore configuration of file
79 | /src/configurations.json
80 |
--------------------------------------------------------------------------------
/.secretlintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "rules": [
3 | {
4 | "id": "@secretlint/secretlint-rule-preset-recommend"
5 | }
6 | ]
7 | }
8 |
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | #
2 | # Copyright 2018 herd-ui contributors
3 | #
4 | # Licensed under the Apache License, Version 2.0 (the "License");
5 | # you may not use this file except in compliance with the License.
6 | # You may obtain a copy of the License at
7 | #
8 | # http://www.apache.org/licenses/LICENSE-2.0
9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 | #
16 | dist: trusty
17 | sudo: false
18 | addons:
19 | chrome: stable
20 | language: node_js
21 | node_js:
22 | - node
23 | install:
24 | - npm install
25 | cache:
26 | directories:
27 | - "node_modules"
28 | script:
29 | - npm test
30 |
--------------------------------------------------------------------------------
/e2e/app/base/base.e2e.ts:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2018 herd-ui contributors
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | import { by, element } from 'protractor';
17 |
18 | export class BaseE2e {
19 |
20 | public firstVisibleElement(cssSelector: string) {
21 |
22 | return element.all(by.css(cssSelector)).filter(function (elm) {
23 | return elm.isDisplayed();
24 | });
25 | }
26 |
27 | public getVisibleDivs(cssSelector: string) {
28 | return element.all(by.css(cssSelector)).filter(function (link) {
29 | return link.isDisplayed();
30 | })
31 | .then(function (visibleLinks) {
32 | return visibleLinks;
33 | });
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/e2e/app/category/operations/dbScripts.ts:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2018 herd-ui contributors
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | export class DbScripts {
17 |
18 | constructor() {
19 | }
20 |
21 | public categoryDbScript(index) {
22 | switch (index) {
23 | case 0:
24 | return this.query(
25 | 'DELETE FROM tag_prnt WHERE tag_id IN (SELECT t.tag_id FROM tag t INNER JOIN tag_prnt tp ' +
26 | 'ON t.tag_id = tp.tag_id WHERE t.tag_type_cd IN (\'Bb_Test_CTGRY\'))');
27 | case 1:
28 | return this.query('DELETE FROM bus_objct_dfntn_tag WHERE tag_id IN(SELECT tag_id FROM tag ' +
29 | 'WHERE tag_type_cd IN(\'Bb_Test_CTGRY\')');
30 | case 2:
31 | return this.query(
32 | 'DELETE FROM bus_objct_dfntn_tag WHERE bus_objct_dfntn_id IN(SELECT bus_objct_dfntn_id ' +
33 | 'FROM bus_objct_dfntn WHERE name_space_cd = \'NS_PROTRACTOR_TEST_TAG\')');
34 | case 3:
35 | return this.query('DELETE FROM tag WHERE tag_type_cd ' +
36 | 'IN(\'Bb_Test_CTGRY\', \'BbbCCCDDCEEE_bdef_CTGRY\', \'BbCCDDEE_Test_CTGRY\')');
37 | case 4:
38 | return this.query('DELETE FROM tag_type WHERE tag_type_cd ' +
39 | 'IN(\'Bb_Test_CTGRY\', \'BbbCCCDDCEEE_bdef_CTGRY\', \'BbCCDDEE_Test_CTGRY\')');
40 | case 5:
41 | return this.query('DELETE FROM bus_objct_dfntn WHERE name_space_cd = \'NS_PROTRACTOR_TEST_TAG\'');
42 | case 6:
43 | return this.query('DELETE FROM data_prvdr WHERE data_prvdr_cd = \'DP_PROTRACTOR_TEST_TAG\'');
44 | case 7:
45 | return this.query('DELETE FROM name_space WHERE name_space_cd = \'NS_PROTRACTOR_TEST_TAG\'');
46 | }
47 | }
48 |
49 | private query(queryInput: string) {
50 | }
51 |
52 | }
53 |
54 |
--------------------------------------------------------------------------------
/e2e/app/data-entity/documentschema/documentschema.po.ts:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2018 herd-ui contributors
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | import { by, element, ElementArrayFinder, ElementFinder } from 'protractor';
17 | import { OverviewPage } from '../overview/overview.po';
18 |
19 | export class DocumentSchemaPage extends OverviewPage {
20 | // document schema
21 | public documentSchemaContainer = element(by.className('document-schema'));
22 | public documentSchemaUrlContainer = element(by.css('.tab-contents > .col-9 > .sub-header-label'));
23 | public documentSchemaUrlTxtContainer = element(by.css('.tab-contents > .col-9 p'));
24 | private _container = element(by.id('ngb-tab-2'));
25 |
26 | get documentSchemaFormatTab(): ElementFinder {
27 | return this._tabs.all(by.tagName('li')).get(3).element(by.tagName('a'));
28 | }
29 |
30 | get documentSchemaTab(): ElementFinder {
31 | return this._tabs.all(by.tagName('li')).get(2).element(by.tagName('a'));
32 | }
33 |
34 | get allTabs(): ElementArrayFinder {
35 | return this._tabs.all(by.tagName('li'));
36 | }
37 |
38 | }
39 |
40 |
--------------------------------------------------------------------------------
/e2e/app/data-entity/list/data-entity-list.po.ts:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2018 herd-ui contributors
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | import { by, element, ElementArrayFinder, ElementFinder } from 'protractor';
17 | import { BasePo } from '../../base/base.po';
18 |
19 |
20 | export class DataEntityListPage extends BasePo {
21 |
22 |
23 | public contentHeader: ElementFinder = element(by.className('content-header'));
24 | public heading: ElementFinder = this.contentHeader.element(by.tagName('h1'));
25 | public subHeading: ElementFinder = this.contentHeader.element(by.tagName('h4'));
26 |
27 | public dataEntityRow: ElementArrayFinder = element.all(by.className('data-entity-row'));
28 | public name: ElementFinder = this.dataEntityRow.get(0).element(by.tagName('h4'));
29 | public namespaceContainer: ElementFinder = this.dataEntityRow.get(0).element(by.tagName('h6'));
30 |
31 | public namespaceLabel: ElementFinder = this.namespaceContainer.all(by.tagName('span')).get(0);
32 | public namespace: ElementFinder = this.namespaceContainer.all(by.tagName('span')).get(1);
33 |
34 | public link: ElementFinder = this.dataEntityRow.get(0).element(by.tagName('a'));
35 |
36 | public searchBox = element(by.tagName('input'));
37 | }
38 |
--------------------------------------------------------------------------------
/e2e/app/data-entity/list/operations/data.ts:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2018 herd-ui contributors
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | import utils from '../../../../util/utils';
18 |
19 | const uniqueId = utils.uniqueId();
20 |
21 | export class Data {
22 |
23 | description = 'Sample description text for testing purpose. Used for all description fields';
24 | defaultDataProvider = 'BDEF_LIST_TEST_PROV' + uniqueId;
25 | defaultNamespace = 'BDEF_LIST_TEST_NS' + uniqueId;
26 | defaultBdefName = 'BDEF_LIST_TEST' + uniqueId;
27 |
28 | defaultBdef() {
29 | return {
30 | 'namespace': this.defaultNamespace,
31 | 'dataProviderName': this.defaultDataProvider,
32 | 'businessObjectDefinitionName': this.defaultBdefName
33 | };
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/e2e/app/data-entity/sampledata/sampledata.po.ts:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2018 herd-ui contributors
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | import { by, element, ElementArrayFinder, ElementFinder } from 'protractor';
17 | import { BasePo } from '../../base/base.po';
18 |
19 | export class SampleDataPage extends BasePo {
20 | sideActions: ElementArrayFinder = element.all(by.tagName('sd-side-action'));
21 | activeIconColor = 'rgba(255, 255, 255, 1)';
22 | inactiveIconColor = 'rgba(99, 181, 242, 1)';
23 | sampleDataButton: ElementFinder = this.sideActions.get(3).element(by.tagName('div'));
24 | sampleDataButtonColor: ElementFinder = this.sampleDataButton.element(by.tagName('i'));
25 | watchButton: ElementFinder = this.sideActions.get(2).element(by.tagName('div'));
26 | watchButtonColor: ElementFinder = this.watchButton.element(by.tagName('i'));
27 | }
28 |
--------------------------------------------------------------------------------
/e2e/app/data-entity/sme/operations/data.ts:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2018 herd-ui contributors
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | import utils from '../../../../util/utils';
18 |
19 | const uniqueId = utils.uniqueId();
20 |
21 | export class Data {
22 | conf = require('./../../../../config/conf.e2e.json');
23 |
24 | description = 'Sample description text for testing purpose. Used for all description fields';
25 | defaultDataProvider = 'HERD_UI_SME_PROV' + uniqueId;
26 | defaultNamespace = 'HERD_UI_SME_NS' + uniqueId;
27 | userId1 = this.conf.smes[0].userId;
28 | userId2 = this.conf.smes[1].userId;
29 |
30 | defaultBdef() {
31 | return {
32 | 'namespace': this.defaultNamespace,
33 | 'dataProviderName': this.defaultDataProvider,
34 | 'businessObjectDefinitionName': 'HERD_UI_SME_TEST'
35 | };
36 | }
37 |
38 | badBdef() {
39 | return {
40 | 'namespace': this.defaultNamespace,
41 | 'dataProviderName': this.defaultDataProvider,
42 | 'businessObjectDefinitionName': 'HERD_UI_SME_BAD'
43 | };
44 | }
45 |
46 | emptyBdef() {
47 | return {
48 | 'namespace': this.defaultNamespace,
49 | 'dataProviderName': this.defaultDataProvider,
50 | 'businessObjectDefinitionName': 'HERD_UI_SME_NONE'
51 | };
52 | }
53 | }
54 |
--------------------------------------------------------------------------------
/e2e/app/data-objects/detail/base-detail.ts:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2018 herd-ui contributors
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | import { browser } from 'protractor';
17 |
18 | export class BaseDetail {
19 | private constants = require('../../../config/conf.e2e.json');
20 |
21 | public async initiateBrowser(bdata, delimiter?, version?, dataObjectrow?) {
22 | // await browser.get(this.dataObjectListUrl(bdata));
23 | // await this.page.dataObjectPage(dataObjectrow).click();
24 | await browser.get(this.replaceUrlParams(bdata, delimiter, version));
25 | }
26 |
27 | public dataObjectListUrl(bdata) {
28 | return this.constants.bdataListPath
29 | .replace('{namespace}', bdata.namespace)
30 | .replace('{definitionName}', bdata.businessObjectDefinitionName)
31 | .replace('{usage}', bdata.businessObjectFormatUsage)
32 | .replace('{fileType}', bdata.businessObjectFormatFileType)
33 | .replace('{formatVersion}', bdata.businessObjectFormatVersion);
34 | }
35 |
36 | // http://localhost:4200/data-objects/PERFDATASEARCH/PERFDATA/DDLDATA/TXT/0/PERKEY10002/0;subPartitionValues=test1%7Cthing2
37 | public replaceUrlParams(bdata, delimiter, version?) {
38 | const ttb = this.constants.bdataDetailPath
39 | .replace('{namespace}', bdata.namespace)
40 | .replace('{definitionName}', bdata.businessObjectDefinitionName)
41 | .replace('{usage}', bdata.businessObjectFormatUsage)
42 | .replace('{formatVersion}', bdata.businessObjectFormatVersion)
43 | .replace('{fileType}', bdata.businessObjectFormatFileType)
44 | .replace('{dataVersion}', version || 0)
45 | .replace('{partitionValue}', bdata.partitionValue)
46 | .replace('{subPartitions}',
47 | bdata.subPartitionValues && bdata.subPartitionValues.length ? 'subPartitionValues='
48 | + bdata.subPartitionValues.join('%7C') : '');
49 | return ttb;
50 | }
51 |
52 | }
53 |
--------------------------------------------------------------------------------
/e2e/app/login/login.po.ts:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2018 herd-ui contributors
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | import { browser, by, element, ElementFinder, protractor } from 'protractor';
17 |
18 | const conf = require('../../config/conf.e2e.json');
19 |
20 | export class LoginPage {
21 | loginForm: ElementFinder = element(by.css('sd-login .card-block'));
22 | username: ElementFinder = this.loginForm.all(by.tagName('input')).get(0);
23 | password: ElementFinder = this.loginForm.all(by.tagName('input')).get(1);
24 | loginButton: ElementFinder = this.loginForm.element(by.css('.btn-success'));
25 |
26 | async login(name: string = conf.loginUser, pwd: string = conf.loginPwd) {
27 | await this.username.sendKeys(name);
28 | await this.password.sendKeys(pwd);
29 | await this.loginButton.click();
30 | return browser.wait(protractor.ExpectedConditions.not(protractor.ExpectedConditions.urlContains('returnUrl')));
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/e2e/config/conf.e2e.json:
--------------------------------------------------------------------------------
1 | {
2 | "baseUrlLocal": "http://localhost:4200",
3 | "baseUrlNoPassword": "{{baseUrlNoPassword}}",
4 | "baseUrl8443": "{{baseUrl8443}}",
5 | "herdHost": "{{herdHost}}",
6 | "herdHostSaucelab": "{{herdHostSaucelab}}",
7 | "docTitlePrefix": "UDC",
8 | "homePage": "/",
9 | "searchUrl": "/search",
10 | "dataEntityDetailPath": "/data-entities",
11 | "dataEntityBdefPath": "/data-entities/{namespace}/{businessObjectDefinitionName}",
12 | "categoryDetailPath": "/tags/",
13 | "formatPage": "/formats/",
14 | "bdataListPath": "/data-objects/{namespace}/{definitionName}/{usage}/{fileType}/{version}",
15 | "bdataDetailPath": "/data-objects/{namespace}/{definitionName}/{usage}/{fileType}/{formatVersion}/{partitionValue}/{dataVersion};{subPartitions}",
16 | "datamgtBucket": "{{datamgtBucket}}",
17 | "datamgtTestBucket": "{{datamgtTestBucket}}",
18 | "defaultPrefix": "",
19 | "sauceUser": "{{sauceUser}}",
20 | "sauceKey": "{{sauceKey}}",
21 | "loginUser": "{{loginUser}}",
22 | "loginPwd": "{{loginPwd}}",
23 | "noAccessUser": "{{noAccessUser}}",
24 | "noAccessPassword": "{{noAccessPassword}}",
25 | "sauceSeleniumAddress": "{{sauceSeleniumAddress}}",
26 | "authorization": {
27 | "basicKey": "{{basicKey}}"
28 | },
29 | "dev": {
30 | "host": "{{host}}",
31 | "port": 5432,
32 | "database": "{{database}}",
33 | "user": "{{user}}",
34 | "password": "{{password}}",
35 | "ssl": true,
36 | "poolSize": 5
37 | },
38 | "smes": [
39 | {
40 | "userId": "{{userId}}",
41 | "fullName": "{{fullName}}",
42 | "jobTitle": "{{jobTitle}}",
43 | "phoneNumber": "{{phoneNumber}}",
44 | "email": "{{email}}"
45 | },
46 | {
47 | "userId": "{{userId}}",
48 | "fullName": "{{fullName}}",
49 | "jobTitle": "{{jobTitle}}",
50 | "phoneNumber": "{{phoneNumber}}",
51 | "email": "{{email}}"
52 | }
53 | ],
54 | "userRoles": {
55 | "authorizedUserRoles": {
56 | "securityRoles": [
57 | "{{securityRoles}}"
58 | ]
59 | },
60 | "UnAuthorizedUserRoles": {
61 | "securityRoles": [
62 | "{{securityRoles}}"
63 | ]
64 | }
65 | },
66 | "data_objects": {
67 | "{{securityRolesAdmin}}": true,
68 | "{{securityRolesTagOwner}}": true
69 | }
70 | }
71 |
--------------------------------------------------------------------------------
/e2e/tsconfig.e2e.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "../out-tsc/e2e",
5 | "module": "commonjs",
6 | "target": "es5",
7 | "types": [
8 | "jasmine",
9 | "jasminewd2",
10 | "node"
11 | ]
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/e2e/util/database/queries.ts:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2018 herd-ui contributors
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | /**
17 | * SQL queries grouped by (!) each table
18 | */
19 |
20 | export default {
21 |
22 | cnfgn: {
23 | // Use [configurationName, configurationValue]
24 | insertCnfgn: 'INSERT INTO cnfgn values($1,$2,null)',
25 | // Use [configurationName]
26 | deleteCnfgn: 'DELETE FROM cnfgn where cnfgn_nm = $1',
27 | // Use [configurationName, configurationValue]
28 | updateCnfgn: 'UPDATE cnfgn SET cnfgn_value_ds = $2 WHERE cnfgn_key_nm = $1'
29 | }
30 |
31 |
32 | };
33 |
--------------------------------------------------------------------------------
/e2e/util/utils.ts:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2018 herd-ui contributors
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 |
18 | export default {
19 | dataPrefix: process.env.CURRENT_BROWSER || '',
20 | uniqueId() {
21 | // Retrieve today's date in the format of YYYYMMDD (ex. 20181214)
22 | const today = new Date().toJSON().slice(0, 10).replace(/-/g, '');
23 | // Generate a 4-digit random in the range of [1000, 9999]
24 | const randomNumber = Math.floor(Math.random() * 9000) + 1000;
25 | // concatenate today and 4-digit number
26 | return '_' + today + '_' + randomNumber;
27 | }
28 | };
29 |
--------------------------------------------------------------------------------
/herd-ui-dist-package/README.md:
--------------------------------------------------------------------------------
1 |
16 | # Herd UI Dist
17 |
18 | This module, `herd-ui-dist`, exposes Herd-UI's built dististribution as a dependency-free npm module.
19 |
20 | For anything else, check the [Herd-UI](https://github.com/finraos/herd-ui) repository.
--------------------------------------------------------------------------------
/herd-ui-dist-package/distDeploy.sh:
--------------------------------------------------------------------------------
1 | # Copyright 2018 herd-ui contributors
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 | #!/bin/bash
16 | # Deploy `herd-ui-dist` to npm.
17 | while getopts "r" flag
18 | do
19 | case "$flag" in
20 | r)
21 | RELEASE="true"
22 | ;;
23 | esac
24 | done
25 |
26 | cd "$(dirname "$0")";
27 |
28 | # Get UI version
29 | UI_VERSION=$(node -p -e "require('../package.json').version");
30 | DATE=`date '+%Y%m%d%H%M%S'`;
31 |
32 | # Copy UI's dist files to our directory
33 | echo "Copying dist files"
34 | cp -r ../dist .;
35 |
36 | if [ -z ${RELEASE} ]; then
37 | #RELEASE is unset so just publish beta
38 |
39 | echo "setting herd-ui-dist version to $UI_VERSION-beta.$DATE";
40 | # Replace our version placeholder with UI's version + beta appendix
41 | sed -i "s|\$\$VERSION|$UI_VERSION-beta.$DATE|g" package.json;
42 |
43 | echo "Publishing herd-ui-dist beta $UI_VERSION-beta.$DATE";
44 | npm publish --tag beta;
45 | else
46 | echo "setting herd-ui-dist version to $UI_VERSION";
47 | # Replace our version placeholder with UI's version
48 | sed -i "s|\$\$VERSION|$UI_VERSION|g" package.json;
49 | echo "Publishing herd-ui-dist latest $UI_VERSION";
50 | npm publish;
51 | fi
52 |
--------------------------------------------------------------------------------
/herd-ui-dist-package/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@herd/herd-ui-dist",
3 | "version": "$$VERSION",
4 | "repository": {
5 | "type": "git",
6 | "url": "https://github.com/finraos/herd-ui.git"
7 | },
8 | "files": [
9 | "dist"
10 | ],
11 | "license": "Apache-2.0",
12 | "publishConfig": {
13 | "registry": "https://registry.npmjs.org/",
14 | "access": "public"
15 | },
16 | "dependencies": {},
17 | "devDependencies": {}
18 | }
--------------------------------------------------------------------------------
/license-check.js:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2018 herd-ui contributors
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | (function () {
18 | var fs = require('fs');
19 | var glob = require('glob-fs')();
20 | var path = require('path');
21 | var result = 0;
22 | var exclude = ['LICENSE', path.join('src', 'favicon.ico')];
23 | var files = [];
24 | files = glob.readdirSync('**');
25 | files.map((file) => {
26 | try {
27 | if (!fs.lstatSync(file).isDirectory() && file.indexOf('.json') === -1 && exclude.indexOf(file) === -1) {
28 | var data = fs.readFileSync(file, 'utf8');
29 |
30 | if (data.indexOf('Copyright 2018 herd-ui contributors') === -1) {
31 | console.log('Please add License text in coment in the file ' + file);
32 | result = 1;
33 | }
34 | }
35 | } catch (e) {
36 | console.log('Error:', e.stack);
37 | }
38 | });
39 | process.exit(result);
40 | })();
41 |
42 |
--------------------------------------------------------------------------------
/run-in-saucelab.sh:
--------------------------------------------------------------------------------
1 | # Copyright 2018 herd-ui contributors
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 | #!/bin/bash
16 | #usage ./run-in-saucelab.sh
17 |
18 | echo "Installing npm packages..."
19 | npm install
20 |
21 | echo "Running Functianal tests..."
22 | node_modules/protractor/bin/protractor protractor.conf.ci.js
23 |
24 | echo "--- Printing Set Environemnt Variables ---"
25 | printenv
26 | echo "--- Printing Done ---"
27 |
28 | echo "slack.properties is equal to..."
29 | cat slack.properties
30 | echo "done printing slack.properties"
31 |
32 |
--------------------------------------------------------------------------------
/setmeup.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # Copyright 2018 herd-ui contributors
4 | #
5 | # Licensed under the Apache License, Version 2.0 (the "License");
6 | # you may not use this file except in compliance with the License.
7 | # You may obtain a copy of the License at
8 | #
9 | # http://www.apache.org/licenses/LICENSE-2.0
10 | #
11 | # Unless required by applicable law or agreed to in writing, software
12 | # distributed under the License is distributed on an "AS IS" BASIS,
13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | # See the License for the specific language governing permissions and
15 | # limitations under the License.
16 |
17 | ## script to auto-load code-style and inspection profile (for *nix systems)
18 |
19 | function code_style_setup() {
20 | cp "./.code-style-intellij/codeStyleConfig.xml" "./.idea/codeStyles/codeStyleConfig.xml"
21 | cp "./.code-style-intellij/udc-code-style.xml" "./.idea/codeStyles/Project.xml"
22 | }
23 |
24 | function inspection_profile_setup() {
25 | cp "./.code-style-intellij/inspection-profile.xml" "./.idea/inspectionProfiles/Project_Default.xml"
26 | }
27 |
28 | # setup code-style
29 | if [ -d "./.idea/codeStyles" ]; then
30 | printf "\nRemoving existing code-style, will setup the preferred code-style."
31 | rm -rf "./.idea/codeStyles"
32 | mkdir -p "./.idea/codeStyles"
33 | else
34 | printf "\nNo code-style currently defined, will setup the preferred code-style."
35 | fi
36 | code_style_setup
37 |
38 | # setup inspection-profile
39 | if [ -d "./.idea/inspectionProfiles" ]; then
40 | printf "\nRemoving existing inspection profile, will setup the preferred profile."
41 | rm -rf "./.idea/inspectionProfiles"
42 | mkdir -p "./.idea/inspectionProfiles"
43 | else
44 | printf "\nNo inspection profile currently defined, will setup the preferred profile."
45 | fi
46 | inspection_profile_setup
47 |
48 | printf "\nDone setting up"
49 |
--------------------------------------------------------------------------------
/src/app/app.component.html:
--------------------------------------------------------------------------------
1 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/src/app/app.component.scss:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2018 herd-ui contributors
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | .viewLoading {
17 | position: fixed;
18 | top: 0;
19 | left: 0;
20 | z-index: 100000;
21 | width: 100vw;
22 | height: 100vh;
23 | }
24 |
25 |
--------------------------------------------------------------------------------
/src/app/categories/categories-routing.module.ts:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2018 herd-ui contributors
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | import { NgModule } from '@angular/core';
17 | import { RouterModule, Routes } from '@angular/router';
18 | import { CategoryDetailComponent } from 'app/categories/components/category-detail/category-detail.component';
19 | import { CategoryDetailResolverService } from 'app/categories/services/categories-detail-resolver';
20 |
21 | // Base route is /categories defined in app-routing.module.ts
22 | const routes: Routes = [
23 | {
24 | path: ':tagTypeCode/:tagCode',
25 | component: CategoryDetailComponent,
26 | resolve: {
27 | resolvedData: CategoryDetailResolverService,
28 | }
29 | },
30 | {
31 | path: ':tagTypeCode/:tagCode/:searchText',
32 | component: CategoryDetailComponent,
33 | resolve: {
34 | resolvedData: CategoryDetailResolverService,
35 | }
36 | }
37 | ];
38 |
39 | @NgModule({
40 | imports: [RouterModule.forChild(routes)],
41 | exports: [RouterModule],
42 | providers: [CategoryDetailResolverService]
43 | })
44 | export class CategoriesRoutingModule {
45 | }
46 |
--------------------------------------------------------------------------------
/src/app/categories/categories.module.ts:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2018 herd-ui contributors
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | import { NgbModule } from '@ng-bootstrap/ng-bootstrap';
17 | import { SharedModule } from '../shared/shared.module';
18 | import { NgModule } from '@angular/core';
19 | import { CommonModule } from '@angular/common';
20 |
21 | import { CategoriesRoutingModule } from './categories-routing.module';
22 | import { CategoryDetailComponent } from './components/category-detail/category-detail.component';
23 | import { SearchService } from '../shared/services/search.service';
24 |
25 | @NgModule({
26 | imports: [
27 | CommonModule,
28 | CategoriesRoutingModule,
29 | SharedModule,
30 | NgbModule
31 | ],
32 | providers: [
33 | SearchService
34 | ],
35 | declarations: [
36 | CategoryDetailComponent
37 | ]
38 | })
39 | export class CategoriesModule {
40 | }
41 |
--------------------------------------------------------------------------------
/src/app/core/components/alerts/alerts.component.html:
--------------------------------------------------------------------------------
1 |
16 |
17 |
18 |
{{ alert.title }}
19 |
{{ alert.subTitle }}
20 |
{{ alert.text }}
21 |
22 |
23 |
--------------------------------------------------------------------------------
/src/app/core/components/alerts/alerts.component.scss:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2018 herd-ui contributors
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | .sd-alerts {
17 | position: fixed;
18 | top: 0;
19 | left: 50%;
20 | z-index: 10000000;
21 | transform: translate3d(-50%, 0, 0);
22 | margin-top: 1rem;
23 | max-width: 100%;
24 | }
25 |
--------------------------------------------------------------------------------
/src/app/core/components/alerts/alerts.component.ts:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2018 herd-ui contributors
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | import { Component, Input, OnInit } from '@angular/core';
17 | import { Alert, AlertService } from 'app/core/services/alert.service';
18 | import { map, take } from 'rxjs/operators';
19 | import { timer } from 'rxjs';
20 | import { environment } from '../../../../environments/environment';
21 |
22 | @Component({
23 | selector: 'sd-alerts',
24 | templateUrl: './alerts.component.html',
25 | styleUrls: ['./alerts.component.scss']
26 | })
27 | export class AlertsComponent implements OnInit {
28 | @Input()
29 | public alerts: Array = [];
30 | public delay: number;
31 |
32 | constructor(private alerter: AlertService) {
33 | }
34 |
35 | ngOnInit() {
36 | this.alerter.alerts.subscribe((a: Alert) => {
37 | this.delay = (a.closeDelay || environment.alertDelayInSeconds) * 1000;
38 | // push it on to show
39 | this.alerts = this.alerts.concat(a);
40 |
41 | // close the alert after 5 seconds by default
42 | // have to use timer -> map instead of delay because delay can't currently
43 | // be properly unit tested due to fakeAsync issues.
44 | timer(this.delay).pipe(take(1), map(() => a)).subscribe((al) => this.closeAlert(al));
45 | });
46 | }
47 |
48 | public closeAlert(al: Alert) {
49 | const index: number = this.alerts.indexOf(al);
50 | this.alerts.splice(index, 1);
51 | }
52 |
53 | }
54 |
--------------------------------------------------------------------------------
/src/app/core/components/back-track/back-track.component.html:
--------------------------------------------------------------------------------
1 |
16 |