2 * Copyright 2016-2017, CMCC Technologies Co., Ltd.
\r
4 * Licensed under the Apache License, Version 2.0 (the "License");
\r
5 * you may not use this file except in compliance with the License.
\r
6 * You may obtain a copy of the License at
\r
8 * http://www.apache.org/licenses/LICENSE-2.0
\r
10 * Unless required by applicable law or agreed to in writing, software
\r
11 * distributed under the License is distributed on an "AS IS" BASIS,
\r
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
\r
13 * See the License for the specific language governing permissions and
\r
14 * limitations under the License.
\r
20 interpolate: ["<!--", "-->"]
\r
23 refreshByCond = function(){
\r
27 var vm = avalon.define({
\r
28 $id: "curAlarmsController",
\r
34 curalarmsType: 'curalarms',
\r
37 dataRangeLocationDisabled:true,
\r
38 dataRangeTypeDisabled:true,
\r
39 dataRangeCodeDisabled:true,
\r
40 alCodeTree_affirm:false,
\r
41 alLocationTree_affirm:false,
\r
42 alarmCodeSelectedCount: 0,
\r
43 alarmLocationSelectedCount: 0,
\r
44 alarmTypeSelectedCount: 0,
\r
53 {id: '1', name: $.i18n.prop("ngict_fm_iui_curalarm_critical"), value: true, type: "severityTypes", class: "alarm-serious"},
\r
54 {id: '2', name: $.i18n.prop("ngict_fm_iui_curalarm_major"), value: true, type: "severityTypes", class: "alarm-important"},
\r
55 {id: '3', name: $.i18n.prop("ngict_fm_iui_curalarm_minor"), value: true, type: "severityTypes", class: "alarm-secondary"},
\r
56 {id: '4', name: $.i18n.prop("ngict_fm_iui_curalarm_warning"), value: true, type: "severityTypes", class: "alarm-slightly"}
\r
60 {id: '1', name: $.i18n.prop("ngict_fm_iui_curalarm_ackAlarm"), value: false, type: "ackStateTypes"},
\r
61 {id: '2', name: $.i18n.prop("ngict_fm_iui_curalarm_unackAlarm"), value: true, type: "ackStateTypes"}
\r
65 {id: '1', name: $.i18n.prop("ngict_fm_iui_curalarm_visible"), value: true, type: "filterStateTypes"},
\r
66 {id: '0', name: $.i18n.prop("ngict_fm_iui_curalarm_invisible"), value: false, type: "filterStateTypes"}
\r
70 "Communications Alarm",
\r
71 "Processing Error Alarm",
\r
72 "Quality of Service Alarm",
\r
74 "Environmental Alarm",
\r
76 "Integrity Violation",
\r
77 "Operational Violation",
\r
78 "Physical Violation",
\r
79 "Security Violation",
\r
80 "Time Domain Violation"
\r
83 $alarmsTableFields: {
\r
85 {"mData": null,name: "<input id='dataTableCheckBox' type='checkBox'/>","sClass": 'details-check',"sWidth": '5%',"fnRender": alarmsUtil.checkBox},
\r
86 {"mData": "order", name: $.i18n.prop("ngict_fm_iui_curalarm_order"),"sClass": 'details-control', "sWidth": '6%'},
\r
87 {"mData": "id", sWidth : "10%",name: $.i18n.prop("ngict_fm_iui_curalarm_id"),"bVisible": true},
\r
88 {"mData": "position1DisplayName", sWidth : "10%",name:$.i18n.prop("ngict_fm_iui_curalarm_ne")},
\r
89 {"mData": "mocName",sWidth : "14%", name: $.i18n.prop("ngict_fm_iui_curalarm_moc")},
\r
90 {"mData": "probableCauseCodeNameAndCode", sWidth : "14%",name: $.i18n.prop("ngict_fm_iui_curalarm_probableCauseCode")},
\r
91 {"mData": "alarmRaisedTime", sWidth : "15%",name: $.i18n.prop("ngict_fm_iui_curalarm_alarmRaisedTime"),"fnRender": alarmsUtil.timeRender},
\r
92 {"mData": "perceivedSeverity",sWidth : "10%", name: $.i18n.prop("ngict_fm_iui_curalarm_perceivedSeverity"),fnRender:alarmsUtil.Severity},
\r
93 {"mData": "alarmType",sWidth : "10%", name: $.i18n.prop("ngict_fm_iui_curalarm_alarmType"),"bVisible": false},
\r
94 {"mData": "ackState",sClass:"ackState",sWidth : "10%", name: $.i18n.prop("ngict_fm_iui_curalarm_ackState"),"fnRender":alarmsUtil.ackState},
\r
95 {"mData": "ackTime", sWidth : "13%",name: $.i18n.prop("ngict_fm_iui_curalarm_ackTime"),"fnRender": alarmsUtil.timeRender,"bVisible": false},
\r
96 {"mData": "position1", name: $.i18n.prop("ngict_fm_iui_curalarm_position1"),"bVisible": false},
\r
97 {"mData": "alarmChangedTime", name: $.i18n.prop("ngict_fm_iui_curalarm_alarmChangedTime"),"bVisible": false,"fnRender": alarmsUtil.timeRender},
\r
98 {"mData": "ackUserId", name: $.i18n.prop("ngict_fm_iui_curalarm_ackUserId"),"bVisible": false},
\r
99 {"mData": "ackSystemId", name: $.i18n.prop("ngict_fm_iui_curalarm_ackSystemId"),"bVisible": false},
\r
100 {"mData": "alarmClearedTime", name: $.i18n.prop("ngict_fm_iui_curalarm_alarmClearedTime"),"bVisible": false,"fnRender": alarmsUtil.timeRender},
\r
101 {"mData": "additionalText", name: $.i18n.prop("ngict_fm_iui_curalarm_additionalText"),"bVisible": false},
\r
102 {"mData": "ackSystemId", name: $.i18n.prop("ngict_fm_iui_curalarm_ackSystem"),"bVisible": false},
\r
103 {"mData": "clearUserId", name: $.i18n.prop("ngict_fm_iui_curalarm_clearUserId"),"bVisible": false},
\r
104 {"mData": "clearSystemId", name: $.i18n.prop("ngict_fm_iui_curalarm_clearSystemId"),"bVisible": false},
\r
105 {"mData": "clearType", name: $.i18n.prop("ngict_fm_iui_curalarm_clearType"),"bVisible": false},
\r
106 {"mData": "probableCauseCode", name: $.i18n.prop("ngict_fm_iui_curalarm_probableCauseCode"),"bVisible": false},
\r
107 {"mData": "specificProblem", name: $.i18n.prop("ngict_fm_iui_curalarm_specificProblem"),"bVisible": false},
\r
108 {"mData": "neIp", name: $.i18n.prop("ngict_fm_iui_curalarm_neIp"),"bVisible": false},
\r
109 {"mData": "pathIds", name: $.i18n.prop("ngict_fm_iui_curalarm_pathIds"),"bVisible": false},
\r
110 {"mData": "pathName", name: $.i18n.prop("ngict_fm_iui_curalarm_pathName"),"bVisible": false}
\r
115 "sProcessing": "<img src='../common/thirdparty/data-tables/images/loading-spinner-grey.gif'/><span> 处理中...</span>",
\r
116 "sLengthMenu": $.i18n.prop("ngict-fm-iui-table-sLengthMenu"),
\r
117 "sZeroRecords": $.i18n.prop("ngict-fm-iui-table-sZeroRecords"),
\r
118 "sInfo": "<span class='seperator'></span>" + $.i18n.prop("ngict-fm-iui-table-sInfo"),
\r
119 "sInfoEmpty": $.i18n.prop("ngict-fm-iui-table-sInfoEmpty"),
\r
120 "sGroupActions": $.i18n.prop("ngict-fm-iui-table-sGroupActions"),
\r
121 "sAjaxRequestGeneralError": $.i18n.prop("ngict-fm-iui-table-sAjaxRequestGeneralError"),
\r
122 "sEmptyTable": $.i18n.prop("ngict-fm-iui-table-sEmptyTable"),
\r
124 "sPrevious": $.i18n.prop("ngict-fm-iui-table-sPrevious"),
\r
125 "sNext": $.i18n.prop("ngict-fm-iui-table-sNext"),
\r
126 "sPage": $.i18n.prop("ngict-fm-iui-table-sPage"),
\r
127 "sPageOf": $.i18n.prop("ngict-fm-iui-table-sPageOf")
\r
131 $queryAlarmsInfoUrl: '/openoapi/umc/v1/fm/curalarms',
\r
132 $saveCondUrl: '/web/rest/web/fm/rules?isc_dataFormat=json',
\r
134 $sunburstSetting: {width: 450, height: 400},
\r
136 $getLogCond: function(){
\r
138 var severitys = [];
\r
140 var filterState = [];
\r
141 for (var i = 0; i < vm.severityTypes.length; i++) {
\r
142 vm.severityTypes[i].value ? severitys.push(vm.severityTypes[i].id) : null;
\r
144 for (var i = 0; i < vm.ackStateTypes.length; i++) {
\r
145 vm.ackStateTypes[i].value ? cond.ackState = ackState.push(vm.ackStateTypes[i].id) : null;
\r
147 for (var i = 0; i < vm.filterStateTypes.length; i++) {
\r
148 vm.filterStateTypes[i].value ? cond.filterState = filterState.push(vm.filterStateTypes[i].id) : null;
\r
150 cond.severity = severitys;
\r
151 cond.ackState = ackState;
\r
152 cond.filterState = filterState;
\r
153 cond.location=vm.fmConds.location;
\r
154 cond.ackTimeStarTime = vm.fmConds.ackTimeStarTime;
\r
155 cond.ackTimeEndTime = vm.fmConds.ackTimeEndTime;
\r
156 cond.ackRelativeTime = vm.fmConds.ackRelativeTime;
\r
157 cond.ackTimeMode = vm.fmConds.ackTimeMode;
\r
158 cond.alarmRaisedStartTime = vm.fmConds.alarmRaisedStartTime;
\r
159 cond.alarmRaisedEndTime = vm.fmConds.alarmRaisedEndTime;
\r
160 cond.alarmRaisedRelativeTime = vm.fmConds.alarmRaisedRelativeTime;
\r
161 cond.alarmRaisedTimeMode = vm.fmConds.alarmRaisedTimeMode;
\r
162 cond.clearedTimeStarTime = vm.fmConds.clearedTimeStarTime;
\r
163 cond.clearedTimeEndTime = vm.fmConds.clearedTimeEndTime;
\r
164 cond.clearedTimeMode = vm.fmConds.clearedTimeMode;
\r
165 cond.probableCause = vm.fmConds.probableCause;
\r
166 cond.alarmType = vm.fmConds.alarmType;
\r
167 cond.ruleType = vm.ruleType;
\r
171 $initRegister: function(){
\r
172 $('#alCode .condSelect').click(function(){
\r
173 $('#alCodeTree').modal('show');
\r
176 $('#alCodeTree').on('hide.bs.modal', function(){
\r
177 $table = $("#selectedProbableCausesTreeTable");
\r
178 if(vm.alCodeTree_affirm===false){
\r
179 $('#selectedProbableCausesTreeTable tbody').children().remove();
\r
180 for(i=0;i<alarmTemp.length;i++){
\r
181 $table.append(alarmTemp[i]);
\r
184 vm.alCodeTree_affirm=false;
\r
187 $('#alCodeTree').on('show.bs.modal', function(){
\r
188 vm.alCodeTree_affirm=false;
\r
190 var $trs=$("#selectedProbableCausesTreeTable tr");
\r
191 if($trs.length!=0){
\r
192 for(var i=0;i<$trs.length;i++){
\r
193 alarmTemp.push($trs.eq(i)[0].outerHTML);
\r
195 $('#selectedProbableCausesTreeTable td').on("click", function(){
\r
196 var $tds = $('#selectedProbableCausesTreeTable td');
\r
197 for (var i = 0; i < $tds.length; i++) {
\r
198 $tds.eq(i).removeClass('tallCellSelected');
\r
199 $tds.eq(i).parent().removeClass('checked');
\r
201 $(this).addClass('tallCellSelected');
\r
202 $(this).parent().addClass("checked");
\r
207 $('#alType .condSelect').click(function(){
\r
208 $('#alTypeTree').modal('show');
\r
212 $('#alLocation .condSelect').click(function(){
\r
213 $('#alLocationTree').modal('show');
\r
216 $('#alLocationTree').on('hide.bs.modal', function(){
\r
217 $table = $("#selectedDeptTreeTable");
\r
218 if(vm.alLocationTree_affirm===false){
\r
219 $('#selectedDeptTreeTable tbody').children().remove();
\r
220 for(i=0;i<alarmTemp.length;i++){
\r
221 $table.append(alarmTemp[i]);
\r
224 vm.alLocationTree_affirm=false;
\r
227 $('#alLocationTree').on('show.bs.modal', function(){
\r
228 vm.alLocationTree_affirm=false;
\r
230 var $trs=$("#selectedDeptTreeTable tr");
\r
231 if($trs.length!=0){
\r
232 for(var i=0;i<$trs.length;i++){
\r
233 alarmTemp.push($trs.eq(i)[0].outerHTML);
\r
236 $('#selectedDeptTreeTable td').on("click", function(){
\r
237 var $tds = $('#selectedDeptTreeTable td');
\r
238 for (var i = 0; i < $tds.length; i++) {
\r
239 $tds.eq(i).removeClass('tallCellSelected');
\r
240 $tds.eq(i).parent().removeClass('checked');
\r
242 $(this).addClass('tallCellSelected');
\r
243 $(this).parent().addClass("checked");
\r
247 $(document).on("click", function(e){
\r
248 var target = $(e.target);
\r
249 if(target.closest("#alLocationTree").length == 0 && target.closest("#alLocation .condSelect").length==0){
\r
250 $("#alLocationTree").fadeOut();
\r
252 if(target.closest("#alCodeTree").length == 0 && target.closest("#alCode .condSelect").length==0){
\r
253 $('#alCodeTree').fadeOut();
\r
255 if(target.closest("#alTypeTree").length == 0 && target.closest("#alType .condSelect").length==0){
\r
256 $('#alTypeTree').fadeOut();
\r
261 $('#affirm').hover(function(){
\r
262 $('#affirmTrip').show();
\r
264 $('#affirmTrip').hide();
\r
268 $('#unAffirm').hover(function(){
\r
269 $('#unAffirmTrip').show();
\r
271 $('#unAffirmTrip').hide();
\r
275 $('.confirmTime input[type="radio"]').iCheck({
\r
276 radioClass: 'iradio_square-aero',
\r
277 increaseArea: '20%'
\r
281 $('#selectedAlTypeTable input[type="checkBox"]').on("ifChecked", function(){
\r
282 $(this).parent().parent().addClass('tallCellSelected');
\r
286 $('#selectedAlTypeTable input[type="checkBox"]').on("ifUnchecked", function(){
\r
287 $(this).parent().parent().removeClass('tallCellSelected');
\r
291 $initTable: function(){
\r
293 setting.language = vm.$language;
\r
294 setting.columns = vm.$alarmsTableFields[vm.curalarmsType];
\r
295 setting.restUrl = vm.$queryAlarmsInfoUrl;
\r
296 setting.tableId = "ict_alarms_table";
\r
297 serverPageTable.initDataTable(setting, vm.$getLogCond(), 'ict_alarms_table_div');
\r
300 condChange: function(){
\r
304 moreCondClicked: function(){
\r
305 $('#moreCond').fadeToggle();
\r
306 var icon = $(this).children('span').eq(0);
\r
307 if ($(this).hasClass('blueactive')) {
\r
308 vm.moreCondBtn = false;
\r
309 icon.removeClass('borderBottom');
\r
310 icon.addClass('borderBotTop');
\r
311 $("div.fliterline").show();
\r
313 vm.moreCondBtn = true;
\r
314 icon.removeClass('borderTop');
\r
315 icon.addClass('borderBottom');
\r
316 $("div.fliterline").hide();
\r
320 alarmsCondSave: function(){
\r
321 if ($('#saveCondId').val() != null && $.trim($('#saveCondId').val()) != '') {
\r
322 var name = $('#saveCondId').val();
\r
323 alarmsUtil.condSave(vm.$getLogCond(), vm.$saveCondUrl, name);
\r
327 saveModal: function(){
\r
328 $('#myModal').modal('show');
\r
331 searchModal: function(){
\r
335 tabClicked: function(modelItem, item){
\r
336 if (!modelItem.value) {
\r
337 modelItem.value = true;
\r
339 modelItem.value = false;
\r
344 moveTreeNode: function(item){
\r
345 alarmsUtil.moveNode(item);
\r
349 deptTreeAffirm: function(){
\r
351 var locationObj=[];
\r
352 var $tds= $("#selectedDeptTreeTable td");
\r
353 for (var i = 0; i < $tds.length; i++) {
\r
355 obj.id=$tds.eq(i).attr('nodeid');
\r
356 obj.oid=$tds.eq(i).attr('oid');
\r
357 locationObj.push(obj);
\r
359 selectName+=$tds.eq(i).text();
\r
361 selectName+=","+$tds.eq(i).text();
\r
364 vm.fmConds.location=locationObj;
\r
365 vm.alarmLocationSelectedCount=locationObj.length;
\r
366 vm.alLocationTree_affirm=true;
\r
367 $('#alLocationTree').modal('hide')
\r
371 probableCausesTreeAffirm: function(){
\r
373 var probableCause=[];
\r
374 var $tds= $("#selectedProbableCausesTreeTable td");
\r
376 for (var i = 0; i < $tds.length; i++) {
\r
378 obj.codeid=$tds.eq(i).attr('codeid');
\r
379 obj.parentid=$tds.eq(i).attr('parentid');
\r
380 obj.type=$tds.eq(i).attr('type');
\r
381 probableCause.push(obj);
\r
383 vm.fmConds.probableCause=probableCause;
\r
384 vm.alarmCodeSelectedCount = probableCause.length;
\r
385 vm.alCodeTree_affirm=true;
\r
386 $('#alCodeTree').modal('hide');
\r
390 alTypeTreeAffirm: function(){
\r
393 var $tds=$("#selectedAlTypeTable td.tallCellSelected");
\r
394 for (var i = 0; i < $tds.length; i++) {
\r
398 selectName+=$tds.eq(i).text();
\r
400 selectName+=","+$tds.eq(i).text();
\r
403 vm.fmConds.alType=alType;
\r
404 if(selectName!=""){
\r
405 $('#alType .condSelect :selected').text(selectName);
\r
407 $('#alType .condSelect :selected').text("请选择告警类型");
\r
409 vm.alarmTypeSelectedCount = alType.length;
\r
410 //$('#alTypeTree').fadeOut();
\r
411 $('#alTypeTree').modal('hide')
\r
416 initAlTypeTable = function(){
\r
418 for (var i = 0; i < vm.alTypes.length; i++) {
\r
419 html += "<tr><td><input type='checkbox'>" + vm.alTypes[i] + "</td></tr>";
\r
421 $('#selectedAlTypeTable').append(html);
\r
424 initPage = function(){
\r
425 bootbox.setDefaults({
\r
426 locale: lang.replace("-", "_")
\r
429 alarmsUtil.setDateRange("daterangeConfirm", vm);
\r
430 alarmsUtil.dateRangeEnableDisable("customAckTime");
\r
432 alarmsUtil.setDateRange("daterangeOccur", vm);
\r
433 alarmsUtil.dateRangeEnableDisable("customRaisedTime");
\r
434 //高级菜单界面中,对告警发生时间、确认时间、清除时间初始化
\r
435 alarmsUtil.dateRangeCustom(vm);
\r
437 alarmsUtil.initTree();
\r
440 vm.$initRegister();
\r
442 localStorage.setItem("curRuleDataId",0);
\r