diff options
author | shentao <shentao@chinamobile.com> | 2017-09-18 20:41:28 +0800 |
---|---|---|
committer | shentao <shentao@chinamobile.com> | 2017-09-18 20:41:44 +0800 |
commit | 290e9b481168cbb753758ffbe95765e77233ebd6 (patch) | |
tree | 7cd40a54e1fbe6e51009e42bc1ebadcc1add9032 /usecaseui-monitor/src/main/webapp/app/uui/fusion/scripts/controller | |
parent | 20b443f877ad93ef52de6fe8bc1af48546dc8c86 (diff) |
Upload source code of monitor pages
Change-Id: I7fdb2239cebe69f990feafecb6460296aca04ead
Issue-Id: USECASEUI-33
Signed-off-by: shentao <shentao@chinamobile.com>
Diffstat (limited to 'usecaseui-monitor/src/main/webapp/app/uui/fusion/scripts/controller')
4 files changed, 364 insertions, 0 deletions
diff --git a/usecaseui-monitor/src/main/webapp/app/uui/fusion/scripts/controller/alarmController.js b/usecaseui-monitor/src/main/webapp/app/uui/fusion/scripts/controller/alarmController.js new file mode 100644 index 00000000..6ca18ac6 --- /dev/null +++ b/usecaseui-monitor/src/main/webapp/app/uui/fusion/scripts/controller/alarmController.js @@ -0,0 +1,233 @@ +app.controller('perCtrl', function ($scope) { + +}); + +app.controller('alarmGridCtrl', ['$scope','$log', '$http', '$timeout', '$interval', 'uiGridConstants', 'uiGridGroupingConstants', + function ($scope,$log, $http, $timeout, $interval) { + $scope.selectedRows = new Array(); + var mydefalutData = [ + {name: "shebei1", Id: "22", State: '1', Cpu: "40%", Memory: "60,0", Disk: "60,000", Network: "60,000"}, + {name: "shebei1", Id: "226", State: '2', Cpu: "40%", Memory: "60", Disk: "60,", Network: "60,000"}, + { + name: "shebei1", + Id: "225", + State: '2', + Cpu: "40%", + Memory: "60,000", + Disk: "60,000", + Network: "60,000" + }, + {name: "shebei1", Id: "224", State: '3', Cpu: "40%", Memory: "600", Disk: "60,000", Network: "60,000"}, + + { + name: "shebei1", + Id: "223", + State: '2', + Cpu: "40%", + Memory: "60,000", + Disk: "60,000", + Network: "60,000" + }, + { + name: "shebei1", + Id: "221", + State: '3', + Cpu: "40%", + Memory: "60,000", + Disk: "60,000", + Network: "60,000" + } + + ]; + $scope.items = [ + 'The first choice!', + 'And another choice for you.', + 'but wait! A third!' + ]; + + $scope.toggled = function(open) { + $log.log('Dropdown is now: ', open); + }; + + $scope.status = { + isopen: false + }; + + $scope.toggleDropdown = function($event) { + $event.preventDefault(); + $event.stopPropagation(); + $scope.status.isopen = !$scope.status.isopen; + }; + + $scope.appendToEl = angular.element(document.querySelector('#dropdown-long-content')); + $scope.gridOptions = { + data: 'myData', + columnDefs: [{ + field: 'name', + displayName: 'name', + width: '8%', + enableColumnMenu: false,// 是否显示列头部菜单按钮 + enableHiding: false, + suppressRemoveSort: true, + enableCellEdit: false // 是否可编辑 + }, + {field: "Id"}, + {field: "State",cellFilter:'mapGender'}, + {field: "Cpu"}, + {field: "Memory"}, + {field: "Disk"}, + {field: "Network"}, + {field: "Action", cellTemplate : + '<div uib-dropdown style="position: absolute;padding-left: 4%;"><button id="btn-append-to-single-button" type="button" style="padding:0;" class="btn btn-primary" uib-dropdown-toggle>Action<span class="caret"></span></button><ul class="dropdown-menu" uib-dropdown-menu role="menu" aria-labelledby="btn-append-to-single-button"><li role="menuitem"><a href="#">1</a></li><li role="menuitem"><a href="#">2</a></li><li role="menuitem"><a href="#">3</a></li></ul></div>' + , enableCellEdit:false}, + ], + enableSorting: true, //是否排序 + useExternalSorting: false, //是否使用自定义排序规则 + enableGridMenu: true, //是否显示grid 菜单 + showGridFooter: true, //是否显示grid footer + enableHorizontalScrollbar: 1, //grid水平滚动条是否显示, 0-不显示 1-显示 + enableVerticalScrollbar: 0, //grid垂直滚动条是否显示, 0-不显示 1-显示 + enableFiltering: true, + //-------- 分页属性 ---------------- + enablePagination: true, //是否分页,默认为true + enablePaginationControls: true, //使用默认的底部分页 + paginationPageSizes: [10, 15, 20], //每页显示个数可选项 + paginationCurrentPage: 1, //当前页码 + paginationPageSize: 10, //每页显示个数 + //paginationTemplate:"<div></div>", //自定义底部分页代码 + totalItems: 0, // 总数量 + useExternalPagination: true,//是否使用分页按钮 + + + //----------- 选中 ---------------------- + enableFooterTotalSelected: true, // 是否显示选中的总数,默认为true, 如果显示,showGridFooter 必须为true + enableFullRowSelection: true, //是否点击行任意位置后选中,默认为false,当为true时,checkbox可以显示但是不可选中 + enableRowHeaderSelection: true, //是否显示选中checkbox框 ,默认为true + enableRowSelection: false, // 行选择是否可用,默认为true; + enableSelectAll: true, // 选择所有checkbox是否可用,默认为true; + enableSelectionBatchEvent: true, //默认true + isRowSelectable: function (row) { //GridRow + /* if(row.entity.age > 45){ + row.grid.api.selection.selectRow(row.entity); // 选中行 + }*/ + }, + modifierKeysToMultiSelect: false,//默认false,为true时只能 按ctrl或shift键进行多选, multiSelect 必须为true; + multiSelect: true,// 是否可以选择多个,默认为true; + noUnselect: false,//默认false,选中后是否可以取消选中 + selectionRowHeaderWidth: 20,//默认30 ,设置选择列的宽度; + + + //---------------api--------------------- + onRegisterApi: function (gridApi) { + $scope.gridApi = gridApi; + //分页按钮事件 + gridApi.pagination.on.paginationChanged($scope, function (newPage, pageSize) { + if (getPage) { + getPage(newPage, pageSize); + } + }); + //行选中事件 + $scope.gridApi.selection.on.rowSelectionChanged($scope, function (row, event) { + if (row) { + var num = $.inArray(row.entity.Id, $scope.selectedRows); + if (num == -1) { + $scope.selectedRows.push(row.entity.Id); + } + else { + $scope.selectedRows.splice(num, 1); + } + } + }); + $scope.gridApi.grid.registerRowsProcessor( $scope.singleFilter, 200 ); + } + }; + + var getPage = function (curPage, pageSize) { + var firstRow = (curPage - 1) * pageSize; + $scope.gridOptions.totalItems = mydefalutData.length; + $scope.gridOptions.data = mydefalutData.slice(firstRow, firstRow + pageSize); + //或者像下面这种写法 + //$scope.myData = mydefalutData.slice(firstRow, firstRow + pageSize); + }; + getPage(1, $scope.gridOptions.paginationPageSize); + + $scope.trashcan = function () { + alert('delete ' + $scope.selectedRows); + }; + + $scope.status = [ + {id: 1, name: 'danger', count: 10}, + {id: 2, name: 'alarm', count: 8}, + {id: 3, name: 'normal', count: 7}, + {id: undefined, name: 'All', count: 7} + ]; + + + + $scope.selectStatus = function (v) { + $scope.selectedStatus = v; + $scope.gridApi.grid.refresh(); + }; + $scope.activeStatus = function (status_id) { + + return status_id == $scope.selectedStatus; + }; + + $scope.singleFilter = function (renderableRows) { + var matcher = new RegExp($scope.selectedStatus); + renderableRows.forEach(function (row) { + var match = false; + ['State'].forEach(function (field) { + if (row.entity[field].match(matcher)) { + match = true; + } + }); + if (!match) { + row.visible = false; + } + }); + return renderableRows; + }; +//input框 +$scope.menuState={show: false} + $scope.toggleMenu=function() + { + $scope.menuState.show=!$scope.menuState.show; + } + //切换框 + $scope.singleModel = 1; + + $scope.radioModel = 'Middle'; + + $scope.checkModel = { + open: false, + close: true, + }; + + $scope.checkResults = []; + + $scope.$watchCollection('checkModel', function () { + $scope.checkResults = []; + angular.forEach($scope.checkModel, function (value, key) { + if (value) { + $scope.checkResults.push(key); + } + }); + }); + + }]).filter('mapGender', function () { + var genderHash = { + 1: 'danger', + 2: 'alarm' , + 3: 'normal' + }; + + return function (input) { + if (!input) { + return ''; + } else { + return genderHash[input]; + } + } + +});
\ No newline at end of file diff --git a/usecaseui-monitor/src/main/webapp/app/uui/fusion/scripts/controller/left-menuController.js b/usecaseui-monitor/src/main/webapp/app/uui/fusion/scripts/controller/left-menuController.js new file mode 100644 index 00000000..0f776b03 --- /dev/null +++ b/usecaseui-monitor/src/main/webapp/app/uui/fusion/scripts/controller/left-menuController.js @@ -0,0 +1,14 @@ +app.controller('cmCtrl',['$scope',function ($scope) { + $scope.routeData = [ + {name : 'Alarm' , url : 'app/uui/fusion/scripts/view-models/alarm.html' , nclass : 'fa fa-users'}, + {name : 'Performance' , url : 'app/uui/fusion/scripts/view-models/performance.html', nclass : 'fa fa-cog'}, + {name : 'About Performance Froms' , url : 'app/uui/fusion/scripts/view-models/performance-details.html', nclass : 'fa fa-cubes'}, + ]; + $scope.currentTab = 'app/uui/fusion/scripts/view-models/alarm.html'; + $scope.onClickTab = function (url) { + $scope.currentTab = url; + }; + $scope.isActiveTab = function (tabRoute) { + return tabRoute == $scope.currentTab; + } +}]);
\ No newline at end of file diff --git a/usecaseui-monitor/src/main/webapp/app/uui/fusion/scripts/controller/performance-detailsController.js b/usecaseui-monitor/src/main/webapp/app/uui/fusion/scripts/controller/performance-detailsController.js new file mode 100644 index 00000000..4c38bf35 --- /dev/null +++ b/usecaseui-monitor/src/main/webapp/app/uui/fusion/scripts/controller/performance-detailsController.js @@ -0,0 +1,9 @@ +app.controller('pertabCtrl',['$scope',function ($scope) { + + $scope.tabes = [ + { title:'one hour'}, + { title:'one day', content:'' }, + { title:'one month', content:'Dynamic content 2' }, + { title:'one year', content:'Dynamic content 2' } + ]; +}]); diff --git a/usecaseui-monitor/src/main/webapp/app/uui/fusion/scripts/controller/performanceController.js b/usecaseui-monitor/src/main/webapp/app/uui/fusion/scripts/controller/performanceController.js new file mode 100644 index 00000000..e16673d0 --- /dev/null +++ b/usecaseui-monitor/src/main/webapp/app/uui/fusion/scripts/controller/performanceController.js @@ -0,0 +1,108 @@ +app.controller('perCtrl',function ($scope) { + +}); +app.controller('perGridCtrl', ['$scope', '$http', '$timeout', '$interval', 'uiGridConstants', 'uiGridGroupingConstants', + function ($scope, $http, $timeout, $interval) { + + var mydefalutData = [ + { name: "Moroni", age: 50, birthday: "Oct 28, 1970", salary: "60,000" }, + { name: "shebei1", Id: "22", State: 50, Cpu: "40%", Memory: "60,0", Disk: "60,000", Network: "60,000" }, + { name: "shebei1", State: 50, Cpu: "40%", Memory: "60", Disk: "60,", Network: "60,000" }, + { name: "shebei1", State: 50, Cpu: "40%", Memory: "60,000", Disk: "60,000", Network: "60,000" }, + { name: "shebei1", State: 50, Cpu: "40%", Memory: "600", Disk: "60,000", Network: "60,000" }, + { name: "shebei1", State: 50, Cpu: "40%", Memory: "60,000", Disk: "60,000", Network: "60,000" }, + { name: "shebei1", State: 50, Cpu: "40%", Memory: "60,000", Disk: "60,000", Network: "60,000" } + ]; + + $scope.gridOptions = { + data: 'myData', + columnDefs: [{ field: 'name', + displayName: 'name', + width: '10%', + enableColumnMenu: false,// 是否显示列头部菜单按钮 + enableHiding: false, + suppressRemoveSort: true, + enableCellEdit: false ,// 是否可编辑 + cellTemplate:'<a href ng-repeat=" data in mydefalutData">{{data.name}}</a>', + }, + { field: "Id",}, + { field: "State"}, + { field: "Cpu"}, + { field: "Memory"}, + { field: "Disk"}, + { field: "Network"} + ], + + enableSorting: true, //是否排序 + useExternalSorting: false, //是否使用自定义排序规则 + enableGridMenu: true, //是否显示grid 菜单 + showGridFooter: true, //是否显示grid footer + enableHorizontalScrollbar : 1, //grid水平滚动条是否显示, 0-不显示 1-显示 + enableVerticalScrollbar : 0, //grid垂直滚动条是否显示, 0-不显示 1-显示 + enableFiltering: true, + //-------- 分页属性 ---------------- + enablePagination: true, //是否分页,默认为true + enablePaginationControls: true, //使用默认的底部分页 + paginationPageSizes: [10, 15, 20], //每页显示个数可选项 + paginationCurrentPage:1, //当前页码 + paginationPageSize: 10, //每页显示个数 + //paginationTemplate:"<div></div>", //自定义底部分页代码 + totalItems : 0, // 总数量 + useExternalPagination: true,//是否使用分页按钮 + + + //----------- 选中 ---------------------- + enableFooterTotalSelected: true, // 是否显示选中的总数,默认为true, 如果显示,showGridFooter 必须为true + enableFullRowSelection : true, //是否点击行任意位置后选中,默认为false,当为true时,checkbox可以显示但是不可选中 + enableRowHeaderSelection : true, //是否显示选中checkbox框 ,默认为true + enableRowSelection : true, // 行选择是否可用,默认为true; + enableSelectAll : true, // 选择所有checkbox是否可用,默认为true; + enableSelectionBatchEvent : true, //默认true + isRowSelectable: function(row){ //GridRow + if(row.entity.age > 45){ + row.grid.api.selection.selectRow(row.entity); // 选中行 + } + }, + modifierKeysToMultiSelect: false ,//默认false,为true时只能 按ctrl或shift键进行多选, multiSelect 必须为true; + multiSelect: true ,// 是否可以选择多个,默认为true; + noUnselect: false,//默认false,选中后是否可以取消选中 + selectionRowHeaderWidth:30 ,//默认30 ,设置选择列的宽度; + + + + //---------------api--------------------- + onRegisterApi: function(gridApi) { + $scope.gridApi = gridApi; + //分页按钮事件 + gridApi.pagination.on.paginationChanged($scope,function(newPage, pageSize) { + if(getPage) { + getPage(newPage, pageSize); + } + }); + //行选中事件 + $scope.gridApi.selection.on.rowSelectionChanged($scope,function(row,event){ + if(row){ + $scope.testRow = row.entity; + } + }); + } + }; + + var getPage = function(curPage, pageSize) { + var firstRow = (curPage - 1) * pageSize; + $scope.gridOptions.totalItems = mydefalutData.length; + $scope.gridOptions.data = mydefalutData.slice(firstRow, firstRow + pageSize); + //或者像下面这种写法 + //$scope.myData = mydefalutData.slice(firstRow, firstRow + pageSize); + }; + + getPage(1, $scope.gridOptions.paginationPageSize); + + //input框 +$scope.menuState={show: false} + $scope.toggleMenu=function() + { + $scope.menuState.show=!$scope.menuState.show; + } + + }]);
\ No newline at end of file |