1/* ------------------------------------------------------------------------------ 2* 3* # Template JS core 4* 5* Core JS file with default functionality configuration 6* 7* Version: 1.3 8* Latest update: Aug 10, 2016 9* 10* ---------------------------------------------------------------------------- */ 11 12 13// Allow CSS transitions when page is loaded 14$(window).on('load', function() { 15 $('body').removeClass('no-transitions'); 16}); 17 18 19$(function() { 20 21 // Disable CSS transitions on page load 22 $('body').addClass('no-transitions'); 23 24 25 26 // ======================================== 27 // 28 // Content area height main_navbar 29 // 30 // ======================================== 31 32 33 // Calculate min height 34 function containerHeight() { 35 var availableHeight = $(window).height() - $('.page-container').offset().top - $('#main_navbar').outerHeight(); 36 // alert($('#main_navbar').outerHeight()); 37 // availableHeight=parseFloat(availableHeight)-48; 38 // $('.page-container').attr('style', 'min-height:' + availableHeight + 'px'); 39 40 } 41 42 // Initialize 43 containerHeight(); 44 45 46 47 48 // ======================================== 49 // 50 // Heading elements 51 // 52 // ======================================== 53 54 55 // Heading elements toggler 56 // ------------------------- 57 58 // Add control button toggler to page and panel headers if have heading elements 59 $('.panel-footer').has('> .heading-elements:not(.not-collapsible)').prepend('<a class="heading-elements-toggle"><i class="icon-more"></i></a>'); 60 $('.page-title, .panel-title').parent().has('> .heading-elements:not(.not-collapsible)').children('.page-title, .panel-title').append('<a class="heading-elements-toggle"><i class="icon-more"></i></a>'); 61 62 63 // Toggle visible state of heading elements 64 $('.page-title .heading-elements-toggle, .panel-title .heading-elements-toggle').on('click', function() { 65 $(this).parent().parent().toggleClass('has-visible-elements').children('.heading-elements').toggleClass('visible-elements'); 66 }); 67 $('.panel-footer .heading-elements-toggle').on('click', function() { 68 $(this).parent().toggleClass('has-visible-elements').children('.heading-elements').toggleClass('visible-elements'); 69 }); 70 71 72 73 // Breadcrumb elements toggler 74 // ------------------------- 75 76 // Add control button toggler to breadcrumbs if has elements 77 $('.breadcrumb-line').has('.breadcrumb-elements').prepend('<a class="breadcrumb-elements-toggle"><i class="icon-menu-open"></i></a>'); 78 79 80 // Toggle visible state of breadcrumb elements 81 $('.breadcrumb-elements-toggle').on('click', function() { 82 $(this).parent().children('.breadcrumb-elements').toggleClass('visible-elements'); 83 }); 84 85 86 87 88 // ======================================== 89 // 90 // Navbar 91 // 92 // ======================================== 93 94 95 // Navbar navigation 96 // ------------------------- 97 98 // Prevent dropdown from closing on click 99 $(document).on('click', '.dropdown-content', function (e) { 100 e.stopPropagation(); 101 }); 102 103 // Disabled links 104 $('.navbar-nav .disabled a').on('click', function (e) { 105 e.preventDefault(); 106 e.stopPropagation(); 107 }); 108 109 // Show tabs inside dropdowns 110 $('.dropdown-content a[data-toggle="tab"]').on('click', function (e) { 111 $(this).tab('show'); 112 }); 113 114 115 116 117 // ======================================== 118 // 119 // Element controls 120 // 121 // ======================================== 122 123 124 // Reload elements 125 // ------------------------- 126 127 // Panels 128 $('.panel [data-action=reload]').click(function (e) { 129 e.preventDefault(); 130 var block = $(this).parent().parent().parent().parent().parent(); 131 $(block).block({ 132 message: '<i class="icon-spinner2 spinner"></i>', 133 overlayCSS: { 134 backgroundColor: '#fff', 135 opacity: 0.8, 136 cursor: 'wait', 137 'box-shadow': '0 0 0 1px #ddd' 138 }, 139 css: { 140 border: 0, 141 padding: 0, 142 backgroundColor: 'none' 143 } 144 }); 145 146 // For demo purposes 147 window.setTimeout(function () { 148 $(block).unblock(); 149 }, 2000); 150 }); 151 152 153 // Sidebar categories 154 $('.category-title [data-action=reload]').click(function (e) { 155 e.preventDefault(); 156 var block = $(this).parent().parent().parent().parent(); 157 $(block).block({ 158 message: '<i class="icon-spinner2 spinner"></i>', 159 overlayCSS: { 160 backgroundColor: '#000', 161 opacity: 0.5, 162 cursor: 'wait', 163 'box-shadow': '0 0 0 1px #000' 164 }, 165 css: { 166 border: 0, 167 padding: 0, 168 backgroundColor: 'none', 169 color: '#fff' 170 } 171 }); 172 173 // For demo purposes 174 window.setTimeout(function () { 175 $(block).unblock(); 176 }, 2000); 177 }); 178 179 180 // Light sidebar categories 181 $('.sidebar-default .category-title [data-action=reload]').click(function (e) { 182 e.preventDefault(); 183 var block = $(this).parent().parent().parent().parent(); 184 $(block).block({ 185 message: '<i class="icon-spinner2 spinner"></i>', 186 overlayCSS: { 187 backgroundColor: '#fff', 188 opacity: 0.8, 189 cursor: 'wait', 190 'box-shadow': '0 0 0 1px #ddd' 191 }, 192 css: { 193 border: 0, 194 padding: 0, 195 backgroundColor: 'none' 196 } 197 }); 198 199 // For demo purposes 200 window.setTimeout(function () { 201 $(block).unblock(); 202 }, 2000); 203 }); 204 205 206 207 // Collapse elements 208 // ------------------------- 209 210 // 211 // Sidebar categories 212 // 213 214 // Hide if collapsed by default 215 $('.category-collapsed').children('.category-content').hide(); 216 217 218 // Rotate icon if collapsed by default 219 $('.category-collapsed').find('[data-action=collapse]').addClass('rotate-180'); 220 221 222 // Collapse on click 223 $('.category-title [data-action=collapse]').click(function (e) { 224 e.preventDefault(); 225 var $categoryCollapse = $(this).parent().parent().parent().nextAll(); 226 $(this).parents('.category-title').toggleClass('category-collapsed'); 227 $(this).toggleClass('rotate-180'); 228 229 containerHeight(); // adjust page height 230 231 $categoryCollapse.slideToggle(150); 232 }); 233 234 235 // 236 // Panels 237 // 238 239 // Hide if collapsed by default 240 $('.panel-collapsed').children('.panel-heading').nextAll().hide(); 241 242 243 // Rotate icon if collapsed by default 244 $('.panel-collapsed').find('[data-action=collapse]').addClass('rotate-180'); 245 246 247 // Collapse on click 248 $('.panel [data-action=collapse]').click(function (e) { 249 e.preventDefault(); 250 var $panelCollapse = $(this).parent().parent().parent().parent().nextAll(); 251 $(this).parents('.panel').toggleClass('panel-collapsed'); 252 $(this).toggleClass('rotate-180'); 253 254 containerHeight(); // recalculate page height 255 256 $panelCollapse.slideToggle(150); 257 }); 258 259 260 261 // Remove elements 262 // ------------------------- 263 264 // Panels 265 $('.panel [data-action=close]').click(function (e) { 266 e.preventDefault(); 267 var $panelClose = $(this).parent().parent().parent().parent().parent(); 268 269 containerHeight(); // recalculate page height 270
271 $panelClose.slideUp(150, function() { 272 $(this).remove(); 273 }); 274 }); 275 276 277 // Sidebar categories 278 $('.category-title [data-action=close]').click(function (e) { 279 e.preventDefault(); 280 var $categoryClose = $(this).parent().parent().parent().parent(); 281 282 containerHeight(); // recalculate page height 283 284 $categoryClose.slideUp(150, function() { 285 $(this).remove(); 286 }); 287 }); 288 289 290 291 292 // ======================================== 293 // 294 // Main navigation 295 // 296 // ======================================== 297 298 299 // Main navigation 300 // ------------------------- 301 302 // Add 'active' class to parent list item in all levels 303 $('.navigation').find('li.active').parents('li').addClass('active'); 304 305 // Hide all nested lists 306 $('.navigation').find('li').not('.active, .category-title').has('ul').children('ul').addClass('hidden-ul'); 307 308 // Highlight children links 309 $('.navigation').find('li').has('ul').children('a').addClass('has-ul'); 310 311 // Add active state to all dropdown parent levels 312 $('.dropdown-menu:not(.dropdown-content), .dropdown-menu:not(.dropdown-content) .dropdown-submenu').has('li.active').addClass('active').parents('.navbar-nav .dropdown:not(.language-switch), .navbar-nav .dropup:not(.language-switch)').addClass('active'); 313 314 315 316 // Main navigation tooltips positioning 317 // ------------------------- 318 319 // Left sidebar 320 $('.navigation-main > .navigation-header > i').tooltip({ 321 placement: 'right', 322 container: 'body' 323 }); 324 325 326 327 // Collapsible functionality 328 // ------------------------- 329 330 // Main navigation 331 $('.navigation-main').find('li').has('ul').children('a').on('click', function (e) { 332 e.preventDefault(); 333 334 // Collapsible 335 $(this).parent('li').not('.disabled').not($('.sidebar-xs').not('.sidebar-xs-indicator').find('.navigation-main').children('li')).toggleClass('active').children('ul').slideToggle(250); 336 337 // Accordion 338 if ($('.navigation-main').hasClass('navigation-accordion')) { 339 $(this).parent('li').not('.disabled').not($('.sidebar-xs').not('.sidebar-xs-indicator').find('.navigation-main').children('li')).siblings(':has(.has-ul)').removeClass('active').children('ul').slideUp(250); 340 } 341 }); 342 343 344 // Alternate navigation 345 $('.navigation-alt').find('li').has('ul').children('a').on('click', function (e) { 346 e.preventDefault(); 347 348 // Collapsible 349 $(this).parent('li').not('.disabled').toggleClass('active').children('ul').slideToggle(200); 350 351 // Accordion 352 if ($('.navigation-alt').hasClass('navigation-accordion')) { 353 $(this).parent('li').not('.disabled').siblings(':has(.has-ul)').removeClass('active').children('ul').slideUp(200); 354 } 355 }); 356 357 358 359 360 // ======================================== 361 // 362 // Sidebars 363 // 364 // ======================================== 365 366 367 // Mini sidebar 368 // ------------------------- 369 370 // Toggle mini sidebar 371 $('.sidebar-main-toggle').on('click', function (e) { 372 e.preventDefault(); 373 374 // Toggle min sidebar class 375 $('body').toggleClass('sidebar-xs'); 376 }); 377 378 379 380 // Sidebar controls 381 // ------------------------- 382 383 // Disable click in disabled navigation items 384 $(document).on('click', '.navigation .disabled a', function (e) { 385 e.preventDefault(); 386 }); 387 388 389 // Adjust page height on sidebar control button click 390 $(document).on('click', '.sidebar-control', function (e) { 391 containerHeight(); 392 }); 393 394 395 // Hide main sidebar in Dual Sidebar 396 $(document).on('click', '.sidebar-main-hide', function (e) { 397 e.preventDefault(); 398 $('body').toggleClass('sidebar-main-hidden'); 399 }); 400 401 402 // Toggle second sidebar in Dual Sidebar 403 $(document).on('click', '.sidebar-secondary-hide', function (e) { 404 e.preventDefault(); 405 $('body').toggleClass('sidebar-secondary-hidden'); 406 }); 407 408 409 // Hide detached sidebar 410 $(document).on('click', '.sidebar-detached-hide', function (e) { 411 e.preventDefault(); 412 $('body').toggleClass('sidebar-detached-hidden'); 413 }); 414 415 416 // Hide all sidebars 417 $(document).on('click', '.sidebar-all-hide', function (e) { 418 e.preventDefault(); 419 420 $('body').toggleClass('sidebar-all-hidden'); 421 }); 422 423 424 425 // 426 // Opposite sidebar 427 // 428 429 // Collapse main sidebar if opposite sidebar is visible 430 $(document).on('click', '.sidebar-opposite-toggle', function (e) { 431 e.preventDefault(); 432 433 // Opposite sidebar visibility 434 $('body').toggleClass('sidebar-opposite-visible'); 435 436 // If visible 437 if ($('body').hasClass('sidebar-opposite-visible')) { 438 439 // Make main sidebar mini 440 $('body').addClass('sidebar-xs'); 441 442 // Hide children lists 443 $('.navigation-main').children('li').children('ul').css('display', ''); 444 } 445 else { 446 447 // Make main sidebar default 448 $('body').removeClass('sidebar-xs'); 449 } 450 }); 451 452 453 // Hide main sidebar if opposite sidebar is shown 454 $(document).on('click', '.sidebar-opposite-main-hide', function (e) { 455 e.preventDefault(); 456 457 // Opposite sidebar visibility 458 $('body').toggleClass('sidebar-opposite-visible'); 459 460 // If visible 461 if ($('body').hasClass('sidebar-opposite-visible')) { 462 463 // Hide main sidebar 464 $('body').addClass('sidebar-main-hidden'); 465 } 466 else { 467 468 // Show main sidebar 469 $('body').removeClass('sidebar-main-hidden'); 470 } 471 }); 472 473 474 // Hide secondary sidebar if opposite sidebar is shown 475 $(document).on('click', '.sidebar-opposite-secondary-hide', function (e) { 476 e.preventDefault(); 477 478 // Opposite sidebar visibility 479 $('body').toggleClass('sidebar-opposite-visible'); 480 481 // If visible 482 if ($('body').hasClass('sidebar-opposite-visible')) { 483 484 // Hide secondary 485 $('body').addClass('sidebar-secondary-hidden'); 486 487 } 488 else { 489 490 // Show secondary 491 $('body').removeClass('sidebar-secondary-hidden'); 492 } 493 }); 494 495 496 // Hide all sidebars if opposite sidebar is shown 497 $(document).on('click', '.sidebar-opposite-hide', function (e) { 498 e.preventDefault(); 499 500 // Toggle sidebars visibility 501 $('body').toggleClass('sidebar-all-hidden'); 502 503 // If hidden 504 if ($('body').hasClass('sidebar-all-hidden')) { 505 506 // Show opposite 507 $('body').addClass('sidebar-opposite-visible'); 508 509 // Hide children lists 510 $('.navigation-main').children('li').children('ul').css('display', ''); 511 } 512 else { 513 514 // Hide opposite 515 $('body').removeClass('sidebar-opposite-visible'); 516 } 517 }); 518 519 520 // Keep the width of the main sidebar if opposite sidebar is visible 521 $(document).on('click', '.sidebar-opposite-fix', function (e) { 522 e.preventDefault(); 523 524 // Toggle opposite sidebar visibility 525 $('body').toggleClass('sidebar-opposite-visible'); 526 }); 527 528 529 530 // Mobile sidebar controls 531 // ------------------------- 532 533 // Toggle main sidebar 534 $('.sidebar-mobile-main-toggle').on('click', function (e) { 535 e.preventDefault(); 536 $('body').toggleClass('sidebar-mobile-main').removeClass('sidebar-mobile-secondary sidebar-mobile-opposite sidebar-mobile-detached'); 537 }); 538 539 540 // Toggle secondary sidebar 541 $('.sidebar-mobile-secondary-toggle').on('click', function (e) { 542 e.preventDefault(); 543 $('body').toggleClass('sidebar-mobile-secondary').removeClass('sidebar-mobile-main sidebar-mobile-opposite sidebar-mobile-detached'); 544 }); 545 546 547 // Toggle opposite sidebar 548 $('.sidebar-mobile-opposite-toggle').on('click', function (e) { 549 e.preventDefault(); 550 $('body').toggleClass('sidebar-mobile-opposite').removeClass('sidebar-mobile-main sidebar-mobile-secondary sidebar-mobile-detached'); 551 }); 552 553 554 // Toggle detached sidebar 555 $('.sidebar-mobile-detached-toggle').on('click', function (e) { 556 e.preventDefault(); 557 $('body').toggleClass('sidebar-mobile-detached').removeClass('sidebar-mobile-main sidebar-mobile-secondary sidebar-mobile-opposite'); 558 }); 559 560 561 562 // Mobile sidebar setup 563 // ------------------------- 564 565 $(window).on('resize', function() { 566 setTimeout(function() { 567 containerHeight(); 568 569 if($(window).width() <= 768) { 570 571 // Add mini sidebar indicator 572 $('body').addClass('sidebar-xs-indicator'); 573 574 // Place right sidebar before content 575 $('.sidebar-opposite').insertBefore('.content-wrapper'); 576 577 // Place detached sidebar before content 578 $('.sidebar-detached').insertBefore('.content-wrapper'); 579 580 // Add mouse events for dropdown submenus 581 $('.dropdown-submenu').on('mouseenter', function() { 582 $(this).children('.dropdown-menu').addClass('show'); 583 }).on('mouseleave', function() { 584 $(this).children('.dropdown-menu').removeClass('show'); 585 }); 586 } 587 else { 588 589 // Remove mini sidebar indicator 590 $('body').removeClass('sidebar-xs-indicator'); 591 592 // Revert back right sidebar 593 $('.sidebar-opposite').insertAfter('.content-wrapper'); 594 595 // Remove all mobile sidebar classes 596 $('body').removeClass('sidebar-mobile-main sidebar-mobile-secondary sidebar-mobile-detached sidebar-mobile-opposite'); 597 598 // Revert left detached position 599 if($('body').hasClass('has-detached-left')) { 600 $('.sidebar-detached').insertBefore('.container-detached'); 601 } 602 603 // Revert right detached position 604 else if($('body').hasClass('has-detached-right')) { 605 $('.sidebar-detached').insertAfter('.container-detached'); 606 } 607 608 // Remove visibility of heading elements on desktop 609 $('.page-header-content, .panel-heading, .panel-footer').removeClass('has-visible-elements'); 610 $('.heading-elements').removeClass('visible-elements'); 611 612 // Disable appearance of dropdown submenus 613 $('.dropdown-submenu').children('.dropdown-menu').removeClass('show'); 614 } 615 }, 100); 616 }).resize(); 617 618 619 620 621 // ======================================== 622 // 623 // Other code 624 // 625 // ======================================== 626 627 628 // Plugins 629 // ------------------------- 630 631 // Popover 632 $('[data-popup="popover"]').popover(); 633 634 635 // Tooltip 636 $('[data-popup="tooltip"]').tooltip(); 637 638});
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.