demo.js 12 KB

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