customizer.js 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255
  1. /**
  2. Demo script to handle the theme demo
  3. **/
  4. var Customizer = function () {
  5. // Handle Theme Settings
  6. var handleTheme = function () {
  7. var panel = $('.theme-panel');
  8. if ($('body').hasClass('page-boxed') == false) {
  9. $('.layout-option', panel).val("fluid");
  10. }
  11. $('.sidebar-option', panel).val("default");
  12. $('.page-header-option', panel).val("fixed");
  13. $('.page-footer-option', panel).val("default");
  14. if ($('.sidebar-pos-option').attr("disabled") === false) {
  15. $('.sidebar-pos-option', panel).val(Metronic.isRTL() ? 'right' : 'left');
  16. }
  17. //handle theme layout
  18. var resetLayout = function () {
  19. $("body").
  20. removeClass("page-boxed").
  21. removeClass("page-footer-fixed").
  22. removeClass("page-sidebar-fixed").
  23. removeClass("page-header-fixed").
  24. removeClass("page-sidebar-reversed");
  25. $('.page-header > .page-header-inner').removeClass("container");
  26. if ($('.page-container').parent(".container").size() === 1) {
  27. $('.page-container').insertAfter('body > .clearfix');
  28. }
  29. if ($('.page-footer > .container').size() === 1) {
  30. $('.page-footer').html($('.page-footer > .container').html());
  31. } else if ($('.page-footer').parent(".container").size() === 1) {
  32. $('.page-footer').insertAfter('.page-container');
  33. }
  34. $('body > .container').remove();
  35. }
  36. var lastSelectedLayout = '';
  37. var setLayout = function () {
  38. var layoutOption = $('.layout-option', panel).val();
  39. var sidebarOption = $('.sidebar-option', panel).val();
  40. var headerOption = $('.page-header-option', panel).val();
  41. var footerOption = $('.page-footer-option', panel).val();
  42. var sidebarPosOption = $('.sidebar-pos-option', panel).val();
  43. var sidebarStyleOption = $('.sidebar-style-option', panel).val();
  44. var sidebarMenuOption = $('.sidebar-menu-option', panel).val();
  45. if (sidebarOption == "fixed" && headerOption == "default") {
  46. alert('Default Header with Fixed Sidebar option is not supported. Proceed with Fixed Header with Fixed Sidebar.');
  47. $('.page-header-option', panel).val("fixed");
  48. $('.sidebar-option', panel).val("fixed");
  49. sidebarOption = 'fixed';
  50. headerOption = 'fixed';
  51. }
  52. resetLayout(); // reset layout to default state
  53. if (layoutOption === "boxed") {
  54. $("body").addClass("page-boxed");
  55. // set header
  56. $('.page-header > .page-header-inner').addClass("container");
  57. var cont = $('body > .clearfix').after('<div class="container"></div>');
  58. // set content
  59. $('.page-container').appendTo('body > .container');
  60. // set footer
  61. if (footerOption === 'fixed') {
  62. $('.page-footer').html('<div class="container">' + $('.page-footer').html() + '</div>');
  63. } else {
  64. $('.page-footer').appendTo('body > .container');
  65. }
  66. }
  67. if (lastSelectedLayout != layoutOption) {
  68. //layout changed, run responsive handler:
  69. Metronic.runResizeHandlers();
  70. }
  71. lastSelectedLayout = layoutOption;
  72. //header
  73. if (headerOption === 'fixed') {
  74. $("body").addClass("page-header-fixed");
  75. $(".page-header").removeClass("navbar-static-top").addClass("navbar-fixed-top");
  76. } else {
  77. $("body").removeClass("page-header-fixed");
  78. $(".page-header").removeClass("navbar-fixed-top").addClass("navbar-static-top");
  79. }
  80. //sidebar
  81. if ($('body').hasClass('page-full-width') === false) {
  82. if (sidebarOption === 'fixed') {
  83. $("body").addClass("page-sidebar-fixed");
  84. $("page-sidebar-menu").addClass("page-sidebar-menu-fixed");
  85. $("page-sidebar-menu").removeClass("page-sidebar-menu-default");
  86. Layout.initFixedSidebarHoverEffect();
  87. } else {
  88. $("body").removeClass("page-sidebar-fixed");
  89. $("page-sidebar-menu").addClass("page-sidebar-menu-default");
  90. $("page-sidebar-menu").removeClass("page-sidebar-menu-fixed");
  91. $('.page-sidebar-menu').unbind('mouseenter').unbind('mouseleave');
  92. }
  93. }
  94. //footer
  95. if (footerOption === 'fixed') {
  96. $("body").addClass("page-footer-fixed");
  97. } else {
  98. $("body").removeClass("page-footer-fixed");
  99. }
  100. //sidebar style
  101. if (sidebarStyleOption === 'light') {
  102. $(".page-sidebar-menu").addClass("page-sidebar-menu-light");
  103. } else {
  104. $(".page-sidebar-menu").removeClass("page-sidebar-menu-light");
  105. }
  106. //sidebar menu
  107. if (sidebarMenuOption === 'hover') {
  108. if (sidebarOption == 'fixed') {
  109. $('.sidebar-menu-option', panel).val("accordion");
  110. alert("Hover Sidebar Menu is not compatible with Fixed Sidebar Mode. Select Default Sidebar Mode Instead.");
  111. } else {
  112. $(".page-sidebar-menu").addClass("page-sidebar-menu-hover-submenu");
  113. }
  114. } else {
  115. $(".page-sidebar-menu").removeClass("page-sidebar-menu-hover-submenu");
  116. }
  117. //sidebar position
  118. if (Metronic.isRTL()) {
  119. if (sidebarPosOption === 'left') {
  120. $("body").addClass("page-sidebar-reversed");
  121. $('#frontend-link').tooltip('destroy').tooltip({
  122. placement: 'right'
  123. });
  124. } else {
  125. $("body").removeClass("page-sidebar-reversed");
  126. $('#frontend-link').tooltip('destroy').tooltip({
  127. placement: 'left'
  128. });
  129. }
  130. } else {
  131. if (sidebarPosOption === 'right') {
  132. $("body").addClass("page-sidebar-reversed");
  133. $('#frontend-link').tooltip('destroy').tooltip({
  134. placement: 'left'
  135. });
  136. } else {
  137. $("body").removeClass("page-sidebar-reversed");
  138. $('#frontend-link').tooltip('destroy').tooltip({
  139. placement: 'right'
  140. });
  141. }
  142. }
  143. Layout.fixContentHeight(); // fix content height
  144. Layout.initFixedSidebar(); // reinitialize fixed sidebar
  145. }
  146. // handle theme colors
  147. var setColor = function (color) {
  148. var color_ = (Metronic.isRTL() ? color + '-rtl' : color);
  149. $('#style_color').attr("href", Layout.getLayoutCssPath() + 'themes/' + color_ + ".css");
  150. if (color == 'light2') {
  151. $('.page-logo img').attr('src', Layout.getLayoutImgPath() + 'logo-invert.png');
  152. } else {
  153. $('.page-logo img').attr('src', Layout.getLayoutImgPath() + 'logo.png');
  154. }
  155. }
  156. $('.toggler', panel).click(function () {
  157. $('.toggler').hide();
  158. $('.toggler-close').show();
  159. $('.theme-panel > .theme-options').show();
  160. });
  161. $('.toggler-close', panel).click(function () {
  162. $('.toggler').show();
  163. $('.toggler-close').hide();
  164. $('.theme-panel > .theme-options').hide();
  165. });
  166. $('.theme-colors > ul > li', panel).click(function () {
  167. var color = $(this).attr("data-style");
  168. setColor(color);
  169. $('ul > li', panel).removeClass("current");
  170. $(this).addClass("current");
  171. });
  172. // set default theme options:
  173. if ($("body").hasClass("page-boxed")) {
  174. $('.layout-option', panel).val("boxed");
  175. }
  176. if ($("body").hasClass("page-sidebar-fixed")) {
  177. $('.sidebar-option', panel).val("fixed");
  178. }
  179. if ($("body").hasClass("page-header-fixed")) {
  180. $('.page-header-option', panel).val("fixed");
  181. }
  182. if ($("body").hasClass("page-footer-fixed")) {
  183. $('.page-footer-option', panel).val("fixed");
  184. }
  185. if ($("body").hasClass("page-sidebar-reversed")) {
  186. $('.sidebar-pos-option', panel).val("right");
  187. }
  188. if ($(".page-sidebar-menu").hasClass("page-sidebar-menu-light")) {
  189. $('.sidebar-style-option', panel).val("light");
  190. }
  191. if ($(".page-sidebar-menu").hasClass("page-sidebar-menu-hover-submenu")) {
  192. $('.sidebar-menu-option', panel).val("hover");
  193. }
  194. var sidebarOption = $('.sidebar-option', panel).val();
  195. var headerOption = $('.page-header-option', panel).val();
  196. var footerOption = $('.page-footer-option', panel).val();
  197. var sidebarPosOption = $('.sidebar-pos-option', panel).val();
  198. var sidebarStyleOption = $('.sidebar-style-option', panel).val();
  199. var sidebarMenuOption = $('.sidebar-menu-option', panel).val();
  200. $('.layout-option, .page-header-option, .sidebar-option, .page-footer-option, .sidebar-pos-option, .sidebar-style-option, .sidebar-menu-option', panel).change(setLayout);
  201. }
  202. //* END:CORE HANDLERS *//
  203. return {
  204. //main function to initiate the theme
  205. init: function () {
  206. handleTheme(); // handles style customer tool
  207. }
  208. };
  209. }();