components_progress.js 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677
  1. /* ------------------------------------------------------------------------------
  2. *
  3. * # Progress bars & loaders
  4. *
  5. * Demo JS code for components_progress.html page
  6. *
  7. * ---------------------------------------------------------------------------- */
  8. // Setup module
  9. // ------------------------------
  10. var Progress = function() {
  11. //
  12. // Setup module components
  13. //
  14. // Enhanced progress bars
  15. var _componentProgress = function() {
  16. if (!$().progressbar) {
  17. console.warn('Warning - progressbar.min.js is not loaded.');
  18. return;
  19. }
  20. // Basic progress bar
  21. // ------------------------------
  22. // Start
  23. $('#h-default-basic-start').on('click', function() {
  24. var $pb = $('#h-default-basic .progress-bar');
  25. $pb.attr('data-transitiongoal', $pb.attr('data-transitiongoal-backup'));
  26. $pb.progressbar();
  27. });
  28. // Reset
  29. $('#h-default-basic-reset').on('click', function() {
  30. $('#h-default-basic .progress-bar').attr('data-transitiongoal', 0).progressbar();
  31. });
  32. // Progress bar in right direction
  33. // ------------------------------
  34. // Start
  35. $('#h-right-basic-start').on('click', function() {
  36. var $pb = $('#h-right-basic .progress-bar');
  37. $pb.attr('data-transitiongoal', $pb.attr('data-transitiongoal-backup'));
  38. $pb.progressbar();
  39. });
  40. // Reset
  41. $('#h-right-basic-reset').on('click', function() {
  42. $('#h-right-basic .progress-bar').attr('data-transitiongoal', 0).progressbar();
  43. });
  44. // Progress bar with text fill
  45. // ------------------------------
  46. // Start
  47. $('#h-fill-basic-start').on('click', function() {
  48. var $pb = $('#h-fill-basic .progress-bar');
  49. $pb.attr('data-transitiongoal', $pb.attr('data-transitiongoal-backup'));
  50. $pb.progressbar({display_text: 'fill'});
  51. });
  52. // Reset
  53. $('#h-fill-basic-reset').on('click', function() {
  54. $('#h-fill-basic .progress-bar').attr('data-transitiongoal', 0).progressbar({display_text: 'fill'});
  55. });
  56. // Start
  57. $('#h-fill-basic-right-start').on('click', function() {
  58. var $pb = $('#h-fill-basic-right .progress-bar');
  59. $pb.attr('data-transitiongoal', $pb.attr('data-transitiongoal-backup'));
  60. $pb.progressbar({display_text: 'fill'});
  61. });
  62. // Reset
  63. $('#h-fill-basic-right-reset').on('click', function() {
  64. $('#h-fill-basic-right .progress-bar').attr('data-transitiongoal', 0).progressbar({display_text: 'fill'});
  65. });
  66. // Progress bar with non-percentage text
  67. // ------------------------------
  68. // Start
  69. $('#h-fill-nonpercentage-basic-start').on('click', function() {
  70. var $pb = $('#h-fill-nonpercentage-basic .progress-bar');
  71. $pb.attr('data-transitiongoal', $pb.attr('data-transitiongoal-backup'));
  72. $pb.progressbar({display_text: 'fill', use_percentage: false});
  73. });
  74. // Reset
  75. $('#h-fill-nonpercentage-basic-reset').on('click', function() {
  76. $('#h-fill-nonpercentage-basic .progress-bar').attr('data-transitiongoal', 0).progressbar({display_text: 'fill', use_percentage: false});
  77. });
  78. // Start
  79. $('#h-fill-nonpercentage-right-basic-start').on('click', function() {
  80. var $pb = $('#h-fill-nonpercentage-right-basic .progress-bar');
  81. $pb.attr('data-transitiongoal', $pb.attr('data-transitiongoal-backup'));
  82. $pb.progressbar({display_text: 'fill', use_percentage: false});
  83. });
  84. // Reset
  85. $('#h-fill-nonpercentage-right-basic-reset').on('click', function() {
  86. $('#h-fill-nonpercentage-right-basic .progress-bar').attr('data-transitiongoal', 0).progressbar({display_text: 'fill', use_percentage: false});
  87. });
  88. // Vertical progress bar
  89. // ------------------------------
  90. // Start
  91. $('#v-default-basic-start').on('click', function() {
  92. $('#v-default-basic .progress-bar').each(function () {
  93. var $pb = $(this);
  94. $pb.attr('data-transitiongoal', $pb.attr('data-transitiongoal-backup'));
  95. $pb.progressbar();
  96. });
  97. });
  98. // Reset
  99. $('#v-default-basic-reset').on('click', function() {
  100. $('#v-default-basic .progress-bar').attr('data-transitiongoal', 0).progressbar();
  101. });
  102. // Bottom direction
  103. // ------------------------------
  104. // Start
  105. $('#v-bottom-basic-start').on('click', function() {
  106. $('#v-bottom-basic .progress-bar').each(function () {
  107. var $pb = $(this);
  108. $pb.attr('data-transitiongoal', $pb.attr('data-transitiongoal-backup'));
  109. $pb.progressbar();
  110. });
  111. });
  112. // Reset
  113. $('#v-bottom-basic-reset').on('click', function() {
  114. $('#v-bottom-basic .progress-bar').attr('data-transitiongoal', 0).progressbar();
  115. });
  116. // Vertical progress bar with text fill
  117. // ------------------------------
  118. // Start
  119. $('#v-fill-basic-start').on('click', function() {
  120. $('#v-fill-basic .progress-bar').each(function () {
  121. var $pb = $(this);
  122. $pb.attr('data-transitiongoal', $pb.attr('data-transitiongoal-backup'));
  123. $pb.progressbar({display_text: 'fill'});
  124. });
  125. });
  126. // Reset
  127. $('#v-fill-basic-reset').on('click', function() {
  128. $('#v-fill-basic .progress-bar').attr('data-transitiongoal', 0).progressbar();
  129. });
  130. // Start
  131. $('#v-fill-bottom-start').on('click', function() {
  132. $('#v-fill-bottom .progress-bar').each(function () {
  133. var $pb = $(this);
  134. $pb.attr('data-transitiongoal', $pb.attr('data-transitiongoal-backup'));
  135. $pb.progressbar({display_text: 'fill'});
  136. });
  137. });
  138. // Reset
  139. $('#v-fill-bottom-reset').on('click', function() {
  140. $('#v-fill-bottom .progress-bar').attr('data-transitiongoal', 0).progressbar();
  141. });
  142. // Vertical progress bar with non-percentage text
  143. // ------------------------------
  144. // Start
  145. $('#v-fill-nonpercentage-basic-start').on('click', function() {
  146. $('#v-fill-nonpercentage-basic .progress-bar').each(function () {
  147. var $pb = $(this);
  148. $pb.attr('data-transitiongoal', $pb.attr('data-transitiongoal-backup'));
  149. $pb.progressbar({display_text: 'fill', use_percentage: false});
  150. });
  151. });
  152. // Reset
  153. $('#v-fill-nonpercentage-basic-reset').on('click', function() {
  154. $('#v-fill-nonpercentage-basic .progress-bar').attr('data-transitiongoal', 0).progressbar();
  155. });
  156. // Start
  157. $('#v-fill-nonpercentage-bottom-start').on('click', function() {
  158. $('#v-fill-nonpercentage-bottom .progress-bar').each(function () {
  159. var $pb = $(this);
  160. $pb.attr('data-transitiongoal', $pb.attr('data-transitiongoal-backup'));
  161. $pb.progressbar({display_text: 'fill', use_percentage: false});
  162. });
  163. });
  164. // Reset
  165. $('#v-fill-nonpercentage-bottom-reset').on('click', function() {
  166. $('#v-fill-nonpercentage-bottom .progress-bar').attr('data-transitiongoal', 0).progressbar();
  167. });
  168. };
  169. // BlockUI
  170. var _componentBlockui = function() {
  171. if (!$().block) {
  172. console.warn('Warning - blockui.min.js is not loaded.');
  173. return;
  174. }
  175. // Spinner #1
  176. // ------------------------------
  177. // Light
  178. $('#spinner-light').on('click', function() {
  179. var light = $(this).closest('.card');
  180. $(light).block({
  181. message: '<i class="icon-spinner spinner"></i>',
  182. overlayCSS: {
  183. backgroundColor: '#fff',
  184. opacity: 0.8,
  185. cursor: 'wait'
  186. },
  187. css: {
  188. border: 0,
  189. padding: 0,
  190. backgroundColor: 'none'
  191. }
  192. });
  193. window.setTimeout(function () {
  194. $(light).unblock();
  195. }, 2000);
  196. });
  197. // Dark
  198. $('#spinner-dark').on('click', function() {
  199. var dark = $(this).closest('.card');
  200. $(dark).block({
  201. message: '<i class="icon-spinner spinner"></i>',
  202. overlayCSS: {
  203. backgroundColor: '#1B2024',
  204. opacity: 0.85,
  205. cursor: 'wait'
  206. },
  207. css: {
  208. border: 0,
  209. padding: 0,
  210. backgroundColor: 'none',
  211. color: '#fff'
  212. }
  213. });
  214. window.setTimeout(function () {
  215. $(dark).unblock();
  216. }, 2000);
  217. });
  218. // Spinner #2
  219. // ------------------------------
  220. // Light
  221. $('#spinner-light-2').on('click', function() {
  222. var light_2 = $(this).closest('.card');
  223. $(light_2).block({
  224. message: '<i class="icon-spinner2 spinner"></i>',
  225. overlayCSS: {
  226. backgroundColor: '#fff',
  227. opacity: 0.8,
  228. cursor: 'wait'
  229. },
  230. css: {
  231. border: 0,
  232. padding: 0,
  233. backgroundColor: 'none'
  234. }
  235. });
  236. window.setTimeout(function () {
  237. $(light_2).unblock();
  238. }, 2000);
  239. });
  240. // Dark
  241. $('#spinner-dark-2').on('click', function() {
  242. var dark_2 = $(this).closest('.card');
  243. $(dark_2).block({
  244. message: '<i class="icon-spinner2 spinner"></i>',
  245. overlayCSS: {
  246. backgroundColor: '#1B2024',
  247. opacity: 0.85,
  248. cursor: 'wait'
  249. },
  250. css: {
  251. border: 0,
  252. padding: 0,
  253. backgroundColor: 'none',
  254. color: '#fff'
  255. }
  256. });
  257. window.setTimeout(function () {
  258. $(dark_2).unblock();
  259. }, 2000);
  260. });
  261. // Spinner #3
  262. // ------------------------------
  263. // Light
  264. $('#spinner-light-3').on('click', function() {
  265. var light_3 = $(this).closest('.card');
  266. $(light_3).block({
  267. message: '<i class="icon-spinner3 spinner"></i>',
  268. overlayCSS: {
  269. backgroundColor: '#fff',
  270. opacity: 0.8,
  271. cursor: 'wait'
  272. },
  273. css: {
  274. border: 0,
  275. padding: 0,
  276. backgroundColor: 'none'
  277. }
  278. });
  279. window.setTimeout(function () {
  280. $(light_3).unblock();
  281. }, 2000);
  282. });
  283. // Dark
  284. $('#spinner-dark-3').on('click', function() {
  285. var dark_3 = $(this).closest('.card');
  286. $(dark_3).block({
  287. message: '<i class="icon-spinner3 spinner"></i>',
  288. overlayCSS: {
  289. backgroundColor: '#1B2024',
  290. opacity: 0.85,
  291. cursor: 'wait'
  292. },
  293. css: {
  294. border: 0,
  295. padding: 0,
  296. backgroundColor: 'none',
  297. color: '#fff'
  298. }
  299. });
  300. window.setTimeout(function () {
  301. $(dark_3).unblock();
  302. }, 2000);
  303. });
  304. // Spinner #4
  305. // ------------------------------
  306. // Light
  307. $('#spinner-light-4').on('click', function() {
  308. var light_4 = $(this).closest('.card');
  309. $(light_4).block({
  310. message: '<i class="icon-spinner4 spinner"></i>',
  311. overlayCSS: {
  312. backgroundColor: '#fff',
  313. opacity: 0.8,
  314. cursor: 'wait'
  315. },
  316. css: {
  317. border: 0,
  318. padding: 0,
  319. backgroundColor: 'none'
  320. }
  321. });
  322. window.setTimeout(function () {
  323. $(light_4).unblock();
  324. }, 2000);
  325. });
  326. // Dark
  327. $('#spinner-dark-4').on('click', function() {
  328. var dark_4 = $(this).closest('.card');
  329. $(dark_4).block({
  330. message: '<i class="icon-spinner4 spinner"></i>',
  331. overlayCSS: {
  332. backgroundColor: '#1B2024',
  333. opacity: 0.85,
  334. cursor: 'wait'
  335. },
  336. css: {
  337. border: 0,
  338. padding: 0,
  339. backgroundColor: 'none',
  340. color: '#fff'
  341. }
  342. });
  343. window.setTimeout(function () {
  344. $(dark_4).unblock();
  345. }, 2000);
  346. });
  347. // Spinner #5
  348. // ------------------------------
  349. // Light
  350. $('#spinner-light-5').on('click', function() {
  351. var light_5 = $(this).closest('.card');
  352. $(light_5).block({
  353. message: '<i class="icon-spinner6 spinner"></i>',
  354. overlayCSS: {
  355. backgroundColor: '#fff',
  356. opacity: 0.8,
  357. cursor: 'wait'
  358. },
  359. css: {
  360. border: 0,
  361. padding: 0,
  362. backgroundColor: 'none'
  363. }
  364. });
  365. window.setTimeout(function () {
  366. $(light_5).unblock();
  367. }, 2000);
  368. });
  369. // Dark
  370. $('#spinner-dark-5').on('click', function() {
  371. var dark_5 = $(this).closest('.card');
  372. $(dark_5).block({
  373. message: '<i class="icon-spinner6 spinner"></i>',
  374. overlayCSS: {
  375. backgroundColor: '#1B2024',
  376. opacity: 0.85,
  377. cursor: 'wait'
  378. },
  379. css: {
  380. border: 0,
  381. padding: 0,
  382. backgroundColor: 'none',
  383. color: '#fff'
  384. }
  385. });
  386. window.setTimeout(function () {
  387. $(dark_5).unblock();
  388. }, 2000);
  389. });
  390. // Spinner #6
  391. // ------------------------------
  392. // Light
  393. $('#spinner-light-6').on('click', function() {
  394. var light_6 = $(this).closest('.card');
  395. $(light_6).block({
  396. message: '<i class="icon-spinner9 spinner"></i>',
  397. overlayCSS: {
  398. backgroundColor: '#fff',
  399. opacity: 0.8,
  400. cursor: 'wait'
  401. },
  402. css: {
  403. border: 0,
  404. padding: 0,
  405. backgroundColor: 'none'
  406. }
  407. });
  408. window.setTimeout(function () {
  409. $(light_6).unblock();
  410. }, 2000);
  411. });
  412. // Dark
  413. $('#spinner-dark-6').on('click', function() {
  414. var dark_6 = $(this).closest('.card');
  415. $(dark_6).block({
  416. message: '<i class="icon-spinner9 spinner"></i>',
  417. overlayCSS: {
  418. backgroundColor: '#1B2024',
  419. opacity: 0.85,
  420. cursor: 'wait'
  421. },
  422. css: {
  423. border: 0,
  424. padding: 0,
  425. backgroundColor: 'none',
  426. color: '#fff'
  427. }
  428. });
  429. window.setTimeout(function () {
  430. $(dark_6).unblock();
  431. }, 2000);
  432. });
  433. // Spinner #7
  434. // ------------------------------
  435. // Light
  436. $('#spinner-light-7').on('click', function() {
  437. var light_7 = $(this).closest('.card');
  438. $(light_7).block({
  439. message: '<i class="icon-spinner10 spinner"></i>',
  440. overlayCSS: {
  441. backgroundColor: '#fff',
  442. opacity: 0.8,
  443. cursor: 'wait'
  444. },
  445. css: {
  446. border: 0,
  447. padding: 0,
  448. backgroundColor: 'none'
  449. }
  450. });
  451. window.setTimeout(function () {
  452. $(light_7).unblock();
  453. }, 2000);
  454. });
  455. // Dark
  456. $('#spinner-dark-7').on('click', function() {
  457. var dark_7 = $(this).closest('.card');
  458. $(dark_7).block({
  459. message: '<i class="icon-spinner10 spinner"></i>',
  460. overlayCSS: {
  461. backgroundColor: '#1B2024',
  462. opacity: 0.85,
  463. cursor: 'wait'
  464. },
  465. css: {
  466. border: 0,
  467. padding: 0,
  468. backgroundColor: 'none',
  469. color: '#fff'
  470. }
  471. });
  472. window.setTimeout(function () {
  473. $(dark_7).unblock();
  474. }, 2000);
  475. });
  476. // Spinner #8
  477. // ------------------------------
  478. // Light
  479. $('#spinner-light-8').on('click', function() {
  480. var light_8 = $(this).closest('.card');
  481. $(light_8).block({
  482. message: '<i class="icon-spinner11 spinner"></i>',
  483. overlayCSS: {
  484. backgroundColor: '#fff',
  485. opacity: 0.8,
  486. cursor: 'wait'
  487. },
  488. css: {
  489. border: 0,
  490. padding: 0,
  491. backgroundColor: 'none'
  492. }
  493. });
  494. window.setTimeout(function () {
  495. $(light_8).unblock();
  496. }, 2000);
  497. });
  498. // Dark
  499. $('#spinner-dark-8').on('click', function() {
  500. var dark_8 = $(this).closest('.card');
  501. $(dark_8).block({
  502. message: '<i class="icon-spinner11 spinner"></i>',
  503. overlayCSS: {
  504. backgroundColor: '#1B2024',
  505. opacity: 0.85,
  506. cursor: 'wait'
  507. },
  508. css: {
  509. border: 0,
  510. padding: 0,
  511. backgroundColor: 'none',
  512. color: '#fff'
  513. }
  514. });
  515. window.setTimeout(function () {
  516. $(dark_8).unblock();
  517. }, 2000);
  518. });
  519. // Spinner #9
  520. // ------------------------------
  521. // Light
  522. $('#spinner-light-9').on('click', function() {
  523. var light_9 = $(this).closest('.card');
  524. $(light_9).block({
  525. message: '<i class="icon-sync spinner"></i>',
  526. overlayCSS: {
  527. backgroundColor: '#fff',
  528. opacity: 0.8,
  529. cursor: 'wait'
  530. },
  531. css: {
  532. border: 0,
  533. padding: 0,
  534. backgroundColor: 'none'
  535. }
  536. });
  537. window.setTimeout(function () {
  538. $(light_9).unblock();
  539. }, 2000);
  540. });
  541. // Dark
  542. $('#spinner-dark-9').on('click', function() {
  543. var dark_9 = $(this).closest('.card');
  544. $(dark_9).block({
  545. message: '<i class="icon-sync spinner"></i>',
  546. overlayCSS: {
  547. backgroundColor: '#1B2024',
  548. opacity: 0.85,
  549. cursor: 'wait'
  550. },
  551. css: {
  552. border: 0,
  553. padding: 0,
  554. backgroundColor: 'none',
  555. color: '#fff'
  556. }
  557. });
  558. window.setTimeout(function () {
  559. $(dark_9).unblock();
  560. }, 2000);
  561. });
  562. };
  563. //
  564. // Return objects assigned to module
  565. //
  566. return {
  567. init: function() {
  568. _componentProgress();
  569. _componentBlockui();
  570. }
  571. }
  572. }();
  573. // Initialize module
  574. // ------------------------------
  575. document.addEventListener('DOMContentLoaded', function() {
  576. Progress.init();
  577. });