demo.js 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398
  1. /**
  2. * AdminLTE Demo Menu
  3. * ------------------
  4. * You should not use this file in production.
  5. * This file is for demo purposes only.
  6. */
  7. (function ($) {
  8. 'use strict'
  9. var $sidebar = $('.control-sidebar')
  10. var $container = $('<div />', {
  11. class: 'p-3 control-sidebar-content'
  12. })
  13. $sidebar.append($container)
  14. var navbar_dark_skins = [
  15. 'navbar-primary',
  16. 'navbar-secondary',
  17. 'navbar-info',
  18. 'navbar-success',
  19. 'navbar-danger',
  20. 'navbar-indigo',
  21. 'navbar-purple',
  22. 'navbar-pink',
  23. 'navbar-teal',
  24. 'navbar-cyan',
  25. 'navbar-dark',
  26. 'navbar-gray-dark',
  27. 'navbar-gray',
  28. ]
  29. var navbar_light_skins = [
  30. 'navbar-light',
  31. 'navbar-warning',
  32. 'navbar-white',
  33. 'navbar-orange',
  34. ]
  35. $container.append(
  36. '<h5>Customize AdminLTE</h5><hr class="mb-2"/>'
  37. )
  38. var $no_border_checkbox = $('<input />', {
  39. type : 'checkbox',
  40. value : 1,
  41. checked: $('.main-header').hasClass('border-bottom-0'),
  42. 'class': 'mr-1'
  43. }).on('click', function () {
  44. if ($(this).is(':checked')) {
  45. $('.main-header').addClass('border-bottom-0')
  46. } else {
  47. $('.main-header').removeClass('border-bottom-0')
  48. }
  49. })
  50. var $no_border_container = $('<div />', {'class': 'mb-1'}).append($no_border_checkbox).append('<span>No Navbar border</span>')
  51. $container.append($no_border_container)
  52. var $text_sm_body_checkbox = $('<input />', {
  53. type : 'checkbox',
  54. value : 1,
  55. checked: $('body').hasClass('text-sm'),
  56. 'class': 'mr-1'
  57. }).on('click', function () {
  58. if ($(this).is(':checked')) {
  59. $('body').addClass('text-sm')
  60. } else {
  61. $('body').removeClass('text-sm')
  62. }
  63. })
  64. var $text_sm_body_container = $('<div />', {'class': 'mb-1'}).append($text_sm_body_checkbox).append('<span>Body small text</span>')
  65. $container.append($text_sm_body_container)
  66. var $text_sm_header_checkbox = $('<input />', {
  67. type : 'checkbox',
  68. value : 1,
  69. checked: $('.main-header').hasClass('text-sm'),
  70. 'class': 'mr-1'
  71. }).on('click', function () {
  72. if ($(this).is(':checked')) {
  73. $('.main-header').addClass('text-sm')
  74. } else {
  75. $('.main-header').removeClass('text-sm')
  76. }
  77. })
  78. var $text_sm_header_container = $('<div />', {'class': 'mb-1'}).append($text_sm_header_checkbox).append('<span>Navbar small text</span>')
  79. $container.append($text_sm_header_container)
  80. var $text_sm_sidebar_checkbox = $('<input />', {
  81. type : 'checkbox',
  82. value : 1,
  83. checked: $('.nav-sidebar').hasClass('text-sm'),
  84. 'class': 'mr-1'
  85. }).on('click', function () {
  86. if ($(this).is(':checked')) {
  87. $('.nav-sidebar').addClass('text-sm')
  88. } else {
  89. $('.nav-sidebar').removeClass('text-sm')
  90. }
  91. })
  92. var $text_sm_sidebar_container = $('<div />', {'class': 'mb-1'}).append($text_sm_sidebar_checkbox).append('<span>Sidebar nav small text</span>')
  93. $container.append($text_sm_sidebar_container)
  94. var $text_sm_footer_checkbox = $('<input />', {
  95. type : 'checkbox',
  96. value : 1,
  97. checked: $('.main-footer').hasClass('text-sm'),
  98. 'class': 'mr-1'
  99. }).on('click', function () {
  100. if ($(this).is(':checked')) {
  101. $('.main-footer').addClass('text-sm')
  102. } else {
  103. $('.main-footer').removeClass('text-sm')
  104. }
  105. })
  106. var $text_sm_footer_container = $('<div />', {'class': 'mb-1'}).append($text_sm_footer_checkbox).append('<span>Footer small text</span>')
  107. $container.append($text_sm_footer_container)
  108. var $flat_sidebar_checkbox = $('<input />', {
  109. type : 'checkbox',
  110. value : 1,
  111. checked: $('.nav-sidebar').hasClass('nav-flat'),
  112. 'class': 'mr-1'
  113. }).on('click', function () {
  114. if ($(this).is(':checked')) {
  115. $('.nav-sidebar').addClass('nav-flat')
  116. } else {
  117. $('.nav-sidebar').removeClass('nav-flat')
  118. }
  119. })
  120. var $flat_sidebar_container = $('<div />', {'class': 'mb-1'}).append($flat_sidebar_checkbox).append('<span>Sidebar nav flat style</span>')
  121. $container.append($flat_sidebar_container)
  122. var $compact_sidebar_checkbox = $('<input />', {
  123. type : 'checkbox',
  124. value : 1,
  125. checked: $('.nav-sidebar').hasClass('nav-compact'),
  126. 'class': 'mr-1'
  127. }).on('click', function () {
  128. if ($(this).is(':checked')) {
  129. $('.nav-sidebar').addClass('nav-compact')
  130. } else {
  131. $('.nav-sidebar').removeClass('nav-compact')
  132. }
  133. })
  134. var $compact_sidebar_container = $('<div />', {'class': 'mb-1'}).append($compact_sidebar_checkbox).append('<span>Sidebar nav compact</span>')
  135. $container.append($compact_sidebar_container)
  136. var $child_indent_sidebar_checkbox = $('<input />', {
  137. type : 'checkbox',
  138. value : 1,
  139. checked: $('.nav-sidebar').hasClass('nav-child-indent'),
  140. 'class': 'mr-1'
  141. }).on('click', function () {
  142. if ($(this).is(':checked')) {
  143. $('.nav-sidebar').addClass('nav-child-indent')
  144. } else {
  145. $('.nav-sidebar').removeClass('nav-child-indent')
  146. }
  147. })
  148. var $child_indent_sidebar_container = $('<div />', {'class': 'mb-1'}).append($child_indent_sidebar_checkbox).append('<span>Sidebar nav child indent</span>')
  149. $container.append($child_indent_sidebar_container)
  150. var $no_expand_sidebar_checkbox = $('<input />', {
  151. type : 'checkbox',
  152. value : 1,
  153. checked: $('.main-sidebar').hasClass('sidebar-no-expand'),
  154. 'class': 'mr-1'
  155. }).on('click', function () {
  156. if ($(this).is(':checked')) {
  157. $('.main-sidebar').addClass('sidebar-no-expand')
  158. } else {
  159. $('.main-sidebar').removeClass('sidebar-no-expand')
  160. }
  161. })
  162. var $no_expand_sidebar_container = $('<div />', {'class': 'mb-1'}).append($no_expand_sidebar_checkbox).append('<span>Main Sidebar disable hover/focus auto expand</span>')
  163. $container.append($no_expand_sidebar_container)
  164. var $text_sm_brand_checkbox = $('<input />', {
  165. type : 'checkbox',
  166. value : 1,
  167. checked: $('.brand-link').hasClass('text-sm'),
  168. 'class': 'mr-1'
  169. }).on('click', function () {
  170. if ($(this).is(':checked')) {
  171. $('.brand-link').addClass('text-sm')
  172. } else {
  173. $('.brand-link').removeClass('text-sm')
  174. }
  175. })
  176. var $text_sm_brand_container = $('<div />', {'class': 'mb-4'}).append($text_sm_brand_checkbox).append('<span>Brand small text</span>')
  177. $container.append($text_sm_brand_container)
  178. $container.append('<h6>Navbar Variants</h6>')
  179. var $navbar_variants = $('<div />', {
  180. 'class': 'd-flex'
  181. })
  182. var navbar_all_colors = navbar_dark_skins.concat(navbar_light_skins)
  183. var $navbar_variants_colors = createSkinBlock(navbar_all_colors, function (e) {
  184. var color = $(this).data('color')
  185. var $main_header = $('.main-header')
  186. $main_header.removeClass('navbar-dark').removeClass('navbar-light')
  187. navbar_all_colors.map(function (color) {
  188. $main_header.removeClass(color)
  189. })
  190. if (navbar_dark_skins.indexOf(color) > -1) {
  191. $main_header.addClass('navbar-dark')
  192. } else {
  193. $main_header.addClass('navbar-light')
  194. }
  195. $main_header.addClass(color)
  196. })
  197. $navbar_variants.append($navbar_variants_colors)
  198. $container.append($navbar_variants)
  199. var sidebar_colors = [
  200. 'bg-primary',
  201. 'bg-warning',
  202. 'bg-info',
  203. 'bg-danger',
  204. 'bg-success',
  205. 'bg-indigo',
  206. 'bg-navy',
  207. 'bg-purple',
  208. 'bg-fuchsia',
  209. 'bg-pink',
  210. 'bg-maroon',
  211. 'bg-orange',
  212. 'bg-lime',
  213. 'bg-teal',
  214. 'bg-olive'
  215. ]
  216. var accent_colors = [
  217. 'accent-primary',
  218. 'accent-warning',
  219. 'accent-info',
  220. 'accent-danger',
  221. 'accent-success',
  222. 'accent-indigo',
  223. 'accent-navy',
  224. 'accent-purple',
  225. 'accent-fuchsia',
  226. 'accent-pink',
  227. 'accent-maroon',
  228. 'accent-orange',
  229. 'accent-lime',
  230. 'accent-teal',
  231. 'accent-olive'
  232. ]
  233. var sidebar_skins = [
  234. 'sidebar-dark-primary',
  235. 'sidebar-dark-warning',
  236. 'sidebar-dark-info',
  237. 'sidebar-dark-danger',
  238. 'sidebar-dark-success',
  239. 'sidebar-dark-indigo',
  240. 'sidebar-dark-navy',
  241. 'sidebar-dark-purple',
  242. 'sidebar-dark-fuchsia',
  243. 'sidebar-dark-pink',
  244. 'sidebar-dark-maroon',
  245. 'sidebar-dark-orange',
  246. 'sidebar-dark-lime',
  247. 'sidebar-dark-teal',
  248. 'sidebar-dark-olive',
  249. 'sidebar-light-primary',
  250. 'sidebar-light-warning',
  251. 'sidebar-light-info',
  252. 'sidebar-light-danger',
  253. 'sidebar-light-success',
  254. 'sidebar-light-indigo',
  255. 'sidebar-light-navy',
  256. 'sidebar-light-purple',
  257. 'sidebar-light-fuchsia',
  258. 'sidebar-light-pink',
  259. 'sidebar-light-maroon',
  260. 'sidebar-light-orange',
  261. 'sidebar-light-lime',
  262. 'sidebar-light-teal',
  263. 'sidebar-light-olive'
  264. ]
  265. $container.append('<h6>Accent Color Variants</h6>')
  266. var $accent_variants = $('<div />', {
  267. 'class': 'd-flex'
  268. })
  269. $container.append($accent_variants)
  270. $container.append(createSkinBlock(accent_colors, function () {
  271. var color = $(this).data('color')
  272. var accent_class = color
  273. var $body = $('body')
  274. accent_colors.map(function (skin) {
  275. $body.removeClass(skin)
  276. })
  277. $body.addClass(accent_class)
  278. }))
  279. $container.append('<h6>Dark Sidebar Variants</h6>')
  280. var $sidebar_variants = $('<div />', {
  281. 'class': 'd-flex'
  282. })
  283. $container.append($sidebar_variants)
  284. $container.append(createSkinBlock(sidebar_colors, function () {
  285. var color = $(this).data('color')
  286. var sidebar_class = 'sidebar-dark-' + color.replace('bg-', '')
  287. var $sidebar = $('.main-sidebar')
  288. sidebar_skins.map(function (skin) {
  289. $sidebar.removeClass(skin)
  290. })
  291. $sidebar.addClass(sidebar_class)
  292. }))
  293. $container.append('<h6>Light Sidebar Variants</h6>')
  294. var $sidebar_variants = $('<div />', {
  295. 'class': 'd-flex'
  296. })
  297. $container.append($sidebar_variants)
  298. $container.append(createSkinBlock(sidebar_colors, function () {
  299. var color = $(this).data('color')
  300. var sidebar_class = 'sidebar-light-' + color.replace('bg-', '')
  301. var $sidebar = $('.main-sidebar')
  302. sidebar_skins.map(function (skin) {
  303. $sidebar.removeClass(skin)
  304. })
  305. $sidebar.addClass(sidebar_class)
  306. }))
  307. var logo_skins = navbar_all_colors
  308. $container.append('<h6>Brand Logo Variants</h6>')
  309. var $logo_variants = $('<div />', {
  310. 'class': 'd-flex'
  311. })
  312. $container.append($logo_variants)
  313. var $clear_btn = $('<a />', {
  314. href: 'javascript:void(0)'
  315. }).text('clear').on('click', function () {
  316. var $logo = $('.brand-link')
  317. logo_skins.map(function (skin) {
  318. $logo.removeClass(skin)
  319. })
  320. })
  321. $container.append(createSkinBlock(logo_skins, function () {
  322. var color = $(this).data('color')
  323. var $logo = $('.brand-link')
  324. logo_skins.map(function (skin) {
  325. $logo.removeClass(skin)
  326. })
  327. $logo.addClass(color)
  328. }).append($clear_btn))
  329. function createSkinBlock(colors, callback) {
  330. var $block = $('<div />', {
  331. 'class': 'd-flex flex-wrap mb-3'
  332. })
  333. colors.map(function (color) {
  334. var $color = $('<div />', {
  335. 'class': (typeof color === 'object' ? color.join(' ') : color).replace('navbar-', 'bg-').replace('accent-', 'bg-') + ' elevation-2'
  336. })
  337. $block.append($color)
  338. $color.data('color', color)
  339. $color.css({
  340. width : '40px',
  341. height : '20px',
  342. borderRadius: '25px',
  343. marginRight : 10,
  344. marginBottom: 10,
  345. opacity : 0.8,
  346. cursor : 'pointer'
  347. })
  348. $color.hover(function () {
  349. $(this).css({ opacity: 1 }).removeClass('elevation-2').addClass('elevation-4')
  350. }, function () {
  351. $(this).css({ opacity: 0.8 }).removeClass('elevation-4').addClass('elevation-2')
  352. })
  353. if (callback) {
  354. $color.on('click', callback)
  355. }
  356. })
  357. return $block
  358. }
  359. })(jQuery)