powerdns-admin/app/static/admin/layout/scripts/demo.js
2015-12-13 16:34:12 +07:00

286 lines
11 KiB
JavaScript

/**
Demo script to handle the theme demo
**/
var Demo = function() {
// Handle Theme Settings
var handleTheme = function() {
var panel = $('.theme-panel');
if ($('body').hasClass('page-boxed') === false) {
$('.layout-option', panel).val("fluid");
}
$('.sidebar-option', panel).val("default");
$('.page-header-option', panel).val("fixed");
$('.page-footer-option', panel).val("default");
if ($('.sidebar-pos-option').attr("disabled") === false) {
$('.sidebar-pos-option', panel).val(Metronic.isRTL() ? 'right' : 'left');
}
//handle theme layout
var resetLayout = function() {
$("body").
removeClass("page-boxed").
removeClass("page-footer-fixed").
removeClass("page-sidebar-fixed").
removeClass("page-header-fixed").
removeClass("page-sidebar-reversed");
$('.page-header > .page-header-inner').removeClass("container");
if ($('.page-container').parent(".container").size() === 1) {
$('.page-container').insertAfter('body > .clearfix');
}
if ($('.page-footer > .container').size() === 1) {
$('.page-footer').html($('.page-footer > .container').html());
} else if ($('.page-footer').parent(".container").size() === 1) {
$('.page-footer').insertAfter('.page-container');
$('.scroll-to-top').insertAfter('.page-footer');
}
$(".top-menu > .navbar-nav > li.dropdown").removeClass("dropdown-dark");
$('body > .container').remove();
};
var lastSelectedLayout = '';
var setLayout = function() {
var layoutOption = $('.layout-option', panel).val();
var sidebarOption = $('.sidebar-option', panel).val();
var headerOption = $('.page-header-option', panel).val();
var footerOption = $('.page-footer-option', panel).val();
var sidebarPosOption = $('.sidebar-pos-option', panel).val();
var sidebarStyleOption = $('.sidebar-style-option', panel).val();
var sidebarMenuOption = $('.sidebar-menu-option', panel).val();
var headerTopDropdownStyle = $('.page-header-top-dropdown-style-option', panel).val();
if (sidebarOption == "fixed" && headerOption == "default") {
alert('Default Header with Fixed Sidebar option is not supported. Proceed with Fixed Header with Fixed Sidebar.');
$('.page-header-option', panel).val("fixed");
$('.sidebar-option', panel).val("fixed");
sidebarOption = 'fixed';
headerOption = 'fixed';
}
resetLayout(); // reset layout to default state
if (layoutOption === "boxed") {
$("body").addClass("page-boxed");
// set header
$('.page-header > .page-header-inner').addClass("container");
var cont = $('body > .clearfix').after('<div class="container"></div>');
// set content
$('.page-container').appendTo('body > .container');
// set footer
if (footerOption === 'fixed') {
$('.page-footer').html('<div class="container">' + $('.page-footer').html() + '</div>');
} else {
$('.page-footer').appendTo('body > .container');
}
}
if (lastSelectedLayout != layoutOption) {
//layout changed, run responsive handler:
Metronic.runResizeHandlers();
}
lastSelectedLayout = layoutOption;
//header
if (headerOption === 'fixed') {
$("body").addClass("page-header-fixed");
$(".page-header").removeClass("navbar-static-top").addClass("navbar-fixed-top");
} else {
$("body").removeClass("page-header-fixed");
$(".page-header").removeClass("navbar-fixed-top").addClass("navbar-static-top");
}
//sidebar
if ($('body').hasClass('page-full-width') === false) {
if (sidebarOption === 'fixed') {
$("body").addClass("page-sidebar-fixed");
$("page-sidebar-menu").addClass("page-sidebar-menu-fixed");
$("page-sidebar-menu").removeClass("page-sidebar-menu-default");
Layout.initFixedSidebarHoverEffect();
} else {
$("body").removeClass("page-sidebar-fixed");
$("page-sidebar-menu").addClass("page-sidebar-menu-default");
$("page-sidebar-menu").removeClass("page-sidebar-menu-fixed");
$('.page-sidebar-menu').unbind('mouseenter').unbind('mouseleave');
}
}
// top dropdown style
if (headerTopDropdownStyle === 'dark') {
$(".top-menu > .navbar-nav > li.dropdown").addClass("dropdown-dark");
} else {
$(".top-menu > .navbar-nav > li.dropdown").removeClass("dropdown-dark");
}
//footer
if (footerOption === 'fixed') {
$("body").addClass("page-footer-fixed");
} else {
$("body").removeClass("page-footer-fixed");
}
//sidebar style
if (sidebarStyleOption === 'light') {
$(".page-sidebar-menu").addClass("page-sidebar-menu-light");
} else {
$(".page-sidebar-menu").removeClass("page-sidebar-menu-light");
}
//sidebar menu
if (sidebarMenuOption === 'hover') {
if (sidebarOption == 'fixed') {
$('.sidebar-menu-option', panel).val("accordion");
alert("Hover Sidebar Menu is not compatible with Fixed Sidebar Mode. Select Default Sidebar Mode Instead.");
} else {
$(".page-sidebar-menu").addClass("page-sidebar-menu-hover-submenu");
}
} else {
$(".page-sidebar-menu").removeClass("page-sidebar-menu-hover-submenu");
}
//sidebar position
if (Metronic.isRTL()) {
if (sidebarPosOption === 'left') {
$("body").addClass("page-sidebar-reversed");
$('#frontend-link').tooltip('destroy').tooltip({
placement: 'right'
});
} else {
$("body").removeClass("page-sidebar-reversed");
$('#frontend-link').tooltip('destroy').tooltip({
placement: 'left'
});
}
} else {
if (sidebarPosOption === 'right') {
$("body").addClass("page-sidebar-reversed");
$('#frontend-link').tooltip('destroy').tooltip({
placement: 'left'
});
} else {
$("body").removeClass("page-sidebar-reversed");
$('#frontend-link').tooltip('destroy').tooltip({
placement: 'right'
});
}
}
Layout.fixContentHeight(); // fix content height
Layout.initFixedSidebar(); // reinitialize fixed sidebar
};
// handle theme colors
var setColor = function(color) {
var color_ = (Metronic.isRTL() ? color + '-rtl' : color);
$('#style_color').attr("href", Layout.getLayoutCssPath() + 'themes/' + color_ + ".css");
if (color == 'light2') {
$('.page-logo img').attr('src', Layout.getLayoutImgPath() + 'logo-invert.png');
} else {
$('.page-logo img').attr('src', Layout.getLayoutImgPath() + 'logo.png');
}
};
$('.toggler', panel).click(function() {
$('.toggler').hide();
$('.toggler-close').show();
$('.theme-panel > .theme-options').show();
});
$('.toggler-close', panel).click(function() {
$('.toggler').show();
$('.toggler-close').hide();
$('.theme-panel > .theme-options').hide();
});
$('.theme-colors > ul > li', panel).click(function() {
var color = $(this).attr("data-style");
setColor(color);
$('ul > li', panel).removeClass("current");
$(this).addClass("current");
});
// set default theme options:
if ($("body").hasClass("page-boxed")) {
$('.layout-option', panel).val("boxed");
}
if ($("body").hasClass("page-sidebar-fixed")) {
$('.sidebar-option', panel).val("fixed");
}
if ($("body").hasClass("page-header-fixed")) {
$('.page-header-option', panel).val("fixed");
}
if ($("body").hasClass("page-footer-fixed")) {
$('.page-footer-option', panel).val("fixed");
}
if ($("body").hasClass("page-sidebar-reversed")) {
$('.sidebar-pos-option', panel).val("right");
}
if ($(".page-sidebar-menu").hasClass("page-sidebar-menu-light")) {
$('.sidebar-style-option', panel).val("light");
}
if ($(".page-sidebar-menu").hasClass("page-sidebar-menu-hover-submenu")) {
$('.sidebar-menu-option', panel).val("hover");
}
var sidebarOption = $('.sidebar-option', panel).val();
var headerOption = $('.page-header-option', panel).val();
var footerOption = $('.page-footer-option', panel).val();
var sidebarPosOption = $('.sidebar-pos-option', panel).val();
var sidebarStyleOption = $('.sidebar-style-option', panel).val();
var sidebarMenuOption = $('.sidebar-menu-option', panel).val();
$('.layout-option, .page-header-option, .page-header-top-dropdown-style-option, .sidebar-option, .page-footer-option, .sidebar-pos-option, .sidebar-style-option, .sidebar-menu-option', panel).change(setLayout);
};
// handle theme style
var setThemeStyle = function(style) {
var file = (style === 'rounded' ? 'components-rounded' : 'components');
file = (Metronic.isRTL() ? file + '-rtl' : file);
$('#style_components').attr("href", Metronic.getGlobalCssPath() + file + ".css");
if ($.cookie) {
$.cookie('layout-style-option', style);
}
};
return {
//main function to initiate the theme
init: function() {
// handles style customer tool
handleTheme();
// handle layout style change
$('.theme-panel .layout-style-option').change(function() {
setThemeStyle($(this).val());
});
// set layout style from cookie
if ($.cookie && $.cookie('layout-style-option') === 'rounded') {
setThemeStyle($.cookie('layout-style-option'));
$('.theme-panel .layout-style-option').val($.cookie('layout-style-option'));
}
}
};
}();