1/** 2* Theme: Adminto Admin Template 3* Author: Coderthemes 4* Module/App: Main Js 5*/ 6 7 8!function($) { 9 "use strict"; 10 11 var Sidemenu = function() { 12 this.$body = $("body"), 13 this.$openLeftBtn = $(".open-left"), 14 this.$menuItem = $("#sidebar-menu a") 15 }; 16 Sidemenu.prototype.openLeftBar = function() { 17 $("#wrapper").toggleClass("enlarged"); 18 $("#wrapper").addClass("forced"); 19 20 if($("#wrapper").hasClass("enlarged") && $("body").hasClass("fixed-left")) { 21 $("body").removeClass("fixed-left").addClass("fixed-left-void"); 22 } else if(!$("#wrapper").hasClass("enlarged") && $("body").hasClass("fixed-left-void")) { 23 $("body").removeClass("fixed-left-void").addClass("fixed-left"); 24 } 25 26 if($("#wrapper").hasClass("enlarged")) { 27 $(".left ul").removeAttr("style"); 28 } else { 29 $(".subdrop").siblings("ul:first").show(); 30 } 31 32 toggle_slimscroll(".slimscrollleft"); 33 $("body").trigger("resize"); 34 }, 35 //menu item click 36 Sidemenu.prototype.menuItemClick = function(e) { 37 if(!$("#wrapper").hasClass("enlarged")){ 38 if($(this).parent().hasClass("has_sub")) { 39 40 } 41 if(!$(this).hasClass("subdrop")) { 42 // hide any open menus and remove all other classes 43 $("ul",$(this).parents("ul:first")).slideUp(350); 44 $("a",$(this).parents("ul:first")).removeClass("subdrop"); 45 $("#sidebar-menu .pull-right i").removeClass("md-remove").addClass("md-add"); 46 47 // open our new menu and add the open class 48 $(this).next("ul").slideDown(350); 49 $(this).addClass("subdrop"); 50 $(".pull-right i",$(this).parents(".has_sub:last")).removeClass("md-add").addClass("md-remove"); 51 $(".pull-right i",$(this).siblings("ul")).removeClass("md-remove").addClass("md-add"); 52 }else if($(this).hasClass("subdrop")) { 53 $(this).removeClass("subdrop"); 54 $(this).next("ul").slideUp(350); 55 $(".pull-right i",$(this).parent()).removeClass("md-remove").addClass("md-add"); 56 } 57 } 58 }, 59 60 //init sidemenu 61 Sidemenu.prototype.init = function() { 62 var $this = this; 63 64 var ua = navigator.userAgent, 65 event = (ua.match(/iP/i)) ? "touchstart" : "click"; 66 67 //bind on click 68 this.$openLeftBtn.on(event, function(e) { 69 e.stopPropagation(); 70 $this.openLeftBar(); 71 }); 72 73 // LEFT SIDE MAIN NAVIGATION 74 $this.$menuItem.on(event, $this.menuItemClick); 75 76 // NAVIGATION HIGHLIGHT & OPEN PARENT 77 $("#sidebar-menu ul li.has_sub a.active").parents("li:last").children("a:first").addClass("active").trigger("click"); 78 }, 79 80 //init Sidemenu 81 $.Sidemenu = new Sidemenu, $.Sidemenu.Constructor = Sidemenu 82 83}(window.jQuery), 84 85 86function($) { 87 "use strict"; 88 89 var FullScreen = function() { 90 this.$body = $("body"), 91 this.$fullscreenBtn = $("#btn-fullscreen") 92 }; 93 94 //turn on full screen 95 // Thanks to http://davidwalsh.name/fullscreen 96 FullScreen.prototype.launchFullscreen = function(element) { 97 if(element.requestFullscreen) { 98 element.requestFullscreen(); 99 } else if(element.mozRequestFullScreen) { 100 element.mozRequestFullScreen(); 101 } else if(element.webkitRequestFullscreen) { 102 element.webkitRequestFullscreen(); 103 } else if(element.msRequestFullscreen) { 104 element.msRequestFullscreen(); 105 } 106 }, 107 FullScreen.prototype.exitFullscreen = function() { 108 if(document.exitFullscreen) { 109 document.exitFullscreen(); 110 } else if(document.mozCancelFullScreen) { 111 document.mozCancelFullScreen(); 112 } else if(document.webkitExitFullscreen) { 113 document.webkitExitFullscreen(); 114 } 115 }, 116 //toggle screen 117 FullScreen.prototype.toggle_fullscreen = function() { 118 var $this = this; 119 var fullscreenEnabled = document.fullscreenEnabled || document.mozFullScreenEnabled || document.webkitFullscreenEnabled; 120 if(fullscreenEnabled) { 121 if(!document.fullscreenElement && !document.mozFullScreenElement && !document.webkitFullscreenElement && !document.msFullscreenElement) { 122 $this.launchFullscreen(document.documentElement); 123 } else{ 124 $this.exitFullscreen(); 125 } 126 } 127 }, 128 //init sidemenu 129 FullScreen.prototype.init = function() { 130 var $this = this; 131 //bind 132 $this.$fullscreenBtn.on('click', function() { 133 $this.toggle_fullscreen(); 134 }); 135 }, 136 //init FullScreen 137 $.FullScreen = new FullScreen, $.FullScreen.Constructor = FullScreen 138 139}(window.jQuery), 140 141 142 143//main app module 144 function($) { 145 "use strict"; 146 147 var App = function() { 148 this.VERSION = "1.4.0", 149 this.AUTHOR = "Coderthemes", 150 this.SUPPORT = "[email protected]", 151 this.pageScrollElement = "html, body", 152 this.$body = $("body") 153 }; 154 155 //on doc load 156 App.prototype.onDocReady = function(e) { 157 FastClick.attach(document.body); 158 resizefunc.push("initscrolls"); 159 resizefunc.push("changeptype"); 160 161 $('.animate-number').each(function(){ 162 $(this).animateNumbers($(this).attr("data-value"), true, parseInt($(this).attr("data-duration"))); 163 }); 164 165 //RUN RESIZE ITEMS 166 $(window).resize(debounce(resizeitems,100)); 167 $("body").trigger("resize"); 168 169 // right side-bar toggle 170 $('.right-bar-toggle').on('click', function(e){
171 172 $('#wrapper').toggleClass('right-bar-enabled'); 173 }); 174 175 176 }, 177 //initilizing 178 App.prototype.init = function() { 179 var $this = this; 180 //document load initialization 181 $(document).ready($this.onDocReady); 182 //init side bar - left 183 $.Sidemenu.init(); 184 //init fullscreen 185 $.FullScreen.init(); 186 }, 187 188 $.App = new App, $.App.Constructor = App 189 190}(window.jQuery), 191 192//initializing main application module 193function($) { 194 "use strict"; 195 $.App.init(); 196}(window.jQuery); 197 198 199 200/* ------------ some utility functions ----------------------- */ 201//this full screen 202var toggle_fullscreen = function () { 203 204} 205 206function executeFunctionByName(functionName, context /*, args */) { 207 var args = [].slice.call(arguments).splice(2); 208 var namespaces = functionName.split("."); 209 var func = namespaces.pop(); 210 for(var i = 0; i < namespaces.length; i++) { 211 context = context[namespaces[i]]; 212 } 213 return context[func].apply(this, args); 214} 215var w,h,dw,dh; 216var changeptype = function(){ 217 w = $(window).width(); 218 h = $(window).height(); 219 dw = $(document).width(); 220 dh = $(document).height(); 221 222 if(jQuery.browser.mobile === true){ 223 $("body").addClass("mobile").removeClass("fixed-left"); 224 } 225 226 if(!$("#wrapper").hasClass("forced")){ 227 if(w > 990){ 228 $("body").removeClass("smallscreen").addClass("widescreen"); 229 $("#wrapper").removeClass("enlarged"); 230 }else{ 231 $("body").removeClass("widescreen").addClass("smallscreen"); 232 $("#wrapper").addClass("enlarged"); 233 $(".left ul").removeAttr("style"); 234 } 235 if($("#wrapper").hasClass("enlarged") && $("body").hasClass("fixed-left")){ 236 $("body").removeClass("fixed-left").addClass("fixed-left-void"); 237 }else if(!$("#wrapper").hasClass("enlarged") && $("body").hasClass("fixed-left-void")){ 238 $("body").removeClass("fixed-left-void").addClass("fixed-left"); 239 } 240 241 } 242 toggle_slimscroll(".slimscrollleft"); 243} 244 245 246var debounce = function(func, wait, immediate) { 247 var timeout, result; 248 return function() { 249 var context = this, args = arguments; 250 var later = function() { 251 timeout = null; 252 if (!immediate) result = func.apply(context, args); 253 }; 254 var callNow = immediate && !timeout; 255 clearTimeout(timeout); 256 timeout = setTimeout(later, wait); 257 if (callNow) result = func.apply(context, args); 258 return result; 259 }; 260} 261 262function resizeitems(){ 263 if($.isArray(resizefunc)){ 264 for (i = 0; i < resizefunc.length; i++) { 265 window[resizefunc[i]](); 266 } 267 } 268} 269 270function initscrolls(){ 271 if(jQuery.browser.mobile !== true){ 272 //SLIM SCROLL 273 $('.slimscroller').slimscroll({ 274 height: 'auto', 275 size: "5px" 276 }); 277 278 $('.slimscrollleft').slimScroll({ 279 height: 'auto', 280 position: 'left', 281 size: "5px", 282 color: '#dcdcdc', 283 wheelStep: 5 284 }); 285 } 286} 287function toggle_slimscroll(item){ 288 if($("#wrapper").hasClass("enlarged")){ 289 $(item).css("overflow","inherit").parent().css("overflow","inherit"); 290 $(item). siblings(".slimScrollBar").css("visibility","hidden"); 291 }else{ 292 $(item).css("overflow","hidden").parent().css("overflow","hidden"); 293 $(item). siblings(".slimScrollBar").css("visibility","visible"); 294 } 295}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.