123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439 |
- $(document).ready(function () {
- //themes, change CSS with JS
- //default theme(CSS) is cerulean, change it if needed
- var defaultTheme = 'cerulean';
- var currentTheme = $.cookie('currentTheme') == null ? defaultTheme : $.cookie('currentTheme');
- var msie = navigator.userAgent.match(/msie/i);
- $.browser = {};
- $.browser.msie = {};
- switchTheme(currentTheme);
- $('.navbar-toggle').click(function (e) {
- e.preventDefault();
- $('.nav-sm').html($('.navbar-collapse').html());
- $('.sidebar-nav').toggleClass('active');
- $(this).toggleClass('active');
- });
- var $sidebarNav = $('.sidebar-nav');
- // Hide responsive navbar on clicking outside
- $(document).mouseup(function (e) {
- if (!$sidebarNav.is(e.target) // if the target of the click isn't the container...
- && $sidebarNav.has(e.target).length === 0
- && !$('.navbar-toggle').is(e.target)
- && $('.navbar-toggle').has(e.target).length === 0
- && $sidebarNav.hasClass('active')
- )// ... nor a descendant of the container
- {
- e.stopPropagation();
- $('.navbar-toggle').click();
- }
- });
- $('#themes a').click(function (e) {
- e.preventDefault();
- currentTheme = $(this).attr('data-value');
- $.cookie('currentTheme', currentTheme, {expires: 365});
- switchTheme(currentTheme);
- });
- function switchTheme(themeName) {
- if (themeName == 'classic') {
- $('#bs-css').attr('href', 'bower_components/bootstrap/dist/css/bootstrap.min.css');
- } else {
- $('#bs-css').attr('href', 'css/bootstrap-' + themeName + '.min.css');
- }
- $('#themes i').removeClass('glyphicon glyphicon-ok whitespace').addClass('whitespace');
- $('#themes a[data-value=' + themeName + ']').find('i').removeClass('whitespace').addClass('glyphicon glyphicon-ok');
- }
- //ajax menu checkbox
- var isAjaxObj = $('#is-ajax');
- isAjaxObj.click(function (e) {
- $.cookie('is-ajax', $(this).prop('checked'), {expires: 365});
- });
- isAjaxObj.prop('checked', $.cookie('is-ajax') === 'true' ? true : false);
- //disbaling some functions for Internet Explorer
- if (msie) {
- isAjaxObj.prop('checked', false);
- $('#for-is-ajax').hide();
- $('#toggle-fullscreen').hide();
- $('.login-box').find('.input-large').removeClass('span10');
- }
- //highlight current / active link
- $('ul.main-menu li a').each(function () {
- if ($($(this))[0].href == String(window.location))
- $(this).parent().addClass('active');
- });
- //establish history variables
- var
- History = window.History, // Note: We are using a capital H instead of a lower h
- State = History.getState(),
- $log = $('#log');
- //bind to State Change
- History.Adapter.bind(window, 'statechange', function () { // Note: We are using statechange instead of popstate
- var State = History.getState(); // Note: We are using History.getState() instead of event.state
- $.ajax({
- url: State.url,
- success: function (msg) {
- $('#content').html($(msg).find('#content').html());
- $('#loading').remove();
- $('#content').fadeIn();
- var newTitle = $(msg).filter('title').text();
- $('title').text(newTitle);
- docReady();
- }
- });
- });
- //ajaxify menus
- $('a.ajax-link').click(function (e) {
- if (msie) e.which = 1;
- var isChecked = isAjaxObj.prop('checked');
- var isActive = $(this).parent().hasClass('active');
- if (e.which != 1 || !isChecked || isActive) return;
- e.preventDefault();
- $('.sidebar-nav').removeClass('active');
- $('.navbar-toggle').removeClass('active');
- $('#loading').remove();
- $('#content').fadeOut().parent().append('<div id="loading" class="center">Loading...<div class="center"></div></div>');
- var $clink = $(this);
- History.pushState(null, null, $clink.attr('href'));
- $('ul.main-menu li.active').removeClass('active');
- $clink.parent('li').addClass('active');
- });
- $('.accordion > a').click(function (e) {
- e.preventDefault();
- var $ul = $(this).siblings('ul');
- var $li = $(this).parent();
- if ($ul.is(':visible')) $li.removeClass('active');
- else $li.addClass('active');
- $ul.slideToggle();
- });
- $('.accordion li.active:first').parents('ul').slideDown();
- //other things to do on document ready, separated for ajax calls
- docReady();
- });
- function docReady() {
- //prevent # links from moving to top
- $('a[href="#"][data-top!=true]').click(function (e) {
- e.preventDefault();
- });
- //notifications
- $('.noty').click(function (e) {
- e.preventDefault();
- var options = $.parseJSON($(this).attr('data-noty-options'));
- noty(options);
- });
- //chosen - improves select
- $('[data-rel="chosen"],[rel="chosen"]').chosen();
- //tabs
- $('#myTab a:first').tab('show');
- $('#myTab a').click(function (e) {
- e.preventDefault();
- $(this).tab('show');
- });
- //tooltip
- $('[data-toggle="tooltip"]').tooltip();
- //auto grow textarea
- $('textarea.autogrow').autogrow();
- //popover
- $('[data-toggle="popover"]').popover();
- //iOS / iPhone style toggle switch
- $('.iphone-toggle').iphoneStyle();
- //star rating
- $('.raty').raty({
- score: 4 //default stars
- });
- //uploadify - multiple uploads
- $('#file_upload').uploadify({
- 'swf': 'misc/uploadify.swf',
- 'uploader': 'misc/uploadify.php'
- // Put your options here
- });
- //gallery controls container animation
- $('ul.gallery li').hover(function () {
- $('img', this).fadeToggle(1000);
- $(this).find('.gallery-controls').remove();
- $(this).append('<div class="well gallery-controls">' +
- '<p><a href="#" class="gallery-edit btn"><i class="glyphicon glyphicon-edit"></i></a> <a href="#" class="gallery-delete btn"><i class="glyphicon glyphicon-remove"></i></a></p>' +
- '</div>');
- $(this).find('.gallery-controls').stop().animate({'margin-top': '-1'}, 400);
- }, function () {
- $('img', this).fadeToggle(1000);
- $(this).find('.gallery-controls').stop().animate({'margin-top': '-30'}, 200, function () {
- $(this).remove();
- });
- });
- //gallery image controls example
- //gallery delete
- $('.thumbnails').on('click', '.gallery-delete', function (e) {
- e.preventDefault();
- //get image id
- //alert($(this).parents('.thumbnail').attr('id'));
- $(this).parents('.thumbnail').fadeOut();
- });
- //gallery edit
- $('.thumbnails').on('click', '.gallery-edit', function (e) {
- e.preventDefault();
- //get image id
- //alert($(this).parents('.thumbnail').attr('id'));
- });
- //gallery colorbox
- $('.thumbnail a').colorbox({
- rel: 'thumbnail a',
- transition: "elastic",
- maxWidth: "95%",
- maxHeight: "95%",
- slideshow: true
- });
- //gallery fullscreen
- $('#toggle-fullscreen').button().click(function () {
- var button = $(this), root = document.documentElement;
- if (!button.hasClass('active')) {
- $('#thumbnails').addClass('modal-fullscreen');
- if (root.webkitRequestFullScreen) {
- root.webkitRequestFullScreen(
- window.Element.ALLOW_KEYBOARD_INPUT
- );
- } else if (root.mozRequestFullScreen) {
- root.mozRequestFullScreen();
- }
- } else {
- $('#thumbnails').removeClass('modal-fullscreen');
- (document.webkitCancelFullScreen ||
- document.mozCancelFullScreen ||
- $.noop).apply(document);
- }
- });
- //tour
- if ($('.tour').length && typeof(tour) == 'undefined') {
- var tour = new Tour();
- tour.addStep({
- element: "#content", /* html element next to which the step popover should be shown */
- placement: "top",
- title: "Custom Tour", /* title of the popover */
- content: "You can create tour like this. Click Next." /* content of the popover */
- });
- tour.addStep({
- element: ".theme-container",
- placement: "left",
- title: "Themes",
- content: "You change your theme from here."
- });
- tour.addStep({
- element: "ul.main-menu a:first",
- title: "Dashboard",
- content: "This is your dashboard from here you will find highlights."
- });
- tour.addStep({
- element: "#for-is-ajax",
- title: "Ajax",
- content: "You can change if pages load with Ajax or not."
- });
- tour.addStep({
- element: ".top-nav a:first",
- placement: "bottom",
- title: "Visit Site",
- content: "Visit your front end from here."
- });
- tour.restart();
- }
- //datatable
- $('.datatable').dataTable({
- "sDom": "<'row'<'col-md-6'l><'col-md-6'f>r>t<'row'<'col-md-12'i><'col-md-12 center-block'p>>",
- "sPaginationType": "bootstrap",
- "oLanguage": {
- "sLengthMenu": "_MENU_ records per page"
- }
- });
- $('.btn-close').click(function (e) {
- e.preventDefault();
- $(this).parent().parent().parent().fadeOut();
- });
- $('.btn-minimize').click(function (e) {
- e.preventDefault();
- var $target = $(this).parent().parent().next('.box-content');
- if ($target.is(':visible')) $('i', $(this)).removeClass('glyphicon-chevron-up').addClass('glyphicon-chevron-down');
- else $('i', $(this)).removeClass('glyphicon-chevron-down').addClass('glyphicon-chevron-up');
- $target.slideToggle();
- });
- $('.btn-setting').click(function (e) {
- e.preventDefault();
- $('#myModal').modal('show');
- });
- $('#calendar').fullCalendar({
- header: {
- left: 'prev,next today',
- center: 'title',
- right: 'month,agendaWeek,agendaDay'
- },
- defaultDate: '2014-06-12',
- events: [
- {
- title: 'All Day Event',
- start: '2014-06-01'
- },
- {
- title: 'Long Event',
- start: '2014-06-07',
- end: '2014-06-10'
- },
- {
- id: 999,
- title: 'Repeating Event',
- start: '2014-06-09T16:00:00'
- },
- {
- id: 999,
- title: 'Repeating Event',
- start: '2014-06-16T16:00:00'
- },
- {
- title: 'Meeting',
- start: '2014-06-12T10:30:00',
- end: '2014-06-12T12:30:00'
- },
- {
- title: 'Lunch',
- start: '2014-06-12T12:00:00'
- },
- {
- title: 'Birthday Party',
- start: '2014-06-13T07:00:00'
- },
- {
- title: 'Click for Google',
- url: 'http://google.com/',
- start: '2014-06-28'
- }
- ]
- });
- }
- //additional functions for data table
- $.fn.dataTableExt.oApi.fnPagingInfo = function (oSettings) {
- return {
- "iStart": oSettings._iDisplayStart,
- "iEnd": oSettings.fnDisplayEnd(),
- "iLength": oSettings._iDisplayLength,
- "iTotal": oSettings.fnRecordsTotal(),
- "iFilteredTotal": oSettings.fnRecordsDisplay(),
- "iPage": Math.ceil(oSettings._iDisplayStart / oSettings._iDisplayLength),
- "iTotalPages": Math.ceil(oSettings.fnRecordsDisplay() / oSettings._iDisplayLength)
- };
- }
- $.extend($.fn.dataTableExt.oPagination, {
- "bootstrap": {
- "fnInit": function (oSettings, nPaging, fnDraw) {
- var oLang = oSettings.oLanguage.oPaginate;
- var fnClickHandler = function (e) {
- e.preventDefault();
- if (oSettings.oApi._fnPageChange(oSettings, e.data.action)) {
- fnDraw(oSettings);
- }
- };
- $(nPaging).addClass('pagination').append(
- '<ul class="pagination">' +
- '<li class="prev disabled"><a href="#">← ' + oLang.sPrevious + '</a></li>' +
- '<li class="next disabled"><a href="#">' + oLang.sNext + ' → </a></li>' +
- '</ul>'
- );
- var els = $('a', nPaging);
- $(els[0]).bind('click.DT', { action: "previous" }, fnClickHandler);
- $(els[1]).bind('click.DT', { action: "next" }, fnClickHandler);
- },
- "fnUpdate": function (oSettings, fnDraw) {
- var iListLength = 5;
- var oPaging = oSettings.oInstance.fnPagingInfo();
- var an = oSettings.aanFeatures.p;
- var i, j, sClass, iStart, iEnd, iHalf = Math.floor(iListLength / 2);
- if (oPaging.iTotalPages < iListLength) {
- iStart = 1;
- iEnd = oPaging.iTotalPages;
- }
- else if (oPaging.iPage <= iHalf) {
- iStart = 1;
- iEnd = iListLength;
- } else if (oPaging.iPage >= (oPaging.iTotalPages - iHalf)) {
- iStart = oPaging.iTotalPages - iListLength + 1;
- iEnd = oPaging.iTotalPages;
- } else {
- iStart = oPaging.iPage - iHalf + 1;
- iEnd = iStart + iListLength - 1;
- }
- for (i = 0, iLen = an.length; i < iLen; i++) {
- // remove the middle elements
- $('li:gt(0)', an[i]).filter(':not(:last)').remove();
- // add the new list items and their event handlers
- for (j = iStart; j <= iEnd; j++) {
- sClass = (j == oPaging.iPage + 1) ? 'class="active"' : '';
- $('<li ' + sClass + '><a href="#">' + j + '</a></li>')
- .insertBefore($('li:last', an[i])[0])
- .bind('click', function (e) {
- e.preventDefault();
- oSettings._iDisplayStart = (parseInt($('a', this).text(), 10) - 1) * oPaging.iLength;
- fnDraw(oSettings);
- });
- }
- // add / remove disabled classes from the static elements
- if (oPaging.iPage === 0) {
- $('li:first', an[i]).addClass('disabled');
- } else {
- $('li:first', an[i]).removeClass('disabled');
- }
- if (oPaging.iPage === oPaging.iTotalPages - 1 || oPaging.iTotalPages === 0) {
- $('li:last', an[i]).addClass('disabled');
- } else {
- $('li:last', an[i]).removeClass('disabled');
- }
- }
- }
- }
- });
|