summaryrefslogtreecommitdiffstats
path: root/ecomp-portal-FE/client/app/views/widgets/widget-details-dialog
diff options
context:
space:
mode:
Diffstat (limited to 'ecomp-portal-FE/client/app/views/widgets/widget-details-dialog')
-rw-r--r--ecomp-portal-FE/client/app/views/widgets/widget-details-dialog/widget-details.controller.js202
-rw-r--r--ecomp-portal-FE/client/app/views/widgets/widget-details-dialog/widget-details.controller.spec.js19
-rw-r--r--ecomp-portal-FE/client/app/views/widgets/widget-details-dialog/widget-details.modal.html132
-rw-r--r--ecomp-portal-FE/client/app/views/widgets/widget-details-dialog/widget-details.modal.less94
4 files changed, 0 insertions, 447 deletions
diff --git a/ecomp-portal-FE/client/app/views/widgets/widget-details-dialog/widget-details.controller.js b/ecomp-portal-FE/client/app/views/widgets/widget-details-dialog/widget-details.controller.js
deleted file mode 100644
index f50e4683..00000000
--- a/ecomp-portal-FE/client/app/views/widgets/widget-details-dialog/widget-details.controller.js
+++ /dev/null
@@ -1,202 +0,0 @@
-/*-
- * ================================================================================
- * eCOMP Portal
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ================================================================================
- */
-
-'use strict';
-(function () {
- class WidgetDetailsModalCtrl {
- constructor($scope, $log, applicationsService, widgetsService, errorMessageByCode, ECOMP_URL_REGEX, $window,userProfileService,$cookies) {
-
- let newWidgetModel = {
- name: null,
- appId: null,
- appName: null,
- width: 360,
- height: 300,
- url: null
- };
-
- let getAvailableApps = () => {
- applicationsService.getAppsForSuperAdminAndAccountAdmin().then(apps => {
- this.availableApps=[];
- for(var i=0;i<apps.length;i++) {
- if (!apps[i].restrictedApp) {
- $log.debug('WidgetDetailsModalCtrl::getAvailableApps: pushing {id: ', apps[i].id, 'name: ', apps[i].name,
- 'restrictedApp: ', apps[i].restrictedApp, '}');
- this.availableApps.push({
- id: apps[i].id,
- name: apps[i].name,
- restrictedApp: apps[i].restrictedApp
- });
- }
- }
-
- if (this.isEditMode) {
- this.selectedApp = _.find(apps, {id: this.widget.appId});
- if(!this.selectedApp){
- $scope.widgetForm.app.$dirty = true;
- }
- } else {
- this.selectedApp = null;
- }
- this.updateSelectedApp();
- }).catch(err => {
- $log.error(err);
- });
- };
- /**/
-
- let init = () => {
- $log.info('AppDetailsModalCtrl::init');
- this.isSaving = false;
- if ($scope.ngDialogData && $scope.ngDialogData.widget) {
- $log.debug('WidgetDetailsModalCtrl::getAvailableApps: Edit widget mode for', $scope.ngDialogData.widget);
- this.isEditMode = true;
- this.widget = _.clone($scope.ngDialogData.widget);
- } else {
- $log.debug('WidgetDetailsModalCtrl::init: New app mode');
- this.isEditMode = false;
- this.widget = _.clone(newWidgetModel);
- }
- getAvailableApps();
- };
-
- this.ECOMP_URL_REGEX = ECOMP_URL_REGEX;
-
- this.conflictMessages = {};
- this.scrollApi = {};
- let handleConflictErrors = err => {
- if(!err.data){
- return;
- }
- if(!err.data.length){
- err.data = [err.data]
- }
- _.forEach(err.data, item => {
- _.forEach(item.fields, field => {
- this.conflictMessages[field.name] = errorMessageByCode[item.errorCode];
- $scope.widgetForm[field.name].$setValidity('conflict', false);
- watchOnce[field.name]();
- });
- });
- this.scrollApi.scrollTop();
- };
-
- let resetConflict = fieldName => {
- delete this.conflictMessages[fieldName];
- if($scope.widgetForm[fieldName]){
- $scope.widgetForm[fieldName].$setValidity('conflict', true);
- }
- };
-
- let watchOnce = {
- name: () => {
- let unregisterName = $scope.$watchGroup(['widgetDetails.selectedApp','widgetDetails.widget.name'], (newVal, oldVal) => {
- if(newVal.toLowerCase() !== oldVal.toLowerCase()){
- resetConflict('name');
- unregisterName();
- }
- });
- },
- url: () => {
- let unregisterUrl = $scope.$watch('widgetDetails.widget.url', (newVal, oldVal) => {
- if(newVal.toLowerCase() !== oldVal.toLowerCase()) {
- resetConflict('url');
- unregisterUrl();
- }
- });
- }
- };
-
- this.updateSelectedApp = () => {
- if (!this.selectedApp) {
- return;
- }
- this.widget.appId = this.selectedApp.id;
- this.widget.appName = this.selectedApp.name;
- };
-
- let emptyCookies = () => {
- userProfileService.getUserProfile()
- .then(profile=> {
- $log.info('AppDetailsModalCtrl::emptyCookies profile: ', profile);
- $scope.userId = profile.orgUserId;
- $log.info('user has the following userId: ' + profile.userId);
- if ($cookies.getObject($scope.userId + '_widget') != undefined && $cookies.getObject($scope.userId + '_widget') != null) {
- $cookies.remove($scope.userId + '_widget');
- }
- });
- };
-
- this.saveChanges = () => {
- if($scope.widgetForm.$invalid){
- return;
- }
- this.isSaving = true;
- if(this.isEditMode){
- widgetsService.updateWidget(this.widget.id, this.widget)
- .then(() => {
- $log.debug('WidgetDetailsModalCtrl::saveChanges: Widget update succeeded!');
- $scope.closeThisDialog(true);
- emptyCookies();
- }).catch(err => {
- if(err.status === 409){
- handleConflictErrors(err);
- }
- $log.error(err);
- }).finally(()=>{
- this.isSaving = false;
- var objOffsetVersion = objAgent.indexOf("MSIE");
- if (objOffsetVersion != -1) {
- $log.debug('WidgetDetailsModalCtrl::saveChanges: Browser is IE, forcing Refresh');
- $window.location.reload();
- }
- });
- }else{
- widgetsService.createWidget(this.widget)
- .then(() => {
- $log.debug('WidgetDetailsModalCtrl::createWidget: Widget creation succeeded!');
- $scope.closeThisDialog(true);
- emptyCookies();
- }).catch(err => {
- if(err.status === 409){
- handleConflictErrors('WidgetDetailsModalCtrl::createWidget error: ',err);
- }
- $log.error('WidgetDetailsModalCtrl::createWidget error: ',err);
- }).finally(()=>{
- this.isSaving = false;
- var objOffsetVersion = objAgent.indexOf("MSIE");
- if (objOffsetVersion != -1) {
- $log.debug('WidgetDetailsModalCtrl::createWidget: Browser is IE, forcing Refresh');
- $window.location.reload();
- }
- });
- }
- };
-
- init();
-
- $scope.$on('$stateChangeStart', e => {
- e.preventDefault();
- });
- }
- }
- WidgetDetailsModalCtrl.$inject = ['$scope', '$log', 'applicationsService', 'widgetsService', 'errorMessageByCode', 'ECOMP_URL_REGEX', '$window','userProfileService','$cookies'];
- angular.module('ecompApp').controller('WidgetDetailsModalCtrl', WidgetDetailsModalCtrl);
-})();
diff --git a/ecomp-portal-FE/client/app/views/widgets/widget-details-dialog/widget-details.controller.spec.js b/ecomp-portal-FE/client/app/views/widgets/widget-details-dialog/widget-details.controller.spec.js
deleted file mode 100644
index 34042c14..00000000
--- a/ecomp-portal-FE/client/app/views/widgets/widget-details-dialog/widget-details.controller.spec.js
+++ /dev/null
@@ -1,19 +0,0 @@
-/*-
- * ================================================================================
- * eCOMP Portal
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ================================================================================
- */
diff --git a/ecomp-portal-FE/client/app/views/widgets/widget-details-dialog/widget-details.modal.html b/ecomp-portal-FE/client/app/views/widgets/widget-details-dialog/widget-details.modal.html
deleted file mode 100644
index 87be6f15..00000000
--- a/ecomp-portal-FE/client/app/views/widgets/widget-details-dialog/widget-details.modal.html
+++ /dev/null
@@ -1,132 +0,0 @@
-<!--
- ================================================================================
- eCOMP Portal
- ================================================================================
- Copyright (C) 2017 AT&T Intellectual Property
- ================================================================================
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- ================================================================================
- -->
-<div class="widget-details-modal">
- <div id="'widgets-details-title" class="title">Widget Details</div>
- <div class="widget-properties-main" scroll-top="widgetDetails.scrollApi">
- <form id="widgets-details-form" name="widgetForm" novalidate autocomplete="off">
- <script type="text/javascript">
- document.getElementById("appForm").reset();
- </script>
- <div class="item required">
- <div class="item-label">Application Name</div>
- <div class="custom-select-wrap">
- <select id="widgets-details-select-app"
- class="select-field"
- ng-model="widgetDetails.selectedApp"
- ng-change="widgetDetails.updateSelectedApp();"
- ng-options="app.name for app in widgetDetails.availableApps track by app.id"
- ng-disabled="!widgetDetails.availableApps || !widgetDetails.availableApps.length"
- name="app"
- required>
- <option id="widgets-details-select-app-disabled" value="" disabled style="display: none;">Select application</option>
- </select>
- </div>
- <div class="error-container" ng-show="widgetForm.app.$dirty">
- <div ng-messages="widgetForm.app.$error" class="error-container">
- <small id="widgets-details-select-app-error-required" class="err-message" ng-message="required">Application is required</small>
- </div>
- </div>
- </div>
- <div class="item required">
- <div class="item-label">Widget Name</div>
- <input id="widgets-details-input-name"
- class="input-field"
- type="text"
- ng-model="widgetDetails.widget.name"
- name="name"
- maxlength="100"
- ng-pattern="/^[a-zA-Z0-9_\s\&]*$/"
- required/>
- <div class="error-container" ng-show="widgetDetails.conflictMessages.name">
- <small id="widgets-details-input-name-conflict" class="err-message" ng-bind="widgetDetails.conflictMessages.name"></small>
- </div>
- <div class="error-container" ng-show="widgetForm.name.$dirty || widgetDetails.isEditMode">
- <div ng-messages="widgetForm.name.$error" class="error-container">
- <small id="widgets-details-input-name-required" class="err-message" ng-message="required">Widget Name is required</small>
- <small id="widgets-details-input-name-pattern" class="err-message" ng-message="pattern">Widget Name must be letters, numbers, or underscore</small>
- </div>
- </div>
- </div>
- <div class="item required">
- <div class="left-item">
- <div class="item-label">Width</div>
- <input id="widgets-details-input-width"
- class="input-field"
- type="number"
- ng-model="widgetDetails.widget.width"
- name="width"
- min="300"
- required
- disabled/>
- <div class="error-container" ng-show="widgetForm.width.$dirty || widgetDetails.isEditMode">
- <div ng-messages="widgetForm.width.$error" class="error-container">
- <small id="widgets-details-input-width-required" class="err-message" ng-message="required">Widget width is required</small>
- <small id="widgets-details-input-min-width" class="err-message" ng-message="min">Minimum width is 300</small>
- </div>
- </div>
- </div>
- <div class="right-item required">
- <div class="item-label">Height</div>
- <input id="widgets-details-input-height"
- class="input-field"
- type="number"
- ng-model="widgetDetails.widget.height"
- name="height"
- min="200"
- required
- disabled/>
- <div class="error-container" ng-show="widgetForm.height.$dirty || widgetDetails.isEditMode">
- <div ng-messages="widgetForm.height.$error" class="error-container">
- <small id="widgets-details-input-height-required" class="err-message" ng-message="required">Widget height is required</small>
- <small id="widgets-details-input-height-minimum" class="err-message" ng-message="min">Minimum height is 200</small>
- </div>
- </div>
- </div>
- </div>
- <div class="item required">
- <div class="item-label">URL</div>
- <input id="widgets-details-input-URL"
- class="input-field"
- type="url"
- ng-model="widgetDetails.widget.url"
- name="url"
- maxlength="256"
- ng-pattern="widgetDetails.ECOMP_URL_REGEX"
- required/>
- <div class="error-container" ng-show="widgetDetails.conflictMessages.url">
- <small id="widgets-details-input-URL-conflict" class="err-message" ng-bind="widgetDetails.conflictMessages.url"></small>
- </div>
- <div class="error-container" ng-show="widgetForm.url.$dirty || widgetDetails.isEditMode">
- <div ng-messages="widgetForm.url.$error" class="error-container">
- <small id="widgets-details-input-URL-required" class="err-message" ng-message="required">Widget URL is required</small>
- <small id="widgets-details-input-URL-pattern" class="err-message" ng-message="pattern">Incorrect URL pattern</small>
- </div>
- </div>
-
- </div>
- </form>
- </div>
- <div class="dialog-control">
- <span class="ecomp-save-spinner" ng-show="widgetDetails.isSaving"></span>
- <div id="widgets-details-next-button" class="next-button"
- ng-class="{disabled: widgetForm.$invalid}" ng-click="widgetDetails.saveChanges()">Save</div>
- <div id="widgets-details-cancel-button" class="cancel-button" ng-click="closeThisDialog()">Cancel</div>
- </div>
-</div>
diff --git a/ecomp-portal-FE/client/app/views/widgets/widget-details-dialog/widget-details.modal.less b/ecomp-portal-FE/client/app/views/widgets/widget-details-dialog/widget-details.modal.less
deleted file mode 100644
index 6e031b1d..00000000
--- a/ecomp-portal-FE/client/app/views/widgets/widget-details-dialog/widget-details.modal.less
+++ /dev/null
@@ -1,94 +0,0 @@
-/*-
- * ================================================================================
- * eCOMP Portal
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ================================================================================
- */
- .widget-details-modal {
- height: 430px;
-
- .title {
- .n18r;
- border-bottom: @a 3px solid;
-
- }
-
- .widget-properties-main {
- padding: 16px;
- height: 306px;
- overflow-y: auto;
-
- .item{
- position: relative;
- margin-bottom: 18px;
-
- .input-field{
- .custom-input-field;
- width: 100%;
- &.url{
- width: 78%;
- display: inline-block;
- }
- }
-
- .select-field {
- .custom-select-field;
- }
-
- .item-label{
- .o14r;
- }
-
- .right-item{
- position: relative;
- display: inline-block;
- width: 48%;
- float: right;
- }
- .left-item{
- display: inline-block;
- width: 48%;
- }
-
- .url-validation-button{
- .btn-blue;
- width: 20%;
- display: inline-block;
- float: right;
- }
-
- .error-container{
- position: absolute;
- width: 280px;
- display: block;
- height: 12px;
- line-height: 12px;
-
- .err-message{
- color: red;
- font-size: 9px;
- }
- .valid-message{
- color: green;
- font-size: 9px;
- }
- }
-
- }
-
- }
-
-}