From ed64b5edff15e702493df21aa3230b81593e6133 Mon Sep 17 00:00:00 2001 From: Michael Lando Date: Fri, 9 Jun 2017 03:19:04 +0300 Subject: [SDC-29] catalog 1707 rebase commit. Change-Id: I43c3dc5cf44abf5da817649bc738938a3e8388c1 Signed-off-by: Michael Lando --- catalog-ui/app/scripts/app.ts | 936 --------------------- .../clicked-outside/clicked-outside-directive.ts | 131 --- .../custom-validation/custom-validation.ts | 55 -- .../download-artifact/download-artifact.ts | 141 ---- .../directives/ecomp-header/ecomp-header.html | 73 -- .../directives/ecomp-header/ecomp-header.less | 296 ------- .../directives/ecomp-header/ecomp-header.ts | 235 ------ .../edit-module-name-popover.html | 31 - .../edit-name-popover-directive.ts | 98 --- .../edit-name-popover/edit-name-popover-view.html | 1 - .../edit-name-popover/edit-name-popover.less | 71 -- .../directives/elements/checkbox/checkbox.html | 13 - .../directives/elements/checkbox/checkbox.less | 35 - .../directives/elements/checkbox/checkbox.ts | 66 -- .../elements/radiobutton/radiobutton.html | 5 - .../elements/radiobutton/radiobutton.less | 0 .../directives/elements/radiobutton/radiobutton.ts | 71 -- .../directives/ellipsis/ellipsis-directive.html | 7 - .../directives/ellipsis/ellipsis-directive.less | 10 - .../directives/ellipsis/ellipsis-directive.ts | 80 -- .../events/on-last-repeat/on-last-repeat.ts | 61 -- .../directives/file-opener/file-opener.html | 3 - .../scripts/directives/file-opener/file-opener.ts | 77 -- .../app/scripts/directives/file-type/file-type.ts | 66 -- .../directives/file-upload/file-upload.html | 22 - .../directives/file-upload/file-upload.less | 75 -- .../scripts/directives/file-upload/file-upload.ts | 134 --- .../graphs-v2/common/common-graph-utils.ts | 361 -------- .../style/component-instances-nodes-style.ts | 259 ------ .../graphs-v2/common/style/module-node-style.ts | 92 -- .../composition-graph.directive.ts | 555 ------------ .../composition-graph/composition-graph.html | 22 - .../composition-graph/composition-graph.less | 14 - .../utils/composition-graph-general-utils.ts | 243 ------ .../utils/composition-graph-links-utils.ts | 347 -------- .../utils/composition-graph-nodes-utils.ts | 220 ----- .../utils/match-capability-requierment-utils.ts | 265 ------ .../deployment-graph/deployment-graph.directive.ts | 114 --- .../deployment-graph/deployment-graph.html | 2 - .../deployment-graph/deployment-graph.less | 14 - .../deployment-graph-general-utils.ts | 24 - .../image-creator/image-creator.service.ts | 46 - .../palette/interfaces/i-dragdrop-event.d.ts | 7 - .../graphs-v2/palette/palette.directive.ts | 327 ------- .../directives/graphs-v2/palette/palette.html | 59 -- .../directives/graphs-v2/palette/palette.less | 92 -- .../graphs-v2/relation-menu/relation-menu.html | 63 -- .../graphs-v2/relation-menu/relation-menu.less | 118 --- .../graphs-v2/relation-menu/relation-menu.ts | 113 --- .../directives/info-tooltip/info-tooltip.html | 10 - .../directives/info-tooltip/info-tooltip.less | 39 - .../directives/info-tooltip/info-tooltip.ts | 60 -- .../invalid-characters/invalid-characters.ts | 72 -- .../scripts/directives/layout/top-nav/top-nav.html | 54 -- .../scripts/directives/layout/top-nav/top-nav.less | 218 ----- .../scripts/directives/layout/top-nav/top-nav.ts | 155 ---- .../layout/top-progress/top-progress.html | 22 - .../layout/top-progress/top-progress.less | 58 -- .../directives/layout/top-progress/top-progress.ts | 57 -- .../directives/loader/loader-directive.html | 4 - .../directives/loader/loader-directive.less | 74 -- .../scripts/directives/loader/loader-directive.ts | 155 ---- .../app/scripts/directives/modal/sdc-modal.html | 18 - .../app/scripts/directives/modal/sdc-modal.less | 10 - .../app/scripts/directives/modal/sdc-modal.ts | 103 --- .../directives/page-scroller/page-scroller.html | 22 - .../directives/page-scroller/page-scroller.less | 98 --- .../directives/page-scroller/page-scroller.ts | 247 ------ .../perfect-scrollbar/angular-perfect-scrollbar.ts | 159 ---- .../print-graph-screen/print-graph-screen.ts | 211 ----- .../data-type-fields-structure.html | 82 -- .../data-type-fields-structure.less | 90 -- .../data-type-fields-structure.ts | 165 ---- .../type-list/type-list-directive.html | 57 -- .../type-list/type-list-directive.less | 85 -- .../type-list/type-list-directive.ts | 130 --- .../type-map/type-map-directive.html | 70 -- .../type-map/type-map-directive.less | 83 -- .../property-types/type-map/type-map-directive.ts | 157 ---- .../app/scripts/directives/punch-out/punch-out.ts | 99 --- .../sdc-single-tab/sdc-single-tab-directive.ts | 67 -- .../sdc-tabs/sdc-single-tab/sdc-single-tab.less | 1 - .../sdc-tabs/sdc-tabs-directive-view.html | 17 - .../directives/sdc-tabs/sdc-tabs-directive.ts | 69 -- .../app/scripts/directives/sdc-tabs/sdc-tabs.less | 68 -- .../structure-tree/structure-tree-directive.html | 54 -- .../structure-tree/structure-tree-directive.less | 68 -- .../structure-tree/structure-tree-directive.ts | 197 ----- .../app/scripts/directives/tag/tag-directive.html | 10 - .../app/scripts/directives/tag/tag-directive.less | 51 -- .../app/scripts/directives/tag/tag-directive.ts | 71 -- .../directives/tutorial/image-template.html | 7 - .../scripts/directives/tutorial/text-template.html | 4 - .../directives/tutorial/tutorial-directive.html | 22 - .../directives/tutorial/tutorial-directive.less | 213 ----- .../directives/tutorial/tutorial-directive.ts | 147 ---- .../user-header-details-directive.html | 9 - .../user-header-details-directive.less | 62 -- .../user-header-details-directive.ts | 72 -- .../expand-collaps-menu-box.ts | 66 -- .../expand-collapse-menu-box.html | 15 - .../expand-collapse-menu-box.less | 55 -- .../utils/expand-collapse/expand-collapse.html | 1 - .../utils/expand-collapse/expand-collapse.less | 10 - .../utils/expand-collapse/expand-collapse.ts | 136 --- .../utils/page-selector/page-selector.html | 9 - .../utils/page-selector/page-selector.less | 51 -- .../utils/page-selector/page-selector.ts | 106 --- .../sdc-keyboard-events/sdc-keyboard-events.ts | 106 --- .../directives/utils/sdc-tags/sdc-tags.html | 27 - .../directives/utils/sdc-tags/sdc-tags.less | 61 -- .../scripts/directives/utils/sdc-tags/sdc-tags.ts | 97 --- .../utils/sdc_error_tooltip/sdc_error_tooltip.html | 6 - .../utils/sdc_error_tooltip/sdc_error_tooltip.ts | 109 --- .../directives/utils/sdc_messages/sdc-message.ts | 179 ---- .../utils/sdc_messages/sdc-messages.less | 10 - .../directives/utils/sdc_messages/sdc-messages.ts | 245 ------ .../utils/sdc_messages/sdc_messages.html | 1 - .../utils/smart-tooltip/smart-tooltip.ts | 85 -- .../utils/wizard_steps/sdc-wizard-steps.html | 16 - .../utils/wizard_steps/sdc-wizard-steps.less | 69 -- .../utils/wizard_steps/sdc-wizard-steps.ts | 139 --- .../app/scripts/filters/_category-name-filter.ts | 40 - .../app/scripts/filters/capitalize-filter.ts | 43 - .../app/scripts/filters/catalog-status-filter.ts | 41 - .../app/scripts/filters/category-icon-filter.ts | 54 -- .../app/scripts/filters/category-type-filter.ts | 45 - .../scripts/filters/clear-whitespaces-filter.ts | 39 - catalog-ui/app/scripts/filters/entity-filter.ts | 117 --- .../scripts/filters/graph-resource-name-filter.ts | 47 -- .../filters/product-category-name-filter.ts | 39 - .../filters/product-subcategory-name-filter.ts | 39 - .../app/scripts/filters/relation-name-fllter.ts | 53 -- .../app/scripts/filters/resource-name-filter.ts | 45 - .../app/scripts/filters/resource-type-filter.ts | 38 - .../app/scripts/filters/string-to-date-filter.ts | 34 - catalog-ui/app/scripts/filters/tests-id-filter.ts | 33 - catalog-ui/app/scripts/filters/trim-filter.ts | 39 - catalog-ui/app/scripts/filters/truncate-filter.ts | 48 -- .../app/scripts/filters/underscoreless-filter.ts | 33 - catalog-ui/app/scripts/models/activity.ts | 48 -- .../app/scripts/models/additional-information.ts | 44 - catalog-ui/app/scripts/models/app-config.ts | 232 ----- catalog-ui/app/scripts/models/artifacts.ts | 115 --- catalog-ui/app/scripts/models/aschema-property.ts | 63 -- catalog-ui/app/scripts/models/attributes.ts | 139 --- catalog-ui/app/scripts/models/capability.ts | 116 --- catalog-ui/app/scripts/models/category.ts | 67 -- catalog-ui/app/scripts/models/comments.ts | 33 - .../app/scripts/models/components/component.ts | 828 ------------------ .../scripts/models/components/displayComponent.ts | 98 --- .../app/scripts/models/components/product.ts | 109 --- .../app/scripts/models/components/resource.ts | 185 ---- .../app/scripts/models/components/service.ts | 147 ---- .../componentsInstances/componentInstance.ts | 126 --- .../models/componentsInstances/productInstance.ts | 34 - .../models/componentsInstances/resourceInstance.ts | 36 - .../models/componentsInstances/serviceInstance.ts | 35 - catalog-ui/app/scripts/models/csar-component.ts | 36 - .../app/scripts/models/data-type-properties.ts | 65 -- catalog-ui/app/scripts/models/data-types-map.ts | 39 - catalog-ui/app/scripts/models/data-types.ts | 55 -- catalog-ui/app/scripts/models/distribution.ts | 66 -- catalog-ui/app/scripts/models/file-download.ts | 28 - catalog-ui/app/scripts/models/graph/d2-node.ts | 31 - .../models/graph/graph-links/common-base-link.ts | 53 -- .../graph/graph-links/common-ci-link-base.ts | 50 -- .../composition-ci-link-base.ts | 46 - .../composition-ci-simple-link.ts | 31 - .../composition-ci-ucpe-host-link.ts | 33 - .../composition-ci-ucpe-link.ts | 37 - .../composition-ci-vl-link.ts | 34 - .../composition-ci-vl-ucpe-link.ts | 33 - .../models/graph/graph-links/links-factory.ts | 80 -- .../module-graph-links/module-ci-link-base.ts | 38 - .../module-graph-links/module-ci-vl-link.ts | 37 - .../app/scripts/models/graph/graphTooltip.ts | 38 - catalog-ui/app/scripts/models/graph/link-menu.ts | 38 - .../app/scripts/models/graph/match-relation.ts | 109 --- .../scripts/models/graph/nodes/base-common-node.ts | 73 -- .../models/graph/nodes/common-ci-node-base.ts | 46 - .../composition-ci-node-base.ts | 72 -- .../composition-ci-node-cp.ts | 48 -- .../composition-ci-node-service.ts | 42 - .../composition-ci-node-ucpe-cp.ts | 39 - .../composition-ci-node-ucpe.ts | 50 -- .../composition-ci-node-vf.ts | 41 - .../composition-ci-node-vfc.ts | 33 - .../composition-ci-node-vl.ts | 54 -- .../nodes/modules-graph-nodes/module-node-base.ts | 52 -- .../scripts/models/graph/nodes/nodes-factory.ts | 63 -- catalog-ui/app/scripts/models/graph/point.ts | 26 - .../scripts/models/graph/relationMenuObjects.ts | 138 --- .../app/scripts/models/graph/relationship.ts | 107 --- catalog-ui/app/scripts/models/inputs.ts | 74 -- .../models/instance-inputs-properties-map.ts | 39 - .../app/scripts/models/instances-inputs-map.ts | 39 - catalog-ui/app/scripts/models/left-panel.ts | 33 - catalog-ui/app/scripts/models/member.ts | 39 - .../app/scripts/models/modules/base-module.ts | 108 --- catalog-ui/app/scripts/models/properties.ts | 176 ---- catalog-ui/app/scripts/models/requirement.ts | 91 -- catalog-ui/app/scripts/models/schema-attribute.ts | 37 - catalog-ui/app/scripts/models/tab.ts | 47 -- catalog-ui/app/scripts/models/tooltip-data.ts | 28 - catalog-ui/app/scripts/models/user.ts | 117 --- catalog-ui/app/scripts/models/validate.ts | 29 - catalog-ui/app/scripts/modules/directive-module.ts | 106 --- catalog-ui/app/scripts/modules/filters.ts | 44 - catalog-ui/app/scripts/modules/service-module.ts | 64 -- catalog-ui/app/scripts/modules/utils.ts | 39 - .../app/scripts/modules/view-model-module.ts | 96 --- .../app/scripts/services/activity-log-service.ts | 48 -- .../scripts/services/angular-js-bridge-service.ts | 22 - .../scripts/services/available-icons-service.ts | 105 --- catalog-ui/app/scripts/services/cache-service.ts | 58 -- .../scripts/services/category-resource-service.ts | 83 -- .../services/components/component-service.ts | 698 --------------- .../scripts/services/components/product-service.ts | 61 -- .../services/components/resource-service.ts | 61 -- .../scripts/services/components/service-service.ts | 97 --- .../utils/composition-left-palette-service.ts | 248 ------ .../scripts/services/configuration-ui-service.ts | 49 -- catalog-ui/app/scripts/services/cookie-service.ts | 95 --- .../app/scripts/services/data-types-service.ts | 129 --- catalog-ui/app/scripts/services/ecomp-service.ts | 54 -- catalog-ui/app/scripts/services/entity-service.ts | 114 --- .../app/scripts/services/event-listener-service.ts | 78 -- .../app/scripts/services/header-interceptor.ts | 93 -- .../app/scripts/services/http-error-interceptor.ts | 118 --- catalog-ui/app/scripts/services/loader-service.ts | 26 - .../app/scripts/services/onboarding-service.ts | 103 --- .../app/scripts/services/progress-service.ts | 112 --- .../app/scripts/services/relation-icons-service.ts | 61 -- .../app/scripts/services/sdc-version-service.ts | 48 -- catalog-ui/app/scripts/services/sharing-service.ts | 41 - .../app/scripts/services/url-tobase64-service.ts | 52 -- .../app/scripts/services/user-resource-service.ts | 123 --- catalog-ui/app/scripts/utils/artifacts-utils.ts | 121 --- .../utils/change-lifecycle-state-handler.ts | 151 ---- catalog-ui/app/scripts/utils/common-utils.ts | 81 -- catalog-ui/app/scripts/utils/component-factory.ts | 181 ---- .../scripts/utils/component-instance-factory.ts | 85 -- catalog-ui/app/scripts/utils/constants.ts | 247 ------ .../app/scripts/utils/dictionary/dictionary.ts | 257 ------ catalog-ui/app/scripts/utils/file-utils.ts | 73 -- catalog-ui/app/scripts/utils/functions.ts | 58 -- catalog-ui/app/scripts/utils/menu-handler.ts | 145 ---- catalog-ui/app/scripts/utils/modals-handler.ts | 275 ------ catalog-ui/app/scripts/utils/prototypes.ts | 155 ---- catalog-ui/app/scripts/utils/validation-utils.ts | 173 ---- .../add-category-modal-view-model.ts | 94 --- .../add-category-modal-view.html | 41 - .../add-category-modal-view.less | 3 - .../admin-dashboard/admin-dashboard-view-model.ts | 82 -- .../admin-dashboard/admin-dashboard-view.html | 24 - .../admin-dashboard/admin-dashboard.less | 49 -- .../category-management-view-model.ts | 197 ----- .../category-management-view.html | 53 -- .../category-management/category-management.less | 118 --- .../admin-dashboard/ecomp/ecomp-view.html | 1 - .../user-management/user-management-view-model.ts | 220 ----- .../user-management/user-management-view.html | 102 --- .../user-management/user-management.less | 251 ------ .../view-models/catalog/catalog-view-model.ts | 312 ------- .../view-models/catalog/catalog-view-tests.ts | 309 ------- .../scripts/view-models/catalog/catalog-view.html | 190 ----- .../app/scripts/view-models/catalog/catalog.less | 304 ------- .../activity-log/activity-log-view.html | 16 - .../activity-log/activity-log-view.less | 18 - .../component-viewer-view-model.ts | 211 ----- .../component-viewer/component-viewer.html | 55 -- .../component-viewer/component-viewer.less | 148 ---- .../properties/product-properties-view.html | 76 -- .../properties/properties-view.less | 128 --- .../properties/resource-properties-view.html | 169 ---- .../properties/service-properties-view.html | 167 ---- .../dashboard/cover/dashboard-cover-view-model.ts | 91 -- .../dashboard/cover/dashboard-cover-view.html | 1 - .../dashboard/dashboard-view-model-tests.ts | 276 ------ .../view-models/dashboard/dashboard-view-model.ts | 415 --------- .../view-models/dashboard/dashboard-view.html | 106 --- .../scripts/view-models/dashboard/dashboard.less | 420 --------- .../artifact-form/artifact-form-view-model.ts | 354 -------- .../forms/artifact-form/artifact-form-view.html | 169 ---- .../forms/artifact-form/artifact-form.less | 44 - .../forms/attribute-form/attribute-form-view.html | 153 ---- .../attribute-form/attribute-from-view-model.ts | 255 ------ .../env-parameters-form/env-parameters-form.html | 39 - .../env-parameters-form/env-parameters-form.less | 74 -- .../env-parameters-form/env-parameters-form.ts | 149 ---- .../property-form/property-form-view-model.ts | 330 -------- .../forms/property-form/property-form-view.html | 219 ----- .../forms/property-form/property-form.less | 63 -- .../resource-instance-name-model.ts | 105 --- .../resource-instance-name-view.html | 72 -- .../resource-instance-name.less | 29 - .../confirmation-modal-view-model.ts | 96 --- .../confirmation-modal-view.html | 29 - .../confirmation-modal/confirmation-modal.less | 30 - .../modals/email-modal/email-modal-view-model.ts | 117 --- .../modals/email-modal/email-modal-view.html | 79 -- .../modals/email-modal/email-modal.less | 56 -- .../modals/error-modal/error-403-view.html | 4 - .../modals/error-modal/error-view-model.ts | 43 - .../view-models/modals/error-modal/error.less | 13 - .../message-modal/message-base-modal-model.ts | 64 -- .../client-message-modal-view-model.ts | 43 - .../client-message-modal-view.html | 16 - .../message-client-modal/client-message-modal.less | 0 .../server-message-modal-view-model.ts | 45 - .../server-message-modal-view.html | 17 - .../message-server-modal/server-message-modal.less | 0 .../onboarding-modal-view-model.ts | 249 ------ .../onboarding-modal/onboarding-modal-view.html | 142 ---- .../modals/onboarding-modal/onboarding-modal.less | 148 ---- .../onboard-vendor/onboard-vendor-view-model.ts | 148 ---- .../onboard-vendor/onboard-vendor-view.html | 14 - .../view-models/onboard-vendor/onboard-vendor.less | 303 ------- .../view-models/preloading/preloading-view.html | 9 - .../view-models/preloading/preloading-view.less | 107 --- .../view-models/preloading/preloading-view.ts | 47 -- .../view-models/support/support-view-model.ts | 38 - .../scripts/view-models/support/support-view.html | 33 - .../app/scripts/view-models/support/support.less | 8 - .../app/scripts/view-models/tabs/general-tab.less | 131 --- .../tabs/hierarchy/hierarchy-view-model.ts | 99 --- .../view-models/tabs/hierarchy/hierarchy-view.html | 57 -- .../view-models/tabs/hierarchy/hierarchy.less | 71 -- .../view-models/tutorial-end/tutorial-end.html | 10 - .../view-models/tutorial-end/tutorial-end.less | 41 - .../view-models/tutorial-end/tutorial-end.ts | 42 - .../app/scripts/view-models/welcome/slide0.html | 50 -- .../app/scripts/view-models/welcome/slide1.html | 34 - .../app/scripts/view-models/welcome/slide2.html | 26 - .../app/scripts/view-models/welcome/slide3.html | 27 - .../app/scripts/view-models/welcome/slide4.html | 29 - .../app/scripts/view-models/welcome/slide5.html | 27 - .../app/scripts/view-models/welcome/slide6.html | 26 - .../welcome/welcome-steps-controller.ts | 74 -- .../scripts/view-models/welcome/welcome-view.html | 22 - .../scripts/view-models/welcome/welcome-view.ts | 267 ------ .../app/scripts/view-models/wizard/ReadMe.txt | 54 -- .../artifact-deployment-step.html | 137 --- .../artifact-deployment-step.less | 107 --- .../artifact-deployment-step.ts | 228 ----- .../artifact-form-step-view-model.ts | 304 ------- .../artifact-form-step-view.html | 147 ---- .../artifact-form-step/artifact-form-step.less | 45 - .../artifact-information-step.html | 48 -- .../artifact-information-step.less | 50 -- .../artifact-information-step.ts | 168 ---- .../wizard/general-step/general-step.html | 270 ------ .../wizard/general-step/general-step.less | 34 - .../wizard/general-step/general-step.ts | 381 --------- .../wizard/hierarchy-step/hierarchy-step.html | 40 - .../wizard/hierarchy-step/hierarchy-step.less | 125 --- .../wizard/hierarchy-step/hierarchy-step.ts | 149 ---- .../view-models/wizard/icons-step/icons-step.html | 26 - .../view-models/wizard/icons-step/icons-step.less | 55 -- .../view-models/wizard/icons-step/icons-step.ts | 150 ---- .../wizard/properties-step/properties-step.html | 57 -- .../wizard/properties-step/properties-step.less | 55 -- .../wizard/properties-step/properties-step.ts | 123 --- .../property-form-view-model-tests.ts | 163 ---- .../property-form/property-form-view-model.ts | 250 ------ .../wizard/property-form/property-form.html | 133 --- .../wizard/property-form/property-form.less | 7 - .../view-models/wizard/wizard-creation-base.html | 12 - .../view-models/wizard/wizard-creation-base.less | 60 -- .../view-models/wizard/wizard-creation-base.ts | 399 --------- .../wizard/wizard-state/create-wizard.ts | 114 --- .../view-models/wizard/wizard-state/edit-wizard.ts | 164 ---- .../wizard/wizard-state/import-wizard.ts | 64 -- .../workspace/tabs/activity-log/activity-log.html | 85 -- .../workspace/tabs/activity-log/activity-log.less | 83 -- .../workspace/tabs/activity-log/activity-log.ts | 122 --- .../tabs/attributes/attributes-view-model.ts | 107 --- .../workspace/tabs/attributes/attributes-view.html | 52 -- .../workspace/tabs/attributes/attributes.less | 54 -- .../tabs/composition/composition-view-model.ts | 232 ----- .../tabs/composition/composition-view.html | 99 --- .../workspace/tabs/composition/composition.less | 864 ------------------- .../tabs/artifacts/artifacts-view-model.ts | 255 ------ .../composition/tabs/artifacts/artifacts-view.html | 55 -- .../tabs/composition/tabs/artifacts/artifacts.less | 172 ---- .../composition/tabs/details/details-view-model.ts | 132 --- .../composition/tabs/details/details-view.html | 129 --- .../tabs/composition/tabs/details/details.less | 68 -- .../properties-view-model.ts | 228 ----- .../properties-and-attributes/properties-view.html | 81 -- .../tabs/properties-and-attributes/properties.less | 16 - .../tabs/relations/relations-view-model.ts | 81 -- .../composition/tabs/relations/relations-view.html | 57 -- .../tabs/composition/tabs/relations/relations.less | 116 --- .../composition/tabs/structure/structure-view.html | 13 - .../composition/tabs/structure/structure-view.ts | 34 - .../deployment-artifacts-view-model.ts | 253 ------ .../deployment-artifacts-view.html | 149 ---- .../deployment-artifacts/deployment-artifacts.less | 102 --- .../tabs/deployment/deployment-view-model.ts | 127 --- .../workspace/tabs/deployment/deployment-view.html | 10 - .../workspace/tabs/deployment/deployment.less | 33 - .../disribution-status-modal-view-model.ts | 67 -- .../disribution-status-modal-view.html | 126 --- .../disribution-status-modal.less | 33 - .../tabs/distribution/distribution-view-model.ts | 135 --- .../tabs/distribution/distribution-view.html | 171 ---- .../workspace/tabs/distribution/distribution.less | 361 -------- .../workspace/tabs/general/general-view-model.ts | 379 --------- .../workspace/tabs/general/general-view.html | 307 ------- .../workspace/tabs/general/general.less | 64 -- .../workspace/tabs/icons/icons-view-model.ts | 131 --- .../workspace/tabs/icons/icons-view.html | 26 - .../view-models/workspace/tabs/icons/icons.less | 65 -- .../information-artifacts-view-model.ts | 150 ---- .../information-artifacts-view.html | 57 -- .../information-artifacts.less | 47 -- .../view-models/workspace/tabs/inputs/inputs.less | 286 ------- .../resource-input/resource-inputs-view-model.ts | 145 ---- .../resource-input/resource-inputs-view.html | 136 --- .../inputs/resource-input/resource-inputs.less | 9 - .../service-input/service-inputs-view-model.ts | 246 ------ .../inputs/service-input/service-inputs-view.html | 205 ----- .../tabs/inputs/service-input/service-inputs.less | 54 -- .../management-workflow-view-model.ts | 128 --- .../management-workflow-view.html | 3 - .../network-call-flow-view-model.ts | 80 -- .../network-call-flow/network-call-flow-view.html | 3 - .../product-hierarchy-view-model.ts | 134 --- .../product-hierarchy/product-hierarchy-view.html | 40 - .../tabs/product-hierarchy/product-hierarchy.less | 130 --- .../tabs/properties/properties-view-model.ts | 114 --- .../workspace/tabs/properties/properties-view.html | 62 -- .../workspace/tabs/properties/properties.less | 115 --- .../req-and-capabilities-view-model.ts | 165 ---- .../req-and-capabilities-view.html | 144 ---- .../req-and-capabilities/req-and-capabilities.less | 196 ----- .../tosca-artifacts/tosca-artifacts-view-model.ts | 87 -- .../tabs/tosca-artifacts/tosca-artifacts-view.html | 45 - .../tabs/tosca-artifacts/tosca-artifacts.less | 74 -- .../view-models/workspace/workspace-view-model.ts | 703 ---------------- .../view-models/workspace/workspace-view.html | 86 -- .../scripts/view-models/workspace/workspace.less | 144 ---- 444 files changed, 46164 deletions(-) delete mode 100644 catalog-ui/app/scripts/app.ts delete mode 100644 catalog-ui/app/scripts/directives/clicked-outside/clicked-outside-directive.ts delete mode 100644 catalog-ui/app/scripts/directives/custom-validation/custom-validation.ts delete mode 100644 catalog-ui/app/scripts/directives/download-artifact/download-artifact.ts delete mode 100644 catalog-ui/app/scripts/directives/ecomp-header/ecomp-header.html delete mode 100644 catalog-ui/app/scripts/directives/ecomp-header/ecomp-header.less delete mode 100644 catalog-ui/app/scripts/directives/ecomp-header/ecomp-header.ts delete mode 100644 catalog-ui/app/scripts/directives/edit-name-popover/edit-module-name-popover.html delete mode 100644 catalog-ui/app/scripts/directives/edit-name-popover/edit-name-popover-directive.ts delete mode 100644 catalog-ui/app/scripts/directives/edit-name-popover/edit-name-popover-view.html delete mode 100644 catalog-ui/app/scripts/directives/edit-name-popover/edit-name-popover.less delete mode 100644 catalog-ui/app/scripts/directives/elements/checkbox/checkbox.html delete mode 100644 catalog-ui/app/scripts/directives/elements/checkbox/checkbox.less delete mode 100644 catalog-ui/app/scripts/directives/elements/checkbox/checkbox.ts delete mode 100644 catalog-ui/app/scripts/directives/elements/radiobutton/radiobutton.html delete mode 100644 catalog-ui/app/scripts/directives/elements/radiobutton/radiobutton.less delete mode 100644 catalog-ui/app/scripts/directives/elements/radiobutton/radiobutton.ts delete mode 100644 catalog-ui/app/scripts/directives/ellipsis/ellipsis-directive.html delete mode 100644 catalog-ui/app/scripts/directives/ellipsis/ellipsis-directive.less delete mode 100644 catalog-ui/app/scripts/directives/ellipsis/ellipsis-directive.ts delete mode 100644 catalog-ui/app/scripts/directives/events/on-last-repeat/on-last-repeat.ts delete mode 100644 catalog-ui/app/scripts/directives/file-opener/file-opener.html delete mode 100644 catalog-ui/app/scripts/directives/file-opener/file-opener.ts delete mode 100644 catalog-ui/app/scripts/directives/file-type/file-type.ts delete mode 100644 catalog-ui/app/scripts/directives/file-upload/file-upload.html delete mode 100644 catalog-ui/app/scripts/directives/file-upload/file-upload.less delete mode 100644 catalog-ui/app/scripts/directives/file-upload/file-upload.ts delete mode 100644 catalog-ui/app/scripts/directives/graphs-v2/common/common-graph-utils.ts delete mode 100644 catalog-ui/app/scripts/directives/graphs-v2/common/style/component-instances-nodes-style.ts delete mode 100644 catalog-ui/app/scripts/directives/graphs-v2/common/style/module-node-style.ts delete mode 100644 catalog-ui/app/scripts/directives/graphs-v2/composition-graph/composition-graph.directive.ts delete mode 100644 catalog-ui/app/scripts/directives/graphs-v2/composition-graph/composition-graph.html delete mode 100644 catalog-ui/app/scripts/directives/graphs-v2/composition-graph/composition-graph.less delete mode 100644 catalog-ui/app/scripts/directives/graphs-v2/composition-graph/utils/composition-graph-general-utils.ts delete mode 100644 catalog-ui/app/scripts/directives/graphs-v2/composition-graph/utils/composition-graph-links-utils.ts delete mode 100644 catalog-ui/app/scripts/directives/graphs-v2/composition-graph/utils/composition-graph-nodes-utils.ts delete mode 100644 catalog-ui/app/scripts/directives/graphs-v2/composition-graph/utils/match-capability-requierment-utils.ts delete mode 100644 catalog-ui/app/scripts/directives/graphs-v2/deployment-graph/deployment-graph.directive.ts delete mode 100644 catalog-ui/app/scripts/directives/graphs-v2/deployment-graph/deployment-graph.html delete mode 100644 catalog-ui/app/scripts/directives/graphs-v2/deployment-graph/deployment-graph.less delete mode 100644 catalog-ui/app/scripts/directives/graphs-v2/deployment-graph/deployment-utils/deployment-graph-general-utils.ts delete mode 100644 catalog-ui/app/scripts/directives/graphs-v2/image-creator/image-creator.service.ts delete mode 100644 catalog-ui/app/scripts/directives/graphs-v2/palette/interfaces/i-dragdrop-event.d.ts delete mode 100644 catalog-ui/app/scripts/directives/graphs-v2/palette/palette.directive.ts delete mode 100644 catalog-ui/app/scripts/directives/graphs-v2/palette/palette.html delete mode 100644 catalog-ui/app/scripts/directives/graphs-v2/palette/palette.less delete mode 100644 catalog-ui/app/scripts/directives/graphs-v2/relation-menu/relation-menu.html delete mode 100644 catalog-ui/app/scripts/directives/graphs-v2/relation-menu/relation-menu.less delete mode 100644 catalog-ui/app/scripts/directives/graphs-v2/relation-menu/relation-menu.ts delete mode 100644 catalog-ui/app/scripts/directives/info-tooltip/info-tooltip.html delete mode 100644 catalog-ui/app/scripts/directives/info-tooltip/info-tooltip.less delete mode 100644 catalog-ui/app/scripts/directives/info-tooltip/info-tooltip.ts delete mode 100644 catalog-ui/app/scripts/directives/invalid-characters/invalid-characters.ts delete mode 100644 catalog-ui/app/scripts/directives/layout/top-nav/top-nav.html delete mode 100644 catalog-ui/app/scripts/directives/layout/top-nav/top-nav.less delete mode 100644 catalog-ui/app/scripts/directives/layout/top-nav/top-nav.ts delete mode 100644 catalog-ui/app/scripts/directives/layout/top-progress/top-progress.html delete mode 100644 catalog-ui/app/scripts/directives/layout/top-progress/top-progress.less delete mode 100644 catalog-ui/app/scripts/directives/layout/top-progress/top-progress.ts delete mode 100644 catalog-ui/app/scripts/directives/loader/loader-directive.html delete mode 100644 catalog-ui/app/scripts/directives/loader/loader-directive.less delete mode 100644 catalog-ui/app/scripts/directives/loader/loader-directive.ts delete mode 100644 catalog-ui/app/scripts/directives/modal/sdc-modal.html delete mode 100644 catalog-ui/app/scripts/directives/modal/sdc-modal.less delete mode 100644 catalog-ui/app/scripts/directives/modal/sdc-modal.ts delete mode 100644 catalog-ui/app/scripts/directives/page-scroller/page-scroller.html delete mode 100644 catalog-ui/app/scripts/directives/page-scroller/page-scroller.less delete mode 100644 catalog-ui/app/scripts/directives/page-scroller/page-scroller.ts delete mode 100644 catalog-ui/app/scripts/directives/perfect-scrollbar/angular-perfect-scrollbar.ts delete mode 100644 catalog-ui/app/scripts/directives/print-graph-screen/print-graph-screen.ts delete mode 100644 catalog-ui/app/scripts/directives/property-types/data-type-fields-structure/data-type-fields-structure.html delete mode 100644 catalog-ui/app/scripts/directives/property-types/data-type-fields-structure/data-type-fields-structure.less delete mode 100644 catalog-ui/app/scripts/directives/property-types/data-type-fields-structure/data-type-fields-structure.ts delete mode 100644 catalog-ui/app/scripts/directives/property-types/type-list/type-list-directive.html delete mode 100644 catalog-ui/app/scripts/directives/property-types/type-list/type-list-directive.less delete mode 100644 catalog-ui/app/scripts/directives/property-types/type-list/type-list-directive.ts delete mode 100644 catalog-ui/app/scripts/directives/property-types/type-map/type-map-directive.html delete mode 100644 catalog-ui/app/scripts/directives/property-types/type-map/type-map-directive.less delete mode 100644 catalog-ui/app/scripts/directives/property-types/type-map/type-map-directive.ts delete mode 100644 catalog-ui/app/scripts/directives/punch-out/punch-out.ts delete mode 100644 catalog-ui/app/scripts/directives/sdc-tabs/sdc-single-tab/sdc-single-tab-directive.ts delete mode 100644 catalog-ui/app/scripts/directives/sdc-tabs/sdc-single-tab/sdc-single-tab.less delete mode 100644 catalog-ui/app/scripts/directives/sdc-tabs/sdc-tabs-directive-view.html delete mode 100644 catalog-ui/app/scripts/directives/sdc-tabs/sdc-tabs-directive.ts delete mode 100644 catalog-ui/app/scripts/directives/sdc-tabs/sdc-tabs.less delete mode 100644 catalog-ui/app/scripts/directives/structure-tree/structure-tree-directive.html delete mode 100644 catalog-ui/app/scripts/directives/structure-tree/structure-tree-directive.less delete mode 100644 catalog-ui/app/scripts/directives/structure-tree/structure-tree-directive.ts delete mode 100644 catalog-ui/app/scripts/directives/tag/tag-directive.html delete mode 100644 catalog-ui/app/scripts/directives/tag/tag-directive.less delete mode 100644 catalog-ui/app/scripts/directives/tag/tag-directive.ts delete mode 100644 catalog-ui/app/scripts/directives/tutorial/image-template.html delete mode 100644 catalog-ui/app/scripts/directives/tutorial/text-template.html delete mode 100644 catalog-ui/app/scripts/directives/tutorial/tutorial-directive.html delete mode 100644 catalog-ui/app/scripts/directives/tutorial/tutorial-directive.less delete mode 100644 catalog-ui/app/scripts/directives/tutorial/tutorial-directive.ts delete mode 100644 catalog-ui/app/scripts/directives/user-header-details/user-header-details-directive.html delete mode 100644 catalog-ui/app/scripts/directives/user-header-details/user-header-details-directive.less delete mode 100644 catalog-ui/app/scripts/directives/user-header-details/user-header-details-directive.ts delete mode 100644 catalog-ui/app/scripts/directives/utils/expand-collapse-menu-box/expand-collaps-menu-box.ts delete mode 100644 catalog-ui/app/scripts/directives/utils/expand-collapse-menu-box/expand-collapse-menu-box.html delete mode 100644 catalog-ui/app/scripts/directives/utils/expand-collapse-menu-box/expand-collapse-menu-box.less delete mode 100644 catalog-ui/app/scripts/directives/utils/expand-collapse/expand-collapse.html delete mode 100644 catalog-ui/app/scripts/directives/utils/expand-collapse/expand-collapse.less delete mode 100644 catalog-ui/app/scripts/directives/utils/expand-collapse/expand-collapse.ts delete mode 100644 catalog-ui/app/scripts/directives/utils/page-selector/page-selector.html delete mode 100644 catalog-ui/app/scripts/directives/utils/page-selector/page-selector.less delete mode 100644 catalog-ui/app/scripts/directives/utils/page-selector/page-selector.ts delete mode 100644 catalog-ui/app/scripts/directives/utils/sdc-keyboard-events/sdc-keyboard-events.ts delete mode 100644 catalog-ui/app/scripts/directives/utils/sdc-tags/sdc-tags.html delete mode 100644 catalog-ui/app/scripts/directives/utils/sdc-tags/sdc-tags.less delete mode 100644 catalog-ui/app/scripts/directives/utils/sdc-tags/sdc-tags.ts delete mode 100644 catalog-ui/app/scripts/directives/utils/sdc_error_tooltip/sdc_error_tooltip.html delete mode 100644 catalog-ui/app/scripts/directives/utils/sdc_error_tooltip/sdc_error_tooltip.ts delete mode 100644 catalog-ui/app/scripts/directives/utils/sdc_messages/sdc-message.ts delete mode 100644 catalog-ui/app/scripts/directives/utils/sdc_messages/sdc-messages.less delete mode 100644 catalog-ui/app/scripts/directives/utils/sdc_messages/sdc-messages.ts delete mode 100644 catalog-ui/app/scripts/directives/utils/sdc_messages/sdc_messages.html delete mode 100644 catalog-ui/app/scripts/directives/utils/smart-tooltip/smart-tooltip.ts delete mode 100644 catalog-ui/app/scripts/directives/utils/wizard_steps/sdc-wizard-steps.html delete mode 100644 catalog-ui/app/scripts/directives/utils/wizard_steps/sdc-wizard-steps.less delete mode 100644 catalog-ui/app/scripts/directives/utils/wizard_steps/sdc-wizard-steps.ts delete mode 100644 catalog-ui/app/scripts/filters/_category-name-filter.ts delete mode 100644 catalog-ui/app/scripts/filters/capitalize-filter.ts delete mode 100644 catalog-ui/app/scripts/filters/catalog-status-filter.ts delete mode 100644 catalog-ui/app/scripts/filters/category-icon-filter.ts delete mode 100644 catalog-ui/app/scripts/filters/category-type-filter.ts delete mode 100644 catalog-ui/app/scripts/filters/clear-whitespaces-filter.ts delete mode 100644 catalog-ui/app/scripts/filters/entity-filter.ts delete mode 100644 catalog-ui/app/scripts/filters/graph-resource-name-filter.ts delete mode 100644 catalog-ui/app/scripts/filters/product-category-name-filter.ts delete mode 100644 catalog-ui/app/scripts/filters/product-subcategory-name-filter.ts delete mode 100644 catalog-ui/app/scripts/filters/relation-name-fllter.ts delete mode 100644 catalog-ui/app/scripts/filters/resource-name-filter.ts delete mode 100644 catalog-ui/app/scripts/filters/resource-type-filter.ts delete mode 100644 catalog-ui/app/scripts/filters/string-to-date-filter.ts delete mode 100644 catalog-ui/app/scripts/filters/tests-id-filter.ts delete mode 100644 catalog-ui/app/scripts/filters/trim-filter.ts delete mode 100644 catalog-ui/app/scripts/filters/truncate-filter.ts delete mode 100644 catalog-ui/app/scripts/filters/underscoreless-filter.ts delete mode 100644 catalog-ui/app/scripts/models/activity.ts delete mode 100644 catalog-ui/app/scripts/models/additional-information.ts delete mode 100644 catalog-ui/app/scripts/models/app-config.ts delete mode 100644 catalog-ui/app/scripts/models/artifacts.ts delete mode 100644 catalog-ui/app/scripts/models/aschema-property.ts delete mode 100644 catalog-ui/app/scripts/models/attributes.ts delete mode 100644 catalog-ui/app/scripts/models/capability.ts delete mode 100644 catalog-ui/app/scripts/models/category.ts delete mode 100644 catalog-ui/app/scripts/models/comments.ts delete mode 100644 catalog-ui/app/scripts/models/components/component.ts delete mode 100644 catalog-ui/app/scripts/models/components/displayComponent.ts delete mode 100644 catalog-ui/app/scripts/models/components/product.ts delete mode 100644 catalog-ui/app/scripts/models/components/resource.ts delete mode 100644 catalog-ui/app/scripts/models/components/service.ts delete mode 100644 catalog-ui/app/scripts/models/componentsInstances/componentInstance.ts delete mode 100644 catalog-ui/app/scripts/models/componentsInstances/productInstance.ts delete mode 100644 catalog-ui/app/scripts/models/componentsInstances/resourceInstance.ts delete mode 100644 catalog-ui/app/scripts/models/componentsInstances/serviceInstance.ts delete mode 100644 catalog-ui/app/scripts/models/csar-component.ts delete mode 100644 catalog-ui/app/scripts/models/data-type-properties.ts delete mode 100644 catalog-ui/app/scripts/models/data-types-map.ts delete mode 100644 catalog-ui/app/scripts/models/data-types.ts delete mode 100644 catalog-ui/app/scripts/models/distribution.ts delete mode 100644 catalog-ui/app/scripts/models/file-download.ts delete mode 100644 catalog-ui/app/scripts/models/graph/d2-node.ts delete mode 100644 catalog-ui/app/scripts/models/graph/graph-links/common-base-link.ts delete mode 100644 catalog-ui/app/scripts/models/graph/graph-links/common-ci-link-base.ts delete mode 100644 catalog-ui/app/scripts/models/graph/graph-links/composition-graph-links/composition-ci-link-base.ts delete mode 100644 catalog-ui/app/scripts/models/graph/graph-links/composition-graph-links/composition-ci-simple-link.ts delete mode 100644 catalog-ui/app/scripts/models/graph/graph-links/composition-graph-links/composition-ci-ucpe-host-link.ts delete mode 100644 catalog-ui/app/scripts/models/graph/graph-links/composition-graph-links/composition-ci-ucpe-link.ts delete mode 100644 catalog-ui/app/scripts/models/graph/graph-links/composition-graph-links/composition-ci-vl-link.ts delete mode 100644 catalog-ui/app/scripts/models/graph/graph-links/composition-graph-links/composition-ci-vl-ucpe-link.ts delete mode 100644 catalog-ui/app/scripts/models/graph/graph-links/links-factory.ts delete mode 100644 catalog-ui/app/scripts/models/graph/graph-links/module-graph-links/module-ci-link-base.ts delete mode 100644 catalog-ui/app/scripts/models/graph/graph-links/module-graph-links/module-ci-vl-link.ts delete mode 100644 catalog-ui/app/scripts/models/graph/graphTooltip.ts delete mode 100644 catalog-ui/app/scripts/models/graph/link-menu.ts delete mode 100644 catalog-ui/app/scripts/models/graph/match-relation.ts delete mode 100644 catalog-ui/app/scripts/models/graph/nodes/base-common-node.ts delete mode 100644 catalog-ui/app/scripts/models/graph/nodes/common-ci-node-base.ts delete mode 100644 catalog-ui/app/scripts/models/graph/nodes/composition-graph-nodes/composition-ci-node-base.ts delete mode 100644 catalog-ui/app/scripts/models/graph/nodes/composition-graph-nodes/composition-ci-node-cp.ts delete mode 100644 catalog-ui/app/scripts/models/graph/nodes/composition-graph-nodes/composition-ci-node-service.ts delete mode 100644 catalog-ui/app/scripts/models/graph/nodes/composition-graph-nodes/composition-ci-node-ucpe-cp.ts delete mode 100644 catalog-ui/app/scripts/models/graph/nodes/composition-graph-nodes/composition-ci-node-ucpe.ts delete mode 100644 catalog-ui/app/scripts/models/graph/nodes/composition-graph-nodes/composition-ci-node-vf.ts delete mode 100644 catalog-ui/app/scripts/models/graph/nodes/composition-graph-nodes/composition-ci-node-vfc.ts delete mode 100644 catalog-ui/app/scripts/models/graph/nodes/composition-graph-nodes/composition-ci-node-vl.ts delete mode 100644 catalog-ui/app/scripts/models/graph/nodes/modules-graph-nodes/module-node-base.ts delete mode 100644 catalog-ui/app/scripts/models/graph/nodes/nodes-factory.ts delete mode 100644 catalog-ui/app/scripts/models/graph/point.ts delete mode 100644 catalog-ui/app/scripts/models/graph/relationMenuObjects.ts delete mode 100644 catalog-ui/app/scripts/models/graph/relationship.ts delete mode 100644 catalog-ui/app/scripts/models/inputs.ts delete mode 100644 catalog-ui/app/scripts/models/instance-inputs-properties-map.ts delete mode 100644 catalog-ui/app/scripts/models/instances-inputs-map.ts delete mode 100644 catalog-ui/app/scripts/models/left-panel.ts delete mode 100644 catalog-ui/app/scripts/models/member.ts delete mode 100644 catalog-ui/app/scripts/models/modules/base-module.ts delete mode 100644 catalog-ui/app/scripts/models/properties.ts delete mode 100644 catalog-ui/app/scripts/models/requirement.ts delete mode 100644 catalog-ui/app/scripts/models/schema-attribute.ts delete mode 100644 catalog-ui/app/scripts/models/tab.ts delete mode 100644 catalog-ui/app/scripts/models/tooltip-data.ts delete mode 100644 catalog-ui/app/scripts/models/user.ts delete mode 100644 catalog-ui/app/scripts/models/validate.ts delete mode 100644 catalog-ui/app/scripts/modules/directive-module.ts delete mode 100644 catalog-ui/app/scripts/modules/filters.ts delete mode 100644 catalog-ui/app/scripts/modules/service-module.ts delete mode 100644 catalog-ui/app/scripts/modules/utils.ts delete mode 100644 catalog-ui/app/scripts/modules/view-model-module.ts delete mode 100644 catalog-ui/app/scripts/services/activity-log-service.ts delete mode 100644 catalog-ui/app/scripts/services/angular-js-bridge-service.ts delete mode 100644 catalog-ui/app/scripts/services/available-icons-service.ts delete mode 100644 catalog-ui/app/scripts/services/cache-service.ts delete mode 100644 catalog-ui/app/scripts/services/category-resource-service.ts delete mode 100644 catalog-ui/app/scripts/services/components/component-service.ts delete mode 100644 catalog-ui/app/scripts/services/components/product-service.ts delete mode 100644 catalog-ui/app/scripts/services/components/resource-service.ts delete mode 100644 catalog-ui/app/scripts/services/components/service-service.ts delete mode 100644 catalog-ui/app/scripts/services/components/utils/composition-left-palette-service.ts delete mode 100644 catalog-ui/app/scripts/services/configuration-ui-service.ts delete mode 100644 catalog-ui/app/scripts/services/cookie-service.ts delete mode 100644 catalog-ui/app/scripts/services/data-types-service.ts delete mode 100644 catalog-ui/app/scripts/services/ecomp-service.ts delete mode 100644 catalog-ui/app/scripts/services/entity-service.ts delete mode 100644 catalog-ui/app/scripts/services/event-listener-service.ts delete mode 100644 catalog-ui/app/scripts/services/header-interceptor.ts delete mode 100644 catalog-ui/app/scripts/services/http-error-interceptor.ts delete mode 100644 catalog-ui/app/scripts/services/loader-service.ts delete mode 100644 catalog-ui/app/scripts/services/onboarding-service.ts delete mode 100644 catalog-ui/app/scripts/services/progress-service.ts delete mode 100644 catalog-ui/app/scripts/services/relation-icons-service.ts delete mode 100644 catalog-ui/app/scripts/services/sdc-version-service.ts delete mode 100644 catalog-ui/app/scripts/services/sharing-service.ts delete mode 100644 catalog-ui/app/scripts/services/url-tobase64-service.ts delete mode 100644 catalog-ui/app/scripts/services/user-resource-service.ts delete mode 100644 catalog-ui/app/scripts/utils/artifacts-utils.ts delete mode 100644 catalog-ui/app/scripts/utils/change-lifecycle-state-handler.ts delete mode 100644 catalog-ui/app/scripts/utils/common-utils.ts delete mode 100644 catalog-ui/app/scripts/utils/component-factory.ts delete mode 100644 catalog-ui/app/scripts/utils/component-instance-factory.ts delete mode 100644 catalog-ui/app/scripts/utils/constants.ts delete mode 100644 catalog-ui/app/scripts/utils/dictionary/dictionary.ts delete mode 100644 catalog-ui/app/scripts/utils/file-utils.ts delete mode 100644 catalog-ui/app/scripts/utils/functions.ts delete mode 100644 catalog-ui/app/scripts/utils/menu-handler.ts delete mode 100644 catalog-ui/app/scripts/utils/modals-handler.ts delete mode 100644 catalog-ui/app/scripts/utils/prototypes.ts delete mode 100644 catalog-ui/app/scripts/utils/validation-utils.ts delete mode 100644 catalog-ui/app/scripts/view-models/admin-dashboard/add-category-modal/add-category-modal-view-model.ts delete mode 100644 catalog-ui/app/scripts/view-models/admin-dashboard/add-category-modal/add-category-modal-view.html delete mode 100644 catalog-ui/app/scripts/view-models/admin-dashboard/add-category-modal/add-category-modal-view.less delete mode 100644 catalog-ui/app/scripts/view-models/admin-dashboard/admin-dashboard-view-model.ts delete mode 100644 catalog-ui/app/scripts/view-models/admin-dashboard/admin-dashboard-view.html delete mode 100644 catalog-ui/app/scripts/view-models/admin-dashboard/admin-dashboard.less delete mode 100644 catalog-ui/app/scripts/view-models/admin-dashboard/category-management/category-management-view-model.ts delete mode 100644 catalog-ui/app/scripts/view-models/admin-dashboard/category-management/category-management-view.html delete mode 100644 catalog-ui/app/scripts/view-models/admin-dashboard/category-management/category-management.less delete mode 100644 catalog-ui/app/scripts/view-models/admin-dashboard/ecomp/ecomp-view.html delete mode 100644 catalog-ui/app/scripts/view-models/admin-dashboard/user-management/user-management-view-model.ts delete mode 100644 catalog-ui/app/scripts/view-models/admin-dashboard/user-management/user-management-view.html delete mode 100644 catalog-ui/app/scripts/view-models/admin-dashboard/user-management/user-management.less delete mode 100644 catalog-ui/app/scripts/view-models/catalog/catalog-view-model.ts delete mode 100644 catalog-ui/app/scripts/view-models/catalog/catalog-view-tests.ts delete mode 100644 catalog-ui/app/scripts/view-models/catalog/catalog-view.html delete mode 100644 catalog-ui/app/scripts/view-models/catalog/catalog.less delete mode 100644 catalog-ui/app/scripts/view-models/component-viewer/activity-log/activity-log-view.html delete mode 100644 catalog-ui/app/scripts/view-models/component-viewer/activity-log/activity-log-view.less delete mode 100644 catalog-ui/app/scripts/view-models/component-viewer/component-viewer-view-model.ts delete mode 100644 catalog-ui/app/scripts/view-models/component-viewer/component-viewer.html delete mode 100644 catalog-ui/app/scripts/view-models/component-viewer/component-viewer.less delete mode 100644 catalog-ui/app/scripts/view-models/component-viewer/properties/product-properties-view.html delete mode 100644 catalog-ui/app/scripts/view-models/component-viewer/properties/properties-view.less delete mode 100644 catalog-ui/app/scripts/view-models/component-viewer/properties/resource-properties-view.html delete mode 100644 catalog-ui/app/scripts/view-models/component-viewer/properties/service-properties-view.html delete mode 100644 catalog-ui/app/scripts/view-models/dashboard/cover/dashboard-cover-view-model.ts delete mode 100644 catalog-ui/app/scripts/view-models/dashboard/cover/dashboard-cover-view.html delete mode 100644 catalog-ui/app/scripts/view-models/dashboard/dashboard-view-model-tests.ts delete mode 100644 catalog-ui/app/scripts/view-models/dashboard/dashboard-view-model.ts delete mode 100644 catalog-ui/app/scripts/view-models/dashboard/dashboard-view.html delete mode 100644 catalog-ui/app/scripts/view-models/dashboard/dashboard.less delete mode 100644 catalog-ui/app/scripts/view-models/forms/artifact-form/artifact-form-view-model.ts delete mode 100644 catalog-ui/app/scripts/view-models/forms/artifact-form/artifact-form-view.html delete mode 100644 catalog-ui/app/scripts/view-models/forms/artifact-form/artifact-form.less delete mode 100644 catalog-ui/app/scripts/view-models/forms/attribute-form/attribute-form-view.html delete mode 100644 catalog-ui/app/scripts/view-models/forms/attribute-form/attribute-from-view-model.ts delete mode 100644 catalog-ui/app/scripts/view-models/forms/env-parameters-form/env-parameters-form.html delete mode 100644 catalog-ui/app/scripts/view-models/forms/env-parameters-form/env-parameters-form.less delete mode 100644 catalog-ui/app/scripts/view-models/forms/env-parameters-form/env-parameters-form.ts delete mode 100644 catalog-ui/app/scripts/view-models/forms/property-form/property-form-view-model.ts delete mode 100644 catalog-ui/app/scripts/view-models/forms/property-form/property-form-view.html delete mode 100644 catalog-ui/app/scripts/view-models/forms/property-form/property-form.less delete mode 100644 catalog-ui/app/scripts/view-models/forms/resource-instance-name-form/resource-instance-name-model.ts delete mode 100644 catalog-ui/app/scripts/view-models/forms/resource-instance-name-form/resource-instance-name-view.html delete mode 100644 catalog-ui/app/scripts/view-models/forms/resource-instance-name-form/resource-instance-name.less delete mode 100644 catalog-ui/app/scripts/view-models/modals/confirmation-modal/confirmation-modal-view-model.ts delete mode 100644 catalog-ui/app/scripts/view-models/modals/confirmation-modal/confirmation-modal-view.html delete mode 100644 catalog-ui/app/scripts/view-models/modals/confirmation-modal/confirmation-modal.less delete mode 100644 catalog-ui/app/scripts/view-models/modals/email-modal/email-modal-view-model.ts delete mode 100644 catalog-ui/app/scripts/view-models/modals/email-modal/email-modal-view.html delete mode 100644 catalog-ui/app/scripts/view-models/modals/email-modal/email-modal.less delete mode 100644 catalog-ui/app/scripts/view-models/modals/error-modal/error-403-view.html delete mode 100644 catalog-ui/app/scripts/view-models/modals/error-modal/error-view-model.ts delete mode 100644 catalog-ui/app/scripts/view-models/modals/error-modal/error.less delete mode 100644 catalog-ui/app/scripts/view-models/modals/message-modal/message-base-modal-model.ts delete mode 100644 catalog-ui/app/scripts/view-models/modals/message-modal/message-client-modal/client-message-modal-view-model.ts delete mode 100644 catalog-ui/app/scripts/view-models/modals/message-modal/message-client-modal/client-message-modal-view.html delete mode 100644 catalog-ui/app/scripts/view-models/modals/message-modal/message-client-modal/client-message-modal.less delete mode 100644 catalog-ui/app/scripts/view-models/modals/message-modal/message-server-modal/server-message-modal-view-model.ts delete mode 100644 catalog-ui/app/scripts/view-models/modals/message-modal/message-server-modal/server-message-modal-view.html delete mode 100644 catalog-ui/app/scripts/view-models/modals/message-modal/message-server-modal/server-message-modal.less delete mode 100644 catalog-ui/app/scripts/view-models/modals/onboarding-modal/onboarding-modal-view-model.ts delete mode 100644 catalog-ui/app/scripts/view-models/modals/onboarding-modal/onboarding-modal-view.html delete mode 100644 catalog-ui/app/scripts/view-models/modals/onboarding-modal/onboarding-modal.less delete mode 100644 catalog-ui/app/scripts/view-models/onboard-vendor/onboard-vendor-view-model.ts delete mode 100644 catalog-ui/app/scripts/view-models/onboard-vendor/onboard-vendor-view.html delete mode 100644 catalog-ui/app/scripts/view-models/onboard-vendor/onboard-vendor.less delete mode 100644 catalog-ui/app/scripts/view-models/preloading/preloading-view.html delete mode 100644 catalog-ui/app/scripts/view-models/preloading/preloading-view.less delete mode 100644 catalog-ui/app/scripts/view-models/preloading/preloading-view.ts delete mode 100644 catalog-ui/app/scripts/view-models/support/support-view-model.ts delete mode 100644 catalog-ui/app/scripts/view-models/support/support-view.html delete mode 100644 catalog-ui/app/scripts/view-models/support/support.less delete mode 100644 catalog-ui/app/scripts/view-models/tabs/general-tab.less delete mode 100644 catalog-ui/app/scripts/view-models/tabs/hierarchy/hierarchy-view-model.ts delete mode 100644 catalog-ui/app/scripts/view-models/tabs/hierarchy/hierarchy-view.html delete mode 100644 catalog-ui/app/scripts/view-models/tabs/hierarchy/hierarchy.less delete mode 100644 catalog-ui/app/scripts/view-models/tutorial-end/tutorial-end.html delete mode 100644 catalog-ui/app/scripts/view-models/tutorial-end/tutorial-end.less delete mode 100644 catalog-ui/app/scripts/view-models/tutorial-end/tutorial-end.ts delete mode 100644 catalog-ui/app/scripts/view-models/welcome/slide0.html delete mode 100644 catalog-ui/app/scripts/view-models/welcome/slide1.html delete mode 100644 catalog-ui/app/scripts/view-models/welcome/slide2.html delete mode 100644 catalog-ui/app/scripts/view-models/welcome/slide3.html delete mode 100644 catalog-ui/app/scripts/view-models/welcome/slide4.html delete mode 100644 catalog-ui/app/scripts/view-models/welcome/slide5.html delete mode 100644 catalog-ui/app/scripts/view-models/welcome/slide6.html delete mode 100644 catalog-ui/app/scripts/view-models/welcome/welcome-steps-controller.ts delete mode 100644 catalog-ui/app/scripts/view-models/welcome/welcome-view.html delete mode 100644 catalog-ui/app/scripts/view-models/welcome/welcome-view.ts delete mode 100644 catalog-ui/app/scripts/view-models/wizard/ReadMe.txt delete mode 100644 catalog-ui/app/scripts/view-models/wizard/artifact-deployment-step/artifact-deployment-step.html delete mode 100644 catalog-ui/app/scripts/view-models/wizard/artifact-deployment-step/artifact-deployment-step.less delete mode 100644 catalog-ui/app/scripts/view-models/wizard/artifact-deployment-step/artifact-deployment-step.ts delete mode 100644 catalog-ui/app/scripts/view-models/wizard/artifact-form-step/artifact-form-step-view-model.ts delete mode 100644 catalog-ui/app/scripts/view-models/wizard/artifact-form-step/artifact-form-step-view.html delete mode 100644 catalog-ui/app/scripts/view-models/wizard/artifact-form-step/artifact-form-step.less delete mode 100644 catalog-ui/app/scripts/view-models/wizard/artifact-information-step/artifact-information-step.html delete mode 100644 catalog-ui/app/scripts/view-models/wizard/artifact-information-step/artifact-information-step.less delete mode 100644 catalog-ui/app/scripts/view-models/wizard/artifact-information-step/artifact-information-step.ts delete mode 100644 catalog-ui/app/scripts/view-models/wizard/general-step/general-step.html delete mode 100644 catalog-ui/app/scripts/view-models/wizard/general-step/general-step.less delete mode 100644 catalog-ui/app/scripts/view-models/wizard/general-step/general-step.ts delete mode 100644 catalog-ui/app/scripts/view-models/wizard/hierarchy-step/hierarchy-step.html delete mode 100644 catalog-ui/app/scripts/view-models/wizard/hierarchy-step/hierarchy-step.less delete mode 100644 catalog-ui/app/scripts/view-models/wizard/hierarchy-step/hierarchy-step.ts delete mode 100644 catalog-ui/app/scripts/view-models/wizard/icons-step/icons-step.html delete mode 100644 catalog-ui/app/scripts/view-models/wizard/icons-step/icons-step.less delete mode 100644 catalog-ui/app/scripts/view-models/wizard/icons-step/icons-step.ts delete mode 100644 catalog-ui/app/scripts/view-models/wizard/properties-step/properties-step.html delete mode 100644 catalog-ui/app/scripts/view-models/wizard/properties-step/properties-step.less delete mode 100644 catalog-ui/app/scripts/view-models/wizard/properties-step/properties-step.ts delete mode 100644 catalog-ui/app/scripts/view-models/wizard/property-form/property-form-view-model-tests.ts delete mode 100644 catalog-ui/app/scripts/view-models/wizard/property-form/property-form-view-model.ts delete mode 100644 catalog-ui/app/scripts/view-models/wizard/property-form/property-form.html delete mode 100644 catalog-ui/app/scripts/view-models/wizard/property-form/property-form.less delete mode 100644 catalog-ui/app/scripts/view-models/wizard/wizard-creation-base.html delete mode 100644 catalog-ui/app/scripts/view-models/wizard/wizard-creation-base.less delete mode 100644 catalog-ui/app/scripts/view-models/wizard/wizard-creation-base.ts delete mode 100644 catalog-ui/app/scripts/view-models/wizard/wizard-state/create-wizard.ts delete mode 100644 catalog-ui/app/scripts/view-models/wizard/wizard-state/edit-wizard.ts delete mode 100644 catalog-ui/app/scripts/view-models/wizard/wizard-state/import-wizard.ts delete mode 100644 catalog-ui/app/scripts/view-models/workspace/tabs/activity-log/activity-log.html delete mode 100644 catalog-ui/app/scripts/view-models/workspace/tabs/activity-log/activity-log.less delete mode 100644 catalog-ui/app/scripts/view-models/workspace/tabs/activity-log/activity-log.ts delete mode 100644 catalog-ui/app/scripts/view-models/workspace/tabs/attributes/attributes-view-model.ts delete mode 100644 catalog-ui/app/scripts/view-models/workspace/tabs/attributes/attributes-view.html delete mode 100644 catalog-ui/app/scripts/view-models/workspace/tabs/attributes/attributes.less delete mode 100644 catalog-ui/app/scripts/view-models/workspace/tabs/composition/composition-view-model.ts delete mode 100644 catalog-ui/app/scripts/view-models/workspace/tabs/composition/composition-view.html delete mode 100644 catalog-ui/app/scripts/view-models/workspace/tabs/composition/composition.less delete mode 100644 catalog-ui/app/scripts/view-models/workspace/tabs/composition/tabs/artifacts/artifacts-view-model.ts delete mode 100644 catalog-ui/app/scripts/view-models/workspace/tabs/composition/tabs/artifacts/artifacts-view.html delete mode 100644 catalog-ui/app/scripts/view-models/workspace/tabs/composition/tabs/artifacts/artifacts.less delete mode 100644 catalog-ui/app/scripts/view-models/workspace/tabs/composition/tabs/details/details-view-model.ts delete mode 100644 catalog-ui/app/scripts/view-models/workspace/tabs/composition/tabs/details/details-view.html delete mode 100644 catalog-ui/app/scripts/view-models/workspace/tabs/composition/tabs/details/details.less delete mode 100644 catalog-ui/app/scripts/view-models/workspace/tabs/composition/tabs/properties-and-attributes/properties-view-model.ts delete mode 100644 catalog-ui/app/scripts/view-models/workspace/tabs/composition/tabs/properties-and-attributes/properties-view.html delete mode 100644 catalog-ui/app/scripts/view-models/workspace/tabs/composition/tabs/properties-and-attributes/properties.less delete mode 100644 catalog-ui/app/scripts/view-models/workspace/tabs/composition/tabs/relations/relations-view-model.ts delete mode 100644 catalog-ui/app/scripts/view-models/workspace/tabs/composition/tabs/relations/relations-view.html delete mode 100644 catalog-ui/app/scripts/view-models/workspace/tabs/composition/tabs/relations/relations.less delete mode 100644 catalog-ui/app/scripts/view-models/workspace/tabs/composition/tabs/structure/structure-view.html delete mode 100644 catalog-ui/app/scripts/view-models/workspace/tabs/composition/tabs/structure/structure-view.ts delete mode 100644 catalog-ui/app/scripts/view-models/workspace/tabs/deployment-artifacts/deployment-artifacts-view-model.ts delete mode 100644 catalog-ui/app/scripts/view-models/workspace/tabs/deployment-artifacts/deployment-artifacts-view.html delete mode 100644 catalog-ui/app/scripts/view-models/workspace/tabs/deployment-artifacts/deployment-artifacts.less delete mode 100644 catalog-ui/app/scripts/view-models/workspace/tabs/deployment/deployment-view-model.ts delete mode 100644 catalog-ui/app/scripts/view-models/workspace/tabs/deployment/deployment-view.html delete mode 100644 catalog-ui/app/scripts/view-models/workspace/tabs/deployment/deployment.less delete mode 100644 catalog-ui/app/scripts/view-models/workspace/tabs/distribution/disribution-status-modal/disribution-status-modal-view-model.ts delete mode 100644 catalog-ui/app/scripts/view-models/workspace/tabs/distribution/disribution-status-modal/disribution-status-modal-view.html delete mode 100644 catalog-ui/app/scripts/view-models/workspace/tabs/distribution/disribution-status-modal/disribution-status-modal.less delete mode 100644 catalog-ui/app/scripts/view-models/workspace/tabs/distribution/distribution-view-model.ts delete mode 100644 catalog-ui/app/scripts/view-models/workspace/tabs/distribution/distribution-view.html delete mode 100644 catalog-ui/app/scripts/view-models/workspace/tabs/distribution/distribution.less delete mode 100644 catalog-ui/app/scripts/view-models/workspace/tabs/general/general-view-model.ts delete mode 100644 catalog-ui/app/scripts/view-models/workspace/tabs/general/general-view.html delete mode 100644 catalog-ui/app/scripts/view-models/workspace/tabs/general/general.less delete mode 100644 catalog-ui/app/scripts/view-models/workspace/tabs/icons/icons-view-model.ts delete mode 100644 catalog-ui/app/scripts/view-models/workspace/tabs/icons/icons-view.html delete mode 100644 catalog-ui/app/scripts/view-models/workspace/tabs/icons/icons.less delete mode 100644 catalog-ui/app/scripts/view-models/workspace/tabs/information-artifacts/information-artifacts-view-model.ts delete mode 100644 catalog-ui/app/scripts/view-models/workspace/tabs/information-artifacts/information-artifacts-view.html delete mode 100644 catalog-ui/app/scripts/view-models/workspace/tabs/information-artifacts/information-artifacts.less delete mode 100644 catalog-ui/app/scripts/view-models/workspace/tabs/inputs/inputs.less delete mode 100644 catalog-ui/app/scripts/view-models/workspace/tabs/inputs/resource-input/resource-inputs-view-model.ts delete mode 100644 catalog-ui/app/scripts/view-models/workspace/tabs/inputs/resource-input/resource-inputs-view.html delete mode 100644 catalog-ui/app/scripts/view-models/workspace/tabs/inputs/resource-input/resource-inputs.less delete mode 100644 catalog-ui/app/scripts/view-models/workspace/tabs/inputs/service-input/service-inputs-view-model.ts delete mode 100644 catalog-ui/app/scripts/view-models/workspace/tabs/inputs/service-input/service-inputs-view.html delete mode 100644 catalog-ui/app/scripts/view-models/workspace/tabs/inputs/service-input/service-inputs.less delete mode 100644 catalog-ui/app/scripts/view-models/workspace/tabs/management-workflow/management-workflow-view-model.ts delete mode 100644 catalog-ui/app/scripts/view-models/workspace/tabs/management-workflow/management-workflow-view.html delete mode 100644 catalog-ui/app/scripts/view-models/workspace/tabs/network-call-flow/network-call-flow-view-model.ts delete mode 100644 catalog-ui/app/scripts/view-models/workspace/tabs/network-call-flow/network-call-flow-view.html delete mode 100644 catalog-ui/app/scripts/view-models/workspace/tabs/product-hierarchy/product-hierarchy-view-model.ts delete mode 100644 catalog-ui/app/scripts/view-models/workspace/tabs/product-hierarchy/product-hierarchy-view.html delete mode 100644 catalog-ui/app/scripts/view-models/workspace/tabs/product-hierarchy/product-hierarchy.less delete mode 100644 catalog-ui/app/scripts/view-models/workspace/tabs/properties/properties-view-model.ts delete mode 100644 catalog-ui/app/scripts/view-models/workspace/tabs/properties/properties-view.html delete mode 100644 catalog-ui/app/scripts/view-models/workspace/tabs/properties/properties.less delete mode 100644 catalog-ui/app/scripts/view-models/workspace/tabs/req-and-capabilities/req-and-capabilities-view-model.ts delete mode 100644 catalog-ui/app/scripts/view-models/workspace/tabs/req-and-capabilities/req-and-capabilities-view.html delete mode 100644 catalog-ui/app/scripts/view-models/workspace/tabs/req-and-capabilities/req-and-capabilities.less delete mode 100644 catalog-ui/app/scripts/view-models/workspace/tabs/tosca-artifacts/tosca-artifacts-view-model.ts delete mode 100644 catalog-ui/app/scripts/view-models/workspace/tabs/tosca-artifacts/tosca-artifacts-view.html delete mode 100644 catalog-ui/app/scripts/view-models/workspace/tabs/tosca-artifacts/tosca-artifacts.less delete mode 100644 catalog-ui/app/scripts/view-models/workspace/workspace-view-model.ts delete mode 100644 catalog-ui/app/scripts/view-models/workspace/workspace-view.html delete mode 100644 catalog-ui/app/scripts/view-models/workspace/workspace.less (limited to 'catalog-ui/app/scripts') diff --git a/catalog-ui/app/scripts/app.ts b/catalog-ui/app/scripts/app.ts deleted file mode 100644 index 513810595b..0000000000 --- a/catalog-ui/app/scripts/app.ts +++ /dev/null @@ -1,936 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -/* - SD&C Web Portal Wireframes – Designer Home Page and Create New Service Flow - */ -//libraries variables to prevent compile errors -declare let jsPDF:any; - -module Sdc { - import User = Sdc.Models.User; - import UserResourceService = Sdc.Services.UserResourceService; - - 'use strict'; - import Resource = Sdc.Models.Components.Resource; - let moduleName:string = 'sdcApp'; - let viewModelsModuleName:string = 'Sdc.ViewModels'; - let directivesModuleName:string = 'Sdc.Directives'; - let servicesModuleName:string = 'Sdc.Services'; - let filtersModuleName:string = 'Sdc.Filters'; - let utilsModuleName: string = 'Sdc.Utils'; - let dependentModules:Array = [ - 'ui.router', - 'ui.bootstrap', - 'ngDragDrop', - 'ui-notification', - 'ngResource', - 'ngSanitize', - 'Sdc.Config', - 'naif.base64', - 'base64', - 'uuid4', - 'checklist-model', - 'angular.filter', - 'pascalprecht.translate', - '720kb.tooltips', - 'restangular', - 'angular-clipboard', - 'angularResizable', - 'infinite-scroll', - viewModelsModuleName, - directivesModuleName, - servicesModuleName, - filtersModuleName, - utilsModuleName - ]; - - let appModule:ng.IModule = angular.module(moduleName, dependentModules); - - appModule.config([ - '$stateProvider', - '$translateProvider', - '$urlRouterProvider', - '$httpProvider', - 'tooltipsConfigProvider', - 'NotificationProvider', - ($stateProvider:any, - $translateProvider:any, - $urlRouterProvider:ng.ui.IUrlRouterProvider, - $httpProvider:ng.IHttpProvider, - tooltipsConfigProvider:any, - NotificationProvider:any):void => { - - NotificationProvider.setOptions({ - delay: 10000, - startTop: 10, - startRight: 10, - closeOnClick: true, - verticalSpacing: 20, - horizontalSpacing: 20, - positionX: 'right', - positionY: 'top' - }); - - let viewModelsHtmlBasePath:string = '/app/scripts/view-models/'; - console.info('appModule.config: ', viewModelsHtmlBasePath); - - $translateProvider.useStaticFilesLoader({ - prefix: 'languages/', - langKey: '', - suffix: '.json?d=' + (new Date()).getTime() - }); - $translateProvider.useSanitizeValueStrategy('escaped'); - $translateProvider.preferredLanguage('en_US_OS'); // For open source changed to en_US_OS - - $httpProvider.interceptors.push('Sdc.Services.HeaderInterceptor'); - $httpProvider.interceptors.push('Sdc.Services.HttpErrorInterceptor'); - - $urlRouterProvider.otherwise('welcome'); - - $stateProvider.state( - 'dashboard', { - url: '/dashboard?show&folder', - templateProvider: ['$templateCache', ($templateCache):string => { - return $templateCache.get(viewModelsHtmlBasePath + 'dashboard/dashboard-view.html'); - }], - controller: viewModelsModuleName + '.DashboardViewModel', - - } - ); - - $stateProvider.state( - 'welcome', { - url: '/welcome', - templateProvider: ['$templateCache', ($templateCache):string => { - return $templateCache.get(viewModelsHtmlBasePath + 'welcome/welcome-view.html'); - }], - controller: viewModelsModuleName + '.WelcomeViewModel' - } - ); - - $stateProvider.state( - 'dashboard.cover', { - url: '/cover', - templateProvider: ['$templateCache', ($templateCache):string => { - return $templateCache.get(viewModelsHtmlBasePath + 'dashboard/cover/dashboard-cover-view.html'); - }], - controller: viewModelsModuleName + '.DashboardCoverViewModel' - } - ); - - $stateProvider.state( - 'dashboard.tutorial-end', { - url: '/tutorial-end', - templateProvider: ['$templateCache', ($templateCache):string => { - return $templateCache.get(viewModelsHtmlBasePath + 'tutorial-end/tutorial-end.html'); - }], - controller: viewModelsModuleName + '.TutorialEndViewModel' - } - ); - - $stateProvider.state( - 'additionalInformation', { - url: '/additionalInformation', - templateProvider: ['$templateCache', ($templateCache):string => { - return $templateCache.get(viewModelsHtmlBasePath + 'additional-information/additional-information-view.html'); - }], - controller: viewModelsModuleName + '.AdditionalInformationViewModel' - } - ); - - let componentsParam:Array = ['$stateParams', 'Sdc.Services.EntityService','Sdc.Services.CacheService' , ($stateParams:any, EntityService:Sdc.Services.EntityService, cacheService:Services.CacheService) => { - if(cacheService.get('breadcrumbsComponents')){ - return cacheService.get('breadcrumbsComponents'); - } else { - return EntityService.getCatalog(); //getAllComponents() doesnt return components from catalog - } - }]; - - - $stateProvider.state ( - 'workspace', { - url: '/workspace/:id/:type/', - params: {'importedFile':null,'componentCsar':null,'resourceType': null, 'disableButtons': null}, //'vspComponent': null, - templateProvider: ['$templateCache', ($templateCache:ng.ITemplateCacheService):string => { - return $templateCache.get(viewModelsHtmlBasePath + 'workspace/workspace-view.html'); - }], - controller: viewModelsModuleName + '.WorkspaceViewModel', - resolve: { - injectComponent: ['$stateParams', 'ComponentFactory' , function ($stateParams, ComponentFactory) { - /* - if($stateParams.vspComponent){ - return $stateParams.vspComponent; - } else - */ - if($stateParams.id){ - return ComponentFactory.getComponentFromServer($stateParams.type.toUpperCase(), $stateParams.id); - } else if ($stateParams.componentCsar && $stateParams.componentCsar.csarUUID) { - return $stateParams.componentCsar; - } else { - let emptyComponent = ComponentFactory.createEmptyComponent($stateParams.type.toUpperCase()); - if (emptyComponent.isResource() && $stateParams.resourceType){ - // Set the resource type - (emptyComponent).resourceType = $stateParams.resourceType; - } - if($stateParams.importedFile){ - (emptyComponent).importedFile = $stateParams.importedFile; - } - return emptyComponent; - } - }], - components: componentsParam - } - } - ); - - $stateProvider.state( - Utils.Constants.States.WORKSPACE_GENERAL, { - url: 'general', - parent: 'workspace', - controller: viewModelsModuleName + '.GeneralViewModel', - templateProvider: ['$templateCache', ($templateCache:ng.ITemplateCacheService):string => { - return $templateCache.get(viewModelsHtmlBasePath + 'workspace/tabs/general/general-view.html'); - }], - data: {unsavedChanges:false,bodyClass:'general'} - } - ); - - $stateProvider.state( - Utils.Constants.States.WORKSPACE_ICONS, { - url: 'icons', - parent: 'workspace', - controller: viewModelsModuleName + '.IconsViewModel', - templateProvider: ['$templateCache', ($templateCache:ng.ITemplateCacheService):string => { - - return $templateCache.get(viewModelsHtmlBasePath + 'workspace/tabs/icons/icons-view.html'); - }], - data: {unsavedChanges:false,bodyClass:'icons'} - - } - ); - - $stateProvider.state( - Utils.Constants.States.WORKSPACE_ACTIVITY_LOG, { - url: 'activity_log', - parent: 'workspace', - controller: viewModelsModuleName + '.ActivityLogViewModel', - templateProvider: ['$templateCache', ($templateCache:ng.ITemplateCacheService):string => { - return $templateCache.get(viewModelsHtmlBasePath + 'workspace/tabs/activity-log/activity-log.html'); - }], - data: {unsavedChanges:false} - } - ); - - $stateProvider.state( - Utils.Constants.States.WORKSPACE_DEPLOYMENT_ARTIFACTS, { - url: 'deployment_artifacts', - parent: 'workspace', - controller: viewModelsModuleName + '.DeploymentArtifactsViewModel', - templateProvider: ['$templateCache', ($templateCache:ng.ITemplateCacheService):string => { - - return $templateCache.get(viewModelsHtmlBasePath + 'workspace/tabs/deployment-artifacts/deployment-artifacts-view.html'); - }], - data:{ - bodyClass:'deployment_artifacts' - } - } - ); - - $stateProvider.state( - Utils.Constants.States.WORKSPACE_HIERARCHY, { - url: 'hierarchy', - parent: 'workspace', - controller: viewModelsModuleName + '.ProductHierarchyViewModel', - templateProvider: ['$templateCache', ($templateCache:ng.ITemplateCacheService):string => { - - return $templateCache.get(viewModelsHtmlBasePath + 'workspace/tabs/product-hierarchy/product-hierarchy-view.html'); - }] - - } - ); - - $stateProvider.state( - Utils.Constants.States.WORKSPACE_INFORMATION_ARTIFACTS, { - url: 'information_artifacts', - parent: 'workspace', - controller: viewModelsModuleName + '.InformationArtifactsViewModel', - templateProvider: ['$templateCache', ($templateCache:ng.ITemplateCacheService):string => { - - return $templateCache.get(viewModelsHtmlBasePath + 'workspace/tabs/information-artifacts/information-artifacts-view.html'); - }], - data:{ - bodyClass:'information_artifacts' - } - } - ); - - $stateProvider.state( - Utils.Constants.States.WORKSPACE_TOSCA_ARTIFACTS, { - url: 'tosca_artifacts', - parent: 'workspace', - controller: viewModelsModuleName + '.ToscaArtifactsViewModel', - templateProvider: ['$templateCache', ($templateCache:ng.ITemplateCacheService):string => { - - return $templateCache.get(viewModelsHtmlBasePath + 'workspace/tabs/tosca-artifacts/tosca-artifacts-view.html'); - }], - data:{ - bodyClass:'tosca_artifacts' - } - } - ); - - $stateProvider.state( - Utils.Constants.States.WORKSPACE_PROPERTIES, { - url: 'properties', - parent: 'workspace', - controller: viewModelsModuleName + '.PropertiesViewModel', - templateProvider: ['$templateCache', ($templateCache:ng.ITemplateCacheService):string => { - return $templateCache.get(viewModelsHtmlBasePath + 'workspace/tabs/properties/properties-view.html'); - }], - data:{ - bodyClass:'properties' - } - } - ); - - $stateProvider.state( - Utils.Constants.States.WORKSPACE_SERVICE_INPUTS, { - url: 'service_inputs', - parent: 'workspace', - controller: viewModelsModuleName + '.ServiceInputsViewModel', - templateProvider: ['$templateCache', ($templateCache:ng.ITemplateCacheService):string => { - return $templateCache.get(viewModelsHtmlBasePath + 'workspace/tabs/inputs/service-input/service-inputs-view.html'); - }], - data:{ - bodyClass:'workspace-inputs' - } - } - ); - - $stateProvider.state( - Utils.Constants.States.WORKSPACE_RESOURCE_INPUTS, { - url: 'resource_inputs', - parent: 'workspace', - controller: viewModelsModuleName + '.ResourceInputsViewModel', - templateProvider: ['$templateCache', ($templateCache:ng.ITemplateCacheService):string => { - return $templateCache.get(viewModelsHtmlBasePath + 'workspace/tabs/inputs/resource-input/resource-inputs-view.html'); - }], - data:{ - bodyClass:'workspace-inputs' - } - } - ); - - $stateProvider.state( - Utils.Constants.States.WORKSPACE_ATTRIBUTES, { - url: 'attributes', - parent: 'workspace', - controller: viewModelsModuleName + '.AttributesViewModel', - templateProvider: ['$templateCache', ($templateCache:ng.ITemplateCacheService):string => { - return $templateCache.get(viewModelsHtmlBasePath + 'workspace/tabs/attributes/attributes-view.html'); - }], - data:{ - bodyClass:'attributes' - } - } - ); - - $stateProvider.state( - Utils.Constants.States.WORKSPACE_REQUIREMENTS_AND_CAPABILITIES, { - url: 'req_and_capabilities', - parent: 'workspace', - controller: viewModelsModuleName + '.ReqAndCapabilitiesViewModel', - templateProvider: ['$templateCache', ($templateCache:ng.ITemplateCacheService):string => { - return $templateCache.get(viewModelsHtmlBasePath + 'workspace/tabs/req-and-capabilities/req-and-capabilities-view.html'); - }], - data:{ - bodyClass:'attributes' - } - } - ); - - - $stateProvider.state( - Utils.Constants.States.WORKSPACE_MANAGEMENT_WORKFLOW, { - parent: 'workspace', - url: 'management_workflow', - templateProvider: ['$templateCache', ($templateCache):string => { - return $templateCache.get(viewModelsHtmlBasePath + 'workspace/tabs/management-workflow/management-workflow-view.html'); - }], - controller: viewModelsModuleName + '.ManagementWorkflowViewModel' - } - ); - - $stateProvider.state( - Utils.Constants.States.WORKSPACE_NETWORK_CALL_FLOW, { - parent: 'workspace', - url: 'network_call_flow', - templateProvider: ['$templateCache', ($templateCache):string => { - return $templateCache.get(viewModelsHtmlBasePath + 'workspace/tabs/network-call-flow/network-call-flow-view.html'); - }], - controller: viewModelsModuleName + '.NetworkCallFlowViewModel' - } - ); - - $stateProvider.state( - Utils.Constants.States.WORKSPACE_DISTRIBUTION, { - parent: 'workspace', - url: 'distribution', - templateProvider: ['$templateCache', ($templateCache):string => { - return $templateCache.get(viewModelsHtmlBasePath + 'workspace/tabs/distribution/distribution-view.html'); - }], - controller: viewModelsModuleName + '.DistributionViewModel' - } - ); - - $stateProvider.state( - Utils.Constants.States.WORKSPACE_COMPOSITION, { - url: 'composition/', - parent: 'workspace', - controller: viewModelsModuleName + '.CompositionViewModel', - templateProvider: ['$templateCache', ($templateCache:ng.ITemplateCacheService):string => { - - return $templateCache.get(viewModelsHtmlBasePath + 'workspace/tabs/composition/composition-view.html'); - }], - data:{ - bodyClass:'composition' - } - } - ); - - $stateProvider.state( - Utils.Constants.States.WORKSPACE_DEPLOYMENT, { - url: 'deployment/', - parent: 'workspace', - controller: viewModelsModuleName + '.DeploymentViewModel', - templateProvider: ['$templateCache', ($templateCache:ng.ITemplateCacheService):string => { - - return $templateCache.get(viewModelsHtmlBasePath + 'workspace/tabs/deployment/deployment-view.html'); - }], - data:{ - bodyClass:'composition' - } - } - ); - - $stateProvider.state( - 'workspace.composition.details', { - url: 'details', - parent: 'workspace.composition', - templateProvider: ['$templateCache', ($templateCache):string => { - return $templateCache.get(viewModelsHtmlBasePath + 'workspace/tabs/composition/tabs/details/details-view.html'); - }], - controller: viewModelsModuleName + '.DetailsViewModel' - } - ); - - $stateProvider.state( - 'workspace.composition.properties', { - url: 'properties', - parent: 'workspace.composition', - templateProvider: ['$templateCache', ($templateCache):string => { - return $templateCache.get(viewModelsHtmlBasePath + 'workspace/tabs/composition/tabs/properties-and-attributes/properties-view.html'); - }], - controller: viewModelsModuleName + '.ResourcePropertiesViewModel' - } - ); - - $stateProvider.state( - 'workspace.composition.artifacts', { - url: 'artifacts', - parent: 'workspace.composition', - templateProvider: ['$templateCache', ($templateCache):string => { - return $templateCache.get(viewModelsHtmlBasePath + 'workspace/tabs/composition/tabs/artifacts/artifacts-view.html'); - }], - controller: viewModelsModuleName + '.ResourceArtifactsViewModel' - } - ); - - $stateProvider.state( - 'workspace.composition.relations', { - url: 'relations', - parent: 'workspace.composition', - templateProvider: ['$templateCache', ($templateCache):string => { - return $templateCache.get(viewModelsHtmlBasePath + 'workspace/tabs/composition/tabs/relations/relations-view.html'); - }], - controller: viewModelsModuleName + '.RelationsViewModel' - } - ); - - $stateProvider.state( - 'workspace.composition.relationships', { - url: 'relationships', - parent: 'workspace.composition', - templateProvider: ['$templateCache', ($templateCache):string => { - return $templateCache.get(viewModelsHtmlBasePath + 'resource-relationships/resource-relationships-view.html'); - }], - controller: viewModelsModuleName + '.ResourceRelationshipsViewModel' - } - ); - - $stateProvider.state( - 'workspace.composition.structure', { - url: 'structure', - parent: 'workspace.composition', - templateProvider: ['$templateCache', ($templateCache):string => { - return $templateCache.get(viewModelsHtmlBasePath + 'workspace/tabs/composition/tabs/structure/structure-view.html'); - }], - controller: viewModelsModuleName + '.StructureViewModel' - } - ); - $stateProvider.state( - 'workspace.composition.lifecycle', { - url: 'lifecycle', - parent: 'workspace.composition', - templateProvider: ['$templateCache', ($templateCache):string => { - return $templateCache.get(viewModelsHtmlBasePath + 'workspace/tabs/composition/tabs/artifacts/artifacts-view.html'); - }], - controller: viewModelsModuleName + '.ResourceArtifactsViewModel' - } - ); - - $stateProvider.state( - 'workspace.composition.api', { - url: 'api', - parent: 'workspace.composition', - templateProvider: ['$templateCache', ($templateCache):string => { - return $templateCache.get(viewModelsHtmlBasePath + 'workspace/tabs/composition/tabs/artifacts/artifacts-view.html'); - }], - controller: viewModelsModuleName + '.ResourceArtifactsViewModel' - } - ); - $stateProvider.state( - 'workspace.composition.deployment', { - url: 'deployment', - parent: 'workspace.composition', - templateProvider: ['$templateCache', ($templateCache):string => { - return $templateCache.get(viewModelsHtmlBasePath + 'workspace/tabs/composition/tabs/artifacts/artifacts-view.html'); - }], - controller: viewModelsModuleName + '.ResourceArtifactsViewModel' - } - ); - - $stateProvider.state( - 'edit-resource', { - url: '/edit-resource/:id', - templateProvider: ['$templateCache', ($templateCache):string => { - return $templateCache.get(viewModelsHtmlBasePath + 'entity-handler/resource-form/resource-form-view.html'); - }], - controller: viewModelsModuleName + '.ResourceFormViewModel' - } - ); - - $stateProvider.state( - 'edit-product', { - url: '/edit-product/:id', - templateProvider: ['$templateCache', ($templateCache):string => { - return $templateCache.get(viewModelsHtmlBasePath + 'entity-handler/product-form/product-form-view.html'); - }], - controller: viewModelsModuleName + '.ProductFormViewModel' - } - ); - - $stateProvider.state( - 'adminDashboard', { - url: '/adminDashboard', - templateProvider: ['$templateCache', ($templateCache):string => { - return $templateCache.get(viewModelsHtmlBasePath + 'admin-dashboard/admin-dashboard-view.html'); - }], - controller: viewModelsModuleName + '.AdminDashboardViewModel', - permissions: ['ADMIN'] - } - ); - - $stateProvider.state( - 'onboardVendor', { - url: '/onboardVendor', - templateProvider: ['$templateCache', ($templateCache):string => { - return $templateCache.get(viewModelsHtmlBasePath + 'onboard-vendor/onboard-vendor-view.html'); - }], - controller: viewModelsModuleName + '.OnboardVendorViewModel'//, - //resolve: { - // auth: ["$q", "Sdc.Services.UserResourceService", function ($q:any, userResourceService:Sdc.Services.IUserResourceClass) { - // let userInfo:Sdc.Services.IUserResource = userResourceService.getLoggedinUser(); - // if (userInfo) { - // return $q.when(userInfo); - // } else { - // return $q.reject({authenticated: false}); - // } - // }] - //} - } - ); - - $stateProvider.state( - 'catalog', { - url: '/catalog', - templateProvider: ['$templateCache', ($templateCache):string => { - return $templateCache.get(viewModelsHtmlBasePath + 'catalog/catalog-view.html'); - }], - controller: viewModelsModuleName + '.CatalogViewModel', - resolve: { - auth: ["$q", "Sdc.Services.UserResourceService", function ($q:any, userResourceService:Sdc.Services.IUserResourceClass) { - let userInfo:Sdc.Services.IUserResource = userResourceService.getLoggedinUser(); - if (userInfo) { - return $q.when(userInfo); - } else { - return $q.reject({authenticated: false}); - } - }] - } - } - ); - - $stateProvider.state( - 'distribution', { - url: '/distribution', - templateProvider: ['$templateCache', ($templateCache):string => { - return $templateCache.get(viewModelsHtmlBasePath + 'distribution/distribution-view.html'); - }], - controller: viewModelsModuleName + '.DistributionViewModel' - } - ); - - $stateProvider.state( - 'support', { - url: '/support', - templateProvider: ['$templateCache', ($templateCache):string => { - return $templateCache.get(viewModelsHtmlBasePath + 'support/support-view.html'); - }], - controller: viewModelsModuleName + '.SupportViewModel' - } - ); - - $stateProvider.state( - 'error-403', { - url: '/error-403', - templateProvider: ['$templateCache', ($templateCache):string => { - return $templateCache.get(viewModelsHtmlBasePath + 'modals/error-modal/error-403-view.html'); - }], - controller: viewModelsModuleName + '.ErrorViewModel' - } - ); - - tooltipsConfigProvider.options({ - - side:'bottom', - delay: '600', - class: 'tooltip-custom', - lazy:0, - try:0 - - }); - - } - ]) - .run(['AngularJSBridge', (AngularJSBridge)=>{ - - }]); - appModule.value('ValidationPattern', /^[\s\w\&_.:-]{1,1024}$/); - appModule.value('PropertyNameValidationPattern', /^[a-zA-Z0-9_:-]{1,50}$/);// DE210977 - appModule.value('TagValidationPattern', /^[\s\w_.-]{1,50}$/); - // appModule.value('VendorValidationPattern', /^[^?\\<>:"/|*]{1,25}$/); - appModule.value('VendorValidationPattern', /^[\x20-\x21\x23-\x29\x2B-\x2E\x30-\x39\x3B\x3D\x40-\x5B\x5D-\x7B\x7D-\xFF]{1,25}$/); - appModule.value('ContactIdValidationPattern', /^[\s\w-]{1,50}$/); - appModule.value('UserIdValidationPattern',/^[\s\w-]{1,50}$/); - appModule.value('ProjectCodeValidationPattern', /^[\s\w-]{1,50}$/); - appModule.value('LabelValidationPattern', /^[\sa-zA-Z0-9+-]{1,25}$/); - appModule.value('UrlValidationPattern', /^(https?|ftp):\/\/(((([A-Za-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([A-Za-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([A-Za-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([A-Za-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([A-Za-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([A-Za-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([A-Za-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([A-Za-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([A-Za-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([A-Za-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([A-Za-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([A-Za-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/); - appModule.value('IntegerValidationPattern', /^(([-+]?\d+)|([-+]?0x[0-9a-fA-F]+))$/); - appModule.value('IntegerNoLeadingZeroValidationPattern', /^(0|[-+]?[1-9][0-9]*|[-+]?0x[0-9a-fA-F]+|[-+]?0o[0-7]+)$/); - appModule.value('FloatValidationPattern', /^[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?f?$/); - appModule.value('NumberValidationPattern', /^((([-+]?\d+)|([-+]?0x[0-9a-fA-F]+))|([-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?))$/); - appModule.value('KeyValidationPattern', /^[\s\w-]{1,50}$/); - appModule.value('CommentValidationPattern', /^[\u0000-\u00BF]*$/); - appModule.value('BooleanValidationPattern', /^([Tt][Rr][Uu][Ee]|[Ff][Aa][Ll][Ss][Ee])$/); - - - appModule.run([ - '$http', - 'Sdc.Services.CacheService', - 'Sdc.Services.CookieService', - 'Sdc.Services.ConfigurationUiService', - 'Sdc.Services.UserResourceService', - 'Sdc.Services.CategoryResourceService', - 'Sdc.Services.SdcVersionService', - '$state', - '$rootScope', - '$location', - 'sdcConfig', - 'sdcMenu', - 'ModalsHandler', - 'Sdc.Services.EcompHeaderService', - 'LeftPaletteLoaderService', - ($http:ng.IHttpService, - cacheService:Services.CacheService, - cookieService:Services.CookieService, - ConfigurationUi:Services.ConfigurationUiService, - UserResourceClass:Services.IUserResourceClass, - categoryResourceService:Sdc.Services.ICategoryResourceClass, - sdcVersionService:Services.SdcVersionService, - $state:ng.ui.IStateService, - $rootScope:ng.IRootScopeService, - $location: ng.ILocationService, - sdcConfig: Models.IAppConfigurtaion, - sdcMenu: Models.IAppMenu, - ModalsHandler:Utils.ModalsHandler, - ecompHeaderService:Sdc.Services.EcompHeaderService, - LeftPaletteLoaderService:Services.Components.LeftPaletteLoaderService - ):void => { - - //handle cache data - version - let initSdcVersion:Function = ():void => { - - let onFailed = (response) => { - console.info('onFailed initSdcVersion', response); - cacheService.set('version', 'N/A'); - }; - - let onSuccess = (version:any) => { - console.log("Version returned from server: " + version); - let tmpVerArray = version.version.split("."); - let ver = tmpVerArray[0] + "." + tmpVerArray[1] + "." + tmpVerArray[2]; - cacheService.set('version', ver); - }; - - sdcVersionService.getVersion().then(onSuccess, onFailed); - - }; - - let initEcompMenu:Function = (user):void => { - ecompHeaderService.getMenuItems(user.userId).then((data)=> { - $rootScope['menuItems'] = data; - }); - }; - - let initConfigurationUi:Function = ():void => { - ConfigurationUi - .getConfigurationUi() - .then((configurationUi:any) => { - cacheService.set('UIConfiguration', configurationUi); - }); - }; - - let initCategories:Function = ():void => { - let onError = ():void => { - console.log('Failed to init categories'); - }; - - categoryResourceService.getAllCategories({types: 'services'}, (categories:Array):void => { - cacheService.set('serviceCategories', categories); - }, onError); - - categoryResourceService.getAllCategories({types: 'resources'}, (categories:Array):void => { - cacheService.set('resourceCategories', categories); - }, onError); - - categoryResourceService.getAllCategories({types: 'products'}, (categories:Array):void => { - cacheService.set('productCategories', categories); - }, onError); - }; - - let initBaseUrl:Function = ():void => { - let env:string = sdcConfig.environment; - let baseUrl:string = $location.absUrl(); - console.log("baseUrl="+baseUrl); - - if(baseUrl) { - sdcConfig.api.baseUrl = baseUrl; - - if(env==='prod'){ - //let tempUrl = $location.absUrl().split('/sdc1/'); - var mainUrl = location.protocol+'//'+location.hostname+(location.port ? ':'+location.port: ''); - console.log("mainUrl="+mainUrl); - sdcConfig.api.root = mainUrl + sdcConfig.api.root; - console.log("sdcConfig.api.root="+sdcConfig.api.root); - } - } - }; - - let initLeftPalette:Function = ():void => { - LeftPaletteLoaderService.loadLeftPanel(); - }; - - //handle http config - $http.defaults.withCredentials = true; - $http.defaults.headers.common[cookieService.getUserIdSuffix()] = cookieService.getUserId(); - - initBaseUrl(); - initSdcVersion(); - initConfigurationUi(); - Utils.Constants.IMAGE_PATH = sdcConfig.imagesPath; - initLeftPalette(); - - //handle stateChangeStart - let internalDeregisterStateChangeStartWatcher:Function = ():void => { - if (deregisterStateChangeStartWatcher) { - deregisterStateChangeStartWatcher(); - deregisterStateChangeStartWatcher = null; - } - }; - - let removeLoader:Function = ():void => { - $(".sdc-loading-page .main-loader").addClass("animated fadeOut"); - $(".sdc-loading-page .caption1").addClass("animated fadeOut"); - $(".sdc-loading-page .caption2").addClass("animated fadeOut"); - window.setTimeout(():void=>{ - $(".sdc-loading-page .main-loader").css("display", "none"); - $(".sdc-loading-page .caption1").css("display", "none"); - $(".sdc-loading-page .caption2").css("display", "none"); - $(".sdc-loading-page").addClass("animated fadeOut"); - },1000); - }; - - let onNavigateOut:Function = (toState, toParams):void => { - let onOk = ():void => { - $state.current.data.unsavedChanges = false; - $state.go(toState.name, toParams); - }; - - let data = sdcMenu.alertMessages.exitWithoutSaving; - //open notify to user if changes are not saved - ModalsHandler.openAlertModal(data.title, data.message).then(onOk); - }; - - let onStateChangeStart:Function = (event, toState, toParams, fromState, fromParams):void => { - console.info((new Date()).getTime()); - console.info('$stateChangeStart', toState.name); - //set body class - $rootScope['bodyClass'] = 'default-class'; - if(toState.data && toState.data.bodyClass){ - $rootScope['bodyClass'] = toState.data.bodyClass; - } - - // Workaround in case we are entering other state then workspace (user move to catalog) - // remove the changeComponentCsarVersion, user should open again the VSP list and select one for update. - if (toState.name.indexOf('workspace') === -1) { - if (cacheService.contains(Utils.Constants.CHANGE_COMPONENT_CSAR_VERSION_FLAG)){ - cacheService.remove(Utils.Constants.CHANGE_COMPONENT_CSAR_VERSION_FLAG); - } - } - - //saving last state to params , for breadcrumbs - if (['dashboard', 'catalog', 'onboardVendor'].indexOf(fromState.name) > -1) { - toParams.previousState = fromState.name; - } else { - toParams.previousState = fromParams.previousState; - } - - if (toState.name !== 'error-403' && !UserResourceClass.getLoggedinUser()) { - internalDeregisterStateChangeStartWatcher(); - event.preventDefault(); - - UserResourceClass.authorize().$promise.then((user:Services.IUserResource) => { - if(!doesUserHasAccess(toState, user)){ - $state.go('error-403'); - console.info('User has no permissions'); - registerStateChangeStartWatcher(); - return; - } - UserResourceClass.setLoggedinUser(user); - cacheService.set('user', user); - initCategories(); - // initEcompMenu(user); - setTimeout(function () { - - removeLoader(); - - // initCategories(); - if(UserResourceClass.getLoggedinUser().role === 'ADMIN'){ - // toState.name = "adminDashboard"; - $state.go("adminDashboard", toParams); - registerStateChangeStartWatcher(); - return; - } - - // After user authorized init categories - window.setTimeout(():void=>{ - //if ($state.current.name==='' || $state.current.name==='preloading') { - if ($state.current.name === "welcome" && sdcConfig.openSource) { - event.preventDefault(); - $state.go("dashboard"); - registerStateChangeStartWatcher(); - } - else if ($state.current.name==='') { - $state.go(toState.name, toParams); - } - - console.log("------$state.current.name=" + $state.current.name); - console.info('-----registerStateChangeStartWatcher authorize $stateChangeStart'); - registerStateChangeStartWatcher(); - - },1000); - - }, 0); - - }, () => { - $state.go('error-403'); - - console.info('registerStateChangeStartWatcher error-403 $stateChangeStart'); - registerStateChangeStartWatcher(); - }); - } - else if(UserResourceClass.getLoggedinUser()){ - internalDeregisterStateChangeStartWatcher(); - if(!doesUserHasAccess(toState, UserResourceClass.getLoggedinUser())){ - event.preventDefault(); - $state.go('error-403'); - console.info('User has no permissions'); - } - if(toState.name === "welcome") { - $state.go("dashboard"); - } - registerStateChangeStartWatcher(); - //if form is dirty and not save - notify to user - if(fromState.data && fromState.data.unsavedChanges && fromParams.id != toParams.id){ - event.preventDefault(); - onNavigateOut(toState, toParams); - } - } - - }; - - let doesUserHasAccess:Function = (toState, user):boolean =>{ - - let isUserHasAccess = true; - if(toState.permissions && toState.permissions.length > 0) { - isUserHasAccess = _.includes(toState.permissions, user.role); - } - return isUserHasAccess; - }; - let deregisterStateChangeStartWatcher:Function; - - let registerStateChangeStartWatcher:Function = ():void => { - internalDeregisterStateChangeStartWatcher(); - console.info('registerStateChangeStartWatcher $stateChangeStart'); - deregisterStateChangeStartWatcher = $rootScope.$on('$stateChangeStart', (event, toState, toParams, fromState, fromParams):void => { - onStateChangeStart(event, toState, toParams, fromState, fromParams); - }); - }; - - registerStateChangeStartWatcher(); - - }]); - - - -} - diff --git a/catalog-ui/app/scripts/directives/clicked-outside/clicked-outside-directive.ts b/catalog-ui/app/scripts/directives/clicked-outside/clicked-outside-directive.ts deleted file mode 100644 index 1b0af4ef99..0000000000 --- a/catalog-ui/app/scripts/directives/clicked-outside/clicked-outside-directive.ts +++ /dev/null @@ -1,131 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Directives { - - class ClickedOutsideModel{ - - private clickedOutsideContainerSelector: string; - private onClickedOutsideGetter: Function; - private clickedOutsideEnableGetter: Function; - - constructor(clickedOutsideData: any) { - this.clickedOutsideContainerSelector = clickedOutsideData.clickedOutsideContainerSelector; - this.onClickedOutsideGetter = clickedOutsideData.onClickedOutsideGetter; - this.clickedOutsideEnableGetter = clickedOutsideData.clickedOutsideEnableGetter; - } - - public getClickedOutsideContainerSelector = (): string => { - return this.clickedOutsideContainerSelector; - } - - public getOnClickedOutsideGetter = (): Function => { - return this.onClickedOutsideGetter; - } - - public getClickedOutsideEnableGetter = (): Function => { - return this.clickedOutsideEnableGetter; - } - } - - export interface IClickedOutsideDirectiveScope extends ng.IScope{} - - export class ClickedOutsideDirective implements ng.IDirective { - - constructor(private $document: JQuery, private $parse: ng.IParseService) {} - - restrict = 'A'; - - link = (scope:IClickedOutsideDirectiveScope, element: JQuery, attrs) => { - - let container: HTMLElement; - let attrsAfterEval = scope.$eval(attrs.clickedOutside); - attrsAfterEval.onClickedOutsideGetter = this.$parse(attrsAfterEval.onClickedOutside); - attrsAfterEval.clickedOutsideEnableGetter = this.$parse(attrsAfterEval.clickedOutsideEnable); - - let clickedOutsideModel: ClickedOutsideModel = new ClickedOutsideModel(attrsAfterEval); - - - let getContainer: Function = ():HTMLElement => { - if(!container){ - let clickedOutsideContainerSelector: string = clickedOutsideModel.getClickedOutsideContainerSelector(); - if(!angular.isUndefined(clickedOutsideContainerSelector) && clickedOutsideContainerSelector !== ''){ - container = element.parents(clickedOutsideContainerSelector+':first')[0]; - if(!container){ - container = element[0]; - } - }else{ - container = element[0]; - } - } - return container; - }; - - - let onClickedOutside = (event: JQueryEventObject) => { - let containerDomElement: HTMLElement = getContainer(); - let targetDomElementJq: JQuery = angular.element(event.target); - if(targetDomElementJq.hasClass('tooltip') || targetDomElementJq.parents('.tooltip:first').length){ - return; - } - let targetDomElement: HTMLElement = targetDomElementJq[0]; - if (!containerDomElement.contains(targetDomElement)){ - scope.$apply(() => { - let onClickedOutsideGetter:Function = clickedOutsideModel.getOnClickedOutsideGetter(); - onClickedOutsideGetter(scope); - }); - } - }; - - let attachDomEvents: Function = () => { - this.$document.on('mousedown', onClickedOutside); - }; - - let detachDomEvents: Function = () => { - this.$document.off('mousedown', onClickedOutside); - }; - - // - scope.$on('$destroy', () => { - detachDomEvents(); - }); - - - scope.$watch(() => { - let clickedOutsideEnableGetter: Function = clickedOutsideModel.getClickedOutsideEnableGetter(); - return clickedOutsideEnableGetter(scope); - }, (newValue: boolean) => { - if(newValue){ - attachDomEvents(); - return; - } - detachDomEvents(); - }); - - - } - - public static factory = ($document: JQuery, $parse: ng.IParseService) => { - return new ClickedOutsideDirective($document, $parse); - } - } - - ClickedOutsideDirective.factory.$inject = ['$document', '$parse']; -} diff --git a/catalog-ui/app/scripts/directives/custom-validation/custom-validation.ts b/catalog-ui/app/scripts/directives/custom-validation/custom-validation.ts deleted file mode 100644 index e2f831ed53..0000000000 --- a/catalog-ui/app/scripts/directives/custom-validation/custom-validation.ts +++ /dev/null @@ -1,55 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Directives { - 'use strict'; - - - export interface ICustomValidationScope extends ng.IScope { - validationFunc: Function; - } - - export class CustomValidationDirective implements ng.IDirective { - - constructor() {} - - require = 'ngModel'; - restrict = 'A'; - - scope = { - validationFunc: '=' - }; - - link = (scope:ICustomValidationScope, elem, attrs, ngModel) => { - - ngModel.$validators.customValidation = (modelValue, viewValue) :boolean => { - return scope.validationFunc(viewValue); - }; - - }; - - public static factory = ()=> { - return new CustomValidationDirective(); - }; - - } - - CustomValidationDirective.factory.$inject = []; -} diff --git a/catalog-ui/app/scripts/directives/download-artifact/download-artifact.ts b/catalog-ui/app/scripts/directives/download-artifact/download-artifact.ts deleted file mode 100644 index 49bf14618c..0000000000 --- a/catalog-ui/app/scripts/directives/download-artifact/download-artifact.ts +++ /dev/null @@ -1,141 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Directives { - 'use strict'; - - export class DOWNLOAD_CSS_CLASSES { - static DOWNLOAD_ICON = "table-download-btn tosca"; - static LOADER_ICON = "tlv-loader small loader"; - } - - export interface IDownloadArtifactScope extends ng.IScope { - $window:any; - artifact: Models.ArtifactModel; - component: Models.Components.Component; - instance:boolean; - download: Function; - showLoader:boolean; - updateDownloadIcon:Function; - } - - export class DownloadArtifactDirective implements ng.IDirective { - - constructor(private $window:any,private cacheService:Services.CacheService, private EventListenerService:Services.EventListenerService, private fileUtils:Sdc.Utils.FileUtils) {} - - scope = { - artifact: '=', - component: '=', - instance:'=', - showLoader:'=' - }; - restrict = 'EA'; - - link = (scope:IDownloadArtifactScope, element:any) => { - scope.$window = this.$window; - - element.on("click", function() { - scope.download(scope.artifact); - }); - - - let initDownloadLoader = ()=>{ - //if the artifact is in a middle of download progress register form callBack & change icon from download to loader - if(scope.showLoader && this.cacheService.get(scope.artifact.uniqueId)){ - this.EventListenerService.registerObserverCallback(Utils.Constants.EVENTS.DOWNLOAD_ARTIFACT_FINISH_EVENT + scope.artifact.uniqueId, scope.updateDownloadIcon); - window.setTimeout(():void => { - if(this.cacheService.get(scope.artifact.uniqueId)){ - element[0].className = DOWNLOAD_CSS_CLASSES.LOADER_ICON; - } - },1000); - - } - }; - - let setDownloadedFileLoader = ()=> { - if(scope.showLoader){ - //set in cache service thet the artifact is in download progress - this.cacheService.set(scope.artifact.uniqueId,true); - initDownloadLoader(); - } - }; - - let removeDownloadedFileLoader = ()=> { - if (scope.showLoader) { - this.cacheService.set(scope.artifact.uniqueId, false); - this.EventListenerService.notifyObservers(Utils.Constants.EVENTS.DOWNLOAD_ARTIFACT_FINISH_EVENT + scope.artifact.uniqueId); - } - }; - - - //replace the loader to download icon - scope.updateDownloadIcon = () =>{ - element[0].className = DOWNLOAD_CSS_CLASSES.DOWNLOAD_ICON; - }; - - - initDownloadLoader(); - - scope.download = (artifact:Models.ArtifactModel):void => { - - let onFaild = (response):void => { - console.info('onFaild', response); - removeDownloadedFileLoader(); - }; - - let onSuccess = (data:Models.IFileDownload):void => { - downloadFile(data); - removeDownloadedFileLoader(); - }; - - setDownloadedFileLoader(); - - if(scope.instance){ - scope.component.downloadInstanceArtifact(artifact.uniqueId).then(onSuccess, onFaild); - }else { - scope.component.downloadArtifact(artifact.uniqueId).then(onSuccess, onFaild); - } - }; - - let downloadFile = (file:Models.IFileDownload):void => { - if (file){ - let blob = this.fileUtils.base64toBlob(file.base64Contents,''); - let fileName = file.artifactName; - this.fileUtils.downloadFile(blob, fileName); - } - }; - - element.on('$destroy', ()=>{ - //remove listener of download event - if(scope.artifact && scope.artifact.uniqueId){ - this.EventListenerService.unRegisterObserver(Utils.Constants.EVENTS.DOWNLOAD_ARTIFACT_FINISH_EVENT + scope.artifact.uniqueId); - } - }); - - }; - - public static factory = ($window:any,cacheService:Sdc.Services.CacheService,EventListenerService:Services.EventListenerService, fileUtils:Sdc.Utils.FileUtils)=> { - return new DownloadArtifactDirective($window,cacheService,EventListenerService, fileUtils); - }; - - } - - DownloadArtifactDirective.factory.$inject = ['$window', 'Sdc.Services.CacheService', 'EventListenerService', 'FileUtils']; -} diff --git a/catalog-ui/app/scripts/directives/ecomp-header/ecomp-header.html b/catalog-ui/app/scripts/directives/ecomp-header/ecomp-header.html deleted file mode 100644 index e86f9df8b0..0000000000 --- a/catalog-ui/app/scripts/directives/ecomp-header/ecomp-header.html +++ /dev/null @@ -1,73 +0,0 @@ -
- -
- -
- ASDC - ASDC -
v.{{version}}
-
- -
- - - - -
-
- -
-
-
-
-
- -
-
-
- -
diff --git a/catalog-ui/app/scripts/directives/ecomp-header/ecomp-header.less b/catalog-ui/app/scripts/directives/ecomp-header/ecomp-header.less deleted file mode 100644 index a6f7e9b5a2..0000000000 --- a/catalog-ui/app/scripts/directives/ecomp-header/ecomp-header.less +++ /dev/null @@ -1,296 +0,0 @@ -@first-level-color: #067ab4; -@second-level-color: #f8f8f8; - -@first-level-height: 60px; -@second-level-height: 60px; -@third-four-level-height: 370px; - -@max-item-width: 250px; - -.sdc-ecomp-header-wrapper { - - position: absolute; - top: 0; - right: 0; - left: 0; - z-index: 999; - - ul { - margin: 0; - padding: 0; - } - - .sdc-ecomp-header { - - background-color: @first-level-color; - height: @first-level-height; - line-height: @first-level-height; - vertical-align: middle; - display: flex; - flex-direction: row; - padding: 0 20px; - - .sdc-ecomp-menu { - flex-grow: 98; - } - - } - - /* LEVEL 1 */ - .sdc-ecomp-menu-top-level { - list-style: none; - - .sdc-ecomp-menu-top-level-item:first-child { - margin-left: 0; - } - - .sdc-ecomp-menu-top-level-item { - display: inline-block; - margin: 0 20px; - position: relative; - a { - .p_14_m; - text-decoration: none; - } - - span { - &.selected { - position: absolute; - bottom: 0; - width: 0; - height: 0; - border-left: 15px solid transparent; - border-right: 15px solid transparent; - border-bottom: 15px solid @second-level-color; - } - } - } - } - - /* LEVEL 2 */ - .sdc-ecomp-menu-second-level { - background-color: @second-level-color; - box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.33); - height: @second-level-height; - list-style: none; - line-height: @second-level-height; - vertical-align: middle; - display: flex; - flex-direction: row; - padding: 0 20px; - position: fixed; - left: 0; - right: 0; - - .sdc-ecomp-menu-second-level-item:first-child { - margin-left: 0; - } - - .sdc-ecomp-menu-second-level-item { - display: inline-block; - height: @second-level-height; - line-height: @second-level-height; - - &.sdc-ecomp-menu-item-hover { - border-bottom: 4px solid #067ab4; - } - - a { - .m_14_r; - text-decoration: none; - text-align:center; - padding: 0 20px; - display: block; - - &:hover { - .s_14_r; - font-weight:bold; - } - - &:active { - font-weight: bold; - } - - /* fix jump when hovering text */ - &:after { - display:block; - content:attr(title); - font-weight:bold; - height:1px; - color:transparent; - overflow:hidden; - visibility:hidden; - } - } - - } - - } - - /* LEVEL 3 */ - ul.sdc-ecomp-menu-third-level { - background-color: #ffffff; - box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1); - min-height: @third-four-level-height; - list-style: none; - - display: flex; - flex-direction: row; - /*flex-wrap: wrap;*/ - position: fixed; - top: @first-level-height + @second-level-height; - left: 0; - right: 0; - padding: 0 40px; - - li.sdc-ecomp-menu-third-level-item { - height: 40px; - line-height: 40px; - position: relative; - /*width: @max-item-width;*/ - max-width: @max-item-width; - - .sdc-ecomp-menu-third-level-title { - .m_14_m; - text-decoration: none; - text-align: left; - display: block; - padding: 0 20px; - line-height: 20px; - margin-top: 20px; - font-weight: bold; - cursor: pointer; - } - - .sdc-ecomp-menu-four-level-seperator { - position: absolute; - border-right: solid 1px #e5e5e5; - height: @third-four-level-height - 20; - top: 10px; - } - } - - li.sdc-ecomp-menu-third-level-item:first-child { - .sdc-ecomp-menu-four-level-seperator { - border: none; - } - } - } - - /* LEVEL 4 */ - ul.sdc-ecomp-menu-four-level { - display: flex; - flex-direction: column; - margin-top: 10px; - - li.sdc-ecomp-menu-four-level-item { - display: block; - /*width: @max-item-width;*/ - max-width: @max-item-width; - line-height: 20px; - - a { - .m_14_r; - text-decoration: none; - text-align: left; - display: block; - - &:hover { - .s_14_r; - font-weight: bold; - } - } - } - } - -} - -.sdc-ecomp-logo-wrapper { - flex-grow: 1; - .p_18_m; - white-space: nowrap; - min-width: 210px; - text-align: left; - position: relative; - - .sdc-ecomp-logo { - background-image: url("images/att_logo_white.png"); - background-repeat: no-repeat; - display: inline-block; - vertical-align: middle; - width: 55px; - height: 55px; - } - - .sdc-ecomp-header-version { - .c_16; - .opacity(0.8); - position: absolute; - top: 34px; - line-height: 20px; - left: 56px; - } - - a.sdc-ecomp-header-title { - .p_24; - text-decoration: none; - } -} - - -.sdc-ecomp-user-wrapper { - - flex-grow: 1; - .p_14_m; - white-space: nowrap; - display: flex; - flex-direction: row; - align-items: center; - height: @first-level-height; - - .sdc-ecomp-user-icon { - margin-right: 20px; - .tlv-sprite; - .tlv-sprite.user; - } - - .sdc-ecomp-user-details { - display: flex; - flex-direction: column; - } - - .sdc-ecomp-user-details-name-role { - line-height: 20px; - - .sdc-ecomp-user-details-name { - max-width: 160px; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - vertical-align: bottom; - - .bold; - display: inline-block; - } - - .sdc-ecomp-user-details-role { - .bold; - display: inline-block; - margin-left: 6px; - - &:before { - content: ''; - margin-right: 8px; - border-left: 1px solid @color_m; - } - } - } - - .sdc-ecomp-user-details-last-login { - .font-type._3; - display: block; - line-height: 20px; - height: 20px; - } - -} diff --git a/catalog-ui/app/scripts/directives/ecomp-header/ecomp-header.ts b/catalog-ui/app/scripts/directives/ecomp-header/ecomp-header.ts deleted file mode 100644 index 7102c810ba..0000000000 --- a/catalog-ui/app/scripts/directives/ecomp-header/ecomp-header.ts +++ /dev/null @@ -1,235 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Directives { - 'use strict'; - - export class MenuItem { - menuId:number; - column:number; - text:string; - parentMenuId:number; - url:string; - children:Array - } - - export interface IEcompHeaderDirectiveScope extends ng.IScope { - menuData:Array; - version:string; - clickableLogo:string; - contactUsUrl:string; - getAccessUrl:string; - megaMenuDataObjectTemp:Array; - megaMenuDataObject:Array; - - selectedTopMenu:MenuItem; - selectedSubMenu:MenuItem; - - firstMenuLevelClick:Function; - subMenuEnterAction:Function; - subMenuLeaveAction:Function; - - memuItemClick:Function; - user: Models.IUser; - } - - export class EcompHeaderDirective implements ng.IDirective { - - constructor(private $templateCache:ng.ITemplateCacheService, - private $http:ng.IHttpService, - private sdcConfig:Models.IAppConfigurtaion, - private UserResourceClass:Services.IUserResourceClass) { - - } - - scope = { - menuData: '=', - version: '@', - clickableLogo: '@?' - }; - - public replace = true; - public restrict = 'E'; - public controller = EcompHeaderController; - - template = ():string => { - return this.$templateCache.get('/app/scripts/directives/ecomp-header/ecomp-header.html'); - }; - - link = ($scope:IEcompHeaderDirectiveScope, $elem:JQuery, attr:any) => { - - if (!$scope.clickableLogo){ - $scope.clickableLogo="true"; - } - - let findMenuItemById = (menuId):MenuItem => { - let selectedMenuItem:MenuItem = _.find($scope.menuData, (item:MenuItem)=>{ - if (item.menuId === menuId){ - return item; - } - }); - return selectedMenuItem; - }; - - let initUser = ():void => { - let defaultUserId:string; - let user:Services.IUserResource = this.UserResourceClass.getLoggedinUser(); - if (!user) { - defaultUserId = this.$http.defaults.headers.common[this.sdcConfig.cookie.userIdSuffix]; - user = this.UserResourceClass.get({id: defaultUserId}, ():void => { - $scope.user = new Models.User(user); - }); - } else { - $scope.user = new Models.User(user); - } - }; - - $scope.firstMenuLevelClick = (menuId:number):void => { - let selectedMenuItem:MenuItem = _.find($scope.megaMenuDataObjectTemp, (item:MenuItem)=>{ - if (item.menuId === menuId){ - return item; - } - }); - if (selectedMenuItem) { - $scope.selectedTopMenu = selectedMenuItem; - //console.log("Selected menu item: " + selectedMenuItem.text); - } - }; - - $scope.subMenuEnterAction = (menuId:number):void => { - $scope.selectedSubMenu = findMenuItemById(menuId); - }; - - $scope.subMenuLeaveAction = (menuId:number):void => { - $scope.selectedTopMenu = undefined; - }; - - $scope.memuItemClick = (menuItem:MenuItem):void => { - if (menuItem.url){ - window.location.href=menuItem.url; - } else { - console.log("Menu item: " + menuItem.text + " does not have defined URL!"); - } - }; - - initUser(); - - }; - - public static factory = ($templateCache:ng.ITemplateCacheService, - $http:ng.IHttpService, - sdcConfig:Models.IAppConfigurtaion, - UserResourceClass:Services.IUserResourceClass)=> { - return new EcompHeaderDirective($templateCache, $http, sdcConfig, UserResourceClass); - }; - - } - - export class EcompHeaderController { - - messages:any; - getAttachId:Function; - render:any; - reRender:Function; - register:Function; - deregister:Function; - head:any; - - static '$inject' = [ - '$element', - '$scope', - '$attrs', - '$animate' - ]; - - constructor(private $element:JQuery, - private $scope:IEcompHeaderDirectiveScope, - private $attrs:ng.IAttributes, - private $animate:any) { - - this.$scope = $scope; - - this.$scope.$watch('menuData', (newVal, oldVal) => { - if (newVal){ - this.init(); - } - }); - - } - - init = ():void => { - - this.$scope.contactUsUrl = "https://wiki.web.att.com/display/EcompPortal/ECOMP+Portal+Home"; - this.$scope.getAccessUrl = "http://ecomp-tlv-dev2.uccentral.att.com:8080/ecompportal/get_access"; - - let unflatten = ( array, parent?, tree? ) => { - tree = typeof tree !== 'undefined' ? tree : []; - parent = typeof parent !== 'undefined' ? parent : { menuId: null }; - let children = _.filter( array, function(child){ return child["parentMenuId"] == parent.menuId; }); - if( !_.isEmpty( children ) ){ - if( parent.menuId === null ){ - tree = children; - }else{ - parent['children'] = children - } - _.each( children, function( child ){ unflatten( array, child ) } ); - } - return tree; - }; - - let menuStructureConvert = (menuItems) => { - console.log(menuItems); - this.$scope.megaMenuDataObjectTemp = [ - { - menuId: 1001, - text: "ECOMP", - children: menuItems - }, - { - menuId: 1002, - text: "Help", - children: [ - { - text:"Contact Us", - url: this.$scope.contactUsUrl - }] - } - ]; - - /*{ - text:"Get Access", - url: this.$scope.getAccessUrl - }*/ - return this.$scope.megaMenuDataObjectTemp; - }; - - let a = unflatten(this.$scope.menuData); - this.$scope.megaMenuDataObject = menuStructureConvert(a); - //console.log(this.$scope.megaMenuDataObject); - }; - } - - EcompHeaderDirective.factory.$inject = ['$templateCache', '$http', 'sdcConfig', 'Sdc.Services.UserResourceService']; - -} - - - - diff --git a/catalog-ui/app/scripts/directives/edit-name-popover/edit-module-name-popover.html b/catalog-ui/app/scripts/directives/edit-name-popover/edit-module-name-popover.html deleted file mode 100644 index d90c52d9a6..0000000000 --- a/catalog-ui/app/scripts/directives/edit-name-popover/edit-module-name-popover.html +++ /dev/null @@ -1,31 +0,0 @@ -
-
- -
- {{module.vfInstanceName}} -
-
- -
-
- - -
-
- {{module.moduleName}} - - -
-
-
diff --git a/catalog-ui/app/scripts/directives/edit-name-popover/edit-name-popover-directive.ts b/catalog-ui/app/scripts/directives/edit-name-popover/edit-name-popover-directive.ts deleted file mode 100644 index a033df054b..0000000000 --- a/catalog-ui/app/scripts/directives/edit-name-popover/edit-name-popover-directive.ts +++ /dev/null @@ -1,98 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Directives { - 'use strict'; - - export interface IEditNamePopoverDirectiveScope extends ng.IScope { - isOpen: boolean; - templateUrl: string; - module: any; - direction: string; - header: string; - heatNameValidationPattern:RegExp; - originalName:string; - onSave:any; - - closePopover(isCancel:boolean):void; - validateField(field:any, originalName:string):boolean; - updateHeatName(heatName:string):void; - onInit():void; - } - - export class EditNamePopoverDirective implements ng.IDirective { - - constructor(private $templateCache:ng.ITemplateCacheService, private ValidationPattern:RegExp) { - } - - scope = { - direction: "@?", - module: "=", - header: "@?", - onSave: "&" - }; - - link = (scope:IEditNamePopoverDirectiveScope) => { - if(!scope.direction) { - scope.direction = 'top'; - } - - scope.originalName = ''; - scope.templateUrl = "/app/scripts/directives/edit-name-popover/edit-module-name-popover.html"; - scope.isOpen = false; - - scope.closePopover = (isCancel:boolean = true) => { - scope.isOpen = !scope.isOpen; - - if(isCancel) { - scope.module.heatName = scope.originalName; - } - }; - - scope.onInit = () => { - scope.originalName = scope.module.heatName; - }; - - scope.validateField = (field:any):boolean => { - return !!(field && field.$dirty && field.$invalid); - }; - - scope.heatNameValidationPattern = this.ValidationPattern; - - scope.updateHeatName = () => { - scope.closePopover(false); - scope.onSave(); - } - - }; - - replace = true; - restrict = 'E'; - template = ():string => { - return this.$templateCache.get('/app/scripts/directives/edit-name-popover/edit-name-popover-view.html'); - }; - - public static factory = ($templateCache:ng.ITemplateCacheService, ValidationPattern:RegExp)=> { - return new EditNamePopoverDirective($templateCache, ValidationPattern); - } - } - - EditNamePopoverDirective.factory.$inject = ['$templateCache', 'ValidationPattern']; -} diff --git a/catalog-ui/app/scripts/directives/edit-name-popover/edit-name-popover-view.html b/catalog-ui/app/scripts/directives/edit-name-popover/edit-name-popover-view.html deleted file mode 100644 index 17beead6b3..0000000000 --- a/catalog-ui/app/scripts/directives/edit-name-popover/edit-name-popover-view.html +++ /dev/null @@ -1 +0,0 @@ -
diff --git a/catalog-ui/app/scripts/directives/edit-name-popover/edit-name-popover.less b/catalog-ui/app/scripts/directives/edit-name-popover/edit-name-popover.less deleted file mode 100644 index 3d76a352ce..0000000000 --- a/catalog-ui/app/scripts/directives/edit-name-popover/edit-name-popover.less +++ /dev/null @@ -1,71 +0,0 @@ -.popover { - max-width: none; - width: 310px; - left: initial !important; - right: 10px; - z-index: 100; - border-radius: 0; - - .top > .arrow { - bottom: -8px !important; - } - - .popover-title { - background-color: transparent; - border-bottom: 2px solid #40b7e4; - margin-left: 20px; - margin-right: 20px; - padding: 8px 14px 8px 0px; - font-family: @font-omnes-medium; - font-weight: bold; - } - - .arrow { - left: 95% !important; - border-width: 7px; - bottom: -8px !important; - } - - .popover-content { - width: inherit; - padding: 9px 20px; - } - - .form-group { - margin-top: 9px; - } - - .popover-btn { - float:right; - margin-left: 10px; - margin-bottom: 20px; - } - - .close-popover-btn { - position: absolute; - top: 11px; - right: 25px; - } - - .close-popover-btn:hover { - cursor: pointer; - } - - .popover-input { - height: 47px; - margin-bottom:5px; - } - - .popover-label { - text-overflow: ellipsis; - display: block; - white-space: nowrap; - margin-bottom: 10px; - font-family: @font-omnes-medium; - color: @main_color_l; - } - - .w-sdc-form .i-sdc-form-item { - margin-bottom: 0px; - } -} diff --git a/catalog-ui/app/scripts/directives/elements/checkbox/checkbox.html b/catalog-ui/app/scripts/directives/elements/checkbox/checkbox.html deleted file mode 100644 index daf2a89ac2..0000000000 --- a/catalog-ui/app/scripts/directives/elements/checkbox/checkbox.html +++ /dev/null @@ -1,13 +0,0 @@ - diff --git a/catalog-ui/app/scripts/directives/elements/checkbox/checkbox.less b/catalog-ui/app/scripts/directives/elements/checkbox/checkbox.less deleted file mode 100644 index 0747a680a9..0000000000 --- a/catalog-ui/app/scripts/directives/elements/checkbox/checkbox.less +++ /dev/null @@ -1,35 +0,0 @@ -label.tlv-checkbox { - font-weight: normal; -} - -/* -input[type="checkbox"] { - display:none; -} - -input[type="checkbox"] + label span { - margin-right: 6px; - vertical-align: text-bottom; - .sprite-new; - .checkbox_unchecked; - cursor:pointer; -} - -input[type="checkbox"]:checked + label span { - vertical-align: text-bottom; - .sprite-new; - .checkbox_checked; -} - -input[type="checkbox"]:focus + label span { - vertical-align: text-bottom; - .sprite-new; - .checkbox_focus; -} - -input[type="checkbox"][disabled] + label{ - vertical-align: text-bottom; - .sprite-new; - .checkbox_disabled; -} -*/ diff --git a/catalog-ui/app/scripts/directives/elements/checkbox/checkbox.ts b/catalog-ui/app/scripts/directives/elements/checkbox/checkbox.ts deleted file mode 100644 index c45a9d92e1..0000000000 --- a/catalog-ui/app/scripts/directives/elements/checkbox/checkbox.ts +++ /dev/null @@ -1,66 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Directives { - 'use strict'; - - export interface ICheckboxElementScope extends ng.IScope { - elemId: string; - text: string; - sdcChecklistModel: any; - sdcChecklistValue: string; - disabled:boolean; - } - - export class CheckboxElementDirective implements ng.IDirective { - - constructor(private $templateCache:ng.ITemplateCacheService, - private $filter:ng.IFilterService) { - } - - public replace = true; - public restrict = 'E'; - public transclude = false; - - scope = { - elemId: '@', - text: '@', - disabled: '=', - sdcChecklistModel: '=', - sdcChecklistValue: '=' - }; - - template = ():string => { - return this.$templateCache.get('/app/scripts/directives/elements/checkbox/checkbox.html'); - }; - - public link = (scope:ICheckboxElementScope, $elem:ng.IAugmentedJQuery, $attrs:angular.IAttributes) => { - //$elem.removeAttr("id") - //console.log(scope.sdcChecklistValue); - }; - - public static factory = ($templateCache:ng.ITemplateCacheService, $filter:ng.IFilterService)=> { - return new CheckboxElementDirective($templateCache, $filter); - }; - - } - - CheckboxElementDirective.factory.$inject = ['$templateCache', '$filter']; -} diff --git a/catalog-ui/app/scripts/directives/elements/radiobutton/radiobutton.html b/catalog-ui/app/scripts/directives/elements/radiobutton/radiobutton.html deleted file mode 100644 index b31fae5d73..0000000000 --- a/catalog-ui/app/scripts/directives/elements/radiobutton/radiobutton.html +++ /dev/null @@ -1,5 +0,0 @@ -
- - -
diff --git a/catalog-ui/app/scripts/directives/elements/radiobutton/radiobutton.less b/catalog-ui/app/scripts/directives/elements/radiobutton/radiobutton.less deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/catalog-ui/app/scripts/directives/elements/radiobutton/radiobutton.ts b/catalog-ui/app/scripts/directives/elements/radiobutton/radiobutton.ts deleted file mode 100644 index 9fe58d8f8b..0000000000 --- a/catalog-ui/app/scripts/directives/elements/radiobutton/radiobutton.ts +++ /dev/null @@ -1,71 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Directives { - import INgModelController = angular.INgModelController; - 'use strict'; - - export interface IRadiobuttonElementScope extends ng.IScope { - elemId: string; - elemName: string; - text: string; - sdcModel: any; - value: any; - disabled: boolean; - onValueChange:Function; - } - - export class RadiobuttonElementDirective implements ng.IDirective { - - constructor(private $templateCache:ng.ITemplateCacheService, - private $filter:ng.IFilterService) { - } - - public replace = true; - public restrict = 'E'; - public transclude = false; - - scope = { - elemId: '@', - elemName: '@', - text: '@', - sdcModel: '=', - value: '@', - disabled: '=', - onValueChange: '&' - }; - - template = ():string => { - return this.$templateCache.get('/app/scripts/directives/elements/radiobutton/radiobutton.html'); - }; - - public link = (scope:IRadiobuttonElementScope, $elem:ng.IAugmentedJQuery, $attrs:angular.IAttributes) => { - //$elem.removeAttr("id") - //console.log(scope.sdcChecklistValue); - }; - - public static factory = ($templateCache:ng.ITemplateCacheService, $filter:ng.IFilterService)=> { - return new RadiobuttonElementDirective($templateCache, $filter); - }; - - } - - RadiobuttonElementDirective.factory.$inject = ['$templateCache', '$filter']; -} diff --git a/catalog-ui/app/scripts/directives/ellipsis/ellipsis-directive.html b/catalog-ui/app/scripts/directives/ellipsis/ellipsis-directive.html deleted file mode 100644 index 31fa06adda..0000000000 --- a/catalog-ui/app/scripts/directives/ellipsis/ellipsis-directive.html +++ /dev/null @@ -1,7 +0,0 @@ -{{actualText}} - - - {{collapsed ? "More" : "Less"}} - diff --git a/catalog-ui/app/scripts/directives/ellipsis/ellipsis-directive.less b/catalog-ui/app/scripts/directives/ellipsis/ellipsis-directive.less deleted file mode 100644 index d8dfdbb73b..0000000000 --- a/catalog-ui/app/scripts/directives/ellipsis/ellipsis-directive.less +++ /dev/null @@ -1,10 +0,0 @@ -.ellipsis-directive-more-less { - .a_9; - .bold; - .hand; - float: right; - margin-right: 17px; - line-height: 23px; - text-decoration: underline; - text-align: left; -} diff --git a/catalog-ui/app/scripts/directives/ellipsis/ellipsis-directive.ts b/catalog-ui/app/scripts/directives/ellipsis/ellipsis-directive.ts deleted file mode 100644 index a5ccf248e0..0000000000 --- a/catalog-ui/app/scripts/directives/ellipsis/ellipsis-directive.ts +++ /dev/null @@ -1,80 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Directives { - 'use strict'; - export interface IEllipsisScope extends ng.IScope { - ellipsis: string; - maxChars: number; - toggleText(): void; - collapsed: boolean; - actualText: string; - - } - - export class EllipsisDirective implements ng.IDirective { - - constructor(private $templateCache: ng.ITemplateCacheService) {} - - scope = { - ellipsis: '=', - moreClass: '@', - maxChars: '=' - }; - - replace = false; - restrict = 'A'; - template = (): string => { - return this.$templateCache.get('/app/scripts/directives/ellipsis/ellipsis-directive.html'); - }; - - link = (scope:IEllipsisScope, $elem:any) => { - - - scope.collapsed = true; - - scope.toggleText = (): void => { - if(scope.ellipsis && scope.collapsed) { - scope.actualText = scope.ellipsis.substr(0, scope.maxChars); - scope.actualText += scope.ellipsis.length > scope.maxChars ? '...' : ''; - } - else - { - scope.actualText = scope.ellipsis; - } - }; - - scope.$watch("ellipsis", function(){ - scope.collapsed = true; - scope.toggleText(); - }); - - - - }; - - public static factory = ($templateCache: ng.ITemplateCacheService)=> { - return new EllipsisDirective($templateCache); - }; - - } - - EllipsisDirective.factory.$inject = ['$templateCache']; -} diff --git a/catalog-ui/app/scripts/directives/events/on-last-repeat/on-last-repeat.ts b/catalog-ui/app/scripts/directives/events/on-last-repeat/on-last-repeat.ts deleted file mode 100644 index 0fb682d202..0000000000 --- a/catalog-ui/app/scripts/directives/events/on-last-repeat/on-last-repeat.ts +++ /dev/null @@ -1,61 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Directives { - 'use strict'; - - /** - * Usage: - * In data-ng-repeat html:
    - * In the controller, catch the last repeat: - * $scope.$on('onRepeatLast', function(scope, element, attrs){ - * //work your magic - * }); - */ - export interface IOnLastRepeatDirectiveScope extends ng.IScope { - $last:any; - } - - export class OnLastRepeatDirective implements ng.IDirective { - - constructor() {} - - scope = {}; - - restrict = 'AE'; - replace = true; - - link = (scope:IOnLastRepeatDirectiveScope, element:any, attrs:any) => { - let s:any = scope.$parent; // repeat scope - if (s.$last) { - setTimeout(function(){ - s.$emit('onRepeatLast', element, attrs); - }, 1); - } - }; - - public static factory = ()=> { - return new OnLastRepeatDirective(); - }; - - } - - OnLastRepeatDirective.factory.$inject = []; -} diff --git a/catalog-ui/app/scripts/directives/file-opener/file-opener.html b/catalog-ui/app/scripts/directives/file-opener/file-opener.html deleted file mode 100644 index 38f82554e9..0000000000 --- a/catalog-ui/app/scripts/directives/file-opener/file-opener.html +++ /dev/null @@ -1,3 +0,0 @@ -
    - -
    diff --git a/catalog-ui/app/scripts/directives/file-opener/file-opener.ts b/catalog-ui/app/scripts/directives/file-opener/file-opener.ts deleted file mode 100644 index b7e3e1804c..0000000000 --- a/catalog-ui/app/scripts/directives/file-opener/file-opener.ts +++ /dev/null @@ -1,77 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Directives { - 'use strict'; - - export interface IFileOpenerScope extends ng.IScope { - importFile:any; - testsId:any; - extensions:string; - - onFileSelect():void; - onFileUpload(file:any):void; - getExtensionsWithDot():string; - } - - export class FileOpenerDirective implements ng.IDirective { - - constructor(private $templateCache:ng.ITemplateCacheService, - private $compile:ng.ICompileService) { - } - - scope = { - onFileUpload: '&', - testsId: '@', - extensions: '@' - }; - - restrict = 'AE'; - replace = true; - template = ():string => { - return this.$templateCache.get('/app/scripts/directives/file-opener/file-opener.html'); - }; - - link = (scope:IFileOpenerScope, element:any) => { - - scope.onFileSelect = () => { - scope.onFileUpload({file: scope.importFile}); - element.html(this.$templateCache.get('/app/scripts/directives/file-opener/file-opener.html')); - this.$compile(element.contents())(scope); - }; - - scope.getExtensionsWithDot = ():string => { - let ret = []; - _.each(scope.extensions.split(','), function(item){ - ret.push("." + item.toString()); - }); - return ret.join(","); - }; - - }; - - public static factory = ($templateCache:ng.ITemplateCacheService, $compile:ng.ICompileService)=> { - return new FileOpenerDirective($templateCache, $compile); - }; - - } - - FileOpenerDirective.factory.$inject = ['$templateCache', '$compile']; -} diff --git a/catalog-ui/app/scripts/directives/file-type/file-type.ts b/catalog-ui/app/scripts/directives/file-type/file-type.ts deleted file mode 100644 index e7dee17960..0000000000 --- a/catalog-ui/app/scripts/directives/file-type/file-type.ts +++ /dev/null @@ -1,66 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Directives { - 'use strict'; - - export class FileTypeDirective implements ng.IDirective { - - constructor() {} - - require = 'ngModel'; - - link = (scope, elem, attrs, ngModel) => { - - let typesToApprove = ""; - - attrs.$observe('fileType', (val:string) => { - typesToApprove = val; - validate(ngModel.$viewValue); - }); - - let validate: Function = function (value) { - let fileName:string = elem.val(), valid:boolean = true; - - if (fileName && value && typesToApprove) { - let extension:string = fileName.substring(fileName.lastIndexOf('.') + 1).toLowerCase(); - valid = typesToApprove.split(',').indexOf(extension) > -1; - } - - ngModel.$setValidity('filetype', valid); - if(!value) { - ngModel.$setPristine(); - } - return value; - }; - - //For DOM -> model validation - ngModel.$parsers.unshift(validate); - - }; - - public static factory = ()=> { - return new FileTypeDirective(); - }; - - } - - FileTypeDirective.factory.$inject = []; -} diff --git a/catalog-ui/app/scripts/directives/file-upload/file-upload.html b/catalog-ui/app/scripts/directives/file-upload/file-upload.html deleted file mode 100644 index 7cbc8d25f3..0000000000 --- a/catalog-ui/app/scripts/directives/file-upload/file-upload.html +++ /dev/null @@ -1,22 +0,0 @@ -
    - {{(fileModel && fileModel.filename) || defaultText}} -
    - -
    diff --git a/catalog-ui/app/scripts/directives/file-upload/file-upload.less b/catalog-ui/app/scripts/directives/file-upload/file-upload.less deleted file mode 100644 index 1c4b010853..0000000000 --- a/catalog-ui/app/scripts/directives/file-upload/file-upload.less +++ /dev/null @@ -1,75 +0,0 @@ -.i-sdc-form-file-upload { - - display: flex; - margin-top: 0; - width: 100%; - .p_1; - .bg_c; - .border-radius(2px); - border: solid 1px @border_color_f; - height: 30px; - - input[type="file"] { - cursor: inherit; - display: block; - filter: alpha(opacity=0); - width: 100px; - height: 30px; - opacity: 0; - position: absolute; - right: 0; - text-align: right; - top: 0; - } - - .i-sdc-form-file-name{ - flex-grow: 999; - text-align: left; - padding: 3px 10px; - opacity: 0.6; - width: 80%; - text-overflow: ellipsis; - white-space: nowrap; - overflow: hidden; - - } - - .i-sdc-form-file-upload-x-btn{ - flex-grow: 1; - .sprite; - .sprite.small-x-btn-black; - cursor: pointer; - top: 10px; - right: 9px; - width: 10px; - position: relative; - } - .i-sdc-form-file-upload-label { - float: right; - width: 100px; - height: 100%; - .bg_n; - .b_9; - - .file-upload-browse-btn { - .noselect; - padding: 4px 6px; - cursor: pointer; - z-index: 999; - position: absolute; - width: 100px; - height: 28px; - text-align: center; - - &.disabled { - cursor: default; - } - } - } - - &.error { - border-color: #da1f3d; - outline: none; - box-sizing: border-box; - } -} diff --git a/catalog-ui/app/scripts/directives/file-upload/file-upload.ts b/catalog-ui/app/scripts/directives/file-upload/file-upload.ts deleted file mode 100644 index 16db3e7e21..0000000000 --- a/catalog-ui/app/scripts/directives/file-upload/file-upload.ts +++ /dev/null @@ -1,134 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/** - * Created by obarda on 1/27/2016. - */ -/// -module Sdc.Directives { - 'use strict'; - - export class FileUploadModel { - filetype: string; - filename: string; - filesize: number; - base64: string; - } - - export interface IFileUploadScope extends ng.IScope { - fileModel: FileUploadModel; - formElement:ng.IFormController; - extensions: string; - elementDisabled: string; - elementName: string; - elementRequired: string; - myFileModel: any; // From the ng bind to { - return this.$templateCache.get('/app/scripts/directives/file-upload/file-upload.html'); - }; - - link = (scope:IFileUploadScope, element:any, $attr:any) => { - - // In case the browse has filename, set it valid. - // When editing artifact the file is not sent again, so if we have filename I do not want to show error. - if (scope.fileModel && scope.fileModel.filename && scope.fileModel.filename!==''){ - scope.formElement[scope.elementName].$setValidity('required', true); - } - - scope.getExtensionsWithDot = ():string => { - let ret = []; - if(scope.extensions) { - _.each(scope.extensions.split(','), function (item) { - ret.push("." + item.toString()); - }); - } - return ret.join(","); - }; - - scope.onFileChange = ():void => { - if (scope.onFileChangedInDirective) { - scope.onFileChangedInDirective(); - } - if (scope.myFileModel) { - scope.fileModel = scope.myFileModel; - scope.formElement[scope.elementName].$setValidity('required', true); - } - }; - - scope.setEmptyError = (element):void => { - if(element.files[0].size){ - scope.formElement[scope.elementName].$setValidity('emptyFile', true); - }else{ - scope.formElement[scope.elementName].$setValidity('emptyFile', false); - scope.fileModel = undefined; - } - - }; - - // Workaround, in case user select a file then cancel (X) then select the file again, the event onChange is not fired. - // This is a workaround to fix this issue. - scope.onFileClick = (element:any):void => { - element.value = null; - }; - - scope.cancel = ():void => { - scope.fileModel.filename = ''; - scope.formElement[scope.elementName].$pristine; - scope.formElement[scope.elementName].$setValidity('required', false); - } - }; - - public static factory = ($templateCache:ng.ITemplateCacheService, sdcConfig:Models.IAppConfigurtaion)=> { - return new FileUploadDirective($templateCache, sdcConfig); - }; - - } - - FileUploadDirective.factory.$inject = ['$templateCache', 'sdcConfig']; -} diff --git a/catalog-ui/app/scripts/directives/graphs-v2/common/common-graph-utils.ts b/catalog-ui/app/scripts/directives/graphs-v2/common/common-graph-utils.ts deleted file mode 100644 index e01e455e93..0000000000 --- a/catalog-ui/app/scripts/directives/graphs-v2/common/common-graph-utils.ts +++ /dev/null @@ -1,361 +0,0 @@ -/** - * Created by obarda on 12/21/2016. - */ -/** - * Created by obarda on 12/13/2016. - */ -/// -module Sdc.Graph.Utils { - - export class CommonGraphUtils { - - constructor(private NodesFactory:Sdc.Utils.NodesFactory, private LinksFactory:Sdc.Utils.LinksFactory) { - - } - - public safeApply = (scope:ng.IScope, fn:any) => { //todo remove to general utils - let phase = scope.$root.$$phase; - if (phase == '$apply' || phase == '$digest') { - if (fn && (typeof(fn) === 'function')) { - fn(); - } - } else { - scope.$apply(fn); - } - }; - - /** - * Draw node on the graph - * @param cy - * @param compositionGraphNode - * @param position - * @returns {CollectionElements} - */ - public addNodeToGraph(cy:Cy.Instance, compositionGraphNode:Models.Graph.CommonNodeBase, position?:Cy.Position):Cy.CollectionElements { - - var node = cy.add( { - group: 'nodes', - position: position, - data: compositionGraphNode, - classes: compositionGraphNode.classes - }); - - if(!node.data().isUcpe) { //ucpe should not have tooltip - this.initNodeTooltip(node); - } - return node; - }; - - /** - * The function will create a component instance node by the componentInstance position. - * If the node is UCPE the function will create all cp lan&wan for the ucpe - * @param cy - * @param compositionGraphNode - * @returns {Cy.CollectionElements} - */ - public addComponentInstanceNodeToGraph(cy:Cy.Instance, compositionGraphNode:Models.Graph.CompositionCiNodeBase):Cy.CollectionElements { - - let nodePosition = { - x: +compositionGraphNode.componentInstance.posX, - y: +compositionGraphNode.componentInstance.posY - }; - - let node = this.addNodeToGraph(cy, compositionGraphNode, nodePosition); - if (compositionGraphNode.isUcpe) { - this.createUcpeCpNodes(cy, node); - } - return node; - }; - - /** - * This function will create CP_WAN & CP_LAN for the UCPE. this is a special node on the group that will behave like ports on the ucpe - * @param cy - * @param ucpeGraphNode - */ - private createUcpeCpNodes(cy:Cy.Instance, ucpeGraphNode:Cy.CollectionNodes):void { - - let requirementsArray:Array = ucpeGraphNode.data().componentInstance.requirements["tosca.capabilities.Node"]; - //show only LAN or WAN requirements - requirementsArray = _.reject(requirementsArray, (requirement:any) => { - let name:string = requirement.ownerName.toLowerCase(); - return name.indexOf('lan') === -1 && name.indexOf('wan') === -1; - }); - requirementsArray.sort(function (a, b) { - let nameA = a.ownerName.toLowerCase().match(/[^ ]+/)[0]; - let nameB = b.ownerName.toLowerCase().match(/[^ ]+/)[0]; - let numA = _.last(a.ownerName.toLowerCase().split(' ')); - let numB = _.last(b.ownerName.toLowerCase().split(' ')); - - if (nameA === nameB) return numA > numB ? 1 : -1; - return nameA < nameB ? 1 : -1; - }); - let position = angular.copy(ucpeGraphNode.boundingbox()); - //add CP nodes to group - let topCps:number = 0; - for (let i = 0; i < requirementsArray.length; i++) { - - let cpNode = this.NodesFactory.createUcpeCpNode(angular.copy(ucpeGraphNode.data().componentInstance)); - cpNode.componentInstance.capabilities = requirementsArray[i]; - cpNode.id = requirementsArray[i].ownerId; - cpNode.group = ucpeGraphNode.data().componentInstance.uniqueId; - cpNode.name = requirementsArray[i].ownerName; //for tooltip - cpNode.displayName = requirementsArray[i].ownerName; - cpNode.displayName = cpNode.displayName.length > 5 ? cpNode.displayName.substring(0, 5) + '...' : cpNode.displayName; - - - if (cpNode.name.toLowerCase().indexOf('lan') > -1) { - cpNode.textPosition = "top"; - cpNode.componentInstance.posX = position.x1 + (i * 90) - (topCps * 90) + 53; - cpNode.componentInstance.posY = position.y1 + 400 + 27; - } else { - cpNode.textPosition = "bottom"; - cpNode.componentInstance.posX = position.x1 + (topCps * 90) + 53; - cpNode.componentInstance.posY = position.y1 + 27; - topCps++; - } - let cyCpNode = this.addComponentInstanceNodeToGraph(cy, cpNode); - cyCpNode.lock(); - } - }; - - /** - * - * @param nodes - all nodes in graph in order to find the edge connecting the two nodes - * @param fromNodeId - * @param toNodeId - * @returns {boolean} true/false if the edge is certified (from node and to node are certified) - */ - public isRelationCertified(nodes:Cy.CollectionNodes, fromNodeId:string, toNodeId:string):boolean { - let resourceTemp = _.filter(nodes, function (node:Cy.CollectionFirst) { - return node.data().id === fromNodeId || node.data().id === toNodeId; - }); - let certified:boolean = true; - - _.forEach(resourceTemp, (item) => { - certified = certified && item.data().certified; - }); - - return certified; - } - - /** - * Add link to graph - only draw the link - * @param cy - * @param link - */ - public insertLinkToGraph = (cy:Cy.Instance, link:Models.CompositionCiLinkBase) => { - - if (!this.isRelationCertified(cy.nodes(), link.source, link.target)) { - link.classes = 'not-certified-link'; - } - cy.add({ - group: 'edges', - data: link, - classes: link.classes - }); - - }; - - /** - * go over the relations and draw links on the graph - * @param cy - * @param instancesRelations - */ - public initGraphLinks(cy:Cy.Instance, instancesRelations:Array) { - - if (instancesRelations) { - _.forEach(instancesRelations, (relationshipModel:Models.RelationshipModel) => { - _.forEach(relationshipModel.relationships, (relationship:Models.Relationship) => { - let linkToCreate = this.LinksFactory.createGraphLink(cy, relationshipModel, relationship); - this.insertLinkToGraph(cy, linkToCreate); - }); - }); - } - } - - /** - * Determine which nodes are in the UCPE and set child data for them. - * @param cy - */ - public initUcpeChildren(cy:Cy.Instance){ - let ucpe:Cy.CollectionNodes = cy.nodes('[?isUcpe]'); // Get ucpe on graph if exist - _.each(cy.edges('.ucpe-host-link'), (link)=>{ - - let ucpeChild:Cy.CollectionNodes = (link.source().id() == ucpe.id())? link.target() : link.source(); - this.initUcpeChildData(ucpeChild, ucpe); - - //vls dont have ucpe-host-link connection, so need to find them and iterate separately - let connectedVLs = ucpeChild.connectedEdges().connectedNodes('.vl-node'); - _.forEach(connectedVLs, (vl)=>{ //all connected vls must be UCPE children because not allowed to connect to a VL outside of the UCPE - this.initUcpeChildData(vl, ucpe); - }); - }); - } - - /** - * Set properties for nodes contained by the UCPE - * @param childNode- node contained in UCPE - * @param ucpe- ucpe container node - */ - public initUcpeChildData(childNode:Cy.CollectionNodes, ucpe:Cy.CollectionNodes){ - - if(!childNode.data('isInsideGroup')){ - this.updateUcpeChildPosition(childNode, ucpe); - childNode.data({isInsideGroup: true}); - } - - } - - /** - * Updates UCPE child node offset, which allows child nodes to be dragged in synchronization with ucpe - * @param childNode- node contained in UCPE - * @param ucpe- ucpe container node - */ - public updateUcpeChildPosition(childNode:Cy.CollectionNodes, ucpe:Cy.CollectionNodes){ - let childPos:Cy.Position = childNode.relativePosition(); - let ucpePos:Cy.Position = ucpe.relativePosition(); - let offset:Cy.Position = { - x: childPos.x - ucpePos.x, - y: childPos.y - ucpePos.y - }; - childNode.data("ucpeOffset", offset); - } - - /** - * Removes ucpe-child properties from the node - * @param childNode- node being removed from UCPE - */ - public removeUcpeChildData(childNode:Cy.CollectionNodes){ - childNode.removeData("ucpeOffset"); - childNode.data({isInsideGroup: false}); - - } - - - public HTMLCoordsToCytoscapeCoords(cytoscapeBoundingBox:Cy.Extent, mousePos:Cy.Position):Cy.Position { - return {x: mousePos.x + cytoscapeBoundingBox.x1, y: mousePos.y + cytoscapeBoundingBox.y1} - }; - - - public getCytoscapeNodePosition = (cy: Cy.Instance, event:IDragDropEvent):Cy.Position => { - let targetOffset = $(event.target).offset(); - let x = event.pageX - targetOffset.left; - let y = event.pageY - targetOffset.top; - - return this.HTMLCoordsToCytoscapeCoords(cy.extent(), { - x: x, - y: y - }); - }; - - - public getNodePosition(node:Cy.CollectionFirstNode):Cy.Position{ - let nodePosition = node.relativePoint(); - if(node.data().isUcpe){ //UCPEs use bounding box and not relative point. - nodePosition = {x: node.boundingbox().x1, y: node.boundingbox().y1}; - } - - return nodePosition; - } - - /** - * return true/false if first node contains in second - this used in order to verify is node is entirely inside ucpe - * @param firstBox - * @param secondBox - * @returns {boolean} - */ - public isFirstBoxContainsInSecondBox(firstBox:Cy.BoundingBox, secondBox:Cy.BoundingBox) { - - return firstBox.x1 > secondBox.x1 && firstBox.x2 < secondBox.x2 && firstBox.y1 > secondBox.y1 && firstBox.y2 < secondBox.y2; - - }; - - - /** - * Check if node node bounds position is inside any ucpe on graph, and return the ucpe - * @param {diagram} the diagram. - * @param {nodeActualBounds} the actual bound position of the node. - * @return the ucpe if found else return null - */ - public isInUcpe = (cy: Cy.Instance, nodeBounds: Cy.BoundingBox): Cy.CollectionElements => { - - let ucpeNodes = cy.nodes('[?isUcpe]').filterFn((ucpeNode) => { - return this.isFirstBoxContainsInSecondBox(nodeBounds, ucpeNode.boundingbox()); - }); - return ucpeNodes; - }; - - /** - * - * @param cy - * @param node - * @returns {Array} - */ - public getLinkableNodes(cy:Cy.Instance, node:Cy.CollectionFirstNode):Array{ - let compatibleNodes = []; - _.each(cy.nodes(), (tempNode)=>{ - if(this.nodeLocationsCompatible(cy, node, tempNode)){ - compatibleNodes.push(tempNode.data()); - } - }); - return compatibleNodes; - } - - /** - * Checks whether node locations are compatible in reference to UCPEs. - * Returns true if both nodes are in UCPE or both nodes out, or one node is UCPEpart. - * @param node1 - * @param node2 - */ - public nodeLocationsCompatible(cy:Cy.Instance, node1:Cy.CollectionFirstNode, node2:Cy.CollectionFirstNode){ - - let ucpe = cy.nodes('[?isUcpe]'); - if(!ucpe.length){ return true; } - if(node1.data().isUcpePart || node2.data().isUcpePart) { return true; } - - return (this.isFirstBoxContainsInSecondBox(node1.boundingbox(), ucpe.boundingbox()) == this.isFirstBoxContainsInSecondBox(node2.boundingbox(), ucpe.boundingbox())); - - } - - /** - * This function will init qtip tooltip on the node - * @param node - the node we want the tooltip to apply on - */ - public initNodeTooltip(node:Cy.CollectionNodes) { - - let opts = { - content: function () { - return this.data('name'); - }, - position: { - my: 'top center', - at: 'bottom center', - adjust: {x:0, y:-5} - }, - style: { - classes: 'qtip-dark qtip-rounded qtip-custom', - tip: { - width: 16, - height: 8 - } - }, - show: { - event: 'mouseover', - delay: 1000 - }, - hide: {event: 'mouseout mousedown'}, - includeLabels: true - }; - - if (node.data().isUcpePart){ //fix tooltip positioning for UCPE-cps - opts.position.adjust = {x:0, y:20}; - } - - node.qtip(opts); - }; - }; - - - - CommonGraphUtils.$inject = ['NodesFactory', 'LinksFactory']; -} \ No newline at end of file diff --git a/catalog-ui/app/scripts/directives/graphs-v2/common/style/component-instances-nodes-style.ts b/catalog-ui/app/scripts/directives/graphs-v2/common/style/component-instances-nodes-style.ts deleted file mode 100644 index 2ec0174aa9..0000000000 --- a/catalog-ui/app/scripts/directives/graphs-v2/common/style/component-instances-nodes-style.ts +++ /dev/null @@ -1,259 +0,0 @@ -/** - * Created by obarda on 12/18/2016. - */ -/** - * Created by obarda on 12/13/2016. - */ -/// -module Sdc.Graph.Utils.ComponentIntanceNodesStyle { - - export function getCompositionGraphStyle():Array { - return [ - { - selector: 'core', - css: { - 'shape': 'rectangle', - 'active-bg-size': 0, - 'selection-box-color': 'rgb(0, 159, 219)', - 'selection-box-opacity': 0.2, - 'selection-box-border-color': '#009fdb', - 'selection-box-border-width': 1 - - } - }, - { - selector: 'node', - css: { - 'font-family': 'omnes-regular,sans-serif', - 'font-size': 14, - 'events': 'yes', - 'text-events': 'yes', - 'text-border-width': 15, - 'text-border-color': Sdc.Utils.Constants.GraphColors.NODE_UCPE, - 'text-margin-y': 5 - } - }, - { - selector: '.vf-node', - css: { - 'background-color': 'transparent', - 'shape': 'rectangle', - 'label': 'data(displayName)', - 'background-image': 'data(img)', - 'width': 65, - 'height': 65, - 'background-opacity': 0, - "background-width": 65, - "background-height": 65, - 'text-valign': 'bottom', - 'text-halign': 'center', - 'background-fit': 'cover', - 'background-clip': 'node', - 'overlay-color': Sdc.Utils.Constants.GraphColors.NODE_BACKGROUND_COLOR, - 'overlay-opacity': 0 - } - }, - - { - selector: '.service-node', - css: { - 'background-color': 'transparent', - 'label': 'data(displayName)', - 'events': 'yes', - 'text-events': 'yes', - 'background-image': 'data(img)', - 'width': 64, - 'height': 64, - "border-width": 0, - 'text-valign': 'bottom', - 'text-halign': 'center', - 'background-opacity': 0, - 'overlay-color': Sdc.Utils.Constants.GraphColors.NODE_BACKGROUND_COLOR, - 'overlay-opacity': 0 - } - }, - { - selector: '.cp-node', - css: { - 'background-color': 'rgb(255,255,255)', - 'shape': 'rectangle', - 'label': 'data(displayName)', - 'background-image': 'data(img)', - 'background-width': 21, - 'background-height': 21, - 'width': 21, - 'height': 21, - 'text-valign': 'bottom', - 'text-halign': 'center', - 'background-opacity': 0, - 'overlay-color': Sdc.Utils.Constants.GraphColors.NODE_BACKGROUND_COLOR, - 'overlay-opacity': 0 - } - }, - { - selector: '.vl-node', - css: { - 'background-color': 'rgb(255,255,255)', - 'shape': 'rectangle', - 'label': 'data(displayName)', - 'background-image': 'data(img)', - 'background-width': 21, - 'background-height': 21, - 'width': 21, - 'height': 21, - 'text-valign': 'bottom', - 'text-halign': 'center', - 'background-opacity': 0, - 'overlay-color': Sdc.Utils.Constants.GraphColors.NODE_BACKGROUND_COLOR, - 'overlay-opacity': 0 - } - }, - { - selector: '.ucpe-cp', - css: { - 'background-color': Sdc.Utils.Constants.GraphColors.NODE_UCPE_CP, - 'background-width': 15, - 'background-height': 15, - 'width': 15, - 'height': 15, - 'text-halign': 'center', - 'overlay-opacity': 0, - 'label': 'data(displayName)', - 'text-valign': 'data(textPosition)', - 'text-margin-y': (ele:Cy.Collection) => { - return (ele.data('textPosition') == 'top')? -5 : 5; - }, - 'font-size': 12 - } - }, - { - selector: '.ucpe-node', - css: { - 'background-fit': 'cover', - 'padding-bottom': 0, - 'padding-top': 0 - } - }, - { - selector: '.simple-link', - css: { - 'width': 1, - 'line-color': Sdc.Utils.Constants.GraphColors.BASE_LINK, - 'target-arrow-color': '#3b7b9b', - 'target-arrow-shape': 'triangle', - 'curve-style': 'bezier', - 'control-point-step-size': 30 - } - }, - { - selector: '.vl-link', - css: { - 'width': 3, - 'line-color': Sdc.Utils.Constants.GraphColors.VL_LINK, - 'curve-style': 'bezier', - 'control-point-step-size': 30 - } - }, - { - selector: '.ucpe-host-link', - css: { - 'width': 0 - } - }, - { - selector: '.not-certified-link', - css: { - 'width': 1, - 'line-color': Sdc.Utils.Constants.GraphColors.NOT_CERTIFIED_LINK, - 'curve-style': 'bezier', - 'control-point-step-size': 30, - 'line-style': 'dashed', - 'target-arrow-color': '#3b7b9b', - 'target-arrow-shape': 'triangle' - - } - }, - - { - selector: '.not-certified', - css: { - 'shape': 'rectangle', - 'background-image': (ele:Cy.Collection) => { - return ele.data().initImage(ele) - }, - "border-width": 0 - } - }, - { - selector: 'node:selected', - css: { - "border-width": 2, - "border-color": Sdc.Utils.Constants.GraphColors.NODE_SELECTED_BORDER_COLOR, - 'shape': 'rectangle' - } - }, - { - selector: 'edge:selected', - css: { - 'line-color': Sdc.Utils.Constants.GraphColors.ACTIVE_LINK - - } - }, - { - selector: 'edge:active', - css: { - 'overlay-opacity': 0 - } - } - ] - } - - export function getBasicNodeHanlde() { - return { - positionX: "center", - positionY: "top", - offsetX: 15, - offsetY: -20, - color: "#27a337", - type: "default", - single: false, - nodeTypeNames: ["basic-node"], - imageUrl: Sdc.Utils.Constants.IMAGE_PATH + '/styles/images/resource-icons/' + 'canvasPlusIcon.png', - lineWidth: 2, - lineStyle: 'dashed' - - } - } - - export function getBasicSmallNodeHandle() { - return { - positionX: "center", - positionY: "top", - offsetX: 3, - offsetY: -25, - color: "#27a337", - type: "default", - single: false, - nodeTypeNames: ["basic-small-node"], - imageUrl: Sdc.Utils.Constants.IMAGE_PATH + '/styles/images/resource-icons/' + 'canvasPlusIcon.png', - lineWidth: 2, - lineStyle: 'dashed' - } - } - - export function getUcpeCpNodeHandle() { - return { - positionX: "center", - positionY: "center", - offsetX: -8, - offsetY: -10, - color: "#27a337", - type: "default", - single: false, - nodeTypeNames: ["ucpe-cp-node"], - imageUrl: Sdc.Utils.Constants.IMAGE_PATH + '/styles/images/resource-icons/' + 'canvasPlusIcon.png', - lineWidth: 2, - lineStyle: 'dashed' - } - } -} \ No newline at end of file diff --git a/catalog-ui/app/scripts/directives/graphs-v2/common/style/module-node-style.ts b/catalog-ui/app/scripts/directives/graphs-v2/common/style/module-node-style.ts deleted file mode 100644 index 62436fbf74..0000000000 --- a/catalog-ui/app/scripts/directives/graphs-v2/common/style/module-node-style.ts +++ /dev/null @@ -1,92 +0,0 @@ -/** - * Created by obarda on 1/1/2017. - */ -/** - * Created by obarda on 12/18/2016. - */ -/** - * Created by obarda on 12/13/2016. - */ -/// -module Sdc.Graph.Utils.ModulesNodesStyle { - - export function getModuleGraphStyle():Array { - - return [ - { - selector: '.cy-expand-collapse-collapsed-node', - css: { - 'background-image': 'data(img)', - 'width': 34, - 'height': 32, - 'background-opacity': 0, - 'shape': 'rectangle', - 'label': 'data(displayName)', - 'events': 'yes', - 'text-events': 'yes', - 'text-valign': 'bottom', - 'text-halign': 'center', - 'text-margin-y': 5, - 'border-opacity': 0 - } - }, - { - selector: '.module-node', - css: { - 'background-color': 'transparent', - 'background-opacity': 0, - "border-width": 2, - "border-color": Sdc.Utils.Constants.GraphColors.NODE_SELECTED_BORDER_COLOR, - 'border-style': 'dashed', - 'label': 'data(displayName)', - 'events': 'yes', - 'text-events': 'yes', - 'text-valign': 'bottom', - 'text-halign': 'center', - 'text-margin-y': 8 - } - }, - { - selector: 'node:selected', - css: { - "border-opacity": 0 - } - }, - { - selector: '.simple-link:selected', - css: { - 'line-color': Sdc.Utils.Constants.GraphColors.BASE_LINK, - } - }, - { - selector: '.vl-link:selected', - css: { - 'line-color': Sdc.Utils.Constants.GraphColors.VL_LINK, - } - }, - { - selector: '.cy-expand-collapse-collapsed-node:selected', - css: { - "border-color": Sdc.Utils.Constants.GraphColors.NODE_SELECTED_BORDER_COLOR, - 'border-opacity': 1, - 'border-style': 'solid', - 'border-width': 2 - } - }, - { - selector: '.module-node:selected', - css: { - "border-color": Sdc.Utils.Constants.GraphColors.NODE_SELECTED_BORDER_COLOR, - 'border-opacity': 1 - } - }, - { - selector: '.dummy-node', - css: { - 'width': 20, - 'height': 20 - } - }, - ] - } -} \ No newline at end of file diff --git a/catalog-ui/app/scripts/directives/graphs-v2/composition-graph/composition-graph.directive.ts b/catalog-ui/app/scripts/directives/graphs-v2/composition-graph/composition-graph.directive.ts deleted file mode 100644 index 708f1d091a..0000000000 --- a/catalog-ui/app/scripts/directives/graphs-v2/composition-graph/composition-graph.directive.ts +++ /dev/null @@ -1,555 +0,0 @@ -/// -module Sdc.Directives { - - import ComponentFactory = Sdc.Utils.ComponentFactory; - import LoaderService = Sdc.Services.LoaderService; - import GRAPH_EVENTS = Sdc.Utils.Constants.GRAPH_EVENTS; - - interface ICompositionGraphScope extends ng.IScope { - - component:Models.Components.Component; - isViewOnly:boolean; - // Link menu - create link menu - relationMenuDirectiveObj:Models.RelationMenuDirectiveObj; - isLinkMenuOpen:boolean; - createLinkFromMenu:(chosenMatch:Models.MatchBase, vl:Models.Components.Component)=>void; - - //modify link menu - for now only delete menu - relationMenuTimeout:ng.IPromise; - linkMenuObject:Models.LinkMenu; - - //left palette functions callbacks - dropCallback(event:JQueryEventObject, ui:any):void; - beforeDropCallback(event:IDragDropEvent):void; - verifyDrop(event:JQueryEventObject, ui:any):void; - - //Links menus - deleteRelation(link:Cy.CollectionEdges):void; - hideRelationMenu(); - } - - export class CompositionGraph implements ng.IDirective { - private _cy:Cy.Instance; - private _currentlyCLickedNodePosition:Cy.Position; - private $document:JQuery = $(document); - private dragElement:JQuery; - private dragComponent: Sdc.Models.ComponentsInstances.ComponentInstance; - - constructor(private $q:ng.IQService, - private $filter:ng.IFilterService, - private $log:ng.ILogService, - private $timeout:ng.ITimeoutService, - private NodesFactory:Sdc.Utils.NodesFactory, - private CompositionGraphLinkUtils:Sdc.Graph.Utils.CompositionGraphLinkUtils, - private GeneralGraphUtils:Graph.Utils.CompositionGraphGeneralUtils, - private ComponentInstanceFactory:Utils.ComponentInstanceFactory, - private NodesGraphUtils:Sdc.Graph.Utils.CompositionGraphNodesUtils, - private eventListenerService:Services.EventListenerService, - private ComponentFactory:ComponentFactory, - private LoaderService:LoaderService, - private commonGraphUtils:Graph.Utils.CommonGraphUtils, - private matchCapabilitiesRequirementsUtils:Graph.Utils.MatchCapabilitiesRequirementsUtils) { - - } - - restrict = 'E'; - templateUrl = '/app/scripts/directives/graphs-v2/composition-graph/composition-graph.html'; - scope = { - component: '=', - isViewOnly: '=' - }; - - link = (scope:ICompositionGraphScope, el:JQuery) => { - this.loadGraph(scope, el); - - scope.$on('$destroy', () => { - this._cy.destroy(); - _.forEach(GRAPH_EVENTS, (event) => { - this.eventListenerService.unRegisterObserver(event); - }); - }); - - }; - - private loadGraph = (scope:ICompositionGraphScope, el:JQuery) => { - - - let graphEl = el.find('.sdc-composition-graph-wrapper'); - this.initGraph(graphEl, scope.isViewOnly); - this.initGraphNodes(scope.component.componentInstances, scope.isViewOnly); - this.commonGraphUtils.initGraphLinks(this._cy, scope.component.componentInstancesRelations); - this.commonGraphUtils.initUcpeChildren(this._cy); - this.initDropZone(scope); - this.registerCytoscapeGraphEvents(scope); - this.registerCustomEvents(scope, el); - this.initViewMode(scope.isViewOnly); - - }; - - private initGraph(graphEl:JQuery, isViewOnly:boolean) { - - this._cy = cytoscape({ - container: graphEl, - style: Sdc.Graph.Utils.ComponentIntanceNodesStyle.getCompositionGraphStyle(), - zoomingEnabled: false, - selectionType: 'single', - boxSelectionEnabled: true, - autolock: isViewOnly, - autoungrabify: isViewOnly - }); - } - - private initViewMode(isViewOnly:boolean) { - - if (isViewOnly) { - //remove event listeners - this._cy.off('drag'); - this._cy.off('handlemouseout'); - this._cy.off('handlemouseover'); - this._cy.edges().unselectify(); - } - }; - - private registerCustomEvents(scope:ICompositionGraphScope, el:JQuery) { - - this.eventListenerService.registerObserverCallback(GRAPH_EVENTS.ON_PALETTE_COMPONENT_HOVER_IN, (component:Models.DisplayComponent) => { - this.$log.info(`composition-graph::registerEventServiceEvents:: palette hover on component: ${component.uniqueId}`); - - let nodesData = this.NodesGraphUtils.getAllNodesData(this._cy.nodes()); - let nodesLinks = this.GeneralGraphUtils.getAllCompositionCiLinks(this._cy); - - if (this.GeneralGraphUtils.componentRequirementsAndCapabilitiesCaching.containsKey(component.uniqueId)) { - let cacheComponent = this.GeneralGraphUtils.componentRequirementsAndCapabilitiesCaching.getValue(component.uniqueId); - let filteredNodesData = this.matchCapabilitiesRequirementsUtils.findByMatchingCapabilitiesToRequirements(cacheComponent, nodesData, nodesLinks); - - this.matchCapabilitiesRequirementsUtils.highlightMatchingComponents(filteredNodesData, this._cy); - this.matchCapabilitiesRequirementsUtils.fadeNonMachingComponents(filteredNodesData, nodesData, this._cy); - - return; - } - - component.component.updateRequirementsCapabilities() - .then((res) => { - component.component.capabilities = res.capabilities; - component.component.requirements = res.requirements; - - let filteredNodesData = this.matchCapabilitiesRequirementsUtils.findByMatchingCapabilitiesToRequirements(component.component, nodesData, nodesLinks); - this.matchCapabilitiesRequirementsUtils.fadeNonMachingComponents(filteredNodesData, nodesData, this._cy); - this.matchCapabilitiesRequirementsUtils.highlightMatchingComponents(filteredNodesData, this._cy) - }); - }); - - this.eventListenerService.registerObserverCallback(GRAPH_EVENTS.ON_PALETTE_COMPONENT_HOVER_OUT, () => { - this._cy.emit('hidehandles'); - this.matchCapabilitiesRequirementsUtils.resetFadedNodes(this._cy); - }); - - this.eventListenerService.registerObserverCallback(GRAPH_EVENTS.ON_PALETTE_COMPONENT_DRAG_START, (dragElement, dragComponent) => { - - this.dragElement = dragElement; - this.dragComponent = this.ComponentInstanceFactory.createComponentInstanceFromComponent(dragComponent); - }); - - this.eventListenerService.registerObserverCallback(GRAPH_EVENTS.ON_PALETTE_COMPONENT_DRAG_ACTION, (event:IDragDropEvent) => { - this._onComponentDrag(event); - - }); - - this.eventListenerService.registerObserverCallback(GRAPH_EVENTS.ON_COMPONENT_INSTANCE_NAME_CHANGED, (component:Models.ComponentsInstances.ComponentInstance) => { - - let selectedNode = this._cy.getElementById(component.uniqueId); - selectedNode.data().componentInstance.name = component.name; - selectedNode.data('displayName', selectedNode.data().getDisplayName()); - - }); - - this.eventListenerService.registerObserverCallback(GRAPH_EVENTS.ON_DELETE_COMPONENT_INSTANCE, (componentInstance:Models.ComponentsInstances.ComponentInstance) => { - let nodeToDelete = this._cy.getElementById(componentInstance.uniqueId); - this.NodesGraphUtils.deleteNode(this._cy, scope.component, nodeToDelete); - }); - - this.eventListenerService.registerObserverCallback(GRAPH_EVENTS.ON_DELETE_MULTIPLE_COMPONENTS, () => { - - this._cy.$('node:selected').each((i:number, node:Cy.CollectionNodes) => { - this.NodesGraphUtils.deleteNode(this._cy, scope.component, node); - }); - - }); - - this.eventListenerService.registerObserverCallback(GRAPH_EVENTS.ON_DELETE_EDGE, (releaseLoading:boolean, linksToDelete:Cy.CollectionEdges) => { - this.CompositionGraphLinkUtils.deleteLink(this._cy, scope.component, releaseLoading, linksToDelete); - }); - - this.eventListenerService.registerObserverCallback(GRAPH_EVENTS.ON_INSERT_NODE_TO_UCPE, (node:Cy.CollectionNodes, ucpe:Cy.CollectionNodes, updateExistingNode: boolean) => { - - this.commonGraphUtils.initUcpeChildData(node, ucpe); - //check if item is a VL, and if so, skip adding the binding to ucpe - if(!(node.data() instanceof Sdc.Models.Graph.CompositionCiNodeVl)){ - this.CompositionGraphLinkUtils.createVfToUcpeLink(scope.component, this._cy, ucpe.data(), node.data()); //create link from the node to the ucpe - } - - if(updateExistingNode){ - let vlsPendingDeletion:Cy.CollectionNodes = this.NodesGraphUtils.deleteNodeVLsUponMoveToOrFromUCPE(scope.component, node.cy(), node); //delete connected VLs that no longer have 2 links - this.CompositionGraphLinkUtils.deleteLinksWhenNodeMovedFromOrToUCPE(scope.component, node.cy(), node, vlsPendingDeletion); //delete all connected links if needed - this.GeneralGraphUtils.pushUpdateComponentInstanceActionToQueue(scope.component, true, node.data().componentInstance); //update componentInstance position - } - - }); - - this.eventListenerService.registerObserverCallback(GRAPH_EVENTS.ON_REMOVE_NODE_FROM_UCPE, (node:Cy.CollectionNodes, ucpe:Cy.CollectionNodes) => { - this.commonGraphUtils.removeUcpeChildData(node); - let vlsPendingDeletion:Cy.CollectionNodes = this.NodesGraphUtils.deleteNodeVLsUponMoveToOrFromUCPE(scope.component, node.cy(), node); - this.CompositionGraphLinkUtils.deleteLinksWhenNodeMovedFromOrToUCPE(scope.component, node.cy(), node, vlsPendingDeletion); //delete all connected links if needed - this.GeneralGraphUtils.pushUpdateComponentInstanceActionToQueue(scope.component, true, node.data().componentInstance); //update componentInstance position - }); - - this.eventListenerService.registerObserverCallback(GRAPH_EVENTS.ON_VERSION_CHANGED, (component:Models.Components.Component) => { - scope.component = component; - this.loadGraph(scope, el); - }); - - - scope.createLinkFromMenu = (chosenMatch:Models.MatchBase, vl:Models.Components.Component):void => { - scope.isLinkMenuOpen = false; - - this.CompositionGraphLinkUtils.createLinkFromMenu(this._cy, chosenMatch, vl, scope.component); - }; - - scope.hideRelationMenu = () => { - this.commonGraphUtils.safeApply(scope, () => { - scope.linkMenuObject = null; - this.$timeout.cancel(scope.relationMenuTimeout); - }); - }; - - - scope.deleteRelation = (link:Cy.CollectionEdges) => { - scope.hideRelationMenu(); - - //if multiple edges selected, delete the VL itself so edges get deleted automatically - if (this._cy.$('edge:selected').length > 1) { - this.NodesGraphUtils.deleteNode(this._cy, scope.component, this._cy.$('node:selected')); - } else { - this.CompositionGraphLinkUtils.deleteLink(this._cy, scope.component, true, link); - } - }; - } - - - private registerCytoscapeGraphEvents(scope:ICompositionGraphScope) { - - this._cy.on('addedgemouseup', (event, data) => { - scope.relationMenuDirectiveObj = this.CompositionGraphLinkUtils.onLinkDrawn(this._cy, data.source, data.target); - if (scope.relationMenuDirectiveObj != null) { - scope.$apply(() => { - scope.isLinkMenuOpen = true; - }); - } - }); - this._cy.on('tapstart', 'node', (event:Cy.EventObject) => { - this._currentlyCLickedNodePosition = angular.copy(event.cyTarget[0].position()); //update node position on drag - if(event.cyTarget.data().isUcpe){ - this._cy.nodes('.ucpe-cp').unlock(); - event.cyTarget.style('opacity', 0.5); - } - }); - - this._cy.on('drag', 'node', (event:Cy.EventObject) => { - - if (event.cyTarget.data().isDraggable) { - event.cyTarget.style({'overlay-opacity': 0.24}); - if (this.GeneralGraphUtils.isValidDrop(this._cy, event.cyTarget)) { - event.cyTarget.style({'overlay-color': Utils.Constants.GraphColors.NODE_BACKGROUND_COLOR}); - } else { - event.cyTarget.style({'overlay-color': Utils.Constants.GraphColors.NODE_OVERLAPPING_BACKGROUND_COLOR}); - } - } - - if(event.cyTarget.data().isUcpe){ - let pos = event.cyTarget.position(); - - this._cy.nodes('[?isInsideGroup]').positions((i, node)=>{ - return { - x: pos.x + node.data("ucpeOffset").x, - y: pos.y + node.data("ucpeOffset").y - } - }); - } - }); - - - this._cy.on('handlemouseover', (event, payload) => { - - if (payload.node.grabbed()) { //no need to add opacity while we are dragging and hovering othe nodes - return; - } - - let nodesData = this.NodesGraphUtils.getAllNodesData(this._cy.nodes()); - let nodesLinks = this.GeneralGraphUtils.getAllCompositionCiLinks(this._cy); - - let linkableNodes = this.commonGraphUtils.getLinkableNodes(this._cy, payload.node); - let filteredNodesData = this.matchCapabilitiesRequirementsUtils.findByMatchingCapabilitiesToRequirements(payload.node.data().componentInstance, linkableNodes, nodesLinks); - this.matchCapabilitiesRequirementsUtils.highlightMatchingComponents(filteredNodesData, this._cy); - this.matchCapabilitiesRequirementsUtils.fadeNonMachingComponents(filteredNodesData, nodesData, this._cy, payload.node.data()); - - }); - - this._cy.on('handlemouseout', () => { - this._cy.emit('hidehandles'); - this.matchCapabilitiesRequirementsUtils.resetFadedNodes(this._cy); - }); - - - this._cy.on('tapend', (event:Cy.EventObject) => { - - if (event.cyTarget === this._cy) { //On Background clicked - if (this._cy.$('node:selected').length === 0) { //if the background click but not dragged - this.eventListenerService.notifyObservers(Sdc.Utils.Constants.GRAPH_EVENTS.ON_GRAPH_BACKGROUND_CLICKED); - } - scope.hideRelationMenu(); - } - - else if (event.cyTarget.isEdge()) { //On Edge clicked - if (scope.isViewOnly) return; - this.CompositionGraphLinkUtils.handleLinkClick(this._cy, event); - this.openModifyLinkMenu(scope, this.CompositionGraphLinkUtils.getModifyLinkMenu(event.cyTarget[0], event), 6000); - } - - else { //On Node clicked - this._cy.nodes(':grabbed').style({'overlay-opacity': 0}); - - let isUcpe:boolean = event.cyTarget.data().isUcpe; - let newPosition = event.cyTarget[0].position(); - //node position changed (drop after drag event) - we need to update position - if (this._currentlyCLickedNodePosition.x !== newPosition.x || this._currentlyCLickedNodePosition.y !== newPosition.y) { - let nodesMoved:Cy.CollectionNodes = this._cy.$(':grabbed'); - if(isUcpe){ - nodesMoved = nodesMoved.add(this._cy.nodes('[?isInsideGroup]:free')); //'child' nodes will not be recognized as "grabbed" elements within cytoscape. manually add them to collection of nodes moved. - } - this.NodesGraphUtils.onNodesPositionChanged(this._cy, scope.component, nodesMoved); - } else { - this.$log.debug('composition-graph::onNodeSelectedEvent:: fired'); - scope.$apply(() => { - this.eventListenerService.notifyObservers(Sdc.Utils.Constants.GRAPH_EVENTS.ON_NODE_SELECTED, event.cyTarget.data().componentInstance); - }); - } - - if(isUcpe){ - this._cy.nodes('.ucpe-cp').lock(); - event.cyTarget.style('opacity', 1); - } - - } - }); - - this._cy.on('boxselect', 'node', (event:Cy.EventObject) => { - this.eventListenerService.notifyObservers(Utils.Constants.GRAPH_EVENTS.ON_NODE_SELECTED, event.cyTarget.data().componentInstance); - }); - } - - private openModifyLinkMenu = (scope:ICompositionGraphScope, linkMenuObject:Models.LinkMenu, timeOutInMilliseconds?:number) => { - - this.commonGraphUtils.safeApply(scope, () => { - scope.linkMenuObject = linkMenuObject; - }); - - scope.relationMenuTimeout = this.$timeout(() => { - scope.hideRelationMenu(); - }, timeOutInMilliseconds ? timeOutInMilliseconds : 6000); - }; - - private initGraphNodes(componentInstances:Models.ComponentsInstances.ComponentInstance[], isViewOnly:boolean) { - - if (!isViewOnly) { //Init nodes handle extension - enable dynamic links - setTimeout(()=> { - let handles = new CytoscapeEdgeEditation; - handles.init(this._cy, 18); - handles.registerHandle(Sdc.Graph.Utils.ComponentIntanceNodesStyle.getBasicNodeHanlde()); - handles.registerHandle(Sdc.Graph.Utils.ComponentIntanceNodesStyle.getBasicSmallNodeHandle()); - handles.registerHandle(Sdc.Graph.Utils.ComponentIntanceNodesStyle.getUcpeCpNodeHandle()); - }, 0); - } - - _.each(componentInstances, (instance) => { - let compositionGraphNode:Models.Graph.CompositionCiNodeBase = this.NodesFactory.createNode(instance); - this.commonGraphUtils.addComponentInstanceNodeToGraph(this._cy, compositionGraphNode); - }); - - - - } - - - private initDropZone(scope:ICompositionGraphScope) { - - if (scope.isViewOnly) { - return; - } - scope.dropCallback = (event:IDragDropEvent) => { - this.$log.debug(`composition-graph::dropCallback:: fired`); - this.addNode(event, scope); - }; - - scope.verifyDrop = (event:JQueryEventObject) => { - - if(this.dragElement.hasClass('red')){ - return false; - } - return true; - }; - - scope.beforeDropCallback = (event:IDragDropEvent): ng.IPromise => { - let deferred: ng.IDeferred = this.$q.defer(); - if(this.dragElement.hasClass('red')){ - deferred.reject(); - } else { - deferred.resolve(); - } - - return deferred.promise; - } - } - - private _getNodeBBox(event:IDragDropEvent, position?:Cy.Position) { - let bbox = {}; - if (!position) { - position = this.commonGraphUtils.getCytoscapeNodePosition(this._cy, event); - } - let cushionWidth:number = 40; - let cushionHeight:number = 40; - - bbox.x1 = position.x - cushionWidth / 2; - bbox.y1 = position.y - cushionHeight / 2; - bbox.x2 = position.x + cushionWidth / 2; - bbox.y2 = position.y + cushionHeight / 2; - return bbox; - } - - private createComponentInstanceOnGraphFromComponent(fullComponent:Models.Components.Component, event:IDragDropEvent, scope:ICompositionGraphScope) { - - let componentInstanceToCreate:Models.ComponentsInstances.ComponentInstance = this.ComponentInstanceFactory.createComponentInstanceFromComponent(fullComponent); - let cytoscapePosition:Cy.Position = this.commonGraphUtils.getCytoscapeNodePosition(this._cy, event); - - componentInstanceToCreate.posX = cytoscapePosition.x; - componentInstanceToCreate.posY = cytoscapePosition.y; - - - let onFailedCreatingInstance:(error:any) => void = (error:any) => { - this.LoaderService.hideLoader('composition-graph'); - }; - - //on success - update node data - let onSuccessCreatingInstance = (createInstance:Models.ComponentsInstances.ComponentInstance):void => { - - this.LoaderService.hideLoader('composition-graph'); - - createInstance.name = this.$filter('resourceName')(createInstance.name); - createInstance.requirements = new Models.RequirementsGroup(fullComponent.requirements); - createInstance.capabilities = new Models.CapabilitiesGroup(fullComponent.capabilities); - createInstance.componentVersion = fullComponent.version; - createInstance.icon = fullComponent.icon; - createInstance.setInstanceRC(); - - let newNode:Models.Graph.CompositionCiNodeBase = this.NodesFactory.createNode(createInstance); - let cyNode:Cy.CollectionNodes = this.commonGraphUtils.addComponentInstanceNodeToGraph(this._cy, newNode); - - //check if node was dropped into a UCPE - let ucpe:Cy.CollectionElements = this.commonGraphUtils.isInUcpe(this._cy, cyNode.boundingbox()); - if (ucpe.length > 0) { - this.eventListenerService.notifyObservers(Utils.Constants.GRAPH_EVENTS.ON_INSERT_NODE_TO_UCPE, cyNode, ucpe, false); - } - - }; - - // Create the component instance on server - this.GeneralGraphUtils.getGraphUtilsServerUpdateQueue().addBlockingUIAction(() => { - scope.component.createComponentInstance(componentInstanceToCreate).then(onSuccessCreatingInstance, onFailedCreatingInstance); - }); - } - - private _onComponentDrag(event:IDragDropEvent) { - - if(event.clientX < Sdc.Utils.Constants.GraphUIObjects.DIAGRAM_PALETTE_WIDTH_OFFSET || event.clientY < Sdc.Utils.Constants.GraphUIObjects.DIAGRAM_HEADER_OFFSET){ //hovering over palette. Dont bother computing validity of drop - this.dragElement.removeClass('red'); - return; - } - - let offsetPosition = {x: event.clientX - Sdc.Utils.Constants.GraphUIObjects.DIAGRAM_PALETTE_WIDTH_OFFSET, y: event.clientY - Sdc.Utils.Constants.GraphUIObjects.DIAGRAM_HEADER_OFFSET} - let bbox = this._getNodeBBox(event, offsetPosition); - - if (this.GeneralGraphUtils.isPaletteDropValid(this._cy, bbox, this.dragComponent)) { - this.dragElement.removeClass('red'); - } else { - this.dragElement.addClass('red'); - } - } - - private addNode(event:IDragDropEvent, scope:ICompositionGraphScope) { - this.LoaderService.showLoader('composition-graph'); - - this.$log.debug('composition-graph::addNode:: fired'); - let draggedComponent:Models.Components.Component = event.dataTransfer.component; - - if (this.GeneralGraphUtils.componentRequirementsAndCapabilitiesCaching.containsKey(draggedComponent.uniqueId)) { - this.$log.debug('composition-graph::addNode:: capabilities found in cache, creating component'); - let fullComponent = this.GeneralGraphUtils.componentRequirementsAndCapabilitiesCaching.getValue(draggedComponent.uniqueId); - this.createComponentInstanceOnGraphFromComponent(fullComponent, event, scope); - return; - } - - this.$log.debug('composition-graph::addNode:: capabilities not found, requesting from server'); - this.ComponentFactory.getComponentFromServer(draggedComponent.getComponentSubType(), draggedComponent.uniqueId) - .then((fullComponent:Models.Components.Component) => { - this.createComponentInstanceOnGraphFromComponent(fullComponent, event, scope); - }); - } - - public static factory = ($q, - $filter, - $log, - $timeout, - NodesFactory, - LinksGraphUtils, - GeneralGraphUtils, - ComponentInstanceFactory, - NodesGraphUtils, - EventListenerService, - ComponentFactory, - LoaderService, - CommonGraphUtils, - MatchCapabilitiesRequirementsUtils) => { - return new CompositionGraph( - $q, - $filter, - $log, - $timeout, - NodesFactory, - LinksGraphUtils, - GeneralGraphUtils, - ComponentInstanceFactory, - NodesGraphUtils, - EventListenerService, - ComponentFactory, - LoaderService, - CommonGraphUtils, - MatchCapabilitiesRequirementsUtils); - } - } - - CompositionGraph.factory.$inject = [ - '$q', - '$filter', - '$log', - '$timeout', - 'NodesFactory', - 'CompositionGraphLinkUtils', - 'CompositionGraphGeneralUtils', - 'ComponentInstanceFactory', - 'CompositionGraphNodesUtils', - 'EventListenerService', - 'ComponentFactory', - 'LoaderService', - 'CommonGraphUtils', - 'MatchCapabilitiesRequirementsUtils' - ]; -} \ No newline at end of file diff --git a/catalog-ui/app/scripts/directives/graphs-v2/composition-graph/composition-graph.html b/catalog-ui/app/scripts/directives/graphs-v2/composition-graph/composition-graph.html deleted file mode 100644 index 5f2c488341..0000000000 --- a/catalog-ui/app/scripts/directives/graphs-v2/composition-graph/composition-graph.html +++ /dev/null @@ -1,22 +0,0 @@ - -
    -
    - - - - -
    - -
    -
    - - Delete -
    - -
    diff --git a/catalog-ui/app/scripts/directives/graphs-v2/composition-graph/composition-graph.less b/catalog-ui/app/scripts/directives/graphs-v2/composition-graph/composition-graph.less deleted file mode 100644 index 7b999967b7..0000000000 --- a/catalog-ui/app/scripts/directives/graphs-v2/composition-graph/composition-graph.less +++ /dev/null @@ -1,14 +0,0 @@ -composition-graph { - display: block; - - height:100%; - width: 100%; - .sdc-composition-graph-wrapper{ - height:100%; - width: 100%; - } - - &.view-only{ - background-color:rgb(248, 248, 248); - } -} \ No newline at end of file diff --git a/catalog-ui/app/scripts/directives/graphs-v2/composition-graph/utils/composition-graph-general-utils.ts b/catalog-ui/app/scripts/directives/graphs-v2/composition-graph/utils/composition-graph-general-utils.ts deleted file mode 100644 index 495a243d75..0000000000 --- a/catalog-ui/app/scripts/directives/graphs-v2/composition-graph/utils/composition-graph-general-utils.ts +++ /dev/null @@ -1,243 +0,0 @@ -/// -module Sdc.Graph.Utils { - - import Dictionary = Sdc.Utils.Dictionary; - - export class CompositionGraphGeneralUtils { - - public componentRequirementsAndCapabilitiesCaching = new Dictionary(); - protected static graphUtilsUpdateQueue: Sdc.Utils.Functions.QueueUtils; - - constructor(private $q: ng.IQService, - private LoaderService: Services.LoaderService, - private commonGraphUtils: Sdc.Graph.Utils.CommonGraphUtils, - private matchCapabilitiesRequirementsUtils: Graph.Utils.MatchCapabilitiesRequirementsUtils) { - CompositionGraphGeneralUtils.graphUtilsUpdateQueue = new Sdc.Utils.Functions.QueueUtils(this.$q); - } - - - /** - * Get the offset for the link creation Menu - * @param point - * @returns {Cy.Position} - */ - public calcMenuOffset: Function = (point: Cy.Position): Cy.Position => { - point.x = point.x + 60; - point.y = point.y + 105; - return point; - }; - - /** - * return the top left position of the link menu - * @param cy - * @param targetNodePosition - * @returns {Cy.Position} - */ - public getLinkMenuPosition = (cy: Cy.Instance, targetNodePosition: Cy.Position) => { - let menuPosition: Cy.Position = this.calcMenuOffset(targetNodePosition); //get the link mid point - if (document.body.scrollHeight < menuPosition.y + Sdc.Utils.Constants.GraphUIObjects.LINK_MENU_HEIGHT + $(document.getElementsByClassName('sdc-composition-graph-wrapper')).offset().top) { // if position menu is overflow bottom - menuPosition.y = document.body.scrollHeight - Sdc.Utils.Constants.GraphUIObjects.TOP_HEADER_HEIGHT - Sdc.Utils.Constants.GraphUIObjects.LINK_MENU_HEIGHT; - } - return menuPosition; - }; - - - /** - * will return true/false if two nodes overlapping - * - * @param graph node - */ - private isNodesOverlapping(node: Cy.CollectionFirstNode, draggedNode: Cy.CollectionFirstNode): boolean { - - let nodeBoundingBox: Cy.BoundingBox = node.renderedBoundingBox(); - let secondNodeBoundingBox: Cy.BoundingBox = draggedNode.renderedBoundingBox(); - - return this.isBBoxOverlapping(nodeBoundingBox, secondNodeBoundingBox); - } - - /** - * Checks whether the bounding boxes of two nodes are overlapping on any side - * @param nodeOneBBox - * @param nodeTwoBBox - * @returns {boolean} - */ - private isBBoxOverlapping(nodeOneBBox: Cy.BoundingBox, nodeTwoBBox: Cy.BoundingBox) { - return (((nodeOneBBox.x1 < nodeTwoBBox.x1 && nodeOneBBox.x2 > nodeTwoBBox.x1) || - (nodeOneBBox.x1 < nodeTwoBBox.x2 && nodeOneBBox.x2 > nodeTwoBBox.x2) || - (nodeTwoBBox.x1 < nodeOneBBox.x1 && nodeTwoBBox.x2 > nodeOneBBox.x2)) && - ((nodeOneBBox.y1 < nodeTwoBBox.y1 && nodeOneBBox.y2 > nodeTwoBBox.y1) || - (nodeOneBBox.y1 < nodeTwoBBox.y2 && nodeOneBBox.y2 > nodeTwoBBox.y2) || - (nodeTwoBBox.y1 < nodeOneBBox.y1 && nodeTwoBBox.y2 > nodeOneBBox.y2))) - } - - - /** - * Checks whether a specific component instance can be hosted on the UCPE instance - * @param cy - Cytoscape instance - * @param fromUcpeInstance - * @param toComponentInstance - * @returns {Models.MatchReqToCapability} - */ - public canBeHostedOn(cy: Cy.Instance, fromUcpeInstance: Models.ComponentsInstances.ComponentInstance, toComponentInstance: Models.ComponentsInstances.ComponentInstance): Models.MatchReqToCapability { - - let matches: Array = this.matchCapabilitiesRequirementsUtils.getMatchedRequirementsCapabilities(fromUcpeInstance, toComponentInstance, this.getAllCompositionCiLinks(cy)); - let hostedOnMatch: Models.MatchBase = _.find(matches, (match: Models.MatchReqToCapability) => { - return match.requirement.capability.toLowerCase() === 'tosca.capabilities.container'; - }); - - return hostedOnMatch; - }; - - - /** - * Checks whether node can be dropped into UCPE - * @param cy - * @param nodeToInsert - * @param ucpeNode - * @returns {boolean} - */ - private isValidDropInsideUCPE(cy: Cy.Instance, nodeToInsert: Models.ComponentsInstances.ComponentInstance, ucpeNode: Models.ComponentsInstances.ComponentInstance): boolean { - - let hostedOnMatch: Models.MatchReqToCapability = this.canBeHostedOn(cy, ucpeNode, nodeToInsert); - let result: boolean = !angular.isUndefined(hostedOnMatch) || nodeToInsert.isVl(); //group validation - return result; - - }; - - - /** - * For drops from palette, checks whether the node can be dropped. If node is being held over another node, check if capable of hosting - * @param cy - * @param pseudoNodeBBox - * @param paletteComponentInstance - * @returns {boolean} - */ - public isPaletteDropValid(cy: Cy.Instance, pseudoNodeBBox: Cy.BoundingBox, paletteComponentInstance:Sdc.Models.ComponentsInstances.ComponentInstance) { - - let componentIsUCPE:boolean = (paletteComponentInstance.capabilities && paletteComponentInstance.capabilities['tosca.capabilities.Container'] && paletteComponentInstance.name.toLowerCase().indexOf('ucpe') > -1); - - if(componentIsUCPE && cy.nodes('[?isUcpe]').length > 0) { //second UCPE not allowed - return false; - } - - let illegalOverlappingNodes = _.filter(cy.nodes("[isSdcElement]"), (graphNode: Cy.CollectionFirstNode) => { - - if(this.isBBoxOverlapping(pseudoNodeBBox, graphNode.renderedBoundingBox())){ - if (!componentIsUCPE && graphNode.data().isUcpe) { - return !this.isValidDropInsideUCPE(cy, paletteComponentInstance, graphNode.data().componentInstance); //if this is valid insert into ucpe, we return false - no illegal overlapping nodes - } - return true; - } - - return false; - }); - - return illegalOverlappingNodes.length === 0; - } - - /** - * will return true/false if a drop of a single node is valid - * - * @param graph node - */ - public isValidDrop(cy: Cy.Instance, draggedNode: Cy.CollectionFirstNode): boolean { - - let illegalOverlappingNodes = _.filter(cy.nodes("[isSdcElement]"), (graphNode: Cy.CollectionFirstNode) => { //all sdc nodes, removing child nodes (childe node allways collaps - - if (draggedNode.data().isUcpe && (graphNode.isChild() || graphNode.data().isInsideGroup)) { //ucpe cps always inside ucpe, no overlapping - return false; - } - if(draggedNode.data().isInsideGroup && (!draggedNode.active() || graphNode.data().isUcpe)) { - return false; - } - - if (!draggedNode.data().isUcpe && !(draggedNode.data() instanceof Sdc.Models.Graph.CompositionCiNodeUcpeCp) && graphNode.data().isUcpe) { //case we are dragging a node into UCPE - let isEntirelyInUCPE:boolean = this.commonGraphUtils.isFirstBoxContainsInSecondBox(draggedNode.renderedBoundingBox(), graphNode.renderedBoundingBox()); - if (isEntirelyInUCPE){ - if(this.isValidDropInsideUCPE(cy, draggedNode.data().componentInstance, graphNode.data().componentInstance)){ //if this is valid insert into ucpe, we return false - no illegal overlapping nodes - return false; - } - } - } - return graphNode.data().id !== draggedNode.data().id && this.isNodesOverlapping(draggedNode, graphNode); - - }); - // return false; - return illegalOverlappingNodes.length === 0; - }; - - /** - * will return true/false if the move of the nodes is valid (no node overlapping and verifying if insert into UCPE is valid) - * - * @param nodesArray - the selected drags nodes - */ - public isGroupValidDrop(cy: Cy.Instance, nodesArray: Cy.CollectionNodes): boolean { - var filterDraggedNodes = nodesArray.filter('[?isDraggable]'); - let isValidDrop = _.every(filterDraggedNodes, (node: Cy.CollectionFirstNode) => { - return this.isValidDrop(cy, node); - - }); - return isValidDrop; - }; - - /** - * get all links in diagram - * @param cy - * @returns {any[]|boolean[]} - */ - public getAllCompositionCiLinks = (cy: Cy.Instance): Array => { - return _.map(cy.edges("[isSdcElement]"), (edge: Cy.CollectionEdges) => { - return edge.data(); - }); - }; - - - /** - * Get Graph Utils server queue - * @returns {Sdc.Utils.Functions.QueueUtils} - */ - public getGraphUtilsServerUpdateQueue(): Sdc.Utils.Functions.QueueUtils { - return CompositionGraphGeneralUtils.graphUtilsUpdateQueue; - } - ; - - /** - * - * @param blockAction - true/false if this is a block action - * @param instances - * @param component - */ - public pushMultipleUpdateComponentInstancesRequestToQueue = (blockAction: boolean, instances: Array, component: Models.Components.Component): void => { - if (blockAction) { - this.getGraphUtilsServerUpdateQueue().addBlockingUIAction( - () => component.updateMultipleComponentInstances(instances) - ); - } else { - this.getGraphUtilsServerUpdateQueue().addNonBlockingUIAction( - () => component.updateMultipleComponentInstances(instances), - () => this.LoaderService.hideLoader('composition-graph')); - } - }; - - /** - * this function will update component instance data - * @param blockAction - true/false if this is a block action - * @param updatedInstance - */ - public pushUpdateComponentInstanceActionToQueue = (component: Models.Components.Component, blockAction: boolean, updatedInstance: Models.ComponentsInstances.ComponentInstance): void => { - - if (blockAction) { - this.LoaderService.showLoader('composition-graph'); - this.getGraphUtilsServerUpdateQueue().addBlockingUIAction( - () => component.updateComponentInstance(updatedInstance) - ); - } else { - this.getGraphUtilsServerUpdateQueue().addNonBlockingUIAction( - () => component.updateComponentInstance(updatedInstance), - () => this.LoaderService.hideLoader('composition-graph')); - } - }; - } - - CompositionGraphGeneralUtils.$inject = ['$q', 'LoaderService', 'CommonGraphUtils', 'MatchCapabilitiesRequirementsUtils']; -} \ No newline at end of file diff --git a/catalog-ui/app/scripts/directives/graphs-v2/composition-graph/utils/composition-graph-links-utils.ts b/catalog-ui/app/scripts/directives/graphs-v2/composition-graph/utils/composition-graph-links-utils.ts deleted file mode 100644 index 602e6b6def..0000000000 --- a/catalog-ui/app/scripts/directives/graphs-v2/composition-graph/utils/composition-graph-links-utils.ts +++ /dev/null @@ -1,347 +0,0 @@ -/** - * Created by obarda on 6/28/2016. - */ -/// -module Sdc.Graph.Utils { - - import ImageCreatorService = Sdc.Utils.ImageCreatorService; - import Module = Sdc.Models.Module; - export class CompositionGraphLinkUtils { - - private p2pVL:Models.Components.Component; - private mp2mpVL:Models.Components.Component; - - constructor(private linksFactory:Sdc.Utils.LinksFactory, - private loaderService:Services.LoaderService, - private generalGraphUtils:Sdc.Graph.Utils.CompositionGraphGeneralUtils, - private leftPaletteLoaderService:Services.Components.LeftPaletteLoaderService, - private componentInstanceFactory:Sdc.Utils.ComponentInstanceFactory, - private nodesFactory:Sdc.Utils.NodesFactory, - private commonGraphUtils: Sdc.Graph.Utils.CommonGraphUtils, - private matchCapabilitiesRequirementsUtils: Graph.Utils.MatchCapabilitiesRequirementsUtils) { - - this.initScopeVls(); - - } - - - /** - * Delete the link on server and then remove it from graph - * @param component - * @param releaseLoading - true/false release the loader when finished - * @param link - the link to delete - */ - public deleteLink = (cy:Cy.Instance, component:Models.Components.Component, releaseLoading:boolean, link:Cy.CollectionEdges) => { - - this.loaderService.showLoader('composition-graph'); - let onSuccessDeleteRelation = (response) => { - cy.remove(link); - }; - - if (!releaseLoading) { - this.generalGraphUtils.getGraphUtilsServerUpdateQueue().addBlockingUIAction( - () => component.deleteRelation(link.data().relation).then(onSuccessDeleteRelation) - ); - } else { - this.generalGraphUtils.getGraphUtilsServerUpdateQueue().addBlockingUIActionWithReleaseCallback( - () => component.deleteRelation(link.data().relation).then(onSuccessDeleteRelation), - () => this.loaderService.hideLoader('composition-graph')); - } - }; - - /** - * create the link on server and than draw it on graph - * @param link - the link to create - * @param cy - * @param component - */ - public createLink = (link:Models.CompositionCiLinkBase, cy:Cy.Instance, component:Models.Components.Component):void => { - - this.loaderService.showLoader('composition-graph'); - - let onSuccess:(response:Models.RelationshipModel) => void = (relation:Models.RelationshipModel) => { - link.setRelation(relation); - this.commonGraphUtils.insertLinkToGraph(cy, link); - }; - - link.updateLinkDirection(); - - this.generalGraphUtils.getGraphUtilsServerUpdateQueue().addBlockingUIActionWithReleaseCallback( - () => component.createRelation(link.relation).then(onSuccess), - () => this.loaderService.hideLoader('composition-graph') - ); - }; - - - public initScopeVls = ():void => { - - let vls = this.leftPaletteLoaderService.getFullDataComponentList(Sdc.Utils.Constants.ResourceType.VL); - vls.forEach((item) => { - let key = _.find(Object.keys(item.capabilities), (key) => { - return _.includes(key.toLowerCase(), 'linkable'); - }); - let linkable = item.capabilities[key]; - if (linkable) { - if (linkable[0].maxOccurrences == '2') { - this.p2pVL = _.find(vls, (component:Models.Components.Component) => { - return component.uniqueId === item.uniqueId; - }); - - } else {//assuming unbounded occurrences - this.mp2mpVL = _.find(vls, (component:Models.Components.Component) => { - return component.uniqueId === item.uniqueId; - }); - } - } - }); - }; - - private setVLlinks = (match:Models.MatchReqToReq, vl:Models.ComponentsInstances.ComponentInstance):Array => { - - let relationship1 = new Models.Relationship(); - let relationship2 = new Models.Relationship(); - let newRelationshipModel1 = new Models.RelationshipModel(); - let newRelationshipModel2 = new Models.RelationshipModel(); - - let capability:Models.Capability = vl.capabilities.findValueByKey('linkable')[0]; - relationship1.setRelationProperties(capability, match.requirement); - relationship2.setRelationProperties(capability, match.secondRequirement); - - newRelationshipModel1.setRelationshipModelParams(match.fromNode, vl.uniqueId, [relationship1]); - newRelationshipModel2.setRelationshipModelParams(match.toNode, vl.uniqueId, [relationship2]); - - return [newRelationshipModel1, newRelationshipModel2]; - }; - - private createVlinks = (cy:Cy.Instance, component:Models.Components.Component, matchReqToReq:Models.MatchReqToReq, vl:Models.Components.Component):void => { - - let componentInstance:Models.ComponentsInstances.ComponentInstance = this.componentInstanceFactory.createComponentInstanceFromComponent(vl); - let fromNodePosition:Cy.Position = cy.getElementById(matchReqToReq.fromNode).relativePosition(); - let toNodePosition:Cy.Position = cy.getElementById(matchReqToReq.toNode).relativePosition(); - let location:Cy.Position = { - x: 0.5 * (fromNodePosition.x + toNodePosition.x), - y: 0.5 * (fromNodePosition.y + toNodePosition.y) - } - - componentInstance.posX = location.x; - componentInstance.posY = location.y; - - let onFailed:(error:any) => void = (error:any) => { - this.loaderService.hideLoader('composition-graph'); - console.info('onFailed', error); - }; - - let onSuccess = (response:Models.ComponentsInstances.ComponentInstance):void => { - - console.info('onSuccses', response); - response.requirements = new Models.RequirementsGroup(vl.requirements); - response.capabilities = new Models.CapabilitiesGroup(vl.capabilities); - response.componentVersion = vl.version; - response.setInstanceRC(); - - let newLinks = this.setVLlinks(matchReqToReq, response); - let newNode = this.nodesFactory.createNode(response); - - this.commonGraphUtils.addComponentInstanceNodeToGraph(cy, newNode); - - _.forEach(newLinks, (link) => { - let linkObg:Models.CompositionCiLinkBase = this.linksFactory.createGraphLink(cy, link, link.relationships[0]); - this.createLink(linkObg, cy, component); - }); - }; - component.createComponentInstance(componentInstance).then(onSuccess, onFailed); - }; - - private createSimpleLink = (match:Models.MatchReqToCapability, cy:Cy.Instance, component:Models.Components.Component):void => { - let newRelation:Models.RelationshipModel = match.matchToRelationModel(); - let linkObg:Models.CompositionCiLinkBase = this.linksFactory.createGraphLink(cy,newRelation, newRelation.relationships[0]); - this.createLink(linkObg, cy, component); - }; - - public createLinkFromMenu = (cy:Cy.Instance, chosenMatch:Models.MatchBase, vl:Models.Components.Component, component:Models.Components.Component):void => { - - if (chosenMatch) { - if (chosenMatch && chosenMatch instanceof Models.MatchReqToReq) { - this.createVlinks(cy, component, chosenMatch, vl); //TODO orit implement - } - if (chosenMatch && chosenMatch instanceof Models.MatchReqToCapability) { - this.createSimpleLink(chosenMatch, cy, component); - } - } - }; - - - /** - * Filters the matches for UCPE links so that shown requirements and capabilites are only related to the selected ucpe-cp - * @param fromNode - * @param toNode - * @param matchesArray - * @returns {Array} - */ - public filterUcpeLinks(fromNode: Models.Graph.CompositionCiNodeBase, toNode: Models.Graph.CompositionCiNodeBase, matchesArray: Array): any { - - let matchLink: Array; - - if (fromNode.isUcpePart) { - matchLink = _.filter(matchesArray, (match: Models.MatchBase) => { - return match.isOwner(fromNode.id); - }); - } - - if (toNode.isUcpePart) { - matchLink = _.filter(matchesArray, (match: Models.MatchBase) => { - return match.isOwner(toNode.id); - }); - } - return matchLink ? matchLink : matchesArray; - } - - - /** - * open the connect link menu if the link drawn is valid - match requirements & capabilities - * @param cy - * @param fromNode - * @param toNode - * @returns {any} - */ - public onLinkDrawn(cy:Cy.Instance, fromNode:Cy.CollectionFirstNode, toNode:Cy.CollectionFirstNode):Models.RelationMenuDirectiveObj { - - if(!this.commonGraphUtils.nodeLocationsCompatible(cy, fromNode, toNode)){ return null; } - let linkModel:Array = this.generalGraphUtils.getAllCompositionCiLinks(cy); - - let possibleRelations:Array = this.matchCapabilitiesRequirementsUtils.getMatchedRequirementsCapabilities(fromNode.data().componentInstance, - toNode.data().componentInstance, linkModel, this.mp2mpVL); //TODO orit - add p2p and mp2mp - - //filter relations found to limit to specific ucpe-cp - possibleRelations = this.filterUcpeLinks(fromNode.data(), toNode.data(), possibleRelations); - - //if found possibleRelations between the nodes we create relation menu directive and open the link menu - if (possibleRelations.length) { - let menuPosition = this.generalGraphUtils.getLinkMenuPosition(cy, toNode.renderedPoint()); - return new Models.RelationMenuDirectiveObj(fromNode.data(), toNode.data(), this.mp2mpVL, this.p2pVL, menuPosition, possibleRelations); - } - return null; - }; - - - /** - * when we drag instance in to UCPE or out of UCPE - get all links we need to delete - one node in ucpe and one node outside of ucpe - * @param node - the node we dragged into or out of the ucpe - */ - public deleteLinksWhenNodeMovedFromOrToUCPE(component:Models.Components.Component, cy:Cy.Instance, nodeMoved:Cy.CollectionNodes, vlsPendingDeletion?:Cy.CollectionNodes):void { - - - let linksToDelete:Cy.CollectionElements = cy.collection(); - _.forEach(nodeMoved.neighborhood('node'), (neighborNode)=>{ - - if(neighborNode.data().isUcpePart){ //existing connections to ucpe or ucpe-cp - we want to delete even though nodeLocationsCompatible will technically return true - linksToDelete = linksToDelete.add(nodeMoved.edgesWith(neighborNode)); // This will delete the ucpe-host-link, or the vl-ucpe-link if nodeMoved is vl - } else if(!this.commonGraphUtils.nodeLocationsCompatible(cy, nodeMoved, neighborNode)){ //connection to regular node or vl - check if locations are compatible - if(!vlsPendingDeletion || !vlsPendingDeletion.intersect(neighborNode).length){ //Check if this is a link to a VL pending deletion, to prevent double deletion of between the node moved and vl - linksToDelete = linksToDelete.add(nodeMoved.edgesWith(neighborNode)); - } - } - }); - - - - linksToDelete.each((i, link)=>{ - this.deleteLink(cy, component, false, link); - }); - - }; - - - /** - * Creates a hostedOn link between a VF and UCPE - * @param component - * @param cy - * @param ucpeNode - * @param vfNode - */ - public createVfToUcpeLink = (component: Models.Components.Component, cy:Cy.Instance, ucpeNode:Models.Graph.NodeUcpe, vfNode:Models.Graph.CompositionCiNodeVf):void => { - let hostedOnMatch:Models.MatchReqToCapability = this.generalGraphUtils.canBeHostedOn(cy, ucpeNode.componentInstance, vfNode.componentInstance); - /* create relation */ - let newRelation = new Models.RelationshipModel(); - newRelation.fromNode = ucpeNode.id; - newRelation.toNode = vfNode.id; - - let link:Models.CompositionCiLinkBase = this.linksFactory.createUcpeHostLink(newRelation); - link.relation = hostedOnMatch.matchToRelationModel(); - this.createLink(link, cy, component); - }; - - - /** - * Handles click event on links. - * If one edge selected: do nothing. - /*Two edges selected - always select all - /* Three or more edges: first click - select all, secondary click - select single. - * @param cy - * @param event - */ - public handleLinkClick(cy:Cy.Instance, event : Cy.EventObject) { - if(cy.$('edge:selected').length > 2 && event.cyTarget[0].selected()) { - cy.$(':selected').unselect(); - } else { - - let vl: Cy.CollectionNodes = event.cyTarget[0].target('.vl-node'); - let connectedEdges:Cy.CollectionEdges = vl.connectedEdges(); - if (vl.length && connectedEdges.length > 1) { - - setTimeout(() => { - vl.select(); - connectedEdges.select(); - }, 0); - } - } - - } - - - /** - * Calculates the position for the menu that modifies an existing link - * @param event - * @param elementWidth - * @param elementHeight - * @returns {Sdc.Models.Graph.Point} - */ - public calculateLinkMenuPosition(event, elementWidth, elementHeight): Sdc.Models.Graph.Point { - let point: Sdc.Models.Graph.Point = new Sdc.Models.Graph.Point(event.originalEvent.x,event.originalEvent.y); - if(event.originalEvent.view.screen.height-elementHeight -module Sdc.Graph.Utils { - - export class CompositionGraphNodesUtils { - constructor(private NodesFactory:Sdc.Utils.NodesFactory, private $log:ng.ILogService, - private GeneralGraphUtils:Graph.Utils.CompositionGraphGeneralUtils, - private commonGraphUtils: Sdc.Graph.Utils.CommonGraphUtils, - private eventListenerService: Services.EventListenerService, - private loaderService:Services.LoaderService) { - - } - - /** - * Returns component instances for all nodes passed in - * @param nodes - Cy nodes - * @returns {any[]} - */ - public getAllNodesData(nodes:Cy.CollectionNodes) { - return _.map(nodes, (node:Cy.CollectionFirstNode)=> { - return node.data(); - }) - }; - - /** - * Deletes component instances on server and then removes it from the graph as well - * @param cy - * @param component - * @param nodeToDelete - */ - public deleteNode(cy: Cy.Instance, component:Models.Components.Component, nodeToDelete:Cy.CollectionNodes):void { - - this.loaderService.showLoader('composition-graph'); - let onSuccess:(response:Models.ComponentsInstances.ComponentInstance) => void = (response:Models.ComponentsInstances.ComponentInstance) => { - console.info('onSuccess', response); - - //if node to delete is a UCPE, remove all children (except UCPE-CPs) and remove their "hostedOn" links - if (nodeToDelete.data().isUcpe){ - _.each(cy.nodes('[?isInsideGroup]'), (node)=>{ - this.eventListenerService.notifyObservers(Sdc.Utils.Constants.GRAPH_EVENTS.ON_REMOVE_NODE_FROM_UCPE, node, nodeToDelete); - }); - } - - //check whether the node is connected to any VLs that only have one other connection. If so, delete that VL as well - if(!(nodeToDelete.data() instanceof Sdc.Models.Graph.CompositionCiNodeVl)){ - let connectedVls:Array = this.getConnectedVlToNode(nodeToDelete); - this.handleConnectedVlsToDelete(connectedVls); - } - - //update UI - cy.remove(nodeToDelete); - - }; - - let onFailed:(response:any) => void = (response:any) => { - console.info('onFailed', response); - }; - - - this.GeneralGraphUtils.getGraphUtilsServerUpdateQueue().addBlockingUIActionWithReleaseCallback( - () => component.deleteComponentInstance(nodeToDelete.data().componentInstance.uniqueId).then(onSuccess, onFailed), - () => this.loaderService.hideLoader('composition-graph') - ); - - }; - - - /** - * Finds all VLs connected to a single node - * @param node - * @returns {Array} - */ - public getConnectedVlToNode = (node: Cy.CollectionNodes): Array => { - let connectedVls: Array = new Array(); - _.forEach(node.connectedEdges().connectedNodes(), (node: Cy.CollectionFirstNode) => { - if (node.data() instanceof Models.Graph.CompositionCiNodeVl) { - connectedVls.push(node); - } - }); - return connectedVls; - }; - - - /** - * Delete all VLs that have only two connected nodes (this function is called when deleting a node) - * @param connectedVls - */ - public handleConnectedVlsToDelete = (connectedVls: Array) => { - _.forEach(connectedVls, (vlToDelete: Cy.CollectionNodes) => { - - if (vlToDelete.connectedEdges().length === 2) { // if vl connected only to 2 nodes need to delete the vl - this.eventListenerService.notifyObservers(Sdc.Utils.Constants.GRAPH_EVENTS.ON_DELETE_COMPONENT_INSTANCE, vlToDelete.data().componentInstance); - } - }); - }; - - - /** - * This function is called when moving a node in or out of UCPE. - * Deletes all connected VLs that have less than 2 valid connections remaining after the move - * Returns the collection of vls that are in the process of deletion (async) to prevent duplicate calls while deletion is in progress - * @param component - * @param cy - * @param node - node that was moved in/out of ucpe - */ - public deleteNodeVLsUponMoveToOrFromUCPE = (component:Models.Components.Component, cy:Cy.Instance, node:Cy.CollectionNodes):Cy.CollectionNodes =>{ - if(node.data() instanceof Models.Graph.CompositionCiNodeVl){ return;} - - let connectedVLsToDelete:Cy.CollectionNodes = cy.collection(); - _.forEach(node.neighborhood('node'), (connectedNode) => { - - //Find all neighboring nodes that are VLs - if(connectedNode.data() instanceof Models.Graph.CompositionCiNodeVl){ - - //check VL's neighbors to see if it has 2 or more nodes whose location is compatible with VL (regardless of whether VL is in or out of UCPE) - let compatibleNodeCount = 0; - let vlNeighborhood = connectedNode.neighborhood('node'); - _.forEach(vlNeighborhood, (vlNeighborNode)=>{ - if(this.commonGraphUtils.nodeLocationsCompatible(cy, connectedNode, vlNeighborNode)) { - compatibleNodeCount ++; - } - }); - - if(compatibleNodeCount < 2) { - connectedVLsToDelete = connectedVLsToDelete.add(connectedNode); - } - } - }); - - connectedVLsToDelete.each((i, vlToDelete:Cy.CollectionNodes)=>{ - this.deleteNode(cy, component, vlToDelete); - }); - return connectedVLsToDelete; - }; - - /** - * This function will update nodes position. if the new position is into or out of ucpe, the node will trigger the ucpe events - * @param cy - * @param component - * @param nodesMoved - the node/multiple nodes now moved by the user - */ - public onNodesPositionChanged = (cy: Cy.Instance, component:Models.Components.Component, nodesMoved: Cy.CollectionNodes): void => { - - if (nodesMoved.length === 0) { - return; - } - - let isValidMove:boolean = this.GeneralGraphUtils.isGroupValidDrop(cy, nodesMoved); - if (isValidMove) { - - this.$log.debug(`composition-graph::ValidDrop:: updating node position`); - let instancesToUpdateInNonBlockingAction:Array = new Array(); - - _.each(nodesMoved, (node:Cy.CollectionFirstNode)=> { //update all nodes new position - - if(node.data().isUcpePart && !node.data().isUcpe){ return; }//No need to update UCPE-CPs - - //update position - let newPosition:Cy.Position = this.commonGraphUtils.getNodePosition(node); - node.data().componentInstance.updatePosition(newPosition.x, newPosition.y); - - //check if node moved to or from UCPE - let ucpe = this.commonGraphUtils.isInUcpe(node.cy(), node.boundingbox()); - if(node.data().isInsideGroup || ucpe.length) { - this.handleUcpeChildMove(node, ucpe, instancesToUpdateInNonBlockingAction); - } else { - instancesToUpdateInNonBlockingAction.push(node.data().componentInstance); - } - - }); - - if (instancesToUpdateInNonBlockingAction.length > 0) { - this.GeneralGraphUtils.pushMultipleUpdateComponentInstancesRequestToQueue(false, instancesToUpdateInNonBlockingAction, component); - } - } else { - this.$log.debug(`composition-graph::notValidDrop:: node return to latest position`); - //reset nodes position - nodesMoved.positions((i, node) => { - return { - x: +node.data().componentInstance.posX, - y: +node.data().componentInstance.posY - }; - }) - } - - this.GeneralGraphUtils.getGraphUtilsServerUpdateQueue().addBlockingUIActionWithReleaseCallback(() => { - }, () => { - this.loaderService.hideLoader('composition-graph'); - }); - - }; - - /** - * Checks whether the node has been added or removed from UCPE and triggers appropriate events - * @param node - node moved - * @param ucpeContainer - UCPE container that the node has been moved to. When moving a node out of ucpe, param will be empty - * @param instancesToUpdateInNonBlockingAction - */ - public handleUcpeChildMove(node:Cy.CollectionFirstNode, ucpeContainer:Cy.CollectionElements, instancesToUpdateInNonBlockingAction:Array){ - - if(node.data().isInsideGroup){ - if(ucpeContainer.length){ //moving node within UCPE. Simply update position - this.commonGraphUtils.updateUcpeChildPosition(node, ucpeContainer); - instancesToUpdateInNonBlockingAction.push(node.data().componentInstance); - } else { //removing node from UCPE. Notify observers - this.eventListenerService.notifyObservers(Sdc.Utils.Constants.GRAPH_EVENTS.ON_REMOVE_NODE_FROM_UCPE, node, ucpeContainer); - } - } else if(!node.data().isInsideGroup && ucpeContainer.length && !node.data().isUcpePart){ //adding node to UCPE - this.eventListenerService.notifyObservers(Sdc.Utils.Constants.GRAPH_EVENTS.ON_INSERT_NODE_TO_UCPE, node, ucpeContainer, true); - } - } - - } - - - CompositionGraphNodesUtils.$inject = ['NodesFactory', '$log', 'CompositionGraphGeneralUtils', 'CommonGraphUtils', 'EventListenerService', 'LoaderService']; -} \ No newline at end of file diff --git a/catalog-ui/app/scripts/directives/graphs-v2/composition-graph/utils/match-capability-requierment-utils.ts b/catalog-ui/app/scripts/directives/graphs-v2/composition-graph/utils/match-capability-requierment-utils.ts deleted file mode 100644 index 5a401df317..0000000000 --- a/catalog-ui/app/scripts/directives/graphs-v2/composition-graph/utils/match-capability-requierment-utils.ts +++ /dev/null @@ -1,265 +0,0 @@ -/** - * Created by obarda on 1/1/2017. - */ -/// -module Sdc.Graph.Utils { - - export class MatchCapabilitiesRequirementsUtils { - - constructor() { - } - - - - public static linkable(requirement1:Models.Requirement, requirement2:Models.Requirement, vlCapability:Models.Capability):boolean { - return MatchCapabilitiesRequirementsUtils.isMatch(requirement1, vlCapability) && MatchCapabilitiesRequirementsUtils.isMatch(requirement2, vlCapability); - }; - - - /** - * Shows + icon in corner of each node passed in - * @param filteredNodesData - * @param cy - */ - public highlightMatchingComponents(filteredNodesData, cy:Cy.Instance) { - _.each(filteredNodesData, (data:any) => { - let node = cy.getElementById(data.id); - cy.emit('showhandle', [node]); - }); - } - - /** - * Adds opacity to each node that cannot be linked to hovered node - * @param filteredNodesData - * @param nodesData - * @param cy - * @param hoveredNodeData - */ - public fadeNonMachingComponents(filteredNodesData, nodesData, cy:Cy.Instance, hoveredNodeData?) { - let fadeNodes = _.xorWith(nodesData, filteredNodesData, (node1, node2) => { - return node1.id === node2.id; - }); - if (hoveredNodeData) { - _.remove(fadeNodes, hoveredNodeData); - } - cy.batch(()=> { - _.each(fadeNodes, (node) => { - cy.getElementById(node.id).style({'background-image-opacity': 0.4}); - }); - }) - } - - /** - * Resets all nodes to regular opacity - * @param cy - */ - public resetFadedNodes(cy:Cy.Instance) { - cy.batch(()=> { - cy.nodes().style({'background-image-opacity': 1}); - }) - } - - // -------------------------------------------ALL FUNCTIONS NEED REFACTORING---------------------------------------------------------------// - - private static requirementFulfilled(fromNodeId:string, requirement:any, links:Array):boolean { - return _.some(links, { - 'relation': { - 'fromNode': fromNodeId, - 'relationships': [{ - 'requirementOwnerId': requirement.ownerId, - 'requirement': requirement.name, - 'relationship': { - 'type': requirement.relationship - } - } - ] - } - }); - }; - - private static isMatch(requirement:Models.Requirement, capability:Models.Capability):boolean { - if (capability.type === requirement.capability) { - if (requirement.node) { - if (_.includes(capability.capabilitySources, requirement.node)) { - return true; - } - } else { - return true; - } - } - return false; - }; - - private getFromToMatches(requirements1:Models.RequirementsGroup, - requirements2:Models.RequirementsGroup, - capabilities:Models.CapabilitiesGroup, - links:Array, - fromId:string, - toId:string, - vlCapability?:Models.Capability):Array { - let matches:Array = new Array(); - _.forEach(requirements1, (requirementValue:Array, key) => { - _.forEach(requirementValue, (requirement:Models.Requirement) => { - if (requirement.name !== "dependency" && !MatchCapabilitiesRequirementsUtils.requirementFulfilled(fromId, requirement, links)) { - _.forEach(capabilities, (capabilityValue:Array, key) => { - _.forEach(capabilityValue, (capability:Models.Capability) => { - if (MatchCapabilitiesRequirementsUtils.isMatch(requirement, capability)) { - let match:Models.MatchReqToCapability = new Models.MatchReqToCapability(requirement, capability, true, fromId, toId); - matches.push(match); - } - }); - }); - if (vlCapability) { - _.forEach(requirements2, (requirement2Value:Array, key) => { - _.forEach(requirement2Value, (requirement2:Models.Requirement) => { - if (!MatchCapabilitiesRequirementsUtils.requirementFulfilled(toId, requirement2, links) && MatchCapabilitiesRequirementsUtils.linkable(requirement, requirement2, vlCapability)) { - let match:Models.MatchReqToReq = new Models.MatchReqToReq(requirement, requirement2, true, fromId, toId); - matches.push(match); - } - }); - }); - } - } - }); - }); - return matches; - } - - private getToFromMatches(requirements:Models.RequirementsGroup, capabilities:Models.CapabilitiesGroup, links:Array, fromId:string, toId:string):Array { - let matches:Array = []; - _.forEach(requirements, (requirementValue:Array, key) => { - _.forEach(requirementValue, (requirement:Models.Requirement) => { - if (requirement.name !== "dependency" && !MatchCapabilitiesRequirementsUtils.requirementFulfilled(toId, requirement, links)) { - _.forEach(capabilities, (capabilityValue:Array, key) => { - _.forEach(capabilityValue, (capability:Models.Capability) => { - if (MatchCapabilitiesRequirementsUtils.isMatch(requirement, capability)) { - let match:Models.MatchReqToCapability = new Models.MatchReqToCapability(requirement, capability, false, toId, fromId); - matches.push(match); - } - }); - }); - } - }); - }); - return matches; - } - - public getMatchedRequirementsCapabilities(fromComponentInstance:Models.ComponentsInstances.ComponentInstance, - toComponentInstance:Models.ComponentsInstances.ComponentInstance, - links:Array, - vl?:Models.Components.Component):Array {//TODO allow for VL array - let linkCapability; - if (vl) { - let linkCapabilities:Array = vl.capabilities.findValueByKey('linkable'); - if (linkCapabilities) { - linkCapability = linkCapabilities[0]; - } - } - let fromToMatches:Array = this.getFromToMatches(fromComponentInstance.requirements, - toComponentInstance.requirements, - toComponentInstance.capabilities, - links, - fromComponentInstance.uniqueId, - toComponentInstance.uniqueId, - linkCapability); - let toFromMatches:Array = this.getToFromMatches(toComponentInstance.requirements, - fromComponentInstance.capabilities, - links, - fromComponentInstance.uniqueId, - toComponentInstance.uniqueId); - - return fromToMatches.concat(toFromMatches); - } - - - - - - /** - * Step I: Check if capabilities of component match requirements of nodeDataArray - * 1. Get component capabilities and loop on each capability - * 2. Inside the loop, perform another loop on all nodeDataArray, and fetch the requirements for each one - * 3. Loop on the requirements, and verify match (see in code the rules) - * - * Step II: Check if requirements of component match capabilities of nodeDataArray - * 1. Get component requirements and loop on each requirement - * 2. - * - * @param component - this is the hovered resource of the left panel of composition screen - * @param nodeDataArray - Array of resource instances that are on the canvas - * @param links -getMatchedRequirementsCapabilities - * @param vl - - * @returns {any[]|T[]} - */ - public findByMatchingCapabilitiesToRequirements(component:Models.Components.Component, - nodeDataArray:Array, - links:Array, - vl?:Models.Components.Component):Array {//TODO allow for VL array - let res = []; - - // STEP I - { - let capabilities:any = component.capabilities; - _.forEach(capabilities, (capabilityValue:Array, capabilityKey)=> { - _.forEach(capabilityValue, (capability)=> { - _.forEach(nodeDataArray, (node:Models.Graph.CompositionCiNodeBase)=> { - if (node && node.componentInstance) { - let requirements:any = node.componentInstance.requirements; - let fromNodeId:string = node.componentInstance.uniqueId; - _.forEach(requirements, (requirementValue:Array, requirementKey)=> { - _.forEach(requirementValue, (requirement)=> { - if (requirement.name !== "dependency" && MatchCapabilitiesRequirementsUtils.isMatch(requirement, capability) - && !MatchCapabilitiesRequirementsUtils.requirementFulfilled(fromNodeId, requirement, links)) { - res.push(node); - } - }); - }); - } - }); - }); - }); - } - - // STEP II - { - let requirements:any = component.requirements; - let fromNodeId:string = component.uniqueId; - let linkCapability:Array = vl ? vl.capabilities.findValueByKey('linkable') : undefined; - - _.forEach(requirements, (requirementValue:Array, requirementKey)=> { - _.forEach(requirementValue, (requirement)=> { - if (requirement.name !== "dependency" && !MatchCapabilitiesRequirementsUtils.requirementFulfilled(fromNodeId, requirement, links)) { - _.forEach(nodeDataArray, (node:any)=> { - if (node && node.componentInstance && node.category !== 'groupCp') { - let capabilities:any = node.componentInstance.capabilities; - _.forEach(capabilities, (capabilityValue:Array, capabilityKey)=> { - _.forEach(capabilityValue, (capability)=> { - if (MatchCapabilitiesRequirementsUtils.isMatch(requirement, capability)) { - res.push(node); - } - }); - }); - if (linkCapability) { - let linkRequirements = node.componentInstance.requirements; - _.forEach(linkRequirements, (value:Array, key)=> { - _.forEach(value, (linkRequirement)=> { - if (!MatchCapabilitiesRequirementsUtils.requirementFulfilled(node.componentInstance.uniqueId, linkRequirement, links) - && MatchCapabilitiesRequirementsUtils.linkable(requirement, linkRequirement, linkCapability[0])) { - res.push(node); - } - }); - }); - } - } - }); - } - }); - }); - } - - return _.uniq(res); - }; - } - - MatchCapabilitiesRequirementsUtils.$inject = []; -} \ No newline at end of file diff --git a/catalog-ui/app/scripts/directives/graphs-v2/deployment-graph/deployment-graph.directive.ts b/catalog-ui/app/scripts/directives/graphs-v2/deployment-graph/deployment-graph.directive.ts deleted file mode 100644 index d6d4aef374..0000000000 --- a/catalog-ui/app/scripts/directives/graphs-v2/deployment-graph/deployment-graph.directive.ts +++ /dev/null @@ -1,114 +0,0 @@ -/** - * Created by obarda on 12/19/2016. - */ -/// -module Sdc.Directives { - - import Util = jasmine.Util; - - interface IDeploymentGraphScope extends ng.IScope { - component:Models.Components.Component; - } - - export class DeploymentGraph implements ng.IDirective { - private _cy:Cy.Instance; - - constructor(private NodesFactory:Utils.NodesFactory, private commonGraphUtils:Graph.Utils.CommonGraphUtils, - private deploymentGraphGeneralUtils:Graph.Utils.DeploymentGraphGeneralUtils, private ComponentInstanceFactory: Sdc.Utils.ComponentInstanceFactory) { - } - - restrict = 'E'; - templateUrl = '/app/scripts/directives/graphs-v2/deployment-graph/deployment-graph.html'; - scope = { - component: '=', - isViewOnly: '=' - }; - - link = (scope:IDeploymentGraphScope, el:JQuery) => { - if(scope.component.isResource()) { - this.loadGraph(scope, el); - this.registerGraphEvents(); - } - }; - - - public initGraphNodes = (cy:Cy.Instance, component:Models.Components.Component):void => { - if (component.groups) { // Init module nodes - _.each(component.groups, (groupModule:Models.Module) => { - let moduleNode = this.NodesFactory.createModuleNode(groupModule); - this.commonGraphUtils.addNodeToGraph(cy, moduleNode); - - }); - } - _.each(component.componentInstances, (instance:Models.ComponentsInstances.ComponentInstance) => { // Init component instance nodes - let componentInstanceNode = this.NodesFactory.createNode(instance); - componentInstanceNode.parent = this.deploymentGraphGeneralUtils.findInstanceModule(component.groups, instance.uniqueId); - if (componentInstanceNode.parent) { // we are not drawing instances that are not a part of a module - this.commonGraphUtils.addComponentInstanceNodeToGraph(cy, componentInstanceNode); - } - }); - - // This is a special functionality to pass the cytoscape default behavior - we can't create Parent module node without children's - // so we must add an empty dummy child node - _.each(this._cy.nodes('[?isGroup]'), (moduleNode: Cy.CollectionFirstNode) => { - if (!moduleNode.isParent()) { - let dummyInstance = this.ComponentInstanceFactory.createEmptyComponentInstance(); - let componentInstanceNode = this.NodesFactory.createNode(dummyInstance); - componentInstanceNode.parent = moduleNode.id(); - let dummyNode = this.commonGraphUtils.addNodeToGraph(cy, componentInstanceNode, moduleNode.position()); - dummyNode.addClass('dummy-node'); - } - }) - }; - - private registerGraphEvents() { - - this._cy.on('afterExpand', (event) => { - event.cyTarget.qtip({}); - }); - - this._cy.on('afterCollapse', (event) => { - this.commonGraphUtils.initNodeTooltip(event.cyTarget); - }); - } - - private loadGraph = (scope:IDeploymentGraphScope, el:JQuery) => { - - let graphEl = el.find('.sdc-deployment-graph-wrapper'); - this._cy = cytoscape({ - container: graphEl, - style: Sdc.Graph.Utils.ComponentIntanceNodesStyle.getCompositionGraphStyle().concat(Sdc.Graph.Utils.ModulesNodesStyle.getModuleGraphStyle()), - zoomingEnabled: false, - selectionType: 'single', - - }); - - //adding expand collapse extension - this._cy.expandCollapse({ - layoutBy: { - name: "grid", - animate: true, - randomize: false, - fit: true - }, - fisheye: false, - undoable: false, - expandCollapseCueSize: 18, - expandCueImage: Sdc.Utils.Constants.IMAGE_PATH + '/styles/images/resource-icons/' + 'closeModule.png', - collapseCueImage: Sdc.Utils.Constants.IMAGE_PATH + '/styles/images/resource-icons/' + 'openModule.png', - expandCollapseCueSensitivity: 2, - cueOffset: -20 - }); - - this.initGraphNodes(this._cy, scope.component); //creating instances nodes - this.commonGraphUtils.initGraphLinks(this._cy, scope.component.componentInstancesRelations); - this._cy.collapseAll(); - }; - - public static factory = (NodesFactory:Utils.NodesFactory, CommonGraphUtils:Graph.Utils.CommonGraphUtils, DeploymentGraphGeneralUtils:Graph.Utils.DeploymentGraphGeneralUtils, ComponentInstanceFactory: Utils.ComponentInstanceFactory) => { - return new DeploymentGraph(NodesFactory, CommonGraphUtils, DeploymentGraphGeneralUtils, ComponentInstanceFactory) - } - } - - DeploymentGraph.factory.$inject = ['NodesFactory', 'CommonGraphUtils', 'DeploymentGraphGeneralUtils', 'ComponentInstanceFactory']; -} \ No newline at end of file diff --git a/catalog-ui/app/scripts/directives/graphs-v2/deployment-graph/deployment-graph.html b/catalog-ui/app/scripts/directives/graphs-v2/deployment-graph/deployment-graph.html deleted file mode 100644 index 55e1c131f4..0000000000 --- a/catalog-ui/app/scripts/directives/graphs-v2/deployment-graph/deployment-graph.html +++ /dev/null @@ -1,2 +0,0 @@ -
    -
    \ No newline at end of file diff --git a/catalog-ui/app/scripts/directives/graphs-v2/deployment-graph/deployment-graph.less b/catalog-ui/app/scripts/directives/graphs-v2/deployment-graph/deployment-graph.less deleted file mode 100644 index ff8fc46380..0000000000 --- a/catalog-ui/app/scripts/directives/graphs-v2/deployment-graph/deployment-graph.less +++ /dev/null @@ -1,14 +0,0 @@ -deployment-graph { - display: block; - height:100%; - width: 100%; - - .sdc-deployment-graph-wrapper { - height:100%; - width: 100%; - } - - .view-only{ - background-color:rgb(248, 248, 248); - } -} \ No newline at end of file diff --git a/catalog-ui/app/scripts/directives/graphs-v2/deployment-graph/deployment-utils/deployment-graph-general-utils.ts b/catalog-ui/app/scripts/directives/graphs-v2/deployment-graph/deployment-utils/deployment-graph-general-utils.ts deleted file mode 100644 index 3ad9da56be..0000000000 --- a/catalog-ui/app/scripts/directives/graphs-v2/deployment-graph/deployment-utils/deployment-graph-general-utils.ts +++ /dev/null @@ -1,24 +0,0 @@ -/** - * Created by obarda on 12/21/2016. - */ -/// -module Sdc.Graph.Utils { - - export class DeploymentGraphGeneralUtils { - - constructor() { - - } - - public findInstanceModule = (groupsArray:Array, componentInstanceId:string):string => { - let parentGroup:Sdc.Models.Module = _.find(groupsArray, (group:Sdc.Models.Module) => { - return _.find(group.members, (member) => { - return member === componentInstanceId; - }); - }); - return parentGroup ? parentGroup.uniqueId : ""; - }; - } - - DeploymentGraphGeneralUtils.$inject = []; -} \ No newline at end of file diff --git a/catalog-ui/app/scripts/directives/graphs-v2/image-creator/image-creator.service.ts b/catalog-ui/app/scripts/directives/graphs-v2/image-creator/image-creator.service.ts deleted file mode 100644 index e3b17e163d..0000000000 --- a/catalog-ui/app/scripts/directives/graphs-v2/image-creator/image-creator.service.ts +++ /dev/null @@ -1,46 +0,0 @@ -module Sdc.Utils { - export class ImageCreatorService { - static '$inject' = ['$q']; - private _canvas: HTMLCanvasElement; - - constructor(private $q: ng.IQService) { - this._canvas = $('')[0]; - this._canvas.setAttribute('style', 'display:none'); - - let body = document.getElementsByTagName('body')[0]; - body.appendChild(this._canvas); - } - - getImageBase64(imageBaseUri: string, imageLayerUri: string): ng.IPromise { - let deferred = this.$q.defer(); - let imageBase = new Image(); - let imageLayer = new Image(); - let imagesLoaded = 0; - let onImageLoaded = () => { - imagesLoaded++; - - if (imagesLoaded < 2) { - return; - } - this._canvas.setAttribute('width', imageBase.width.toString()); - this._canvas.setAttribute('height', imageBase.height.toString()); - - let canvasCtx = this._canvas.getContext('2d'); - canvasCtx.clearRect(0, 0, this._canvas.width, this._canvas.height); - - canvasCtx.drawImage(imageBase, 0, 0, imageBase.width, imageBase.height); - canvasCtx.drawImage(imageLayer, imageBase.width - imageLayer.width, 0, imageLayer.width, imageLayer.height); - - let base64Image = this._canvas.toDataURL(); - deferred.resolve(base64Image); - }; - - imageBase.onload = onImageLoaded; - imageLayer.onload = onImageLoaded; - imageBase.src = imageBaseUri; - imageLayer.src = imageLayerUri; - - return deferred.promise; - } - } -} \ No newline at end of file diff --git a/catalog-ui/app/scripts/directives/graphs-v2/palette/interfaces/i-dragdrop-event.d.ts b/catalog-ui/app/scripts/directives/graphs-v2/palette/interfaces/i-dragdrop-event.d.ts deleted file mode 100644 index 26c042611c..0000000000 --- a/catalog-ui/app/scripts/directives/graphs-v2/palette/interfaces/i-dragdrop-event.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -interface IDragDropEvent extends JQueryEventObject { - dataTransfer: any; - toElement: { - naturalWidth: number; - naturalHeight: number; - } -} \ No newline at end of file diff --git a/catalog-ui/app/scripts/directives/graphs-v2/palette/palette.directive.ts b/catalog-ui/app/scripts/directives/graphs-v2/palette/palette.directive.ts deleted file mode 100644 index c00da6d1df..0000000000 --- a/catalog-ui/app/scripts/directives/graphs-v2/palette/palette.directive.ts +++ /dev/null @@ -1,327 +0,0 @@ -/// - -module Sdc.Directives { - import Dictionary = Sdc.Utils.Dictionary; - import GRAPH_EVENTS = Sdc.Utils.Constants.GRAPH_EVENTS; - import ImageCreatorService = Sdc.Utils.ImageCreatorService; - interface IPaletteScope { - components: any; - currentComponent: any; - model: any; - displaySortedCategories: any; - expandedSection: string; - - p2pVL: Models.Components.Component; - mp2mpVL: Models.Components.Component; - vlType: string; - dragElement: JQuery; - dragbleNode: { - event: JQueryEventObject, - components: Models.DisplayComponent, - ui: any - } - - sectionClick: (section: string)=>void; - searchComponents: (searchText: string)=>void; - onMouseOver: (displayComponent: Models.DisplayComponent)=>void; - onMouseOut: (displayComponent: Models.DisplayComponent)=>void; - dragStartCallback: (event: JQueryEventObject, ui, displayComponent: Models.DisplayComponent)=>void; - dragStopCallback: ()=>void; - onDragCallback: (event:JQueryEventObject) => void; - setElementTemplate: (e: JQueryEventObject)=>void; - - isOnDrag: boolean; - isDragable: boolean; - isLoading: boolean; - isViewOnly: boolean; - } - - export class Palette implements ng.IDirective { - constructor(private $log: ng.ILogService, - private LeftPaletteLoaderService, - private sdcConfig, - private ComponentFactory, - private ComponentInstanceFactory: Utils.ComponentInstanceFactory, - private NodesFactory: Utils.NodesFactory, - private CompositionGraphGeneralUtils: Graph.Utils.CompositionGraphGeneralUtils, - private EventListenerService: Services.EventListenerService, - private sdcMenu: Models.IAppMenu) { - - } - - private fetchingComponentFromServer: boolean = false; - private nodeHtmlSubstitute: JQuery; - - scope = { - components: '=', - currentComponent: '=', - isViewOnly: '=', - isLoading: '=' - }; - restrict = 'E'; - templateUrl = '/app/scripts/directives/graphs-v2/palette/palette.html'; - - link = (scope: IPaletteScope, el: JQuery) => { - this.nodeHtmlSubstitute = $('
    '); - el.append(this.nodeHtmlSubstitute); - - this.initComponents(scope); - this.initScopeVls(scope); - this.initEvents(scope); - this.initDragEvents(scope); - this._initExpandedSection(scope, ''); - }; - - private leftPanelResourceFilter(resourcesNotAbstract: Array, resourceFilterTypes: Array): Array { - let filterResources = _.filter(resourcesNotAbstract, (component) => { - return resourceFilterTypes.indexOf(component.getComponentSubType()) > -1; - }); - return filterResources; - } - - private initLeftPanel(leftPanelComponents: Array, resourceFilterTypes: Array): Models.LeftPanelModel { - let leftPanelModel = new Models.LeftPanelModel(); - - if (resourceFilterTypes && resourceFilterTypes.length) { - leftPanelComponents = this.leftPanelResourceFilter(leftPanelComponents, resourceFilterTypes); - } - leftPanelModel.numberOfElements = leftPanelComponents && leftPanelComponents.length || 0; - - if (leftPanelComponents && leftPanelComponents.length) { - - let categories: any = _.groupBy(leftPanelComponents, 'mainCategory'); - for (let category in categories) - categories[category] = _.groupBy(categories[category], 'subCategory'); - - leftPanelModel.sortedCategories = categories; - } - return leftPanelModel; - } - - private initScopeVls(scope: IPaletteScope): void { - let vls = this.LeftPaletteLoaderService.getFullDataComponentList(Utils.Constants.ResourceType.VL); - scope.vlType = null; - vls.forEach((item) => { - let key = _.find(Object.keys(item.capabilities), (key) => { - return _.includes(key.toLowerCase(), 'linkable'); - }); - let linkable = item.capabilities[key]; - if (linkable) { - if (linkable[0].maxOccurrences == '2') { - scope.p2pVL = _.find(vls, (component: Models.Components.Component) => { - return component.uniqueId === item.uniqueId; - }); - - } else {//assuming unbounded occurrences - scope.mp2mpVL = _.find(vls, (component: Models.Components.Component) => { - return component.uniqueId === item.uniqueId; - }); - } - } - }); - }; - - private initEvents(scope: IPaletteScope) { - /** - * - * @param section - */ - scope.sectionClick = (section: string) => { - if (section === scope.expandedSection) { - scope.expandedSection = ''; - return; - } - scope.expandedSection = section; - }; - - scope.onMouseOver = (displayComponent: Models.DisplayComponent) => { - if (scope.isOnDrag) { - return; - } - scope.isOnDrag = true; - - this.EventListenerService.notifyObservers(GRAPH_EVENTS.ON_PALETTE_COMPONENT_HOVER_IN, displayComponent); - this.$log.debug('palette::onMouseOver:: fired'); - - if (this.CompositionGraphGeneralUtils.componentRequirementsAndCapabilitiesCaching.containsKey(displayComponent.uniqueId)) { - this.$log.debug(`palette::onMouseOver:: component id ${displayComponent.uniqueId} found in cache`); - let cacheComponent: Models.Components.Component = this.CompositionGraphGeneralUtils.componentRequirementsAndCapabilitiesCaching.getValue(displayComponent.uniqueId); - - //TODO: Danny: fire event to highlight matching nodes - //showMatchingNodes(cacheComponent); - return; - } - - this.$log.debug(`palette::onMouseOver:: component id ${displayComponent.uniqueId} not found in cache, initiating server get`); - // This will bring the component from the server including requirements and capabilities - // Check that we do not fetch many times, because only in the success we add the component to componentRequirementsAndCapabilitiesCaching - if (this.fetchingComponentFromServer) { - return; - } - - this.fetchingComponentFromServer = true; - this.ComponentFactory.getComponentFromServer(displayComponent.componentSubType, displayComponent.uniqueId) - .then((component: Models.Components.Component) => { - this.$log.debug(`palette::onMouseOver:: component id ${displayComponent.uniqueId} fetch success`); - this.LeftPaletteLoaderService.updateSpecificComponentLeftPalette(component, scope.currentComponent.componentType); - this.CompositionGraphGeneralUtils.componentRequirementsAndCapabilitiesCaching.setValue(component.uniqueId, component); - this.fetchingComponentFromServer = false; - - //TODO: Danny: fire event to highlight matching nodes - //showMatchingNodes(component); - }) - .catch(() => { - this.$log.debug('palette::onMouseOver:: component id fetch error'); - this.fetchingComponentFromServer = false; - }); - - - }; - - scope.onMouseOut = () => { - scope.isOnDrag = false; - this.EventListenerService.notifyObservers(GRAPH_EVENTS.ON_PALETTE_COMPONENT_HOVER_OUT); - } - } - - private initComponents(scope: IPaletteScope) { - scope.searchComponents = (searchText: any): void => { - scope.displaySortedCategories = this._searchComponents(searchText, scope.model.sortedCategories); - this._initExpandedSection(scope, searchText); - }; - - scope.isDragable = scope.currentComponent.isComplex(); - let entityType: string = scope.currentComponent.componentType.toLowerCase(); - let resourceFilterTypes: Array = this.sdcConfig.resourceTypesFilter[entityType]; - - scope.components = this.LeftPaletteLoaderService.getLeftPanelComponentsForDisplay(scope.currentComponent.componentType); - scope.model = this.initLeftPanel(scope.components, resourceFilterTypes); - scope.displaySortedCategories = angular.copy(scope.model.sortedCategories); - } - - private _initExpandedSection(scope: IPaletteScope, searchText: string): void { - if (searchText == '') { - let isContainingCategory: boolean = false; - let categoryToExpand: string; - if (scope.currentComponent && scope.currentComponent.categories && scope.currentComponent.categories[0]) { - categoryToExpand = this.sdcMenu.categoriesDictionary[scope.currentComponent.categories[0].name]; - for (let category in scope.model.sortedCategories) { - if (categoryToExpand == category) { - isContainingCategory = true; - break; - } - } - } - isContainingCategory ? scope.expandedSection = categoryToExpand : scope.expandedSection = 'Generic'; - } - else { - scope.expandedSection = Object.keys(scope.displaySortedCategories).sort()[0]; - } - }; - - private initDragEvents(scope: IPaletteScope) { - scope.dragStartCallback = (event: IDragDropEvent, ui, displayComponent: Models.DisplayComponent): void => { - if (scope.isLoading || !scope.isDragable || scope.isViewOnly) { - return; - } - - let component = _.find(this.LeftPaletteLoaderService.getFullDataComponentListWithVls(scope.currentComponent.componentType), (componentFullData: Models.DisplayComponent) => { - return displayComponent.uniqueId === componentFullData.uniqueId; - }); - this.EventListenerService.notifyObservers(GRAPH_EVENTS.ON_PALETTE_COMPONENT_DRAG_START, scope.dragElement, component); - - scope.isOnDrag = true; - - - - // this.graphUtils.showMatchingNodes(component, myDiagram, scope.sdcConfig.imagesPath); - // document.addEventListener('mousemove', moveOnDocument); - event.dataTransfer.component = component; - }; - - scope.dragStopCallback = () => { - scope.isOnDrag = false; - }; - - scope.onDragCallback = (event:IDragDropEvent): void => { - this.EventListenerService.notifyObservers(GRAPH_EVENTS.ON_PALETTE_COMPONENT_DRAG_ACTION, event); - }; - scope.setElementTemplate = (e) => { - let dragComponent: Models.Components.Component = _.find(this.LeftPaletteLoaderService.getFullDataComponentListWithVls(scope.currentComponent.componentType), - (fullComponent: Models.Components.Component) => { - return (angular.element(e.currentTarget).scope()).component.uniqueId === fullComponent.uniqueId; - }); - let componentInstance: Models.ComponentsInstances.ComponentInstance = this.ComponentInstanceFactory.createComponentInstanceFromComponent(dragComponent); - let node: Models.Graph.CompositionCiNodeBase = this.NodesFactory.createNode(componentInstance); - - // myDiagram.dragFromPalette = node; - this.nodeHtmlSubstitute.find("img").attr('src', node.img); - scope.dragElement = this.nodeHtmlSubstitute.clone().show(); - - return scope.dragElement; - }; - } - - private _searchComponents = (searchText: string, categories: any): void => { - let displaySortedCategories = angular.copy(categories); - if (searchText != '') { - angular.forEach(categories, function (category: any, categoryKey) { - - angular.forEach(category, function (subcategory: Array, subcategoryKey) { - let filteredResources = []; - angular.forEach(subcategory, function (component: Models.DisplayComponent) { - - let resourceFilterTerm: string = component.searchFilterTerms; - if (resourceFilterTerm.indexOf(searchText.toLowerCase()) >= 0) { - filteredResources.push(component); - } - }); - if (filteredResources.length > 0) { - displaySortedCategories[categoryKey][subcategoryKey] = filteredResources; - } - else { - delete displaySortedCategories[categoryKey][subcategoryKey]; - } - }); - if (!(Object.keys(displaySortedCategories[categoryKey]).length > 0)) { - delete displaySortedCategories[categoryKey]; - } - - }); - } - return displaySortedCategories; - }; - - public static factory = ($log, - LeftPaletteLoaderService, - sdcConfig, - ComponentFactory, - ComponentInstanceFactory, - NodesFactory, - CompositionGraphGeneralUtils, - EventListenerService, - sdcMenu) => { - return new Palette($log, - LeftPaletteLoaderService, - sdcConfig, - ComponentFactory, - ComponentInstanceFactory, - NodesFactory, - CompositionGraphGeneralUtils, - EventListenerService, - sdcMenu); - }; - } - - Palette.factory.$inject = [ - '$log', - 'LeftPaletteLoaderService', - 'sdcConfig', - 'ComponentFactory', - 'ComponentInstanceFactory', - 'NodesFactory', - 'CompositionGraphGeneralUtils', - 'EventListenerService', - 'sdcMenu' - ]; -} \ No newline at end of file diff --git a/catalog-ui/app/scripts/directives/graphs-v2/palette/palette.html b/catalog-ui/app/scripts/directives/graphs-v2/palette/palette.html deleted file mode 100644 index a8dd827927..0000000000 --- a/catalog-ui/app/scripts/directives/graphs-v2/palette/palette.html +++ /dev/null @@ -1,59 +0,0 @@ -
    -
    Elements {{model.numberOfElements}} -
    - - -
    -
    - {{entityCategory}} -
    -
    -
    -
    - {{subCategory}} -
    -
    -
    -
    -
    -
    -
    -
    -
    - - {{component.displayName}} -
    - V.{{component.version}} -
    -
    Type: - {{component.componentSubType}} - More -
    -
    -
    -
    -
    -
    \ No newline at end of file diff --git a/catalog-ui/app/scripts/directives/graphs-v2/palette/palette.less b/catalog-ui/app/scripts/directives/graphs-v2/palette/palette.less deleted file mode 100644 index 85657a43a5..0000000000 --- a/catalog-ui/app/scripts/directives/graphs-v2/palette/palette.less +++ /dev/null @@ -1,92 +0,0 @@ -.drag-icon-border{ - border: 7px solid red; - border-radius: 500px; - -webkit-border-radius: 500px; - -moz-border-radius: 500px; - width: 53px; - height: 53px; -} - -.drag-icon-circle{ - width: 60px; - height: 60px; - -webkit-border-radius: 50%; - -moz-border-radius: 50%; - border-radius: 50%; - position: relative; - -} - - -@green-shadow: rgba(29, 154, 149, 0.3); -@red-shadow: rgba(218, 31, 61, 0.3); -.drag-icon-circle .sprite-resource-icons { - position: absolute; - top: 10px; - left: 10px; -} - -.drag-icon-circle.red { - background: @red-shadow; -} - -.drag-icon-circle.green { - background: @green-shadow; -} - - -.node-substitute { - display: none; - position: absolute; - z-index: 9999; - height: 80px; - width: 80px; - border-radius: 50%; - text-align: center; - - span { - display: inline-block; - vertical-align: middle; - height: 100%; - } - - img { - height: 40px; - width: 40px; - box-shadow: 0 0 0 10px @green-shadow; - border-radius: 50%; - - -webkit-user-drag: none; - -moz-user-drag: none; - user-drag: none; - } - &.red img { - box-shadow: 0 0 0 10px @red-shadow; - } - &.bounce img { - -moz-animation:bounceOut 0.3s linear; - -webkit-animation:bounceOut 0.3s linear; - animation:bounceOut 0.3s linear; - } -} - -@keyframes bounceOut { - 0%{ box-shadow: 0 0 0 10px @green-shadow; width: 40px; height: 40px; } - 60%{ box-shadow: 0 0 0 0px @green-shadow; width: 60px; height: 60px; } - 85%{ box-shadow: 0 0 0 0px @green-shadow; width: 75px; height: 75px; } - 100%{ box-shadow: 0 0 0 0px @green-shadow; width: 60px; height: 60px; } -} - -@-moz-keyframes bounceOut { - 0%{ box-shadow: 0 0 0 10px @green-shadow; width: 40px; height: 40px; } - 60%{ box-shadow: 0 0 0 0px @green-shadow; width: 60px; height: 60px; } - 85%{ box-shadow: 0 0 0 0px @green-shadow; width: 75px; height: 75px; } - 100%{ box-shadow: 0 0 0 0px @green-shadow; width: 60px; height: 60px; } -} - -@-webkit-keyframes bounceOut { - 0%{ box-shadow: 0 0 0 10px @green-shadow; width: 40px; height: 40px; } - 60%{ box-shadow: 0 0 0 0px @green-shadow; width: 60px; height: 60px; } - 85%{ box-shadow: 0 0 0 0px @green-shadow; width: 75px; height: 75px; } - 100%{ box-shadow: 0 0 0 0px @green-shadow; width: 60px; height: 60px; } -} diff --git a/catalog-ui/app/scripts/directives/graphs-v2/relation-menu/relation-menu.html b/catalog-ui/app/scripts/directives/graphs-v2/relation-menu/relation-menu.html deleted file mode 100644 index a0a9e4af27..0000000000 --- a/catalog-ui/app/scripts/directives/graphs-v2/relation-menu/relation-menu.html +++ /dev/null @@ -1,63 +0,0 @@ - diff --git a/catalog-ui/app/scripts/directives/graphs-v2/relation-menu/relation-menu.less b/catalog-ui/app/scripts/directives/graphs-v2/relation-menu/relation-menu.less deleted file mode 100644 index dea814dbec..0000000000 --- a/catalog-ui/app/scripts/directives/graphs-v2/relation-menu/relation-menu.less +++ /dev/null @@ -1,118 +0,0 @@ -.link-menu-open { - display: block !important; - color: @main_color_m; - font-size: 14px; - position: absolute; - z-index: 99999; - border-radius: 2px; - background-color: #ffffff; - box-shadow: 0px 0px 6px 0px rgba(0, 0, 0, 0.5); - width: 460px; - height: 418px; - - h4 { - width: 50%; - float: left; - background-color: @tlv_color_u; - font-size: 14px; - font-weight: bold; - line-height: 36px; - margin: 0; - padding: 0 15px; - - & + h4 { - border-left: #d8d8d8 1px solid; - } - } - p { - clear: both; - text-indent: 15px; - border-bottom: #d8d8d8 1px solid; - line-height: 34px; - margin: 0; - color: @func_color_s; - } - - .scrollbar-container { - height: 232px; - width: 50%; - float: left; - margin-bottom: 5px; - .perfect-scrollbar; - - & + .scrollbar-container { - border-left: #d8d8d8 1px solid; - } - - .inner-title { - width: 189px; - margin: 5px auto 3px auto; - //text-indent: 10px; - color: @func_color_s; - text-transform: uppercase; - font-weight: bold; - - //&:not(:first-child) { - // margin-top: 10px; - //} - } - - .link-item { - padding: 0 10px; - line-height: 23px; - height: 23px; - text-indent: 5px; - .hand; - - &.selected { - background-color: @tlv_color_v; - } - } - } - - .vl-type { - height: 33px; - border-top: #d8d8d8 solid 1px; - clear: both; - padding: 0 10px; - line-height: 32px; - color: @main_color_m; - - &.disabled { - background-color: #f2f2f2; - color: @color_m; - } - .info-icon { - float:right; - margin-top: 9px; - } - .tlv-radio { - margin-right: 10px; - } - } - - .result { - background-color: @main_color_m; - line-height: 29px; - color: #ffffff; - padding: 0 15px; - } - - button { - float: right; - margin-top: 9px; - margin-right: 10px; - } -} -.link-menu-item { - cursor: pointer; - line-height: 24px; - padding: 0 10px; - &:hover { - color: @color_a; - } -} -.link-menu::before { - right: inherit !important; - left: 50px; -} \ No newline at end of file diff --git a/catalog-ui/app/scripts/directives/graphs-v2/relation-menu/relation-menu.ts b/catalog-ui/app/scripts/directives/graphs-v2/relation-menu/relation-menu.ts deleted file mode 100644 index 22a2d078b7..0000000000 --- a/catalog-ui/app/scripts/directives/graphs-v2/relation-menu/relation-menu.ts +++ /dev/null @@ -1,113 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Directives { - 'use strict'; - - - export interface IRelationMenuScope extends ng.IScope { - relationMenuDirectiveObj:Models.RelationMenuDirectiveObj; - createRelation:Function; - isLinkMenuOpen:boolean; - hideRelationMatch:Function; - cancel:Function; - - saveRelation(); - showMatch(arr1:Array, arr2:Array):boolean; - hasMatchesToShow(matchesObj:Models.MatchBase, selectedMatch:Array); - updateSelectionText():void; - - } - - - export class RelationMenuDirective implements ng.IDirective { - - constructor(private $templateCache:ng.ITemplateCacheService, - private $filter:ng.IFilterService - ) { - } - - scope = { - relationMenuDirectiveObj: '=', - isLinkMenuOpen: '=', - createRelation: '&', - cancel:'&' - }; - - restrict = 'E'; - replace = true; - template = ():string => { - return this.$templateCache.get('/app/scripts/directives/graphs-v2/relation-menu/relation-menu.html'); - }; - - link = (scope:IRelationMenuScope, element:JQuery, $attr:ng.IAttributes) => { - - scope.saveRelation = ():void=> { - let chosenMatches:Array = _.intersection(scope.relationMenuDirectiveObj.rightSideLink.selectedMatch, scope.relationMenuDirectiveObj.leftSideLink.selectedMatch); - let chosenMatch:Models.MatchBase = chosenMatches[0]; - let chosenVL:Models.Components.Component; - if ("mptmp" === scope.relationMenuDirectiveObj.vlType) { - chosenVL = scope.relationMenuDirectiveObj.mp2mpVL; - } else { - chosenVL = scope.relationMenuDirectiveObj.p2pVL; - } - scope.createRelation()(chosenMatch,chosenVL); - }; - - - scope.hideRelationMatch = () => { - scope.isLinkMenuOpen = false; - scope.cancel(); - }; - - //to show options in link menu - scope.showMatch = (arr1:Array, arr2:Array):boolean => { - return !arr1 || !arr2 || _.intersection(arr1, arr2).length > 0; - }; - - //to show requirements/capabilities title - scope.hasMatchesToShow = (matchesObj:Models.MatchBase, selectedMatch:Array):boolean => { - let result:boolean = false; - _.forEach(matchesObj, (matchesArr:Array) => { - if (!result) { - result = scope.showMatch(matchesArr, selectedMatch); - } - }); - return result; - }; - - - scope.updateSelectionText = ():void => { - let left:string = scope.relationMenuDirectiveObj.leftSideLink.selectedMatch ? this.$filter('resourceName')(scope.relationMenuDirectiveObj.leftSideLink.selectedMatch[0].getDisplayText('left')) : ''; - let both:string = scope.relationMenuDirectiveObj.leftSideLink.selectedMatch && scope.relationMenuDirectiveObj.rightSideLink.selectedMatch ? ' - ' + - this.$filter('resourceName')(scope.relationMenuDirectiveObj.leftSideLink.selectedMatch[0].requirement.relationship) + ' - ' : ''; - let right:string = scope.relationMenuDirectiveObj.rightSideLink.selectedMatch ? this.$filter('resourceName')(scope.relationMenuDirectiveObj.rightSideLink.selectedMatch[0].getDisplayText('right')) : ''; - scope.relationMenuDirectiveObj.selectionText = left + both + right; - }; - - - } - public static factory = ($templateCache:ng.ITemplateCacheService , $filter:ng.IFilterService)=> { - return new RelationMenuDirective($templateCache, $filter); - }; - } - - RelationMenuDirective.factory.$inject = ['$templateCache', '$filter']; -} diff --git a/catalog-ui/app/scripts/directives/info-tooltip/info-tooltip.html b/catalog-ui/app/scripts/directives/info-tooltip/info-tooltip.html deleted file mode 100644 index 5c2bdcf5f1..0000000000 --- a/catalog-ui/app/scripts/directives/info-tooltip/info-tooltip.html +++ /dev/null @@ -1,10 +0,0 @@ -
    - -
    -
    -
    - -

    -
    -
    -
    diff --git a/catalog-ui/app/scripts/directives/info-tooltip/info-tooltip.less b/catalog-ui/app/scripts/directives/info-tooltip/info-tooltip.less deleted file mode 100644 index 8811af16a4..0000000000 --- a/catalog-ui/app/scripts/directives/info-tooltip/info-tooltip.less +++ /dev/null @@ -1,39 +0,0 @@ -.info-tooltip { - position: fixed; - z-index: 1070; - display: block; - width: 250px; - .info-tooltip-arrow { - width: 0; - height: 0; - border-style: solid; - border-width: 0 5px 5px 5px; - border-color: transparent transparent @main_color_a transparent; - position: relative; - left: 2px; - } - .info-tooltip-content { - box-shadow: 0px 3px 6px 0px rgba(0, 0, 0, 0.5); - border: 1px solid @main_color_o; - border-radius: 3px; - border-top: 3px solid @main_color_a; - position: relative; - background-color: white; - &.right{ - left: -13px; - } - &.left{ - left: -223px; - } - .close-tooltip{ - float: right; - margin: 5px; - } - - .info-tooltip-message{ - margin: 15px; - word-break: normal; - font-size: 14px; - } - } -} diff --git a/catalog-ui/app/scripts/directives/info-tooltip/info-tooltip.ts b/catalog-ui/app/scripts/directives/info-tooltip/info-tooltip.ts deleted file mode 100644 index cd81b14ce8..0000000000 --- a/catalog-ui/app/scripts/directives/info-tooltip/info-tooltip.ts +++ /dev/null @@ -1,60 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/** - * Created by rcohen on 9/25/2016. - */ -/// -module Sdc.Directives { - 'use strict'; - - export interface IInfoTooltipScope extends ng.IScope { - infoMessageTranslate:string; - direction:string; - } - - - export class InfoTooltipDirective implements ng.IDirective { - - constructor(private $templateCache:ng.ITemplateCacheService) { - } - - scope = { - infoMessageTranslate:'@', - direction:'@'//get 'right' or 'left', the default is 'right' - }; - - restrict = 'E'; - replace = true; - template = ():string => { - return this.$templateCache.get('/app/scripts/directives/info-tooltip/info-tooltip.html'); - }; - - link = (scope:IInfoTooltipScope, element:any, $attr:any) => { - scope.direction = scope.direction || 'right'; - }; - - public static factory = ($templateCache:ng.ITemplateCacheService)=> { - return new InfoTooltipDirective($templateCache); - }; - - } - - InfoTooltipDirective.factory.$inject = ['$templateCache']; -} diff --git a/catalog-ui/app/scripts/directives/invalid-characters/invalid-characters.ts b/catalog-ui/app/scripts/directives/invalid-characters/invalid-characters.ts deleted file mode 100644 index 7ab98b0d23..0000000000 --- a/catalog-ui/app/scripts/directives/invalid-characters/invalid-characters.ts +++ /dev/null @@ -1,72 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Directives { - 'use strict'; - - export class InvalidCharactersDirective implements ng.IDirective { - - constructor() {} - - require = 'ngModel'; - - link = (scope, elem, attrs, ngModel) => { - - let invalidCharacters = []; - - attrs.$observe('invalidCharacters', (val:string) => { - invalidCharacters = val.split(''); - validate(ngModel.$viewValue); - }); - - let validate: Function = function (value) { - - let valid:boolean = true; - - if(value) { - for (let i = 0; i < invalidCharacters.length; i++) { - if (value.indexOf(invalidCharacters[i]) != - 1) { - valid = false; - } - } - } - - ngModel.$setValidity('invalidCharacters', valid); - if(!value) { - ngModel.$setPristine(); - } - return value; - }; - - //For DOM -> model validation - ngModel.$parsers.unshift(validate); - //For model -> DOM validation - ngModel.$formatters.unshift(validate); - - }; - - public static factory = ()=> { - return new InvalidCharactersDirective(); - }; - - } - - InvalidCharactersDirective.factory.$inject = []; -} diff --git a/catalog-ui/app/scripts/directives/layout/top-nav/top-nav.html b/catalog-ui/app/scripts/directives/layout/top-nav/top-nav.html deleted file mode 100644 index 40b1e86d90..0000000000 --- a/catalog-ui/app/scripts/directives/layout/top-nav/top-nav.html +++ /dev/null @@ -1,54 +0,0 @@ - diff --git a/catalog-ui/app/scripts/directives/layout/top-nav/top-nav.less b/catalog-ui/app/scripts/directives/layout/top-nav/top-nav.less deleted file mode 100644 index 65021bdc4d..0000000000 --- a/catalog-ui/app/scripts/directives/layout/top-nav/top-nav.less +++ /dev/null @@ -1,218 +0,0 @@ -.top-nav { - position: fixed; - top: @header_height; - background-color: @main_color_p; - .box-shadow(0px 1px 3px 0px rgba(0, 0, 0, 0.33)); - width: 100%; - height: @top_nav_height; - line-height: @top_nav_height; - z-index: 10; - display: flex; - flex-direction: row; - align-items: center; - - .asdc-app-title-wrapper { - flex-grow: 1; - line-height: 16px; - margin: 0 20px; - - a.asdc-app-title { - .m_18_r; - text-decoration: none; - } - - .asdc-version { - .m_12_r; - .opacity(0.8); - line-height: 14px; - flex-grow: 1; - } - - } - - ul.top-menu { - list-style-type: none; - margin: 0 0 0 20px; - padding: 0; - flex-grow: 999; - - & > li { - float: left; - cursor: pointer; - line-height: 50px; - height: 50px; - padding: 0 20px; - - &.selected { - border-bottom: solid 4px @main_color_a; - - a { - color: @func_color_s; - } - } - - /*&:hover { - border-bottom: solid 4px @main_color_a; - }*/ - - a { - font-family: @font-omnes-medium; - color: @main_color_m; - font-size: 18px; - display: block; - text-align: center; - text-decoration: none; - } - - &.triangle-dropdown { - padding: 0; - position: relative; - - div.triangle { - margin-top: 15px; - border-radius: 2px; - width: 17px; - height: 18px; - - //temp use - until new triangle gets in - line-height: 18px; - text-align: center; - font-size: 10px; - - &:hover { - background-color: rgba(156, 156, 156, 0.2); - - span { - .arrow-right-hover; - } - } - } - - + li a { - font-size: 16px; - } - - .ps-container { - .perfect-scrollbar; - position: absolute; - left: 0; - top: 40px; - z-index: 1; - - overflow: hidden; - max-height: 0; - -webkit-transition: max-height 200ms ease-in; - -moz-transition: max-height 200ms ease-in; - -o-transition: max-height 200ms ease-in; - transition: max-height 200ms ease-in; - - div ul { - - padding: 0; - background-color: white; - - li { - - height: 35px; - background-color: white; - font-size: 13px; - width: 150px; - line-height: 35px; - padding: 0 10px; - - &.disabled { - opacity: 1; - } - &.selected { - background-color: @tlv_color_v; - font-weight: bold; - } - &:hover { - color: @main_color_a; - } - span { - height: 35px; - width: 130px; - display: inline-block; - } - } - } - } - &.item-click:hover .ps-container, - &.item-click:active .ps-container { - max-height: 500px; - border: 1px solid @func_color_b; - border-radius: 2px; - box-shadow: 0px 2px 2px 0px rgba(24, 24, 25, 0.1); - - div ul { - - } - } - } - } - - } - - .top-search { - position: relative; - flex-grow: 1; - padding: 0 20px; - - input.search-text { - .border-radius(2px); - width: 245px; - height: 32px; - line-height: 32px; - border: 1px solid @main_color_o; - outline: none; - text-indent: 10px; - - &::-webkit-input-placeholder { font-style: italic; } /* Safari, Chrome and Opera */ - &:-moz-placeholder { font-style: italic; } /* Firefox 18- */ - &::-moz-placeholder { font-style: italic; } /* Firefox 19+ */ - &:-ms-input-placeholder { font-style: italic; } /* IE 10+ */ - &:-ms-input-placeholder { font-style: italic; } /* Edge */ - /* font-style: italic; - }*/ - /* Firefox 18- */ - &::-moz-placeholder { - font-style: italic; - } - /* Firefox 19+ */ - &:-ms-input-placeholder { - font-style: italic; - } - /* IE 10+ */ - &:-ms-input-placeholder { - font-style: italic; - } - /* Edge */ - } - - .magnification { - position: absolute; - top: 19px; - right: 26px; - } - - } - - .notification-icon { - cursor: pointer; - flex-grow: 1; - margin: 0 10px 6px 0; - .sprite-new; - .vsp-list-icon; - - &:hover { - .vsp-list-icon-hover; - } - - &:active { - .vsp-list-icon-active; - } - - } - -} diff --git a/catalog-ui/app/scripts/directives/layout/top-nav/top-nav.ts b/catalog-ui/app/scripts/directives/layout/top-nav/top-nav.ts deleted file mode 100644 index 356e43b7f7..0000000000 --- a/catalog-ui/app/scripts/directives/layout/top-nav/top-nav.ts +++ /dev/null @@ -1,155 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Directives { - 'use strict'; - - export interface ITopNavScope extends ng.IScope { - topLvlSelectedIndex: number; - hideSearch: boolean; - searchBind: any; - menuModel: Array; - - topLvlMenu: Utils.MenuItemGroup; - goToState(state:string, params:Array):ng.IPromise; - menuItemClick: Function; - user: Models.IUserProperties; - version:string; - } - - - export class TopNavDirective implements ng.IDirective { - - constructor(private $templateCache:ng.ITemplateCacheService, - private $filter:ng.IFilterService, - private $state:ng.ui.IStateService, - private $q: ng.IQService, - private userResourceService: Sdc.Services.IUserResourceClass - ) { - } - - public replace = true; - public restrict = 'E'; - public transclude = false; - - - scope = { - topLvlSelectedIndex: '@?', - hideSearch: '=', - searchBind: '=', - version: '@', - notificationIconCallback: '=', - menuModel: '=?', - }; - - template = ():string => { - return this.$templateCache.get('/app/scripts/directives/layout/top-nav/top-nav.html'); - }; - - public link = (scope:ITopNavScope, $elem:ng.IAugmentedJQuery, $attrs:angular.IAttributes) => { - - let getTopLvlSelectedIndexByState = ():number => { - if (!scope.topLvlMenu.menuItems) { - return 0; - } - - let result = -1; - - //set result to current state - scope.topLvlMenu.menuItems.forEach((item:Utils.MenuItem, index:number)=> { - if (item.state === this.$state.current.name) { - result = index; - } - }); - - //if it's a different state , checking previous state param - if (result === -1) { - scope.topLvlMenu.menuItems.forEach((item:Utils.MenuItem, index:number)=> { - if (item.state === this.$state.params['previousState']) { - result = index; - } - }); - } - - if (result === -1) { - result = 0; - } - - return result; - }; - - scope.user = this.userResourceService.getLoggedinUser(); - - let tmpArray:Array = [ - new Utils.MenuItem(this.$filter('translate')("TOP_MENU_HOME_BUTTON"), null, "dashboard", "goToState", null, null), - new Utils.MenuItem(this.$filter('translate')("TOP_MENU_CATALOG_BUTTON"), null, "catalog", "goToState", null, null) - ]; - - // Only designer can perform onboarding - if (scope.user && scope.user.role === 'DESIGNER'){ - tmpArray.push(new Utils.MenuItem(this.$filter('translate')("TOP_MENU_ON_BOARD_BUTTON"), null, "onboardVendor", "goToState", null, null)); - } - - scope.topLvlMenu = new Utils.MenuItemGroup(0, tmpArray , true ); - scope.topLvlMenu.selectedIndex = isNaN(scope.topLvlSelectedIndex) ? getTopLvlSelectedIndexByState() : scope.topLvlSelectedIndex; - - let generateMenu = () => { - if (scope.menuModel && scope.menuModel[0] !== scope.topLvlMenu) { - scope.menuModel.unshift(scope.topLvlMenu); - } - }; - scope.$watch('menuModel', generateMenu); - - generateMenu(); - - /////scope functions//// - - scope.goToState = (state:string, params:Array):ng.IPromise => { - let deferred = this.$q.defer(); - this.$state.go(state, params && params.length > 0 ? [0] : undefined); - deferred.resolve(true); - return deferred.promise; - }; - - scope.menuItemClick = (itemGroup:Utils.MenuItemGroup, item:Utils.MenuItem) => { - - itemGroup.itemClick = false; - - let onSuccess = ():void => { - itemGroup.selectedIndex = itemGroup.menuItems.indexOf(item); - }; - let onFailed = ():void => {}; - - if (item.callback) { - (item.callback.apply(undefined, item.params)).then(onSuccess, onFailed); - } else { - scope[item.action](item.state, item.params).then(onSuccess, onFailed); - } - }; - }; - - public static factory = ($templateCache:ng.ITemplateCacheService, $filter:ng.IFilterService, $state:ng.ui.IStateService, $q: ng.IQService, userResourceService: Sdc.Services.IUserResourceClass)=> { - return new TopNavDirective($templateCache, $filter, $state,$q, userResourceService); - }; - - } - - TopNavDirective.factory.$inject = ['$templateCache', '$filter', '$state','$q', 'Sdc.Services.UserResourceService']; -} diff --git a/catalog-ui/app/scripts/directives/layout/top-progress/top-progress.html b/catalog-ui/app/scripts/directives/layout/top-progress/top-progress.html deleted file mode 100644 index ab2c8e364e..0000000000 --- a/catalog-ui/app/scripts/directives/layout/top-progress/top-progress.html +++ /dev/null @@ -1,22 +0,0 @@ -
    - - -
    - {{progressMessage}}{{progressValue}} % -
    -
    -
    -
    - -
    - - {{progressMessage}} -
    - -
    - - {{progressMessage}} -
    - - -
    diff --git a/catalog-ui/app/scripts/directives/layout/top-progress/top-progress.less b/catalog-ui/app/scripts/directives/layout/top-progress/top-progress.less deleted file mode 100644 index acce826f80..0000000000 --- a/catalog-ui/app/scripts/directives/layout/top-progress/top-progress.less +++ /dev/null @@ -1,58 +0,0 @@ -.top-progress { - text-align: left; - - .sdc-progress-title { - .n_12_r; - - .progress-percentage { - float: right; - } - } - - .sdc-progress { - position: relative; - display: block; - height: 6px; - background-color: @main_color_o; - border-radius: 3px; - box-shadow: inset 0 1px 2px rgba(0,0,0,.1); - - .progress-bar { - border-radius: 3px; - background-color: @main_color_a; - } - - } - - .sdc-progress-success-wrapper { - display: flex; - align-items: flex-end; - - .sdc-progress-success-title { - .d_12_r; - margin-left: 10px; - } - - .sdc-progress-success { - .sprite-new; - .success-circle; - } - } - - .sdc-progress-error-wrapper { - display: flex; - align-items: flex-end; - - .sdc-progress-error-title { - .q_12_r; - margin-left: 10px; - } - - .sdc-progress-error { - .sprite-new; - .error-icon; - } - - } - -} diff --git a/catalog-ui/app/scripts/directives/layout/top-progress/top-progress.ts b/catalog-ui/app/scripts/directives/layout/top-progress/top-progress.ts deleted file mode 100644 index 8e8a289281..0000000000 --- a/catalog-ui/app/scripts/directives/layout/top-progress/top-progress.ts +++ /dev/null @@ -1,57 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Directives { - 'use strict'; - - export interface ITopProgressScope extends ng.IScope { - progressValue:number; - progressMessage:string; - } - - export class TopProgressDirective implements ng.IDirective { - - constructor(private $templateCache:ng.ITemplateCacheService) {} - - public replace = true; - public restrict = 'E'; - public transclude = false; - - scope = { - progressValue: '=', - progressMessage: '=' - }; - - template = ():string => { - return this.$templateCache.get('/app/scripts/directives/layout/top-progress/top-progress.html'); - }; - - public link = (scope:ITopProgressScope, $elem:ng.IAugmentedJQuery, $attrs:angular.IAttributes) => { - - }; - - public static factory = ($templateCache:ng.ITemplateCacheService)=> { - return new TopProgressDirective($templateCache); - }; - - } - - TopProgressDirective.factory.$inject = ['$templateCache']; -} diff --git a/catalog-ui/app/scripts/directives/loader/loader-directive.html b/catalog-ui/app/scripts/directives/loader/loader-directive.html deleted file mode 100644 index e40b059a57..0000000000 --- a/catalog-ui/app/scripts/directives/loader/loader-directive.html +++ /dev/null @@ -1,4 +0,0 @@ -
    -
    -
    -
    diff --git a/catalog-ui/app/scripts/directives/loader/loader-directive.less b/catalog-ui/app/scripts/directives/loader/loader-directive.less deleted file mode 100644 index ae0b41aab1..0000000000 --- a/catalog-ui/app/scripts/directives/loader/loader-directive.less +++ /dev/null @@ -1,74 +0,0 @@ -.tlv-loader-back { - background-color: @main_color_p; - position: fixed; - top: 50px; - left: 0; - right: 0; - bottom: 0; - z-index: 9999; - opacity: 0.5; -} - -.tlv-loader-relative { position: absolute; top: 0;} - -.tlv-loader { - z-index: 10002; -} - -@keyframes fadein { - from { opacity: 0; } - to { opacity: 0.8; } -} - -/* Firefox < 16 */ -@-moz-keyframes fadein { - from { opacity: 0; } - to { opacity: 0.8; } -} - -/* Safari, Chrome and Opera > 12.1 */ -@-webkit-keyframes fadein { - from { opacity: 0; } - to { opacity: 0.8; } -} - -/* Internet Explorer */ -@-ms-keyframes fadein { - from { opacity: 0; } - to { opacity: 0.8; } -} - -/* Opera < 12.1 */ -@-o-keyframes fadein { - from { opacity: 0; } - to { opacity: 0.8; } -} - -@keyframes fadeout { - from { opacity: 0.8; } - to { opacity: 0; } -} - -/* Firefox < 16 */ -@-moz-keyframes fadeout { - from { opacity: 0.8; } - to { opacity: 0; } -} - -/* Safari, Chrome and Opera > 12.1 */ -@-webkit-keyframes fadeout { - from { opacity: 0.8; } - to { opacity: 0; } -} - -/* Internet Explorer */ -@-ms-keyframes fadeout { - from { opacity: 0.8; } - to { opacity: 0; } -} - -/* Opera < 12.1 */ -@-o-keyframes fadeout { - from { opacity: 0.8; } - to { opacity: 0; } -} diff --git a/catalog-ui/app/scripts/directives/loader/loader-directive.ts b/catalog-ui/app/scripts/directives/loader/loader-directive.ts deleted file mode 100644 index 77c8977ac5..0000000000 --- a/catalog-ui/app/scripts/directives/loader/loader-directive.ts +++ /dev/null @@ -1,155 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Directives { - 'use strict'; - export interface ILoaderScope extends ng.IScope { - display: boolean; // Toggle show || hide scroll - size: string; // small || medium || large - elementSelector: string; // Jquery selector to hide and scroll inside - relative: boolean; // Will use the parent of element and hide it and scroll inside - loaderType: string; - } - - export class LoaderDirective implements ng.IDirective { - - constructor(private $templateCache: ng.ITemplateCacheService, private EventListenerService: Services.EventListenerService) { - } - - /* - * relative is used when inserting the HTML loader inside some div - * elementSelector when we want to pass the Jquery selector of the loader. - */ - scope = { - display: '=', - size: '@?', - elementSelector: '@?', - relative: '=?', - loaderType: '@?' - }; - - public replace = false; - public restrict = 'E'; - template = (): string => { - return this.$templateCache.get('/app/scripts/directives/loader/loader-directive.html'); - }; - - link = (scope: ILoaderScope, element: any) => { - - let interval; - - this.EventListenerService.registerObserverCallback(Utils.Constants.EVENTS.SHOW_LOADER_EVENT, (loaderType)=> { - if (scope.loaderType !== loaderType) { - return; - } - scope.display = true; - }); - this.EventListenerService.registerObserverCallback(Utils.Constants.EVENTS.HIDE_LOADER_EVENT, (loaderType)=> { - if (scope.loaderType !== loaderType) { - return; - } - scope.display = false; - }); - - let calculateSizesForFixPosition = (positionStyle: string): void => { - // This is problematic, I do not want to change the parent position. - // set the loader on all the screen - let parentPosition = element.parent().position(); - let parentWidth = element.parent().width(); - let parentHeight = element.parent().height(); - element.css('position', positionStyle); - element.css('top', parentPosition.top); - element.css('left', parentPosition.left); - element.css('width', parentWidth); - element.css('height', parentHeight); - }; - - let setStyle = (positionStyle: string): void => { - - switch (positionStyle) { - case 'absolute': - case 'fixed': - // The parent size is not set yet, still loading, so need to use interval to update the size. - interval = window.setInterval(()=> { - calculateSizesForFixPosition(positionStyle); - }, 2000); - break; - default: - // Can change the parent position to relative without causing style issues. - element.parent().css('position', 'relative'); - break; - } - }; - - // This should be executed after the dom loaded - window.setTimeout((): void => { - - element.css('display', 'none'); - - if (scope.elementSelector) { - let elemParent = angular.element(scope.elementSelector); - let positionStyle: string = elemParent.css('position'); - setStyle(positionStyle); - } - - if (scope.relative === true) { - let positionStyle: string = element.parent().css('position'); - setStyle(positionStyle); - } - - if (!scope.size) { - scope.size = 'large'; - } - - }, 0); - - if (scope.elementSelector) { - - } - - function cleanUp() { - clearInterval(interval); - } - - scope.$watch("display", (newVal, oldVal) => { - element.css('display', 'none'); - if (newVal === true) { - window.setTimeout((): void => { - element.css('display', 'block'); - }, 500); - } else { - window.setTimeout((): void => { - element.css('display', 'none'); - }, 0); - } - }); - - scope.$on('$destroy', cleanUp); - - }; - - public static factory = ($templateCache: ng.ITemplateCacheService, EventListenerService: Services.EventListenerService)=> { - return new LoaderDirective($templateCache, EventListenerService); - }; - - } - - LoaderDirective.factory.$inject = ['$templateCache', 'EventListenerService']; -} diff --git a/catalog-ui/app/scripts/directives/modal/sdc-modal.html b/catalog-ui/app/scripts/directives/modal/sdc-modal.html deleted file mode 100644 index a8419f162d..0000000000 --- a/catalog-ui/app/scripts/directives/modal/sdc-modal.html +++ /dev/null @@ -1,18 +0,0 @@ -
    -
    - {{header}} - -
    -
    -
    - -
    - -
    diff --git a/catalog-ui/app/scripts/directives/modal/sdc-modal.less b/catalog-ui/app/scripts/directives/modal/sdc-modal.less deleted file mode 100644 index d8dfdbb73b..0000000000 --- a/catalog-ui/app/scripts/directives/modal/sdc-modal.less +++ /dev/null @@ -1,10 +0,0 @@ -.ellipsis-directive-more-less { - .a_9; - .bold; - .hand; - float: right; - margin-right: 17px; - line-height: 23px; - text-decoration: underline; - text-align: left; -} diff --git a/catalog-ui/app/scripts/directives/modal/sdc-modal.ts b/catalog-ui/app/scripts/directives/modal/sdc-modal.ts deleted file mode 100644 index 338035c9f1..0000000000 --- a/catalog-ui/app/scripts/directives/modal/sdc-modal.ts +++ /dev/null @@ -1,103 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Directives { - 'use strict'; - - export interface ISdcModalScope extends ng.IScope { - modal:ng.ui.bootstrap.IModalServiceInstance; - hideBackground:string; - ok():void; - close(result:any):void; - cancel(reason:any):void; - } - - export interface ISdcModalButton { - name:string; - css:string; - disabled?:boolean; - callback:Function; - } - - export class SdcModalDirective implements ng.IDirective { - - constructor( - private $templateCache: ng.ITemplateCacheService - ) {} - - scope = { - modal: '=', - type: '@', - header: '@', - headerTranslate: '@', - headerTranslateValues: '@', - showCloseButton: '@', - hideBackground: '@', - buttons: '=', - getCloseModalResponse: '=' - }; - - public replace = true; - public restrict = 'E'; - public transclude = true; - - template = (): string => { - return this.$templateCache.get('/app/scripts/directives/modal/sdc-modal.html'); - }; - - link = (scope:ISdcModalScope, $elem:any) => { - - if (scope.hideBackground==="true"){ - $(".modal-backdrop").css('opacity','0'); - } - - scope.close = function (result:any) { - scope.modal.close(result); - }; - - scope.ok = function () { - scope.modal.close(); - }; - - scope.cancel = function (reason:any) { - if(this.getCloseModalResponse) - scope.modal.dismiss(this.getCloseModalResponse()); - else { - scope.modal.dismiss(); - } - }; - - if (scope.modal) { - scope.modal.result.then(function (selectedItem) { - //$scope.selected = selectedItem; - }, function () { - //console.info('Modal dismissed at: ' + new Date()); - }); - } - } - - public static factory = ($templateCache: ng.ITemplateCacheService)=> { - return new SdcModalDirective($templateCache); - }; - - } - - SdcModalDirective.factory.$inject = ['$templateCache']; -} diff --git a/catalog-ui/app/scripts/directives/page-scroller/page-scroller.html b/catalog-ui/app/scripts/directives/page-scroller/page-scroller.html deleted file mode 100644 index 7359386901..0000000000 --- a/catalog-ui/app/scripts/directives/page-scroller/page-scroller.html +++ /dev/null @@ -1,22 +0,0 @@ -
    - - - - - -
    -
    - -
    -
    - -
    - diff --git a/catalog-ui/app/scripts/directives/page-scroller/page-scroller.less b/catalog-ui/app/scripts/directives/page-scroller/page-scroller.less deleted file mode 100644 index 14f8568f07..0000000000 --- a/catalog-ui/app/scripts/directives/page-scroller/page-scroller.less +++ /dev/null @@ -1,98 +0,0 @@ -.sdc-page-scroller { - - /****************** Navigation ***************/ - nav { - position: fixed; - top: 0; - right: 0; - z-index: 100; - display: flex; - flex-direction: column; - width: 100px; - bottom: 0; - background-color: #000; - align-items: center; - justify-content: center; - } - - nav ul { - list-style: none; - text-align: center; - margin-top: 0; - padding: 0; - } - - nav ul li { - display: block; - margin-bottom: 15px; - - } - - nav ul li:last-child { - - } - - nav a { - display: block; - height: 6px; - width: 6px; - border-radius: 50%; - background-color: #4a4c4d; - } - - nav a.active { - position: relative; - } - - nav a.active::after { - content: ''; - display: block; - position: absolute; - border: 2px solid #0198d1; - width: 16px; - height: 16px; - border-radius: 50%; - top: -5px; - left: -5px; - } - - /****************** Previous Next navigation ***************/ - .go-prev, .go-next { - cursor: pointer; - font-weight: bold; - text-decoration: underline; - } - - .slides-container { - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; - overflow-y: hidden; - z-index: 10; - } - - .slide { - position: relative; - width: 100%; - height: 100%; - overflow: hidden; - } - - .slide .centered { - width: 60%; - margin: 200px auto 0; - } - - .slide .centered h1 { - text-align: center; - } - - .slide .centered p { - text-align: center; - margin-top: 20px; - font-size: 20px; - } - -} diff --git a/catalog-ui/app/scripts/directives/page-scroller/page-scroller.ts b/catalog-ui/app/scripts/directives/page-scroller/page-scroller.ts deleted file mode 100644 index bb89f9a55a..0000000000 --- a/catalog-ui/app/scripts/directives/page-scroller/page-scroller.ts +++ /dev/null @@ -1,247 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Directives { - 'use strict'; - - export interface SlideData { - url: string; - id: string; - index: number; - callback: Function; - } - - export interface ISdcPageScrollDirectiveScope extends ng.IScope { - slidesData:Array; - showNav: boolean; - showPreviousNext: boolean; - currentSlide:SlideData; - showCloseButton:boolean; - closeButtonCallback:Function; - startSlideIndex:number; - - onNavButtonClick(slideName):void; - onCloseButtonClick():void; - goToPrevSlide():void; - goToNextSlide():void; - goToSlide(slide:SlideData):void; - onSlideChangeEnd():void; - onMouseWheel(event):void; - onKeyDown(event):void; - onResize(event):void; - gotoSlideIndex(index):void; - } - - export class SdcPageScrollDirective implements ng.IDirective { - - constructor(private $templateCache:ng.ITemplateCacheService) { - - } - - scope = { - slidesData: '=', - showNav: '=', - showPreviousNext: '=', - showCloseButton: '=', - closeButtonCallback: '=', - startSlideIndex: '=?' - }; - - public replace = true; - public restrict = 'E'; - private delayExec:any; - - template = ():string => { - return this.$templateCache.get('/app/scripts/directives/page-scroller/page-scroller.html'); - }; - - link = ($scope:ISdcPageScrollDirectiveScope, $elem:JQuery, attr:any) => { - let isAnimating = false; //Animating flag - is our app animating - let pageHeight = $(window).innerHeight(); //The height of the window - let slidesContainer; - let navButtons; - let slides:any; //Only graph-links that starts with - - //Key codes for up and down arrows on keyboard. We'll be using this to navigate change slides using the keyboard - let keyCodes = { - UP : 38, - DOWN: 40 - }; - - $scope.onCloseButtonClick = ():void => { - if ($scope.closeButtonCallback){ - $scope.closeButtonCallback(); - }; - }; - - // Wait for the dom to load (after ngRepeat). - $scope.$on('onRepeatLast', (scope, element, attrs) => { - slides = $(".slide", slidesContainer); - slidesContainer = $(".slides-container"); - navButtons = $("nav a").filter("[href^='#']"); - - // Adding event listeners - $(window).on("resize", (e) => {$scope.onResize(e);}).resize(); - $(window).on("mousewheel DOMMouseScroll", (e) => {$scope.onMouseWheel(e);}); - $(document).on("keydown", (e) => {$scope.onKeyDown(e);}); - - //Going to the first slide - if ($scope.startSlideIndex){ - $scope.gotoSlideIndex($scope.startSlideIndex); - } else { - $scope.gotoSlideIndex(0); - } - - }); - - $scope.gotoSlideIndex = (index) => { - $scope.goToSlide($scope.slidesData[index]); - }; - - // When a button is clicked - first get the button href, and then slide to the container, if there's such a container - $scope.onNavButtonClick = (slide:SlideData):void => { - $scope.goToSlide(slide); - }; - - // If there's a previous slide, slide to it - $scope.goToPrevSlide = ():void => { - let previousSlide = $scope.slidesData[$scope.currentSlide.index-1]; - if (previousSlide) { - $scope.goToSlide(previousSlide); - } - }; - - // If there's a next slide, slide to it - $scope.goToNextSlide = ():void => { - let nextSlide = $scope.slidesData[$scope.currentSlide.index+1]; - if (nextSlide) { - $scope.goToSlide(nextSlide); - } - }; - - // Actual transition between slides - $scope.goToSlide = (slide:SlideData):void => { - //console.log("start goToSlide"); - //If the slides are not changing and there's such a slide - if(!isAnimating && slide) { - //setting animating flag to true - isAnimating = true; - $scope.currentSlide = slide; - $scope.currentSlide.callback(); - - //Sliding to current slide - let calculatedY = pageHeight * ($scope.currentSlide.index); - //console.log("$scope.currentSlide.index: " + $scope.currentSlide.index + " | calculatedY: " + calculatedY); - - $('.slides-container').animate( - { - scrollTop: calculatedY + 'px' - }, - { - duration: 1000, - specialEasing: { - width: "linear", - height: "easeInOutQuart" - }, - complete: function() { - $scope.onSlideChangeEnd(); - } - } - ); - - //Animating menu items - $(".sdc-page-scroller nav a.active").removeClass("active"); - $(".sdc-page-scroller nav [href='#" + $scope.currentSlide.id + "']").addClass("active"); - } - }; - - // Once the sliding is finished, we need to restore "isAnimating" flag. - // You can also do other things in this function, such as changing page title - $scope.onSlideChangeEnd = ():void => { - - - - isAnimating = false; - }; - - // When user scrolls with the mouse, we have to change slides - $scope.onMouseWheel = (event):void => { - //Normalize event wheel delta - let delta = event.originalEvent.wheelDelta / 30 || -event.originalEvent.detail; - - //If the user scrolled up, it goes to previous slide, otherwise - to next slide - if(delta < -1) { - this.delayAction($scope.goToNextSlide); - } else if(delta > 1) { - this.delayAction($scope.goToPrevSlide); - } - event.preventDefault(); - }; - - // Getting the pressed key. Only if it's up or down arrow, we go to prev or next slide and prevent default behaviour - // This way, if there's text input, the user is still able to fill it - $scope.onKeyDown = (event):void => { - let PRESSED_KEY = event.keyCode; - - if(PRESSED_KEY == keyCodes.UP){ - $scope.goToPrevSlide(); - event.preventDefault(); - } else if(PRESSED_KEY == keyCodes.DOWN){ - $scope.goToNextSlide(); - event.preventDefault(); - } - }; - - // When user resize it's browser we need to know the new height, so we can properly align the current slide - $scope.onResize = (event):void => { - //This will give us the new height of the window - let newPageHeight = $(window).innerHeight(); - - // If the new height is different from the old height ( the browser is resized vertically ), the slides are resized - if(pageHeight !== newPageHeight) { - pageHeight = newPageHeight; - } - }; - }; - - private initSlides = ():void => { - //pageHeight - }; - - private delayAction = (action:Function):void => { - clearTimeout(this.delayExec); - this.delayExec = setTimeout(function () { - action(); - }, 100); - }; - - public static factory = ($templateCache:ng.ITemplateCacheService)=> { - return new SdcPageScrollDirective($templateCache); - }; - - } - - SdcPageScrollDirective.factory.$inject = ['$templateCache']; - -} - - - - diff --git a/catalog-ui/app/scripts/directives/perfect-scrollbar/angular-perfect-scrollbar.ts b/catalog-ui/app/scripts/directives/perfect-scrollbar/angular-perfect-scrollbar.ts deleted file mode 100644 index b53a059a40..0000000000 --- a/catalog-ui/app/scripts/directives/perfect-scrollbar/angular-perfect-scrollbar.ts +++ /dev/null @@ -1,159 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Directives { - - 'use strict'; - - export interface IPerfectScrollerScope extends ng.IScope { - //update(event:string): void; - } - - export class PerfectScrollerDirective implements ng.IDirective { - - constructor( - private $templateCache: ng.ITemplateCacheService, - private $parse:any, - private $window:any) { - - } - - replace = true; - restrict = 'EA'; - transclude = true; - - template = (): string => { - return '
    '; - }; - - link = ($scope:IPerfectScrollerScope, $elem, $attr) => { - let self = this; - let options = {}; - - let psOptions = [ - 'wheelSpeed', 'wheelPropagation', 'minScrollbarLength', 'useBothWheelAxes', - 'useKeyboard', 'suppressScrollX', 'suppressScrollY', 'scrollXMarginOffset', - 'scrollYMarginOffset', 'includePadding'//, 'onScroll', 'scrollDown' - ]; - - for (let i=0, l=psOptions.length; i { - $scope.$evalAsync(function() { - //if ($attr.scrollDown == 'true' && event != 'mouseenter') { - if (event != 'mouseenter') { - setTimeout(function () { - $($elem).scrollTop($($elem).prop("scrollHeight")); - }, 100); - } - $elem.perfectScrollbar('update'); - }); - }; - */ - - // This is necessary when you don't watch anything with the scrollbar - $elem.bind('mouseenter', function(){ - //console.log("mouseenter"); - $elem.perfectScrollbar('update'); - }); - - $elem.bind('mouseleave', function(){ - //console.log("mouseleave"); - setTimeout(function () { - $(window).trigger('mouseup'); - $elem.perfectScrollbar('update'); - }, 10); - }); - - $elem.bind('click', function(){ - //console.log("click"); - // Wait 500 milliseconds until the collapse finish closing and update. - setTimeout(function () { - $elem.perfectScrollbar('update'); - }, 500); - }); - - /** - * Check if the content of the scroller was changed, and if changed update the scroller. - * Because DOMSubtreeModified event is fire many time (while filling the content), I'm checking that - * there is at least 100 milliseconds between DOMSubtreeModified events to update the scrollbar. - * @type {boolean} - */ - let insideDOMSubtreeModified=false; - $elem.bind('DOMSubtreeModified', function(){ - if (insideDOMSubtreeModified==false) { - insideDOMSubtreeModified=true; - setTimeout(function () { - insideDOMSubtreeModified=false; - $elem.perfectScrollbar('update'); - }, 100); - } - }); - - // Possible future improvement - check the type here and use the appropriate watch for non-arrays - if ($attr.refreshOnChange) { - $scope.$watchCollection($attr.refreshOnChange, function() { - $elem.perfectScrollbar('update'); - }); - } - - /* - // this is from a pull request - I am not totally sure what the original issue is but seems harmless - if ($attr.refreshOnResize) { - self.$window.on('resize', function(e){$scope.update(e)}); - } - */ - - $elem.bind('$destroy', function() { - //self.$window.off('resize', function(e){$scope.update(e)}); - $elem.perfectScrollbar('destroy'); - }); - - }; - - public static factory = ($templateCache: ng.ITemplateCacheService, $parse:any, $window:any)=> { - return new PerfectScrollerDirective($templateCache, $parse, $window); - }; - - } - - PerfectScrollerDirective.factory.$inject = ['$templateCache','$parse','$window']; -} diff --git a/catalog-ui/app/scripts/directives/print-graph-screen/print-graph-screen.ts b/catalog-ui/app/scripts/directives/print-graph-screen/print-graph-screen.ts deleted file mode 100644 index 8204928e6f..0000000000 --- a/catalog-ui/app/scripts/directives/print-graph-screen/print-graph-screen.ts +++ /dev/null @@ -1,211 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Directives { - 'use strict'; - - export interface IPrintGraphScreenScope extends ng.IScope { - entity:Models.Components.Component; - } - - - export class PrintGraphScreenDirective implements ng.IDirective { - - constructor( - private $filter: ng.IFilterService, - private sdcMenu:Models.IAppMenu, - private sdcConfig:Models.IAppConfigurtaion, - private urlToBase64Service:Sdc.Services.UrlToBase64Service - ) {} - - scope = { - entity: '=' - }; - restrict = 'A'; - link = (scope:IPrintGraphScreenScope, element:any) => { - - - element.bind('click', function() { - printScreen(); - }); - - - // TODO we need to implement export to PDF in cytoscape - let printScreen = ():void => { - - // - // let pdf :any = new jsPDF('landscape', 'mm', 'a4'); - // pdf.setProperties({ - // title: scope.entity.name, - // subject: 'Design Snapshot for ' + scope.entity.name, - // author: scope.entity.creatorFullName, - // keywords: scope.entity.tags.join(', '), - // creator: scope.entity.creatorFullName - // }); - // - // // A4 measures is 210 × 297 millimeters - // let pdfWidth :number = 297, - // pdfHeight :number = 210, - // leftColumnWidth :number = 80; - // - // //left bar background - // pdf.setDrawColor(0); - // pdf.setFillColor(248, 249, 251); - // pdf.rect(0, 0, leftColumnWidth, pdfHeight, 'F'); - // - // //entity name - // pdf.setFontSize(12); - // pdf.setTextColor(38, 61, 77); - // let splitTitle :any = pdf.splitTextToSize(scope.entity.name, 50); - // pdf.text(22, 15 - (splitTitle.length - 1) * 2, splitTitle); - // - // //line - // pdf.setLineWidth(0.2); - // pdf.setDrawColor(208, 209, 213); - // pdf.line(0, 28, leftColumnWidth, 28); - // - // - // pdf.setFontSize(10); - // let properties :any = getPdfProperties(); - // - // let topOffset :number = 39, lines; - // properties.forEach( (item:any) => { - // if (!item.value) { - // return; - // } - // if (item.title === 'Description:') { - // topOffset += 5; - // } - // - // pdf.setTextColor(38, 61, 77); - // pdf.text(5, topOffset, item.title); - // pdf.setTextColor(102, 102, 102); - // lines = pdf.splitTextToSize(item.value, 49); - // pdf.text(5 + item.offset, topOffset, lines[0]); - // if (lines.length > 1) { - // lines = pdf.splitTextToSize(item.value.substring(lines[0].length + 1), 65); - // if (lines.length > 8) { - // lines = lines.slice(0, 7); - // lines[lines.length - 1] += '...'; - // } - // pdf.text(5, topOffset + 4, lines); - // topOffset += 4 * (lines.length); - // } - // - // topOffset += 6; - // }); - // - // - // //another background in case the text was too long - // let declarationLineOffset :number = 176; - // pdf.setDrawColor(0); - // pdf.setFillColor(248, 249, 251); - // pdf.rect(0, declarationLineOffset, leftColumnWidth, pdfHeight - declarationLineOffset, 'F'); - // //line - // pdf.setLineWidth(0.2); - // pdf.setDrawColor(208, 209, 213); - // pdf.line(0, declarationLineOffset, leftColumnWidth, declarationLineOffset); - // - // //declaration - // pdf.setFontSize(10.5); - // pdf.setTextColor(38, 61, 77); - // pdf.text(5, 185, 'Declaration'); - // pdf.setFontSize(9); - // pdf.setTextColor(102, 102, 102); - // pdf.setFontType('bold'); - // pdf.text(5, 190, this.$filter('translate')('PDF_FILE_DECLARATION_BOLD')); - // pdf.setFontType('normal'); - // pdf.text(5, 194, pdf.splitTextToSize(this.$filter('translate')('PDF_FILE_DECLARATION'), 65)); - // - // //entity icon - // let self = this; - // let addEntityIcon:Function = () => { - // let iconPath:string = self.sdcConfig.imagesPath + '/styles/images/'; - // if (scope.entity.isService()) { - // iconPath += 'service-icons/' + scope.entity.icon + '.png'; - // } else { - // iconPath += 'resource-icons/' + scope.entity.icon + '.png'; - // } - // self.urlToBase64Service.downloadUrl(iconPath, (base64string:string):void => { - // if (base64string) { - // pdf.addImage(base64string, 'JPEG', 5, 7, 15, 15); - // } - // pdf.save(scope.entity.name + '.pdf'); - // }); - // }; - // - // //actual snapshop of canvas - // - // let diagramDiv :any = document.getElementById('myDiagram'); - // let diagram :any = null;// Sdc.Graph.Diagram.fromDiv(diagramDiv), canvasImg = new Image(); - // diagram.startTransaction('print screen'); - // let canvasImgBase64:any = diagram.makeImageData({ - // //scale: 1, - // // size: new Sdc.Graph.Size(pdfHeight * 5, NaN), - // background: 'white', - // type: 'image/jpeg' - // }); - // diagramDiv.firstElementChild.toDataURL(); - // diagram.commitTransaction('print screen'); - // - // canvasImg.onload = () => { - // if (canvasImg.height > 0) { - // let canvasImgRatio:number = Math.min((pdfWidth - leftColumnWidth - 15) / canvasImg.width, pdfHeight / canvasImg.height); - // let canvasImgWidth:number = canvasImg.width * canvasImgRatio, - // canvasImgHeight:number = canvasImg.height * canvasImgRatio; - // let canvasImgOffset:number = (pdfHeight - canvasImgHeight) / 2; - // pdf.addImage(canvasImg, 'JPEG', leftColumnWidth, canvasImgOffset, canvasImgWidth, canvasImgHeight); - // - // addEntityIcon(); - // } - // }; - // - // if(canvasImg.src === 'data:,') { //empty canvas - // addEntityIcon(); - // } else { - // canvasImg.src = canvasImgBase64; - // } - }; - - let getPdfProperties = ():Array => { - return [ - {title: this.$filter('translate')('GENERAL_LABEL_TYPE'), value: scope.entity.getComponentSubType(), offset: 10}, - {title: this.$filter('translate')('GENERAL_LABEL_VERSION'), value: scope.entity.version, offset: 15}, - {title: this.$filter('translate')('GENERAL_LABEL_CATEGORY'), value: scope.entity.categories.length ? scope.entity.categories[0].name : '', offset: 16}, - {title: this.$filter('translate')('GENERAL_LABEL_CREATION_DATE'), value: this.$filter('date')(scope.entity.creationDate, 'MM/dd/yyyy'), offset: 24}, - {title: this.$filter('translate')('GENERAL_LABEL_AUTHOR'), value: scope.entity.creatorFullName, offset: 13}, - {title: this.$filter('translate')('GENERAL_LABEL_CONTACT_ID'), value: scope.entity.contactId, offset: 41}, - {title: this.$filter('translate')('GENERAL_LABEL_STATUS'), value: (this.sdcMenu).LifeCycleStatuses[scope.entity.lifecycleState].text, offset: 13}, - {title: this.$filter('translate')('GENERAL_LABEL_PROJECT_CODE'), value: scope.entity.projectCode, offset: 15}, - {title: this.$filter('translate')('GENERAL_LABEL_DESCRIPTION'), value: scope.entity.description, offset: 20}, - {title: this.$filter('translate')('GENERAL_LABEL_TAGS'), value: scope.entity.tags.join(', '), offset: 10} - ]; - }; - - }; - - public static factory = ($filter:ng.IFilterService, sdcMenu:Models.IAppMenu, sdcConfig:Models.IAppConfigurtaion, urlToBase64Service:Sdc.Services.UrlToBase64Service)=> { - return new PrintGraphScreenDirective($filter, sdcMenu, sdcConfig, urlToBase64Service); - }; - - } - - PrintGraphScreenDirective.factory.$inject = ['$filter', 'sdcMenu', 'sdcConfig', 'Sdc.Services.UrlToBase64Service']; -} diff --git a/catalog-ui/app/scripts/directives/property-types/data-type-fields-structure/data-type-fields-structure.html b/catalog-ui/app/scripts/directives/property-types/data-type-fields-structure/data-type-fields-structure.html deleted file mode 100644 index b4583fd304..0000000000 --- a/catalog-ui/app/scripts/directives/property-types/data-type-fields-structure/data-type-fields-structure.html +++ /dev/null @@ -1,82 +0,0 @@ -
    -
    -
    - {{typeName.replace("org.openecomp.datatypes.heat.","")}} -
    -
    -
    -
    - -
    -
    - -
    - -
    -
    -
    - -
    -
    - -
    -
    -
    - - - -
    - - - -
    -
    -
    -
    - - -
    -
    - - diff --git a/catalog-ui/app/scripts/directives/property-types/data-type-fields-structure/data-type-fields-structure.less b/catalog-ui/app/scripts/directives/property-types/data-type-fields-structure/data-type-fields-structure.less deleted file mode 100644 index 5c65fdc9dc..0000000000 --- a/catalog-ui/app/scripts/directives/property-types/data-type-fields-structure/data-type-fields-structure.less +++ /dev/null @@ -1,90 +0,0 @@ -.data-type-fields-structure{ - background-color: @tlv_color_v; - padding:10px; - display: table-caption; - .open-close{ - position: relative; - .open-close-button{ - position: absolute; - top: 50%; - margin-top: -7px; - &.expand{ - .sprite-new; - .expand-collapse-minus-icon; - } - &.collapse{ - .sprite-new; - .expand-collapse-plus-icon; - } - } - - } - - - .data-type-name{ - .m_16_m; - margin-left: 22px; - } - - .i-sdc-form-input:disabled{ - .disabled; - } - - .property{ - display: flex; - min-width: 365px; - min-height: 46px; - input[type="text"],select{ - width: 170px; - } - .property-name{ - float: left; - margin-top: 8px; - } - .primitive-value-field{ - float: right; - margin-top: 8px; - margin-left: 10px; - } - .inner-structure{ - display: -webkit-box; - } - } - - [ng-switch-when="map"]{ - margin-top: 8px; - margin-left: 10px; - .map-item{ - border: solid 1px @main_color_o; - min-width: 401px; - min-height: 69px; - float: none !important; - } - .add-map-item{ - width: auto; - float: none; - &:nth-child(1){ - position: relative; - top: 6px; - } - .add-btn{ - float: none; - } - } - - } - - [ng-switch-when="list"]{ - float: left; - margin-top: 8px; - margin-left: 10px; - min-width: 280px; - .dt-list-item { - border: solid 1px @main_color_o; - } - .list-value-items{ - width:280px; - } - } -} - diff --git a/catalog-ui/app/scripts/directives/property-types/data-type-fields-structure/data-type-fields-structure.ts b/catalog-ui/app/scripts/directives/property-types/data-type-fields-structure/data-type-fields-structure.ts deleted file mode 100644 index 94567ca36b..0000000000 --- a/catalog-ui/app/scripts/directives/property-types/data-type-fields-structure/data-type-fields-structure.ts +++ /dev/null @@ -1,165 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/** - * Created by obarda on 1/27/2016. - */ -/// -module Sdc.Directives { - 'use strict'; - - export interface IDataTypeFieldsStructureScope extends ng.IScope { - parentFormObj:ng.IFormController; - dataTypeProperties:Array; - typeName:string; - valueObjRef:any; - propertyNameValidationPattern: RegExp; - fieldsPrefixName:string; - readOnly:boolean; - currentTypeDefaultValue:any; - types:Models.DataTypesMap; - expandByDefault:boolean; - expand:boolean; - expanded:boolean; - dataTypesService:Sdc.Services.DataTypesService; - - expandAndCollapse():void; - getValidationPattern(type:string):RegExp; - validateIntRange(value:string):boolean; - onValueChange(propertyName:string, type:string):void - } - - - export class DataTypeFieldsStructureDirective implements ng.IDirective { - - constructor(private $templateCache:ng.ITemplateCacheService, - private DataTypesService:Sdc.Services.DataTypesService, - private PropertyNameValidationPattern: RegExp, - private ValidationUtils:Sdc.Utils.ValidationUtils) { - } - - scope = { - valueObjRef: '=', - typeName: '=', - parentFormObj: '=', - fieldsPrefixName: '=', - readOnly: '=', - defaultValue: '@', - types: '=', - expandByDefault: '=' - }; - - restrict = 'E'; - replace = true; - template = ():string => { - return this.$templateCache.get('/app/scripts/directives/property-types/data-type-fields-structure/data-type-fields-structure.html'); - }; - public types=Utils.Constants.PROPERTY_DATA.TYPES; - - //get data type properties array and return object with the properties and their default value - //(for example: get: [{name:"prop1",defaultValue:1 ...},{name:"prop2", defaultValue:"bla bla" ...}] - // return: {prop1: 1, prop2: "bla bla"} - private getDefaultValue = (dataTypeProperties:Array):any => { - let defaultValue = {}; - for(let i=0; i < dataTypeProperties.length; i++){ - if(dataTypeProperties[i].type!='string'){ - if(dataTypeProperties[i].defaultValue){ - defaultValue[dataTypeProperties[i].name] = JSON.parse(dataTypeProperties[i].defaultValue); - } - }else{ - defaultValue[dataTypeProperties[i].name] = dataTypeProperties[i].defaultValue; - } - } - return defaultValue; - }; - - private initDataOnScope = (scope:any, $attr:any):void =>{ - scope.dataTypesService = this.DataTypesService; - scope.dataTypeProperties = this.DataTypesService.getFirsLevelOfDataTypeProperties(scope.typeName,scope.types); - if($attr.defaultValue){ - scope.currentTypeDefaultValue = JSON.parse($attr.defaultValue); - }else{ - scope.currentTypeDefaultValue = this.getDefaultValue(scope.dataTypeProperties); - } - - if(!scope.valueObjRef) { - scope.valueObjRef = {}; - } - - _.forEach(scope.currentTypeDefaultValue, (value, key)=> { - if(!scope.valueObjRef[key]){ - if(typeof scope.currentTypeDefaultValue[key] == 'object'){ - angular.copy(scope.currentTypeDefaultValue[key], scope.valueObjRef[key]); - }else{ - scope.valueObjRef[key] = scope.currentTypeDefaultValue[key]; - } - } - }); - }; - - private rerender = (scope:any):void =>{ - scope.expanded = false; - scope.expand = false; - if(scope.expandByDefault){ - scope.expandAndCollapse(); - } - }; - - link = (scope:IDataTypeFieldsStructureScope, element:any, $attr:any) => { - scope.propertyNameValidationPattern = this.PropertyNameValidationPattern; - - scope.$watchCollection('[typeName,fieldsPrefixName]', (newData:any):void => { - this.rerender(scope); - }); - - - scope.expandAndCollapse = ():void => { - if(!scope.expanded){ - this.initDataOnScope(scope,$attr); - scope.expanded=true; - } - scope.expand=!scope.expand; - }; - - scope.getValidationPattern = (type:string):RegExp => { - return this.ValidationUtils.getValidationPattern(type); - }; - - scope.validateIntRange = (value:string):boolean => { - return !value || this.ValidationUtils.validateIntRange(value); - }; - - scope.onValueChange = (propertyName:string, type:string):void => { - scope.valueObjRef[propertyName] = !angular.isUndefined(scope.valueObjRef[propertyName]) ? scope.valueObjRef[propertyName] : scope.currentTypeDefaultValue[propertyName]; - if(scope.valueObjRef[propertyName] && type != 'string'){ - scope.valueObjRef[propertyName] = JSON.parse(scope.valueObjRef[propertyName]); - } - }; - }; - - public static factory = ($templateCache:ng.ITemplateCacheService, - DataTypesService:Sdc.Services.DataTypesService, - PropertyNameValidationPattern:RegExp, - ValidationUtils:Sdc.Utils.ValidationUtils)=> { - return new DataTypeFieldsStructureDirective($templateCache,DataTypesService,PropertyNameValidationPattern,ValidationUtils); - }; - } - - DataTypeFieldsStructureDirective.factory.$inject = ['$templateCache','Sdc.Services.DataTypesService','PropertyNameValidationPattern','ValidationUtils']; -} diff --git a/catalog-ui/app/scripts/directives/property-types/type-list/type-list-directive.html b/catalog-ui/app/scripts/directives/property-types/type-list/type-list-directive.html deleted file mode 100644 index 410a24e62b..0000000000 --- a/catalog-ui/app/scripts/directives/property-types/type-list/type-list-directive.html +++ /dev/null @@ -1,57 +0,0 @@ -
    -
    -
    - - -
    - - -
    -
    -
    Add
    -
    - - {{value}} - - -
    -
    -
    -
    -
    - - -
    -
    Add
    -
    - -
    -
    diff --git a/catalog-ui/app/scripts/directives/property-types/type-list/type-list-directive.less b/catalog-ui/app/scripts/directives/property-types/type-list/type-list-directive.less deleted file mode 100644 index eb4214e135..0000000000 --- a/catalog-ui/app/scripts/directives/property-types/type-list/type-list-directive.less +++ /dev/null @@ -1,85 +0,0 @@ -.list-new-item{ - float: left; - width: 50%; - min-width: 221px; - margin-right: 15px; - input{ - min-width: 221px; - } -} - -.list-value-items{ - -webkit-border-radius: 2px; - -moz-border-radius: 2px; - border-radius: 2px; - border: 1px solid @main_color_o; - padding-bottom: 10px; - min-height: 100px; - clear: both; - background-color: white; - .list-value-item{ - display: inline-block; - background-color: @tlv_color_v; - margin: 10px 0 0 10px; - padding-left: 8px; - .delete-list-item{ - margin: 0 6px 0 10px; - .hand; - } - } -} - -.add-btn { - .f-color.a; - .f-type._14_m; - .hand; - - &.add-list-item { - float: left; - margin-top: 5px; - width: 44px; - } - - &:before { - .sprite-new; - .plus-icon; - margin-right: 5px; - content: ""; - - } - &:hover { - .f-color.b; - &:before { - .sprite-new; - .plus-icon-hover; - } - } - -} - -.dt-list{ - display: table-caption; - .dt-list-item { - border-radius: 3px; - background-color: @tlv_color_v; - display: inline-block; - .delete-dt-list-item{ - float: right; - position: relative; - top: 5px; - right: 5px; - .sprite-new; - .delete-icon; - &:hover{ - .delete-icon-hover; - } - } - .data-type-name{ - margin-right: 16px; - } - } - &>.add-list-item{ - float:none; - } -} - diff --git a/catalog-ui/app/scripts/directives/property-types/type-list/type-list-directive.ts b/catalog-ui/app/scripts/directives/property-types/type-list/type-list-directive.ts deleted file mode 100644 index ce5ee1ffa6..0000000000 --- a/catalog-ui/app/scripts/directives/property-types/type-list/type-list-directive.ts +++ /dev/null @@ -1,130 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/** - * Created by rcohen on 9/15/2016. - */ -/// -module Sdc.Directives { - 'use strict'; - /// import Model = go.Model; - - export interface ITypeListScope extends ng.IScope { - parentFormObj:ng.IFormController; - schemaProperty:Models.SchemaProperty; - isSchemaTypeDataType:boolean; - valueObjRef:any; - propertyNameValidationPattern: RegExp; - fieldsPrefixName:string; - readOnly:boolean; - listDefaultValue:any; - types:Models.DataTypesMap; - listNewItem:any; - maxLength:number; - - getValidationPattern(type:string):RegExp; - validateIntRange(value:string):boolean; - addListItem():void; - deleteListItem(listItemIndex:number):void - } - - - export class TypeListDirective implements ng.IDirective { - - constructor(private $templateCache:ng.ITemplateCacheService, - private DataTypesService:Sdc.Services.DataTypesService, - private PropertyNameValidationPattern: RegExp, - private ValidationUtils:Sdc.Utils.ValidationUtils) { - } - - scope = { - valueObjRef: '=',//ref to list object in the parent value object - schemaProperty: '=',//get the schema.property object - parentFormObj: '=',//ref to parent form (get angular form object) - fieldsPrefixName: '=',//prefix for form fields names - readOnly: '=',//is form read only - defaultValue: '@',//this list default value - types: '=',//data types list - maxLength: '=' - }; - - restrict = 'E'; - replace = true; - template = ():string => { - return this.$templateCache.get('/app/scripts/directives/property-types/type-list/type-list-directive.html'); - }; - - link = (scope:ITypeListScope, element:any, $attr:any) => { - scope.propertyNameValidationPattern = this.PropertyNameValidationPattern; - - //reset valueObjRef when schema type is changed - scope.$watchCollection('schemaProperty.type', (newData:any):void => { - scope.isSchemaTypeDataType = this.DataTypesService.isDataTypeForSchemaType(scope.schemaProperty,scope.types); - //insert 1 empty item dt by default - if(scope.isSchemaTypeDataType && (!scope.valueObjRef||!scope.valueObjRef.length)){ - scope.valueObjRef = scope.valueObjRef ||[]; - scope.valueObjRef.push({}); - } - }); - - //when user brows between properties in "edit property form" - scope.$watchCollection('fieldsPrefixName', (newData:any):void => { - scope.listNewItem={value:''}; - - if($attr.defaultValue){ - scope.listDefaultValue = JSON.parse($attr.defaultValue); - } - }); - - scope.getValidationPattern = (type:string):RegExp => { - return this.ValidationUtils.getValidationPattern(type); - }; - - scope.validateIntRange = (value:string):boolean => { - return !value || this.ValidationUtils.validateIntRange(value); - }; - - scope.addListItem = ():void => { - scope.valueObjRef = scope.valueObjRef ||[]; - let newVal = ((scope.schemaProperty.simpleType||scope.schemaProperty.type)==Utils.Constants.PROPERTY_TYPES.STRING?scope.listNewItem.value:JSON.parse(scope.listNewItem.value)); - scope.valueObjRef.push(newVal); - scope.listNewItem.value = ""; - }; - - scope.deleteListItem = (listItemIndex:number):void => { - scope.valueObjRef.splice(listItemIndex,1); - if (!scope.valueObjRef.length) { - if (scope.listDefaultValue ) { - angular.copy(scope.listDefaultValue, scope.valueObjRef); - } - } - }; - }; - - public static factory = ($templateCache:ng.ITemplateCacheService, - DataTypesService:Sdc.Services.DataTypesService, - PropertyNameValidationPattern:RegExp, - ValidationUtils:Sdc.Utils.ValidationUtils)=> { - return new TypeListDirective($templateCache,DataTypesService,PropertyNameValidationPattern,ValidationUtils); - }; - } - - TypeListDirective.factory.$inject = ['$templateCache','Sdc.Services.DataTypesService','PropertyNameValidationPattern','ValidationUtils']; -} - diff --git a/catalog-ui/app/scripts/directives/property-types/type-map/type-map-directive.html b/catalog-ui/app/scripts/directives/property-types/type-map/type-map-directive.html deleted file mode 100644 index ed82b840dc..0000000000 --- a/catalog-ui/app/scripts/directives/property-types/type-map/type-map-directive.html +++ /dev/null @@ -1,70 +0,0 @@ -
    -
    -
    - - -
    - - -
    -
    -
    - - - -
    - - - -
    -
    -
    - - -
    - -
    -
    -
    Add
    -
    -
    - diff --git a/catalog-ui/app/scripts/directives/property-types/type-map/type-map-directive.less b/catalog-ui/app/scripts/directives/property-types/type-map/type-map-directive.less deleted file mode 100644 index 2480b626f2..0000000000 --- a/catalog-ui/app/scripts/directives/property-types/type-map/type-map-directive.less +++ /dev/null @@ -1,83 +0,0 @@ -.add-map-item{ - &:nth-child(odd){ - float: right; - } - &:nth-child(1){ - float: none; - .add-btn{ - float: none; - } - } - width: 400px; - .add-btn{ - width: 44px; - float: right; - } - &.schema-data-type{ - float:none; - .add-btn{ - float: none; - } - } -} - -.add-btn { - .f-color.a; - .f-type._14_m; - .hand; - - &:before { - .sprite-new; - .plus-icon; - margin-right: 5px; - content: ""; - - } - &:hover { - .f-color.b; - &:before { - .sprite-new; - .plus-icon-hover; - } - } - -} - -.map-item{ - min-width: 389px; - min-height: 65px; - background-color: @tlv_color_v; - border-radius: 3px; - margin-bottom: 8px; - float: left; - display: flex; - &:nth-child(even).primitive-value-map{ - float: right; - } - .delete-map-item { - float: right; - position: relative; - top: 5px; - right: 5px; - .sprite-new; - .delete-icon; - &:hover{ - .delete-icon-hover; - } - } - .map-item-field { - margin: 7px 12px !important; - float: left; - min-width: 170px; - min-height: 50px; - select{ - width:171px; - } - input[type="text"]{ - width: 170px; - } - &>.data-type-fields-structure{ - padding: 0; - } - } -} diff --git a/catalog-ui/app/scripts/directives/property-types/type-map/type-map-directive.ts b/catalog-ui/app/scripts/directives/property-types/type-map/type-map-directive.ts deleted file mode 100644 index d94ccf3886..0000000000 --- a/catalog-ui/app/scripts/directives/property-types/type-map/type-map-directive.ts +++ /dev/null @@ -1,157 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/** - * Created by rcohen on 9/15/2016. - */ -/// -module Sdc.Directives { - 'use strict'; - - export interface ITypeMapScope extends ng.IScope { - parentFormObj:ng.IFormController; - schemaProperty:Models.SchemaProperty; - isSchemaTypeDataType:boolean; - valueObjRef:any; - mapKeys:Array;//array of map keys - propertyNameValidationPattern: RegExp; - fieldsPrefixName:string; - readOnly:boolean; - mapDefaultValue:any; - types:Models.DataTypesMap; - maxLength:number; - - getValidationPattern(type:string):RegExp; - validateIntRange(value:string):boolean; - changeKeyOfMap(newKey:string, index:number, fieldName:string):void; - deleteMapItem(index:number):void; - addMapItemFields():void; - parseToCorrectType(objectOfValues:any, locationInObj:string, type:string):void; - getNumber(num:number):Array; - } - - - export class TypeMapDirective implements ng.IDirective { - - constructor(private $templateCache:ng.ITemplateCacheService, - private DataTypesService:Sdc.Services.DataTypesService, - private PropertyNameValidationPattern: RegExp, - private ValidationUtils:Sdc.Utils.ValidationUtils, - private $timeout: ng.ITimeoutService) { - } - - scope = { - valueObjRef: '=',//ref to map object in the parent value object - schemaProperty: '=',//get the schema.property object - parentFormObj: '=',//ref to parent form (get angular form object) - fieldsPrefixName: '=',//prefix for form fields names - readOnly: '=',//is form read only - defaultValue: '@',//this map default value - types: '=',//data types list - maxLength: '=' - }; - - restrict = 'E'; - replace = true; - template = ():string => { - return this.$templateCache.get('/app/scripts/directives/property-types/type-map/type-map-directive.html'); - }; - - link = (scope:ITypeMapScope, element:any, $attr:any) => { - scope.propertyNameValidationPattern = this.PropertyNameValidationPattern; - - //reset valueObjRef and mapKeys when schema type is changed - scope.$watchCollection('schemaProperty.type', (newData:any):void => { - scope.isSchemaTypeDataType = this.DataTypesService.isDataTypeForSchemaType(scope.schemaProperty,scope.types); - if(scope.valueObjRef){ - scope.mapKeys = Object.keys(scope.valueObjRef); - } - }); - - //when user brows between properties in "edit property form" - scope.$watchCollection('fieldsPrefixName', (newData:any):void => { - if(!scope.valueObjRef) { - scope.valueObjRef={}; - } - scope.mapKeys = Object.keys(scope.valueObjRef); - - if($attr.defaultValue){ - scope.mapDefaultValue = JSON.parse($attr.defaultValue); - } - }); - - //return dummy array in order to prevent rendering map-keys ng-repeat again when a map key is changed - scope.getNumber = (num:number):Array => { - return new Array(num); - }; - - scope.getValidationPattern = (type:string):RegExp => { - return this.ValidationUtils.getValidationPattern(type); - }; - - scope.validateIntRange = (value:string):boolean => { - return !value || this.ValidationUtils.validateIntRange(value); - }; - - scope.changeKeyOfMap = (newKey:string, index:number, fieldName:string) : void => { - let oldKey = Object.keys(scope.valueObjRef)[index]; - if(Object.keys(scope.valueObjRef).indexOf(newKey)>-1){ - scope.parentFormObj[fieldName].$setValidity('keyExist', false); - }else{ - scope.parentFormObj[fieldName].$setValidity('keyExist', true); - if(!scope.parentFormObj[fieldName].$invalid){ - angular.copy(JSON.parse(JSON.stringify(scope.valueObjRef).replace('"'+oldKey+'":', '"'+newKey+'":')),scope.valueObjRef);//update key - } - } - }; - - scope.deleteMapItem=(index:number):void=>{ - delete scope.valueObjRef[scope.mapKeys[index]]; - scope.mapKeys.splice(index,1); - if (!scope.mapKeys.length) {//only when user removes all pairs of key-value fields - put the default - if ( scope.mapDefaultValue ) { - angular.copy(scope.mapDefaultValue, scope.valueObjRef); - scope.mapKeys = Object.keys(scope.valueObjRef); - } - } - }; - - scope.addMapItemFields = ():void => { - scope.valueObjRef['']= null; - scope.mapKeys = Object.keys(scope.valueObjRef); - }; - - scope.parseToCorrectType = (objectOfValues:any, locationInObj:string, type:string):void => { - if(objectOfValues[locationInObj] && type != Utils.Constants.PROPERTY_TYPES.STRING){ - objectOfValues[locationInObj] = JSON.parse(objectOfValues[locationInObj]); - } - } - }; - - public static factory = ($templateCache:ng.ITemplateCacheService, - DataTypesService:Sdc.Services.DataTypesService, - PropertyNameValidationPattern:RegExp, - ValidationUtils:Sdc.Utils.ValidationUtils, - $timeout: ng.ITimeoutService)=> { - return new TypeMapDirective($templateCache,DataTypesService,PropertyNameValidationPattern,ValidationUtils,$timeout); - }; - } - - TypeMapDirective.factory.$inject = ['$templateCache','Sdc.Services.DataTypesService','PropertyNameValidationPattern','ValidationUtils','$timeout']; -} diff --git a/catalog-ui/app/scripts/directives/punch-out/punch-out.ts b/catalog-ui/app/scripts/directives/punch-out/punch-out.ts deleted file mode 100644 index f00b7971a9..0000000000 --- a/catalog-ui/app/scripts/directives/punch-out/punch-out.ts +++ /dev/null @@ -1,99 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Directives { - 'use strict'; - export interface IPunchOutScope extends ng.IScope { - name: string; - data: any; - user: Models.IUserProperties; - onEvent: Function; - } - - export class PunchOutDirective implements ng.IDirective { - - constructor( - private sdcConfig: Sdc.Models.IAppConfigurtaion) {} - - scope = { - name: '=', - data: '=', - user: '=', - onEvent: '&' - }; - - replace = false; - restrict = 'E'; - - link = (scope: IPunchOutScope, element: ng.IAugmentedJQuery):void => { - // global registry object - let PunchOutRegistry = window['PunchOutRegistry']; - - let render = ():void => { - let cookieConfig = this.sdcConfig.cookie; - let props = { - name: scope.name, - options: { - data: scope.data, - apiRoot: this.sdcConfig.api.root, - apiHeaders: { - userId: { - name: cookieConfig.userIdSuffix, - value: scope.user.userId - }, - userFirstName: { - name: cookieConfig.userFirstName, - value: scope.user.firstName - }, - userLastName: { - name: cookieConfig.userLastName, - value: scope.user.lastName - }, - userEmail: { - name: cookieConfig.userEmail, - value: scope.user.email - } - } - }, - onEvent: (...args) => { - scope.$apply(() => { - scope.onEvent().apply(null, args); - }); - } - }; - PunchOutRegistry.render(props, element[0]); - }; - - let unmount = ():void => { - PunchOutRegistry.unmount(element[0]); - }; - - scope.$watch('data', render); - element.on('$destroy', unmount); - }; - - public static factory = (sdcConfig: Sdc.Models.IAppConfigurtaion) => { - return new PunchOutDirective(sdcConfig); - }; - - } - - PunchOutDirective.factory.$inject = ['sdcConfig']; -} diff --git a/catalog-ui/app/scripts/directives/sdc-tabs/sdc-single-tab/sdc-single-tab-directive.ts b/catalog-ui/app/scripts/directives/sdc-tabs/sdc-single-tab/sdc-single-tab-directive.ts deleted file mode 100644 index 26390a7501..0000000000 --- a/catalog-ui/app/scripts/directives/sdc-tabs/sdc-single-tab/sdc-single-tab-directive.ts +++ /dev/null @@ -1,67 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Directives { - 'use strict'; - - export class SdcSingleTabDirective implements ng.IDirective { - - constructor(private $compile:ng.ICompileService, private $parse:ng.IParseService) { - } - restrict = 'E'; - - link = (scope, elem:any, attrs:any, ctrl:any) => { - if(!elem.attr('inner-sdc-single-tab')) { - let name = this.$parse(elem.attr('ctrl'))(scope); - elem = elem.removeAttr('ctrl'); - elem.attr('inner-sdc-single-tab', name); - this.$compile(elem)(scope); - } - }; - - public static factory = ($compile:ng.ICompileService, $parse:ng.IParseService)=> { - return new SdcSingleTabDirective($compile, $parse); - }; - } - - export class InnerSdcSingleTabDirective implements ng.IDirective { - - constructor(private $templateCache:ng.ITemplateCacheService) { - } - - scope = { - singleTab: "=", - isViewOnly: "=" - }; - - replace = true; - restrict = 'A'; - controller = '@'; - template = '
    '; - - public static factory = ($templateCache:ng.ITemplateCacheService)=> { - return new InnerSdcSingleTabDirective($templateCache); - }; - } - - SdcSingleTabDirective.factory.$inject = ['$compile', '$parse']; - InnerSdcSingleTabDirective.factory.$inject = ['$templateCache']; - -} diff --git a/catalog-ui/app/scripts/directives/sdc-tabs/sdc-single-tab/sdc-single-tab.less b/catalog-ui/app/scripts/directives/sdc-tabs/sdc-single-tab/sdc-single-tab.less deleted file mode 100644 index 8b13789179..0000000000 --- a/catalog-ui/app/scripts/directives/sdc-tabs/sdc-single-tab/sdc-single-tab.less +++ /dev/null @@ -1 +0,0 @@ - diff --git a/catalog-ui/app/scripts/directives/sdc-tabs/sdc-tabs-directive-view.html b/catalog-ui/app/scripts/directives/sdc-tabs/sdc-tabs-directive-view.html deleted file mode 100644 index d51d221922..0000000000 --- a/catalog-ui/app/scripts/directives/sdc-tabs/sdc-tabs-directive-view.html +++ /dev/null @@ -1,17 +0,0 @@ -
    -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    diff --git a/catalog-ui/app/scripts/directives/sdc-tabs/sdc-tabs-directive.ts b/catalog-ui/app/scripts/directives/sdc-tabs/sdc-tabs-directive.ts deleted file mode 100644 index 91d1744ae5..0000000000 --- a/catalog-ui/app/scripts/directives/sdc-tabs/sdc-tabs-directive.ts +++ /dev/null @@ -1,69 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/** - * Created by obarda on 7/28/2016. - */ -/// -module Sdc.Directives { - 'use strict'; - - export interface ISdcTabsDirectiveScope extends ng.IScope { - tabs:Array; - selectedTab: Models.Tab; - isActive: boolean; - onTabSelected(selectedTab: Models.Tab); - } - - export class SdcTabsDirective implements ng.IDirective { - - constructor(private $templateCache:ng.ITemplateCacheService) { - } - - scope = { - tabs: "=", - selectedTab: "=?", - isViewOnly: "=" - }; - - replace = true; - restrict = 'E'; - template = ():string => { - return this.$templateCache.get('/app/scripts/directives/sdc-tabs/sdc-tabs-directive-view.html'); - }; - - link = (scope:ISdcTabsDirectiveScope) => { - scope.isActive = true; - - if(!scope.selectedTab){ - scope.selectedTab = scope.tabs[0]; - } - - scope.onTabSelected = (selectedTab: Models.Tab) => { - scope.selectedTab = selectedTab; - } - }; - - public static factory = ($templateCache:ng.ITemplateCacheService)=> { - return new SdcTabsDirective($templateCache); - }; - } - - SdcTabsDirective.factory.$inject = ['$templateCache']; -} diff --git a/catalog-ui/app/scripts/directives/sdc-tabs/sdc-tabs.less b/catalog-ui/app/scripts/directives/sdc-tabs/sdc-tabs.less deleted file mode 100644 index ad390010ed..0000000000 --- a/catalog-ui/app/scripts/directives/sdc-tabs/sdc-tabs.less +++ /dev/null @@ -1,68 +0,0 @@ -.sdc-tabs-body { - height: 100%; - width: 330px; - position: absolute; - .sdc-tabs { - display: inline-block; - width: 40px; - vertical-align: top; - position: relative; - z-index: 99; - right: 332px; - .sdc-tab-arrow { - cursor: pointer; - width: 40px; - height: 20px; - background-color: @tlv_color_u; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.17); - text-align: center; - padding: 1px 4px 0px 0px; - - &:hover { - background-color: @main_color_o; - } - - } - .sdc-tab { - cursor: pointer; - width: 40px; - height: 43px; - background-color: @tlv_color_u; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.17); - text-align: center; - - .sdc-tab-icon { - margin-top: 12px; - } - } - .selected { - background-color: @tlv_color_t; - } - - .last-tab { - border-bottom-left-radius: 12px; - } - } - - .not-active { - // position: absolute; - right: 41px; - } - - .sdc-single-tab-content { - padding: 15px 0px 0px 0px; - width: 290px; - background-color: @tlv_color_t; - height: 100%; - display: inline-block; - bottom: 0; - top: 0; - position: absolute; - box-shadow: 0.3px 1px 3px rgba(24, 24, 25, 0.42); - right: 331px; - .sdc-single-tab-content-body { - height: 100%; - display: flex; - } - } -} diff --git a/catalog-ui/app/scripts/directives/structure-tree/structure-tree-directive.html b/catalog-ui/app/scripts/directives/structure-tree/structure-tree-directive.html deleted file mode 100644 index 7d8a883b33..0000000000 --- a/catalog-ui/app/scripts/directives/structure-tree/structure-tree-directive.html +++ /dev/null @@ -1,54 +0,0 @@ -
    -
    -
    -
    {{structureTree.serviceRoot.name}}
    -
    -
      -
    • -
      -
      -
      -
      -
      -
      {{firstLevelResourcesInstances.name}}
      -
      -
        -
      • -
        -
        -
        -
        -
        -
        {{secondLevelResourcesInstances.name}}
        -
        -
          -
        • -
          -
          -
          -
          -
          -
          {{thirdLevelResourcesInstances.name}}
          -
          -
            -
          • -
            -
            -
            -
            -
            -
            {{forthLevelResourcesInstances.name}}
            -
            -
          • -
          -
        • -
        -
      • -
      -
    • -
    -
    diff --git a/catalog-ui/app/scripts/directives/structure-tree/structure-tree-directive.less b/catalog-ui/app/scripts/directives/structure-tree/structure-tree-directive.less deleted file mode 100644 index 094c3f70ba..0000000000 --- a/catalog-ui/app/scripts/directives/structure-tree/structure-tree-directive.less +++ /dev/null @@ -1,68 +0,0 @@ -.structure-tree{ - padding: 9px 0px 10px 30px; - position: relative; - ul{ - position: relative; - list-style: none; - padding-left:25px; - ::before{ - content: ""; - position: absolute; - left: -27px; - } - ::after{ - content: ""; - position: absolute; - left: -27px; - } - li{ - position: relative; - &::before{ - border-top: 1px solid #666666; - top: 20px; - width: 10px; - height: 0; - } - &::after{ - border-left: 1px solid #666666; - height: 100%; - width: 0px; - top: -2px; - } - &:last-child::after{ - height: 23px - } - } - } - .component-container{ - display: inline-block; - margin: 6px 0px 0px -16px; - } - .component-container-icon{ - display: inline-block; - } - .component-container-text{ - padding-left: 8px; - float: right; - - text-overflow: ellipsis; - max-width:120px; - display: inline-block; - white-space: nowrap; - font-size: 13px; - color: #666666;; - overflow: hidden; - line-height: 28px; - float: none; - } - - .non-certified{ - position: relative; - left: 18px; - bottom: 8px; - .sprite; - .s-sdc-state-non-certified; - display:block; - } - -} diff --git a/catalog-ui/app/scripts/directives/structure-tree/structure-tree-directive.ts b/catalog-ui/app/scripts/directives/structure-tree/structure-tree-directive.ts deleted file mode 100644 index 1edce6f36e..0000000000 --- a/catalog-ui/app/scripts/directives/structure-tree/structure-tree-directive.ts +++ /dev/null @@ -1,197 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Directives { - 'use strict'; - - - export interface IStructureTreeScope extends ng.IScope { - - component: Models.Components.Component; - structureTree: StructureTree; - } - - class StructureTree { - - serviceRoot:ResourceInstanceNode; - - constructor(private uniqueId:string, private resourceInstanceName:string, private resourceInstanceIcon:string, private certified:boolean) { - this.serviceRoot = new ResourceInstanceNode(uniqueId, resourceInstanceName, resourceInstanceIcon, certified); - } - - } - - class ResourceInstanceNode { - id:string; - icon:string; - name:string; - resourceInstancesList:Array; - isAlreadyInTree:boolean; - certified:boolean; - - - constructor(private uniqueId:string, private resourceInstanceName:string, private resourceInstanceIcon:string, certified:boolean) { - this.id = uniqueId; - this.name = resourceInstanceName; - this.icon = resourceInstanceIcon; - this.resourceInstancesList = []; - this.isAlreadyInTree = false; - this.certified = certified; - } - } - - export class StructureTreeDirective implements ng.IDirective { - - - constructor(private $templateCache:ng.ITemplateCacheService) { - } - - scope = { - component: '=', - }; - restrict = 'E'; - template = ():string => { - return this.$templateCache.get('/app/scripts/directives/structure-tree/structure-tree-directive.html'); - }; - - link = (scope:IStructureTreeScope, $elem:any) => { - - let RESOURCE_INSTANCE_LIST:string = "resourceInstancesChildesList"; - let resourceInstanceMap:Utils.Dictionary; - let relations:Array; - //************* Start Building Tree Functions *******************// - - //remove unnecessary instances - let initResourceInstanceMap = ():void => { - - resourceInstanceMap = new Utils.Dictionary(); - - _.forEach(scope.component.componentInstances, (resourceInstance:Models.ComponentsInstances.ComponentInstance)=> { - if (_.some(Object.keys(resourceInstance.capabilities), (key:string)=> { - return 'tosca.capabilities.container' == key.toLowerCase(); - }) || _.some(Object.keys(resourceInstance.requirements),(key:string)=> { - return 'tosca.capabilities.container' == key.toLowerCase(); - })) { - - let isCertified = 0 === (parseFloat(resourceInstance.componentVersion) % 1); - let node:ResourceInstanceNode = new ResourceInstanceNode(resourceInstance.uniqueId, - resourceInstance.name, - resourceInstance.icon, - isCertified); - resourceInstanceMap.setValue(resourceInstance.uniqueId, node); - } - }); - }; - - //remove unnecessary relations - let initRelations = ():void => { - relations = _.filter(scope.component.componentInstancesRelations, (relation:Models.RelationshipModel)=> { - return resourceInstanceMap.containsKey(relation.fromNode) && resourceInstanceMap.containsKey(relation.toNode); - }); - }; - - let buildTree = ():void => { - if (scope.component) { - scope.structureTree = new StructureTree(scope.component.uniqueId, scope.component.name, scope.component.icon, 'CERTIFIED' === scope.component.lifecycleState); - initResourceInstanceMap(); - initRelations(); - - let parentNodesList = _.groupBy(relations, (node:any)=> { - return node.fromNode; - }); - - for (let parent in parentNodesList) { - _.forEach(parentNodesList[parent], (childNode)=> { - parentNodesList[parent][RESOURCE_INSTANCE_LIST] = []; - parentNodesList[parent][RESOURCE_INSTANCE_LIST].push(mergeAllSubtrees(childNode, parentNodesList)); - }); - } - - //add the resourceInstanceList for the service root node - for (let parent in parentNodesList) { - let resourceInstanceNode:ResourceInstanceNode = resourceInstanceMap.getValue(parent); - resourceInstanceNode.resourceInstancesList = parentNodesList[parent]; - resourceInstanceNode.resourceInstancesList = parentNodesList[parent][RESOURCE_INSTANCE_LIST]; - resourceInstanceNode.isAlreadyInTree = true; - scope.structureTree.serviceRoot.resourceInstancesList.push(resourceInstanceNode); - } - - // Add all node that have no connection to the rootNode - resourceInstanceMap.forEach((key:string, value:ResourceInstanceNode) => { - if (!value.isAlreadyInTree) { - scope.structureTree.serviceRoot.resourceInstancesList.push(value); - } - }); - } - }; - - //this recursion is merging all the subtrees - let mergeAllSubtrees = (connectionData:any, parentNodesList:any):ResourceInstanceNode => { - let resourceInstanceNode:ResourceInstanceNode = resourceInstanceMap.getValue(connectionData.toNode); - resourceInstanceNode.isAlreadyInTree = true; - if (parentNodesList[resourceInstanceNode.id]) { - if (parentNodesList[resourceInstanceNode.id][RESOURCE_INSTANCE_LIST]) { - resourceInstanceNode.resourceInstancesList = parentNodesList[resourceInstanceNode.id][RESOURCE_INSTANCE_LIST]; - } - else { - _.forEach(parentNodesList[resourceInstanceNode.id], (children)=> { - resourceInstanceNode.resourceInstancesList.push(mergeAllSubtrees(children, parentNodesList)); - }); - } - delete parentNodesList[resourceInstanceNode.id]; - } - return resourceInstanceNode; - }; - //************* End Building Tree Functions *******************// - - //************* Start Watchers *******************// - scope.$watch('component.name', ():void => { - if (scope.structureTree) - scope.structureTree.serviceRoot.name = scope.component.name; - }); - - scope.$watch('component.icon', ():void => { - if (scope.structureTree) - scope.structureTree.serviceRoot.icon = scope.component.icon; - }); - - scope.$watchCollection('component.componentInstancesRelations', ():void => { - buildTree(); - }); - - scope.$watchCollection('component.componentInstances', ():void => { - buildTree(); - }); - - //************* End Watchers *******************// - - buildTree(); - - }; - - - public static factory = ($templateCache:ng.ITemplateCacheService) => { - return new StructureTreeDirective($templateCache); - }; - } - - StructureTreeDirective.factory.$inject = ['$templateCache']; - -} diff --git a/catalog-ui/app/scripts/directives/tag/tag-directive.html b/catalog-ui/app/scripts/directives/tag/tag-directive.html deleted file mode 100644 index 28c22a7978..0000000000 --- a/catalog-ui/app/scripts/directives/tag/tag-directive.html +++ /dev/null @@ -1,10 +0,0 @@ -
    -
    -
    - -
    - -
    - -
    -
    diff --git a/catalog-ui/app/scripts/directives/tag/tag-directive.less b/catalog-ui/app/scripts/directives/tag/tag-directive.less deleted file mode 100644 index f72e366ac6..0000000000 --- a/catalog-ui/app/scripts/directives/tag/tag-directive.less +++ /dev/null @@ -1,51 +0,0 @@ -.sdc-tag{ - - background-color:#F2F2F2 ; - .border-radius(4px); - min-width:150px; - height:30px; - display: flex; - align-items: center; - padding: 0 10px; - margin: 2px; - - .tag{ - display: inline-block; - } - - .category{ - margin-right: 4px; - margin-left: 25px; - width: 25px; - - } - .relation-categoty-icon{ - .sprite; - .sprite.relation-icon; - .hand; - vertical-align: middle; - - } - - .relation-categoty-icon:hover{ - .sprite; - .sprite.relation-icon-hover; - } - - .delete{ - - } - .delete-icon{ - .sprite; - .sprite.x-btn-black; - .hand; - vertical-align: middle; - } -} - -.tag-tooltip-wrap { - background-color: rgba(80, 99, 113, 0.9); - position: relative; - display: inline-block; - margin: -5px -14px 0px -14px; -} diff --git a/catalog-ui/app/scripts/directives/tag/tag-directive.ts b/catalog-ui/app/scripts/directives/tag/tag-directive.ts deleted file mode 100644 index 64d245e242..0000000000 --- a/catalog-ui/app/scripts/directives/tag/tag-directive.ts +++ /dev/null @@ -1,71 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Directives { - 'use strict'; - - export class TagData { - tag:string; - tooltip:string; - id: string; - } - - export interface ITagScope extends ng.IScope { - tagData: TagData; - onDelete: Function; - delete:Function; - hideTooltip:boolean; - hideDelete:boolean; - sdcDisable: boolean; - } - - export class TagDirective implements ng.IDirective { - - constructor(private $templateCache:ng.ITemplateCacheService) { - } - - scope = { - tagData: '=', - onDelete: '&', - hideTooltip: '=', - hideDelete: '=', - sdcDisable: '=' - }; - - replace = true; - restrict = 'EA'; - template = ():string => { - return this.$templateCache.get('/app/scripts/directives/tag/tag-directive.html'); - }; - - link = (scope:ITagScope) => { - scope.delete = ()=>{ - scope.onDelete({'uniqueId':scope.tagData.id}); - } - }; - - public static factory = ($templateCache:ng.ITemplateCacheService)=> { - return new TagDirective($templateCache); - }; - - } - - TagDirective.factory.$inject = ['$templateCache']; -} diff --git a/catalog-ui/app/scripts/directives/tutorial/image-template.html b/catalog-ui/app/scripts/directives/tutorial/image-template.html deleted file mode 100644 index 7e7f7af356..0000000000 --- a/catalog-ui/app/scripts/directives/tutorial/image-template.html +++ /dev/null @@ -1,7 +0,0 @@ - -
    -
    -

    -

    -
    -
    diff --git a/catalog-ui/app/scripts/directives/tutorial/text-template.html b/catalog-ui/app/scripts/directives/tutorial/text-template.html deleted file mode 100644 index dc1173be64..0000000000 --- a/catalog-ui/app/scripts/directives/tutorial/text-template.html +++ /dev/null @@ -1,4 +0,0 @@ - -

    -

    -
    diff --git a/catalog-ui/app/scripts/directives/tutorial/tutorial-directive.html b/catalog-ui/app/scripts/directives/tutorial/tutorial-directive.html deleted file mode 100644 index 191752fc1f..0000000000 --- a/catalog-ui/app/scripts/directives/tutorial/tutorial-directive.html +++ /dev/null @@ -1,22 +0,0 @@ -
    -
    -
    -
    -
    -
    - -
    -
    - -
    - - -
    -
    diff --git a/catalog-ui/app/scripts/directives/tutorial/tutorial-directive.less b/catalog-ui/app/scripts/directives/tutorial/tutorial-directive.less deleted file mode 100644 index 410a54e9c1..0000000000 --- a/catalog-ui/app/scripts/directives/tutorial/tutorial-directive.less +++ /dev/null @@ -1,213 +0,0 @@ -.sdc-tutorial-page { - - width: 100%; - height: 100%; - background-color: rgba(0,0,0,0.8); - - display: flex; - align-items: center; - justify-content: center; - position: absolute; - top: 0; - left: 0; - z-index: 3000; - - .sdc-tutorial-container-wrapper { - display: flex; - flex-direction: column; - } - - .sdc-tutorial-container { - .bg_c; - width: 830px; - height: 466px; - box-shadow: 1px 2px 2px 0px rgba(0, 0, 0, 0.35); - } - - .sdc-tutorial-container-tabs { - height: 56px; - display: flex; - flex-direction: row; - } - - .sdc-tutorial-container-tab { - .a_6; - flex-grow: 1; - align-items: center; - justify-content: center; - display: flex; - height: 56px; - position: relative; - opacity: 0.8; - - span { - .hand; - } - - &::after { - content: ''; - display: block; - border-right: solid 1px ; - border-color: rgba(59, 123, 155, 0.31); - height: 28px; - right: 0; - position: absolute; - top: 14px; //(56-28)/2 - width: 1px; - } - - &:last-child:after { - display: none; - } - - &.selected { - opacity: 1; - .bold; - } - - } - - .sdc-tutorial-container-content { - .bg_a; - .perfect-scrollbar; - display: flex; - align-items: center; - height: 410px; - } - - .sdc-tutorial-skip { - .c_1; - .hand; - text-align: right; - margin-bottom: 9px; - } - - .sdc-tutorial-footer { - .c_4; - margin-top: 9px; - - .sdc-tutorial-footer-prev-button { - float: left; - position: relative; - padding-left: 14px; - .noselect; - - span { - .hand; - &::before { - content: '<'; - display: block; - position: absolute; - left: 0; - top: 0; - } - } - } - - .sdc-tutorial-footer-page-counter { - .e_3; - position: absolute; - left: 50%; - margin-top: 2px; - cursor: default; - .noselect; - - .selected { - .c_3; - .bold; - margin-right: 2px; - } - - .total { - margin-left: 2px; - } - } - - .sdc-tutorial-footer-next-button { - float: right; - position: relative; - padding-right: 14px; - .noselect; - - span { - .hand; - - &::after { - content: '>'; - display: block; - position: absolute; - right: 0; - top: 0; - } - } - } - - } - -} - -///////////////// TEXT TEMPLATE -.sdc-tutorial-text-template { - - padding: 20px 65px; - - h1 { - .c_15; - margin-top: 0; - } - - p { - .c_10; - } -} - -///////////////// IMAGE TEMPLATE -.sdc-tutorial-image-template { - - .sdc-tutorial-image-template-text { - padding: 16px 38px; - height: 118px; - h1 { - .c_11; - margin: 0 0 4px 0; - } - - p { - .c_4; - font-weight: 300; - line-height: 21px; - } - - } - - .sdc-tutorial-page-2-image { background: transparent url('../../../styles/images/tutorial/2.png') no-repeat 0 0; width: 830px; height: 292px;} - .sdc-tutorial-page-3-image { background: transparent url('../../../styles/images/tutorial/3.png') no-repeat 0 0; width: 830px; height: 292px;} - .sdc-tutorial-page-4-image { background: transparent url('../../../styles/images/tutorial/4.png') no-repeat 0 0; width: 830px; height: 292px;} - .sdc-tutorial-page-5-image { background: transparent url('../../../styles/images/tutorial/5.png') no-repeat 0 0; width: 830px; height: 292px;} - .sdc-tutorial-page-6-image { background: transparent url('../../../styles/images/tutorial/6.png') no-repeat 0 0; width: 830px; height: 292px;} - .sdc-tutorial-page-7-image { background: transparent url('../../../styles/images/tutorial/7.png') no-repeat 0 0; width: 830px; height: 292px;} - .sdc-tutorial-page-8-image { background: transparent url('../../../styles/images/tutorial/8.png') no-repeat 0 0; width: 830px; height: 292px;} - - .sdc-tutorial-page-10-image { background: transparent url('../../../styles/images/tutorial/10.png') no-repeat 0 0; width: 830px; height: 292px;} - .sdc-tutorial-page-11-image { background: transparent url('../../../styles/images/tutorial/11.png') no-repeat 0 0; width: 830px; height: 292px;} - - .sdc-tutorial-page-13-image { background: transparent url('../../../styles/images/tutorial/13.png') no-repeat 0 0; width: 830px; height: 292px;} - .sdc-tutorial-page-14-image { background: transparent url('../../../styles/images/tutorial/14.png') no-repeat 0 0; width: 830px; height: 292px;} - .sdc-tutorial-page-15-image { background: transparent url('../../../styles/images/tutorial/15.png') no-repeat 0 0; width: 830px; height: 292px;} - .sdc-tutorial-page-16-image { background: transparent url('../../../styles/images/tutorial/16.png') no-repeat 0 0; width: 830px; height: 292px;} - .sdc-tutorial-page-17-image { background: transparent url('../../../styles/images/tutorial/17.png') no-repeat 0 0; width: 830px; height: 292px;} - .sdc-tutorial-page-18-image { background: transparent url('../../../styles/images/tutorial/18.png') no-repeat 0 0; width: 830px; height: 292px;} - .sdc-tutorial-page-19-image { background: transparent url('../../../styles/images/tutorial/19.png') no-repeat 0 0; width: 830px; height: 292px;} - .sdc-tutorial-page-20-image { background: transparent url('../../../styles/images/tutorial/20.png') no-repeat 0 0; width: 830px; height: 292px;} - .sdc-tutorial-page-21-image { background: transparent url('../../../styles/images/tutorial/21.png') no-repeat 0 0; width: 830px; height: 292px;} - .sdc-tutorial-page-22-image { background: transparent url('../../../styles/images/tutorial/22.png') no-repeat 0 0; width: 830px; height: 292px;} - .sdc-tutorial-page-23-image { background: transparent url('../../../styles/images/tutorial/23.png') no-repeat 0 0; width: 830px; height: 292px;} - .sdc-tutorial-page-24-image { background: transparent url('../../../styles/images/tutorial/24.png') no-repeat 0 0; width: 830px; height: 292px;} - .sdc-tutorial-page-25-image { background: transparent url('../../../styles/images/tutorial/25.png') no-repeat 0 0; width: 830px; height: 292px;} - .sdc-tutorial-page-26-image { background: transparent url('../../../styles/images/tutorial/26.png') no-repeat 0 0; width: 830px; height: 292px;} - .sdc-tutorial-page-27-image { background: transparent url('../../../styles/images/tutorial/27.png') no-repeat 0 0; width: 830px; height: 292px;} - .sdc-tutorial-page-28-image { background: transparent url('../../../styles/images/tutorial/28.png') no-repeat 0 0; width: 830px; height: 292px;} - .sdc-tutorial-page-29-image { background: transparent url('../../../styles/images/tutorial/29.png') no-repeat 0 0; width: 830px; height: 292px;} - .sdc-tutorial-page-30-image { background: transparent url('../../../styles/images/tutorial/30.png') no-repeat 0 0; width: 830px; height: 292px;} - -} diff --git a/catalog-ui/app/scripts/directives/tutorial/tutorial-directive.ts b/catalog-ui/app/scripts/directives/tutorial/tutorial-directive.ts deleted file mode 100644 index 7df35cade9..0000000000 --- a/catalog-ui/app/scripts/directives/tutorial/tutorial-directive.ts +++ /dev/null @@ -1,147 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Directives { - 'use strict'; - export interface ITutorialScope extends ng.IScope { - showTutorial:boolean; - isFirstTime:boolean; - templateUrl:string; - totalPages: number; - currentPageIndex: number; - page:number; - tabs:Array; - tutorialData:any; - pageObject:any; - - initPage:Function; - next:Function; - previous:Function; - hasNext():boolean; - hasPrevious():boolean; - closeTutorial:Function; - closeAndShowLastPage:Function; - } - - export class TutorialDirective implements ng.IDirective { - - constructor( - private $templateCache:ng.ITemplateCacheService, - private sdcConfig:Models.IAppConfigurtaion, - private $state:ng.ui.IStateService - ) { - } - - scope = { - page: '=', - showTutorial: '=', - isFirstTime: '=' - }; - - replace = false; - restrict = 'EA'; - template = ():string => { - return this.$templateCache.get('/app/scripts/directives/tutorial/tutorial-directive.html'); - }; - - link = (scope:ITutorialScope, $elem:any) => { - - let findPageIndex:Function = (pageId:number):number=> { - for (let i:number=0;i { - scope.pageObject = scope.tutorialData.pages[scope.currentPageIndex]; - scope.templateUrl = '/app/scripts/directives/tutorial/' + scope.pageObject.template + '.html'; - } - - scope.tutorialData = this.sdcConfig.tutorial; - - scope.closeTutorial = ()=> { - scope.showTutorial = false; - if(scope.isFirstTime){ - scope.isFirstTime=false; - } - } - - scope.closeAndShowLastPage = ()=> { - if(scope.isFirstTime){ - this.$state.go('dashboard.tutorial-end'); - } - scope.closeTutorial(); - } - - let init:Function = ():void => { - scope.tabs = scope.tutorialData.tabs; - scope.totalPages = scope.tutorialData.pages.length; - scope.initPage(scope.page); - - } - - scope.initPage = (pageId) => { - scope.currentPageIndex = findPageIndex(pageId); - showCurrentPage(); - } - - scope.next = ():void => { - if (scope.hasNext()){ - scope.currentPageIndex++; - showCurrentPage(); - } - } - - scope.previous = ():void => { - if (scope.hasPrevious()){ - scope.currentPageIndex--; - showCurrentPage(); - } - } - - scope.hasNext = ():boolean => { - return (scope.currentPageIndex+1) < scope.totalPages; - } - - scope.hasPrevious = ():boolean => { - return scope.currentPageIndex>0; - } - - angular.element(document).ready(function () { - init(); - }); - - scope.$watch('showTutorial', (showTutorial:any):void => { - scope.initPage(scope.page); - }); - - }; - - public static factory = ($templateCache:ng.ITemplateCacheService, sdcConfig:Models.IAppConfigurtaion, $state:ng.ui.IStateService)=> { - return new TutorialDirective($templateCache, sdcConfig, $state); - }; - - } - - TutorialDirective.factory.$inject = ['$templateCache', 'sdcConfig', '$state']; -} diff --git a/catalog-ui/app/scripts/directives/user-header-details/user-header-details-directive.html b/catalog-ui/app/scripts/directives/user-header-details/user-header-details-directive.html deleted file mode 100644 index 1c99a18ab5..0000000000 --- a/catalog-ui/app/scripts/directives/user-header-details/user-header-details-directive.html +++ /dev/null @@ -1,9 +0,0 @@ -
    -
    -
    -
    -
    - -
    - -
    diff --git a/catalog-ui/app/scripts/directives/user-header-details/user-header-details-directive.less b/catalog-ui/app/scripts/directives/user-header-details/user-header-details-directive.less deleted file mode 100644 index a14db7c6ee..0000000000 --- a/catalog-ui/app/scripts/directives/user-header-details/user-header-details-directive.less +++ /dev/null @@ -1,62 +0,0 @@ -.w-sdc-header-user-container { - .b_7; - width: 400px; - .flex-fixed(400px); - padding: 0 23px; - display: flex; - justify-content: flex-end; -} - -.w-sdc-header-user-icon { - background: no-repeat url('../../../styles/images/anonymous.jpg'); - border-radius: 50%; - height: 47px; - width: 47px; - background-size: cover; - border: solid 2px @color_m; - .flex-fixed(47px); -} - -.w-sdc-header-user-details { - padding: 4px 4px 4px 14px; - .vcenter; -} - -.w-sdc-header-user-name { - max-width: 160px; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - vertical-align: bottom; - - .bold; - display: inline-block; -} - -.w-sdc-header-user-role { - .bold; - display: inline-block; - margin-left: 6px; - - &:before { - content: ''; - margin-right: 8px; - border-left: 1px solid @color_m; - } -} - -.w-sdc-header-user-last-login { - .font-type._3; - display: block; -} - -.w-sdc-header-logout-icon { - background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAAUCAYAAACAl21KAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMDE0IDc5LjE1Njc5NywgMjAxNC8wOC8yMC0wOTo1MzowMiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTQgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjE5RjgxM0QxMDgzQTExRTVBQzA2OTg5ODlFNDVBNTZDIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjE5RjgxM0QyMDgzQTExRTVBQzA2OTg5ODlFNDVBNTZDIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MTlGODEzQ0YwODNBMTFFNUFDMDY5ODk4OUU0NUE1NkMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MTlGODEzRDAwODNBMTFFNUFDMDY5ODk4OUU0NUE1NkMiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6Riq1bAAAA20lEQVR42mJ0CUv+z0Aa+AvEertXzrmGLMgCpZcD8S4iDfoDxHfQBWEGnQLasICBAsDEQCUwcAa5hqeEAHEKNVykB8SzgYZVUGpQPRDPAOJ2oGHNZBsEjF1QussC4mlAXAM0rAM5+tHDwQJIVRBh7m0gLgeql6ZarLHgcP4JIBWAJ+YYgdQUIPYH4k6g+gpyop8RGj6gcGoGGYLTRQRAIxBnAHEl0JAOvF4jAC4BcSrQkDkEw4hA9K8ZGpkW5jUzYGwkkFCwrQJ68Rc2gyKhmNii9hwQoxS1AAEGAO5PP/+ClIDAAAAAAElFTkSuQmCC'); - height: 20px; - width: 18px; - position: absolute; - right: 20px; - top: 29px; -} - - diff --git a/catalog-ui/app/scripts/directives/user-header-details/user-header-details-directive.ts b/catalog-ui/app/scripts/directives/user-header-details/user-header-details-directive.ts deleted file mode 100644 index 46c43a266b..0000000000 --- a/catalog-ui/app/scripts/directives/user-header-details/user-header-details-directive.ts +++ /dev/null @@ -1,72 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Directives { - 'use strict'; - export interface IUserHeaderDetailsScope extends ng.IScope { - name: string; - role: string; - iconUrl: string; - UserResourceClass:Services.IUserResourceClass; - user: Models.IUser; - sdcConfig:Models.IAppConfigurtaion; - initUser:Function; - } - - export class UserHeaderDetailsDirective implements ng.IDirective { - - constructor(private $templateCache:ng.ITemplateCacheService, private $http:ng.IHttpService, private sdcConfig:Models.IAppConfigurtaion, private UserResourceClass:Services.IUserResourceClass) { - } - - scope = { - iconUrl: '=?' - }; - - replace = true; - restrict = 'E'; - template = ():string => { - return this.$templateCache.get('/app/scripts/directives/user-header-details/user-header-details-directive.html'); - }; - - link = (scope:IUserHeaderDetailsScope) => { - - scope.initUser = ():void => { - let defaultUserId:string; - let user:Services.IUserResource = this.UserResourceClass.getLoggedinUser(); - if (!user) { - defaultUserId = this.$http.defaults.headers.common[this.sdcConfig.cookie.userIdSuffix]; - user = this.UserResourceClass.get({id: defaultUserId}, ():void => { - scope.user = new Models.User(user); - }); - } else { - scope.user = new Models.User(user); - } - }; - scope.initUser(); - }; - - public static factory = ($templateCache:ng.ITemplateCacheService, $http:ng.IHttpService, sdcConfig:Models.IAppConfigurtaion, UserResourceClass:Services.IUserResourceClass)=> { - return new UserHeaderDetailsDirective($templateCache, $http, sdcConfig, UserResourceClass); - }; - - } - - UserHeaderDetailsDirective.factory.$inject = ['$templateCache', '$http', 'sdcConfig', 'Sdc.Services.UserResourceService']; -} diff --git a/catalog-ui/app/scripts/directives/utils/expand-collapse-menu-box/expand-collaps-menu-box.ts b/catalog-ui/app/scripts/directives/utils/expand-collapse-menu-box/expand-collaps-menu-box.ts deleted file mode 100644 index 9756ff9e49..0000000000 --- a/catalog-ui/app/scripts/directives/utils/expand-collapse-menu-box/expand-collaps-menu-box.ts +++ /dev/null @@ -1,66 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Directives { - 'use strict'; - export interface IExpandCollapseMenuBoxDirectiveScope extends ng.IScope { - menuItemsGroup: Utils.MenuItemGroup; - menuTitle: string; - parentScope: ng.IScope; - onMenuItemClick(menuItem: Utils.MenuItem):void; - } - - export class ExpandCollapseMenuBoxDirective implements ng.IDirective { - - constructor(private $templateCache:ng.ITemplateCacheService) { - } - - scope = { - menuTitle: '@', - menuItemsGroup: '=', - parentScope: '=' - }; - - public replace = false; - public restrict = 'AE'; - public transclude = true; - - template = ():string => { - return this.$templateCache.get('/app/scripts/directives/utils/expand-collapse-menu-box/expand-collapse-menu-box.html'); - }; - - link = (scope:IExpandCollapseMenuBoxDirectiveScope, $elem:any) => { - scope.onMenuItemClick = (menuItem: Utils.MenuItem):void => { - let onSuccess = ():void => { - scope.menuItemsGroup.selectedIndex = scope.menuItemsGroup.menuItems.indexOf(menuItem); - }; - let onFailed = ():void => {}; - scope.parentScope[menuItem.action](menuItem.state).then(onSuccess, onFailed); - } - }; - - public static factory = ($templateCache:ng.ITemplateCacheService)=> { - return new ExpandCollapseMenuBoxDirective($templateCache); - }; - - } - - ExpandCollapseMenuBoxDirective.factory.$inject = ['$templateCache']; -} diff --git a/catalog-ui/app/scripts/directives/utils/expand-collapse-menu-box/expand-collapse-menu-box.html b/catalog-ui/app/scripts/directives/utils/expand-collapse-menu-box/expand-collapse-menu-box.html deleted file mode 100644 index bbd7e59e7c..0000000000 --- a/catalog-ui/app/scripts/directives/utils/expand-collapse-menu-box/expand-collapse-menu-box.html +++ /dev/null @@ -1,15 +0,0 @@ -
    - -
    - -
    - -
    -
    -
    {{menuItem.text}}
    -
    -
    - -
    - diff --git a/catalog-ui/app/scripts/directives/utils/expand-collapse-menu-box/expand-collapse-menu-box.less b/catalog-ui/app/scripts/directives/utils/expand-collapse-menu-box/expand-collapse-menu-box.less deleted file mode 100644 index d8ceeaea71..0000000000 --- a/catalog-ui/app/scripts/directives/utils/expand-collapse-menu-box/expand-collapse-menu-box.less +++ /dev/null @@ -1,55 +0,0 @@ -.expand-collapse-menu-box { - line-height: 20px; - padding: 13px 0px 5px 10px; - background-color: @func_color_r; - margin: 3px 3px 5px 0px; - - - .expand-collapse-menu-box-title { - .f-type._18_m; - color: @main_color_m; - font-weight: bold; - .hand; - .w-sdc-designer-sidebar-section-title-text{ - max-width: 185px; - overflow: hidden; - text-overflow: ellipsis; - display: inline-block; - white-space: nowrap; - } - - &.expanded { - .expand-collapse-menu-box-title-icon { - transform: rotate(180deg); - } - } - } - .expand-collapse-menu-box-title-icon { - .hand; - .sprite-new; - .arrow-up; - margin-right: 6px; - transition: .3s all; - position: relative; - - } - .w-sdc-designer-sidebar-section-content { - overflow: hidden; - padding-top: 13px; - .expand-collapse-menu-box-item { - .hand; - padding-left: 14px; - margin: 0px 0px 10px 10px; - font-family: @font-omnes-medium; - color: @main_color_m; - - line-height: 18px; - &.selected { - padding-left: 10px; - font-weight: bold; - border-left: 4px solid @main_color_a; - } - - } - } -} diff --git a/catalog-ui/app/scripts/directives/utils/expand-collapse/expand-collapse.html b/catalog-ui/app/scripts/directives/utils/expand-collapse/expand-collapse.html deleted file mode 100644 index a2358ea2b7..0000000000 --- a/catalog-ui/app/scripts/directives/utils/expand-collapse/expand-collapse.html +++ /dev/null @@ -1 +0,0 @@ - diff --git a/catalog-ui/app/scripts/directives/utils/expand-collapse/expand-collapse.less b/catalog-ui/app/scripts/directives/utils/expand-collapse/expand-collapse.less deleted file mode 100644 index d0d8fa3251..0000000000 --- a/catalog-ui/app/scripts/directives/utils/expand-collapse/expand-collapse.less +++ /dev/null @@ -1,10 +0,0 @@ -.ellipsis-directive-more-less { - .a_9; - .bold; - .hand; - float: right; - margin-right: 10px; - line-height: 23px; - text-decoration: underline; - text-align: left; -} diff --git a/catalog-ui/app/scripts/directives/utils/expand-collapse/expand-collapse.ts b/catalog-ui/app/scripts/directives/utils/expand-collapse/expand-collapse.ts deleted file mode 100644 index b294da6c13..0000000000 --- a/catalog-ui/app/scripts/directives/utils/expand-collapse/expand-collapse.ts +++ /dev/null @@ -1,136 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Directives { - 'use strict'; - export interface IExpandCollapseScope extends ng.IScope { - toggle(): void; - collapsed: boolean; - expandedSelector: string; - content:string; - isCloseOnInit:boolean; - loadDataFunction: Function; - isLoadingData: boolean; - } - - export class ExpandCollapseDirective implements ng.IDirective { - - constructor(private $templateCache:ng.ITemplateCacheService) { - } - - scope = { - expandedSelector: '@', - loadDataFunction: '&?', - isCloseOnInit: '=?' - }; - - public replace = false; - public restrict = 'AE'; - public transclude = true; - - template = ():string => { - return this.$templateCache.get('/app/scripts/directives/utils/expand-collapse/expand-collapse.html'); - }; - - link = (scope:IExpandCollapseScope, $elem:any) => { - scope.collapsed = false; - scope.isLoadingData = false; - $elem.addClass('expanded'); - - - if(scope.isCloseOnInit) { - window.setTimeout(function () { - toggle(); - },0); - } - - $elem.click(function(){ - toggle(); - }); - - let expand = ():void => { - $elem.addClass('expanded'); - scope.collapsed = false; - - let element = $(scope.expandedSelector)[0]; - let prevWidth = element.style.height; - element.style.height = 'auto'; - let endWidth = getComputedStyle(element).height; - element.style.height = prevWidth; - element.offsetHeight; // force repaint - element.style.transition = 'height .3s ease-in-out'; - element.style.height = endWidth; - element.hidden = false; - element.addEventListener('transitionend', function transitionEnd(event) { - if (event['propertyName'] == 'height') { - element.style.transition = ''; - element.style.height = 'auto'; - element.removeEventListener('transitionend', transitionEnd, false); - } - }, false) - }; - - let collapse = ():void => { - $elem.removeClass('expanded'); - scope.collapsed = true; - - let element = $(scope.expandedSelector)[0]; - element.style.height = getComputedStyle(element).height; - element.style.transition = 'height .5s ease-in-out'; - element.offsetHeight; // force repaint - element.style.height = '0px'; - element.hidden = true; - }; - - let toggle = ():void => { - if (scope.collapsed === true){ - if(scope.loadDataFunction) { - scope.isLoadingData = true; - let onSuccess = () => { - window.setTimeout(function () { - expand(); - scope.isLoadingData = false; - },0); - }; - scope.loadDataFunction().then(onSuccess); - } - else { - if(scope.isLoadingData === false) { - expand(); - } - } - - } else { - if(scope.isLoadingData === false) { - collapse(); - } - } - } - - }; - - public static factory = ($templateCache:ng.ITemplateCacheService)=> { - return new ExpandCollapseDirective($templateCache); - }; - - } - - ExpandCollapseDirective.factory.$inject = ['$templateCache']; -} diff --git a/catalog-ui/app/scripts/directives/utils/page-selector/page-selector.html b/catalog-ui/app/scripts/directives/utils/page-selector/page-selector.html deleted file mode 100644 index 4fbea447e2..0000000000 --- a/catalog-ui/app/scripts/directives/utils/page-selector/page-selector.html +++ /dev/null @@ -1,9 +0,0 @@ -
    -
      - -
    - -
    diff --git a/catalog-ui/app/scripts/directives/utils/page-selector/page-selector.less b/catalog-ui/app/scripts/directives/utils/page-selector/page-selector.less deleted file mode 100644 index da70218263..0000000000 --- a/catalog-ui/app/scripts/directives/utils/page-selector/page-selector.less +++ /dev/null @@ -1,51 +0,0 @@ -.i-sdc-left-sidebar-page-nav { - - height: 64px; - - .sidebar-page-nav-item-selected, - .sidebar-page-nav-item { - .i_11; - background-color: #e0e5e9; - width: 100%; - height: 64px; - border-bottom: solid 1px #cccccc; - line-height: 64px; - text-align: center; - cursor: pointer; - vertical-align: middle; - list-style: none; - padding: 0; - margin: 0; - } - - .sidebar-page-nav-item-selected { - z-index: 1010; - position: absolute; - top: 0px; - } - - .sidebar-page-nav-item-selected span { - .sprite; - .sprite.table-arrow; - position: absolute; - top: 28px; - margin-left: 10px; - - &.expanded { - .sprite; - .sprite.table-arrow.opened; - top: 30px; - } - } - - ul { - position: absolute; - top: 0px; - padding: 0; - width: 100%; - z-index: 99; - visibility: hidden; //Need this and not display none, so I can use the function: getComputedStyle - .box-shadow(0px 4px 2px -2px rgba(0, 0, 0, 0.36)); - } - -} diff --git a/catalog-ui/app/scripts/directives/utils/page-selector/page-selector.ts b/catalog-ui/app/scripts/directives/utils/page-selector/page-selector.ts deleted file mode 100644 index c185fe1c15..0000000000 --- a/catalog-ui/app/scripts/directives/utils/page-selector/page-selector.ts +++ /dev/null @@ -1,106 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Directives { - 'use strict'; - - class ListItem { - name; - url; - } - - export interface IPageSelectorScope extends ng.IScope { - selected:string; - expanded: boolean; - list:Array; - exceptSelectedComparator(actual, expected):boolean; - openCollapse(); - } - - export class PageSelectorDirective implements ng.IDirective { - - constructor(private $templateCache:ng.ITemplateCacheService) { - } - - scope = { - list: '=', - selected: '@', - }; - - public replace = true; - public restrict = 'E'; - public transclude = false; - - private ulElement:HTMLElement; - private itemHeight:number = 64; - - private getUlHeight = ():number => { - let tmp:string = getComputedStyle(this.ulElement).height; - //console.log("tmp: " + tmp); - let ulHeight:number = parseInt(tmp.substr(0,tmp.length-2)); - //console.log("ulHeight: " + ulHeight); - return ulHeight; - }; - - template = ():string => { - return this.$templateCache.get('/app/scripts/directives/utils/page-selector/page-selector.html'); - }; - - link = (scope:IPageSelectorScope, $elem:any) => { - scope.expanded=false; - - window.setTimeout(() => { - this.ulElement = angular.element(".i-sdc-left-sidebar-page-nav ul")[0]; - console.log("this.ulElement: " + this.ulElement); - console.log("this.itemHeight: " + this.itemHeight); - this.ulElement.style.top = (this.itemHeight - this.getUlHeight() - 5) + 'px'; - this.ulElement.style.visibility = 'visible'; - },10); - - this.ulElement = angular.element(".i-sdc-left-sidebar-page-nav ul")[0]; - - scope.exceptSelectedComparator = (actual) => { - if (actual.name===scope.selected) { - return false; - } - return true; - }; - - scope.openCollapse = ():void => { - scope.expanded=!scope.expanded; - if (scope.expanded===true) { - this.ulElement.style.transition = 'top 0.4s ease-out'; - this.ulElement.style.top = this.itemHeight + 'px'; - } else { - this.ulElement.style.transition = 'top 0.4s ease-in'; - this.ulElement.style.top = (this.itemHeight - this.getUlHeight() - 5) + 'px'; - } - }; - - }; - - public static factory = ($templateCache:ng.ITemplateCacheService)=> { - return new PageSelectorDirective($templateCache); - }; - - } - - PageSelectorDirective.factory.$inject = ['$templateCache']; -} diff --git a/catalog-ui/app/scripts/directives/utils/sdc-keyboard-events/sdc-keyboard-events.ts b/catalog-ui/app/scripts/directives/utils/sdc-keyboard-events/sdc-keyboard-events.ts deleted file mode 100644 index 9e61caa812..0000000000 --- a/catalog-ui/app/scripts/directives/utils/sdc-keyboard-events/sdc-keyboard-events.ts +++ /dev/null @@ -1,106 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Directives { - 'use strict'; - - export interface ISdcKeyboardEventsScope extends ng.IScope { - keyEnter:Function; - keyShift:Function; - keyCtrl:Function; - keyEscape:Function; - keySpace:Function; - } - - export class SdcKeyboardEventsDirective implements ng.IDirective { - - constructor() { - } - - scope = { - keyEnter: '=', - keyShift: '=', - keyCtrl: '=', - keyEscape: '=', - keySpace: '=' - }; - - public replace = false; - public restrict = 'A'; - public transclude = false; - - link = (scope:ISdcKeyboardEventsScope, element:ng.IAugmentedJQuery, attrs:angular.IAttributes) => { - - element.bind("keydown keypress", function (event) { - //console.log(event.which); - switch (event.which) { - case 13: // enter key - scope.$apply(function (){ - if (scope.keyEnter) { - scope.keyEnter(); - event.preventDefault(); - } - }); - break; - case 16: // shift key - scope.$apply(function (){ - if (scope.keyShift) { - scope.keyShift(); - event.preventDefault(); - } - }); - break; - case 17: // ctrl key - scope.$apply(function (){ - if (scope.keyCtrl) { - scope.keyCtrl(); - event.preventDefault(); - } - }); - break; - case 27: // escape key - scope.$apply(function (){ - if (scope.keyEscape) { - scope.keyEscape(); - event.preventDefault(); - } - }); - break; - case 32: // space key - scope.$apply(function (){ - if (scope.keySpace) { - scope.keySpace(); - event.preventDefault(); - } - }); - break; - } - }); - - }; - - public static factory = ()=> { - return new SdcKeyboardEventsDirective(); - }; - - } - - SdcKeyboardEventsDirective.factory.$inject = []; -} diff --git a/catalog-ui/app/scripts/directives/utils/sdc-tags/sdc-tags.html b/catalog-ui/app/scripts/directives/utils/sdc-tags/sdc-tags.html deleted file mode 100644 index fb1ada69c3..0000000000 --- a/catalog-ui/app/scripts/directives/utils/sdc-tags/sdc-tags.html +++ /dev/null @@ -1,27 +0,0 @@ -
    - - -
    -
    - -
    -
    - -
    -
    -
    -
    diff --git a/catalog-ui/app/scripts/directives/utils/sdc-tags/sdc-tags.less b/catalog-ui/app/scripts/directives/utils/sdc-tags/sdc-tags.less deleted file mode 100644 index 942196e663..0000000000 --- a/catalog-ui/app/scripts/directives/utils/sdc-tags/sdc-tags.less +++ /dev/null @@ -1,61 +0,0 @@ -.tags-box { - - height: 297px; - .bg_c; - - .perfect-scrollbar { - height: 265px; - } - - .new-tag-input { - display: block; - - -webkit-border-bottom-left-radius: 0 !important; - -moz-border-radius-bottomleft: 0 !important; - -khtml-border-bottom-left-radius: 0 !important; - border-bottom-left-radius: 0 !important; - - -webkit-border-bottom-right-radius: 0 !important; - -moz-border-radius-bottomright: 0 !important; - -khtml-border-bottom-right-radius: 0 !important; - border-bottom-right-radius: 0 !important; - - border: solid 1px #d8d8d8; - width: 100%; - height: 30px; - line-height: 30px; - padding: 2px 10px; - outline: none; - } - - .tags-wrapper { - padding: 10px; - .border-radius-bottom-left(2px); - .border-radius-bottom-right(2px); - border: solid 1px #d8d8d8; - border-top: none; - - .group-tag { - display: inline-block; - - .sdc-tag { - border: solid 1px @main_color_n; - background-color: @main_color_p; - min-width: auto; - .tag { - margin-right: 10px; - } - } - } - &.view-mode .group-tag { - opacity: 1; - background-color: #f8f8f8 !important; - .sdc-tag { - background: none; - border-color: @main_color_o; - } - } - } - -} - diff --git a/catalog-ui/app/scripts/directives/utils/sdc-tags/sdc-tags.ts b/catalog-ui/app/scripts/directives/utils/sdc-tags/sdc-tags.ts deleted file mode 100644 index 3f4147c920..0000000000 --- a/catalog-ui/app/scripts/directives/utils/sdc-tags/sdc-tags.ts +++ /dev/null @@ -1,97 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Directives { - 'use strict'; - - export interface ISdcTagsScope extends ng.IScope { - tags:Array; - specialTag:string; - newTag:string; - formElement:ng.IFormController; - elementName:string; - pattern:any; - sdcDisabled:boolean; - maxTags:number; - deleteTag(tag:string):void; - addTag(tag:string):void; - validateName():void; - } - - export class SdcTagsDirective implements ng.IDirective { - - constructor(private $templateCache:ng.ITemplateCacheService) { - } - - scope = { - tags: '=', - specialTag: '=', - pattern: '=', - sdcDisabled: '=', - formElement: '=', - elementName: '@', - maxTags: '@' - }; - - public replace = false; - public restrict = 'E'; - public transclude = false; - - template = ():string => { - return this.$templateCache.get('/app/scripts/directives/utils/sdc-tags/sdc-tags.html'); - }; - - link = (scope:ISdcTagsScope, element:ng.INgModelController) => { - - scope.deleteTag = (tag:string):void => { - scope.tags.splice(scope.tags.indexOf(tag),1); - }; - - scope.addTag = ():void => { - let valid = scope.formElement[scope.elementName].$valid; - if (valid && - scope.tags.length { - if (scope.tags.indexOf(scope.newTag)>-1) { - scope.formElement[scope.elementName].$setValidity('nameExist', false); - }else{ - scope.formElement[scope.elementName].$setValidity('nameExist', true); - } - } - - }; - - public static factory = ($templateCache:ng.ITemplateCacheService)=> { - return new SdcTagsDirective($templateCache); - }; - - } - - SdcTagsDirective.factory.$inject = ['$templateCache']; -} diff --git a/catalog-ui/app/scripts/directives/utils/sdc_error_tooltip/sdc_error_tooltip.html b/catalog-ui/app/scripts/directives/utils/sdc_error_tooltip/sdc_error_tooltip.html deleted file mode 100644 index 376381b8af..0000000000 --- a/catalog-ui/app/scripts/directives/utils/sdc_error_tooltip/sdc_error_tooltip.html +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/catalog-ui/app/scripts/directives/utils/sdc_error_tooltip/sdc_error_tooltip.ts b/catalog-ui/app/scripts/directives/utils/sdc_error_tooltip/sdc_error_tooltip.ts deleted file mode 100644 index dc30ea7f41..0000000000 --- a/catalog-ui/app/scripts/directives/utils/sdc_error_tooltip/sdc_error_tooltip.ts +++ /dev/null @@ -1,109 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Directives { - 'use strict'; - - export interface ISdcErrorTooltipScope extends ng.IScope { - alignToSelector: string; - topMargin: string; - } - - export class SdcErrorTooltipDirective implements ng.IDirective { - - constructor(private $templateCache:ng.ITemplateCacheService) { - } - - scope = { - alignToSelector: '@', // Jquery selector to align to - topMargin: '@' // The margin from the top, in case there is label or not the top margin is different. - }; - - public replace = false; - public restrict = 'E'; - public transclude = true; - - template = ():string => { - return this.$templateCache.get('/app/scripts/directives/utils/sdc_error_tooltip/sdc_error_tooltip.html'); - }; - - link = (scope:ISdcErrorTooltipScope, $elem:any) => { - let _self = this; - - $elem.addClass("i-sdc-form-item-error-icon"); - - // Calculate the position of the elements after they loaded to the dom. - window.setTimeout(function(){ - _self.calculatePosition(scope, $elem); - },100); - - $elem.bind('mouseover', function(){ - $(".i-sdc-form-item-error-message",$elem).css("display", "block"); - }); - - $elem.bind('mouseleave', function(){ - $(".i-sdc-form-item-error-message",$elem).css("display", "none"); - }); - - } - - private calculatePosition(scope:ISdcErrorTooltipScope, $elem:any):void { - let leftMargin = 13; - let topMargin = scope.topMargin? parseInt(scope.topMargin) : 10; - - if (scope.alignToSelector) { - // Set the position of the error, in case user add align-to-selector attribute - let jObj = $(scope.alignToSelector); - if (jObj.length > 0) { - let height1 = jObj.outerHeight(); - $elem.css('left', jObj.position().left + jObj.outerWidth() + leftMargin); - //$elem.css('top', jObj.position().top + topMargin + (height1 / 2)); - $elem.css('top', jObj.position().top + (height1 / 2) - 5); // Label margin is: 2 - } - } else { - // Set the position of the error, according to the input element. - let inputElm = $elem.siblings('input'); - let textareaElm = $elem.siblings('textarea'); - let selectElm = $elem.siblings('select'); - if (inputElm.length > 0) { - $elem.css('left', inputElm.outerWidth() + leftMargin); - $elem.css('top', inputElm.position().top + topMargin); - } else if (textareaElm.length > 0) { - $elem.css('left', textareaElm.outerWidth() + leftMargin); - let height2 = textareaElm.outerHeight(); - let elmHeight2 = $elem.outerHeight(); - //let top = textareaElm.position().top; - $elem.css('bottom', (height2 - (elmHeight2 / 2)) / 2); - } else if (selectElm.length > 0) { - $elem.css('left', selectElm.outerWidth() + leftMargin); - $elem.css('top', selectElm.position().top + topMargin); - } - } - } - - public static factory = ($templateCache:ng.ITemplateCacheService)=> { - return new SdcErrorTooltipDirective($templateCache); - }; - - } - - SdcErrorTooltipDirective.factory.$inject = ['$templateCache']; - -} diff --git a/catalog-ui/app/scripts/directives/utils/sdc_messages/sdc-message.ts b/catalog-ui/app/scripts/directives/utils/sdc_messages/sdc-message.ts deleted file mode 100644 index d41ef1ce04..0000000000 --- a/catalog-ui/app/scripts/directives/utils/sdc_messages/sdc-message.ts +++ /dev/null @@ -1,179 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Directives { - 'use strict'; - export interface ISdcMessageScope extends ng.IScope { - sdcTranslate: string; - sdcTranslateValues:string; - sdcAlign:string; - } - - export class SdcMessageDirective implements ng.IDirective { - - constructor(private $animate:any, private $filter:any, private $parse:any) { - } - - scope = { - field: '=', - required: '@', - pattern: '@', - sdcTranslate: '@', - sdcTranslateValues: '@', - sdcAlign: '@' - }; - - public terminal = true; - public restrict = 'A'; - public transclude = 'element'; - public require = '^^sdcMessages'; - - link = (scope:ISdcMessageScope, $element:any, $attrs:any,sdcMessagesCtrl:any, $transclude:any) => { - let self = this; - - let commentNode = $element[0]; - - let records; - let staticExp = $attrs.sdcMessage || $attrs.when; - let dynamicExp = $attrs.sdcMessageExp || $attrs.whenExp; - let assignRecords = function(items) { - records = items - ? (angular.isArray(items) - ? items - : items.split(/[\s,]+/)) - : null; - sdcMessagesCtrl.reRender(); - }; - - if (dynamicExp) { - assignRecords(scope.$eval(dynamicExp)); - scope.$watchCollection(dynamicExp, assignRecords); - } else { - assignRecords(staticExp); - } - - let currentElement, messageCtrl; - sdcMessagesCtrl.register(commentNode, messageCtrl = { - test: function (name) { - return self.contains(records, name); - }, - attach: function () { - if (!currentElement) { - $transclude(scope, function (elm) { - - self.$animate.enter(elm, null, $element); - currentElement = elm; - - elm.addClass("i-sdc-form-item-error-message"); - - //$compile - let text; - if (scope.sdcTranslate) { - text = self.$filter('translate')(scope.sdcTranslate, scope.sdcTranslateValues); - } else { - //TODO: Need to handle this - //let t = elm.html(); - //let t = angular.element("" + elm.html() + ""); - //text = self.$parse(t); - } - - //scope.sdcTranslateValues - elm.html(text); - - elm.prepend(""); - - // Adding OK to close the message - //let okElm = $('').attr('class', 'ok').html('OK'); - //okElm.click(function(e){ - // messageCtrl.detach(); - //}); - //elm.append(okElm); - - // Handle the position - if (scope.sdcAlign){ - let choosenElm = $(scope.sdcAlign); - if (choosenElm.length > 0) { - let height1 = choosenElm.outerHeight(); - let elmHeight1 = elm.outerHeight(); - elm.css('left', choosenElm.outerWidth()); - elm.css('bottom', (height1 - (elmHeight1 / 2)) / 2); - } - } else { - // Set the position of the error, according to the input element. - let inputElm = elm.parent().siblings('input'); - let textareaElm = elm.parent().siblings('textarea'); - let selectElm = elm.parent().siblings('select'); - if (inputElm.length > 0) { - elm.css('left', inputElm.outerWidth()); - elm.css('top', inputElm.position().top); - } else if (textareaElm.length > 0) { - elm.css('left', textareaElm.outerWidth()); - let height = textareaElm.outerHeight(); - let elmHeight = elm.outerHeight(); - //let top = textareaElm.position().top; - elm.css('bottom', (height - (elmHeight / 2)) / 2); - } else if (selectElm.length > 0) { - elm.css('left', selectElm.outerWidth()); - elm.css('top', selectElm.position().top); - } - } - - // Each time we attach this node to a message we get a new id that we can match - // when we are destroying the node later. - let $$attachId = currentElement.$$attachId = sdcMessagesCtrl.getAttachId(); - - // in the event that the parent element is destroyed - // by any other structural directive then it's time - // to deregister the message from the controller - currentElement.on('$destroy', function () { - if (currentElement && currentElement.$$attachId === $$attachId) { - sdcMessagesCtrl.deregister(commentNode); - messageCtrl.detach(); - } - }); - }); - } - }, - detach: function () { - if (currentElement) { - let elm = currentElement; - currentElement = null; - self.$animate.leave(elm); - } - } - }); - } - - contains = (collection, key):any => { - if (collection) { - return angular.isArray(collection) - ? collection.indexOf(key) >= 0 - : collection.hasOwnProperty(key); - } - } - - public static factory = ($animate:any, $filter:any, $parse:any)=> { - return new SdcMessageDirective($animate, $filter, $parse); - }; - - } - - SdcMessageDirective.factory.$inject = ['$animate', '$filter', '$parse']; -} diff --git a/catalog-ui/app/scripts/directives/utils/sdc_messages/sdc-messages.less b/catalog-ui/app/scripts/directives/utils/sdc_messages/sdc-messages.less deleted file mode 100644 index d8dfdbb73b..0000000000 --- a/catalog-ui/app/scripts/directives/utils/sdc_messages/sdc-messages.less +++ /dev/null @@ -1,10 +0,0 @@ -.ellipsis-directive-more-less { - .a_9; - .bold; - .hand; - float: right; - margin-right: 17px; - line-height: 23px; - text-decoration: underline; - text-align: left; -} diff --git a/catalog-ui/app/scripts/directives/utils/sdc_messages/sdc-messages.ts b/catalog-ui/app/scripts/directives/utils/sdc_messages/sdc-messages.ts deleted file mode 100644 index f8b435b1fa..0000000000 --- a/catalog-ui/app/scripts/directives/utils/sdc_messages/sdc-messages.ts +++ /dev/null @@ -1,245 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Directives { - 'use strict'; - export interface ISdcMessagesScope extends ng.IScope { - sdcMessages: any; - editForm:ng.IFormController; - } - - export class SdcMessagesDirective implements ng.IDirective { - - constructor() {} - - scope = { - sdcMessages: '=' - }; - - public restrict = 'AE'; - public require = 'sdcMessages'; - public controller = SdcMessagesController; - - /*template = ():string => { - return this.$templateCache.get('/app/scripts/directives/utils/sdc-messages/sdc-messages.html'); - }; - - public static factory = ($templateCache:ng.ITemplateCacheService)=> { - return new SdcMessagesDirective($templateCache); - };*/ - - public static factory = ()=> { - return new SdcMessagesDirective(); - } - - } - - export class SdcMessagesController { - - messages:any; - getAttachId:Function; - render:any; - reRender:Function; - register:Function; - deregister:Function; - head:any; - - static '$inject' = [ - '$element', - '$scope', - '$attrs', - '$animate' - ]; - - constructor(private $element:JQuery, - private $scope:ISdcMessagesScope, - private $attrs:ng.IAttributes, - private $animate:any - ) { - - this.init(); - - } - - init=():void => { - let self = this; - - let ACTIVE_CLASS:string = 'ng-active'; - let INACTIVE_CLASS:string = 'ng-inactive'; - - let ctrl = this; - let latestKey = 0; - let nextAttachId = 0; - - this.getAttachId = function getAttachId() { return nextAttachId++; }; - - let messages = this.messages = {}; - let renderLater, cachedCollection; - - this.render = function(collection) { - collection = collection || {}; - - renderLater = false; - cachedCollection = collection; - - // this is true if the attribute is empty or if the attribute value is truthy - let multiple = self.isAttrTruthy(self.$scope, self.$attrs['sdcMessagesMultiple']) || self.isAttrTruthy(self.$scope, self.$attrs['multiple']); - - let unmatchedMessages = []; - let matchedKeys = {}; - let messageItem = ctrl.head; - let messageFound = false; - let totalMessages = 0; - - // we use != instead of !== to allow for both undefined and null values - while (messageItem != null) { - totalMessages++; - let messageCtrl = messageItem.message; - - let messageUsed = false; - if (!messageFound) { - _.each(collection, function(value, key) { - if (!messageUsed && self.truthy(value) && messageCtrl.test(key)) { - // this is to prevent the same error name from showing up twice - if (matchedKeys[key]) return; - matchedKeys[key] = true; - - messageUsed = true; - messageCtrl.attach(); - } - }); - } - - if (messageUsed) { - // unless we want to display multiple messages then we should - // set a flag here to avoid displaying the next message in the list - messageFound = !multiple; - } else { - unmatchedMessages.push(messageCtrl); - } - - messageItem = messageItem.next; - } - - _.each(unmatchedMessages, function(messageCtrl) { - messageCtrl.detach(); - }); - - unmatchedMessages.length !== totalMessages - ? ctrl.$animate.setClass(self.$element, ACTIVE_CLASS, INACTIVE_CLASS) - : ctrl.$animate.setClass(self.$element, INACTIVE_CLASS, ACTIVE_CLASS); - }; - - self.$scope.$watchCollection('sdcMessages' || self.$attrs['for'], function(newVal:any, oldVal:any){ - ctrl.render(newVal); - }); - - this.reRender = function() { - if (!renderLater) { - renderLater = true; - self.$scope.$evalAsync(function() { - if (renderLater) { - cachedCollection && ctrl.render(cachedCollection); - } - }); - } - }; - - this.register = function(comment, messageCtrl) { - let nextKey = latestKey.toString(); - messages[nextKey] = { - message: messageCtrl - }; - insertMessageNode(self.$element[0], comment, nextKey); - comment.$$sdcMessageNode = nextKey; - latestKey++; - - ctrl.reRender(); - }; - - this.deregister = function(comment) { - let key = comment.$$sdcMessageNode; - delete comment.$$sdcMessageNode; - removeMessageNode(self.$element[0], comment, key); - delete messages[key]; - ctrl.reRender(); - }; - - function findPreviousMessage(parent, comment) { - let prevNode = comment; - let parentLookup = []; - while (prevNode && prevNode !== parent) { - let prevKey = prevNode.$$sdcMessageNode; - if (prevKey && prevKey.length) { - return messages[prevKey]; - } - - // dive deeper into the DOM and examine its children for any sdcMessage - // comments that may be in an element that appears deeper in the list - if (prevNode.childNodes.length && parentLookup.indexOf(prevNode) == -1) { - parentLookup.push(prevNode); - prevNode = prevNode.childNodes[prevNode.childNodes.length - 1]; - } else { - prevNode = prevNode.previousSibling || prevNode.parentNode; - } - } - } - - function insertMessageNode(parent, comment, key) { - let messageNode = messages[key]; - if (!ctrl.head) { - ctrl.head = messageNode; - } else { - let match = findPreviousMessage(parent, comment); - if (match) { - messageNode.next = match.next; - match.next = messageNode; - } else { - messageNode.next = ctrl.head; - ctrl.head = messageNode; - } - } - } - - function removeMessageNode(parent, comment, key) { - let messageNode = messages[key]; - - let match = findPreviousMessage(parent, comment); - if (match) { - match.next = messageNode.next; - } else { - ctrl.head = messageNode.next; - } - } - } - - isAttrTruthy = (scope, attr):any => { - return (angular.isString(attr) && attr.length === 0) || //empty attribute - this.truthy(scope.$eval(attr)); - } - - truthy = (val):any => { - return angular.isString(val) ? val.length : !!val; - } - - } - - SdcMessagesDirective.factory.$inject = ['$templateCache','$animate']; -} diff --git a/catalog-ui/app/scripts/directives/utils/sdc_messages/sdc_messages.html b/catalog-ui/app/scripts/directives/utils/sdc_messages/sdc_messages.html deleted file mode 100644 index 09b1cad4d2..0000000000 --- a/catalog-ui/app/scripts/directives/utils/sdc_messages/sdc_messages.html +++ /dev/null @@ -1 +0,0 @@ -aaa diff --git a/catalog-ui/app/scripts/directives/utils/smart-tooltip/smart-tooltip.ts b/catalog-ui/app/scripts/directives/utils/smart-tooltip/smart-tooltip.ts deleted file mode 100644 index 49a57245e7..0000000000 --- a/catalog-ui/app/scripts/directives/utils/smart-tooltip/smart-tooltip.ts +++ /dev/null @@ -1,85 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Directives { - 'use strict'; - - export interface ISmartTooltipScope extends ng.IScope { - sdcSmartToolip; - } - - export class SmartTooltipDirective implements ng.IDirective { - - constructor(private $templateCache:ng.ITemplateCacheService, - private $compile:ng.ICompileService) { - } - - public replace = false; - public restrict = 'A'; - public transclude = false; - - public link = (scope:ISmartTooltipScope, $elem:ng.IAugmentedJQuery, $attrs:angular.IAttributes) => { - - if ($elem[0].hasAttribute('style')===false){ - $elem[0].setAttribute("style", "overflow: hidden; white-space: nowrap; text-overflow: ellipsis;"); - } else { - let styles = $elem.attr('style'); - $elem[0].setAttribute("style", styles + ";overflow: hidden; white-space: nowrap; text-overflow: ellipsis;"); - } - - $elem.bind('mouseenter', () => { - if($elem[0].offsetWidth < $elem[0].scrollWidth && !$elem.attr('tooltips')){ - $attrs.$set('tooltips', 'tooltips'); - if ($attrs['sdcSmartTooltip'] && $attrs['sdcSmartTooltip'].length>0){ - $elem.attr('tooltip-content', $attrs['sdcSmartTooltip']); - } else { - $attrs.$set('tooltip-content', $elem.text()); - } - - //One possible problem arises when the ngIf is placed on the root element of the template. - //ngIf removes the node and places a comment in it's place. Then it watches over the expression and adds/removes the actual HTML element as necessary. - //The problem seems to be that if it is placed on the root element of the template, then a single comment is what is left from the - //whole template (even if only temporarily), which gets ignored (I am not sure if this is browser-specific behaviour), resulting in an empty template. - - // Remove ng-if attribute and its value (if we reach here, we pass ng-if (ng-if===true), so we can remove it). - $elem.removeAttr('ng-if'); - $elem.removeAttr('data-ng-if'); - - // Remove me (the directive from the element) - let template = $elem[0].outerHTML; - template = template.replace('sdc-smart-tooltip=""',''); - template = template.replace('sdc-smart-tooltip="' + $elem.text() + '"',''); - //console.log(template); - - let el = this.$compile(template)(scope); - console.log(el); - $elem.replaceWith(el); - } - }); - }; - - public static factory = ($templateCache:ng.ITemplateCacheService, $compile:ng.ICompileService)=> { - return new SmartTooltipDirective($templateCache, $compile); - }; - - } - - SmartTooltipDirective.factory.$inject = ['$templateCache', '$compile']; -} diff --git a/catalog-ui/app/scripts/directives/utils/wizard_steps/sdc-wizard-steps.html b/catalog-ui/app/scripts/directives/utils/wizard_steps/sdc-wizard-steps.html deleted file mode 100644 index 0c9b97a58c..0000000000 --- a/catalog-ui/app/scripts/directives/utils/wizard_steps/sdc-wizard-steps.html +++ /dev/null @@ -1,16 +0,0 @@ -
      -
    • -
      - - {{step.name}} - -
      -
      -
    • -
    - diff --git a/catalog-ui/app/scripts/directives/utils/wizard_steps/sdc-wizard-steps.less b/catalog-ui/app/scripts/directives/utils/wizard_steps/sdc-wizard-steps.less deleted file mode 100644 index 8b777923a0..0000000000 --- a/catalog-ui/app/scripts/directives/utils/wizard_steps/sdc-wizard-steps.less +++ /dev/null @@ -1,69 +0,0 @@ -@circle-radius: 18px; -@gap: 70px; -@gap-width: 2px; -@valid-width: 2px; - -ul.sdc-wizard-step { - padding: 0; - margin: 0; - - li.step { - position: relative; - list-style: none; - - .step-wrapper { - line-height: @circle-radius*2; - height: @circle-radius*2; - margin-bottom: @gap; - - button.step-index { - ._w-sdc-wizard-step-btn(@circle-radius); - z-index: 99; - display: inline-block; - - &.valid { - display: inline-block; - } - - } - - span.step-name { - .b_7; - line-height: @circle-radius; - display: inline-block; - word-wrap: break-word; - width: calc(~"100%" - @circle-radius*2 + 4); - vertical-align: middle; - padding-left: 10px; - white-space: normal; - - &.selected { - .a_7; - font-weight: bold; - } - - &.disabled { - border: none; - background-color: transparent; - } - - } - } - - .step-seperator { - border-right: @gap-width solid @color_n; - height: @gap + @circle-radius*2; - position: absolute; - top: @circle-radius*2-@circle-radius; - left: @circle-radius - @gap-width/2; - } - - } - - li.step:last-child { - .step-seperator { - display: none; - } - } - -} diff --git a/catalog-ui/app/scripts/directives/utils/wizard_steps/sdc-wizard-steps.ts b/catalog-ui/app/scripts/directives/utils/wizard_steps/sdc-wizard-steps.ts deleted file mode 100644 index 9cad36ab78..0000000000 --- a/catalog-ui/app/scripts/directives/utils/wizard_steps/sdc-wizard-steps.ts +++ /dev/null @@ -1,139 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Directives { - - 'use strict'; - - export interface IWizardStep { - name: string; - selected?: boolean; - valid?:boolean; - enabled?:boolean; - callback: Function; - } - - export interface ISdcWizardStepScope extends ng.IScope { - steps:Array; - control:any; - internalControl:any; - - stepClicked(stepName:string):void; - controllerStepClicked(stepName:string):void; - - setStepValidity(stepName:string, valid:boolean):void; - controllerSetStepValidity(step:IWizardStep, valid:boolean):void; - } - - export interface SdcWizardStepMethods { - unSelectAllSteps():void; - selectStep(step:IWizardStep):void; - } - - export class SdcWizardStepDirective implements ng.IDirective { - - constructor(private $templateCache:ng.ITemplateCacheService) { - } - - scope = { - steps: '=', - control: '=' - }; - - public replace = false; - public restrict = 'E'; - public transclude = true; - public controller = SdcWizardStepDirectiveController; - - template = ():string => { - return this.$templateCache.get('/app/scripts/directives/utils/wizard_steps/sdc-wizard-steps.html'); - }; - - link = (scope:ISdcWizardStepScope, $elem:JQuery, attr:any, controller:SdcWizardStepDirectiveController) => { - scope.internalControl = scope.control || {}; - scope.internalControl.stepClicked = (step:string):void => { - scope.controllerStepClicked(step); - }; - - scope.internalControl.setStepValidity = (step:IWizardStep, valid:boolean):void => { - scope.controllerSetStepValidity(step, valid); - }; - } - - public static factory = ($templateCache:ng.ITemplateCacheService)=> { - return new SdcWizardStepDirective($templateCache); - }; - - } - - SdcWizardStepDirective.factory.$inject = ['$templateCache']; - - export class SdcWizardStepDirectiveController { - static $inject = ['$element', '$scope']; - - methods:SdcWizardStepMethods = {}; - - constructor(public $element: JQuery, - public $scope: ISdcWizardStepScope) { - - this.initMethods(); - this.initScope(); - } - - private initScope = ():void => { - - this.$scope.controllerStepClicked = (stepName:string):void => { - let selectedStep:IWizardStep = _.find(this.$scope.steps, function (item) { - return item.name === stepName; - }); - - if (selectedStep && selectedStep.enabled===true){ - let result:boolean = selectedStep.callback(); - if (result===true){ - this.methods.unSelectAllSteps(); - this.methods.selectStep(selectedStep); - } - } - }; - - this.$scope.controllerSetStepValidity = (step:IWizardStep, valid:boolean):void => { - step.valid=valid; - }; - - }; - - private initMethods = ():void => { - - this.methods.unSelectAllSteps = ():void => { - this.$scope.steps.forEach(function (step) { - step.selected = false; - }); - } - - this.methods.selectStep = (step:IWizardStep):void => { - if (step.enabled===true){ - step.selected=true; - } - } - }; - - } - -} diff --git a/catalog-ui/app/scripts/filters/_category-name-filter.ts b/catalog-ui/app/scripts/filters/_category-name-filter.ts deleted file mode 100644 index 77bbf47684..0000000000 --- a/catalog-ui/app/scripts/filters/_category-name-filter.ts +++ /dev/null @@ -1,40 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Filters { - - export class CategoryNameFilter{ - - constructor() { - let filter = ( (name:string) => { - if(name){ - let newName:string = _.last(name.split('/')); - if (newName){ - return newName; - } - return name; - } - }); - - return filter; - } - } - -} diff --git a/catalog-ui/app/scripts/filters/capitalize-filter.ts b/catalog-ui/app/scripts/filters/capitalize-filter.ts deleted file mode 100644 index ef0469aaa1..0000000000 --- a/catalog-ui/app/scripts/filters/capitalize-filter.ts +++ /dev/null @@ -1,43 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -module Sdc.Filters { - - export class CapitalizeFilter{ - - constructor() { - let filter = ( (sentence:string) => { - if (sentence != null) { - let newSentence:string = ""; - let words = sentence.split(' '); - for (let i=0; i < words.length; ++i){ - let word:string = words[i].toLowerCase(); - newSentence += word.substring(0,1).toUpperCase()+word.substring(1) + ' '; - } - return newSentence.trim(); - }else{ - return sentence; - } - }); - - return filter; - } - } - -} diff --git a/catalog-ui/app/scripts/filters/catalog-status-filter.ts b/catalog-ui/app/scripts/filters/catalog-status-filter.ts deleted file mode 100644 index 5b382f6513..0000000000 --- a/catalog-ui/app/scripts/filters/catalog-status-filter.ts +++ /dev/null @@ -1,41 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -/** - * Created by obarda on 19/08/2015. - */ -module Sdc.Filters { - - export class CatalogStatusFilter{ - - constructor() { - let filter = ( (statuses:any) => { - let filtered = []; - angular.forEach(statuses, function(status) { - filtered.push(status); - }); - return filtered; - }); - - return filter; - } - } - -} diff --git a/catalog-ui/app/scripts/filters/category-icon-filter.ts b/catalog-ui/app/scripts/filters/category-icon-filter.ts deleted file mode 100644 index 6916a13399..0000000000 --- a/catalog-ui/app/scripts/filters/category-icon-filter.ts +++ /dev/null @@ -1,54 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Filters { - - export class CategoryIconFilter{ - - constructor() { - let filter = ( (category:string) => { - let map = { - 'Application Layer 4+/Application Servers': ['applicationServer', 'server'], - 'Application Layer 4+/Media Servers': ['applicationServer', 'server'], - 'Application Layer 4+/Web Server': ['applicationServer', 'server'], - 'Network Layer 4+/Common Network Resources': ['network', 'loadBalancer'], - 'Generic/Infrastructure': ['objectStorage', 'compute'], - 'Generic/Network Elements': ['port', 'network', 'router'], - 'Application Layer 4+/Database': ['database'], - 'Generic/Database': ['database'], - 'Network Layer 2-3/Router': ['router'], - 'Network Layer 2-3/Gateway': ['gateway'], - 'Network Layer 2-3/LAN Connectors': ['connector'], - 'Network Layer 2-3/WAN Connectors': ['connector'], - 'Application Layer 4+/Border Elements': ['borderElement'], - 'Application Layer 4+/Load Balancer': ['loadBalancer'], - 'Application Layer 4+/Call Control': ['call_controll'], - 'VoIP Call Control': ['call_controll'], - 'Mobility': ['mobility'], - 'Network L1-3': ['network_l_1-3'], - 'Network L4': ['network_l_4'] - } - return map[category]; - - }); - return filter; - } - } -} diff --git a/catalog-ui/app/scripts/filters/category-type-filter.ts b/catalog-ui/app/scripts/filters/category-type-filter.ts deleted file mode 100644 index 482e566e5a..0000000000 --- a/catalog-ui/app/scripts/filters/category-type-filter.ts +++ /dev/null @@ -1,45 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Filters { - - export class CategoryTypeFilter { - - static $inject = ['Sdc.Services.CacheService']; - - constructor(cacheService:Services.CacheService) { - let filter = (categories:any, selectedType:Array) => { - - if (!selectedType.length) - return categories; - - let filteredCategories:any = []; - selectedType.forEach((type:string) => { - filteredCategories = filteredCategories.concat(cacheService.get(type.toLowerCase() + 'Categories')); - }); - - return _.filter(categories, function (category:any) { - return filteredCategories.indexOf(category) != -1; - }); - }; - return filter; - } - } -} diff --git a/catalog-ui/app/scripts/filters/clear-whitespaces-filter.ts b/catalog-ui/app/scripts/filters/clear-whitespaces-filter.ts deleted file mode 100644 index 5c946e1715..0000000000 --- a/catalog-ui/app/scripts/filters/clear-whitespaces-filter.ts +++ /dev/null @@ -1,39 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Filters { - - export class ClearWhiteSpacesFilter { - - constructor() { - let filter = ( (text:string) => { - if (!angular.isString(text)) { - return text; - } - - return text.replace(/ /g,''); // remove also whitespaces inside - }); - - return filter; - } - } -} - - diff --git a/catalog-ui/app/scripts/filters/entity-filter.ts b/catalog-ui/app/scripts/filters/entity-filter.ts deleted file mode 100644 index ce60d69833..0000000000 --- a/catalog-ui/app/scripts/filters/entity-filter.ts +++ /dev/null @@ -1,117 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Filters { - - export class EntityFilter{ - - constructor() { - - let filter = ( (components:Array, filter:any) => { - - let filteredComponents:Array = components; - - // filter by type - // -------------------------------------------------------------------------- - if ((filter.selectedComponentTypes && filter.selectedComponentTypes.length>0) || (filter.selectedResourceSubTypes && filter.selectedResourceSubTypes.length>0)) { - let filteredTypes = []; - angular.forEach(components, (component:Models.Components.Component):void => { - // Filter by component type - let typeLower:string = component.componentType.toLowerCase(); - let typeFirstCapital:string = typeLower.charAt(0).toUpperCase() + typeLower.slice(1); - if (filter.selectedComponentTypes.indexOf(typeFirstCapital) !== -1) { - filteredTypes.push(component); - } - - // Filter by resource sub type, only in case the resource checkbox was not selected (because in this case we already added all the components in above section). - if (component.isResource() && filter.selectedComponentTypes.indexOf("Resource") === -1 && filter.selectedResourceSubTypes.length > 0) { - //filteredComponents.pop(); // Remove the last inserted component. - let resource:Sdc.Models.Components.Resource = component; - if (filter.selectedResourceSubTypes.indexOf(resource.getComponentSubType()) !== -1) { - filteredTypes.push(component); - } - } - }); - filteredComponents = filteredTypes; - } - - // filter by categories & subcategories & groupings - // -------------------------------------------------------------------------- - if (filter.selectedCategoriesModel && filter.selectedCategoriesModel.length>0) { - let filteredCategories = []; - angular.forEach(filteredComponents, (component:Models.Components.Component):void => { - if (component.categories && filter.selectedCategoriesModel.indexOf(component.categories[0].uniqueId) !== -1) { - filteredCategories.push(component); - } else if (component.categories && component.categories[0].subcategories && filter.selectedCategoriesModel.indexOf(component.categories[0].subcategories[0].uniqueId) !== -1) { - filteredCategories.push(component); - } else if (component.categories && component.categories[0].subcategories && component.categories[0].subcategories[0].groupings && filter.selectedCategoriesModel.indexOf(component.categories[0].subcategories[0].groupings[0].uniqueId) !== -1) { - filteredCategories.push(component); - } - }); - filteredComponents = filteredCategories; - } - - // filter by statuses - // -------------------------------------------------------------------------- - if (filter.selectedStatuses && filter.selectedStatuses.length > 0) { - //convert array of array to string array - let selectedStatuses:Array = [].concat.apply([],filter.selectedStatuses); - - let filteredStatuses = []; - angular.forEach(filteredComponents, (component:Models.Components.Component):void => { - if (selectedStatuses.indexOf(component.lifecycleState) > -1) { - filteredStatuses.push(component); - } - //if status DISTRIBUTED && CERTIFIED are selected the component will added in CERTIFIED status , not need to add twice - if(selectedStatuses.indexOf('DISTRIBUTED') > -1 && !(selectedStatuses.indexOf('CERTIFIED') > -1)){ - if( component.distributionStatus && component.distributionStatus.indexOf('DISTRIBUTED') > -1 && component.lifecycleState.indexOf('CERTIFIED') > -1){ - filteredStatuses.push(component); - } - } - }); - filteredComponents = filteredStatuses; - } - - // filter by statuses and distributed - // -------------------------------------------------------------------------- - if (filter.distributed != undefined && filter.distributed.length > 0) { - let filterDistributed: Array = filter.distributed; - let filteredDistributed = []; - angular.forEach(filteredComponents, (entity) => { - filterDistributed.forEach((distribute) => { - let distributeItem = distribute.split(','); - distributeItem.forEach((item) => { - if (item !== undefined && entity.distributionStatus === item){ - filteredDistributed.push(entity); - } - }) - }); - }); - filteredComponents = filteredDistributed; - } - - return filteredComponents; - }); - - return filter; - } - } - -} diff --git a/catalog-ui/app/scripts/filters/graph-resource-name-filter.ts b/catalog-ui/app/scripts/filters/graph-resource-name-filter.ts deleted file mode 100644 index 63f0d780be..0000000000 --- a/catalog-ui/app/scripts/filters/graph-resource-name-filter.ts +++ /dev/null @@ -1,47 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Filters { - - export class GraphResourceNameFilter { - - - constructor() { - let filter = ( (name:string) => { - let context = document.createElement("canvas").getContext("2d"); - context.font = "13px Arial"; - - if(67 < context.measureText(name).width) { - let newLen = name.length - 3; - let newName = name.substring(0, newLen); - - while (59 < (context.measureText(newName).width)) { - newName = newName.substring(0, (--newLen)); - } - return newName + '...'; - } - - return name; - }); - return filter; - } - } - -} diff --git a/catalog-ui/app/scripts/filters/product-category-name-filter.ts b/catalog-ui/app/scripts/filters/product-category-name-filter.ts deleted file mode 100644 index afe8c7ef08..0000000000 --- a/catalog-ui/app/scripts/filters/product-category-name-filter.ts +++ /dev/null @@ -1,39 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -module Sdc.Filters { - - export class ProductCategoryNameFilter{ - - constructor() { - let filter = ( (name:string) => { - if(name){ - let newName:string = name.split('/')[1]; - if (newName){ - return newName; - } - return name; - } - }); - - return filter; - } - } - -} diff --git a/catalog-ui/app/scripts/filters/product-subcategory-name-filter.ts b/catalog-ui/app/scripts/filters/product-subcategory-name-filter.ts deleted file mode 100644 index 66d7a76c28..0000000000 --- a/catalog-ui/app/scripts/filters/product-subcategory-name-filter.ts +++ /dev/null @@ -1,39 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -module Sdc.Filters { - - export class ProductSubCategoryNameFilter{ - - constructor() { - let filter = ( (name:string) => { - if(name){ - let newName:string = _.last(name.split('/')); - if (newName){ - return newName; - } - return name; - } - }); - - return filter; - } - } - -} diff --git a/catalog-ui/app/scripts/filters/relation-name-fllter.ts b/catalog-ui/app/scripts/filters/relation-name-fllter.ts deleted file mode 100644 index 7d97eea372..0000000000 --- a/catalog-ui/app/scripts/filters/relation-name-fllter.ts +++ /dev/null @@ -1,53 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Filters { - - export class RelationNameFilter{ - - constructor() { - let filter = ( (relationshipType:string) => { - let icons: Array = [ - 'AttachesTo', - 'BindsTo', - 'DependsOn', - 'HostedOn', - 'LinksTo', - 'RoutesTo' - ]; - - let result:string = 'ConnectedTo'; - - if (relationshipType) { - let arr = relationshipType.split('.'); // looks like tosca.relationships.AttachesTo - relationshipType = arr[arr.length - 1]; - if (icons.indexOf(relationshipType) > -1) { - result = relationshipType; - } - } - - return result; - }); - - return filter; - } - } - -} diff --git a/catalog-ui/app/scripts/filters/resource-name-filter.ts b/catalog-ui/app/scripts/filters/resource-name-filter.ts deleted file mode 100644 index a1f6162a4c..0000000000 --- a/catalog-ui/app/scripts/filters/resource-name-filter.ts +++ /dev/null @@ -1,45 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Filters { - - export class ResourceNameFilter{ - - - constructor() { - let filter = ( (name:string) => { - if(name){ - //let newName:string = _.last(name.split('.')); - let newName = - _.last(_.last(_.last(_.last(_.last(_.last(_.last(_.last(name.split('tosca.nodes.')) - .split('network.')).split('relationships.')).split('org.openecomp.')).split('resource.nfv.')) - .split('nodes.module.')).split('cp.')).split('vl.')); - if (newName){ - return newName; - } - return name; - } - }); - - return filter; - } - } - -} diff --git a/catalog-ui/app/scripts/filters/resource-type-filter.ts b/catalog-ui/app/scripts/filters/resource-type-filter.ts deleted file mode 100644 index 6aa79dae76..0000000000 --- a/catalog-ui/app/scripts/filters/resource-type-filter.ts +++ /dev/null @@ -1,38 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Filters { - - export class ResourceTypeFilter{ - static '$inject' = ['Sdc.Services.CacheService']; - constructor(cacheService:Services.CacheService) - { - let filter = (resourceType:string) => { - let uiConfiguration:any = cacheService.get('UIConfiguration'); - - if(uiConfiguration.resourceTypes && uiConfiguration.resourceTypes[resourceType]){ - return uiConfiguration.resourceTypes[resourceType]; - } - return resourceType; - } - return filter; - } - } -} diff --git a/catalog-ui/app/scripts/filters/string-to-date-filter.ts b/catalog-ui/app/scripts/filters/string-to-date-filter.ts deleted file mode 100644 index 1c4919d419..0000000000 --- a/catalog-ui/app/scripts/filters/string-to-date-filter.ts +++ /dev/null @@ -1,34 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Filters { - - export class StringToDateFilter{ - - constructor() { - let filter = ( (date:string) => { - if(date){ - return new Date(date.replace(" UTC", '').replace(" ", 'T') + '+00:00'); - } - }); - return filter; - } - } -} diff --git a/catalog-ui/app/scripts/filters/tests-id-filter.ts b/catalog-ui/app/scripts/filters/tests-id-filter.ts deleted file mode 100644 index 12c5e6fd79..0000000000 --- a/catalog-ui/app/scripts/filters/tests-id-filter.ts +++ /dev/null @@ -1,33 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -module Sdc.Filters { - - export class TestsIdFilter{ - - constructor() { - let filter = ( (testId:string) => { - return testId.replace(/\s/g, '_').toLowerCase(); - }); - - return filter; - } - } - -} diff --git a/catalog-ui/app/scripts/filters/trim-filter.ts b/catalog-ui/app/scripts/filters/trim-filter.ts deleted file mode 100644 index fd231abc8d..0000000000 --- a/catalog-ui/app/scripts/filters/trim-filter.ts +++ /dev/null @@ -1,39 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Filters { - - export class TrimFilter { - - constructor() { - let filter = ( (text:string) => { - if (!angular.isString(text)) { - return text; - } - - return text.replace(/^\s+|\s+$/g, ''); // you could use .trim, but it's not going to work in IE<9 - }); - - return filter; - } - } -} - - diff --git a/catalog-ui/app/scripts/filters/truncate-filter.ts b/catalog-ui/app/scripts/filters/truncate-filter.ts deleted file mode 100644 index 1470e5937d..0000000000 --- a/catalog-ui/app/scripts/filters/truncate-filter.ts +++ /dev/null @@ -1,48 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -module Sdc.Filters { - - export class TruncateFilter { - constructor() { - let filter = (str:string, length:number) => { - if (str.length <= length) { - return str; - } - - //if(str[length - 1] === ' '){ - // return str.substring(0, length - 1) + '...'; - //} - - let char; - let index = length; - while (char !== ' ' && index !== 0) { - index--; - char = str[index]; - } - if (index === 0) { - return (index === 0) ? str : str.substring(0, length - 3) + '...'; - } - return (index === 0) ? str : str.substring(0, index) + '...'; - }; - return filter; - } - - } -} diff --git a/catalog-ui/app/scripts/filters/underscoreless-filter.ts b/catalog-ui/app/scripts/filters/underscoreless-filter.ts deleted file mode 100644 index 6849a36f04..0000000000 --- a/catalog-ui/app/scripts/filters/underscoreless-filter.ts +++ /dev/null @@ -1,33 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -module Sdc.Filters { - - export class UnderscoreLessFilter{ - - constructor() { - let filter = ( (sentence:string) => { - return sentence.replace(/_/g, ' '); - }); - - return filter; - } - } - -} diff --git a/catalog-ui/app/scripts/models/activity.ts b/catalog-ui/app/scripts/models/activity.ts deleted file mode 100644 index 4f8648d6b7..0000000000 --- a/catalog-ui/app/scripts/models/activity.ts +++ /dev/null @@ -1,48 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/** - * Created by obarda on 19/11/2015. - */ -/// -module Sdc.Models { - 'use strict'; - - /*this is in uppercase because of the server response*/ - export class Activity{ - TIMESTAMP: string; - ACTION:string; - MODIFIER:string; - STATUS:string; - DESC:string; - COMMENT:string; - //custom data - public dateFormat:string; - - constructor() { - } - public toJSON = ():any => { - this.dateFormat = undefined; - return this; - }; - - } -} - - diff --git a/catalog-ui/app/scripts/models/additional-information.ts b/catalog-ui/app/scripts/models/additional-information.ts deleted file mode 100644 index bcac2e5d12..0000000000 --- a/catalog-ui/app/scripts/models/additional-information.ts +++ /dev/null @@ -1,44 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Models { - 'use strict'; - - - export interface IAdditionalInformationModel { - uniqueId: string; - key: string; - value: string; - } - - - export class AdditionalInformationModel implements IAdditionalInformationModel { - uniqueId:string; - key:string; - value:string; - - constructor() { - this.uniqueId = ''; - this.key = ''; - this.value = ''; - - } - } -} diff --git a/catalog-ui/app/scripts/models/app-config.ts b/catalog-ui/app/scripts/models/app-config.ts deleted file mode 100644 index f0a316fc92..0000000000 --- a/catalog-ui/app/scripts/models/app-config.ts +++ /dev/null @@ -1,232 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Models { - - 'use strict'; - export interface IApi { - baseUrl:string; - - //***** NEW API *******// - GET_component: string; - PUT_component: string; - GET_component_validate_name: string; - POST_changeLifecycleState: string; - component_api_root:string; - welcome_page_video_url:string; - //*********// - - GET_user: string; - GET_user_authorize: string; - GET_all_users: string; - POST_create_user; - DELETE_delete_user; - POST_edit_user_role; - GET_resource: string; - GET_resources_latestversion_notabstract:string; - GET_resources_certified_not_abstract: string; - GET_resources_certified_abstract: string; - PUT_resource: string; - GET_resource_property: string; - GET_resource_artifact:string; - GET_download_instance_artifact:string; - POST_instance_artifact:string; - GET_resource_additional_information:string; - GET_service_artifact:string; - GET_resource_interface_artifact:string; - GET_resource_api_artifact:string; - GET_resource_validate_name: string; - GET_resource_artifact_types: string; - GET_activity_log: string; - GET_configuration_ui: string; - GET_service: string; - PUT_product: string; - GET_product: string; - GET_ecomp_menu_items: string; - GET_product_validate_name: string; - GET_service_validate_name: string; - GET_service_distributions: string; - GET_service_distributions_components: string; - POST_service_distribution_deploy: string; - GET_element: string; - GET_catalog: string; - GET_resource_category: string; - GET_service_category: string; - resource_instance: string; - GET_resource_instance_property: string; - GET_relationship:string; - GET_lifecycle_state_resource:string; - GET_lifecycle_state_CHECKIN:string; - GET_lifecycle_state_CERTIFICATIONREQUEST:string; - GET_lifecycle_state_UNDOCHECKOUT:string; - root: string; - PUT_service: string; - GET_download_artifact: string; - GET_SDC_Version: string; - GET_categories: string; - POST_category: string; - POST_subcategory: string; - POST_change_instance_version: string; - GET_requirements_capabilities: string; - GET_onboarding: string; - GET_component_from_csar_uuid: string; - kibana:string; - - //Added by Ikram -- starts - GET_product_category: string; - GET_product_category_temp: string; - GET_product_sub_category: string; - //Added by Ikram -- ends - - } - - export interface ILogConfig { - minLogLevel: string; - prefix: string; - } - - export interface ICookie { - junctionName: string; - prefix: string; - userIdSuffix: string; - userFirstName: string; - userLastName: string; - userEmail: string; - } - export interface IUserTypes { - admin: any; - designer: any; - tester: any; - } - - export interface IConfigStatuses { - inDesign: IConfigStatus; - readyForCertification: IConfigStatus; - inCertification: IConfigStatus; - certified: IConfigStatus; - distributed: IConfigStatus; - - } - - export interface IConfigStatus { - name: string; - values: Array; - } - - export interface IConfigRoles { - ADMIN: IConfigRole; - DESIGNER: IConfigRole; - TESTER: IConfigRole; - OPS: IConfigRole; - GOVERNOR: IConfigRole; - PRODUCT_MANAGER: IConfigRole; - PRODUCT_STRATEGIST: IConfigRole; - } - - export interface IConfigRole { - pages: Array; - states: IConfigState; - } - - export interface IConfigState { - NOT_CERTIFIED_CHECKOUT: Array; - NOT_CERTIFIED_CHECKIN: Array; - READY_FOR_CERTIFICATION: Array; - CERTIFICATION_IN_PROGRESS: Array; - CERTIFIED: Array; - } - - export interface IConfigDistribution { - DISTRIBUTION_NOT_APPROVED: Array; - DISTRIBUTION_APPROVED: Array; - DISTRIBUTED: Array; - DISTRIBUTION_REJECTED: Array; - } - - export interface IConfirmationMessage { - showComment: boolean; - title: string; - message: string; - } - - export interface IConfirmationMessages { - checkin: IConfirmationMessage; - checkout: IConfirmationMessage; - certify: IConfirmationMessage; - failCertification: IConfirmationMessage; - certificationRequest: IConfirmationMessage; - approve: IConfirmationMessage; - reject: IConfirmationMessage; - } - - export interface IAlertMessage { - title: string; - message: string; - } - - export interface IAlertMessages { - deleteInstance: IAlertMessage; - exitWithoutSaving: IConfirmationMessage; - } - - class ConfigMenuItem { - text:string; - action:string; - url:string; - disable:boolean = false; - } - - export interface IAppConfigurtaion { - environment:string; - api: IApi; - resourceTypesFilter:IResourceTypesFilter; - logConfig: ILogConfig; - cookie: ICookie; - imagesPath: string; - toscaFileExtension:string; - csarFileExtension:string; - testers: Array - tutorial:any; - roles: Array; - cpEndPointInstances: Array; - openSource:boolean; - } - export interface IResourceTypesFilter { - resource: Array; - } - - export interface ITester { - email: string; - } - - export interface IAppMenu { - roles: IConfigRoles; - confirmationMessages: IConfirmationMessages; - alertMessages: IAlertMessages; - statuses: IConfigStatuses; - catalogMenuItem: any; - categoriesDictionary:any; - canvas_buttons:Object; - component_workspace_menu_option: any; - LifeCycleStatuses: any; - DistributionStatuses: any; - ChangeLifecycleStateButton:any; - } -} diff --git a/catalog-ui/app/scripts/models/artifacts.ts b/catalog-ui/app/scripts/models/artifacts.ts deleted file mode 100644 index 8ee98d90d1..0000000000 --- a/catalog-ui/app/scripts/models/artifacts.ts +++ /dev/null @@ -1,115 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Models { - 'use strict'; - - //this object contains keys, each key contain ArtifactModel - export class ArtifactGroupModel{ - constructor(artifacts?:Models.ArtifactGroupModel) { - _.forEach(artifacts, (artifact:Models.ArtifactModel, key) => { - this[key] = new Models.ArtifactModel(artifact); - }); - } - - public filteredByType (type:string): Models.ArtifactGroupModel { - return JSON.parse(JSON.stringify(_.pick(this, (artifact)=>{ return artifact.artifactType == type}))); - }; - } - - export class ArtifactModel { - - artifactDisplayName:string; - artifactGroupType:string; - uniqueId:string; - artifactName:string; - artifactLabel:string; - artifactType:string; - artifactUUID:string; - artifactVersion:string; - creatorFullName:string; - creationDate:number; - lastUpdateDate:number; - description:string; - mandatory:boolean; - serviceApi:boolean; - payloadData:string; - timeout:number; - esId:string; - "Content-MD5":string; - artifactChecksum:string; - apiUrl:string; - heatParameters:Array; - generatedFromId:string; - - //custom properties - selected:boolean; - originalDescription:string; - - constructor(artifact?:ArtifactModel) { - if(artifact) { - this.artifactDisplayName = artifact.artifactDisplayName; - this.artifactGroupType = artifact.artifactGroupType; - this.uniqueId = artifact.uniqueId; - this.artifactName = artifact.artifactName; - this.artifactLabel = artifact.artifactLabel; - this.artifactType = artifact.artifactType; - this.artifactUUID = artifact.artifactUUID; - this.artifactVersion = artifact.artifactVersion; - this.creatorFullName = artifact.creatorFullName; - this.creationDate = artifact.creationDate; - this.lastUpdateDate = artifact.lastUpdateDate; - this.description = artifact.description; - this.mandatory = artifact.mandatory; - this.serviceApi = artifact.serviceApi; - this.payloadData = artifact.payloadData; - this.timeout = artifact.timeout; - this.esId = artifact.esId; - this["Content-MD5"] = artifact["Content-MD5"]; - this.artifactChecksum = artifact.artifactChecksum; - this.apiUrl = artifact.apiUrl; - this.heatParameters = _.sortBy(artifact.heatParameters, 'name'); - this.generatedFromId = artifact.generatedFromId; - this.selected = artifact.selected ? artifact.selected : false; - this.originalDescription = artifact.description; - } - } - - public isHEAT = ():boolean => { - return Utils.Constants.ArtifactType.HEAT === this.artifactType.substring(0,4); - }; - - // public isEditableInInstanceLevel = ():boolean => { - // return true; - // }; - - public isThirdParty = ():boolean => { - return _.has(Utils.Constants.ArtifactType.THIRD_PARTY_RESERVED_TYPES, this.artifactType); - }; - - public toJSON = ():any => { - this.selected = undefined; - this.originalDescription = undefined; - return this; - }; - } -} - - diff --git a/catalog-ui/app/scripts/models/aschema-property.ts b/catalog-ui/app/scripts/models/aschema-property.ts deleted file mode 100644 index 7ecc85c302..0000000000 --- a/catalog-ui/app/scripts/models/aschema-property.ts +++ /dev/null @@ -1,63 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/** - * Created by osonsino on 16/05/2016. - */ -/// -module Sdc.Models { - 'use strict'; - - export class SchemaPropertyGroupModel{ - property: SchemaProperty; - - constructor(schemaProperty?:Models.SchemaProperty) { - this.property = schemaProperty; - } - } - - export class SchemaProperty { - - type: string; - required: boolean; - definition: boolean; - description: string; - password: boolean; - //custom properties - simpleType: string; - - constructor(schemaProperty?:SchemaProperty) { - if(schemaProperty) { - this.type = schemaProperty.type; - this.required = schemaProperty.required; - this.definition = schemaProperty.definition; - this.description = schemaProperty.description; - this.password = schemaProperty.password; - this.simpleType = schemaProperty.simpleType; - } - } - - public toJSON = ():any => { - this.simpleType = undefined; - return this; - }; - } -} - - diff --git a/catalog-ui/app/scripts/models/attributes.ts b/catalog-ui/app/scripts/models/attributes.ts deleted file mode 100644 index ea4c7a5a23..0000000000 --- a/catalog-ui/app/scripts/models/attributes.ts +++ /dev/null @@ -1,139 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Models { - 'use strict'; - - export class AttributesGroup { - constructor(attributesObj?:Models.AttributesGroup) { - _.forEach(attributesObj, (attributes:Array, instance) => { - this[instance] = []; - _.forEach(attributes, (attribute:Models.AttributeModel):void => { - attribute.resourceInstanceUniqueId = instance; - attribute.readonly = true; - this[instance].push(new Models.AttributeModel(attribute)); - }); - }); - } - } - - export interface IAttributeModel { - - //server data - uniqueId:string; - name:string; - defaultValue:string; - description:string; - type:string; - schema:Models.SchemaAttributeGroupModel; - status:string; - value:string; - hidden:boolean; - parentUniqueId:string; - //custom data - resourceInstanceUniqueId:string; - readonly:boolean; - valueUniqueUid:string; - } - - export class AttributeModel implements IAttributeModel { - - //server data - uniqueId:string; - name:string; - defaultValue:string; - description:string; - type:string; - schema:Models.SchemaAttributeGroupModel; - status:string; - value:string; - hidden:boolean; - parentUniqueId:string; - //custom data - resourceInstanceUniqueId:string; - readonly:boolean; - valueUniqueUid:string; - - constructor(attribute?:Models.AttributeModel) { - if (attribute) { - this.uniqueId = attribute.uniqueId; - this.name = attribute.name; - this.defaultValue = attribute.defaultValue; - this.description = attribute.description; - this.type = attribute.type; - this.status = attribute.status; - this.schema = attribute.schema; - this.value = attribute.value; - this.hidden = attribute.hidden; - this.parentUniqueId = attribute.parentUniqueId; - this.resourceInstanceUniqueId = attribute.resourceInstanceUniqueId; - this.readonly = attribute.readonly; - this.valueUniqueUid = attribute.valueUniqueUid; - } - - if (!this.schema || !this.schema.property) { - this.schema = new Models.SchemaPropertyGroupModel(new Models.SchemaProperty()); - } else { - //forcing creating new object, so editing different one than the object in the table - this.schema = new Models.SchemaAttributeGroupModel(new Models.SchemaAttribute(this.schema.property)); - } - - this.convertValueToView(); - } - - public convertToServerObject:Function = ():string => { - if (this.defaultValue && this.type === 'map') { - this.defaultValue = '{' + this.defaultValue + '}'; - } - if (this.defaultValue && this.type === 'list') { - this.defaultValue = '[' + this.defaultValue + ']'; - } - this.defaultValue = this.defaultValue != "" && this.defaultValue != "[]" && this.defaultValue != "{}" ? this.defaultValue : null; - - return JSON.stringify(this); - }; - - - public convertValueToView() { - //unwrapping value {} or [] if type is complex - if (this.defaultValue && (this.type === 'map' || this.type === 'list') && - ['[', '{'].indexOf(this.defaultValue.charAt(0)) > -1 && - [']', '}'].indexOf(this.defaultValue.slice(-1)) > -1) { - this.defaultValue = this.defaultValue.slice(1, -1); - } - - //also for value - for the modal in canvas - if (this.value && (this.type === 'map' || this.type === 'list') && - ['[', '{'].indexOf(this.value.charAt(0)) > -1 && - [']', '}'].indexOf(this.value.slice(-1)) > -1) { - this.value = this.value.slice(1, -1); - } - } - - public toJSON = ():any => { - if (!this.resourceInstanceUniqueId) { - this.value = undefined; - } - this.readonly = undefined; - this.resourceInstanceUniqueId = undefined; - return this; - }; - } -} diff --git a/catalog-ui/app/scripts/models/capability.ts b/catalog-ui/app/scripts/models/capability.ts deleted file mode 100644 index 815be5a389..0000000000 --- a/catalog-ui/app/scripts/models/capability.ts +++ /dev/null @@ -1,116 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/** - * Created by obarda on 4/20/2016. - */ -/// -module Sdc.Models { - 'use strict'; - - //this is an object contains keys, when each key has matching array. - // for example: key = tosca.capabilities.network.Linkable and the match array is array of capabilities objects - export class CapabilitiesGroup { - constructor(capabilityGroupObj?:Models.CapabilitiesGroup) { - _.forEach(capabilityGroupObj, (capabilitiesArrayObj:Array, instance) => { - this[instance] = []; - _.forEach(capabilitiesArrayObj, (capability:Models.Capability):void => { - this[instance].push(new Models.Capability(capability)); - }); - }); - } - - public findValueByKey(keySubstring:string):Array { - let key:string = _.find(Object.keys(this), (key)=> { - return _.includes(key.toLowerCase(), keySubstring); - }); - return this[key]; - } - } - - export class Capability { - - //server data - name:string; - ownerId:string; - ownerName:string; - type:string; - uniqueId:string; - capabilitySources:Array; - minOccurrences:string; - maxOccurrences:string; - properties:Array; - description:string; - validSourceTypes:Array; - //custom - selected:boolean; - filterTerm:string; - - constructor(capability?:Capability) { - - if (capability) { - //server data - this.name = capability.name; - this.ownerId = capability.ownerId; - this.ownerName = capability.ownerName; - this.type = capability.type; - this.uniqueId = capability.uniqueId; - this.capabilitySources = capability.capabilitySources; - this.minOccurrences = capability.minOccurrences; - this.maxOccurrences = capability.maxOccurrences; - this.properties = capability.properties; - this.description = capability.description; - this.validSourceTypes = capability.validSourceTypes; - this.selected = capability.selected; - this.initFilterTerm(); - - } - } - - public getFullTitle():string { - let maxOccurrences:string = this.maxOccurrences === 'UNBOUNDED' ? '∞' : this.maxOccurrences; - return this.ownerName + ': ' + this.name + ': [' + this.minOccurrences + ', ' + maxOccurrences + ']'; - } - - public toJSON = ():any => { - this.selected = undefined; - this.filterTerm = undefined; - return this; - }; - - private initFilterTerm = ():void =>{ - this.filterTerm = this.name + " " + - (this.type ? (this.type.substring("tosca.capabilities.".length) + " " ) : "") + - (this.description||"") + " " + - (this.ownerName||"") + " " + - (this.validSourceTypes ? (this.validSourceTypes.join(',') + " ") : "") + - this.minOccurrences+","+this.maxOccurrences; - if(this.properties && this.properties.length){ - _.forEach(this.properties,(prop:Models.PropertyModel)=>{ - this.filterTerm += " "+ prop.name + - " " + (prop.description||"") + - " " + prop.type + - (prop.schema && prop.schema.property?(" " + prop.schema.property.type):""); - }); - } - } - } -} - - diff --git a/catalog-ui/app/scripts/models/category.ts b/catalog-ui/app/scripts/models/category.ts deleted file mode 100644 index 730460cbc0..0000000000 --- a/catalog-ui/app/scripts/models/category.ts +++ /dev/null @@ -1,67 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Models { - 'use strict'; - - export class ICategoryBase { - - //server properties - name: string; - normalizedName: string; - uniqueId:string; - icons: Array; - - //custom properties - filterTerms: string; - isDisabled: boolean; - filteredGroup: Array; - - constructor(category?: ICategoryBase){ - if (category) { - this.name = category.name; - this.normalizedName = category.normalizedName; - this.icons = category.icons; - this.filterTerms = category.filterTerms; - this.isDisabled = category.isDisabled; - this.filteredGroup = category.filteredGroup; - } - } - } - - export class IMainCategory extends ICategoryBase { - subcategories:Array; - constructor(); - constructor(category?: IMainCategory){ - super(category); - if (category) { - this.subcategories = category.subcategories; - } - } - } - - export class ISubCategory extends ICategoryBase { - groupings:Array; - } - - export interface IGroup extends ICategoryBase { - } - -} diff --git a/catalog-ui/app/scripts/models/comments.ts b/catalog-ui/app/scripts/models/comments.ts deleted file mode 100644 index 0f7643690d..0000000000 --- a/catalog-ui/app/scripts/models/comments.ts +++ /dev/null @@ -1,33 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Models { - 'use strict'; - - export class AsdcComment{ - public userRemarks: string; - - constructor() { - } - } -} - - - diff --git a/catalog-ui/app/scripts/models/components/component.ts b/catalog-ui/app/scripts/models/components/component.ts deleted file mode 100644 index c0fb3a9fbb..0000000000 --- a/catalog-ui/app/scripts/models/components/component.ts +++ /dev/null @@ -1,828 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/** - * Created by obarda on 2/4/2016. - */ -/// -module Sdc.Models.Components { - 'use strict'; - import Util = jasmine.Util; - - export interface IComponent { - - //---------------------------------------------- API CALLS ----------------------------------------------------// - - //Component API - getComponent():ng.IPromise; - updateComponent():ng.IPromise; - createComponentOnServer():ng.IPromise; - changeLifecycleState(state:string, commentObj:Models.AsdcComment):ng.IPromise; - validateName(newName:string):ng.IPromise; - updateRequirementsCapabilities():ng.IPromise; - - //Artifacts API - addOrUpdateArtifact(artifact:ArtifactModel):ng.IPromise; - updateMultipleArtifacts(artifacts:Array):ng.IPromise; - deleteArtifact(artifactId:string, artifactLabel:string):ng.IPromise; - downloadInstanceArtifact(artifactId:string):ng.IPromise; - downloadArtifact(artifactId:string):ng.IPromise; - - //Property API - addOrUpdateProperty(property:Models.PropertyModel):ng.IPromise; - deleteProperty(propertyId:string):ng.IPromise; - updateInstanceProperty(property:Models.PropertyModel):ng.IPromise; - - //Attribute API - deleteAttribute(attributeId:string):ng.IPromise; - addOrUpdateAttribute(attribute:Models.AttributeModel):ng.IPromise; - updateInstanceAttribute(attribute:Models.AttributeModel):ng.IPromise; - - - - - //Component Instance API - createComponentInstance(componentInstance:Models.ComponentsInstances.ComponentInstance):ng.IPromise; - deleteComponentInstance(componentInstanceId:string):ng.IPromise; - addOrUpdateInstanceArtifact(artifact:Models.ArtifactModel):ng.IPromise; - deleteInstanceArtifact(artifactId:string, artifactLabel:string):ng.IPromise; - uploadInstanceEnvFile(artifact:Models.ArtifactModel): ng.IPromise; - changeComponentInstanceVersion(componentUid:string):ng.IPromise; - updateComponentInstance(componentInstance:Models.ComponentsInstances.ComponentInstance): ng.IPromise; - updateMultipleComponentInstances(instances: Array):ng.IPromise>; - - //Inputs API - getComponentInstanceInputProperties(componentInstanceId: string, inputId: string):ng.IPromise> - getComponentInputs(componentId: string):ng.IPromise>; - - createRelation(link:Models.RelationshipModel):ng.IPromise; - deleteRelation(link:Models.RelationshipModel):ng.IPromise; - - - //Modules - getModuleForDisplay(moduleId:string):ng.IPromise; - updateGroupMetadata(group:Models.Module):ng.IPromise; - //---------------------------------------------- HELP FUNCTIONS ----------------------------------------------------// - - getComponentSubType():string; - isAlreadyCertified():boolean; - isProduct():boolean; - isService():boolean; - isResource():boolean; - isComplex():boolean; - getAdditionalInformation():Array; - getAllVersionsAsSortedArray():Array; - getStatus(sdcMenu:Models.IAppMenu):string; - } - - - export class Component implements IComponent { - - //server data - public abstract:string; - public uniqueId:string; - public uuid:string; - public invariantUUID:string; - public name:string; - public version:string; - public creationDate:number; - public lastUpdateDate:number; - public description:string; - public lifecycleState:string; - public tags:Array; - public icon:string; - public contactId:string; - public allVersions:any; - public creatorUserId:string; - public creatorFullName:string; - public lastUpdaterUserId:string; - public lastUpdaterFullName:string; - public componentType:string; - public deploymentArtifacts:Models.ArtifactGroupModel; - public artifacts:Models.ArtifactGroupModel; - public toscaArtifacts:Models.ArtifactGroupModel; - public distributionStatus:string; - public categories:Array; - public componentInstancesProperties:Models.PropertiesGroup; - public componentInstancesAttributes:Models.AttributesGroup; - public componentInstancesRelations:Array; - public componentInstances:Array; - public inputs:Array; - public capabilities:Models.CapabilitiesGroup; - public requirements:Models.RequirementsGroup; - public additionalInformation:any; - public properties:Array; - public attributes:Array; - public highestVersion:boolean; - public vendorName:string; - public vendorRelease:string; - public derivedList:Array; - public interfaces:any; - public normalizedName:string; - public systemName:string; - public projectCode:string; - public groups:Array; - //custom properties - public componentService:Sdc.Services.Components.IComponentService; - public filterTerm:string; - public iconSprite:string; - public selectedInstance:Models.ComponentsInstances.ComponentInstance; - public mainCategory:string; - public subCategory:string; - public selectedCategory:string; - public showMenu:boolean; - - - constructor(componentService:Sdc.Services.Components.IComponentService, - protected $q:ng.IQService, - component?:Component) { - if (component) { - this.abstract = component.abstract; - this.uniqueId = component.uniqueId; - this.uuid = component.uuid; - this.invariantUUID = component.invariantUUID; - this.additionalInformation = component.additionalInformation; - this.artifacts = new Sdc.Models.ArtifactGroupModel(component.artifacts); - this.toscaArtifacts = new Sdc.Models.ArtifactGroupModel(component.toscaArtifacts); - this.contactId = component.contactId; - this.categories = component.categories; - this.creatorUserId = component.creatorUserId; - this.creationDate = component.creationDate; - this.creatorFullName = component.creatorFullName; - this.description = component.description; - this.icon = component.icon; - this.lastUpdateDate = component.lastUpdateDate; - this.lastUpdaterUserId = component.lastUpdaterUserId; - this.lastUpdaterFullName = component.lastUpdaterFullName; - this.lifecycleState = component.lifecycleState; - this.initComponentInstanceRelations(component.componentInstancesRelations); - this.componentInstancesProperties = new Models.PropertiesGroup(component.componentInstancesProperties); - this.componentInstancesAttributes = new Models.AttributesGroup(component.componentInstancesAttributes); - this.name = component.name; - this.version = component.version; - this.tags = component.tags; - this.capabilities = new Models.CapabilitiesGroup(component.capabilities); - this.requirements = new Models.RequirementsGroup(component.requirements); - this.allVersions = component.allVersions; - this.deploymentArtifacts = new Sdc.Models.ArtifactGroupModel(component.deploymentArtifacts); - this.componentType = component.componentType; - this.distributionStatus = component.distributionStatus; - this.highestVersion = component.highestVersion; - this.vendorName = component.vendorName; - this.vendorRelease = component.vendorRelease; - this.derivedList = component.derivedList; - this.interfaces = component.interfaces; - this.normalizedName = component.normalizedName; - this.systemName = component.systemName; - this.projectCode = component.projectCode; - this.inputs = component.inputs; - this.componentInstances = Utils.CommonUtils.initComponentInstances(component.componentInstances); - this.properties = Utils.CommonUtils.initProperties(component.properties, this.uniqueId); - this.attributes = Utils.CommonUtils.initAttributes(component.attributes, this.uniqueId); - this.selectedInstance = component.selectedInstance; - this.iconSprite = component.iconSprite; - this.showMenu = true; - this.groups = Utils.CommonUtils.initModules(component.groups); - } - - //custom properties - this.componentService = componentService; - } - - public setUniqueId = (uniqueId:string):void => { - this.uniqueId = uniqueId; - }; - - public setSelectedInstance = (componentInstance:Models.ComponentsInstances.ComponentInstance):void => { - this.selectedInstance = componentInstance; - }; - - //------------------------------------------ Init Functions ----------------------------------------------------------------// - - private initComponentInstanceRelations = (componentInstanceRelationsObj:Array):void => { - if (componentInstanceRelationsObj) { - this.componentInstancesRelations = []; - _.forEach(componentInstanceRelationsObj, (instanceRelation:Models.RelationshipModel):void => { - this.componentInstancesRelations.push(new Models.RelationshipModel(instanceRelation)); - }); - } - }; - //----------------------------------------------------------------------------------------------------------------------// - - //------------------------------------------ API Calls ----------------------------------------------------------------// - public changeLifecycleState = (state:string, commentObj:Models.AsdcComment):ng.IPromise => { - return this.componentService.changeLifecycleState(this, state, JSON.stringify(commentObj)); - }; - - public getComponent = ():ng.IPromise => { - return this.componentService.getComponent(this.uniqueId); - }; - - public createComponentOnServer = ():ng.IPromise => { - this.handleTags(); - return this.componentService.createComponent(this); - }; - - public updateComponent = ():ng.IPromise => { - this.handleTags(); - return this.componentService.updateComponent(this); - }; - - public validateName = (newName:string, subtype?:string):ng.IPromise => { - return this.componentService.validateName(newName, subtype); - }; - - public downloadArtifact = (artifactId:string):ng.IPromise => { - return this.componentService.downloadArtifact(this.uniqueId, artifactId); - }; - - public addOrUpdateArtifact = (artifact:ArtifactModel):ng.IPromise => { - let deferred = this.$q.defer(); - let onSuccess = (artifactObj:Models.ArtifactModel):void => { - let newArtifact = new Models.ArtifactModel(artifactObj); - let artifacts = this.getArtifactsByType(artifactObj.artifactGroupType); - artifacts[artifactObj.artifactLabel] = newArtifact; - deferred.resolve(newArtifact); - }; - let onError = (error:any):void => { - deferred.reject(error); - }; - this.componentService.addOrUpdateArtifact(this.uniqueId, artifact).then(onSuccess, onError); - return deferred.promise; - }; - - public updateMultipleArtifacts = (artifacts:Array):ng.IPromise=> { - let deferred = this.$q.defer(); - let onSuccess = (response:any):void => { - deferred.resolve(response); - }; - let onError = (error:any):void => { - deferred.reject(error); - }; - let q = new Utils.Functions.QueueUtils(this.$q); - - _.forEach(artifacts, (artifact)=> { - q.addBlockingUIAction(()=> this.addOrUpdateArtifact(artifact).then(onSuccess, onError)); - }); - return deferred.promise; - }; - - - public deleteArtifact = (artifactId:string, artifactLabel:string):ng.IPromise => { - let deferred = this.$q.defer(); - let onSuccess = (artifactObj:Models.ArtifactModel):void => { - let newArtifact = new Models.ArtifactModel(artifactObj); - let artifacts = this.getArtifactsByType(artifactObj.artifactGroupType); - if (newArtifact.mandatory || newArtifact.serviceApi) { - artifacts[newArtifact.artifactLabel] = newArtifact; - } - else { - delete artifacts[artifactLabel]; - } - deferred.resolve(newArtifact); - }; - this.componentService.deleteArtifact(this.uniqueId, artifactId, artifactLabel).then(onSuccess); - return deferred.promise; - }; - - - public addOrUpdateProperty = (property:Models.PropertyModel):ng.IPromise => { - let deferred = this.$q.defer(); - - let onError = (error:any):void => { - deferred.reject(error); - }; - - if (!property.uniqueId) { - let onSuccess = (property:Models.PropertyModel):void => { - let newProperty = new Models.PropertyModel(property); - this.properties.push(newProperty); - deferred.resolve(newProperty); - }; - this.componentService.addProperty(this.uniqueId, property).then(onSuccess, onError); - } - else { - let onSuccess = (newProperty:Models.PropertyModel):void => { - // find exist instance property in parent component for update the new value ( find bu uniqueId ) - let existProperty:Models.PropertyModel = _.find(this.properties, {uniqueId: newProperty.uniqueId}); - let propertyIndex = this.properties.indexOf(existProperty); - newProperty.readonly = this.uniqueId != newProperty.parentUniqueId; - this.properties[propertyIndex] = newProperty; - deferred.resolve(newProperty); - }; - this.componentService.updateProperty(this.uniqueId, property).then(onSuccess, onError); - } - return deferred.promise; - }; - - public addOrUpdateAttribute = (attribute:Models.AttributeModel):ng.IPromise => { - let deferred = this.$q.defer(); - - let onError = (error:any):void => { - deferred.reject(error); - }; - - if (!attribute.uniqueId) { - let onSuccess = (attribute:Models.AttributeModel):void => { - let newAttribute = new Models.AttributeModel(attribute); - this.attributes.push(newAttribute); - deferred.resolve(newAttribute); - }; - this.componentService.addAttribute(this.uniqueId, attribute).then(onSuccess, onError); - } - else { - let onSuccess = (newAttribute:Models.AttributeModel):void => { - let existAttribute:Models.AttributeModel = _.find(this.attributes, {uniqueId: newAttribute.uniqueId}); - let attributeIndex = this.attributes.indexOf(existAttribute); - newAttribute.readonly = this.uniqueId != newAttribute.parentUniqueId; - this.attributes[attributeIndex] = newAttribute; - deferred.resolve(newAttribute); - }; - this.componentService.updateAttribute(this.uniqueId, attribute).then(onSuccess, onError); - } - return deferred.promise; - }; - - public deleteProperty = (propertyId:string):ng.IPromise => { - let deferred = this.$q.defer(); - let onSuccess = ():void => { - console.log("Property deleted"); - delete _.remove(this.properties, {uniqueId: propertyId})[0]; - deferred.resolve(); - }; - let onFailed = ():void => { - console.log("Failed to delete property"); - deferred.reject(); - }; - this.componentService.deleteProperty(this.uniqueId, propertyId).then(onSuccess, onFailed); - return deferred.promise; - }; - - public deleteAttribute = (attributeId:string):ng.IPromise => { - let deferred = this.$q.defer(); - let onSuccess = ():void => { - console.log("Attribute deleted"); - delete _.remove(this.attributes, {uniqueId: attributeId})[0]; - }; - let onFailed = ():void => { - console.log("Failed to delete attribute"); - }; - this.componentService.deleteAttribute(this.uniqueId, attributeId).then(onSuccess, onFailed); - return deferred.promise; - }; - - public updateInstanceProperty = (property:Models.PropertyModel):ng.IPromise => { - let deferred = this.$q.defer(); - let onSuccess = (newProperty:Models.PropertyModel):void => { - // find exist instance property in parent component for update the new value ( find bu uniqueId & path) - let existProperty:Models.PropertyModel = _.find(this.componentInstancesProperties[newProperty.resourceInstanceUniqueId], {uniqueId: newProperty.uniqueId,path: newProperty.path}); - let index = this.componentInstancesProperties[newProperty.resourceInstanceUniqueId].indexOf(existProperty); - this.componentInstancesProperties[newProperty.resourceInstanceUniqueId][index] = newProperty; - deferred.resolve(newProperty); - }; - let onFailed = (error:any):void => { - console.log('Failed to update property value'); - deferred.reject(error); - }; - this.componentService.updateInstanceProperty(this.uniqueId, property).then(onSuccess, onFailed); - return deferred.promise; - }; - - public updateInstanceAttribute = (attribute:Models.AttributeModel):ng.IPromise => { - let deferred = this.$q.defer(); - let onSuccess = (newAttribute:Models.AttributeModel):void => { - let existAttribute:Models.AttributeModel = _.find(this.componentInstancesAttributes[newAttribute.resourceInstanceUniqueId], {uniqueId: newAttribute.uniqueId}); - let index = this.componentInstancesAttributes[newAttribute.resourceInstanceUniqueId].indexOf(existAttribute); - this.componentInstancesAttributes[newAttribute.resourceInstanceUniqueId][index] = newAttribute; - deferred.resolve(newAttribute); - }; - let onFailed = (error:any):void => { - console.log('Failed to update attribute value'); - deferred.reject(error); - }; - this.componentService.updateInstanceAttribute(this.uniqueId, attribute).then(onSuccess, onFailed); - return deferred.promise; - }; - - public downloadInstanceArtifact = (artifactId:string):ng.IPromise => { - return this.componentService.downloadInstanceArtifact(this.uniqueId, this.selectedInstance.uniqueId, artifactId); - }; - - public deleteInstanceArtifact = (artifactId:string, artifactLabel:string):ng.IPromise => { - let deferred = this.$q.defer(); - let onSuccess = (artifactObj:Models.ArtifactModel):void => { - let newArtifact = new Models.ArtifactModel(artifactObj); - let artifacts = this.selectedInstance.deploymentArtifacts; - if (newArtifact.mandatory || newArtifact.serviceApi) {//????????? - artifacts[newArtifact.artifactLabel] = newArtifact; - } - else { - delete artifacts[artifactLabel]; - } - deferred.resolve(newArtifact); - }; - this.componentService.deleteInstanceArtifact(this.uniqueId,this.selectedInstance.uniqueId, artifactId, artifactLabel).then(onSuccess); - return deferred.promise; - }; - - public addOrUpdateInstanceArtifact = (artifact:ArtifactModel):ng.IPromise => { - let deferred = this.$q.defer(); - let onSuccess = (artifactObj:Models.ArtifactModel):void => { - this.selectedInstance.deploymentArtifacts[artifactObj.artifactLabel] = artifactObj; - deferred.resolve(artifactObj); - }; - let onError = (error:any):void => { - deferred.reject(error); - }; - if(artifact.uniqueId){ - this.componentService.updateInstanceArtifact(this.uniqueId, this.selectedInstance.uniqueId, artifact).then(onSuccess, onError); - }else{ - this.componentService.addInstanceArtifact(this.uniqueId, this.selectedInstance.uniqueId, artifact).then(onSuccess, onError); - } - return deferred.promise; - }; - - public uploadInstanceEnvFile = (artifact:Models.ArtifactModel):ng.IPromise => { - let deferred = this.$q.defer(); - let onSuccess = (artifactObj:Models.ArtifactModel):void => { - this.selectedInstance.deploymentArtifacts[artifactObj.artifactLabel] = artifactObj; - deferred.resolve(artifactObj); - }; - let onError = (error:any):void => { - deferred.reject(error); - }; - this.componentService.uploadInstanceEnvFile(this.uniqueId, this.selectedInstance.uniqueId, artifact).then(onSuccess, onError); - return deferred.promise; - }; - - //this function will update the instance version than the function call getComponent to update the current component and return the new instance version - public changeComponentInstanceVersion = (componentUid:string):ng.IPromise => { - let deferred = this.$q.defer(); - let onFailed = (error:any):void => { - deferred.reject(error); - }; - let onSuccess = (componentInstance:Models.ComponentsInstances.ComponentInstance):void => { - let onSuccess = (component:Models.Components.Component):void => { - component.setSelectedInstance(componentInstance); - deferred.resolve(component); - }; - this.getComponent().then(onSuccess, onFailed); - }; - this.componentService.changeResourceInstanceVersion(this.uniqueId, this.selectedInstance.uniqueId, componentUid).then(onSuccess, onFailed); - return deferred.promise; - }; - - public createComponentInstance = (componentInstance:Models.ComponentsInstances.ComponentInstance):ng.IPromise => { - let deferred = this.$q.defer(); - let onSuccess = (instance:Models.ComponentsInstances.ComponentInstance):void => { - let onSuccess = (component:Models.Components.Component):void => { - this.componentInstances = Utils.CommonUtils.initComponentInstances(component.componentInstances); - this.componentInstancesProperties = new Models.PropertiesGroup(component.componentInstancesProperties); - this.componentInstancesAttributes = new Models.AttributesGroup(component.componentInstancesAttributes); - deferred.resolve(instance); - }; - this.getComponent().then(onSuccess); - }; - let onFailed = (error:any):void => { - deferred.reject(error); - }; - this.componentService.createComponentInstance(this.uniqueId, componentInstance).then(onSuccess, onFailed); - return deferred.promise; - }; - - public updateComponentInstance = (componentInstance:Models.ComponentsInstances.ComponentInstance):ng.IPromise => { - let deferred = this.$q.defer(); - let onSuccess = (updatedInstance:Models.ComponentsInstances.ComponentInstance):void => { - let componentInstance:Models.ComponentsInstances.ComponentInstance = _.find(this.componentInstances, (instance:Models.ComponentsInstances.ComponentInstance) => { - return instance.uniqueId === updatedInstance.uniqueId; - }); - - let index = this.componentInstances.indexOf(componentInstance); - this.componentInstances[index] = componentInstance; - deferred.resolve(updatedInstance); - - }; - let onFailed = (error:any):void => { - deferred.reject(error); - }; - this.componentService.updateComponentInstance(this.uniqueId, componentInstance).then(onSuccess, onFailed); - return deferred.promise; - }; - - public updateMultipleComponentInstances = (instances: Array):ng.IPromise> => { - let deferred = this.$q.defer(); - let onSuccess = (updatedInstances:Array):void => { - deferred.resolve(updatedInstances); - }; - let onFailed = (error:any):void => { - deferred.reject(error); - }; - this.componentService.updateMultipleComponentInstances(this.uniqueId, instances).then(onSuccess, onFailed); - return deferred.promise; - }; - - public deleteComponentInstance = (componentInstanceId:string):ng.IPromise => { - let deferred = this.$q.defer(); - let onSuccess = ():void => { - let onSuccess = (component:Models.Components.Component):void => { - this.componentInstances = Utils.CommonUtils.initComponentInstances(component.componentInstances); - this.componentInstancesProperties = new Models.PropertiesGroup(component.componentInstancesProperties); - this.componentInstancesAttributes = new Models.AttributesGroup(component.componentInstancesAttributes); - this.initComponentInstanceRelations(component.componentInstancesRelations); - deferred.resolve(); - }; - this.getComponent().then(onSuccess); - }; - let onFailed = (error:any):void => { - deferred.reject(error); - }; - this.componentService.deleteComponentInstance(this.uniqueId, componentInstanceId).then(onSuccess, onFailed); - return deferred.promise; - }; - - - public createRelation = (relation:Models.RelationshipModel):ng.IPromise => { - let deferred = this.$q.defer(); - let onSuccess = (relation:Models.RelationshipModel):void => { - console.info('Link created successfully', relation); - if (!this.componentInstancesRelations) { - this.componentInstancesRelations = []; - } - this.componentInstancesRelations.push(new Models.RelationshipModel(relation)); - deferred.resolve(relation); - }; - let onFailed = (error:any):void => { - console.info('Failed to create relation', error); - deferred.reject(error); - }; - this.componentService.createRelation(this.uniqueId, relation).then(onSuccess, onFailed); - return deferred.promise; - }; - - public deleteRelation = (relation:Models.RelationshipModel):ng.IPromise => { - let deferred = this.$q.defer(); - let onSuccess = (responseRelation:Models.RelationshipModel):void => { - console.log("Link Deleted In Server"); - let relationToDelete = _.find(this.componentInstancesRelations, (item) => { - return item.fromNode === relation.fromNode && item.toNode === relation.toNode && _.some(item.relationships, (relationship)=> { - return angular.equals(relation.relationships[0], relationship); - }); - }); - let index = this.componentInstancesRelations.indexOf(relationToDelete); - if (relationToDelete != undefined && index > -1) { - if (relationToDelete.relationships.length == 1) { - this.componentInstancesRelations.splice(index, 1); - } else { - this.componentInstancesRelations[index].relationships = - _.reject(this.componentInstancesRelations[index].relationships, relation.relationships[0]); - } - } else { - console.error("Error while deleting relation - the return delete relation from server was not found in UI") - } - deferred.resolve(relation); - }; - let onFailed = (error:any):void => { - console.error("Failed To Delete Link"); - deferred.reject(error); - }; - this.componentService.deleteRelation(this.uniqueId, relation).then(onSuccess, onFailed); - return deferred.promise; - }; - - public updateRequirementsCapabilities = ():ng.IPromise => { - let deferred = this.$q.defer(); - let onSuccess = (response:any):void => { - this.capabilities = response.capabilities; - this.requirements = response.requirements; - deferred.resolve(response); - }; - let onFailed = (error:any):void => { - deferred.reject(error); - }; - this.componentService.getRequirementsCapabilities(this.uniqueId).then(onSuccess, onFailed); - return deferred.promise; - }; - - public getModuleForDisplay = (moduleId:string):ng.IPromise => { - - let deferred = this.$q.defer(); - let onSuccess = (response:Models.DisplayModule):void => { - deferred.resolve(response); - }; - let onFailed = (error:any):void => { - deferred.reject(error); - }; - this.componentService.getModuleForDisplay(this.uniqueId, moduleId).then(onSuccess, onFailed); - return deferred.promise; - }; - - // this function get all instances filtered by inputs and properties (optional) - if no search string insert - this function will - // get all the instances of the component (in service only VF instances) - public getComponentInstancesFilteredByInputsAndProperties = (searchText?:string):ng.IPromise> => { - - let deferred = this.$q.defer(); - let onSuccess = (response: Array):void => { - deferred.resolve(response); - }; - let onFailed = (error:any): void => { - deferred.reject(error); - }; - this.componentService.getComponentInstancesFilteredByInputsAndProperties(this.uniqueId, searchText).then(onSuccess, onFailed); - return deferred.promise; - }; - - - // get inputs for instance - Pagination function - public getComponentInputs = ():ng.IPromise> => { - - let deferred = this.$q.defer(); - let onSuccess = (inputsRes: Array):void => { - this.inputs = inputsRes; - deferred.resolve(inputsRes); - }; - let onFailed = (error:any): void => { - deferred.reject(error); - }; - this.componentService.getComponentInputs(this.uniqueId).then(onSuccess, onFailed); - return deferred.promise; - }; - - - // get inputs instance - Pagination function - public getComponentInstanceInputs = (componentInstanceId: string, originComponentUid: string):ng.IPromise> => { - - let deferred = this.$q.defer(); - let onSuccess = (response: Array):void => { - deferred.resolve(response); - }; - let onFailed = (error:any): void => { - deferred.reject(error); - }; - this.componentService.getComponentInstanceInputs(this.uniqueId, componentInstanceId, originComponentUid).then(onSuccess, onFailed); - return deferred.promise; - }; - - // get inputs inatnce - Pagination function - public getComponentInstanceInputProperties = (componentInstanceId: string, inputId: string):ng.IPromise> => { - - let deferred = this.$q.defer(); - let onSuccess = (response: Array):void => { - deferred.resolve(response); - }; - let onFailed = (error:any): void => { - deferred.reject(error); - }; - this.componentService.getComponentInstanceInputProperties(this.uniqueId, componentInstanceId, inputId).then(onSuccess, onFailed); - return deferred.promise; - }; - - public updateGroupMetadata = (module: Models.Module):ng.IPromise => { - - let deferred = this.$q.defer(); - - let onSuccess = (updatedModule:Models.Module):void => { - let groupIndex: number = _.indexOf(this.groups, _.find(this.groups, (module: Models.Module) => { - return module.uniqueId === updatedModule.uniqueId; - })); - - if(groupIndex !== -1) { - this.groups[groupIndex] = updatedModule; - } - deferred.resolve(updatedModule); - }; - let onFailed = (error:any):void => { - deferred.reject(error); - }; - - this.componentService.updateGroupMetadata(this.uniqueId, module).then(onSuccess, onFailed); - - return deferred.promise; - }; - - //------------------------------------------ Help Functions ----------------------------------------------------------------// - - public isProduct = ():boolean => { - return this instanceof Product; - }; - - public isService = ():boolean => { - return this instanceof Service; - }; - - public isResource = ():boolean => { - return this instanceof Resource; - }; - - public getComponentSubType = ():string => { - return this.componentType; - }; - - public isAlreadyCertified = ():boolean => { - return parseInt(this.version) >= 1; - }; - - public isComplex = ():boolean => { - return true; - }; - - //sort string version value from hash to sorted version (i.e 1.9 before 1.11) - private sortVersions = (v1:string, v2:string):number => { - let ver1 = v1.split('.'); - let ver2 = v2.split('.'); - let diff = parseInt(_.first(ver1)) - parseInt(_.first(ver2)); - if (!diff){ - return parseInt(_.last(ver1)) - parseInt(_.last(ver2)); - } - return diff; - }; - - public getAllVersionsAsSortedArray = ():Array => { - let res = []; - if(this.allVersions){ - let keys = Object.keys(this.allVersions).sort(this.sortVersions); - _.forEach(keys, (key)=> { - res.push({ - versionNumber: key, - versionId: this.allVersions[key] - }) - }); - } - return res; - }; - - public isLatestVersion = ():boolean => { - if (this.allVersions){ - return this.version === _.last(Object.keys(this.allVersions).sort(this.sortVersions)); - }else{ - return true; - } - - }; - - public getAdditionalInformation = ():Array => { - let additionalInformationObject:any = _.find(this.additionalInformation, (obj:any):boolean => { - return obj.parentUniqueId == this.uniqueId; - }); - if (additionalInformationObject) { - return additionalInformationObject.parameters; - } - return []; - }; - - public handleTags = ():void => { - let isContainTag = _.find(this.tags, (tag)=> { - return tag === this.name; - }); - if (!isContainTag) { - this.tags.push(this.name); - } - }; - - public getArtifactsByType = (artifactGroupType:string):Models.ArtifactGroupModel => { - switch (artifactGroupType) { - case Utils.Constants.ArtifactGroupType.DEPLOYMENT: - return this.deploymentArtifacts; - case Utils.Constants.ArtifactGroupType.INFORMATION: - return this.artifacts; - } - }; - - public getStatus =(sdcMenu:Models.IAppMenu):string =>{ - let status:string = sdcMenu.LifeCycleStatuses[this.lifecycleState].text; - if(this.lifecycleState == "CERTIFIED" && sdcMenu.DistributionStatuses[this.distributionStatus]) { - status = sdcMenu.DistributionStatuses[this.distributionStatus].text; - } - return status; - }; - - public toJSON = ():any => { - this.componentService = undefined; - this.filterTerm = undefined; - this.iconSprite = undefined; - this.mainCategory = undefined; - this.subCategory = undefined; - this.selectedInstance = undefined; - this.showMenu = undefined; - this.$q = undefined; - this.selectedCategory = undefined; - return this; - }; - } -} - diff --git a/catalog-ui/app/scripts/models/components/displayComponent.ts b/catalog-ui/app/scripts/models/components/displayComponent.ts deleted file mode 100644 index 578f392470..0000000000 --- a/catalog-ui/app/scripts/models/components/displayComponent.ts +++ /dev/null @@ -1,98 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/** - * Created by obarda on 7/5/2016. - */ -/// -module Sdc.Models { - 'use strict'; - - export class DisplayComponent { - - uniqueId:string; - displayName:string; - version:string; - mainCategory:string; - subCategory:string; - iconClass:string; - componentSubType:string; - searchFilterTerms:string; - certifiedIconClass:string; - icon:string; - isRequirmentAndCapabilitiesLoaded:boolean; - - constructor(public component:Models.Components.Component) { - this.icon = component.icon; - this.version = component.version; - this.uniqueId = component.uniqueId; - this.isRequirmentAndCapabilitiesLoaded = false; - - if (component.categories && component.categories[0] && component.categories[0].subcategories && component.categories[0].subcategories[0]) { - this.mainCategory = component.categories[0].name; - this.subCategory = component.categories[0].subcategories[0].name; - } else { - this.mainCategory = 'Generic'; - this.subCategory = 'Generic'; - } - if (component instanceof Models.Components.Resource) { - this.componentSubType = (component).resourceType; - } else { - this.componentSubType = component.componentType; - } - - this.initDisplayName(component.name); - this.searchFilterTerms = (this.displayName + ' ' + component.description + ' ' + component.tags.join(' ')).toLowerCase() + ' ' + component.version; - this.initIconSprite(component.icon); - this.certifiedIconClass = component.lifecycleState != 'CERTIFIED' ? 'non-certified' : ''; - if(component.icon === 'vl' || component.icon === 'cp') { - this.certifiedIconClass = this.certifiedIconClass + " " + 'smaller-icon'; - } - } - - public initDisplayName = (name:string):void => { - let newName = - _.last(_.last(_.last(_.last(_.last(_.last(_.last(_.last(name.split('tosca.nodes.')) - .split('network.')).split('relationships.')).split('org.openecomp.')).split('resource.nfv.')) - .split('nodes.module.')).split('cp.')).split('vl.')); - if (newName){ - this.displayName = newName; - } else { - this.displayName = name; - } - }; - - public initIconSprite = (icon:string ):void => { - switch (this.componentSubType) { - case Utils.Constants.ComponentType.SERVICE: - this.iconClass = "sprite-services-icons " + icon; - break; - case Utils.Constants.ComponentType.PRODUCT: - this.iconClass = "sprite-product-icons " + icon; - break; - default: - this.iconClass = "sprite-resource-icons " + icon; - } - } - - public getComponentSubType = ():string => { - return this.componentSubType; - }; - } -} diff --git a/catalog-ui/app/scripts/models/components/product.ts b/catalog-ui/app/scripts/models/components/product.ts deleted file mode 100644 index 6ba3404afb..0000000000 --- a/catalog-ui/app/scripts/models/components/product.ts +++ /dev/null @@ -1,109 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/** - * Created by obarda on 2/4/2016. - */ -/// -module Sdc.Models.Components { - 'use strict'; - - export class Product extends Component{ - - public contacts:Array; - public componentService: Services.Components.IProductService; - public fullName: string; - - constructor(componentService: Services.Components.IProductService, $q:ng.IQService, component?:Product) { - super(componentService, $q, component); - - if(component) { - this.fullName = component.fullName; - this.filterTerm = this.name + ' ' + this.description + ' ' + (this.tags ? this.tags.toString() : '') + ' ' + this.version; - this.contacts = component.contacts; - } - this.componentService = componentService; - this.iconSprite = "sprite-product-icons"; - } - - public deleteGroup = (uniqueId: string): void => { - _.forEach(this.categories, (category: Models.IMainCategory) => { - _.forEach(category.subcategories, (subcategory:Models.ISubCategory) => { - subcategory.groupings = _.reject (subcategory.groupings, (group:Models.IGroup) => { - return group.uniqueId === uniqueId; - }); - if(subcategory.groupings.length == 0){ // if there is no groups, delete the subcategory - category.subcategories = _.reject (category.subcategories, (subcategoryObj:Models.ISubCategory) => { - return subcategoryObj.uniqueId === subcategory.uniqueId; - }); - if(category.subcategories.length == 0){ // if there is no subcategory, delete the category - this.categories = _.reject (this.categories , (categoryObj:Models.IMainCategory) => { - return categoryObj.uniqueId === category.uniqueId; - }); - } - } - }); - }); - }; - - private getCategoryObjectById = (categoriesArray:Array, categoryUniqueId:string):Models.ICategoryBase => { - let categorySelected = _.find(categoriesArray, (category) => { - return category.uniqueId === categoryUniqueId; - }); - return categorySelected; - }; - - public addGroup = (category: Models.IMainCategory, subcategory: Models.ISubCategory, group: Models.IGroup): void => { - if(!this.categories){ - this.categories = new Array(); - } - let existingCategory:Models.IMainCategory = this.getCategoryObjectById(this.categories, category.uniqueId); - let newGroup = angular.copy(group); - newGroup.filterTerms = undefined; - newGroup.isDisabled = undefined; - if(!existingCategory){ - let newCategory: Models.IMainCategory = angular.copy(category); - newCategory.filteredGroup = undefined; - newCategory.subcategories = []; - let newSubcategory:Models.ISubCategory = angular.copy(subcategory); - newSubcategory.groupings = []; - newSubcategory.groupings.push(newGroup); - newCategory.subcategories.push(newSubcategory); - this.categories.push(newCategory); - } - else{ - let existingSubcategory:Models.ISubCategory = this.getCategoryObjectById(existingCategory.subcategories, subcategory.uniqueId); - if(!existingSubcategory){ - let newSubcategory:Models.ISubCategory = angular.copy(subcategory); - newSubcategory.groupings = []; - newSubcategory.groupings.push(newGroup); - existingCategory.subcategories.push(newSubcategory); - - } else { - let existingGroup:Models.IGroup = this.getCategoryObjectById(existingSubcategory.groupings, group.uniqueId); - if(!existingGroup){ - existingSubcategory.groupings.push(newGroup); - } - } - } - }; - - } -} - diff --git a/catalog-ui/app/scripts/models/components/resource.ts b/catalog-ui/app/scripts/models/components/resource.ts deleted file mode 100644 index 243ef3463c..0000000000 --- a/catalog-ui/app/scripts/models/components/resource.ts +++ /dev/null @@ -1,185 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/** - * Created by obarda on 2/3/2016. - */ -/// -module Sdc.Models.Components { - 'use strict'; - - export class Resource extends Component { - - public interfaces: any; - public derivedFrom:Array; - public componentService: Services.Components.IResourceService; - public resourceType:string; - public payloadData:string; - public payloadName:string; - public importedFile: Sdc.Directives.FileUploadModel; - - // Onboarding parameters - public csarUUID:string; - public csarVersion:string; - public csarPackageType:string; - public packageId:string; - - constructor(componentService: Services.Components.IResourceService, $q: ng.IQService, component?:Resource) { - super(componentService, $q, component); - if(component) { - - this.interfaces = component.interfaces; - this.derivedFrom = component.derivedFrom; - this.payloadData = component.payloadData ? component.payloadData : undefined; - this.payloadName = component.payloadName ? component.payloadName : undefined; - this.resourceType = component.resourceType; - this.csarUUID = component.csarUUID; - this.csarVersion = component.csarVersion; - this.filterTerm = this.name + ' ' + this.description + ' ' + (this.tags ? this.tags.toString() : '') + ' ' + this.version + ' ' + this.resourceType; - - if (component.categories && component.categories[0] && component.categories[0].subcategories && component.categories[0].subcategories[0]) { - component.mainCategory = component.categories[0].name; - component.subCategory = component.categories[0].subcategories[0].name; - this.selectedCategory = component.mainCategory + "_#_" + component.subCategory; - this.importedFile = component.importedFile; - } - } else { - this.resourceType = Utils.Constants.ResourceType.VF; - } - - this.componentService = componentService; - this.iconSprite = "sprite-resource-icons"; - } - - public getComponentSubType = ():string => { - return this.resourceType; - }; - - public isComplex = ():boolean => { - return this.resourceType === Utils.Constants.ResourceType.VF; - }; - - public isVl = ():boolean => { - return Utils.Constants.ResourceType.VL == this.resourceType; - }; - - public isCsarComponent = ():boolean => { - return !!this.csarUUID; - }; - - public createComponentOnServer = ():ng.IPromise => { - let deferred = this.$q.defer(); - let onSuccess = (component:Models.Components.Resource):void => { - this.payloadData = undefined; - this.payloadName = undefined; - deferred.resolve(component); - }; - let onError = (error:any):void => { - deferred.reject(error); - }; - - this.handleTags(); - if(this.importedFile){ - this.payloadData = this.importedFile.base64; - this.payloadName = this.importedFile.filename; - } - this.componentService.createComponent(this).then(onSuccess, onError); - return deferred.promise; - }; - - /* we need to change the name of the input to vfInstanceName + input name before sending to server in order to create the inputs on the service - * we also need to remove already selected inputs (the inputs that already create on server, and disabled in the view - but they are selected so they are still in the view model - */ - public createInputsFormInstances = (instanceInputsPropertiesMap:Models.InstanceInputsPropertiesMapData):ng.IPromise> => { - let deferred = this.$q.defer(); - /* - let instanceInputsPropertiesMapToCreate: Models.InstanceInputsPropertiesMapData = new Models.InstanceInputsPropertiesMapData(); - _.forEach(instanceInputsPropertiesMap, (properties:Array, instanceId:string) => { - - if(properties && properties.length > 0) { - let componentInstance:Models.ComponentsInstances.ComponentInstance = _.find(this.componentInstances, (instace:Models.ComponentsInstances.ComponentInstance) => { - return instace.uniqueId === instanceId; - }); - - instanceInputsPropertiesMapToCreate[instanceId] = new Array(); - _.forEach(properties, (property:Models.PropertyModel) => { - - if(!property.isAlreadySelected) { - let newInput = new Models.PropertyModel(property); - newInput.name = componentInstance.normalizedName + '_' + property.name; - instanceInputsPropertiesMapToCreate[instanceId].push(newInput); - } - }); - if( instanceInputsPropertiesMapToCreate[instanceId].length === 0) { - delete instanceInputsPropertiesMapToCreate[instanceId]; - } - } else { - delete instanceInputsPropertiesMapToCreate[instanceId]; - } - }); - - if(Object.keys(instanceInputsPropertiesMapToCreate).length > 0) { - let deferred = this.$q.defer(); - let onSuccess = (propertiesCreated: Array):void => { - this.inputs = propertiesCreated.concat(this.inputs); - deferred.resolve(propertiesCreated); - }; - let onFailed = (error:any): void => { - deferred.reject(error); - }; - this.componentService.createInputsFromInstancesInputsProperties(this.uniqueId, new Models.InstanceInputsPropertiesMap(instanceInputsPropertiesMapToCreate)).then(onSuccess, onFailed); - } - */ - return deferred.promise; - }; - - // we need to change the name of the input to vfInstanceName + input name before sending to server in order to create the inputs on the service - public getResourceInputInputs = (inputId:string):ng.IPromise> => { - let deferred = this.$q.defer(); - let onSuccess = (inputInputs: Array):void => { - let input: Models.InputModel = _.find(this.inputs, (input:Models.InputModel) => { - return input.uniqueId === inputId; - }); - input.inputs = inputInputs; - deferred.resolve(inputInputs); - }; - let onFailed = (error:any): void => { - deferred.reject(error); - }; - this.componentService.getComponentInputInputs(this.uniqueId, inputId).then(onSuccess, onFailed); - return deferred.promise; - }; - - public toJSON = ():any => { - this.componentService = undefined; - this.filterTerm = undefined; - this.iconSprite = undefined; - this.mainCategory = undefined; - this.subCategory = undefined; - this.selectedInstance = undefined; - this.showMenu = undefined; - this.$q = undefined; - this.selectedCategory = undefined; - this.importedFile = undefined; - return this; - }; - } -} - - diff --git a/catalog-ui/app/scripts/models/components/service.ts b/catalog-ui/app/scripts/models/components/service.ts deleted file mode 100644 index b1730aae94..0000000000 --- a/catalog-ui/app/scripts/models/components/service.ts +++ /dev/null @@ -1,147 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/** - * Created by obarda on 2/4/2016. - */ -/// -module Sdc.Models.Components { - 'use strict'; - - - export class Service extends Component { - - public serviceApiArtifacts:Models.ArtifactGroupModel; - public componentService:Services.Components.IServiceService; - - constructor(componentService:Services.Components.IServiceService, $q:ng.IQService, component?:Service) { - super(componentService, $q, component); - if (component) { - this.serviceApiArtifacts = new Models.ArtifactGroupModel(component.serviceApiArtifacts); - this.filterTerm = this.name + ' ' + this.description + ' ' + (this.tags ? this.tags.toString() : '') + ' ' + this.version; - if (component.categories && component.categories[0]) { - this.mainCategory = component.categories[0].name; - this.selectedCategory = this.mainCategory; - } - } - this.componentService = componentService; - this.iconSprite = "sprite-services-icons"; - } - - public getDistributionsList = ():ng.IPromise> => { - return this.componentService.getDistributionsList(this.uuid); - }; - - public getDistributionsComponent = (distributionId:string):ng.IPromise> => { - return this.componentService.getDistributionComponents(distributionId); - }; - - public markAsDeployed = (distributionId:string):ng.IPromise => { - return this.componentService.markAsDeployed(this.uniqueId, distributionId); - }; - - /* we need to change the name of the input to vfInstanceName + input name before sending to server in order to create the inputs on the service - * we also need to remove already selected inputs (the inputs that already create on server, and disabled in the view - but they are selected so they are still in the view model - */ - public createInputsFormInstances = (instancesInputsMap:Models.InstancesInputsMapData):ng.IPromise> => { - let deferred = this.$q.defer(); - - let instancesInputsMapToCreate: Models.InstancesInputsMapData = new Models.InstancesInputsMapData(); - _.forEach(instancesInputsMap, (inputs:Array, instanceId:string) => { - - if(inputs && inputs.length > 0) { - let componentInstance:Models.ComponentsInstances.ComponentInstance = _.find(this.componentInstances, (instace:Models.ComponentsInstances.ComponentInstance) => { - return instace.uniqueId === instanceId; - }); - instancesInputsMapToCreate[instanceId] = new Array(); - _.forEach(inputs, (input:Models.InputModel) => { - - if(!input.isAlreadySelected) { - let newInput = new Models.InputModel(input); - newInput.name = componentInstance.normalizedName + '_' + input.name; - instancesInputsMapToCreate[instanceId].push(newInput); - } - }); - if( instancesInputsMapToCreate[instanceId].length === 0) { - delete instancesInputsMapToCreate[instanceId]; - } - } else { - delete instancesInputsMapToCreate[instanceId]; - } - }); - - if(Object.keys(instancesInputsMapToCreate).length > 0) { - let deferred = this.$q.defer(); - let onSuccess = (inputsCreated: Array):void => { - this.inputs = inputsCreated.concat(this.inputs); - deferred.resolve(inputsCreated); - }; - let onFailed = (error:any): void => { - deferred.reject(error); - }; - this.componentService.createInputsFromInstancesInputs(this.uniqueId, new Models.InstancesInputsMap(instancesInputsMapToCreate)).then(onSuccess, onFailed); - } - return deferred.promise; - }; - - // we need to change the name of the input to vfInstanceName + input name before sending to server in order to create the inputs on the service - public getServiceInputInputs = (inputId:string):ng.IPromise> => { - let deferred = this.$q.defer(); - let onSuccess = (inputInputs: Array):void => { - let input: Models.InputModel = _.find(this.inputs, (input:Models.InputModel) => { - return input.uniqueId === inputId; - }); - input.inputs = inputInputs; - deferred.resolve(inputInputs); - }; - let onFailed = (error:any): void => { - deferred.reject(error); - }; - this.componentService.getComponentInputInputs(this.uniqueId, inputId).then(onSuccess, onFailed); - return deferred.promise; - }; - - public deleteServiceInput = (inputId:string):ng.IPromise => { - var deferred = this.$q.defer(); - - var onSuccess = (input: Models.InputModel):void => { - deferred.resolve(input) - }; - - var onFailed = (error:any) : void => { - deferred.reject(error); - }; - - this.componentService.deleteComponentInput(this.uniqueId, inputId).then(onSuccess, onFailed); - return deferred.promise; - }; - - public getArtifactsByType = (artifactGroupType:string):Models.ArtifactGroupModel => { - switch (artifactGroupType) { - case Utils.Constants.ArtifactGroupType.DEPLOYMENT: - return this.deploymentArtifacts; - case Utils.Constants.ArtifactGroupType.INFORMATION: - return this.artifacts; - case Utils.Constants.ArtifactGroupType.SERVICE_API: - return this.serviceApiArtifacts; - } - }; - } -} - diff --git a/catalog-ui/app/scripts/models/componentsInstances/componentInstance.ts b/catalog-ui/app/scripts/models/componentsInstances/componentInstance.ts deleted file mode 100644 index af2f338998..0000000000 --- a/catalog-ui/app/scripts/models/componentsInstances/componentInstance.ts +++ /dev/null @@ -1,126 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/** - * Created by obarda on 2/4/2016. - */ -/// -module Sdc.Models.ComponentsInstances { - 'use strict'; - - export class ComponentInstance{ - - public componentUid: string; - public componentName:string; - public posX: number; - public posY: number; - public componentVersion:string; - public description: string; - public icon: string; - public name: string; - public normalizedName:string; - public originType: string; - public deploymentArtifacts: Models.ArtifactGroupModel; - public propertyValueCounter: number; - public uniqueId: string; - public creationTime: number; - public modificationTime: number; - public capabilities: Models.CapabilitiesGroup; - public requirements: Models.RequirementsGroup; - - //custom properties - public certified: boolean; - public iconSprite:string; - public inputs: Array; - public properties: Array; - - constructor(componentInstance?: ComponentInstance) { - - if(componentInstance) { - this.componentUid = componentInstance.componentUid; - this.componentName = componentInstance.componentName; - - this.componentVersion = componentInstance.componentVersion; - this.description = componentInstance.description; - this.icon = componentInstance.icon; - this.name = componentInstance.name; - this.normalizedName = componentInstance.normalizedName; - this.originType = componentInstance.originType; - this.deploymentArtifacts = new Models.ArtifactGroupModel(componentInstance.deploymentArtifacts); - this.uniqueId = componentInstance.uniqueId; - this.creationTime = componentInstance.creationTime; - this.modificationTime = componentInstance.modificationTime; - this.propertyValueCounter = componentInstance.propertyValueCounter; - this.capabilities = new Models.CapabilitiesGroup(componentInstance.capabilities); - this.requirements = new Models.RequirementsGroup(componentInstance.requirements); - this.certified = componentInstance.certified; - this.updatePosition(componentInstance.posX, componentInstance.posY); - } - } - - public isUcpe = ():boolean =>{ - if(this.originType === 'VF' && this.capabilities && this.capabilities['tosca.capabilities.Container'] && this.name.toLowerCase().indexOf('ucpe') > -1){ - return true; - } - return false; - }; - - public isVl = ():boolean =>{ - return this.originType === 'VL'; - }; - - - public setInstanceRC = ():void=>{ - _.forEach(this.requirements, (requirementValue:Array, requirementKey)=> { - _.forEach(requirementValue, (requirement)=> { - if (!requirement.ownerName){ - requirement['ownerId'] = this.uniqueId; - requirement['ownerName'] = this.name; - } - }); - }); - _.forEach(this.capabilities, (capabilityValue:Array, capabilityKey)=> { - _.forEach(capabilityValue, (capability)=> { - if (!capability.ownerName){ - capability['ownerId'] = this.uniqueId; - capability['ownerName'] = this.name; - } - }); - }); - }; - - public updatePosition (posX:number, posY:number) { - this.posX = posX; - this.posY = posY; - } - - public toJSON = ():any => { - - var serverInstance = angular.copy(this); - serverInstance.certified = undefined; - serverInstance.iconSprite = undefined; - serverInstance.inputs = undefined; - serverInstance.properties = undefined; - serverInstance.requirements = undefined; - serverInstance.capabilities = undefined; - return serverInstance; - }; - } - -} diff --git a/catalog-ui/app/scripts/models/componentsInstances/productInstance.ts b/catalog-ui/app/scripts/models/componentsInstances/productInstance.ts deleted file mode 100644 index 71ef9bb7d3..0000000000 --- a/catalog-ui/app/scripts/models/componentsInstances/productInstance.ts +++ /dev/null @@ -1,34 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/** - * Created by obarda on 2/4/2016. - */ -/// -module Sdc.Models.ComponentsInstances { - 'use strict'; - - export class ProductInstance extends ComponentInstance{ - - constructor(componentInstance?: ProductInstance) { - super(componentInstance); - this.iconSprite = "sprite-product-icons"; - } - } -} diff --git a/catalog-ui/app/scripts/models/componentsInstances/resourceInstance.ts b/catalog-ui/app/scripts/models/componentsInstances/resourceInstance.ts deleted file mode 100644 index 67df05ded9..0000000000 --- a/catalog-ui/app/scripts/models/componentsInstances/resourceInstance.ts +++ /dev/null @@ -1,36 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/** - * Created by obarda on 2/4/2016. - */ -/// -module Sdc.Models.ComponentsInstances { - 'use strict'; - - export class ResourceInstance extends ComponentInstance{ - - constructor(componentInstance?: ResourceInstance) { - super(componentInstance); - - this.iconSprite = "sprite-resource-icons"; - } - } -} - diff --git a/catalog-ui/app/scripts/models/componentsInstances/serviceInstance.ts b/catalog-ui/app/scripts/models/componentsInstances/serviceInstance.ts deleted file mode 100644 index 0d78feafd3..0000000000 --- a/catalog-ui/app/scripts/models/componentsInstances/serviceInstance.ts +++ /dev/null @@ -1,35 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/** - * Created by obarda on 2/4/2016. - */ -/// -module Sdc.Models.ComponentsInstances { - 'use strict'; - - export class ServiceInstance extends ComponentInstance{ - - constructor(componentInstance?: ServiceInstance) { - super(componentInstance); - this.iconSprite = "sprite-services-icons"; - } - } -} - diff --git a/catalog-ui/app/scripts/models/csar-component.ts b/catalog-ui/app/scripts/models/csar-component.ts deleted file mode 100644 index da649c1efd..0000000000 --- a/catalog-ui/app/scripts/models/csar-component.ts +++ /dev/null @@ -1,36 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -module Sdc.Models { - 'use strict'; - - export interface ICsarComponent { - displayName:string; - description:string; - vspName:string; - version:string; - packageId:string; - category:string; - subCategory:string - vendorName:string; - packageType:string; - vendorRelease:string; - } - -} diff --git a/catalog-ui/app/scripts/models/data-type-properties.ts b/catalog-ui/app/scripts/models/data-type-properties.ts deleted file mode 100644 index 973978d9b2..0000000000 --- a/catalog-ui/app/scripts/models/data-type-properties.ts +++ /dev/null @@ -1,65 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/** - * Created by rcohen on 9/25/2016. - */ -/// -module Sdc.Models { - 'use strict'; - - export class DataTypePropertyModel { - - //server data - uniqueId:string; - type:string; - required:boolean; - definition:boolean; - description:string; - password:boolean; - name:string; - parentUniqueId:string; - defaultValue:string; - constraints:Array; - //custom - simpleType:string; - - constructor(dataTypeProperty:DataTypePropertyModel) { - if (dataTypeProperty) { - this.uniqueId = dataTypeProperty.uniqueId; - this.type = dataTypeProperty.type; - this.required = dataTypeProperty.required; - this.definition = dataTypeProperty.definition; - this.description = dataTypeProperty.description; - this.password = dataTypeProperty.password; - this.name = dataTypeProperty.name; - this.parentUniqueId = dataTypeProperty.parentUniqueId; - this.defaultValue = dataTypeProperty.defaultValue; - this.constraints = dataTypeProperty.constraints; - this.simpleType = dataTypeProperty.simpleType; - } - } - - public toJSON = ():any => { - this.simpleType = undefined; - return this; - }; - } - -} diff --git a/catalog-ui/app/scripts/models/data-types-map.ts b/catalog-ui/app/scripts/models/data-types-map.ts deleted file mode 100644 index d1bee48e41..0000000000 --- a/catalog-ui/app/scripts/models/data-types-map.ts +++ /dev/null @@ -1,39 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/** - * Created by rcohen on 9/25/2016. - */ -/// -module Sdc.Models { - 'use strict'; - - export class DataTypesMapData { - [dataTypeId:string]: Array; - } - - export class DataTypesMap { - dataTypesMap:DataTypesMapData; - - constructor(dataTypesMap:DataTypesMapData) { - this.dataTypesMap = dataTypesMap; - } - } - -} diff --git a/catalog-ui/app/scripts/models/data-types.ts b/catalog-ui/app/scripts/models/data-types.ts deleted file mode 100644 index d7de238f3b..0000000000 --- a/catalog-ui/app/scripts/models/data-types.ts +++ /dev/null @@ -1,55 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/** - * Created by rcohen on 9/25/2016. - */ -/// -module Sdc.Models { - 'use strict'; - - export class DataTypeModel { - - //server data - name:string; - uniqueId:string; - derivedFromName:string; - creationTime:string; - modificationTime:string; - properties:Array; - - constructor(dataType:DataTypeModel) { - if (dataType) { - this.uniqueId = dataType.uniqueId; - this.name = dataType.name; - this.derivedFromName = dataType.derivedFromName; - this.creationTime = dataType.creationTime; - this.modificationTime = dataType.modificationTime; - this.properties = dataType.properties; - } - } - - public toJSON = ():any => { - - return this; - }; - } - -} - diff --git a/catalog-ui/app/scripts/models/distribution.ts b/catalog-ui/app/scripts/models/distribution.ts deleted file mode 100644 index 1c3a9568dd..0000000000 --- a/catalog-ui/app/scripts/models/distribution.ts +++ /dev/null @@ -1,66 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Models { - 'use strict'; - - export class DistributionStatuses{ - public omfComponentID: string; - public url: string; - public timestamp:string; - public status: string; - - constructor() { - } - } - - - export class DistributionComponent{ - public omfComponentID: string; - public url: string; - public timestamp:string; - public status: string; - - constructor() { - } - } - - export class Distribution { - public distributionID:string; - public timestamp:string; - public userId:string; - public deployementStatus:string; - public distributionComponents:Array; - public statusCount:any; - //custom data - public dateFormat:string; - - constructor() { - } - public toJSON = ():any => { - this.dateFormat = undefined; - return this; - }; - - } - -} - - diff --git a/catalog-ui/app/scripts/models/file-download.ts b/catalog-ui/app/scripts/models/file-download.ts deleted file mode 100644 index 8a74ed57c1..0000000000 --- a/catalog-ui/app/scripts/models/file-download.ts +++ /dev/null @@ -1,28 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Models { - 'use strict'; - - export interface IFileDownload{ - artifactName: string; - base64Contents:string; - } -} diff --git a/catalog-ui/app/scripts/models/graph/d2-node.ts b/catalog-ui/app/scripts/models/graph/d2-node.ts deleted file mode 100644 index 16daa5470d..0000000000 --- a/catalog-ui/app/scripts/models/graph/d2-node.ts +++ /dev/null @@ -1,31 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// - -// module Sdc.Models { -// -// export interface D2Node extends go.Node { -// //TODO:should be typesafe! -// resource: any; -// key:string; -// data:any; -// canvasPosition: {x:number;y:number}; -// } -// } diff --git a/catalog-ui/app/scripts/models/graph/graph-links/common-base-link.ts b/catalog-ui/app/scripts/models/graph/graph-links/common-base-link.ts deleted file mode 100644 index 7d21c5d978..0000000000 --- a/catalog-ui/app/scripts/models/graph/graph-links/common-base-link.ts +++ /dev/null @@ -1,53 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/** - * Created by obarda on 6/29/2016. - */ -/// -module Sdc.Models { - - export class CommonLinkBase { - - img:string; - color:string; - classes: string; - - //this is cytoscapejs fields - public source: string; - public target: string; - public type: string; - public isSdcElement: boolean; - - constructor() { - this.isSdcElement = true; - this.type = 'sdc-link'; - - } - - public setImage = (imgUrl: string) => { - this.img = imgUrl; - }; - - public setColor = (color: string) => { - this.color = color; - }; - - } -} diff --git a/catalog-ui/app/scripts/models/graph/graph-links/common-ci-link-base.ts b/catalog-ui/app/scripts/models/graph/graph-links/common-ci-link-base.ts deleted file mode 100644 index 1e7416ac3e..0000000000 --- a/catalog-ui/app/scripts/models/graph/graph-links/common-ci-link-base.ts +++ /dev/null @@ -1,50 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/** - * Created by obarda on 6/29/2016. - */ -/// -module Sdc.Models { - - export interface ICommonCiLinkBase { - - } - - export class CommonCiLinkBase extends CommonLinkBase implements ICommonCiLinkBase { - - relation:RelationshipModel; - - - constructor(relation?:RelationshipModel, singleRelationship?:Models.Relationship) { - super(); - if (relation) { - if(singleRelationship){ - this.relation = new Models.RelationshipModel(relation, singleRelationship); - }else{ - this.relation = new Models.RelationshipModel(relation); - } - this.source = relation.fromNode; - this.target = relation.toNode; - } else { - this.relation = new RelationshipModel(); - } - } - } -} diff --git a/catalog-ui/app/scripts/models/graph/graph-links/composition-graph-links/composition-ci-link-base.ts b/catalog-ui/app/scripts/models/graph/graph-links/composition-graph-links/composition-ci-link-base.ts deleted file mode 100644 index 3587198615..0000000000 --- a/catalog-ui/app/scripts/models/graph/graph-links/composition-graph-links/composition-ci-link-base.ts +++ /dev/null @@ -1,46 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Models { - - export interface ICompositionCiLinkBase extends ICommonCiLinkBase{ - updateLinkDirection():void; - } - - export class CompositionCiLinkBase extends CommonCiLinkBase implements ICompositionCiLinkBase { - - type:string; - visible:boolean; - - constructor(relation?:RelationshipModel, singleRelationship?:Models.Relationship) { - super(relation, singleRelationship); - this.visible = true; - } - - public setRelation = (relation: Models.RelationshipModel) => { - this.relation = relation; - }; - - updateLinkDirection():void{ - this.source = this.relation.fromNode; - this.target = this.relation.toNode; - } - } -} diff --git a/catalog-ui/app/scripts/models/graph/graph-links/composition-graph-links/composition-ci-simple-link.ts b/catalog-ui/app/scripts/models/graph/graph-links/composition-graph-links/composition-ci-simple-link.ts deleted file mode 100644 index c2deddbfc3..0000000000 --- a/catalog-ui/app/scripts/models/graph/graph-links/composition-graph-links/composition-ci-simple-link.ts +++ /dev/null @@ -1,31 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Models { - - export class CompositionCiSimpleLink extends CompositionCiLinkBase { - - constructor(relation?:RelationshipModel, singleRelationship?:Models.Relationship) { - super(relation, singleRelationship); - this.color = Utils.Constants.GraphColors.BASE_LINK; - this.classes = 'simple-link'; - } - } -} diff --git a/catalog-ui/app/scripts/models/graph/graph-links/composition-graph-links/composition-ci-ucpe-host-link.ts b/catalog-ui/app/scripts/models/graph/graph-links/composition-graph-links/composition-ci-ucpe-host-link.ts deleted file mode 100644 index 7a30c20eee..0000000000 --- a/catalog-ui/app/scripts/models/graph/graph-links/composition-graph-links/composition-ci-ucpe-host-link.ts +++ /dev/null @@ -1,33 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/** - * Created by obarda on 4/20/2016. - */ -/// -module Sdc.Models { - export class LinkUcpeHost extends CompositionCiLinkBase { - - constructor(relation?:RelationshipModel, singleRelationship?:Models.Relationship) { - super(relation, singleRelationship); - this.visible = false; - this.classes = "ucpe-host-link"; - } - } -} diff --git a/catalog-ui/app/scripts/models/graph/graph-links/composition-graph-links/composition-ci-ucpe-link.ts b/catalog-ui/app/scripts/models/graph/graph-links/composition-graph-links/composition-ci-ucpe-link.ts deleted file mode 100644 index 5d035ccc2c..0000000000 --- a/catalog-ui/app/scripts/models/graph/graph-links/composition-graph-links/composition-ci-ucpe-link.ts +++ /dev/null @@ -1,37 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Models { - - export class CompositionCiUcpeLink extends CompositionCiLinkBase { - - isFromUcpe: boolean; - constructor(relation?:RelationshipModel, from?:boolean, singleRelation?:Relationship) { - super(relation, singleRelation); - this.isFromUcpe = from; - this.target = relation.toNode; - this.source = singleRelation.requirementOwnerId; - this.relation.relationships = [singleRelation]; - this.color = Utils.Constants.GraphColors.BASE_LINK; - } - - updateLinkDirection():void {} - } -} diff --git a/catalog-ui/app/scripts/models/graph/graph-links/composition-graph-links/composition-ci-vl-link.ts b/catalog-ui/app/scripts/models/graph/graph-links/composition-graph-links/composition-ci-vl-link.ts deleted file mode 100644 index a347db6cb5..0000000000 --- a/catalog-ui/app/scripts/models/graph/graph-links/composition-graph-links/composition-ci-vl-link.ts +++ /dev/null @@ -1,34 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Models { - - export class CompositionCiVLink extends CompositionCiLinkBase { - - constructor(relation?:RelationshipModel, singleRelationship?:Models.Relationship) { - super(relation, singleRelationship); - this.color = Utils.Constants.GraphColors.VL_LINK; - this.classes ='vl-link'; - } - - - - } -} diff --git a/catalog-ui/app/scripts/models/graph/graph-links/composition-graph-links/composition-ci-vl-ucpe-link.ts b/catalog-ui/app/scripts/models/graph/graph-links/composition-graph-links/composition-ci-vl-ucpe-link.ts deleted file mode 100644 index 2ebc796cb9..0000000000 --- a/catalog-ui/app/scripts/models/graph/graph-links/composition-graph-links/composition-ci-vl-ucpe-link.ts +++ /dev/null @@ -1,33 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/** - * Created by obarda on 4/20/2016. - */ -/// -module Sdc.Models { - - export class CompositionCiVlUcpeLink extends CompositionCiUcpeLink { - - constructor(relation?:RelationshipModel, from?:boolean, singleRelation?:Relationship) { - super(relation, from, singleRelation); - this.color = Utils.Constants.GraphColors.VL_LINK; - } - } -} diff --git a/catalog-ui/app/scripts/models/graph/graph-links/links-factory.ts b/catalog-ui/app/scripts/models/graph/graph-links/links-factory.ts deleted file mode 100644 index 8f6cd6d321..0000000000 --- a/catalog-ui/app/scripts/models/graph/graph-links/links-factory.ts +++ /dev/null @@ -1,80 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/** - * Created by obarda on 5/1/2016. - */ -/// -module Sdc.Utils { - 'use strict'; - - export class LinksFactory { - - constructor() { - } - - public createGraphLink = (cy: Cy.Instance, relation:Models.RelationshipModel, singleRelation:Models.Relationship):Models.CompositionCiLinkBase => { - - let newRelation:Models.CompositionCiLinkBase; - - let fromNode:Models.Graph.CompositionCiNodeBase = cy.getElementById(relation.fromNode).data(); - let toNode:Models.Graph.CompositionCiNodeBase = cy.getElementById(relation.toNode).data() ; - - if ((relation.fromNode && fromNode.isUcpePart) || (relation.toNode && toNode.isUcpePart )) { //Link from or to node inside ucpe - - if (singleRelation && singleRelation.relationship.type && singleRelation.relationship.type == 'tosca.relationships.HostedOn') { - newRelation = new Models.LinkUcpeHost(relation, singleRelation); - } else if (singleRelation.relationship.type && _.includes(singleRelation.relationship.type.toLowerCase(), 'link')) { - newRelation = new Models.CompositionCiVlUcpeLink(relation, fromNode.isUcpePart, singleRelation); - } else { - newRelation = new Models.CompositionCiUcpeLink(relation, fromNode.isUcpePart, singleRelation); - } - } else if (singleRelation.relationship.type && _.includes(singleRelation.relationship.type.toLowerCase(), 'link')) { - newRelation = new Models.CompositionCiVLink(relation, singleRelation); - } else { - newRelation = new Models.CompositionCiSimpleLink(relation, singleRelation); - } - - return newRelation; - }; - - public createUcpeHostLink = (relation:Models.RelationshipModel):Models.LinkUcpeHost => { - return new Models.LinkUcpeHost(relation); - }; - - public createVLLink = (relation:Models.RelationshipModel):Models.CompositionCiVLink => { - return new Models.CompositionCiVLink(relation); - } - - - public createModuleGraphLinks= (relation:Models.RelationshipModel, singleRelation:Models.Relationship):Models.ModuleCiLinkBase => { - - let newRelation:Models.ModuleCiLinkBase; - - if (_.includes(singleRelation.relationship.type.toLowerCase(), 'link')) { - newRelation = new Models.ModuleCiVlLink(relation, singleRelation); - } else { - newRelation = new Models.ModuleCiLinkBase(relation, singleRelation); - } - - return newRelation; - }; - - } -} diff --git a/catalog-ui/app/scripts/models/graph/graph-links/module-graph-links/module-ci-link-base.ts b/catalog-ui/app/scripts/models/graph/graph-links/module-graph-links/module-ci-link-base.ts deleted file mode 100644 index b85e7673f5..0000000000 --- a/catalog-ui/app/scripts/models/graph/graph-links/module-graph-links/module-ci-link-base.ts +++ /dev/null @@ -1,38 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/** - * Created by obarda on 6/29/2016. - */ -/// -module Sdc.Models { - - export interface IModuleCiLinkBase extends ICommonCiLinkBase{ - - } - - export class ModuleCiLinkBase extends CommonCiLinkBase implements IModuleCiLinkBase { - - constructor(relation?:RelationshipModel, singleRelationship?:Models.Relationship) { - super(relation, singleRelationship); - this.color = Utils.Constants.GraphColors.BASE_LINK; - } - - } -} diff --git a/catalog-ui/app/scripts/models/graph/graph-links/module-graph-links/module-ci-vl-link.ts b/catalog-ui/app/scripts/models/graph/graph-links/module-graph-links/module-ci-vl-link.ts deleted file mode 100644 index a421610792..0000000000 --- a/catalog-ui/app/scripts/models/graph/graph-links/module-graph-links/module-ci-vl-link.ts +++ /dev/null @@ -1,37 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/** - * Created by obarda on 6/29/2016. - */ -/// -module Sdc.Models { - - export interface IModuleCiVlLink extends ICommonCiLinkBase{ - - } - - export class ModuleCiVlLink extends CommonCiLinkBase implements IModuleCiVlLink { - - constructor(relation?:RelationshipModel, singleRelationship?:Models.Relationship) { - super(relation, singleRelationship); - this.color = Utils.Constants.GraphColors.VL_LINK; - } - } -} diff --git a/catalog-ui/app/scripts/models/graph/graphTooltip.ts b/catalog-ui/app/scripts/models/graph/graphTooltip.ts deleted file mode 100644 index 08a85e1126..0000000000 --- a/catalog-ui/app/scripts/models/graph/graphTooltip.ts +++ /dev/null @@ -1,38 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Models { - 'use strict'; - - export class GraphTooltip{ - position: Cy.Position; - isShow:boolean; - text:string; - - constructor(); - constructor(position: Cy.Position, isShow:boolean, text: string); - constructor(position?: Cy.Position, isShow?:boolean, text?: string) { - this.position = position; - this.isShow = isShow; - this.text = text; - } - } -} - diff --git a/catalog-ui/app/scripts/models/graph/link-menu.ts b/catalog-ui/app/scripts/models/graph/link-menu.ts deleted file mode 100644 index 606c392982..0000000000 --- a/catalog-ui/app/scripts/models/graph/link-menu.ts +++ /dev/null @@ -1,38 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Models { - 'use strict'; - - export class LinkMenu { - position:Sdc.Models.Graph.Point; - isShow:boolean; - link:Cy.CollectionFirstEdge; - - constructor(); - constructor(point:Sdc.Models.Graph.Point, isShow:boolean, link:Cy.CollectionFirstEdge); - constructor(point?:Sdc.Models.Graph.Point, isShow?:boolean, link?:Cy.CollectionFirstEdge) { - this.position = point ? point: new Sdc.Models.Graph.Point(); - this.isShow = isShow ? isShow : false; - this.link = link ? link : null; - } - } -} - diff --git a/catalog-ui/app/scripts/models/graph/match-relation.ts b/catalog-ui/app/scripts/models/graph/match-relation.ts deleted file mode 100644 index 8d864c675b..0000000000 --- a/catalog-ui/app/scripts/models/graph/match-relation.ts +++ /dev/null @@ -1,109 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Models { - 'use strict'; - - export class MatchBase { - requirement:Models.Requirement; - isFromTo:boolean; - fromNode:string; - toNode:string; - - constructor(requirement:Models.Requirement, isFromTo:boolean, fromNode:string, toNode:string) { - this.requirement = requirement; - this.isFromTo = isFromTo; - this.fromNode = fromNode; - this.toNode = toNode; - } - - public getDisplayText = (menuSide:string):string => {return '';}; - - public isOwner = (id:string):boolean => { return false; } - - } - - export class MatchReqToReq extends MatchBase { - - secondRequirement:Models.Requirement; - - constructor(requirement:Models.Requirement, secondRequirement:Models.Requirement, isFromTo:boolean, fromNode:string, toNode:string) { - super(requirement, isFromTo, fromNode, toNode); - this.secondRequirement = secondRequirement; - } - - public getDisplayText = (menuSide:string):string => { - if ('left' == menuSide) { - return this.requirement.getFullTitle(); - } - return this.secondRequirement.getFullTitle(); - }; - - public isOwner = (id:string):boolean => { - return this.secondRequirement.ownerId === id || this.requirement.ownerId === id; - } - } - - export class MatchReqToCapability extends MatchBase { - - capability:Models.Capability; - - constructor(requirement:Models.Requirement, capability:Models.Capability, isFromTo:boolean, fromNode:string, toNode:string) { - super(requirement, isFromTo, fromNode, toNode); - this.capability = capability; - } - - public matchToRelation = ():Models.Relationship => { - let relationship:Models.Relationship = new Models.Relationship(); - relationship.capability = this.capability.name; - relationship.capabilityOwnerId = this.capability.ownerId; - relationship.capabilityUid = this.capability.uniqueId; - relationship.relationship = new Models.RelationType(this.capability.type); - relationship.requirement = this.requirement.name; - relationship.requirementOwnerId = this.requirement.ownerId; - relationship.requirementUid = this.requirement.uniqueId; - return relationship; - }; - - - public getDisplayText = (menuSide:string):string => { - if (this.isFromTo && 'left' == menuSide || !this.isFromTo && 'right' == menuSide) { - return this.requirement.getFullTitle(); - } - return this.capability.getFullTitle(); - - }; - - public isOwner = (id:string):boolean => { - return this.capability.ownerId === id || this.requirement.ownerId === id; - }; - - - public matchToRelationModel = ():Models.RelationshipModel => { - let relationshipModel:Models.RelationshipModel = new Models.RelationshipModel(); - let relationship:Models.Relationship = this.matchToRelation(); - relationshipModel.setRelationshipModelParams(this.fromNode, this.toNode, [relationship]); - return relationshipModel; - }; - } - -} - - diff --git a/catalog-ui/app/scripts/models/graph/nodes/base-common-node.ts b/catalog-ui/app/scripts/models/graph/nodes/base-common-node.ts deleted file mode 100644 index e1957e61aa..0000000000 --- a/catalog-ui/app/scripts/models/graph/nodes/base-common-node.ts +++ /dev/null @@ -1,73 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/** - * Created by obarda on 6/29/2016. - */ -/// - -module Sdc.Models.Graph { - 'use strict'; - - export abstract class CommonNodeBase { - - public displayName:string; - public name:string; - public img:string; - public certified:boolean; - public isGroup:boolean; - public imagesPath: string; - public isDraggable: boolean; //we need to to manage manually the dragging on the graph inside groups (ucpe-cp is not draggable) - - //cytoscape fields - public id:string; - public type:string; //type is for the edge edition extension, by type we put the green plus icon in position - public isSdcElement:boolean; //this fields is in order to filter sdc elements from all extensions elements - public classes: string; - public parent: string; - public allowConnection: boolean; //this is for egeEdition extension in order to decide if connection to a node is available - - constructor() { - - this.imagesPath = Services.AngularJSBridge.getAngularConfig().imagesPath; - this.type = "basic-node"; - this.isSdcElement = true; - this.isDraggable = true; - this.allowConnection = true; - } - - public updateNameForDisplay =() => { - let context = document.createElement("canvas").getContext("2d"); - context.font = "13px Arial"; - - if (63 < context.measureText(this.name).width) { - let newLen = this.name.length - 3; - let newName = this.name.substring(0, newLen); - - while (60 < (context.measureText(newName).width)) { - newName = newName.substring(0, (--newLen)); - } - this.displayName = newName + '...'; - return; - } - - this.displayName = this.name; - }; - } -} diff --git a/catalog-ui/app/scripts/models/graph/nodes/common-ci-node-base.ts b/catalog-ui/app/scripts/models/graph/nodes/common-ci-node-base.ts deleted file mode 100644 index 1597650654..0000000000 --- a/catalog-ui/app/scripts/models/graph/nodes/common-ci-node-base.ts +++ /dev/null @@ -1,46 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Models.Graph { - - export abstract class CommonCINodeBase extends CommonNodeBase { - - public certified:boolean; - public template:string; - public componentInstance:Models.ComponentsInstances.ComponentInstance; - public group:string; - - constructor(instance:Models.ComponentsInstances.ComponentInstance) { - super(); - this.componentInstance = instance; - this.id = this.componentInstance.uniqueId; - this.name = this.componentInstance.name; - this.img = ''; - this.certified = this.isCertified(this.componentInstance.componentVersion); - this.displayName = instance.name; - } - - private isCertified(version:string):boolean { - return 0 === (parseFloat(version)) % 1; - } - - } -} - diff --git a/catalog-ui/app/scripts/models/graph/nodes/composition-graph-nodes/composition-ci-node-base.ts b/catalog-ui/app/scripts/models/graph/nodes/composition-graph-nodes/composition-ci-node-base.ts deleted file mode 100644 index 5f4c0df3c2..0000000000 --- a/catalog-ui/app/scripts/models/graph/nodes/composition-graph-nodes/composition-ci-node-base.ts +++ /dev/null @@ -1,72 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// - -module Sdc.Models.Graph { - - export interface ICompositionCiNodeBase { - - } - - - export abstract class CompositionCiNodeBase extends CommonCINodeBase implements ICompositionCiNodeBase { - - public textPosition: string; //need to move to cp UCPE - public isUcpe: boolean; - public isInsideGroup: boolean; - public isUcpePart: boolean; - - constructor(instance: Models.ComponentsInstances.ComponentInstance, - public imageCreator: Utils.ImageCreatorService) { - super(instance); - this.init(); - } - - private init() { - - this.displayName = this.getDisplayName(); - this.isUcpe = false; - this.isGroup = false; - this.isUcpePart = false; - this.isInsideGroup = false; - - } - - public initImage(node: Cy.Collection): string { - - this.imageCreator.getImageBase64(this.imagesPath + Utils.Constants.ImagesUrl.RESOURCE_ICONS + this.componentInstance.icon + '.png', - this.imagesPath + Utils.Constants.ImagesUrl.RESOURCE_ICONS + 'uncertified.png') - .then(imageBase64 => { - this.img = imageBase64; - node.style({'background-image': this.img}); - }); - - return this.img; - } - - protected getDisplayName(): string { - - let graphResourceName = Services.AngularJSBridge.getFilter('graphResourceName'); - let resourceName = Services.AngularJSBridge.getFilter('resourceName'); - return graphResourceName(resourceName(this.componentInstance.name)); - } - - } -} diff --git a/catalog-ui/app/scripts/models/graph/nodes/composition-graph-nodes/composition-ci-node-cp.ts b/catalog-ui/app/scripts/models/graph/nodes/composition-graph-nodes/composition-ci-node-cp.ts deleted file mode 100644 index 6286c8245d..0000000000 --- a/catalog-ui/app/scripts/models/graph/nodes/composition-graph-nodes/composition-ci-node-cp.ts +++ /dev/null @@ -1,48 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// - -module Sdc.Models.Graph { - - export class CompositionCiNodeCp extends CompositionCiNodeBase { - - constructor(instance:Models.ComponentsInstances.ComponentInstance, - imageCreator: Utils.ImageCreatorService) { - super(instance, imageCreator); - this.initCp(); - } - - private initCp():void { - let sdcConfig = Services.AngularJSBridge.getAngularConfig(); - this.img = sdcConfig.imagesPath + Utils.Constants.ImagesUrl.RESOURCE_ICONS + this.componentInstance.icon + '.png'; - this.type = "basic-small-node"; - //if the cp from type cpEndPointInstances create with another template - if(sdcConfig.cpEndPointInstances.indexOf(this.componentInstance.icon) > -1){ - this.classes = 'cp-end-point-node'; - }else { - this.classes = 'cp-node'; - } - if(!this.certified) { - this.classes = this.classes + ' not-certified'; - } - - } - } -} diff --git a/catalog-ui/app/scripts/models/graph/nodes/composition-graph-nodes/composition-ci-node-service.ts b/catalog-ui/app/scripts/models/graph/nodes/composition-graph-nodes/composition-ci-node-service.ts deleted file mode 100644 index 41bf0cef98..0000000000 --- a/catalog-ui/app/scripts/models/graph/nodes/composition-graph-nodes/composition-ci-node-service.ts +++ /dev/null @@ -1,42 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// - -module Sdc.Models.Graph { - - export class CompositionCiNodeService extends CompositionCiNodeBase { - - constructor(instance:Models.ComponentsInstances.ComponentInstance, - imageCreator: Utils.ImageCreatorService) { - super(instance, imageCreator); - this.initService(); - } - - private initService():void { - - this.img = this.imagesPath + Utils.Constants.ImagesUrl.SERVICE_ICONS + this.componentInstance.icon + '.png'; - this.classes = 'service-node' - if(!this.certified) { - this.classes = this.classes + ' not-certified'; - } - - } - } -} diff --git a/catalog-ui/app/scripts/models/graph/nodes/composition-graph-nodes/composition-ci-node-ucpe-cp.ts b/catalog-ui/app/scripts/models/graph/nodes/composition-graph-nodes/composition-ci-node-ucpe-cp.ts deleted file mode 100644 index 9123ff7224..0000000000 --- a/catalog-ui/app/scripts/models/graph/nodes/composition-graph-nodes/composition-ci-node-ucpe-cp.ts +++ /dev/null @@ -1,39 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// - -module Sdc.Models.Graph { - - export class CompositionCiNodeUcpeCp extends CompositionCiNodeCp { - - constructor(instance:Models.ComponentsInstances.ComponentInstance, - imageCreator: Utils.ImageCreatorService) { - super(instance, imageCreator); - this.isUcpePart = true; - this.classes = 'ucpe-cp'; // the css class for the node - this.parent = instance.uniqueId; - this.type = 'ucpe-cp-node'; //the type is for the handle (plus icon) extension - this.isDraggable = false; - } - - - - } -} diff --git a/catalog-ui/app/scripts/models/graph/nodes/composition-graph-nodes/composition-ci-node-ucpe.ts b/catalog-ui/app/scripts/models/graph/nodes/composition-graph-nodes/composition-ci-node-ucpe.ts deleted file mode 100644 index bc91e004f4..0000000000 --- a/catalog-ui/app/scripts/models/graph/nodes/composition-graph-nodes/composition-ci-node-ucpe.ts +++ /dev/null @@ -1,50 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// - -module Sdc.Models.Graph { - - export class NodeUcpe extends CompositionCiNodeBase { - constructor(instance:Models.ComponentsInstances.ComponentInstance, - imageCreator:Utils.ImageCreatorService) { - super(instance, imageCreator); - this.initUcpe(); - } - - private initUcpe():void { - this.isUcpe = true; - this.isGroup = true; - this.isUcpePart = true; - this.classes = 'ucpe-node'; - this.type = 'ucpe-node'; - this.allowConnection = false; - - if (!this.certified) { - this.classes = this.classes + ' not-certified-ucpe'; - } - } - - } -} - - - - - diff --git a/catalog-ui/app/scripts/models/graph/nodes/composition-graph-nodes/composition-ci-node-vf.ts b/catalog-ui/app/scripts/models/graph/nodes/composition-graph-nodes/composition-ci-node-vf.ts deleted file mode 100644 index d090960046..0000000000 --- a/catalog-ui/app/scripts/models/graph/nodes/composition-graph-nodes/composition-ci-node-vf.ts +++ /dev/null @@ -1,41 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// - -module Sdc.Models.Graph { - - export class CompositionCiNodeVf extends CompositionCiNodeBase { - - constructor(instance: Models.ComponentsInstances.ComponentInstance, - imageCreator: Utils.ImageCreatorService) { - super(instance, imageCreator); - this.initVf(); - } - - private initVf(): void { - this.img = this.imagesPath + Utils.Constants.ImagesUrl.RESOURCE_ICONS + this.componentInstance.icon + '.png'; - this.classes = 'vf-node'; - if(!this.certified) { - this.classes = this.classes + ' not-certified'; - } - } - - } -} diff --git a/catalog-ui/app/scripts/models/graph/nodes/composition-graph-nodes/composition-ci-node-vfc.ts b/catalog-ui/app/scripts/models/graph/nodes/composition-graph-nodes/composition-ci-node-vfc.ts deleted file mode 100644 index 04f45c87fb..0000000000 --- a/catalog-ui/app/scripts/models/graph/nodes/composition-graph-nodes/composition-ci-node-vfc.ts +++ /dev/null @@ -1,33 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// - -module Sdc.Models.Graph { - export class CompositionCiNodeVfc extends CompositionCiNodeBase { - constructor(instance:Models.ComponentsInstances.ComponentInstance, imageCreator: Utils.ImageCreatorService) { - super(instance, imageCreator); - this.initVfc(); - } - - private initVfc():void { - this.img = this.imagesPath + Utils.Constants.ImagesUrl.RESOURCE_ICONS+ this.componentInstance.icon + '.png'; - } - } -} diff --git a/catalog-ui/app/scripts/models/graph/nodes/composition-graph-nodes/composition-ci-node-vl.ts b/catalog-ui/app/scripts/models/graph/nodes/composition-graph-nodes/composition-ci-node-vl.ts deleted file mode 100644 index ed9a0d9d87..0000000000 --- a/catalog-ui/app/scripts/models/graph/nodes/composition-graph-nodes/composition-ci-node-vl.ts +++ /dev/null @@ -1,54 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// - -module Sdc.Models.Graph { - - export class CompositionCiNodeVl extends CompositionCiNodeBase { - private toolTipText:string; - - constructor(instance:Models.ComponentsInstances.ComponentInstance, imageCreator: Utils.ImageCreatorService) { - super(instance, imageCreator); - this.initVl(); - - } - - private initVl():void { - this.type = "basic-small-node"; - this.toolTipText = 'Point to point'; - let key:string = _.find(Object.keys(this.componentInstance.capabilities), (key)=> { - return _.includes(key.toLowerCase(), 'linkable'); - }); - let linkable = this.componentInstance.capabilities[key]; - if (linkable) { - if ('UNBOUNDED' == linkable[0].maxOccurrences) { - this.toolTipText = 'Multi point'; - } - } - this.img = this.imagesPath + Utils.Constants.ImagesUrl.RESOURCE_ICONS + 'vl.png'; - - this.classes = 'vl-node'; - if(!this.certified) { - this.classes = this.classes + ' not-certified'; - } - } - - } -} diff --git a/catalog-ui/app/scripts/models/graph/nodes/modules-graph-nodes/module-node-base.ts b/catalog-ui/app/scripts/models/graph/nodes/modules-graph-nodes/module-node-base.ts deleted file mode 100644 index cd6ab3ba85..0000000000 --- a/catalog-ui/app/scripts/models/graph/nodes/modules-graph-nodes/module-node-base.ts +++ /dev/null @@ -1,52 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/** - * Created by obarda on 6/29/2016. - */ -/// - -module Sdc.Models.Graph { - 'use strict'; - - export interface IModuleNodeBase { - } - - export class ModuleNodeBase extends CommonNodeBase implements IModuleNodeBase { - - module:Module; - - constructor(module:Module) { - super(); - this.module = module; - this.init(); - } - - private init() { - - this.id = this.module.uniqueId; - this.name = this.module.name; - this.displayName = this.module.name; - this.isGroup = true; - this.img = Utils.Constants.IMAGE_PATH + Utils.Constants.ImagesUrl.MODULE_ICON; - this.classes = "module-node"; - - } - } -} diff --git a/catalog-ui/app/scripts/models/graph/nodes/nodes-factory.ts b/catalog-ui/app/scripts/models/graph/nodes/nodes-factory.ts deleted file mode 100644 index b19b1a7261..0000000000 --- a/catalog-ui/app/scripts/models/graph/nodes/nodes-factory.ts +++ /dev/null @@ -1,63 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Utils { - 'use strict'; - - export class NodesFactory { - - constructor( - private imageCreator:ImageCreatorService) { - } - - public createNode = (instance:Models.ComponentsInstances.ComponentInstance):Models.Graph.CompositionCiNodeBase => { - - if (instance.isUcpe()) { - return new Models.Graph.NodeUcpe(instance, this.imageCreator); - } - if (instance.originType === Utils.Constants.ComponentType.SERVICE) { - return new Models.Graph.CompositionCiNodeService(instance, this.imageCreator); - } - if (instance.originType === Utils.Constants.ResourceType.CP) { - return new Models.Graph.CompositionCiNodeCp(instance, this.imageCreator); - } - if (instance.originType === Utils.Constants.ResourceType.VL) { - return new Models.Graph.CompositionCiNodeVl(instance, this.imageCreator); - } - - return new Models.Graph.CompositionCiNodeVf(instance, this.imageCreator); - }; - - public createModuleNode = (module:Models.Module):Models.Graph.ModuleNodeBase => { - - return new Models.Graph.ModuleNodeBase(module); - }; - - public createUcpeCpNode = (instance:Models.ComponentsInstances.ComponentInstance):Models.Graph.CompositionCiNodeCp => { - - - return new Models.Graph.CompositionCiNodeUcpeCp(instance, this.imageCreator); - } - } - - NodesFactory.$inject = [ - 'ImageCreatorService' - ]; -} diff --git a/catalog-ui/app/scripts/models/graph/point.ts b/catalog-ui/app/scripts/models/graph/point.ts deleted file mode 100644 index 0efd4c6040..0000000000 --- a/catalog-ui/app/scripts/models/graph/point.ts +++ /dev/null @@ -1,26 +0,0 @@ -/** - * Created by obarda on 11/7/2016. - */ -/// - -module Sdc.Models.Graph { - - - export class Point { - /** - * The two-argument constructor produces the Point(x, y). - * @param {number} x - * @param {number} y - */ - constructor(x?:number, y?:number) { - this.x = x || 0; - this.y = y || 0; - } - - /**Gets or sets the x value of the Point.*/ - x:number; - - /**Gets or sets the y value of the Point.*/ - y:number; - } -} \ No newline at end of file diff --git a/catalog-ui/app/scripts/models/graph/relationMenuObjects.ts b/catalog-ui/app/scripts/models/graph/relationMenuObjects.ts deleted file mode 100644 index 266ed76cfa..0000000000 --- a/catalog-ui/app/scripts/models/graph/relationMenuObjects.ts +++ /dev/null @@ -1,138 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Models { - 'use strict'; - - - export class RelationMenuDirectiveObj { - - fromNode:Models.Graph.CompositionCiNodeBase; - toNode:Models.Graph.CompositionCiNodeBase; - // modelLinks:Array; - mp2mpVL:Models.Components.Component; - p2pVL:Models.Components.Component; - menuPosition: Cy.Position; - rightSideLink:GraphLinkMenuSide; - leftSideLink:GraphLinkMenuSide; - selectionText:string; - vlType:string; - - constructor(fromNode:Models.Graph.CompositionCiNodeBase, toNode:Models.Graph.CompositionCiNodeBase, mp2mpVL:Models.Components.Component, p2pVL:Models.Components.Component, menuPosition:Cy.Position, possibleRelations:Array) { - this.fromNode = fromNode; - this.toNode = toNode; - // this.modelLinks = modelLinks; - this.mp2mpVL = mp2mpVL; - this.p2pVL = p2pVL; - this.menuPosition = menuPosition; - this.leftSideLink = new GraphLinkMenuSide(this.fromNode.componentInstance); - this.rightSideLink = new GraphLinkMenuSide(this.toNode.componentInstance); - this.selectionText = ''; - this.vlType = null; - - possibleRelations.forEach((match:any) => { - - let reqObjKey: string = match.requirement.ownerName + match.requirement.uniqueId; - let capObjKey: string = match.secondRequirement ? match.secondRequirement.ownerName + match.secondRequirement.uniqueId - : match.capability.ownerName + match.capability.uniqueId; - - if (match.fromNode === this.leftSideLink.componentInstance.uniqueId) { - //init the left side requirements Array - if (!this.leftSideLink.requirements[reqObjKey]) { - this.leftSideLink.requirements[reqObjKey] = []; - } - //push the match to fromNode object (from node is always the requirement) - this.leftSideLink.requirements[reqObjKey].push(match); - - if (match instanceof Models.MatchReqToReq) { - //init the right side requirements Array - if (!this.rightSideLink.requirements[capObjKey]) { - this.rightSideLink.requirements[capObjKey] = []; - } - this.rightSideLink.requirements[capObjKey].push(match); - } else { - //init the right side capabilities Array - if (!this.rightSideLink.capabilities[capObjKey]) { - this.rightSideLink.capabilities[capObjKey] = []; - } - //add to array - this.rightSideLink.capabilities[capObjKey].push(match); - } - - } else { - if (!this.rightSideLink.requirements[reqObjKey]) { - this.rightSideLink.requirements[reqObjKey] = []; - } - this.rightSideLink.requirements[reqObjKey].push(match); - - if (!this.leftSideLink.capabilities[capObjKey]) { - this.leftSideLink.capabilities[capObjKey] = []; - } - this.leftSideLink.capabilities[capObjKey].push(match); - } - }); - - } - } - - - export class GraphLinkMenuSide { - public componentInstance:Models.ComponentsInstances.ComponentInstance; - public selectedMatch:Array; //match array returned by function in utils - public requirements:any; //array of matches returned by function in utils - public capabilities:any; //array of matches returned by function in utils - - constructor(componentInstance:Models.ComponentsInstances.ComponentInstance) { - this.componentInstance = componentInstance; - this.capabilities = {}; - this.requirements = {}; - } - - public selectMatchArr(matchArr:Array):void { - if (this.selectedMatch === matchArr) { - this.selectedMatch = undefined; - } else { - this.selectedMatch = matchArr; - } - } - - - //TODO move to match object - public getPreviewText(showReq:boolean):string { - if (!this.selectedMatch) { - return ''; - } - - let match:any = this.selectedMatch[0]; - if (showReq) { - return match.requirement.ownerName + ': ' + match.requirement.name + - ': [' + match.requirement.minOccurrences + ', ' + match.requirement.maxOccurrences + ']'; - } else if (match.secondRequirement) { - return match.secondRequirement.ownerName + ': ' + match.secondRequirement.name + - ': [' + match.secondRequirement.minOccurrences + ', ' + match.secondRequirement.maxOccurrences + ']'; - } - else { - return match.capability.ownerName + ': ' + match.capability.name + - ': [' + match.capability.minOccurrences + ', ' + match.capability.maxOccurrences + ']'; - } - } - } - -} diff --git a/catalog-ui/app/scripts/models/graph/relationship.ts b/catalog-ui/app/scripts/models/graph/relationship.ts deleted file mode 100644 index e0dfbbd6d1..0000000000 --- a/catalog-ui/app/scripts/models/graph/relationship.ts +++ /dev/null @@ -1,107 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Models { - 'use strict'; - - export class RelationshipModel { - fromNode:string; - toNode:string; - relationships:Array; - - constructor(relationshipModel?:RelationshipModel, singleRelationship?:Relationship) { - if(relationshipModel){ - this.fromNode = relationshipModel.fromNode; - this.toNode = relationshipModel.toNode; - this.relationships = []; - if (relationshipModel.relationships && !singleRelationship) { - _.forEach(relationshipModel.relationships, (relation:Models.Relationship):void => { - this.relationships.push(new Models.Relationship(relation)); - }); - }else if(singleRelationship){ - this.relationships.push(singleRelationship); - } - } - } - - public setRelationshipModelParams (fromNode: string, toNode:string, relationships:Array) { - this.fromNode = fromNode; - this.toNode = toNode; - this.relationships = relationships; - } - } - - export class RelationType { - type:string; - - constructor(type?:string) { - if(type){ - this.type = type; - } - } - } - - export class Relationship { - capability:string; - capabilityOwnerId:string; - capabilityUid:string; - relationship:RelationType; - requirement:string; - requirementOwnerId:string; - requirementUid:string; - - constructor(relationship?:Models.Relationship) { - if(relationship) { - this.capability = relationship.capability; - this.capabilityOwnerId = relationship.capabilityOwnerId; - this.capabilityUid = relationship.capabilityUid; - this.relationship = new RelationType(relationship.relationship.type); - this.requirement = relationship.requirement; - this.requirementOwnerId = relationship.requirementOwnerId; - this.requirementUid = relationship.requirementUid; - } else { - this.relationship = new RelationType(); - } - - } - - //public setRelationProperties = (capability:string, capabilityOwnerId:string, capabilityUid:string, relationship:RelationType, requirement:string, requirementOwnerId:string, requirementUid:string )=>{ - // this.capability = capability; - // this.capabilityOwnerId = capabilityOwnerId; - // this.capabilityUid = capabilityUid; - // this.relationship = relationship; - // this.requirement =requirement; - // this.requirementOwnerId = requirementOwnerId; - // this.requirementUid = requirementUid; - //} - - - public setRelationProperties = (capability:Models.Capability, requirement:Models.Requirement)=>{ - this.capability = capability.name; - this.capabilityOwnerId = capability.ownerId; - this.capabilityUid = capability.uniqueId; - this.relationship = new Models.RelationType(capability.type); - this.requirement = requirement.name; - this.requirementOwnerId = requirement.ownerId; - this.requirementUid = requirement.uniqueId; - }; - - } -} diff --git a/catalog-ui/app/scripts/models/inputs.ts b/catalog-ui/app/scripts/models/inputs.ts deleted file mode 100644 index 68e26e246e..0000000000 --- a/catalog-ui/app/scripts/models/inputs.ts +++ /dev/null @@ -1,74 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/** - * Created by obarda on 8/24/2016. - */ -/// -module Sdc.Models { - 'use strict'; - - export class InputModel { - - //server data - uniqueId:string; - name:string; - type:string; - password:boolean; - required:boolean; - definition:boolean; - parentUniqueId:string; - description:string; - componentInstanceName:string; - componentInstanceId:string; - - //costom properties - isNew: boolean; - properties:Array; - inputs:Array; - isAlreadySelected: boolean; - filterTerm: string; - - constructor(input:InputModel) { - if (input) { - this.uniqueId = input.uniqueId; - this.name = input.name; - this.type = input.type; - this.description = input.description; - this.password = input.password; - this.required = input.required; - this.definition = input.definition; - this.parentUniqueId = input.parentUniqueId; - this.description = input.description; - this.componentInstanceName = input.componentInstanceName; - this.componentInstanceId = input.componentInstanceId; - this.filterTerm = this.name + ' ' + this.description + ' ' + this.type + ' ' + this.componentInstanceName; - } - } - - public toJSON = ():any => { - this.isNew = undefined; - this.properties = undefined; - this.inputs = undefined; - this.isAlreadySelected = undefined; - this.filterTerm = undefined; - return this; - }; - } -} diff --git a/catalog-ui/app/scripts/models/instance-inputs-properties-map.ts b/catalog-ui/app/scripts/models/instance-inputs-properties-map.ts deleted file mode 100644 index 2c67dfd718..0000000000 --- a/catalog-ui/app/scripts/models/instance-inputs-properties-map.ts +++ /dev/null @@ -1,39 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/** - * Created by obarda on 9/12/2016. - */ -/// -module Sdc.Models { - 'use strict'; - - export class InstanceInputsPropertiesMapData { - [instanceId:string]: Array; - } - - export class InstanceInputsPropertiesMap { - componentInstanceInputsProperties:InstanceInputsPropertiesMapData; - - constructor(componentInstanceInputsPropertiesMapData:InstanceInputsPropertiesMapData) { - this.componentInstanceInputsProperties = componentInstanceInputsPropertiesMapData; - } - } - -} diff --git a/catalog-ui/app/scripts/models/instances-inputs-map.ts b/catalog-ui/app/scripts/models/instances-inputs-map.ts deleted file mode 100644 index 1643a125ae..0000000000 --- a/catalog-ui/app/scripts/models/instances-inputs-map.ts +++ /dev/null @@ -1,39 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/** - * Created by obarda on 9/12/2016. - */ -/// -module Sdc.Models { - 'use strict'; - - export class InstancesInputsMapData { - [instanceId:string]: Array; - } - - export class InstancesInputsMap { - componentInstanceInputsMap:InstancesInputsMapData; - - constructor(componentInstanceInputsMapData:InstancesInputsMapData) { - this.componentInstanceInputsMap = componentInstanceInputsMapData; - } - } - -} diff --git a/catalog-ui/app/scripts/models/left-panel.ts b/catalog-ui/app/scripts/models/left-panel.ts deleted file mode 100644 index a47170c7c2..0000000000 --- a/catalog-ui/app/scripts/models/left-panel.ts +++ /dev/null @@ -1,33 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Models { - 'use strict'; - - export class LeftPanelModel { - numberOfElements:number; - sortedCategories:any; - - constructor() { - this.numberOfElements = 0; - this.sortedCategories = {}; - } - } -} diff --git a/catalog-ui/app/scripts/models/member.ts b/catalog-ui/app/scripts/models/member.ts deleted file mode 100644 index 21dc907333..0000000000 --- a/catalog-ui/app/scripts/models/member.ts +++ /dev/null @@ -1,39 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/** - * Created by obarda on 8/2/2016. - */ - -/// -module Sdc.Models { - 'use strict'; - - export class Members { - - [index: string]: string; - - constructor(members?:Members) { - _.forEach(members, (memberId:string, index) => { - this[index] = memberId; - }); - } - } -} - diff --git a/catalog-ui/app/scripts/models/modules/base-module.ts b/catalog-ui/app/scripts/models/modules/base-module.ts deleted file mode 100644 index 2df52cc907..0000000000 --- a/catalog-ui/app/scripts/models/modules/base-module.ts +++ /dev/null @@ -1,108 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ - -/** - * Created by obarda on 2/4/2016. - */ -/// -module Sdc.Models { - 'use strict'; - - export class Module { - - public name:string; - public groupUUID:string; - public invariantUUID:string; - public propertyValueCounter:number; - public type:string; - public typeUid:string; - public uniqueId:string; - public version: string; - public artifacts: Array | Array; - public artifactsUuid: Array; - public properties: Array; - public members: Array; - - - constructor(module?: Module) { - if(module) { - this.name = module.name; - this.groupUUID = module.groupUUID; - this.invariantUUID = module.invariantUUID; - this.propertyValueCounter = module.propertyValueCounter; - this.type = module.type; - this.typeUid = module.typeUid; - this.uniqueId = module.uniqueId; - this.version = module.version; - this.artifacts = module.artifacts; - this.artifactsUuid = module.artifactsUuid; - this.properties = Utils.CommonUtils.initProperties(module.properties); - this.members = module.members; - - this.name = this.name.replace(/:/g, '..'); - - } - } - } - - export class DisplayModule extends Module { - - isBase: string; - artifacts:Array; - - //custom properties - public vfInstanceName: string; - public heatName: string; - public moduleName: string; - - constructor(displayModule?:Models.DisplayModule) { - super(displayModule); - - this.isBase = displayModule.isBase; - this.initArtifactsForDisplay(displayModule.artifacts); - - //splitting module name for display and edit - let splitName:Array = this.name.split('..'); - this.vfInstanceName = splitName[0]; - this.heatName = splitName[1]; - this.moduleName = splitName[2]; - } - - private initArtifactsForDisplay = (artifacts:Array):void => { - this.artifacts = new Array(); - _.forEach(artifacts, (artifact:Models.ArtifactModel) => { - this.artifacts.push(new Models.ArtifactModel(artifact)); - }); - }; - - public updateName = ():void => { - this.name = this.vfInstanceName + '..' + this.heatName + '..' + this.moduleName; - }; - - public toJSON = ():any => { - this.vfInstanceName = undefined; - this.heatName = undefined; - this.moduleName = undefined; - this.isBase = undefined; - this.artifacts = undefined; - return this; - }; - } -} diff --git a/catalog-ui/app/scripts/models/properties.ts b/catalog-ui/app/scripts/models/properties.ts deleted file mode 100644 index 679ca03b44..0000000000 --- a/catalog-ui/app/scripts/models/properties.ts +++ /dev/null @@ -1,176 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Models { - 'use strict'; - - export class PropertiesGroup { - constructor(propertiesObj?:Models.PropertiesGroup){ - _.forEach(propertiesObj, (properties:Array, instance) => { - this[instance] = []; - _.forEach(properties, (property:Models.PropertyModel):void => { - property.resourceInstanceUniqueId = instance; - property.readonly = true; - this[instance].push(new Models.PropertyModel(property)); - }); - }); - } - } - - export interface IPropertyModel { - - //server data - uniqueId: string; - name: string; - constraints: Array; - defaultValue: string; - description: string; - password: boolean; - required: boolean; - type: string; - source: string; - parentUniqueId: string; - schema: Models.SchemaPropertyGroupModel; - - //instance properties - value:string; - valueUniqueUid:string; - path:Array; - rules:Array; - - //custom properties - resourceInstanceUniqueId: string; - readonly: boolean; - simpleType: string; - } - - export class PropertyModel implements IPropertyModel{ - - //server data - uniqueId:string; - name:string; - constraints:Array; - defaultValue:string; - description:string; - password:boolean; - required:boolean; - type:string; - source:string; - parentUniqueId:string; - schema: Models.SchemaPropertyGroupModel; - - //instance properties - value:string; - valueUniqueUid:string; - path:Array; - rules:Array; - - //custom properties - resourceInstanceUniqueId:string; - readonly:boolean; - simpleType: string; - filterTerm: string; - isAlreadySelected: boolean; - - constructor(property?:Models.PropertyModel) { - if (property) { - this.uniqueId = property.uniqueId; - this.name = property.name; - this.constraints = property.constraints; - this.defaultValue = property.defaultValue; - this.description = property.description; - this.password = property.password; - this.required = property.required; - this.type = property.type; - this.source = property.source; - this.parentUniqueId = property.parentUniqueId; - this.schema = property.schema; - this.value = property.value?property.value:property.defaultValue; - this.valueUniqueUid = property.valueUniqueUid; - this.path = property.path; - this.rules = property.rules; - this.resourceInstanceUniqueId = property.resourceInstanceUniqueId; - this.readonly = property.readonly; - this.simpleType = property.simpleType; - - - } - - if(!this.schema || !this.schema.property) { - this.schema = new Models.SchemaPropertyGroupModel(new Models.SchemaProperty()); - } else { - //forcing creating new object, so editing different one than the object in the table - this.schema = new Models.SchemaPropertyGroupModel(new Models.SchemaProperty(this.schema.property)); - } - if(property) { - this.filterTerm = this.name + " " + (this.description||"") +" " + this.type; - if(this.schema.property && this.schema.property.type) { - this.filterTerm += " " +this.schema.property.type; - } - } - } - - public convertToServerObject:Function = ():string => { - let serverObject = {}; - let mapData = { - "type": this.type, - "required": this.required || false, - "defaultValue": this.defaultValue != "" && this.defaultValue != "[]" && this.defaultValue != "{}" ? this.defaultValue :null, - "description": this.description, - "constraints": this.constraints, - "isPassword": this.password || false, - "schema": this.schema, - "name": this.name - }; - serverObject[this.name] = mapData; - - return JSON.stringify(serverObject); - }; - - - // public convertValueToView () { - // //unwrapping value {} or [] if type is complex - // if (this.defaultValue && (this.type === 'map' || this.type === 'list') && - // ['[','{'].indexOf(this.defaultValue.charAt(0)) > -1 && - // [']','}'].indexOf(this.defaultValue.slice(-1)) > -1) { - // this.defaultValue = this.defaultValue.slice(1, -1); - // } - // - // //also for value - for the modal in canvas - // if (this.value && (this.type === 'map' || this.type === 'list') && - // ['[','{'].indexOf(this.value.charAt(0)) > -1 && - // [']','}'].indexOf(this.value.slice(-1)) > -1) { - // this.value = this.value.slice(1, -1); - // } - // } - - public toJSON = ():any => { - if(!this.resourceInstanceUniqueId){ - this.value = undefined; - } - this.readonly = undefined; - this.resourceInstanceUniqueId = undefined; - this.simpleType = undefined; - this.value = this.value === "{}" || this.value === "[]" ? undefined: this.value; - this.defaultValue = this.defaultValue === "{}" || this.defaultValue === "[]" ? undefined: this.defaultValue; - return this; - }; - } -} diff --git a/catalog-ui/app/scripts/models/requirement.ts b/catalog-ui/app/scripts/models/requirement.ts deleted file mode 100644 index 091bfc139e..0000000000 --- a/catalog-ui/app/scripts/models/requirement.ts +++ /dev/null @@ -1,91 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ - /* - * Created by obarda on 4/20/2016. - */ -/// -module Sdc.Models { - 'use strict'; - //this is an object contains keys, when each key has matching array. - // for example: key = tosca.capabilities.network. and the match array is array of requirements objects - export class RequirementsGroup{ - constructor(requirementGroupObj?:Models.RequirementsGroup){ - _.forEach(requirementGroupObj, (requirementsArrayObj:Array, instance) => { - this[instance] = []; - _.forEach(requirementsArrayObj, (requirement:Models.Requirement):void => { - this[instance].push(new Models.Requirement(requirement)); - }); - }); - } - } - - export class Requirement { - - //server data - capability:string; - name: string; - ownerId: string; - ownerName:string; - node:string; - uniqueId:string; - relationship: string; - minOccurrences: string; - maxOccurrences: string; - //custom - filterTerm:string; - constructor(requirement?:Requirement) { - - if(requirement) { - this.capability = requirement.capability; - this.name = requirement.name; - this.ownerId = requirement.ownerId; - this.ownerName = requirement.ownerName; - this.node = requirement.node; - this.uniqueId = requirement.uniqueId; - this.relationship = requirement.relationship; - this.minOccurrences = requirement.minOccurrences; - this.maxOccurrences = requirement.maxOccurrences; - this.initFilterTerm(); - - } - } - - public getFullTitle():string { - return this.ownerName + ': ' + this.name + - ': [' + this.minOccurrences + ', ' + this.maxOccurrences + ']'; - } - - public toJSON = ():any => { - this.filterTerm = undefined; - return this; - }; - - private initFilterTerm = ():void =>{ - this.filterTerm = (this.name + " ") + - (this.ownerName + " " ) + - (this.capability ? (this.capability.substring("tosca.capabilities.".length) + " " ) : "") + - (this.node? (this.node.substring("tosca.nodes.".length) +" ") : "") + - (this.relationship? (this.relationship.substring("tosca.relationships.".length) +" ") : "") + - this.minOccurrences+","+this.maxOccurrences; - } - } -} - - diff --git a/catalog-ui/app/scripts/models/schema-attribute.ts b/catalog-ui/app/scripts/models/schema-attribute.ts deleted file mode 100644 index 725a7589e0..0000000000 --- a/catalog-ui/app/scripts/models/schema-attribute.ts +++ /dev/null @@ -1,37 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Models { - 'use strict'; - - export class SchemaAttributeGroupModel{ - property: SchemaAttribute; - - constructor(schemaAttribute?:Models.SchemaAttribute) { - this.property = schemaAttribute; - } - } - - export class SchemaAttribute extends SchemaProperty{ - - } -} - - diff --git a/catalog-ui/app/scripts/models/tab.ts b/catalog-ui/app/scripts/models/tab.ts deleted file mode 100644 index cc42d4f348..0000000000 --- a/catalog-ui/app/scripts/models/tab.ts +++ /dev/null @@ -1,47 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/** - * Created by obarda on 7/31/2016. - */ -/// -module Sdc.Models { - 'use strict'; - - export class Tab { - - public templateUrl:string; - public controller:string; - public data:any; - public icon:string; - public name:string; - - constructor(templateUrl:string, controller:string, name:string, data?:any, icon?:string) { - - this.templateUrl = templateUrl; - this.controller = controller; - this.icon = icon; - this.data = data; - this.name = name; - } - } -} - - - diff --git a/catalog-ui/app/scripts/models/tooltip-data.ts b/catalog-ui/app/scripts/models/tooltip-data.ts deleted file mode 100644 index 027904b245..0000000000 --- a/catalog-ui/app/scripts/models/tooltip-data.ts +++ /dev/null @@ -1,28 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Models { - 'use strict'; - - export class TooltipData{ - } -} - - diff --git a/catalog-ui/app/scripts/models/user.ts b/catalog-ui/app/scripts/models/user.ts deleted file mode 100644 index 836066f5f9..0000000000 --- a/catalog-ui/app/scripts/models/user.ts +++ /dev/null @@ -1,117 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Models { - 'use strict'; - - export enum UserRole { - ADMIN, - DESIGNER, - TESTER, - GOVERNOR, - OPS, - PRODUCT_MANAGER, - PRODUCT_STRATEGIST - } - - export interface IUserManager { - isInEditMode: boolean; - filterTerm: string; - } - - export interface IUserProperties extends IUserManager{ - firstName: string; - lastName: string; - userId: string; - email: string; - role: string; - tempRole:string; - lastLoginTime: string; - status:string; - } - - export interface IUser { - resource: Services.IUserResource; - getRole(): UserRole; - getRoleToView(): string; - getName(): string; - getFirstName(): string; - getLastName(): string; - } - - export class User implements IUser { - - constructor(public resource:Services.IUserResource) { - } - - public getLastName = () => { - return this.resource.lastName; - } - - public getFirstName = () => { - return this.resource.firstName; - } - - public getName = () => { - return this.resource.firstName + ' ' + this.resource.lastName; - } - - public getLastLogin = () => { - if (!this.resource.lastLoginTime || this.resource.lastLoginTime === "0") { - return ""; - } else { - return this.resource.lastLoginTime; - } - } - - public getRole = ():UserRole => { - let role:UserRole; - switch (UserRole[this.resource.role.toUpperCase()]) { - case UserRole.ADMIN: - role = UserRole.ADMIN; - break; - case UserRole.DESIGNER: - role = UserRole.DESIGNER; - break; - case UserRole.TESTER: - role = UserRole.TESTER; - break; - case UserRole.GOVERNOR: - role = UserRole.GOVERNOR; - break; - case UserRole.OPS: - role = UserRole.OPS; - break; - case UserRole.PRODUCT_MANAGER: - role = UserRole.PRODUCT_MANAGER; - break; - case UserRole.PRODUCT_STRATEGIST: - role = UserRole.PRODUCT_STRATEGIST; - break; - } - return role; - } - - public getRoleToView = ():string => { - let role:string = this.resource.role.toLowerCase().replace('governor','governance_Rep'); - return role.charAt(0).toUpperCase() + role.slice(1).replace('_',' '); - } - } -} diff --git a/catalog-ui/app/scripts/models/validate.ts b/catalog-ui/app/scripts/models/validate.ts deleted file mode 100644 index 21540d38b6..0000000000 --- a/catalog-ui/app/scripts/models/validate.ts +++ /dev/null @@ -1,29 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Models { - 'use strict'; - - export interface IValidate{ - isValid : boolean; - } -} - - diff --git a/catalog-ui/app/scripts/modules/directive-module.ts b/catalog-ui/app/scripts/modules/directive-module.ts deleted file mode 100644 index 70a15378fa..0000000000 --- a/catalog-ui/app/scripts/modules/directive-module.ts +++ /dev/null @@ -1,106 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc { - let moduleName:string = 'Sdc.Directives'; - let directiveModule:ng.IModule = angular.module(moduleName, []); - - directiveModule.directive('clickedOutside', Directives.ClickedOutsideDirective.factory); - directiveModule.directive('loader', Directives.LoaderDirective.factory); - directiveModule.directive('userHeaderDetails', Directives.UserHeaderDetailsDirective.factory); - directiveModule.directive('ellipsis', Directives.EllipsisDirective.factory); - directiveModule.directive('downloadArtifact', Directives.DownloadArtifactDirective.factory); - directiveModule.directive('fileType', Directives.FileTypeDirective.factory); - directiveModule.directive('invalidCharacters', Directives.InvalidCharactersDirective.factory); - directiveModule.directive('tutorial', Directives.TutorialDirective.factory); - directiveModule.directive('perfectScrollbar', Directives.PerfectScrollerDirective.factory); - directiveModule.directive('expandCollapse', Directives.ExpandCollapseDirective.factory); - directiveModule.directive('sdcModal', Directives.SdcModalDirective.factory); - directiveModule.directive('sdcMessages', Directives.SdcMessagesDirective.factory); - directiveModule.directive('sdcMessage', Directives.SdcMessageDirective.factory); - directiveModule.directive('sdcErrorTooltip', Directives.SdcErrorTooltipDirective.factory); - directiveModule.directive('fileOpener', Directives.FileOpenerDirective.factory); - directiveModule.directive('fileUpload', Directives.FileUploadDirective.factory); - directiveModule.directive('structureTree', Directives.StructureTreeDirective.factory); - directiveModule.directive('sdcWizardStep', Directives.SdcWizardStepDirective.factory); - directiveModule.directive('sdcPageSelector', Directives.PageSelectorDirective.factory); - directiveModule.directive('sdcSmartTooltip', Directives.SmartTooltipDirective.factory); - directiveModule.directive('printGraphScreen', Directives.PrintGraphScreenDirective.factory); - directiveModule.directive('sdcTag', Directives.TagDirective.factory); - directiveModule.directive('sdcTags', Directives.SdcTagsDirective.factory); - directiveModule.directive('sdcKeyboardEvents', Directives.SdcKeyboardEventsDirective.factory); - directiveModule.directive('expandCollapseMenuBox', Directives.ExpandCollapseMenuBoxDirective.factory); - directiveModule.directive('sdcPageScroll', Directives.SdcPageScrollDirective.factory); - directiveModule.directive('punchOut', Directives.PunchOutDirective.factory); - directiveModule.directive('relationMenu', Directives.RelationMenuDirective.factory); - directiveModule.directive('customValidation', Directives.CustomValidationDirective.factory); - directiveModule.directive('ecompHeader', Directives.EcompHeaderDirective.factory); - directiveModule.directive('editNamePopover', Directives.EditNamePopoverDirective.factory); - directiveModule.directive('fieldsStructure', Directives.DataTypeFieldsStructureDirective.factory); - directiveModule.directive('typeMap', Directives.TypeMapDirective.factory); - directiveModule.directive('typeList', Directives.TypeListDirective.factory); - directiveModule.directive('infoTooltip', Directives.InfoTooltipDirective.factory); - - directiveModule.directive('sdcTabs', Directives.SdcTabsDirective.factory); - directiveModule.directive('sdcSingleTab', Directives.SdcSingleTabDirective.factory); - directiveModule.directive('innerSdcSingleTab', Directives.InnerSdcSingleTabDirective.factory); - - //composition - directiveModule.directive('palette', Directives.Palette.factory); - directiveModule.directive('compositionGraph', Directives.CompositionGraph.factory); - - //deployment - directiveModule.directive('deploymentGraph', Directives.DeploymentGraph.factory); - - // Layouts - directiveModule.directive('topNav', Directives.TopNavDirective.factory); - directiveModule.directive('topProgress', Directives.TopProgressDirective.factory); - - // Elements - directiveModule.directive('sdcCheckbox', Directives.CheckboxElementDirective.factory); - directiveModule.directive('sdcRadioButton', Directives.RadiobuttonElementDirective.factory); - - //Graph Utils - Common - directiveModule.service('CommonGraphUtils', Sdc.Graph.Utils.CommonGraphUtils); - - //Composition Graph Utils - directiveModule.service('CompositionGraphNodesUtils', Sdc.Graph.Utils.CompositionGraphNodesUtils); - directiveModule.service('CompositionGraphGeneralUtils', Sdc.Graph.Utils.CompositionGraphGeneralUtils); - directiveModule.service('CompositionGraphLinkUtils', Sdc.Graph.Utils.CompositionGraphLinkUtils); - directiveModule.service('MatchCapabilitiesRequirementsUtils', Sdc.Graph.Utils.MatchCapabilitiesRequirementsUtils); - - //Composition Graph Utils - directiveModule.service('DeploymentGraphGeneralUtils', Sdc.Graph.Utils.DeploymentGraphGeneralUtils); - - //Util service for graph - directiveModule.service('NodesFactory', Sdc.Utils.NodesFactory); - directiveModule.service('LinksFactory', Sdc.Utils.LinksFactory); - directiveModule.service('ImageCreatorService', Sdc.Utils.ImageCreatorService); - - //directiveModule.service('GraphUtilsServerUpdateQueue', Sdc.Directives.GraphUtilsServerUpdateQueue); - - //controller for go.js - directiveModule.controller('SdcWizardStepDirectiveController', Directives.SdcWizardStepDirectiveController); - - // Events - directiveModule.directive('onLastRepeat', Directives.OnLastRepeatDirective.factory); -} - - diff --git a/catalog-ui/app/scripts/modules/filters.ts b/catalog-ui/app/scripts/modules/filters.ts deleted file mode 100644 index 1bf31507fd..0000000000 --- a/catalog-ui/app/scripts/modules/filters.ts +++ /dev/null @@ -1,44 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc { - - let moduleName: string = 'Sdc.Filters'; - let filterModule: ng.IModule = angular.module(moduleName, []); - filterModule.filter("resourceName", Sdc.Filters.ResourceNameFilter); - filterModule.filter("graphResourceName", Sdc.Filters.GraphResourceNameFilter); - filterModule.filter("categoryNameFilter", Sdc.Filters.CategoryNameFilter); - filterModule.filter("entityFilter", Sdc.Filters.EntityFilter); - filterModule.filter("truncate", Sdc.Filters.TruncateFilter); - filterModule.filter("catalogStatusFilter", Sdc.Filters.CatalogStatusFilter); - filterModule.filter("categoryTypeFilter", Sdc.Filters.CategoryTypeFilter); - filterModule.filter("stringToDateFilter", Sdc.Filters.StringToDateFilter); - filterModule.filter("categoryIcon", Sdc.Filters.CategoryIconFilter); - filterModule.filter("capitalizeFilter", Sdc.Filters.CapitalizeFilter); - filterModule.filter("underscoreLessFilter", Sdc.Filters.UnderscoreLessFilter); - filterModule.filter("resourceTypeName", Sdc.Filters.ResourceTypeFilter); - filterModule.filter("relationName", Sdc.Filters.RelationNameFilter); - filterModule.filter("trim", Sdc.Filters.TrimFilter); - filterModule.filter("clearWhiteSpaces", Sdc.Filters.ClearWhiteSpacesFilter); - filterModule.filter('testsId', Sdc.Filters.TestsIdFilter); - - //Added by Ikram - filterModule.filter("productCategoryNameFilter", Sdc.Filters.ProductCategoryNameFilter); -} diff --git a/catalog-ui/app/scripts/modules/service-module.ts b/catalog-ui/app/scripts/modules/service-module.ts deleted file mode 100644 index c77e8b0ad4..0000000000 --- a/catalog-ui/app/scripts/modules/service-module.ts +++ /dev/null @@ -1,64 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc { - let moduleName:string = 'Sdc.Services'; - let serviceModule:ng.IModule = angular.module(moduleName, []); - - serviceModule.service('Sdc.Services.ConfigurationUiService', Services.ConfigurationUiService); - serviceModule.service('Sdc.Services.CookieService', Services.CookieService); - serviceModule.service('Sdc.Services.EntityService', Services.EntityService); - serviceModule.service('Sdc.Services.AvailableIconsService', Services.AvailableIconsService); - serviceModule.service('Sdc.Services.RelationIconsService', Services.RelationIconsService); - serviceModule.service('Sdc.Services.UrlToBase64Service', Services.UrlToBase64Service); - serviceModule.service('Sdc.Services.CacheService', Services.CacheService); - serviceModule.service('Sdc.Services.HeaderInterceptor', Services.HeaderInterceptor); - serviceModule.service('Sdc.Services.HttpErrorInterceptor', Services.HttpErrorInterceptor); - serviceModule.service('Sdc.Services.SharingService', Services.SharingService); - serviceModule.service('Sdc.Services.SdcVersionService', Services.SdcVersionService); - serviceModule.service('Sdc.Services.ActivityLogService', Services.ActivityLogService); - serviceModule.service('Sdc.Services.OnboardingService', Services.OnboardingService); - serviceModule.service('Sdc.Services.EcompHeaderService', Services.EcompHeaderService); - serviceModule.service('Sdc.Services.DataTypesService', Services.DataTypesService); - - //Components Services - serviceModule.service('Sdc.Services.Components.ComponentService', Services.Components.ComponentService); - serviceModule.service('Sdc.Services.Components.ServiceService', Services.Components.ServiceService); - serviceModule.service('Sdc.Services.Components.ResourceService', Services.Components.ResourceService); - serviceModule.service('Sdc.Services.Components.ProductService', Services.Components.ProductService); - serviceModule.service('LeftPaletteLoaderService', Services.Components.LeftPaletteLoaderService); - serviceModule.service('EventListenerService', Services.EventListenerService); - serviceModule.service('Sdc.Services.ProgressService', Services.ProgressService); - - //Utils - serviceModule.service('ArtifactsUtils', Sdc.Utils.ArtifactsUtils); - serviceModule.service('FileUtils', Sdc.Utils.FileUtils); - serviceModule.service('ValidationUtils', Sdc.Utils.ValidationUtils); - - - - - serviceModule.service('AngularJSBridge', Sdc.Services.AngularJSBridge); - serviceModule.service('LoaderService', Sdc.Services.LoaderService); - - serviceModule.factory('Sdc.Services.UserResourceService', Services.UserResourceService.getResource); - serviceModule.factory('Sdc.Services.CategoryResourceService', Services.CategoryResourceService.getResource); - -} diff --git a/catalog-ui/app/scripts/modules/utils.ts b/catalog-ui/app/scripts/modules/utils.ts deleted file mode 100644 index fd5eaf2a4b..0000000000 --- a/catalog-ui/app/scripts/modules/utils.ts +++ /dev/null @@ -1,39 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/** - * Created by obarda on 2/11/2016. - */ -/// -module Sdc { - let moduleName:string = 'Sdc.Utils'; - let serviceModule:ng.IModule = angular.module(moduleName, []); - - - - //Utils - serviceModule.service('ComponentFactory', Sdc.Utils.ComponentFactory); - serviceModule.service('ComponentInstanceFactory', Sdc.Utils.ComponentInstanceFactory); - serviceModule.service('ChangeLifecycleStateHandler', Sdc.Utils.ChangeLifecycleStateHandler); - serviceModule.service('ModalsHandler', Sdc.Utils.ModalsHandler); - serviceModule.service('MenuHandler', Sdc.Utils.MenuHandler); - - - -} diff --git a/catalog-ui/app/scripts/modules/view-model-module.ts b/catalog-ui/app/scripts/modules/view-model-module.ts deleted file mode 100644 index 19cf5b45f4..0000000000 --- a/catalog-ui/app/scripts/modules/view-model-module.ts +++ /dev/null @@ -1,96 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc { - let moduleName: string = 'Sdc.ViewModels'; - let viewModelModule: ng.IModule = angular.module(moduleName, []); - - viewModelModule - .controller(moduleName+'.DashboardViewModel', ViewModels.DashboardViewModel) - .controller(moduleName+'.CompositionViewModel', ViewModels.CompositionViewModel) - - .controller(moduleName+'.DetailsViewModel', ViewModels.DetailsViewModel) - .controller(moduleName+'.ResourceArtifactsViewModel', ViewModels.ResourceArtifactsViewModel) - .controller(moduleName+'.PropertyFormViewModel', ViewModels.PropertyFormViewModel) - .controller(moduleName+'.ArtifactResourceFormViewModel', ViewModels.ArtifactResourceFormViewModel) - .controller(moduleName+'.AttributeFormViewModel', ViewModels.AttributeFormViewModel) - .controller(moduleName+'.ResourcePropertiesViewModel', ViewModels.ResourcePropertiesViewModel) - .controller(moduleName+'.CatalogViewModel', ViewModels.CatalogViewModel) - .controller(moduleName+'.OnboardVendorViewModel', ViewModels.OnboardVendorViewModel) - .controller(moduleName+'.DistributionViewModel', ViewModels.DistributionViewModel) - .controller(moduleName+'.SupportViewModel', ViewModels.SupportViewModel) - .controller(moduleName+'.ConfirmationModalViewModel', ViewModels.ConfirmationModalViewModel) - .controller(moduleName+'.EmailModalViewModel', ViewModels.EmailModalViewModel) - .controller(moduleName+'.MessageModalViewModel', ViewModels.MessageModalViewModel) - .controller(moduleName+'.ServerMessageModalViewModel', ViewModels.ServerMessageModalViewModel) - .controller(moduleName+'.ClientMessageModalViewModel', ViewModels.ClientMessageModalViewModel) - .controller(moduleName+'.ErrorViewModel', ViewModels.ErrorViewModel) - .controller(moduleName+'.ComponentViewerViewModel', ViewModels.ComponentViewerViewModel) - .controller(moduleName+'.RelationsViewModel', ViewModels.RelationsViewModel) - .controller(moduleName+'.ResourceInstanceNameViewModel', ViewModels.ResourceInstanceNameViewModel) - .controller(moduleName+'.WelcomeViewModel', ViewModels.WelcomeViewModel) - .controller(moduleName+'.PreLoadingViewModel', ViewModels.PreLoadingViewModel) - .controller(moduleName+'.TutorialEndViewModel', ViewModels.TutorialEndViewModel) - .controller(moduleName+'.AdminDashboardViewModel', ViewModels.AdminDashboardViewModel) - .controller(moduleName+'.EnvParametersFormViewModel', ViewModels.EnvParametersFormViewModel) - .controller(moduleName+'.StructureViewModel', ViewModels.StructureViewModel) - .controller(moduleName+'.AddCategoryModalViewModel', ViewModels.AddCategoryModalViewModel) - .controller(moduleName+'.DashboardCoverViewModel', ViewModels.DashboardCoverViewModel) - .controller(moduleName+'.UserManagementViewModel', ViewModels.UserManagementViewModel) - .controller(moduleName+'.CategoryManagementViewModel', ViewModels.CategoryManagementViewModel) - .controller(moduleName+'.WelcomeStepsControllerViewModel', ViewModels.WelcomeStepsControllerViewModel) - .controller(moduleName+'.OnboardingModalViewModel', ViewModels.OnboardingModalViewModel) - .controller(moduleName+'.DistributionStatusModalViewModel', ViewModels.DistributionStatusModalViewModel) - - .controller(moduleName+'.Wizard.EditWizardViewModel', ViewModels.Wizard.EditWizardViewModel) - .controller(moduleName+'.Wizard.CreateWizardViewModel', ViewModels.Wizard.CreateWizardViewModel) - .controller(moduleName+'.Wizard.ImportWizardViewModel', ViewModels.Wizard.ImportWizardViewModel) - .controller(moduleName+'.Wizard.GeneralStepViewModel', ViewModels.Wizard.GeneralStepViewModel) - .controller(moduleName+'.Wizard.IconsStepViewModel', ViewModels.Wizard.IconsStepViewModel) - .controller(moduleName+'.Wizard.ArtifactInformationStepViewModel', ViewModels.Wizard.ArtifactInformationStepViewModel) - .controller(moduleName+'.Wizard.ArtifactDeploymentStepViewModel', ViewModels.Wizard.ArtifactDeploymentStepViewModel) - .controller(moduleName+'.Wizard.PropertiesStepViewModel', ViewModels.Wizard.PropertiesStepViewModel) - .controller(moduleName+'.Wizard.ArtifactResourceFormStepViewModel', ViewModels.Wizard.ArtifactResourceFormStepViewModel) - .controller(moduleName+'.Wizard.PropertyFormViewModel', ViewModels.Wizard.PropertyFormViewModel) - .controller(moduleName+'.Wizard.HierarchyStepViewModel',ViewModels.Wizard.HierarchyStepViewModel) - - //NEW - .controller(moduleName+'.WorkspaceViewModel', ViewModels.WorkspaceViewModel) - .controller(moduleName+'.GeneralViewModel', ViewModels.GeneralViewModel) - .controller(moduleName+'.IconsViewModel', ViewModels.IconsViewModel) - .controller(moduleName+'.DeploymentArtifactsViewModel', ViewModels.DeploymentArtifactsViewModel) - .controller(moduleName+'.InformationArtifactsViewModel', ViewModels.InformationArtifactsViewModel) - .controller(moduleName+'.ToscaArtifactsViewModel', ViewModels.ToscaArtifactsViewModel) - .controller(moduleName+'.PropertiesViewModel', ViewModels.PropertiesViewModel) - .controller(moduleName+'.AttributesViewModel', ViewModels.AttributesViewModel) - .controller(moduleName+'.ProductHierarchyViewModel',ViewModels.ProductHierarchyViewModel) - .controller(moduleName+'.ActivityLogViewModel',ViewModels.ActivityLogViewModel) - .controller(moduleName+'.ManagementWorkflowViewModel',ViewModels.ManagementWorkflowViewModel) - .controller(moduleName+'.NetworkCallFlowViewModel',ViewModels.NetworkCallFlowViewModel) - .controller(moduleName+'.DeploymentViewModel',ViewModels.DeploymentViewModel) - .controller(moduleName+'.ResourceInputsViewModel',ViewModels.ResourceInputsViewModel) - .controller(moduleName+'.ServiceInputsViewModel', ViewModels.ServiceInputsViewModel) - .controller(moduleName+'.ReqAndCapabilitiesViewModel', ViewModels.ReqAndCapabilitiesViewModel) - - - - //TABS - .controller(moduleName+'.HierarchyViewModel',ViewModels.HierarchyViewModel) -} diff --git a/catalog-ui/app/scripts/services/activity-log-service.ts b/catalog-ui/app/scripts/services/activity-log-service.ts deleted file mode 100644 index 6fe27c447e..0000000000 --- a/catalog-ui/app/scripts/services/activity-log-service.ts +++ /dev/null @@ -1,48 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Services { - 'use strict'; - - // Define an interface of the object you want to use, providing it's properties - export interface IActivityLogService{ - getActivityLogService(type :string, id: string): ng.IPromise>; - } - - export class ActivityLogService implements IActivityLogService{ - - - static '$inject' = ['$http', '$q','sdcConfig']; - private api: Models.IApi; - - constructor(private $http: ng.IHttpService, private $q: ng.IQService, sdcConfig: Models.IAppConfigurtaion){ - this.api = sdcConfig.api; - } - - getActivityLogService = (type:string, id:string): ng.IPromise> =>{ - let defer = this.$q.defer(); - this.$http.get(this.api.root + this.api.GET_activity_log.replace(':type', type).replace(':id', id)) - .success((activityLog: any) => { - defer.resolve(activityLog); - }); - return defer.promise; - } - } -} diff --git a/catalog-ui/app/scripts/services/angular-js-bridge-service.ts b/catalog-ui/app/scripts/services/angular-js-bridge-service.ts deleted file mode 100644 index 2d8fb01b13..0000000000 --- a/catalog-ui/app/scripts/services/angular-js-bridge-service.ts +++ /dev/null @@ -1,22 +0,0 @@ -module Sdc.Services { - export class AngularJSBridge{ - private static _$filter: ng.IFilterService; - private static _sdcConfig: Models.IAppConfigurtaion; - - public static getFilter(filterName: string){ - return AngularJSBridge._$filter(filterName); - } - - public static getAngularConfig(){ - return AngularJSBridge._sdcConfig; - } - - - constructor($filter: ng.IFilterService, sdcConfig: Models.IAppConfigurtaion){ - AngularJSBridge._$filter = $filter; - AngularJSBridge._sdcConfig = sdcConfig; - } - } - - AngularJSBridge.$inject = ['$filter', 'sdcConfig'] -} \ No newline at end of file diff --git a/catalog-ui/app/scripts/services/available-icons-service.ts b/catalog-ui/app/scripts/services/available-icons-service.ts deleted file mode 100644 index 5c20afe5f2..0000000000 --- a/catalog-ui/app/scripts/services/available-icons-service.ts +++ /dev/null @@ -1,105 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/** - * Created by obarda on 2/23/2016. - */ -/// -module Sdc.Services { - 'use strict'; - - interface IAvailableIconsService { - getIcons(componentType: Utils.Constants.ComponentType):Array; - } - - export class AvailableIconsService implements IAvailableIconsService { - constructor() {} - public getIcons = (componentType: string): Array => { - let icons: string[]; - switch (componentType){ - case Utils.Constants.ComponentType.SERVICE: - icons = [ - 'call_controll', - 'mobility', - 'network_l_1-3', - 'network_l_4' - ]; - break; - - case Utils.Constants.ComponentType.RESOURCE: - icons= [ - 'router', - 'database', - 'network', - 'objectStorage', - 'connector', - 'brocade', - 'cisco', - 'ericsson', - 'tropo', - 'fortinet', - 'att', - 'broadsoft', - 'alcatelLucent', - 'metaswitch', - 'aricent', - 'mySql', - 'oracle', - 'nokia_siemens', - 'juniper', - 'call_controll', - 'borderElement', - 'applicationServer', - 'server', - 'port', - 'loadBalancer', - 'compute', - 'gateway', - 'cp', - 'vl', - 'vfw', - 'firewall' - ]; - break; - - case Utils.Constants.ComponentType.PRODUCT: - icons = [ - 'vfw', - 'network', - 'security', - 'cloud', - 'setting', - 'orphan', - 'wanx', - 'vrouter', - 'ucpe', - 'mobility' - - ]; - break; - - } - return icons; - } - - } -} - - - diff --git a/catalog-ui/app/scripts/services/cache-service.ts b/catalog-ui/app/scripts/services/cache-service.ts deleted file mode 100644 index 3e5e5495c7..0000000000 --- a/catalog-ui/app/scripts/services/cache-service.ts +++ /dev/null @@ -1,58 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Services { - - 'use strict'; - - interface ICacheService { - get(key:string):any; - set(key:string, value:any):void; - } - - export class CacheService implements ICacheService { - - static '$inject' = ['sdcConfig', '$document']; - private storage:Utils.Dictionary; - - constructor() { - this.storage = new Utils.Dictionary(); - }; - - public get = (key:string):any => { - return this.storage.getValue(key); - }; - - public set = (key:string, value:any):void => { - this.storage.setValue(key, value); - }; - - public remove = (key:string):void => { - if (this.storage.containsKey(key)){ - this.storage.remove(key); - } - }; - - public contains = (key:string):boolean => { - return this.storage.containsKey(key); - }; - - } -} diff --git a/catalog-ui/app/scripts/services/category-resource-service.ts b/catalog-ui/app/scripts/services/category-resource-service.ts deleted file mode 100644 index eef1b445e6..0000000000 --- a/catalog-ui/app/scripts/services/category-resource-service.ts +++ /dev/null @@ -1,83 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Services { - import IMainCategory = Sdc.Models.IMainCategory; - 'use strict'; - - // Define an interface of the object you want to use, providing it's properties - export interface ICategoryResource extends Models.IUserProperties,ng.resource.IResource{ - name:string; - uniqueId:string; - subcategories:Array; - - getAllCategories(params?: Object, success?: Function, error?: Function): Array; - $saveSubCategory(params?: Object, success?: Function, error?: Function): any; - $deleteSubCategory(params?: Object, success?: Function, error?: Function): any; - } - - // Define your resource, adding the signature of the custom actions - export interface ICategoryResourceClass extends ng.resource.IResourceClass{ - getAllCategories(params?: Object, success?: Function, error?: Function): Array; - saveSubCategory(params?: Object, success?: Function, error?: Function): any; - deleteSubCategory(params?: Object, success?: Function, error?: Function): any; - } - - export class CategoryResourceService{ - - public static getResource = ( - $resource: ng.resource.IResourceService, - sdcConfig: Models.IAppConfigurtaion - ): ICategoryResourceClass => { - - // Define your custom actions here as IActionDescriptor - let getAllCategoriesAction : ng.resource.IActionDescriptor = { - method: 'GET', - isArray: true, - url: sdcConfig.api.root + sdcConfig.api.GET_categories - }; - let saveSubCategory : ng.resource.IActionDescriptor = { - method: 'POST', - isArray: false, - url: sdcConfig.api.root + sdcConfig.api.POST_subcategory - }; - let deleteSubCategory: ng.resource.IActionDescriptor = { - method: 'DELETE', - isArray: false, - url: sdcConfig.api.root + sdcConfig.api.POST_subcategory - }; - - - let url: string = sdcConfig.api.root + sdcConfig.api.POST_category; - let categoryResource: ICategoryResourceClass = $resource( - url, - { types: '@types', categoryId: '@categoryId' }, - { - getAllCategories: getAllCategoriesAction, - saveSubCategory: saveSubCategory, - deleteSubCategory: deleteSubCategory - } - ); - - return categoryResource; - } - } - CategoryResourceService.getResource.$inject = ['$resource', 'sdcConfig']; -} diff --git a/catalog-ui/app/scripts/services/components/component-service.ts b/catalog-ui/app/scripts/services/components/component-service.ts deleted file mode 100644 index 393ea71c03..0000000000 --- a/catalog-ui/app/scripts/services/components/component-service.ts +++ /dev/null @@ -1,698 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Services.Components { - - 'use strict'; - - declare let CryptoJS:any; - - export interface IComponentService { - - getComponent(id:string); - updateComponent(component:Models.Components.Component):ng.IPromise; - changeLifecycleState(component:Models.Components.Component, state:string, userRemarks:any):ng.IPromise ; - validateName(newName:string, subtype?:string):ng.IPromise; - createComponent(component:Models.Components.Component):ng.IPromise; - addOrUpdateArtifact(componentId:string, artifact:Models.ArtifactModel):ng.IPromise; - deleteArtifact(componentId:string, artifact:string, artifactLabel):ng.IPromise; - addProperty(componentId:string, property:Models.PropertyModel):ng.IPromise; - updateProperty(componentId:string, property:Models.PropertyModel):ng.IPromise; - addAttribute(componentId:string, attribute:Models.AttributeModel):ng.IPromise; - updateAttribute(componentId:string, attribute:Models.AttributeModel):ng.IPromise; - deleteProperty(componentId:string, propertyId:string):ng.IPromise; - deleteAttribute(componentId:string, attributeId:string):ng.IPromise; - changeResourceInstanceVersion(componentId:string, componentInstanceId:string, componentUid:string):ng.IPromise; - updateInstanceArtifact(componentId:string, instanceId:string, artifact:Models.ArtifactModel):ng.IPromise; - addInstanceArtifact(componentId: string, instanceId: string, artifact:Models.ArtifactModel):ng.IPromise; - deleteInstanceArtifact(componentId: string, instanceId: string, artifact:string, artifactLabel):ng.IPromise; - createComponentInstance(componentId:string, componentInstance:Models.ComponentsInstances.ComponentInstance):ng.IPromise; - updateComponentInstance(componentId:string, componentInstance:Models.ComponentsInstances.ComponentInstance):ng.IPromise; - updateMultipleComponentInstances(componentId:string, instances:Array):ng.IPromise< Array>; - downloadArtifact(componentId:string, artifactId:string):ng.IPromise; - uploadInstanceEnvFile(componentId:string, instanceId:string, artifact:Models.ArtifactModel):ng.IPromise; - downloadInstanceArtifact(componentId:string, instanceId:string, artifactId:string):ng.IPromise; - deleteComponentInstance(componentId:string, componentInstanceId:string):ng.IPromise; - createRelation(componentId:string, link:Models.RelationshipModel):ng.IPromise; - deleteRelation(componentId:string, link:Models.RelationshipModel):ng.IPromise; - getRequirementsCapabilities(componentId:string):ng.IPromise; - updateInstanceProperty(componentId:string, property:Models.PropertyModel):ng.IPromise; - updateInstanceAttribute(componentId:string, attribute:Models.AttributeModel):ng.IPromise; - getComponentInstancesFilteredByInputsAndProperties(componentId:string, searchText:string):ng.IPromise> - getComponentInstanceInputs(componentId:string, instanceId:string, originComponentUid):ng.IPromise>; - getComponentInputs(componentId:string):ng.IPromise>; - getComponentInstanceInputProperties(componentId:string, instanceId:string, inputId:string):ng.IPromise>; - getModuleForDisplay(componentId:string, moduleId:string):ng.IPromise; - updateGroupMetadata(componentId:string, group:Models.Module):ng.IPromise; - getComponentInputInputs(serviceId:string, input:string): ng.IPromise>; - createInputsFromInstancesInputs(serviceId:string, instancesInputsMap:Models.InstancesInputsMap): ng.IPromise>; - createInputsFromInstancesInputsProperties(resourceId:string, instanceInputsPropertiesMap:Models.InstanceInputsPropertiesMap): ng.IPromise>; - deleteComponentInput(serviceId:string, inputId:string):ng.IPromise; - } - - export class ComponentService implements IComponentService { - - static '$inject' = [ - '$log', - 'Restangular', - 'sdcConfig', - 'Sdc.Services.SharingService', - '$q', - '$interval', - '$base64', - 'ComponentInstanceFactory' - ]; - - constructor(protected $log: ng.ILogService, - protected restangular:restangular.IElement, - protected sdcConfig:Models.IAppConfigurtaion, - protected sharingService:Sdc.Services.SharingService, - protected $q:ng.IQService, - protected $interval:any, - protected $base64:any, - protected ComponentInstanceFactory:Utils.ComponentInstanceFactory) { - - this.restangular.setBaseUrl(sdcConfig.api.root + sdcConfig.api.component_api_root); - this.restangular.setRequestInterceptor(function (elem, operation) { - if (operation === "remove") { - return null; - } - return elem; - }); - // this.restangular.setDefaultHeaders({'Content-Type': 'application/json; charset=UTF-8'}); - } - - //this function is override by each service, we need to change this method to abstract when updtaing typescript version - protected createComponentObject = (component:Models.Components.Component):Models.Components.Component => { - return component; - }; - - public getComponent = (id:string):ng.IPromise => { - let deferred = this.$q.defer(); - this.restangular.one(id).get().then((response:Models.Components.Component) => { - let component:Models.Components.Component = this.createComponentObject(response); - //this.$log.debug("Component Loaded successfully : ", component); - deferred.resolve(component); - }, (err)=> { - this.$log.debug("Failed to load component with ID: " + id); - deferred.reject(err); - }); - return deferred.promise; - }; - - public updateComponent = (component:Models.Components.Component):ng.IPromise => { - // If this is resource - if (component instanceof Sdc.Models.Components.Resource) { - let resource:Sdc.Models.Components.Resource = component; - if (resource.importedFile) { - // Update resource with payload data. - return this.updateResourceWithPayload(resource); - } else { - if (component.csarUUID) { - // Update resource without payload data. - return this.updateResource(component); - } else { - // Update resource without payload data (metadata). - return this.updateResourceMetadata(component); - } - } - } else { - return this.updateService(component); - } - }; - - private updateService = (component:Models.Components.Component):ng.IPromise => { - let deferred = this.$q.defer(); - this.restangular.one(component.uniqueId).one("metadata").customPUT(JSON.stringify(component)).then((response:Models.Components.Component) => { - let component:Models.Components.Component = this.createComponentObject(response); - deferred.resolve(component); - }, (err)=> { - deferred.reject(err); - }); - return deferred.promise; - }; - - private updateResource = (component:Models.Components.Component):ng.IPromise => { - let deferred = this.$q.defer(); - this.restangular.one(component.uniqueId).customPUT(JSON.stringify(component)).then((response:Models.Components.Component) => { - let component:Models.Components.Component = this.createComponentObject(response); - deferred.resolve(component); - }, (err)=> { - deferred.reject(err); - }); - return deferred.promise; - }; - - private updateResourceMetadata = (component:Models.Components.Component):ng.IPromise => { - let deferred = this.$q.defer(); - this.restangular.one(component.uniqueId).one('metadata').customPUT(JSON.stringify(component)).then((response:Models.Components.Component) => { - let component:Models.Components.Component = this.createComponentObject(response); - deferred.resolve(component); - }, (err)=> { - deferred.reject(err); - }); - return deferred.promise; - }; - - /** - * Only resource can be updated with payload data - * @param component - * @returns {IPromise} - */ - private updateResourceWithPayload = (resource:Sdc.Models.Components.Resource):ng.IPromise => { - let deferred = this.$q.defer(); - - resource.payloadData = resource.importedFile.base64; - resource.payloadName = resource.importedFile.filename; - let headerObj = this.getHeaderMd5(resource); - - this.restangular.one(resource.uniqueId).customPUT(JSON.stringify(resource), '', {}, headerObj).then((response:Models.Components.Component) => { - let componentResult:Models.Components.Component = this.createComponentObject(response); - deferred.resolve(componentResult); - }, (err)=> { - deferred.reject(err); - }); - - return deferred.promise; - }; - - public createComponent = (component:Models.Components.Component):ng.IPromise => { - let deferred = this.$q.defer(); - let headerObj = this.getHeaderMd5(component); - this.restangular.customPOST(JSON.stringify(component), '', {}, headerObj).then((response:Models.Components.Component) => { - let component:Models.Components.Component = this.createComponentObject(response); - deferred.resolve(component); - }, (err)=> { - deferred.reject(err); - }); - return deferred.promise; - }; - - public validateName = (newName:string, subtype?:string):ng.IPromise => { - let deferred = this.$q.defer(); - this.restangular.one("validate-name").one(newName).get({'subtype': subtype}).then((response:any) => { - deferred.resolve(response.plain()); - }, (err)=> { - deferred.reject(err); - }); - return deferred.promise; - }; - - public changeLifecycleState = (component:Models.Components.Component, state:string, userRemarks:any):ng.IPromise => { - let deferred = this.$q.defer(); - this.restangular.one(component.uniqueId).one(state).customPOST(userRemarks).then((response:Models.Components.Component) => { - this.sharingService.addUuidValue(response.uniqueId, response.uuid); - let component:Models.Components.Component = this.createComponentObject(response); - deferred.resolve(component); - }, (err)=> { - deferred.reject(err); - }); - return deferred.promise; - }; - - // ------------------------------------------------ Artifacts API --------------------------------------------------// - public addOrUpdateArtifact = (componentId:string, artifact:Models.ArtifactModel):ng.IPromise => { - let deferred = this.$q.defer(); - let headerObj = {}; - if (artifact.payloadData) { - headerObj = this.getHeaderMd5(artifact); - } - this.restangular.one(componentId).one("artifacts").customPOST(JSON.stringify(artifact), artifact.uniqueId, {}, headerObj).then((response:any) => { - deferred.resolve(response.plain()); - }, (err)=> { - deferred.reject(err); - }); - return deferred.promise; - }; - - public downloadArtifact = (componentId:string, artifactId:string):ng.IPromise => { - let deferred = this.$q.defer(); - this.restangular.one(componentId).one("artifacts").one(artifactId).get().then((response:any) => { - deferred.resolve(response.plain()); - }, (err)=> { - deferred.reject(err); - }); - return deferred.promise; - }; - - public deleteArtifact = (componentId:string, artifactId:string, artifactLabel:string):ng.IPromise => { - let deferred = this.$q.defer(); - this.restangular.one(componentId).one("artifacts").one(artifactId).remove({'operation': artifactLabel}).then((response:Models.ArtifactModel) => { - deferred.resolve(response); - }, (err)=> { - deferred.reject(err); - }); - return deferred.promise; - }; - - - // ------------------------------------------------ Properties API --------------------------------------------------// - public addProperty = (componentId:string, property:Models.PropertyModel):ng.IPromise => { - let deferred = this.$q.defer(); - this.restangular.one(componentId).one("properties").customPOST(property.convertToServerObject()).then((response:any) => { - let property:Models.PropertyModel = new Models.PropertyModel(response[Object.keys(response)[0]]); - deferred.resolve(property); - }, (err)=> { - deferred.reject(err); - }); - return deferred.promise; - }; - - public updateProperty = (componentId:string, property:Models.PropertyModel):ng.IPromise => { - let deferred = this.$q.defer(); - this.restangular.one(componentId).one("properties").one(property.uniqueId).customPUT(property.convertToServerObject()).then((response:any) => { - let property:Models.PropertyModel = new Models.PropertyModel(response[Object.keys(response)[0]]); - deferred.resolve(property); - }, (err)=> { - deferred.reject(err); - }); - return deferred.promise; - }; - - public deleteProperty = (componentId:string, propertyId:string):ng.IPromise => { - let deferred = this.$q.defer(); - this.restangular.one(componentId).one("properties").one(propertyId).remove().then((response:any) => { - deferred.resolve(response); - }, (err)=> { - deferred.reject(err); - }); - return deferred.promise; - }; - - // ------------------------------------------------ Attributes API --------------------------------------------------// - public addAttribute = (componentId:string, attribute:Models.AttributeModel):ng.IPromise => { - let deferred = this.$q.defer(); - this.restangular.one(componentId).one("attributes").customPOST(attribute.convertToServerObject()).then((response:any) => { - let attribute:Models.AttributeModel = new Models.AttributeModel(response); - deferred.resolve(attribute); - }, (err)=> { - deferred.reject(err); - }); - return deferred.promise; - }; - - public updateAttribute = (componentId:string, attribute:Models.AttributeModel):ng.IPromise => { - let deferred = this.$q.defer(); - this.restangular.one(componentId).one("attributes").one(attribute.uniqueId).customPUT(attribute.convertToServerObject()).then((response:any) => { - let attribute:Models.AttributeModel = new Models.AttributeModel(response); - deferred.resolve(attribute); - }, (err)=> { - deferred.reject(err); - }); - return deferred.promise; - }; - - public deleteAttribute = (componentId:string, attributeId:string):ng.IPromise => { - let deferred = this.$q.defer(); - this.restangular.one(componentId).one("attributes").one(attributeId).remove().then((response:any) => { - deferred.resolve(response); - }, (err)=> { - deferred.reject(err); - }); - return deferred.promise; - }; - - // ------------------------------------------------ Component Instances API --------------------------------------------------// - - public createComponentInstance = (componentId:string, componentInstance:Models.ComponentsInstances.ComponentInstance):ng.IPromise => { - let deferred = this.$q.defer(); - this.restangular.one(componentId).one("resourceInstance").customPOST(JSON.stringify(componentInstance)).then((response:any) => { - let componentInstance:Models.ComponentsInstances.ComponentInstance = Utils.ComponentInstanceFactory.createComponentInstance(response); - this.$log.debug("Component Instance created", componentInstance); - deferred.resolve(componentInstance); - }, (err)=> { - this.$log.debug("Failed to create componentInstance. With Name: " + componentInstance.name); - deferred.reject(err); - }); - return deferred.promise; - }; - - public updateComponentInstance = (componentId:string, componentInstance:Models.ComponentsInstances.ComponentInstance):ng.IPromise => { - let deferred = this.$q.defer(); - this.restangular.one(componentId).one("resourceInstance").one(componentInstance.uniqueId).customPOST(JSON.stringify(componentInstance)).then((response:any) => { - let componentInstance:Models.ComponentsInstances.ComponentInstance = Utils.ComponentInstanceFactory.createComponentInstance(response); - this.$log.debug("Component Instance was updated", componentInstance); - deferred.resolve(componentInstance); - }, (err)=> { - this.$log.debug("Failed to update componentInstance. With ID: " + componentInstance.uniqueId + "Name: " + componentInstance.name); - deferred.reject(err); - }); - return deferred.promise; - }; - - public updateMultipleComponentInstances = (componentId:string, instances:Array):ng.IPromise> => { - let deferred = this.$q.defer(); - this.restangular.one(componentId).one("resourceInstance/multipleComponentInstance").customPOST(JSON.stringify(instances)).then((response:any) => { - this.$log.debug("Multiple Component Instances was updated", response); - let updateInstances:Array = new Array(); - _.forEach(response, (componentInstance:Models.ComponentsInstances.ComponentInstance) => { - let updatedComponentInstance:Models.ComponentsInstances.ComponentInstance = Utils.ComponentInstanceFactory.createComponentInstance(componentInstance); - updateInstances.push(updatedComponentInstance); - }); - deferred.resolve(updateInstances); - }, (err)=> { - this.$log.debug("Failed to update Multiple componentInstance."); - deferred.reject(err); - }); - return deferred.promise; - }; - - public deleteComponentInstance = (componentId:string, componentInstanceId:string):ng.IPromise => { - let deferred = this.$q.defer(); - this.restangular.one(componentId).one("resourceInstance").one(componentInstanceId).remove().then(() => { - this.$log.debug("Component Instance was deleted"); - deferred.resolve(); - }, (err)=> { - this.$log.debug("Failed to delete componentInstance. With ID: " + componentInstanceId); - deferred.reject(err); - }); - return deferred.promise; - }; - - public changeResourceInstanceVersion = (componentId:string, componentInstanceId:string, componentUid:string):ng.IPromise => { - let deferred = this.$q.defer(); - this.restangular.one(componentId).one("resourceInstance").one(componentInstanceId).one("changeVersion").customPOST({'componentUid': componentUid}).then((response:any) => { - let componentInstance:Models.ComponentsInstances.ComponentInstance = Utils.ComponentInstanceFactory.createComponentInstance(response); - deferred.resolve(componentInstance); - }, (err)=> { - deferred.reject(err); - }); - return deferred.promise; - }; - - public downloadInstanceArtifact = (componentId:string, instanceId:string, artifactId:string):ng.IPromise => { - let deferred = this.$q.defer(); - this.restangular.one(componentId).one("resourceInstances").one(instanceId).one("artifacts").one(artifactId).get().then((response:any) => { - deferred.resolve(response.plain()); - }, (err)=> { - deferred.reject(err); - }); - return deferred.promise; - }; - - public updateInstanceArtifact = (componentId:string, instanceId:string, artifact:Models.ArtifactModel):ng.IPromise => { - let deferred = this.$q.defer(); - let headerObj = {}; - if(artifact.payloadData){ - headerObj = this.getHeaderMd5(artifact); - } - this.restangular.one(componentId).one("resourceInstance").one(instanceId).one("artifacts").customPOST(JSON.stringify(artifact), artifact.uniqueId , {}, headerObj).then((response: any) => { - let newArtifact = new Models.ArtifactModel(response); - deferred.resolve(newArtifact); - }, (err)=>{ - deferred.reject(err); - }); - return deferred.promise; - }; - - public addInstanceArtifact = (componentId: string, instanceId: string, artifact:Models.ArtifactModel): ng.IPromise => { - let deferred = this.$q.defer(); - let headerObj = {}; - if(artifact.payloadData){ - headerObj = this.getHeaderMd5(artifact); - } - this.restangular.one(componentId).one("resourceInstance").one(instanceId).one("artifacts").customPOST(JSON.stringify(artifact), artifact.uniqueId , {}, headerObj).then((response: any) => { - let artifact:Models.ArtifactModel = new Models.ArtifactModel(response.plain()); - deferred.resolve(artifact); - }, (err)=> { - deferred.reject(err); - }); - return deferred.promise; - }; - - public deleteInstanceArtifact = (componentId: string , instanceId: string, artifactId:string, artifactLabel: string): ng.IPromise => { - let deferred = this.$q.defer(); - this.restangular.one(componentId).one("resourceInstance").one(instanceId).one("artifacts").one(artifactId).remove({'operation': artifactLabel}).then((response: Models.ArtifactModel) => { - deferred.resolve(response); - }, (err)=>{ - deferred.reject(err); - }); - return deferred.promise; - }; - - public uploadInstanceEnvFile = (componentId:string, instanceId:string, artifact:Models.ArtifactModel):ng.IPromise => { - let deferred = this.$q.defer(); - let headerObj = {}; - if (artifact.payloadData) { - headerObj = this.getHeaderMd5(artifact); - } - this.restangular.one(componentId).one("resourceInstance").one(instanceId).one("artifacts").customPOST(JSON.stringify(artifact), artifact.uniqueId, {}, headerObj).then((response:any) => { - let newArtifact = new Models.ArtifactModel(response); - deferred.resolve(newArtifact); - }, (err)=> { - deferred.reject(err); - }); - return deferred.promise; - }; - - public updateInstanceProperty = (componentId:string, property:Models.PropertyModel):ng.IPromise => { - let deferred = this.$q.defer(); - let instanceId = property.resourceInstanceUniqueId; - this.restangular.one(componentId).one("resourceInstance").one(instanceId).one("property").customPOST(JSON.stringify(property)).then((response:any) => { - let newProperty = new Models.PropertyModel(response); - newProperty.readonly = true; - newProperty.resourceInstanceUniqueId = instanceId; - deferred.resolve(newProperty); - }, (err)=> { - deferred.reject(err); - }); - return deferred.promise; - }; - - public updateInstanceAttribute = (componentId:string, attribute:Models.AttributeModel):ng.IPromise => { - let deferred = this.$q.defer(); - let instanceId = attribute.resourceInstanceUniqueId; - this.restangular.one(componentId).one("resourceInstance").one(instanceId).one("attribute").customPOST(JSON.stringify(attribute)).then((response:any) => { - let newAttribute = new Models.AttributeModel(response); - newAttribute.readonly = true; - newAttribute.resourceInstanceUniqueId = instanceId; - deferred.resolve(newAttribute); - }, (err)=> { - deferred.reject(err); - }); - return deferred.promise; - }; - - public createRelation = (componentId:string, link:Models.RelationshipModel):ng.IPromise => { - let deferred = this.$q.defer(); - this.restangular.one(componentId).one("resourceInstance").one("associate").customPOST(JSON.stringify(link)).then((response:any) => { - let relation:Models.RelationshipModel = new Models.RelationshipModel(response.plain()); - this.$log.debug("Link created successfully ", relation); - deferred.resolve(relation); - }, (err)=> { - this.$log.debug("Failed to create Link From: " + link.fromNode + "To: " + link.toNode); - deferred.reject(err); - }); - return deferred.promise; - }; - - public deleteRelation = (componentId:string, link:Models.RelationshipModel):ng.IPromise => { - let deferred = this.$q.defer(); - this.restangular.one(componentId).one("resourceInstance").one("dissociate").customPUT(JSON.stringify(link)).then((response:any) => { - let relation:Models.RelationshipModel = new Models.RelationshipModel(response); - this.$log.debug("Link deleted successfully ", relation); - deferred.resolve(relation); - }, (err)=> { - this.$log.debug("Failed to delete Link From: " + link.fromNode + "To: " + link.toNode); - deferred.reject(err); - }); - return deferred.promise; - }; - - public getRequirementsCapabilities = (componentId:string):ng.IPromise => { - let deferred = this.$q.defer(); - this.restangular.one(componentId).one("requirmentsCapabilities").get().then((response:any) => { - this.$log.debug("Component requirement capabilities recived: ", response); - deferred.resolve(response); - }, (err)=> { - this.$log.debug("Failed to get requirements & capabilities"); - deferred.reject(err); - }); - return deferred.promise; - }; - - public getModuleForDisplay = (componentId:string, moduleId:string):ng.IPromise => { - let deferred = this.$q.defer(); - this.restangular.one(componentId).one("groups").one(moduleId).get().then((response:any) => { - this.$log.debug("module loaded successfully: ", response); - let module:Models.DisplayModule = new Models.DisplayModule(response); - deferred.resolve(module); - }, (err)=> { - this.$log.debug("Failed to get module with id: ", moduleId); - deferred.reject(err); - }); - return deferred.promise; - }; - - public getComponentInstancesFilteredByInputsAndProperties = (componentId:string, searchText?:string):ng.IPromise> => { - let deferred = this.$q.defer(); - this.restangular.one(componentId).one("componentInstances").get({'searchText': searchText}).then((response:any) => { - this.$log.debug("component instances return successfully: ", response); - let componentInstances:Array = Utils.CommonUtils.initComponentInstances(response); - deferred.resolve(componentInstances); - }, (err) => { - this.$log.debug("Failed to get component instances of component with id: " + componentId); - deferred.reject(err); - }); - - return deferred.promise; - }; - - public getComponentInstanceInputs = (componentId:string, instanceId:string, originComponentUid):ng.IPromise> => { - - let deferred = this.$q.defer(); - this.restangular.one(componentId).one("componentInstances").one(instanceId).one(originComponentUid).one("inputs").get().then((response:any) => { - this.$log.debug("component instance input return successfully: ", response); - let inputsArray:Array = new Array(); - _.forEach(response, (inputObj:Models.InputModel) => { - inputsArray.push(new Models.InputModel(inputObj)); - }); - deferred.resolve(inputsArray); - }, (err) => { - this.$log.debug("Failed to get component instance input with id: " + instanceId); - deferred.reject(err); - }); - - return deferred.promise; - }; - - public getComponentInputs = (componentId:string):ng.IPromise> => { - - let deferred = this.$q.defer(); - this.restangular.one(componentId).one("inputs").get().then((response:any) => { - this.$log.debug("component inputs return successfully: ", response); - let inputsArray:Array = new Array(); - _.forEach(response, (inputObj:Models.InputModel) => { - inputsArray.push(new Models.InputModel(inputObj)); - }); - deferred.resolve(inputsArray); - }, (err) => { - this.$log.debug("Failed to get component inputs for component with id: " + componentId); - deferred.reject(err); - }); - - return deferred.promise; - }; - - public getComponentInstanceInputProperties = (componentId:string, instanceId:string, inputId:string):ng.IPromise> => { - - let deferred = this.$q.defer(); - this.restangular.one(componentId).one("componentInstances").one(instanceId).one(inputId).one("properties").get().then((response:any) => { - this.$log.debug("component instance input properties return successfully: ", response); - let propertiesArray:Array = new Array(); - _.forEach(response, (propertyObj:Models.PropertyModel) => { - propertiesArray.push(new Models.PropertyModel(propertyObj)); - }); - deferred.resolve(propertiesArray); - }, (err) => { - this.$log.debug("Failed to get component instance input properties with instanceId: " + instanceId + "and input id: " + inputId); - deferred.reject(err); - }); - - return deferred.promise; - }; - - public updateGroupMetadata = (componentId:string, group:Models.Module):ng.IPromise => { - - let deferred = this.$q.defer(); - this.restangular.one(componentId).one("groups").one(group.uniqueId).one("metadata").customPUT(JSON.stringify(group)).then((response:Models.Module) => { - this.$log.debug("group metadata updated successfully: ", response); - let updatedGroup:Models.Module = new Models.Module(response); - - deferred.resolve(updatedGroup); - }, (err) => { - this.$log.debug("Failed to update group metadata for component: " + componentId + " for group with id: " + group.uniqueId); - deferred.reject(err); - }); - - return deferred.promise; - }; - - public getComponentInputInputs = (serviceId:string, inputId:string): ng.IPromise> => { - let defer = this.$q.defer(); - this.restangular.one(serviceId).one("inputs").one(inputId).one("inputs").get().then((response: any) => { - let inputsArray:Array = new Array(); - _.forEach(response, (inputObj:Models.InputModel) => { - inputsArray.push(new Models.InputModel(inputObj)); - }); - defer.resolve(inputsArray); - }, (err)=>{ - this.$log.debug("failed to get inputs of input : ", err); - defer.reject(err); - }); - return defer.promise; - }; - - createInputsFromInstancesInputsProperties = (resourceId:string, instancePropertyMap:Models.InstanceInputsPropertiesMap): ng.IPromise> => { - let defer = this.$q.defer(); - this.restangular.one(resourceId).one("create/properties").customPOST(instancePropertyMap).then((response: any) => { - let inputsArray:Array = new Array(); - _.forEach(response, (inputObj:Models.PropertyModel) => { - inputsArray.push(new Models.PropertyModel(inputObj)); - }); - defer.resolve(inputsArray); - }, (err)=>{ - this.$log.debug("failed to create service inputs from VF instances inputs : ", err); - defer.reject(err); - }); - return defer.promise; - }; - - createInputsFromInstancesInputs = (serviceId:string, instancesMap:Models.InstancesInputsMap): ng.IPromise> => { - let defer = this.$q.defer(); - this.restangular.one(serviceId).one("create/inputs").customPOST(instancesMap).then((response: any) => { - let inputsArray:Array = new Array(); - _.forEach(response, (inputObj:Models.InputModel) => { - inputsArray.push(new Models.InputModel(inputObj)); - }); - defer.resolve(inputsArray); - }, (err)=>{ - this.$log.debug("failed to create service inputs from VF instances inputs : ", err); - defer.reject(err); - }); - return defer.promise; - }; - - deleteComponentInput = (serviceId:string, inputId:string) : ng.IPromise => { - var defer = this.$q.defer(); - this.restangular.one(serviceId).one("delete").one(inputId).one("input").remove().then((response: any) => { - var inputToDelete = new Models.InputModel(response); - - defer.resolve(inputToDelete); - }, (err)=> { - console.log("failed to delete input from service: ", err); - defer.reject(err); - }); - return defer.promise; - }; - - private getHeaderMd5 = (object:any):any => { - let headerObj={}; - // This is ugly workaround!!! - // The md5 result is not correct if we do not add the line JSON.stringify(resource); twice. - JSON.stringify(object); - let componentString:string = JSON.stringify(object); - let md5Result = md5(componentString).toLowerCase(); - headerObj = {'Content-MD5': this.$base64.encode(md5Result)}; - return headerObj; - }; - - } -} diff --git a/catalog-ui/app/scripts/services/components/product-service.ts b/catalog-ui/app/scripts/services/components/product-service.ts deleted file mode 100644 index 69171fbbfa..0000000000 --- a/catalog-ui/app/scripts/services/components/product-service.ts +++ /dev/null @@ -1,61 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/** - * Created by obarda on 2/8/2016. - */ -/// -module Sdc.Services.Components { - 'use strict'; - - export interface IProductService extends IComponentService { - - } - - export class ProductService extends ComponentService implements IProductService { - - static '$inject' = [ - '$log', - 'Restangular', - 'sdcConfig', - 'Sdc.Services.SharingService', - '$q', - '$interval', - '$base64', - 'ComponentInstanceFactory' - ]; - - constructor(protected $log: ng.ILogService, - protected restangular: restangular.IElement, - protected sdcConfig: Models.IAppConfigurtaion, - protected sharingService: Sdc.Services.SharingService, - protected $q: ng.IQService, - protected $interval: any, - protected $base64: any, - protected ComponentInstanceFactory: Utils.ComponentInstanceFactory) { - super($log, restangular, sdcConfig, sharingService, $q, $interval, $base64, ComponentInstanceFactory); - - this.restangular = restangular.one("products"); - } - - createComponentObject = (component: Models.Components.Component): Models.Components.Component => { - return new Models.Components.Product(this, this.$q, component); - }; - } -} diff --git a/catalog-ui/app/scripts/services/components/resource-service.ts b/catalog-ui/app/scripts/services/components/resource-service.ts deleted file mode 100644 index 48781da48e..0000000000 --- a/catalog-ui/app/scripts/services/components/resource-service.ts +++ /dev/null @@ -1,61 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/** - * Created by obarda on 2/4/2016. - */ -/// -module Sdc.Services.Components { - 'use strict'; - - export interface IResourceService extends IComponentService { - - } - - export class ResourceService extends ComponentService implements IResourceService { - - static '$inject' = [ - '$log', - 'Restangular', - 'sdcConfig', - 'Sdc.Services.SharingService', - '$q', - '$interval', - '$base64', - 'ComponentInstanceFactory' - ]; - - constructor(protected $log: ng.ILogService, - protected restangular: restangular.IElement, - protected sdcConfig: Models.IAppConfigurtaion, - protected sharingService: Sdc.Services.SharingService, - protected $q: ng.IQService, - protected $interval: any, - protected $base64: any, - protected ComponentInstanceFactory: Utils.ComponentInstanceFactory) { - super($log, restangular, sdcConfig, sharingService, $q, $interval, $base64, ComponentInstanceFactory); - - this.restangular = restangular.one("resources"); - } - - createComponentObject = (component: Models.Components.Component): Models.Components.Component => { - return new Models.Components.Resource(this, this.$q, component); - }; - } -} diff --git a/catalog-ui/app/scripts/services/components/service-service.ts b/catalog-ui/app/scripts/services/components/service-service.ts deleted file mode 100644 index fef0b47512..0000000000 --- a/catalog-ui/app/scripts/services/components/service-service.ts +++ /dev/null @@ -1,97 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/** - * Created by obarda on 2/4/2016. - */ -/// -module Sdc.Services.Components { - 'use strict'; - - - export interface IServiceService extends IComponentService { - getDistributionsList(uuid: string): ng.IPromise>; - getDistributionComponents(distributionId: string): ng.IPromise>; - markAsDeployed(serviceId: string, distributionId: string): ng.IPromise; - } - - export class ServiceService extends ComponentService implements IServiceService { - - static '$inject' = [ - '$log', - 'Restangular', - 'sdcConfig', - 'Sdc.Services.SharingService', - '$q', - '$interval', - '$base64', - 'ComponentInstanceFactory' - ]; - - public distribution: string = "distribution"; - - constructor(protected $log: ng.ILogService, - protected restangular: restangular.IElement, - protected sdcConfig: Models.IAppConfigurtaion, - protected sharingService: Sdc.Services.SharingService, - protected $q: ng.IQService, - protected $interval: any, - protected $base64: any, - protected ComponentInstanceFactory: Utils.ComponentInstanceFactory) { - super($log, restangular, sdcConfig, sharingService, $q, $interval, $base64, ComponentInstanceFactory); - - this.restangular = restangular.one("services"); - } - - getDistributionsList = (uuid: string): ng.IPromise> => { - let defer = this.$q.defer>(); - this.restangular.one(uuid).one("distribution").get().then((distributions: any) => { - defer.resolve(> distributions.distributionStatusOfServiceList); - }, (err)=> { - defer.reject(err); - }); - return defer.promise; - }; - - getDistributionComponents = (distributionId: string): ng.IPromise> => { - let defer = this.$q.defer>(); - this.restangular.one("distribution").one(distributionId).get().then((distributions: any) => { - defer.resolve(> distributions.distributionStatusList); - }, (err)=> { - defer.reject(err); - }); - return defer.promise; - }; - - markAsDeployed = (serviceId: string, distributionId: string): ng.IPromise => { - let defer = this.$q.defer(); - this.restangular.one(serviceId).one("distribution").one(distributionId).one("markDeployed").customPOST().then((result: any) => { - defer.resolve(result); - }, (err)=> { - - defer.reject(err); - }); - return defer.promise; - }; - - createComponentObject = (component: Models.Components.Component): Models.Components.Component => { - return new Models.Components.Service(this, this.$q, component); - }; - } -} diff --git a/catalog-ui/app/scripts/services/components/utils/composition-left-palette-service.ts b/catalog-ui/app/scripts/services/components/utils/composition-left-palette-service.ts deleted file mode 100644 index 25ac1cdf17..0000000000 --- a/catalog-ui/app/scripts/services/components/utils/composition-left-palette-service.ts +++ /dev/null @@ -1,248 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/** - * Created by obarda on 3/13/2016. - */ -/// -module Sdc.Services.Components { - - 'use strict'; - - export class LeftPanelLatestVersion { - uid: string; - version: string; - } - - export class LeftPaletteDataObject { - currentUpdatingIdsList: Array; - latestVersionAndIdsList: Array; - fullDataLeftPaletteComponents: Array; - displayLeftPanelComponents: Array; - onFinishLoadingEvent: string; - - constructor(onFinishEventListener: string) { - - this.fullDataLeftPaletteComponents = new Array(); - this.displayLeftPanelComponents = new Array(); - this.currentUpdatingIdsList = new Array(); - this.latestVersionAndIdsList = new Array(); - this.onFinishLoadingEvent = onFinishEventListener; - } - } - - export class LeftPaletteLoaderService { - - static '$inject' = [ - 'Restangular', - 'sdcConfig', - '$q', - '$base64', - 'ComponentFactory', - 'EventListenerService' - - ]; - - constructor(protected restangular: restangular.IElement, - protected sdcConfig: Models.IAppConfigurtaion, - protected $q: ng.IQService, - protected $base64: any, - protected ComponentFactory: Utils.ComponentFactory, - protected EventListenerService: Services.EventListenerService) { - - this.restangular.setBaseUrl(sdcConfig.api.root + sdcConfig.api.component_api_root); - } - - private serviceLeftPaletteData: LeftPaletteDataObject; - private resourceLeftPaletteData: LeftPaletteDataObject; - private productLeftPaletteData: LeftPaletteDataObject; - private vlData: LeftPaletteDataObject; - - public loadLeftPanel = (): void => { - - this.serviceLeftPaletteData = new LeftPaletteDataObject(Utils.Constants.EVENTS.SERVICE_LEFT_PALETTE_UPDATE_EVENT); - this.resourceLeftPaletteData = new LeftPaletteDataObject(Utils.Constants.EVENTS.RESOURCE_LEFT_PALETTE_UPDATE_EVENT); - this.productLeftPaletteData = new LeftPaletteDataObject(Utils.Constants.EVENTS.PRODUCT_LEFT_PALETTE_UPDATE_EVENT); - this.vlData = new LeftPaletteDataObject(Utils.Constants.EVENTS.VL_LEFT_PALETTE_UPDATE_EVENT); - - //initiating service palette - this.updateComponentLeftPalette(Utils.Constants.ComponentType.SERVICE); - - //initiating resource palette - this.updateComponentLeftPalette(Utils.Constants.ComponentType.RESOURCE); - - //initiating product palette - this.updateComponentLeftPalette(Utils.Constants.ComponentType.PRODUCT); - - //initiating vl - this.updateComponentLeftPalette(Utils.Constants.ResourceType.VL); - }; - - private updateData = (latestVersionComponents: Array, leftPaletteDataObj: LeftPaletteDataObject) => { - - let fullDataComponentsArray: Array = new Array(); - let displayComponentsArray: Array = new Array(); - - _.forEach(latestVersionComponents, (componentObj: any) => { - let component: Models.Components.Component = this.ComponentFactory.createComponent(componentObj); - fullDataComponentsArray.push(component); - displayComponentsArray.push(new Models.DisplayComponent(component)); - }); - - leftPaletteDataObj.fullDataLeftPaletteComponents = leftPaletteDataObj.fullDataLeftPaletteComponents.concat(fullDataComponentsArray); - leftPaletteDataObj.displayLeftPanelComponents = leftPaletteDataObj.displayLeftPanelComponents.concat(displayComponentsArray); - }; - - private getTypeUrl = (componentType: string): string => { - return Utils.Constants.ComponentType.PRODUCT === componentType ? "services" : "resources"; - }; - - private onFinishLoading = (componentType: string, leftPaletteData: LeftPaletteDataObject): void => { - leftPaletteData.currentUpdatingIdsList = []; - this.EventListenerService.notifyObservers(leftPaletteData.onFinishLoadingEvent); - }; - - private getPartialLastVersionFullComponents = (componentType: string, componentInternalType: string, leftPaletteData: LeftPaletteDataObject): void => { - this.restangular.one(this.getTypeUrl(componentType)).one('/latestversion/notabstract').customPOST(leftPaletteData.currentUpdatingIdsList, '', {'internalComponentType': componentInternalType}).then((componentsArray: any) => { - this.updateData(componentsArray, leftPaletteData); - this.onFinishLoading(componentType, leftPaletteData); //when finish loading update view - }); - }; - - private removeNotUpdatedComponents = (leftPaletteObject: LeftPaletteDataObject) => { - - leftPaletteObject.fullDataLeftPaletteComponents = _.filter(leftPaletteObject.fullDataLeftPaletteComponents, (component)=> { - return leftPaletteObject.currentUpdatingIdsList.indexOf(component.uniqueId) != -1; - }); - leftPaletteObject.displayLeftPanelComponents = _.filter(leftPaletteObject.displayLeftPanelComponents, (component)=> { - return leftPaletteObject.currentUpdatingIdsList.indexOf(component.uniqueId) != -1; - }); - }; - - private findIdsToUpdate = (leftPaletteObj: LeftPaletteDataObject): Array => { - let idsToUpdate = _.difference(leftPaletteObj.currentUpdatingIdsList, _.map(leftPaletteObj.fullDataLeftPaletteComponents, 'uniqueId')); - let neededUpdate = _.filter(leftPaletteObj.fullDataLeftPaletteComponents, (component) => { - let updated = _.find(leftPaletteObj.latestVersionAndIdsList, (versionAndId: LeftPanelLatestVersion) => { - return versionAndId.uid === component.uniqueId && versionAndId.version != component.version - }); - return updated != undefined; - }); - if (neededUpdate && neededUpdate.length > 0) { - let neededUpdateIds = _.map(neededUpdate, 'uid'); - idsToUpdate.concat(neededUpdateIds); - } - return idsToUpdate; - }; - - private updateCurrentIdsList = (componentType: string, leftPaletteObj: LeftPaletteDataObject): void=> { - this.removeNotUpdatedComponents(leftPaletteObj); - leftPaletteObj.currentUpdatingIdsList = this.findIdsToUpdate(leftPaletteObj); - //remove all components that needed update from current lists - if (leftPaletteObj.currentUpdatingIdsList.length > 0) { - leftPaletteObj.displayLeftPanelComponents = _.filter(leftPaletteObj.displayLeftPanelComponents, (component)=> { - return leftPaletteObj.currentUpdatingIdsList.indexOf(component.uniqueId) === -1; - }); - leftPaletteObj.fullDataLeftPaletteComponents = _.filter(leftPaletteObj.fullDataLeftPaletteComponents, (component)=> { - return leftPaletteObj.currentUpdatingIdsList.indexOf(component.uniqueId) === -1; - }); - } - }; - - private updateLeftPalette = (componentType, componentInternalType: string, leftPaletteData: LeftPaletteDataObject): void => { - if (leftPaletteData.currentUpdatingIdsList.length > 0) return; //this means the service is still performing update - this.restangular.one(this.getTypeUrl(componentType)).one('/latestversion/notabstract/uidonly').get({'internalComponentType': componentInternalType}).then((latestVersionUniqueIds: Array) => { - leftPaletteData.latestVersionAndIdsList = latestVersionUniqueIds; - leftPaletteData.currentUpdatingIdsList = _.map(latestVersionUniqueIds, 'uid') - - if (leftPaletteData.fullDataLeftPaletteComponents.length === 0) { //this is when first loading product or resource left palette - this.getPartialLastVersionFullComponents(componentType, componentInternalType, leftPaletteData); - } else { - this.updateCurrentIdsList(componentType, leftPaletteData); - if (leftPaletteData.currentUpdatingIdsList.length === 0) { - this.onFinishLoading(componentType, leftPaletteData); //when finish loading update view - return; - } - this.getPartialLastVersionFullComponents(componentType, componentInternalType, leftPaletteData); - } - }); - }; - - public getLeftPanelComponentsForDisplay = (componentType: string): Array => { - switch (componentType) { - case Utils.Constants.ComponentType.SERVICE: - return this.serviceLeftPaletteData.displayLeftPanelComponents; - case Utils.Constants.ComponentType.PRODUCT: - return this.productLeftPaletteData.displayLeftPanelComponents; - default: - return this.resourceLeftPaletteData.displayLeftPanelComponents; - } - }; - - public getFullDataComponentList = (componentType: string): Array => { - switch (componentType) { - case Utils.Constants.ResourceType.VL: - return this.vlData.fullDataLeftPaletteComponents; - case Utils.Constants.ComponentType.SERVICE: - return this.serviceLeftPaletteData.fullDataLeftPaletteComponents; - case Utils.Constants.ComponentType.PRODUCT: - return this.productLeftPaletteData.fullDataLeftPaletteComponents; - default : - return this.resourceLeftPaletteData.fullDataLeftPaletteComponents; - } - }; - - public getFullDataComponentListWithVls = (componentType: string): Array => { - let listPart1: Array; - let listPart2: Array; - if (componentType === Utils.Constants.ResourceType.VL) { - listPart1 = []; - listPart2 = this.getFullDataComponentList(Utils.Constants.ResourceType.VL); - } else { - listPart1 = this.getFullDataComponentList(componentType); - listPart2 = this.getFullDataComponentList(Utils.Constants.ResourceType.VL); - } - return listPart1.concat(listPart2); - }; - - public updateSpecificComponentLeftPalette = (component: Models.Components.Component, componentType: string): void => { - let listComponents: Array = this.getFullDataComponentList(componentType); - for (let i in listComponents) { - if (listComponents[i].uniqueId === component.uniqueId) { - listComponents[i] = component; - } - } - }; - - public updateComponentLeftPalette = (componentType): void => { - switch (componentType) { - case Utils.Constants.ResourceType.VL: - this.updateLeftPalette(Utils.Constants.ComponentType.RESOURCE, Utils.Constants.ResourceType.VL, this.vlData); - break; - case Utils.Constants.ComponentType.SERVICE: - this.updateLeftPalette(Utils.Constants.ComponentType.SERVICE, Utils.Constants.ComponentType.SERVICE, this.serviceLeftPaletteData); - break; - case Utils.Constants.ComponentType.PRODUCT: - this.updateLeftPalette(Utils.Constants.ComponentType.PRODUCT, Utils.Constants.ComponentType.SERVICE, this.productLeftPaletteData); - break; - default: - this.updateLeftPalette(Utils.Constants.ComponentType.RESOURCE, Utils.Constants.ResourceType.VF, this.resourceLeftPaletteData); - } - }; - } -} diff --git a/catalog-ui/app/scripts/services/configuration-ui-service.ts b/catalog-ui/app/scripts/services/configuration-ui-service.ts deleted file mode 100644 index 51eb3dcd9c..0000000000 --- a/catalog-ui/app/scripts/services/configuration-ui-service.ts +++ /dev/null @@ -1,49 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Services { - - 'use strict' - - interface IConfigurationUiService { - getConfigurationUi(): ng.IPromise; - } - - export class ConfigurationUiService implements IConfigurationUiService{ - - static '$inject' = ['$http', '$q','sdcConfig']; - private api: Models.IApi; - - constructor(private $http: ng.IHttpService, private $q: ng.IQService, sdcConfig: Models.IAppConfigurtaion){ - this.api = sdcConfig.api; - } - - getConfigurationUi = (): ng.IPromise =>{ - let defer = this.$q.defer(); - this.$http.get(this.api.root+this.api.GET_configuration_ui) - .success((result: any) => { - defer.resolve(result); - }); - return defer.promise; - } - } - - -} diff --git a/catalog-ui/app/scripts/services/cookie-service.ts b/catalog-ui/app/scripts/services/cookie-service.ts deleted file mode 100644 index b23a7dccde..0000000000 --- a/catalog-ui/app/scripts/services/cookie-service.ts +++ /dev/null @@ -1,95 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Services { - - 'use strict'; - - interface ICookieService { - getUserId(): string; - getFirstName(): string; - getLastName(): string; - getEmail(): string; - getUserIdSuffix(): string; - } - - export class CookieService implements ICookieService { - - static '$inject' = ['sdcConfig', '$document']; - private cookie: Sdc.Models.ICookie; - private cookiePrefix: string; - - - constructor(sdcConfig: Models.IAppConfigurtaion, private $document) { - this.cookie = sdcConfig.cookie; - - this.cookiePrefix = ''; - let junctionName: string = this.getCookieByName(this.cookie.junctionName); - if ((junctionName !== null) && (junctionName !== '')){ - this.cookiePrefix = this.cookie.prefix+junctionName+'!'; - } - } - - private getCookieByName = (cookieName: string): string => { - cookieName += '='; - let cookies: Array = this.$document[0].cookie.split(';'); - let cookieVal: string = ''; - cookies.forEach((cookie: string) => { - while(cookie.charAt(0) === ' '){ - cookie = cookie.substring(1); - } - if(cookie.indexOf(cookieName) === 0){ - cookieVal = cookie.substring(cookieName.length, cookie.length); - return; - } - }); - return cookieVal; - }; - - public getUserIdSuffix = (): string => { - return this.cookie.userIdSuffix; - }; - - public getUserId = (): string => { - let userIdCookieName: string = this.cookiePrefix+this.cookie.userIdSuffix; - let userId: string = this.getCookieByName(userIdCookieName); - return userId; - }; - - public getFirstName = (): string => { - let firstNameCookieName: string = this.cookiePrefix+this.cookie.userFirstName; - let firstName: string = this.getCookieByName(firstNameCookieName); - return firstName; - }; - - public getLastName = (): string => { - let lastNameCookieName: string = this.cookiePrefix+this.cookie.userLastName; - let lastName: string = this.getCookieByName(lastNameCookieName); - return lastName; - }; - - public getEmail = (): string => { - let emailCookieName: string = this.cookiePrefix+this.cookie.userEmail; - let email: string = this.getCookieByName(emailCookieName); - return email; - }; - - } -} diff --git a/catalog-ui/app/scripts/services/data-types-service.ts b/catalog-ui/app/scripts/services/data-types-service.ts deleted file mode 100644 index 0e5fca8b5d..0000000000 --- a/catalog-ui/app/scripts/services/data-types-service.ts +++ /dev/null @@ -1,129 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Services { - - 'use strict'; - - export interface IDataTypesService { - //declare methods - getAllDataTypes():ng.IPromise; - getFirsLevelOfDataTypeProperties(dataTypeName:string, dataTypes:Models.DataTypesMap):Array; - isDataTypeForSchemaType(property:Models.SchemaProperty, types:Models.DataTypesMap):boolean; - isDataTypeForPropertyType(property:Models.PropertyModel, types:Models.DataTypesMap):boolean; - isDataTypeForDataTypePropertyType(property:Models.DataTypePropertyModel, types:Models.DataTypesMap):boolean; - } - - export class DataTypesService implements IDataTypesService { - - static '$inject' = [ - 'sdcConfig', - '$q', - '$http' - ]; - - constructor(private sdcConfig:Models.IAppConfigurtaion, - private $q:ng.IQService, - private $http:ng.IHttpService) { - } - - //if the dt derived from simple- return the first parent type, else- return null - private getTypeForDataTypeDerivedFromSimple = (dataTypeName:string, dataTypes:Models.DataTypesMap):string => { - /////////temporary hack for tosca primitives/////////////////////// - if(!dataTypes[dataTypeName]){ - return 'string'; - } - /////////////////////////////////////////////////////////////////// - if(dataTypes[dataTypeName].derivedFromName == "tosca.datatypes.Root" || dataTypes[dataTypeName].properties){ - return null; - } - if(Utils.Constants.PROPERTY_DATA.SIMPLE_TYPES.indexOf(dataTypes[dataTypeName].derivedFromName) > -1 ){ - return dataTypes[dataTypeName].derivedFromName - } - return this.getTypeForDataTypeDerivedFromSimple(dataTypes[dataTypeName].derivedFromName,dataTypes); - }; - - public getAllDataTypes = ():ng.IPromise => { - let deferred = this.$q.defer(); - this.$http({ - url: this.sdcConfig.api.root + this.sdcConfig.api.component_api_root + "dataTypes", - method: "get" - }) - .success((response:any) => { - deferred.resolve(response); - }) - .error((err) => { - deferred.reject(err); - }); - return deferred.promise; - }; - - //return list of data type properties and all its parents properties - //(not include the properties of its properties, in case this data type has not primitive properties) - public getFirsLevelOfDataTypeProperties = (dataTypeName:string, dataTypes:Models.DataTypesMap):Array => { - let properties = dataTypes[dataTypeName].properties || []; - if(dataTypes[dataTypeName].derivedFromName != "tosca.datatypes.Root" ){ - properties = this.getFirsLevelOfDataTypeProperties(dataTypes[dataTypeName].derivedFromName,dataTypes).concat(properties); - } - return properties; - }; - - //return false when type= data type (=not simple type) that not derived from simple type - public isDataTypeForSchemaType = (property:Models.SchemaProperty, types:Models.DataTypesMap):boolean=>{ - property.simpleType=""; - if(property.type && Utils.Constants.PROPERTY_DATA.TYPES.indexOf(property.type) > -1){ - return false; - } - let simpleType = this.getTypeForDataTypeDerivedFromSimple(property.type, types); - if(simpleType){ - property.simpleType=simpleType; - return false; - } - return true; - }; - - public isDataTypeForPropertyType = (property:Models.PropertyModel, types:Models.DataTypesMap):boolean=>{ - property.simpleType=""; - if(property.type && Utils.Constants.PROPERTY_DATA.TYPES.indexOf(property.type) > -1){ - return false; - } - let simpleType = this.getTypeForDataTypeDerivedFromSimple(property.type, types); - if(simpleType){ - property.simpleType=simpleType; - return false; - } - return true; - }; - - public isDataTypeForDataTypePropertyType = (property:Models.DataTypePropertyModel, types:Models.DataTypesMap):boolean=>{ - property.simpleType=""; - if(property.type && Utils.Constants.PROPERTY_DATA.TYPES.indexOf(property.type) > -1){ - return false; - } - let simpleType = this.getTypeForDataTypeDerivedFromSimple(property.type, types); - if(simpleType){ - property.simpleType=simpleType; - return false; - } - return true; - }; - - } -} diff --git a/catalog-ui/app/scripts/services/ecomp-service.ts b/catalog-ui/app/scripts/services/ecomp-service.ts deleted file mode 100644 index d7910bd612..0000000000 --- a/catalog-ui/app/scripts/services/ecomp-service.ts +++ /dev/null @@ -1,54 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Services { - - 'use strict'; - - interface IEcompHeaderService { - getMenuItems(userId): ng.IPromise>; - } - - export class EcompHeaderService implements IEcompHeaderService { - static '$inject' = ['$http', '$q', 'sdcConfig']; - private api:Models.IApi; - - constructor(private $http:ng.IHttpService, - private $q:ng.IQService, - private sdcConfig:Models.IAppConfigurtaion) { - this.api = sdcConfig.api; - } - - getMenuItems = (userId):ng.IPromise> => { - let defer = this.$q.defer>(); - //defer.resolve(this.mockData); - this.$http.get(this.api.root + this.api.GET_ecomp_menu_items.replace(':userId', userId)) - .success((response:any) => { - defer.resolve(response); - }) - .error((response) => { - defer.reject(response); - }); - - return defer.promise; - }; - - } -} diff --git a/catalog-ui/app/scripts/services/entity-service.ts b/catalog-ui/app/scripts/services/entity-service.ts deleted file mode 100644 index a9d5a421ce..0000000000 --- a/catalog-ui/app/scripts/services/entity-service.ts +++ /dev/null @@ -1,114 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Services { - - 'use strict'; - - interface IEntityService { - getAllComponents(): ng.IPromise>; - } - - interface IComponentsArray { - services:Array; - resources:Array; - products:Array; - } - - export class EntityService implements IEntityService { - static '$inject' = ['$http', '$q', 'sdcConfig', 'Sdc.Services.SharingService','ComponentFactory','Sdc.Services.CacheService']; - private api:Models.IApi; - - constructor(private $http:ng.IHttpService, - private $q:ng.IQService, - private sdcConfig:Models.IAppConfigurtaion, - private sharingService:Sdc.Services.SharingService, - private ComponentFactory: Sdc.Utils.ComponentFactory, - private cacheService:Sdc.Services.CacheService - ) { - this.api = sdcConfig.api; - } - - getCatalog = ():ng.IPromise> => { - let defer = this.$q.defer>(); - this.$http.get(this.api.root + this.api.GET_catalog) - .success((followedResponse:IComponentsArray) => { - - let componentsList:Array = new Array(); - - followedResponse.services.forEach((serviceResponse: Models.Components.Service) => { - let component:Models.Components.Service = this.ComponentFactory.createService(serviceResponse); // new Models.Components.Service(serviceResponse); - componentsList.push(component); - this.sharingService.addUuidValue(component.uniqueId, component.uuid); - }); - - followedResponse.resources.forEach((resourceResponse:Models.Components.Resource) => { - let component:Models.Components.Resource = this.ComponentFactory.createResource(resourceResponse); - componentsList.push(component); - this.sharingService.addUuidValue(component.uniqueId, component.uuid); - }); - - followedResponse.products.forEach((productResponse:Models.Components.Product) => { - - let component:Models.Components.Product = this.ComponentFactory.createProduct(productResponse); - componentsList.push(component); - this.sharingService.addUuidValue(component.uniqueId, component.uuid); - }); - - this.cacheService.set('breadcrumbsComponents',componentsList); - defer.resolve(componentsList); - }) - .error((responce) => { - defer.reject(responce); - }); - return defer.promise; - }; - - getAllComponents = ():ng.IPromise> => { - let defer = this.$q.defer>(); - this.$http.get(this.api.root + this.api.GET_element) - .success((componentResponse:IComponentsArray) => { - let componentsList:Array = []; - - componentResponse.services && componentResponse.services.forEach((serviceResponse:Models.Components.Service) => { - let component:Models.Components.Service = this.ComponentFactory.createService(serviceResponse); - componentsList.push(component); - this.sharingService.addUuidValue(component.uniqueId, component.uuid); - }); - - componentResponse.resources && componentResponse.resources.forEach((resourceResponse:Models.Components.Resource) => { - let component:Models.Components.Resource = this.ComponentFactory.createResource(resourceResponse); - componentsList.push(component); - this.sharingService.addUuidValue(component.uniqueId, component.uuid); - }); - - componentResponse.products && componentResponse.products.forEach((productsResponse:Models.Components.Product) => { - let component:Models.Components.Product = this.ComponentFactory.createProduct(productsResponse); - componentsList.push(component); - this.sharingService.addUuidValue(component.uniqueId, component.uuid); - }); - this.cacheService.set('breadcrumbsComponents',componentsList); - defer.resolve(componentsList); - }); - - return defer.promise; - }; - } -} diff --git a/catalog-ui/app/scripts/services/event-listener-service.ts b/catalog-ui/app/scripts/services/event-listener-service.ts deleted file mode 100644 index 67afd65c56..0000000000 --- a/catalog-ui/app/scripts/services/event-listener-service.ts +++ /dev/null @@ -1,78 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/** - * Created by obarda on 7/4/2016. - */ -/// -module Sdc.Services { - - 'use strict'; - - interface IEventListenerService { - - } - - interface ICallbackData { - callback:Function; - args:any[]; - } - - export class EventListenerService implements IEventListenerService { - - public observerCallbacks:Utils.Dictionary = new Utils.Dictionary>(); - - //register an observer + callback - public registerObserverCallback = (eventName:string, callback:Function, ...args) => { - let callbackData = { - callback: callback, - args: args - } - - if (this.observerCallbacks.containsKey(eventName)) { - let callbacks = this.observerCallbacks.getValue(eventName); - - // Only insert the callback if the callback is different from existing callbacks. - for (let i = 0; i < callbacks.length; i++) { - if (callbacks[i].toString() === callback.toString()) { - return; // Do not add this callback. - } - } - - callbacks.push(callbackData); - this.observerCallbacks.setValue(eventName, callbacks); - } else { - this.observerCallbacks.setValue(eventName, [callbackData]); - } - }; - - //unregister an observer - public unRegisterObserver = (eventName:string) => { - if (this.observerCallbacks.containsKey(eventName)) { - this.observerCallbacks.remove(eventName); - } - }; - - public notifyObservers = function (eventName:string, ...args) { - _.forEach(this.observerCallbacks.getValue(eventName), (callbackData:ICallbackData) => { - callbackData.callback(...args); - }); - }; - } -} diff --git a/catalog-ui/app/scripts/services/header-interceptor.ts b/catalog-ui/app/scripts/services/header-interceptor.ts deleted file mode 100644 index 7f362d3f8c..0000000000 --- a/catalog-ui/app/scripts/services/header-interceptor.ts +++ /dev/null @@ -1,93 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Services { - 'use strict'; - - //Method name should be exactly "response" - http://docs.angularjs.org/api/ng/service/$http - export interface IInterceptor { - request: Function; - - } - - export class HeaderInterceptor implements IInterceptor { - public static $inject = [ - '$log', - '$injector', - '$q', - 'uuid4', - 'Sdc.Services.SharingService', - 'sdcConfig', - '$location' - - - ]; - - public static Factory($log: ng.ILogService, - $injector: ng.auto.IInjectorService, - $q: ng.IQService, - uuid4: any, - sharingService: Sdc.Services.SharingService, - sdcConfig: Models.IAppConfigurtaion, - $location: ng.ILocationService) { - return new HeaderInterceptor($log, $injector, $q, uuid4, sharingService, sdcConfig, $location); - } - - constructor(private $log: ng.ILogService, - private $injector: ng.auto.IInjectorService, - private $q: ng.IQService, - private uuid4: any, - private sharingService: Sdc.Services.SharingService, - private sdcConfig: Models.IAppConfigurtaion, - private $location: ng.ILocationService) { - this.$log.debug('initializing AuthenticationInterceptor'); - } - - public request = (requestSuccess): ng.IPromise => { - requestSuccess.headers['X-ECOMP-RequestID'] = this.uuid4.generate(); - /** - * For every request to the server, that the service id, or resource id is sent in the URL, need to pass UUID in the header. - * Check if the unique id exists in uuidMap, and if so get the UUID and add it to the header. - */ - let map: Utils.Dictionary = this.sharingService.getUuidMap(); - if (map && requestSuccess.url.indexOf(this.sdcConfig.api.root) === 0) { - this.$log.debug("url: " + requestSuccess.url); - map.forEach((key: string) => { - if (requestSuccess.url.indexOf(key) !== -1) { - requestSuccess.headers['X-ECOMP-ServiceID'] = this.sharingService.getUuidValue(key); - } - }); - } - return requestSuccess; - }; - - public response = (responseSuccess): ng.IPromise => { - let responseData = responseSuccess.data; - if (responseData) { - let data = JSON.stringify(responseData); - if (data && (data.indexOf("Global Logon: Login") > 0)) { - this.$location.path('dashboard/welcome'); - window.location.reload(); - } - } - return responseSuccess; - } - } -} diff --git a/catalog-ui/app/scripts/services/http-error-interceptor.ts b/catalog-ui/app/scripts/services/http-error-interceptor.ts deleted file mode 100644 index c04659dfec..0000000000 --- a/catalog-ui/app/scripts/services/http-error-interceptor.ts +++ /dev/null @@ -1,118 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Services { - 'use strict'; - - export class HttpErrorInterceptor { - public static $inject = ['$injector', '$q']; - - public static Factory($injector: ng.auto.IInjectorService, $q: angular.IQService) { - return new HttpErrorInterceptor($injector, $q); - } - - constructor(private $injector: ng.auto.IInjectorService, private $q: angular.IQService) { - } - - public formatMessageArrays = (message: string, variables: Array)=> { - return message.replace(/\[%(\d+)\]/g, function (_, m) { - let tmp = []; - let list = variables[--m].split(";"); - list.forEach(function (item) { - tmp.push("
  1. " + item + "
  2. "); - }); - return "
      " + tmp.join("") + "
    "; - }); - }; - - public responseError = (rejection: any)=> { - - let text: string; - let variables; - let messageId: string = ""; - let isKnownException = false; - - if (rejection.data && rejection.data.serviceException) { - text = rejection.data.serviceException.text; - variables = rejection.data.serviceException.variables; - messageId = rejection.data.serviceException.messageId; - isKnownException = true; - } else if (rejection.data && rejection.data.requestError && rejection.data.requestError.serviceException) { - text = rejection.data.requestError.serviceException.text; - variables = rejection.data.requestError.serviceException.variables; - messageId = rejection.data.requestError.serviceException.messageId; - isKnownException = true; - } else if (rejection.data && rejection.data.requestError && rejection.data.requestError.policyException) { - text = rejection.data.requestError.policyException.text; - variables = rejection.data.requestError.policyException.variables; - messageId = rejection.data.requestError.policyException.messageId; - isKnownException = true; - } else if (rejection.data) { - text = 'Wrong error format from server'; - console.error(text); - isKnownException = false; - } - - let data: Sdc.ViewModels.IServerMessageModalModel; - if (isKnownException) { - // Remove the "Error: " text at the begining - if (text.trim().indexOf("Error:") === 0) { - text = text.replace("Error:", "").trim(); - } - - //mshitrit DE199895 bug fix - let count: number = 0; - variables.forEach(function (item) { - variables[count] = item ? item.replace('<', '<').replace('>', '>') : ''; - count++; - }); - - // Format the message in case has array to
    • - text = this.formatMessageArrays(text, variables); - - // Format the message %1 %2 - text = text.format(variables); - - // Need to inject the MessageService manually to prevent circular dependencies (because MessageService use $templateCache that use $http). - data = { - title: 'Error', - message: text, - messageId: messageId, - status: rejection.status, - severity: Utils.Constants.SEVERITY.ERROR - }; - } else { - // Need to inject the MessageService manually to prevent circular dependencies (because MessageService use $templateCache that use $http). - data = { - title: 'Error', - message: rejection.status !== -1 ? rejection.statusText : "Error getting response from server", - messageId: messageId, - status: rejection.status, - severity: Utils.Constants.SEVERITY.ERROR - }; - } - - let modalsHandler = this.$injector.get('ModalsHandler'); - modalsHandler.openServerMessageModal(data); - - return this.$q.reject(rejection); - } - } -} diff --git a/catalog-ui/app/scripts/services/loader-service.ts b/catalog-ui/app/scripts/services/loader-service.ts deleted file mode 100644 index 6a1a1febe1..0000000000 --- a/catalog-ui/app/scripts/services/loader-service.ts +++ /dev/null @@ -1,26 +0,0 @@ -/** - * Created by obarda on 3/13/2016. - */ -/// -module Sdc.Services { - 'use strict'; - - export class LoaderService { - - - constructor(private eventListenerService: Services.EventListenerService) { - - } - - public showLoader(...args) { - this.eventListenerService.notifyObservers(Utils.Constants.EVENTS.SHOW_LOADER_EVENT, ...args); - } - - public hideLoader(...args) { - this.eventListenerService.notifyObservers(Utils.Constants.EVENTS.HIDE_LOADER_EVENT, ...args); - } - - } - - LoaderService.$inject = ['EventListenerService']; -} diff --git a/catalog-ui/app/scripts/services/onboarding-service.ts b/catalog-ui/app/scripts/services/onboarding-service.ts deleted file mode 100644 index c09871d67f..0000000000 --- a/catalog-ui/app/scripts/services/onboarding-service.ts +++ /dev/null @@ -1,103 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Services { - - 'use strict'; - - interface IOnboardingService { - getOnboardingComponents(): ng.IPromise>; - getComponentFromCsarUuid(csarUuid:string): ng.IPromise; - downloadOnboardingCsar(packageId:string):ng.IPromise; - } - - export class OnboardingService implements IOnboardingService { - - static '$inject' = ['$http', '$q', 'sdcConfig', 'ComponentFactory']; - private api:Models.IApi; - - constructor(private $http:ng.IHttpService, - private $q:ng.IQService, - private sdcConfig:Models.IAppConfigurtaion, - private ComponentFactory: Sdc.Utils.ComponentFactory - ) { - this.api = sdcConfig.api; - } - - getOnboardingComponents = ():ng.IPromise> => { - let defer = this.$q.defer>(); - this.$http.get(this.api.GET_onboarding) - .success((response:any) => { - let onboardingComponents:Array = response.results; - let componentsList:Array = new Array(); - - onboardingComponents.forEach((obc: Models.ICsarComponent) => { - let component:Models.Components.Component = this.ComponentFactory.createFromCsarComponent(obc); - componentsList.push(component); - }); - - defer.resolve(componentsList); - }) - .error((response) => { - defer.reject(response); - }); - - return defer.promise; - }; - - downloadOnboardingCsar = (packageId:string):ng.IPromise => { - let defer = this.$q.defer(); - this.$http({ - url: this.api.GET_onboarding + "/" + packageId, - method: "get", - responseType: "blob" - }) - .success((response:any) => { - defer.resolve(response); - }) - .error((err) => { - defer.reject(err); - }); - - return defer.promise; - }; - - getComponentFromCsarUuid = (csarUuid:string):ng.IPromise => { - let defer = this.$q.defer(); - this.$http.get(this.api.root + this.api.GET_component_from_csar_uuid.replace(':csar_uuid', csarUuid)) - .success((response:any) => { - let component:Models.Components.Resource; - // If the status is 400, this means that the component not found. - // I do not want to return error from server, because a popup will appear in client with the error. - // So returning success (200) with status 400. - if (response.status!==400) { - component = new Models.Components.Resource(null, this.$q, response); - } - defer.resolve(component); - }) - .error((response) => { - defer.reject(response); - }); - - return defer.promise; - }; - - } -} diff --git a/catalog-ui/app/scripts/services/progress-service.ts b/catalog-ui/app/scripts/services/progress-service.ts deleted file mode 100644 index caa463fc98..0000000000 --- a/catalog-ui/app/scripts/services/progress-service.ts +++ /dev/null @@ -1,112 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/** - * Created by obarda on 7/7/2016. - */ -/** - * Created by obarda on 7/4/2016. - */ -/// -module Sdc.Services { - - 'use strict'; - import IIntervalService = angular.IIntervalService; - - export class ProgressService { - - public progresses:any = {}; - - static '$inject' = ['$interval']; - - constructor( - protected $interval:any - ) {} - - private totalProgress:number = 90; - private startProgress:number = 10; - private onePercentIntervalSeconds:number = 5; - private createComponentInterval; - - public setProgressValue(name:string, value:number):void { - if (!this.progresses[name]) { - this.progresses[name]={}; - } - this.progresses[name].value = value; - } - - public getProgressValue(name:string):number{ - if (this.progresses[name]){ - return this.progresses[name].value; - } - return 0; - } - - public deleteProgressValue(name:string):void{ - this.stopCreateComponentInterval(); - delete this.progresses[name]; - } - - - private stopCreateComponentInterval = ():void => { - this.$interval.cancel(this.createComponentInterval); - }; - - - - public initCreateComponentProgress = (componentId:string):void => { - var progressValue:number = this.startProgress; - if(!this.getProgressValue(componentId)){ - this.stopCreateComponentInterval(); - this.setProgressValue(componentId, this.startProgress); - this.createComponentInterval = this.$interval(():void => { - //TODO replace getProgressMockData to real data after BE provide the API - var progressValue = this.getProgressMockData(componentId); - if (progressValue<=this.totalProgress ) { - this.setProgressValue(componentId, progressValue); - } else { - /** - * Currently the progress is not really checking against the BE. - * So the progress can pass 100. So the workaround for now, in case we pass 90 (totalProgress) - * stop the interval, so the progress will be kept at 90 until the promise will return value and set - * the progress to 100. - */ - this.deleteProgressValue(componentId); - } - }, this.onePercentIntervalSeconds*1000); - } - - }; - - - private getProgressMockData =(id:string):number =>{ - var progressValue = this.getProgressValue(id); - if(progressValue>0){ - progressValue = progressValue + 1; - } - //if not finish always stay on 90% - if (progressValue>90){ - progressValue =90; - } - - return progressValue; - } - - } -} diff --git a/catalog-ui/app/scripts/services/relation-icons-service.ts b/catalog-ui/app/scripts/services/relation-icons-service.ts deleted file mode 100644 index 3d3b494f16..0000000000 --- a/catalog-ui/app/scripts/services/relation-icons-service.ts +++ /dev/null @@ -1,61 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Services { - 'use strict'; - - export interface IRelationIconsService { - getIconPath(iconName:string):string; - } - - export class RelationIconsService implements IRelationIconsService { - constructor() {} - private icons: Array = [ - 'AttachesTo', - 'BindsTo', - 'DependsOn', - 'HostedOn', - 'LinksTo', - 'RoutesTo' - ]; - - public getIconPath = (relationshipType:string): string => { - let result:string = 'ConnectedTo'; - let baseUrl:string = '/styles/images/relationship-icons/'; - - if (relationshipType) { - let arr = relationshipType.split('.'); // looks like tosca.relationships.AttachesTo - relationshipType = arr[arr.length - 1]; - if (this.icons.indexOf(relationshipType) > -1) { - result = relationshipType; - } - if('LinksTo'==result){ - return ''; - } - } - - return baseUrl + result + '.svg'; - } - - } -} - - - diff --git a/catalog-ui/app/scripts/services/sdc-version-service.ts b/catalog-ui/app/scripts/services/sdc-version-service.ts deleted file mode 100644 index 1744381bca..0000000000 --- a/catalog-ui/app/scripts/services/sdc-version-service.ts +++ /dev/null @@ -1,48 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Services { - 'use strict'; - - export interface ISdcVersionService { - getVersion():ng.IPromise; - } - export class SdcVersionService implements ISdcVersionService{ - - static '$inject' = ['$http', '$q','sdcConfig']; - private api: Models.IApi; - - constructor(private $http: ng.IHttpService, private $q: ng.IQService, sdcConfig: Models.IAppConfigurtaion){ - this.api = sdcConfig.api; - } - - public getVersion():ng.IPromise{ - let defer = this.$q.defer>(); - let url = this.api.root + this.api.GET_SDC_Version; - console.log("======================>" + url); - this.$http.get(url) - .success((version: any) => { - defer.resolve(version); - }); - return defer.promise; - } - } -} - diff --git a/catalog-ui/app/scripts/services/sharing-service.ts b/catalog-ui/app/scripts/services/sharing-service.ts deleted file mode 100644 index 14c3158611..0000000000 --- a/catalog-ui/app/scripts/services/sharing-service.ts +++ /dev/null @@ -1,41 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Services { - 'use strict'; - - export class SharingService { - - private uuidMap: Utils.Dictionary = new Utils.Dictionary(); - - public getUuidValue = (uniqueId:string):string => { - return this.uuidMap.getValue(uniqueId); - }; - - public addUuidValue = (uniqueId:string, uuid:string):void => { - this.uuidMap.setValue(uniqueId, uuid); - }; - - public getUuidMap = ():Utils.Dictionary => { - return this.uuidMap; - }; - - } -} diff --git a/catalog-ui/app/scripts/services/url-tobase64-service.ts b/catalog-ui/app/scripts/services/url-tobase64-service.ts deleted file mode 100644 index 2d6980da3f..0000000000 --- a/catalog-ui/app/scripts/services/url-tobase64-service.ts +++ /dev/null @@ -1,52 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Services { - 'use strict'; - - export interface IUrlToBase64Service { - downloadUrl(url:string, callback:Function):void; - } - - export class UrlToBase64Service implements IUrlToBase64Service { - constructor() {} - - public downloadUrl = (url:string, callback:Function): void => { - let xhr :any = new XMLHttpRequest(); - - xhr.onload = ():void => { - let reader = new FileReader(); - reader.onloadend = ():void => { - if (xhr.status === 200) { - callback(reader.result); - } else { - callback(null); - } - }; - reader.readAsDataURL(xhr.response); - }; - xhr.open('GET', url); - xhr.responseType = 'blob'; - xhr.send(); - } - - } -} - diff --git a/catalog-ui/app/scripts/services/user-resource-service.ts b/catalog-ui/app/scripts/services/user-resource-service.ts deleted file mode 100644 index 7414e2221e..0000000000 --- a/catalog-ui/app/scripts/services/user-resource-service.ts +++ /dev/null @@ -1,123 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Services { - 'use strict'; - - // Define an interface of the object you want to use, providing it's properties - export interface IUserResource extends Models.IUserProperties,ng.resource.IResource{ - - } - - // Define your resource, adding the signature of the custom actions - export interface IUserResourceClass extends ng.resource.IResourceClass{ - authorize(): IUserResource; - getLoggedinUser(): IUserResource; - setLoggedinUser(user: IUserResource): void; - getAllUsers(success?: Function, error?: Function): Array; - createUser(IResourceResource, success?: Function, error?: Function): void; - editUserRole(IResourceResource, success?: Function, error?: Function): void; - deleteUser(IResourceResource, success?: Function, error?: Function): void; - } - - export class UserResourceService{ - - public static getResource = ( - $resource: ng.resource.IResourceService, - sdcConfig: Models.IAppConfigurtaion, - cookieService: Services.CookieService - ): IUserResourceClass => { - - let url: string = sdcConfig.api.root+sdcConfig.api.GET_user; - let authorizeUrl: string = sdcConfig.api.root+sdcConfig.api.GET_user_authorize; - let authorizeActionHeaders: any = {}; - let cookie: Models.ICookie = sdcConfig.cookie; - authorizeActionHeaders[cookie.userFirstName] = cookieService.getFirstName(); - authorizeActionHeaders[cookie.userLastName] = cookieService.getLastName(); - authorizeActionHeaders[cookie.userEmail] = cookieService.getEmail(); - authorizeActionHeaders[cookie.userIdSuffix] = cookieService.getUserId(); - - // Define your custom actions here as IActionDescriptor - let authorizeAction : ng.resource.IActionDescriptor = { - method: 'GET', - isArray: false, - url: authorizeUrl, - headers: authorizeActionHeaders - }; - - let getAllUsers : ng.resource.IActionDescriptor = { - method: 'GET', - isArray: true, - url: sdcConfig.api.root + sdcConfig.api.GET_all_users - }; - - let editUserRole : ng.resource.IActionDescriptor = { - method: 'POST', - isArray: false, - url: sdcConfig.api.root + sdcConfig.api.POST_edit_user_role, - transformRequest: (data, headers)=>{ - data.payloadData = undefined; - data.payloadName = undefined; - return JSON.stringify(data); - } - }; - - let deleteUser : ng.resource.IActionDescriptor = { - method: 'DELETE', - isArray: false, - url: sdcConfig.api.root + sdcConfig.api.DELETE_delete_user - }; - - let createUser : ng.resource.IActionDescriptor = { - method: 'POST', - isArray: false, - url: sdcConfig.api.root + sdcConfig.api.POST_create_user, - transformRequest: (data, headers)=>{ - data.payloadData = undefined; - data.payloadName = undefined; - return JSON.stringify(data); - } - }; - let userResource: IUserResourceClass = $resource( - url, - { id: '@id'}, - { - authorize: authorizeAction, - getAllUsers: getAllUsers, - createUser: createUser, - editUserRole:editUserRole, - deleteUser:deleteUser} - ); - - let _loggedinUser: IUserResource; - - userResource.getLoggedinUser = () => { - return _loggedinUser; - }; - - userResource.setLoggedinUser = (loggedinUser: IUserResource) => { - _loggedinUser = loggedinUser; - }; - - return userResource; - } - } - UserResourceService.getResource.$inject = ['$resource', 'sdcConfig', 'Sdc.Services.CookieService']; -} diff --git a/catalog-ui/app/scripts/utils/artifacts-utils.ts b/catalog-ui/app/scripts/utils/artifacts-utils.ts deleted file mode 100644 index 439a0e98d0..0000000000 --- a/catalog-ui/app/scripts/utils/artifacts-utils.ts +++ /dev/null @@ -1,121 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Utils { - export class ArtifactsUtils { - - static '$inject' = [ - '$filter', - '$templateCache', - '$modal' - ]; - - constructor(private $filter:ng.IFilterService, - private $templateCache:ng.ITemplateCacheService, - private $modal:ng.ui.bootstrap.IModalService) { - - } - - public getArtifactTypeByState(currentState:string):string { - switch (currentState) { - case "workspace.composition.lifecycle": - return "interface"; - case "workspace.composition.api": - return "api"; - case "workspace.composition.deployment": - return "deployment"; - default: - return "normal"; - } - } - - public getTitle(artifactType:string, selectedComponent:Models.Components.Component):string { - switch (artifactType) { - case "interface": - return "Lifecycle Management"; - case "api": - return "API Artifacts"; - case "deployment": - return "Deployment Artifacts"; - default: - if (!selectedComponent) { - return ""; - } else { - return this.$filter("resourceName")(selectedComponent.name) + ' Artifacts'; - } - } - } - - public setArtifactType = (artifact:Models.ArtifactModel, artifactType:string):void => { - switch (artifactType) { - case "api": - artifact.artifactGroupType = 'SERVICE_API'; - break; - case "deployment": - artifact.artifactGroupType = 'DEPLOYMENT'; - break; - default: - artifact.artifactGroupType = 'INFORMATIONAL'; - break; - } - }; - - public isLicenseType = (artifactType:string) :boolean => { - let isLicense:boolean = false; - - if(Utils.Constants.ArtifactType.VENDOR_LICENSE === artifactType || Utils.Constants.ArtifactType.VF_LICENSE === artifactType) { - isLicense = true; - } - - return isLicense; - }; - - public removeArtifact = (artifact:Models.ArtifactModel, artifactsArr:Array):void => { - - if (!artifact.mandatory && (Utils.Constants.ArtifactGroupType.INFORMATION == artifact.artifactGroupType || - Utils.Constants.ArtifactGroupType.DEPLOYMENT == artifact.artifactGroupType)) { - _.remove(artifactsArr, {uniqueId: artifact.uniqueId}); - } - else { - let artifactToDelete = _.find(artifactsArr, {uniqueId: artifact.uniqueId}); - - delete artifactToDelete.esId; - delete artifactToDelete.description; - delete artifactToDelete.artifactName; - delete artifactToDelete.apiUrl; - } - }; - - public addAnotherAfterSave(scope:Sdc.ViewModels.IArtifactResourceFormViewModelScope) { - let newArtifact = new Models.ArtifactModel(); - this.setArtifactType(newArtifact, scope.artifactType); - scope.editArtifactResourceModel.artifactResource = newArtifact; - - scope.forms.editForm['description'].$setPristine(); - if(scope.forms.editForm['artifactLabel']){ - scope.forms.editForm['artifactLabel'].$setPristine(); - } - if(scope.forms.editForm['type']){ - scope.forms.editForm['type'].$setPristine(); - } - - } - } -} diff --git a/catalog-ui/app/scripts/utils/change-lifecycle-state-handler.ts b/catalog-ui/app/scripts/utils/change-lifecycle-state-handler.ts deleted file mode 100644 index 7722a899b9..0000000000 --- a/catalog-ui/app/scripts/utils/change-lifecycle-state-handler.ts +++ /dev/null @@ -1,151 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/** - * Created by obarda on 2/11/2016. - */ -/// -module Sdc.Utils { - - export class ChangeLifecycleStateHandler { - - static '$inject' = [ - 'sdcConfig', - 'sdcMenu', - 'ComponentFactory', - '$templateCache', - '$filter', - '$modal', - 'ModalsHandler' - ]; - - constructor( - private sdcConfig:Models.IAppConfigurtaion, - private sdcMenu:Models.IAppMenu, - private ComponentFactory: Sdc.Utils.ComponentFactory, - private $templateCache:ng.ITemplateCacheService, - private $filter:ng.IFilterService, - private $modal:ng.ui.bootstrap.IModalService, - private ModalsHandler: Utils.ModalsHandler - - ) { - - } - - changeLifecycleState = (component:Models.Components.Component, data:any, scope:any, onSuccessCallback?: Function, onErrorCallback?: Function):void => { - - let self = this; - - let getContacts = (component:Models.Components.Component):string =>{ - let testers = this.sdcConfig.testers; - let result:string = testers[component.componentType][component.categories[0].name]? - testers[component.componentType][component.categories[0].name]: - testers[component.componentType]['default']; - return result; - }; - - let onSuccess = (newComponent:Models.Components.Component):void => { - //scope.isLoading = false; - console.info(component.componentType.toLowerCase + ' change state ' , newComponent); - if(onSuccessCallback) { - onSuccessCallback(self.ComponentFactory.createComponent(newComponent)); - } - }; - - let onError = (error):void => { - scope.isLoading = false; - console.info('Failed to changeLifecycleState to ', data.url); - if(onErrorCallback) { - onErrorCallback(error); - } - }; - - let comment:Models.AsdcComment = new Models.AsdcComment(); - if (data.alertModal) { - // Show alert dialog if defined in menu.json - //------------------------------------------------- - let onOk = (confirmationText):void => { - comment.userRemarks = confirmationText; - scope.isLoading = true; - component.changeLifecycleState(data.url, comment).then(onSuccess, onError); - }; - - let onCancel = ():void => { - console.info('Cancel pressed'); - scope.isLoading = false; - }; - - let modalTitle = this.sdcMenu.alertMessages[data.alertModal].title; - let modalMessage = this.sdcMenu.alertMessages[data.alertModal].message.format([component.componentType.toLowerCase()]); - this.ModalsHandler.openAlertModal(modalTitle, modalMessage).then(onOk, onCancel); - } else if (data.confirmationModal) { - // Show confirmation dialog if defined in menu.json - //------------------------------------------------- - let onOk = (confirmationText):void => { - comment.userRemarks = confirmationText; - scope.isLoading = true; - component.changeLifecycleState(data.url, comment).then(onSuccess, onError); - }; - - let onCancel = ():void => { - console.info('Cancel pressed'); - scope.isLoading = false; - }; - - let modalTitle = this.sdcMenu.confirmationMessages[data.confirmationModal].title; - let modalMessage = this.sdcMenu.confirmationMessages[data.confirmationModal].message.format([component.componentType.toLowerCase()]); - let modalShowComment = this.sdcMenu.confirmationMessages[data.confirmationModal].showComment; - this.ModalsHandler.openConfirmationModal(modalTitle, modalMessage, modalShowComment).then(onOk, onCancel); - - } else if (data.emailModal) { - // Show email dialog if defined in menu.json - //------------------------------------------------- - let onOk = (resource):void => { - if (resource){ - onSuccess(resource); - } else { - onError("Error changing life cycle state"); - } - }; - - let onCancel = ():void => { - scope.isLoading = false; - }; - - let emailModel: ViewModels.IEmailModalModel = {}; - emailModel.email = {}; - emailModel.data = {}; - emailModel.title = this.$filter('translate')("EMAIL_MODAL_TITLE"); - emailModel.email.to = getContacts(component); - emailModel.email.subject = this.$filter('translate')("EMAIL_MODAL_SUBJECT", "{'entityName': '" + this.$filter('resourceName')(component.name) + "','entityVersion': '" + component.version + "'}"); - emailModel.email.message = ''; - emailModel.data.component = component; - emailModel.data.stateUrl = data.url; - - this.ModalsHandler.openEmailModal(emailModel).then(onOk, onCancel); - - } else { - // Submit to server only (no modal is shown). - scope.isLoading = true; - component.changeLifecycleState(data.url, comment).then(onSuccess, onError); - } - - } - } -} diff --git a/catalog-ui/app/scripts/utils/common-utils.ts b/catalog-ui/app/scripts/utils/common-utils.ts deleted file mode 100644 index aef6b9908d..0000000000 --- a/catalog-ui/app/scripts/utils/common-utils.ts +++ /dev/null @@ -1,81 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/** - * Created by obarda on 6/30/2016. - */ -/// -module Sdc.Utils { - - export class CommonUtils { - - static initProperties(propertiesObj:Array, uniqueId?:string):Array { - - let properties = new Array(); - if (propertiesObj) { - _.forEach(propertiesObj, (property:Sdc.Models.PropertyModel):void => { - if (uniqueId) { - property.readonly = property.parentUniqueId != uniqueId; - } - properties.push(new Sdc.Models.PropertyModel(property)); - }); - } - return properties; - }; - - static initAttributes(attributesObj:Array, uniqueId?:string):Array { - - let attributes = new Array(); - if (attributesObj) { - _.forEach(attributesObj, (attribute:Sdc.Models.AttributeModel):void => { - if (uniqueId) { - attribute.readonly = attribute.parentUniqueId != uniqueId; - } - attributes.push(new Sdc.Models.AttributeModel(attribute)); - }); - } - return attributes; - }; - - static initComponentInstances(componentInstanceObj:Array):Array { - - let componentInstances = new Array(); - if (componentInstanceObj) { - _.forEach(componentInstanceObj, (instance:Models.ComponentsInstances.ResourceInstance):void => { - componentInstances.push(Utils.ComponentInstanceFactory.createComponentInstance(instance)); - }); - } - return componentInstances; - }; - - static initModules(moduleArrayObj:Array):Array { - - let modules = new Array(); - - if (moduleArrayObj) { - _.forEach(moduleArrayObj, (module:Models.Module):void => { - if(module.type === "org.openecomp.groups.VfModule"){ - modules.push(new Models.Module(module)); - } - }); - } - return modules; - }; - } -} diff --git a/catalog-ui/app/scripts/utils/component-factory.ts b/catalog-ui/app/scripts/utils/component-factory.ts deleted file mode 100644 index 1bb139dc45..0000000000 --- a/catalog-ui/app/scripts/utils/component-factory.ts +++ /dev/null @@ -1,181 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/** - * Created by obarda on 2/8/2016. - */ -/// -module Sdc.Utils { - 'use strict'; - import Resource = Sdc.Models.Components.Resource; - - export class ComponentFactory { - - static '$inject' = [ - 'Sdc.Services.Components.ResourceService', - 'Sdc.Services.Components.ServiceService', - 'Sdc.Services.Components.ProductService', - 'Sdc.Services.CacheService', - '$q' - ]; - - constructor( - private ResourceService:Services.Components.ResourceService, - private ServiceService:Services.Components.ServiceService, - private ProductService:Services.Components.ProductService, - private cacheService:Services.CacheService, - private $q: ng.IQService) { - } - - public createComponent = (component:Models.Components.Component):Models.Components.Component => { - let newComponent:Models.Components.Component; - switch (component.componentType) { - - case 'SERVICE': - newComponent = new Models.Components.Service(this.ServiceService, this.$q, component); - break; - - case 'RESOURCE': - newComponent = new Models.Components.Resource(this.ResourceService, this.$q, component); - break; - - case 'PRODUCT': - newComponent = new Models.Components.Product(this.ProductService, this.$q, component); - break; - } - return newComponent; - }; - - public createProduct = (product:Models.Components.Product):Models.Components.Product => { - let newProduct:Models.Components.Product = new Models.Components.Product(this.ProductService, this.$q, product); - return newProduct; - }; - - public createService = (service:Models.Components.Service):Models.Components.Service => { - let newService:Models.Components.Service = new Models.Components.Service(this.ServiceService, this.$q, service); - return newService; - }; - - public createResource = (resource:Models.Components.Resource):Models.Components.Resource => { - let newResource:Models.Components.Resource = new Models.Components.Resource(this.ResourceService, this.$q, resource); - return newResource; - }; - - public createFromCsarComponent = (csar:Models.ICsarComponent):Models.Components.Component => { - let newResource:Sdc.Models.Components.Resource = this.createEmptyComponent(Sdc.Utils.Constants.ComponentType.RESOURCE); - newResource.name = csar.vspName; - - /** - * Onboarding CSAR contains category and sub category that are uniqueId. - * Need to find the category and sub category and extract the name from them. - * First concat all sub categories to one array. - * Then find the selected sub category and category. - * @type {any} - */ - let availableCategories = angular.copy(this.cacheService.get('resourceCategories')); - let allSubs = []; - _.each(availableCategories, (main:Models.IMainCategory)=>{ - if (main.subcategories) { - allSubs = allSubs.concat(main.subcategories); - } - }); - - let selectedCategory:Models.IMainCategory = _.find(availableCategories, function(main:Models.IMainCategory){ - return main.uniqueId === csar.category; - }); - - let selectedSubCategory:Models.ISubCategory = _.find(allSubs,(sub:Models.ISubCategory)=>{ - return sub.uniqueId === csar.subCategory; - }); - - // Build the categories and sub categories array (same format as component category) - let categories:Array = new Array(); - let subcategories:Array = new Array(); - if (selectedCategory && selectedSubCategory) { - subcategories.push(selectedSubCategory); - selectedCategory.subcategories = subcategories; - categories.push(selectedCategory); - } - - // Fill the component with details from CSAR - newResource.selectedCategory = selectedCategory && selectedSubCategory ? selectedCategory.name + "_#_" + selectedSubCategory.name : ''; - newResource.categories = categories; - newResource.vendorName = csar.vendorName; - newResource.vendorRelease = csar.vendorRelease; - newResource.csarUUID = csar.packageId; - newResource.csarPackageType = csar.packageType; - newResource.csarVersion = csar.version; - newResource.packageId = csar.packageId; - newResource.description = csar.description; - return newResource; - }; - - public createEmptyComponent = (componentType: string):Models.Components.Component => { - let newComponent:Models.Components.Component; - - switch (componentType) { - - case Utils.Constants.ComponentType.SERVICE: - newComponent = new Models.Components.Service(this.ServiceService, this.$q); - break; - - case Utils.Constants.ComponentType.RESOURCE: - case Utils.Constants.ResourceType.VF: - case Utils.Constants.ResourceType.VL: - case Utils.Constants.ResourceType.VFC: - case Utils.Constants.ResourceType.CP: - newComponent = new Models.Components.Resource(this.ResourceService, this.$q); - break; - - case Utils.Constants.ComponentType.PRODUCT: - newComponent = new Models.Components.Product(this.ProductService, this.$q); - break; - } - newComponent.componentType = componentType; - newComponent.tags = []; - newComponent.icon = Utils.Constants.DEFAULT_ICON; - return newComponent; - }; - - - public getServiceFromServer = (componentId: string): ng.IPromise => { - let service: Models.Components.Service = this.createEmptyComponent(Utils.Constants.ComponentType.SERVICE); - service.setUniqueId(componentId); - return service.getComponent(); - }; - - public getResourceFromServer = (componentId: string): ng.IPromise => { - let resource: Models.Components.Resource = this.createEmptyComponent(Utils.Constants.ComponentType.RESOURCE); - resource.setUniqueId(componentId); - return resource.getComponent(); - }; - - public getComponentFromServer = (componentType: string, componentId: string): ng.IPromise => { - let newComponent: Models.Components.Component = this.createEmptyComponent(componentType); - newComponent.setUniqueId(componentId); - return newComponent.getComponent(); - }; - - public createComponentOnServer = (componentObject:Models.Components.Component):ng.IPromise => { - let component: Models.Components.Component = this.createComponent(componentObject); - return component.createComponentOnServer(); - - }; - } -} diff --git a/catalog-ui/app/scripts/utils/component-instance-factory.ts b/catalog-ui/app/scripts/utils/component-instance-factory.ts deleted file mode 100644 index 5f698aa46c..0000000000 --- a/catalog-ui/app/scripts/utils/component-instance-factory.ts +++ /dev/null @@ -1,85 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/** - * Created by obarda on 3/7/2016. - */ -/** - * Created by obarda on 2/8/2016. - */ -/// -module Sdc.Utils { - 'use strict'; - - export class ComponentInstanceFactory { - - static createComponentInstance(componentInstance:Models.ComponentsInstances.ComponentInstance):Models.ComponentsInstances.ComponentInstance { - let newComponentInstance:Models.ComponentsInstances.ComponentInstance; - switch (componentInstance.originType) { - case 'SERVICE': - newComponentInstance = new Models.ComponentsInstances.ServiceInstance(componentInstance); - break; - - case 'PRODUCT': - newComponentInstance = new Models.ComponentsInstances.ProductInstance(componentInstance); - break; - - default : - newComponentInstance = new Models.ComponentsInstances.ResourceInstance(componentInstance); - break; - } - return newComponentInstance; - }; - - public createEmptyComponentInstance = (componentInstanceType?: string):Models.ComponentsInstances.ComponentInstance => { - let newComponentInstance:Models.ComponentsInstances.ComponentInstance; - switch (componentInstanceType) { - case 'SERVICE': - newComponentInstance = new Models.ComponentsInstances.ServiceInstance(); - break; - - case 'PRODUCT': - newComponentInstance = new Models.ComponentsInstances.ProductInstance(); - break; - - default : - newComponentInstance = new Models.ComponentsInstances.ResourceInstance(); - break; - } - return newComponentInstance; - }; - - public createComponentInstanceFromComponent = (component: Models.Components.Component):Models.ComponentsInstances.ComponentInstance => { - let newComponentInstance:Models.ComponentsInstances.ComponentInstance = this.createEmptyComponentInstance(component.componentType); - newComponentInstance.uniqueId = component.uniqueId + (new Date()).getTime(); - newComponentInstance.posX = 0; - newComponentInstance.posY = 0; - newComponentInstance.name = component.name; - newComponentInstance.componentVersion = component.version; - newComponentInstance.originType = component.getComponentSubType(); - //new component instance -> req. & cap. are added on successful instance creation - newComponentInstance.requirements = component.requirements; - newComponentInstance.capabilities = component.capabilities; - newComponentInstance.icon = component.icon; - newComponentInstance.componentUid = component.uniqueId; - return newComponentInstance; - }; - - } -} diff --git a/catalog-ui/app/scripts/utils/constants.ts b/catalog-ui/app/scripts/utils/constants.ts deleted file mode 100644 index 6db1edf29d..0000000000 --- a/catalog-ui/app/scripts/utils/constants.ts +++ /dev/null @@ -1,247 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/** - * Created by obarda on 2/18/2016. - */ -/// -module Sdc.Utils.Constants { - - import SuiteOrSpec = jasmine.SuiteOrSpec; - export let DEFAULT_ICON = 'defaulticon'; - export let CP_END_POINT = 'CpEndPoint'; - export let CHANGE_COMPONENT_CSAR_VERSION_FLAG = 'changeComponentCsarVersion'; - export let IMAGE_PATH = ''; - - export class ComponentType { - static SERVICE = 'SERVICE'; - static RESOURCE = 'RESOURCE'; - static PRODUCT = 'PRODUCT'; - } - - export class ResourceType { - static VF = 'VF'; - static VL = 'VL'; - static CP = 'CP'; - static VFC = 'VFC'; - } - - export class ComponentState { - static CERTIFICATION_IN_PROGRESS = 'CERTIFICATION_IN_PROGRESS'; - static CERTIFIED = 'CERTIFIED'; - static NOT_CERTIFIED_CHECKOUT = 'NOT_CERTIFIED_CHECKOUT'; - static NOT_CERTIFIED_CHECKIN = 'NOT_CERTIFIED_CHECKIN'; - static READY_FOR_CERTIFICATION = 'READY_FOR_CERTIFICATION'; - } - - export class DistributionStatus { - DISTRIBUTION_NOT_APPROVED = 'DISTRIBUTION_NOT_APPROVED'; - DISTRIBUTION_APPROVED = 'DISTRIBUTION_APPROVED'; - DISTRIBUTED = 'DISTRIBUTED'; - DISTRIBUTION_REJECTED = 'DISTRIBUTION_REJECTED'; - } - - export class ArtifactGroupType { - static DEPLOYMENT = "DEPLOYMENT"; - static INFORMATION = "INFORMATIONAL"; - static SERVICE_API = "SERVICE_API"; - } - - export class ArtifactType { - static HEAT = "HEAT"; - static VF_LICENSE = "VF_LICENSE"; - static VENDOR_LICENSE = "VENDOR_LICENSE"; - static THIRD_PARTY_RESERVED_TYPES = { WORKFLOW:"WORKFLOW", - NETWORK_CALL_FLOW:"NETWORK_CALL_FLOW", - AAI_SERVICE_MODEL:"AAI_SERVICE_MODEL", - AAI_VF_MODEL:"AAI_VF_MODEL", - AAI_VF_MODULE_MODEL:"AAI_VF_MODULE_MODEL", - AAI_VF_INSTANCE_MODEL:"AAI_VF_INSTANCE_MODEL"}; - static TOSCA = { TOSCA_TEMPLATE:"TOSCA_TEMPLATE", TOSCA_CSAR:"TOSCA_CSAR"}; - } - - export class SEVERITY { - public static DEBUG = 'DEBUG'; - public static INFO = 'INFO'; - public static WARNING = 'WARNING'; - public static ERROR = 'ERROR'; - } - - export class PROPERTY_TYPES { - public static STRING = 'string'; - public static INTEGER = 'integer'; - public static FLOAT = 'float'; - public static BOOLEAN = 'boolean'; - public static JSON = 'json'; - public static MAP = 'map'; - public static LIST = 'list'; - } - - export class SOURCES { - public static A_AND_AI = 'A&AI'; - public static ORDER = 'Order'; - public static RUNTIME = 'Runtime'; - } - - export class PROPERTY_DATA { - public static TYPES = [PROPERTY_TYPES.STRING, PROPERTY_TYPES.INTEGER, PROPERTY_TYPES.FLOAT, PROPERTY_TYPES.BOOLEAN, PROPERTY_TYPES.JSON, PROPERTY_TYPES.LIST, PROPERTY_TYPES.MAP]; - public static SIMPLE_TYPES = [PROPERTY_TYPES.STRING, PROPERTY_TYPES.INTEGER, PROPERTY_TYPES.FLOAT, PROPERTY_TYPES.BOOLEAN, PROPERTY_TYPES.JSON]; - public static SOURCES = [SOURCES.A_AND_AI, SOURCES.ORDER, SOURCES.RUNTIME]; - } - - export class PROPERTY_VALUE_CONSTRAINTS { - public static MAX_LENGTH = 100; - public static JSON_MAX_LENGTH = 4096; - } - - export class Role { - public static ADMIN = 'ADMIN'; - public static DESIGNER = 'DESIGNER'; - public static PRODUCT_STRATEGIST = 'PRODUCT_STRATEGIST'; - public static PRODUCT_MANAGER = 'PRODUCT_MANAGER'; - public static TESTER = 'TESTER'; - public static OPS = 'OPS'; - public static GOVERNOR = 'GOVERNOR'; - } - - export enum FormState{ - CREATE, - UPDATE, - IMPORT, - VIEW - } - - export class WorkspaceMode { - public static CREATE = 'create'; - public static EDIT = 'edit'; - public static IMPORT = 'import'; - public static VIEW = 'view'; - } - - export class ImagesUrl { - public static RESOURCE_ICONS = '/styles/images/resource-icons/'; - public static SERVICE_ICONS = '/styles/images/service-icons/'; - public static SELECTED_UCPE_INSTANCE = '/styles/images/resource-icons/selectedUcpeInstance.png'; - public static SELECTED_CP_INSTANCE = '/styles/images/resource-icons/selectedCPInstance.png'; - public static SELECTED_VL_INSTANCE = '/styles/images/resource-icons/selectedVLInstance.png'; - public static CANVAS_PLUS_ICON = '/styles/images/resource-icons/canvasPlusIcon.png'; - public static MODULE_ICON = '/styles/images/resource-icons/module.png'; - public static OPEN_MODULE_ICON = '/styles/images/resource-icons/openModule.png'; - public static OPEN_MODULE_HOVER_ICON = '/styles/images/resource-icons/openModuleHover.png'; - public static CLOSE_MODULE_ICON = '/styles/images/resource-icons/closeModule.png'; - public static CLOSE_MODULE_HOVER_ICON = '/styles/images/resource-icons/closeModuleHover.png'; - } - - export class ModalType { - static STANDARD = 'standard'; - static ERROR = 'error'; - static ALERT = 'alert'; - } - - export class GraphColors { - public static NOT_CERTIFIED_LINK = 'rgb(218,31,61)'; - public static VL_LINK = 'rgb(216,216,216)'; - public static ACTIVE_LINK = '#30bdf2'; - public static BASE_LINK = 'rgb(55,55,55)'; - public static NODE_BACKGROUND_COLOR = 'rgba(46, 162, 157, 0.24)'; - public static NODE_SHADOW_COLOR = 'rgba(198, 230, 228, 0.7)'; - public static NODE_OVERLAPPING_BACKGROUND_COLOR = 'rgba(179, 10, 60, 0.24)'; - public static NODE_OVERLAPPING_SHADOW_COLOR = 'rgba(236, 194, 206, 0.7)'; - public static NODE_UCPE_CP = '#9063cd'; - public static NODE_UCPE = '#fbfbfb'; - public static NODE_SELECTED_BORDER_COLOR = '#30bdf2'; - } - - export class GraphTransactionLogText { - public static REMOVE_TEMP_LINK = "remove tempLink"; - public static DELETE_LINK = "delete link"; - public static ADD_LINK = "delete link"; - public static ADD_NODE = "adding node"; - } - - export class GraphUIObjects { - public static LINK_MENU_HEIGHT = 420; - public static TOP_HEADER_HEIGHT = 200; - public static TOOLTIP_OFFSET_X = 50; - public static TOOLTIP_OFFSET_Y = 145; - public static TOOLTIP_LINK_OFFSET_X = 35; - public static TOOLTIP_LINK_OFFSET_Y = 75; - public static MENU_LINK_VL_HEIGHT_OFFSET = 250; - public static MENU_LINK_VL_WIDTH_OFFSET = 200; - public static MENU_LINK_SIMPLE_HEIGHT_OFFSET = 180; - public static MENU_LINK_SIMPLE_WIDTH_OFFSET = 130; - public static DIAGRAM_RIGHT_WIDTH_OFFSET = 248; - public static DIAGRAM_HEADER_OFFSET = 103; - public static DIAGRAM_PALETTE_WIDTH_OFFSET = 247; - - } - - export class States { - public static WORKSPACE_GENERAL = 'workspace.general'; - public static WORKSPACE_ICONS = 'workspace.icons'; - public static WORKSPACE_ACTIVITY_LOG = 'workspace.activity_log'; - public static WORKSPACE_DEPLOYMENT_ARTIFACTS = 'workspace.deployment_artifacts'; - public static WORKSPACE_PROPERTIES = 'workspace.properties'; - public static WORKSPACE_SERVICE_INPUTS = 'workspace.service_inputs'; - public static WORKSPACE_RESOURCE_INPUTS = 'workspace.resource_inputs'; - public static WORKSPACE_ATTRIBUTES = 'workspace.attributes'; - public static WORKSPACE_HIERARCHY = 'workspace.hierarchy'; - public static WORKSPACE_INFORMATION_ARTIFACTS = 'workspace.information_artifacts'; - public static WORKSPACE_TOSCA_ARTIFACTS = 'workspace.tosca_artifacts'; - public static WORKSPACE_COMPOSITION = 'workspace.composition'; - public static WORKSPACE_NETWORK_CALL_FLOW = 'workspace.network_call_flow'; - public static WORKSPACE_MANAGEMENT_WORKFLOW = 'workspace.management_workflow'; - public static WORKSPACE_DEPLOYMENT = 'workspace.deployment'; - public static WORKSPACE_DISTRIBUTION = 'workspace.distribution'; - public static WORKSPACE_REQUIREMENTS_AND_CAPABILITIES = 'workspace.reqAndCap'; - } - - export class EVENTS { - static RESOURCE_LEFT_PALETTE_UPDATE_EVENT = "resourceLeftPanelUpdateEvent"; - static SERVICE_LEFT_PALETTE_UPDATE_EVENT = "serviceLeftPanelUpdateEvent"; - static PRODUCT_LEFT_PALETTE_UPDATE_EVENT = "productLeftPanelUdateEvent"; - static VL_LEFT_PALETTE_UPDATE_EVENT = "vlLeftPanelUdateEvent"; - static ON_CSAR_LOADING = "onCsarLoading"; - static DOWNLOAD_ARTIFACT_FINISH_EVENT = "downloadArtifactFinishEvent"; - static ON_WORKSPACE_SAVE_BUTTON_CLICK = "onWorkspaceSaveButtonClick"; - static ON_WORKSPACE_SAVE_BUTTON_SUCCESS = "onWorkspaceSaveButtonSuccess"; - static ON_WORKSPACE_SAVE_BUTTON_ERROR = "onWorkspaceSaveButtonError"; - - //Loader events - static SHOW_LOADER_EVENT = "showLoaderEvent"; - static HIDE_LOADER_EVENT = "hideLoaderEvent"; - } - - export class GRAPH_EVENTS { - static ON_NODE_SELECTED = "onNodeSelected"; - static ON_GRAPH_BACKGROUND_CLICKED = "onGraphBackgroundClicked"; - static ON_PALETTE_COMPONENT_HOVER_IN = 'onPaletteComponentHoverIn'; - static ON_PALETTE_COMPONENT_HOVER_OUT = 'onPaletteComponentHoverOut'; - static ON_PALETTE_COMPONENT_DRAG_START = 'onPaletteComponentDragStart'; - static ON_PALETTE_COMPONENT_DRAG_ACTION = 'onPaletteComponentDragAction'; - static ON_COMPONENT_INSTANCE_NAME_CHANGED = 'onComponentInstanceNameChanged'; - static ON_DELETE_COMPONENT_INSTANCE = 'onDeleteComponentInstance'; - static ON_DELETE_MULTIPLE_COMPONENTS = 'onDeleteMultipleComponents'; - static ON_DELETE_EDGE = 'onDeleteEdge'; - static ON_INSERT_NODE_TO_UCPE = 'onInsertNodeToUCPE'; - static ON_REMOVE_NODE_FROM_UCPE = 'onRemoveNodeFromUCPE'; - static ON_VERSION_CHANGED = 'onVersionChanged'; - } - -} diff --git a/catalog-ui/app/scripts/utils/dictionary/dictionary.ts b/catalog-ui/app/scripts/utils/dictionary/dictionary.ts deleted file mode 100644 index ef9a1bc4ea..0000000000 --- a/catalog-ui/app/scripts/utils/dictionary/dictionary.ts +++ /dev/null @@ -1,257 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/** - - This code was copy from collections.ts lib - https://github.com/basarat/typescript-collections -**/ - -module Sdc.Utils{ - 'use strict'; - - // Used internally by dictionary - interface IDictionaryPair{ - key: K; - value: V; - } - - export class Dictionary{ - - /** - * Object holding the key-value pairs. - * @type {Object} - * @private - */ - private table: { [key: string]: IDictionaryPair }; - //: [key: K] will not work since indices can only by strings in javascript and typescript enforces this. - - /** - * Number of elements in the list. - * @type {number} - * @private - */ - private nElements: number; - - /** - * Function used to convert keys to strings. - * @type {function(Object):string} - * @private - */ - private toStr: (key: K) => string; - - - /** - * Creates an empty dictionary. - * @class

      Dictionaries map keys to values; each key can map to at most one value. - * This implementation accepts any kind of objects as keys.

      - * - *

      If the keys are custom objects a function which converts keys to unique - * strings must be provided. Example:

      - *
      -       * function petToString(pet) {
      -       *  return pet.name;
      -       * }
      -       * 
      - * @constructor - * @param {function(Object):string=} toStrFunction optional function used - * to convert keys to strings. If the keys aren"t strings or if toString() - * is not appropriate, a custom function which receives a key and returns a - * unique string must be provided. - */ - constructor(toStrFunction?: (key: K) => string) { - this.table = {}; - this.nElements = 0; - this.toStr = toStrFunction || this.defaultToString; - } - - - /** - copy from angular.js isUndefined - */ - private isUndefined = (value: any):boolean => { - return typeof value === 'undefined'; - } - - defaultToString = (item: any): string => { - return item.toString(); - } - - /** - * Returns the value to which this dictionary maps the specified key. - * Returns undefined if this dictionary contains no mapping for this key. - * @param {Object} key key whose associated value is to be returned. - * @return {*} the value to which this dictionary maps the specified key or - * undefined if the map contains no mapping for this key. - */ - getValue = (key: K): V => { - let pair: IDictionaryPair = this.table[this.toStr(key)]; - if (this.isUndefined(pair)) { - return undefined; - } - return pair.value; - } - - - /** - * Associates the specified value with the specified key in this dictionary. - * If the dictionary previously contained a mapping for this key, the old - * value is replaced by the specified value. - * @param {Object} key key with which the specified value is to be - * associated. - * @param {Object} value value to be associated with the specified key. - * @return {*} previous value associated with the specified key, or undefined if - * there was no mapping for the key or if the key/value are undefined. - */ - setValue = (key: K, value: V): V => { - - if (this.isUndefined(key) || this.isUndefined(value)) { - return undefined; - } - - let ret: V; - let k = this.toStr(key); - let previousElement: IDictionaryPair = this.table[k]; - if (this.isUndefined(previousElement)) { - this.nElements++; - ret = undefined; - } else { - ret = previousElement.value; - } - this.table[k] = { - key: key, - value: value - }; - return ret; - } - - /** - * Removes the mapping for this key from this dictionary if it is present. - * @param {Object} key key whose mapping is to be removed from the - * dictionary. - * @return {*} previous value associated with specified key, or undefined if - * there was no mapping for key. - */ - remove = (key: K): V => { - let k = this.toStr(key); - let previousElement: IDictionaryPair = this.table[k]; - if (!this.isUndefined(previousElement)) { - delete this.table[k]; - this.nElements--; - return previousElement.value; - } - return undefined; - } - - /** - * Returns an array containing all of the keys in this dictionary. - * @return {Array} an array containing all of the keys in this dictionary. - */ - keys = (): K[] => { - let array: K[] = []; - for (let name in this.table) { - if (this.table.hasOwnProperty(name)) { - let pair: IDictionaryPair = this.table[name]; - array.push(pair.key); - } - } - return array; - } - - /** - * Returns an array containing all of the values in this dictionary. - * @return {Array} an array containing all of the values in this dictionary. - */ - values = (): V[] => { - let array: V[] = []; - for (let name in this.table) { - if (this.table.hasOwnProperty(name)) { - let pair: IDictionaryPair = this.table[name]; - array.push(pair.value); - } - } - return array; - } - - /** - * Executes the provided function once for each key-value pair - * present in this dictionary. - * @param {function(Object,Object):*} callback function to execute, it is - * invoked with two arguments: key and value. To break the iteration you can - * optionally return false. - */ - forEach = (callback: (key: K, value: V) => any): void => { - for (let name in this.table) { - if (this.table.hasOwnProperty(name)) { - let pair: IDictionaryPair = this.table[name]; - let ret = callback(pair.key, pair.value); - if (ret === false) { - return; - } - } - } - } - - /** - * Returns true if this dictionary contains a mapping for the specified key. - * @param {Object} key key whose presence in this dictionary is to be - * tested. - * @return {boolean} true if this dictionary contains a mapping for the - * specified key. - */ - containsKey = (key: K): boolean => { - return !this.isUndefined(this.getValue(key)); - } - - /** - * Removes all mappings from this dictionary. - * @this {Dictionary} - */ - clear = () => { - - this.table = {}; - this.nElements = 0; - } - - /** - * Returns the number of keys in this dictionary. - * @return {number} the number of key-value mappings in this dictionary. - */ - size = (): number => { - return this.nElements; - } - - /** - * Returns true if this dictionary contains no mappings. - * @return {boolean} true if this dictionary contains no mappings. - */ - isEmpty = (): boolean => { - return this.nElements <= 0; - } - - toString = (): string => { - let toret = "{"; - this.forEach((k, v) => { - toret = toret + "\n\t" + k.toString() + " : " + v.toString(); - }); - return toret + "\n}"; - } - } // End of dictionary - -} diff --git a/catalog-ui/app/scripts/utils/file-utils.ts b/catalog-ui/app/scripts/utils/file-utils.ts deleted file mode 100644 index db6251f199..0000000000 --- a/catalog-ui/app/scripts/utils/file-utils.ts +++ /dev/null @@ -1,73 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Utils { - export class FileUtils { - - static '$inject' = [ - '$window' - ]; - - constructor(private $window: any) { - } - - public byteCharactersToBlob = (byteCharacters, contentType): any => { - contentType = contentType || ''; - let sliceSize = 1024; - let bytesLength = byteCharacters.length; - let slicesCount = Math.ceil(bytesLength / sliceSize); - let byteArrays = new Array(slicesCount); - - for (let sliceIndex = 0; sliceIndex < slicesCount; ++sliceIndex) { - let begin = sliceIndex * sliceSize; - let end = Math.min(begin + sliceSize, bytesLength); - - let bytes = new Array(end - begin); - for (let offset = begin, i = 0; offset < end; ++i, ++offset) { - bytes[i] = byteCharacters[offset].charCodeAt(0); - } - byteArrays[sliceIndex] = new Uint8Array(bytes); - } - return new Blob(byteArrays, {type: contentType}); - }; - - public base64toBlob = (base64Data, contentType): any => { - let byteCharacters = atob(base64Data); - return this.byteCharactersToBlob(byteCharacters, contentType); - }; - - public downloadFile = (blob, fileName): void=> { - let url = this.$window.URL.createObjectURL(blob); - let downloadLink = document.createElement("a"); - - downloadLink.setAttribute('href', url); - downloadLink.setAttribute('download', fileName); - document.body.appendChild(downloadLink); - downloadLink.click(); - - //time out for firefox - setTimeout(()=> { - document.body.removeChild(downloadLink); - this.$window.URL.revokeObjectURL(url); - }, 100); - } - - } -} diff --git a/catalog-ui/app/scripts/utils/functions.ts b/catalog-ui/app/scripts/utils/functions.ts deleted file mode 100644 index 32bc9243cf..0000000000 --- a/catalog-ui/app/scripts/utils/functions.ts +++ /dev/null @@ -1,58 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Utils.Functions { - - export class QueueUtils { - - private executionQueue : any; - - constructor(private $q:ng.IQService){ - this.executionQueue = this.getDummyPromise(); - } - - - private getDummyPromise = (): ng.IPromise => { - let deferred : ng.IDeferred= this.$q.defer(); - deferred.resolve(true); - return deferred.promise; - }; - - - private addMethodToQueue = (runMe:Function) : void => { - this.executionQueue = this.executionQueue.then(runMe, runMe); - }; - - addNonBlockingUIAction = (update:Function , releaseUIcallBack:Function) : void => { - releaseUIcallBack(); - this.addMethodToQueue(update); - }; - - // The Method call is responsible for releasing the UI - addBlockingUIAction = ( blockingServerRequest : Function ):void => { - this.addMethodToQueue(blockingServerRequest); - }; - - addBlockingUIActionWithReleaseCallback = ( blockingServerRequest : Function, releaseUIcallBack:Function):void=>{ - this.addMethodToQueue(blockingServerRequest); - this.addMethodToQueue(releaseUIcallBack); - }; - } -} diff --git a/catalog-ui/app/scripts/utils/menu-handler.ts b/catalog-ui/app/scripts/utils/menu-handler.ts deleted file mode 100644 index 0f2b7de3be..0000000000 --- a/catalog-ui/app/scripts/utils/menu-handler.ts +++ /dev/null @@ -1,145 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.Utils { - - 'use strict'; - - export class MenuItem { - text: string; - callback: (...args: Array) => ng.IPromise; - state: string; - action: string; - params: Array; - isDisabled: boolean; - disabledRoles: Array; - blockedForTypes:Array; // This item will not be shown for specific components types. - - //TODO check if needed - confirmationModal:string; // Open confirmation modal (user should select "OK" or "Cancel"), and continue with the action. - emailModal:string; // Open email modal (user should fill email details), and continue with the action. - url:string; // Data added to menu item, in case the function need to use it, example: for function "changeLifecycleState", I need to pass also the state "CHECKOUT" that I want the state to change to. - - - constructor(text: string, callback: (...args: Array) => ng.IPromise, state:string, action:string, params?: Array, blockedForTypes?:Array) { - this.text = text; - this.callback = callback; - this.state = state; - this.action = action; - this.params = params; - this.blockedForTypes = blockedForTypes; - } - } - - export class MenuItemGroup { - selectedIndex: number; - menuItems: Array; - itemClick: boolean; - - constructor(selectedIndex?:number, menuItems?: Array, itemClick?: boolean) { - this.selectedIndex = selectedIndex; - this.menuItems = menuItems; - this.itemClick = itemClick; - } - - public updateSelectedMenuItemText (newText: string) { - this.menuItems[this.selectedIndex].text = newText; - } - } - - - export class MenuHandler { - - static '$inject' = [ - 'sdcConfig', - 'sdcMenu', - 'ComponentFactory', - '$templateCache', - '$filter', - '$modal', - 'ModalsHandler', - '$state', - '$q' - ]; - - constructor( - private sdcConfig:Models.IAppConfigurtaion, - private sdcMenu:Models.IAppMenu, - private ComponentFactory: ComponentFactory, - private $templateCache:ng.ITemplateCacheService, - private $filter:ng.IFilterService, - private $modal:ng.ui.bootstrap.IModalService, - private ModalsHandler: ModalsHandler, - private $state:ng.ui.IStateService, - private $q:ng.IQService - ) { - - } - - - generateBreadcrumbsModelFromComponents = (components: Array, selected:Sdc.Models.Components.Component):MenuItemGroup => { - let result = new MenuItemGroup(0, [], false); - if (components) { - - // Search the component in all components by uuid (and not uniqueid, gives access to an assets's minor versions). - let selectedItem = _.find(components, (item:Sdc.Models.Components.Component) => { - return item.uuid === selected.uuid; - }); - - // If not found search by invariantUUID - if(undefined == selectedItem){ - selectedItem = _.find(components, (item:Sdc.Models.Components.Component) => { - //invariantUUID && Certified State matches between major versions - return item.invariantUUID === selected.invariantUUID && item.lifecycleState === Utils.Constants.ComponentState.CERTIFIED; - }); - } - - // If not found search by name (name is unique). - if(undefined == selectedItem){ - selectedItem = _.find(components, (item:Sdc.Models.Components.Component) => { - return item.name === selected.name; - }); - } - - result.selectedIndex = components.indexOf(selectedItem); - components[result.selectedIndex] = selected; - let clickItemCallback = (component: Sdc.Models.Components.Component): ng.IPromise => { - this.$state.go('workspace.general', {id: component.uniqueId, type:component.componentType.toLowerCase(), mode: Utils.Constants.WorkspaceMode.VIEW}); - return this.$q.when(true); - }; - - components.forEach((component:Sdc.Models.Components.Component) => { - let menuItem = new MenuItem( - // component.name, - component.getComponentSubType() + ': ' + this.$filter('resourceName')(component.name), - clickItemCallback, - null, - null, - [component] - ); - // menuItem.text = component.name; - result.menuItems.push(menuItem); - }); - } - return result; - }; - - } -} diff --git a/catalog-ui/app/scripts/utils/modals-handler.ts b/catalog-ui/app/scripts/utils/modals-handler.ts deleted file mode 100644 index f3e80a7a24..0000000000 --- a/catalog-ui/app/scripts/utils/modals-handler.ts +++ /dev/null @@ -1,275 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/** - * Created by obarda on 2/11/2016. - */ -/// -module Sdc.Utils { - - export interface IModalsHandler { - - openViewerModal(component:Models.Components.Component):void; - openDistributionStatusModal(distribution: Models.Distribution,status:string):void; - openConfirmationModal (title:string, message:string, showComment:boolean, size?: string):ng.IPromise; - openAlertModal (title:string, message:string, size?: string):ng.IPromise; - openStandardModal (title:string, message:string, size?: string):ng.IPromise; - openErrorModal (title:string, message:string, size?: string):ng.IPromise; - openEmailModal(emailModel:ViewModels.IEmailModalModel) :ng.IPromise; - openServerMessageModal(data:Sdc.ViewModels.IServerMessageModalModel): ng.IPromise; - openClientMessageModal(data:Sdc.ViewModels.IClientMessageModalModel): ng.IPromise; - openWizardArtifactModal(artifact: Models.ArtifactModel, component:Models.Components.Component): ng.IPromise; - openWizard(componentType: Utils.Constants.ComponentType, component?:Models.Components.Component, importedFile?: any): ng.IPromise; - } - - export class ModalsHandler implements IModalsHandler{ - - static '$inject' = [ - '$templateCache', - '$modal', - '$q' - ]; - - constructor(private $templateCache:ng.ITemplateCacheService, - private $modal:ng.ui.bootstrap.IModalService, - private $q:ng.IQService) { - } - - openViewerModal = (component:Models.Components.Component):void => { - - let modalOptions:ng.ui.bootstrap.IModalSettings = { - template: this.$templateCache.get('/app/scripts/view-models/component-viewer/component-viewer.html'), - controller: 'Sdc.ViewModels.ComponentViewerViewModel', - size: 'lg', - backdrop: 'static', - resolve: { - component: ():Models.Components.Component=> { - return component; - } - } - }; - this.$modal.open(modalOptions); - }; - - - openDistributionStatusModal = (distribution: Models.Distribution,status:string): ng.IPromise => { - let deferred = this.$q.defer(); - let modalOptions:ng.ui.bootstrap.IModalSettings = { - template: this.$templateCache.get('/app/scripts/view-models/workspace/tabs/distribution/disribution-status-modal/disribution-status-modal-view.html'), - controller: 'Sdc.ViewModels.DistributionStatusModalViewModel', - size: 'sdc-xl', - backdrop: 'static', - resolve: { - data: ():any => { - return { - 'distribution': distribution, - 'status': status - }; - } - } - }; - let modalInstance:ng.ui.bootstrap.IModalServiceInstance = this.$modal.open(modalOptions); - deferred.resolve(modalInstance.result); - return deferred.promise; - }; - - - - openAlertModal = (title:string, message:string, size?: string):ng.IPromise => { - return this.openConfirmationModalBase(title, message, false, Utils.Constants.ModalType.ALERT, size); - }; - - openStandardModal = (title:string, message:string, size?: string):ng.IPromise => { - return this.openConfirmationModalBase(title, message, false, Utils.Constants.ModalType.STANDARD, size); - }; - - openErrorModal = (title:string, message:string, size?: string):ng.IPromise => { - return this.openConfirmationModalBase(title, message, false, Utils.Constants.ModalType.ERROR, size); - }; - - openConfirmationModal = (title:string, message:string, showComment:boolean, size?: string):ng.IPromise => { - return this.openConfirmationModalBase(title, message, showComment, Utils.Constants.ModalType.STANDARD, size); - }; - - private openConfirmationModalBase = (title:string, message:string, showComment:boolean, type:Utils.Constants.ModalType, size?: string):ng.IPromise => { - let deferred = this.$q.defer(); - let modalOptions:ng.ui.bootstrap.IModalSettings = { - template: this.$templateCache.get('/app/scripts/view-models/modals/confirmation-modal/confirmation-modal-view.html'), - controller: 'Sdc.ViewModels.ConfirmationModalViewModel', - size: size? size:'sdc-sm', - backdrop: 'static', - resolve: { - confirmationModalModel: ():Sdc.ViewModels.IConfirmationModalModel => { - let model:Sdc.ViewModels.IConfirmationModalModel = { - title: title, - message: message, - showComment: showComment, - type: type - }; - return model; - } - } - }; - - let modalInstance:ng.ui.bootstrap.IModalServiceInstance = this.$modal.open(modalOptions); - deferred.resolve(modalInstance.result); - return deferred.promise; - }; - - openEmailModal = (emailModel:ViewModels.IEmailModalModel):ng.IPromise => { - - let deferred = this.$q.defer(); - let modalOptions:ng.ui.bootstrap.IModalSettings = { - template: this.$templateCache.get('/app/scripts/view-models/modals/email-modal/email-modal-view.html'), - controller: 'Sdc.ViewModels.EmailModalViewModel', - size: 'sdc-sm', - backdrop: 'static', - resolve: { - emailModalModel: ():ViewModels.IEmailModalModel => { - return emailModel; - } - } - }; - let modalInstance:ng.ui.bootstrap.IModalServiceInstance = this.$modal.open(modalOptions); - deferred.resolve(modalInstance.result); - return deferred.promise; - - }; - - openServerMessageModal = (data:Sdc.ViewModels.IServerMessageModalModel):ng.IPromise => { - let deferred = this.$q.defer(); - let modalOptions:ng.ui.bootstrap.IModalSettings = { - template: this.$templateCache.get('/app/scripts/view-models/modals/message-modal/message-server-modal/server-message-modal-view.html'), - controller: 'Sdc.ViewModels.ServerMessageModalViewModel', - size: 'sdc-sm', - backdrop: 'static', - resolve: { - serverMessageModalModel: ():Sdc.ViewModels.IServerMessageModalModel => { - return data; - } - } - }; - - let modalInstance:ng.ui.bootstrap.IModalServiceInstance = this.$modal.open(modalOptions); - deferred.resolve(modalInstance.result); - return deferred.promise; - }; - - openClientMessageModal = (data:Sdc.ViewModels.IClientMessageModalModel):ng.IPromise => { - let deferred = this.$q.defer(); - let modalOptions:ng.ui.bootstrap.IModalSettings = { - template: this.$templateCache.get('/app/scripts/view-models/modals/message-modal/message-client-modal/client-message-modal-view.html'), - controller: 'Sdc.ViewModels.ClientMessageModalViewModel', - size: 'sdc-sm', - backdrop: 'static', - resolve: { - clientMessageModalModel: ():Sdc.ViewModels.IClientMessageModalModel => { - return data; - } - } - }; - let modalInstance:ng.ui.bootstrap.IModalServiceInstance = this.$modal.open(modalOptions); - deferred.resolve(modalInstance); - return deferred.promise; - }; - - openOnboadrdingModal = (okButtonText:string,currentCsarUUID?:string): ng.IPromise => { - let deferred = this.$q.defer(); - let modalOptions:ng.ui.bootstrap.IModalSettings = { - template: this.$templateCache.get('/app/scripts/view-models/modals/onboarding-modal/onboarding-modal-view.html'), - controller: 'Sdc.ViewModels.OnboardingModalViewModel', - size: 'sdc-xl', - backdrop: 'static', - resolve: { - okButtonText:():string=>{ - return okButtonText; - }, - currentCsarUUID:():string=>{ - return currentCsarUUID||null; - } - } - }; - let modalInstance:ng.ui.bootstrap.IModalServiceInstance = this.$modal.open(modalOptions); - deferred.resolve(modalInstance.result); - return deferred.promise; - }; - - - openWizard = (componentType: Utils.Constants.ComponentType, component?:Models.Components.Component, importedFile?: any): ng.IPromise => { - let deferred = this.$q.defer(); - let template = this.$templateCache.get('/app/scripts/view-models/wizard/wizard-creation-base.html'); - - let controller:string; - if(component){ - controller = 'Sdc.ViewModels.Wizard.EditWizardViewModel'; //Edit mode - } else { - if (importedFile){ - controller = 'Sdc.ViewModels.Wizard.ImportWizardViewModel'; // Import Mode - } else { - controller = 'Sdc.ViewModels.Wizard.CreateWizardViewModel'; // Create Mode - } - } - let modalOptions:ng.ui.bootstrap.IModalSettings = { - template: template, - controller: controller, - size: 'sdc-xl', - backdrop: 'static', - keyboard: false, - resolve: { - data: ():any => { - return { - 'componentType': componentType, - 'component': component, - 'importFile':importedFile - }; - } - } - }; - - let modalInstance:ng.ui.bootstrap.IModalServiceInstance = this.$modal.open(modalOptions); - deferred.resolve(modalInstance.result); - return deferred.promise; - }; - - openWizardArtifactModal = (artifact: Models.ArtifactModel, component:Models.Components.Component): ng.IPromise => { - let deferred = this.$q.defer(); - let viewModelsHtmlBasePath:string = '/app/scripts/view-models/'; - let modalOptions:ng.ui.bootstrap.IModalSettings = { - template: this.$templateCache.get(viewModelsHtmlBasePath + 'wizard/artifact-form-step/artifact-form-step-view.html'), - controller: 'Sdc.ViewModels.Wizard.ArtifactResourceFormStepViewModel', - size: 'sdc-md', - backdrop: 'static', - keyboard: false, - resolve: { - artifact: ():Models.ArtifactModel => { - return artifact; - }, - component: (): Models.Components.Component => { - return component; - } - } - }; - - let modalInstance:ng.ui.bootstrap.IModalServiceInstance = this.$modal.open(modalOptions); - deferred.resolve(modalInstance.result); - return deferred.promise; - }; - - } -} diff --git a/catalog-ui/app/scripts/utils/prototypes.ts b/catalog-ui/app/scripts/utils/prototypes.ts deleted file mode 100644 index de961cfc4b..0000000000 --- a/catalog-ui/app/scripts/utils/prototypes.ts +++ /dev/null @@ -1,155 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -interface String { - format(variables:Array):string -} - -interface Array { - clean(o: T): Array; -} - - -/** - * This function will replace the % with strings (from array). - * Example: "Requested '%1' resource was not found.".format(["MyResource"]); - * Note: in case the array contains empty string the function will also remove the '' or the "". - */ -if (!String.hasOwnProperty("format")) { - String.prototype["format"] = function (variables:Array) : string { - - if (variables===null || variables===undefined || variables.length===0){ - variables=['']; - } - - for (let i=0;i>> 0; - - // 4. If IsCallable(callback) is false, throw a TypeError exception. - // See: http://es5.github.com/#x9.11 - if (typeof callback !== "function") { - throw new TypeError(callback + " is not a function"); - } - - // 5. If thisArg was supplied, let T be thisArg; else let T be undefined. - if (thisArg) { - T = thisArg; - } - - // 6. Let A be a new array created as if by the expression new Array(len) where Array is - // the standard built-in constructor with that name and len is the value of len. - A = new Array(len); - - // 7. Let k be 0 - k = 0; - - // 8. Repeat, while k < len - while(k < len) { - - let kValue, mappedValue; - - // a. Let Pk be ToString(k). - // This is implicit for LHS operands of the in operator - // b. Let kPresent be the result of calling the HasProperty internal method of O with argument Pk. - // This step can be combined with c - // c. If kPresent is true, then - if (k in O) { - - // i. Let kValue be the result of calling the Get internal method of O with argument Pk. - kValue = O[ k ]; - - // ii. Let mappedValue be the result of calling the Call internal method of callback - // with T as the this value and argument list containing kValue, k, and O. - mappedValue = callback.call(T, kValue, k, O); - - // iii. Call the DefineOwnProperty internal method of A with arguments - // Pk, Property Descriptor {Value: mappedValue, : true, Enumerable: true, Configurable: true}, - // and false. - - // In browsers that support Object.defineProperty, use the following: - // Object.defineProperty(A, Pk, { value: mappedValue, writable: true, enumerable: true, configurable: true }); - - // For best browser support, use the following: - A[ k ] = mappedValue; - } - // d. Increase k by 1. - k++; - } - - // 9. return A - return A; - }; -} diff --git a/catalog-ui/app/scripts/utils/validation-utils.ts b/catalog-ui/app/scripts/utils/validation-utils.ts deleted file mode 100644 index 7618e7d0e3..0000000000 --- a/catalog-ui/app/scripts/utils/validation-utils.ts +++ /dev/null @@ -1,173 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// - -module Sdc.Utils { - class basePattern{ - pattern:RegExp; - base:number; - constructor(pattern:RegExp, base:number){ - this.pattern = pattern; - this.base = base; - } - } - - export interface IMapRegex{ - integer: RegExp; - boolean: RegExp; - float: RegExp; - string: RegExp; - } - - export class ValidationUtils { - - static '$inject' = [ - 'IntegerNoLeadingZeroValidationPattern', - 'FloatValidationPattern', - 'CommentValidationPattern', - 'BooleanValidationPattern', - 'NumberValidationPattern', - 'LabelValidationPattern', - ]; - private trueRegex : string = '[t][r][u][e]|[t]|[o][n]|[y]|[y][e][s]|[1]'; - private falseRegex : string = '[f][a][l][s][e]|[f]|[o][f][f]|[n]|[n][o]|[0]'; - private heatBooleanValidationPattern : RegExp = new RegExp( '^('+this.trueRegex+'|'+this.falseRegex+')$'); - - - constructor(private IntegerNoLeadingZeroValidationPattern:RegExp, - private FloatValidationPattern:RegExp, - private CommentValidationPattern:RegExp, - private BooleanValidationPattern:RegExp, - private NumberValidationPattern:RegExp, - private LabelValidationPattern:RegExp) {} - - public stripAndSanitize(text:string):string{ - if(!text){ - return null; - } - return text.replace(/\s+/g, ' ').replace(/%[A-Fa-f0-9]{2}/g, '').trim(); - } - - public getValidationPattern = (validationType:string , parameterType?:string) : RegExp => { - switch (validationType){ - case 'integer': - return this.IntegerNoLeadingZeroValidationPattern; - case 'float': - return this.FloatValidationPattern; - case 'number': - return this.NumberValidationPattern; - case 'string': - return this.CommentValidationPattern; - case 'boolean': - { - //Bug Fix DE197437 [Patch]Mismatch between BE to FE regarding supported characters in Boolean filed - if( parameterType && parameterType === 'heat'){ - return this.heatBooleanValidationPattern; - } - else{ - return this.BooleanValidationPattern; - } - - } - - case 'label': - return this.LabelValidationPattern; - case 'category': - return this.LabelValidationPattern; - default : - return null; - } - }; - - public getPropertyListPatterns():IMapRegex { - return { - integer: /^(0|[-+]?[1-9][0-9]*|[-+]?0x[0-9a-fA-F]+|[-+]?0o[0-7]+)(,?(0|[-+]?[1-9][0-9]*|[-+]?0x[0-9a-fA-F]+|[-+]?0o[0-7]+))*$/, - string: /^"[\u0000-\u0021\u0023-\u00BF]+"(\s*,?\s*"[\u0000-\u0021\u0023-\u00BF]+")*$/, - boolean: /^([Tt][Rr][Uu][Ee]|[Ff][Aa][Ll][Ss][Ee])(,?([Tt][Rr][Uu][Ee]|[Ff][Aa][Ll][Ss][Ee]))*$/, - float: /^[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?(,?[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?f?)*$/ - }; - } - public getPropertyMapPatterns():IMapRegex { - return { - integer: /^"\w+"\s*:\s?(0|[-+]?[1-9][0-9]*|[-+]?0x[0-9a-fA-F]+|[-+]?0o[0-7]+)+(\s*,?\s*"\w+"\s?:\s?(0|[-+]?[1-9][0-9]*|[-+]?0x[0-9a-fA-F]+|[-+]?0o[0-7]+)+)*$/, - string: /^"\w+"\s?:\s?"[\u0000-\u0021\u0023-\u00BF]*"(\s*,?\s*"\w+"\s?:\s?"[\u0000-\u0021\u0023-\u00BF]*")*$/, - boolean: /^"\w+"\s?:\s?([Tt][Rr][Uu][Ee]|[Ff][Aa][Ll][Ss][Ee])(\s*,?\s*"\w+"\s?:\s?([Tt][Rr][Uu][Ee]|[Ff][Aa][Ll][Ss][Ee]))*$/, - float: /^"\w+"\s?:\s?[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?f?(\s*,?\s*"\w+"\s?:\s?[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?f?)*$/ - }; - } - public validateUniqueKeys(viewValue:string):boolean { - if(!viewValue) { - return true; //allow empty value - } - - let json:string = "{" + viewValue.replace(/\s\s+/g, ' ') + "}"; - try{ - let obj:any = JSON.parse(json); - /* - //Method #1 : check json string length before & after parsing - let newJson:string = JSON.stringify(obj); - if (newJson.length < json.length) { - return false; - }*/ - - //Method #2 : check how many times we can find "KEY": in json string - let result:boolean = true; - Object.keys(obj).forEach((key:string) => { - result = result && json.split('"' + key + '":').length === 2; - }); - return result; - - }catch(e){ - return false; //not a valid JSON - } - - //return true; - } - - public validateJson = (json:string):boolean => { - try{ - JSON.parse(json); - return true; - }catch(err){ - console.log('invalid json'); - return false; - } - }; - - public validateIntRange = (value:string):boolean => { - - let base8 = new basePattern(/^([-+]?0o[0-7]+)$/, 8); - let base10 = new basePattern(/^(0|[-+]?[1-9][0-9]*)$/, 10); - let base16 = new basePattern(/^([-+]?0x[0-9a-fA-F]+)$/, 16); - - let min:number = -0x80000000; - let max:number = 0x7fffffff; - let intPatterns:Array = [base8, base10, base16]; - let matchedBase = _.find(intPatterns, (item)=> { - return item.pattern.test(value); - }); - - let parsed:number = parseInt(value.replace('o',''), matchedBase.base); - if(parsed){ - return min <= parsed && max >= parsed; - } - } - } -} diff --git a/catalog-ui/app/scripts/view-models/admin-dashboard/add-category-modal/add-category-modal-view-model.ts b/catalog-ui/app/scripts/view-models/admin-dashboard/add-category-modal/add-category-modal-view-model.ts deleted file mode 100644 index 93c1dac174..0000000000 --- a/catalog-ui/app/scripts/view-models/admin-dashboard/add-category-modal/add-category-modal-view-model.ts +++ /dev/null @@ -1,94 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.ViewModels { - 'use strict'; - - interface IAddCategoryModalViewModelScope extends ng.IScope { - category:Sdc.Services.ICategoryResource; - modelType:string; - footerButtons: Array; - forms:any; - - save():void; - close():void; - } - - export class AddCategoryModalViewModel { - - static '$inject' = [ - '$scope', - 'Sdc.Services.CategoryResourceService', - '$modalInstance', - 'parentCategory', - 'type' - ]; - - constructor( - private $scope:IAddCategoryModalViewModelScope, - private categoryResourceService:Sdc.Services.ICategoryResourceClass, - private $modalInstance:ng.ui.bootstrap.IModalServiceInstance, - private parentCategory:Sdc.Services.ICategoryResource, - private type:string - ){ - this.initScope(); - } - - private initScope = ():void => { - this.$scope.forms = {}; - this.$scope.modelType = this.parentCategory ? 'sub category' : 'category'; - this.$scope.category = new this.categoryResourceService(); - - this.$scope.close = ():void => { - this.$modalInstance.dismiss(); - }; - - this.$scope.save = ():void => { - - let onOk = (newCategory :Sdc.Services.ICategoryResource):void => { - this.$modalInstance.close(newCategory); - }; - - let onCancel = ():void => { - //error - }; - - if(!this.parentCategory) { - this.$scope.category.$save({types: this.type+"s"}, onOk, onCancel); - }else{ - this.$scope.category.$saveSubCategory({types: this.type+"s", categoryId: this.parentCategory.uniqueId}, onOk, onCancel); - } - - }; - - this.$scope.footerButtons = [ - {'name': 'OK', 'css': 'blue', 'callback': this.$scope.save, 'disabled': true}, - {'name': 'Cancel', 'css': 'grey', 'callback': this.$scope.close} - ]; - - this.$scope.$watch("forms.editForm.$invalid", (newVal, oldVal) => { - this.$scope.footerButtons[0].disabled = this.$scope.forms.editForm.$invalid; - }); - - } - - - } -} diff --git a/catalog-ui/app/scripts/view-models/admin-dashboard/add-category-modal/add-category-modal-view.html b/catalog-ui/app/scripts/view-models/admin-dashboard/add-category-modal/add-category-modal-view.html deleted file mode 100644 index 5718982661..0000000000 --- a/catalog-ui/app/scripts/view-models/admin-dashboard/add-category-modal/add-category-modal-view.html +++ /dev/null @@ -1,41 +0,0 @@ - - -
      - -
      -
      - - - -
      - - - -
      - -
      - -
      - -
      - -
      diff --git a/catalog-ui/app/scripts/view-models/admin-dashboard/add-category-modal/add-category-modal-view.less b/catalog-ui/app/scripts/view-models/admin-dashboard/add-category-modal/add-category-modal-view.less deleted file mode 100644 index 39d84aab23..0000000000 --- a/catalog-ui/app/scripts/view-models/admin-dashboard/add-category-modal/add-category-modal-view.less +++ /dev/null @@ -1,3 +0,0 @@ -.i-sdc-admin-add-category-modal { - -} diff --git a/catalog-ui/app/scripts/view-models/admin-dashboard/admin-dashboard-view-model.ts b/catalog-ui/app/scripts/view-models/admin-dashboard/admin-dashboard-view-model.ts deleted file mode 100644 index d7cbbcc68d..0000000000 --- a/catalog-ui/app/scripts/view-models/admin-dashboard/admin-dashboard-view-model.ts +++ /dev/null @@ -1,82 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.ViewModels { - - 'use strict'; - - interface IAdminDashboardViewModelScope extends ng.IScope { - version:string; - sdcConfig:Models.IAppConfigurtaion; - isLoading: boolean; - currentTab: string; - templateUrl:string; - monitorUrl:string; - moveToTab(tab:string):void; - isSelected(tab:string):boolean; - } - - - export class AdminDashboardViewModel { - static '$inject' = [ - '$scope', - 'Sdc.Services.CacheService', - 'sdcConfig' - ]; - - constructor(private $scope:IAdminDashboardViewModelScope, - private cacheService:Services.CacheService, - private sdcConfig:Models.IAppConfigurtaion) { - - this.initScope(); - } - - - private initScope = ():void => { - - this.$scope.version = this.cacheService.get('version'); - this.$scope.sdcConfig = this.sdcConfig; - this.$scope.monitorUrl = this.$scope.sdcConfig.api.kibana; - this.$scope.isSelected=(tab:string):boolean => { - return tab===this.$scope.currentTab; - } - - this.$scope.moveToTab=(tab:string):void => { - if (tab===this.$scope.currentTab){ - return; - } - else if(tab === 'USER_MANAGEMENT'){ - this.$scope.templateUrl = '/app/scripts/view-models/admin-dashboard/user-management/user-management-view.html'; - } - else if(tab ==='CATEGORY_MANAGEMENT'){ - this.$scope.templateUrl = '/app/scripts/view-models/admin-dashboard/category-management/category-management-view.html'; - } - /* else if(tab ==='ECOMP'){ - this.$scope.templateUrl = '/app/scripts/view-models/admin-dashboard/ecomp/ecomp-view.html'; - }*/ - this.$scope.currentTab = tab; - }; - - this.$scope.moveToTab('USER_MANAGEMENT'); - - - } - } -} diff --git a/catalog-ui/app/scripts/view-models/admin-dashboard/admin-dashboard-view.html b/catalog-ui/app/scripts/view-models/admin-dashboard/admin-dashboard-view.html deleted file mode 100644 index 063525a4bf..0000000000 --- a/catalog-ui/app/scripts/view-models/admin-dashboard/admin-dashboard-view.html +++ /dev/null @@ -1,24 +0,0 @@ -
      - - - - - -
      - -
      -
      diff --git a/catalog-ui/app/scripts/view-models/admin-dashboard/admin-dashboard.less b/catalog-ui/app/scripts/view-models/admin-dashboard/admin-dashboard.less deleted file mode 100644 index 874a02c431..0000000000 --- a/catalog-ui/app/scripts/view-models/admin-dashboard/admin-dashboard.less +++ /dev/null @@ -1,49 +0,0 @@ -.sdc-admin-container{ - height: 100%; - - .sdc-admin-top-bar-menu{ - .bg_k; - height: @top_nav_admin_height; - padding-left:260px; - .box-shadow(-1px 0px 3px 0px rgba(0, 0, 0, 0.33)); - position: absolute; - top: @header_height; - left: 0; - right: 0; - z-index: 2; - - .sdc-admin-top-bar-menu-tab{ - .b_17; - .hand; - height: 44px; - background-color: transparent; - position: relative; - padding: 0px 10px 0px 10px; - border: none; - outline: none; - margin-right: 15px; - &.selected { - outline: none; - border-bottom: solid 4px @color_t; - } - } - .sdc-admin-top-bar-menu-monitor-btn{ - .bg_a; - .c_6; - float: right; - border: none; - position: relative; - padding: 11px 24px; - } - } - - .sdc-admin-body{ - .bg_n; - padding: 40px 260px 60px 260px; - position: absolute; - top: @top_nav_admin_height; - left: 0; - right: 0; - bottom: 0; - } -} diff --git a/catalog-ui/app/scripts/view-models/admin-dashboard/category-management/category-management-view-model.ts b/catalog-ui/app/scripts/view-models/admin-dashboard/category-management/category-management-view-model.ts deleted file mode 100644 index a3ad7a2714..0000000000 --- a/catalog-ui/app/scripts/view-models/admin-dashboard/category-management/category-management-view-model.ts +++ /dev/null @@ -1,197 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.ViewModels { - 'use strict'; - - interface ICategoryManagementViewModelScope extends ng.IScope { - SERVICE:string; - RESOURCE:string; - categoriesToShow: Array; - serviceCategories: Array; - resourceCategories: Array; - selectedCategory: Sdc.Services.ICategoryResource; - selectedSubCategory: Sdc.Services.ICategoryResource; - modalInstance:ng.ui.bootstrap.IModalServiceInstance; - isLoading:boolean; - type:string; - namePattern:RegExp; - - selectCategory(category:Sdc.Services.ICategoryResource) :void; - selectSubCategory(subcategory:Sdc.Services.ICategoryResource) :void; - selectType(type:string) :void; - deleteCategory(category:Sdc.Services.ICategoryResource, subCategory:Sdc.Services.ICategoryResource) :void; - createCategoryModal(parentCategory:Sdc.Services.ICategoryResource) :void; - } - - export class CategoryManagementViewModel { - static '$inject' = [ - '$scope', - 'sdcConfig', - 'Sdc.Services.CacheService', - '$templateCache', - '$modal', - '$filter', - 'ValidationUtils', - 'ModalsHandler' - ]; - - constructor(private $scope:ICategoryManagementViewModelScope, - private sdcConfig:Models.IAppConfigurtaion, - private cacheService:Services.CacheService, - private $templateCache:ng.ITemplateCacheService, - private $modal:ng.ui.bootstrap.IModalService, - private $filter:ng.IFilterService, - private ValidationUtils: Sdc.Utils.ValidationUtils, - private ModalsHandler: Utils.ModalsHandler - ) { - - this.initScope(); - this.$scope.selectType(Sdc.Utils.Constants.ComponentType.SERVICE.toLocaleLowerCase()); - - } - - private initScope = ():void => { - let scope:ICategoryManagementViewModelScope = this.$scope; - scope.SERVICE = Sdc.Utils.Constants.ComponentType.SERVICE.toLocaleLowerCase(); - scope.RESOURCE = Sdc.Utils.Constants.ComponentType.RESOURCE.toLocaleLowerCase(); - - scope.namePattern = this.ValidationUtils.getValidationPattern('cssClasses'); - - scope.selectCategory = (category :Sdc.Services.ICategoryResource) => { - if(scope.selectedCategory !== category) { - scope.selectedSubCategory = null; - } - scope.selectedCategory = category; - }; - scope.selectSubCategory = (subcategory :Sdc.Services.ICategoryResource) => { - scope.selectedSubCategory = subcategory; - }; - scope.selectType = (type:string):void => { - if (scope.type !== type) { - scope.selectedCategory = null; - scope.selectedSubCategory = null; - } - - scope.type = type; - scope.categoriesToShow = scope[type + 'Categories']; - }; - - scope.createCategoryModal = (parentCategory:Sdc.Services.ICategoryResource):void => { - //can't create a sub category for service - if(parentCategory && scope.type === Sdc.Utils.Constants.ComponentType.SERVICE.toLowerCase()) { - return; - } - - let type:string = scope.type; - - let onOk = (newCategory :Sdc.Services.ICategoryResource):void => { - if(!parentCategory) { - scope[type + 'Categories'].push(newCategory); - }else{ - if(!parentCategory.subcategories) { - parentCategory.subcategories = []; - } - parentCategory.subcategories.push(newCategory); - } - }; - - let onCancel = ():void => { - - }; - - let modalOptions:ng.ui.bootstrap.IModalSettings = { - template: this.$templateCache.get('/app/scripts/view-models/admin-dashboard/add-category-modal/add-category-modal-view.html'), - controller: 'Sdc.ViewModels.AddCategoryModalViewModel', - size: 'sdc-xsm', - backdrop: 'static', - scope: scope, - resolve: { - parentCategory: function () { - return parentCategory; - }, - type: function () { - return type; - } - } - }; - - scope.modalInstance = this.$modal.open(modalOptions); - scope.modalInstance.result.then(onOk, onCancel); - - }; - - scope.deleteCategory = (category: Sdc.Services.ICategoryResource, subCategory: Sdc.Services.ICategoryResource): void => { - - let onOk = ():void => { - - scope.isLoading = true; - let type:string = scope.type; - - let onError = (response):void => { - scope.isLoading = false; - console.info('onFaild', response); - }; - - let onSuccess = (response: any) :void => { - let arr:Array; - - if(!subCategory) { - arr = this.$scope[type + 'Categories']; - arr.splice(arr.indexOf(category), 1); - if(category === scope.selectedCategory) { - scope.selectedCategory = null; - scope.selectedSubCategory = null; - } - } else { - arr = category.subcategories; - arr.splice(arr.indexOf(subCategory), 1); - } - - scope.isLoading = false; - }; - - if(!subCategory) { - category.$delete({ - types: type+"s", - categoryId: category.uniqueId - } - , onSuccess, onError); - } else { - category.$deleteSubCategory({ - types: type+"s", - categoryId: category.uniqueId, - subCategoryId: subCategory.uniqueId, - } - , onSuccess, onError); - } - }; - let modelType:string = subCategory ? 'sub category' : 'cssClasses'; - let title:string = this.$filter('translate')("DELETE_CATEGORY_MODAL_HEADER", "{'modelType': '" + modelType +"' }"); - let message:string = this.$filter('translate')("DELETE_CATEGORY_MODAL_CATEGORY_NAME", "{'modelType': '" + modelType +"' }"); - - this.ModalsHandler.openConfirmationModal(title, message, false, 'sdc-xsm').then(onOk); - }; - - this.$scope.serviceCategories = this.cacheService.get('serviceCategories'); - this.$scope.resourceCategories = this.cacheService.get('resourceCategories'); - } - } -} diff --git a/catalog-ui/app/scripts/view-models/admin-dashboard/category-management/category-management-view.html b/catalog-ui/app/scripts/view-models/admin-dashboard/category-management/category-management-view.html deleted file mode 100644 index 95a002d3d7..0000000000 --- a/catalog-ui/app/scripts/view-models/admin-dashboard/category-management/category-management-view.html +++ /dev/null @@ -1,53 +0,0 @@ -
      - - - -
      - -
      - -

      - - -

      - - - -
        -
      • - {{category.name}} - - - -
      • -
      -
      -
      - -
      - -

      - - - -
        -
      • - {{subcategory.name}} - - - -
      • -
      -
      -
      - -
      -
      diff --git a/catalog-ui/app/scripts/view-models/admin-dashboard/category-management/category-management.less b/catalog-ui/app/scripts/view-models/admin-dashboard/category-management/category-management.less deleted file mode 100644 index 011122c9e8..0000000000 --- a/catalog-ui/app/scripts/view-models/admin-dashboard/category-management/category-management.less +++ /dev/null @@ -1,118 +0,0 @@ - -.category-management { - - .row { - display: table; - width: 70%; - min-width: 800px; - margin: auto; - - [class*="col-"] { - float: none; - display: table-cell; - vertical-align: top; - background-color: white; - border: 1px solid #c1c1c1; - padding: 0; - - &:not(:last-child) { - border-right: none; - } - - h4 { - float:left; - color:white; - background-color: rgb(155,168,176); - margin: 0; - padding: 0px 0px 0px 16px; - width: 100%; - height: 31px; - font-size: 15px; - - span{ - display: inline-block; - line-height: 30px; - margin-right: 5px; - padding: 0 7px; - - &.selected { - border-bottom: 2px #067ab4 solid; - } - } - } - h4+span{ - .hand; - float:right; - display: inline-block; - background-color: rgb(59,124,156); - text-align: center; - padding: 5.5px 0px; - width: 60px; - color: white; - position: absolute; - top: 0; - right: 0; - z-index: 1; - color: white; - } - - - .perfect-scrollbar { - width: 100%; - height: 500px; - margin-top: 40px; - margin-bottom: 15px; - } - - ul { - clear: both; - margin: 5px 0 10px 0; - list-style-type: none; - padding: 0; - position: relative; - - li{ - .hand; - padding: 0 8px; - text-indent: 9px; - font-size: 13px; - line-height: 25px; - border: 1px solid white; - border-right: none; - border-left: none; - margin-right: 5px; - - button { - background-color: transparent; - border: none; - float: right; - margin: 5px 3px; - display: none; - } - - &:hover { - background-color: #d9e6ec; - color: #3b7b9b; - border-color: #d9e6ec; - - button { - display: inline-block; - } - } - &.selected { - background-color: rgb(219,230,236); - color: #3b7b9b; - border-color: rgba(59, 123, 155, 0.42); - - &.gray { - background-color: rgba(155, 168, 176, 0.09); - border-color: white; - } - } - - } - } - } - } - -} diff --git a/catalog-ui/app/scripts/view-models/admin-dashboard/ecomp/ecomp-view.html b/catalog-ui/app/scripts/view-models/admin-dashboard/ecomp/ecomp-view.html deleted file mode 100644 index 7c89b545c5..0000000000 --- a/catalog-ui/app/scripts/view-models/admin-dashboard/ecomp/ecomp-view.html +++ /dev/null @@ -1 +0,0 @@ -
      diff --git a/catalog-ui/app/scripts/view-models/admin-dashboard/user-management/user-management-view-model.ts b/catalog-ui/app/scripts/view-models/admin-dashboard/user-management/user-management-view-model.ts deleted file mode 100644 index 3921d0cf8f..0000000000 --- a/catalog-ui/app/scripts/view-models/admin-dashboard/user-management/user-management-view-model.ts +++ /dev/null @@ -1,220 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.ViewModels { - - import IUserProperties = Sdc.Models.IUserProperties; - 'use strict'; - - interface IUserManagementViewModelScope extends ng.IScope { - sdcConfig:Models.IAppConfigurtaion; - usersList: Array; - isLoading: boolean; - isNewUser: boolean; - sortBy:string; - reverse:boolean; - tableHeadersList:any; - roles:Array; - newUser: Models.IUser; - currentUser: Sdc.Services.IUserResource; - userIdValidationPattern: RegExp; - editForm:ng.IFormController; - getAllUsers():void; - editUserRole(user:IUserProperties); - sort(sortBy:string): void; - createUser(): void; - deleteUser(userId:string) : void; - onEditUserPressed(user:IUserProperties): void; - saveUserChanges(user:IUserProperties) :void; - getTitle(role:string): string; - clearForm():void; - - } - - - export class UserManagementViewModel { - static '$inject' = [ - '$scope', - 'sdcConfig', - 'Sdc.Services.UserResourceService', - '$templateCache', - '$modal', - 'UserIdValidationPattern', - '$filter', - 'ModalsHandler' - ]; - - constructor(private $scope:IUserManagementViewModelScope, - private sdcConfig:Models.IAppConfigurtaion, - private userResourceService:Sdc.Services.IUserResourceClass, - private $templateCache:ng.ITemplateCacheService, - private $modal:ng.ui.bootstrap.IModalService, - private UserIdValidationPattern:RegExp, - private $filter:ng.IFilterService, - private ModalsHandler: Utils.ModalsHandler - ) { - - this.initScope(); - - } - - - - private getAllUsers = ():void => { - this.$scope.isLoading = true; - - let onError = (response) => { - this.$scope.isLoading = false; - console.info('onFaild', response); - }; - let onSuccess = (response: Array) => { - this.$scope.usersList = response; - _.forEach(this.$scope.usersList,(user:any,i:number)=>{ - user.index = i; - }); - this.$scope.isLoading = false; - }; - this.userResourceService.getAllUsers(onSuccess, onError); - }; - - private updateUserFilterTerm = (user: IUserProperties): void =>{ - user.filterTerm = user.firstName + ' ' + user.lastName + ' ' + user.userId + ' ' + user.email + ' ' + user.role + ' ' + this.$filter('date')(user.lastLoginTime, "MM/dd/yyyy"); - }; - - private initScope = ():void => { - let self=this; - - this.$scope.tableHeadersList = [ - {title: "First Name", property: 'firstName'}, - {title: "Last Name", property: 'lastName'}, - {title: this.$filter('translate')("USER_MANAGEMENT_TABLE_HEADER_USER_ID"), property: 'userId'}, - {title: "Email", property: 'email'}, - {title: "Role", property: 'role'}, - {title: "Last Active", property: 'lastLoginTime'} - ]; - this.$scope.userIdValidationPattern = this.UserIdValidationPattern; - this.$scope.sortBy = 'lastLoginTime'; - this.$scope.reverse = false; - this.$scope.roles = this.sdcConfig.roles; - this.$scope.isNewUser = false; - this.$scope.currentUser = this.userResourceService.getLoggedinUser(); - this.getAllUsers(); - - let resource : Services.IUserResource = {}; - this.$scope.newUser = new Sdc.Models.User(resource); - - this.$scope.sort = (sortBy:string):void => {//default sort by descending last update. default for alphabetical = ascending - this.$scope.isNewUser = false; - this.$scope.reverse = (this.$scope.sortBy === sortBy) ? ( !this.$scope.reverse) : this.$scope.reverse = false; - this.$scope.sortBy = sortBy; - }; - - this.$scope.createUser = () : void => { - - let onError = (response) => { - this.$scope.isLoading = false; - console.info('onFaild', response); - }; - - let onSuccess = (response: Models.IUserProperties) => { - this.$scope.newUser.resource['index'] = this.$scope.usersList.length; - this.$scope.newUser.resource.lastLoginTime = "0"; - this.$scope.newUser.resource.status = response.status; - this.updateUserFilterTerm(this.$scope.newUser.resource); - this.$scope.usersList.unshift(this.$scope.newUser.resource); - this.$scope.isNewUser = true; - this.$scope.sortBy = 'index'; - this.$scope.reverse = true; - this.$scope.isLoading = false; - this.$scope.newUser = new Sdc.Models.User(null); - this.$scope.editForm.$setPristine(); - let _self = this; - setTimeout(function () { - _self.$scope.isNewUser = false; - }, 7000); - }; - this.userResourceService.createUser({ userId: this.$scope.newUser.resource.userId, role: this.$scope.newUser.resource.role}, onSuccess, onError); - }; - - - this.$scope.onEditUserPressed = (user:IUserProperties): void => { - user.isInEditMode = true; - user.tempRole = user.role; - }; - - this.$scope.editUserRole = (user:IUserProperties): void => { - let roleBeforeUpdate: string = user.role; - user.role= user.tempRole; - - let onError = (response) => { - this.$scope.isLoading = false; - user.role = roleBeforeUpdate; - console.info('onFaild', response); - }; - let onSuccess = (response: any) => { - this.$scope.isLoading = false; - user.tempRole = user.role; - this.updateUserFilterTerm(user); - }; - - this.userResourceService.editUserRole({ id: user.userId, role: user.role}, onSuccess, onError); - }; - - this.$scope.saveUserChanges = (user:IUserProperties): void => { - if(user.tempRole != user.role){ - this.$scope.editUserRole(user) - } - user.isInEditMode = false; - }; - - this.$scope.deleteUser = (userId:string): void => { - - let onOk = ():void => { - this.$scope.isLoading = true; - - let onError = (response):void => { - this.$scope.isLoading = false; - console.info('onFaild', response); - }; - - let onSuccess = (response: any) :void => { - _.remove(this.$scope.usersList, {userId: userId }); - this.$scope.isLoading = false; - }; - this.userResourceService.deleteUser({ id: userId}, onSuccess, onError); - }; - - let title:string = this.$filter('translate')("USER_MANAGEMENT_VIEW_DELETE_MODAL_TITLE"); - let message:string = this.$filter('translate')("USER_MANAGEMENT_VIEW_DELETE_MODAL_TEXT"); - this.ModalsHandler.openConfirmationModal(title, message, false).then(onOk); - }; - - this.$scope.getTitle = (role:string):string =>{ - return role.toLowerCase().replace('governor','governance_Rep').replace('_',' '); - }; - - this.$scope.clearForm =():void =>{ - if(!this.$scope.editForm['contactId'].$viewValue && !this.$scope.editForm['role'].$viewValue){ - this.$scope.editForm.$setPristine(); - } - }; - } - } -} diff --git a/catalog-ui/app/scripts/view-models/admin-dashboard/user-management/user-management-view.html b/catalog-ui/app/scripts/view-models/admin-dashboard/user-management/user-management-view.html deleted file mode 100644 index 26e720b044..0000000000 --- a/catalog-ui/app/scripts/view-models/admin-dashboard/user-management/user-management-view.html +++ /dev/null @@ -1,102 +0,0 @@ -
      - -
      -
      - - - -
      -
      -
      -
      -
      - -
      -
      - - -
      - - -
      -
      -
      - -
      - -
      -
      - -
      -
      -
      - - -
      - -
      -
      -
      {{header.title}} - -
      -
      -
      -
      - -
      - -
      - -
      {{user.firstName || '---'}}
      -
      {{user.lastName || '---' }}
      -
      {{user.userId || '---'}}
      -
      {{user.email || '---'}}
      -
      -
      - -
      -
      {{user.lastLoginTime == 0 ? 'Waiting' : (user.lastLoginTime | date:'MM/dd/yyyy')}}
      -
      - - -
      -
      - -
      - -
      -
      -
      - -
      -
      -
      diff --git a/catalog-ui/app/scripts/view-models/admin-dashboard/user-management/user-management.less b/catalog-ui/app/scripts/view-models/admin-dashboard/user-management/user-management.less deleted file mode 100644 index 934faab9e7..0000000000 --- a/catalog-ui/app/scripts/view-models/admin-dashboard/user-management/user-management.less +++ /dev/null @@ -1,251 +0,0 @@ -.sdc-user-management-top-bar { - display: flex; - width: 100%; - label { - .i_17; - } - .sdc-user-management-top-bar-form-input, - .sdc-user-management-top-bar-form-select { - .b_9; - color: @color_b; - height: 28px; - padding-left: 10px; - border-radius: 2px; - border: 1px solid @border_color_f; - } - - .sdc-user-management-top-bar-search-container { - display: flex; - flex-direction: column; - position: relative; - width: 400px; - - label { - margin-bottom: 20px; - } - - .w-sdc-search-icon { - right: 11px; - top: 49px; - } - } - .vertical-border-container { - min-width: 50px; - margin: 0px auto; - - .vertical-border { - - width: 1px; - height: 70px; - background-color: @color_e; - display: table; - margin: 0 auto; - } - } - - .sdc-user-management-top-bar-wrapper { - display: flex; - } - - .sdc-user-management-top-bar-title { - .i_17; - font-weight: bold; - } - - .sdc-user-management-top-bar-create-user-container { - - display: flex; - flex-direction: column; - position: relative; - float: right; - padding-top: 0px; - text-align: left; - width: 650px; - - label { - margin-bottom: 20px; - } - - .sdc-user-management-top-bar-form-container { - width: 233px; - margin-right: 35px; - } - - .sdc-user-management-top-bar-create-btn { - .w-sdc-btn-light-green; - height: 30px; - width: 100px; - line-height: 0px; - padding-bottom: 3px; - margin-right: 0px; - } - } -} - - -.sdc-user-management-table-container-flex { - height: 650px; - margin-top: 35px; - .sdc-user-management-table { - width: 100%; - border: 1px solid @color_m; - .head { - .bg_m; - .head-row { - .c_18; - font-weight: bold; - - border-right: 1px solid @border_color_d; - - .sdc-user-management-table-header-sort-arrow { - display: inline-block; - background-color: transparent; - border: none; - .c_9; - width: 0; - height: 0; - float: right; - margin: 8px 8px 0px 0px; - &.up { - border-left: 5px solid transparent; - border-right: 5px solid transparent; - border-bottom: 5px solid; - } - &.down { - border-left: 5px solid transparent; - border-right: 5px solid transparent; - border-top: 5px solid; - } - } - } - .sdc-user-management-table-header:hover { - .bg_j; - } - - } - .body { - .scrollbar-container { - max-height: 421px; - .perfect-scrollbar; - } - .b_9; - - .data-row { - &:nth-of-type(odd) { - .bg_c; - } - &.sdc-user-management-table-new-user-row { - - animation: change 7s step-end both; - - @keyframes change { - from { - color: @color_z - } - to { - color: @color_b - } - } - } - &.sdc-user-management-table-row-edit-mode { - .bg_j; - } - div { - - border-right: 1px solid @border_color_d; - - &:last-child { - border-right: none; - } - - .sdc-user-management-table-role-select { - background-color: transparent; - border: 0; - width: 100%; - - } - .sdc-user-management-table-role-label { - margin-left:4px; - } - - } - - } - .data-row:hover { - .bg_j; - } - - } - - .sdc-user-management-table-btn-col { - - line-height: 0px; - text-align: center; - .sdc-user-management-table-delete-btn { - background-color: transparent; - border: none; - .sprite; - .sprite.e-sdc-small-icon-delete; - opacity: 0.7; - } - .sdc-user-management-table-edit-btn { - background-color: transparent; - border: none; - .sprite; - .e-sdc-small-icon-pencil; - opacity: 0.7; - } - .sdc-user-management-table-save-btn { - background-color: transparent; - border: none; - .sprite; - .sprite.e-sdc-green-save; - } - } - - } - - .sdc-user-management-flex-container { - display: flex; - } - - .sdc-user-management-flex-item { - width:10px; - padding: 5px; - text-align: center; - } - - .sdc-user-management-flex-item:nth-child(1) { - flex-grow: 5; - } - - .sdc-user-management-flex-item:nth-child(2) { - flex-grow: 7; - } - - .sdc-user-management-flex-item:nth-child(3) { - flex-grow: 4; - } - - .sdc-user-management-flex-item:nth-child(4) { - flex-grow: 8; - } - - .sdc-user-management-flex-item:nth-child(5) { - flex-grow: 8; - } - - .sdc-user-management-flex-item:nth-child(6) { - flex-grow: 8; - } - - .sdc-user-management-flex-item:nth-child(7) { - flex-grow: 1; - } - - .sdc-user-management-flex-item:nth-child(8) { - flex-grow: 1; - } - -} - diff --git a/catalog-ui/app/scripts/view-models/catalog/catalog-view-model.ts b/catalog-ui/app/scripts/view-models/catalog/catalog-view-model.ts deleted file mode 100644 index bf37e92e56..0000000000 --- a/catalog-ui/app/scripts/view-models/catalog/catalog-view-model.ts +++ /dev/null @@ -1,312 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.ViewModels { - - 'use strict'; - - interface Checkboxes { - componentTypes:Array; - resourceSubTypes:Array; - } - - interface CheckboxesFilter { - // Types - selectedComponentTypes:Array; - selectedResourceSubTypes:Array; - // Categories - selectedCategoriesModel:Array; - // Statuses - selectedStatuses:Array; - } - - interface Gui { - isLoading: boolean; - onResourceSubTypesClick:Function; - onComponentTypeClick:Function; - onCategoryClick:Function; - onSubcategoryClick:Function; - onGroupClick:Function; - } - - export interface ICatalogViewModelScope extends ng.IScope { - checkboxes:Checkboxes; - checkboxesFilter:CheckboxesFilter; - gui:Gui; - - categories: Array; - confStatus: Models.IConfigStatuses; - sdcMenu:Models.IAppMenu; - catalogFilterdItems: Array; - expandedSection: Array; - actionStrategy: any; - user: Models.IUserProperties; - catalogMenuItem: any; - version:string; - sortBy:string; - reverse:boolean; - - //this is for UI paging - numberOfItemToDisplay:number; - isAllItemDisplay: boolean; - - openViewerModal(isResource: boolean, uniqueId: string): void; - changeLifecycleState(entity:any,state:string): void; - sectionClick (section:string):void; - order(sortBy:string): void; - getNumOfElements(num:number): string; - goToComponent(component:Models.Components.Component):void; - raiseNumberOfElementToDisplay():void; - } - - export class CatalogViewModel { - static '$inject' = [ - '$scope', - '$filter', - 'Sdc.Services.EntityService', - 'sdcConfig', - 'sdcMenu', - '$state', - '$q', - 'Sdc.Services.UserResourceService', - '$modal', - '$templateCache', - 'Sdc.Services.CacheService', - 'ComponentFactory', - 'ChangeLifecycleStateHandler', - 'ModalsHandler', - 'MenuHandler' - ]; - - constructor(private $scope:ICatalogViewModelScope, - private $filter:ng.IFilterService, - private EntityService:Services.EntityService, - private sdcConfig:Models.IAppConfigurtaion, - private sdcMenu:Models.IAppMenu, - private $state:any, - private $q:any, - private userResourceService:Sdc.Services.IUserResourceClass, - private $modal:ng.ui.bootstrap.IModalService, - private $templateCache:ng.ITemplateCacheService, - private cacheService:Services.CacheService, - private ComponentFactory: Sdc.Utils.ComponentFactory, - private ChangeLifecycleStateHandler: Sdc.Utils.ChangeLifecycleStateHandler, - private OpenViewModalHandler: Utils.ModalsHandler, - private MenuHandler: Utils.MenuHandler - ) { - - this.initScopeMembers(); - this.initCatalogData(); // Async task to get catalog from server. - this.initScopeMethods(); - } - - private initCatalogData = ():void => { - let onSuccess = (followedResponse:Array):void => { - this.$scope.catalogFilterdItems = followedResponse; - this.$scope.isAllItemDisplay = this.$scope.numberOfItemToDisplay >= this.$scope.catalogFilterdItems.length; - this.$scope.categories = this.cacheService.get('serviceCategories').concat(this.cacheService.get('resourceCategories')).concat(this.cacheService.get('productCategories')); - this.$scope.gui.isLoading = false; - }; - - let onError = ():void => { - console.info('Failed to load catalog CatalogViewModel::initCatalog'); - this.$scope.gui.isLoading = false; - }; - this.EntityService.getCatalog().then(onSuccess, onError); - }; - - - - private initScopeMembers = ():void => { - // Gui init - this.$scope.gui = {}; - this.$scope.gui.isLoading = true; - this.$scope.numberOfItemToDisplay = 0; - //this.$scope.categories = this.cacheService.get('categoriesMap'); - this.$scope.sdcMenu = this.sdcMenu; - this.$scope.confStatus = this.sdcMenu.statuses; - this.$scope.expandedSection = ["type", "cssClasses", "product-category", "status"]; - this.$scope.user = this.userResourceService.getLoggedinUser(); - this.$scope.catalogMenuItem = this.sdcMenu.catalogMenuItem; - this.$scope.version = this.cacheService.get('version'); - this.$scope.sortBy = 'lastUpdateDate'; - this.$scope.reverse = true; - - - // Checklist init - this.$scope.checkboxes = {}; - this.$scope.checkboxes.componentTypes = ['Resource', 'Service', 'Product']; - this.$scope.checkboxes.resourceSubTypes = ['VF', 'VFC', 'CP', 'VL']; - - // Checkboxes filter init - this.$scope.checkboxesFilter = {}; - this.$scope.checkboxesFilter.selectedComponentTypes = []; - this.$scope.checkboxesFilter.selectedResourceSubTypes = []; - this.$scope.checkboxesFilter.selectedCategoriesModel = []; - this.$scope.checkboxesFilter.selectedStatuses = []; - - // this.$scope.isAllItemDisplay = this.$scope.numberOfItemToDisplay >= this.$scope.catalogFilterdItems.length; - }; - - private initScopeMethods = ():void => { - this.$scope.sectionClick = (section:string):void => { - let index:number = this.$scope.expandedSection.indexOf(section); - if (index!==-1) { - this.$scope.expandedSection.splice(index,1); - } else { - this.$scope.expandedSection.push(section); - } - }; - - - this.$scope.order = (sortBy:string):void => {//default sort by descending last update. default for alphabetical = ascending - this.$scope.reverse = (this.$scope.sortBy === sortBy) ? !this.$scope.reverse : (sortBy === 'lastUpdateDate') ? true: false; - this.$scope.sortBy = sortBy; - }; - - - this.$scope.goToComponent = (component:Models.Components.Component):void => { - this.$scope.gui.isLoading = true; - this.$state.go('workspace.general', {id: component.uniqueId, type:component.componentType.toLowerCase()}); - }; - - - // Will print the number of elements found in catalog - this.$scope.getNumOfElements = (num:number) : string => { - if (!num || num===0){ - return "No Elements found"; - } else if (num===1){ - return "1 Element found"; - }else { - return num + " Elements found"; - } - }; - - /** - * Select | unselect sub resource when resource is clicked | unclicked. - * @param type - */ - this.$scope.gui.onComponentTypeClick = (type:string): void => { - if (type==='Resource'){ - if (this.$scope.checkboxesFilter.selectedComponentTypes.indexOf('Resource')===-1){ - // If the resource was not selected, unselect all childs. - this.$scope.checkboxesFilter.selectedResourceSubTypes = []; - } else { - // If the resource was selected, select all childs - this.$scope.checkboxesFilter.selectedResourceSubTypes = angular.copy(this.$scope.checkboxes.resourceSubTypes); - } - } - }; - - /** - * Selecting | unselect resources when sub resource is clicked | unclicked. - */ - this.$scope.gui.onResourceSubTypesClick = ():void => { - if (this.$scope.checkboxesFilter.selectedResourceSubTypes && this.$scope.checkboxesFilter.selectedResourceSubTypes.length===this.$scope.checkboxes.resourceSubTypes.length){ - this.$scope.checkboxesFilter.selectedComponentTypes.push('Resource'); - } else { - this.$scope.checkboxesFilter.selectedComponentTypes = _.without(this.$scope.checkboxesFilter.selectedComponentTypes,'Resource'); - } - }; - - this.$scope.gui.onCategoryClick = (category:Models.IMainCategory): void => { - // Select | Unselect all childs - if (this.isCategorySelected(category.uniqueId)){ - this.$scope.checkboxesFilter.selectedCategoriesModel = this.$scope.checkboxesFilter.selectedCategoriesModel.concat(angular.copy(_.map(category.subcategories, (item) => { return item.uniqueId; }))); - if (category.subcategories) { - category.subcategories.forEach((sub:Models.ISubCategory)=> { // Loop on all selected subcategories and mark the childrens - this.$scope.checkboxesFilter.selectedCategoriesModel = this.$scope.checkboxesFilter.selectedCategoriesModel.concat(angular.copy(_.map(sub.groupings, (item) => { - return item.uniqueId; - }))); - }); - } - } else { - this.$scope.checkboxesFilter.selectedCategoriesModel = _.difference(this.$scope.checkboxesFilter.selectedCategoriesModel, _.map(category.subcategories, (item) => { return item.uniqueId; })); - if (category.subcategories) { - category.subcategories.forEach((sub:Models.ISubCategory)=> { // Loop on all selected subcategories and un mark the childrens - this.$scope.checkboxesFilter.selectedCategoriesModel = _.difference(this.$scope.checkboxesFilter.selectedCategoriesModel, _.map(sub.groupings, (item) => { - return item.uniqueId; - })); - }); - } - } - }; - - this.$scope.gui.onSubcategoryClick = (category:Models.IMainCategory, subCategory:Models.ISubCategory) : void => { - // Select | Unselect all childs - if (this.isCategorySelected(subCategory.uniqueId)){ - this.$scope.checkboxesFilter.selectedCategoriesModel = this.$scope.checkboxesFilter.selectedCategoriesModel.concat(angular.copy(_.map(subCategory.groupings, (item) => { return item.uniqueId; }))); - } else { - this.$scope.checkboxesFilter.selectedCategoriesModel = _.difference(this.$scope.checkboxesFilter.selectedCategoriesModel, _.map(subCategory.groupings, (item) => { return item.uniqueId; })); - } - - // Mark | Un mark the parent when all childs selected. - if (this.areAllCategoryChildsSelected(category)){ - // Add the category to checkboxesFilter.selectedCategoriesModel - this.$scope.checkboxesFilter.selectedCategoriesModel.push(category.uniqueId); - } else { - this.$scope.checkboxesFilter.selectedCategoriesModel = _.without(this.$scope.checkboxesFilter.selectedCategoriesModel, category.uniqueId); - } - - }; - - this.$scope.raiseNumberOfElementToDisplay = () : void => { - this.$scope.numberOfItemToDisplay = this.$scope.numberOfItemToDisplay +35; - if(this.$scope.catalogFilterdItems) { - this.$scope.isAllItemDisplay = this.$scope.numberOfItemToDisplay >= this.$scope.catalogFilterdItems.length; - } - }; - - this.$scope.gui.onGroupClick = (subCategory:Models.ISubCategory) : void => { - // Mark | Un mark the parent when all childs selected. - if (this.areAllSubCategoryChildsSelected(subCategory)){ - // Add the category to checkboxesFilter.selectedCategoriesModel - this.$scope.checkboxesFilter.selectedCategoriesModel.push(subCategory.uniqueId); - } else { - this.$scope.checkboxesFilter.selectedCategoriesModel = _.without(this.$scope.checkboxesFilter.selectedCategoriesModel, subCategory.uniqueId); - } - }; - - - }; - - private areAllCategoryChildsSelected = (category:Models.IMainCategory):boolean => { - if (!category.subcategories){return false;} - let allIds = _.map(category.subcategories, (sub:Models.ISubCategory)=>{return sub.uniqueId;}); - let total = _.intersection(this.$scope.checkboxesFilter.selectedCategoriesModel, allIds); - return total.length === category.subcategories.length?true:false; - }; - - private areAllSubCategoryChildsSelected = (subCategory:Models.ISubCategory):boolean => { - if (!subCategory.groupings){return false;} - let allIds = _.map(subCategory.groupings, (group:Models.IGroup)=>{return group.uniqueId;}); - let total = _.intersection(this.$scope.checkboxesFilter.selectedCategoriesModel, allIds); - return total.length === subCategory.groupings.length?true:false; - }; - - private isCategorySelected = (uniqueId:string):boolean => { - if (this.$scope.checkboxesFilter.selectedCategoriesModel.indexOf(uniqueId)!==-1){ - return true; - } - return false; - }; - - } -} diff --git a/catalog-ui/app/scripts/view-models/catalog/catalog-view-tests.ts b/catalog-ui/app/scripts/view-models/catalog/catalog-view-tests.ts deleted file mode 100644 index 3e21835233..0000000000 --- a/catalog-ui/app/scripts/view-models/catalog/catalog-view-tests.ts +++ /dev/null @@ -1,309 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -describe("test catalog-view", () => { - - let $controllerMock:ng.IControllerService; - let $qMock:ng.IQService; - let $httpBackendMock:ng.IHttpBackendService; - let $scopeMock:Sdc.ViewModels.ICatalogViewModelScope; - let $stateMock:ng.ui.IStateService; - let $stateParams:any; - let entityServiceMock; - let cacheServiceMock; - - beforeEach(angular.mock.module('sdcApp')); - - let getAllEntitiesResponseMock = [ - { - "uniqueId": "855acdc7-7976-4913-9fa6-25220bd5a069", - "uuid": "8bc54f94-082c-42fa-9049-84767df3ff05", - "contactId": "qa1234", - "category": "VoIP Call Control", - "creationDate": 1447234712398, - "description": "ddddd", - "highestVersion": true, - "icon": "mobility", - "lastUpdateDate": 1447234712398, - "lastUpdaterUserId": "cs0008", - "lastUpdaterFullName": "Carlos Santana", - "lifecycleState": "NOT_CERTIFIED_CHECKOUT", - "distributionStatus": "DISTRIBUTION_NOT_APPROVED", - "projectCode": "233233", - "name": "mas mas mas mas mas mas mas mas mas mas mas mas ma", - "version": "0.1", - "type": 0, - "tags": [ - "mas mas mas mas mas mas mas mas mas mas mas mas ma" - ], - "systemName": "MasMasMasMasMasMasMasMasMasMasMasMasMa", - "vnf": true, - "$$hashKey": "object:30" - }, - { - "uniqueId": "4bb577ce-cb2c-4cb7-bb39-58644b5e73cb", - "uuid": "e27f4723-c9ec-4160-89da-dbf84d19a7e3", - "contactId": "qa1111", - "category": "Mobility", - "creationDate": 1447238503181, - "description": "aqa", - "highestVersion": true, - "icon": "call_controll", - "lastUpdateDate": 1447248991388, - "lastUpdaterUserId": "jm0007", - "lastUpdaterFullName": "Joni Mitchell", - "lifecycleState": "CERTIFIED", - "distributionStatus": "DISTRIBUTION_REJECTED", - "projectCode": "111111", - "name": "martin18", - "version": "1.0", - "type": 0, - "tags": [ - "martin18" - ], - "systemName": "Martin18", - "vnf": true - }, - { - "uniqueId": "f192f4a6-7fbf-42e4-a546-37509df28dc1", - "uuid": "0b77dc0d-222e-4d10-85cd-e420c9481417", - "contactId": "fd1212", - "category": "Application Layer 4+/Web Server", - "creationDate": 1447233679778, - "description": "geefw", - "highestVersion": true, - "icon": "database", - "lastUpdateDate": 1447233681582, - "lastUpdaterUserId": "cs0008", - "lastUpdaterFullName": "Carlos Santana", - "lifecycleState": "NOT_CERTIFIED_CHECKOUT", - "name": "ger", - "version": "0.1", - "type": 1, - "tags": [ - "ger" - ], - "vendorName": "fewwfe", - "vendorRelease": "fewew", - "systemName": "Ger", - "$$hashKey": "object:31" - }, - { - "uniqueId": "78392d08-1859-47c2-b1f2-1a35b7f8c30e", - "uuid": "8cdd63b2-6a62-4376-9012-624f424f71d4", - "contactId": "qw1234", - "category": "Application Layer 4+/Application Servers", - "creationDate": 1447234046114, - "description": "test", - "highestVersion": true, - "icon": "router", - "lastUpdateDate": 1447234050545, - "lastUpdaterUserId": "cs0008", - "lastUpdaterFullName": "Carlos Santana", - "lifecycleState": "NOT_CERTIFIED_CHECKOUT", - "name": "test", - "version": "0.1", - "type": 1, - "tags": [ - "test" - ], - "vendorName": "test", - "vendorRelease": "test", - "systemName": "Test", - "$$hashKey": "object:32" - }, - { - "uniqueId": "939e153d-2236-410f-b4a9-3b4bf8c79c9e", - "uuid": "84862547-4f56-4058-b78e-40df5f374d7e", - "contactId": "qw1234", - "category": "Application Layer 4+/Application Servers", - "creationDate": 1447235242560, - "description": "jlk", - "highestVersion": true, - "icon": "database", - "lastUpdateDate": 1447235328062, - "lastUpdaterUserId": "cs0008", - "lastUpdaterFullName": "Carlos Santana", - "lifecycleState": "NOT_CERTIFIED_CHECKIN", - "name": "new", - "version": "0.1", - "type": 1, - "tags": [ - "new" - ], - "vendorName": "e", - "vendorRelease": "e", - "systemName": "New", - "$$hashKey": "object:33" - }, - { - "uniqueId": "ece818e0-fd59-477a-baf6-e27461a7ce23", - "uuid": "8db823c2-6a9c-4636-8676-f5e713270dd7", - "contactId": "uf2345", - "category": "Network Layer 2-3/Router", - "creationDate": 1447235352429, - "description": "u", - "highestVersion": true, - "icon": "network", - "lastUpdateDate": 1447235370064, - "lastUpdaterUserId": "cs0008", - "lastUpdaterFullName": "Carlos Santana", - "lifecycleState": "NOT_CERTIFIED_CHECKOUT", - "name": "u", - "version": "0.1", - "type": 1, - "tags": [ - "u" - ], - "vendorName": "u", - "vendorRelease": "u", - "systemName": "U", - "$$hashKey": "object:34" - } - ]; - - let resourceCategoriesResponseMock = [{"name":"Network L2-3","normalizedName":"network l2-3","uniqueId":"resourceNewCategory.network l2-3","subcategories":[{"name":"Gateway","normalizedName":"gateway","uniqueId":"resourceNewCategory.network l2-3.gateway","icons":["gateway"]},{"name":"Infrastructure","normalizedName":"infrastructure","uniqueId":"resourceNewCategory.network l2-3.infrastructure","icons":["ucpe"]},{"name":"WAN Connectors","normalizedName":"wan connectors","uniqueId":"resourceNewCategory.network l2-3.wan connectors","icons":["network","connector","port"]},{"name":"LAN Connectors","normalizedName":"lan connectors","uniqueId":"resourceNewCategory.network l2-3.lan connectors","icons":["network","connector","port"]},{"name":"Router","normalizedName":"router","uniqueId":"resourceNewCategory.network l2-3.router","icons":["router","vRouter"]}]},{"name":"Network L4+","normalizedName":"network l4+","uniqueId":"resourceNewCategory.network l4+","subcategories":[{"name":"Common Network Resources","normalizedName":"common network resources","uniqueId":"resourceNewCategory.network l4+.common network resources","icons":["network"]}]},{"name":"Application L4+","normalizedName":"application l4+","uniqueId":"resourceNewCategory.application l4+","subcategories":[{"name":"Load Balancer","normalizedName":"load balancer","uniqueId":"resourceNewCategory.application l4+.load balancer","icons":["loadBalancer"]},{"name":"Media Servers","normalizedName":"media servers","uniqueId":"resourceNewCategory.application l4+.media servers","icons":["applicationServer"]},{"name":"Application Server","normalizedName":"application server","uniqueId":"resourceNewCategory.application l4+.application server","icons":["applicationServer"]},{"name":"Database","normalizedName":"database","uniqueId":"resourceNewCategory.application l4+.database","icons":["database"]},{"name":"Call Control","normalizedName":"call control","uniqueId":"resourceNewCategory.application l4+.call control","icons":["call_controll"]},{"name":"Border Element","normalizedName":"border element","uniqueId":"resourceNewCategory.application l4+.border element","icons":["borderElement"]},{"name":"Web Server","normalizedName":"web server","uniqueId":"resourceNewCategory.application l4+.web server","icons":["applicationServer"]},{"name":"Firewall","normalizedName":"firewall","uniqueId":"resourceNewCategory.application l4+.firewall","icons":["firewall"]}]},{"name":"Generic","normalizedName":"generic","uniqueId":"resourceNewCategory.generic","subcategories":[{"name":"Database","normalizedName":"database","uniqueId":"resourceNewCategory.generic.database","icons":["database"]},{"name":"Abstract","normalizedName":"abstract","uniqueId":"resourceNewCategory.generic.abstract","icons":["objectStorage","compute"]},{"name":"Network Elements","normalizedName":"network elements","uniqueId":"resourceNewCategory.generic.network elements","icons":["network","connector"]},{"name":"Infrastructure","normalizedName":"infrastructure","uniqueId":"resourceNewCategory.generic.infrastructure","icons":["connector"]}]},{"name":"NewCategory","normalizedName":"newcategory","uniqueId":"resourceNewCategory.newcategory","subcategories":[{"name":"MyNewSubCategory","normalizedName":"mynewsubcategory","uniqueId":"resourceNewCategory.newcategory.mynewsubcategory"}]}]; - - let getAllEntitiesDefered:ng.IDeferred = null; - - beforeEach(angular.mock.inject((_$controller_:ng.IControllerService, - _$httpBackend_:ng.IHttpBackendService, - _$rootScope_, - _$q_:ng.IQService, - _$state_:ng.ui.IStateService, - _$stateParams_:any) => { - - $controllerMock = _$controller_; - $httpBackendMock = _$httpBackend_ - $scopeMock = _$rootScope_.$new(); - $qMock = _$q_; - $stateMock = _$state_; - $stateParams = _$stateParams_; - - - //handle all http request thet not relevant to the tests - $httpBackendMock.expectGET(/.*languages\/en_US.json.*/).respond(200, JSON.stringify({})); - $httpBackendMock.expectGET(/.*rest\/version.*/).respond(200, JSON.stringify({})); - $httpBackendMock.expectGET(/.*configuration\/ui.*/).respond(200, JSON.stringify({})); - $httpBackendMock.expectGET(/.*user\/authorize.*/).respond(200, JSON.stringify({})); - $httpBackendMock.expectGET(/.*categories\/services.*/).respond(200, JSON.stringify({})); - $httpBackendMock.expectGET(/.*categories\/resources.*/).respond(200, JSON.stringify({})); - $httpBackendMock.expectGET(/.*categories\/products.*/).respond(200, JSON.stringify({})); - $httpBackendMock.expectGET('http://feHost:8181/sdc1/feProxy/rest/version').respond(200, JSON.stringify({})); - - /** - * Mock the service - * @type {any} - */ - getAllEntitiesDefered = $qMock.defer(); - getAllEntitiesDefered.resolve(getAllEntitiesResponseMock); - - cacheServiceMock = jasmine.createSpyObj('cacheServiceMock', ['get']); - cacheServiceMock.get.and.callFake(function(string){return resourceCategoriesResponseMock;}); - /* - cacheServiceMock.get.and.callFake(function(value:string){ - switch(value){ - case 'serviceCategories': - console.log('serviceCategories'); - break; - case 'resourceCategories': - console.log('resourceCategories'); - break; - case 'productCategories': - console.log('productCategories'); - break; - default : - console.log('default'); - break; - } - }); - */ - - entityServiceMock = jasmine.createSpyObj('entityServiceMock', ['getCatalog']); - entityServiceMock.getCatalog.and.returnValue(getAllEntitiesDefered.promise); - - // $stateParams['show'] = ''; - - /** - * Need to inject into the controller only the objects that we want to MOCK - * those that we need to change theirs behaviors - */ - $controllerMock(Sdc.ViewModels.CatalogViewModel, { - '$scope': $scopeMock, - '$stateParams': $stateParams, - 'Sdc.Services.EntityService': entityServiceMock, - 'Sdc.Services.CacheService': cacheServiceMock - }); - - })); - - - beforeEach(function () { - }); - - describe("test GUI events on checkbox type resource click", function () { - - /** - * The function checks only for resource type. - * Select the Resource and verify that the sub resources are selected. - * - */ - it('test onComponentTypeClick (check select checkbox of Resource type)', function () { - $scopeMock.$apply(); - $scopeMock.checkboxesFilter.selectedComponentTypes = ['Resource']; - $scopeMock.gui.onComponentTypeClick('Resource'); - expect($scopeMock.checkboxesFilter.selectedResourceSubTypes.length === 4).toBeTruthy(); - }); - - /** - * The function checks only for resource type. - * Un select the Resource and verify that the sub resources are selected. - * - */ - it('test onComponentTypeClick (check un select checkbox of Resource type)', function () { - $scopeMock.$apply(); - $scopeMock.gui.onComponentTypeClick('Resource'); - expect($scopeMock.checkboxesFilter.selectedResourceSubTypes.length === 0).toBeTruthy(); - }); - - }); - - describe("test GUI events on checkbox main category click -> sub categories are selected", function () { - - /** - * The function checks that after selecting 2 main categories, the subcategories are selected also. - * - */ - it('test onComponentTypeClick (check select checkbox of Resource type)', function () { - let category1 = resourceCategoriesResponseMock[0]; - let category2 = resourceCategoriesResponseMock[1]; - - $scopeMock.$apply(); - $scopeMock.checkboxesFilter.selectedCategoriesModel = [category1.uniqueId, category2.uniqueId]; - $scopeMock.gui.onCategoryClick(category1); - $scopeMock.gui.onCategoryClick(category2); - - expect($scopeMock.checkboxesFilter.selectedCategoriesModel.length===8).toBeTruthy(); - }); - - }); - - -}); diff --git a/catalog-ui/app/scripts/view-models/catalog/catalog-view.html b/catalog-ui/app/scripts/view-models/catalog/catalog-view.html deleted file mode 100644 index 0d46dc2a24..0000000000 --- a/catalog-ui/app/scripts/view-models/catalog/catalog-view.html +++ /dev/null @@ -1,190 +0,0 @@ -
      - - - - -
      - - - -
      - -
      -
      - - Type -
      -
      -
        -
      • - - - -
          -
        • - - - -
        • -
        -
      • -
      -
      -
      - -
      -
      - - Categories -
      -
      - - -
        -
      • - - - - -
          -
        • - - - - -
            -
          • - - - -
          • -
          -
        • -
        -
      • -
      - -
      -
      - - -
      -
      - - Status -
      - -
      -
        - - -
      • - - - -
        - -
      • -
      -
      -
      - -
      -
      - - - - - -
      -
      - {{getNumOfElements((catalogFilterdItems | entityFilter:checkboxesFilter | filter:search).length)}} -
      -
      -    -   - -  |  -   - -
      -
      - -
      - -
      - -
      -
      - -
      - -
      - {{component.name | resourceName}} -
      -
      - - -
      -
      -
      - -
      - - - -
      diff --git a/catalog-ui/app/scripts/view-models/catalog/catalog.less b/catalog-ui/app/scripts/view-models/catalog/catalog.less deleted file mode 100644 index 8be90a6a59..0000000000 --- a/catalog-ui/app/scripts/view-models/catalog/catalog.less +++ /dev/null @@ -1,304 +0,0 @@ -.sdc-catalog-container { - - .i-sdc-categories-list-item { - font-weight: normal; - } - - // Checkboxes - .i-sdc-designer-leftbar-section-content-ul { - padding: 0; - margin: 0; - - .i-sdc-catalog-subcategories-checkbox { - padding: 0 0 0 20px; - margin: 0; - - .i-sdc-catalog-grouping-checkbox { - padding: 0 0 0 20px; - margin: 0; - } - - } - - } - - .i-sdc-designer-leftbar-section-content-li { - &:last-child { - .i-sdc-categories-list-item { - margin: 0; - } - } - } - - .i-sdc-categories-list-item { - display: block; - //margin-bottom: 5px; - //padding-left: 15px; - //text-indent: -24px; - vertical-align: top; - font-weight: bold; - } - - .i-sdc-subcategories-list-item { - display: block; - //padding-left: 20px; - vertical-align: top; - font-weight: normal; - margin: 0; - //text-indent: -10px; - } - - /*Added by - Ikram */ - .i-sdc-product-input, - .i-sdc-product-select { - border: 1px solid @border_color_f; - min-height: 30px; - padding: 0; - width: 100%; - margin: 1px 0; - background-color: #F2F2F2; - outline: none; - - &:disabled { - .disabled; - } - optgroup{ - color: @color_u; - option{ - color: @color_b; - } - } - } - - .i-sdc-categories-list-item-icon { - display: inline-block; - float: right; - position: relative; - right: -8px; - top: 6px; - } - - .i-sdc-categories-list-item { - margin-top: 7px; - &.NOT_CERTIFIED_CHECKOUT, - &.NOT_CERTIFIED_CHECKIN { - .i-sdc-categories-list-item-icon { - background: url('../../../styles/images/sprites/sprite-global-old.png') no-repeat -53px -2889px; - width: 14px; - height: 14px; - - } - } - - &.CERTIFIED { - .i-sdc-categories-list-item-icon { - background: url('../../../styles/images/sprites/sprite-global-old.png') no-repeat -53px -3034px; - width: 14px; - height: 16px; - } - } - - &.READY_FOR_CERTIFICATION { - .i-sdc-categories-list-item-icon { - background: url('../../../styles/images/sprites/sprite-global-old.png') no-repeat -53px -2985px; - width: 14px; - height: 16px; - } - } - - &.CERTIFICATION_IN_PROGRESS { - .i-sdc-categories-list-item-icon { - background: url('../../../styles/images/sprites/sprite-global-old.png') no-repeat -53px -2934px; - width: 14px; - height: 16px; - } - } - - &.DISTRIBUTED, - &.TBD { - .i-sdc-categories-list-item-icon { - background: url('../../../styles/images/sprites/sprite-global-old.png') no-repeat -43px -3087px; - width: 24px; - height: 14px; - - } - } - } - - .i-sdc-categories-list-input { - margin: 8px; - - } - - .i-sdc-subcategories-list-input { - - margin: 8px; - } - .i-sdc-subcategories-list-input-container { - margin: 0px 0px 0px 20px; - padding: 2px; - } - - .w-sdc-header-catalog-search-container { - display: table; - padding: 21px 0; - position: relative; - - .w-sdc-designer-leftbar-search-input { - color: #000; - width: 300px; - } - - // .magnification { - // .sprite; - // .sprite.magnification-glass; - // .hand; - // position: absolute; - // top: 40px; - // right: 42px; - // } - } - - .w-sdc-catalog-main { - padding: 10px 12px; - } - .w-sdc-dashboard-catalog-header { - .b_9; - display: inline-block; - font-style: italic; - font-weight: bold; - padding-left: 10px; - } - - .w-sdc-dashboard-catalog-header-order { - .b_9; - font-weight: 800; - } - - .w-sdc-dashboard-catalog-sort { - .b_9; - font-weight: bold; - white-space:pre; - &:hover{ - .hand; - text-decoration: none; - .a_9; - } - &.blue { - .a_9; - } - } - - .w-sdc-catalog-sort-arrow{ - display: inline-block; - &.up{ - .b_9; - width: 0; - height: 0; - border-left: 5px solid transparent; - border-right: 5px solid transparent; - border-bottom: 5px solid ; - } - &.down{ - .b_9; - width: 0; - height: 0; - border-left: 5px solid transparent; - border-right: 5px solid transparent; - border-top: 5px solid; - } - } - - - - - .w-sdc-dashboard-catalog-header-right{ - float: right; - display: inline-block; - padding-right:34px; - } - - .w-sdc-header-catalog-search-input { - width: 420px; - display: table-cell; - padding: 0 25px 1px 10px; - border: 1px solid #bcbcbc; - .border-radius(10px); - height: 30px; - margin: 10px 30px; - outline: none; - } - - .sdc-catalog-type-filter-container { - margin-top: -1px; - } - - .i-sdc-designer-leftbar-section-title { - text-transform: uppercase; - .l_14_m; - line-height: 30px; - } - - .i-sdc-designer-leftbar-section-title-icon { - .hand; - .tlv-sprite; - .footer-close; - transition: .3s all; - margin-top: -4px; - } - - .i-sdc-designer-leftbar-section-title-text { - margin-left: 20px; - } - - .seperator-left, - .seperator-right { - border-right: solid 1px @color_m; - display: table-cell; - width: 2px; - } - - // Rotate catalog left side arrows - .i-sdc-designer-leftbar-section-title.expanded .i-sdc-designer-leftbar-section-title-icon { - transform: rotate(180deg); - } - - // Transform catalog left side sections - .i-sdc-designer-leftbar-section-title + .i-sdc-designer-leftbar-section-content { - max-height: 0px; - margin: 0 auto; - transition: all .3s; - overflow: hidden; - padding: 0 10px 0 18px; - } - - .i-sdc-designer-leftbar-section-title.expanded + .i-sdc-designer-leftbar-section-content { - max-height: 9999px; - margin: 0 auto 1px; - transition: all .3s; - padding: 10px 18px 10px 18px; - overflow: hidden; - } - -} - -.w-sdc-search-icon{ - position: absolute; - right: 40px; - top: 40px; - &.leftbar{ - top: 19px; - right: 18px; - } - &.magnification { - .sprite; - .sprite.magnification-glass; - .hand; - } - - &.cancel { - .sprite; - .sprite.clear-text; - .hand; - } -} diff --git a/catalog-ui/app/scripts/view-models/component-viewer/activity-log/activity-log-view.html b/catalog-ui/app/scripts/view-models/component-viewer/activity-log/activity-log-view.html deleted file mode 100644 index ac51e9014c..0000000000 --- a/catalog-ui/app/scripts/view-models/component-viewer/activity-log/activity-log-view.html +++ /dev/null @@ -1,16 +0,0 @@ -
      -
      {{activityDate | date: 'longDate'}}
      -
      -
      {{activity.TIMESTAMP.replace(" UTC", '') | stringToDateFilter | date: 'mediumTime':'UTC'}}
      -
      {{"Action: " + parseAction(activity.ACTION) + " Performed by: " + activity.MODIFIER + " Status: " + activity.STATUS}}
      -
      -
      - - - - - - - - - diff --git a/catalog-ui/app/scripts/view-models/component-viewer/activity-log/activity-log-view.less b/catalog-ui/app/scripts/view-models/component-viewer/activity-log/activity-log-view.less deleted file mode 100644 index 4a7676b6e2..0000000000 --- a/catalog-ui/app/scripts/view-models/component-viewer/activity-log/activity-log-view.less +++ /dev/null @@ -1,18 +0,0 @@ -.w-sdc-component-viewer-right-activity-log{ - - .w-sdc-component-viewer-right-activity-log-date{ - .backgroundColor.n; - .font-color.g; - padding: 4px 11px - } - .w-sdc-component-viewer-right-activity-log-time{ - .g_3; - padding: 12px 0px 0px 11px; - } - - .w-sdc-component-viewer-right-activity-log-content{ - .g_1; - padding: 0px 0px 12px 11px; - border-bottom: 1px solid rgba(0, 0, 0, 0.17); - } -} diff --git a/catalog-ui/app/scripts/view-models/component-viewer/component-viewer-view-model.ts b/catalog-ui/app/scripts/view-models/component-viewer/component-viewer-view-model.ts deleted file mode 100644 index 3ae8ad70fb..0000000000 --- a/catalog-ui/app/scripts/view-models/component-viewer/component-viewer-view-model.ts +++ /dev/null @@ -1,211 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// - -module Sdc.ViewModels { - 'use strict'; - - interface IComponentViewerViewModelScope extends ng.IScope { - component: Models.Components.Component; - additionalInformations: Array; - activityLog: any; - activityDateArray: Array; //this is in order to sort the dates - inputs: Array; - isLoading: boolean; - templateUrl: string; - currentTab:string; - preVersion:string; - sdcMenu:Models.IAppMenu; - versionsList:Array; - close(): void; - hasItems(obj:any): boolean; - onVersionChanged(version:any) : void; - moveToTab(tab:string):void; - isSelected(tab:string):boolean; - getActivityLog(uniqueId:string):void; - parseAction(action:string):string; - } - - export class ComponentViewerViewModel { - - static '$inject' = [ - '$scope', - '$modalInstance', - 'component', - 'Sdc.Services.ActivityLogService', - 'sdcMenu', - 'ComponentFactory' - ]; - - constructor(private $scope:IComponentViewerViewModelScope, - private $modalInstance:ng.ui.bootstrap.IModalServiceInstance, - private component:Models.Components.Component, - private activityLogService:Services.ActivityLogService, - private sdcMenu:Models.IAppMenu, - private ComponentFactory: Utils.ComponentFactory) { - this.initScope(component); - } - - //creating objects for versions - private initVersionObject:Function = ():void => { - this.$scope.versionsList = []; - for (let version in this.$scope.component.allVersions) { - this.$scope.versionsList.push({ - versionNumber: version, - versioning: this.versioning(version), - versionId: this.$scope.component.allVersions[version] - }); - } - - }; - - private versioning:Function = (versionNumber:string):string => { - let version:Array = versionNumber.split('.'); - return '00000000'.slice(version[0].length) + version[0] + '.' + '00000000'.slice(version[1].length) + version[1]; - }; - - private showComponentInformationView:Function = ():void => { - if (this.$scope.component.isResource()) { - this.$scope.templateUrl = '/app/scripts/view-models/component-viewer/properties/resource-properties-view.html'; - } else if(this.$scope.component.isService()) { - this.$scope.templateUrl = '/app/scripts/view-models/component-viewer/properties/service-properties-view.html'; - } else { - this.$scope.templateUrl = '/app/scripts/view-models/component-viewer/properties/product-properties-view.html'; - } - }; - - private showActivityLogView:Function = ():void => { - this.$scope.templateUrl = '/app/scripts/view-models/component-viewer/activity-log/activity-log-view.html'; - }; - - private initComponent = (component:Models.Components.Component):void => { - this.$scope.component = component; - this.$scope.additionalInformations = component.getAdditionalInformation(); - this.initVersionObject(); - this.$scope.isLoading = false; - }; - - private initScope = (component:Models.Components.Component):void => { - this.$scope.isLoading = false; - this.initComponent(component); - this.$scope.currentTab = 'PROPERTIES'; - this.$scope.preVersion = component.version; - this.$scope.sdcMenu = this.sdcMenu; - this.showComponentInformationView(); - //service inputs - if (component.isService()) { - let inputs:Array = []; - - for (let group in component.componentInstancesProperties) { - if (component.componentInstancesProperties[group]) { - component.componentInstancesProperties[group].forEach((property:Models.PropertyModel):void => { - if (!property.value) { - property.value = property.defaultValue; - } - inputs.push({ - name: property.name, - value: property.value, - type: property.type - }); - }); - } - } - this.$scope.inputs = inputs; - } - - this.$scope.hasItems = (obj:any):boolean => { - return Object.keys(obj).length > 0; - }; - - this.$scope.close = ():void => { - this.$modalInstance.dismiss(); - }; - - this.$scope.onVersionChanged = (version:any):void => { - if (version.versionNumber != this.$scope.component.version) { - this.$scope.isLoading = true; - this.ComponentFactory.getComponentFromServer(this.component.componentType, version.versionId).then((component: Models.Components.Component):void => { - this.initComponent(component); - }); - if (this.$scope.currentTab === 'ACTIVITY_LOG') { - this.$scope.getActivityLog(version.versionId); - } - - } - }; - - this.$scope.getActivityLog = (uniqueId:any):void => { - - let onError = (response) => { - this.$scope.isLoading = false; - console.info('onFaild', response); - - }; - let onSuccess = (response:Array) => { - this.$scope.activityLog = _.groupBy(response, function (activity:Models.Activity) { //group by date only - let dateTime:Date = new Date(activity.TIMESTAMP.replace(" UTC", '').replace(" ", 'T')); - // let date:Date = new Date(dateTime.getFullYear(), dateTime.getMonth(), dateTime.getDate()); - return dateTime.getTime(); - }); - /*this is in order to sort the jsonObject by date*/ - this.$scope.activityDateArray = Object.keys(this.$scope.activityLog); - this.$scope.activityDateArray.sort().reverse(); - this.$scope.isLoading = false; - }; - - this.$scope.isLoading = true; - if (this.$scope.component.isResource()) { - this.activityLogService.getActivityLogService('resources', uniqueId).then(onSuccess, onError); - } - if (this.$scope.component.isService()) { - this.activityLogService.getActivityLogService('services', uniqueId).then(onSuccess, onError); - } - - }; - - this.$scope.moveToTab = (tab:string):void => { - if (tab === this.$scope.currentTab) { - return; - } else if (tab === 'PROPERTIES') { - this.showComponentInformationView(); - this.$scope.preVersion = this.$scope.component.version; - } else if (tab === 'ACTIVITY_LOG') { - if (!this.$scope.activityLog || this.$scope.preVersion != this.$scope.component.version) { - this.$scope.activityLog = this.$scope.getActivityLog(this.$scope.component.uniqueId); - } - this.showActivityLogView(); - } else { - console.error("Tab " + tab + " not found!"); - return; - } - this.$scope.currentTab = tab; - }; - - this.$scope.isSelected = (tab:string):boolean => { - return tab === this.$scope.currentTab; - }; - - this.$scope.parseAction = (action:string) => { - return action ? action.split(/(?=[A-Z])/).join(' ') : ''; - }; - - } - } -} diff --git a/catalog-ui/app/scripts/view-models/component-viewer/component-viewer.html b/catalog-ui/app/scripts/view-models/component-viewer/component-viewer.html deleted file mode 100644 index 6f244b048e..0000000000 --- a/catalog-ui/app/scripts/view-models/component-viewer/component-viewer.html +++ /dev/null @@ -1,55 +0,0 @@ -
      - -
      X
      -
      -
      -

      -
      - {{component.name | resourceName}} -
      - v{{component.version}} -

      -

      - UUID: {{component.uuid}} -

      -
      -
      Version History
      - -
      -
      - {{ version.versionNumber }} -
      -
      -
      -
      - -
      -
      Composition
      - - - -
      -
      - -
      - - - - - - - -
      -
      -
      -
      diff --git a/catalog-ui/app/scripts/view-models/component-viewer/component-viewer.less b/catalog-ui/app/scripts/view-models/component-viewer/component-viewer.less deleted file mode 100644 index 2fe5676d62..0000000000 --- a/catalog-ui/app/scripts/view-models/component-viewer/component-viewer.less +++ /dev/null @@ -1,148 +0,0 @@ -html .modal-component-viewer{ - width: 1084px; -} - -.w-sdc-resource-viewer { - .b_7; - .w-sdc-resource-viewer-modal-close{ - z-index: 2; - text-indent: -100px; - overflow: hidden; - top: 19px; - } - .w-sdc-resource-viewer-content { - position: relative; - overflow: hidden; - - .w-sdc-resource-viewer-left { - - .bg_j; - display: table-cell; - width: 282px; - - .w-sdc-resource-viewer-left-title { - margin: 0; - display: block; - height: 100px; - padding: 20px 0; - } - - .w-sdc-resource-viewer-left-title-icon { - margin: 0 15px; - vertical-align: middle; - float: left; - } - - .w-sdc-resource-viewer-left-title-name { - .g_7; - max-width: 160px; - overflow: hidden; - display: inline-block; - text-overflow: ellipsis; - vertical-align: middle; - line-height: 23px; - padding-top: 10px; - font-weight: bold; - white-space: nowrap; - } - - .w-sdc-resource-viewer-left-title-version { - .g_13; - float: left; - } - - .w-sdc-resource-viewer-left-title-uuid { - .g_14; - text-align: center; - border-top: 1px solid rgba(120, 136, 148, 0.26); - width: 95%; - margin: auto; - padding: 7px 0; - } - - .w-sdc-resource-viewer-leftbar-section { - font-family: omnes-medium, sans-serif; - } - - .w-sdc-resource-viewer-leftbar-section-title { - .bg_o; - color: #fff; - font-size: 14px; - padding: 12px 20px; - text-transform: uppercase; - } - - .w-sdc-resource-viewer-leftbar-section-structure{ - .perfect-scrollbar; - max-height: 525px; - } - .w-sdc-resource-viewer-version { - font-weight: bold; - .perfect-scrollbar; - } - - .i-sdc-resource-viewer-version-container { - padding: 13px 0px 13px 13px; - max-height: 218px; - - .i-sdc-resource-viewer-version-item { - - &.active { - .a_7; - } - &:hover { - cursor: pointer; - } - } - - } - } - - .w-sdc-resource-viewer-right { - .bg_c; - display: table-cell; - vertical-align: top; - padding: 0; // for the scroller to be on all width - width: 716px; - padding: 25px 0px 0px 35px; - - .w-sdc-resource-viewer-right-content { - padding: 0 52px 0 0px; - margin-bottom: 25px; - height: 700px; - overflow: hidden; - position: relative; - - } - - .w-sdc-resource-viewer-right-tab { - .b_6; - - .hand; - background-color: transparent; - position: relative; - font-weight: 500; - line-height: 30px; - border: none; - border-bottom: solid 1px @color_c; - vertical-align: middle; - padding: 0px 30px 20px 0px; - - - &:focus, - &:active { - outline: none; - - } - &.selected { - outline: none; - font-weight: 700; - .font-color.a; - } - } - - - } - - } -} diff --git a/catalog-ui/app/scripts/view-models/component-viewer/properties/product-properties-view.html b/catalog-ui/app/scripts/view-models/component-viewer/properties/product-properties-view.html deleted file mode 100644 index 8aeda603f8..0000000000 --- a/catalog-ui/app/scripts/view-models/component-viewer/properties/product-properties-view.html +++ /dev/null @@ -1,76 +0,0 @@ -
      - -

      General Information

      -
      -
      -
      - - -
      -
      - - -
      -
      - - -
      -
      - - -
      -
      - - -
      -
      - - -
      -
      - - -
      -
      - Life Cycle Status: - - {{sdcMenu.LifeCycleStatuses[component.lifecycleState].text}} - -
      -
      - Distribution Status: - - {{sdcMenu.DistributionStatuses[component.distributionStatus].text}} - -
      -
      -
      -
      - - -
      -
      - - -
      -
      -
      -

      Additional Information

      - -
      - - - - - - - - - - - -
      KeyValue
      {{additionalInformation.key}}{{additionalInformation.value}}
      -
      -
      diff --git a/catalog-ui/app/scripts/view-models/component-viewer/properties/properties-view.less b/catalog-ui/app/scripts/view-models/component-viewer/properties/properties-view.less deleted file mode 100644 index c0beed338f..0000000000 --- a/catalog-ui/app/scripts/view-models/component-viewer/properties/properties-view.less +++ /dev/null @@ -1,128 +0,0 @@ -.w-sdc-component-viewer-right-properties { - .w-sdc-resource-viewer-tabs { - height: 42px; - } - - .w-sdc-resource-viewer-right-content-section { - margin: 0 0 20px 16px; - } - - .sdc-resource-viewer-sidebar-section-content-column-1, - .sdc-resource-viewer-sidebar-section-content-column-2 { - display: table-cell; - width: 50%; - } - .sdc-resource-viewer-sidebar-section-content-item { - .b_7; - margin-bottom: 5px; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - width: 305px; - } - .sdc-resource-viewer-sidebar-section-content-item-label { - .bold; - .g_9; - } - .w-sdc-resource-viewer-right .sdc-resource-viewer-sidebar-section-content-column-1 { - .sdc-resource-viewer-sidebar-section-content-item { - width: 390px; - } - } - .sdc-resource-viewer-sidebar-section-content-item.description { - margin: 0; - - .sdc-resource-viewer-sidebar-section-content-item-value { - word-wrap: break-word; - white-space: normal; - display: block; - - } - .sdc-resource-viewer-sidebar-section-content-tags { - word-wrap: break-word; - white-space: pre-wrap; - display: inline-block; - max-width: 167px; - - } - } - - .w-sdc-resource-viewer-right-title { - .g_1; - .bg_n; - padding: 7px 15px; - margin: 0px 0 25px; - font-weight: bold; - } - - .w-sdc-resource-viewer-right-table-head-cell { - .g_9; - text-align: left; - } - - .cols-1 { - width: 100%; - } - .cols-2 { - width: 50%; - } - .cols-3 { - width: 33%; - } - - .sdc-properties-container table tbody td.label { - .bold; - } - - .w-sdc-designer-sidebar-section-content, - .w-sdc-resource-viewer-right-table { - display: table; - width: 100%; - .b_9; - word-break: break-all; - - tbody td { - padding: 4px 20px 0 0; - - .ellipsis-directive-more-less { - display: none; - } - - .ellipsis-cols2 { - .sdc-ellipsis; - max-width: 340px; - } - .ellipsis-cols3 { - .sdc-ellipsis; - max-width: 200px; - } - } - - } - - .i-sdc-designer-sidebar-section-content-column-1 { - display: table-cell; - width: 50%; - } - - .i-sdc-designer-sidebar-section-content-column-2 { - display: table-cell; - width: 50%; - } - - .i-sdc-resource-viewer-artifacts-item-action, - .sdc-information-artifacts-icon { - .sprite; - display: inline-block; - width: 20px; - height: 20px; - cursor: pointer; - vertical-align: middle; - &.download { - .sprite.e-sdc-small-download; - } - &.preview { - .e-sdc-small-icon-eye; - } - } -} diff --git a/catalog-ui/app/scripts/view-models/component-viewer/properties/resource-properties-view.html b/catalog-ui/app/scripts/view-models/component-viewer/properties/resource-properties-view.html deleted file mode 100644 index c02e7aba7e..0000000000 --- a/catalog-ui/app/scripts/view-models/component-viewer/properties/resource-properties-view.html +++ /dev/null @@ -1,169 +0,0 @@ -
      - -

      General Information

      -
      -
      -
      - - Resource -
      -
      - - -
      -
      - - -
      -
      - - -
      -
      - - -
      -
      - - -
      -
      - - -
      -
      - - -
      -
      - - -
      -
      - - -
      -
      - Life Cycle Status: - - {{sdcMenu.LifeCycleStatuses[component.lifecycleState].text}} - -
      -
      - System Name: - -
      -
      - - -
      -
      -
      -
      - - -
      -
      - - -
      -
      -
      - -

      Additional Information

      - -
      - - - - - - - - - - - -
      KeyValue
      {{additionalInformation.key}}{{additionalInformation.value}}
      -
      - -

      Properties

      -
      - - - - - - - - - - - - - -
      NameType (Constraints)Default Value
      {{property.name}}{{property.type}}{{property.defaultValue}}
      -
      - -

      Requirements

      -
      - - - - - - - - - -
      Type
      {{value[0].name}}
      -
      - - -

      Deployment Artifacts

      - -
      - - - - - - - - - - - - - - - -
      NameFileVersion
      {{artifact.artifactDisplayName}}{{artifact.artifactName}}{{artifact.artifactVersion}} - - -
      -
      - -

      Information Artifacts

      -
      - - - - - - - - - - - - - - - -
      NameFileVersion
      {{artifact.artifactDisplayName}}{{artifact.artifactName}}{{artifact.artifactVersion}} - - -
      -
      -
      diff --git a/catalog-ui/app/scripts/view-models/component-viewer/properties/service-properties-view.html b/catalog-ui/app/scripts/view-models/component-viewer/properties/service-properties-view.html deleted file mode 100644 index 01f872c13c..0000000000 --- a/catalog-ui/app/scripts/view-models/component-viewer/properties/service-properties-view.html +++ /dev/null @@ -1,167 +0,0 @@ -
      - -

      General Information

      -
      -
      -
      - - -
      -
      - - -
      -
      - - -
      -
      - - -
      -
      - - -
      -
      - - -
      -
      - - -
      -
      - Life Cycle Status: - {{sdcMenu.LifeCycleStatuses[component.lifecycleState].text}} -
      -
      - Distribution Status: - {{sdcMenu.DistributionStatuses[component.distributionStatus].text}} -
      - -
      - System Name: - -
      -
      -
      -
      - - -
      -
      - - -
      -
      -
      -

      Additional Information

      - -
      - - - - - - - - - - - -
      KeyValue
      {{additionalInformation.key}}{{additionalInformation.value}}
      -
      - -

      Inputs

      - -
      - - - - - - - - - - - - - -
      NameType (Constraints)Default Value
      {{input.name}}{{input.type}}{{input.value}}
      -
      - -

      API Artifacts

      - -
      - - - - - - - - - - - - - - - -
      NameFileVersion
      {{artifact.artifactDisplayName}}{{artifact.artifactName}}{{artifact.artifactVersion}} - - -
      -
      - -

      Deployment Artifacts

      - -
      - - - - - - - - - - - - - - - -
      NameFileVersion
      {{artifact.artifactDisplayName}}{{artifact.artifactName}}{{artifact.artifactVersion}} - - -
      -
      - - -

      Information Artifacts

      - -
      - - - - - - - - - - - - - - - -
      NameFileVersion
      {{artifact.artifactDisplayName}}{{artifact.artifactName}}{{artifact.artifactVersion}} - - -
      -
      -
      diff --git a/catalog-ui/app/scripts/view-models/dashboard/cover/dashboard-cover-view-model.ts b/catalog-ui/app/scripts/view-models/dashboard/cover/dashboard-cover-view-model.ts deleted file mode 100644 index 9979b6451b..0000000000 --- a/catalog-ui/app/scripts/view-models/dashboard/cover/dashboard-cover-view-model.ts +++ /dev/null @@ -1,91 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.ViewModels { - - 'use strict'; - - export interface IDashboardCoverViewModelScope extends ng.IScope { - showTutorial:boolean; - version:string; - modalInstance:ng.ui.bootstrap.IModalServiceInstance; - } - - export class DashboardCoverViewModel { - static '$inject' = [ - '$scope', - '$stateParams', - 'Sdc.Services.CacheService', - '$templateCache', - '$state', - '$modal', - 'sdcConfig' - ]; - - constructor(private $scope:IDashboardCoverViewModelScope, - private $stateParams:any, - private cacheService:Services.CacheService, - private $templateCache:ng.ITemplateCacheService, - private $state:any, - private $modal:ng.ui.bootstrap.IModalService, - private sdcConfig:Models.IAppConfigurtaion) { - - // Show the tutorial if needed when the dashboard page is opened. - // This is called from the welcome page. - if (this.$stateParams.show === 'tutorial') { - this.$scope.showTutorial = true; - } else if (this.$stateParams.show === 'whatsnew') { - this.$scope.version = this.cacheService.get('version'); - this.openWhatsNewModal(this.$scope); - } - - this.initScope(); - } - - private initScope = ():void => { - - }; - - private openWhatsNewModal = (scope:IDashboardCoverViewModelScope):void => { - - let onOk = ():void => {}; - - let onCancel = ():void => { - this.$state.go('dashboard.welcome', {show: ''}); - }; - - let modalOptions:ng.ui.bootstrap.IModalSettings = { - template: this.$templateCache.get('/app/scripts/view-models/whats-new/whats-new-view.html'), - controller: 'Sdc.ViewModels.WhatsNewViewModel', - size: 'sdc-l', - backdrop: 'static', - scope: scope, - resolve: { - 'version': scope.version - } - }; - - scope.modalInstance = this.$modal.open(modalOptions); - scope.modalInstance.result.then(onOk, onCancel); - }; - - } - -} diff --git a/catalog-ui/app/scripts/view-models/dashboard/cover/dashboard-cover-view.html b/catalog-ui/app/scripts/view-models/dashboard/cover/dashboard-cover-view.html deleted file mode 100644 index c8657cba23..0000000000 --- a/catalog-ui/app/scripts/view-models/dashboard/cover/dashboard-cover-view.html +++ /dev/null @@ -1 +0,0 @@ -
      diff --git a/catalog-ui/app/scripts/view-models/dashboard/dashboard-view-model-tests.ts b/catalog-ui/app/scripts/view-models/dashboard/dashboard-view-model-tests.ts deleted file mode 100644 index d97d9bb5ec..0000000000 --- a/catalog-ui/app/scripts/view-models/dashboard/dashboard-view-model-tests.ts +++ /dev/null @@ -1,276 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// - -describe("dashboard View Model ", () => { - - let $controllerMock:ng.IControllerService; - let $qMock:ng.IQService; - let $httpBackendMock:ng.IHttpBackendService; - let $scopeMock:Sdc.ViewModels.IDashboardViewModelScope; - let $stateMock:ng.ui.IStateService; - let $stateParams:any; - let entityServiceMock; - - - let getAllEntitiesResponseMock = [ - { - "uniqueId": "855acdc7-7976-4913-9fa6-25220bd5a069", - "uuid": "8bc54f94-082c-42fa-9049-84767df3ff05", - "contactId": "qa1234", - "category": "VoIP Call Control", - "creationDate": 1447234712398, - "description": "ddddd", - "highestVersion": true, - "icon": "mobility", - "lastUpdateDate": 1447234712398, - "lastUpdaterUserId": "cs0008", - "lastUpdaterFullName": "Carlos Santana", - "lifecycleState": "NOT_CERTIFIED_CHECKOUT", - "distributionStatus": "DISTRIBUTION_NOT_APPROVED", - "projectCode": "233233", - "name": "mas mas mas mas mas mas mas mas mas mas mas mas ma", - "version": "0.1", - "type": 0, - "tags": [ - "mas mas mas mas mas mas mas mas mas mas mas mas ma" - ], - "systemName": "MasMasMasMasMasMasMasMasMasMasMasMasMa", - "vnf": true, - "$$hashKey": "object:30" - }, - { - "uniqueId": "4bb577ce-cb2c-4cb7-bb39-58644b5e73cb", - "uuid": "e27f4723-c9ec-4160-89da-dbf84d19a7e3", - "contactId": "qa1111", - "category": "Mobility", - "creationDate": 1447238503181, - "description": "aqa", - "highestVersion": true, - "icon": "call_controll", - "lastUpdateDate": 1447248991388, - "lastUpdaterUserId": "jm0007", - "lastUpdaterFullName": "Joni Mitchell", - "lifecycleState": "CERTIFIED", - "distributionStatus": "DISTRIBUTION_REJECTED", - "projectCode": "111111", - "name": "martin18", - "version": "1.0", - "type": 0, - "tags": [ - "martin18" - ], - "systemName": "Martin18", - "vnf": true - }, - { - "uniqueId": "f192f4a6-7fbf-42e4-a546-37509df28dc1", - "uuid": "0b77dc0d-222e-4d10-85cd-e420c9481417", - "contactId": "fd1212", - "category": "Application Layer 4+/Web Server", - "creationDate": 1447233679778, - "description": "geefw", - "highestVersion": true, - "icon": "database", - "lastUpdateDate": 1447233681582, - "lastUpdaterUserId": "cs0008", - "lastUpdaterFullName": "Carlos Santana", - "lifecycleState": "NOT_CERTIFIED_CHECKOUT", - "name": "ger", - "version": "0.1", - "type": 1, - "tags": [ - "ger" - ], - "vendorName": "fewwfe", - "vendorRelease": "fewew", - "systemName": "Ger", - "$$hashKey": "object:31" - }, - { - "uniqueId": "78392d08-1859-47c2-b1f2-1a35b7f8c30e", - "uuid": "8cdd63b2-6a62-4376-9012-624f424f71d4", - "contactId": "qw1234", - "category": "Application Layer 4+/Application Servers", - "creationDate": 1447234046114, - "description": "test", - "highestVersion": true, - "icon": "router", - "lastUpdateDate": 1447234050545, - "lastUpdaterUserId": "cs0008", - "lastUpdaterFullName": "Carlos Santana", - "lifecycleState": "NOT_CERTIFIED_CHECKOUT", - "name": "test", - "version": "0.1", - "type": 1, - "tags": [ - "test" - ], - "vendorName": "test", - "vendorRelease": "test", - "systemName": "Test", - "$$hashKey": "object:32" - }, - { - "uniqueId": "939e153d-2236-410f-b4a9-3b4bf8c79c9e", - "uuid": "84862547-4f56-4058-b78e-40df5f374d7e", - "contactId": "qw1234", - "category": "Application Layer 4+/Application Servers", - "creationDate": 1447235242560, - "description": "jlk", - "highestVersion": true, - "icon": "database", - "lastUpdateDate": 1447235328062, - "lastUpdaterUserId": "cs0008", - "lastUpdaterFullName": "Carlos Santana", - "lifecycleState": "NOT_CERTIFIED_CHECKIN", - "name": "new", - "version": "0.1", - "type": 1, - "tags": [ - "new" - ], - "vendorName": "e", - "vendorRelease": "e", - "systemName": "New", - "$$hashKey": "object:33" - }, - { - "uniqueId": "ece818e0-fd59-477a-baf6-e27461a7ce23", - "uuid": "8db823c2-6a9c-4636-8676-f5e713270dd7", - "contactId": "uf2345", - "category": "Network Layer 2-3/Router", - "creationDate": 1447235352429, - "description": "u", - "highestVersion": true, - "icon": "network", - "lastUpdateDate": 1447235370064, - "lastUpdaterUserId": "cs0008", - "lastUpdaterFullName": "Carlos Santana", - "lifecycleState": "NOT_CERTIFIED_CHECKOUT", - "name": "u", - "version": "0.1", - "type": 1, - "tags": [ - "u" - ], - "vendorName": "u", - "vendorRelease": "u", - "systemName": "U", - "$$hashKey": "object:34" - } - ]; - let getAllEntitiesDefered:ng.IDeferred = null; - - beforeEach(angular.mock.module('sdcApp')); - - beforeEach(angular.mock.inject((_$controller_:ng.IControllerService, - _$httpBackend_:ng.IHttpBackendService, - _$rootScope_, - _$q_:ng.IQService, - _$state_:ng.ui.IStateService, - _$stateParams_:any) => { - - $controllerMock = _$controller_; - $httpBackendMock = _$httpBackend_ - $scopeMock = _$rootScope_.$new(); - $qMock = _$q_; - $stateMock = _$state_; - $stateParams = _$stateParams_; - - - //handle all http request thet not relevant to the tests - $httpBackendMock.expectGET(/.*languages\/en_US.json.*/).respond(200, JSON.stringify({})); - // $httpBackendMock.expectGET(/.*resources\/certified\/abstract.*/).respond(200, JSON.stringify({})); - $httpBackendMock.expectGET(/.*rest\/version.*/).respond(200, JSON.stringify({})); - $httpBackendMock.expectGET(/.*configuration\/ui.*/).respond(200, JSON.stringify({})); - $httpBackendMock.expectGET(/.*user\/authorize.*/).respond(200, JSON.stringify({})); - $httpBackendMock.expectGET(/.*categories\/services.*/).respond(200, JSON.stringify({})); - $httpBackendMock.expectGET(/.*categories\/resources.*/).respond(200, JSON.stringify({})); - $httpBackendMock.expectGET(/.*categories\/products.*/).respond(200, JSON.stringify({})); - $httpBackendMock.expectGET('http://feHost:8181/sdc1/feProxy/rest/version').respond(200, JSON.stringify({})); - - /** - * Mock the service - * @type {any} - */ - getAllEntitiesDefered = $qMock.defer(); - getAllEntitiesDefered.resolve(getAllEntitiesResponseMock); - entityServiceMock = jasmine.createSpyObj('entityServiceMock', ['getAllComponents']); - entityServiceMock.getAllComponents.and.returnValue(getAllEntitiesDefered.promise); - - // $stateParams['show'] = ''; - - /** - * Need to inject into the controller only the objects that we want to MOCK - * those that we need to change theirs behaviors - */ - $controllerMock(Sdc.ViewModels.DashboardViewModel, { - '$scope': $scopeMock, - '$stateParams': $stateParams, - 'Sdc.Services.EntityService': entityServiceMock, - }); - - })); - - - describe("when Controller 'DashboardViewModel' created", () => { - - it('should generate all entities', () => { - $scopeMock.$apply(); - expect($scopeMock.components.length).toBe(getAllEntitiesResponseMock.length); - }); - - - it('should show tutorial page ', () => { - $stateParams.show = 'tutorial'; - - $controllerMock(Sdc.ViewModels.DashboardViewModel, { - '$scope': $scopeMock, - '$stateParams': $stateParams, - 'Sdc.Services.EntityService': entityServiceMock, - //to complete injects - }); - - $scopeMock.$apply(); - expect($scopeMock.isFirstTime).toBeTruthy(); - expect($scopeMock.showTutorial).toBeTruthy(); - }); - - }); - - - describe("when function 'entitiesCount' invoked", () => { - - beforeEach(() => { - $controllerMock(Sdc.ViewModels.DashboardViewModel, { - '$scope': $scopeMock, - 'Sdc.Services.EntityService': entityServiceMock, - }); - $scopeMock.$apply(); - }); - - it('should return entities count per folder', () => { - - }); - - - }); -}); diff --git a/catalog-ui/app/scripts/view-models/dashboard/dashboard-view-model.ts b/catalog-ui/app/scripts/view-models/dashboard/dashboard-view-model.ts deleted file mode 100644 index 8325a3f133..0000000000 --- a/catalog-ui/app/scripts/view-models/dashboard/dashboard-view-model.ts +++ /dev/null @@ -1,415 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.ViewModels { - - 'use strict'; - import ResourceType = Sdc.Utils.Constants.ResourceType; - - export interface IDashboardViewModelScope extends ng.IScope { - - isLoading: boolean; - components: Array; - folders: FoldersMenu; - roles: Models.IConfigRoles; - user: Models.IUserProperties; - sdcConfig:Models.IAppConfigurtaion; - sdcMenu:Models.IAppMenu; - sharingService:Sdc.Services.SharingService; - showTutorial:boolean; - isFirstTime:boolean; - version:string; - checkboxesFilter:CheckboxesFilter; - - onImportVfc(file:any):void; - onImportVf(file:any):void; - openCreateModal(componentType: Utils.Constants.ComponentType, importedFile:any): void; - openWhatsNewModal(version:string):void; - openDesignerModal(isResource:boolean, uniqueId:string): void; - openViewerModal(entity:any) : void; - setSelectedFolder(folderItem: FoldersItemsMenu): void; - entitiesCount(folderItem: FoldersItemsMenu): number; - getCurrentFolderDistributed(): Array; - changeLifecycleState(entity:any, data:any): void; - goToComponent(component:Models.Components.Component):void; - wizardDebugEdit:Function; - notificationIconCallback:Function; - } - - interface CheckboxesFilter { - // Statuses - selectedStatuses:Array; - // distributed - distributed:Array; - } - - export interface IItemMenu { - - } - - export interface IMenuItemProperties { - text: string; - group: string; - state: string; - dist: string; - groupname: string; - states: Array; - } - - export class FoldersMenu { - - private _folders: Array = []; - - constructor(folders: Array) { - let self = this; - folders.forEach(function(folder: IMenuItemProperties) { - if (folder.groupname){ - self._folders.push(new FoldersItemsMenuGroup(folder)); - } else { - self._folders.push(new FoldersItemsMenu(folder)); - } - }); - self._folders[0].setSelected(true); - } - - public getFolders = (): Array => { - return this._folders; - }; - - public getCurrentFolder = (): FoldersItemsMenu => { - let menuItem: FoldersItemsMenu = undefined; - this.getFolders().forEach(function(tmpFolder: FoldersItemsMenu) { - if (tmpFolder.isSelected()){ - menuItem = tmpFolder; - } - }); - return menuItem; - }; - - public setSelected = (folder: FoldersItemsMenu):void => { - this.getFolders().forEach(function(tmpFolder: FoldersItemsMenu) { - tmpFolder.setSelected(false); - }); - folder.setSelected(true); - } - - } - - export class FoldersItemsMenu implements IItemMenu { - - public text:string; - public group: string; - public state: string; - public dist: string; - public states: Array; - - private selected: boolean = false; - - constructor(menuProperties: IMenuItemProperties) { - this.text = menuProperties.text; - this.group = menuProperties.group; - this.state = menuProperties.state; - this.states = menuProperties.states; - this.dist = menuProperties.dist; - } - - public isSelected = ():boolean => { - return this.selected; - }; - - public setSelected = (value: boolean):void => { - this.selected = value; - }; - - public isGroup = ():boolean => { - return false; - } - - } - - export class FoldersItemsMenuGroup extends FoldersItemsMenu { - - public groupname:string; - - constructor(menuProperties: IMenuItemProperties) { - super(menuProperties); - this.groupname = menuProperties.groupname; - } - - public isGroup = ():boolean => { - return true; - } - - } - - export class DashboardViewModel { - static '$inject' = [ - '$scope', - '$filter', - 'Sdc.Services.EntityService', - '$http', - 'sdcConfig', - 'sdcMenu', - '$modal', - '$templateCache', - '$state', - '$stateParams', - 'Sdc.Services.UserResourceService', - 'Sdc.Services.SharingService', - 'Sdc.Services.CacheService', - '$q', - 'ComponentFactory', - 'ChangeLifecycleStateHandler', - 'ModalsHandler', - 'MenuHandler' - ]; - - private components: Array; - - constructor(private $scope:IDashboardViewModelScope, - private $filter:ng.IFilterService, - private entityService:Services.EntityService, - private $http:ng.IHttpService, - private sdcConfig:Models.IAppConfigurtaion, - private sdcMenu:Models.IAppMenu, - private $modal:ng.ui.bootstrap.IModalService, - private $templateCache:ng.ITemplateCacheService, - private $state:any, - private $stateParams:any, - private userResourceService:Sdc.Services.IUserResourceClass, - private sharingService:Services.SharingService, - private cacheService:Services.CacheService, - private $q:ng.IQService, - private ComponentFactory: Sdc.Utils.ComponentFactory, - private ChangeLifecycleStateHandler: Sdc.Utils.ChangeLifecycleStateHandler, - private ModalsHandler: Sdc.Utils.ModalsHandler, - private MenuHandler: Utils.MenuHandler - ) { - this.initScope(); - this.initFolders(); - this.initEntities(true); - - if (this.$stateParams){ - - if (this.$state.params.folder){ - let self = this; - let folderName = this.$state.params.folder.replaceAll("_"," "); - - this.$scope.folders.getFolders().forEach(function(tmpFolder: FoldersItemsMenu) { - if (tmpFolder.text === folderName){ - self.$scope.setSelectedFolder(tmpFolder); - } - }); - } - - // Show the tutorial if needed when the dashboard page is opened. - // This is called from the welcome page. - else if (this.$stateParams.show==='tutorial'){ - this.$scope.showTutorial = true; - this.$scope.isFirstTime = true; - } - } - } - - private initFolders = ():void => { - if (this.$scope.user) { - this.$scope.folders = new FoldersMenu(this.$scope.roles[this.$scope.user.role].folder); - } - }; - - private initScope = ():void => { - let self = this; - - this.$scope.version = this.cacheService.get('version'); - this.$scope.sharingService = this.sharingService; - this.$scope.isLoading = false; - this.$scope.sdcConfig = this.sdcConfig; - this.$scope.sdcMenu = this.sdcMenu; - this.$scope.user = this.userResourceService.getLoggedinUser(); - this.$scope.roles = this.sdcMenu.roles; - this.$scope.showTutorial = false; - this.$scope.isFirstTime = false; - - // Open onboarding modal - this.$scope.notificationIconCallback = ():void => { - this.ModalsHandler.openOnboadrdingModal('Import').then(()=>{ - // OK - }, ()=>{ - // ERROR - }); - }; - - // Checkboxes filter init - this.$scope.checkboxesFilter = {}; - this.$scope.checkboxesFilter.selectedStatuses = []; - this.$scope.checkboxesFilter.distributed = []; - - let appendTemplateAndControllerForProduct:Function = (modalOptions:ng.ui.bootstrap.IModalSettings, isViewer:boolean):void => { - let viewModelsHtmlBasePath:string = '/app/scripts/view-models/'; - - if (isViewer) { - modalOptions.template = this.$templateCache.get(viewModelsHtmlBasePath + 'entity-viewer/product-viewer-view.html'); - modalOptions.controller = 'Sdc.ViewModels.ResourceViewerViewModel'; - } else { - modalOptions.template = this.$templateCache.get(viewModelsHtmlBasePath + 'entity-handler/product-form/product-form-view.html'); - modalOptions.controller = 'Sdc.ViewModels.ProductFormViewModel'; - } - - }; - - this.$scope.onImportVf = (file:any):void => { - if(file && file.filename) { - // Check that the file has valid extension. - let fileExtension:string = file.filename.split(".").pop(); - if (this.sdcConfig.csarFileExtension.indexOf(fileExtension.toLowerCase()) !== -1){ - this.$state.go('workspace.general', {type:Utils.Constants.ComponentType.RESOURCE.toLowerCase(), importedFile: file, resourceType: ResourceType.VF}); - }else { - let data:Sdc.ViewModels.IClientMessageModalModel = { - title: self.$filter('translate')("NEW_SERVICE_RESOURCE_ERROR_VALID_CSAR_EXTENSIONS_TITLE"), - message: self.$filter('translate')("NEW_SERVICE_RESOURCE_ERROR_VALID_CSAR_EXTENSIONS", "{'extensions': '" + this.sdcConfig.csarFileExtension + "'}"), - severity: Utils.Constants.SEVERITY.ERROR - }; - this.ModalsHandler.openClientMessageModal(data); - } - } - }; - - this.$scope.onImportVfc = (file:any):void => { - if(file && file.filename) { - // Check that the file has valid extension. - let fileExtension:string = file.filename.split(".").pop(); - if (this.sdcConfig.toscaFileExtension.indexOf(fileExtension.toLowerCase()) !== -1){ - this.$state.go('workspace.general', {type:Utils.Constants.ComponentType.RESOURCE.toLowerCase(), importedFile: file, resourceType: ResourceType.VFC}); - }else { - let data:Sdc.ViewModels.IClientMessageModalModel = { - title: self.$filter('translate')("NEW_SERVICE_RESOURCE_ERROR_VALID_TOSCA_EXTENSIONS_TITLE"), - message: self.$filter('translate')("NEW_SERVICE_RESOURCE_ERROR_VALID_TOSCA_EXTENSIONS", "{'extensions': '" + this.sdcConfig.toscaFileExtension + "'}"), - severity: Utils.Constants.SEVERITY.ERROR - }; - this.ModalsHandler.openClientMessageModal(data); - } - } - }; - - this.$scope.openCreateModal = (componentType: string, importedFile:any):void => { - if (importedFile){ - this.initEntities(true); // Return from import - } else { - this.$state.go('workspace.general', {type:componentType.toLowerCase()}); - } - - }; - - this.$scope.entitiesCount = (folderItem: FoldersItemsMenu): any => { - let self = this; - let total: number = 0; - if (folderItem.isGroup()){ - this.$scope.folders.getFolders().forEach(function(tmpFolder: FoldersItemsMenu){ - if (tmpFolder.group && tmpFolder.group===(folderItem).groupname){ - total = total + self._getTotalCounts(tmpFolder, self); - } - }); - } else { - total = total + self._getTotalCounts(folderItem, self); - } - return total; - }; - - this.$scope.getCurrentFolderDistributed = (): Array => { - let self = this; - let states = []; - if (this.$scope.folders) { - let folderItem:FoldersItemsMenu = this.$scope.folders.getCurrentFolder(); - if (folderItem.isGroup()) { - this.$scope.folders.getFolders().forEach(function (tmpFolder:FoldersItemsMenu) { - if (tmpFolder.group && tmpFolder.group === (folderItem).groupname) { - self._setStates(tmpFolder, states); - } - }); - } else { - self._setStates(folderItem, states); - } - } - return states; - }; - - this.$scope.setSelectedFolder = (folderItem: FoldersItemsMenu):void => { - this.$scope.folders.setSelected(folderItem); - }; - - this.$scope.goToComponent = (component:Models.Components.Component):void => { - this.$scope.isLoading=true; - this.$state.go('workspace.general', {id: component.uniqueId, type:component.componentType.toLowerCase() }); - }; - - }; - - private _getTotalCounts(tmpFolder, self): number { - let total: number = 0; - if (tmpFolder.dist !== undefined) { - let distributions = tmpFolder.dist.split(','); - distributions.forEach((item:any) => { - total = total + self.getEntitiesByStateDist(tmpFolder.state, item).length; - }); - } - else { - total = total + self.getEntitiesByStateDist(tmpFolder.state, tmpFolder.dist).length; - } - return total; - } - - private _setStates(tmpFolder, states) { - if (tmpFolder.states !== undefined) { - tmpFolder.states.forEach(function (item:any) { - states.push({"state": item.state, "dist": item.dist}); - }); - } else { - states.push({"state": tmpFolder.state, "dist": tmpFolder.dist}); - } - } - - private initEntities = (reload:boolean):void => { - this.$scope.isLoading = reload; - this.entityService.getAllComponents().then( - (components: Array) => { - this.components = components; - this.$scope.components = components; - this.$scope.isLoading = false; - }); - }; - - private getEntitiesByStateDist = (state: string, dist: string) : Array => { - let gObj:Array; - if (this.components && (state || dist)) { - gObj = this.components.filter(function (obj:Models.Components.Component) { - if (dist !== undefined && obj.distributionStatus === dist && obj.lifecycleState === state){ - return true; - } else if (dist === undefined && obj.lifecycleState === state) { - return true; - } - return false; - }); - } else { - gObj = []; - } - return gObj; - } - } -} diff --git a/catalog-ui/app/scripts/view-models/dashboard/dashboard-view.html b/catalog-ui/app/scripts/view-models/dashboard/dashboard-view.html deleted file mode 100644 index 0aef4e19c6..0000000000 --- a/catalog-ui/app/scripts/view-models/dashboard/dashboard-view.html +++ /dev/null @@ -1,106 +0,0 @@ -
      - - - - - -
      - - - - -
      -
      -
      -
      - - - -
      -
      -
      - - -
      -
      -
      -
      -
      Import VFC - -
      -
      Import VSP
      -
      Import DCAE asset - -
      -
      -
      -
      - -
      -
      - -
      - -
      -
      - {{component.name | resourceName}} -
      -
      - -
      - -
      - -
      -
      - {{folder.text}} - - - - - {{entitiesCount(folder)}} -
      -
      - -
      - - - -
      -
      diff --git a/catalog-ui/app/scripts/view-models/dashboard/dashboard.less b/catalog-ui/app/scripts/view-models/dashboard/dashboard.less deleted file mode 100644 index 7b2522113b..0000000000 --- a/catalog-ui/app/scripts/view-models/dashboard/dashboard.less +++ /dev/null @@ -1,420 +0,0 @@ -.sdc-dashboard-container { - .tlv-loader { - top: -110px; - left: 80px; - } - .sdc-hide-popover { - .popover { - display: none !important; - } - } -} - -.w-sdc-left-sidebar-nav { - margin-top: 46px; -} - -.w-sdc-main-right-container-element { - float: left; - height: 217px; - width: 217px; - margin: 10px; - position: relative; -} - -.w-sdc-main-right-container-element-details-container { - position: absolute; - top: 165px; - left: 50px; -} - -.w-sdc-main-right-container-element-name { - font-weight: bold; -} - -.w-sdc-main-right-container-element-owner { - -} - -//////////////////////////////Cards//////////////////// -.w-sdc-dashboard-card-new { - border: 2px dashed @color_m; - .border-radius(2px); - cursor: pointer; - display: inline-block; - height: 200px; - margin: 9px; - position: relative; - vertical-align: middle; - width: 204px; -} - -.w-sdc-dashboard-card-new-content { - display: flex; - justify-content: center; - align-items: center; - flex-direction: column; - height: 100%; -} - -.w-sdc-dashboard-card-new-content-plus { - .sprite-new; - .add-icon; - position: relative; - margin-bottom: 20px; - - &:after { - .n_14_m; - content: 'ADD'; - position: absolute; - top: 25px; - left: -3px; - vertical-align: -50%; - } -} - -.w-sdc-dashboard-card-import-content-plus { - .sprite-new; - .import-icon; - position: relative; - margin-bottom: 20px; - - &:after { - .n_14_m; - content: 'IMPORT'; - position: absolute; - top: 25px; - left: -16px; - vertical-align: -50%; - } -} - -.sdc-dashboard-create-element-container, -.sdc-dashboard-import-element-container { - - width: 140px; - - .tlv-btn.import-dcae { - padding: 0; - } - - .tlv-btn { - position: relative; - width: 100%; - margin-bottom: 10px; - - &:last-child { - margin-bottom: 0; - } - } - - input[type="file"] { - cursor: inherit; - filter: alpha(opacity=0); - opacity: 0; - position: absolute; - top: 0; - left: 0; - width: 138px; - height: 30px; - } -} - -.w-sdc-dashboard-card { - width: 204px; - height: 200px; - background-color: @main_color_p; - .border-radius(2px); - .box-shadow(0px 2px 2px 0px rgba(24, 24, 25, 0.05)); - display: inline-block; - margin: 10px; - position: relative; - vertical-align: middle; - border: solid 1px @main_color_p; - - &:hover { - border: solid 1px @main_color_o; - .box-shadow(3px 3px 2px 0px rgba(24, 24, 25, 0.05)); - } - - &:active { - border: solid 1px @main_color_c; - .box-shadow(3px 3px 2px 0px rgba(24, 24, 25, 0.05)); - } -} - -.w-sdc-dashboard-card-body { - .hand; - border-bottom: 1px solid @color_j; - height: 155px; - position: relative; - text-align: center; -} - -.w-sdc-dashboard-card-description { - .c_3; - .hand; - background-color: rgba(57, 73, 84, 0.9); - border-radius: 4px 4px 0 0; - bottom: 0; - left: 0; - opacity: 0; - padding: 10px; - position: absolute; - right: 0; - text-align: left; - top: 0; - word-wrap: break-word; - z-index: 4; - min-height: 100px; - overflow: hidden; -} - - -.w-sdc-dashboard-card-schema { - margin-top: 30px; -} - -.w-sdc-dashboard-card-edit { - .hand; - position: absolute; - right: 13px; - top: 15px; - z-index: 2; -} - -.w-sdc-dashboard-card-footer { - padding: 3px 12px 10px 12px; - position: relative; -} - -.w-sdc-dashboard-card-avatar { - .uppercase; - border-radius: 50%; - display: inline-block; - position: absolute; - left: -6px; - text-align: center; - top: -6px; - - span { - - background-color: @main_color_p; - .border-radius(15px); - color: @color_c; - content: ''; - height: 30px; - text-align: center; - display: block; - border: solid 2px #ECEFF3; - padding: 3px 10px 2px 10px; - - &.VF { - .j_14_m; - &::before { - content: 'VF'; - } - } - - &.VFC { - .j_14_m; - &::before { - content: 'VFC'; - } - } - - &.CP { - .j_14_m; - &::before { - content: 'CP'; - } - } - - &.VL { - .j_14_m; - &::before { - content: 'VL'; - } - } - - &.SERVICE { - .c_14_m; - &::before { - content: 'S'; - } - } - - &.PRODUCT { - .b_14_m; - &::before { - content: 'P'; - } - } - - &.green { - .d_12; - &::before { - content: 'R'; - } - } - &.red { - .r_12; - &::before { - content: 'S'; - } - } - &.dblack { - .s_12; - &::before { - content: 'P'; - } - } - } -} - -.w-sdc-dashboard-card-info { - display: inline-block; - vertical-align: middle; - max-width: 165px; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; -} - -.w-sdc-dashboard-card-info-name-container{ - position: absolute; - bottom: 0; - left: 0; - margin: 0 0 2px 10px; -} -.w-sdc-dashboard-card-info-name { - .m_14_m; - display: inline-block; - vertical-align: middle; - max-width: 165px; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; -} - -.w-sdc-dashboard-card-info-lifecycleState { - .m_13_m; - display: inline-block; - vertical-align: middle; - max-width: 165px; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; -} - -.w-sdc-dashboard-card-info-user { - .n_13_r; - line-height: 18px; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - width: 100%; -} - -.w-sdc-dashboard-card-menu-button { - display: inline-block; - padding: 12px 0 0 10px; - position: absolute; - right: 12px; - top: 8px; - border-left: solid 1px @color_k; - height: 42px; - - &:hover { - .w-sdc-dashboard-card-menu { - display: block; - } - } -} - -.w-sdc-dashboard-card-menu { - .bg_c; - border-radius: 0 0 4px 4px; - border-top: 3px solid @color_a; - box-shadow: 0 2px 2px 0px rgba(0, 0, 0, 0.2); - color: @color_s; - display: none; - min-height: 30px; - padding: 9px 0; - position: absolute; - right: -27px; - width: 208px; - z-index: 9; - max-height: 164px; - - &::before { - //TODO: Missing image for small blue triangle. - background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAYAAAB4ka1VAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMDE0IDc5LjE1Njc5NywgMjAxNC8wOC8yMC0wOTo1MzowMiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTQgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkE1OTIzNDI1MENFQjExRTU4ODRERTI1MDM2REZCOUYzIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkE1OTIzNDI2MENFQjExRTU4ODRERTI1MDM2REZCOUYzIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QTU5MjM0MjMwQ0VCMTFFNTg4NERFMjUwMzZERkI5RjMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QTU5MjM0MjQwQ0VCMTFFNTg4NERFMjUwMzZERkI5RjMiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4gBXTlAAAAOElEQVR42mK0rp7NgASMgZgFiE/CBJjQJPcA8U4gNkdXAJMUAGJ+ZEVMaJIwAFfEhEUSRRFAgAEAVtgJyiLAPWAAAAAASUVORK5CYII='); - content: ''; - display: block; - height: 21px; - position: absolute; - right: 24px; - top: -24px; - width: 184px; - background-repeat: no-repeat; - background-position: 175px 16px; - } -} - -.i-sdc-dashboard-card-menu-item { - .hand; - line-height: 24px; - padding: 0 10px; - &:hover { .a_7; } -} - -.w-sdc-dashboard-card-info-lifecycleState-icon{ - position:absolute; - bottom:18px; - right:10px; -} - -// Same for dashboard and catalog view. -.w-sdc-dashboard-card-schema-image { - position: absolute; - top: 41%; - - //TODO: Israel - remove this after getting the services sprite. - height: 45px; - width: 53px; - background-repeat: no-repeat; - - // Center the icon vertical and horizontal. - margin: auto; - left: 0; - right: 0; - top: -10px; - bottom: 0; -} - -/* dashboard card main icons */ -.w-sdc-dashboard-card-schema-image.service { .s-sdc-service } -.w-sdc-dashboard-card-schema-image.resource { .s-sdc-resource } - -/* dashboard card statuses icons */ -.w-sdc-dashboard-card-edit.NOT_CERTIFIED_CHECKIN { .sprite; .s-sdc-state.NOT_CERTIFIED_CHECKIN; } -.w-sdc-dashboard-card-edit.NOT_CERTIFIED_CHECKOUT { .sprite; .s-sdc-state.NOT_CERTIFIED_CHECKOUT; } -.w-sdc-dashboard-card-edit.CERTIFIED { .sprite; .s-sdc-state.CERTIFIED; } -.w-sdc-dashboard-card-edit.READY_FOR_CERTIFICATION { .sprite; .s-sdc-state.READY_FOR_CERTIFICATION; } -.w-sdc-dashboard-card-edit.CERTIFICATION_IN_PROGRESS { .sprite; .s-sdc-state.CERTIFICATION_IN_PROGRESS; } -.w-sdc-dashboard-card-edit.DISTRIBUTED { .sprite; .s-sdc-state.DISTRIBUTED; } - -.w-sdc-dashboard-card-avatar.green + .w-sdc-dashboard-card-edit.NOT_CERTIFIED_CHECKIN { .sprite; .s-sdc-state.NOT_CERTIFIED_CHECKIN.green; } -.w-sdc-dashboard-card-avatar.green + .w-sdc-dashboard-card-edit.NOT_CERTIFIED_CHECKOUT { .sprite; .s-sdc-state.NOT_CERTIFIED_CHECKOUT.green; } -.w-sdc-dashboard-card-avatar.green + .w-sdc-dashboard-card-edit.CERTIFIED { .sprite; .s-sdc-state.CERTIFIED.green; } -.w-sdc-dashboard-card-avatar.green + .w-sdc-dashboard-card-edit.READY_FOR_CERTIFICATION { .sprite; .s-sdc-state.READY_FOR_CERTIFICATION.green; } -.w-sdc-dashboard-card-avatar.green + .w-sdc-dashboard-card-edit.CERTIFICATION_IN_PROGRESS { .sprite; .s-sdc-state.CERTIFICATION_IN_PROGRESS.green; } -.w-sdc-dashboard-card-avatar.green + .w-sdc-dashboard-card-edit.DISTRIBUTED { .sprite; .s-sdc-state.DISTRIBUTED.green; } - -.w-sdc-dashboard-card-avatar.red + .w-sdc-dashboard-card-edit.NOT_CERTIFIED_CHECKIN { .sprite; .s-sdc-state.NOT_CERTIFIED_CHECKIN.red; } -.w-sdc-dashboard-card-avatar.red + .w-sdc-dashboard-card-edit.NOT_CERTIFIED_CHECKOUT { .sprite; .s-sdc-state.NOT_CERTIFIED_CHECKOUT.red; } -.w-sdc-dashboard-card-avatar.red + .w-sdc-dashboard-card-edit.CERTIFIED { .sprite; .s-sdc-state.CERTIFIED.red; } -.w-sdc-dashboard-card-avatar.red + .w-sdc-dashboard-card-edit.READY_FOR_CERTIFICATION { .sprite; .s-sdc-state.READY_FOR_CERTIFICATION.red; } -.w-sdc-dashboard-card-avatar.red + .w-sdc-dashboard-card-edit.CERTIFICATION_IN_PROGRESS { .sprite; .s-sdc-state.CERTIFICATION_IN_PROGRESS.red; } -.w-sdc-dashboard-card-avatar.red + .w-sdc-dashboard-card-edit.DISTRIBUTED { .sprite; .s-sdc-state.DISTRIBUTED.red; } diff --git a/catalog-ui/app/scripts/view-models/forms/artifact-form/artifact-form-view-model.ts b/catalog-ui/app/scripts/view-models/forms/artifact-form/artifact-form-view-model.ts deleted file mode 100644 index 092594b0d5..0000000000 --- a/catalog-ui/app/scripts/view-models/forms/artifact-form/artifact-form-view-model.ts +++ /dev/null @@ -1,354 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// - -module Sdc.ViewModels { - 'use strict'; - import Resource = Sdc.Models.Components.Resource; - - export interface IEditArtifactModel { - artifactResource: Models.ArtifactModel; - artifactTypes: Array; - artifactFile: any; - } - - export interface IArtifactResourceFormViewModelScope extends ng.IScope { - forms:any; - $$childTail: any; - isNew: boolean; - isLoading: boolean; - validationPattern: RegExp; - urlValidationPattern: RegExp; - labelValidationPattern: RegExp; - integerValidationPattern: RegExp; - commentValidationPattern: RegExp; - artifactType: string; - editArtifactResourceModel: IEditArtifactModel; - defaultHeatTimeout: number; - validExtensions: any; - originalArtifactName: string; - editForm: ng.IFormController; - footerButtons: Array; - modalInstanceArtifact:ng.ui.bootstrap.IModalServiceInstance; - - fileExtensions():string; - save(doNotCloseModal?:boolean): void; - saveAndAnother(): void; - close(): void; - getOptions(): Array; - isDeploymentHeat(): boolean; - onFileChange(): void; - setDefaultTimeout(): void; - openEditEnvParametersModal(artifact:Models.ArtifactModel):void; - getFormTitle():string; - fileUploadRequired():string; - isArtifactOwner():boolean; - } - - export class ArtifactResourceFormViewModel { - - private artifactArr:Array; - - static '$inject' = [ - '$scope', - '$modalInstance', - 'artifact', - 'Sdc.Services.CacheService', - 'ValidationPattern', - 'UrlValidationPattern', - 'LabelValidationPattern', - 'IntegerValidationPattern', - 'CommentValidationPattern', - 'ValidationUtils', - '$base64', - '$state', - 'ArtifactsUtils', - '$modal', - '$templateCache', - 'component' - ]; - - private formState:Utils.Constants.FormState; - private entityId:string; - - constructor(private $scope:IArtifactResourceFormViewModelScope, - private $modalInstance:ng.ui.bootstrap.IModalServiceInstance, - private artifact:Models.ArtifactModel, - private cacheService:Services.CacheService, - private ValidationPattern:RegExp, - private UrlValidationPattern:RegExp, - private LabelValidationPattern:RegExp, - private IntegerValidationPattern : RegExp, - private CommentValidationPattern: RegExp, - private ValidationUtils: Sdc.Utils.ValidationUtils, - private $base64:any, - private $state:any, - private artifactsUtils:Sdc.Utils.ArtifactsUtils, - private $modal:ng.ui.bootstrap.IModalService, - private $templateCache:ng.ITemplateCacheService, - private component:Models.Components.Component) { - - - this.entityId = this.component.uniqueId; - this.artifactArr = []; - this.formState = angular.isDefined(artifact.artifactLabel) ? Utils.Constants.FormState.UPDATE : Utils.Constants.FormState.CREATE; - this.initScope(); - } - - private initEntity = ():void => { - this.$scope.editArtifactResourceModel.artifactResource = this.artifact; - this.$scope.originalArtifactName = this.artifact.artifactName; - }; - - - private initFooterButtons = ():void =>{ - - this.$scope.footerButtons = [ - {'name': 'Done', 'css': 'blue', 'callback': this.$scope.save} - ]; - if (this.$scope.isNew){ - this.$scope.footerButtons.push( {'name': 'Add Another', 'css': 'grey', 'disabled': !this.$scope.isNew && 'deployment' === this.$scope.artifactType, 'callback': this.$scope.saveAndAnother}); - } - - }; - - - private initArtifactTypes = ():void => { - - let artifactTypes:any = this.cacheService.get('UIConfiguration'); - - if('deployment' === this.$scope.artifactType) { - - this.$scope.validExtensions = ('HEAT_ENV' == this.artifact.artifactType||this.component.selectedInstance)?//to remove the first condition? - artifactTypes.artifacts.deployment.resourceInstanceDeploymentArtifacts - : this.component.isResource() ? artifactTypes.artifacts.deployment.resourceDeploymentArtifacts - : artifactTypes.artifacts.deployment.serviceDeploymentArtifacts; - - if(this.$scope.validExtensions) { - this.$scope.editArtifactResourceModel.artifactTypes = Object.keys(this.$scope.validExtensions); - } - this.$scope.defaultHeatTimeout = artifactTypes.defaultHeatTimeout; - if(this.$scope.isNew) { - let isHeat='HEAT_ENV' == this.artifact.artifactType; - _.remove(this.$scope.editArtifactResourceModel.artifactTypes, (item:string)=> { - return 'HEAT' == item.substring(0,4)||(!isHeat && item == "VF_MODULES_METADATA") || - _.has(Utils.Constants.ArtifactType.THIRD_PARTY_RESERVED_TYPES, item); - }); - } - - }if (this.$scope.artifactType === 'normal') { - this.$scope.editArtifactResourceModel.artifactTypes = artifactTypes.artifacts.other.map((element:any)=> { - return element.name; - }); - _.remove(this.$scope.editArtifactResourceModel.artifactTypes, (item:string)=> { - return _.has(Utils.Constants.ArtifactType.THIRD_PARTY_RESERVED_TYPES, item) || - _.has(Utils.Constants.ArtifactType.TOSCA, item); - }) - } - - if(this.component.isResource() && (this.component).isCsarComponent()) { - _.remove(this.$scope.editArtifactResourceModel.artifactTypes, (item:string) => { - return this.artifactsUtils.isLicenseType(item); - }) - } - - }; - - private initEditArtifactResourceModel = ():void => { - this.$scope.editArtifactResourceModel = { - artifactResource: null, - artifactTypes: null, - artifactFile:{} - }; - - this.initEntity(); - }; - - private initScope = ():void => { - - this.$scope.validationPattern = this.ValidationPattern; - this.$scope.urlValidationPattern = this.UrlValidationPattern; - this.$scope.labelValidationPattern = this.LabelValidationPattern; - this.$scope.integerValidationPattern = this.IntegerValidationPattern; - this.$scope.commentValidationPattern = this.CommentValidationPattern; - this.$scope.isLoading = false; - this.$scope.isNew = (this.formState === Utils.Constants.FormState.CREATE); - this.$scope.artifactType = this.artifactsUtils.getArtifactTypeByState(this.$state.current.name); - this.$scope.modalInstanceArtifact = this.$modalInstance; - - this.initEditArtifactResourceModel(); - this.initArtifactTypes(); - - // In case of edit, show the file name in browse. - if (this.artifact.artifactName!=="" && 'HEAT_ENV'!==this.artifact.artifactType){ - this.$scope.editArtifactResourceModel.artifactFile = {}; - this.$scope.editArtifactResourceModel.artifactFile.filename = this.artifact.artifactName; - } - - //scope methods - this.$scope.isDeploymentHeat = ():boolean => { - return !this.$scope.isNew && this.$scope.artifactType === 'deployment' && - 'HEAT' === this.$scope.editArtifactResourceModel.artifactResource.artifactType.substring(0,4); - }; - this.$scope.onFileChange = ():void => { - if(this.$scope.editArtifactResourceModel.artifactFile && this.$scope.editArtifactResourceModel.artifactFile.filename) { - this.$scope.editArtifactResourceModel.artifactResource.artifactName = this.$scope.editArtifactResourceModel.artifactFile.filename; - } else { - this.$scope.editArtifactResourceModel.artifactResource.artifactName = this.$scope.originalArtifactName; - } - }; - this.$scope.setDefaultTimeout = ():void => { - if(this.$scope.isDeploymentHeat() && !this.$scope.editArtifactResourceModel.artifactResource.timeout) { - this.$scope.editArtifactResourceModel.artifactResource.timeout = this.$scope.defaultHeatTimeout; - } - }; - - this.$scope.fileExtensions = ():string => { - let type:string = this.$scope.editArtifactResourceModel.artifactResource.artifactType; - return type && this.$scope.validExtensions && this.$scope.validExtensions[type].acceptedTypes ? - this.$scope.validExtensions[type].acceptedTypes.join(',') : ""; - }; - - this.$scope.save = (doNotCloseModal?:boolean):void => { - this.$scope.isLoading = true; - this.$scope.editArtifactResourceModel.artifactResource.description = this.ValidationUtils.stripAndSanitize(this.$scope.editArtifactResourceModel.artifactResource.description); - - if (!this.$scope.isDeploymentHeat()) { - this.$scope.editArtifactResourceModel.artifactResource.timeout = null; - } - - if (this.$scope.editArtifactResourceModel.artifactFile) { - this.$scope.editArtifactResourceModel.artifactResource.payloadData = this.$scope.editArtifactResourceModel.artifactFile.base64; - this.$scope.editArtifactResourceModel.artifactResource.artifactName = this.$scope.editArtifactResourceModel.artifactFile.filename; - } - - let onFaild = (response):void => { - this.$scope.isLoading = false; - console.info('onFaild', response); - }; - - let onSuccess = (artifactResource:Models.ArtifactModel):void => { - this.$scope.isLoading = false; - this.$scope.originalArtifactName = ""; - - if(this.$scope.isDeploymentHeat()){ - if(artifactResource.heatParameters) { - this.$scope.openEditEnvParametersModal(artifactResource); - } - } - - if (!doNotCloseModal) { - this.$modalInstance.close(); - //this.artifactArr = []; - } else { - this.$scope.editArtifactResourceModel.artifactFile = null; - angular.element("input[type='file']").val(null); // for support chrome when upload the same file - this.artifactsUtils.addAnotherAfterSave(this.$scope); - } - - }; - - if('HEAT_ENV' == this.artifact.artifactType){ - this.component.uploadInstanceEnvFile(this.$scope.editArtifactResourceModel.artifactResource).then(onSuccess, onFaild); - }else if(this.$scope.isArtifactOwner()){ - this.component.addOrUpdateInstanceArtifact(this.$scope.editArtifactResourceModel.artifactResource).then(onSuccess, onFaild); - }else { - this.component.addOrUpdateArtifact(this.$scope.editArtifactResourceModel.artifactResource).then(onSuccess, onFaild); - } - }; - - this.$scope.isArtifactOwner = ():boolean=> { - return this.component.isService() && !!this.component.selectedInstance; - }; - - this.$scope.saveAndAnother = ():void => { - this.$scope.save(true); - }; - - this.$scope.close = ():void => { - this.$modalInstance.close(); - this.artifactArr = []; - }; - - this.$scope.fileUploadRequired = ():string => { - if (this.$scope.editArtifactResourceModel.artifactFile.filename){ - // This is edit mode - return 'false'; - } else { - return 'true'; - } - }; - - this.$scope.getFormTitle =(): string =>{ - if('HEAT_ENV' == this.artifact.artifactType){ - return 'Update HEAT ENV'; - } - if(this.$scope.isDeploymentHeat()){ - if(!this.$scope.editArtifactResourceModel.artifactResource.artifactChecksum){ - return 'Add HEAT Template'; - } - return 'Update HEAT Template'; - } - if(this.$scope.isNew){ - return 'Add Artifact'; - } - return 'Update Artifact'; - }; - - this.$scope.openEditEnvParametersModal = (artifactResource:Models.ArtifactModel):void => { - - let modalOptions:ng.ui.bootstrap.IModalSettings = { - template: this.$templateCache.get('/app/scripts/view-models/forms/env-parameters-form/env-parameters-form.html'), - controller: 'Sdc.ViewModels.EnvParametersFormViewModel', - size: 'sdc-md', - backdrop: 'static', - resolve: { - artifact: ():Models.ArtifactModel => { - return artifactResource; - }, - component: ():Models.Components.Component => { - return this.component; - } - } - }; - - let modalInstance:ng.ui.bootstrap.IModalServiceInstance = this.$modal.open(modalOptions); - modalInstance - .result - .then(():void => { - }); - }; - - this.$scope.forms = {}; - - this.initFooterButtons(); - - - this.$scope.$watch("forms.editForm.$invalid", (newVal, oldVal) => { - this.$scope.footerButtons[0].disabled = this.$scope.forms.editForm.$invalid; - if(this.$scope.isNew){ - this.$scope.footerButtons[1].disabled = this.$scope.forms.editForm.$invalid; - } - }); - - } - - } -} diff --git a/catalog-ui/app/scripts/view-models/forms/artifact-form/artifact-form-view.html b/catalog-ui/app/scripts/view-models/forms/artifact-form/artifact-form-view.html deleted file mode 100644 index 74a19c8776..0000000000 --- a/catalog-ui/app/scripts/view-models/forms/artifact-form/artifact-form-view.html +++ /dev/null @@ -1,169 +0,0 @@ - - - - -
      -
      - - -
      - - - -
      - - - - -
      -
      - - -
      - -
      - -
      - - - -
      - - - -
      - -
      - -
      - - - -
      - -
      - -
      - -
      - - - -
      - - - -
      - -
      - -
      - -
      - -
      - - - -
      - - - -
      - -
      - -
      - -
      - -
      - - - -
      - - - -
      - -
      - UUID -
      - Version -
      -
      - -
      - -
      - - - -
      -
      -
      - diff --git a/catalog-ui/app/scripts/view-models/forms/artifact-form/artifact-form.less b/catalog-ui/app/scripts/view-models/forms/artifact-form/artifact-form.less deleted file mode 100644 index 1f77958c88..0000000000 --- a/catalog-ui/app/scripts/view-models/forms/artifact-form/artifact-form.less +++ /dev/null @@ -1,44 +0,0 @@ -.sdc-edit-artifact-form-container { - - .w-sdc-form-note { - .h_9; - display: block; - position: relative; - top: 13px; - } - - .i-sdc-form-textarea{ - min-height: 95px; - } - - .i-sdc-form-url { - padding-bottom: 0px; - } - - &.mandatory-artifact { - .w-sdc-form-column { - width: 100%; - padding: 0; - min-height: initial; - } - } - .w-sdc-form .i-sdc-form-item.upload input[type="file"] { - display: none - } - - .artifact-info { - text-align: left; - color: rgb(140, 140, 140); - font-size: 13px; - margin-top: -10px; - margin-bottom: 5px; - width: 100%; - min-height: initial; - - span { - color: #666666; - padding-left: 4px; - } - } - -} diff --git a/catalog-ui/app/scripts/view-models/forms/attribute-form/attribute-form-view.html b/catalog-ui/app/scripts/view-models/forms/attribute-form/attribute-form-view.html deleted file mode 100644 index 432b32fbd3..0000000000 --- a/catalog-ui/app/scripts/view-models/forms/attribute-form/attribute-form-view.html +++ /dev/null @@ -1,153 +0,0 @@ - - -
      -
      - -
      - -
      - - -
      - - -
      - - - - -
      -
      - - -
      - - -
      - - - -
      -
      - - -
      - -
      - -
      - - -
      - -
      -
      - - -
      - - - -
      - -
      -
      - - -
      - - - -
      - - - - -
      -
      - - -
      - - -
      -
      - -
      - -
      -
      - -
      diff --git a/catalog-ui/app/scripts/view-models/forms/attribute-form/attribute-from-view-model.ts b/catalog-ui/app/scripts/view-models/forms/attribute-form/attribute-from-view-model.ts deleted file mode 100644 index d369cfa5d1..0000000000 --- a/catalog-ui/app/scripts/view-models/forms/attribute-form/attribute-from-view-model.ts +++ /dev/null @@ -1,255 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// - -module Sdc.ViewModels { - 'use strict'; - - export interface IEditAttributeModel { - attribute: Models.AttributeModel; - types: Array; - simpleTypes: Array; - } - - interface IAttributeFormViewModelScope extends ng.IScope { - $$childTail: any; - forms:any; - editForm:ng.IFormController; - footerButtons: Array; - isService: boolean; - editAttributeModel: IEditAttributeModel; - modalInstanceAttribute:ng.ui.bootstrap.IModalServiceInstance; - isNew: boolean; - listRegex: Sdc.Utils.IMapRegex; - mapRegex: Sdc.Utils.IMapRegex; - propertyNameValidationPattern: RegExp; - commentValidationPattern: RegExp; - isLoading: boolean; - validationPattern: RegExp; - - save():void; - close(): void; - onTypeChange():void; - onValueChange(): void; - isAttributeValueOwner():boolean; - validateIntRange(value:string):boolean; - validateUniqueKeys(viewValue:string):boolean; - getValidationTranslate(): string; - showSchema(): boolean; - isSchemaEditable(): boolean; - validateName():void; - } - - export class AttributeFormViewModel { - - static '$inject' = [ - '$scope', - '$modalInstance', - 'attribute', - 'ValidationUtils', - 'CommentValidationPattern', - 'PropertyNameValidationPattern', - 'component' - ]; - - private formState: Sdc.Utils.Constants.FormState; - - - constructor(private $scope:IAttributeFormViewModelScope, - private $modalInstance:ng.ui.bootstrap.IModalServiceInstance, - private attribute: Models.AttributeModel, - private ValidationUtils:Sdc.Utils.ValidationUtils, - private CommentValidationPattern:RegExp, - private PropertyNameValidationPattern: RegExp, - private component: Models.Components.Component) { - this.formState = angular.isDefined(attribute.name) ? Utils.Constants.FormState.UPDATE : Utils.Constants.FormState.CREATE; - this.initScope(); - } - - private initResource = ():void => { - this.$scope.editAttributeModel.attribute = new Sdc.Models.AttributeModel(this.attribute); - if (this.$scope.editAttributeModel.types.indexOf(this.attribute.type) === -1) {//attribute defaulte type is string too? - this.attribute.type = "string"; - } - }; - - private initEditAttributeModel = ():void => { - this.$scope.editAttributeModel = { - attribute: null, - types: ['integer', 'string', 'float', 'boolean', 'list', 'map'], - simpleTypes: ['integer', 'string', 'float', 'boolean'] - }; - - this.initResource(); - }; - - private initScope = ():void => { - - //scope attributes - this.$scope.forms = {}; - this.$scope.propertyNameValidationPattern = this.PropertyNameValidationPattern; - this.$scope.commentValidationPattern = this.CommentValidationPattern; - - this.$scope.modalInstanceAttribute = this.$modalInstance; - this.$scope.listRegex = this.ValidationUtils.getPropertyListPatterns(); - this.$scope.mapRegex = this.ValidationUtils.getPropertyMapPatterns(); - - this.$scope.isNew = (this.formState === Utils.Constants.FormState.CREATE); - this.$scope.isLoading = false; - - this.initEditAttributeModel(); - this.setValidationPattern(); - - //scope methods - this.$scope.save = ():void => { - if(!this.$scope.forms.editForm.$invalid){ - let attribute:Models.AttributeModel = this.$scope.editAttributeModel.attribute; - this.$scope.editAttributeModel.attribute.description = this.ValidationUtils.stripAndSanitize(this.$scope.editAttributeModel.attribute.description); - ////if read only - just closes the modal - if (this.$scope.editAttributeModel.attribute.readonly && !this.$scope.isAttributeValueOwner()) { - this.$modalInstance.close(); - return; - } - this.$scope.isLoading = true; - let onAttributeFaild = (response):void => { - console.info('onFaild', response); - this.$scope.isLoading = false; - }; - - let onAttributeSuccess = (attributeFromBE:Models.AttributeModel):void => { - console.info('onAttributeResourceSuccess : ', attributeFromBE); - this.$scope.isLoading = false; - this.$modalInstance.close(); - }; - - //in case we have uniqueId we call update method - if (this.$scope.isAttributeValueOwner()) { - this.component.updateInstanceAttribute(attribute).then(onAttributeSuccess, onAttributeFaild); - } else { - this.component.addOrUpdateAttribute(attribute).then(onAttributeSuccess, onAttributeFaild); - } - } - }; - - this.$scope.close = ():void => { - this.$modalInstance.close(); - }; - - this.$scope.validateName = ():void => { - let existsAttr: Models.AttributeModel = _.find(this.component.attributes, (attribute:Models.AttributeModel) => { - return attribute.name === this.$scope.editAttributeModel.attribute.name; - }); - if(existsAttr){ - this.$scope.forms.editForm["attributeName"].$setValidity('nameExist', false); - }else{ - this.$scope.forms.editForm["attributeName"].$setValidity('nameExist', true); - } - - }; - - this.$scope.onTypeChange = ():void => { - this.$scope.editAttributeModel.attribute.value = ''; - this.$scope.editAttributeModel.attribute.defaultValue = ''; - this.setValidationPattern(); - }; - - this.$scope.isAttributeValueOwner = ():boolean=> { - return this.component.isService() || !!this.component.selectedInstance; - }; - - this.$scope.onValueChange = ():void => { - if (!this.$scope.editAttributeModel.attribute.value) { - if (this.$scope.isAttributeValueOwner()) { - this.$scope.editAttributeModel.attribute.value = this.$scope.editAttributeModel.attribute.defaultValue; - } - } - }; - - - this.$scope.validateUniqueKeys = (viewValue:string) : boolean => { - if(this.$scope.editAttributeModel.attribute.type === 'map') { - return this.ValidationUtils.validateUniqueKeys(viewValue); - } - else { - return true; //always valid if not a map - } - }; - - this.$scope.validateIntRange = (value:string):boolean => { - return !value || this.ValidationUtils.validateIntRange(value); - }; - - this.$scope.isSchemaEditable = () :boolean => { - let schemaType=this.$scope.editAttributeModel.attribute.schema.property.type; - return this.$scope.editAttributeModel.simpleTypes.indexOf(schemaType) > -1||!schemaType; - }; - - this.$scope.showSchema = () :boolean => { - return ['list', 'map'].indexOf(this.$scope.editAttributeModel.attribute.type) > -1; - }; - - this.$scope.getValidationTranslate = () : string => { - let result = "ATTRIBUTE_EDIT_PATTERN"; - if (this.$scope.showSchema()) { - - result = "ATTRIBUTE_EDIT_" + this.$scope.editAttributeModel.attribute.type.toUpperCase(); - - if(this.$scope.editAttributeModel.attribute.schema.property.type === Utils.Constants.PROPERTY_TYPES.STRING) { - result += "_STRING"; - }else if(this.$scope.editAttributeModel.attribute.schema.property.type === Utils.Constants.PROPERTY_TYPES.BOOLEAN) { - result += "_BOOLEAN"; - } else { - result += "_GENERIC"; - } - } - - return result; - }; - - // Add the done button at the footer. - this.$scope.footerButtons = [ - {'name': 'Done', 'css':'blue', 'callback': this.$scope.save}, - {'name':'Cancel', 'css':'grey', 'callback': this.$scope.close} - ]; - - this.$scope.$watchCollection("forms.editForm.$invalid", (newVal, oldVal) => { - this.$scope.footerButtons[0].disabled = this.$scope.forms.editForm.$invalid; - }); - - } - - - private setValidationPattern = ():void => { - - if(this.$scope.editAttributeModel.attribute.type === 'list') { - this.$scope.validationPattern = this.$scope.listRegex[this.$scope.editAttributeModel.attribute.schema.property.type]; - } - else if(this.$scope.editAttributeModel.attribute.type === 'map') { - this.$scope.validationPattern = this.$scope.mapRegex[this.$scope.editAttributeModel.attribute.schema.property.type]; - } - else{ - this.$scope.validationPattern = this.ValidationUtils.getValidationPattern(this.$scope.editAttributeModel.attribute.type); - } - - }; - - - } -} diff --git a/catalog-ui/app/scripts/view-models/forms/env-parameters-form/env-parameters-form.html b/catalog-ui/app/scripts/view-models/forms/env-parameters-form/env-parameters-form.html deleted file mode 100644 index 69367dc68c..0000000000 --- a/catalog-ui/app/scripts/view-models/forms/env-parameters-form/env-parameters-form.html +++ /dev/null @@ -1,39 +0,0 @@ - -
      -
      - -
      - -
      -
      - - - - -
      - - - -
      -
      -
      -
      - -
      -
      -
      -
      -
      -
      -
      -
      diff --git a/catalog-ui/app/scripts/view-models/forms/env-parameters-form/env-parameters-form.less b/catalog-ui/app/scripts/view-models/forms/env-parameters-form/env-parameters-form.less deleted file mode 100644 index c58c94ab22..0000000000 --- a/catalog-ui/app/scripts/view-models/forms/env-parameters-form/env-parameters-form.less +++ /dev/null @@ -1,74 +0,0 @@ - -.sdc-env-form-container{ - .w-sdc-modal-body{ - padding: 20px 10px 2px 10px; - } - .w-sdc-modal-body-content{ - .b_6; - display: block; - } - - .env-file-generation-label{ - .p_9; - .bold; - margin-bottom: 20px; - } -} - -.w-sdc-env-form-container { - border-top: 1px solid #cdcdcd; - border-bottom: 1px solid #cdcdcd; - height: 356px; - margin: 35px 0 10px 0; - - .w-sdc-form { - text-align: left; - } - .i-sdc-form-item{ - display: inline-block; - .description{ - margin-bottom: 2px; - vertical-align: baseline; - padding: 32px 0 0 0; - text-transform: capitalize; - .b_1; - } - } - .left-column-container{ - width: 250px; - float: left; - .i-sdc-env-form-label { - overflow: hidden; - max-width: 100%; - text-overflow: ellipsis; - display: inline-block; - white-space: nowrap; - - &.required::before { - color: #f33; - content: '*'; - margin-right: 4px; - } - } - } - .i-sdc-env-form-label-description { - float: right; - - .i-sdc-env-form-label { - .p_9; - // height: 20px; - margin: 30px 0px 0px 30px; - overflow: hidden; - max-width: 245px; - text-overflow: ellipsis; - display: inline-block; - white-space: nowrap; - - &.required::before { - color: #f33; - content: '*'; - margin-right: 4px; - } - } - } -} diff --git a/catalog-ui/app/scripts/view-models/forms/env-parameters-form/env-parameters-form.ts b/catalog-ui/app/scripts/view-models/forms/env-parameters-form/env-parameters-form.ts deleted file mode 100644 index d1bae440cc..0000000000 --- a/catalog-ui/app/scripts/view-models/forms/env-parameters-form/env-parameters-form.ts +++ /dev/null @@ -1,149 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// - -module Sdc.ViewModels { - 'use strict'; - - export interface IEnvParametersFormViewModelScope extends ng.IScope { - isLoading: boolean; - type:string; - heatParameters:any; - editForm:ng.IFormController; - artifactResource:Models.ArtifactModel; - saveButton: Array; - envParametersModal: ng.ui.bootstrap.IModalServiceInstance; - - getValidationPattern(type:string):RegExp; - isInstance():boolean; - validateJson(json:string):boolean; - close(): void; - save():void; - } - - export class EnvParametersFormViewModel { - - - static '$inject' = [ - '$scope', - '$state', - '$modalInstance', - 'artifact', - // 'ArtifactsUtils', - 'ValidationUtils', - 'component' - ]; - - - constructor(private $scope:IEnvParametersFormViewModelScope, - private $state:any, - private $modalInstance:ng.ui.bootstrap.IModalServiceInstance, - private artifact:Models.ArtifactModel, - // private artifactsUtils:Sdc.Utils.ArtifactsUtils, - private ValidationUtils: Sdc.Utils.ValidationUtils, - private component:Models.Components.Component) { - - - this.initScope(); - } - - private updateInstanceHeat = ():void => { - let success =(responseArtifact:Models.ArtifactModel): void => { - this.$scope.isLoading = false; - this.$modalInstance.close(); - }; - - let error = ():void => { - this.$scope.isLoading = false; - console.info('Failed to load save artifact'); - }; - - this.component.addOrUpdateInstanceArtifact(this.$scope.artifactResource).then(success, error); - - }; - - private initScope = ():void => { - this.$scope.envParametersModal = this.$modalInstance; - this.$scope.artifactResource= this.artifact; - this.$scope.heatParameters = angular.copy(this.artifact.heatParameters); - - this.$scope.getValidationPattern = (validationType:string , parameterType?:string):RegExp => { - return this.ValidationUtils.getValidationPattern(validationType, parameterType); - }; - - this.$scope.validateJson = (json:string):boolean => { - if(!json){ - return true; - } - return this.ValidationUtils.validateJson(json); - }; - - this.$scope.isInstance =(): boolean =>{ - return !!this.component.selectedInstance; - }; - - - this.$scope.save = ():void => { - this.$scope.isLoading = true; - this.artifact.heatParameters = this.$scope.heatParameters; - this.artifact.heatParameters.forEach((parameter:any):void => { - /* if ("" === parameter.currentValue) { - parameter.currentValue = null; - }else */ - if(!parameter.currentValue && parameter.defaultValue) { - parameter.currentValue = parameter.defaultValue; - } - }); - - if(this.$scope.isInstance()){ - this.updateInstanceHeat(); - return; - } - - let success =(responseArtifact:Models.ArtifactModel): void => { - this.$scope.isLoading = false; - this.$modalInstance.close(); - - }; - - let error = ():void => { - this.$scope.isLoading = false; - console.info('Failed to load save artifact'); - }; - - this.component.addOrUpdateArtifact(this.$scope.artifactResource).then(success, error); - }; - - this.$scope.saveButton = [ - {'name': 'Save', 'css': 'blue', 'callback': this.$scope.save} - ]; - - this.$scope.close = ():void => { - //this.artifact.heatParameters.forEach((parameter:any):void => { - // if (!parameter.currentValue && parameter.defaultValue) { - // parameter.currentValue = parameter.defaultValue; - // } - //}); - this.$modalInstance.dismiss(); - }; - - }; - } -} diff --git a/catalog-ui/app/scripts/view-models/forms/property-form/property-form-view-model.ts b/catalog-ui/app/scripts/view-models/forms/property-form/property-form-view-model.ts deleted file mode 100644 index c9732aa9a6..0000000000 --- a/catalog-ui/app/scripts/view-models/forms/property-form/property-form-view-model.ts +++ /dev/null @@ -1,330 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// - -module Sdc.ViewModels { - 'use strict'; - - export interface IEditPropertyModel { - property: Models.PropertyModel; - types: Array; - simpleTypes: Array; - sources: Array; - } - - interface IPropertyFormViewModelScope extends ng.IScope { - forms:any; - editForm:ng.IFormController; - footerButtons: Array; - isNew: boolean; - isLoading: boolean; - isService: boolean; - validationPattern: RegExp; - propertyNameValidationPattern: RegExp; - commentValidationPattern: RegExp; - editPropertyModel: IEditPropertyModel; - modalInstanceProperty:ng.ui.bootstrap.IModalServiceInstance; - currentPropertyIndex:number; - isLastProperty:boolean; - myValue:any; - nonPrimitiveTypes:Array; - dataTypes:Models.DataTypesMap; - isTypeDataType:boolean; - maxLength:number; - - save(doNotCloseModal?:boolean): void; - getValidationPattern(type:string): RegExp; - validateIntRange(value:string):boolean; - close(): void; - onValueChange(): void; - onSchemaTypeChange():void; - onTypeChange(resetSchema:boolean): void; - isPropertyValueOwner():boolean; - showSchema(): boolean; - delete(property:Models.PropertyModel): void; - getPrev(): void; - getNext(): void; - isSimpleType(typeName:string):boolean; - getDefaultValue():any; - } - - export class PropertyFormViewModel { - - static '$inject' = [ - '$scope', - 'Sdc.Services.DataTypesService', - '$modalInstance', - 'property', - 'ValidationPattern', - 'PropertyNameValidationPattern', - 'CommentValidationPattern', - 'ValidationUtils', - 'component', - '$filter', - 'ModalsHandler', - 'filteredProperties', - '$timeout' - ]; - - private formState: Sdc.Utils.Constants.FormState; - - constructor(private $scope:IPropertyFormViewModelScope, - private DataTypesService:Sdc.Services.DataTypesService, - private $modalInstance:ng.ui.bootstrap.IModalServiceInstance, - private property: Models.PropertyModel, - private ValidationPattern:RegExp, - private PropertyNameValidationPattern: RegExp, - private CommentValidationPattern:RegExp, - private ValidationUtils:Sdc.Utils.ValidationUtils, - private component: Models.Components.Component, - private $filter:ng.IFilterService, - private ModalsHandler:Utils.ModalsHandler, - private filteredProperties: Array, - private $timeout: ng.ITimeoutService) { - - this.formState = angular.isDefined(property.name) ? Utils.Constants.FormState.UPDATE : Utils.Constants.FormState.CREATE; - this.initScope(); - } - - private initResource = ():void => { - this.$scope.editPropertyModel.property = new Sdc.Models.PropertyModel(this.property); - this.$scope.editPropertyModel.property.type = this.property.type? this.property.type: null; - this.setMaxLength(); - // if (this.$scope.editPropertyModel.types.indexOf(this.property.type) === -1 && !this.$scope.isNew) { - // this.property.type = "string"; - // } - }; - - private initEditPropertyModel = ():void => { - this.$scope.editPropertyModel = { - property: null, - types: Utils.Constants.PROPERTY_DATA.TYPES, - simpleTypes: Utils.Constants.PROPERTY_DATA.SIMPLE_TYPES, - sources: Utils.Constants.PROPERTY_DATA.SOURCES - }; - - this.initResource(); - }; - - private initForNotSimpleType = ():void => { - let property = this.$scope.editPropertyModel.property; - this.$scope.isTypeDataType=this.DataTypesService.isDataTypeForPropertyType(this.$scope.editPropertyModel.property,this.$scope.dataTypes); - if(property.type && this.$scope.editPropertyModel.simpleTypes.indexOf(property.type)==-1){ - if(!(property.value||property.defaultValue)) { - switch (property.type) { - case Utils.Constants.PROPERTY_TYPES.MAP: - this.$scope.myValue = {'':null}; - break; - case Utils.Constants.PROPERTY_TYPES.LIST: - this.$scope.myValue = []; - break; - default: - this.$scope.myValue = {}; - } - }else{ - this.$scope.myValue = JSON.parse(property.value||property.defaultValue); - } - } - }; - - private setMaxLength = ():void => { - switch (this.$scope.editPropertyModel.property.type) { - case Utils.Constants.PROPERTY_TYPES.MAP: - case Utils.Constants.PROPERTY_TYPES.LIST: - this.$scope.maxLength = this.$scope.editPropertyModel.property.schema.property.type == Utils.Constants.PROPERTY_TYPES.JSON? - Utils.Constants.PROPERTY_VALUE_CONSTRAINTS.JSON_MAX_LENGTH: - Utils.Constants.PROPERTY_VALUE_CONSTRAINTS.MAX_LENGTH; - break; - case Utils.Constants.PROPERTY_TYPES.JSON: - this.$scope.maxLength = Utils.Constants.PROPERTY_VALUE_CONSTRAINTS.JSON_MAX_LENGTH; - break; - default: - this.$scope.maxLength = Utils.Constants.PROPERTY_VALUE_CONSTRAINTS.MAX_LENGTH; - } - }; - - - private initScope = ():void => { - - //scope properties - this.$scope.forms = {}; - this.$scope.validationPattern = this.ValidationPattern; - this.$scope.propertyNameValidationPattern = this.PropertyNameValidationPattern; - this.$scope.commentValidationPattern = this.CommentValidationPattern; - this.$scope.isLoading = false; - this.$scope.isNew = (this.formState === Utils.Constants.FormState.CREATE); - this.$scope.isService = this.component.isService(); - this.$scope.modalInstanceProperty = this.$modalInstance; - this.$scope.currentPropertyIndex = _.findIndex(this.filteredProperties, i=> i.name == this.property.name ); - this.$scope.isLastProperty= this.$scope.currentPropertyIndex==(this.filteredProperties.length-1); - - this.initEditPropertyModel(); - - this.DataTypesService.getAllDataTypes().then((response:any) => { - this.$scope.dataTypes = response; - delete response['tosca.datatypes.Root']; - this.$scope.nonPrimitiveTypes =_.filter(Object.keys(response),(type:string)=>{ - return this.$scope.editPropertyModel.types.indexOf(type)==-1; - }); - this.initForNotSimpleType(); - }, (err)=> {}); - - - - - - //scope methods - this.$scope.save = (doNotCloseModal?:boolean):void => { - let property:Models.PropertyModel = this.$scope.editPropertyModel.property; - this.$scope.editPropertyModel.property.description = this.ValidationUtils.stripAndSanitize(this.$scope.editPropertyModel.property.description); - ////if read only - just closes the modal - if (this.$scope.editPropertyModel.property.readonly && !this.$scope.isPropertyValueOwner()) { - this.$modalInstance.close(); - return; - } - - this.$scope.isLoading = true; - - let onPropertyFaild = (response):void => { - console.info('onFaild', response); - this.$scope.isLoading = false; - }; - - let onPropertySuccess = (propertyFromBE:Models.PropertyModel):void => { - console.info('onPropertyResourceSuccess : ', propertyFromBE); - this.$scope.isLoading = false; - - if (!doNotCloseModal) { - this.$modalInstance.close(); - } else { - this.$scope.forms.editForm.$setPristine(); - this.$scope.editPropertyModel.property = new Models.PropertyModel(); - } - }; - - //in case we have uniqueId we call update method - if (this.$scope.isPropertyValueOwner()) { - if(!this.$scope.editPropertyModel.property.simpleType && !this.$scope.isSimpleType(property.type)){ - let myValueString:string = JSON.stringify(this.$scope.myValue); - property.value = myValueString; - } - this.component.updateInstanceProperty(property).then(onPropertySuccess, onPropertyFaild); - } else { - if(!this.$scope.editPropertyModel.property.simpleType && !this.$scope.isSimpleType(property.type)){ - let myValueString:string = JSON.stringify(this.$scope.myValue); - property.defaultValue = myValueString; - }else{ - this.$scope.editPropertyModel.property.defaultValue = this.$scope.editPropertyModel.property.value; - } - this.component.addOrUpdateProperty(property).then(onPropertySuccess, onPropertyFaild); - } - }; - - - this.$scope.isPropertyValueOwner = ():boolean=> { - return this.component.isService() || !!this.component.selectedInstance; - }; - - this.$scope.getPrev = ():void=> { - this.property = this.filteredProperties[--this.$scope.currentPropertyIndex]; - this.initResource(); - this.initForNotSimpleType(); - this.$scope.isLastProperty=false; - }; - - this.$scope.getNext = ():void=> { - this.property = this.filteredProperties[++this.$scope.currentPropertyIndex]; - this.initResource(); - this.initForNotSimpleType(); - this.$scope.isLastProperty= this.$scope.currentPropertyIndex==(this.filteredProperties.length-1); - }; - - this.$scope.isSimpleType = (typeName:string):boolean=>{ - return typeName && this.$scope.editPropertyModel.simpleTypes.indexOf(typeName)!=-1; - }; - - this.$scope.showSchema = () :boolean => { - return [Utils.Constants.PROPERTY_TYPES.LIST, Utils.Constants.PROPERTY_TYPES.MAP].indexOf(this.$scope.editPropertyModel.property.type) > -1; - }; - - this.$scope.getValidationPattern = (type:string):RegExp => { - return this.ValidationUtils.getValidationPattern(type); - }; - - this.$scope.validateIntRange = (value:string):boolean => { - return !value || this.ValidationUtils.validateIntRange(value); - }; - - this.$scope.close = ():void => { - this.$modalInstance.close(); - }; - - // put default value when instance value is empty - this.$scope.onValueChange = ():void => { - if (!this.$scope.editPropertyModel.property.value) { - if (this.$scope.isPropertyValueOwner()) { - this.$scope.editPropertyModel.property.value = this.$scope.editPropertyModel.property.defaultValue; - } - } - }; - - // Add the done button at the footer. - this.$scope.footerButtons = [ - {'name': 'Save', 'css': 'blue', 'callback': this.$scope.save }, - {'name': 'Cancel', 'css': 'grey', 'callback':this.$scope.close } - ]; - - this.$scope.$watch("forms.editForm.$invalid", (newVal, oldVal) => { - this.$scope.footerButtons[0].disabled = this.$scope.forms.editForm.$invalid; - }); - - this.$scope.getDefaultValue = ():any => { - return this.$scope.isPropertyValueOwner() ? this.$scope.editPropertyModel.property.defaultValue : null; - }; - - this.$scope.onTypeChange = ():void => { - this.$scope.editPropertyModel.property.value = ''; - this.$scope.editPropertyModel.property.defaultValue = ''; - this.setMaxLength(); - this.initForNotSimpleType(); - }; - - this.$scope.onSchemaTypeChange = ():void => { - if(this.$scope.editPropertyModel.property.type==Utils.Constants.PROPERTY_TYPES.MAP){ - this.$scope.myValue={'':null}; - }else if(this.$scope.editPropertyModel.property.type==Utils.Constants.PROPERTY_TYPES.LIST){ - this.$scope.myValue=[]; - } - this.setMaxLength(); - }; - - this.$scope.delete = (property:Models.PropertyModel):void => { - let onOk = ():void => { - this.component.deleteProperty(property.uniqueId).then( - this.$scope.close - ); - }; - let title:string = this.$filter('translate')("PROPERTY_VIEW_DELETE_MODAL_TITLE"); - let message:string = this.$filter('translate')("PROPERTY_VIEW_DELETE_MODAL_TEXT", "{'name': '" + property.name + "'}"); - this.ModalsHandler.openConfirmationModal(title, message, false).then(onOk); - }; - } - } -} diff --git a/catalog-ui/app/scripts/view-models/forms/property-form/property-form-view.html b/catalog-ui/app/scripts/view-models/forms/property-form/property-form-view.html deleted file mode 100644 index d593d47a77..0000000000 --- a/catalog-ui/app/scripts/view-models/forms/property-form/property-form-view.html +++ /dev/null @@ -1,219 +0,0 @@ - -
      -
      - Delete - - Previous - Next -
      -
      - -
      - -
      - -
      - -
      - - -
      - - - -
      - - - -
      - -
      - - - - - -
      - -
      -
      -
      - -
      - - - -
      - -
      -
      -
      -
      - -
      - - - -
      - -
      -
      -
      -
      - - -
      - -
      - Should be constraints by type(TBD) -
      -
      - -
      - -
      - -
      - - - -
      - - - -
      -
      - - -
      - -
      - - -
      -
      -
      - -
      -
      - -
      -
      -
      - - - -
      - - - - -
      -
      -
      -
      -
      - -
      -
      -
      - -
      diff --git a/catalog-ui/app/scripts/view-models/forms/property-form/property-form.less b/catalog-ui/app/scripts/view-models/forms/property-form/property-form.less deleted file mode 100644 index 15e30af4ee..0000000000 --- a/catalog-ui/app/scripts/view-models/forms/property-form/property-form.less +++ /dev/null @@ -1,63 +0,0 @@ -.sdc-edit-property-container { - .scrollbar-container{ - height: 415px; - width: 830px; - .perfect-scrollbar; - } - - form{ - width: 813px; - [name="description"]{ - min-height:50px; - } - } - - .sdc-modal-top-bar{ - height: 40px; - .sdc-modal-top-bar-buttons { - float: right; - - > span:not(.delimiter){ - vertical-align: middle; - .hand; - - &.sprite-new { - text-indent: 100%; - } - &.disabled, &:hover.disabled { - pointer-events: none; - } - } - - .delete-btn{ - margin-right: 6px; - } - - .left-arrow{ - margin-right: 8px; - } - - .delimiter { - height: 20px; - width: 1px; - background-color: #959595; - display: inline-block; - vertical-align: middle; - margin-right: 10px; - } - } - } - - .w-sdc-form-note { - .h_9; - display: block; - position: relative; - top: 13px; - } - - .default-value-section{ - border-top: solid 1px @main_color_a; - padding-top: 15px; - margin-top: 15px; - } -} diff --git a/catalog-ui/app/scripts/view-models/forms/resource-instance-name-form/resource-instance-name-model.ts b/catalog-ui/app/scripts/view-models/forms/resource-instance-name-form/resource-instance-name-model.ts deleted file mode 100644 index b69bf4a2a6..0000000000 --- a/catalog-ui/app/scripts/view-models/forms/resource-instance-name-form/resource-instance-name-model.ts +++ /dev/null @@ -1,105 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// - -module Sdc.ViewModels { - 'use strict'; - - interface IResourceInstanceViewModelScope extends ng.IScope { - - componentInstanceModel: Sdc.Models.ComponentsInstances.ComponentInstance; - validationPattern: RegExp; - oldName:string; - isAlreadyPressed:boolean; - footerButtons: Array; - forms:any; - modalInstanceName:ng.ui.bootstrap.IModalServiceInstance; - - save(): void; - close(): void; - } - - export class ResourceInstanceNameViewModel { - - static '$inject' = [ - '$scope', - 'ValidationPattern', - '$modalInstance', - 'ComponentInstanceFactory', - 'component' - ]; - - - constructor(private $scope:IResourceInstanceViewModelScope, - private ValidationPattern:RegExp, - private $modalInstance:ng.ui.bootstrap.IModalServiceInstance, - private ComponentInstanceFactory:Utils.ComponentInstanceFactory, - private component:Models.Components.Component) { - - this.initScope(); - } - - - private initScope = ():void => { - this.$scope.forms = {}; - this.$scope.validationPattern = this.ValidationPattern; - this.$scope.componentInstanceModel = Utils.ComponentInstanceFactory.createComponentInstance(this.component.selectedInstance); - this.$scope.oldName = this.component.selectedInstance.name; - this.$scope.modalInstanceName = this.$modalInstance; - - this.$scope.isAlreadyPressed = false; - - - this.$scope.close = ():void => { - this.$modalInstance.dismiss(); - }; - - this.$scope.save = ():void => { - - let onFailed = () => { - this.$scope.isAlreadyPressed = true; - }; - - let onSuccess = (componentInstance:Models.ComponentsInstances.ComponentInstance) => { - this.$modalInstance.close(); - this.$scope.isAlreadyPressed = false; - this.$scope.componentInstanceModel = componentInstance; - //this.component.name = componentInstance.name;//DE219124 - this.component.selectedInstance.name = componentInstance.name; - - }; - - this.$scope.isAlreadyPressed = true; - if (this.$scope.oldName != this.$scope.componentInstanceModel.name) { - this.component.updateComponentInstance(this.$scope.componentInstanceModel).then(onSuccess, onFailed); - } - }; - - this.$scope.footerButtons = [ - {'name': 'OK', 'css': 'blue', 'callback': this.$scope.save, 'disabled': (!this.$scope.componentInstanceModel.name || this.$scope.componentInstanceModel.name === this.$scope.oldName) || this.$scope.isAlreadyPressed}, - {'name': 'Cancel', 'css': 'grey', 'callback': this.$scope.close} - ]; - - this.$scope.$watch("forms.editNameForm.$invalid", (newVal, oldVal) => { - this.$scope.footerButtons[0].disabled = this.$scope.forms.editNameForm.$invalid; - }); - } - } -} diff --git a/catalog-ui/app/scripts/view-models/forms/resource-instance-name-form/resource-instance-name-view.html b/catalog-ui/app/scripts/view-models/forms/resource-instance-name-form/resource-instance-name-view.html deleted file mode 100644 index e04343adbd..0000000000 --- a/catalog-ui/app/scripts/view-models/forms/resource-instance-name-form/resource-instance-name-view.html +++ /dev/null @@ -1,72 +0,0 @@ - - -
      -
      - - - -
      - - - -
      - -
      -
      - -
      - - - - diff --git a/catalog-ui/app/scripts/view-models/forms/resource-instance-name-form/resource-instance-name.less b/catalog-ui/app/scripts/view-models/forms/resource-instance-name-form/resource-instance-name.less deleted file mode 100644 index 57698bef17..0000000000 --- a/catalog-ui/app/scripts/view-models/forms/resource-instance-name-form/resource-instance-name.less +++ /dev/null @@ -1,29 +0,0 @@ -.w-sdc-modal-resource-instance-name { - - .w-sdc-modal-body { - overflow: visible; - } - - .w-sdc-modal-action { - display: flex; - align-items: center; - justify-content: center; - } - - .w-sdc-modal-resource-instance-input { - .p_1; - border: solid 1px @color_p; - height: 45px; - padding: 0 20px; - margin: 0 auto 0 auto; - display: block; - } - .w-sdc-modal-body { - border-bottom: none; - } - - .w-sdc-form .i-sdc-form-item.error::after { - top: 13px; - } - -} diff --git a/catalog-ui/app/scripts/view-models/modals/confirmation-modal/confirmation-modal-view-model.ts b/catalog-ui/app/scripts/view-models/modals/confirmation-modal/confirmation-modal-view-model.ts deleted file mode 100644 index f906593d8a..0000000000 --- a/catalog-ui/app/scripts/view-models/modals/confirmation-modal/confirmation-modal-view-model.ts +++ /dev/null @@ -1,96 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.ViewModels { - 'use strict'; - - export interface IConfirmationModalModel { - title: string; - message: string; - showComment: boolean; - type: Utils.Constants.ModalType; - } - - interface IConfirmationModalViewModelScope { - modalInstanceConfirmation:ng.ui.bootstrap.IModalServiceInstance; - confirmationModalModel: IConfirmationModalModel; - comment: any; - commentValidationPattern:RegExp; - editForm:ng.IFormController; - okButtonColor: string; - hideCancelButton: boolean; - ok(): any; - cancel(): void; - } - - export class ConfirmationModalViewModel { - - static '$inject' = ['$scope', '$modalInstance', 'confirmationModalModel', 'CommentValidationPattern', 'ValidationUtils', '$templateCache', '$modal']; - - constructor(private $scope:IConfirmationModalViewModelScope, - private $modalInstance:ng.ui.bootstrap.IModalServiceInstance, - confirmationModalModel:IConfirmationModalModel, - private CommentValidationPattern: RegExp, - private ValidationUtils: Sdc.Utils.ValidationUtils, - private $templateCache:ng.ITemplateCacheService, - private $modal:ng.ui.bootstrap.IModalService) { - - this.initScope(confirmationModalModel); - } - - private initScope = (confirmationModalModel:IConfirmationModalModel):void => { - let self = this; - this.$scope.hideCancelButton = false; - this.$scope.modalInstanceConfirmation = this.$modalInstance; - this.$scope.confirmationModalModel = confirmationModalModel; - this.$scope.comment = {"text": ''}; - this.$scope.commentValidationPattern = this.CommentValidationPattern; - - this.$scope.ok = ():any => { - self.$modalInstance.close(this.ValidationUtils.stripAndSanitize(self.$scope.comment.text)); - }; - - this.$scope.cancel = ():void => { - console.info('Cancel pressed on: ' + this.$scope.confirmationModalModel.title); - self.$modalInstance.dismiss(); - }; - - // Set the OK button color according to modal type (standard, error, alert) - let _okButtonColor = 'blue'; // Default - switch (confirmationModalModel.type) { - case Sdc.Utils.Constants.ModalType.STANDARD: - _okButtonColor='blue'; - break; - case Sdc.Utils.Constants.ModalType.ERROR: - _okButtonColor='red'; - break; - case Sdc.Utils.Constants.ModalType.ALERT: - this.$scope.hideCancelButton = true; - _okButtonColor='grey'; - break; - default: - _okButtonColor='blue'; - break; - } - this.$scope.okButtonColor = _okButtonColor; - - } - } -} diff --git a/catalog-ui/app/scripts/view-models/modals/confirmation-modal/confirmation-modal-view.html b/catalog-ui/app/scripts/view-models/modals/confirmation-modal/confirmation-modal-view.html deleted file mode 100644 index 09c27f8cd3..0000000000 --- a/catalog-ui/app/scripts/view-models/modals/confirmation-modal/confirmation-modal-view.html +++ /dev/null @@ -1,29 +0,0 @@ - -
      - - -
      - - -
      - - -
      -
      -
      - -
      diff --git a/catalog-ui/app/scripts/view-models/modals/confirmation-modal/confirmation-modal.less b/catalog-ui/app/scripts/view-models/modals/confirmation-modal/confirmation-modal.less deleted file mode 100644 index 666c41d5ed..0000000000 --- a/catalog-ui/app/scripts/view-models/modals/confirmation-modal/confirmation-modal.less +++ /dev/null @@ -1,30 +0,0 @@ -.w-sdc-modal-confirmation { - form.w-sdc-form{ - padding: 0; - } - - .w-sdc-modal-body-content { - .b_6; - word-break: break-word; - - } - .w-sdc-modal-body { - height: auto; - /* padding: 47px 60px 20px 60px; */ - border-bottom: none; - } - .w-sdc-modal-body-content { - padding: 0; - } - .w-sdc-modal-body-comment { - width: 430px; - height: 127px; - border: solid 1px @color_e; - margin: 20px 0 0 0; - padding: 15px; - } - .w-sdc-modal-label { - .m_14_r; - text-align: left; - } -} diff --git a/catalog-ui/app/scripts/view-models/modals/email-modal/email-modal-view-model.ts b/catalog-ui/app/scripts/view-models/modals/email-modal/email-modal-view-model.ts deleted file mode 100644 index 6430a955a6..0000000000 --- a/catalog-ui/app/scripts/view-models/modals/email-modal/email-modal-view-model.ts +++ /dev/null @@ -1,117 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.ViewModels { - 'use strict'; - - export interface IEmailModalModel_Email { - to: string; - subject: string; - message: string; - } - - export interface IEmailModalModel_Data { - component: Models.Components.Component; - stateUrl: string; - } - - export interface IEmailModalModel { - title: string; - email: IEmailModalModel_Email; - data: IEmailModalModel_Data; - } - - interface IEmailModalViewModelScope { - modalInstanceEmail:ng.ui.bootstrap.IModalServiceInstance; - emailModalModel: IEmailModalModel; - submitInProgress:boolean; - commentValidationPattern:RegExp; - isLoading:boolean; - submit(): any; - cancel(): void; - validateField(field:any):boolean; - } - - export class EmailModalViewModel { - - static '$inject' = ['$scope', '$filter', 'sdcConfig', '$modalInstance', 'emailModalModel', 'ValidationUtils', 'CommentValidationPattern']; - - constructor(private $scope:IEmailModalViewModelScope, - private $filter:ng.IFilterService, - private sdcConfig:Models.IAppConfigurtaion, - private $modalInstance:ng.ui.bootstrap.IModalServiceInstance, - private emailModalModel:IEmailModalModel, - private ValidationUtils: Sdc.Utils.ValidationUtils, - private CommentValidationPattern: RegExp) { - - this.initScope(emailModalModel); - } - - private initScope = (emailModalModel:IEmailModalModel):void => { - this.$scope.emailModalModel = emailModalModel; - this.$scope.submitInProgress=false; - this.$scope.commentValidationPattern = this.CommentValidationPattern; - this.$scope.modalInstanceEmail = this.$modalInstance; - - this.$scope.submit = ():any => { - - let onSuccess = (component:Models.Components.Component) => { - this.$scope.isLoading = false; - this.$scope.submitInProgress=false; - let link:string = encodeURI(this.sdcConfig.api.baseUrl + "?folder=Ready_For_Testing"); - let outlook:string = this.$filter('translate')("EMAIL_OUTLOOK_MESSAGE", "{'to': '" + emailModalModel.email.to + "','subject': '" + emailModalModel.email.subject + "','message': '" + emailModalModel.email.message + "', 'entityNameAndVersion': '" + emailModalModel.email.subject + "','link': '" + link + "'}"); - if(!this.sdcConfig.openSource) { - window.location.href=outlook; // Open outlook with the email to send - } - this.$modalInstance.close(component); // Close the dialog - }; - - let onError = () => { - this.$scope.isLoading = false; - this.$scope.submitInProgress=false; - this.$modalInstance.close(); // Close the dialog - }; - - // Submit to server - // Prevent from user pressing multiple times on submit. - if (this.$scope.submitInProgress===false) { - this.$scope.isLoading = true; - this.$scope.submitInProgress = true; - let comment:Models.AsdcComment = new Models.AsdcComment(); - comment.userRemarks = emailModalModel.email.message; - emailModalModel.data.component.changeLifecycleState(emailModalModel.data.stateUrl, comment).then(onSuccess, onError); - } - }; - - this.$scope.cancel = ():void => { - this.$modalInstance.dismiss(); - }; - - this.$scope.validateField = (field:any):boolean => { - if (field && field.$dirty && field.$invalid){ - return true; - } - return false; - }; - } - - - } -} diff --git a/catalog-ui/app/scripts/view-models/modals/email-modal/email-modal-view.html b/catalog-ui/app/scripts/view-models/modals/email-modal/email-modal-view.html deleted file mode 100644 index 82293a3091..0000000000 --- a/catalog-ui/app/scripts/view-models/modals/email-modal/email-modal-view.html +++ /dev/null @@ -1,79 +0,0 @@ - diff --git a/catalog-ui/app/scripts/view-models/modals/email-modal/email-modal.less b/catalog-ui/app/scripts/view-models/modals/email-modal/email-modal.less deleted file mode 100644 index b946a097cd..0000000000 --- a/catalog-ui/app/scripts/view-models/modals/email-modal/email-modal.less +++ /dev/null @@ -1,56 +0,0 @@ -.w-sdc-modal-email { - - .w-sdc-modal-body { - border-bottom: none; - } - - form.w-sdc-form{ - padding: 0; - - .i-sdc-form-item { - clear: both; - label { - min-height: 30px; - padding-top: 4px; - } - - .col-sm-10 { - padding-right: 0; - } - - } - - .w-sdc-modal-body-email { - border-style: solid; - border-width: 1px; - border-color: @color_e; - box-sizing: border-box; - width: 100%; - height: 127px; - } - - label {.m_14_m; text-align: left;} - input {.m_14_r;} - textarea {.m_14_r;} - /* I made the subject and to fields as input (for future use), but for now they look like labels: */ - input:disabled { - .bg_c; - border: none; - } - } - - .w-sdc-modal-action { - background-color: @main_color_p; - padding: 0 13px 0 0; - height: 90px; - line-height: 65px; - - button {width: 174px;} - } - - .w-sdc-form .i-sdc-form-item label.required::before { - position: absolute; - left: -13px; - } - -} diff --git a/catalog-ui/app/scripts/view-models/modals/error-modal/error-403-view.html b/catalog-ui/app/scripts/view-models/modals/error-modal/error-403-view.html deleted file mode 100644 index 185fcce461..0000000000 --- a/catalog-ui/app/scripts/view-models/modals/error-modal/error-403-view.html +++ /dev/null @@ -1,4 +0,0 @@ -
      -
      -
      -
      diff --git a/catalog-ui/app/scripts/view-models/modals/error-modal/error-view-model.ts b/catalog-ui/app/scripts/view-models/modals/error-modal/error-view-model.ts deleted file mode 100644 index b8b2bfbbe7..0000000000 --- a/catalog-ui/app/scripts/view-models/modals/error-modal/error-view-model.ts +++ /dev/null @@ -1,43 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.ViewModels { - 'use strict'; - - interface IErrorViewModelScope{ - mailtoJson: any; - } - - export class ErrorViewModel { - - static '$inject' = ['$scope', 'Sdc.Services.CookieService', '$window', '$filter']; - - constructor($scope:IErrorViewModelScope, cookieService:Services.CookieService, $window, $filter:ng.IFilterService){ - let adminEmail:string = $filter('translate')('ADMIN_EMAIL'); - let subjectPrefix:string = $filter('translate')('EMAIL_SUBJECT_PREFIX'); - let userDetails = cookieService.getFirstName() + ' '+cookieService.getLastName() + ' ('+cookieService.getUserId() + ')'; - let line = adminEmail+'?subject='+$window.encodeURIComponent(subjectPrefix+' '+userDetails); - $scope.mailtoJson = { - "mailto": line - }; - } - - } -} diff --git a/catalog-ui/app/scripts/view-models/modals/error-modal/error.less b/catalog-ui/app/scripts/view-models/modals/error-modal/error.less deleted file mode 100644 index 8297b5053d..0000000000 --- a/catalog-ui/app/scripts/view-models/modals/error-modal/error.less +++ /dev/null @@ -1,13 +0,0 @@ -.sdc-error-403-container { - .bg_n; - width: 700px; - height: 400px; - margin: auto; - margin-top: 196px; - - .w-sdc-error-403-text { - .q_11; - margin-top: 20px; - } - -} diff --git a/catalog-ui/app/scripts/view-models/modals/message-modal/message-base-modal-model.ts b/catalog-ui/app/scripts/view-models/modals/message-modal/message-base-modal-model.ts deleted file mode 100644 index 26df780d25..0000000000 --- a/catalog-ui/app/scripts/view-models/modals/message-modal/message-base-modal-model.ts +++ /dev/null @@ -1,64 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.ViewModels { - 'use strict'; - - export interface IMessageModalModel { - title: string; - message: string; - severity: Utils.Constants.SEVERITY; - } - - export interface IMessageModalViewModelScope extends ng.IScope { - footerButtons: Array; - messageModalModel: IMessageModalModel; - modalInstanceError:ng.ui.bootstrap.IModalServiceInstance; - ok(): void; - } - - export class MessageModalViewModel { - - constructor(private $baseScope:IMessageModalViewModelScope, - private $baseModalInstance:ng.ui.bootstrap.IModalServiceInstance, - private baseMessageModalModel:IMessageModalModel) { - - this.initScope(baseMessageModalModel); - } - - private initScope = (messageModalViewModel:IMessageModalModel):void => { - - this.$baseScope.messageModalModel = messageModalViewModel; - this.$baseScope.modalInstanceError = this.$baseModalInstance; - - this.$baseScope.ok = ():void => { - this.$baseModalInstance.close(); - }; - - this.$baseScope.footerButtons = [ - { - 'name': 'OK', - 'css': 'grey', - 'callback': this.$baseScope.ok - } - ]; - } - } -} diff --git a/catalog-ui/app/scripts/view-models/modals/message-modal/message-client-modal/client-message-modal-view-model.ts b/catalog-ui/app/scripts/view-models/modals/message-modal/message-client-modal/client-message-modal-view-model.ts deleted file mode 100644 index 82afe11fe4..0000000000 --- a/catalog-ui/app/scripts/view-models/modals/message-modal/message-client-modal/client-message-modal-view-model.ts +++ /dev/null @@ -1,43 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.ViewModels { - 'use strict'; - - export interface IClientMessageModalModel extends IMessageModalModel { - } - - export interface IClientMessageModalViewModelScope extends IMessageModalViewModelScope { - clientMessageModalModel: IClientMessageModalModel; - } - - export class ClientMessageModalViewModel extends MessageModalViewModel { - - static '$inject' = ['$scope', '$modalInstance', 'clientMessageModalModel']; - - constructor(private $scope:IClientMessageModalViewModelScope, - private $modalInstance:ng.ui.bootstrap.IModalServiceInstance, - private clientMessageModalModel:IClientMessageModalModel) { - - super($scope, $modalInstance, clientMessageModalModel); - } - - } -} diff --git a/catalog-ui/app/scripts/view-models/modals/message-modal/message-client-modal/client-message-modal-view.html b/catalog-ui/app/scripts/view-models/modals/message-modal/message-client-modal/client-message-modal-view.html deleted file mode 100644 index cfb0a35f69..0000000000 --- a/catalog-ui/app/scripts/view-models/modals/message-modal/message-client-modal/client-message-modal-view.html +++ /dev/null @@ -1,16 +0,0 @@ - - - -
      -
      -
      -
      - -
      - -
      diff --git a/catalog-ui/app/scripts/view-models/modals/message-modal/message-client-modal/client-message-modal.less b/catalog-ui/app/scripts/view-models/modals/message-modal/message-client-modal/client-message-modal.less deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/catalog-ui/app/scripts/view-models/modals/message-modal/message-server-modal/server-message-modal-view-model.ts b/catalog-ui/app/scripts/view-models/modals/message-modal/message-server-modal/server-message-modal-view-model.ts deleted file mode 100644 index f7a0dcfabf..0000000000 --- a/catalog-ui/app/scripts/view-models/modals/message-modal/message-server-modal/server-message-modal-view-model.ts +++ /dev/null @@ -1,45 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.ViewModels { - 'use strict'; - - export interface IServerMessageModalModel extends IMessageModalModel { - status: string; - messageId: string; - } - - export interface IServerMessageModalViewModelScope extends IMessageModalViewModelScope { - serverMessageModalModel: IServerMessageModalModel; - } - - export class ServerMessageModalViewModel extends MessageModalViewModel { - - static '$inject' = ['$scope', '$modalInstance', 'serverMessageModalModel']; - - constructor(private $scope:IServerMessageModalViewModelScope, - private $modalInstance:ng.ui.bootstrap.IModalServiceInstance, - private serverMessageModalModel:IServerMessageModalModel) { - - super($scope, $modalInstance, serverMessageModalModel); - } - - } -} diff --git a/catalog-ui/app/scripts/view-models/modals/message-modal/message-server-modal/server-message-modal-view.html b/catalog-ui/app/scripts/view-models/modals/message-modal/message-server-modal/server-message-modal-view.html deleted file mode 100644 index 294dc76c4c..0000000000 --- a/catalog-ui/app/scripts/view-models/modals/message-modal/message-server-modal/server-message-modal-view.html +++ /dev/null @@ -1,17 +0,0 @@ - - - -
      -
      -
      Error code: {{messageModalModel.messageId}}
      -
      Status code: {{messageModalModel.status}}
      -
      -
      -
      - -
      diff --git a/catalog-ui/app/scripts/view-models/modals/message-modal/message-server-modal/server-message-modal.less b/catalog-ui/app/scripts/view-models/modals/message-modal/message-server-modal/server-message-modal.less deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/catalog-ui/app/scripts/view-models/modals/onboarding-modal/onboarding-modal-view-model.ts b/catalog-ui/app/scripts/view-models/modals/onboarding-modal/onboarding-modal-view-model.ts deleted file mode 100644 index a6e85c4abc..0000000000 --- a/catalog-ui/app/scripts/view-models/modals/onboarding-modal/onboarding-modal-view-model.ts +++ /dev/null @@ -1,249 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.ViewModels { - 'use strict'; - import Resource = Sdc.Models.Components.Resource; - import ComponentFactory = Sdc.Utils.ComponentFactory; - - interface IOnboardingModalViewModelScope { - modalOnboarding: ng.ui.bootstrap.IModalServiceInstance; - componentsList: Array; - tableHeadersList: Array; - selectedComponent: Models.Components.Component; - componentFromServer: Models.Components.Component; - reverse: boolean; - sortBy: string; - searchBind: string; - okButtonText: string; - isCsarComponentExists: boolean; - user: Models.IUser; - isLoading: boolean; - - doSelectComponent(component: Models.Components.Component): void; - doUpdateCsar(): void; - doImportCsar(): void; - sort(sortBy: string): void; - downloadCsar(packageId: string): void; - } - - export class OnboardingModalViewModel { - - static '$inject' = [ - '$scope', - '$filter', - '$state', - 'sdcConfig', - '$modalInstance', - 'Sdc.Services.OnboardingService', - 'okButtonText', - 'currentCsarUUID', - 'Sdc.Services.CacheService', - 'FileUtils', - 'ComponentFactory', - 'ModalsHandler' - ]; - - constructor(private $scope: IOnboardingModalViewModelScope, - private $filter: ng.IFilterService, - private $state: any, - private sdcConfig: Models.IAppConfigurtaion, - private $modalInstance: ng.ui.bootstrap.IModalServiceInstance, - private onBoardingService: Sdc.Services.OnboardingService, - private okButtonText: string, - private currentCsarUUID: string, - private cacheService: Services.CacheService, - private fileUtils: Sdc.Utils.FileUtils, - private componentFactory: Utils.ComponentFactory, - private modalsHandler: Sdc.Utils.ModalsHandler) { - - this.init(); - } - - /** - * Called from controller constructor, this will call onboarding service to get list - * of "mini" components (empty components created from CSAR). - * The list is inserted to componentsList on $scope. - * And then call initScope method. - */ - private init = (): void => { - this.initOnboardingComponentsList(); - }; - - private initScope = (): void => { - - this.initSortedTableScope(); - this.initModalScope(); - this.$scope.sortBy = "name"; // Default sort by - this.$scope.user = this.cacheService.get('user'); - this.$scope.okButtonText = this.okButtonText; - - // Dismiss the modal and pass the "mini" component to workspace general page - this.$scope.doImportCsar = (): void => { - this.$modalInstance.dismiss(); - this.$state.go('workspace.general', { - type: Utils.Constants.ComponentType.RESOURCE.toLowerCase(), - componentCsar: this.$scope.selectedComponent - }); - }; - - this.$scope.doUpdateCsar = (): void => { - // In case user select on update the checkin and submit for testing buttons (in general page) should be disabled. - // to do that we need to pass to workspace.general state parameter to know to disable the buttons. - this.$modalInstance.close(); - // Change the component version to the CSAR version we want to update. - /*(this.$scope.componentFromServer).csarVersion = (this.$scope.selectedComponent).csarVersion; - let component:Models.Components.Component = this.componentFactory.createComponent(this.$scope.componentFromServer); - this.$state.go('workspace.general', {vspComponent: component, disableButtons: true });*/ - this.cacheService.set(Utils.Constants.CHANGE_COMPONENT_CSAR_VERSION_FLAG, (this.$scope.selectedComponent).csarVersion); - this.$state.go('workspace.general', { - id: this.$scope.componentFromServer.uniqueId, - type: this.$scope.componentFromServer.componentType.toLowerCase(), - disableButtons: true - }); - }; - - this.$scope.downloadCsar = (packageId: string): void => { - this.onBoardingService.downloadOnboardingCsar(packageId).then( - (file: any): void => { - if (file) { - this.fileUtils.downloadFile(file, packageId + '.zip'); - } - }, (): void => { - let data: Sdc.ViewModels.IServerMessageModalModel = { - title: 'Download error', - message: "Error downloading file", - severity: Utils.Constants.SEVERITY.ERROR, - messageId: "", - status: "" - }; - this.modalsHandler.openServerMessageModal(data); - } - ); - }; - - // When the user select a row, set the component as selectedComponent - this.$scope.doSelectComponent = (component: Models.Components.Component): void => { - - if (this.$scope.selectedComponent === component) { - // Collapse the item - this.$scope.selectedComponent = undefined; - return; - } - - this.$scope.isLoading = true; - this.$scope.componentFromServer = undefined; - this.$scope.selectedComponent = component; - - let onSuccess = (componentFromServer: Models.Components.Component): void => { - this.$scope.isLoading = false; - if (componentFromServer) { - this.$scope.componentFromServer = componentFromServer; - this.$scope.isCsarComponentExists = true; - } else { - this.$scope.componentFromServer = component; - this.$scope.isCsarComponentExists = false; - } - }; - - let onError = (): void => { - this.$scope.isLoading = false; - this.$scope.componentFromServer = component; - this.$scope.isCsarComponentExists = false; - }; - - this.onBoardingService.getComponentFromCsarUuid((component).csarUUID).then(onSuccess, onError); - }; - - }; - - private initSortedTableScope = (): void => { - this.$scope.tableHeadersList = [ - {title: 'Name', property: 'name'}, - {title: 'Vendor', property: 'vendorName'}, - {title: 'Category', property: 'categories'}, - {title: 'Version', property: 'csarVersion'}, - {title: '#', property: 'importAndUpdate'} - //{title: 'Date', property: 'componentDate'} - ]; - - this.$scope.sort = (sortBy: string): void => { - this.$scope.reverse = (this.$scope.sortBy === sortBy) ? !this.$scope.reverse : false; - this.$scope.sortBy = sortBy; - }; - }; - - private initModalScope = (): void => { - // Enable the modal directive to close - this.$scope.modalOnboarding = this.$modalInstance; - }; - - private initOnboardingComponentsList = (): void => { - let onSuccess = (onboardingResponse: Array): void => { - initMaxVersionOfItemsInList(onboardingResponse); - - if (this.currentCsarUUID) { - //this.$scope.componentsList = this.$filter('filter')(this.$scope.componentsList, {csarUUID: this.currentCsarUUID}); - this.$scope.componentsList = this.$filter('filter')(this.$scope.componentsList, - (input): boolean => { - return input.csarUUID === this.currentCsarUUID; - } - ); - } - this.initScope(); - }; - - let onError = (): void => { - console.log("Error getting onboarding list"); - this.initScope(); - }; - - let initMaxVersionOfItemsInList = (onboardingResponse: Array): void => { - // Get only the latest version of each item - this.$scope.componentsList = []; - - // Get all unique items from the list - let uniqueItems = _.uniqBy(onboardingResponse, 'packageId'); - - // Loop on all the items with unique packageId - _.each(uniqueItems, (item: any): void => { - // Find all the items that has same packageId - let ItemsFound: Array = _.filter(onboardingResponse, (inListItem: any): any => { - return inListItem.packageId === item.packageId; - }); - - // Loop on all the items with same packageId and find the max version. - let maxItem: any; - _.each(ItemsFound, (ItemFound: any): void => { - if (!maxItem) { - maxItem = ItemFound; - } else if (maxItem && parseInt(maxItem.csarVersion) < parseInt(ItemFound.csarVersion)) { - maxItem = ItemFound; - } - }); - this.$scope.componentsList.push(maxItem); - }); - }; - - this.onBoardingService.getOnboardingComponents().then(onSuccess, onError); - }; - - } -} diff --git a/catalog-ui/app/scripts/view-models/modals/onboarding-modal/onboarding-modal-view.html b/catalog-ui/app/scripts/view-models/modals/onboarding-modal/onboarding-modal-view.html deleted file mode 100644 index 246915212c..0000000000 --- a/catalog-ui/app/scripts/view-models/modals/onboarding-modal/onboarding-modal-view.html +++ /dev/null @@ -1,142 +0,0 @@ - - -
      -
      -

      Select one of the software product component below:

      -
      - - -
      - -
      -
      - - -
      -
      {{header.title}} - -
      -
      - - -
      - - - -
      - There are no software product component to display -
      - - -
      - - -
      - - {{component.name}} -
      - - -
      - {{component.vendorName}} -
      - - -
      - {{component.categories[0].name}} {{component.categories[0].subcategories[0].name}} -
      - - -
      - {{component.csarVersion}} -
      - - -
      - -
      - -
      - -
      -
      VSP Description:
      - {{component.description}} -
      - -
      -
      - -
      Name: {{componentFromServer.name}}
      -
      Lifecycle: {{componentFromServer.lifecycleState}}
      -
      Creator: {{componentFromServer.creatorFullName}}
      -
      -
      - -
      -
      - -
      UUID: {{componentFromServer.uuid}}
      -
      Version: {{componentFromServer.version}}
      -
      Modifier: {{componentFromServer.lastUpdaterFullName}}
      -
      - Designers cannot update a VSP if the VF is checked out by another user. -
      -
      - Designers cannot update a VSP if the VF is in Ready for testing state. -
      -
      -
      - -
      - -
      - -
      - - - - - -
      - - -
      - -
      -
      -
      -
      - - -
      diff --git a/catalog-ui/app/scripts/view-models/modals/onboarding-modal/onboarding-modal.less b/catalog-ui/app/scripts/view-models/modals/onboarding-modal/onboarding-modal.less deleted file mode 100644 index c745a86888..0000000000 --- a/catalog-ui/app/scripts/view-models/modals/onboarding-modal/onboarding-modal.less +++ /dev/null @@ -1,148 +0,0 @@ -.w-sdc-modal-onboarding { - - width: 100%; - display: inline-block; - - .general-info-button{ - position: relative; - top: -40px; - left: 86px; - float: left; - } - - .title-wrapper { - display: flex; - justify-content: space-between; - align-items: flex-end; - - .sub-title { - .m_14_r; - float:left; - } - } - - .w-sdc-classic-btn { - float: right; - margin-bottom: 10px; - } - - .table{ - height: 472px; - margin-bottom: 0; - } - - .table-container-flex { - margin-top: 10px; - - .table { - .body { - .data-row + div.item-opened { - word-wrap: break-word; - display: flex; - justify-content: space-between; - padding: 10px 0; - - .item-opened-description-title, - .item-opened-metadata-title { - .m_14_m; - } - - .item-opened-description, - .item-opened-metadata1, - .item-opened-metadata2, - .item-opened-metadata3 { - .th { .m_14_m; } - flex-basis: 0; - overflow: hidden; - padding: 5px 15px; - } - - .item-opened-description, - .item-opened-metadata3 { - border-right: 1px solid @main_color_o; - } - - .item-opened-metadata2 { - word-break: break-word; - .note { - color: @func_color_q; - } - } - - .item-opened-icon { - flex-basis: 0; - overflow: hidden; - padding: 5px 15px; - align-self: center; - } - - .item-opened-description {flex-grow: 25;} - .item-opened-metadata1 {flex-grow: 25;} - .item-opened-metadata2 {flex-grow: 30;} - .item-opened-metadata3 { - flex-grow: 10; - .info-button{ - float: right; - } - } - .item-opened-icon {flex-grow: 10;} - } - } - } - - .flex-item:nth-child(1) { - flex-grow: 25; - .hand; - span.table-arrow { - margin-right: 7px; - } - } - - .flex-item:nth-child(2) {flex-grow: 25;} - .flex-item:nth-child(3) {flex-grow: 30;} - .flex-item:nth-child(4) {flex-grow: 10; text-align: center; } - .flex-item:nth-child(5) {flex-grow: 10; } - - } - - .download-file-btn { - cursor: pointer; - margin-left: 4px; - } - - .refresh-file-btn, - .import-file-btn { - cursor: pointer; - margin-left: 20px; - } - - .top-search { - float: right; - position: relative; - - input.search-text { - .border-radius(2px); - width: 245px; - height: 32px; - line-height: 32px; - border: 1px solid @main_color_o; - margin: 0; - outline: none; - text-indent: 10px; - - &::-webkit-input-placeholder { font-style: italic; } /* Safari, Chrome and Opera */ - &:-moz-placeholder { font-style: italic; } /* Firefox 18- */ - &::-moz-placeholder { font-style: italic; } /* Firefox 19+ */ - &:-ms-input-placeholder { font-style: italic; } /* IE 10+ */ - &:-ms-input-placeholder { font-style: italic; } /* Edge */ - } - - .magnification { - position: absolute; - top: 10px; - right: 10px; - } - - } - -} diff --git a/catalog-ui/app/scripts/view-models/onboard-vendor/onboard-vendor-view-model.ts b/catalog-ui/app/scripts/view-models/onboard-vendor/onboard-vendor-view-model.ts deleted file mode 100644 index c8be2b7361..0000000000 --- a/catalog-ui/app/scripts/view-models/onboard-vendor/onboard-vendor-view-model.ts +++ /dev/null @@ -1,148 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.ViewModels { - 'use strict'; - - export class BreadcrumbsMenuItem { - key: string; - displayText: string; - } - - export class BreadcrumbsMenu { - selectedKey: string; - menuItems: Array; - } - - export class BreadcrumbsPath { - selectedKeys: Array; - } - - export class VendorData { - breadcrumbs: BreadcrumbsPath; - } - - export interface IOnboardVendorViewModelScope extends ng.IScope { - vendorData: VendorData; - onVendorEvent: Function; - topNavMenuModel: Array; - topNavRootMenu: Utils.MenuItemGroup; - user:Models.IUserProperties; - version:string; - } - - export class OnboardVendorViewModel { - static '$inject' = [ - '$scope', - '$q', - 'Sdc.Services.CacheService' - ]; - - private firstControlledTopNavMenu: Utils.MenuItemGroup; - - constructor( - private $scope: IOnboardVendorViewModelScope, - private $q: ng.IQService, - private cacheService:Services.CacheService - ) { - - this.$scope.vendorData = { - breadcrumbs: { - selectedKeys: [] - } - }; - - this.$scope.version = this.cacheService.get('version'); - - this.$scope.onVendorEvent = (eventName:string, data:any): void => { - switch (eventName) { - case 'breadcrumbsupdated': - this.handleBreadcrumbsUpdate(data); - break; - } - }; - - this.$scope.topNavMenuModel = []; - - this.$scope.user = this.cacheService.get('user'); - } - - updateBreadcrumbsPath = (selectedKeys: Array): ng.IPromise => { - let topNavMenuModel = this.$scope.topNavMenuModel; - let startIndex = topNavMenuModel.indexOf(this.firstControlledTopNavMenu); - if (startIndex === -1) { - startIndex = topNavMenuModel.length; - } - topNavMenuModel.splice(startIndex + selectedKeys.length); - this.$scope.vendorData = { - breadcrumbs: { selectedKeys: selectedKeys } - }; - - return this.$q.when(true); - }; - - handleBreadcrumbsUpdate(breadcrumbsMenus: Array): void { - let selectedKeys = []; - let topNavMenus = breadcrumbsMenus.map((breadcrumbMenu, breadcrumbIndex) => { - let topNavMenu = new Utils.MenuItemGroup(); - topNavMenu.menuItems = breadcrumbMenu.menuItems.map(menuItem => - new Utils.MenuItem( - menuItem.displayText, - this.updateBreadcrumbsPath, - null, - null, - [selectedKeys.concat([menuItem.key])] - ) - ); - topNavMenu.selectedIndex = _.findIndex( - breadcrumbMenu.menuItems, - menuItem => menuItem.key === breadcrumbMenu.selectedKey - ); - selectedKeys.push(breadcrumbMenu.selectedKey); - return topNavMenu; - }); - - let topNavMenuModel = this.$scope.topNavMenuModel; - let len = topNavMenuModel.length; - let startIndex = topNavMenuModel.indexOf(this.firstControlledTopNavMenu); - if (startIndex === -1) { - startIndex = len; - } - topNavMenuModel.splice(startIndex, len - startIndex); - topNavMenuModel.push.apply(topNavMenuModel, topNavMenus); - this.firstControlledTopNavMenu = topNavMenus[0]; - - if (startIndex === 1 && this.$scope.topNavRootMenu == null) { - let topNavRootMenu = topNavMenuModel[0]; - let onboardItem = topNavRootMenu.menuItems[topNavRootMenu.selectedIndex]; - let originalCallback = onboardItem.callback; - onboardItem.callback = (...args) => { - let ret = this.updateBreadcrumbsPath([]); - return originalCallback && originalCallback.apply(undefined, args) || ret; - }; - this.$scope.topNavRootMenu = topNavRootMenu; - } - - this.updateBreadcrumbsPath(selectedKeys); - } - } - - -} diff --git a/catalog-ui/app/scripts/view-models/onboard-vendor/onboard-vendor-view.html b/catalog-ui/app/scripts/view-models/onboard-vendor/onboard-vendor-view.html deleted file mode 100644 index 733e2d0cc0..0000000000 --- a/catalog-ui/app/scripts/view-models/onboard-vendor/onboard-vendor-view.html +++ /dev/null @@ -1,14 +0,0 @@ -
      - - - - -
      - -
      - - - -
      diff --git a/catalog-ui/app/scripts/view-models/onboard-vendor/onboard-vendor.less b/catalog-ui/app/scripts/view-models/onboard-vendor/onboard-vendor.less deleted file mode 100644 index 2b43bbb321..0000000000 --- a/catalog-ui/app/scripts/view-models/onboard-vendor/onboard-vendor.less +++ /dev/null @@ -1,303 +0,0 @@ -.sdc-catalog-container { - - .i-sdc-categories-list-item { - font-weight: normal; - } - - // Checkboxes - .i-sdc-designer-leftbar-section-content-ul { - padding: 0; - margin: 0; - - .i-sdc-catalog-subcategories-checkbox { - padding: 0 0 0 20px; - margin: 0; - - .i-sdc-catalog-grouping-checkbox { - padding: 0 0 0 20px; - margin: 0; - } - - } - - } - - .i-sdc-designer-leftbar-section-content-li { - &:last-child { - .i-sdc-categories-list-item { - margin: 0; - } - } - } - - .i-sdc-categories-list-item { - display: block; - //margin-bottom: 5px; - //padding-left: 15px; - //text-indent: -24px; - vertical-align: top; - font-weight: bold; - } - - .i-sdc-subcategories-list-item { - display: block; - //padding-left: 20px; - vertical-align: top; - font-weight: normal; - margin: 0; - //text-indent: -10px; - } - - /*Added by - Ikram */ - .i-sdc-product-input, - .i-sdc-product-select { - border: 1px solid @border_color_f; - min-height: 30px; - padding: 0; - width: 100%; - margin: 1px 0; - background-color: #F2F2F2; - outline: none; - - &:disabled { - .disabled; - } - optgroup{ - color: @color_u; - option{ - color: @color_b; - } - } - } - - .i-sdc-categories-list-item-icon { - display: inline-block; - float: right; - position: relative; - right: -8px; - top: 6px; - } - - .i-sdc-categories-list-item { - margin-top: 7px; - &.NOT_CERTIFIED_CHECKOUT, - &.NOT_CERTIFIED_CHECKIN { - .i-sdc-categories-list-item-icon { - background: url('../../../styles/images/sprites/sprite-global-old.png') no-repeat -53px -2889px; - width: 14px; - height: 14px; - - } - } - - &.CERTIFIED { - .i-sdc-categories-list-item-icon { - background: url('../../../styles/images/sprites/sprite-global-old.png') no-repeat -53px -3034px; - width: 14px; - height: 16px; - } - } - - &.READY_FOR_CERTIFICATION { - .i-sdc-categories-list-item-icon { - background: url('../../../styles/images/sprites/sprite-global-old.png') no-repeat -53px -2985px; - width: 14px; - height: 16px; - } - } - - &.CERTIFICATION_IN_PROGRESS { - .i-sdc-categories-list-item-icon { - background: url('../../../styles/images/sprites/sprite-global-old.png') no-repeat -53px -2934px; - width: 14px; - height: 16px; - } - } - - &.DISTRIBUTED, - &.TBD { - .i-sdc-categories-list-item-icon { - background: url('../../../styles/images/sprites/sprite-global-old.png') no-repeat -43px -3087px; - width: 24px; - height: 14px; - - } - } - } - - .i-sdc-categories-list-input { - margin: 8px; - - } - - .i-sdc-subcategories-list-input { - - margin: 8px; - } - .i-sdc-subcategories-list-input-container { - margin: 0px 0px 0px 20px; - padding: 2px; - } - - .w-sdc-header-catalog-search-container { - display: table; - padding: 21px 0; - position: relative; - - .w-sdc-designer-leftbar-search-input { - color: #000; - width: 300px; - } - - // .magnification { - // .sprite; - // .sprite.magnification-glass; - // .hand; - // position: absolute; - // top: 40px; - // right: 42px; - // } - } - - .w-sdc-catalog-main { - padding: 10px 12px; - } - .w-sdc-dashboard-catalog-header { - .b_9; - display: inline-block; - font-style: italic; - font-weight: bold; - padding-left: 10px; - } - - .w-sdc-dashboard-catalog-header-order { - .b_9; - font-weight: 800; - } - - .w-sdc-dashboard-catalog-sort { - .b_9; - font-weight: bold; - white-space:pre; - &:hover{ - .hand; - text-decoration: none; - .a_9; - } - &.blue { - .a_9; - } - } - - .w-sdc-catalog-sort-arrow{ - display: inline-block; - &.up{ - .b_9; - width: 0; - height: 0; - border-left: 5px solid transparent; - border-right: 5px solid transparent; - border-bottom: 5px solid ; - } - &.down{ - .b_9; - width: 0; - height: 0; - border-left: 5px solid transparent; - border-right: 5px solid transparent; - border-top: 5px solid; - } - } - - - - - .w-sdc-dashboard-catalog-header-right{ - float: right; - display: inline-block; - padding-right:34px; - } - - .w-sdc-header-catalog-search-input { - width: 420px; - display: table-cell; - padding: 0 25px 1px 10px; - border: 1px solid #bcbcbc; - .border-radius(10px); - height: 30px; - margin: 10px 30px; - outline: none; - } - - .sdc-catalog-type-filter-container { - margin-top: -1px; - } - - .i-sdc-designer-leftbar-section-title { - text-transform: uppercase; - .l_14_m; - line-height: 30px; - } - - .i-sdc-designer-leftbar-section-title-icon { - .hand; - .tlv-sprite; - .footer-close; - transition: .3s all; - margin-top: -4px; - } - - .i-sdc-designer-leftbar-section-title-text { - margin-left: 20px; - } - - .seperator-left, - .seperator-right { - border-right: solid 1px @color_m; - display: table-cell; - width: 2px; - } - - // Rotate catalog left side arrows - .i-sdc-designer-leftbar-section-title.expanded .i-sdc-designer-leftbar-section-title-icon { - transform: rotate(180deg); - } - - // Transform catalog left side sections - .i-sdc-designer-leftbar-section-title + .i-sdc-designer-leftbar-section-content { - max-height: 0px; - margin: 0 auto; - transition: all .3s; - overflow: hidden; - padding: 0 10px 0 18px; - } - - .i-sdc-designer-leftbar-section-title.expanded + .i-sdc-designer-leftbar-section-content { - max-height: 9999px; - margin: 0 auto 1px; - transition: all .3s; - padding: 10px 18px 10px 18px; - overflow: hidden; - } - -} - -.w-sdc-search-icon{ - position: absolute; - right: 40px; - top: 40px; - &.leftbar{ - top: 19px; - right: 18px; - } - &.magnification { - .sprite; - .sprite.magnification-glass; - .hand; - } - &.cancel { - .sprite; - .sprite.clear-text; - .hand; - } -} diff --git a/catalog-ui/app/scripts/view-models/preloading/preloading-view.html b/catalog-ui/app/scripts/view-models/preloading/preloading-view.html deleted file mode 100644 index c0512dd9ec..0000000000 --- a/catalog-ui/app/scripts/view-models/preloading/preloading-view.html +++ /dev/null @@ -1,9 +0,0 @@ -
      -

      -

      - -
      -
      Loading...
      -
      - -
      diff --git a/catalog-ui/app/scripts/view-models/preloading/preloading-view.less b/catalog-ui/app/scripts/view-models/preloading/preloading-view.less deleted file mode 100644 index b02ea54621..0000000000 --- a/catalog-ui/app/scripts/view-models/preloading/preloading-view.less +++ /dev/null @@ -1,107 +0,0 @@ -/* -.sdc-loading-page { - - background-color: @main_color_l; - width: 100%; - height: 100%; - - display: flex; - align-items: center; - justify-content: center; - flex-direction: column; - - h1 { - .c_5; - text-align: center; - } - - p { - display: block; - .e_4; - } - - .caption1, .caption2 { - visibility: hidden; - } - - .load-container-wrapper { - position: relative; - - .load-container { - - @background_color: #000000; - - .loader, - .loader:before, - .loader:after { - border-radius: 50%; - } - .loader:before, - .loader:after { - position: absolute; - content: ''; - } - .loader:before { - width: 5.2em; - height: 10.2em; - background: @background_color; - border-radius: 10.2em 0 0 10.2em; - top: -0.1em; - left: -0.1em; - -webkit-transform-origin: 5.2em 5.1em; - transform-origin: 5.2em 5.1em; - -webkit-animation: load2 2s infinite ease 1.5s; - animation: load2 2s infinite ease 1.5s; - } - .loader { - color: #ffffff; - font-size: 11px; - text-indent: -99999em; - margin: 0 auto; - /!*margin: 55px auto;*!/ - position: relative; - width: 10em; - height: 10em; - box-shadow: inset 0 0 0 1em; - -webkit-transform: translateZ(0); - -ms-transform: translateZ(0); - transform: translateZ(0); - } - .loader:after { - width: 5.2em; - height: 10.2em; - background: @background_color; - border-radius: 0 10.2em 10.2em 0; - top: -0.1em; - left: 5.1em; - -webkit-transform-origin: 0px 5.1em; - transform-origin: 0px 5.1em; - -webkit-animation: load2 2s infinite ease; - animation: load2 2s infinite ease; - } - @-webkit-keyframes load2 { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 100% { - -webkit-transform: rotate(360deg); - transform: rotate(360deg); - } - } - @keyframes load2 { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 100% { - -webkit-transform: rotate(360deg); - transform: rotate(360deg); - } - } - } - - } - -} -*/ diff --git a/catalog-ui/app/scripts/view-models/preloading/preloading-view.ts b/catalog-ui/app/scripts/view-models/preloading/preloading-view.ts deleted file mode 100644 index 7127b70e3c..0000000000 --- a/catalog-ui/app/scripts/view-models/preloading/preloading-view.ts +++ /dev/null @@ -1,47 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -module Sdc.ViewModels { - 'use strict'; - - interface IPreLoadingViewScope { - startZoomIn: boolean; - } - - export class PreLoadingViewModel { - - static '$inject' = ['$scope']; - constructor(private $scope:IPreLoadingViewScope){ - this.init($scope); - } - - private init = ($scope:IPreLoadingViewScope):void => { - this.animate($('.caption1'),'fadeInUp',400); - this.animate($('.caption2'),'fadeInUp',800); - }; - - private animate = (element:any, animation:string, when:number):void => { - window.setTimeout(()=>{ - element.addClass("animated " + animation); - element[0].style="visibility: visible;"; - },when); - }; - - } -} diff --git a/catalog-ui/app/scripts/view-models/support/support-view-model.ts b/catalog-ui/app/scripts/view-models/support/support-view-model.ts deleted file mode 100644 index 2142cffdda..0000000000 --- a/catalog-ui/app/scripts/view-models/support/support-view-model.ts +++ /dev/null @@ -1,38 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// - -module Sdc.ViewModels { - 'use strict'; - - interface ISupportViewModelScope { - version:string; - } - - export class SupportViewModel{ - - static '$inject' = ['$scope','Sdc.Services.CacheService']; - constructor(private $scope:ISupportViewModelScope, - private cacheService:Services.CacheService){ - this.$scope.version = this.cacheService.get('version'); - } - - } -} diff --git a/catalog-ui/app/scripts/view-models/support/support-view.html b/catalog-ui/app/scripts/view-models/support/support-view.html deleted file mode 100644 index 0e6d09ddd7..0000000000 --- a/catalog-ui/app/scripts/view-models/support/support-view.html +++ /dev/null @@ -1,33 +0,0 @@ -
      - -
      - -
      Support
      - -
      -
      -
      -
      -
      In Design ({{numOfCheckOutEntities+numOfCheckInEntities}})
      -
      Checked Out ({{numOfCheckOutEntities}})
      -
      Checked In ({{numOfCheckInEntities}})
      -
      -
      -
      Completed Design ({{numOfReadyForCertificationEntities+numOfCertificationInProgressEntities+numOfCertifiedEntities}})
      -
      Ready For Certification ({{numOfReadyForCertificationEntities}})
      -
      Certification In Progress ({{numOfCertificationInProgressEntities}})
      -
      Certified ({{numOfCertifiedEntities}})
      -
      -
      -
      Catalog
      -
      Support
      -
      -
      - - -
      -
      diff --git a/catalog-ui/app/scripts/view-models/support/support.less b/catalog-ui/app/scripts/view-models/support/support.less deleted file mode 100644 index 8159e38320..0000000000 --- a/catalog-ui/app/scripts/view-models/support/support.less +++ /dev/null @@ -1,8 +0,0 @@ -.w-sdc-left-sidebar-in-progress, -.w-sdc-left-sidebar-following { - .b_7; -} - -.w-sdc-left-sidebar-following { - padding: 13px 0; -} diff --git a/catalog-ui/app/scripts/view-models/tabs/general-tab.less b/catalog-ui/app/scripts/view-models/tabs/general-tab.less deleted file mode 100644 index a8b4f5b9be..0000000000 --- a/catalog-ui/app/scripts/view-models/tabs/general-tab.less +++ /dev/null @@ -1,131 +0,0 @@ -.sdc-general-tab { - - display: flex; - min-height: 100%; - flex-flow: column; - - .sdc-edit-icon { - .sprite; - .e-sdc-small-icon-pencil; - } - .sdc-general-tab-title { - - .f-color.a; - .f-type._14_m; - padding: 0px 0px 15px 0px; - margin: 0px 20px 0px 20px; - border-bottom: 1px solid @main_color_o; - } - - .sdc-general-tab-sub-title { - - .f-color.a; - .f-type._14_m; - padding: 15px 20px 15px 20px; - - } - - //scrollbar - .general-tab-scrollbar-container { - - .perfect-scrollbar; - width: 100%; - } - - //plus minus expand collapse - .general-tab-expand-collapse { - - &.expanded { - .expand-collapse-title { - .expand-collapse-title-icon { - .expand-collapse-minus-icon; - - &:hover { - .expand-collapse-minus-icon.hover; - } - } - } - } - - .expand-collapse-title { - - padding: 8px 20px 4px 20px; - cursor: pointer; - &:hover { - background-color: @main_color_o; - } - - .expand-collapse-title-icon { - .hand; - .sprite-new; - .expand-collapse-plus-icon; - &:hover { - .expand-collapse-plus-icon.hover; - } - - } - .expand-collapse-title-text { - max-width: 225px; - display: inline-block; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - padding-left: 10px; - line-height: 15px; - } - } - .selected { - background-color: @main_color_a; - .f-color.p; - } - - } - - .expand-collapse-sub-title { - max-width: 190px; - display: inline-block; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - padding-left: 43px; - - } - - //resizable view - .resizable-container { - - flex: 1 1 auto; - display: flex; - flex-direction: column; - height: 90%; - - .resizable-section { - min-height: 50px; - flex: 1; - display: flex; - flex-flow: column; - &.resizable { - flex: 0 0 300px; - } - } - - //this is the resizable icon custom design for the angular resizable directive - .rg-top { - span { - margin-top: -5px; - &:before { - border-top: 1px dotted @main_color_m; - content: ''; - display: inline-block; - width: 39px; - height: 6px; - } - - border-top: 1px dotted @main_color_m; - border-bottom: 1px dotted @main_color_m; - width: 39px; - height: 4px; - } - } - } -} diff --git a/catalog-ui/app/scripts/view-models/tabs/hierarchy/hierarchy-view-model.ts b/catalog-ui/app/scripts/view-models/tabs/hierarchy/hierarchy-view-model.ts deleted file mode 100644 index bd59199eb4..0000000000 --- a/catalog-ui/app/scripts/view-models/tabs/hierarchy/hierarchy-view-model.ts +++ /dev/null @@ -1,99 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/** - * Created by obarda on 7/28/2016. - */ -/** - * Created by obarda on 4/4/2016. - */ -/// -module Sdc.ViewModels { - 'use strict'; - import Module = Sdc.Models.Module; - - export interface IHierarchyScope extends ng.IScope { - component:Models.Components.Component; - selectedIndex: number; - selectedModule:Models.DisplayModule; - singleTab:Models.Tab; - templateUrl:string; - isLoading:boolean; - - onModuleSelected(moduleId:string, selectedIndex: number):void; - onModuleNameChanged(module:Models.DisplayModule):void; - updateHeatName():void; - } - - export class HierarchyViewModel { - - static '$inject' = [ - '$scope' - ]; - - constructor(private $scope:IHierarchyScope) { - this.$scope.component = this.$scope.singleTab.data; - this.$scope.isLoading = false; - this.initScopeMethods(); - } - - private initScopeMethods():void { - - this.$scope.templateUrl = '/app/scripts/view-models/tabs/hierarchy/edit-module-name-popover.html'; - this.$scope.onModuleSelected = (moduleId:string, selectedIndex: number):void => { - - let onSuccess = (module:Models.DisplayModule) => { - console.log("Module Loaded: ", module); - this.$scope.selectedModule = module; - this.$scope.isLoading = false; - }; - - let onFailed = () => { - this.$scope.isLoading = false; - }; - - this.$scope.selectedIndex = selectedIndex; - if( !this.$scope.selectedModule || (this.$scope.selectedModule && this.$scope.selectedModule.uniqueId != moduleId)) { - this.$scope.isLoading = true; - this.$scope.component.getModuleForDisplay(moduleId).then(onSuccess, onFailed); - } - }; - - this.$scope.updateHeatName = () => { - this.$scope.isLoading = true; - - let originalName:string = this.$scope.selectedModule.name; - - let onSuccess = (module:Models.Module) => { - console.log("Module name updated:", module.name); - this.$scope.selectedModule.name = module.name; - this.$scope.isLoading = false; - }; - - let onFailed = () => { - this.$scope.isLoading = false; - this.$scope.selectedModule.name = originalName; - }; - - this.$scope.selectedModule.updateName(); - this.$scope.component.updateGroupMetadata(new Models.DisplayModule(this.$scope.selectedModule)).then(onSuccess, onFailed); - }; - } - } -} diff --git a/catalog-ui/app/scripts/view-models/tabs/hierarchy/hierarchy-view.html b/catalog-ui/app/scripts/view-models/tabs/hierarchy/hierarchy-view.html deleted file mode 100644 index 971105c191..0000000000 --- a/catalog-ui/app/scripts/view-models/tabs/hierarchy/hierarchy-view.html +++ /dev/null @@ -1,57 +0,0 @@ -
      - -
      -
      {{component.name}}
      - -
      -
      - - - -
      -
      - - -
      -
      - -
      -
      -
      {{memberName}}
      -
      -
      -
      -
      - -
      - -
      -
      -
      {{selectedModule.name}}
      -
      - -
      -
      -
      Module ID: {{selectedModule.groupUUID}}
      -
      Invariant UUID: {{selectedModule.invariantUUID}}
      -
      Version: {{selectedModule.version}}
      -
      IsBase: {{selectedModule.isBase}}
      - -
      -
      -
      -
      {{artifact.artifactName}}
      -
      UUID: {{artifact.artifactUUID}}
      -
      Version: {{artifact.artifactVersion}}
      -
      -
      -
      -
      -
      -
      diff --git a/catalog-ui/app/scripts/view-models/tabs/hierarchy/hierarchy.less b/catalog-ui/app/scripts/view-models/tabs/hierarchy/hierarchy.less deleted file mode 100644 index 5e8572678d..0000000000 --- a/catalog-ui/app/scripts/view-models/tabs/hierarchy/hierarchy.less +++ /dev/null @@ -1,71 +0,0 @@ -.hierarchy-tab{ - - .hierarchy-module-list-container{ - padding: 0px 20px 0px 20px; - } - .module-data-container{ - - width: 100%; - height: 100%; - background-color: #e6f6fb; - border: 1px solid #009fdb; - border-top: 4px solid #009fdb; - box-shadow: 0.3px 1px 2px rgba(24, 24, 25, 0.32); - - .module-data { - - .selectable; - .module-name { - .f-type._14_m; - width: 87%; - } - .f-type._14_r; - .f-color.a; - padding: 10px 0px 10px 0px; - margin: 0px 20px 0px 20px; - border-bottom: 1px solid rgba(0, 159, 219, 0.6); - } - - .artifact-data{ - .selectable; - .f-type._12_r; - .f-color.m; - - padding: 10px 0px 10px 0px; - margin: 0px 20px 0px 20px; - border-bottom: 1px solid rgba(0, 159, 219, 0.6); - .artifact-name { - .f-type._14_r; - font-weight: bold; - } - } - - .module-text-overflow { - max-width: 240px; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - display: inline-block; - } - } - - - .hierarchy-module-member-list { - overflow: hidden; - } - - .edit-name-container { - float: right; - border-left: 1px solid #5cc1e7; - height: 20px; - width: 12%; - - .sdc-edit-icon { - float: right; - cursor: pointer; - position: relative; - top: 4px; - right: 5px; - } - } -} diff --git a/catalog-ui/app/scripts/view-models/tutorial-end/tutorial-end.html b/catalog-ui/app/scripts/view-models/tutorial-end/tutorial-end.html deleted file mode 100644 index 6e478fc471..0000000000 --- a/catalog-ui/app/scripts/view-models/tutorial-end/tutorial-end.html +++ /dev/null @@ -1,10 +0,0 @@ -
      - -

      -

      -
      - - -
      -
      -
      diff --git a/catalog-ui/app/scripts/view-models/tutorial-end/tutorial-end.less b/catalog-ui/app/scripts/view-models/tutorial-end/tutorial-end.less deleted file mode 100644 index 71648a4f86..0000000000 --- a/catalog-ui/app/scripts/view-models/tutorial-end/tutorial-end.less +++ /dev/null @@ -1,41 +0,0 @@ -.sdc-tutorial-end-page { - - .bg_s; - width: 100%; - height: 100%; - position: absolute; - top: 0; - left: 0; - z-index: 999; - .opacity(0.8); - display: flex; - align-items: center; - - background-image: url('../../../styles/images/welcome.png'); - background-repeat: no-repeat; - background-position: bottom left; - - .sdc-tutorial-end-page-main { - width: 600px; - height: 400px; - margin: 100px auto 100px auto; - padding: 80px; - } - - h2 { - .t_15; - margin: 0; - } - - .sdc-tutorial-end-page-description1 { - .c_2; - .opacity(0.8); - margin-top: 10px; - line-height: 22px; - } - - .w-sdc-btn-blue { - margin: 40px 10px 0 0; - } - -} diff --git a/catalog-ui/app/scripts/view-models/tutorial-end/tutorial-end.ts b/catalog-ui/app/scripts/view-models/tutorial-end/tutorial-end.ts deleted file mode 100644 index 411d3f8d24..0000000000 --- a/catalog-ui/app/scripts/view-models/tutorial-end/tutorial-end.ts +++ /dev/null @@ -1,42 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.ViewModels { - 'use strict'; - - interface ITutorialEndViewModelScope extends ng.IScope {} - - export class TutorialEndViewModel { - - static '$inject' = [ - '$scope' - ]; - constructor( - private $scope:ITutorialEndViewModelScope - ){ - this.init(); - } - - private init = ():void => { - - } - - } -} diff --git a/catalog-ui/app/scripts/view-models/welcome/slide0.html b/catalog-ui/app/scripts/view-models/welcome/slide0.html deleted file mode 100644 index 48d37215a4..0000000000 --- a/catalog-ui/app/scripts/view-models/welcome/slide0.html +++ /dev/null @@ -1,50 +0,0 @@ -
      -
      -
      - -
      - -
      -
      - -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - -
      -
      -
      diff --git a/catalog-ui/app/scripts/view-models/welcome/slide1.html b/catalog-ui/app/scripts/view-models/welcome/slide1.html deleted file mode 100644 index 9252026a6b..0000000000 --- a/catalog-ui/app/scripts/view-models/welcome/slide1.html +++ /dev/null @@ -1,34 +0,0 @@ -
      -
      -
      - - -
      - - - -
      -
      - - - -

      Welcome to SDC

      - -
      -
      -
      diff --git a/catalog-ui/app/scripts/view-models/welcome/slide2.html b/catalog-ui/app/scripts/view-models/welcome/slide2.html deleted file mode 100644 index 4329bf462d..0000000000 --- a/catalog-ui/app/scripts/view-models/welcome/slide2.html +++ /dev/null @@ -1,26 +0,0 @@ -
      -
      -
      -
      - Innovate
      - network- design
      - platform
      -
      -
      -

      - Adapt swiftly to the constant demands placed on
      networks by ongoing technological advances. -

      -

      - Using ASDC’s innovative network-design platform,
      quickly and easily create and share software -
      - components. -

      -
      -
      -
      - 01 -
      -
      -
      -
      -
      diff --git a/catalog-ui/app/scripts/view-models/welcome/slide3.html b/catalog-ui/app/scripts/view-models/welcome/slide3.html deleted file mode 100644 index dd5448beac..0000000000 --- a/catalog-ui/app/scripts/view-models/welcome/slide3.html +++ /dev/null @@ -1,27 +0,0 @@ -
      -
      - -
      -
      - Enhance
      - and extend -
      -
      -

      - Blend, build and arrange resources and services in the
      designer workspace. -

      -

      - Let your creativity lead the way to any number of
      network solutions. -

      -

      - Then simply click on elements to customize and refine
      their specific properties to match your needs. -

      -
      -
      -
      - 02 -
      -
      -
      -
      -
      diff --git a/catalog-ui/app/scripts/view-models/welcome/slide4.html b/catalog-ui/app/scripts/view-models/welcome/slide4.html deleted file mode 100644 index 1428ce5375..0000000000 --- a/catalog-ui/app/scripts/view-models/welcome/slide4.html +++ /dev/null @@ -1,29 +0,0 @@ -
      -
      -
      -
      - Share
      - and Collaborate -
      -
      -

      - Graphically arranged, the Catalog is an easily
      searchable collection of resources, services and -
      products that provides you with a variety of
      network elements. -

      -

      - Benefit from these assets by using them as
      building blocks to form any number of network -
      solutions. -

      -

      - After being certified for release, share and
      collaborate with others as your solution is -
      automatically included in the catalog. -

      -
      -
      -
      - 03 -
      -
      -
      -
      -
      diff --git a/catalog-ui/app/scripts/view-models/welcome/slide5.html b/catalog-ui/app/scripts/view-models/welcome/slide5.html deleted file mode 100644 index 913573c8fc..0000000000 --- a/catalog-ui/app/scripts/view-models/welcome/slide5.html +++ /dev/null @@ -1,27 +0,0 @@ -
      -
      -
      -
      - Fast, efficient
      - and reliable -
      -
      -

      - ASDC is a platform built around a simple error-free -
      process for resource and service design and distribution. -
      -
      An integrated certification process makes ASDC a safe -
      and reliable environment to experiment, review and test -
      your work. -
      -
      Once approved your solution is ready to be used in -
      the real-world. -

      - -
      - -
      -
      - -
      -
      diff --git a/catalog-ui/app/scripts/view-models/welcome/slide6.html b/catalog-ui/app/scripts/view-models/welcome/slide6.html deleted file mode 100644 index 22006f7f82..0000000000 --- a/catalog-ui/app/scripts/view-models/welcome/slide6.html +++ /dev/null @@ -1,26 +0,0 @@ -
      -
      - -
      -
      - -
      ASDC
      -
      - jump starting your network solutions. -
      -
      - Home -
      -
      - - - -
      -
      diff --git a/catalog-ui/app/scripts/view-models/welcome/welcome-steps-controller.ts b/catalog-ui/app/scripts/view-models/welcome/welcome-steps-controller.ts deleted file mode 100644 index 816afcf2d2..0000000000 --- a/catalog-ui/app/scripts/view-models/welcome/welcome-steps-controller.ts +++ /dev/null @@ -1,74 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.ViewModels { - 'use strict'; - - export interface IWelcomeStepsController { - video_mp4: string; - video_ogg: string; - onPlayVideo: Function; - } - - export class WelcomeStepsControllerViewModel { - - static '$inject' = [ - '$scope', - '$sce', - 'sdcConfig', - '$state', - '$filter' - ]; - - constructor( - private $scope:IWelcomeStepsController, - private $sce:any, - private sdcConfig: Models.IAppConfigurtaion, - private $state:ng.ui.IStateService, - private $filter:ng.IFilterService - ){ - this.init(); - this.initScope(); - } - - private init = ():void => { - - }; - - private initScope = ():void => { - - this.$scope.onPlayVideo = ():void => { - //console.log("onPlayVideo"); - $("#sdc-page-scroller").removeClass("animated fadeIn"); - $("#sdc-page-scroller").addClass("animated fadeOut"); - window.setTimeout(()=>{$("#sdc-page-scroller").css("display","none");},500); - - $("#sdc-welcome-video-wrapper").removeClass("animated fadeOut"); - $("#sdc-welcome-video-wrapper").addClass("animated fadeIn"); - window.setTimeout(()=>{$("#sdc-welcome-video-wrapper").css("display","block");},0); - - let videoElement:any = $("#asdc-welcome-video")[0]; - videoElement.play(); - }; - - }; - - } -} diff --git a/catalog-ui/app/scripts/view-models/welcome/welcome-view.html b/catalog-ui/app/scripts/view-models/welcome/welcome-view.html deleted file mode 100644 index ba41e88a4e..0000000000 --- a/catalog-ui/app/scripts/view-models/welcome/welcome-view.html +++ /dev/null @@ -1,22 +0,0 @@ -
      - - - -
      Welcome to SDC
      - - -
      diff --git a/catalog-ui/app/scripts/view-models/welcome/welcome-view.ts b/catalog-ui/app/scripts/view-models/welcome/welcome-view.ts deleted file mode 100644 index 0a0c923481..0000000000 --- a/catalog-ui/app/scripts/view-models/welcome/welcome-view.ts +++ /dev/null @@ -1,267 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.ViewModels { - 'use strict'; - - export interface IWelcomeViewMode { - slides:Array; - onCloseButton():void; - onCloseVideoButton():void; - - video_mp4: string; - video_ogg: string; - } - - export class WelcomeViewModel { - - firstLoad:boolean = true; - alreadyAnimated:Array = []; - - static '$inject' = [ - '$scope', - '$sce', - 'sdcConfig', - '$state', - '$filter' - ]; - - constructor( - private $scope:IWelcomeViewMode, - private $sce:any, - private sdcConfig: Models.IAppConfigurtaion, - private $state:ng.ui.IStateService, - private $filter:ng.IFilterService - ){ - /*this.init(); - this.initScope(); - window.setTimeout(():void => { - this.loadImages(():void=> { - window.setTimeout(():void =>{ - $(".sdc-welcome-new-page").addClass("animated fadeIn"); - this.animateGeneral(); - this.animate1(); - },1000); - }); - },0);*/ - } - - private initScope = ():void => { - - this.$scope.onCloseButton = ():void => { - //console.log("onCloseButton"); - this.$state.go("dashboard", {}); - }; - - this.$scope.onCloseVideoButton = ():void => { - //console.log("onCloseVideoButton"); - $("#sdc-page-scroller").removeClass("animated fadeOut"); - $("#sdc-page-scroller").addClass("animated fadeIn"); - window.setTimeout(()=>{$("#sdc-page-scroller").css("display","block");},0); - - $("#sdc-welcome-video-wrapper").removeClass("animated fadeIn"); - $("#sdc-welcome-video-wrapper").addClass("animated fadeOut"); - window.setTimeout(()=>{$("#sdc-welcome-video-wrapper").css("display","none");},500); - - let videoElement:any = $("#asdc-welcome-video")[0]; - videoElement.pause(); - }; - - let url: string = this.sdcConfig.api.welcome_page_video_url; - - this.$scope.video_mp4 = this.$sce.trustAsResourceUrl(url + ".mp4"); - this.$scope.video_ogg = this.$sce.trustAsResourceUrl(url + ".ogg"); - - }; - - private init = ():void => { - let viewModelsHtmlBasePath:string = '/app/scripts/view-models/'; - this.$scope.slides = [ - {"url": viewModelsHtmlBasePath + 'welcome/slide0.html', "id": "slide-0", "index": 0, "callback": () => {this.animate0();}}, - {"url": viewModelsHtmlBasePath + 'welcome/slide1.html', "id": "slide-1", "index": 1, "callback": () => {}}, - {"url": viewModelsHtmlBasePath + 'welcome/slide2.html', "id": "slide-2", "index": 2, "callback": () => {this.animate2();}}, - {"url": viewModelsHtmlBasePath + 'welcome/slide3.html', "id": "slide-3", "index": 3, "callback": () => {this.animate3();}}, - {"url": viewModelsHtmlBasePath + 'welcome/slide4.html', "id": "slide-4", "index": 4, "callback": () => {this.animate4();}}, - {"url": viewModelsHtmlBasePath + 'welcome/slide5.html', "id": "slide-5", "index": 5, "callback": () => {this.animate5();}}, - {"url": viewModelsHtmlBasePath + 'welcome/slide6.html', "id": "slide-6", "index": 6, "callback": () => {this.animate6();}} - ]; - - $('body').keyup((e):void=> { - if (e.keyCode == 27) { // escape key maps to keycode `27` - this.$state.go('dashboard'); - } - }); - }; - - private animateGeneral = ():void => { - //console.log("animateGeneral"); - - /*// Animate the right navigation - if (this.firstLoad===true) { - //TODO: Israel - //TweenLite.from('.page-nav', 2, {x: "100px", delay: 2}); - } - */ - - this.firstLoad = false; - }; - - /*private loadImages = (callback: Function):void => { - let src = $('#slide-1 .asdc-welcome-frame').css('background-image'); - let url = src.match(/\((.*?)\)/)[1].replace(/('|")/g,''); - - let img = new Image(); - img.onload = function() { - callback(); - //alert('image loaded'); - }; - img.src = url; - /!*if (img.complete){ - callback; - }*!/ - };*/ - - private animate = (element:any, animation:string, when:number):void => { - window.setTimeout(()=>{ - element.addClass("animated " + animation); - if (element[0]) { - element[0].style = "visibility: visible;"; - } - },when); - }; - - private hide = (element:any, animation:string, animationToHide:string, when:number):void => { - element.addClass("animated " + animation); - element[0].style="visibility: hidden;"; - }; - - private animate0 = ():void => { - if (this.alreadyAnimated.indexOf(0)!==-1){ - return; - } else { - this.alreadyAnimated.push(0); - } - //console.log("slide 0 - animate"); - this.animate($('#slide-0 .bg-1'),'fadeInDown',500); - this.animate($('#slide-0 .bg-2'),'fadeInDown',1000); - this.animate($('#slide-0 .bg-3'),'fadeInDown',1500); - this.animate($('#slide-0 .bg-4'),'fadeInDown',2000); - - this.animate($('#slide-0 .bg-5'),'fadeInDown',2500); - this.animate($('#slide-0 .bg-6'),'fadeInDown',3000); - this.animate($('#slide-0 .bg-7'),'fadeInDown',3500); - this.animate($('#slide-0 .bg-8'),'fadeInDown',4000); - }; - - private animate1 = ():void => { - if (this.alreadyAnimated.indexOf(1)!==-1){ - return; - } else { - this.alreadyAnimated.push(1); - } - //console.log("slide 1 - animate"); - - this.animate($('#slide-1 .asdc-welcome-main-title'),'fadeInUp',1000); - this.animate($('#slide-1 .asdc-welcome-main-message'),'fadeInUp',2000); - - this.animate($('#slide-1 .asdc-welcome-main-back-btn'),'fadeIn',3000); - - this.animate($('#slide-1 .asdc-welcome-video-icon'),'zoomIn',3000); - this.animate($('#slide-1 .asdc-welcome-inner-circle'),'zoomIn',3000); - - this.animate($('.welcome-nav'),'slideInRight',2000); - }; - - private animate2 = ():void => { - if (this.alreadyAnimated.indexOf(2)!==-1){ - return; - } else { - this.alreadyAnimated.push(2); - } - //console.log("slide 2 - animate"); - this.animate($('#slide-2 .asdc-welcome-frame-shape'),'zoomIn',500); - this.animate($('#slide-2 .asdc-welcome-slide-text-box-content'),'fadeInUp',2000); - this.animate($('#slide-2 .asdc-welcome-slide-text-box-title'),'fadeInUp',1000); - }; - - private animate3 = ():void => { - if (this.alreadyAnimated.indexOf(3)!==-1){ - return; - } else { - this.alreadyAnimated.push(3); - } - //console.log("slide 3 - animate"); - this.animate($('#slide-3 .asdc-welcome-frame-shape'),'zoomIn',500); - this.animate($('#slide-3 .asdc-welcome-slide-text-box-content'),'fadeInUp',2000); - this.animate($('#slide-3 .asdc-welcome-slide-text-box-title'),'fadeInUp',1000); - }; - - private animate4 = ():void => { - if (this.alreadyAnimated.indexOf(4)!==-1){ - return; - } else { - this.alreadyAnimated.push(4); - } - //console.log("slide 4 - animate"); - this.animate($('#slide-4 .asdc-welcome-frame-shape'),'zoomIn',500); - this.animate($('#slide-4 .asdc-welcome-slide-text-box-content'),'fadeInUp',2000); - this.animate($('#slide-4 .asdc-welcome-slide-text-box-title'),'fadeInUp',1000); - }; - - private animate5 = ():void => { - if (this.alreadyAnimated.indexOf(5)!==-1){ - return; - } else { - this.alreadyAnimated.push(5); - } - //console.log("slide 5 - animate"); - this.animate($('#slide-5 .asdc-welcome-frame-shape'),'zoomIn',500); - this.animate($('#slide-5 .asdc-welcome-slide-text-box-content'),'fadeInUp',2000); - this.animate($('#slide-5 .asdc-welcome-slide-text-box-title'),'fadeInUp',1000); - }; - - private animate6 = ():void => { - if (this.alreadyAnimated.indexOf(6)!==-1){ - return; - } else { - this.alreadyAnimated.push(6); - } - //console.log("slide 6 - animate"); - this.animate($('#slide-6 .asdc-welcome-main-message'),'fadeInUp',2000); - this.animate($('#slide-6 .asdc-welcome-main-title'),'fadeInUp',1000); - this.animate($('#slide-6 .asdc-welcome-main-back-btn'),'fadeInUp',3000); - }; - - private animateCss = (element:JQuery, animationName:string):void => { - let animationEnd = 'webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend'; - element.addClass('animated ' + animationName).one(animationEnd, function() { - element.removeClass('animated ' + animationName); - }); - }; - - private unAnimateCss = (element:JQuery, animationName:string):void => { - let animationEnd = 'webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend'; - element.addClass('animated ' + animationName).one(animationEnd, function() { - element.removeClass('animated ' + animationName); - }); - }; - - } -} diff --git a/catalog-ui/app/scripts/view-models/wizard/ReadMe.txt b/catalog-ui/app/scripts/view-models/wizard/ReadMe.txt deleted file mode 100644 index ca5cfb988a..0000000000 --- a/catalog-ui/app/scripts/view-models/wizard/ReadMe.txt +++ /dev/null @@ -1,54 +0,0 @@ -import-asset wizard -======================================================== - -What should be done in each wizard step: ----------------------------------------- - -1. Each step scope should extend IAssetCreationStepScope (this way you can call methods on the wizard scope). - Example: - export interface IGeneralStepScope extends IAssetCreationStepScope { - - } - -2. Each step class should implements IAssetCreationStep - Example: export class GeneralStepViewModel implements IAssetCreationStep { - - } - -3. Add the method: public save = (callback:Function):void => {} - The method should perform the save and call: callback(true); in case of success, or callback(false); in case of error. - Example: - var onSuccess:Function = (resourceProperties:Services.IResourceResource) => { - this.$scope.setAngularResourceOfResource(resourceProperties); - var resourceObj = new Sdc.Models.Resource(resourceProperties); - this.$scope.setEntity(resourceObj); - this.$scope.latestEntityName = (resourceProperties.resourceName); - callback(true); - }; - -4. Add the first line after the constructor: this.$scope.registerChild(this); - This will register the current step reference in the wizard. - -5. Each step can get and set angular $resource of resource from the wizard. - // Will be called from each step to get current entity. - this.$scope.getAngularResourceOfResource = ():Services.IResourceResource => { - return this.resourceProperties; - }; - - // Will be called from each step after save to update the resource. - this.$scope.setAngularResourceOfResource = (resourceProperties:Services.IResourceResource):void => { - this.resourceProperties = resourceProperties; - this.fillAssetNameAndType(); - }; - - Note: after success save, set setAngularResourceOfResource in the wizard (see example in step 3). - -6. The wizard needs to know if the step is valid (to know if to show next button), I used the following to update the wizard: - this.$scope.$watch("editForm.$valid", function(newVal, oldVal){ - this.$scope.setValidState(newVal); - }); - - Note: in case there is no save for the step, and the step is always valid, call: this.$scope.setValidState(true); - - - diff --git a/catalog-ui/app/scripts/view-models/wizard/artifact-deployment-step/artifact-deployment-step.html b/catalog-ui/app/scripts/view-models/wizard/artifact-deployment-step/artifact-deployment-step.html deleted file mode 100644 index 97817d59f2..0000000000 --- a/catalog-ui/app/scripts/view-models/wizard/artifact-deployment-step/artifact-deployment-step.html +++ /dev/null @@ -1,137 +0,0 @@ -
      - -
      Add
      - -
      - -
      - -
      -
      {{header.title}} - -
      -
      -
      - -
      - - - - -
      -
      - -
      - - - {{artifact.artifactDisplayName}} -
      - -
      - {{artifact.artifactType}} -
      -
      - {{artifact.timeout? artifact.timeout:''}} -
      - -
      - - -
      -
      -
      - - - -
      - - - -
      - - - -
      - -
      - - -
      - -
      -
      - - ? - - -
      - - - -
      -
      -
      - - -
      -
      - - ? - - -
      - - - -
      -
      -
      - -
      -
      - - - - - - -
      -
      -
      -
      -
      diff --git a/catalog-ui/app/scripts/view-models/wizard/artifact-deployment-step/artifact-deployment-step.less b/catalog-ui/app/scripts/view-models/wizard/artifact-deployment-step/artifact-deployment-step.less deleted file mode 100644 index 043fba3277..0000000000 --- a/catalog-ui/app/scripts/view-models/wizard/artifact-deployment-step/artifact-deployment-step.less +++ /dev/null @@ -1,107 +0,0 @@ -.artifact-deployment-step { - - .table-container-flex .table .body .data-row + div.item-opened { - padding: 10px 40px 10px 30px; - } - - .w-sdc-classic-btn { - float: right; - margin-bottom: 10px; - } - - .table { - height:412px; - margin-bottom: 0; - } - - .parameter-description { - .circle(18px, @color_p); - content: '?'; - line-height: 18px; - vertical-align: middle; - margin-left: 5px; - cursor: default; - display: inline-block; - position: absolute; - top: 16px; - } - - .table-container-flex { - - margin-top: 0px; - - .flex-item:nth-child(1) { - flex-grow: 15; - padding: 5px 4px; - .hand; - span.table-arrow { - margin-right: 7px; - - } - } - - .flex-item:nth-child(2) { - padding: 5px 4px; - flex-grow: 6; - } - - .flex-item:nth-child(3) { - padding: 5px 4px; - flex-grow: 9; - } - - .flex-item:nth-child(4) { - padding: 5px 4px; - flex-grow: 3; - padding-top: 10px; - } - } - .w-sdc-form{ - text-align: left; - - .w-sdc-env-params{ - border-top: 1px solid #cdcdcd; - margin: 25px 0 10px 0; - } - - .i-sdc-form-textarea { - border: 1px solid @color_e; - min-height: 60px; - padding: 10px 13px; - width: 100%; - resize: none; - - &:disabled { - .disabled; - } - } - - .w-sdc-form-item { - &.error { - .i-sdc-form-input, - .i-sdc-form-select, - .i-sdc-form-textarea { - border-color: @color_h; - outline: none; - box-sizing: border-box; - } - } - } - - .i-sdc-env-form-label{ - .p_9; - overflow: hidden; - max-width: 245px; - text-overflow: ellipsis; - display: inline-block; - white-space: nowrap; - margin-top: 14px; - - &.required::before { - color: #f33; - content: '*'; - margin-right: 4px; - } - } - } -} diff --git a/catalog-ui/app/scripts/view-models/wizard/artifact-deployment-step/artifact-deployment-step.ts b/catalog-ui/app/scripts/view-models/wizard/artifact-deployment-step/artifact-deployment-step.ts deleted file mode 100644 index 80f145b9b1..0000000000 --- a/catalog-ui/app/scripts/view-models/wizard/artifact-deployment-step/artifact-deployment-step.ts +++ /dev/null @@ -1,228 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.ViewModels.Wizard { - 'use strict'; - import ArtifactModel = Sdc.Models.ArtifactModel; - - interface IArtifactDeploymentStepViewModelScope extends IWizardCreationStepScope { - tableHeadersList: Array; - reverse: boolean; - sortBy:string; - component: Models.Components.Component; - artifacts: Array; - editForm:ng.IFormController; - isLoading:boolean; - artifactDescriptions:any; - updateInProgress:boolean; - - addOrUpdate(artifact:Models.ArtifactModel): void; - update(artifact:Models.ArtifactModel): void; - delete(artifact:Models.ArtifactModel): void; - sort(sortBy:string): void; - noArtifactsToShow():boolean; - getValidationPattern(validationType:string, parameterType?:string):RegExp; - validateJson(json:string):boolean; - resetValue(parameter:any):void; - } - - export class ArtifactDeploymentStepViewModel implements IWizardCreationStep { - - static '$inject' = [ - '$scope', - '$filter', - '$modal', - '$templateCache', - 'ValidationUtils', - 'ModalsHandler' - ]; - - constructor( - private $scope:IArtifactDeploymentStepViewModelScope, - private $filter:ng.IFilterService, - private $modal:ng.ui.bootstrap.IModalService, - private $templateCache:ng.ITemplateCacheService, - private validationUtils: Sdc.Utils.ValidationUtils, - private ModalsHandler: Utils.ModalsHandler - ){ - this.$scope.registerChild(this); - this.$scope.setValidState(true); - this.initScope(); - } - - private initDescriptions = ():void =>{ - this.$scope.artifactDescriptions = {}; - _.forEach(this.$scope.component.deploymentArtifacts,(artifact:Models.ArtifactModel):void => { - this.$scope.artifactDescriptions[artifact.artifactLabel] = artifact.description; - }); - }; - - - private setArtifact = (artifact:Models.ArtifactModel):void =>{ - if(artifact.heatParameters) { - artifact.heatParameters.forEach((parameter:any):void => { - if (!parameter.currentValue && parameter.defaultValue) { - parameter.currentValue = parameter.defaultValue; - } else if ("" === parameter.currentValue) { - parameter.currentValue = null; - } - }); - } - if(!artifact.description || !this.$scope.getValidationPattern('string').test(artifact.description)){ - artifact.description = this.$scope.artifactDescriptions[artifact.artifactLabel]; - } - }; - - private updateAll = ():void =>{ - let artifacts:Array= []; - _.forEach(this.$scope.component.deploymentArtifacts,(artifact:Models.ArtifactModel): void => { - if(artifact.selected) { - this.setArtifact(artifact); - artifacts.push(artifact); - } - }); - this.$scope.component.updateMultipleArtifacts(artifacts); - }; - - - - private initScope = (): void => { - let self = this; - this.$scope.isLoading = false; - this.$scope.updateInProgress = false; - this.$scope.component = this.$scope.getComponent(); - this.initDescriptions(); - this.$scope.artifacts = _.values(this.$scope.component.deploymentArtifacts); - - - this.$scope.tableHeadersList = [ - {title:'Name', property: 'artifactDisplayName'}, - {title:'Type', property: 'artifactType'}, - {title:'Deployment timeout', property: 'timeout'} - ]; - - this.$scope.sort = (sortBy:string):void => { - this.$scope.reverse = (this.$scope.sortBy === sortBy) ? !this.$scope.reverse : false; - this.$scope.sortBy = sortBy; - }; - - this.$scope.getValidationPattern = (validationType:string, parameterType?:string):RegExp => { - return this.validationUtils.getValidationPattern(validationType, parameterType); - }; - - this.$scope.validateJson = (json:string):boolean => { - if(!json){ - return true; - } - return this.validationUtils.validateJson(json); - }; - - - this.$scope.addOrUpdate = (artifact:Models.ArtifactModel): void => { - artifact.artifactGroupType = 'DEPLOYMENT'; - let artifactCopy = new Models.ArtifactModel(artifact); - this.ModalsHandler.openWizardArtifactModal(artifactCopy, this.$scope.component).then(() => { - this.$scope.artifactDescriptions[artifactCopy.artifactLabel]= artifactCopy.description; - this.$scope.artifacts = _.values(this.$scope.component.deploymentArtifacts); - }) - }; - - this.$scope.noArtifactsToShow = ():boolean =>{ - return !_.some(this.$scope.artifacts, 'esId'); - }; - - this.$scope.resetValue = (parameter:any):void => { - if(!parameter.currentValue && parameter.defaultValue){ - parameter.currentValue = parameter.defaultValue; - } - else if('boolean'==parameter.type){ - parameter.currentValue = parameter.currentValue.toUpperCase(); - } - }; - - - this.$scope.$watch('editForm.$valid', ():void => { - if(this.$scope.editForm) { - this.$scope.setValidState(this.$scope.editForm.$valid); - } - }); - - this.$scope.update = (artifact:Models.ArtifactModel):void =>{ - if(false == this.$scope.isLoading) { - if(artifact.selected) { - this.$scope.isLoading = true; - this.$scope.updateInProgress = true; - let onSuccess = (responseArtifact:Models.ArtifactModel):void => { - this.$scope.artifactDescriptions[responseArtifact.artifactLabel] = responseArtifact.description; - this.$scope.artifacts = _.values(this.$scope.component.deploymentArtifacts); - this.$scope.isLoading = false; - this.$scope.updateInProgress = false; - artifact.selected = !artifact.selected; - }; - - let onFailed = (error:any):void => { - console.log('Delete artifact returned error:', error); - this.$scope.isLoading = false; - this.$scope.updateInProgress = false; - artifact.selected = !artifact.selected; - }; - - this.setArtifact(artifact); - this.$scope.component.addOrUpdateArtifact(artifact).then(onSuccess, onFailed); - } else { - artifact.selected = !artifact.selected; - } - } - }; - - this.$scope.delete = (artifact:Models.ArtifactModel):void => { - let onOk = ():void => { - this.$scope.isLoading = true; - let onSuccess = ():void => { - this.$scope.isLoading = false; - this.$scope.artifacts = _.values(this.$scope.component.deploymentArtifacts); - }; - - let onFailed = (error:any):void => { - this.$scope.isLoading = false; - console.log('Delete artifact returned error:', error); - }; - - this.$scope.component.deleteArtifact(artifact.uniqueId, artifact.artifactLabel).then(onSuccess, onFailed); - }; - - let title:string = self.$filter('translate')("ARTIFACT_VIEW_DELETE_MODAL_TITLE"); - let message:string = self.$filter('translate')("ARTIFACT_VIEW_DELETE_MODAL_TEXT", "{'name': '" + artifact.artifactDisplayName + "'}"); - this.ModalsHandler.openConfirmationModal(title, message, false).then(onOk); - }; - }; - - public save = (callback:Function):void => { - this.updateAll(); - this.$scope.setComponent(this.$scope.component); - callback(true); - }; - - public back = (callback:Function):void => { - this.$scope.setComponent(this.$scope.component); - callback(true); - } - } -} diff --git a/catalog-ui/app/scripts/view-models/wizard/artifact-form-step/artifact-form-step-view-model.ts b/catalog-ui/app/scripts/view-models/wizard/artifact-form-step/artifact-form-step-view-model.ts deleted file mode 100644 index 459729c179..0000000000 --- a/catalog-ui/app/scripts/view-models/wizard/artifact-form-step/artifact-form-step-view-model.ts +++ /dev/null @@ -1,304 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.ViewModels.Wizard { - 'use strict'; - import Resource = Sdc.Models.Components.Resource; - - export interface IEditArtifactStepModel { - artifactResource: Models.ArtifactModel; - artifactTypes: Array; - artifactsFormList: any; - artifactFile:any; - } - - export interface IArtifactResourceFormStepViewModelScope extends ng.IScope { - editForm:ng.IFormController; - forms:any; - footerButtons: Array; - isNew: boolean; - isPlaceHolderArtifact:boolean; - isLoading: boolean; - validationPattern: RegExp; - urlValidationPattern: RegExp; - labelValidationPattern: RegExp; - integerValidationPattern: RegExp; - commentValidationPattern: RegExp; - artifactType: string; - artifactGroupType:string; - editArtifactResourceModel: IEditArtifactStepModel; - defaultHeatTimeout: number; - validExtensions: any; - originalArtifactName: string; - modalInstanceArtifact:ng.ui.bootstrap.IModalServiceInstance; - selectedArtifact:string; - - fileExtensions():string; - save(): void; - close(): void; - changeArtifact(selectedArtifact:string):void; - getOptions(): Array; - removeInputLabel(): void; - fileUploadRequired():string; - isDeploymentHeat():boolean; - setDefaultTimeout():void; - getFormTitle():string; - } - - export class ArtifactResourceFormStepViewModel { - - static '$inject' = [ - '$scope', - '$modalInstance', - 'artifact', - 'component', - 'Sdc.Services.CacheService', - 'ValidationPattern', - 'UrlValidationPattern', - 'LabelValidationPattern', - 'IntegerValidationPattern', - 'CommentValidationPattern', - 'ValidationUtils', - 'ArtifactsUtils', - '$state', - '$modal', - '$templateCache' - ]; - - private formState:Utils.Constants.FormState; - private entityId:string; - - constructor(private $scope:IArtifactResourceFormStepViewModelScope, - private $modalInstance:ng.ui.bootstrap.IModalServiceInstance, - private artifact:Models.ArtifactModel, - private component:Models.Components.Component, - private cacheService:Services.CacheService, - private ValidationPattern:RegExp, - private UrlValidationPattern:RegExp, - private LabelValidationPattern:RegExp, - private IntegerValidationPattern:RegExp, - private CommentValidationPattern:RegExp, - private ValidationUtils:Sdc.Utils.ValidationUtils, - private ArtifactsUtils:Sdc.Utils.ArtifactsUtils, - private $state:any, - private $modal:ng.ui.bootstrap.IModalService, - private $templateCache:ng.ITemplateCacheService) { - - - this.entityId = this.component.uniqueId; - this.formState = angular.isDefined(artifact.artifactLabel) ? Utils.Constants.FormState.UPDATE : Utils.Constants.FormState.CREATE; - - this.initScope(); - this.initEditArtifactResourceModel(); - this.initComponent(); - this.initArtifactTypes(); - } - - private initEditArtifactResourceModel = ():void => { - this.$scope.editArtifactResourceModel = { - artifactResource: null, - artifactTypes: null, - artifactsFormList: {}, - artifactFile: {} - } - }; - - private initComponent = ():void => { - this.$scope.editArtifactResourceModel.artifactResource = this.artifact; - this.$scope.originalArtifactName = this.artifact.artifactName; - let artifacts:any = Utils.Constants.ArtifactGroupType.INFORMATION === this.artifact.artifactGroupType? - this.component.artifacts : this.component.deploymentArtifacts; - this.$scope.editArtifactResourceModel.artifactsFormList = _.pick(artifacts, (artifact:Models.ArtifactModel)=> { - return artifact.artifactLabel && !artifact.esId; - }); - this.$scope.editArtifactResourceModel.artifactFile.filename= this.artifact.artifactName?this.artifact.artifactName:''; - - if(this.artifact.artifactLabel){//this is edit mode - this.$scope.editArtifactResourceModel.artifactsFormList[this.artifact.artifactLabel]= this.artifact; - this.$scope.selectedArtifact = this.artifact.artifactDisplayName; - } - }; - - private initArtifactTypes = ():void => { - let artifactTypes:any = this.cacheService.get('UIConfiguration'); - - if (Utils.Constants.ArtifactGroupType.INFORMATION === this.artifact.artifactGroupType) { - this.$scope.editArtifactResourceModel.artifactTypes = artifactTypes.artifacts.other.map((element:any)=> { - return element.name; - }); - _.remove(this.$scope.editArtifactResourceModel.artifactTypes, (item:string)=> { - return _.has(Utils.Constants.ArtifactType.THIRD_PARTY_RESERVED_TYPES, item) || - _.has(Utils.Constants.ArtifactType.TOSCA, item); - }) - }else if(Utils.Constants.ArtifactGroupType.DEPLOYMENT === this.artifact.artifactGroupType) { - - this.$scope.validExtensions = artifactTypes.artifacts.deployment.resourceDeploymentArtifacts; - if(this.$scope.validExtensions) { - this.$scope.editArtifactResourceModel.artifactTypes = Object.keys(this.$scope.validExtensions); - } - this.$scope.defaultHeatTimeout = artifactTypes.defaultHeatTimeout; - - if(!this.$scope.isPlaceHolderArtifact) { - _.remove(this.$scope.editArtifactResourceModel.artifactTypes, (item:string)=> { - return Utils.Constants.ArtifactType.HEAT == item.substring(0,4) || - _.has(Utils.Constants.ArtifactType.THIRD_PARTY_RESERVED_TYPES, item); - }) - } - - if(this.component.isResource() && (this.component).isCsarComponent()) { - _.remove(this.$scope.editArtifactResourceModel.artifactTypes, (item:string) => { - return this.ArtifactsUtils.isLicenseType(item); - }) - } - } - }; - - private initScope = ():void => { - - this.$scope.modalInstanceArtifact = this.$modalInstance; - this.$scope.validationPattern = this.ValidationPattern; - this.$scope.urlValidationPattern = this.UrlValidationPattern; - this.$scope.labelValidationPattern = this.LabelValidationPattern; - this.$scope.integerValidationPattern = this.IntegerValidationPattern; - this.$scope.commentValidationPattern = this.CommentValidationPattern; - this.$scope.isLoading = false; - this.$scope.isPlaceHolderArtifact = true; - this.$scope.isNew = (this.formState === Utils.Constants.FormState.CREATE); - this.$scope.artifactGroupType = this.artifact.artifactGroupType; - this.$scope.selectedArtifact = '?'; - - this.$scope.fileExtensions = ():string => { - let type:string = this.$scope.editArtifactResourceModel.artifactResource.artifactType; - return type && this.$scope.validExtensions && this.$scope.validExtensions[type].acceptedTypes ? - this.$scope.validExtensions[type].acceptedTypes.join(',') : ""; - }; - - this.$scope.removeInputLabel = ():void => { - this.$scope.isPlaceHolderArtifact = true; - }; - - this.$scope.fileUploadRequired = ():string => { - if (this.$scope.isNew===false){ - return 'false'; // This is edit mode - } else { - return 'true'; - } - }; - - this.$scope.isDeploymentHeat = ():boolean =>{ - return Utils.Constants.ArtifactGroupType.DEPLOYMENT === this.artifact.artifactGroupType - && this.$scope.editArtifactResourceModel.artifactResource - && this.$scope.editArtifactResourceModel.artifactResource.artifactType - && Utils.Constants.ArtifactType.HEAT === this.$scope.editArtifactResourceModel.artifactResource.artifactType.substring(0,4); - }; - - this.$scope.getFormTitle =(): string =>{ - let title:string = this.artifact.esId? 'Update':'Add'; - if (Utils.Constants.ArtifactGroupType.DEPLOYMENT === this.artifact.artifactGroupType) { - title += ' Deployment'; - } - title += ' Artifact'; - return title; - }; - - this.$scope.setDefaultTimeout = ():void => { - if(!this.$scope.editArtifactResourceModel.artifactResource.timeout) { - this.$scope.editArtifactResourceModel.artifactResource.timeout = this.$scope.defaultHeatTimeout; - } - }; - - this.$scope.changeArtifact = (selectedArtifact:string):void => { - let tempArtifact:Models.ArtifactModel = this.$scope.editArtifactResourceModel.artifactResource; - this.$scope.editArtifactResourceModel.artifactResource = null; - - if (selectedArtifact && selectedArtifact != '' && selectedArtifact != '?') { - let artifactResource = _.find(this.$scope.editArtifactResourceModel.artifactsFormList,{'artifactDisplayName':selectedArtifact}); - this.$scope.editArtifactResourceModel.artifactResource = new Sdc.Models.ArtifactModel(artifactResource); - this.$scope.originalArtifactName = this.$scope.editArtifactResourceModel.artifactResource.artifactName; - this.$scope.isPlaceHolderArtifact = true; - if(this.$scope.isDeploymentHeat()){ - this.$scope.setDefaultTimeout(); - } - } else if (selectedArtifact === "") { - //this.$scope.editArtifactResourceModel.artifactFile = {}; - this.$scope.editArtifactResourceModel.artifactResource = {}; - this.$scope.editArtifactResourceModel.artifactResource.artifactGroupType = this.$scope.artifactGroupType; - this.$scope.isPlaceHolderArtifact = false; - } - - if (_.size(this.$scope.editArtifactResourceModel.artifactFile) && this.$scope.editArtifactResourceModel.artifactResource) { - this.$scope.editArtifactResourceModel.artifactResource.artifactName = this.$scope.editArtifactResourceModel.artifactFile.filename; - } - if(tempArtifact && tempArtifact.description != ''){ - this.$scope.editArtifactResourceModel.artifactResource.description = tempArtifact.description; - } - - this.initArtifactTypes(); - this.$scope.isNew = true; - - }; - - - this.$scope.save = ():void => { - this.$scope.isLoading = true; - this.$scope.editArtifactResourceModel.artifactResource.description = - this.ValidationUtils.stripAndSanitize(this.$scope.editArtifactResourceModel.artifactResource.description); - - if (this.$scope.editArtifactResourceModel.artifactFile) { - this.$scope.editArtifactResourceModel.artifactResource.payloadData = this.$scope.editArtifactResourceModel.artifactFile.base64; - this.$scope.editArtifactResourceModel.artifactResource.artifactName = this.$scope.editArtifactResourceModel.artifactFile.filename; - } - - let onFailed = (response) => { - this.$scope.isLoading = false; - console.info('onFaild', response); - this.$scope.editArtifactResourceModel.artifactResource.esId = undefined; - }; - - let onSuccess = () => { - this.$scope.isLoading = false; - this.$scope.originalArtifactName = ""; - this.$modalInstance.close(); - - }; - - this.component.addOrUpdateArtifact(this.$scope.editArtifactResourceModel.artifactResource).then(onSuccess, onFailed); - }; - - - this.$scope.close = ():void => { - this.$modalInstance.dismiss(); - }; - - //new form layout for import asset - this.$scope.forms = {}; - this.$scope.footerButtons = [ - {'name': this.artifact.esId ? 'Update' : 'Add', 'css': 'blue', 'callback': this.$scope.save}, - {'name': 'Cancel', 'css': 'grey', 'callback': this.$scope.close} - ]; - - this.$scope.$watch("forms.editForm.$invalid", (newVal, oldVal) => { - this.$scope.footerButtons[0].disabled = this.$scope.forms.editForm.$invalid; - }); - - } - - } -} diff --git a/catalog-ui/app/scripts/view-models/wizard/artifact-form-step/artifact-form-step-view.html b/catalog-ui/app/scripts/view-models/wizard/artifact-form-step/artifact-form-step-view.html deleted file mode 100644 index 2643b99c20..0000000000 --- a/catalog-ui/app/scripts/view-models/wizard/artifact-form-step/artifact-form-step-view.html +++ /dev/null @@ -1,147 +0,0 @@ - - - - -
      - - -
      - - - -
      - - - - -
      -
      - - -
      -
      - -
      - - - -
      - -
      -
      - -
      - - - - -
      - - - -
      -
      - -
      - - - -
      - - - -
      -
      -
      - - - -
      - -
      - -
      -
      - -
      - -
      - - - -
      - - - -
      - -
      -
      -
      - - - -
      - -
      - - diff --git a/catalog-ui/app/scripts/view-models/wizard/artifact-form-step/artifact-form-step.less b/catalog-ui/app/scripts/view-models/wizard/artifact-form-step/artifact-form-step.less deleted file mode 100644 index a189c12d62..0000000000 --- a/catalog-ui/app/scripts/view-models/wizard/artifact-form-step/artifact-form-step.less +++ /dev/null @@ -1,45 +0,0 @@ -.sdc-add-artifact { - - .w-sdc-form-note { - .h_9; - display: block; - position: relative; - top: 13px; - } - - .w-sdc-form { - - .i-sdc-form-textarea{ - min-height: 95px; - } - - .i-sdc-form-item.upload input[type="file"] { - display: none - } - - .w-sdc-icon-cancel { - position: absolute; - right: 7px; - top: 33px; - .sprite; - .sprite.small-x-btn-black; - .hand; - } - } - - .artifact-info { - text-align: left; - color: rgb(140, 140, 140); - font-size: 13px; - margin-top: -40px; - margin-bottom: 5px; - width: 600px; - min-height: initial; - - span { - color: #666666; - padding-left: 4px; - } - } - -} diff --git a/catalog-ui/app/scripts/view-models/wizard/artifact-information-step/artifact-information-step.html b/catalog-ui/app/scripts/view-models/wizard/artifact-information-step/artifact-information-step.html deleted file mode 100644 index ea4566561c..0000000000 --- a/catalog-ui/app/scripts/view-models/wizard/artifact-information-step/artifact-information-step.html +++ /dev/null @@ -1,48 +0,0 @@ -
      -
      Add
      -
      -
      -
      -
      {{header.title}} - -
      -
      -
      -
      - -
      - There are no information artifacts to display -
      -
      - -
      - - {{artifact.artifactDisplayName}} -
      - -
      - {{artifact.artifactType}} -
      - -
      - - -
      -
      -
      - - -
      -
      -
      -
      -
      diff --git a/catalog-ui/app/scripts/view-models/wizard/artifact-information-step/artifact-information-step.less b/catalog-ui/app/scripts/view-models/wizard/artifact-information-step/artifact-information-step.less deleted file mode 100644 index b0600ca483..0000000000 --- a/catalog-ui/app/scripts/view-models/wizard/artifact-information-step/artifact-information-step.less +++ /dev/null @@ -1,50 +0,0 @@ -.artifact-step { - - .w-sdc-classic-btn { - float: right; - margin-bottom: 10px; - } - - .table{ - height: 412px; - margin-bottom: 0; - } - - .table-container-flex { - margin-top: 0px; - - .item-opened{ - word-wrap: break-word; - } - - - .flex-item:nth-child(1) { - padding: 5px 4px; - flex-grow: 15; - .hand; - span.table-arrow { - margin-right: 7px; - } - } - - .flex-item:nth-child(2) { - padding: 5px 4px; - flex-grow: 6; - } - - .flex-item:nth-child(3) { - padding: 5px 4px; - flex-grow: 3; - padding-top: 10px; - } - - .flex-item:nth-child(4) { - padding: 5px 4px; - flex-grow: 1; - } - - } - -} - - diff --git a/catalog-ui/app/scripts/view-models/wizard/artifact-information-step/artifact-information-step.ts b/catalog-ui/app/scripts/view-models/wizard/artifact-information-step/artifact-information-step.ts deleted file mode 100644 index f6e25a53a3..0000000000 --- a/catalog-ui/app/scripts/view-models/wizard/artifact-information-step/artifact-information-step.ts +++ /dev/null @@ -1,168 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.ViewModels.Wizard { - 'use strict'; - import ArtifactModel = Sdc.Models.ArtifactModel; - - export interface IArtifactInformationStepScope extends IWizardCreationScope { - artifacts: Array; - tableHeadersList: Array; - artifactType: string; - isResourceInstance:boolean; - downloadFile:Models.IFileDownload; - isLoading:boolean; - sortBy:string; - reverse:boolean; - component:Models.Components.Component; - - getTitle(): string; - addOrUpdate(artifact:Models.ArtifactModel): void; - delete(artifact:Models.ArtifactModel): void; - download(artifact:Models.ArtifactModel): void; - clickArtifactName(artifact:any):void; - openEditEnvParametersModal(artifactResource: Models.ArtifactModel):void; - sort(sortBy:string): void; - showNoArtifactMessage():boolean; - } - - export class ArtifactInformationStepViewModel implements IWizardCreationStep { - - static '$inject' = [ - '$scope', - '$filter', - '$modal', - '$templateCache', - 'Sdc.Services.SharingService', - '$state', - 'sdcConfig', - 'ModalsHandler' - ]; - - constructor(private $scope:IArtifactInformationStepScope, - private $filter:ng.IFilterService, - private $modal:ng.ui.bootstrap.IModalService, - private $templateCache:ng.ITemplateCacheService, - private sharingService:Sdc.Services.SharingService, - private $state:any, - private sdcConfig:Models.IAppConfigurtaion, - private ModalsHandler: Utils.ModalsHandler) { - this.$scope.registerChild(this); - this.$scope.setValidState(true); - this.initScope(); - } - - - private getMappedObjects():any { - return { - normal: this.$scope.component.artifacts - }; - } - - private initScope = ():void => { - let self = this; - this.$scope.isLoading = false; - this.$scope.sortBy = 'artifactDisplayName'; - this.$scope.reverse = false; - - this.$scope.artifactType = 'normal'; - this.$scope.getTitle = ():string => { - return this.$filter("resourceName")(this.$scope.component.name) + ' Artifacts'; - - }; - - this.$scope.tableHeadersList = [ - {title: 'Name', property: 'artifactDisplayName'}, - {title: 'Type', property: 'artifactType'} - ]; - - - this.$scope.component = this.$scope.getComponent(); - this.$scope.artifacts = _.values(this.$scope.component.artifacts); - - - this.$scope.sort = (sortBy:string):void => { - this.$scope.reverse = (this.$scope.sortBy === sortBy) ? !this.$scope.reverse : false; - this.$scope.sortBy = sortBy; - }; - - - this.$scope.addOrUpdate = (artifact:Models.ArtifactModel):void => { - artifact.artifactGroupType = 'INFORMATIONAL'; - this.ModalsHandler.openWizardArtifactModal(artifact, this.$scope.getComponent()).then(() => { - this.$scope.artifacts = _.values(this.$scope.component.artifacts); - }); - }; - - this.$scope.showNoArtifactMessage = ():boolean => { - let artifacts:any = []; - artifacts = _.filter(this.$scope.artifacts, (artifact:Models.ArtifactModel)=> { - return artifact.esId; - }); - - if (artifacts.length === 0) { - return true; - } - return false; - } - - this.$scope.delete = (artifact:Models.ArtifactModel):void => { - - let onOk = ():void => { - this.$scope.isLoading = true; - let onSuccess = ():void => { - this.$scope.isLoading = false; - this.$scope.artifacts = _.values(this.$scope.component.artifacts); - }; - - let onFailed = (error:any):void => { - console.log('Delete artifact returned error:', error); - this.$scope.isLoading = false; - }; - - this.$scope.component.deleteArtifact(artifact.uniqueId, artifact.artifactLabel).then(onSuccess, onFailed); - }; - - let title:string = this.$filter('translate')("ARTIFACT_VIEW_DELETE_MODAL_TITLE"); - let message:string = this.$filter('translate')("ARTIFACT_VIEW_DELETE_MODAL_TEXT", "{'name': '" + artifact.artifactDisplayName + "'}"); - this.ModalsHandler.openConfirmationModal(title, message, false).then(onOk); - }; - - this.$scope.clickArtifactName = (artifact:any) => { - if ('deployment' !== this.$scope.artifactType || 'HEAT' !== artifact.artifactType || !artifact.esId) { - this.$scope.addOrUpdate(artifact); - } - - }; - - } - - public save = (callback:Function):void => { - this.$scope.setComponent(this.$scope.component); - callback(true); - } - - public back = (callback:Function):void => { - callback(true); - } - - } - -} diff --git a/catalog-ui/app/scripts/view-models/wizard/general-step/general-step.html b/catalog-ui/app/scripts/view-models/wizard/general-step/general-step.html deleted file mode 100644 index db975caf47..0000000000 --- a/catalog-ui/app/scripts/view-models/wizard/general-step/general-step.html +++ /dev/null @@ -1,270 +0,0 @@ -
      -
      -
      -
      - - - - -
      - - - - -
      - - -
      - -
      - - -
      - - - -
      - - - - - -
      -
      - - - -
      - - - -
      - - - - - -
      -
      - - - -
      - - - - -
      - - - -
      -
      - - - -
      - - - -
      - -
      -
      - - - -
      - - - -
      - - - -
      - -
      - - - - -
      - - - -
      - - - -
      -
      - - - - -
      - -
      - - -
      - - - - -
      - -
      -
      - - - -
      - - - -
      - - -
      -
      - - - -
      - - - -
      - - -
      -
      - - - -
      - -
      - -
      - Your resource has been saved -
      - -
      - -
      - -
      -
      diff --git a/catalog-ui/app/scripts/view-models/wizard/general-step/general-step.less b/catalog-ui/app/scripts/view-models/wizard/general-step/general-step.less deleted file mode 100644 index 700997a423..0000000000 --- a/catalog-ui/app/scripts/view-models/wizard/general-step/general-step.less +++ /dev/null @@ -1,34 +0,0 @@ -.sdc-wizard-general-step { - - .w-sdc-form { - padding: 0; - - .w-sdc-form-section-container { - text-align: center; - } - - .i-sdc-form-item { - &.upload { - margin-top: 0; - width: auto; - padding: 10px; - } - } - - .template-desc { - border: 1px dashed @border_color_f; - height: 130px; - overflow: hidden; - padding: 10px 6px 6px 6px; - margin-top: 10px; - } - - .sdc-tag .tag { - max-width: 225px; - } - - } - -} - - diff --git a/catalog-ui/app/scripts/view-models/wizard/general-step/general-step.ts b/catalog-ui/app/scripts/view-models/wizard/general-step/general-step.ts deleted file mode 100644 index 74c681e433..0000000000 --- a/catalog-ui/app/scripts/view-models/wizard/general-step/general-step.ts +++ /dev/null @@ -1,381 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.ViewModels.Wizard { - import ISubCategory = Sdc.Models.ISubCategory; - import IMainCategory = Sdc.Models.IMainCategory; - 'use strict'; - - /* - * TODO: The template (derived from is not necessary here). - * Need to delete it from all remarks. - * */ - - export class UIModel { - tosca:Sdc.Directives.FileUploadModel; - name:string; - description:string; - vendorName:string; - vendorRelease:string; - category:string; - tags:Array; - userId:string; - icon:string; - projectCode:string; - fullName:string; - isAlreadyCertified:boolean; - } - - export class Validation { - validationPattern: RegExp; - contactIdValidationPattern: RegExp; - tagValidationPattern: RegExp; - vendorValidationPattern: RegExp; - commentValidationPattern: RegExp; - projectCodeValidationPattern: RegExp; - } - - export interface IGeneralStepScope extends IWizardCreationStepScope { - model:UIModel; - validation:Validation; - editForm:ng.IFormController; - component: Models.Components.Component; - categories: Array; - latestComponentName:string; - latestCategoryId: string; - latestVendorName: string; - isNew:boolean; - toscaFileExtensions:any; - isCreate:boolean; - - onToscaFileChange():void - validateField(field:any):boolean; - validateName(isInit:boolean): void; - calculateUnique(mainCategory:string, subCategory:string):string; // Build unique string from main and sub category - calculatedTagsMaxLength():number; - setIconToDefault():void; - onVendorNameChange(oldVendorName: string): void; - } - - export class GeneralStepViewModel implements IWizardCreationStep { - - static '$inject' = [ - '$scope', - 'Sdc.Services.CacheService', - 'ValidationPattern', - 'ContactIdValidationPattern', - 'TagValidationPattern', - 'VendorValidationPattern', - 'CommentValidationPattern', - 'ValidationUtils', - 'sdcConfig', - 'ComponentFactory', - 'ProjectCodeValidationPattern' - ]; - - constructor(private $scope:IGeneralStepScope, - private cacheService:Services.CacheService, - private ValidationPattern:RegExp, - private ContactIdValidationPattern:RegExp, - private TagValidationPattern:RegExp, - private VendorValidationPattern:RegExp, - private CommentValidationPattern: RegExp, - private ValidationUtils: Sdc.Utils.ValidationUtils, - private sdcConfig:Models.IAppConfigurtaion, - private ComponentFactory: Sdc.Utils.ComponentFactory, - private ProjectCodeValidationPattern:RegExp - ) { - - this.$scope.registerChild(this); - this.initScopeValidation(); - this.initScopeMethods(); - this.initScope(); - this.$scope.isCreate = this.$scope.data.importFile === undefined; - } - - private initScopeValidation = (): void => { - this.$scope.validation = new Validation(); - this.$scope.validation.validationPattern = this.ValidationPattern; - this.$scope.validation.contactIdValidationPattern = this.ContactIdValidationPattern; - this.$scope.validation.tagValidationPattern = this.TagValidationPattern; - this.$scope.validation.vendorValidationPattern = this.VendorValidationPattern; - this.$scope.validation.commentValidationPattern = this.CommentValidationPattern; - this.$scope.validation.projectCodeValidationPattern = this.ProjectCodeValidationPattern; - }; - - private initScope = ():void => { - - // Init UIModel - this.$scope.model = new UIModel(); - - // Init categories - if(this.$scope.data.componentType === Utils.Constants.ComponentType.RESOURCE){ - this.$scope.categories = this.cacheService.get('resourceCategories'); - } - if (this.$scope.data.componentType === Utils.Constants.ComponentType.SERVICE) { - this.$scope.categories = this.cacheService.get('serviceCategories'); - } - - this.$scope.model.category=''; - - //init file extenstions - this.$scope.toscaFileExtensions = this.sdcConfig.toscaFileExtension; - - // Init Tosca import file - if (this.$scope.data.importFile) { - this.$scope.model.tosca = this.$scope.data.importFile; - } - - // Case insert or update - this.$scope.component = this.$scope.getComponent(); - if ( this.$scope.component!==undefined){ - // Update mode - - //this.$scope.latestCategoryId = this.$scope.component[0].uniqueId; - //this.$scope.latestVendorName = this.$scope.component.vendorName; - this.$scope.latestComponentName = this.$scope.component.name; - this.$scope.isNew=false; - this.resource2ModelUi(this.$scope.component); - } else { - // Create mode - this.$scope.isNew=true; - this.$scope.model.tags=[]; // Init tags - this.$scope.model.userId = this.cacheService.get("user").userId; // Fill user ID from logged in user - this.$scope.model.icon = Utils.Constants.DEFAULT_ICON; // Set the default icon - this.$scope.component = this.ComponentFactory.createEmptyComponent(this.$scope.data.componentType); - } - }; - - private initScopeMethods = ():void => { - - this.$scope.validateField = (field:any):boolean => { - if (field && field.$dirty && field.$invalid){ - return true; - } - return false; - }; - - this.$scope.validateName = (isInit:boolean):void => { - if (isInit===undefined){isInit=false;} - - let name = this.$scope.model.name; - if (!name || name===""){ - if (this.$scope.editForm - && this.$scope.editForm["componentName"] - && this.$scope.editForm["componentName"].$error){ - - // Clear the error name already exists - this.$scope.editForm["componentName"].$setValidity('nameExist', true); - } - - return; - } - let subtype:string = Utils.Constants.ComponentType.RESOURCE == this.$scope.data.componentType? - this.$scope.data.importFile? 'VFC':'VF' : undefined; - - let onFailed = (response) => { - //console.info('onFaild', response); - //this.$scope.isLoading = false; - }; - - let onSuccess = (validation:Models.IValidate) => { - this.$scope.editForm["componentName"].$setValidity('nameExist', validation.isValid); - }; - - if (isInit){ - // When page is init after update - if (this.$scope.model.name !== this.$scope.latestComponentName){ - if(!this.$scope.component.isProduct()) {//TODO remove when backend is ready - this.$scope.component.validateName(name, subtype).then(onSuccess, onFailed); - } - } - } else { - // Validating on change (has debounce) - if (this.$scope.editForm - && this.$scope.editForm["componentName"] - && this.$scope.editForm["componentName"].$error - && !this.$scope.editForm["componentName"].$error.pattern - && this.$scope.model.name !== this.$scope.latestComponentName - ) { - if(!this.$scope.component.isProduct()) { //TODO remove when backend is ready - this.$scope.component.validateName(name, subtype).then(onSuccess, onFailed); - } - } else if (this.$scope.model.name === this.$scope.latestComponentName) { - // Clear the error - this.$scope.editForm["componentName"].$setValidity('nameExist', true); - } - } - }; - - this.$scope.calculateUnique = (mainCategory:string, subCategory:string):string => { - let uniqueId: string = mainCategory; - if(subCategory) { - uniqueId += "_#_" + subCategory; // Set the select category combobox to show the selected category. - } - return uniqueId; - }; - - // Notify the parent if this step valid or not. - this.$scope.$watch("editForm.$valid", (newVal, oldVal) => { - //console.log("editForm validation: " + newVal); - this.$scope.setValidState(newVal); - }); - - this.$scope.setIconToDefault = ():void => { - this.$scope.model.icon = Utils.Constants.DEFAULT_ICON; - }; - - this.$scope.onVendorNameChange = (oldVendorName: string):void => { - if(this.$scope.component.icon === oldVendorName) { - this.$scope.setIconToDefault(); - } - }; - }; - - public save = (callback:Function):void => { - this.modelUi2Resource(); - - let onFailed = (response) => { - callback(false); - }; - - let onSuccess = (component:Models.Components.Component) => { - this.$scope.component = component; - this.$scope.setComponent(this.$scope.component); - this.$scope.latestComponentName = (component.name); - callback(true); - }; - - try { - //Send the form with attached tosca file. - if (this.$scope.isNew===true) { - this.ComponentFactory.createComponentOnServer(this.$scope.component).then(onSuccess, onFailed); - } else { - this.$scope.component.updateComponent().then(onSuccess, onFailed); - } - }catch(e){ - //console.log("ERROR: Error in updating/creating component: " + e); - callback(false); - } - - }; - - public back = (callback:Function):void => { - callback(true); - } - - // Fill the resource properties object with data from UIModel - private modelUi2Resource = ():void => { - - this.$scope.component.name = this.$scope.model.name; - this.$scope.component.description = this.ValidationUtils.stripAndSanitize(this.$scope.model.description); - this.$scope.component.vendorName = this.$scope.model.vendorName; - this.$scope.component.vendorRelease = this.$scope.model.vendorRelease; - this.$scope.component.tags = angular.copy(this.$scope.model.tags); - this.$scope.component.tags.push(this.$scope.model.name); - this.$scope.component.contactId = this.$scope.model.userId; - this.$scope.component.icon = this.$scope.model.icon; - - if(this.$scope.component.isResource()) { - (this.$scope.component).resourceType = "VF"; - - // Handle the tosca file - if (this.$scope.model.tosca && this.$scope.isNew) { - (this.$scope.component).payloadData = this.$scope.model.tosca.base64; - (this.$scope.component).payloadName = this.$scope.model.tosca.filename; - } - - this.$scope.component.categories = this.convertCategoryStringToOneArray(); - } - - if(this.$scope.component.isProduct()) { - this.$scope.component.projectCode = this.$scope.model.projectCode; - // Handle the tosca file - this.$scope.component.categories = undefined; - (this.$scope.component).contacts = new Array(); - (this.$scope.component).contacts.push(this.$scope.component.contactId); - (this.$scope.component).fullName = this.$scope.model.fullName; - } - - if(this.$scope.component.isService()) { - this.$scope.component.projectCode = this.$scope.model.projectCode; - this.$scope.component.categories = this.convertCategoryStringToOneArray(); - } - }; - - // Fill the UIModel from data from resource properties - private resource2ModelUi = (component: Models.Components.Component):void => { - this.$scope.model.name = component.name; - this.$scope.model.description = component.description; - this.$scope.model.vendorName = component.vendorName; - this.$scope.model.vendorRelease = component.vendorRelease; - this.$scope.model.tags = _.reject(component.tags, (item)=>{return item===component.name}); - this.$scope.model.userId = component.contactId; - this.$scope.model.icon = component.icon; - this.$scope.model.projectCode = component.projectCode; - this.$scope.model.isAlreadyCertified = component.isAlreadyCertified(); - - if(!this.$scope.component.isProduct()) { - this.$scope.model.category = this.convertCategoryOneArrayToString(component.categories); - } - - if(component.isProduct()) { - this.$scope.model.fullName = (component).fullName; - - } - - }; - - // Convert category string MainCategory_#_SubCategory to Array with one item (like the server except) - private convertCategoryStringToOneArray = ():Array => { - let tmp = this.$scope.model.category.split("_#_"); - let mainCategory = tmp[0]; - let subCategory = tmp[1]; - - // Find the selected category and add the relevant sub category. - let selectedMainCategory:IMainCategory = _.find(this.$scope.categories, function (item) { - return item["name"] === mainCategory - }); - let mainCategoryClone = jQuery.extend(true, {}, selectedMainCategory); - if(subCategory) { - mainCategoryClone['subcategories'] = [{ - "name": subCategory - }]; - } - let tmpSelected = mainCategoryClone; - - let result:Array = []; - result.push(tmpSelected); - - return result; - }; - - private convertCategoryOneArrayToString = (categories:Array):string => { - let mainCategory:string = categories[0].name; - let subCategory:string = ''; - if(categories[0].subcategories) { - subCategory = categories[0].subcategories[0].name; - } - return this.$scope.calculateUnique(mainCategory, subCategory); - }; - - } - -} diff --git a/catalog-ui/app/scripts/view-models/wizard/hierarchy-step/hierarchy-step.html b/catalog-ui/app/scripts/view-models/wizard/hierarchy-step/hierarchy-step.html deleted file mode 100644 index 7fc3e9224f..0000000000 --- a/catalog-ui/app/scripts/view-models/wizard/hierarchy-step/hierarchy-step.html +++ /dev/null @@ -1,40 +0,0 @@ -
      - -
      - -
      -
      -
      -
      - -
      -
      -
      -
      -
      -
      diff --git a/catalog-ui/app/scripts/view-models/wizard/hierarchy-step/hierarchy-step.less b/catalog-ui/app/scripts/view-models/wizard/hierarchy-step/hierarchy-step.less deleted file mode 100644 index 74786c127a..0000000000 --- a/catalog-ui/app/scripts/view-models/wizard/hierarchy-step/hierarchy-step.less +++ /dev/null @@ -1,125 +0,0 @@ -.hierarchy-step { - margin-top: 35px; - - .scrollbar-container{ - max-height:400px; - .perfect-scrollbar; - } - - .dropdown-container { - position: relative; - display: inline-block; - width: 100%; - - &:after{ - top: 47%; - right: 1%; - border: solid transparent; - content: " "; - height: 0; - width: 0; - position: absolute; - pointer-events: none; - border-color: rgba(0, 0, 0, 0); - border-top-color: black; - border-width: 4px; - margin-left: -4px; - } - - .dropdown-input-text { - width: 100%; - padding: 4px 10px; - } - - .dropdown-content { - .perfect-scrollbar; - border: 1px solid #d8d8d8; - display: none; - position: absolute; - overflow: hidden; - width: 100%; - .bg_c; - max-height: 400px; - z-index: 999999; - - .dropdown-option { - border-bottom: 1px solid #d8d8d8; - display: inline-block; - width: 100%; - } - - .category-container{ - width: 250px; - float: left; - padding-left: 5px; - - .category { - .bold; - padding: 3px 3px 2px 3px; - &:after{ - .sprite; - .arrow-left; - content: ''; - margin-left: 5px; - transform: rotate(180deg); - } - } - .subcategory { - padding-left: 3px; - } - } - - .groupings-container{ - display: inline-block; - width: 424px; - border-left: 1px solid #d8d8d8; - min-height: 55px; - .group{ - padding: 3px 3px 3px 10px; - &:hover{ - .hand; - .bg_n; - } - &.disabled-group { - opacity: 0.5; - &:hover{ - cursor: auto; - .bg_c; - } - } - } - } - - .seperator { - height: 1px; - width: 100%; - .bg_j; - margin: 5px 0px; - } - } - .show { - display: block; - } - } - - .hierarchy-groups-container{ - .b_9; - width: 100%; - border: 1px solid #d8d8d8; - height: 425px; - padding: 15px; - text-align: center; - - .no-group-text{ - text-align: center; - margin-top:25px; - a { - cursor: pointer; - } - } - .group-tag{ - display: inline-block; - float: left; - } - } -} diff --git a/catalog-ui/app/scripts/view-models/wizard/hierarchy-step/hierarchy-step.ts b/catalog-ui/app/scripts/view-models/wizard/hierarchy-step/hierarchy-step.ts deleted file mode 100644 index a974c0af81..0000000000 --- a/catalog-ui/app/scripts/view-models/wizard/hierarchy-step/hierarchy-step.ts +++ /dev/null @@ -1,149 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.ViewModels.Wizard { - 'use strict'; - - export interface IHierarchyStepScope extends IWizardCreationScope { - - categoriesOptions: Array; - product:Models.Components.Product; - isLoading:boolean; - showDropDown:boolean; - - onInputTextClicked():void; - onGroupSelected(category: Models.IMainCategory, subcategory: Models.ISubCategory, group: Models.IGroup):void; - clickOutside():void; - deleteGroup(uniqueId:string):void; - } - - export class HierarchyStepViewModel implements IWizardCreationStep { - - static '$inject' = [ - '$scope', - 'Sdc.Services.CacheService', - 'ComponentFactory' - ]; - - constructor(private $scope:IHierarchyStepScope, - private cacheService:Sdc.Services.CacheService, - private ComponentFactory: Sdc.Utils.ComponentFactory) { - - this.$scope.registerChild(this); - this.$scope.setValidState(true); - this.$scope.product = this.$scope.getComponent(); - this.initScope(); - } - - private initCategories = () => { - this.$scope.categoriesOptions = angular.copy(this.cacheService.get('productCategories')); - let selectedGroup:Array = []; - _.forEach(this.$scope.product.categories, (category: Models.IMainCategory) => { - _.forEach(category.subcategories, (subcategory:Models.ISubCategory) => { - selectedGroup = selectedGroup.concat(subcategory.groupings); - }); - }); - _.forEach(this.$scope.categoriesOptions, (category: Models.IMainCategory) => { - _.forEach(category.subcategories, (subcategory:Models.ISubCategory) => { - _.forEach(subcategory.groupings, (group:Models.ISubCategory) => { - let componentGroup:Models.IGroup = _.find(selectedGroup, (componentGroupObj) => { - return componentGroupObj.uniqueId == group.uniqueId; - }); - if(componentGroup){ - group.isDisabled = true; - } - }); - }); - }); - }; - - private setFormValidation = ():void => { - if(!this.$scope.product.categories || this.$scope.product.categories.length === 0){ - this.$scope.setValidState(false); - } - else{ - this.$scope.setValidState(true); - } - - }; - - private initScope = ():void => { - this.$scope.isLoading= false; - this.$scope.showDropDown =false; - this.initCategories(); - this.setFormValidation(); - - this.$scope.onGroupSelected = (category: Models.IMainCategory, subcategory: Models.ISubCategory, group: Models.IGroup):void => { - this.$scope.showDropDown = false; - this.$scope.product.addGroup(category, subcategory, group); - group.isDisabled = true; - this.setFormValidation(); - }; - - this.$scope.onInputTextClicked = ():void => {//just edit the component in place, no pop up nor server update ? - this.$scope.showDropDown = !this.$scope.showDropDown; - }; - - this.$scope.clickOutside = (): any => { - this.$scope.showDropDown = false; - }; - - this.$scope.deleteGroup = (uniqueId:string) : void => { - //delete group from component - this.$scope.product.deleteGroup(uniqueId); - this.setFormValidation(); - //enabled group - _.forEach(this.$scope.categoriesOptions, (category: Models.IMainCategory) => { - _.forEach(category.subcategories, (subcategory:Models.ISubCategory) => { - let groupObj:Models.IGroup = _.find (subcategory.groupings, (group) => { - return group.uniqueId === uniqueId; - }); - if(groupObj){ - groupObj.isDisabled = false; - } - }); - }); - } - }; - - public save = (callback:Function):void => { - let onFailed = (response) => { - callback(false); - }; - - let onSuccess = (component: Models.Components.Component) => { - this.$scope.product = this.ComponentFactory.createComponent(component); - this.$scope.setComponent(this.$scope.product); - callback(true); - }; - - try { - this.$scope.product.updateComponent().then(onSuccess, onFailed); - }catch(e){ - //console.log("ERROR: Error in updating/creating component: " + e); - callback(false); - } - }; - - public back = (callback:Function):void => { - this.save(callback); - } - } -} diff --git a/catalog-ui/app/scripts/view-models/wizard/icons-step/icons-step.html b/catalog-ui/app/scripts/view-models/wizard/icons-step/icons-step.html deleted file mode 100644 index 2ae386283c..0000000000 --- a/catalog-ui/app/scripts/view-models/wizard/icons-step/icons-step.html +++ /dev/null @@ -1,26 +0,0 @@ -
      - -
      - -
      -
      -
      -
      - - -
      -
      -
      -
      -
      -
      -
      -
      diff --git a/catalog-ui/app/scripts/view-models/wizard/icons-step/icons-step.less b/catalog-ui/app/scripts/view-models/wizard/icons-step/icons-step.less deleted file mode 100644 index c03c949962..0000000000 --- a/catalog-ui/app/scripts/view-models/wizard/icons-step/icons-step.less +++ /dev/null @@ -1,55 +0,0 @@ -.icons-step { - - .w-sdc-form { - padding-top: 0px; - padding-bottom: 0px; - .selected-icon-container { - text-align: left; - border: 1px solid #cfcfcf; - clear: both; - margin-bottom: 15px; - padding-left: 3px; - padding-bottom: 3px; - .selected-icon { - margin: 8px 5px 0px 6px; - } - } - - .suggested-icons-container { - text-align: left; - border: 1px solid #cfcfcf; - clear: both; - padding-left: 3px; - height: 340px; - margin-bottom: 0px; - - .suggested-icon-wrapper { - margin: 8px 5px 0px 6px; - display: inline-block; - - &.selected { - border: 1px solid @color_p; - border-radius: 25px; - box-shadow: 0 0 2px #888; - display: inline-block; - line-height: 0px; - padding: 2px; - } - - } - .suggested-icon { - // margin: 8px 5px 0px 6px; - display: inline-block; - &.disable{ - opacity: 0.4; - } - } - - - } - - .icons-label { - float: left; - } - } -} diff --git a/catalog-ui/app/scripts/view-models/wizard/icons-step/icons-step.ts b/catalog-ui/app/scripts/view-models/wizard/icons-step/icons-step.ts deleted file mode 100644 index 4dc5e377fa..0000000000 --- a/catalog-ui/app/scripts/view-models/wizard/icons-step/icons-step.ts +++ /dev/null @@ -1,150 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.ViewModels.Wizard { - 'use strict'; - - export interface IIconsStepScope extends IWizardCreationStepScope{ - icons : Array; - component: Models.Components.Component; - iconSprite: string; - setComponentIcon(iconSrc:string): void; - } - - export class IconsStepViewModel implements IWizardCreationStep { - - static '$inject' = [ - '$scope', - 'Sdc.Services.AvailableIconsService', - 'ComponentFactory' - ]; - - constructor(private $scope:IIconsStepScope, - private availableIconsService:Services.AvailableIconsService, - private ComponentFactory: Sdc.Utils.ComponentFactory) { - - this.$scope.registerChild(this); - this.$scope.component = this.$scope.getComponent(); - this.$scope.iconSprite = this.$scope.component.iconSprite; - this.initScope(); - this.initIcons(); - - if(this.$scope.component.isResource()) { - this.initVendor(); - } - // In case there is one icons select it. - if( this.$scope.icons.length == 1 && !this.$scope.component.isAlreadyCertified()){ - this.$scope.setComponentIcon(this.$scope.icons[0]); - } - } - - private initIcons = ():void => { - - // For subcategories that where created by admin, there is no icons - this.$scope.icons = new Array(); - if (this.$scope.component.categories && this.$scope.component.categories.length > 0) { - - _.forEach(this.$scope.component.categories, (category:Models.IMainCategory):void => { - if (category.icons) { - this.$scope.icons = this.$scope.icons.concat(category.icons); - } - if (category.subcategories) { - _.forEach(category.subcategories, (subcategory:Models.ISubCategory):void => { - if (subcategory.icons) { - this.$scope.icons = this.$scope.icons.concat(subcategory.icons); - } - }); - } - }); - } - - if (this.$scope.component.isResource()) { - let resourceType:string = this.$scope.component.getComponentSubType(); - if (resourceType === 'VL') { - this.$scope.icons = ['vl']; - } - if (resourceType === 'CP') { - this.$scope.icons = ['cp']; - } - } - - if (this.$scope.icons.length === 0) { - this.$scope.icons = this.availableIconsService.getIcons(this.$scope.component.componentType); - } - - }; - - private initVendor = ():void => { - let vendors:Array = this.availableIconsService.getIcons(this.$scope.component.componentType).slice(5, 19); - let vendorName = this.$scope.component.vendorName.toLowerCase(); - if ('at&t' === vendorName){ - vendorName = 'att'; - } - if ('nokia' === vendorName){ - vendorName = 'nokiasiemens'; - } - - let vendor:string = _.find(vendors, (vendor:string)=>{ - return vendor.replace(/[_]/g, '').toLowerCase() === vendorName; - }); - - if(vendor && this.$scope.icons.indexOf(vendor)===-1) { - this.$scope.icons.push(vendor); - } - }; - - private initScope():void { - this.$scope.icons = []; - - if(this.$scope.component.icon === Utils.Constants.DEFAULT_ICON){ - this.$scope.setValidState(false); - } - - this.$scope.setComponentIcon = (iconSrc:string):void => { - this.$scope.component.icon = iconSrc; - this.$scope.setValidState(true); - } - } - - save(callback:Function):void { - let onFailed = () => { - callback(false); - }; - - let onSuccess = (component:Models.Components.Component) => { - this.$scope.component = component; - this.$scope.setComponent(this.$scope.component); - callback(true); - }; - - try { - this.$scope.component.updateComponent().then(onSuccess, onFailed); - }catch(e){ - callback(false); - } - } - - public back = (callback:Function):void => { - this.save(callback); - } - - } - -} diff --git a/catalog-ui/app/scripts/view-models/wizard/properties-step/properties-step.html b/catalog-ui/app/scripts/view-models/wizard/properties-step/properties-step.html deleted file mode 100644 index 4429451871..0000000000 --- a/catalog-ui/app/scripts/view-models/wizard/properties-step/properties-step.html +++ /dev/null @@ -1,57 +0,0 @@ -
      - -
      Add
      - -
      - -
      -
      -
      {{header.title}} - -
      -
      - -
      - -
      - -
      - There are no properties to display
      - click here to add one -
      -
      - -
      - - {{property.name}} - -
      - -
      - -
      - -
      - -
      - - -
      - - -
      -
      -
      -
      -
      - -
      -
      - -
      diff --git a/catalog-ui/app/scripts/view-models/wizard/properties-step/properties-step.less b/catalog-ui/app/scripts/view-models/wizard/properties-step/properties-step.less deleted file mode 100644 index 0d7dad8dc2..0000000000 --- a/catalog-ui/app/scripts/view-models/wizard/properties-step/properties-step.less +++ /dev/null @@ -1,55 +0,0 @@ -.properties-step { - - .w-sdc-classic-btn { - float: right; - margin-bottom: 10px; - } - - .table{ - height: 412px; - margin-bottom: 0; - } - - .table-container-flex { - margin-top: 0px; - - .text{ - overflow: hidden; - text-overflow: ellipsis; - display: inline-block; - white-space: nowrap; - padding: 5px 4px; - - } - - .flex-item:nth-child(1) { - flex-grow: 15; - - .hand; - span.table-arrow { - margin-right: 7px; - } - } - - .flex-item:nth-child(2) { - flex-grow: 6; - } - - .flex-item:nth-child(3) { - flex-grow: 9; - } - - .flex-item:nth-child(4) { - flex-grow: 3; - //padding-top: 10px; - padding: 10px 4px; - - } - - .flex-item:nth-child(5) { - flex-grow: 1; - } - - } - -} diff --git a/catalog-ui/app/scripts/view-models/wizard/properties-step/properties-step.ts b/catalog-ui/app/scripts/view-models/wizard/properties-step/properties-step.ts deleted file mode 100644 index 08dfb5e153..0000000000 --- a/catalog-ui/app/scripts/view-models/wizard/properties-step/properties-step.ts +++ /dev/null @@ -1,123 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.ViewModels.Wizard { - 'use strict'; - - interface IPropertiesStepViewModelScope extends IWizardCreationStepScope { - component: Models.Components.Component; - tableHeadersList: Array; - reverse: boolean; - sortBy:string; - - addOrUpdateProperty(): void; - delete(property: Models.PropertyModel): void; - sort(sortBy:string): void; - } - - export class PropertiesStepViewModel implements IWizardCreationStep { - - static '$inject' = [ - '$scope', - '$filter', - '$modal', - '$templateCache', - 'ModalsHandler' - ]; - - - constructor( - private $scope:IPropertiesStepViewModelScope, - private $filter:ng.IFilterService, - private $modal:ng.ui.bootstrap.IModalService, - private $templateCache:ng.ITemplateCacheService, - private ModalsHandler: Utils.ModalsHandler - ){ - - this.$scope.registerChild(this); - this.$scope.setValidState(true); - this.initScope(); - } - - public save = (callback:Function):void => { - this.$scope.setComponent(this.$scope.component); - callback(true); - }; - - public back = (callback:Function):void => { - this.$scope.setComponent(this.$scope.component); - callback(true); - } - - - private openEditPropertyModal = (property: Models.PropertyModel): void => { - let viewModelsHtmlBasePath: string = '/app/scripts/view-models/'; - - let modalOptions: ng.ui.bootstrap.IModalSettings = { - template: this.$templateCache.get(viewModelsHtmlBasePath+'wizard/property-form/property-form.html'), - controller: 'Sdc.ViewModels.Wizard.PropertyFormViewModel', - size: 'sdc-md', - backdrop: 'static', - keyboard: false, - resolve: { - property: (): Models.PropertyModel => { - return property; - }, - component: (): Models.Components.Component => { - return this.$scope.getComponent(); - } - } - }; - this.$modal.open(modalOptions); - }; - - private initScope = (): void => { - - let self = this; - this.$scope.component = this.$scope.getComponent(); - this.$scope.sortBy = 'name'; - this.$scope.reverse = false; - - this.$scope.tableHeadersList = [ - {title:'Name', property: 'name'}, - {title:'Type', property: 'type'}, - {title:'Default Value', property: 'defaultValue'} - ]; - this.$scope.sort = (sortBy:string):void => { - this.$scope.reverse = (this.$scope.sortBy === sortBy) ? !this.$scope.reverse : false; - this.$scope.sortBy = sortBy; - }; - - this.$scope.addOrUpdateProperty = (property?: Models.PropertyModel): void => { - this.openEditPropertyModal(property ? property : new Models.PropertyModel()); - }; - - this.$scope.delete = (property: Models.PropertyModel): void => { - - let onOk = (): void => { - this.$scope.component.deleteProperty(property.uniqueId); - }; - let title:string = this.$filter('translate')("PROPERTY_VIEW_DELETE_MODAL_TITLE"); - let message:string = this.$filter('translate')("PROPERTY_VIEW_DELETE_MODAL_TEXT", "{'name': '" + property.name + "'}"); - this.ModalsHandler.openConfirmationModal(title, message, false).then(onOk); - }; - } - } -} diff --git a/catalog-ui/app/scripts/view-models/wizard/property-form/property-form-view-model-tests.ts b/catalog-ui/app/scripts/view-models/wizard/property-form/property-form-view-model-tests.ts deleted file mode 100644 index 3f390841ca..0000000000 --- a/catalog-ui/app/scripts/view-models/wizard/property-form/property-form-view-model-tests.ts +++ /dev/null @@ -1,163 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// - -describe("property form View Model ", () => { - - let $controllerMock:ng.IControllerService; - let $qMock:ng.IQService; - let $httpBackendMock:ng.IHttpBackendService; - let $scopeMock:Sdc.ViewModels.Wizard.IPropertyFormViewModelScope; - let $stateMock:ng.ui.IStateService; - let $stateParams:any; - let component = { - "uniqueId": "ece818e0-fd59-477a-baf6-e27461a7ce23", - "uuid": "8db823c2-6a9c-4636-8676-f5e713270dd7", - "contactId": "uf2345", - "category": "Network Layer 2-3/Router", - "creationDate": 1447235352429, - "description": "u", - "highestVersion": true, - "icon": "network", - "lastUpdateDate": 1447235370064, - "lastUpdaterUserId": "cs0008", - "lastUpdaterFullName": "Carlos Santana", - "lifecycleState": "NOT_CERTIFIED_CHECKOUT", - "name": "u", - "version": "0.1", - "type": 1, - "tags": [ - "u" - ], - "vendorName": "u", - "vendorRelease": "u", - "systemName": "U", - "$$hashKey": "object:34" - }; - - - beforeEach(angular.mock.module('sdcApp')); - - beforeEach(angular.mock.inject((_$controller_:ng.IControllerService, - _$httpBackend_:ng.IHttpBackendService, - _$rootScope_, - _$q_:ng.IQService, - _$state_:ng.ui.IStateService, - _$stateParams_:any) => { - - $controllerMock = _$controller_; - $httpBackendMock = _$httpBackend_ - $scopeMock = _$rootScope_.$new(); - $qMock = _$q_; - $stateMock = _$state_; - $stateParams = _$stateParams_; - - - //handle all http request thet not relevant to the tests - $httpBackendMock.expectGET(/.*languages\/en_US.json.*/).respond(200, JSON.stringify({})); - // $httpBackendMock.expectGET(/.*resources\/certified\/abstract.*/).respond(200, JSON.stringify({})); - $httpBackendMock.expectGET(/.*rest\/version.*/).respond(200, JSON.stringify({})); - $httpBackendMock.expectGET(/.*configuration\/ui.*/).respond(200, JSON.stringify({})); - $httpBackendMock.expectGET(/.*user\/authorize.*/).respond(200, JSON.stringify({})); - $httpBackendMock.expectGET(/.*categories\/services.*/).respond(200, JSON.stringify({})); - $httpBackendMock.expectGET(/.*categories\/resources.*/).respond(200, JSON.stringify({})); - $httpBackendMock.expectGET(/.*categories\/products.*/).respond(200, JSON.stringify({})); - $httpBackendMock.expectGET('http://feHost:8181/sdc1/feProxy/rest/version').respond(200, JSON.stringify({})); - - /** - * Mock the service - * @type {any} - */ - //getAllEntitiesDefered = $qMock.defer(); - //getAllEntitiesDefered.resolve(getAllEntitiesResponseMock); - //entityServiceMock = jasmine.createSpyObj('entityServiceMock', ['getAllComponents']); - //entityServiceMock.getAllComponents.and.returnValue(getAllEntitiesDefered.promise); - - // $stateParams['show'] = ''; - - /** - * Need to inject into the controller only the objects that we want to MOCK - * those that we need to change theirs behaviors - */ - $controllerMock(Sdc.ViewModels.Wizard.PropertyFormViewModel, { - '$scope': $scopeMock, - 'property': new Sdc.Models.PropertyModel(), - 'component': component, - }); - - })); - - describe("when Controller 'PropertyFormViewModel' created", () => { - - it('should have a regexp per each type', () => { - $scopeMock.$apply(); - expect(Object.keys($scopeMock.listRegex).length).toBe($scopeMock.editPropertyModel["simpleTypes"].length); - }); - - it('should have equal regexps for map and list', () => { - $scopeMock.$apply(); - expect(Object.keys($scopeMock.listRegex).length).toBe(Object.keys($scopeMock.mapRegex).length); - }); - - }); - - /*describe("when Controller 'DashboardViewModel' created", () => { - - it('should generate all entities', () => { - $scopeMock.$apply(); - expect($scopeMock.components.length).toBe(getAllEntitiesResponseMock.length); - }); - - - it('should show tutorial page ', () => { - $stateParams.show = 'tutorial'; - - $controllerMock(Sdc.ViewModels.DashboardViewModel, { - '$scope': $scopeMock, - '$stateParams': $stateParams, - 'Sdc.Services.EntityService': entityServiceMock, - //to complete injects - }); - - $scopeMock.$apply(); - expect($scopeMock.isFirstTime).toBeTruthy(); - expect($scopeMock.showTutorial).toBeTruthy(); - }); - - }); - - - describe("when function 'entitiesCount' invoked", () => { - - beforeEach(() => { - $controllerMock(Sdc.ViewModels.DashboardViewModel, { - '$scope': $scopeMock, - 'Sdc.Services.EntityService': entityServiceMock, - }); - $scopeMock.$apply(); - }); - - it('should return entities count per folder', () => { - - }); - - - });*/ -}); diff --git a/catalog-ui/app/scripts/view-models/wizard/property-form/property-form-view-model.ts b/catalog-ui/app/scripts/view-models/wizard/property-form/property-form-view-model.ts deleted file mode 100644 index 5cb0ef1ddd..0000000000 --- a/catalog-ui/app/scripts/view-models/wizard/property-form/property-form-view-model.ts +++ /dev/null @@ -1,250 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// - -module Sdc.ViewModels.Wizard { - 'use strict'; - - export interface IEditPropertyModel{ - property: Models.PropertyModel; - types: Array; - simpleTypes: Array; - sources: Array; - } - - export interface IPropertyFormViewModelScope extends ng.IScope{ - - $$childTail: any; - editForm:ng.IFormController; - forms:any; - footerButtons: Array; - isNew: boolean; - isLoading: boolean; - validationPattern: RegExp; - propertyNameValidationPattern: RegExp; - integerValidationPattern: RegExp; - floatValidationPattern: RegExp; - commentValidationPattern: RegExp; - listRegex: Sdc.Utils.IMapRegex; - mapRegex: Sdc.Utils.IMapRegex; - editPropertyModel: IEditPropertyModel; - modalInstanceProperty: ng.ui.bootstrap.IModalServiceInstance; - save(doNotCloseModal?: boolean): void; - saveAndAnother(): void; - getValidation(): RegExp; - validateIntRange(value:string):boolean; - close(): void; - onValueChange(): void; - onTypeChange(resetSchema:boolean): void; - showSchema(): boolean; - getValidationTranslate():string; - validateUniqueKeys(viewValue:string):boolean; - } - - export class PropertyFormViewModel{ - - private originalValue: string; - - static '$inject' = [ - '$scope', - '$modalInstance', - 'property', - 'ValidationPattern', - 'PropertyNameValidationPattern', - 'IntegerNoLeadingZeroValidationPattern', - 'FloatValidationPattern', - 'CommentValidationPattern', - 'ValidationUtils', - 'component' - ]; - - private formState: Utils.Constants.FormState; - private entityId: string; - private resourceInstanceUniqueId: string; - private readonly: boolean; - - constructor( - private $scope:IPropertyFormViewModelScope, - private $modalInstance: ng.ui.bootstrap.IModalServiceInstance, - private property : Models.PropertyModel, - private ValidationPattern : RegExp, - private PropertyNameValidationPattern: RegExp, - private IntegerNoLeadingZeroValidationPattern : RegExp, - private FloatValidationPattern : RegExp, - private CommentValidationPattern: RegExp, - private ValidationUtils: Sdc.Utils.ValidationUtils, - private component:Models.Components.Component - ){ - this.entityId = this.component.uniqueId; - this.formState = angular.isDefined(property.name) ? Utils.Constants.FormState.UPDATE : Utils.Constants.FormState.CREATE; - this.initScope(); - } - - - private initResource = (): void => { - this.$scope.editPropertyModel.property = new Sdc.Models.PropertyModel(this.property); - this.originalValue = this.property.defaultValue; - if(this.$scope.editPropertyModel.types.indexOf(this.property.type) === -1 && !this.$scope.isNew){ - this.property.type = "string"; - } - }; - - private initEditPropertyModel = (): void => { - this.$scope.editPropertyModel = { - property: null, - types: ['integer', 'string', 'float', 'boolean', 'list', 'map'], - simpleTypes: ['integer', 'string', 'float', 'boolean'], - sources: ['A&AI', 'Order', 'Runtime'] - }; - - this.initResource(); - }; - - private initScope = (): void => { - - this.$scope.modalInstanceProperty = this.$modalInstance; - //scope properties - this.$scope.validationPattern = this.ValidationPattern; - this.$scope.propertyNameValidationPattern = this.PropertyNameValidationPattern; - this.$scope.integerValidationPattern = this.IntegerNoLeadingZeroValidationPattern; - this.$scope.floatValidationPattern = this.FloatValidationPattern; - this.$scope.commentValidationPattern = this.CommentValidationPattern; - - //map & list validation patterns - this.$scope.listRegex = this.ValidationUtils.getPropertyListPatterns(); - this.$scope.mapRegex = this.ValidationUtils.getPropertyMapPatterns(); - - this.$scope.isLoading = false; - this.$scope.isNew = (this.formState === Utils.Constants.FormState.CREATE); - this.initEditPropertyModel(); - - //scope methods - this.$scope.save = (): void => { - this.$scope.editPropertyModel.property.description = this.ValidationUtils.stripAndSanitize(this.$scope.editPropertyModel.property.description); - this.$scope.isLoading = true; - - let onFailed = (response) => { - console.info('onFaild',response); - this.$scope.isLoading = false; - this.$scope.editPropertyModel.property.readonly = this.readonly; - this.$scope.editPropertyModel.property.resourceInstanceUniqueId = this.resourceInstanceUniqueId; - }; - - let onSuccess = (property: Models.PropertyModel): void => { - console.info('property added : ',property); - this.$scope.isLoading = false; - property.resourceInstanceUniqueId = this.resourceInstanceUniqueId; - property.readonly = (property.parentUniqueId !== this.component.uniqueId) /*|| this.component.isService()*/; - - this.$modalInstance.close(); - }; - - this.resourceInstanceUniqueId = this.$scope.editPropertyModel.property.resourceInstanceUniqueId; - this.readonly = this.$scope.editPropertyModel.property.readonly; - this.$scope.editPropertyModel.property.defaultValue = this.$scope.editPropertyModel.property.defaultValue ? this.$scope.editPropertyModel.property.defaultValue:null; - - this.component.addOrUpdateProperty(this.$scope.editPropertyModel.property).then(onSuccess, onFailed); - }; - - this.$scope.saveAndAnother = (): void => { - this.$scope.save(); - }; - - this.$scope.showSchema = () :boolean => { - return ['list', 'map'].indexOf(this.$scope.editPropertyModel.property.type) > -1; - }; - - this.$scope.getValidationTranslate = () : string => { - let result = "PROPERTY_EDIT_PATTERN"; - if (this.$scope.showSchema()) { - - result = "PROPERTY_EDIT_" + this.$scope.editPropertyModel.property.type.toUpperCase(); - - if(this.$scope.editPropertyModel.property.schema.property.type === 'string') { - result += "_STRING"; - } else { - result += "_GENERIC"; - } - } - - return result; - }; - - this.$scope.getValidation = () : RegExp => { - let type = this.$scope.editPropertyModel.property.type; - switch (type){ - case 'integer': - return this.$scope.integerValidationPattern; - case 'float': - return this.$scope.floatValidationPattern; - case 'list': - return this.$scope.listRegex[this.$scope.editPropertyModel.property.schema.property.type]; - case 'map': - return this.$scope.mapRegex[this.$scope.editPropertyModel.property.schema.property.type]; - default : - return null; - } - }; - - this.$scope.validateUniqueKeys = (viewValue:string) : boolean => { - if(this.$scope.editPropertyModel.property.type === 'map') { - return this.ValidationUtils.validateUniqueKeys(viewValue); - } - else { - return true; //always valid if not a map - } - }; - - this.$scope.validateIntRange = (value:string):boolean => { - return !value || this.ValidationUtils.validateIntRange(value); - }; - - this.$scope.close = (): void => { - this.$modalInstance.close(); - }; - - this.$scope.onValueChange = (): void => { - if(!this.$scope.editPropertyModel.property.defaultValue && this.$scope.editPropertyModel.property.required) { - this.$scope.editPropertyModel.property.defaultValue = this.originalValue; - } - }; - - this.$scope.onTypeChange = (resetSchema:boolean): void => { - this.$scope.editPropertyModel.property.defaultValue = ''; - if (resetSchema) { - this.$scope.editPropertyModel.property.schema.property.type = ''; - } - }; - - //new form layout for import asset - this.$scope.forms = {}; - this.$scope.footerButtons = [ - {'name': this.$scope.isNew ? 'Add' : 'Update', 'css':'blue', 'callback': this.$scope.save}, - {'name':'Cancel', 'css':'grey', 'callback': this.$scope.close} - ]; - - this.$scope.$watch('forms.editForm.$invalid', () => { - this.$scope.footerButtons[0].disabled = this.$scope.forms.editForm.$invalid; - }); - - } - - } -} diff --git a/catalog-ui/app/scripts/view-models/wizard/property-form/property-form.html b/catalog-ui/app/scripts/view-models/wizard/property-form/property-form.html deleted file mode 100644 index be237112a4..0000000000 --- a/catalog-ui/app/scripts/view-models/wizard/property-form/property-form.html +++ /dev/null @@ -1,133 +0,0 @@ - - -
      - -
      - -
      - -
      - - - -
      - - - -
      -
      - - -
      - - - -
      - -
      -
      - - -
      - - - - -
      - - - - -
      -
      - -
      - -
      - -
      - - - -
      - -
      -
      - -
      - - - -
      - - - -
      -
      - -
      - -
      -
      - -
      diff --git a/catalog-ui/app/scripts/view-models/wizard/property-form/property-form.less b/catalog-ui/app/scripts/view-models/wizard/property-form/property-form.less deleted file mode 100644 index 52b8564fdb..0000000000 --- a/catalog-ui/app/scripts/view-models/wizard/property-form/property-form.less +++ /dev/null @@ -1,7 +0,0 @@ -.sdc-add-property{ - - .w-sdc-form { - - } - -} diff --git a/catalog-ui/app/scripts/view-models/wizard/wizard-creation-base.html b/catalog-ui/app/scripts/view-models/wizard/wizard-creation-base.html deleted file mode 100644 index afa9307265..0000000000 --- a/catalog-ui/app/scripts/view-models/wizard/wizard-creation-base.html +++ /dev/null @@ -1,12 +0,0 @@ - -
      {{assetName}} | {{assetType}}
      - -
      -
      - -
      -
      - -
      -
      -
      diff --git a/catalog-ui/app/scripts/view-models/wizard/wizard-creation-base.less b/catalog-ui/app/scripts/view-models/wizard/wizard-creation-base.less deleted file mode 100644 index 591186789b..0000000000 --- a/catalog-ui/app/scripts/view-models/wizard/wizard-creation-base.less +++ /dev/null @@ -1,60 +0,0 @@ -.sdc-wizard-wrapper { - display: flex; - padding: 80px 0; - height: 620px; - // So input validation error will be shown outside the modal (long messages). - // overflow: hidden; - - .sdc-wizard-left-content { - width: 400px; - white-space: nowrap; - - .wizard-steps-line { - padding: 0 80px 0 0; - display: block; - } - - } - - .sdc-wizard-right-content { - margin-right: 200px; - /* background-color: #fafafa; */ - height: 100%; - width: 100%; - .perfect-scrollbar; - overflow: visible; - //.animation-duration(2s); - - .sdc-wizard-right-include { - - } - } - -} - -.sprite-green-tick.animated { - .animation-duration(3s); -} - -.sdc-wizard-name-type-label { - position: absolute; - top: 64px; - right: 40px; - - span { - .b_7; - &.name {.bold;} - &.sprite-green-tick { - position: absolute; - left: -22px; - top: 5px; - } - } - -} - -.w-wizard-footer { - button.cancel { - margin-right: 120px; - } -} diff --git a/catalog-ui/app/scripts/view-models/wizard/wizard-creation-base.ts b/catalog-ui/app/scripts/view-models/wizard/wizard-creation-base.ts deleted file mode 100644 index 365d3aedf6..0000000000 --- a/catalog-ui/app/scripts/view-models/wizard/wizard-creation-base.ts +++ /dev/null @@ -1,399 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.ViewModels.Wizard { - 'use strict'; - - export class StepNames { - static general = "General"; - static icon = "Icon"; - static deploymentArtifact = "Deployment Artifact"; - static informationArtifact = "Information Artifact"; - static properties = "Properties"; - static hierarchy = "Hierarchy"; - } - - class FooterButtons { - static cancel = "Cancel"; - static back = "Back"; - static next = "Next"; - static finish = "Finish"; - } - - export class WizardCreationTypes { - static importAsset = "importAsset"; - static create = "create"; - static edit = "edit"; - } - - export class _CreationStep { - name:string; - url:string; - } - - export class CurrentStep { - assetCreationStep:_CreationStep; - reference:IWizardCreationStep; - index:number; - valid: boolean; - } - - export interface IWizardCreationStep { - save(callback:Function):void; - back(callback:Function):void; - } - - export interface IWizardCreationStepScope extends ng.IScope { - data:any; - getComponent():Sdc.Models.Components.Component; - setComponent(component: Sdc.Models.Components.Component):void; - registerChild(child:IWizardCreationStep):void; // Called from the step - setValidState(valid:boolean):void; // Called from the step - } - - export interface IWizardCreationScope extends ng.IScope { - isLoading: boolean; - data:any; // data passed from dashboard (opener), need it on the scope, because general step will use this (extends the scope) - directiveSteps: Array; // Steps for the directive, on the scope (on the scope because need to pass to directive via HTML) - templateUrl: string; // On the scope because need to pass to via HTML - footerButtons: Array; // Wizard footer buttons (on the scope because need to pass to directive via HTML) - assetCreationControl:any; // Link to wizard directive functions. - modalInstance:ng.ui.bootstrap.IModalServiceInstance; // Reference to the modal, so we can close it (on the scope because need to pass to directive via HTML) - assetName:string; - assetType:string; - modalTitle:string; - getComponent():Sdc.Models.Components.Component; - setComponent(component: Sdc.Models.Components.Component):void; - registerChild(child:IWizardCreationStep):void; // Called from the step - setValidState(valid:boolean):void; // Called from the step - } - - export class WizardCreationBaseViewModel { - - component: Sdc.Models.Components.Component; - protected assetCreationSteps: Array<_CreationStep>; // Contains URL and name so we can replace them - currentStep:CurrentStep; - protected type:string; - - constructor(protected $scope:IWizardCreationScope, - protected data:any, - protected ComponentFactory: Utils.ComponentFactory, - protected $modalInstance: ng.ui.bootstrap.IModalServiceInstance - ) { - - this.$scope.data = data; - this.currentStep = new CurrentStep(); - this.currentStep.valid=false; - this.$scope.modalInstance = this.$modalInstance; - this.initScope(); - this.noBackspaceNav(); - - // In case the modal was opened with filled resource (edit mode). - if (data.component){ - this.$scope.setComponent(data.component); - data.componentType = this.$scope.getComponent().componentType; - window.setTimeout(()=>{ - this.safeApply(this.setCurrentStepByIndex(0, false)); - },100); - } else { - // Default step to start with - window.setTimeout(()=>{ - this.safeApply(this.setCurrentStepByIndex(0, false)); - },100); - } - - } - - private safeApply = (fn:any) => { - let phase = this.$scope.$root.$$phase; - if (phase == '$apply' || phase == '$digest') { - if (fn && (typeof(fn) === 'function')) { - fn(); - } - } else { - this.$scope.$apply(fn); - } - }; - - private initScope = ():void => { - - // Control to call functions on wizard step directive - this.$scope.assetCreationControl = {}; - - // Footer buttons definitions for the modal directive. - this.$scope.footerButtons = [ - {"name":FooterButtons.cancel, "css":'white cancel',"callback": ()=>{this.btnCancelClicked();}}, - {"name":FooterButtons.back, "disabled":true, "css":'white back',"callback": ()=>{this.btnBackClicked();}}, - {"name":FooterButtons.next, "disabled":true, "css":'blue next',"callback": ()=>{this.btnNextClicked();}}, - {"name":FooterButtons.finish, "disabled":true, "css":'white finish',"callback": ()=>{this.btnFinishedClicked();}} - ]; - - // Will be called from step constructor to register him. - // So the current step will be the reference. - this.$scope.registerChild=(child:IWizardCreationStep):void => { - this.currentStep.reference=child; - }; - - // Will be called from each step to notify if the step is valid - // The wizard will set the "Next", "Finish" buttons accordingly. - this.$scope.setValidState = (valid:boolean):void => { - this.currentStep.valid=valid; - let currentDirectiveStep:Sdc.Directives.IWizardStep = this.$scope.directiveSteps[this.currentStep.index]; - this.$scope.assetCreationControl.setStepValidity(currentDirectiveStep, valid); - this.footerButtonsStateMachine(); - this.wizardButtonsIconsStateMachine(); - }; - - /** - * Will be called from each step to get current entity. - * This will return copy of the entity (not reference), because I do not want that the step will change entity parameters. - * If the step need to update the entity it can call setComponent function. - * @returns {Sdc.Models.IEntity} - */ - this.$scope.getComponent = ():Sdc.Models.Components.Component => { - return this.component; - }; - - // Will be called from each step after save to update the resource. - this.$scope.setComponent = (component:Sdc.Models.Components.Component):void => { - this.component = component; - }; - - }; - - protected setCurrentStepByName = (stepName:string):boolean => { - let stepIndex:number = this.getStepIndex(stepName); - return this.setCurrentStepByIndex(stepIndex); - }; - - // Set the current step, change the URL in ng-include. - protected setCurrentStepByIndex = (index:number, doSave:boolean=true):boolean => { - let result:boolean = false; - if (this.currentStep.index!==index) { // Check that not pressing on same step, also the first time currentStepIndex=undefined - if (doSave===true) { - this.callStepSave(() => { - // This section will be executed only if success save. - - // Set current step in the left wizard directive = valid - let currentDirectiveStep:Sdc.Directives.IWizardStep = this.$scope.directiveSteps[this.currentStep.index]; - this.$scope.assetCreationControl.setStepValidity(currentDirectiveStep, true); - - // Move to next step - let step:_CreationStep = this.assetCreationSteps[index]; - this.currentStep.index = index; - this.currentStep.assetCreationStep = step; - this.$scope.templateUrl = step.url; - - // Update the next/back buttons and steps buttons. - this.footerButtonsStateMachine(); - this.wizardButtonsIconsStateMachine(); - - // Can not perform step click without enabling the step - this.$scope.directiveSteps[index].enabled = true; // Need to set the step enabled, before clicking it. - this.$scope.assetCreationControl.stepClicked(step.name); - - // After saving the asset name and type will be shown in the top right of the screen. - this.fillAssetNameAndType(); - - result=true; - }); - } else { - // For the first time - let step:_CreationStep = this.assetCreationSteps[index]; - this.currentStep.index = index; - this.currentStep.assetCreationStep=step; - this.$scope.templateUrl = step.url; - this.$scope.directiveSteps[index].enabled = true; // Need to set the step enabled, before clicking it. - this.$scope.assetCreationControl.stepClicked(step.name); - result=true; - } - - //this.updateFooterButtonsStates(); - - } else { - result=true; - } - return result; - }; - - // Save the current step - private callStepSave = (successCallback:Function):void => { - this.$scope.isLoading = true; - this.currentStep.reference.save((result:boolean)=>{ - this.$scope.isLoading = false; - if (result===true){ - successCallback(); - } else { - // Set the next and finish button enabled. - //this.updateFooterButtonsStates(true); - } - }); - }; - - // Save the current step - private callStepBack = (successCallback:Function):void => { - this.$scope.isLoading = true; - this.currentStep.reference.back((result:boolean)=>{ - this.$scope.isLoading = false; - if (result===true){ - successCallback(); - } else { - // Set the next and finish button enabled. - //this.updateFooterButtonsStates(true); - } - }); - }; - - private getStepIndex = (stepName:string):number => { - let index:number=-1; - let tmp = _.find(this.assetCreationSteps, function (item, indx) { - index = indx; - return item.name === stepName; - }); - return index; - }; - - private btnNextClicked = ():void => { - if (this.hasNext()===true) { - let tmp = this.currentStep.index+1; - this.setCurrentStepByIndex(tmp); - } - }; - - private btnBackClicked = ():void => { - if (this.hasBack()===true) { - this.callStepBack(() => { - let tmp = this.currentStep.index-1; - this.setCurrentStepByIndex(tmp, false); - }); - } - }; - - private btnCancelClicked = ():void => { - this.$modalInstance.dismiss(this.$scope.getComponent()); - }; - - private btnFinishedClicked = ():void => { - this.callStepSave(() => { - this.$modalInstance.close(this.$scope.getComponent()); - }); - }; - - // Check if we can move next - private hasNext = ():boolean => { - if (this.assetCreationSteps.length-1>this.currentStep.index){ - return true; - } else { - return false; - } - }; - - // Check if we can move back - private hasBack = ():boolean => { - if (this.currentStep.index===0){ - return false; - } else { - return true; - } - }; - - private fillAssetNameAndType=():void => { - this.$scope.assetName = this.$scope.getComponent().name; - this.$scope.assetType = this.$scope.getComponent().getComponentSubType(); - - }; - - protected enableAllWizardSteps=():void => { - this.$scope.directiveSteps.forEach((step:Sdc.Directives.IWizardStep) => { - step.enabled=true; - }); - }; - - protected disableAllWizardSteps=():void => { - this.$scope.directiveSteps.forEach((step:Sdc.Directives.IWizardStep) => { - step.enabled=false; - }); - }; - - private footerButtonsStateMachine = ():void => { - //console.log("footerButtonsStateMachine, current step validity: " + this.currentStep.valid); - let stepIndex:number = this.currentStep.index; - let cancelButton = this.$scope.footerButtons[0]; - let backButton = this.$scope.footerButtons[1]; - let nextButton = this.$scope.footerButtons[2]; - let finishButton = this.$scope.footerButtons[3]; - - // NEXT button - // Disable next button if it is the last step, and if not check the validity of the step. - if (this.hasNext()){ - nextButton.disabled = !this.currentStep.valid; - } else { - nextButton.disabled = true; - } - - // BACK button - backButton.disabled = !this.hasBack(); - - // FINISH button - // If step 2 is valid show the finish button. - if (stepIndex>=1 && this.currentStep.valid===true) { - finishButton.disabled = false; - } - if (this.currentStep.valid===false){ - finishButton.disabled = true; - } - - // EDIT - if (this.type===WizardCreationTypes.edit && this.currentStep.valid===true){ - finishButton.disabled = false; - } - - }; - - - - private wizardButtonsIconsStateMachine = ():void => { - - // Enable or disable wizard directive next step, in case the current step form is valid or not. - let stepIndex:number = this.currentStep.index; - if (this.$scope.directiveSteps[stepIndex + 1]) { - this.$scope.directiveSteps[stepIndex + 1].enabled = this.currentStep.valid; - } - - // In case step 1 and 2 are valid, we can open all other steps. - if (this.$scope.directiveSteps[0].valid===true && this.$scope.directiveSteps[1].valid===true){ - // Enable all wizard directive steps - this.enableAllWizardSteps(); - } else if (this.currentStep.valid===false) { - // Disable all steps - this.disableAllWizardSteps(); - } - }; - - private noBackspaceNav:Function = ():void => { - this.$scope.$on('$locationChangeStart', (event, newUrl, oldUrl):void =>{ - event.preventDefault(); - }) - }; - - - } - -} diff --git a/catalog-ui/app/scripts/view-models/wizard/wizard-state/create-wizard.ts b/catalog-ui/app/scripts/view-models/wizard/wizard-state/create-wizard.ts deleted file mode 100644 index 9490cddfdb..0000000000 --- a/catalog-ui/app/scripts/view-models/wizard/wizard-state/create-wizard.ts +++ /dev/null @@ -1,114 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/** - * Created by obarda on 3/15/2016. - */ -/// -module Sdc.ViewModels.Wizard { - 'use strict'; - - export class CreateWizardViewModel extends WizardCreationBaseViewModel { - - static '$inject' = [ - '$scope', - 'data', - 'ComponentFactory', - '$modalInstance' - ]; - - constructor(public $scope:IWizardCreationScope, - public data:any, - public ComponentFactory: Sdc.Utils.ComponentFactory, - public $modalInstance: ng.ui.bootstrap.IModalServiceInstance) { - - super($scope, data, ComponentFactory, $modalInstance); - this.type = WizardCreationTypes.create; - this.init(); - this.initCreateAssetScope(); - } - - private init = ():void => { - - switch (this.data.componentType){ - case Utils.Constants.ComponentType.RESOURCE: { - this.assetCreationSteps = [ - {"name": StepNames.general, "url": '/app/scripts/view-models/wizard/general-step/general-step.html'}, - {"name": StepNames.icon, "url": '/app/scripts/view-models/wizard/icons-step/icons-step.html'}, - {"name": StepNames.deploymentArtifact, "url": '/app/scripts/view-models/wizard/artifact-deployment-step/artifact-deployment-step.html'}, - {"name": StepNames.informationArtifact, "url": '/app/scripts/view-models/wizard/artifact-information-step/artifact-information-step.html'}, - {"name": StepNames.properties, "url": '/app/scripts/view-models/wizard/properties-step/properties-step.html'} - ]; - } - break; - - case Utils.Constants.ComponentType.SERVICE: { - this.assetCreationSteps = [ - {"name": StepNames.general, "url": '/app/scripts/view-models/wizard/general-step/general-step.html'}, - {"name": StepNames.icon, "url": '/app/scripts/view-models/wizard/icons-step/icons-step.html'} - ]; - } - break; - - case Utils.Constants.ComponentType.PRODUCT: { - this.assetCreationSteps = [ - {"name": StepNames.general, "url": '/app/scripts/view-models/wizard/general-step/general-step.html'}, - {"name": StepNames.hierarchy, "url": '/app/scripts/view-models/wizard/hierarchy-step/hierarchy-step.html'}, - {"name": StepNames.icon, "url": '/app/scripts/view-models/wizard/icons-step/icons-step.html'} - ]; - } - break; - } - }; - - private initCreateAssetScope = ():void => { - switch (this.data.componentType){ - case Utils.Constants.ComponentType.RESOURCE: { - this.$scope.directiveSteps = [ - {"name": StepNames.general, "enabled": true, "callback": ()=> {return this.setCurrentStepByName(StepNames.general);}}, - {"name": StepNames.icon, "enabled": false, "callback": ()=> {return this.setCurrentStepByName(StepNames.icon);}}, - {"name": StepNames.deploymentArtifact, "enabled": false, "callback": ()=> {return this.setCurrentStepByName(StepNames.deploymentArtifact);}}, - {"name": StepNames.informationArtifact, "enabled": false, "callback": ()=> {return this.setCurrentStepByName(StepNames.informationArtifact);}}, - {"name": StepNames.properties, "enabled": false, "callback": ()=> {return this.setCurrentStepByName(StepNames.properties);}} - ]; - this.$scope.modalTitle = "Create VF"; - break; - } - case Utils.Constants.ComponentType.SERVICE: { - this.$scope.directiveSteps = [ - {"name": StepNames.general, "enabled": true, "callback": ()=> {return this.setCurrentStepByName(StepNames.general);}}, - {"name": StepNames.icon, "enabled": false, "callback": ()=> {return this.setCurrentStepByName(StepNames.icon);}}, - - ]; - this.$scope.modalTitle = "Create Service"; - break; - } - case Utils.Constants.ComponentType.PRODUCT: { - this.$scope.directiveSteps = [ - {"name": StepNames.general, "enabled": true, "callback": ()=> {return this.setCurrentStepByName(StepNames.general);}}, - {"name": StepNames.hierarchy, "enabled":false, "callback": ()=> {return this.setCurrentStepByName(StepNames.hierarchy);}}, - {"name": StepNames.icon, "enabled": false, "callback": ()=> {return this.setCurrentStepByName(StepNames.icon);}} - ]; - this.$scope.modalTitle = "Create Product"; - break; - } - } - } - } -} diff --git a/catalog-ui/app/scripts/view-models/wizard/wizard-state/edit-wizard.ts b/catalog-ui/app/scripts/view-models/wizard/wizard-state/edit-wizard.ts deleted file mode 100644 index 353c487e0a..0000000000 --- a/catalog-ui/app/scripts/view-models/wizard/wizard-state/edit-wizard.ts +++ /dev/null @@ -1,164 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.ViewModels.Wizard { - 'use strict'; - - export class EditWizardViewModel extends WizardCreationBaseViewModel { - - static '$inject' = [ - '$scope', - 'data', - 'ComponentFactory', - '$modalInstance' - ]; - - constructor(public $scope:IWizardCreationScope, - public data:any, - public ComponentFactory: Sdc.Utils.ComponentFactory, - public $modalInstance: ng.ui.bootstrap.IModalServiceInstance) { - - super($scope, data, ComponentFactory, $modalInstance); - this.type = WizardCreationTypes.edit; - this.init(); - this.initCreateAssetScope(); - - // Enable all wizard directive steps - this.enableAllWizardSteps(); - } - - private init = ():void => { - switch (this.data.component.componentType){ - case Utils.Constants.ComponentType.RESOURCE: { - if(this.data.component.isComplex()) { - this.assetCreationSteps = [ - { - "name": StepNames.general, - "url": '/app/scripts/view-models/wizard/general-step/general-step.html' - }, - { - "name": StepNames.icon, - "url": '/app/scripts/view-models/wizard/icons-step/icons-step.html' - }, - { - "name": StepNames.deploymentArtifact, - "url": '/app/scripts/view-models/wizard/artifact-deployment-step/artifact-deployment-step.html' - }, - { - "name": StepNames.informationArtifact, - "url": '/app/scripts/view-models/wizard/artifact-information-step/artifact-information-step.html' - }, - { - "name": StepNames.properties, - "url": '/app/scripts/view-models/wizard/properties-step/properties-step.html' - } - ]; - }else{ - this.assetCreationSteps = [ - {"name": StepNames.general, "url": '/app/scripts/view-models/wizard/general-step/general-step.html'}, - {"name": StepNames.icon, "url": '/app/scripts/view-models/wizard/icons-step/icons-step.html'}, - {"name": StepNames.informationArtifact, "url": '/app/scripts/view-models/wizard/artifact-information-step/artifact-information-step.html'}, - {"name": StepNames.properties, "url": '/app/scripts/view-models/wizard/properties-step/properties-step.html'} - ]; - } - break; - } - case Utils.Constants.ComponentType.SERVICE: { - this.assetCreationSteps = [ - {"name": StepNames.general, "url": '/app/scripts/view-models/wizard/general-step/general-step.html'}, - {"name": StepNames.icon, "url": '/app/scripts/view-models/wizard/icons-step/icons-step.html'} - ]; - break; - } - case Utils.Constants.ComponentType.PRODUCT: { - this.assetCreationSteps = [ - {"name": StepNames.general, "url": '/app/scripts/view-models/wizard/general-step/general-step.html'}, - {"name": StepNames.hierarchy, "url": '/app/scripts/view-models/wizard/hierarchy-step/hierarchy-step.html'}, - {"name": StepNames.icon, "url": '/app/scripts/view-models/wizard/icons-step/icons-step.html'} - ]; - break; - } - } - }; - - private initCreateAssetScope = ():void => { - switch (this.data.component.componentType){ - case Utils.Constants.ComponentType.RESOURCE: { - if(this.data.component.isComplex()) { - this.$scope.directiveSteps = [ - { - "name": StepNames.general, "enabled": true, "callback": ()=> { - return this.setCurrentStepByName(StepNames.general); - } - }, - { - "name": StepNames.icon, "enabled": false, "callback": ()=> { - return this.setCurrentStepByName(StepNames.icon); - } - }, - { - "name": StepNames.deploymentArtifact, "enabled": false, "callback": ()=> { - return this.setCurrentStepByName(StepNames.deploymentArtifact); - } - }, - { - "name": StepNames.informationArtifact, "enabled": false, "callback": ()=> { - return this.setCurrentStepByName(StepNames.informationArtifact); - } - }, - { - "name": StepNames.properties, "enabled": false, "callback": ()=> { - return this.setCurrentStepByName(StepNames.properties); - } - } - ]; - }else{ - this.$scope.directiveSteps = [ - {"name": StepNames.general, "enabled": true, "callback": ()=> {return this.setCurrentStepByName(StepNames.general);}}, - {"name": StepNames.icon, "enabled": false, "callback": ()=> {return this.setCurrentStepByName(StepNames.icon);}}, - {"name": StepNames.informationArtifact, "enabled": false, "callback": ()=> {return this.setCurrentStepByName(StepNames.informationArtifact);}}, - {"name": StepNames.properties, "enabled": false, "callback": ()=> {return this.setCurrentStepByName(StepNames.properties);}} - ]; - } - this.$scope.modalTitle = "Edit " + this.data.component.resourceType; - break; - } - case Utils.Constants.ComponentType.SERVICE: { - this.$scope.directiveSteps = [ - {"name": StepNames.general, "enabled": true, "callback": ()=> {return this.setCurrentStepByName(StepNames.general);}}, - {"name": StepNames.icon, "enabled": false, "callback": ()=> {return this.setCurrentStepByName(StepNames.icon);}} - ]; - this.$scope.modalTitle = "Edit Service"; - break; - } - case Utils.Constants.ComponentType.PRODUCT: { - this.$scope.directiveSteps = [ - {"name": StepNames.general, "enabled": true, "callback": ()=> {return this.setCurrentStepByName(StepNames.general);}}, - {"name": StepNames.hierarchy, "enabled":false, "callback": ()=> {return this.setCurrentStepByName(StepNames.hierarchy);}}, - {"name": StepNames.icon, "enabled": false, "callback": ()=> {return this.setCurrentStepByName(StepNames.icon);}} - ]; - this.$scope.modalTitle = "Edit Product"; - break; - } - } - } - } -} - diff --git a/catalog-ui/app/scripts/view-models/wizard/wizard-state/import-wizard.ts b/catalog-ui/app/scripts/view-models/wizard/wizard-state/import-wizard.ts deleted file mode 100644 index 5fe1bf7e59..0000000000 --- a/catalog-ui/app/scripts/view-models/wizard/wizard-state/import-wizard.ts +++ /dev/null @@ -1,64 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.ViewModels.Wizard { - 'use strict'; - - export class ImportWizardViewModel extends WizardCreationBaseViewModel { - - static '$inject' = [ - '$scope', - 'data', - 'ComponentFactory', - '$modalInstance' - ]; - - constructor(public $scope:IWizardCreationScope, - public data:any, - public ComponentFactory: Sdc.Utils.ComponentFactory, - public $modalInstance: ng.ui.bootstrap.IModalServiceInstance) { - - super($scope, data, ComponentFactory, $modalInstance ); - this.type = WizardCreationTypes.importAsset; - this.init(); - this.initImportAssetScope(); - } - - private init = ():void => { - this.assetCreationSteps = [ - {"name": StepNames.general, "url": '/app/scripts/view-models/wizard/general-step/general-step.html'}, - {"name": StepNames.icon, "url": '/app/scripts/view-models/wizard/icons-step/icons-step.html'}, - {"name": StepNames.informationArtifact, "url": '/app/scripts/view-models/wizard/artifact-information-step/artifact-information-step.html'}, - {"name": StepNames.properties, "url": '/app/scripts/view-models/wizard/properties-step/properties-step.html'} - ]; - }; - - private initImportAssetScope = ():void => { - this.$scope.directiveSteps = [ - {"name": StepNames.general, "enabled": true, "callback": ()=> {return this.setCurrentStepByName(StepNames.general);}}, - {"name": StepNames.icon, "enabled": false, "callback": ()=> {return this.setCurrentStepByName(StepNames.icon);}}, - {"name": StepNames.informationArtifact, "enabled": false, "callback": ()=> {return this.setCurrentStepByName(StepNames.informationArtifact);}}, - {"name": StepNames.properties, "enabled": false, "callback": ()=> {return this.setCurrentStepByName(StepNames.properties);}} - ]; - - this.$scope.modalTitle = "Import Asset"; - }; - } -} diff --git a/catalog-ui/app/scripts/view-models/workspace/tabs/activity-log/activity-log.html b/catalog-ui/app/scripts/view-models/workspace/tabs/activity-log/activity-log.html deleted file mode 100644 index 23c08f6ec6..0000000000 --- a/catalog-ui/app/scripts/view-models/workspace/tabs/activity-log/activity-log.html +++ /dev/null @@ -1,85 +0,0 @@ -
      - -
      - -
      - -
      -
      - - -
      -
      {{header.title}} - -
      -
      - - -
      - - - -
      - There are no logs to display -
      - - -
      - - -
      - {{item.dateFormat}} -
      - - -
      - {{item.ACTION}} -
      - - -
      - {{item.COMMENT}} -
      - - -
      - {{item.MODIFIER}} -
      - - -
      - {{item.STATUS}} - -
      - -
      - -
      -
      -
      -
      - -
      - - - - diff --git a/catalog-ui/app/scripts/view-models/workspace/tabs/activity-log/activity-log.less b/catalog-ui/app/scripts/view-models/workspace/tabs/activity-log/activity-log.less deleted file mode 100644 index 61bb3e9f01..0000000000 --- a/catalog-ui/app/scripts/view-models/workspace/tabs/activity-log/activity-log.less +++ /dev/null @@ -1,83 +0,0 @@ -.activity-log { - - margin-top: 30px; - - .title-wrapper { - display: flex; - justify-content: flex-end; - } - - .table-container-flex .table .body .scrollbar-container { - max-height: 448px; - } - - .view-mode { - background-color: @main_color_p; - } - - .table{ - height: 490px; - margin-bottom: 0; - } - - .table-container-flex { - margin-top: 10px; - - .flex-item:nth-child(1) { width: 200px; } - .flex-item:nth-child(2) { flex-grow: 20; } - .flex-item:nth-child(3) { flex-grow: 30; } - .flex-item:nth-child(4) { flex-grow: 20; } - .flex-item:nth-child(5) { width: 80px; } - - .success { - position: absolute; - top: 11px; - right: 20px; - .sprite-new; - .sdc-success; - } - - .error { - position: absolute; - top: 11px; - right: 20px; - .sprite-new; - .sdc-error; - } - - } - - .data-row { - position: relative; - } - - .top-search { - float: right; - position: relative; - - input.search-text { - .border-radius(2px); - width: 245px; - height: 32px; - line-height: 32px; - border: 1px solid @main_color_o; - margin: 0; - outline: none; - text-indent: 10px; - - &::-webkit-input-placeholder { font-style: italic; } /* Safari, Chrome and Opera */ - &:-moz-placeholder { font-style: italic; } /* Firefox 18- */ - &::-moz-placeholder { font-style: italic; } /* Firefox 19+ */ - &:-ms-input-placeholder { font-style: italic; } /* IE 10+ */ - &:-ms-input-placeholder { font-style: italic; } /* Edge */ - } - - .magnification { - position: absolute; - top: 10px; - right: 10px; - } - - } - -} diff --git a/catalog-ui/app/scripts/view-models/workspace/tabs/activity-log/activity-log.ts b/catalog-ui/app/scripts/view-models/workspace/tabs/activity-log/activity-log.ts deleted file mode 100644 index 665d0c0ef6..0000000000 --- a/catalog-ui/app/scripts/view-models/workspace/tabs/activity-log/activity-log.ts +++ /dev/null @@ -1,122 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.ViewModels { - 'use strict'; - - export interface IActivityLogViewModelScope extends IWorkspaceViewModelScope { - activityDateArray: Array; //this is in order to sort the dates - activityLog: Array; - preVersion:string; - - tableHeadersList: Array; - reverse: boolean; - sortBy:string; - searchBind:string; - - getActivityLog(uniqueId:string):void; - onVersionChanged(version:any) : void; - parseAction(action:string):string; - sort(sortBy:string): void; - } - - export class ActivityLogViewModel { - - static '$inject' = [ - '$scope', - '$state', - 'Sdc.Services.ActivityLogService' - ]; - - constructor(private $scope:IActivityLogViewModelScope, - private $state:ng.ui.IStateService, - private activityLogService:Services.ActivityLogService - ) { - - this.initScope(); - this.$scope.setValidState(true); - this.initSortedTableScope(); - this.$scope.updateSelectedMenuItem(); - - // Set default sorting - this.$scope.sortBy = 'logDate'; - } - - private initScope():void { - - this.$scope.preVersion = this.$scope.component.version; - - this.$scope.onVersionChanged = (version:any):void => { - if (version.versionNumber != this.$scope.component.version) { - this.$scope.isLoading = true; - this.$scope.getActivityLog(version.versionId); - } - }; - - this.$scope.getActivityLog = (uniqueId:any):void => { - - let onError = (response) => { - this.$scope.isLoading = false; - console.info('onFaild', response); - - }; - - let onSuccess = (response:Array) => { - this.$scope.activityLog = _.sortBy(response, function(o) { return o.TIMESTAMP; }); //response; // - this.$scope.isLoading = false; - }; - - this.$scope.isLoading = true; - if (this.$scope.component.isResource()) { - this.activityLogService.getActivityLogService('resources', uniqueId).then(onSuccess, onError); - } - if (this.$scope.component.isService()) { - this.activityLogService.getActivityLogService('services', uniqueId).then(onSuccess, onError); - } - - }; - - if (!this.$scope.activityLog || this.$scope.preVersion != this.$scope.component.version) { - this.$scope.getActivityLog(this.$scope.component.uniqueId); - } - - this.$scope.parseAction = (action:string) => { - return action ? action.split(/(?=[A-Z])/).join(' ') : ''; - }; - - } - - private initSortedTableScope = ():void => { - this.$scope.tableHeadersList = [ - {title: 'Date', property: 'logDate'}, - {title: 'Action', property: 'logAction'}, - {title: 'Comment', property: 'logComment'}, - {title: 'Username', property: 'logUsername'}, - {title: 'Status', property: 'logStatus'} - ]; - - this.$scope.sort = (sortBy:string):void => { - this.$scope.reverse = (this.$scope.sortBy === sortBy) ? !this.$scope.reverse : false; - this.$scope.sortBy = sortBy; - }; - }; - - } -} diff --git a/catalog-ui/app/scripts/view-models/workspace/tabs/attributes/attributes-view-model.ts b/catalog-ui/app/scripts/view-models/workspace/tabs/attributes/attributes-view-model.ts deleted file mode 100644 index 469da6a2e1..0000000000 --- a/catalog-ui/app/scripts/view-models/workspace/tabs/attributes/attributes-view-model.ts +++ /dev/null @@ -1,107 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.ViewModels { - 'use strict'; - - interface IAttributesViewModelScope extends IWorkspaceViewModelScope { - tableHeadersList: Array; - reverse: boolean; - sortBy:string; - - addOrUpdateAttribute(attribute?:Models.AttributeModel): void; - delete(attribute:Models.AttributeModel): void; - sort(sortBy:string): void; - } - - export class AttributesViewModel { - - static '$inject' = [ - '$scope', - '$filter', - '$modal', - '$templateCache', - 'ModalsHandler' - ]; - - - constructor(private $scope:IAttributesViewModelScope, - private $filter:ng.IFilterService, - private $modal:ng.ui.bootstrap.IModalService, - private $templateCache:ng.ITemplateCacheService, - private ModalsHandler:Utils.ModalsHandler) { - this.initScope(); - this.$scope.updateSelectedMenuItem(); - } - - - private openEditAttributeModal = (attribute:Models.AttributeModel):void => { - let viewModelsHtmlBasePath:string = '/app/scripts/view-models/'; - - let modalOptions:ng.ui.bootstrap.IModalSettings = { - template: this.$templateCache.get(viewModelsHtmlBasePath + 'forms/attribute-form/attribute-form-view.html'), - controller: 'Sdc.ViewModels.AttributeFormViewModel', - size: 'sdc-md', - backdrop: 'static', - keyboard: false, - resolve: { - attribute: ():Models.AttributeModel => { - return attribute; - }, - component: ():Models.Components.Component => { - return this.$scope.component; - } - } - }; - this.$modal.open(modalOptions); - }; - - private initScope = ():void => { - - //let self = this; - this.$scope.sortBy = 'name'; - this.$scope.reverse = false; - this.$scope.setValidState(true); - this.$scope.tableHeadersList = [ - {title: 'Name', property: 'name'}, - {title: 'Type', property: 'type'}, - {title: 'Default Value', property: 'defaultValue'} - ]; - this.$scope.sort = (sortBy:string):void => { - this.$scope.reverse = (this.$scope.sortBy === sortBy) ? !this.$scope.reverse : false; - this.$scope.sortBy = sortBy; - }; - - this.$scope.addOrUpdateAttribute = (attribute?:Models.AttributeModel):void => { - this.openEditAttributeModal(attribute ? attribute : new Models.AttributeModel()); - }; - - this.$scope.delete = (attribute:Models.AttributeModel):void => { - - let onOk = ():void => { - this.$scope.component.deleteAttribute(attribute.uniqueId); - }; - let title:string = this.$filter('translate')("ATTRIBUTE_VIEW_DELETE_MODAL_TITLE"); - let message:string = this.$filter('translate')("ATTRIBUTE_VIEW_DELETE_MODAL_TEXT", "{'name': '" + attribute.name + "'}"); - this.ModalsHandler.openConfirmationModal(title, message, false).then(onOk); - }; - } - } -} diff --git a/catalog-ui/app/scripts/view-models/workspace/tabs/attributes/attributes-view.html b/catalog-ui/app/scripts/view-models/workspace/tabs/attributes/attributes-view.html deleted file mode 100644 index 59ba933a0a..0000000000 --- a/catalog-ui/app/scripts/view-models/workspace/tabs/attributes/attributes-view.html +++ /dev/null @@ -1,52 +0,0 @@ -
      -
      Add
      -
      -
      -
      -
      {{header.title}} - -
      -
      - -
      - -
      - -
      - There are no attributes to display
      - click here to add one - -
      -
      - -
      - - {{attribute.name}} - -
      - -
      - -
      - -
      - -
      - - -
      -
      -
      -
      -
      -
      - -
      -
      - -
      diff --git a/catalog-ui/app/scripts/view-models/workspace/tabs/attributes/attributes.less b/catalog-ui/app/scripts/view-models/workspace/tabs/attributes/attributes.less deleted file mode 100644 index ffd28afce4..0000000000 --- a/catalog-ui/app/scripts/view-models/workspace/tabs/attributes/attributes.less +++ /dev/null @@ -1,54 +0,0 @@ -.workspace-attributes { - - width: 93%; - display: inline-block; - .w-sdc-classic-btn { - float: right; - margin-bottom: 10px; - } - - .table{ - height:490px; - margin-bottom: 0; - } - - .table-container-flex { - margin-top: 27px; - - .text{ - overflow: hidden; - text-overflow: ellipsis; - display: inline-block; - white-space: nowrap; - } - - .flex-item:nth-child(1) { - flex-grow: 15; - - .hand; - span.table-arrow { - margin-right: 7px; - } - } - - .flex-item:nth-child(2) { - flex-grow: 6; - } - - .flex-item:nth-child(3) { - flex-grow: 9; - } - - .flex-item:nth-child(4) { - flex-grow: 3; - padding-top: 10px; - } - - .flex-item:nth-child(5) { - flex-grow: 1; - - } - - } - -} diff --git a/catalog-ui/app/scripts/view-models/workspace/tabs/composition/composition-view-model.ts b/catalog-ui/app/scripts/view-models/workspace/tabs/composition/composition-view-model.ts deleted file mode 100644 index f8eeaf7f64..0000000000 --- a/catalog-ui/app/scripts/view-models/workspace/tabs/composition/composition-view-model.ts +++ /dev/null @@ -1,232 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ - -/// -module Sdc.ViewModels { - 'use strict'; - - export interface ICompositionViewModelScope extends IWorkspaceViewModelScope { - - currentComponent: Models.Components.Component; - selectedComponent: Models.Components.Component; - isLoading: boolean; - graphApi:any; - sharingService:Sdc.Services.SharingService; - sdcMenu:Models.IAppMenu; - version:string; - isViewOnly:boolean; - isLoadingRightPanel:boolean; - setComponent(component: Models.Components.Component); - isComponentInstanceSelected():boolean; - updateSelectedComponent(): void - openUpdateModal(); - deleteSelectedComponentInstance():void; - onBackgroundClick():void; - setSelectedInstance(componentInstance: Models.ComponentsInstances.ComponentInstance): void; - printScreen():void; - - cacheComponentsInstancesFullData: Models.Components.Component; - } - - export class CompositionViewModel { - - static '$inject' = [ - '$scope', - '$log', - 'sdcMenu', - 'MenuHandler', - '$modal', - '$templateCache', - '$state', - 'Sdc.Services.SharingService', - '$filter', - 'Sdc.Services.CacheService', - 'ComponentFactory', - 'ChangeLifecycleStateHandler', - 'LeftPaletteLoaderService', - 'ModalsHandler', - 'EventListenerService' - ]; - - constructor(private $scope:ICompositionViewModelScope, - private $log: ng.ILogService, - private sdcMenu:Models.IAppMenu, - private MenuHandler: Utils.MenuHandler, - private $modal:ng.ui.bootstrap.IModalService, - private $templateCache:ng.ITemplateCacheService, - private $state:ng.ui.IStateService, - private sharingService:Services.SharingService, - private $filter:ng.IFilterService, - private cacheService:Services.CacheService, - private ComponentFactory: Utils.ComponentFactory, - private ChangeLifecycleStateHandler: Sdc.Utils.ChangeLifecycleStateHandler, - private LeftPaletteLoaderService: Services.Components.LeftPaletteLoaderService, - private ModalsHandler: Sdc.Utils.ModalsHandler, - private eventListenerService:Services.EventListenerService) { - - this.$scope.setValidState(true); - this.initScope(); - this.$scope.updateSelectedMenuItem(); - this.registerGraphEvents(this.$scope); - } - private cacheComponentsInstancesFullData: Array; - - private initComponent = ():void => { - - this.$scope.currentComponent = this.$scope.component; - this.$scope.selectedComponent = this.$scope.currentComponent; - this.updateUuidMap(); - this.$scope.isViewOnly = this.$scope.isViewMode(); - }; - private registerGraphEvents = (scope:ICompositionViewModelScope):void => { - - this.eventListenerService.registerObserverCallback(Utils.Constants.GRAPH_EVENTS.ON_NODE_SELECTED, scope.setSelectedInstance); - this.eventListenerService.registerObserverCallback(Utils.Constants.GRAPH_EVENTS.ON_GRAPH_BACKGROUND_CLICKED, scope.onBackgroundClick); - - } - private openUpdateComponentInstanceNameModal = ():void => { - - let viewModelsHtmlBasePath:string = '/app/scripts/view-models/'; - let modalOptions:ng.ui.bootstrap.IModalSettings = { - template: this.$templateCache.get(viewModelsHtmlBasePath + 'forms/resource-instance-name-form/resource-instance-name-view.html'), - controller: 'Sdc.ViewModels.ResourceInstanceNameViewModel', - size: 'sdc-sm', - backdrop: 'static', - resolve: { - component: ():Models.Components.Component => { - return this.$scope.currentComponent; - - } - } - }; - - let modalInstance:ng.ui.bootstrap.IModalServiceInstance = this.$modal.open(modalOptions); - modalInstance.result.then(():void => { - this.eventListenerService.notifyObservers(Utils.Constants.GRAPH_EVENTS.ON_COMPONENT_INSTANCE_NAME_CHANGED, this.$scope.currentComponent.selectedInstance); - //this.$scope.graphApi.updateNodeName(this.$scope.currentComponent.selectedInstance); - }); - }; - - private removeSelectedComponentInstance = ():void => { - this.eventListenerService.notifyObservers(Utils.Constants.GRAPH_EVENTS.ON_DELETE_MULTIPLE_COMPONENTS); - }; - - private updateUuidMap = ():void => { - /** - * In case user press F5, the page is refreshed and this.sharingService.currentEntity will be undefined, - * but after loadService or loadResource this.sharingService.currentEntity will be defined. - * Need to update the uuidMap with the new resource or service. - */ - this.sharingService.addUuidValue(this.$scope.currentComponent.uniqueId,this.$scope.currentComponent.uuid); - }; - - private initScope = ():void => { - - this.$scope.sharingService = this.sharingService; - this.$scope.sdcMenu = this.sdcMenu; - this.$scope.isLoading = false; - this.$scope.isLoadingRightPanel = false; - this.$scope.graphApi = {}; - this.$scope.version = this.cacheService.get('version'); - this.initComponent(); - - this.cacheComponentsInstancesFullData = new Array(); - - this.$scope.isComponentInstanceSelected = ():boolean => { - return this.$scope.currentComponent && this.$scope.currentComponent.selectedInstance != undefined && this.$scope.currentComponent.selectedInstance != null; - }; - - this.$scope.updateSelectedComponent = (): void => { - if(this.$scope.currentComponent.selectedInstance){ - - let componentParent = _.find(this.cacheComponentsInstancesFullData, (component) => { - return component.uniqueId === this.$scope.currentComponent.selectedInstance.componentUid; - }); - if(componentParent) { - this.$scope.selectedComponent = componentParent; - } - else { - try { - let onSuccess = (component:Models.Components.Component) => { - this.$scope.isLoadingRightPanel = false; - this.$scope.selectedComponent = component; - this.cacheComponentsInstancesFullData.push(component); - }; - let onError = (component:Models.Components.Component) => { - console.log("Error updating selected component"); - this.$scope.isLoadingRightPanel = false; - }; - this.ComponentFactory.getComponentFromServer(this.$scope.currentComponent.selectedInstance.originType, this.$scope.currentComponent.selectedInstance.componentUid).then(onSuccess, onError); - } catch(e){ - console.log("Error updating selected component", e); - this.$scope.isLoadingRightPanel = false; - } - } - } - else { - this.$scope.selectedComponent = this.$scope.currentComponent; - } - }; - - this.$scope.setSelectedInstance = (selectedComponent:Models.ComponentsInstances.ComponentInstance):void => { - - this.$log.debug('composition-view-model::onNodeSelected:: with id: '+ selectedComponent.uniqueId); - this.$scope.currentComponent.setSelectedInstance(selectedComponent); - this.$scope.updateSelectedComponent(); - - if (this.$state.current.name === 'workspace.composition.api') { - this.$state.go('workspace.composition.details'); - } - if (this.$state.current.name === 'workspace.composition.relations' && this.$scope.currentComponent.isProduct()) { - this.$state.go('workspace.composition.details'); - } - }; - - this.$scope.onBackgroundClick = ():void => { - this.$scope.currentComponent.selectedInstance = null; - this.$scope.selectedComponent = this.$scope.currentComponent; - - if (this.$state.current.name === 'workspace.composition.api') { - this.$state.go('workspace.composition.details'); - } - }; - - this.$scope.openUpdateModal = ():void => { - this.openUpdateComponentInstanceNameModal(); - }; - - this.$scope.deleteSelectedComponentInstance = ():void => { - let state = "deleteInstance"; - let onOk = ():void => { - this.removeSelectedComponentInstance(); - //this.$scope.graphApi.deleteSelectedNodes(); - }; - let title:string = this.$scope.sdcMenu.alertMessages[state].title; - let message:string = this.$scope.sdcMenu.alertMessages[state].message.format([this.$scope.currentComponent.selectedInstance.name]); - this.ModalsHandler.openAlertModal(title, message).then(onOk); - }; - - this.$scope.setComponent = (component: Models.Components.Product):void => { - this.$scope.currentComponent = component; - } - - } - } -} diff --git a/catalog-ui/app/scripts/view-models/workspace/tabs/composition/composition-view.html b/catalog-ui/app/scripts/view-models/workspace/tabs/composition/composition-view.html deleted file mode 100644 index 4efc74c31b..0000000000 --- a/catalog-ui/app/scripts/view-models/workspace/tabs/composition/composition-view.html +++ /dev/null @@ -1,99 +0,0 @@ -
      - -
      - - - - - - - - -
      - -
      - -
      - -
      - -
      -
      -
      -
      -
      -
      - - -
      - -
      -
      - -
      - - - - - - - - -
      - -
      - - - -
      -
      diff --git a/catalog-ui/app/scripts/view-models/workspace/tabs/composition/composition.less b/catalog-ui/app/scripts/view-models/workspace/tabs/composition/composition.less deleted file mode 100644 index 4c4c0a87a5..0000000000 --- a/catalog-ui/app/scripts/view-models/workspace/tabs/composition/composition.less +++ /dev/null @@ -1,864 +0,0 @@ - -.composition{ - .sdc-workspace-container{ - .w-sdc-main-container{ - .w-sdc-main-right-container{ - left:0; - .sdc-workspace-top-bar { - padding-left: 295px; - .not-latest{ - left: 270px; - } - } - .w-sdc-main-container-body-content{ - padding: 0 0 0 247px; - } - - > div:first-child{ - padding: 0; - } - } - } - } -} - -.workspace-composition { - height:100%; - display: block; - text-align: left; - align-items: left; - padding: 0; - - - - // --------------------------------------------------------------------------------------------------- - // Sidebar - // --------------------------------------------------------------------------------------------------- - - - - .w-sdc-designer-sidebar-toggle { - background-color: @main_color_p; - border-left: 1px solid @main_color_o; - border-bottom: 1px solid @main_color_o; - height: 21px; - position: absolute; - right: 0; - top: 53px; - width: 17px; - transition: right 0.2s; - z-index: 10; - .box-shadow(-1px 1px 3px 0 @main_color_n); - - &.active { - right: 302px; - .w-sdc-designer-sidebar-toggle-icon{ - transform: rotate(180deg); - } - } - - } - - .w-sdc-designer-sidebar-toggle-icon { - margin-left: 6px; - margin-top: 6px; - } - - .w-sdc-designer-sidebar { - background-color:@main_color_p ; - .noselect; - bottom: 0; - position: fixed; - right: -302px; - width: 302px; - top: 102px; - transition: right 0.2s; - z-index: 9; - .box-shadow(-7px -3px 6px -8px @main_color_n); - - } - - .w-sdc-designer-sidebar-toggle.active + .w-sdc-designer-sidebar { - right: 0; - - } - - .w-sdc-designer-sidebar-head { - padding: 36px 30px 30px 30px; - height: 120px; - } - - .w-sdc-designer-sidebar-logo-ph { - display: inline-block; - vertical-align: middle; - line-height: 48px; - height: 48px; - } - - .w-sdc-designer-sidebar-logo { - .g_6; - display: inline-block; - margin-left: 10px; - font-weight: 500; - } - - .w-sdc-designer-sidebar-logo-title { - .s_16_r; - .selectable; - vertical-align: middle; - text-overflow: ellipsis; - max-width: 167px; - display: inline-block; - white-space: nowrap; - overflow: hidden; - } - - .w-sdc-designer-update-resource-icon { - .hand; - position: absolute; - right: 20px; - top: 10px; - } - - .w-sdc-designer-delete-resource-icon { - .hand; - position: absolute; - right: 40px; - top: 10px; - } - - .w-sdc-designer-sidebar-tabs { - .bg_e; - } - - .w-sdc-designer-sidebar-tabs::after { - clear: both; - content: ''; - display: table; - } - - .i-sdc-designer-sidebar-tab { - background-color: @main_color_p; - border: 1px solid @tlv_color_u;; - border-left: none; - display: inline-block; - float: left; - height: 36px; - padding-top: 9px; - text-align: center; - width: 50px; - .hand; - - &:focus { - outline: none; - } - &.tab-disabled { - /* .disabled; */ - } - &.active, &:hover:enabled { - background-color: @tlv_color_u; - .i-sdc-designer-sidebar-tab-icon { - opacity: 1; - - - } - - } - - div& { - padding-top: 0; - } - /*for tooltip on disabled buttons*/ - } - - .i-sdc-designer-sidebar-tab-icon { - margin-top: 5px ; - // opacity: .4; - } - - .w-sdc-designer-sidebar-tab-content { - .perfect-scrollbar; - height: 100%; - } - - .w-sdc-designer-sidebar-tab-content-view { - position: absolute; - top: 156px; - bottom: 0px; - width: 100%; - - } - - .w-sdc-designer-sidebar-section { - } - - .w-sdc-designer-sidebar-section-title { - .m_14_m; - background-color: @tlv_color_u; - .hand; - clear: both; - height: 32px; - line-height: 32px; - margin-top: 1px; - padding: 0 40px 0 20px; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - position: relative; - width: 100%; - display: block; - - &.expanded { - .w-sdc-designer-sidebar-section-title-icon { - transform: rotate(180deg); - } - } - } - - .w-sdc-designer-sidebar-section-title-text { - max-width: 240px; - display: inline-block; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - position: relative; - } - - .w-sdc-designer-sidebar-section-title-icon { - .hand; - .sprite-new; - .arrow-up; - right: 16px; - top: 10px; - transition: .3s all; - position: absolute; - } - - .w-sdc-designer-sidebar-section-content { - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - } - - .w-sdc-designer-sidebar-section-title + .w-sdc-designer-sidebar-section-content { - margin: 0 auto; - } - - .w-sdc-designer-sidebar-section-title.expanded + .w-sdc-designer-sidebar-section-content { - margin: 0 auto 1px; - - } - - .i-sdc-designer-sidebar-section-content-item { - .b_7; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - //max-width: 250px; - - &.description { - margin-top: 28px; - white-space: normal; - word-wrap: break-word; - } - } - - .i-sdc-designer-sidebar-section-content-item-tag { - .g_7; - .bg_c; - border-radius: 4px; - display: inline-block; - line-height: 25px; - margin: 0 4px 6px 0; - min-width: 50px; - padding: 0 9px; - text-align: center; - max-width: 280px; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - } - - .w-sdc-designer-sidebar-section-footer { - margin-top: 10px; - text-align: center; - width: 100%; - } - - - - .w-sdc-designer-sidebar-section-footer-action { - width: 180px; - margin-top: 10px; - } - - //////////////////////Relationship - .w-sdc-designer-sidebar-section-requirements { - border-bottom: 1px solid @color_e; - margin: 0 13px 20px 13px; - padding: 15px 0 0; - } - - .w-sdc-designer-sidebar-section-requirements-item { - margin-bottom: 20px; - } - - .w-sdc-designer-sidebar-section-requirements-label { - display: inline-block; - overflow: hidden; - text-overflow: ellipsis; - vertical-align: middle; - white-space: nowrap; - width: 102px; - } - - .w-sdc-designer-sidebar-section-requirements-select { - border: 1px solid @color_e; - min-height: 30px; - padding: 4px 13px; - width: 168px; - } - - //////////////////////Properties - .i-sdc-designer-sidebar-section-content-item-property-and-attribute { - .b_7; - border-bottom: 1px solid @color_e; - min-height: 72px; - padding: 15px 10px 10px 18px; - position: relative; - - &:first-child { - //margin-top: -18px; - } - - &:hover { - // .bg_c_hover; - .bg_c; - transition: all .3s; - - .i-sdc-designer-sidebar-section-content-item-button { - display: block; - } - } - } - - .i-sdc-designer-sidebar-section-content-item-property-and-attribute-label { - overflow: hidden; - text-overflow: ellipsis; - max-width: 200px; - white-space: nowrap; - display: inline-block; - &:hover { - .a_7; - } - } - - .i-sdc-designer-sidebar-section-content-item-property-value { - overflow: hidden; - text-overflow: ellipsis; - max-width: 200px; - display: inline-block; - white-space: nowrap; - - } - - .i-sdc-designer-sidebar-section-content-item-property-label-value { - } - - .i-sdc-designer-sidebar-section-content-item-button { - display: none; - position: absolute; - top: 25px; - - &.update { - background-color: transparent; - border: 0; - right: 60px; - } - - &.delete { - background-color: transparent; - border: 0; - right: 13px; - } - - &.download { - background-color: transparent; - border: 0; - right: 35px; - } - - &.download-env { - background-color: transparent; - border: 0; - right: 35px; - margin-top: 65px; - } - - &.attach { - background-color: transparent; - border: 0; - right: 15px; - } - } - - // --------------------------------------------------------------------------------------------------- - // Canvas - // --------------------------------------------------------------------------------------------------- - .w-sdc-designer-canvas { - height:100%; - .noselect; - .bg_c; - bottom: 0; - // position: fixed; - //right: 0; - //left: 240px; - //top: 94px; - .view-mode{ - background-color: #f8f8f8; - border:0; - } - } - - .w-sdc-designer-canvas.sidebaractive { - //right: 300px; - } - - .w-sdc-designer-element { - .hand; - width: 200px; - height: 100px; - position: absolute; - text-align: center; - top: 50%; - margin-top: -200px; - left: 50%; - margin-left: -50px; - } - - .w-sdc-designer-resource-label { - .q_7; - } - - .w-sdc-designer-resource-label-indicator { - .bg_q; - border-radius: 50%; - display: inline-block; - height: 10px; - margin-right: 6px; - vertical-align: middle; - width: 10px; - - &.valid { - .bg_l; - } - - &.invalid { - .bg_h; - } - } - - // --------------------------------------------------------------------------------------------------- - // Leftbar - // --------------------------------------------------------------------------------------------------- - .w-sdc-designer-leftbar { - background-color: @main_color_p; - bottom: 0; - left: 0; - overflow-y: scroll; - overflow-x: hidden; - position: absolute; - top: 0; - width: 244px; - .box-shadow(7px -3px 6px -8px @main_color_n); - - } - - .w-sdc-designer-leftbar-title { - - .p_16_m; - background-color: @main_color_n; - line-height: 40px; - padding: 0 17px; - } - - .w-sdc-designer-leftbar-title-count { - float: right; - } - - .w-scd-diagram-container { - // left: 240px; - //right: 300px; - } - - .w-sdc-designer-leftbar-search { - background-color: @tlv_color_u; - padding: 10px; - white-space: nowrap; - position: relative; - } - - .w-sdc-designer-leftbar-search-input { - border: 1px solid @color_e; - .border-radius(4px); - height: 30px; - margin: 0; - padding: 0px 28px 3px 10px; - vertical-align: 4px; - width: 100%; - outline: none; - font-style: italic; - } - - .w-sdc-designer-leftbar-search-filter { - - } - - .i-sdc-designer-leftbar-section { - .hand; - } - - .i-sdc-designer-leftbar-section-title { - .m_14_m; - background-color: @tlv_color_u; - .hand; - clear: both; - height: 40px; - line-height: 40px; - margin-top: 1px; - padding: 0 10px; - position: relative; - text-transform: uppercase; - font-weight: bold; - } - - .i-sdc-designer-leftbar-section-title-icon { - .hand; - .sprite-new; - .arrow-up; - width: 15px; - height: 9px; - position: absolute; - right: 13px; - top: 18px; - transition: .3s all; - } - - .i-sdc-designer-leftbar-section.expanded .i-sdc-designer-leftbar-section-title-icon { - transform: rotate(180deg); - margin-right: 2px; - } - - .i-sdc-designer-leftbar-section-content { - background-color: @main_color_o; - } - - .i-sdc-designer-leftbar-section-content-item { - background-color: @main_color_p; - overflow: hidden; - - &:hover { - background-color: @main_color_p; - } - - .cp{ - margin: 6px; - } - - .vl{ - margin: 6px; - } - } - - .i-sdc-designer-leftbar-section-content-subcat { - .m_14_m; - background-color: @tlv_color_t; - line-height: 35px; - padding: 0 10px; - cursor: default; - - - &:hover { - background-color: @func_color_r; - } - - - } - - .i-sdc-designer-leftbar-section .i-sdc-designer-leftbar-section-content .i-sdc-designer-leftbar-section-content-item { - max-height: 0px; - margin: 0 auto; - transition: all .3s; - } - - .i-sdc-designer-leftbar-section.expanded .i-sdc-designer-leftbar-section-content .i-sdc-designer-leftbar-section-content-item { - max-height: 64px; - margin: 0 auto 1px auto; - // padding: 4px 13px; - } - - .i-sdc-designer-leftbar-section.expanded .i-sdc-designer-leftbar-section-content .i-sdc-designer-leftbar-section-content-subcat { - margin: 0; - } - - .i-sdc-designer-leftbar-section-content-item-icon-ph { - display: inline-block; - margin: 12px 0 12px 10px; - pointer-events: auto; - - .non-certified { - position: relative; - left: 27px; - bottom: 6px; - .sprite; - .s-sdc-state-non-certified; - display: block; - - &.smaller-icon { - bottom: 6px; - left: 13px; - } - } - - - - } - - .non-certified { - position: relative; - left: 43px; - bottom: 3px; - .sprite; - .s-sdc-state-non-certified; - display: block; - - &.smaller-icon { - left: 35px; - bottom: -14px; - } - } - /* - .i-sdc-composition-leftbar-section-content-item-icon { - background-image: url('../../../styles/images/resource-icons/default.png'); - // position: absolute; - right: 20px; - top: 10px; - height: 40px; - width: 40px; - background-size: 40px; - } - */ - - .i-sdc-designer-leftbar-section-content-item-info { - display: inline-block; - // margin-left: 10px; - //overflow: hidden; - // vertical-align: middle; - width: 160px; - padding: 0 0 0 10px; - } - - .i-sdc-designer-leftbar-section-content-item-info-title { - .m_14_m; - line-height: 14px; - overflow: hidden; - text-overflow: ellipsis; - text-transform: uppercase; - max-width: 120px; - display: inline-block; - white-space: nowrap; - vertical-align: bottom; - } - - .i-sdc-designer-leftbar-section-content-item-info-text { - .p_3; - line-height: 15px; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - //margin: -1px 0 2px 0; - } - - .i-sdc-designer-leftbar-section-content-item-info-text-link { - color: @color_s; - text-decoration: underline; - float: right; - position: absolute; - right: 17px; - // bottom: 5px; - } - - // --------------------------------------------------------------------------------------------------- - // Form actions - // --------------------------------------------------------------------------------------------------- - .w-sdc-form-actions-container.add-property { - text-align: center; - width: 100%; - margin-top: 2px; - margin-bottom: 12px; - - .w-sdc-form-action { - width: 245px; - } - .w-sdc-form-action.add-property-add-another { - .bg_a; - margin-left: 35px; - } - .w-sdc-form-action.add-property-done { - margin-left: 312px; - } - .w-sdc-form-action.save { - margin-left: 327px; - margin-bottom: 30px; - } - - } - - // --------------------------------------------------------------------------------------------------- - // Top menu - // --------------------------------------------------------------------------------------------------- - .w-sdc-header-menu { - padding: 25px 0; - text-align: center; - white-space: nowrap; - } - - .i-sdc-header-menu-item { - cursor: pointer; - display: inline-block; - height: 43px; - min-width: 93px; - padding: 0 38px; - position: relative; - vertical-align: middle; - - &::after { - border-right: 1px solid @color_m; - content: ''; - display: block; - height: 43px; - right: 0; - position: absolute; - top: 0; - width: 2px; - } - - &:first-child { - &::before { - border-right: 1px solid @color_m; - content: ''; - display: block; - height: 43px; - left: 0; - position: absolute; - top: 0; - width: 2px; - } - } - } - - .i-sdc-header-menu-item-icon { - display: inline-block; - height: 20px; - width: 28px; - } - - .i-sdc-header-menu-item-label { - .g_1; - line-height: 18px; - } - - // --------------------------------------------------------------------------------------------------- - // Canvas inline menu - // --------------------------------------------------------------------------------------------------- - .w-sdc-canvas-menu { - position: fixed; - z-index: 100; - - border-style: solid; - border-width: 1px; - border-color: #d8d8d8; - box-sizing: border-box; - background-color: #ffffff; - box-shadow: 0px 2px 2px 0px rgba(24, 24, 25, 0.1); - width: 91px; - -/* &.vl-type-select{ - width: 173px; - } -*/ - - h3 { - color: @func_color_s; - font-size: 14px; - font-weight: bold; - margin: 0; - padding: 7px 11px; - border-bottom: 1px solid #e5e5e5; - } - - .w-sdc-canvas-menu-content { - padding: 5px 5px; - - &.vl-select{ - border-bottom: #d8d8d8 solid 1px; - line-height: 15px; - - .tlv-radio { - padding: 3px 0px; - - .tlv-radio-label { - padding: 3px 0px; - - &::before { - margin-right: 10px; - } - } - } - } - - .w-sdc-canvas-menu-content-update-button { - .sprite; - .sprite.e-sdc-small-icon-delete; - .hand; - position: absolute; - top: 15px; - right: 10px; - } - .w-sdc-canvas-menu-content-delete-button { - .sprite; - .sprite.e-sdc-small-icon-delete; - .hand; - margin: 0 8px 0 6px; - } - } - - .w-sdc-canvas-menu-arrow { - //TODO: Missing image for small blue triangle. - background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAYAAAB4ka1VAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMDE0IDc5LjE1Njc5NywgMjAxNC8wOC8yMC0wOTo1MzowMiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTQgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkE1OTIzNDI1MENFQjExRTU4ODRERTI1MDM2REZCOUYzIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkE1OTIzNDI2MENFQjExRTU4ODRERTI1MDM2REZCOUYzIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QTU5MjM0MjMwQ0VCMTFFNTg4NERFMjUwMzZERkI5RjMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QTU5MjM0MjQwQ0VCMTFFNTg4NERFMjUwMzZERkI5RjMiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4gBXTlAAAAOElEQVR42mK0rp7NgASMgZgFiE/CBJjQJPcA8U4gNkdXAJMUAGJ+ZEVMaJIwAFfEhEUSRRFAgAEAVtgJyiLAPWAAAAAASUVORK5CYII='); - content: ''; - display: block; - height: 21px; - position: absolute; - right: 12px; - top: -24px; - width: 184px; - background-repeat: no-repeat; - background-position: 175px 16px; - } - - } -} -/*.right-tab-loader { - border: 16px solid #f3f3f3; !* Light grey *! - border-top: 16px solid #3498db; !* Blue *! - border-radius: 50%; - width: 120px; - height: 120px; - animation: spin 2s linear infinite; -}*/ - -@keyframes spin { - 0% { transform: rotate(0deg); } - 100% { transform: rotate(360deg); } -} diff --git a/catalog-ui/app/scripts/view-models/workspace/tabs/composition/tabs/artifacts/artifacts-view-model.ts b/catalog-ui/app/scripts/view-models/workspace/tabs/composition/tabs/artifacts/artifacts-view-model.ts deleted file mode 100644 index 5bb5d2cbbd..0000000000 --- a/catalog-ui/app/scripts/view-models/workspace/tabs/composition/tabs/artifacts/artifacts-view-model.ts +++ /dev/null @@ -1,255 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.ViewModels { - 'use strict'; - import Resource = Sdc.Models.Components.Resource; - - export interface IArtifactsViewModelScope extends ICompositionViewModelScope { - artifacts: Array; - artifactType: string; - downloadFile:Models.IFileDownload; - isLoading:boolean; - - getTitle(): string; - addOrUpdate(artifact:Models.ArtifactModel): void; - delete(artifact:Models.ArtifactModel): void; - download(artifact:Models.ArtifactModel): void; - openEditEnvParametersModal(artifact:Models.ArtifactModel):void; - getEnvArtifact(heatArtifact:Models.ArtifactModel):any; - getEnvArtifactName(artifact:Models.ArtifactModel):string; - isLicenseArtifact(artifact:Models.ArtifactModel):boolean; - isVFiArtifact(artifact:Models.ArtifactModel):boolean; - } - - export class ResourceArtifactsViewModel { - - static '$inject' = [ - '$scope', - '$filter', - '$modal', - '$templateCache', - '$state', - 'sdcConfig', - 'ArtifactsUtils', - 'ModalsHandler', - 'Sdc.Services.CacheService' - ]; - - constructor(private $scope:IArtifactsViewModelScope, - private $filter:ng.IFilterService, - private $modal:ng.ui.bootstrap.IModalService, - private $templateCache:ng.ITemplateCacheService, - private $state:any, - private sdcConfig:Models.IAppConfigurtaion, - private artifactsUtils:Sdc.Utils.ArtifactsUtils, - private ModalsHandler: Utils.ModalsHandler, - private cacheService:Services.CacheService) { - - this.initScope(); - } - - - private initArtifactArr = (artifactType:string):void => { - let artifacts:Array = []; - - if (this.$scope.selectedComponent) { - if ('interface' == artifactType) { - let interfaces = this.$scope.selectedComponent.interfaces; - if (interfaces && interfaces.standard && interfaces.standard.operations) { - - angular.forEach(interfaces.standard.operations, (operation:any, interfaceName:string):void => { - let item:Sdc.Models.ArtifactModel = {}; - if (operation.implementation) { - item = operation.implementation; - } - item.artifactDisplayName = interfaceName; - item.artifactLabel = interfaceName; - item.mandatory = false; - artifacts.push(item); - }); - } - }else { - //init normal artifacts, deployment or api artifacts - let artifactsObj:Models.ArtifactGroupModel; - switch (artifactType) { - case "api": - artifactsObj = (this.$scope.selectedComponent).serviceApiArtifacts; - break; - case "deployment": - if (!this.$scope.isComponentInstanceSelected()) { - artifactsObj = this.$scope.selectedComponent.deploymentArtifacts; - } else { - artifactsObj = this.$scope.currentComponent.selectedInstance.deploymentArtifacts; - } - break; - default: - artifactsObj = this.$scope.selectedComponent.artifacts; - break; - } - _.forEach(artifactsObj, (artifact:Models.ArtifactModel, key) => { - artifacts.push(artifact); - }); - } - } - this.$scope.artifacts = artifacts; - }; - - private openEditArtifactModal = (artifact:Models.ArtifactModel):void => { - let viewModelsHtmlBasePath:string = '/app/scripts/view-models/'; - - let modalOptions:ng.ui.bootstrap.IModalSettings = { - template: this.$templateCache.get(viewModelsHtmlBasePath + 'forms/artifact-form/artifact-form-view.html'), - controller: 'Sdc.ViewModels.ArtifactResourceFormViewModel', - size: 'sdc-md', - backdrop: 'static', - keyboard: false, - resolve: { - artifact: ():Models.ArtifactModel => { - return artifact; - }, - component: (): Models.Components.Component => { - return this.$scope.currentComponent; - } - } - }; - - let modalInstance:ng.ui.bootstrap.IModalServiceInstance = this.$modal.open(modalOptions); - modalInstance - .result - .then(():void => { - this.initArtifactArr(this.$scope.artifactType); - }); - }; - - private initScope = ():void => { - let self = this; - this.$scope.isLoading= false; - this.$scope.artifactType = this.artifactsUtils.getArtifactTypeByState(this.$state.current.name); - this.initArtifactArr(this.$scope.artifactType); - - this.$scope.getTitle = ():string => { - return this.artifactsUtils.getTitle(this.$scope.artifactType, this.$scope.selectedComponent); - }; - - let vfiArtifactTypes:any = this.cacheService.get('UIConfiguration').artifacts.deployment.resourceInstanceDeploymentArtifacts; - - this.$scope.isVFiArtifact=(artifact:Models.ArtifactModel):boolean=>{ - return vfiArtifactTypes[artifact.artifactType]; - } - - this.$scope.$watch('selectedComponent', (newResource:Models.Components.Component):void => { - if (newResource) { - this.initArtifactArr(this.$scope.artifactType); - } - }); - - - this.$scope.$watch('currentComponent.selectedInstance', (newInstance:Models.ComponentsInstances.ComponentInstance):void => { - if (newInstance) { - this.initArtifactArr(this.$scope.artifactType); - } - }); - - this.$scope.addOrUpdate = (artifact:Models.ArtifactModel):void => { - this.artifactsUtils.setArtifactType(artifact, this.$scope.artifactType); - let artifactCopy = new Models.ArtifactModel(artifact); - this.openEditArtifactModal(artifactCopy); - }; - - - this.$scope.delete = (artifact:Models.ArtifactModel):void => { - - let onOk = ():void => { - this.$scope.isLoading= true; - this.artifactsUtils.removeArtifact(artifact, this.$scope.artifacts); - - let success = (responseArtifact:Models.ArtifactModel):void => { - this.initArtifactArr(this.$scope.artifactType); - this.$scope.isLoading= false; - }; - - let error =(error:any):void =>{ - console.log('Delete artifact returned error:', error); - this.initArtifactArr(this.$scope.artifactType); - this.$scope.isLoading= false; - }; - if(this.$scope.isComponentInstanceSelected()){ - this.$scope.currentComponent.deleteInstanceArtifact(artifact.uniqueId, artifact.artifactLabel).then(success, error); - }else{ - this.$scope.currentComponent.deleteArtifact(artifact.uniqueId, artifact.artifactLabel).then(success, error);//TODO simulate error (make sure error returns) - } - }; - let title: string = this.$filter('translate')("ARTIFACT_VIEW_DELETE_MODAL_TITLE"); - let message: string = this.$filter('translate')("ARTIFACT_VIEW_DELETE_MODAL_TEXT", "{'name': '" + artifact.artifactDisplayName + "'}"); - this.ModalsHandler.openConfirmationModal(title, message, false).then(onOk); - }; - - - this.$scope.getEnvArtifact = (heatArtifact:Models.ArtifactModel):any=>{ - return _.find(this.$scope.artifacts, (item:Models.ArtifactModel)=>{ - return item.generatedFromId === heatArtifact.uniqueId; - }); - }; - - this.$scope.getEnvArtifactName = (artifact:Models.ArtifactModel):string =>{ - let envArtifact = this.$scope.getEnvArtifact(artifact); - if(envArtifact){ - return envArtifact.artifactDisplayName; - } - }; - - this.$scope.isLicenseArtifact = (artifact:Models.ArtifactModel) :boolean => { - let isLicense:boolean = false; - if(this.$scope.component.isResource() && (this.$scope.component).isCsarComponent()) { - isLicense = this.artifactsUtils.isLicenseType(artifact.artifactType); - } - - return isLicense; - }; - - this.$scope.openEditEnvParametersModal = (artifact:Models.ArtifactModel):void => { - - let modalOptions:ng.ui.bootstrap.IModalSettings = { - template: this.$templateCache.get('/app/scripts/view-models/forms/env-parameters-form/env-parameters-form.html'), - controller: 'Sdc.ViewModels.EnvParametersFormViewModel', - size: 'sdc-md', - backdrop: 'static', - resolve: { - artifact: ():Models.ArtifactModel => { - return artifact; - }, - component: (): Models.Components.Component => { - return this.$scope.currentComponent; - } - } - }; - - let modalInstance:ng.ui.bootstrap.IModalServiceInstance = this.$modal.open(modalOptions); - modalInstance - .result - .then(():void => { - this.initArtifactArr(this.$scope.artifactType); - }); - }; - - } - } -} diff --git a/catalog-ui/app/scripts/view-models/workspace/tabs/composition/tabs/artifacts/artifacts-view.html b/catalog-ui/app/scripts/view-models/workspace/tabs/composition/tabs/artifacts/artifacts-view.html deleted file mode 100644 index 8c0138964f..0000000000 --- a/catalog-ui/app/scripts/view-models/workspace/tabs/composition/tabs/artifacts/artifacts-view.html +++ /dev/null @@ -1,55 +0,0 @@ - -
      - - -
      -
      - -
      -
      -
      - -
      -
      -
      - -
      - - -
      -
      - -
      - Description:{{artifact.description}} -
      -
      - - - - - -
      -
      - -
      - -
      -
      diff --git a/catalog-ui/app/scripts/view-models/workspace/tabs/composition/tabs/artifacts/artifacts.less b/catalog-ui/app/scripts/view-models/workspace/tabs/composition/tabs/artifacts/artifacts.less deleted file mode 100644 index 5726ca66fc..0000000000 --- a/catalog-ui/app/scripts/view-models/workspace/tabs/composition/tabs/artifacts/artifacts.less +++ /dev/null @@ -1,172 +0,0 @@ -.w-sdc-designer-sidebar-tab-content.artifacts { - - .i-sdc-designer-sidebar-section-content-item-artifact.hand { - .hand; - } - - .w-sdc-designer-sidebar-section-content { - padding: 0; - } - .w-sdc-designer-sidebar-section-title { - &.expanded { - margin-bottom: 0; - } - } - - .i-sdc-designer-sidebar-section-content-item-artifact-details { - display: inline-block; - margin-left: 5px; - vertical-align: middle; - width: 180px; - &.heat { - line-height: 18px; - width: 250px; - } - } - - .i-sdc-designer-sidebar-section-content-item-artifact-details-name { - .g_7; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - max-width:220px; - display: inline-block; - //text-transform: capitalize; - &.enabled { - &:hover { - .a_7; - } - } - - } - - .i-sdc-designer-sidebar-section-content-item-artifact-heat-env { - .g_7; - margin-top: 6px; - line-height: 42px; - padding-top: 10px; - border-top:1px solid #c8cdd1; - .enabled { - &:hover { - .hand; - .a_7; - } - } - } - - .i-sdc-designer-sidebar-section-content-item-artifact-filename { - .g_7; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - max-width: 225px; - display: inline-block; - .bold; - &.enabled { - &:hover { - .a_7; - } - } - } - - - .i-sdc-designer-sidebar-section-content-item-file-link{ - border-left: 1px #848586 solid; - height: 58px; - margin-left: -11px; - margin-top: 11px; - border-top: 1px #848586 solid; - border-bottom: 1px #848586 solid; - width: 12px; - float: left; - } - - .i-sdc-designer-sidebar-section-content-item-artifact-details-desc { - display: none; - line-height: 16px; - word-wrap: break-word; - white-space: normal; - } - - .i-sdc-designer-sidebar-section-content-item-artifact-details-desc-label { - .b_3; - } - - - .i-sdc-designer-sidebar-section-content-item-artifact { - border-bottom: 1px solid #c8cdd1; - padding: 5px 10px 5px 18px; - position: relative; - // line-height: 36px; - min-height: 61px; - cursor: default; - display: flex; - align-items: center; - - - .i-sdc-designer-sidebar-section-content-item-button { - top: 20px; - line-height: 10px; - } - - &:hover { - //background-color: @color_c; - .bg_c; - transition: all .3s; - - .i-sdc-designer-sidebar-section-content-item-button { - display: block; - - } - - } - } - -} - -///////////////////Lifecycle Management -.i-sdc-designer-sidebar-section-content-item-lm { - .b_7; - border-bottom: 1px solid @color_e; - cursor: pointer; - height: 65px; - padding: 22px 0; - position: relative; - - &:hover { - .bg_c_hover; - margin-left: -10px; - margin-right: -10px; - padding: 22px 10px; - - .i-sdc-designer-sidebar-section-content-item-lm-icon { - right: 16px; - } - } -} - -.i-sdc-designer-sidebar-section-content-item-lm:first-child { - margin-top: -18px; -} - -.i-sdc-designer-sidebar-section-content-item-lm-icon { - position: absolute; - right: 6px; - - //TODO: Replace the icons. - &.icon-view { - background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAJCAYAAAACTR1pAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMDE0IDc5LjE1Njc5NywgMjAxNC8wOC8yMC0wOTo1MzowMiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTQgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjdGMDNBRUJDMDkxNjExRTVCMjRBOEI5QzMxQTlBQjY4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjdGMDNBRUJEMDkxNjExRTVCMjRBOEI5QzMxQTlBQjY4Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6N0YwM0FFQkEwOTE2MTFFNUIyNEE4QjlDMzFBOUFCNjgiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6N0YwM0FFQkIwOTE2MTFFNUIyNEE4QjlDMzFBOUFCNjgiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4U2decAAABRUlEQVR42pyRPUvDUBSG39t2UyyaBgvWQZMqKoFq4lBH0U0UqXSxKPaPieCoWPAPKIgdjG1ohaghOrSR1iaLKMXpmnMhQVfPcLmc8zxwPhjnHFE4rx3eMO/w4rr4+vwQuZHRMcwqClaMVeRnplnEskg8O7/g96YJSZLgBz5+R0bKIAgC6IaBvdKukBP0HJ+cctu2cVCtQsrIUFUVlcp+LE6EItWIIVaIV9c3/PnRRqlcxkJeYV2vi+/hEO/9QSx6b56oEUMsOal6/TacQcXinCpaGE+n0QnljufFIuUoiAlZTk6iWFyD6zpoWi3RwvrmBlLJZCzRn3IUxBBLjlgO9e06T9ja3sGyrqPX66NtWQLWCgVks5Owmg1c1mpQ8vM4OqywP1s1w1PkpnJY0jTIsizy/sDHQ7sFmt0ITxJtlf33jj8CDADhB52tEX6ifAAAAABJRU5ErkJggg=='); - height: 9px; - top: 29px; - width: 14px; - } - - //TODO: Replace the icons. - &.icon-alert { - background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAANCAYAAAB2HjRBAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMDE0IDc5LjE1Njc5NywgMjAxNC8wOC8yMC0wOTo1MzowMiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTQgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjhBM0YxQTBCMDkyMDExRTVBNzlCQUYxNEYwMDUwOTQ5IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjhBM0YxQTBDMDkyMDExRTVBNzlCQUYxNEYwMDUwOTQ5Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6OEEzRjFBMDkwOTIwMTFFNUE3OUJBRjE0RjAwNTA5NDkiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6OEEzRjFBMEEwOTIwMTFFNUE3OUJBRjE0RjAwNTA5NDkiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7exgceAAAB5klEQVR42oySy2tTQRTGfzN3cpvbpFTaUlzUjeCuVFyJf4DuCl34wL/CrbpUunLnwpUuFFy48IFiwYWhpYuW+gCLrbWKBQumaRIba5ub3MccJ5WECCV44MDMme873/lmBhGhnZulcn/3/sfrO7J/45R017pT0xUS2bC93vy2LAOLt5DfCeUn14RD4h/ysbHRDii/8pyo7DmFiP7VZ4Rbu9KT3I7i+qJklp7ibQt2J6HeNOhXV/gv8tDcbaLtXYLJKeTcZfxqSPPzvGu6ID3J1Q8z0ny/hIkM5swF8qenUFUfwixHCtd7Kwez04jOgEmc+hq6tuZ8N9E6xG5U+Pn2kRxKLs7eE7tRc0XlToRM2sD+2sGmDiY+kWsSFG528Kr1Xgfjfn0n5uElvFrrzVqVDHqkiTKjxCsV9LBx08QkgcY/eZH+89Oqo+x9eumkwQaQaoPEKWpsHHN8ArItgLt5UdiG6736mFLxixyQt+bviik8QPuaNFRIkjqQRZ2YJDo6QWydjTRtOcGPPdJKgnlxFfN9fVmGNhecR4U3mLrL6nPTRTQHXZO5+4jyyI4Iqs99GJvgBiKjcySlj3897y6/kbreI4w0QS7ASxrsa4/cXkxkIzK5PKmNqRMw7NfdeczA+Fn1R4ABAPnMAeCjkgf5AAAAAElFTkSuQmCC'); - height: 13px; - top: 27px; - width: 15px; - } - -} diff --git a/catalog-ui/app/scripts/view-models/workspace/tabs/composition/tabs/details/details-view-model.ts b/catalog-ui/app/scripts/view-models/workspace/tabs/composition/tabs/details/details-view-model.ts deleted file mode 100644 index b28de8d331..0000000000 --- a/catalog-ui/app/scripts/view-models/workspace/tabs/composition/tabs/details/details-view-model.ts +++ /dev/null @@ -1,132 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.ViewModels { - - 'use strict'; - - export interface IEditResourceVersion { - allVersions: any; - changeVersion: string; - } - - interface IDetailsViewModelScope extends ICompositionViewModelScope { - isLoading: boolean; - $parent: ICompositionViewModelScope; - expandedSection: Array; - editForm:ng.IFormController; - editResourceVersion: IEditResourceVersion; - - changeResourceVersion(): void; - } - - export class DetailsViewModel { - - static '$inject' = [ - '$scope', - 'LeftPaletteLoaderService', - 'EventListenerService' - - ]; - - constructor(private $scope:IDetailsViewModelScope, - private LeftPaletteLoaderService:Services.Components.LeftPaletteLoaderService, - private eventListenerService:Services.EventListenerService) { - this.initScope(); - } - - private clearSelectedVersion = ():void => { - this.$scope.editResourceVersion = { - allVersions: {}, - changeVersion: null - }; - }; - - private versioning:Function = (versionNumber:string):string => { - let version:Array = versionNumber.split('.'); - return '00000000'.slice(version[0].length) + version[0] + '.' + '00000000'.slice(version[1].length) + version[1]; - }; - - private initEditResourceVersion = ():void => { - this.clearSelectedVersion(); - this.$scope.editResourceVersion.allVersions[this.$scope.currentComponent.selectedInstance.componentVersion] = this.$scope.currentComponent.selectedInstance.componentUid; - _.merge(this.$scope.editResourceVersion.allVersions, angular.copy(this.$scope.selectedComponent.allVersions)); - let sorted:any= _.sortBy(_.toPairs(this.$scope.editResourceVersion.allVersions), (item)=>{ - return this.versioning(item[0]); - }); - this.clearSelectedVersion(); - _.forEach(sorted, (item)=> { - this.$scope.editResourceVersion.allVersions[item[0]]= item[1]; - }); - - let highestVersion = _.last(Object.keys(this.$scope.selectedComponent.allVersions)); - - //TODO - ask ronny - what happend if the parent is not in the leftPalette (instance of csar for example) - if (parseFloat(highestVersion) % 1) { //if highest is minor, make sure it is the latest checked in - - let latestVersionComponent:Models.Components.Component = _.find(this.LeftPaletteLoaderService.getFullDataComponentListWithVls(this.$scope.currentComponent.componentType), (component:Models.Components.Component) => { //latest checked in - return (component.systemName === this.$scope.selectedComponent.systemName - || component.uuid === this.$scope.selectedComponent.uuid); - }); - let latestVersion:string = latestVersionComponent ? latestVersionComponent.version : highestVersion; - - if (highestVersion != latestVersion) { //highest is checked out - remove from options - this.$scope.editResourceVersion.allVersions = _.omit(this.$scope.editResourceVersion.allVersions, highestVersion); - } - } - this.$scope.editResourceVersion.changeVersion = this.$scope.currentComponent.selectedInstance.componentVersion; - }; - - private initScope = ():void => { - this.$scope.isLoading = false; - this.$scope.$parent.isLoading = false; - this.$scope.expandedSection = ['general', 'tags']; - //this.clearSelectedVersion(); - - this.$scope.$watch('selectedComponent', (component:Models.Components.Component) => { - if (this.$scope.isComponentInstanceSelected()) { - this.initEditResourceVersion(); - } - }); - - this.$scope.changeResourceVersion = ():void => { - this.$scope.isLoading = true; - this.$scope.$parent.isLoading = true; - - let onSuccess = (component:Models.Components.Component)=> { - this.$scope.isLoading = false; - this.$scope.$parent.isLoading = false; - this.$scope.setComponent(component); - this.$scope.updateSelectedComponent(); - - this.eventListenerService.notifyObservers(Sdc.Utils.Constants.GRAPH_EVENTS.ON_VERSION_CHANGED, this.$scope.currentComponent); - }; - - let onFailed = (error:any)=> { - this.$scope.isLoading = false; - this.$scope.$parent.isLoading = false; - console.log(error); - }; - - let componentUid:string = this.$scope.editResourceVersion.allVersions[this.$scope.editResourceVersion.changeVersion]; - this.$scope.currentComponent.changeComponentInstanceVersion(componentUid).then(onSuccess, onFailed); - }; - } - } -} diff --git a/catalog-ui/app/scripts/view-models/workspace/tabs/composition/tabs/details/details-view.html b/catalog-ui/app/scripts/view-models/workspace/tabs/composition/tabs/details/details-view.html deleted file mode 100644 index 6ae462760c..0000000000 --- a/catalog-ui/app/scripts/view-models/workspace/tabs/composition/tabs/details/details-view.html +++ /dev/null @@ -1,129 +0,0 @@ - - -
      - - - - General Info -
      -
      - -
      -
      - Type: - -
      -
      - Resource Type: - -
      -
      - - Version: - - - - -
      -
      - Category: - -
      -
      - Sub Category: - -
      -
      - Creation Date: - -
      -
      - Author: - - -
      -
      - - -
      -
      - Vendor Name: - - -
      -
      - Vendor Release: - - -
      -
      - - -
      -
      - Description: - - - -
      - -
      -
      - -
      - - Additional Information -
      -
      - -
      -
      - - : - -
      -
      -
      - - -
      - - Tags -
      -
      - -
      -
      - -
      -
      -
      - - -
      - diff --git a/catalog-ui/app/scripts/view-models/workspace/tabs/composition/tabs/details/details.less b/catalog-ui/app/scripts/view-models/workspace/tabs/composition/tabs/details/details.less deleted file mode 100644 index e88e130379..0000000000 --- a/catalog-ui/app/scripts/view-models/workspace/tabs/composition/tabs/details/details.less +++ /dev/null @@ -1,68 +0,0 @@ -.w-sdc-designer-sidebar-tab-content.details { - - .w-sdc-designer-sidebar-section-title + .w-sdc-designer-sidebar-section-content { - padding: 0 10px 0 18px; - } - - .w-sdc-designer-sidebar-section-title.expanded + .w-sdc-designer-sidebar-section-content { - padding: 10px 10px 10px 18px; - } - - .i-sdc-designer-sidebar-section-content-item-label { - font-weight: bold; - &.additional-information{ - max-width:100px; - display: inline-block; - text-overflow: ellipsis; - overflow: hidden; - vertical-align: bottom; - } - - } - - - - .i-sdc-designer-sidebar-section-content-item-value { - // .hyphenate; - padding-left: 10px; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - display: inline-block; - max-width: 160px; - vertical-align:bottom; - font-weight: normal; - &.additional-information{ - max-width:160px; - display: inline-block; - } - &.i-sdc-form-select { - .b_1; - border: 1px solid @border_color_f; - width: 210px; - max-width: 210px; - padding-left: 4px; - - .select-instance-version { - .b_1; - &.minor { - .h_1; - } - } - } - &.minor { - .h_1; - } - } - .i-sdc-designer-sidebar-section-content-description-item-value{ - max-width: none; - font-weight: normal; - } - - .w-sdc-designer-sidebar-section.tags { - .i-sdc-designer-sidebar-section-content-item { - white-space: normal; - } - } - -} diff --git a/catalog-ui/app/scripts/view-models/workspace/tabs/composition/tabs/properties-and-attributes/properties-view-model.ts b/catalog-ui/app/scripts/view-models/workspace/tabs/composition/tabs/properties-and-attributes/properties-view-model.ts deleted file mode 100644 index aef25c51ce..0000000000 --- a/catalog-ui/app/scripts/view-models/workspace/tabs/composition/tabs/properties-and-attributes/properties-view-model.ts +++ /dev/null @@ -1,228 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.ViewModels { - 'use strict'; - - interface IResourcePropertiesAndAttributesViewModelScope extends ICompositionViewModelScope { - properties: Models.PropertiesGroup; - attributes: Models.AttributesGroup; - propertiesMessage: string; - addProperty(): void; - updateProperty(property:Models.PropertyModel): void; - deleteProperty(property:Models.PropertyModel): void; - viewAttribute(attribute:Models.AttributeModel): void; - groupNameByKey(key:string): string; - isPropertyOwner():boolean; - } - - export class ResourcePropertiesViewModel { - - static '$inject' = [ - '$scope', - '$filter', - '$modal', - '$templateCache', - 'ModalsHandler' - ]; - - - constructor(private $scope:IResourcePropertiesAndAttributesViewModelScope, - private $filter:ng.IFilterService, - private $modal:ng.ui.bootstrap.IModalService, - private $templateCache:ng.ITemplateCacheService, - private ModalsHandler: Utils.ModalsHandler) { - - this.initScope(); - } - - private initComponentProperties = ():void => { - let result:Models.PropertiesGroup = {}; - - if(this.$scope.selectedComponent){ - this.$scope.propertiesMessage = undefined; - if(this.$scope.isComponentInstanceSelected()){ - if (this.$scope.currentComponent.selectedInstance.originType==='VF') { - // Temporally fix to hide properties for VF (UI stack when there are many properties) - this.$scope.propertiesMessage = "Note: properties for VF are disabled"; - } else { - result[this.$scope.currentComponent.selectedInstance.uniqueId] = this.$scope.currentComponent.componentInstancesProperties[this.$scope.currentComponent.selectedInstance.uniqueId]; - } - }else if(this.$scope.currentComponent.isService()){ - // Temporally fix to hide properties for service (UI stack when there are many properties) - //result = this.$scope.currentComponent.componentInstancesProperties; - this.$scope.propertiesMessage = "Note: properties for service are disabled"; - }else{ - let key = this.$scope.selectedComponent.uniqueId; - result[key]= Array(); - let derived = Array(); - _.forEach(this.$scope.selectedComponent.properties, (property:Models.PropertyModel) => { - if(key == property.parentUniqueId){ - result[key].push(property); - }else{ - property.readonly = true; - derived.push(property); - } - }); - if(derived.length){ - result['derived']= derived; - } - } - this.$scope.properties = result; - } - }; - - - private initComponentAttributes = ():void => { - let result:Models.AttributesGroup = {}; - - if(this.$scope.selectedComponent){ - if(this.$scope.isComponentInstanceSelected()){ - result[this.$scope.currentComponent.selectedInstance.uniqueId] = this.$scope.currentComponent.componentInstancesAttributes[this.$scope.currentComponent.selectedInstance.uniqueId]; - }else if(this.$scope.currentComponent.isService()){ - result = this.$scope.currentComponent.componentInstancesAttributes; - } - this.$scope.attributes = result; - } - }; - - private openEditPropertyModal = (property:Models.PropertyModel):void => { - let viewModelsHtmlBasePath:string = '/app/scripts/view-models/'; - - let modalOptions:ng.ui.bootstrap.IModalSettings = { - template: this.$templateCache.get(viewModelsHtmlBasePath + 'forms/property-form/property-form-view.html'), - controller: 'Sdc.ViewModels.PropertyFormViewModel', - size: 'sdc-l', - backdrop: 'static', - keyboard: false, - resolve: { - property: ():Models.PropertyModel => { - return property; - }, - component: ():Models.Components.Component => { - return this.$scope.currentComponent; - }, - filteredProperties: ():Array => { - return this.$scope.selectedComponent.properties - } - } - }; - - - let modalInstance:ng.ui.bootstrap.IModalServiceInstance = this.$modal.open(modalOptions); - modalInstance - .result - .then(():void => { - // this.initComponentProperties(); - }); - }; - - private openAttributeModal = (atrribute:Models.AttributeModel):void => { - let viewModelsHtmlBasePath:string = '/app/scripts/view-models/'; - - let modalOptions:ng.ui.bootstrap.IModalSettings = { - template: this.$templateCache.get(viewModelsHtmlBasePath + 'forms/attribute-form/attribute-form-view.html'), - controller: 'Sdc.ViewModels.AttributeFormViewModel', - size: 'sdc-md', - backdrop: 'static', - keyboard: false, - resolve: { - attribute: ():Models.AttributeModel => { - return atrribute; - }, - component: ():Models.Components.Component => { - return this.$scope.currentComponent; - } - } - }; - this.$modal.open(modalOptions); - }; - - - - - private initScope = ():void => { - this.initComponentProperties(); - this.initComponentAttributes(); - - this.$scope.$watchCollection('currentComponent.componentInstancesProperties', (newData:any):void => { - this.initComponentProperties(); - }); - - this.$scope.$watchCollection('currentComponent.properties', (newData:any):void => { - this.initComponentProperties(); - }); - - this.$scope.$watch('currentComponent.selectedInstance', (newInstance:Models.ComponentsInstances.ComponentInstance):void => { - if (angular.isDefined(newInstance)) { - this.initComponentProperties(); - this.initComponentAttributes(); - } - }); - - this.$scope.$watchCollection('currentComponent.componentInstancesAttributes', (newData:any):void => { - this.initComponentAttributes(); - }); - - this.$scope.isPropertyOwner = ():boolean => { - return this.$scope.currentComponent && this.$scope.currentComponent.isResource() && - !this.$scope.isComponentInstanceSelected(); - }; - - this.$scope.addProperty = ():void => { - let property = new Models.PropertyModel(); - this.openEditPropertyModal(property); - }; - - this.$scope.updateProperty = (property:Models.PropertyModel):void => { - this.openEditPropertyModal(property); - }; - - this.$scope.deleteProperty = (property:Models.PropertyModel):void => { - - let onOk = ():void => { - this.$scope.currentComponent.deleteProperty(property.uniqueId); - }; - - let title:string = this.$filter('translate')("PROPERTY_VIEW_DELETE_MODAL_TITLE"); - let message:string = this.$filter('translate')("PROPERTY_VIEW_DELETE_MODAL_TEXT", "{'name': '" + property.name + "'}"); - this.ModalsHandler.openConfirmationModal(title, message, false).then(onOk); - }; - - this.$scope.viewAttribute = (attribute:Models.AttributeModel):void => { - this.openAttributeModal(attribute); - }; - - this.$scope.groupNameByKey = (key:string):string => { - switch (key){ - case 'derived': - return "Derived"; - - case this.$scope.currentComponent.uniqueId: - return this.$filter("resourceName")(this.$scope.currentComponent.name); - - default: - return this.$filter("resourceName")((_.find(this.$scope.currentComponent.componentInstances, {uniqueId:key})).name); - } - }; - - } - } -} diff --git a/catalog-ui/app/scripts/view-models/workspace/tabs/composition/tabs/properties-and-attributes/properties-view.html b/catalog-ui/app/scripts/view-models/workspace/tabs/composition/tabs/properties-and-attributes/properties-view.html deleted file mode 100644 index 3022ee6e90..0000000000 --- a/catalog-ui/app/scripts/view-models/workspace/tabs/composition/tabs/properties-and-attributes/properties-view.html +++ /dev/null @@ -1,81 +0,0 @@ - -
      - - - - - - - -
      -
      - -
      -
      -
      -
      - {{property.name}} -
      -
      - {{property.defaultValue}} - {{property.value}} -
      - -
      -
      - -
      - - - - - - -
      -
      - -
      -
      -
      -
      - {{attribute.name}} -
      -
      - {{attribute.defaultValue}} - {{attribute.value}} -
      -
      -
      - -
      - -
      -
      diff --git a/catalog-ui/app/scripts/view-models/workspace/tabs/composition/tabs/properties-and-attributes/properties.less b/catalog-ui/app/scripts/view-models/workspace/tabs/composition/tabs/properties-and-attributes/properties.less deleted file mode 100644 index 2ad87b9fca..0000000000 --- a/catalog-ui/app/scripts/view-models/workspace/tabs/composition/tabs/properties-and-attributes/properties.less +++ /dev/null @@ -1,16 +0,0 @@ -.w-sdc-designer-sidebar-tab-content.properties { - .i-sdc-designer-sidebar-section-content-item-property-and-attribute-label{ - font-weight: bold; - } - .i-sdc-designer-sidebar-section-content-item-button.update{ - right: 17px; - } - .i-sdc-designer-sidebar-section-content-item-button.delete{ - right: 35px; - } - - .w-sdc-designer-sidebar-properties-disabled { - .s_14_m; - padding: 20px 20px; - } -} diff --git a/catalog-ui/app/scripts/view-models/workspace/tabs/composition/tabs/relations/relations-view-model.ts b/catalog-ui/app/scripts/view-models/workspace/tabs/composition/tabs/relations/relations-view-model.ts deleted file mode 100644 index 119a59d5af..0000000000 --- a/catalog-ui/app/scripts/view-models/workspace/tabs/composition/tabs/relations/relations-view-model.ts +++ /dev/null @@ -1,81 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// > -module Sdc.ViewModels { - 'use strict'; - - interface IRelationsViewModelScope extends ICompositionViewModelScope { - isLoading: boolean; - $parent: ICompositionViewModelScope; - getRelation(requirement:any): any; - } - - export class RelationsViewModel { - - static '$inject' = [ - '$scope', - '$filter' - ]; - - constructor(private $scope:IRelationsViewModelScope, - private $filter:ng.IFilterService) { - this.initScope(); - } - - - private updateRC = ():void =>{ - if(this.$scope.currentComponent) { - this.$scope.currentComponent.updateRequirementsCapabilities(); - } - }; - - private initScope = ():void => { - - this.$scope.isLoading = this.$scope.$parent.isLoading; - - this.$scope.getRelation = (requirement:any):any => { - - if(this.$scope.isComponentInstanceSelected() && this.$scope.currentComponent.componentInstancesRelations ) { - let relationItem = _.filter(this.$scope.currentComponent.componentInstancesRelations, (relation:any) => { - return relation.fromNode === this.$scope.currentComponent.selectedInstance.uniqueId && - _.some(relation.relationships, {'requirement': requirement.name, - 'requirementOwnerId': requirement.ownerId}); - }); - - if (relationItem && relationItem.length) { - return { - type: requirement.relationship.split('.').pop(), - requirementName: this.$filter('resourceName')(this.$scope.currentComponent.componentInstances[_.map - (this.$scope.currentComponent.componentInstances, "uniqueId").indexOf(relationItem[0].toNode)].name) - }; - } - } - return null; - }; - - if(!this.$scope.isComponentInstanceSelected()) { - this.$scope.$watch('currentComponent.componentInstances + currentComponent.componentInstancesRelations', ():void => { - this.updateRC(); - }); - - } - } - } -} diff --git a/catalog-ui/app/scripts/view-models/workspace/tabs/composition/tabs/relations/relations-view.html b/catalog-ui/app/scripts/view-models/workspace/tabs/composition/tabs/relations/relations-view.html deleted file mode 100644 index 72eaae27cf..0000000000 --- a/catalog-ui/app/scripts/view-models/workspace/tabs/composition/tabs/relations/relations-view.html +++ /dev/null @@ -1,57 +0,0 @@ - - -
      - - Capabilities -
      -
      - -
      -
      -
      -
      -
      -
      {{capability.name}}  -   {{capability.ownerName | resourceName}}
      -
      {{capability.type}}
      -
      -
      -
      -
      -
      - -
      - - Requirements -
      -
      - -
      -
      -
      -
      -
      -
      {{requirement.name}}  -   {{requirement.ownerName | resourceName}}
      -
      {{requirement.node}} -
      -
      -
      - {{getRelation(requirement).type}}
      - {{getRelation(requirement).requirementName}} -
      -
      -
      -
      -
      -
      -
      -
      - -
      diff --git a/catalog-ui/app/scripts/view-models/workspace/tabs/composition/tabs/relations/relations.less b/catalog-ui/app/scripts/view-models/workspace/tabs/composition/tabs/relations/relations.less deleted file mode 100644 index 212b9785e9..0000000000 --- a/catalog-ui/app/scripts/view-models/workspace/tabs/composition/tabs/relations/relations.less +++ /dev/null @@ -1,116 +0,0 @@ -.w-sdc-designer-sidebar-tab-content.relations { - - .w-sdc-designer-sidebar-section-content { - padding: 0; - } - - .w-sdc-designer-sidebar-section-title { - &.expanded { - margin-bottom: 0; - } - } - - .i-sdc-designer-sidebar-section-content-item-relations { - border-bottom: 1px solid @color_e; - padding: 10px 10px 10px 18px; - position: relative; - cursor: default; - - .i-sdc-designer-sidebar-section-content-item-button { - top: 15px; - line-height: 10px; - } - - &:hover { - background-color: @color_c; - - .i-sdc-designer-sidebar-section-content-item-button { - display: block; - - } - - } - - } - .w-sdc-designer-sidebar-section-relations:not(:last-child) .i-sdc-designer-sidebar-section-content-item-relations-group:last-child .i-sdc-designer-sidebar-section-content-item-relations:last-child { - border-bottom: none; - } - - - .i-sdc-designer-sidebar-section-content-item-relations.hand { - .hand; - } - - .i-sdc-designer-sidebar-section-content-item-relations-group { - //border-bottom: 1px solid @color_e; - } - - .i-sdc-designer-sidebar-section-content-item-relations-details { - display: inline-block; - margin-left: 5px; - vertical-align: middle; - } - - .i-sdc-designer-sidebar-section-content-item-relations-details-name { - .b_1; - .bold; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - //width: 100%; - text-transform: capitalize; - max-width: 240px; - display: inline-block; - } - - .i-sdc-designer-sidebar-section-content-item-relations-details-ownerName { - .b_13; - font-weight:400; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - - &:before{ - .sprite; - .arrow-left; - content: ''; - } - } - - .i-sdc-designer-sidebar-section-content-item-relations-details-desc { - .p_1; - line-height: 14px; - word-wrap: break-word; - white-space: normal; - - .i-sdc-designer-sidebar-section-content-item-relations-details-indent-box{ - border-left: 1px #848586 solid; - height: 40px; - margin-left: 2px; - margin-top: 5px; - border-bottom: 1px #848586 solid; - width: 25px; - float: left; - } - .i-sdc-designer-sidebar-section-content-item-relations-details-child{ - margin-top: 30px; - float: left; - padding-left: 10px; - max-width: 230px; - } - } - - .i-sdc-designer-sidebar-section-content-item-relations-details-desc-label { - font-family: omnes-medium, sans-serif; - } - - .i-sdc-designer-sidebar-section-content-item-relations-view { - position: absolute; - right: 0; - top: 22px; - display: none; - } - -} - - diff --git a/catalog-ui/app/scripts/view-models/workspace/tabs/composition/tabs/structure/structure-view.html b/catalog-ui/app/scripts/view-models/workspace/tabs/composition/tabs/structure/structure-view.html deleted file mode 100644 index 2070041990..0000000000 --- a/catalog-ui/app/scripts/view-models/workspace/tabs/composition/tabs/structure/structure-view.html +++ /dev/null @@ -1,13 +0,0 @@ - - -
      - - Composition -
      -
      - -
      - -
      -
      -
      diff --git a/catalog-ui/app/scripts/view-models/workspace/tabs/composition/tabs/structure/structure-view.ts b/catalog-ui/app/scripts/view-models/workspace/tabs/composition/tabs/structure/structure-view.ts deleted file mode 100644 index daeab7f2f3..0000000000 --- a/catalog-ui/app/scripts/view-models/workspace/tabs/composition/tabs/structure/structure-view.ts +++ /dev/null @@ -1,34 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.ViewModels { - 'use strict'; - - interface IStructureViewModel extends ICompositionViewModelScope {} - - export class StructureViewModel { - static '$inject' = [ - '$scope' - ]; - - constructor(private $scope:IStructureViewModel) { - } - } - } diff --git a/catalog-ui/app/scripts/view-models/workspace/tabs/deployment-artifacts/deployment-artifacts-view-model.ts b/catalog-ui/app/scripts/view-models/workspace/tabs/deployment-artifacts/deployment-artifacts-view-model.ts deleted file mode 100644 index 43511e2deb..0000000000 --- a/catalog-ui/app/scripts/view-models/workspace/tabs/deployment-artifacts/deployment-artifacts-view-model.ts +++ /dev/null @@ -1,253 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.ViewModels { - 'use strict'; - import Resource = Sdc.Models.Components.Resource; - import ArtifactModel = Sdc.Models.ArtifactModel; - - interface IDeploymentArtifactsViewModelScope extends IWorkspaceViewModelScope { - tableHeadersList: Array; - reverse: boolean; - sortBy:string; - artifacts: Array; - editForm:ng.IFormController; - isLoading:boolean; - artifactDescriptions:any; - updateInProgress:boolean; - - addOrUpdate(artifact:Models.ArtifactModel): void; - update(artifact:Models.ArtifactModel): void; - delete(artifact:Models.ArtifactModel): void; - sort(sortBy:string): void; - noArtifactsToShow():boolean; - getValidationPattern(validationType:string, parameterType?:string):RegExp; - validateJson(json:string):boolean; - resetValue(parameter:any):void; - viewModeOrCsarComponent():boolean; - isLicenseArtifact(artifact:Models.ArtifactModel): boolean; - - } - - export class DeploymentArtifactsViewModel { - - static '$inject' = [ - '$scope', - '$filter', - '$modal', - '$templateCache', - 'ValidationUtils', - 'ArtifactsUtils', - 'ModalsHandler' - ]; - - constructor(private $scope:IDeploymentArtifactsViewModelScope, - private $filter:ng.IFilterService, - private $modal:ng.ui.bootstrap.IModalService, - private $templateCache:ng.ITemplateCacheService, - private validationUtils:Sdc.Utils.ValidationUtils, - private artifactsUtils:Sdc.Utils.ArtifactsUtils, - private ModalsHandler:Utils.ModalsHandler) { - this.initScope(); - this.$scope.updateSelectedMenuItem(); - } - - private initDescriptions = ():void => { - this.$scope.artifactDescriptions = {}; - _.forEach(this.$scope.component.deploymentArtifacts, (artifact:Models.ArtifactModel):void => { - this.$scope.artifactDescriptions[artifact.artifactLabel] = artifact.description; - }); - }; - - - private setArtifact = (artifact:Models.ArtifactModel):void => { - if (artifact.heatParameters) { - artifact.heatParameters.forEach((parameter:any):void => { - if (!parameter.currentValue && parameter.defaultValue) { - parameter.currentValue = parameter.defaultValue; - } else if ("" === parameter.currentValue) { - parameter.currentValue = null; - } - }); - } - if (!artifact.description || !this.$scope.getValidationPattern('string').test(artifact.description)) { - artifact.description = this.$scope.artifactDescriptions[artifact.artifactLabel]; - } - }; - - private updateAll = ():void => { - let artifacts:Array = []; - _.forEach(this.$scope.component.deploymentArtifacts, (artifact:Models.ArtifactModel):void => { - if (artifact.selected) { - this.setArtifact(artifact); - artifacts.push(artifact); - } - }); - this.$scope.component.updateMultipleArtifacts(artifacts); - }; - - - private initScope = ():void => { - let self = this; - this.$scope.isLoading = false; - this.$scope.updateInProgress = false; - this.initDescriptions(); - this.$scope.artifacts = _.values(this.$scope.component.deploymentArtifacts); - this.$scope.setValidState(true); - - this.$scope.tableHeadersList = [ - {title: 'Name', property: 'artifactDisplayName'}, - {title: 'Type', property: 'artifactType'}, - {title: 'Deployment timeout', property: 'timeout'} - ]; - - this.$scope.isLicenseArtifact = (artifact:Models.ArtifactModel) :boolean => { - let isLicense:boolean = false; - if(this.$scope.component.isResource() && (this.$scope.component).isCsarComponent()) { - - isLicense = this.artifactsUtils.isLicenseType(artifact.artifactType); - } - - return isLicense; - }; - - this.$scope.sort = (sortBy:string):void => { - this.$scope.reverse = (this.$scope.sortBy === sortBy) ? !this.$scope.reverse : false; - this.$scope.sortBy = sortBy; - }; - - this.$scope.getValidationPattern = (validationType:string, parameterType?:string):RegExp => { - return this.validationUtils.getValidationPattern(validationType, parameterType); - }; - - this.$scope.validateJson = (json:string):boolean => { - if(!json){ - return true; - } - return this.validationUtils.validateJson(json); - }; - - this.$scope.viewModeOrCsarComponent = ():boolean => { - return this.$scope.isViewMode() || (this.$scope.component.isResource() && (this.$scope.component).isCsarComponent()); - }; - - - this.$scope.addOrUpdate = (artifact:Models.ArtifactModel):void => { - artifact.artifactGroupType = 'DEPLOYMENT'; - let artifactCopy = new Models.ArtifactModel(artifact); - - let success = (response:any):void => { - self.$scope.artifactDescriptions[artifactCopy.artifactLabel] = artifactCopy.description; - self.$scope.artifacts = _.values(self.$scope.component.deploymentArtifacts); - }; - - let error = (err:any):void =>{ - console.log(err); - self.$scope.artifacts = _.values(self.$scope.component.deploymentArtifacts); - }; - - - this.ModalsHandler.openWizardArtifactModal(artifactCopy, self.$scope.component).then(success, error); - }; - - this.$scope.noArtifactsToShow = ():boolean => { - return !_.some(this.$scope.artifacts, 'esId'); - }; - - - this.$scope.resetValue = (parameter:any):void => { - if (!parameter.currentValue && parameter.defaultValue) { - parameter.currentValue = parameter.defaultValue; - } - else if ('boolean' == parameter.type) { - parameter.currentValue = parameter.currentValue.toUpperCase(); - } - }; - - - this.$scope.$watch('editForm.$valid', ():void => { - if (this.$scope.editForm) { - // this.$scope.setValidState(this.$scope.editForm.$valid); - } - }); - - this.$scope.update = (artifact:Models.ArtifactModel):void => { - if (false == this.$scope.isLoading) { - if (artifact.selected && !this.$scope.isViewMode()) { - this.$scope.isLoading = true; - this.$scope.updateInProgress = true; - let onSuccess = (responseArtifact:Models.ArtifactModel):void => { - this.$scope.artifactDescriptions[responseArtifact.artifactLabel] = responseArtifact.description; - this.$scope.artifacts = _.values(this.$scope.component.deploymentArtifacts); - this.$scope.isLoading = false; - artifact.selected = !artifact.selected; - this.$scope.updateInProgress = false; - }; - - let onFailed = (error:any):void => { - console.log('Delete artifact returned error:', error); - this.$scope.isLoading = false; - artifact.selected = !artifact.selected; - this.$scope.updateInProgress = false; - }; - - this.setArtifact(artifact); - this.$scope.component.addOrUpdateArtifact(artifact).then(onSuccess, onFailed); - } else { - artifact.selected = !artifact.selected; - - } - } - }; - - this.$scope.delete = (artifact:Models.ArtifactModel):void => { - let onOk = ():void => { - this.$scope.isLoading = true; - let onSuccess = ():void => { - this.$scope.isLoading = false; - this.$scope.artifacts = _.values(this.$scope.component.deploymentArtifacts); - }; - - let onFailed = (error:any):void => { - this.$scope.isLoading = false; - console.log('Delete artifact returned error:', error); - }; - - this.$scope.component.deleteArtifact(artifact.uniqueId, artifact.artifactLabel).then(onSuccess, onFailed); - }; - - let title:string = self.$filter('translate')("ARTIFACT_VIEW_DELETE_MODAL_TITLE"); - let message:string = self.$filter('translate')("ARTIFACT_VIEW_DELETE_MODAL_TEXT", "{'name': '" + artifact.artifactDisplayName + "'}"); - this.ModalsHandler.openConfirmationModal(title, message, false).then(onOk); - }; - }; - - public save = (callback:Function):void => { - this.updateAll(); - this.$scope.setComponent(this.$scope.component); - callback(true); - }; - - public back = (callback:Function):void => { - this.$scope.setComponent(this.$scope.component); - callback(true); - } - } -} diff --git a/catalog-ui/app/scripts/view-models/workspace/tabs/deployment-artifacts/deployment-artifacts-view.html b/catalog-ui/app/scripts/view-models/workspace/tabs/deployment-artifacts/deployment-artifacts-view.html deleted file mode 100644 index 1547618134..0000000000 --- a/catalog-ui/app/scripts/view-models/workspace/tabs/deployment-artifacts/deployment-artifacts-view.html +++ /dev/null @@ -1,149 +0,0 @@ -
      - -
      Add
      - -
      - -
      - -
      -
      {{header.title}} - -
      -
      -
      - -
      - - - - -
      -
      - -
      - - - {{artifact.artifactDisplayName}} -
      - -
      - {{artifact.artifactType}} -
      -
      - {{artifact.timeout? artifact.timeout:''}} -
      - -
      - - - - - -
      -
      -
      - - - -
      - - - -
      - - - -
      - -
      - - -
      - -
      -
      - - ? - - -
      - - - -
      -
      -
      - - -
      -
      - - ? - - -
      - - - -
      -
      -
      - - -
      -
      - - - - - - -
      -
      -
      -
      -
      diff --git a/catalog-ui/app/scripts/view-models/workspace/tabs/deployment-artifacts/deployment-artifacts.less b/catalog-ui/app/scripts/view-models/workspace/tabs/deployment-artifacts/deployment-artifacts.less deleted file mode 100644 index 9f90a47d5a..0000000000 --- a/catalog-ui/app/scripts/view-models/workspace/tabs/deployment-artifacts/deployment-artifacts.less +++ /dev/null @@ -1,102 +0,0 @@ -.workspace-deployment-artifact { - width: 93%; - display: inline-block; - .table-container-flex .table .body .data-row + div.item-opened { - align-items: center; - padding: 10px 40px 10px 30px; - } - - .w-sdc-classic-btn { - float: right; - margin-bottom: 10px; - } - - .table { - height:490px; - margin-bottom: 0; - } - - .parameter-description { - .circle(18px, @color_p); - content: '?'; - line-height: 18px; - vertical-align: middle; - margin-left: 5px; - cursor: default; - display: inline-block; - position: absolute; - top: 16px; - } - - .table-container-flex { - - margin-top: 27px; - - .flex-item:nth-child(1) { - flex-grow: 15; - .hand; - span.table-arrow { - margin-right: 7px; - } - } - - .flex-item:nth-child(2) { - flex-grow: 6; - } - - .flex-item:nth-child(3) { - flex-grow: 9; - } - - .flex-item:nth-child(4) { - flex-grow: 3; - padding-top: 10px; - } - } - .w-sdc-form{ - text-align: left; - - .w-sdc-env-params{ - border-top: 1px solid #cdcdcd; - margin: 25px 0 10px 0; - } - - .i-sdc-form-textarea { - border: 1px solid @color_e; - min-height: 60px; - padding: 10px 13px; - width: 100%; - resize: none; - - } - - .w-sdc-form-item { - &.error { - .i-sdc-form-input, - .i-sdc-form-select, - .i-sdc-form-textarea { - border-color: @color_h; - outline: none; - box-sizing: border-box; - } - } - } - - .i-sdc-env-form-label{ - font-family: @font-omnes-medium; - color: @main_color_m; - overflow: hidden; - max-width: 450px; - text-overflow: ellipsis; - display: inline-block; - white-space: nowrap; - margin-top: 14px; - - &.required::before { - color: #f33; - content: '*'; - margin-right: 4px; - } - } - } -} diff --git a/catalog-ui/app/scripts/view-models/workspace/tabs/deployment/deployment-view-model.ts b/catalog-ui/app/scripts/view-models/workspace/tabs/deployment/deployment-view-model.ts deleted file mode 100644 index f8afc0b758..0000000000 --- a/catalog-ui/app/scripts/view-models/workspace/tabs/deployment/deployment-view-model.ts +++ /dev/null @@ -1,127 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.ViewModels { - 'use strict'; - - export interface IDeploymentViewModelScope extends IWorkspaceViewModelScope { - - currentComponent: Models.Components.Component; - selectedComponent: Models.Components.Component; - isLoading: boolean; - sharingService:Sdc.Services.SharingService; - sdcMenu:Models.IAppMenu; - version:string; - isViewOnly:boolean; - tabs:Array; - - setComponent(component: Models.Components.Component); - isComponentInstanceSelected():boolean; - updateSelectedComponent(): void - openUpdateModal(); - deleteSelectedComponentInstance():void; - onBackgroundClick():void; - setSelectedInstance(componentInstance: Models.ComponentsInstances.ComponentInstance): void; - printScreen():void; - - } - - export class DeploymentViewModel { - - static '$inject' = [ - '$scope', - 'sdcMenu', - 'MenuHandler', - '$modal', - '$templateCache', - '$state', - 'Sdc.Services.SharingService', - '$filter', - 'Sdc.Services.CacheService', - 'ComponentFactory', - 'ChangeLifecycleStateHandler', - 'LeftPaletteLoaderService', - 'ModalsHandler' - ]; - - constructor(private $scope:IDeploymentViewModelScope, - private sdcMenu:Models.IAppMenu, - private MenuHandler: Utils.MenuHandler, - private $modal:ng.ui.bootstrap.IModalService, - private $templateCache:ng.ITemplateCacheService, - private $state:ng.ui.IStateService, - private sharingService:Services.SharingService, - private $filter:ng.IFilterService, - private cacheService:Services.CacheService, - private ComponentFactory: Utils.ComponentFactory, - private ChangeLifecycleStateHandler: Sdc.Utils.ChangeLifecycleStateHandler, - private LeftPaletteLoaderService: Services.Components.LeftPaletteLoaderService, - private ModalsHandler: Sdc.Utils.ModalsHandler) { - - this.$scope.setValidState(true); - this.initScope(); - this.$scope.updateSelectedMenuItem(); - } - - - private initComponent = ():void => { - - this.$scope.currentComponent = this.$scope.component; - this.$scope.selectedComponent = this.$scope.currentComponent; - this.updateUuidMap(); - this.$scope.isViewOnly = this.$scope.isViewMode(); - }; - - - private updateUuidMap = ():void => { - /** - * In case user press F5, the page is refreshed and this.sharingService.currentEntity will be undefined, - * but after loadService or loadResource this.sharingService.currentEntity will be defined. - * Need to update the uuidMap with the new resource or service. - */ - this.sharingService.addUuidValue(this.$scope.currentComponent.uniqueId,this.$scope.currentComponent.uuid); - }; - - private initRightTabs = ()=> { - if(this.$scope.currentComponent.groups){ - - let hierarchyTab = new Models.Tab('/app/scripts/view-models/tabs/hierarchy/hierarchy-view.html', 'Sdc.ViewModels.HierarchyViewModel', 'hierarchy', this.$scope.currentComponent, 'hierarchy'); - this.$scope.tabs = Array(); - this.$scope.tabs.push(hierarchyTab) - } - - } - private initScope = ():void => { - - this.$scope.sharingService = this.sharingService; - this.$scope.sdcMenu = this.sdcMenu; - this.$scope.isLoading = false; - - this.$scope.version = this.cacheService.get('version'); - this.initComponent(); - - this.$scope.setComponent = (component: Models.Components.Product):void => { - this.$scope.currentComponent = component; - } - - this.initRightTabs(); - } - } -} diff --git a/catalog-ui/app/scripts/view-models/workspace/tabs/deployment/deployment-view.html b/catalog-ui/app/scripts/view-models/workspace/tabs/deployment/deployment-view.html deleted file mode 100644 index 9e26656f5f..0000000000 --- a/catalog-ui/app/scripts/view-models/workspace/tabs/deployment/deployment-view.html +++ /dev/null @@ -1,10 +0,0 @@ -
      -
      - - -
      - -
      - -
      -
      diff --git a/catalog-ui/app/scripts/view-models/workspace/tabs/deployment/deployment.less b/catalog-ui/app/scripts/view-models/workspace/tabs/deployment/deployment.less deleted file mode 100644 index 0439ccd0fa..0000000000 --- a/catalog-ui/app/scripts/view-models/workspace/tabs/deployment/deployment.less +++ /dev/null @@ -1,33 +0,0 @@ -.deployment-view{ - - display: inline-block; - text-align: left; - align-items: left; - padding: 0; - width: 100%; - height: 100%; - - .w-sdc-deployment-canvas { - .noselect; - .bg_c; - bottom: 0; - width: 100%; - height: 100%; - - .view-mode{ - background-color: #f8f8f8; - border:0; - } - } - - .w-sdc-deployment-right-bar { - - .noselect; - bottom: 0; - position: absolute; - right: 0px; - transition: right 0.2s; - z-index: 10000; - top: @action_nav_height; - } -} diff --git a/catalog-ui/app/scripts/view-models/workspace/tabs/distribution/disribution-status-modal/disribution-status-modal-view-model.ts b/catalog-ui/app/scripts/view-models/workspace/tabs/distribution/disribution-status-modal/disribution-status-modal-view-model.ts deleted file mode 100644 index c0d6aba915..0000000000 --- a/catalog-ui/app/scripts/view-models/workspace/tabs/distribution/disribution-status-modal/disribution-status-modal-view-model.ts +++ /dev/null @@ -1,67 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.ViewModels { - 'use strict'; - - interface IDistributionStatusModalViewModelScope { - distribution:Models.Distribution; - status:string; - getStatusCount(distributionComponent:Array):any; - getUrlName(url:string):string; - modalDitributionStatus:ng.ui.bootstrap.IModalServiceInstance; - footerButtons: Array; - close(): void; - } - - export class DistributionStatusModalViewModel { - - static '$inject' = ['$scope','$modalInstance', 'data']; - - constructor(private $scope:IDistributionStatusModalViewModelScope, - private $modalInstance:ng.ui.bootstrap.IModalServiceInstance, - private data:any - ) { - this.initScope(); - } - - private initScope = ():void => { - this.$scope.distribution = this.data.distribution; - this.$scope.status = this.data.status; - this.$scope.modalDitributionStatus = this.$modalInstance; - - this.$scope.getUrlName = (url:string):string =>{ - let urlName:string = _.last(url.split('/')); - return urlName; - }; - - this.$scope.close = ():void => { - this.$modalInstance.close(); - }; - - this.$scope.footerButtons = [ - {'name': 'Close', 'css': 'blue', 'callback': this.$scope.close } - ]; - - }; - - - } -} diff --git a/catalog-ui/app/scripts/view-models/workspace/tabs/distribution/disribution-status-modal/disribution-status-modal-view.html b/catalog-ui/app/scripts/view-models/workspace/tabs/distribution/disribution-status-modal/disribution-status-modal-view.html deleted file mode 100644 index b3393e99e0..0000000000 --- a/catalog-ui/app/scripts/view-models/workspace/tabs/distribution/disribution-status-modal/disribution-status-modal-view.html +++ /dev/null @@ -1,126 +0,0 @@ - - -
      -
      - -
      - - - -
      -
        -
      • -
        - -
        -
        -
        -
        Distribution ID
        -
        -
        -
        -
        -
        -
        -
        -
        Time[UTC]:
        -
        -
        -
        - - -
        -
        -
        -
        Status: {{status}}
        - -
        -
        -
        - -
          -
        • -
          -
          -
          -
          {{omfComponentID}} {{omfComponentList.length}} -
          -
          -
          -
          -
          -
          -
          -
          Component ID
          -
          Artifact Name
          -
          URL
          -
          Time(UTC)
          -
          Status
          -
          - -
          -
          -
          - {{urlList[0].omfComponentID}} -
          -
          - {{getUrlName(urlList[0].url)}} -
          -
          -
          {{urlList[0].url}}
          - -
          -
          -
          -
          {{urlList[0].status}}
          -
          - - -
          -
          -
            -
          • - - {{distributionComponent.status}} - Reason: Component has determined artifact is not needed. - Reason: {{distributionComponent.errorReason}} -
          • -
          -
          -
          -
          -
          -
          -
        • -
        -
      • -
      -
      - -
      -
      - - -
      diff --git a/catalog-ui/app/scripts/view-models/workspace/tabs/distribution/disribution-status-modal/disribution-status-modal.less b/catalog-ui/app/scripts/view-models/workspace/tabs/distribution/disribution-status-modal/disribution-status-modal.less deleted file mode 100644 index 02321b6e2f..0000000000 --- a/catalog-ui/app/scripts/view-models/workspace/tabs/distribution/disribution-status-modal/disribution-status-modal.less +++ /dev/null @@ -1,33 +0,0 @@ -.w-sdc-classic-top-line-modal { - - .w-sdc-modal-head { - // border-bottom: none; - } - .w-sdc-distribution-view { - - .w-sdc-distribution-view-content { - height: 500px; - } - - .w-sdc-distribution-view-content-section { - - .w-sdc-distribute-parent-block { - .w-sdc-distribute-components-block { - - .omf-component-row { - .w-sdc-distribute-status-block { - margin-left: 0; - } - - } - div { - padding-left: 0; - } - } - - } - - } - } -} - diff --git a/catalog-ui/app/scripts/view-models/workspace/tabs/distribution/distribution-view-model.ts b/catalog-ui/app/scripts/view-models/workspace/tabs/distribution/distribution-view-model.ts deleted file mode 100644 index 219585fc3d..0000000000 --- a/catalog-ui/app/scripts/view-models/workspace/tabs/distribution/distribution-view-model.ts +++ /dev/null @@ -1,135 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// - -module Sdc.ViewModels { - 'use strict'; - - interface IDistributionViewModel extends IWorkspaceViewModelScope{ - modalDistribution:ng.ui.bootstrap.IModalServiceInstance; - service: Models.Components.Service; - distributions : Array; - showComponents(distribution:Models.Distribution): void; - markAsDeployed(distribution:Models.Distribution): void; - getStatusCount(distributionComponent:Array):any; - initDistributions():void; - getUrlName(url:string):string; - close(): void; - openDisributionStatusModal:Function; - } - - export class DistributionViewModel{ - - static '$inject' = [ - '$scope', - 'ModalsHandler' - - ]; - - constructor( - private $scope:IDistributionViewModel, - private ModalsHandler: Sdc.Utils.ModalsHandler - ){ - this.initScope(); - this.$scope.setValidState(true); - this.$scope.updateSelectedMenuItem(); - } - - private initScope = (): void => { - this.$scope.service = this.$scope.component; - - - // Open Distribution status modal - this.$scope.openDisributionStatusModal = (distribution: Models.Distribution,status:string):void => { - this.ModalsHandler.openDistributionStatusModal(distribution,status).then(()=>{ - // OK - }, ()=>{ - // ERROR - }); - }; - - - this.$scope.showComponents = (distribution: Models.Distribution): void => { - let onError = (response) => { - console.info('onError showComponents',response); - }; - let onSuccess = (distributionComponents: Array) => { - distribution.distributionComponents = distributionComponents; - distribution.statusCount = this.$scope.getStatusCount(distribution.distributionComponents); - // distribution.components = this.aggregateDistributionComponent(distributionComponents);; - }; - this.$scope.service.getDistributionsComponent(distribution.distributionID).then(onSuccess, onError); - }; - - this.$scope.getStatusCount = (distributionComponent:Array):any => { - return _.countBy(distributionComponent, 'status') - }; - - this.$scope.getUrlName = (url:string):string =>{ - let urlName:string = _.last(url.split('/')); - return urlName; - }; - - this.$scope.markAsDeployed = (distribution: Models.Distribution): void => { - let onError = (response) => { - console.info('onError markAsDeployed',response); - }; - let onSuccess = (result: any) => { - distribution.deployementStatus = 'Deployed'; - }; - this.$scope.service.markAsDeployed(distribution.distributionID).then(onSuccess, onError); - - }; - - this.$scope.initDistributions = (): void => { - let onError = (response) => { - console.info('onError initDistributions',response); - }; - let onSuccess = (distributions: Array) => { - this.$scope.distributions = distributions; - }; - this.$scope.service.getDistributionsList().then(onSuccess, onError); - }; - - this.$scope.initDistributions(); - - }; - - - private aggregateDistributionComponent = (distributionComponents:Array):any =>{ - let aggregateDistributions:Utils.Dictionary>> = new Utils.Dictionary>>(); - let tempAggregateDistributions:any= _.groupBy(distributionComponents,'omfComponentID'); - let aa = new Utils.Dictionary>(); - - let tempAggregate:any; - _.forEach(tempAggregateDistributions,(distributionComponents:Array,omfComponentID:string)=>{ - - let urls:any = _.groupBy(distributionComponents,'url'); - aggregateDistributions.setValue(omfComponentID,urls); - // aggregateDistributions[omfComponentID] = ; - - }); - console.log(aggregateDistributions); - return aggregateDistributions; - }; - - - } -} diff --git a/catalog-ui/app/scripts/view-models/workspace/tabs/distribution/distribution-view.html b/catalog-ui/app/scripts/view-models/workspace/tabs/distribution/distribution-view.html deleted file mode 100644 index 1ab0f1e111..0000000000 --- a/catalog-ui/app/scripts/view-models/workspace/tabs/distribution/distribution-view.html +++ /dev/null @@ -1,171 +0,0 @@ -
      -
      -
      DISTRIBUTION
      -
      - -
      -
      - - - -
      -
        -
      • -
        -
        -
        -
        -
        -
        Distribution ID
        -
        -
        -
        -
        -
        -
        -
        -
        Time[UTC]:
        -
        -
        -
        - - -
        -
        -
        -
        -
        -
        -
        Total Artifacts:
        -
        Notified:
        - - - -
        Errors:
        -
        -
        -
        - -
          - -
        • -
          -
          -
          -
          {{omfComponentID}} {{(statusCount.NOT_NOTIFIED || 0) + (statusCount.NOTIFIED || 0) }} -
          -
          Notified:
          -
          Downloaded:
          -
          Deployed:
          -
          Not Notified:
          -
          Errors:
          -
          -
          -
          -
          -
          -
          -
          Component ID
          -
          Artifact Name
          -
          URL
          -
          Time(UTC)
          -
          Status
          -
          - -
          -
          -
          - {{urlList[0].omfComponentID}} -
          -
          - {{getUrlName(urlList[0].url)}} -
          -
          -
          {{urlList[0].url}}
          - -
          -
          -
          -
          {{urlList[0].status}}
          -
          - - -
          -
          -
            -
          • - - {{distributionComponent.status}} - Reason: Component has determined artifact is not needed. - Reason: {{distributionComponent.errorReason}} -
          • -
          -
          -
          -
          -
          -
          -
        • -
        -
      • -
      -
      - -
      -
      diff --git a/catalog-ui/app/scripts/view-models/workspace/tabs/distribution/distribution.less b/catalog-ui/app/scripts/view-models/workspace/tabs/distribution/distribution.less deleted file mode 100644 index 8ad8c1793e..0000000000 --- a/catalog-ui/app/scripts/view-models/workspace/tabs/distribution/distribution.less +++ /dev/null @@ -1,361 +0,0 @@ - -.w-sdc-distribution-view { - text-align: left; - - .g_1; - min-height: 500px; - - .w-sdc-distribution-view-distributed-green-text { - .l_9; - .bold; - } - .w-sdc-distribution-view-distributed-error-red-text { - .h_9; - .bold; - } - - .bg_c; - vertical-align: top; - padding: 30px 10px; - width: 100%; - - .w-sdc-distribution-view-header { - display: flex; - -webkit-justify-content: space-between; - margin: 0 25px 5px 40px; - - .header-spacer { - flex-grow: 5; - } - } - - .top-search { - position: relative; - input { - &.search-text { - height: 26px; - line-height: 26px; - margin: 0 18px 4px 20px; - padding-right: 25px; - } - - } - .magnification { - top: 8px; - right: 25px; - } - } - - .w-sdc-distribution-view-content { - .perfect-scrollbar; - padding: 0 25px 0 0px; - margin-bottom: 25px; - height: 700px; - overflow: hidden; - position: relative; - - } - - .w-sdc-distribution-view-title { - .s_14_r; - - line-height: 30px; - - span { - padding-left: 5px; - } - } - - .blue-font { - .a_14_m; - - } - - .red-font { - .q_14_m; - } - - .w-sdc-distribution-view-block { - div { - display: inline-block; - } - } - - .w-sdc-distribution-view-content-section { - ul { - list-style-type: none; - } - - .distribution-bth { - .hand; - &.disabled { - cursor: none; - } - } - - .copy-link { - padding-right: 19px; - margin-left: 8px; - cursor: pointer; - - } - - .w-sdc-distribute-row-extends { - border-Left: solid 4px transparent; - &.extends { - border-left: solid 4px @main_color_c; - border-bottom: 1px solid @border_color_f; - margin-bottom: 10px; - } - } - .w-sdc-distribute-parent-block { - border: 1px solid @main_color_o;; - width: 100%; - margin-bottom: 6px; - - .status-icon { - vertical-align: middle; - margin-bottom: 4px; - } - - &.extends { - background-color: @tlv_color_t; - } - - :not(.disable-hover):hover { - background-color: @tlv_color_u; - } - - .title-section { - display: inline-block; - margin-right: 10px; - flex-basis: 0; - } - - .title { - .l_12_m; - font-weight: bold; - } - .w-sdc-distribute-content { - display: flex; - align-items: center; - justify-content: space-between; - margin-left: 10px; - } - - .w-sdc-distribution-arrow-btn { - .sprite-new; - .arrow-up-small; - margin: 0 6px; - } - .extends.w-sdc-distribution-arrow-btn { - -webkit-transform: rotate(180deg); - -ms-transform: rotate(180deg); - transform: rotate(180deg); - } - - .w-sdc-distribute-row { - display: flex; - align-items: center; - justify-content: space-between; - - .w-sdc-distribute-row-content { - margin: 15px 31px 10px 0; - width: 100%; - .w-sdc-distribute-status-block { - border-top: solid 1px @main_color_o; - } - .item-1 { - flex-grow: 2; - } - .item-2 { - flex-grow: 1; - } - .item-3 { - flex-grow: 1; - } - .item-4 { - flex-grow: 1; - } - .item-5 { - flex-grow: 1; - } - } - } - - .w-sdc-distribute-status-block { - display: flex; - align-items: center; - justify-content: space-between; - margin: 10px 5px 0 5px; - padding: 5px 5px 0 5px;; - width: 100%; - div { - border-left: 1px solid @main_color_o; - padding: 0 12px; - } - - .link { - .a_14_m; - cursor: pointer; - &:hover{ - text-decoration: underline; - .b_14_m; - } - } - - span { - padding: 2px; - } - - .deployed { - margin-left: 10px; - .sprite-new; - .success-circle-small; - } - - .error { - .q_14_m; - margin-left: 10px; - .sprite-new; - .error-icon; - } - - .status-item-1 { - border-left: 0; - } - - .status-item-6 { - flex-grow: 1; - border-left: none; - text-align: right; - } - } - - .w-sdc-distribute-components-block { - padding: 0; - padding-bottom: 5px; - list-style-type: none; - - li { - margin: 5px 2px; - } - - .omf-component-row { - border: 1px solid @border_color_f; - padding-left: 3px; - background-color: white; - margin: 0 30px; - &.extends { - padding-left: 0; - border-Left: solid 4px @main_color_c; - - } - - .w-sdc-distribute-status-block { - margin: 5px; - padding: 5px; - } - - .blue-font { - .a_16_m; - - } - - &:hover { - background-color: @tlv_color_u; - } - - } - - } - - .w-sdc-distribute-omfComponent-block { - background-color: white; - margin: 0 30px; - padding: 8px 10px; - border: 1px solid @border_color_f; - - .omfComponent-table-head { - margin-bottom: 5px; - background-color: @tlv_color_u; - .title { - padding: 6px 10px; - border-left: 1px solid @border_color_f; - &:first-child { - border: none; - } - } - } - - .omfComponent-table-row { - border-bottom: 1px solid @border_color_f; - &.row-0 { - border-top: 1px solid @border_color_f; - } - .w-sdc-distribute-cell { - padding: 10px; - border-left: 1px solid @border_color_f; - &:last-child { - border-right: 1px solid @border_color_f; - } - &.item-5 { - .m_14_m; - } - } - } - - .distribution-url { - - } - - .w-sdc-distribute-row.extends { - border-Left: solid 4px @main_color_c; - .item-1 { - border: none; - } - - } - - .item-1 { - width: 20%; - } - .item-2 { - width: 20%; - } - - .item-3 { - width: 24%; - display: flex; - } - - .item-4 { - width: 18%; - } - - .item-5 { - width: 18%; - } - } - - .w-sdc-distribute-url-block { - - padding: 10px 15px; - border: none; - border-right: 1px solid @border_color_f; - border-bottom: 1px solid @border_color_f; - width: 100%; - li { - border: none; - span { - padding-right: 30px; - .m_12_r; - } - } - - } - } - - } -} - diff --git a/catalog-ui/app/scripts/view-models/workspace/tabs/general/general-view-model.ts b/catalog-ui/app/scripts/view-models/workspace/tabs/general/general-view-model.ts deleted file mode 100644 index f613648596..0000000000 --- a/catalog-ui/app/scripts/view-models/workspace/tabs/general/general-view-model.ts +++ /dev/null @@ -1,379 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.ViewModels { - - 'use strict'; - import Resource = Sdc.Models.Components.Resource; - import ISubCategory = Sdc.Models.ISubCategory; - import IMainCategory = Sdc.Models.IMainCategory; - import ResourceType = Sdc.Utils.Constants.ResourceType; - - export class Validation { - validationPattern:RegExp; - contactIdValidationPattern:RegExp; - tagValidationPattern:RegExp; - vendorValidationPattern:RegExp; - commentValidationPattern:RegExp; - projectCodeValidationPattern:RegExp; - } - - export interface IGeneralScope extends IWorkspaceViewModelScope { - validation:Validation; - editForm:ng.IFormController; - categories: Array; - latestCategoryId: string; - latestVendorName: string; - importedFileExtension:any; - isCreate:boolean; - isShowFileBrowse:boolean; - isShowOnboardingSelectionBrowse:boolean; - importedToscaBrowseFileText:string; - importCsarProgressKey:string; - browseFileLabel:string; - - - onToscaFileChange():void - validateField(field:any):boolean; - validateName(isInit:boolean): void; - calculateUnique(mainCategory:string, subCategory:string):string; // Build unique string from main and sub category - onVendorNameChange(oldVendorName:string): void; - convertCategoryStringToOneArray(category:string, subcategory:string):Array; - onCategoryChange():void; - openOnBoardingModal():void; - initCategoreis():void; - } - - export class GeneralViewModel { - - static '$inject' = [ - '$scope', - 'Sdc.Services.CacheService', - 'ValidationPattern', - 'ContactIdValidationPattern', - 'TagValidationPattern', - 'VendorValidationPattern', - 'CommentValidationPattern', - 'ValidationUtils', - 'sdcConfig', - 'ProjectCodeValidationPattern', - '$state', - 'ModalsHandler', - 'EventListenerService', - 'Notification', - 'Sdc.Services.ProgressService', - '$interval', - '$filter', - '$timeout' - ]; - - constructor(private $scope:IGeneralScope, - private cacheService:Services.CacheService, - private ValidationPattern:RegExp, - private ContactIdValidationPattern:RegExp, - private TagValidationPattern:RegExp, - private VendorValidationPattern:RegExp, - private CommentValidationPattern:RegExp, - private ValidationUtils:Sdc.Utils.ValidationUtils, - private sdcConfig:Models.IAppConfigurtaion, - private ProjectCodeValidationPattern:RegExp, - private $state:ng.ui.IStateService, - private ModalsHandler: Sdc.Utils.ModalsHandler, - private EventListenerService:Services.EventListenerService, - private Notification:any, - private progressService:Sdc.Services.ProgressService, - protected $interval:any, - private $filter:ng.IFilterService, - private $timeout:ng.ITimeoutService - ){ - - this.registerToSuccessSaveEvent(); - this.initScopeValidation(); - this.initScopeMethods(); - this.initScope(); - this.$scope.updateSelectedMenuItem(); - } - - private registerToSuccessSaveEvent = ():void => { - // Register to save success to show notification to user. - this.EventListenerService.registerObserverCallback(Utils.Constants.EVENTS.ON_WORKSPACE_SAVE_BUTTON_SUCCESS, this.showSuccessNotificationMessage); - - }; - - private showSuccessNotificationMessage = ():void => { - // In case we import CSAR. Notify user when import VF was finished. - this.Notification.success({ - message: this.$filter('translate')("IMPORT_VF_MESSAGE_CREATE_FINISHED_DESCRIPTION"), - title: this.$filter('translate')("IMPORT_VF_MESSAGE_CREATE_FINISHED_TITLE") - }); - - //set the form Pristine after save to reset the unsaved changes (whit for dom reload) - this.$timeout(()=> { - if(this.$scope.editForm) { - this.$scope.editForm.$setPristine(); - } - }, 500); - - }; - - - - private initScopeValidation = ():void => { - this.$scope.validation = new Validation(); - this.$scope.validation.validationPattern = this.ValidationPattern; - this.$scope.validation.contactIdValidationPattern = this.ContactIdValidationPattern; - this.$scope.validation.tagValidationPattern = this.TagValidationPattern; - this.$scope.validation.vendorValidationPattern = this.VendorValidationPattern; - this.$scope.validation.commentValidationPattern = this.CommentValidationPattern; - this.$scope.validation.projectCodeValidationPattern = this.ProjectCodeValidationPattern; - }; - - private initScope = ():void => { - - // Work around to change the csar version - if (this.cacheService.get(Utils.Constants.CHANGE_COMPONENT_CSAR_VERSION_FLAG)) { - (this.$scope.component).csarVersion = this.cacheService.get(Utils.Constants.CHANGE_COMPONENT_CSAR_VERSION_FLAG); - } - - this.$scope.importedToscaBrowseFileText = this.$scope.component.name + " (" + (this.$scope.component).csarVersion + ")"; - this.$scope.importCsarProgressKey = "importCsarProgressKey"; - this.$scope.browseFileLabel = this.$scope.component.isResource() && (this.$scope.component).resourceType===ResourceType.VF? "Upload file" : "Upload VFC"; - this.$scope.progressService = this.progressService; - - // Workaround to short vendor name to 25 chars - // onboarding send 27 chars, and the validation pattern is 25 chars. - if (this.$scope.component.vendorName){ - this.$scope.component.vendorName = this.$scope.component.vendorName.substr(0, 25); - } - - // Init UIModel - this.$scope.component.tags = _.without(this.$scope.component.tags, this.$scope.component.name); - - // Init categories - this.$scope.initCategoreis(); - - // Init the decision if to show file browse. - this.$scope.isShowFileBrowse = false; - if (this.$scope.component.isResource()){ - let resource:Sdc.Models.Components.Resource = this.$scope.component; - console.log(resource.name + ": " + resource.csarUUID); - if (resource.importedFile){ // Component has imported file. - this.$scope.isShowFileBrowse = true; - } - if (this.$scope.isEditMode() && resource.resourceType== ResourceType.VF && !resource.csarUUID){ - this.$scope.isShowFileBrowse = true; - } - }; - - // Init the decision if to show onboarding - this.$scope.isShowOnboardingSelectionBrowse = false; - if (this.$scope.component.isResource() && - this.$scope.isEditMode() && - (this.$scope.component).resourceType== ResourceType.VF && - (this.$scope.component).csarUUID) { - this.$scope.isShowOnboardingSelectionBrowse = true; - } - - //init file extensions based on the file that was imported. - if (this.$scope.component.isResource() && (this.$scope.component).importedFile){ - let fileName:string = (this.$scope.component).importedFile.filename; - let fileExtension:string = fileName.split(".").pop(); - if (this.sdcConfig.csarFileExtension.indexOf(fileExtension.toLowerCase()) !== -1){ - this.$scope.importedFileExtension = this.sdcConfig.csarFileExtension; - (this.$scope.component).importedFile.filetype="csar"; - } else if (this.sdcConfig.toscaFileExtension.indexOf(fileExtension.toLowerCase()) !== -1){ - (this.$scope.component).importedFile.filetype="yaml"; - this.$scope.importedFileExtension = this.sdcConfig.toscaFileExtension; - } - }else if(this.$scope.isEditMode()&& (this.$scope.component).resourceType === ResourceType.VF){ - this.$scope.importedFileExtension = this.sdcConfig.csarFileExtension; - //(this.$scope.component).importedFile.filetype="csar"; - } - - this.$scope.setValidState(true); - - this.$scope.calculateUnique = (mainCategory:string, subCategory:string):string => { - let uniqueId:string = mainCategory; - if (subCategory) { - uniqueId += "_#_" + subCategory; // Set the select category combobox to show the selected category. - } - return uniqueId; - }; - - //TODO remove this after handling contact in UI - if(this.$scope.component.isProduct() && this.$scope.isCreateMode()){ - (this.$scope.component).contacts = []; - (this.$scope.component).contacts.push(this.cacheService.get("user").userId); - }else if(this.$scope.isCreateMode()){ - this.$scope.component.contactId = this.cacheService.get("user").userId; - } - - }; - - // Convert category string MainCategory_#_SubCategory to Array with one item (like the server except) - private convertCategoryStringToOneArray = ():Array => { - let tmp = this.$scope.component.selectedCategory.split("_#_"); - let mainCategory = tmp[0]; - let subCategory = tmp[1]; - - // Find the selected category and add the relevant sub category. - let selectedMainCategory:IMainCategory = _.find(this.$scope.categories, function (item) { - return item["name"] === mainCategory; - - }); - - let mainCategoryClone = angular.copy(selectedMainCategory); - if (subCategory) { - let selectedSubcategory = _.find(selectedMainCategory.subcategories, function (item) { - return item["name"] === subCategory; - }); - mainCategoryClone['subcategories'] = [angular.copy(selectedSubcategory)]; - } - let tmpSelected = mainCategoryClone; - - let result:Array = []; - result.push(tmpSelected); - - return result; - }; - - private updateComponentNameInBreadcrumbs = ():void => { - //update breadcrum after changing name - this.$scope.breadcrumbsModel[1].updateSelectedMenuItemText(this.$scope.component.getComponentSubType() + ': ' + this.$scope.component.name); - this.$scope.updateMenuComponentName(this.$scope.component.name); - }; - - private initScopeMethods = ():void => { - - this.$scope.initCategoreis = ():void => { - if (this.$scope.componentType === Utils.Constants.ComponentType.RESOURCE) { - this.$scope.categories = this.cacheService.get('resourceCategories'); - - } - if (this.$scope.componentType === Utils.Constants.ComponentType.SERVICE) { - this.$scope.categories = this.cacheService.get('serviceCategories'); - } - } - - this.$scope.validateField = (field:any):boolean => { - if (field && field.$dirty && field.$invalid) { - return true; - } - return false; - }; - - this.$scope.openOnBoardingModal=():void => { - let csarUUID = (this.$scope.component).csarUUID; - this.ModalsHandler.openOnboadrdingModal('Update', csarUUID).then(()=>{ - // OK - this.$scope.uploadFileChangedInGeneralTab(); - }, ()=>{ - // ERROR - }); - }; - - this.$scope.validateName = (isInit:boolean):void => { - if (isInit === undefined) { - isInit = false; - } - - let name = this.$scope.component.name; - if (!name || name === "") { - if (this.$scope.editForm - && this.$scope.editForm["componentName"] - && this.$scope.editForm["componentName"].$error) { - - // Clear the error name already exists - this.$scope.editForm["componentName"].$setValidity('nameExist', true); - } - - return; - } - //????????????????????????? - let subtype:string = Utils.Constants.ComponentType.RESOURCE == this.$scope.componentType ? this.$scope.component.getComponentSubType() : undefined; - - let onFailed = (response) => { - //console.info('onFaild', response); - //this.$scope.isLoading = false; - }; - - let onSuccess = (validation:Models.IValidate) => { - this.$scope.editForm["componentName"].$setValidity('nameExist', validation.isValid); - if(validation.isValid){ - //update breadcrumb after changing name - this.updateComponentNameInBreadcrumbs(); - } - }; - - if (isInit) { - // When page is init after update - if (this.$scope.component.name !== this.$scope.originComponent.name) { - if (!(this.$scope.componentType===Utils.Constants.ComponentType.RESOURCE && (this.$scope.component).csarUUID!==undefined) - ){ - this.$scope.component.validateName(name, subtype).then(onSuccess, onFailed); - } - } - } else { - // Validating on change (has debounce) - if (this.$scope.editForm - && this.$scope.editForm["componentName"] - && this.$scope.editForm["componentName"].$error - && !this.$scope.editForm["componentName"].$error.pattern - && this.$scope.component.name !== this.$scope.originComponent.name - ) { - if (!(this.$scope.componentType===Utils.Constants.ComponentType.RESOURCE && (this.$scope.component).csarUUID!==undefined) - ){ - this.$scope.component.validateName(name, subtype).then(onSuccess, onFailed); - } - } else if (this.$scope.component.name === this.$scope.originComponent.name) { - // Clear the error - this.$scope.editForm["componentName"].$setValidity('nameExist', true); - } - } - }; - - this.$scope.$watchCollection('component.name', (newData:any):void => { - this.$scope.validateName(false); - }); - - // Notify the parent if this step valid or not. - this.$scope.$watch("editForm.$valid", (newVal, oldVal) => { - this.$scope.setValidState(newVal); - }); - - this.$scope.$watch("editForm.$dirty", (newVal, oldVal) => { - if (newVal!==oldVal) { - this.$state.current.data.unsavedChanges = newVal && !this.$scope.isCreateMode(); - } - }); - - this.$scope.onCategoryChange = ():void => { - this.$scope.component.categories = this.convertCategoryStringToOneArray(); - this.$scope.component.icon = Utils.Constants.DEFAULT_ICON; - }; - - this.$scope.onVendorNameChange = (oldVendorName:string):void => { - if (this.$scope.component.icon === oldVendorName) { - this.$scope.component.icon = Utils.Constants.DEFAULT_ICON; - } - }; - }; - } -} diff --git a/catalog-ui/app/scripts/view-models/workspace/tabs/general/general-view.html b/catalog-ui/app/scripts/view-models/workspace/tabs/general/general-view.html deleted file mode 100644 index 1c1d4fedad..0000000000 --- a/catalog-ui/app/scripts/view-models/workspace/tabs/general/general-view.html +++ /dev/null @@ -1,307 +0,0 @@ -
      - -
      - -
      - - -
      - - -
      - - -
      - -
      - {{(fileModel && fileModel.filename) || importedToscaBrowseFileText}} -
      - -
      Browse
      -
      -
      - -
      - - - - - -
      - - -
      - -
      - - -
      - - - -
      - - - - - -
      -
      - - - -
      - - - -
      - - - - - -
      -
      - - - -
      - - - - -
      - - - -
      -
      - - - -
      - - - - -
      - -
      -
      - - - -
      - - - -
      - - -
      -
      - - -
      - - - -
      - - - -
      - -
      - - - - -
      - - - -
      - - - -
      -
      - - - - -
      - -
      - - -
      - - - - -
      - - -
      -
      - - - -
      - - - - -
      - - -
      -
      - - - -
      -
      - -
      - -
      - -
      diff --git a/catalog-ui/app/scripts/view-models/workspace/tabs/general/general.less b/catalog-ui/app/scripts/view-models/workspace/tabs/general/general.less deleted file mode 100644 index 1861d02e98..0000000000 --- a/catalog-ui/app/scripts/view-models/workspace/tabs/general/general.less +++ /dev/null @@ -1,64 +0,0 @@ -.sdc-workspace-general-step { - - .w-sdc-form { - padding: 0; - - .i-sdc-form-file-upload{ - input[type="button"] { - cursor: pointer; - display: block; - filter: alpha(opacity=0); - width: 100px; - height: 30px; - opacity: 0; - position: absolute; - right: 0; - text-align: right; - top: 0; - } - - .file-upload-browse-btn { - .noselect; - .bg_n; - padding: 4px 6px; - cursor: pointer; - z-index: 999; - width: 100px; - height: 28px; - text-align: center; - - &.disabled { - cursor: default; - } - } - } - - .w-sdc-form-section-container { - text-align: center; - } - - .i-sdc-form-item { - &.upload { - margin-top: 0; - width: auto; - padding: 10px; - } - } - - .template-desc { - border: 1px dashed @border_color_f; - height: 130px; - overflow: hidden; - padding: 10px 6px 6px 6px; - margin-top: 10px; - } - - .sdc-tag .tag { - max-width: 225px; - } - - } - -} - - diff --git a/catalog-ui/app/scripts/view-models/workspace/tabs/icons/icons-view-model.ts b/catalog-ui/app/scripts/view-models/workspace/tabs/icons/icons-view-model.ts deleted file mode 100644 index a591641d0a..0000000000 --- a/catalog-ui/app/scripts/view-models/workspace/tabs/icons/icons-view-model.ts +++ /dev/null @@ -1,131 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/** - * Created by obarda on 4/4/2016. - */ -/// -module Sdc.ViewModels { - 'use strict'; - - export interface IIconsScope extends IWorkspaceViewModelScope { - icons : Array; - iconSprite: string; - setComponentIcon(iconSrc:string): void; - } - - export class IconsViewModel { - - static '$inject' = [ - '$scope', - 'Sdc.Services.AvailableIconsService', - 'ComponentFactory', - '$state' - ]; - - constructor(private $scope:IIconsScope, - private availableIconsService:Services.AvailableIconsService, - private ComponentFactory:Sdc.Utils.ComponentFactory, - private $state:ng.ui.IStateService) { - - - this.initScope(); - this.initIcons(); - this.$scope.updateSelectedMenuItem(); - this.$scope.iconSprite = this.$scope.component.iconSprite; - - if (this.$scope.component.isResource()) { - this.initVendor(); - } - } - - private initialIcon:string = this.$scope.component.icon; - private initIcons = ():void => { - - // For subcategories that where created by admin, there is no icons - this.$scope.icons = new Array(); - if (this.$scope.component.categories && this.$scope.component.categories.length > 0) { - - _.forEach(this.$scope.component.categories, (category:Models.IMainCategory):void => { - if (category.icons) { - this.$scope.icons = this.$scope.icons.concat(category.icons); - } - if (category.subcategories) { - _.forEach(category.subcategories, (subcategory:Models.ISubCategory):void => { - if (subcategory.icons) { - this.$scope.icons = this.$scope.icons.concat(subcategory.icons); - } - }); - } - }); - } - - if (this.$scope.component.isResource()) { - let resourceType:string = this.$scope.component.getComponentSubType(); - if (resourceType === 'VL') { - this.$scope.icons = ['vl']; - } - if (resourceType === 'CP') { - this.$scope.icons = ['cp']; - } - } - - if (this.$scope.icons.length === 0) { - this.$scope.icons = this.availableIconsService.getIcons(this.$scope.component.componentType); - } - //we always add the defual icon to the list - this.$scope.icons.push('defaulticon'); - }; - - private initVendor = ():void => { - let vendors:Array = this.availableIconsService.getIcons(this.$scope.component.componentType).slice(5, 19); - let vendorName = this.$scope.component.vendorName.toLowerCase(); - if ('at&t' === vendorName) { - vendorName = 'att'; - } - if ('nokia' === vendorName) { - vendorName = 'nokiasiemens'; - } - - let vendor:string = _.find(vendors, (vendor:string)=> { - return vendor.replace(/[_]/g, '').toLowerCase() === vendorName; - }); - - if (vendor && this.$scope.icons.indexOf(vendor) === -1) { - this.$scope.icons.push(vendor); - } - }; - - private initScope():void { - this.$scope.icons = []; - this.$scope.setValidState(true); - //if(this.$scope.component.icon === Utils.Constants.DEFAULT_ICON){ - // //this.$scope.setValidState(false); - //} - - this.$scope.setComponentIcon = (iconSrc:string):void => { - this.$state.current.data.unsavedChanges = !this.$scope.isViewMode() && (iconSrc != this.initialIcon); - this.$scope.component.icon = iconSrc; - // this.$scope.setValidState(true); - }; - - } - - } -} diff --git a/catalog-ui/app/scripts/view-models/workspace/tabs/icons/icons-view.html b/catalog-ui/app/scripts/view-models/workspace/tabs/icons/icons-view.html deleted file mode 100644 index aac14e0e84..0000000000 --- a/catalog-ui/app/scripts/view-models/workspace/tabs/icons/icons-view.html +++ /dev/null @@ -1,26 +0,0 @@ -
      - -
      - -
      -
      -
      -
      -
      Select one of the icons below for the asset
      -
      -
      -
      -
      -
      -
      -
      -
      diff --git a/catalog-ui/app/scripts/view-models/workspace/tabs/icons/icons.less b/catalog-ui/app/scripts/view-models/workspace/tabs/icons/icons.less deleted file mode 100644 index 65f946f395..0000000000 --- a/catalog-ui/app/scripts/view-models/workspace/tabs/icons/icons.less +++ /dev/null @@ -1,65 +0,0 @@ -.workspace-icons { - - width: 89%; - display: inline-block; - text-align: center; - align-items: center; - - .w-sdc-form { - padding-top: 0px; - padding-bottom: 0px; - .selected-icon-container { - text-align: left; - border: 1px solid #cfcfcf; - clear: both; - margin-bottom: 30px; - padding: 2px 0px 5px 5px; - .selected-icon { - margin: 8px 5px 0px 6px; - } - } - - .suggested-icons-container { - text-align: left; - border: 1px solid #cfcfcf; - clear: both; - padding: 2px 0px 5px 5px; - height: 340px; - margin-bottom: 0px; - - .suggested-icon-wrapper { - margin: 8px 5px 0px 6px; - display: inline-block; - - &.selected { - border: 2px solid @main_color_a; - border-radius: 35px; - display: inline-block; - line-height: 0px; - padding: 3px; - } - - } - .suggested-icon { - // margin: 8px 5px 0px 6px; - display: inline-block; - &.disable{ - opacity: 0.4; - } - } - } - - .icons-label { - float: left; - } - - .icons-text { - text-align: left; - line-height: 32px; - padding-left: 10px; - width: 100%; - border: 1px solid #cfcfcf; - border-bottom: none; - } - } -} diff --git a/catalog-ui/app/scripts/view-models/workspace/tabs/information-artifacts/information-artifacts-view-model.ts b/catalog-ui/app/scripts/view-models/workspace/tabs/information-artifacts/information-artifacts-view-model.ts deleted file mode 100644 index 3a048c1879..0000000000 --- a/catalog-ui/app/scripts/view-models/workspace/tabs/information-artifacts/information-artifacts-view-model.ts +++ /dev/null @@ -1,150 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.ViewModels { - 'use strict'; - import ArtifactModel = Sdc.Models.ArtifactModel; - - export interface IInformationArtifactsScope extends IWorkspaceViewModelScope { - artifacts: Array; - tableHeadersList: Array; - artifactType: string; - isResourceInstance:boolean; - downloadFile:Models.IFileDownload; - isLoading:boolean; - sortBy:string; - reverse:boolean; - - getTitle(): string; - addOrUpdate(artifact:Models.ArtifactModel): void; - delete(artifact:Models.ArtifactModel): void; - download(artifact:Models.ArtifactModel): void; - clickArtifactName(artifact:any):void; - openEditEnvParametersModal(artifactResource:Models.ArtifactModel):void; - sort(sortBy:string): void; - showNoArtifactMessage():boolean; - } - - export class InformationArtifactsViewModel { - - static '$inject' = [ - '$scope', - '$filter', - '$modal', - '$templateCache', - 'Sdc.Services.SharingService', - '$state', - 'sdcConfig', - 'ModalsHandler' - ]; - - constructor(private $scope:IInformationArtifactsScope, - private $filter:ng.IFilterService, - private $modal:ng.ui.bootstrap.IModalService, - private $templateCache:ng.ITemplateCacheService, - private sharingService:Sdc.Services.SharingService, - private $state:any, - private sdcConfig:Models.IAppConfigurtaion, - private ModalsHandler:Utils.ModalsHandler) { - this.initScope(); - this.$scope.updateSelectedMenuItem(); - } - - - private getMappedObjects():any { - return { - normal: this.$scope.component.artifacts - }; - } - - private initScope = ():void => { - let self = this; - this.$scope.isLoading = false; - this.$scope.sortBy = 'artifactDisplayName'; - this.$scope.reverse = false; - this.$scope.setValidState(true); - this.$scope.artifactType = 'normal'; - this.$scope.getTitle = ():string => { - return this.$filter("resourceName")(this.$scope.component.name) + ' Artifacts'; - - }; - - this.$scope.tableHeadersList = [ - {title: 'Name', property: 'artifactDisplayName'}, - {title: 'Type', property: 'artifactType'} - ]; - - this.$scope.artifacts = _.values(this.$scope.component.artifacts); - this.$scope.sort = (sortBy:string):void => { - this.$scope.reverse = (this.$scope.sortBy === sortBy) ? !this.$scope.reverse : false; - this.$scope.sortBy = sortBy; - }; - - - this.$scope.addOrUpdate = (artifact:Models.ArtifactModel):void => { - artifact.artifactGroupType = 'INFORMATIONAL'; - this.ModalsHandler.openWizardArtifactModal(artifact, this.$scope.component).then(() => { - this.$scope.artifacts = _.values(this.$scope.component.artifacts); - }); - }; - - this.$scope.showNoArtifactMessage = ():boolean => { - let artifacts:any = []; - artifacts = _.filter(this.$scope.artifacts, (artifact:Models.ArtifactModel)=> { - return artifact.esId; - }); - - if (artifacts.length === 0) { - return true; - } - return false; - }; - - this.$scope.delete = (artifact:Models.ArtifactModel):void => { - - let onOk = ():void => { - this.$scope.isLoading = true; - let onSuccess = ():void => { - this.$scope.isLoading = false; - this.$scope.artifacts = _.values(this.$scope.component.artifacts); - }; - - let onFailed = (error:any):void => { - console.log('Delete artifact returned error:', error); - this.$scope.isLoading = false; - }; - - this.$scope.component.deleteArtifact(artifact.uniqueId, artifact.artifactLabel).then(onSuccess, onFailed); - }; - - let title:string = this.$filter('translate')("ARTIFACT_VIEW_DELETE_MODAL_TITLE"); - let message:string = this.$filter('translate')("ARTIFACT_VIEW_DELETE_MODAL_TEXT", "{'name': '" + artifact.artifactDisplayName + "'}"); - this.ModalsHandler.openConfirmationModal(title, message, false).then(onOk); - }; - - this.$scope.clickArtifactName = (artifact:any) => { - if (!artifact.esId) { - this.$scope.addOrUpdate(artifact); - } - - }; - } - } -} diff --git a/catalog-ui/app/scripts/view-models/workspace/tabs/information-artifacts/information-artifacts-view.html b/catalog-ui/app/scripts/view-models/workspace/tabs/information-artifacts/information-artifacts-view.html deleted file mode 100644 index 790117b2fd..0000000000 --- a/catalog-ui/app/scripts/view-models/workspace/tabs/information-artifacts/information-artifacts-view.html +++ /dev/null @@ -1,57 +0,0 @@ -
      -
      Add
      -
      -
      -
      -
      {{header.title}} - -
      -
      -
      -
      - -
      - There are no information artifacts to display -
      -
      - -
      - - {{artifact.artifactDisplayName}} -
      - -
      - {{artifact.artifactType}} -
      - -
      - - - -
      -
      -
      - - -
      -
      -
      -
      -
      diff --git a/catalog-ui/app/scripts/view-models/workspace/tabs/information-artifacts/information-artifacts.less b/catalog-ui/app/scripts/view-models/workspace/tabs/information-artifacts/information-artifacts.less deleted file mode 100644 index d3fe14d945..0000000000 --- a/catalog-ui/app/scripts/view-models/workspace/tabs/information-artifacts/information-artifacts.less +++ /dev/null @@ -1,47 +0,0 @@ -.workspace-information-artifact { - width: 93%; - display: inline-block; - .w-sdc-classic-btn { - float: right; - margin-bottom: 10px; - } - - .table{ - height: 490px; - margin-bottom: 0; - } - - .table-container-flex { - margin-top: 27px; - - .item-opened{ - word-wrap: break-word; - } - - - .flex-item:nth-child(1) { - flex-grow: 15; - .hand; - span.table-arrow { - margin-right: 7px; - } - } - - .flex-item:nth-child(2) { - flex-grow: 6; - } - - .flex-item:nth-child(3) { - flex-grow: 3; - padding-top: 10px; - } - - .flex-item:nth-child(4) { - flex-grow: 1; - } - - } - -} - - diff --git a/catalog-ui/app/scripts/view-models/workspace/tabs/inputs/inputs.less b/catalog-ui/app/scripts/view-models/workspace/tabs/inputs/inputs.less deleted file mode 100644 index 76a82c69ee..0000000000 --- a/catalog-ui/app/scripts/view-models/workspace/tabs/inputs/inputs.less +++ /dev/null @@ -1,286 +0,0 @@ -.workspace-inputs { - - .sdc-workspace-container .w-sdc-main-right-container .w-sdc-main-container-body-content { - padding: 25px 8% 0px 8%; - } - - width: 100%; - display: flex; - - .text { - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - padding-left: 15px; - } - - .title-text { - color: @main_color_m; - .f-type._13_m; - .bold; - } - - .title-blue-text { - color: @main_color_a; - .f-type._13_m; - - &.property-name-text { - padding-right: 13px; - border-right: 1px solid rgba(120, 136, 148, 0.26); - flex-grow: 1; - } - } - - .instance-name-text { - flex-grow: 1; - } - - ng-include { - width: 45%; - } - - .w-sdc-inputs-search { - padding: 10px 20px 20px 0; - white-space: nowrap; - position: relative; - width: 60%; - height: 64px; - - .inputs-search-icon { - top: 9px; - right: 11px; - } - - .magnification-white { - .sprite-new; - .search-white-icon; - .hand; - } - - .search-icon-container { - width: 35px; - height: 30px; - background-color: @main_color_a; - white-space: nowrap; - float: right; - position: relative; - bottom: 31px; - right: 1px; - border-radius: 0px 4px 4px 0px; - .hand - } - } - - .total-inputs-count { - width: 100%; - font-weight: bold; - text-align: left; - } - - .new-input-button { - margin: 9px 0 0 0; - } - - .w-sdc-inputs-search-input { - border: 1px solid @color_e; - .border-radius(4px); - height: 32px; - margin: 0; - padding: 0px 28px 3px 10px; - vertical-align: 4px; - width: 100%; - outline: none; - font-style: italic; - } - - .w-sdc-classic-btn { - float: right; - margin-bottom: 10px; - } - - .prop-to-input-button { - position: absolute; - top: 50%; - margin-right: -20px; - margin-bottom: -10px; - - } - - .property-row { - border-bottom: 1px solid @border_color_d; - padding-left: 10px; - .property-name-container { - display: flex; - flex-grow: 4; - } - - .type-schema-container { - flex-grow: 1; - border-left: 1px solid @border_color_d; - text-align: left; - line-height: 30px; - text-transform: capitalize; - width: 10px; - } - - } - - .table-container-flex { - - .flex-item { - line-height: 22px; - } - .expand-collapse-table-row { - - &.expanded { - .flex-container { - .expand-collapse-inputs-table-icon { - transform: rotate(180deg); - left: 0px; - } - } - } - - .data-row { - background: @tlv_color_u; - .hand; - align-items: center; - padding: 0 12px; - margin: 1px 0px 1px 0px; - min-height: 40px; - } - - .data-row:hover { - .bg_j; - } - - .input-row { - padding-left: 45px; - background: @tlv_color_t; - border: @main_color_o solid 1px; - align-items: center; - .hand; - margin: 1px 0px 1px 0px; - - &.service-input-row { - background: @tlv_color_u; - &.new-input { - background: @tlv_color_v; - } - } - &.selected { - background-color: @tlv_color_v; - } - .flex-item { - min-height: 60px; - padding: 0 15px; - } - .input-check-box { - padding-right: 10px; - margin-top: 9px; - } - &>.title-text{ - text-align: start; - padding: 4px 0 0 35px; - } - - .expand-collapse-inputs-table-icon{ - margin-top: 15px; - } - - } - - .input-row:hover { - .bg_j; - } - - - } - } - - .table { - height: 640px; - margin-bottom: 0; - clear: both; - - .empty-row { - padding: 3px; - } - - .flex-item { - line-height: 22px; - } - - .table-header { - - line-height: 14px; - background-color: @main_color_a; - color: @main_color_p; - text-align: left; - padding: 7px 5px 7px 10px; - .f-type._14_m; - } - .head { - background-color: #e6e6e6; - } - - .property-row:hover{ - background-color: @func_color_r; - } - - .body { - .scrollbar-container { - .perfect-scrollbar; - max-height: 610px; - } - - .expand-collapse-inputs-table-icon { - .hand; - .sprite-new; - .arrow-up; - transition: .3s all; - position: relative; - left: 8px; - border: none !important; - padding: 0px 10px 0px 10px; - } - - .table-col-text { - margin-left: 14px; - } - } - } - - .inputs-header { - width: 100%; - position: relative; - bottom: 31px; - } - - .inputs-tables-container { - width: 100%; - min-width: 100%; - display: flex; - } - - .inputs-button-container { - width: 8%; - min-width: 8%; - display: flex; - - .right-arrow-btn { - .sprite-new; - .blue-right-arrow-circle; - margin: auto; - cursor: pointer; - } - } - - .table-container-flex { - margin-top: 27px; - width: 46%; - min-width: 46%; - display: inline-block; - float: left; - } -} diff --git a/catalog-ui/app/scripts/view-models/workspace/tabs/inputs/resource-input/resource-inputs-view-model.ts b/catalog-ui/app/scripts/view-models/workspace/tabs/inputs/resource-input/resource-inputs-view-model.ts deleted file mode 100644 index 2dc1b1d9ff..0000000000 --- a/catalog-ui/app/scripts/view-models/workspace/tabs/inputs/resource-input/resource-inputs-view-model.ts +++ /dev/null @@ -1,145 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.ViewModels { - 'use strict'; - import Dictionary = Sdc.Utils.Dictionary; - import InputModel = Sdc.Models.InputModel; - - export interface IInputsViewModelScope extends IWorkspaceViewModelScope { - InstanceInputsProperties:Models.InstanceInputsPropertiesMapData; //this is tha map object that hold the selected inputs and the inputs we already used - vfInstancesList: Array; - component:Models.Components.Resource; - - onArrowPressed():void; - getInputPropertiesForInstance(instanceId:string, instance:Models.ComponentsInstances.ComponentInstance): ng.IPromise ; - loadInputPropertiesForInstance(instanceId:string, input:Models.InputModel): ng.IPromise ; - loadInputInputs(input:Models.InputModel): ng.IPromise; - } - - export class ResourceInputsViewModel { - - static '$inject' = [ - '$scope', - '$q' - ]; - - constructor(private $scope:IInputsViewModelScope, private $q: ng.IQService) { - this.initScope(); - } - - private initScope = (): void => { - - this.$scope.InstanceInputsProperties = new Models.InstanceInputsPropertiesMapData(); - this.$scope.vfInstancesList = this.$scope.component.componentInstances; - - // Need to cast all inputs to InputModel for the search to work - let tmpInputs:Array = new Array(); - _.each(this.$scope.component.inputs, (input):void => { - tmpInputs.push(new Models.InputModel(input)); - }); - this.$scope.component.inputs = tmpInputs; - // This function is not supported for resource - //this.$scope.component.getComponentInputs(); - - /* - * When clicking on instance input in the left or right table, this function will load all properties of the selected input - */ - this.$scope.getInputPropertiesForInstance = (instanceId:string, instance:Models.ComponentsInstances.ComponentInstance): ng.IPromise => { - let deferred = this.$q.defer(); - instance.properties = this.$scope.component.componentInstancesProperties[instanceId]; - deferred.resolve(true); - return deferred.promise; - }; - - /* - * When clicking on input in the right table, this function will load all inputs of the selected input - */ - this.$scope.loadInputInputs = (input:Models.InputModel): ng.IPromise => { - let deferred = this.$q.defer(); - - let onSuccess = () => { deferred.resolve(true); }; - let onError = () => { deferred.resolve(false); }; - - if(!input.inputs) { - this.$scope.component.getResourceInputInputs(input.uniqueId).then(onSuccess, onError); - } else { - deferred.resolve(true); - } - return deferred.promise; - }; - - /* - * When clicking on instance input in the left or right table, this function will load all properties of the selected input - */ - this.$scope.loadInputPropertiesForInstance = (instanceId:string, input:Models.InputModel): ng.IPromise => { - let deferred = this.$q.defer(); - - let onSuccess = (properties:Array) => { - input.properties = properties; - deferred.resolve(true); - }; - - let onError = () => { - deferred.resolve(false) - }; - - if(!input.properties) { - this.$scope.component.getComponentInstanceInputProperties(instanceId, input.uniqueId).then(onSuccess, onError); - } else { - deferred.resolve(true); - } - return deferred.promise; - }; - - /* - * When pressing the arrow, we create service inputs from the inputs selected - */ - this.$scope.onArrowPressed = ():void => { - let onSuccess = (inputsCreated: Array) => { - - //disabled all the inputs in the left table - _.forEach(this.$scope.InstanceInputsProperties, (properties:Array) => { - _.forEach(properties, (property:Models.PropertyModel) => { - property.isAlreadySelected = true; - }); - }); - - // Adding color to the new inputs (right table) - _.forEach(inputsCreated, (input) => { - input.isNew = true; - }); - - // Removing color to the new inputs (right table) - setTimeout(() => { - _.forEach(inputsCreated, (input) => { - input.isNew = false; - }); - this.$scope.$apply(); - }, 3000); - }; - - this.$scope.component.createInputsFormInstances(this.$scope.InstanceInputsProperties).then(onSuccess); - }; - - } - - } -} diff --git a/catalog-ui/app/scripts/view-models/workspace/tabs/inputs/resource-input/resource-inputs-view.html b/catalog-ui/app/scripts/view-models/workspace/tabs/inputs/resource-input/resource-inputs-view.html deleted file mode 100644 index 7cdf5a2fa4..0000000000 --- a/catalog-ui/app/scripts/view-models/workspace/tabs/inputs/resource-input/resource-inputs-view.html +++ /dev/null @@ -1,136 +0,0 @@ -
      -
      - -
      -
      VFC instances inputs
      -
      -
      - - - -
      -
      -
      - {{instance.name}} -
      -
      - -
      - -
      - -
      No properties to display
      - -
      -
      -
      - {{property.name}} - {{property.name}} -
      -
      -
      - {{property.type}} -
      -
      -
      -
      - {{property.schema.property.type}} -
      -
      - -
      -
      - -
      - -
      -
      -
      -
      - -
      - -
      - -
      - -
      -
      -
      Resource instance inputs
      - - -
      -
      {{resourceInput.name}}
      -
      -
      -
      -
      - Description: - {{resourceInput.description}} -
      -
      -
      -
      - VF Instance: - {{resourceInput.name}} -
      -
      - Type: - {{resourceInput.type}} -
      -
      -
      -
      -
      - -
      -
      No properties to display
      -
      -
      -
      - {{property.name}} - {{property.name}} -
      -
      -
      - {{property.type}} -
      -
      -
      -
      - {{property.schema.property.type}} -
      -
      -
      -
      -
      - -
      -
      -
      -
      -
      diff --git a/catalog-ui/app/scripts/view-models/workspace/tabs/inputs/resource-input/resource-inputs.less b/catalog-ui/app/scripts/view-models/workspace/tabs/inputs/resource-input/resource-inputs.less deleted file mode 100644 index ebb32fbdb2..0000000000 --- a/catalog-ui/app/scripts/view-models/workspace/tabs/inputs/resource-input/resource-inputs.less +++ /dev/null @@ -1,9 +0,0 @@ -.workspace-inputs { - - .property-row { - .input-check-box { - text-align: center; - } - } - -} diff --git a/catalog-ui/app/scripts/view-models/workspace/tabs/inputs/service-input/service-inputs-view-model.ts b/catalog-ui/app/scripts/view-models/workspace/tabs/inputs/service-input/service-inputs-view-model.ts deleted file mode 100644 index 6c8391720a..0000000000 --- a/catalog-ui/app/scripts/view-models/workspace/tabs/inputs/service-input/service-inputs-view-model.ts +++ /dev/null @@ -1,246 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.ViewModels { - 'use strict'; - import IAngularEvent = angular.IAngularEvent; - import ComponentInstance = Sdc.Models.ComponentsInstances.ComponentInstance; - - - interface IServiceInputsViewModelScope extends IWorkspaceViewModelScope { - - vfInstancesList: Array; - selectedInputs:Array; - instanceInputsMap:Models.InstancesInputsMapData; //this is tha map object that hold the selected inputs and the inputs we already used - component:Models.Components.Service; - sdcMenu:Models.IAppMenu; - - onArrowPressed():void; - loadComponentInputs(): void; - loadInstanceInputs(instance:ComponentInstance): ng.IPromise ; - loadInputPropertiesForInstance(instanceId:string, input:Models.InputModel): ng.IPromise ; - loadInputInputs(input:Models.InputModel): ng.IPromise; - deleteInput(input:Models.InputModel):void - } - - export class ServiceInputsViewModel { - - static '$inject' = [ - '$scope', - '$q', - 'ModalsHandler' - ]; - - constructor(private $scope:IServiceInputsViewModelScope, - private $q: ng.IQService, - private ModalsHandler: Sdc.Utils.ModalsHandler) { - this.initScope(); - } - - /* - * When loading the screen again, we need to disabled the inputs that already created on the service, - * we do that by comparing the service input name, to the instance name + '_' + the resource instance input name. - */ - private disableEnableSelectedInputs = (instance: ComponentInstance): void => { - - let alreadySelectedInput = new Array(); - _.forEach(instance.inputs, (input:Models.InputModel) => { - let expectedServiceInputName = instance.normalizedName + '_' + input.name; - let inputAlreadyInService: Models.InputModel = _.find(this.$scope.component.inputs, (serviceInput: Models.InputModel) => { - return serviceInput.name === expectedServiceInputName; - }); - if(inputAlreadyInService) { - input.isAlreadySelected = true; - alreadySelectedInput.push(input); - } else { - input.isAlreadySelected = false; - } - }); - this.$scope.instanceInputsMap[instance.uniqueId] = alreadySelectedInput; - }; - - private initScope = (): void => { - - this.$scope.instanceInputsMap = new Models.InstancesInputsMapData(); - this.$scope.isLoading = true; - this.$scope.selectedInputs = new Array(); - - // Why do we need this? we call this later. - //this.$scope.component.getComponentInputs(); - - let onSuccess = (componentInstances:Array) => { - console.log("component instances loaded: ", componentInstances); - this.$scope.vfInstancesList = componentInstances; - this.$scope.isLoading = false; - }; - - //This function will get al component instance for the left table - in future the instances will be filter according to search text - this.$scope.component.getComponentInstancesFilteredByInputsAndProperties().then(onSuccess); - - // This function will get the service inputs for the right table - this.$scope.component.getComponentInputs(); - - - /* - * When clicking on instance in the left table, this function will load all instance inputs - */ - this.$scope.loadInstanceInputs = (instance:ComponentInstance): ng.IPromise => { - let deferred = this.$q.defer(); - - let onSuccess = (inputs:Array) => { - instance.inputs = inputs; - this.disableEnableSelectedInputs(instance); - deferred.resolve(true); - }; - - let onError = () => { - deferred.resolve(false); - }; - - if(!instance.inputs) { - this.$scope.component.getComponentInstanceInputs(instance.uniqueId, instance.componentUid).then(onSuccess, onError); - this.disableEnableSelectedInputs(instance); - } else { - deferred.resolve(true); - } - return deferred.promise; - }; - - /* - * When clicking on instance input in the left or right table, this function will load all properties of the selected input - */ - this.$scope.loadInputPropertiesForInstance = (instanceId:string, input:Models.InputModel): ng.IPromise => { - let deferred = this.$q.defer(); - - let onSuccess = (properties:Array) => { - input.properties = properties; - deferred.resolve(true); - }; - - let onError = () => { - deferred.resolve(false) - }; - - if(!input.properties) { - this.$scope.component.getComponentInstanceInputProperties(instanceId, input.uniqueId).then(onSuccess, onError); - } else { - deferred.resolve(true); - } - return deferred.promise; - }; - - /* - * When clicking on input in the right table, this function will load all inputs of the selected input - */ - this.$scope.loadInputInputs = (input:Models.InputModel): ng.IPromise => { - let deferred = this.$q.defer(); - - let onSuccess = () => { deferred.resolve(true); }; - let onError = () => { deferred.resolve(false); }; - - if(!input.inputs) { // Caching, if exists do not get it. - this.$scope.component.getServiceInputInputs(input.uniqueId).then(onSuccess, onError); - } else { - deferred.resolve(true); - } - return deferred.promise; - }; - - /* - * When pressing the arrow, we create service inputs from the inputs selected - */ - this.$scope.onArrowPressed = ():void => { - let onSuccess = (inputsCreated: Array) => { - - //disabled all the inputs in the left table - _.forEach(this.$scope.instanceInputsMap, (inputs:Array, instanceId:string) => { - _.forEach(inputs, (input:Models.InputModel) => { - input.isAlreadySelected = true; - }); - }); - - this.addColorToItems(inputsCreated); - }; - - this.$scope.component.createInputsFormInstances(this.$scope.instanceInputsMap).then(onSuccess); - }; - - this.$scope.deleteInput = (input: Models.InputModel):void => { - - var onDelete = ():void => { - var onSuccess = (deletedInput: Models.InputModel, componentInstanceId:string):void => { - // Remove from component.inputs the deleted input (service inputs) - var remainingServiceInputs:Array = _.filter(this.$scope.component.inputs, (input:Models.InputModel):boolean => { - return input.uniqueId !== deletedInput.uniqueId; - }); - this.$scope.component.inputs = remainingServiceInputs; - - // Find the instance that contains the deleted input, and set disable|enable the deleted input - var deletedInputComponentInstance:ComponentInstance = _.find(this.$scope.vfInstancesList, (instanceWithChildToDelete:ComponentInstance):boolean => { - return instanceWithChildToDelete.uniqueId === componentInstanceId; - }); - this.disableEnableSelectedInputs(deletedInputComponentInstance); - }; - - var onFailed = (error:any) : void => { - console.log("Error deleting input"); - }; - - this.addColorToItems([input]); - - // Get service inputs of input (so after delete we will know the component instance) - this.$scope.loadInputInputs(input).then((result:boolean):void=>{ - if (result && input.inputs.length>0) { - var componentInstanceId:string = input.inputs[0].componentInstanceId; - this.$scope.component.deleteServiceInput(input.uniqueId).then((deletedInput: Models.InputModel):void => { - onSuccess(deletedInput, componentInstanceId); - }, onFailed); - } - }); - }; - - // Get confirmation modal text from menu.json - var state = "deleteInput"; - var title:string = this.$scope.sdcMenu.alertMessages[state].title; - var message:string = this.$scope.sdcMenu.alertMessages[state].message.format([input.name]); - - // Open confirmation modal - this.ModalsHandler.openAlertModal(title, message).then(onDelete); - } - }; - - private addColorToItems = (inputsCreated:Array):void => { - - // Adding color to the new inputs (right table) - _.forEach(inputsCreated, (input) => { - input.isNew = true; - }); - - // Removing color to the new inputs (right table) - setTimeout(() => { - _.forEach(inputsCreated, (input) => { - input.isNew = false; - }); - this.$scope.$apply(); - }, 3000); - }; - - } -} diff --git a/catalog-ui/app/scripts/view-models/workspace/tabs/inputs/service-input/service-inputs-view.html b/catalog-ui/app/scripts/view-models/workspace/tabs/inputs/service-input/service-inputs-view.html deleted file mode 100644 index bf15a70322..0000000000 --- a/catalog-ui/app/scripts/view-models/workspace/tabs/inputs/service-input/service-inputs-view.html +++ /dev/null @@ -1,205 +0,0 @@ -
      -
      - -
      -
      Resource instance inputs
      -
      -
      - - - -
      -
      -
      - {{instance.name}} -
      -
      - -
      - -
      - - -
      -
      {{input.name}}
      -
      -
      -
      - -
      - Description: - {{input.description}} -
      -
      -
      -
      - VF Instance: - {{instance.name}} -
      -
      - Type: - {{input.type}} -
      -
      - -
      -
      - - -
      - -
      -
      No properties to display
      - -
      -
      -
      - {{property.name}} - {{property.name}} -
      -
      -
      - {{property.type}} -
      -
      -
      -
      - {{property.schema.property.type}} -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - -
      -
      -
      - -
      - -
      -
      -
      Service Inputs
      - - -
      -
      {{serviceInput.name}}
      -
      -
      -
      -
      - Description: - {{serviceInput.description}} -
      -
      -
      -
      - VF Instance: - {{serviceInput.name}} -
      -
      - Type: - {{serviceInput.type}} -
      -
      -
      - -
      -
      -
      -
      - -
      - -
      -
      {{input.name}}
      -
      -
      -
      -
      - Description: - {{input.description}} -
      -
      -
      -
      - VF Instance: - {{instance.componentInstanceName}} -
      -
      - Type: - {{input.type}} -
      -
      -
      -
      -
      - -
      -
      No properties to display
      -
      -
      -
      - {{property.name}} - {{property.name}} -
      -
      -
      - {{property.type}} -
      -
      -
      -
      - {{property.schema.property.type}} -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      diff --git a/catalog-ui/app/scripts/view-models/workspace/tabs/inputs/service-input/service-inputs.less b/catalog-ui/app/scripts/view-models/workspace/tabs/inputs/service-input/service-inputs.less deleted file mode 100644 index 11e613b56e..0000000000 --- a/catalog-ui/app/scripts/view-models/workspace/tabs/inputs/service-input/service-inputs.less +++ /dev/null @@ -1,54 +0,0 @@ -.workspace-inputs { - - .service-inputs-view { - - .table-container-flex { - width:100% !important; - } - - .table-loader { - position: relative; - top:215px; - } - - } - - .infinite-scroll { - - overflow-y: scroll; - overflow-x: hidden; - max-height: 400px; - } - - .class_with_css_props_leading_to_a_scroll { - height: 100%; - overflow-y: auto; - } - - .table-container-flex { - .expand-collapse-table-row { - .service-input-row { - padding-left: 15px; - border: none; - border-bottom: rgba(120, 136, 148, 0.26) solid 1px; - - .delete { - width: 50px; - padding: 0; - position: relative; - } - - .remove-input-icon { - position: absolute; - top: 12px; - right: 18px; - } - - .remove-input-icon:hover { - .delete-icon-hover; - } - } - } - } - -} diff --git a/catalog-ui/app/scripts/view-models/workspace/tabs/management-workflow/management-workflow-view-model.ts b/catalog-ui/app/scripts/view-models/workspace/tabs/management-workflow/management-workflow-view-model.ts deleted file mode 100644 index 2fab118378..0000000000 --- a/catalog-ui/app/scripts/view-models/workspace/tabs/management-workflow/management-workflow-view-model.ts +++ /dev/null @@ -1,128 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.ViewModels { - 'use strict'; - - export interface IManagementWorkflowViewModelScope extends IWorkspaceViewModelScope { - vendorModel:VendorModel; - } - - export class VendorModel { - artifacts: Models.ArtifactGroupModel; - serviceID: string; - readonly: boolean; - sessionID: string; - requestID: string; - diagramType: string; - participants:Array; - - constructor(artifacts: Models.ArtifactGroupModel, serviceID:string, readonly:boolean, sessionID:string, - requestID:string, diagramType:string, participants:Array){ - this.artifacts = artifacts; - this.serviceID = serviceID; - this.readonly = readonly; - this.sessionID = sessionID; - this.requestID = requestID; - this.diagramType = diagramType; - this.participants = participants; - } - } - - export class ManagementWorkflowViewModel { - - static '$inject' = [ - '$scope', - 'uuid4' - ]; - - constructor(private $scope:IManagementWorkflowViewModelScope, - private uuid4:any) { - - this.initScope(); - this.$scope.updateSelectedMenuItem(); - } - - - private static getParticipants():Array { - return [ - { - "id": "1", - "name": "Customer"}, - { - "id": "2", - "name": "CCD" - }, - { - "id": "3", - "name": "Infrastructure" - }, - { - "id": "4", - "name": "MSO" - }, - { - "id": "5", - "name": "SDN-C" - }, - { - "id": "6", - "name": "A&AI" - }, - { - "id": "7", - "name": "APP-C" - }, - { - "id": "8", - "name": "Cloud" - }, - { - "id": "9", - "name": "DCAE" - }, - { - "id": "10", - "name": "ALTS" - }, - { - "id": "11", - "name": "VF" - } - ] - } - - - private initScope():void { - this.$scope.vendorModel = new VendorModel( - this.$scope.component.artifacts.filteredByType(Utils.Constants.ArtifactType.THIRD_PARTY_RESERVED_TYPES.WORKFLOW), - this.$scope.component.uniqueId, - this.$scope.isViewMode(), - this.$scope.user.userId, - this.uuid4.generate(), - Utils.Constants.ArtifactType.THIRD_PARTY_RESERVED_TYPES.WORKFLOW, - ManagementWorkflowViewModel.getParticipants() - ); - - this.$scope.thirdParty = true; - this.$scope.setValidState(true); - } - } -} diff --git a/catalog-ui/app/scripts/view-models/workspace/tabs/management-workflow/management-workflow-view.html b/catalog-ui/app/scripts/view-models/workspace/tabs/management-workflow/management-workflow-view.html deleted file mode 100644 index bd196daec8..0000000000 --- a/catalog-ui/app/scripts/view-models/workspace/tabs/management-workflow/management-workflow-view.html +++ /dev/null @@ -1,3 +0,0 @@ -
      - -
      diff --git a/catalog-ui/app/scripts/view-models/workspace/tabs/network-call-flow/network-call-flow-view-model.ts b/catalog-ui/app/scripts/view-models/workspace/tabs/network-call-flow/network-call-flow-view-model.ts deleted file mode 100644 index 064f1c5896..0000000000 --- a/catalog-ui/app/scripts/view-models/workspace/tabs/network-call-flow/network-call-flow-view-model.ts +++ /dev/null @@ -1,80 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.ViewModels { - 'use strict'; - - export interface INetworkCallFlowViewModelScope extends IWorkspaceViewModelScope { - vendorMessageModel:VendorModel; - } - - export class participant { - name:string; - id:string; - - constructor(instance:Models.ComponentsInstances.ComponentInstance){ - this.name = instance.name; - this.id = instance.uniqueId; - } - } - - - export class NetworkCallFlowViewModel { - - static '$inject' = [ - '$scope', - 'uuid4' - ]; - - constructor(private $scope:INetworkCallFlowViewModelScope, - private uuid4:any) { - - this.initScope(); - this.$scope.updateSelectedMenuItem(); - } - - private getVFParticipantsFromInstances(instances:Array):Array { - let participants = []; - _.forEach(instances,(instance)=> { - if(Utils.Constants.ResourceType.VF == instance.originType){ - participants.push(new participant(instance)); - } - }); - return participants; - } - - - private initScope():void { - this.$scope.vendorMessageModel = new VendorModel( - this.$scope.component.artifacts.filteredByType(Utils.Constants.ArtifactType.THIRD_PARTY_RESERVED_TYPES.NETWORK_CALL_FLOW), - this.$scope.component.uniqueId, - this.$scope.isViewMode(), - this.$scope.user.userId, - this.uuid4.generate(), - Utils.Constants.ArtifactType.THIRD_PARTY_RESERVED_TYPES.NETWORK_CALL_FLOW, - this.getVFParticipantsFromInstances(this.$scope.component.componentInstances) - ); - - this.$scope.thirdParty = true; - this.$scope.setValidState(true); - } - - } -} diff --git a/catalog-ui/app/scripts/view-models/workspace/tabs/network-call-flow/network-call-flow-view.html b/catalog-ui/app/scripts/view-models/workspace/tabs/network-call-flow/network-call-flow-view.html deleted file mode 100644 index 6ce3e8e2b7..0000000000 --- a/catalog-ui/app/scripts/view-models/workspace/tabs/network-call-flow/network-call-flow-view.html +++ /dev/null @@ -1,3 +0,0 @@ -
      - -
      diff --git a/catalog-ui/app/scripts/view-models/workspace/tabs/product-hierarchy/product-hierarchy-view-model.ts b/catalog-ui/app/scripts/view-models/workspace/tabs/product-hierarchy/product-hierarchy-view-model.ts deleted file mode 100644 index faf77a5215..0000000000 --- a/catalog-ui/app/scripts/view-models/workspace/tabs/product-hierarchy/product-hierarchy-view-model.ts +++ /dev/null @@ -1,134 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/** - * Created by obarda on 4/7/2016. - */ -/// -module Sdc.ViewModels { - 'use strict'; - - export interface IProductHierarchyScope extends IWorkspaceViewModelScope { - - categoriesOptions: Array; - product:Models.Components.Product; - isLoading:boolean; - showDropDown:boolean; - - onInputTextClicked():void; - onGroupSelected(category: Models.IMainCategory, subcategory: Models.ISubCategory, group: Models.IGroup):void; - clickOutside():void; - deleteGroup(uniqueId:string):void; - } - - export class ProductHierarchyViewModel { - - static '$inject' = [ - '$scope', - 'Sdc.Services.CacheService', - 'ComponentFactory', - '$state' - ]; - - constructor(private $scope:IProductHierarchyScope, - private cacheService:Sdc.Services.CacheService, - private ComponentFactory: Sdc.Utils.ComponentFactory, - private $state:ng.ui.IStateService) { - - - this.$scope.product = this.$scope.getComponent(); - this.$scope.setValidState(true); - this.initScope(); - this.$scope.updateSelectedMenuItem(); - } - - private initCategories = () => { - this.$scope.categoriesOptions = angular.copy(this.cacheService.get('productCategories')); - let selectedGroup:Array = []; - _.forEach(this.$scope.product.categories, (category: Models.IMainCategory) => { - _.forEach(category.subcategories, (subcategory:Models.ISubCategory) => { - selectedGroup = selectedGroup.concat(subcategory.groupings); - }); - }); - _.forEach(this.$scope.categoriesOptions, (category: Models.IMainCategory) => { - _.forEach(category.subcategories, (subcategory:Models.ISubCategory) => { - _.forEach(subcategory.groupings, (group:Models.ISubCategory) => { - let componentGroup:Models.IGroup = _.find(selectedGroup, (componentGroupObj) => { - return componentGroupObj.uniqueId == group.uniqueId; - }); - if(componentGroup){ - group.isDisabled = true; - } - }); - }); - }); - }; - - private setFormValidation = ():void => { - //if(!this.$scope.product.categories || this.$scope.product.categories.length === 0){ - // this.$scope.setValidState(false); - //} - //else{ - this.$scope.setValidState(true); - // } - - }; - - private initScope = ():void => { - this.$scope.isLoading= false; - this.$scope.showDropDown =false; - this.initCategories(); - this.setFormValidation(); - - this.$scope.onGroupSelected = (category: Models.IMainCategory, subcategory: Models.ISubCategory, group: Models.IGroup):void => { - this.$scope.product.addGroup(category, subcategory, group); - this.$state.current.data.unsavedChanges = !this.$scope.isViewMode(); - group.isDisabled = true; - this.$scope.showDropDown = false; - this.setFormValidation(); - }; - - this.$scope.onInputTextClicked = ():void => {//just edit the component in place, no pop up nor server update ? - this.$scope.showDropDown = !this.$scope.showDropDown; - }; - - this.$scope.clickOutside = (): any => { - this.$scope.showDropDown = false; - }; - - this.$scope.deleteGroup = (uniqueId:string) : void => { - //delete group from component - this.$scope.product.deleteGroup(uniqueId); - this.$state.current.data.unsavedChanges = !this.$scope.isViewMode(); - this.setFormValidation(); - //enabled group - _.forEach(this.$scope.categoriesOptions, (category: Models.IMainCategory) => { - _.forEach(category.subcategories, (subcategory:Models.ISubCategory) => { - let groupObj:Models.IGroup = _.find (subcategory.groupings, (group) => { - return group.uniqueId === uniqueId; - }); - if(groupObj){ - groupObj.isDisabled = false; - } - }); - }); - } - }; - } -} diff --git a/catalog-ui/app/scripts/view-models/workspace/tabs/product-hierarchy/product-hierarchy-view.html b/catalog-ui/app/scripts/view-models/workspace/tabs/product-hierarchy/product-hierarchy-view.html deleted file mode 100644 index 2335ad7c74..0000000000 --- a/catalog-ui/app/scripts/view-models/workspace/tabs/product-hierarchy/product-hierarchy-view.html +++ /dev/null @@ -1,40 +0,0 @@ -
      - -
      - -
      -
      -
      -
      - -
      -
      -
      -
      -
      -
      diff --git a/catalog-ui/app/scripts/view-models/workspace/tabs/product-hierarchy/product-hierarchy.less b/catalog-ui/app/scripts/view-models/workspace/tabs/product-hierarchy/product-hierarchy.less deleted file mode 100644 index c992558ed2..0000000000 --- a/catalog-ui/app/scripts/view-models/workspace/tabs/product-hierarchy/product-hierarchy.less +++ /dev/null @@ -1,130 +0,0 @@ -.workspace-hierarchy { - display: inline-block; - width: 93%; - - .scrollbar-container{ - max-height:400px; - .perfect-scrollbar; - } - - .dropdown-container { - position: relative; - display: inline-block; - width: 100%; - - &:after{ - top: 47%; - right: 1%; - border: solid transparent; - content: " "; - height: 0; - width: 0; - position: absolute; - pointer-events: none; - border-color: rgba(0, 0, 0, 0); - border-top-color: black; - border-width: 4px; - margin-left: -4px; - } - - .dropdown-input-text { - width: 100%; - padding: 4px 10px; - } - - .dropdown-content { - .perfect-scrollbar; - border: 1px solid #d8d8d8; - display: none; - position: absolute; - overflow: hidden; - width: 100%; - .bg_c; - max-height: 400px; - z-index: 999999; - - .dropdown-option { - border-bottom: 1px solid #d8d8d8; - display: inline-block; - width: 100%; - } - - .category-container{ - width: 250px; - float: left; - padding-left: 5px; - - .category { - .bold; - padding: 3px 3px 2px 3px; - &:after{ - .sprite; - .arrow-left; - content: ''; - margin-left: 5px; - transform: rotate(180deg); - } - } - .subcategory { - padding-left: 3px; - } - } - - .groupings-container{ - display: inline-block; - width: 424px; - border-left: 1px solid #d8d8d8; - min-height: 55px; - .group{ - padding: 3px 3px 3px 10px; - &:hover{ - .hand; - .bg_n; - } - &.disabled-group { - opacity: 0.5; - &:hover{ - cursor: auto; - .bg_c; - } - } - } - } - - .seperator { - height: 1px; - width: 100%; - .bg_j; - margin: 5px 0px; - } - } - .show { - display: block; - } - } - - .hierarchy-groups-container{ - .b_9; - width: 100%; - border: 1px solid #d8d8d8; - height: 425px; - padding: 15px; - text-align: center; - - .scrollbar-container { - z-index: 0; - } - - .no-group-text{ - text-align: center; - margin-top:25px; - a { - cursor: pointer; - } - } - .group-tag{ - display: inline-block; - float: left; - } - } -} diff --git a/catalog-ui/app/scripts/view-models/workspace/tabs/properties/properties-view-model.ts b/catalog-ui/app/scripts/view-models/workspace/tabs/properties/properties-view-model.ts deleted file mode 100644 index 9b824bfca9..0000000000 --- a/catalog-ui/app/scripts/view-models/workspace/tabs/properties/properties-view-model.ts +++ /dev/null @@ -1,114 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.ViewModels { - 'use strict'; - - interface IPropertiesViewModelScope extends IWorkspaceViewModelScope { - tableHeadersList: Array; - reverse: boolean; - sortBy:string; - filteredProperties:any; - - addOrUpdateProperty(property?:Models.PropertyModel): void; - delete(property:Models.PropertyModel): void; - sort(sortBy:string): void; - } - - export class PropertiesViewModel { - - static '$inject' = [ - '$scope', - '$filter', - '$modal', - '$templateCache', - 'ModalsHandler' - ]; - - - constructor(private $scope:IPropertiesViewModelScope, - private $filter:ng.IFilterService, - private $modal:ng.ui.bootstrap.IModalService, - private $templateCache:ng.ITemplateCacheService, - private ModalsHandler:Utils.ModalsHandler) { - this.initScope(); - this.$scope.updateSelectedMenuItem(); - } - - - private openEditPropertyModal = (property:Models.PropertyModel):void => { - let viewModelsHtmlBasePath:string = '/app/scripts/view-models/'; - - let modalOptions:ng.ui.bootstrap.IModalSettings = { - template: this.$templateCache.get(viewModelsHtmlBasePath + 'forms/property-form/property-form-view.html'), - controller: 'Sdc.ViewModels.PropertyFormViewModel', - size: 'sdc-l', - backdrop: 'static', - keyboard: false, - resolve: { - property: ():Models.PropertyModel => { - return property; - }, - component: ():Models.Components.Component => { - return this.$scope.component; - }, - filteredProperties: ():Array => { - return this.$scope.filteredProperties.properties; - } - } - }; - this.$modal.open(modalOptions); - }; - - private initScope = ():void => { - - //let self = this; - this.$scope.filteredProperties={properties:[]}; - this.$scope.sortBy = 'name'; - this.$scope.reverse = false; - this.$scope.setValidState(true); - this.$scope.tableHeadersList = [ - {title: 'Name', property: 'name'}, - {title: 'Type', property: 'type'}, - {title: 'Schema', property: 'schema.property.type'}, - {title: 'Description', property: 'description'}, - ]; - this.$scope.sort = (sortBy:string):void => { - this.$scope.reverse = (this.$scope.sortBy === sortBy) ? !this.$scope.reverse : false; - this.$scope.sortBy = sortBy; - }; - - - this.$scope.addOrUpdateProperty = (property?:Models.PropertyModel):void => { - this.openEditPropertyModal(property ? property : new Models.PropertyModel()); - }; - - this.$scope.delete = (property:Models.PropertyModel):void => { - - let onOk = ():void => { - this.$scope.component.deleteProperty(property.uniqueId); - }; - let title:string = this.$filter('translate')("PROPERTY_VIEW_DELETE_MODAL_TITLE"); - let message:string = this.$filter('translate')("PROPERTY_VIEW_DELETE_MODAL_TEXT", "{'name': '" + property.name + "'}"); - this.ModalsHandler.openConfirmationModal(title, message, false).then(onOk); - }; - } - } -} diff --git a/catalog-ui/app/scripts/view-models/workspace/tabs/properties/properties-view.html b/catalog-ui/app/scripts/view-models/workspace/tabs/properties/properties-view.html deleted file mode 100644 index e9a4c3879d..0000000000 --- a/catalog-ui/app/scripts/view-models/workspace/tabs/properties/properties-view.html +++ /dev/null @@ -1,62 +0,0 @@ -
      -
      - Total Properties: {{component.properties.length}} - - -
      -
      Add Property
      -
      -
      -
      -
      {{header.title}} - -
      -
      - -
      - -
      - -
      - There are no properties to display
      - click here to add one - -
      -
      - - - -
      -
      -
      -
      -
      - -
      -
      - -
      -
      -
      -
      - -
      -
      - -
      diff --git a/catalog-ui/app/scripts/view-models/workspace/tabs/properties/properties.less b/catalog-ui/app/scripts/view-models/workspace/tabs/properties/properties.less deleted file mode 100644 index 3e8d6c3fbd..0000000000 --- a/catalog-ui/app/scripts/view-models/workspace/tabs/properties/properties.less +++ /dev/null @@ -1,115 +0,0 @@ -.workspace-properties { - - width: 93%; - display: inline-block; - - #left-top-bar{ - float: left; - width: 155px; - ::-webkit-input-placeholder { - font-style: italic; - } - :-moz-placeholder { - font-style: italic; - } - ::-moz-placeholder { - font-style: italic; - } - :-ms-input-placeholder { - font-style: italic; - } - - #properties-count{ - font-weight: bold; - float: left; - } - - #search-by-name{ - -webkit-border-radius: 2px; - -moz-border-radius: 2px; - border-radius: 2px; - width: 245px; - height: 32px; - line-height: 32px; - border: 1px solid @main_color_o; - text-indent: 10px; - } - - .search-button{ - .hand; - cursor: pointer; - float: right; - position: relative; - top: -22px; - right: -80px; - } - } - - .add-btn { - margin: 36px 0 0 0; - } - - .delete-col-header{ - .sprite; - .sprite.e-sdc-small-icon-delete; - } - - .w-sdc-classic-btn { - float: right; - margin-bottom: 10px; - } - - .table{ - height:490px; - margin-bottom: 0; - } - - .data-row{ - .table-delete-btn{ - display: none !important; - } - &:hover{ - .table-delete-btn{ - display: inline-block !important; - } - } - } - - .table-container-flex { - margin-top: 27px; - - .text{ - overflow: hidden; - text-overflow: ellipsis; - display: inline-block; - white-space: nowrap; - } - - .flex-item:nth-child(1) { - flex-grow: 15; - a{ - .hand - } - } - - .flex-item:nth-child(2) { - flex-grow: 6; - } - - .flex-item:nth-child(3) { - flex-grow: 6; - } - - .flex-item:nth-child(4) { - flex-grow: 20; - - } - .flex-item:nth-child(5) { - flex-grow: 3; - padding-top: 10px; - } - - - } - -} diff --git a/catalog-ui/app/scripts/view-models/workspace/tabs/req-and-capabilities/req-and-capabilities-view-model.ts b/catalog-ui/app/scripts/view-models/workspace/tabs/req-and-capabilities/req-and-capabilities-view-model.ts deleted file mode 100644 index 97a117e8b7..0000000000 --- a/catalog-ui/app/scripts/view-models/workspace/tabs/req-and-capabilities/req-and-capabilities-view-model.ts +++ /dev/null @@ -1,165 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/** - * Created by rcohen on 9/22/2016. - */ -/// -module Sdc.ViewModels { - 'use strict'; - import tree = d3.layout.tree; - - export class SortTableDefined { - reverse:boolean; - sortByField:string; - } - - interface IReqAndCapabilitiesViewModelScope extends IWorkspaceViewModelScope { - requirementsTableHeadersList: Array; - capabilitiesTableHeadersList: Array; - capabilityPropertiesTableHeadersList: Array; - requirementsSortTableDefined: SortTableDefined; - capabilitiesSortTableDefined: SortTableDefined; - propertiesSortTableDefined: SortTableDefined; - requirements:Array; - capabilities:Array; - mode:string; - filteredProperties:Array>; - searchText:string; - - sort(sortBy:string, sortByTableDefined:SortTableDefined):void; - updateProperty(property:Models.PropertyModel, indexInFilteredProperties:number):void; - allCapabilitiesSelected(selected:boolean):void; - } - - export class ReqAndCapabilitiesViewModel { - - static '$inject' = [ - '$scope', - '$filter', - '$modal', - '$templateCache', - 'ModalsHandler' - ]; - - - constructor(private $scope:IReqAndCapabilitiesViewModelScope, - private $filter:ng.IFilterService, - private $modal:ng.ui.bootstrap.IModalService, - private $templateCache:ng.ITemplateCacheService) { - this.initScope(); - this.$scope.updateSelectedMenuItem(); - } - - - private openEditPropertyModal = (property:Models.PropertyModel, indexInFilteredProperties:number):void => { - let viewModelsHtmlBasePath:string = '/app/scripts/view-models/'; - //...because there is not be api - _.forEach(this.$scope.filteredProperties[indexInFilteredProperties],(prop:Models.PropertyModel)=>{ - prop.readonly = true; - }); - let modalOptions:ng.ui.bootstrap.IModalSettings = { - template: this.$templateCache.get(viewModelsHtmlBasePath + 'forms/property-form/property-form-view.html'), - controller: 'Sdc.ViewModels.PropertyFormViewModel', - size: 'sdc-l', - backdrop: 'static', - keyboard: false, - resolve: { - property: ():Models.PropertyModel => { - return property; - }, - component: ():Models.Components.Component => { - return this.$scope.component; - }, - filteredProperties: ():Array => { - return this.$scope.filteredProperties[indexInFilteredProperties]; - } - } - }; - this.$modal.open(modalOptions); - }; - - private initScope = ():void => { - - this.$scope.requirementsSortTableDefined = { - reverse: false, - sortByField: 'name' - }; - this.$scope.capabilitiesSortTableDefined = { - reverse: false, - sortByField: 'name' - }; - this.$scope.propertiesSortTableDefined = { - reverse: false, - sortByField: 'name' - }; - - this.$scope.setValidState(true); - this.$scope.requirementsTableHeadersList = [ - {title: 'Name', property: 'name'}, - {title: 'Capability', property: 'capability'}, - {title: 'Node', property: 'node'}, - {title: 'Relationship', property: 'relationship'}, - {title: 'Connected To', property: ''}, - {title: 'Occurrences', property: ''} - ]; - this.$scope.capabilitiesTableHeadersList = [ - {title: 'Name', property: 'name'}, - {title: 'Type', property: 'type'}, - {title: 'Description', property: ''}, - {title: 'Valid Source', property: ''}, - {title: 'Occurrences', property: ''} - ]; - this.$scope.capabilityPropertiesTableHeadersList = [ - {title: 'Name', property: 'name'}, - {title: 'Type', property: 'type'}, - {title: 'Schema', property: 'schema.property.type'}, - {title: 'Description', property: 'description'}, - ]; - this.$scope.filteredProperties=[]; - - this.$scope.mode='requirements'; - this.$scope.requirements=[]; - _.forEach(this.$scope.component.requirements,(req:Array,capName)=>{ - this.$scope.requirements=this.$scope.requirements.concat(req); - }); - - this.$scope.capabilities=[]; - _.forEach(this.$scope.component.capabilities,(cap:Array,capName)=>{ - this.$scope.capabilities=this.$scope.capabilities.concat(cap); - }); - - this.$scope.sort = (sortBy:string, sortByTableDefined:SortTableDefined):void => { - sortByTableDefined.reverse = (sortByTableDefined.sortByField === sortBy) ? !sortByTableDefined.reverse : false; - sortByTableDefined.sortByField = sortBy; - }; - - this.$scope.updateProperty = (property:Models.PropertyModel, indexInFilteredProperties:number):void => { - this.openEditPropertyModal(property, indexInFilteredProperties); - }; - - this.$scope.allCapabilitiesSelected = (selected:boolean):void => { - _.forEach(this.$scope.capabilities,(cap:Models.Capability)=>{ - cap.selected = selected; - }); - }; - } - } -} - diff --git a/catalog-ui/app/scripts/view-models/workspace/tabs/req-and-capabilities/req-and-capabilities-view.html b/catalog-ui/app/scripts/view-models/workspace/tabs/req-and-capabilities/req-and-capabilities-view.html deleted file mode 100644 index 047768689a..0000000000 --- a/catalog-ui/app/scripts/view-models/workspace/tabs/req-and-capabilities/req-and-capabilities-view.html +++ /dev/null @@ -1,144 +0,0 @@ -
      -
      - - -
      -
      - - -
      - -
      -
      -
      -
      {{header.title}} - -
      -
      - -
      - -
      - There are no requirements to display - -
      -
      - -
      - {{req.name}} -
      -
      - {{req.capability.substring("tosca.capabilities.".length)}} -
      -
      - {{req.node.substring("tosca.nodes.".length)}} -
      -
      - {{req.relationship.substring("tosca.relationships.".length)}} -
      -
      -
      - {{req.minOccurrences}},{{req.maxOccurrences}} -
      -
      -
      -
      - -
      -
      -
      -
      -
      -
      {{header.title}} - -
      -
      - -
      - -
      - There are no capabilities to display - -
      -
      - -
      - - {{capability.name}} -
      -
      - {{capability.type.substring("tosca.capabilities.".length)}} -
      - -
      - {{capability.description}} -
      - -
      - {{capability.validSourceTypes.join(',')}} -
      - -
      - {{capability.minOccurrences}},{{capability.maxOccurrences}} -
      -
      -
      -

      Properties

      -
      -
      -
      -
      {{header.title}} - -
      -
      - -
      -
      - There are no properties to display -
      -
      - - - -
      -
      -
      -
      -
      - -
      -
      -
      - -
      -
      -
      -
      -
      - -
      -
      -
      - diff --git a/catalog-ui/app/scripts/view-models/workspace/tabs/req-and-capabilities/req-and-capabilities.less b/catalog-ui/app/scripts/view-models/workspace/tabs/req-and-capabilities/req-and-capabilities.less deleted file mode 100644 index 9b52fad411..0000000000 --- a/catalog-ui/app/scripts/view-models/workspace/tabs/req-and-capabilities/req-and-capabilities.less +++ /dev/null @@ -1,196 +0,0 @@ -.workspace-req-and-cap { - - width: 93%; - display: inline-block; - - .tabs{ - float: left; - position: relative; - top: 6px; - button{ - float: left; - width: 233px; - height: 38px; - background-color: @tlv_color_t; - border: 1px solid @main_color_o; - color: black; - &:nth-child(1){ - border-radius: 10px 0 0 0; - } - &:nth-child(2){ - border-radius: 0 10px 0 0; - } - &.selected{ - background-color: @main_color_a; - border: 1px solid @main_color_a; - color: white; - } - } - } - .search{ - margin-bottom: 12px; - float: right; - ::-webkit-input-placeholder { - font-style: italic; - } - :-moz-placeholder { - font-style: italic; - } - ::-moz-placeholder { - font-style: italic; - } - :-ms-input-placeholder { - font-style: italic; - } - #search-box{ - -webkit-border-radius: 2px 0 0 2px; - -moz-border-radius: 2px 0 0 2px; - border-radius: 2px 0 0 2px; - width: 213px; - height: 32px; - line-height: 32px; - border: 1px solid @main_color_o; - text-indent: 10px; - float: left; - } - .search-icon-container{ - background-color: @main_color_a; - height: 32px; - width: 32px; - border-radius: 0 2px 2px 0; - float: left; - .search-icon{ - position: relative; - top: 9px; - } - } - } - .expand-collapse-buttons{ - float: right; - width: 44px; - margin-left: 11px; - margin-top: 10px; - span{ - vertical-align: bottom; - .hand; - } - } - - - - .table{ - height:490px; - margin-bottom: 0; - } - - .arrow-up-small{ - &.opened{ - .arrow-up-small-hover; - } - } - - .item-opened{ - background-color: @tlv_color_t; - } - - .properties-title{ - margin:0; - font-weight: bold; - } - - .table-container-flex { - margin-top: 10px; - - .text{ - overflow: hidden; - text-overflow: ellipsis; - display: inline-block; - white-space: nowrap; - } - - &.requirements-table{ - border-top: 4px solid @main_color_a; - .flex-item:nth-child(1) { - flex-grow: 20; - } - - .flex-item:nth-child(2) { - flex-grow: 20; - } - - .flex-item:nth-child(3) { - flex-grow: 20; - } - - .flex-item:nth-child(4) { - flex-grow: 20; - } - - .flex-item:nth-child(5) { - flex-grow: 20; - } - - .flex-item:nth-child(6) { - flex-grow: 20; - } - } - - &.capabilities-table{ - border-top: 4px solid @main_color_a; - .selected{ - .flex-item:nth-child(1) { - border-left: 4px solid @main_color_a; - padding-right: 11px; - } - } - .flex-item:nth-child(1) { - flex-grow: 10; - } - - .flex-item:nth-child(2) { - flex-grow: 10; - } - - .flex-item:nth-child(3) { - flex-grow: 10; - } - - .flex-item:nth-child(4) { - flex-grow: 10; - } - - .flex-item:nth-child(5) { - flex-grow: 10; - } - - } - - &.properties-table{ - .table{ - height: auto; - } - - .flex-item:nth-child(1) { - flex-grow: 15; - a{ - .hand - } - } - - .flex-item:nth-child(2) { - flex-grow: 6; - } - - .flex-item:nth-child(3) { - flex-grow: 6; - } - - .flex-item:nth-child(4) { - flex-grow: 20; - - } - } - - } - -} diff --git a/catalog-ui/app/scripts/view-models/workspace/tabs/tosca-artifacts/tosca-artifacts-view-model.ts b/catalog-ui/app/scripts/view-models/workspace/tabs/tosca-artifacts/tosca-artifacts-view-model.ts deleted file mode 100644 index 1e6bc04924..0000000000 --- a/catalog-ui/app/scripts/view-models/workspace/tabs/tosca-artifacts/tosca-artifacts-view-model.ts +++ /dev/null @@ -1,87 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/// -module Sdc.ViewModels { - 'use strict'; - import ArtifactModel = Sdc.Models.ArtifactModel; - - export interface IToscaArtifactsScope extends IWorkspaceViewModelScope { - artifacts: Array; - tableHeadersList: Array; - artifactType: string; - downloadFile:Models.IFileDownload; - isLoading:boolean; - sortBy:string; - reverse:boolean; - - getTitle(): string; - download(artifact:Models.ArtifactModel): void; - sort(sortBy:string): void; - showNoArtifactMessage():boolean; - } - - export class ToscaArtifactsViewModel { - - static '$inject' = [ - '$scope', - '$filter' - ]; - - constructor(private $scope:IToscaArtifactsScope, - private $filter:ng.IFilterService) { - this.initScope(); - this.$scope.updateSelectedMenuItem(); - } - - private initScope = ():void => { - let self = this; - this.$scope.isLoading = false; - this.$scope.sortBy = 'artifactDisplayName'; - this.$scope.reverse = false; - this.$scope.setValidState(true); - this.$scope.artifactType = 'normal'; - this.$scope.getTitle = ():string => { - return this.$filter("resourceName")(this.$scope.component.name) + ' Artifacts'; - - }; - - this.$scope.tableHeadersList = [ - {title: 'Name', property: 'artifactDisplayName'}, - {title: 'Type', property: 'artifactType'} - ]; - - this.$scope.artifacts = _.values(this.$scope.component.toscaArtifacts); - this.$scope.sort = (sortBy:string):void => { - this.$scope.reverse = (this.$scope.sortBy === sortBy) ? !this.$scope.reverse : false; - this.$scope.sortBy = sortBy; - }; - - - - this.$scope.showNoArtifactMessage = ():boolean => { - if (this.$scope.artifacts.length === 0) { - return true; - } - return false; - }; - - } - } -} diff --git a/catalog-ui/app/scripts/view-models/workspace/tabs/tosca-artifacts/tosca-artifacts-view.html b/catalog-ui/app/scripts/view-models/workspace/tabs/tosca-artifacts/tosca-artifacts-view.html deleted file mode 100644 index 947b37db93..0000000000 --- a/catalog-ui/app/scripts/view-models/workspace/tabs/tosca-artifacts/tosca-artifacts-view.html +++ /dev/null @@ -1,45 +0,0 @@ -
      -
      -
      -
      -
      {{header.title}} - -
      -
      -
      -
      - -
      - There are no TOSCA artifacts to display -
      -
      - -
      - - {{artifact.artifactDisplayName}} -
      - -
      - {{artifact.artifactType}} -
      - -
      - -
      -
      -
      -
      Label: {{artifact.artifactLabel}}
      -
      UUID: {{artifact.uniqueId}}
      -
      Description: {{artifact.description}}
      - - -
      - -
      -
      -
      -
      -
      diff --git a/catalog-ui/app/scripts/view-models/workspace/tabs/tosca-artifacts/tosca-artifacts.less b/catalog-ui/app/scripts/view-models/workspace/tabs/tosca-artifacts/tosca-artifacts.less deleted file mode 100644 index f792bb8c53..0000000000 --- a/catalog-ui/app/scripts/view-models/workspace/tabs/tosca-artifacts/tosca-artifacts.less +++ /dev/null @@ -1,74 +0,0 @@ -.workspace-tosca-artifact { - width: 93%; - display: inline-block; - .w-sdc-classic-btn { - float: right; - margin-bottom: 10px; - } - - .details-title{ - font-weight: bold; - margin-right: 5px; - } - - .table{ - height: 490px; - margin-bottom: 0; - } - - - .table-container-flex { - margin-top: 27px; - - .item-opened{ - word-wrap: break-word; - } - - - .flex-item:nth-child(1) { - flex-grow: 15; - .hand; - span.table-arrow { - margin-right: 7px; - } - } - - .flex-item:nth-child(2) { - flex-grow: 6; - } - - .flex-item:nth-child(3) { - flex-grow: 1; - } - - - - - .table-download-btn{ - &.tosca{ - margin-left: 0; - margin-top: 8px; - } - } - - .download-icon-container{ - position: relative; - - .loader{ - left: 60%; - top: 45px; - border: none; - background-color: transparent; - height: 0px; - width: 63px; - outline: none; - - } - } - - - } - -} - - diff --git a/catalog-ui/app/scripts/view-models/workspace/workspace-view-model.ts b/catalog-ui/app/scripts/view-models/workspace/workspace-view-model.ts deleted file mode 100644 index a8523f24f5..0000000000 --- a/catalog-ui/app/scripts/view-models/workspace/workspace-view-model.ts +++ /dev/null @@ -1,703 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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_END========================================================= - */ -/** - * Created by obarda on 3/30/2016. - */ -/// -module Sdc.ViewModels { - - 'use strict'; - import Resource = Sdc.Models.Components.Resource; - import ResourceType = Sdc.Utils.Constants.ResourceType; - - export interface IWorkspaceViewModelScope extends ng.IScope { - - isLoading: boolean; - isCreateProgress: boolean; - component: Models.Components.Component; - originComponent: Models.Components.Component; - componentType: string; - importFile: any; - leftBarTabs: Utils.MenuItemGroup; - isNew: boolean; - isFromImport: boolean; - isValidForm: boolean; - mode: Utils.Constants.WorkspaceMode; - breadcrumbsModel: Array; - sdcMenu: Models.IAppMenu; - changeLifecycleStateButtons: any; - version: string; - versionsList: Array; - changeVersion: any; - isComposition: boolean; - isDeployment: boolean; - $state: ng.ui.IStateService; - user: Models.IUserProperties; - thirdParty: boolean; - disabledButtons: boolean; - menuComponentTitle: string; - progressService: Sdc.Services.ProgressService; - progressMessage: string; - // leftPanelComponents:Array; //this is in order to load the left panel once, and not wait long time when moving to composition - - showChangeStateButton(): boolean; - getComponent(): Sdc.Models.Components.Component; - setComponent(component: Sdc.Models.Components.Component): void; - onMenuItemPressed(state: string): ng.IPromise; - save(): ng.IPromise; - setValidState(isValid: boolean): void; - revert(): void; - changeLifecycleState(state: string): void; - enabledTabs(): void - isDesigner(): boolean; - isViewMode(): boolean; - isEditMode(): boolean; - isCreateMode(): boolean; - isDisableMode(): boolean; - showFullIcons(): boolean; - goToBreadcrumbHome(): void; - onVersionChanged(selectedId: string): void; - getLatestVersion(): void; - getStatus(): string; - showLifecycleIcon(): boolean; - updateSelectedMenuItem(): void; - uploadFileChangedInGeneralTab(): void; - updateMenuComponentName(ComponentName: string): void; - } - - export class WorkspaceViewModel { - - static '$inject' = [ - '$scope', - 'injectComponent', - 'ComponentFactory', - '$state', - 'sdcMenu', - '$q', - 'MenuHandler', - 'Sdc.Services.CacheService', - 'ChangeLifecycleStateHandler', - 'ModalsHandler', - 'LeftPaletteLoaderService', - '$filter', - 'EventListenerService', - 'Sdc.Services.EntityService', - 'Notification', - '$stateParams', - 'Sdc.Services.ProgressService' - ]; - - constructor(private $scope: IWorkspaceViewModelScope, - private injectComponent: Models.Components.Component, - private ComponentFactory: Utils.ComponentFactory, - private $state: ng.ui.IStateService, - private sdcMenu: Models.IAppMenu, - private $q: ng.IQService, - private MenuHandler: Utils.MenuHandler, - private cacheService: Services.CacheService, - private ChangeLifecycleStateHandler: Sdc.Utils.ChangeLifecycleStateHandler, - private ModalsHandler: Sdc.Utils.ModalsHandler, - private LeftPaletteLoaderService: Services.Components.LeftPaletteLoaderService, - private $filter: ng.IFilterService, - private EventListenerService: Services.EventListenerService, - private EntityService: Sdc.Services.EntityService, - private Notification: any, - private $stateParams: any, - private progressService: Sdc.Services.ProgressService) { - - this.initScope(); - this.initAfterScope(); - } - - private role: string; - private components: Array; - - private initViewMode = (): Utils.Constants.WorkspaceMode => { - let mode = Utils.Constants.WorkspaceMode.VIEW; - - if (!this.$state.params['id']) { //&& !this.$state.params['vspComponent'] - mode = Utils.Constants.WorkspaceMode.CREATE; - } else { - if (this.$scope.component.lifecycleState === Utils.Constants.ComponentState.NOT_CERTIFIED_CHECKOUT && - this.$scope.component.lastUpdaterUserId === this.cacheService.get("user").userId) { - if (this.$scope.component.isProduct() && this.role == Utils.Constants.Role.PRODUCT_MANAGER) { - mode = Utils.Constants.WorkspaceMode.EDIT; - } - if ((this.$scope.component.isService() || this.$scope.component.isResource()) && this.role == Utils.Constants.Role.DESIGNER) { - mode = Utils.Constants.WorkspaceMode.EDIT; - } - } - } - return mode; - }; - - private initChangeLifecycleStateButtons = (): void => { - let state = this.$scope.component.isService() && (Utils.Constants.Role.OPS == this.role || Utils.Constants.Role.GOVERNOR == this.role) ? this.$scope.component.distributionStatus : this.$scope.component.lifecycleState; - this.$scope.changeLifecycleStateButtons = this.sdcMenu.roles[this.role].changeLifecycleStateButtons[state]; - }; - - private isNeedSave = (): boolean => { - if (this.$scope.isEditMode() && //this is a workaround for onboarding - we need to get the artifact in order to avoid saving the vf when moving from their tabs - (this.$state.current.name === Utils.Constants.States.WORKSPACE_MANAGEMENT_WORKFLOW || this.$state.current.name === Utils.Constants.States.WORKSPACE_NETWORK_CALL_FLOW)) { - return true; - } - return this.$scope.isEditMode() && - this.$state.current.data && this.$state.current.data.unsavedChanges; - }; - - private initScope = (): void => { - - this.$scope.component = this.injectComponent; - this.$scope.menuComponentTitle = this.$scope.component.name; - this.$scope.disabledButtons = false; - this.$scope.originComponent = this.ComponentFactory.createComponent(this.$scope.component); - this.$scope.componentType = this.$scope.component.componentType; - this.$scope.version = this.cacheService.get('version'); - this.$scope.user = this.cacheService.get("user"); - this.role = this.$scope.user.role; - this.$scope.mode = this.initViewMode(); - this.$scope.isValidForm = true; - this.initChangeLifecycleStateButtons(); - this.initVersionObject(); - this.$scope.$state = this.$state; - this.$scope.isLoading = false; - this.$scope.isComposition = (this.$state.current.name.indexOf(Utils.Constants.States.WORKSPACE_COMPOSITION) > -1); - this.$scope.isDeployment = (this.$state.current.name.indexOf(Utils.Constants.States.WORKSPACE_DEPLOYMENT) > -1); - this.$scope.progressService = this.progressService; - - this.$scope.getComponent = (): Sdc.Models.Components.Component => { - return this.$scope.component; - }; - - this.$scope.updateMenuComponentName = (ComponentName: string): void => { - this.$scope.menuComponentTitle = ComponentName; - }; - - this.$scope.sdcMenu = this.sdcMenu; - // Will be called from each step after save to update the resource. - this.$scope.setComponent = (component: Sdc.Models.Components.Component): void => { - this.$scope.component = component; - }; - - this.$scope.uploadFileChangedInGeneralTab = (): void => { - // In case user select browse file, and in update mode, need to disable submit for testing and checkin buttons. - if (this.$scope.isEditMode() && this.$scope.component.isResource() && (this.$scope.component).resourceType == ResourceType.VF) { - this.$scope.disabledButtons = true; - } - }; - - this.$scope.onMenuItemPressed = (state: string): ng.IPromise => { - let deferred = this.$q.defer(); - if (this.isNeedSave()) { - if (this.$scope.isValidForm) { - let onSuccess = (): void => { - this.$state.go(state, { - id: this.$scope.component.uniqueId, - type: this.$scope.component.componentType.toLowerCase(), - components: this.components - }); - deferred.resolve(true); - }; - this.$scope.save().then(onSuccess); - } else { - console.log('form is not valid'); - deferred.reject(false); - } - } else { - this.$state.go(state, { - id: this.$scope.component.uniqueId, - type: this.$scope.component.componentType.toLowerCase(), - components: this.components - }); - deferred.resolve(true); - } - return deferred.promise; - }; - - this.$scope.setValidState = (isValid: boolean): void => { - this.$scope.isValidForm = isValid; - }; - - this.$scope.onVersionChanged = (selectedId: string): void => { - this.$scope.isLoading = true; - if (this.$state.current.data && this.$state.current.data.unsavedChanges) { - this.$scope.changeVersion.selectedVersion = _.find(this.$scope.versionsList, {versionId: this.$scope.component.uniqueId}); - } - this.$state.go(this.$state.current.name, { - id: selectedId, - type: this.$scope.componentType.toLowerCase(), - mode: Utils.Constants.WorkspaceMode.VIEW, - components: this.$state.params['components'] - }); - - }; - - this.$scope.getLatestVersion = (): void => { - this.$scope.onVersionChanged(_.first(this.$scope.versionsList).versionId); - }; - - this.$scope.save = (state?: string): ng.IPromise => { - this.EventListenerService.notifyObservers(Utils.Constants.EVENTS.ON_WORKSPACE_SAVE_BUTTON_CLICK); - - this.progressService.initCreateComponentProgress(this.$scope.component.uniqueId); - - let deferred = this.$q.defer(); - let modalInstance: ng.ui.bootstrap.IModalServiceInstance; - - let onFailed = () => { - this.EventListenerService.notifyObservers(Utils.Constants.EVENTS.ON_WORKSPACE_SAVE_BUTTON_ERROR); - this.progressService.deleteProgressValue(this.$scope.component.uniqueId); - modalInstance && modalInstance.close(); // Close the modal in case it is opened. - this.$scope.isCreateProgress = false; - this.$scope.isLoading = false; // stop the progress. - - this.$scope.setValidState(true); // Set the form valid (if sent form is valid, the error from server). - if (!this.$scope.isCreateMode()) { - this.$scope.component = this.$scope.originComponent; // Set the component back to the original. - this.enableMenuItems(); // Enable the menu items (left tabs), so user can press on them. - this.$scope.disabledButtons = false; // Enable "submit for testing" & checking buttons. - } - - deferred.reject(false); - }; - - let onSuccessCreate = (component: Models.Components.Component) => { - - this.EventListenerService.notifyObservers(Utils.Constants.EVENTS.ON_WORKSPACE_SAVE_BUTTON_SUCCESS); - this.progressService.deleteProgressValue(this.$scope.component.uniqueId); - //update components for breadcrumbs - this.components.unshift(component); - this.$state.go(Utils.Constants.States.WORKSPACE_GENERAL, { - id: component.uniqueId, - type: component.componentType.toLowerCase(), - components: this.components - }); - - deferred.resolve(true); - }; - - let onSuccessUpdate = (component: Models.Components.Component) => { - this.$scope.isCreateProgress = false; - this.$scope.disabledButtons = false; - this.EventListenerService.notifyObservers(Utils.Constants.EVENTS.ON_WORKSPACE_SAVE_BUTTON_SUCCESS); - this.progressService.deleteProgressValue(this.$scope.component.uniqueId); - - // Stop the circle loader. - this.$scope.isLoading = false; - - component.tags = _.reject(component.tags, (item)=> { - return item === component.name - }); - - // Update the components - this.$scope.component = component; - this.$scope.originComponent = this.ComponentFactory.createComponent(this.$scope.component); - - //update components for breadcrumbs - this.components.unshift(component); - - // Enable left tags - this.$scope.enabledTabs(); - - - if (this.$state.current.data) { - this.$state.current.data.unsavedChanges = false; - } - - deferred.resolve(true); - }; - - if (this.$scope.isCreateMode()) { - this.$scope.progressMessage = "Creating Asset..."; - // CREATE MODE - this.$scope.isCreateProgress = true; - - // Start creating the component - this.ComponentFactory.createComponentOnServer(this.$scope.component).then(onSuccessCreate, onFailed); - - // In case we import CSAR. Notify user that import VF will take long time (the create is performed in the background). - if (this.$scope.component.isResource() && (this.$scope.component).csarUUID) { - this.Notification.info({ - message: this.$filter('translate')("IMPORT_VF_MESSAGE_CREATE_TAKES_LONG_TIME_DESCRIPTION"), - title: this.$filter('translate')("IMPORT_VF_MESSAGE_CREATE_TAKES_LONG_TIME_TITLE") - }); - } - } else { - // UPDATE MODE - this.$scope.isCreateProgress = true; - this.$scope.progressMessage = "Updating Asset..."; - this.disableMenuItems(); - - - // Work around to change the csar version - if (this.cacheService.get(Utils.Constants.CHANGE_COMPONENT_CSAR_VERSION_FLAG)) { - (this.$scope.component).csarVersion = this.cacheService.get(Utils.Constants.CHANGE_COMPONENT_CSAR_VERSION_FLAG); - this.cacheService.remove(Utils.Constants.CHANGE_COMPONENT_CSAR_VERSION_FLAG); - } - - this.$scope.component.updateComponent().then(onSuccessUpdate, onFailed); - } - return deferred.promise; - }; - - this.$scope.revert = (): void => { - //in state of import file leave the file in place - if (this.$scope.component.isResource() && (this.$scope.component).importedFile) { - let tempFile: Sdc.Directives.FileUploadModel = (this.$scope.component).importedFile; - this.$scope.component = this.ComponentFactory.createComponent(this.$scope.originComponent); - (this.$scope.component).importedFile = tempFile; - } else { - this.$scope.component = this.ComponentFactory.createComponent(this.$scope.originComponent); - } - - }; - - this.$scope.changeLifecycleState = (state: string): void => { - if (this.isNeedSave() && state !== 'deleteVersion') { - this.$scope.save().then(() => { - changeLifecycleState(state); - }) - } else { - changeLifecycleState(state); - } - }; - - let defaultActionAfterChangeLifecycleState = (): void => { - if (this.$state.current.data && this.$state.current.data.unsavedChanges) { - this.$state.current.data.unsavedChanges = false; - } - this.$state.go('dashboard'); - }; - - let changeLifecycleState = (state: string) => { - if ('monitor' === state) { - this.$state.go('workspace.distribution'); - return; - } - - let data = this.$scope.changeLifecycleStateButtons[state]; - let onSuccess = (component: Models.Components.Component): void => { - //Updating the component from server response - - //the server returns only metaData (small component) except checkout (Full component) ,so we update only the statuses of distribution & lifecycle - this.$scope.component.lifecycleState = component.lifecycleState; - this.$scope.component.distributionStatus = component.distributionStatus; - - switch (data.url) { - case 'lifecycleState/CHECKOUT': - // only checkOut get the full component from server - this.$scope.component = component; - // Work around to change the csar version - if (this.cacheService.get(Utils.Constants.CHANGE_COMPONENT_CSAR_VERSION_FLAG)) { - (this.$scope.component).csarVersion = this.cacheService.get(Utils.Constants.CHANGE_COMPONENT_CSAR_VERSION_FLAG); - } - - //when checking out a minor version uuid remains - let bcComponent: Sdc.Models.Components.Component = _.find(this.components, (item) => { - return item.uuid === component.uuid; - }); - if (bcComponent) { - this.components[this.components.indexOf(bcComponent)] = component; - } else { - //when checking out a major(certified) version - this.components.unshift(component); - } - - this.$state.go(this.$state.current.name, { - id: component.uniqueId, - type: component.componentType.toLowerCase(), - components: this.components - }); - this.Notification.success({ - message: this.$filter('translate')("CHECKOUT_SUCCESS_MESSAGE_TEXT"), - title: this.$filter('translate')("CHECKOUT_SUCCESS_MESSAGE_TITLE") - }); - break; - case 'lifecycleState/CHECKIN': - defaultActionAfterChangeLifecycleState(); - this.Notification.success({ - message: this.$filter('translate')("CHECKIN_SUCCESS_MESSAGE_TEXT"), - title: this.$filter('translate')("CHECKIN_SUCCESS_MESSAGE_TITLE") - }); - break; - case 'lifecycleState/UNDOCHECKOUT': - defaultActionAfterChangeLifecycleState(); - this.Notification.success({ - message: this.$filter('translate')("DELETE_SUCCESS_MESSAGE_TEXT"), - title: this.$filter('translate')("DELETE_SUCCESS_MESSAGE_TITLE") - }); - break; - case 'lifecycleState/certificationRequest': - defaultActionAfterChangeLifecycleState(); - this.Notification.success({ - message: this.$filter('translate')("SUBMIT_FOR_TESTING_SUCCESS_MESSAGE_TEXT"), - title: this.$filter('translate')("SUBMIT_FOR_TESTING_SUCCESS_MESSAGE_TITLE") - }); - break; - //Tester Role - case 'lifecycleState/failCertification': - defaultActionAfterChangeLifecycleState(); - this.Notification.success({ - message: this.$filter('translate')("REJECT_SUCCESS_MESSAGE_TEXT"), - title: this.$filter('translate')("REJECT_SUCCESS_MESSAGE_TITLE") - }); - break; - case 'lifecycleState/certify': - defaultActionAfterChangeLifecycleState(); - this.Notification.success({ - message: this.$filter('translate')("ACCEPT_TESTING_SUCCESS_MESSAGE_TEXT"), - title: this.$filter('translate')("ACCEPT_TESTING_SUCCESS_MESSAGE_TITLE") - }); - break; - //DE203504 Bug Fix Start - case 'lifecycleState/startCertification': - this.initChangeLifecycleStateButtons(); - this.Notification.success({ - message: this.$filter('translate')("START_TESTING_SUCCESS_MESSAGE_TEXT"), - title: this.$filter('translate')("START_TESTING_SUCCESS_MESSAGE_TITLE") - }); - break; - case 'lifecycleState/cancelCertification': - this.initChangeLifecycleStateButtons(); - this.Notification.success({ - message: this.$filter('translate')("CANCEL_TESTING_SUCCESS_MESSAGE_TEXT"), - title: this.$filter('translate')("CANCEL_TESTING_SUCCESS_MESSAGE_TITLE") - }); - break; - //Ops Role - case 'distribution/PROD/activate': - this.initChangeLifecycleStateButtons(); - this.Notification.success({ - message: this.$filter('translate')("DISTRIBUTE_SUCCESS_MESSAGE_TEXT"), - title: this.$filter('translate')("DISTRIBUTE_SUCCESS_MESSAGE_TITLE") - }); - break; - //Governor Role - case 'distribution-state/reject': - this.initChangeLifecycleStateButtons(); - this.Notification.success({ - message: this.$filter('translate')("REJECT_SUCCESS_MESSAGE_TEXT"), - title: this.$filter('translate')("REJECT_SUCCESS_MESSAGE_TITLE") - }); - break; - case 'distribution-state/approve': - this.initChangeLifecycleStateButtons(); - this.$state.go('catalog'); - this.Notification.success({ - message: this.$filter('translate')("APPROVE_SUCCESS_MESSAGE_TEXT"), - title: this.$filter('translate')("APPROVE_SUCCESS_MESSAGE_TITLE") - }); - break; - //DE203504 Bug Fix End - - default : - defaultActionAfterChangeLifecycleState(); - - } - if (data.url != 'lifecycleState/CHECKOUT') { - this.$scope.isLoading = false; - } - }; - //this.$scope.isLoading = true; - this.ChangeLifecycleStateHandler.changeLifecycleState(this.$scope.component, data, this.$scope, onSuccess); - }; - - this.$scope.enabledTabs = (): void => { - this.$scope.leftBarTabs.menuItems.forEach((item: Utils.MenuItem) => { - item.isDisabled = false; - }); - }; - - this.$scope.isViewMode = (): boolean => { - return this.$scope.mode === Utils.Constants.WorkspaceMode.VIEW; - }; - - this.$scope.isDesigner = (): boolean => { - return this.role == Utils.Constants.Role.DESIGNER; - }; - - this.$scope.isDisableMode = (): boolean => { - return this.$scope.mode === Utils.Constants.WorkspaceMode.VIEW && this.$scope.component.lifecycleState === Utils.Constants.ComponentState.NOT_CERTIFIED_CHECKIN; - }; - - this.$scope.showFullIcons = (): boolean => { - //we show revert and save icons only in general\icon view - return this.$state.current.name === Utils.Constants.States.WORKSPACE_GENERAL || - this.$state.current.name === Utils.Constants.States.WORKSPACE_ICONS; - }; - - this.$scope.isCreateMode = (): boolean => { - return this.$scope.mode === Utils.Constants.WorkspaceMode.CREATE; - }; - - this.$scope.isEditMode = (): boolean => { - return this.$scope.mode === Utils.Constants.WorkspaceMode.EDIT; - }; - - this.$scope.goToBreadcrumbHome = (): void => { - let bcHome: Sdc.Utils.MenuItemGroup = this.$scope.breadcrumbsModel[0]; - this.$state.go(bcHome.menuItems[bcHome.selectedIndex].state); - }; - - this.$scope.showLifecycleIcon = (): boolean => { - return this.role == Utils.Constants.Role.DESIGNER || - this.role == Utils.Constants.Role.PRODUCT_MANAGER; - }; - - this.$scope.getStatus = (): string => { - if (this.$scope.isCreateMode()) { - return 'IN DESIGN'; - } - - return this.$scope.component.getStatus(this.sdcMenu); - }; - - this.initMenuItems(); - - this.$scope.showChangeStateButton = (): boolean => { - let result: boolean = true; - if (!this.$scope.component.isLatestVersion() && Utils.Constants.Role.OPS != this.role && Utils.Constants.Role.GOVERNOR != this.role) { - result = false; - } - if (this.role === Utils.Constants.Role.PRODUCT_MANAGER && !this.$scope.component.isProduct()) { - result = false; - } - if ((this.role === Utils.Constants.Role.DESIGNER || this.role === Utils.Constants.Role.TESTER) - && this.$scope.component.isProduct()) { - result = false; - } - if (Utils.Constants.ComponentState.NOT_CERTIFIED_CHECKOUT === this.$scope.component.lifecycleState && this.$scope.isViewMode()) { - result = false; - } - if (Utils.Constants.ComponentState.CERTIFIED != this.$scope.component.lifecycleState && - (Utils.Constants.Role.OPS == this.role || Utils.Constants.Role.GOVERNOR == this.role)) { - result = false; - } - return result; - }; - - this.$scope.updateSelectedMenuItem = (): void => { - let selectedItem: Sdc.Utils.MenuItem = _.find(this.$scope.leftBarTabs.menuItems, (item: Sdc.Utils.MenuItem) => { - return item.state === this.$state.current.name; - }); - this.$scope.leftBarTabs.selectedIndex = selectedItem ? this.$scope.leftBarTabs.menuItems.indexOf(selectedItem) : 0; - }; - - this.$scope.$watch('$state.current.name', (newVal: string): void => { - if (newVal) { - this.$scope.isComposition = (newVal.indexOf(Utils.Constants.States.WORKSPACE_COMPOSITION) > -1); - this.$scope.isDeployment = (newVal.indexOf(Utils.Constants.States.WORKSPACE_DEPLOYMENT) > -1); - } - }); - }; - - private initAfterScope = (): void => { - // In case user select csar from the onboarding modal, need to disable checkout and submit for testing. - if (this.$state.params['disableButtons'] === true) { - this.$scope.uploadFileChangedInGeneralTab(); - } - }; - - private initVersionObject = (): void => { - this.$scope.versionsList = (this.$scope.component.getAllVersionsAsSortedArray()).reverse(); - this.$scope.changeVersion = {selectedVersion: _.find(this.$scope.versionsList, {versionId: this.$scope.component.uniqueId})}; - }; - - private getNewComponentBreadcrumbItem = (): Utils.MenuItem => { - let text = ""; - if (this.$scope.component.isResource() && (this.$scope.component).isCsarComponent()) { - text = this.$scope.component.getComponentSubType() + ': ' + this.$scope.component.name; - } else { - text = 'Create new ' + this.$state.params['type']; - } - return new Utils.MenuItem(text, null, Utils.Constants.States.WORKSPACE_GENERAL, 'goToState', [this.$state.params]); - }; - - private updateMenuItemByRole = (menuItems: Array, role: string) => { - let tempMenuItems: Array = new Array(); - menuItems.forEach((item: Utils.MenuItem) => { - //remove item if role is disabled - if (!(item.disabledRoles && item.disabledRoles.indexOf(role) > -1)) { - tempMenuItems.push(item); - } - }); - return tempMenuItems; - }; - - private initBreadcrumbs = () => { - this.components = this.cacheService.get('breadcrumbsComponents'); - let breadcrumbsComponentsLvl = this.MenuHandler.generateBreadcrumbsModelFromComponents(this.components, this.$scope.component); - - if (this.$scope.isCreateMode()) { - let createItem = this.getNewComponentBreadcrumbItem(); - if (!breadcrumbsComponentsLvl.menuItems) { - breadcrumbsComponentsLvl.menuItems = []; - } - breadcrumbsComponentsLvl.menuItems.unshift(createItem); - breadcrumbsComponentsLvl.selectedIndex = 0; - } - - this.$scope.breadcrumbsModel = [breadcrumbsComponentsLvl, this.$scope.leftBarTabs]; - }; - - private initMenuItems() { - - let inCreateMode = this.$scope.isCreateMode(); - this.$scope.leftBarTabs = new Utils.MenuItemGroup(); - this.$scope.leftBarTabs.menuItems = this.updateMenuItemByRole(this.sdcMenu.component_workspace_menu_option[this.$scope.component.getComponentSubType()], this.role); - - this.$scope.leftBarTabs.menuItems.forEach((item: Utils.MenuItem) => { - item.params = [item.state]; - item.callback = this.$scope.onMenuItemPressed; - item.isDisabled = (inCreateMode && Utils.Constants.States.WORKSPACE_GENERAL != item.state) || - (Utils.Constants.States.WORKSPACE_DEPLOYMENT === item.state && this.$scope.component.groups.length === 0 && this.$scope.component.isResource()); - }); - - if (this.cacheService.get('breadcrumbsComponents')) { - this.initBreadcrumbs(); - } else { - let onSuccess = (components: Array) => { - this.cacheService.set('breadcrumbsComponents', components); - this.initBreadcrumbs(); - }; - this.EntityService.getCatalog().then(onSuccess); //getAllComponents() doesnt return components from catalog - } - } - - private disableMenuItems() { - this.$scope.leftBarTabs.menuItems.forEach((item: Utils.MenuItem) => { - item.params = [item.state]; - item.callback = this.$scope.onMenuItemPressed; - item.isDisabled = (Utils.Constants.States.WORKSPACE_GENERAL != item.state); - }); - } - - private enableMenuItems() { - this.$scope.leftBarTabs.menuItems.forEach((item: Utils.MenuItem) => { - item.params = [item.state]; - item.callback = this.$scope.onMenuItemPressed; - item.isDisabled = false; - }); - } - - } -} - - diff --git a/catalog-ui/app/scripts/view-models/workspace/workspace-view.html b/catalog-ui/app/scripts/view-models/workspace/workspace-view.html deleted file mode 100644 index 118f7474be..0000000000 --- a/catalog-ui/app/scripts/view-models/workspace/workspace-view.html +++ /dev/null @@ -1,86 +0,0 @@ -
      - - - - - -
      - -
      -
      - -
      -
      - -
      - - - - -
      -
      - - - - -
      - -
      -
      - {{getStatus()}} -
      - - -
      - -
      - -
      - - Switch to the latest version - - - - - - - - Delete - - Revert - - - - Close - -
      -
      - -
      Created: {{component.creationDate | date:'MM/dd/yyyy'}}, {{component.creatorFullName}} | Modifed: {{component.lastUpdateDate | date:'MM/dd/yyyy'}} | UUID: {{component.uuid}} Invariant UUID: {{component.invariantUUID}}
      - -
      -
      -
      - -
      diff --git a/catalog-ui/app/scripts/view-models/workspace/workspace.less b/catalog-ui/app/scripts/view-models/workspace/workspace.less deleted file mode 100644 index d8bff1b634..0000000000 --- a/catalog-ui/app/scripts/view-models/workspace/workspace.less +++ /dev/null @@ -1,144 +0,0 @@ -.sdc-workspace-container { - .bg_p; - - .add-btn { - .f-color.a; - .f-type._12_m; - .hand; - float: right; - margin-bottom: 15px; - - &:before { - .sprite-new; - .plus-icon; - margin-right: 5px; - content: ""; - - } - &:hover { - .f-color.b; - &:before { - .sprite-new; - .plus-icon-hover; - } - } - - } - .w-sdc-left-sidebar { - padding: 3px 3px 0px 0px; - background-color: @main_color_p; - box-shadow: 7px -3px 6px -8px @main_color_n; - z-index: 2; - } - - .sdc-asset-creation-info { - .n_12_r; - float: right; - margin: 8px 20px 0 0; - } - - .w-sdc-main-right-container { - - padding: 0px 0px 0px 0px; - background-color: @main_color_p; - z-index: 1; - - .sdc-workspace-top-bar { - height: @action_nav_height; - padding: 12px 10px 0px 50px; - border-bottom: 1px solid @main_color_o; - display: flex; - justify-content: space-between; - - .version-container { - - } - - .progress-container { - flex-grow: 4; - z-index: 10000000; - - .general-view-top-progress { - width: 30%; - margin: 0 auto; - } - } - - .not-latest { - position: absolute; - left: 24px; - top: 20px; - .sprite-new; - .asdc-warning; - } - - .sdc-workspace-top-bar-buttons { - - > button, > span:not(.delimiter) { - margin-right: 10px; - vertical-align: middle; - .hand; - - &.sprite-new { - text-indent: 100%; - } - &.disabled, &:hover.disabled { - pointer-events: none; - } - } - .delimiter { - height: 32px; - width: 1px; - background-color: #959595; - display: inline-block; - vertical-align: middle; - margin-right: 20px; - } - - } - - .lifecycle-state { - padding: 7px 0 0 10px; - margin: 2px 0 7px 10px; - border-left: 1px solid @main_color_o; - line-height: 15px; - font-family: @font-omnes-medium; - color: @main_color_m; - - .lifecycle-state-icon { - .sprite-new; - } - .lifecycle-state-text { - - font-weight: bold; - text-transform: uppercase; - vertical-align: top; - padding: 3px; - } - } - - .version-selector { - // float:left; - background-color: transparent; - border: none; - margin-top: 6px; - } - } - .w-sdc-main-container-body-content { - height:100%; - - text-align: center; - align-items: center; - padding: 40px 14% 20px 14%; - &.third-party { - text-align: left; - padding: 0; - position: absolute; - top: @action_nav_height; - left: 0; - right: 0; - bottom: 0; - } - } - } -} -- cgit 1.2.3-korg