demo.js 9.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319
  1. //[Preview Menu Javascript]
  2. //Project: Riday Admin - Responsive Admin Template
  3. //Primary use: This file is for demo purposes only.
  4. $(function () {
  5. 'use strict'
  6. /**
  7. * Get access to plugins
  8. */
  9. $('[data-toggle="control-sidebar"]').controlSidebar()
  10. $('[data-toggle="push-menu"]').pushMenu()
  11. var $pushMenu = $('[data-toggle="push-menu"]').data('lte.pushmenu')
  12. var $controlSidebar = $('[data-toggle="control-sidebar"]').data('lte.controlsidebar')
  13. var $layout = $('body').data('lte.layout')
  14. /**
  15. * List of all the available themes
  16. *
  17. * @type Array
  18. */
  19. var mySkins = [
  20. 'theme-primary',
  21. 'theme-secondary',
  22. 'theme-info',
  23. 'theme-success',
  24. 'theme-danger',
  25. 'theme-warning',
  26. ]
  27. /**
  28. * Get a prestored setting
  29. *
  30. * @param String name Name of of the setting
  31. * @returns String The value of the setting | null
  32. */
  33. function get(name) {
  34. if (typeof (Storage) !== 'undefined') {
  35. return localStorage.getItem(name)
  36. } else {
  37. window.alert('Please use a modern browser to properly view this template!')
  38. }
  39. }
  40. /**
  41. * Store a new settings in the browser
  42. *
  43. * @param String name Name of the setting
  44. * @param String val Value of the setting
  45. * @returns void
  46. */
  47. function store(name, val) {
  48. if (typeof (Storage) !== 'undefined') {
  49. localStorage.setItem(name, val)
  50. } else {
  51. window.alert('Please use a modern browser to properly view this template!')
  52. }
  53. }
  54. /**
  55. * Toggles layout classes
  56. *
  57. * @param String cls the layout class to toggle
  58. * @returns void
  59. */
  60. function changeLayout(cls) {
  61. $('body').toggleClass(cls)
  62. if ($('body').hasClass('fixed') && cls == 'fixed') {
  63. $pushMenu.expandOnHover()
  64. $layout.activate()
  65. }
  66. $controlSidebar.fix()
  67. }
  68. /**
  69. * Replaces the old skin with the new skin
  70. * @param String cls the new skin class
  71. * @returns Boolean false to prevent link's default action
  72. */
  73. function changeSkin(cls) {
  74. $.each(mySkins, function (i) {
  75. $('body').removeClass(mySkins[i])
  76. })
  77. $('body').addClass(cls)
  78. store('theme', cls)
  79. return false
  80. }
  81. /**
  82. * Retrieve default settings and apply them to the template
  83. *
  84. * @returns void
  85. */
  86. function setup() {
  87. var tmp = get('theme')
  88. if (tmp && $.inArray(tmp, mySkins))
  89. changeSkin(tmp)
  90. // Add the change skin listener
  91. $('[data-theme]').on('click', function (e) {
  92. if ($(this).hasClass('knob'))
  93. return
  94. e.preventDefault()
  95. changeSkin($(this).data('theme'))
  96. })
  97. // Add the layout manager
  98. $('[data-layout]').on('click', function () {
  99. changeLayout($(this).data('layout'))
  100. })
  101. $('[data-controlsidebar]').on('click', function () {
  102. changeLayout($(this).data('controlsidebar'))
  103. var slide = !$controlSidebar.options.slide
  104. $controlSidebar.options.slide = slide
  105. if (!slide)
  106. $('.control-sidebar').removeClass('control-sidebar-open')
  107. })
  108. $('[data-enable="expandOnHover"]').on('click', function () {
  109. $(this).attr('disabled', true)
  110. $pushMenu.expandOnHover()
  111. if (!$('body').hasClass('sidebar-collapse'))
  112. $('[data-layout="sidebar-collapse"]').click()
  113. })
  114. $('[data-enable="rtl"]').on('click', function () {
  115. $(this).attr('disabled', true)
  116. $pushMenu.expandOnHover()
  117. if (!$('body').hasClass('rtl'))
  118. $('[data-layout="rtl"]').click()
  119. })
  120. $('[data-mainsidebarskin="toggle"]').on('click', function () {
  121. var $sidebar = $('body')
  122. if ($sidebar.hasClass('dark-skin')) {
  123. $sidebar.removeClass('dark-skin')
  124. $sidebar.addClass('light-skin')
  125. } else {
  126. $sidebar.removeClass('light-skin')
  127. $sidebar.addClass('dark-skin')
  128. }
  129. })
  130. // Reset options
  131. if ($('body').hasClass('fixed')) {
  132. $('[data-layout="fixed"]').attr('checked', 'checked')
  133. }
  134. if ($('body').hasClass('layout-boxed')) {
  135. $('[data-layout="layout-boxed"]').attr('checked', 'checked')
  136. }
  137. if ($('body').hasClass('sidebar-collapse')) {
  138. $('[data-layout="sidebar-collapse"]').attr('checked', 'checked')
  139. }
  140. if ($('body').hasClass('rtl')) {
  141. $('[data-layout="rtl"]').attr('checked', 'checked')
  142. }
  143. // if ($('body').hasClass('dark')) {
  144. // $('[data-layout="dark"]').attr('checked', 'checked')
  145. // }
  146. }
  147. // Create the new tab
  148. var $tabPane = $('<div />', {
  149. 'id' : 'control-sidebar-theme-demo-options-tab',
  150. 'class': 'tab-pane active'
  151. })
  152. // Create the tab button
  153. var $tabButton = $('<li />', { 'class': 'nav-item' })
  154. .html('<a href=\'#control-sidebar-theme-demo-options-tab\' class=\'active\' data-toggle=\'tab\' title=\'Setting\'>'
  155. + '<i class="mdi mdi-settings"></i>'
  156. + '</a>')
  157. // Add the tab button to the right sidebar tabs
  158. $('[href="#control-sidebar-home-tab"]')
  159. .parent()
  160. .before($tabButton)
  161. // Create the menu
  162. var $demoSettings = $('<div />')
  163. // Layout options
  164. $demoSettings.append(
  165. '<h4 class="control-sidebar-heading p-0">'
  166. + '</h4>'
  167. // Theme Skin Toggle
  168. + '<div class="flexbox mb-10 pb-10 bb-1 light-on-off">'
  169. + '<label for="toggle_left_sidebar_skin" class="control-sidebar-subheading">'
  170. + 'Dark or Light Skin'
  171. + '</label>'
  172. + '<label class="switch">'
  173. + '<input type="checkbox" data-mainsidebarskin="toggle" id="toggle_left_sidebar_skin">'
  174. + '<span class="switch-on font-size-30"><i class="mdi mdi-lightbulb-on"></i></span>'
  175. + '<span class="switch-off font-size-30"><i class="mdi mdi-lightbulb"></i></span>'
  176. + '</label>'
  177. + '</div>'
  178. )
  179. // Layout options
  180. $demoSettings.append(
  181. '<h4 class="control-sidebar-heading p-0">'
  182. + '</h4>'
  183. // rtl layout
  184. + '<div class="flexbox mb-10 pb-10 bb-1">'
  185. + '<label for="rtl" class="control-sidebar-subheading">'
  186. + 'Turn RTL/LTR'
  187. + '</label>'
  188. + '<label class="switch switch-border switch-danger">'
  189. + '<input type="checkbox" data-layout="rtl" id="rtl">'
  190. + '<span class="switch-indicator"></span>'
  191. + '<span class="switch-description"></span>'
  192. + '</label>'
  193. + '</div>'
  194. )
  195. // Layout options
  196. $demoSettings.append(
  197. '<h4 class="control-sidebar-heading p-0">'
  198. + '</h4>'
  199. // Sidebar Toggle
  200. + '<div class="flexbox mb-10">'
  201. + '<label for="toggle_sidebar" class="control-sidebar-subheading">'
  202. + 'Toggle Sidebar'
  203. + '</label>'
  204. + '<label class="switch switch-border switch-danger">'
  205. + '<input type="checkbox" data-layout="sidebar-collapse" id="toggle_sidebar">'
  206. + '<span class="switch-indicator"></span>'
  207. + '<span class="switch-description"></span>'
  208. + '</label>'
  209. + '</div>'
  210. // Control Sidebar Toggle
  211. + '<div class="flexbox mb-10">'
  212. + '<label for="toggle_right_sidebar" class="control-sidebar-subheading">'
  213. + 'Toggle Right Sidebar Slide'
  214. + '</label>'
  215. + '<label class="switch switch-border switch-danger">'
  216. + '<input type="checkbox" data-controlsidebar="control-sidebar-open" id="toggle_right_sidebar">'
  217. + '<span class="switch-indicator"></span>'
  218. + '<span class="switch-description"></span>'
  219. + '</label>'
  220. + '</div>'
  221. )
  222. var $skinsList = $('<ul />', { 'class': 'list-unstyled clearfix theme-switch' })
  223. // Dark sidebar skins
  224. var $themePrimary =
  225. $('<li />', { style: 'padding: 5px;' })
  226. .append('<a href="javascript:void(0)" data-theme="theme-primary" style="background: #5A8DEE; display: block;vertical-align: middle;" class="clearfix rounded w-p100 h-30 mb-5" title="Theme primary">'
  227. + '</a>')
  228. $skinsList.append($themePrimary)
  229. var $themeSecondary =
  230. $('<li />', { style: 'padding: 5px;' })
  231. .append('<a href="javascript:void(0)" data-theme="theme-secondary" style="background: #475F7B; display: block;vertical-align: middle;" class="clearfix rounded w-p100 h-30 mb-5" title="Theme secondary">'
  232. + '</a>')
  233. $skinsList.append($themeSecondary)
  234. var $themeInfo =
  235. $('<li />', { style: 'padding: 5px;' })
  236. .append('<a href="javascript:void(0)" data-theme="theme-info" style="background: #00CFDD; display: block;vertical-align: middle;" class="clearfix rounded w-p100 h-30 mb-5" title="Theme info">'
  237. + '</a>')
  238. $skinsList.append($themeInfo)
  239. var $themeSuccess =
  240. $('<li />', { style: 'padding: 5px;' })
  241. .append('<a href="javascript:void(0)" data-theme="theme-success" style="background: #39DA8A; display: block;vertical-align: middle;" class="clearfix rounded w-p100 h-30 mb-5" title="Theme success">'
  242. + '</a>')
  243. $skinsList.append($themeSuccess)
  244. var $themeDanger =
  245. $('<li />', { style: 'padding: 5px;' })
  246. .append('<a href="javascript:void(0)" data-theme="theme-danger" style="background: #FF5B5C; display: block;vertical-align: middle;" class="clearfix rounded w-p100 h-30 mb-5" title="Theme danger">'
  247. + '</a>')
  248. $skinsList.append($themeDanger)
  249. var $themeWarning =
  250. $('<li />', { style: 'padding: 5px;' })
  251. .append('<a href="javascript:void(0)" data-theme="theme-warning" style="background: #FDAC41; display: block;vertical-align: middle;" class="clearfix rounded w-p100 h-30 mb-5" title="Theme warning">'
  252. + '</a>')
  253. $skinsList.append($themeWarning)
  254. $demoSettings.append('<h4 class="control-sidebar-heading">Skin Colors</h4>')
  255. $demoSettings.append($skinsList)
  256. $tabPane.append($demoSettings)
  257. $('#control-sidebar-home-tab').after($tabPane)
  258. setup()
  259. $('[data-toggle="tooltip"]').tooltip()
  260. });// End of use strict
  261. $(function () {
  262. 'use strict'
  263. $('.theme-switch li a').click(function () {
  264. $('.theme-switch li a').removeClass('active').addClass('inactive');
  265. $(this).toggleClass('active inactive');
  266. });
  267. });// End of use strict