demo.js 12 KB

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