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
17 function html_encode(str) {
\r
19 if (str.length == 0)return "";
\r
20 s = str.replace(/&/g, "&"); //1
\r
21 s = s.replace(/</g, "<");
\r
22 s = s.replace(/>/g, ">");
\r
23 s = s.replace(/ /g, " ");
\r
24 s = s.replace(/\'/g, "'");
\r
25 s = s.replace(/\"/g, """);
\r
26 s = s.replace(/\n/g, "<br>");
\r
29 pmUtil.indexOperate = function (obj) {
\r
32 aIndex.id=obj.aData.id;
\r
33 aIndex.name=obj.aData.indexName;
\r
34 aIndex.dataType=obj.aData.indexDataType;
\r
35 aIndex.indexDes=obj.aData.indexDes;
\r
36 aIndex.strExpression=obj.aData.strExpression;
\r
37 aIndex.resourceType=obj.aData.resourceType;
\r
38 aIndex.moType=obj.aData.moType;
\r
39 var index = html_encode(JSON.stringify(aIndex));
\r
40 var indexId = obj.aData.id;
\r
41 var innerHtml = "<div class='table-btn'><span class='modify_user'><a class=\"btn-xs grey btn-editable\" href='#' onclick=\"pmUtil.modifyIndex('"+index+"')\"><i class=\"ict-modify\"></i>" + $.i18n.prop('com_zte_ums_ict_pm_action_modify') +
\r
42 "</a></span><span><a href='#' class=\"btn-xs grey btn-editable\" onclick=\"pmUtil.deleteIndex('" +
\r
43 indexId + "','"+obj.aData.moType.id+"')\"><i class=\"ict-delete\"></i>" + $.i18n.prop('com_zte_ums_ict_pm_action_delete') + "</a></span></div>";
\r
47 pmUtil.dataTypeRender = function (obj) {
\r
48 var record = obj.aData;
\r
49 obj.aData.indexDataType=obj.aData.dataType;
\r
50 var innerHtml = "<span>"+$.i18n.prop(record.dataType)+"</span>"
\r
53 pmUtil.indexNameLink = function (obj) {
\r
54 var index = html_encode(JSON.stringify(obj.aData));
\r
55 obj.aData.indexName=obj.aData.name;
\r
56 return "<a id='indexName' href='#' onclick=\"pmUtil.queryIndex('"+index+"')\">" + obj.aData.name + "</a>";
\r
58 pmUtil.queryIndex=function(index){
\r
60 newIndexWizard(commonUtil.strToJson(index),"query");
\r
61 pm.index.vm.title="查看指标";
\r
62 $(".form-group").attr("disabled",true);
\r
63 pm.index.vm.viewVisible=false;
\r
64 pm.index.vm.rtnVisible=true;
\r
65 pm.index.vm.indexVisible=true;
\r
67 pmUtil.addIndex=function(){
\r
70 pm.index.vm.title="新建指标";
\r
71 pm.index.vm.viewVisible=false;
\r
72 pm.index.vm. indexVisible=true;
\r
74 pmUtil.modifyIndex=function(index){
\r
76 newIndexWizard(commonUtil.strToJson(index));
\r
77 pm.index.vm.title="修改指标";
\r
78 pm.index.vm.viewVisible=false;
\r
79 pm.index.vm.indexVisible=true;
\r
81 pmUtil.deleteIndex=function(indexId,moTypeId){
\r
82 bootbox.confirm($.i18n.prop('com_zte_ums_ict_sm_confirmToDeleteIndex'), function (result) {
\r
91 "url": "/api/umcpm/v1/motype/"+moTypeId+"/indexes",
\r
92 "data" : JSON.stringify(del),
\r
93 "contentType": 'application/json; charset=utf-8',
\r
94 "success": function (res, textStatus, jqXHR) {
\r
95 window.location.href="./indexView.html";
\r
97 "error": function () {
\r
104 pmUtil.idLink = function (obj) {
\r
105 var record = obj.aData;
\r
106 var thresholdId = new String(record.id);
\r
107 return "<a href='#' onclick=\"pm.threshold.vm.queryThreshold('" + thresholdId + "')\">" + thresholdId + "</a>";
\r
110 pmUtil.congfirmDel = function (obj) {
\r
111 bootbox.confirm($.i18n.prop('com_zte_ums_ict_sm_confirmToDeleteThreshold'), function (result) {
\r
113 pm.threshold.vm.deleteThreshold(obj);
\r
118 pmUtil.allOperate = function (obj) {
\r
120 var record = obj.aData;
\r
121 var thresholdId = record.id;
\r
122 //此时的id字段已经被渲染成html片段,如<a href="#" onclick="pm.threshold.vm.queryThreshold('10001')">10001</a>需要提取id
\r
123 thresholdId = thresholdId.substring(thresholdId.indexOf("('") + 2, thresholdId.indexOf("')"));
\r
125 var innerHtml = "";
\r
127 innerHtml = "<div class='table-btn'><span class='modify_user'><a class=\"btn-xs grey btn-editable\" href='#' onclick=\"pm.threshold.vm.modifyThreshold('" +
\r
128 thresholdId + "')\"><i class=\"ict-modify\"></i>" + $.i18n.prop('com_zte_ums_ict_pm_action_modify') +
\r
129 "</a></span><span><a href='#' class=\"btn-xs grey btn-editable\" onclick=\"pmUtil.congfirmDel('" +
\r
130 thresholdId + "')\"><i class=\"ict-delete\"></i>" + $.i18n.prop('com_zte_ums_ict_pm_action_delete') + "</a></span></div>";
\r
136 pmUtil.getUrlParam=function(name){
\r
137 var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象
\r
138 var search =decodeURIComponent(location.search.substring(1)); //decodeURIComponent() 函数可对 encodeURIComponent() 函数编码的 URI 进行解码。
\r
139 var r =search.match(reg); //匹配目标参数
\r
140 if (r != null) return unescape(r[2]); //unescape() 函数可对通过 escape() 编码的字符串进行解码。
\r
141 return null; //返回参数值
\r
145 pmUtil.addMeatask = function() {
\r
146 newMeataskWizard();
\r
147 pm.meatask.vm.pageTitle="新建任务";
\r
148 pm.meatask.vm.viewVisible=false;
\r
149 pm.meatask.vm.createMeataskVisible=true;
\r
150 pm.meatask.vm.queryMeataskVisible=false;
\r
153 pmUtil.meataskOperate = function (obj) {
\r
154 var record = obj.aData;
\r
155 var meataskId = record.id;
\r
156 //此时的id字段已经被渲染成html片段,如<a href="#" onclick="pm.threshold.vm.queryThreshold('10001')">10001</a>需要提取id
\r
157 meataskId = meataskId.substring(meataskId.indexOf("('") + 2, meataskId.indexOf("')"));
\r
159 var innerHtml = "";
\r
163 "<div class=\"table-btn\">",
\r
164 "<span class=\"modify_user\">",
\r
165 "<a class=\"btn-xs grey btn-editable\" href=\"#\" onclick=\"pmUtil.queryMeatask('" + meataskId +
\r
166 "')\"><i class=\"ict-Magnifier\"></i>",
\r
167 $.i18n.prop('com_zte_ums_ict_pm_action_query'),
\r
170 "<span class=\"modify_user\">",
\r
171 "<a class=\"btn-xs grey btn-editable\" href=\"#\" onclick=\"pmUtil.modifyMeatask('" + meataskId + "'," + obj.iDataRow +
\r
172 ")\"><i class=\"ict-modify\"></i>",
\r
173 $.i18n.prop('com_zte_ums_ict_pm_action_modify'),
\r
177 "<a href=\"#\" class=\"btn-xs grey btn-editable\" onclick=\"pmUtil.deleteMeatask('" + meataskId + "'," + obj.iDataRow +
\r
178 ")\"><i class=\"ict-delete\"></i>",
\r
179 $.i18n.prop('com_zte_ums_ict_pm_action_delete'),
\r
187 pmUtil.getActiveStatus = function(obj) {
\r
188 var meataskId = obj.aData.id;
\r
189 meataskId = meataskId.substring(meataskId.indexOf("('") + 2, meataskId.indexOf("')"));
\r
190 var activeStatus = obj.aData.activeStatus;
\r
192 var prefixStr = "";
\r
193 var suffixStr = "";
\r
194 if(activeStatus == 0){
\r
195 prefixStr = "<a href='#' class=\"label label-sm label-danger\" onclick=\"pm.meatask.vm.changeActiveStatus('";
\r
196 suffixStr = ")\">暂停</a>";
\r
198 prefixStr = "<a href='#' class=\"label label-sm label-info\" onclick = \"pm.meatask.vm.changeActiveStatus('";
\r
199 suffixStr = ")\">激活</a>";
\r
202 var innerHtml = prefixStr + meataskId + "'," + activeStatus + "," + obj.iDataRow + suffixStr;
\r
207 pmUtil.granularityRender = function(obj) {
\r
208 var data = obj.aData;
\r
209 switch(data.granularity){
\r
220 pmUtil.queryMeatask = function(meataskId) {
\r
221 queryMeataskWizard("queryID");
\r
222 pm.meatask.vm.pageTitle="查询任务";
\r
223 pm.meatask.vm.viewVisible=false;
\r
224 pm.meatask.vm.createMeataskVisible=false;
\r
225 pm.meatask.vm.queryMeataskVisible=true;
\r
227 $("#queryMeataskSubmit").click(function() {
\r
228 pm.meatask.vm.$showResultTable();
\r
232 pmUtil.meataskIdLink = function(obj) {
\r
233 var meatskId = obj.aData.id;
\r
234 return "<a href='#' onclick=\"pmUtil.viewMeataskById('" + meatskId + "')\">" + meatskId + "</a>";
\r
237 pmUtil.viewMeataskById = function(meatskId) {
\r
238 newMeataskWizard(meatskId);
\r
239 pm.meatask.vm.pageTitle="查看任务";
\r
240 pm.meatask.vm.viewVisible=false;
\r
241 pm.meatask.vm.createMeataskVisible=true;
\r
242 pm.meatask.vm.queryMeataskVisible=false;
\r
245 pmUtil.timeRender = function( obj ){
\r
246 var time=obj.aData[obj.mDataProp];
\r
248 var date = new Date(obj.aData[obj.mDataProp]);
\r
249 return commonUtil.parseDate(date , 'yyyy-MM-dd hh:mm:ss');
\r
253 pmUtil.deleteMeatask=function(meataskId, row){
\r
254 bootbox.confirm("确认删除此任务吗?", function (result) {
\r
256 $("#ict_meatask_table_div tr:eq("+(row+1)+")").attr('style', 'display:none;');
\r
261 pmUtil.modifyMeatask = function(meataskId, row) {
\r
262 modifyMeataskWizard("modifyID");
\r
263 pm.meatask.vm.pageTitle="修改任务";
\r
264 pm.meatask.vm.viewVisible=false;
\r
265 pm.meatask.vm.createMeataskVisible=true;
\r
266 pm.meatask.vm.queryMeataskVisible=false;
\r
269 pmUtil.randomCPU = function() {
\r
270 var percent = Math.random()*100;
\r
271 percent = Math.round(percent);
\r
272 return percent + "%";
\r
275 pmUtil.calculateTime = function(obj) {
\r
276 var data = obj.aData;
\r
277 var time = data.beginTime + data.granularity;
\r
280 var date = new Date(data.granularity * 1000 + obj.aData[obj.mDataProp]);
\r
281 return commonUtil.parseDate(date , 'yyyy-MM-dd hh:mm:ss');
\r
285 pmUtil.queryMeatask = function(meataskId) {
\r
286 pm.meatask.vm.pageTitle="查询任务";
\r
287 pm.meatask.vm.viewVisible=false;
\r
288 pm.meatask.vm.createMeataskVisible=false;
\r
289 pm.meatask.vm.queryMeataskVisible=true;
\r
292 pmUtil.setDateRange = function (dataRangeId, vm) {
\r
294 var open = 'right';
\r
296 //var month = $.i18n.prop('ngict-iui-dateRange-month');
\r
300 //startDate: moment().subtract(179, 'days'),
\r
302 //endDate: moment(),
\r
304 startDate : "2015-12-31",
\r
306 endDate : "2016-2017-12-31",
\r
308 //format: 'YYYY-MM-DD',
\r
309 format : 'YYYY-MM-DD h:mm A',
\r
315 showWeekNumbers : false,
\r
318 timePickerIncrement : 5,
\r
326 applyLabel : $.i18n.prop('ngict-iui-dateRange-applyLabel'),
\r
328 cancelLabel : $.i18n.prop('ngict-iui-dateRange-cancelLabel'),
\r
330 fromLabel : $.i18n.prop('ngict-iui-dateRange-fromLabel'),
\r
332 toLabel : $.i18n.prop('ngict-iui-dateRange-toLabel'),
\r
334 customRangeLabel : $.i18n.prop('ngict-iui-dateRange-customRangeLabel'),
\r
338 $.i18n.prop('ngict-iui-dateRange-Sunday'),
\r
340 $.i18n.prop('ngict-iui-dateRange-Monday'),
\r
342 $.i18n.prop('ngict-iui-dateRange-Tuesday'),
\r
344 $.i18n.prop('ngict-iui-dateRange-Wednesday'),
\r
346 $.i18n.prop('ngict-iui-dateRange-Thursday'),
\r
348 $.i18n.prop('ngict-iui-dateRange-Friday'),
\r
350 $.i18n.prop('ngict-iui-dateRange-Saturday')],
\r
352 //monthNames : ['1' + month, '2' + month, '3' + month, '4' + month, '5' + month, '6' + month, '7' + month, '8' + month, '9' + month, '10' + month, '11' + month, '12' + month],
\r
354 //months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
\r
356 monthNames: [$.i18n.prop('ngict-iui-dateRange-Jan'),
\r
357 $.i18n.prop('ngict-iui-dateRange-Feb'),
\r
358 $.i18n.prop('ngict-iui-dateRange-Mar'),
\r
359 $.i18n.prop('ngict-iui-dateRange-Apr'),
\r
360 $.i18n.prop('ngict-iui-dateRange-May'),
\r
361 $.i18n.prop('ngict-iui-dateRange-Jun'),
\r
362 $.i18n.prop('ngict-iui-dateRange-Jul'),
\r
363 $.i18n.prop('ngict-iui-dateRange-Aug'),
\r
364 $.i18n.prop('ngict-iui-dateRange-Sep'),
\r
365 $.i18n.prop('ngict-iui-dateRange-Oct'),
\r
366 $.i18n.prop('ngict-iui-dateRange-Nov'),
\r
367 $.i18n.prop('ngict-iui-dateRange-Dec')],
\r
375 //datarangepicker确认
\r
376 $('input[id="' + dataRangeId + '"]').bind('apply.daterangepicker', function () {
\r
382 pmUtil.setTime($(this));
\r
385 //$(this).attr("data-original-title", $(this).val());
\r
389 $('input[id="' + dataRangeId + '"]').daterangepicker(optionSet1);
\r
393 //daterangepicker设置时间
\r
394 pmUtil.setTime = function setTime($obj) {
\r
396 //var title = $obj.attr('dtitle');
\r
398 var arr = $obj.val().split(' - ');
\r
402 if (arr[0] != '') {
\r
404 var beginTime = new Date(arr[0].replace(/-/g, "/")).getTime();
\r
406 var endTime = new Date(arr[1].replace(/-/g, "/")).getTime();
\r
408 pm.query.vmPmQuery.beginTime = beginTime;
\r
410 pm.query.vmPmQuery.endTime = endTime;
\r
416 pmUtil.formatTime = function formatTime(ms) {
\r
417 var date = new Date(ms);
\r
418 return date.format("yyyy-MM-dd hh:mm:ss");
\r
423 Date.prototype.format = function (format) {
\r
427 * format="yyyy-MM-dd hh:mm:ss";
\r
433 "M+" : this.getMonth() + 1,
\r
435 "d+" : this.getDate(),
\r
437 "h+" : this.getHours(),
\r
439 "m+" : this.getMinutes(),
\r
441 "s+" : this.getSeconds(),
\r
443 "q+" : Math.floor((this.getMonth() + 3) / 3),
\r
445 "S" : this.getMilliseconds()
\r
449 if (/(y+)/.test(format)) {
\r
451 format = format.replace(RegExp.$1, (this.getFullYear() + "").substr(4
\r
453 - RegExp.$1.length));
\r
459 if (new RegExp("(" + k + ")").test(format)) {
\r
461 format = format.replace(RegExp.$1, RegExp.$1.length == 1
\r
465 : ("00" + o[k]).substr(("" + o[k]).length));
\r