Merge "Add test-scheduler dir to verity"
[bottlenecks.git] / testing-scheduler / ui / src / assets / js / inspinia.js
1 /*\r
2  *\r
3  *   INSPINIA - Responsive Admin Theme\r
4  *   version 2.7.1\r
5  *\r
6  */\r
7 \r
8 $(document).ready(function () {\r
9 \r
10 \r
11     // Add body-small class if window less than 768px\r
12     if ($(this).width() < 769) {\r
13         $('body').addClass('body-small')\r
14     } else {\r
15         $('body').removeClass('body-small')\r
16     }\r
17 \r
18     // MetisMenu\r
19     $('#side-menu').metisMenu();\r
20 \r
21     // Collapse ibox function\r
22     $('.collapse-link').on('click', function () {\r
23         var ibox = $(this).closest('div.ibox');\r
24         var button = $(this).find('i');\r
25         var content = ibox.children('.ibox-content');\r
26         content.slideToggle(200);\r
27         button.toggleClass('fa-chevron-up').toggleClass('fa-chevron-down');\r
28         ibox.toggleClass('').toggleClass('border-bottom');\r
29         setTimeout(function () {\r
30             ibox.resize();\r
31             ibox.find('[id^=map-]').resize();\r
32         }, 50);\r
33     });\r
34 \r
35     // Close ibox function\r
36     $('.close-link').on('click', function () {\r
37         var content = $(this).closest('div.ibox');\r
38         content.remove();\r
39     });\r
40 \r
41     // Fullscreen ibox function\r
42     $('.fullscreen-link').on('click', function () {\r
43         var ibox = $(this).closest('div.ibox');\r
44         var button = $(this).find('i');\r
45         $('body').toggleClass('fullscreen-ibox-mode');\r
46         button.toggleClass('fa-expand').toggleClass('fa-compress');\r
47         ibox.toggleClass('fullscreen');\r
48         setTimeout(function () {\r
49             $(window).trigger('resize');\r
50         }, 100);\r
51     });\r
52 \r
53     // Close menu in canvas mode\r
54     $('.close-canvas-menu').on('click', function () {\r
55         $("body").toggleClass("mini-navbar");\r
56         SmoothlyMenu();\r
57     });\r
58 \r
59     // Run menu of canvas\r
60     $('body.canvas-menu .sidebar-collapse').slimScroll({\r
61         height: '100%',\r
62         railOpacity: 0.9\r
63     });\r
64 \r
65     // Open close right sidebar\r
66     $('.right-sidebar-toggle').on('click', function () {\r
67         $('#right-sidebar').toggleClass('sidebar-open');\r
68     });\r
69 \r
70     // Initialize slimscroll for right sidebar\r
71     $('.sidebar-container').slimScroll({\r
72         height: '100%',\r
73         railOpacity: 0.4,\r
74         wheelStep: 10\r
75     });\r
76 \r
77     // Open close small chat\r
78     $('.open-small-chat').on('click', function () {\r
79         $(this).children().toggleClass('fa-comments').toggleClass('fa-remove');\r
80         $('.small-chat-box').toggleClass('active');\r
81     });\r
82 \r
83     // Initialize slimscroll for small chat\r
84     $('.small-chat-box .content').slimScroll({\r
85         height: '234px',\r
86         railOpacity: 0.4\r
87     });\r
88 \r
89     // Small todo handler\r
90     $('.check-link').on('click', function () {\r
91         var button = $(this).find('i');\r
92         var label = $(this).next('span');\r
93         button.toggleClass('fa-check-square').toggleClass('fa-square-o');\r
94         label.toggleClass('todo-completed');\r
95         return false;\r
96     });\r
97 \r
98     // Append config box / Only for demo purpose\r
99     // Uncomment on server mode to enable XHR calls\r
100     //$.get("skin-config.html", function (data) {\r
101     //    if (!$('body').hasClass('no-skin-config'))\r
102     //        $('body').append(data);\r
103     //});\r
104 \r
105     // Minimalize menu\r
106     $('.navbar-minimalize').on('click', function (event) {\r
107         event.preventDefault();\r
108         $("body").toggleClass("mini-navbar");\r
109         SmoothlyMenu();\r
110 \r
111     });\r
112 \r
113     // Tooltips demo\r
114     $('.tooltip-demo').tooltip({\r
115         selector: "[data-toggle=tooltip]",\r
116         container: "body"\r
117     });\r
118 \r
119 \r
120     // Full height of sidebar\r
121     function fix_height() {\r
122         var heightWithoutNavbar = $("body > #wrapper").height() - 61;\r
123         $(".sidebar-panel").css("min-height", heightWithoutNavbar + "px");\r
124 \r
125         var navbarheight = $('nav.navbar-default').height();\r
126         var wrapperHeight = $('#page-wrapper').height();\r
127 \r
128         if (navbarheight > wrapperHeight) {\r
129             $('#page-wrapper').css("min-height", navbarheight + "px");\r
130         }\r
131 \r
132         if (navbarheight < wrapperHeight) {\r
133             $('#page-wrapper').css("min-height", $(window).height() + "px");\r
134         }\r
135 \r
136         if ($('body').hasClass('fixed-nav')) {\r
137             if (navbarheight > wrapperHeight) {\r
138                 $('#page-wrapper').css("min-height", navbarheight + "px");\r
139             } else {\r
140                 $('#page-wrapper').css("min-height", $(window).height() - 60 + "px");\r
141             }\r
142         }\r
143 \r
144     }\r
145 \r
146     fix_height();\r
147 \r
148     // Fixed Sidebar\r
149     $(window).bind("load", function () {\r
150         if ($("body").hasClass('fixed-sidebar')) {\r
151             $('.sidebar-collapse').slimScroll({\r
152                 height: '100%',\r
153                 railOpacity: 0.9\r
154             });\r
155         }\r
156     });\r
157 \r
158     // Move right sidebar top after scroll\r
159     $(window).scroll(function () {\r
160         if ($(window).scrollTop() > 0 && !$('body').hasClass('fixed-nav')) {\r
161             $('#right-sidebar').addClass('sidebar-top');\r
162         } else {\r
163             $('#right-sidebar').removeClass('sidebar-top');\r
164         }\r
165     });\r
166 \r
167     $(window).bind("load resize scroll", function () {\r
168         if (!$("body").hasClass('body-small')) {\r
169             fix_height();\r
170         }\r
171     });\r
172 \r
173     $("[data-toggle=popover]")\r
174         .popover();\r
175 \r
176     // Add slimscroll to element\r
177     $('.full-height-scroll').slimscroll({\r
178         height: '100%'\r
179     })\r
180 });\r
181 \r
182 \r
183 // Minimalize menu when screen is less than 768px\r
184 $(window).bind("resize", function () {\r
185     if ($(this).width() < 769) {\r
186         $('body').addClass('body-small')\r
187     } else {\r
188         $('body').removeClass('body-small')\r
189     }\r
190 });\r
191 \r
192 // Local Storage functions\r
193 // Set proper body class and plugins based on user configuration\r
194 $(document).ready(function () {\r
195     if (localStorageSupport()) {\r
196 \r
197         var collapse = localStorage.getItem("collapse_menu");\r
198         var fixedsidebar = localStorage.getItem("fixedsidebar");\r
199         var fixednavbar = localStorage.getItem("fixednavbar");\r
200         var boxedlayout = localStorage.getItem("boxedlayout");\r
201         var fixedfooter = localStorage.getItem("fixedfooter");\r
202 \r
203         var body = $('body');\r
204 \r
205         if (fixedsidebar == 'on') {\r
206             body.addClass('fixed-sidebar');\r
207             $('.sidebar-collapse').slimScroll({\r
208                 height: '100%',\r
209                 railOpacity: 0.9\r
210             });\r
211         }\r
212 \r
213         if (collapse == 'on') {\r
214             if (body.hasClass('fixed-sidebar')) {\r
215                 if (!body.hasClass('body-small')) {\r
216                     body.addClass('mini-navbar');\r
217                 }\r
218             } else {\r
219                 if (!body.hasClass('body-small')) {\r
220                     body.addClass('mini-navbar');\r
221                 }\r
222 \r
223             }\r
224         }\r
225 \r
226         if (fixednavbar == 'on') {\r
227             $(".navbar-static-top").removeClass('navbar-static-top').addClass('navbar-fixed-top');\r
228             body.addClass('fixed-nav');\r
229         }\r
230 \r
231         if (boxedlayout == 'on') {\r
232             body.addClass('boxed-layout');\r
233         }\r
234 \r
235         if (fixedfooter == 'on') {\r
236             $(".footer").addClass('fixed');\r
237         }\r
238     }\r
239 });\r
240 \r
241 // check if browser support HTML5 local storage\r
242 function localStorageSupport() {\r
243     return (('localStorage' in window) && window['localStorage'] !== null)\r
244 }\r
245 \r
246 // For demo purpose - animation css script\r
247 function animationHover(element, animation) {\r
248     element = $(element);\r
249     element.hover(\r
250         function () {\r
251             element.addClass('animated ' + animation);\r
252         },\r
253         function () {\r
254             //wait for animation to finish before removing classes\r
255             window.setTimeout(function () {\r
256                 element.removeClass('animated ' + animation);\r
257             }, 2000);\r
258         });\r
259 }\r
260 \r
261 function SmoothlyMenu() {\r
262     if (!$('body').hasClass('mini-navbar') || $('body').hasClass('body-small')) {\r
263         // Hide menu in order to smoothly turn on when maximize menu\r
264         $('#side-menu').hide();\r
265         // For smoothly turn on menu\r
266         setTimeout(\r
267             function () {\r
268                 $('#side-menu').fadeIn(400);\r
269             }, 200);\r
270     } else if ($('body').hasClass('fixed-sidebar')) {\r
271         $('#side-menu').hide();\r
272         setTimeout(\r
273             function () {\r
274                 $('#side-menu').fadeIn(400);\r
275             }, 100);\r
276     } else {\r
277         // Remove all inline style from jquery fadeIn function to reset menu state\r
278         $('#side-menu').removeAttr('style');\r
279     }\r
280 }\r
281 \r
282 // Dragable panels\r
283 function WinMove() {\r
284     var element = "[class*=col]";\r
285     var handle = ".ibox-title";\r
286     var connect = "[class*=col]";\r
287     $(element).sortable(\r
288         {\r
289             handle: handle,\r
290             connectWith: connect,\r
291             tolerance: 'pointer',\r
292             forcePlaceholderSize: true,\r
293             opacity: 0.8\r
294         })\r
295         .disableSelection();\r
296 }\r
297 \r
298 \r