agile-admin.js 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235
  1. require('metismenu');
  2. require('jquery-slimscroll');
  3. require('./waves');
  4. let aaSettings = undefined;
  5. function loadSettings() {
  6. const settingsStr = sessionStorage.getItem('agile-admin') || '{}';
  7. aaSettings = JSON.parse(settingsStr);
  8. }
  9. function saveSettings() {
  10. sessionStorage.setItem('agile-admin', JSON.stringify(aaSettings));
  11. }
  12. // load settings from sessionStorage
  13. loadSettings();
  14. //Loads the correct sidebar on window load,
  15. //collapses the sidebar on window resize.
  16. // Sets the min-height of #page-wrapper to window size
  17. $(window).on("load resize", function () {
  18. let topOffset = 60;
  19. const width = (this.window.innerWidth > 0) ? this.window.innerWidth : this.screen.width;
  20. if (width < 768) {
  21. $('div.navbar-collapse').addClass('collapse');
  22. topOffset = 100; // 2-row-menu
  23. }
  24. else {
  25. $('div.navbar-collapse').removeClass('collapse');
  26. }
  27. let height = ((this.window.innerHeight > 0) ? this.window.innerHeight : this.screen.height) - 1;
  28. height = height - topOffset;
  29. if (height < 1) height = 1;
  30. if (height > topOffset) {
  31. $("#page-wrapper").css("min-height", (height) + "px");
  32. }
  33. });
  34. // This is for resize window
  35. $(window).on("load resize", function () {
  36. const width = (this.window.innerWidth > 0) ? this.window.innerWidth : this.screen.width;
  37. if (!aaSettings.isSidebarOpened || width < 1170) {
  38. $('body').addClass('content-wrapper');
  39. $(".open-close i").addClass('ti-menu');
  40. $(".open-close i").removeClass('ti-angle-left');
  41. $(".sidebar-nav, .slimScrollDiv").css("overflow-x", "visible").parent().css("overflow", "visible");
  42. }
  43. else {
  44. $('body').removeClass('content-wrapper');
  45. $(".open-close i").addClass('ti-angle-left');
  46. $(".open-close i").removeClass('ti-menu');
  47. }
  48. });
  49. $(document).ready(function () {
  50. $(function () {
  51. $(".preloader").fadeOut();
  52. $('#side-menu').metisMenu();
  53. });
  54. // Theme settings
  55. //Open-Close-right sidebar
  56. /*
  57. $(".right-side-toggle").click(function () {
  58. $(".right-sidebar").slideDown(50);
  59. $(".right-sidebar").toggleClass("shw-rside");
  60. // Fix header
  61. $(".fxhdr").click(function () {
  62. $("body").toggleClass("fix-header");
  63. });
  64. // Fix sidebar
  65. $(".fxsdr").click(function () {
  66. $("body").toggleClass("fix-sidebar");
  67. });
  68. // Service panel js
  69. if ($("body").hasClass("fix-header")) {
  70. $('.fxhdr').attr('checked', true);
  71. }
  72. else {
  73. $('.fxhdr').attr('checked', false);
  74. }
  75. if ($("body").hasClass("fix-sidebar")) {
  76. $('.fxsdr').attr('checked', true);
  77. }
  78. else {
  79. $('.fxsdr').attr('checked', false);
  80. }
  81. });
  82. */
  83. /*
  84. * comment out because 'a.active' breaks bootstrap tab -- 2018.03.10 Yuki Takei
  85. *
  86. $(function () {
  87. var url = window.location;
  88. var element = $('ul.nav a').filter(function () {
  89. return this.href == url || url.href.indexOf(this.href) == 0;
  90. }).addClass('active').parent().parent().addClass('in').parent();
  91. if (element.is('li')) {
  92. element.addClass('active');
  93. }
  94. });
  95. */
  96. // This is for click on open close button
  97. // Sidebar open close
  98. $(".open-close").on('click', function () {
  99. if ($("body").hasClass("content-wrapper")) {
  100. aaSettings.isSidebarOpened = true;
  101. saveSettings();
  102. $("body").trigger("resize");
  103. $(".sidebar-nav, .slimScrollDiv").css("overflow", "hidden").parent().css("overflow", "visible");
  104. $("body").removeClass("content-wrapper");
  105. $(".open-close i").addClass("ti-angle-left");
  106. $(".open-close i").removeClass("ti-menu");
  107. $(".logo span").show();
  108. }
  109. else {
  110. aaSettings.isSidebarOpened = false;
  111. saveSettings();
  112. $("body").trigger("resize");
  113. $(".sidebar-nav, .slimScrollDiv").css("overflow-x", "visible").parent().css("overflow", "visible");
  114. $("body").addClass("content-wrapper");
  115. $(".open-close i").addClass("ti-menu");
  116. $(".open-close i").removeClass("ti-angle-left");
  117. $(".logo span").hide();
  118. }
  119. });
  120. /*
  121. // Collapse Panels
  122. (function ($, window, document) {
  123. var panelSelector = '[data-perform="panel-collapse"]';
  124. $(panelSelector).each(function () {
  125. var $this = $(this)
  126. , parent = $this.closest('.panel')
  127. , wrapper = parent.find('.panel-wrapper')
  128. , collapseOpts = {
  129. toggle: false
  130. };
  131. if (!wrapper.length) {
  132. wrapper = parent.children('.panel-heading').nextAll().wrapAll('<div/>').parent().addClass('panel-wrapper');
  133. collapseOpts = {};
  134. }
  135. wrapper.collapse(collapseOpts).on('hide.bs.collapse', function () {
  136. $this.children('i').removeClass('ti-minus').addClass('ti-plus');
  137. }).on('show.bs.collapse', function () {
  138. $this.children('i').removeClass('ti-plus').addClass('ti-minus');
  139. });
  140. });
  141. $(document).on('click', panelSelector, function (e) {
  142. e.preventDefault();
  143. var parent = $(this).closest('.panel');
  144. var wrapper = parent.find('.panel-wrapper');
  145. wrapper.collapse('toggle');
  146. });
  147. }(jQuery, window, document));
  148. // Remove Panels
  149. (function ($, window, document) {
  150. var panelSelector = '[data-perform="panel-dismiss"]';
  151. $(document).on('click', panelSelector, function (e) {
  152. e.preventDefault();
  153. var parent = $(this).closest('.panel');
  154. removeElement();
  155. function removeElement() {
  156. var col = parent.parent();
  157. parent.remove();
  158. col.filter(function () {
  159. var el = $(this);
  160. return (el.is('[class*="col-"]') && el.children('*').length === 0);
  161. }).remove();
  162. }
  163. });
  164. }(jQuery, window, document));
  165. */
  166. //tooltip
  167. $(function () {
  168. $('[data-toggle="tooltip"]').tooltip()
  169. })
  170. //Popover
  171. $(function () {
  172. $('[data-toggle="popover"]').popover()
  173. })
  174. // Task
  175. $(".list-task li label").click(function () {
  176. $(this).toggleClass("task-done");
  177. });
  178. $(".settings_box a").click(function () {
  179. $("ul.theme_color").toggleClass("theme_block");
  180. });
  181. });
  182. //Colepsible toggle
  183. $(".collapseble").click(function () {
  184. $(".collapseblebox").fadeToggle(350);
  185. });
  186. // Sidebar
  187. $('.slimscrollright').slimScroll({
  188. height: '100%'
  189. , position: 'right'
  190. , size: "5px"
  191. , color: '#dcdcdc'
  192. , });
  193. $('.slimscrollsidebar').slimScroll({
  194. height: '100%'
  195. , position: 'right'
  196. , size: "0px"
  197. , color: '#dcdcdc'
  198. , });
  199. $('.chat-list').slimScroll({
  200. height: '100%'
  201. , position: 'right'
  202. , size: "0px"
  203. , color: '#dcdcdc'
  204. , });
  205. // Resize all elements
  206. $("body").trigger("resize");
  207. // visited ul li
  208. $('.visited li a').click(function (e) {
  209. $('.visited li').removeClass('active');
  210. var $parent = $(this).parent();
  211. if (!$parent.hasClass('active')) {
  212. $parent.addClass('active');
  213. }
  214. e.preventDefault();
  215. });
  216. // Login and recover password
  217. $('#to-recover').click(function () {
  218. $("#loginform").slideUp();
  219. $("#recoverform").fadeIn();
  220. });
  221. // Update 1.5
  222. // this is for close icon when navigation open in mobile view
  223. $(".navbar-toggle").click(function () {
  224. $(".navbar-toggle i").toggleClass("ti-menu");
  225. $(".navbar-toggle i").addClass("ti-close");
  226. });
  227. // Update 1.6