CLIENT GUI Framework
[vnfsdk/refrepo.git] / openo-portal / portal-monitor / src / main / webapp / monitor / js / monitorSettingUtil.js
1 /*\r
2  * Copyright 2016-2017, CMCC Technologies Co., Ltd.\r
3  *\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
7  *\r
8  *         http://www.apache.org/licenses/LICENSE-2.0\r
9  *\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
15  */\r
16 var monitorUtil = {};\r
17 \r
18 monitorUtil.growl=function(message,type){\r
19         var delay;\r
20           if(type=="success"){\r
21                 delay=3000;\r
22           }\r
23           else{\r
24                 delay=0;\r
25           }\r
26 \r
27       $.growl({\r
28                 icon: "fa fa-envelope-o fa-lg",\r
29                 title: "  "+$.i18n.prop('com_zte_openo_umc_monitor_tip')+"  ",\r
30                 message: message+"        "\r
31                         },{\r
32                                 type: type,\r
33                                 delay:delay\r
34                         });\r
35 }\r
36 \r
37 \r
38 $.fn.dataTableExt.oApi.fnPagingInfo = function (oSettings) {\r
39     return {\r
40         "iEnd": oSettings.fnDisplayEnd(),\r
41         "iLength": oSettings._iDisplayLength,\r
42         "iTotal": oSettings.fnRecordsTotal(),\r
43         "iFilteredTotal": oSettings.fnRecordsDisplay(),\r
44         "iPage": Math.ceil(oSettings._iDisplayStart / oSettings._iDisplayLength),\r
45         "iTotalPages": Math.ceil(oSettings.fnRecordsDisplay() / oSettings._iDisplayLength)\r
46     };\r
47 };\r
48 \r
49 $.extend($.fn.dataTableExt.oPagination, {\r
50     "bootstrap_extended": {\r
51         "fnInit": function (oSettings, nPaging, fnDraw) {\r
52             var oLang = oSettings.oLanguage.oPaginate;\r
53             var oPaging = oSettings.oInstance.fnPagingInfo();\r
54 \r
55             var fnClickHandler = function (e) {\r
56                 e.preventDefault();\r
57                 if (oSettings.oApi._fnPageChange(oSettings, e.data.action)) {\r
58                     fnDraw(oSettings);\r
59                 }\r
60             };\r
61 \r
62             $(nPaging).append(\r
63                 '<div class="pagination-panel"> ' + oLang.sPage + ' ' +\r
64                 '<a href="#" class="btn btn-sm default prev disabled" title="' + oLang.sPrevious + '"><i class="fa fa-angle-left"></i></a>' +\r
65                 '<input type="text" class="pagination-panel-input input-mini input-inline input-sm" maxlenght="5" style="text-align:center; margin: 0 4px; border: 1px solid rgb(169, 169, 169);height: 28px;">' +\r
66                 '<a href="#" class="btn btn-sm default next disabled" title="' + oLang.sNext + '"><i class="fa fa-angle-right"></i></a> ' +\r
67                 oLang.sPageOf + ' <span class="pagination-panel-total"></span>' +\r
68                 '</div>'\r
69             );\r
70 \r
71             var els = $('a', nPaging);\r
72 \r
73             $(els[0]).bind('click.DT', {action: "previous"}, fnClickHandler);\r
74             $(els[1]).bind('click.DT', {action: "next"}, fnClickHandler);\r
75 \r
76             $('.pagination-panel-input', nPaging).bind('change.DT', function (e) {\r
77                 var oPaging = oSettings.oInstance.fnPagingInfo();\r
78                 e.preventDefault();\r
79                 var page = parseInt($(this).val());\r
80                 if (page > 0 && page < oPaging.iTotalPages) {\r
81                     if (oSettings.oApi._fnPageChange(oSettings, page - 1)) {\r
82                         fnDraw(oSettings);\r
83                     }\r
84                 } else {\r
85                     $(this).val(oPaging.iPage + 1);\r
86                 }\r
87             });\r
88 \r
89             $('.pagination-panel-input', nPaging).bind('keypress.DT', function (e) {\r
90                 var oPaging = oSettings.oInstance.fnPagingInfo();\r
91                 if (e.which == 13) {\r
92                     var page = parseInt($(this).val());\r
93                     if (page > 0 && page < oSettings.oInstance.fnPagingInfo().iTotalPages) {\r
94                         if (oSettings.oApi._fnPageChange(oSettings, page - 1)) {\r
95                             fnDraw(oSettings);\r
96                         }\r
97                     } else {\r
98                         $(this).val(oPaging.iPage + 1);\r
99                     }\r
100                     e.preventDefault();\r
101                 }\r
102             });\r
103         },\r
104 \r
105         "fnUpdate": function (oSettings, fnDraw) {\r
106             var iListLength = 5;\r
107             var oPaging = oSettings.oInstance.fnPagingInfo();\r
108             var an = oSettings.aanFeatures.p;\r
109             var i, j, sClass, iStart, iEnd, iHalf = Math.floor(iListLength / 2);\r
110 \r
111             if (oPaging.iTotalPages < iListLength) {\r
112                 iStart = 1;\r
113                 iEnd = oPaging.iTotalPages;\r
114             }\r
115             else if (oPaging.iPage <= iHalf) {\r
116                 iStart = 1;\r
117                 iEnd = iListLength;\r
118             } else if (oPaging.iPage >= (oPaging.iTotalPages - iHalf)) {\r
119                 iStart = oPaging.iTotalPages - iListLength + 1;\r
120                 iEnd = oPaging.iTotalPages;\r
121             } else {\r
122                 iStart = oPaging.iPage - iHalf + 1;\r
123                 iEnd = iStart + iListLength - 1;\r
124             }\r
125 \r
126 \r
127             for (i = 0, iLen = an.length; i < iLen; i++) {\r
128                 var wrapper = $(an[i]).parents(".dataTables_wrapper");\r
129 \r
130                 if (oPaging.iTotalPages <= 0) {\r
131                     $('.pagination-panel, .dataTables_length', wrapper).hide();\r
132                 } else {\r
133                     $('.pagination-panel, .dataTables_length', wrapper).show();\r
134                 }\r
135 \r
136                 $('.pagination-panel-total', an[i]).html(oPaging.iTotalPages);\r
137                 $('.pagination-panel-input', an[i]).val(oPaging.iPage + 1);\r
138 \r
139                 // Remove the middle elements\r
140                 $('li:gt(1)', an[i]).filter(':not(.next)').remove();\r
141 \r
142                 // Add the new list items and their event handlers\r
143                 for (j = iStart; j <= iEnd; j++) {\r
144                     sClass = (j == oPaging.iPage + 1) ? 'class="active"' : '';\r
145                     $('<li ' + sClass + '><a href="#">' + j + '</a></li>')\r
146                         .insertBefore($('li.next:first', an[i])[0])\r
147                         .bind('click', function (e) {\r
148                             e.preventDefault();\r
149                             oSettings._iDisplayStart = (parseInt($('a', this).text(), 10) - 1) * oPaging.iLength;\r
150                             fnDraw(oSettings);\r
151                         });\r
152                 }\r
153 \r
154                 // Add / remove disabled classes from the static elements\r
155                 if (oPaging.iPage === 0) {\r
156                     $('a.prev', an[i]).addClass('disabled');\r
157                 } else {\r
158                     $('a.prev', an[i]).removeClass('disabled');\r
159                 }\r
160 \r
161                 if (oPaging.iPage === oPaging.iTotalPages - 1 || oPaging.iTotalPages === 0) {\r
162                     $('a.next', an[i]).addClass('disabled');\r
163                 } else {\r
164                     $('a.next', an[i]).removeClass('disabled');\r
165                 }\r
166             }\r
167         }\r
168     }\r
169 });\r