diff options
author | st782s <statta@research.att.com> | 2017-05-04 07:48:42 -0400 |
---|---|---|
committer | st782s <statta@research.att.com> | 2017-05-04 12:28:17 -0400 |
commit | b54df0ddd0c6a0372327c5aa3668e5a6458fcd64 (patch) | |
tree | e69cfa9b314a801bd187cf0145d1d4306436229c /ecomp-portal-FE/client/app/views/widgets | |
parent | 39d1e62c84041831bfc52cca73b5ed5efaf57d27 (diff) |
[PORTAL-7] Rebase
This rebasing includes common libraries and common overlays projects
abstraction of components
Change-Id: I9a24a338665c7cd058978e8636bc412d9e2fdce8
Signed-off-by: st782s <statta@research.att.com>
Diffstat (limited to 'ecomp-portal-FE/client/app/views/widgets')
8 files changed, 0 insertions, 754 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; - } - } - - } - - } - -} diff --git a/ecomp-portal-FE/client/app/views/widgets/widgets.controller.js b/ecomp-portal-FE/client/app/views/widgets/widgets.controller.js deleted file mode 100644 index c24f49cd..00000000 --- a/ecomp-portal-FE/client/app/views/widgets/widgets.controller.js +++ /dev/null @@ -1,151 +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 WidgetsCtrl { - constructor($log, applicationsService, widgetsService, ngDialog, confirmBoxService, - userProfileService, $cookies, $scope) { - $log.info('WidgetsCtrl::init: Starting Up'); - $scope.infoMessage = true; - - let populateAvailableApps = widgets => { - let allPortalsFilterObject = {index: 0, title: 'All applications', value: ''}; - this.availableApps = [allPortalsFilterObject]; - this.filterByApp = this.availableApps[0]; - applicationsService.getAppsForSuperAdminAndAccountAdmin().then(myApps => { - var reSortedApp = myApps.sort(getSortOrder("name")); - var realAppIndex = 1; - for (let i = 1; i <= reSortedApp.length; i++) { - if (!reSortedApp[i-1].restrictedApp) { - $log.debug('WidgetsCtrl::populateAvailableApps: pushing {index: ', realAppIndex, 'title: ', reSortedApp[i - 1].name, - 'value: ', reSortedApp[i - 1].name, '}'); - this.availableApps.push({ - index: realAppIndex, - title: reSortedApp[i - 1].name, - value: reSortedApp[i - 1].name - }) - realAppIndex = realAppIndex + 1; - } - } - }).catch(err => { - $log.error(err); - }); - }; - - let getOnboardingWidgets = () => { - this.isLoadingTable = true; - widgetsService.getManagedWidgets().then(res => { - var reSortedWidget = res.sort(getSortOrder("name")); - this.widgetsList = reSortedWidget; - populateAvailableApps(reSortedWidget); - }).catch(err => { - $log.error('WidgetsCtrl::getOnboardingWidgets error: ' + err); - }).finally(()=> { - this.isLoadingTable = false; - }); - }; - - let getSortOrder = (prop) => { - return function(a, b) { - if (a[prop].toLowerCase() > b[prop].toLowerCase()) { - return 1; - } else if (a[prop].toLowerCase() < b[prop].toLowerCase()) { - return -1; - } - return 0; - } - } - - $scope.hideMe = function () { - $scope.infoMessage = false; - } - - let init = () => { - this.isLoadingTable = false; - getOnboardingWidgets(); - - - this.searchString = ''; - - this.widgetsTableHeaders = [ - {name: 'Widget Name', value: 'name', isSortable: false}, - {name: 'Application', value: 'appName', isSortable: true}, - {name: 'Width', value: 'width', isSortable: false}, - {name: 'Height', value: 'height', isSortable: false} - ]; - this.widgetsList = []; - }; - - this.filterByDropdownValue = item => { - if(this.filterByApp.value === ''){ - return true; - } - return item.appName === this.filterByApp.value; - }; - - this.openWidgetDetailsModal = (selectedWidget) => { - let data = null; - if(selectedWidget){ - if(!selectedWidget.id){ - $log.error('Widget id not found'); - return; - } - data = { - widget: selectedWidget - } - } - ngDialog.open({ - templateUrl: 'app/views/widgets/widget-details-dialog/widget-details.modal.html', - controller: 'WidgetDetailsModalCtrl', - controllerAs: 'widgetDetails', - data: data - }).closePromise.then(needUpdate => { - if(needUpdate.value === true){ - $log.debug('WidgetsCtrl::openWidgetDetailsModal: updating table data...'); - getOnboardingWidgets(); - } - }); - }; - - this.deleteWidget = widget => { - confirmBoxService.deleteItem(widget.name).then(isConfirmed => { - if(isConfirmed){ - if(!widget || !widget.id){ - $log.error('WidgetsCtrl::deleteWidget: No widget or ID... cannot delete'); - return; - } - widgetsService.deleteWidget(widget.id).then(() => { - this.widgetsList.splice(this.widgetsList.indexOf(widget), 1); - }).catch(err => { - $log.error('WidgetsCtrl::deleteWidget error:',err); - }); - } - }).catch(err => { - $log.error('WidgetsCtrl::deleteWidget error:',err); - }); - }; - - init(); - } - } - WidgetsCtrl.$inject = ['$log', 'applicationsService', 'widgetsService', 'ngDialog', 'confirmBoxService', - 'userProfileService','$cookies', '$scope']; - angular.module('ecompApp').controller('WidgetsCtrl', WidgetsCtrl); -})(); diff --git a/ecomp-portal-FE/client/app/views/widgets/widgets.controller.spec.js b/ecomp-portal-FE/client/app/views/widgets/widgets.controller.spec.js deleted file mode 100644 index 34042c14..00000000 --- a/ecomp-portal-FE/client/app/views/widgets/widgets.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/widgets.less b/ecomp-portal-FE/client/app/views/widgets/widgets.less deleted file mode 100644 index 4b83b66f..00000000 --- a/ecomp-portal-FE/client/app/views/widgets/widgets.less +++ /dev/null @@ -1,60 +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. - * ================================================================================ - */ - .widgets-page-main{ - .bg_w; - position: @page-main-position; - top: @page-main-top; - left: @page-main-left; - right: @page-main-right; - bottom: @page-main-bottom; - padding-top: @padding-top; - overflow-y: @page-main-overflow-y; - padding-left: @padding-left-side; - - .widgets-table{ - width: @table-width; - margin: @table-margin; - - .table-control{ - - } - - .delete-widget{ - .ico_trash_default; - } - } - .error-text { - width: 1170px; - margin: auto; - padding: 20px; - left: 20px; - font-weight: bold; - font-size: 16px; - text-align: left; - color: @err; - background-color: @u; - - .error-help { - color: @o; - font-weight: normal; - } - } - -}
\ No newline at end of file diff --git a/ecomp-portal-FE/client/app/views/widgets/widgets.tpl.html b/ecomp-portal-FE/client/app/views/widgets/widgets.tpl.html deleted file mode 100644 index d255174f..00000000 --- a/ecomp-portal-FE/client/app/views/widgets/widgets.tpl.html +++ /dev/null @@ -1,77 +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="w-ecomp-main"> - <div class="w-ecomp-main-container"> - <div class="widgets-page-main" id="contentId"> - <div id="widget-onboarding-title" class="w-ecomp-main-view-title">Widget Onboarding</div> - <div class="widgets-table"> - <div class="table-control"> - <div class="c-ecomp-att-abs-select default"> - <div class="form-field" id="widegets-available-apps" - att-select="widgets.availableApps" - ng-model="widgets.filterByApp"></div> - </div> - <input class="table-search" type="text" id="widget-onboarding-table-search" - placeholder="Search in entire table" - ng-model="widgets.searchString"/> - - <div id="widget-onboarding-button-add" class="add-button" ng-click="widgets.openWidgetDetailsModal()">Add Widget</div> - </div> - <div class="error-text" ng-show="infoMessage"> - <span class="error-help">Only widgets for active applications are displayed.</span> - <button type="button" class="close" ng-click="hideMe()">×</button> - </div> - - <span class="ecomp-spinner" ng-show="widgets.isLoadingTable"></span> - <div class="c-ecomp-att-abs-table default" ng-hide="widgets.isLoadingTable"> - <table att-table - table-data="widgets.widgetsList" - search-string="widgets.searchString" - view-per-page="widgets.viewPerPageIgnored" - current-page="widgets.currentPageIgnored" - total-page="widgets.totalPageIgnored"> - <thead att-table-row type="header"> - <tr> - <th id="widget-onboarding-th-header-name" ng-repeat="header in widgets.widgetsTableHeaders" att-table-header key="{{header.value}}" sortable="{{header.isSortable}}">{{header.name}}</th> - <th id="widget-onboarding-th-header-url" att-table-header key="url" sortable="{{false}}">URL</th> - <th id="widget-onboarding-th-header-delete" att-table-header sortable="{{false}}">Delete</th> - </tr> - </thead> - <tbody att-table-row type="body" - class="table-body" - row-repeat="rowData in widgets.widgetsList | filter:widgets.filterByDropdownValue"> - <tr > - <td att-table-body ng-repeat="header in widgets.widgetsTableHeaders" ng-click="widgets.openWidgetDetailsModal(rowData)"> - <div id="widget-onboarding-div-{{rowData[header.value].split(' ').join('-')}}" ng-bind="rowData[header.value]"></div> - </td> - <td att-table-body ng-click="widgets.openWidgetDetailsModal(rowData)"> - <div id="widget-onboarding-div-url-{{rowData[header.value].split(' ').join('-')}}" ng-bind="rowData.url | trusted"></div> - </td> - <td att-table-body> - <div id="widget-onboarding-div-delete-widget-{{$index}}" class="delete-widget" ng-click="widgets.deleteWidget(rowData)"><span class="ion-trash-b"></span></div> - </td> - </tr> - </tbody> - </table> - </div> - </div> - </div> - </div> -</div> |