app_plugins.js 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382
  1. "use strict";
  2. var app_plugins = {
  3. checkbox_radio: function(){
  4. if($(".app-checkbox").length > 0 || $(".app-radio").length > 0){
  5. $(".app-checkbox label, .app-radio label").each(function(){
  6. $(this).append("<span></span>");
  7. });
  8. }
  9. },
  10. switch_button: function(){
  11. if($(".switch").length > 0){
  12. $(".switch").each(function(){
  13. $(this).append("<span></span>");
  14. });
  15. }
  16. },
  17. isotope: function(){
  18. if($(".grid").length === 0) return false;
  19. var $grid = $(".grid").isotope({
  20. itemSelector: ".grid-element",
  21. layoutMode: "fitRows",
  22. percentPosition: true
  23. });
  24. $("button[data-filter]").on("click", function() {
  25. var filter = $(this).attr("data-filter");
  26. $grid.isotope({filter: filter});
  27. $(this).parents(".btn-group").find(".btn-primary").removeClass("btn-primary").addClass("btn-default");
  28. $(this).removeClass("btn-default").addClass("btn-primary");
  29. });
  30. $(window).resize(function(){
  31. setTimeout(function(){
  32. $grid.isotope('layout');
  33. app.accordionFullHeightResize();
  34. app.features.gallery.controlHeight();
  35. app.spy();
  36. },100);
  37. });
  38. },
  39. formSpinner: function(){
  40. if($("input.spinner").length > 0){
  41. $("input.spinner").each(function(){
  42. $(this).wrap("<div class=\"spinner-wrapper\"></div>");
  43. $(this).after("<button class=\"spinner-button-up\"><span class=\"fa fa-angle-up\"></span></button>");
  44. $(this).after("<button class=\"spinner-button-down\"><span class=\"fa fa-angle-down\"></span></button>");
  45. });
  46. $(".spinner-button-up").on("click", function(){
  47. var input = $(this).parent(".spinner-wrapper").find("input"),
  48. spinMax = input.attr("data-spinner-max") ? parseFloat(input.data("spinner-max")) : false,
  49. spinMin = input.attr("data-spinner-min") ? parseFloat(input.data("spinner-min")) : false,
  50. spinStep = input.attr("data-spinner-step") ? parseFloat(input.data("spinner-step")) : 1,
  51. val = parseFloat(input.val()) + spinStep;
  52. if(typeof spinMax !== 'undefined' && spinMax !== false){
  53. if(val > spinMax) return false;
  54. }
  55. if(typeof spinMin !== 'undefined' && spinMin !== false){
  56. if(val < spinMin) return false;
  57. }
  58. input.val(val);
  59. return false;
  60. });
  61. $(".spinner-button-down").on("click", function(){
  62. var input = $(this).parent(".spinner-wrapper").find("input"),
  63. spinMax = input.attr("data-spinner-max") ? parseFloat(input.data("spinner-max")) : false,
  64. spinMin = input.attr("data-spinner-min") ? parseFloat(input.data("spinner-min")) : false,
  65. spinStep = input.attr("data-spinner-step") ? parseFloat(input.data("spinner-step")) : 1,
  66. val = parseFloat(input.val()) - spinStep;
  67. if(typeof spinMax !== 'undefined' && spinMax !== false){
  68. if(val > spinMax) return false;
  69. }
  70. if(typeof spinMin !== 'undefined' && spinMin !== false){
  71. if(val < spinMin) return false;
  72. }
  73. input.val(val);
  74. return false;
  75. });
  76. }
  77. },
  78. customScrollBar: function(){
  79. if($(".scroll").length > 0)
  80. $(".scroll").mCustomScrollbar({axis:"y", autoHideScrollbar: true, scrollInertia: 200, advanced: {autoScrollOnFocus: false}});
  81. },
  82. bootstrap_select: function(){
  83. if($(".bs-select").length > 0)
  84. $(".bs-select").selectpicker({iconBase: '', tickIcon: 'fa fa-check'});
  85. },
  86. select2: function(){
  87. if($(".s2-select").length > 0){
  88. $(".s2-select").select2({minimumResultsForSearch: Infinity});
  89. }
  90. if($(".s2-select-search").length > 0){
  91. $(".s2-select-search").select2();
  92. }
  93. if($(".s2-select-tags").length > 0){
  94. $(".s2-select-tags").select2({tags: true});
  95. }
  96. },
  97. bootstrap_daterange: function(){
  98. if($(".daterange").length > 0){
  99. $("input.daterange").daterangepicker();
  100. }
  101. if($(".datetimerange").length > 0){
  102. $('input.datetimerange').daterangepicker({
  103. timePicker: true,
  104. timePickerIncrement: 30,
  105. locale: {
  106. format: 'MM/DD/YYYY h:mm A'
  107. }
  108. });
  109. }
  110. },
  111. bootstrap_datepicker: function(){
  112. /* in case of update datepicker
  113. * icons
  114. * time: "icon-clock2",
  115. date: "icon-calendar-full",
  116. up: "icon-chevron-up",
  117. down: "icon-chevron-down",
  118. previous: 'icon-chevron-left',
  119. next: 'icon-chevron-right',
  120. today: 'icon-calendar-insert',
  121. clear: 'icon-trash2',
  122. close: 'icon-cross'
  123. *
  124. */
  125. if($(".bs-datepicker").length > 0){
  126. $(".bs-datepicker").datetimepicker({format: "DD/MM/YYYY"});
  127. }
  128. if($(".bs-datetimepicker").length > 0){
  129. $(".bs-datetimepicker").datetimepicker();
  130. }
  131. if($(".bs-timepicker").length > 0){
  132. $(".bs-timepicker").datetimepicker({format: "LT"});
  133. }
  134. if($(".bs-datepicker-weekends").length > 0){
  135. $(".bs-datepicker-weekends").datetimepicker({format: "DD/MM/YYYY", daysOfWeekDisabled: [0, 6]});
  136. }
  137. if($(".bs-datepicker-inline").length > 0){
  138. $(".bs-datepicker-inline").datetimepicker({
  139. inline: true
  140. });
  141. }
  142. if($(".bs-datepicker-inline-time").length > 0){
  143. $(".bs-datepicker-inline-time").datetimepicker({
  144. inline: true,
  145. sideBySide: true
  146. });
  147. }
  148. if($(".bs-datepicker-inline-years").length > 0){
  149. $(".bs-datepicker-inline-years").datetimepicker({
  150. inline: true,
  151. viewMode: 'years'
  152. });
  153. }
  154. },
  155. bootstrap_popover: function(){
  156. $("[data-toggle='popover']").popover();
  157. $(".popover-hover").on("mouseenter",function(){
  158. $(this).popover('show');
  159. }).on("mouseleave",function(){
  160. $(this).popover('hide');
  161. });
  162. $(".modal").on("show.bs.modal", function () {
  163. $("[data-toggle='popover']").popover("hide");
  164. });
  165. },
  166. bootstrap_tooltip: function(){
  167. $("[data-toggle='tooltip']").tooltip();
  168. },
  169. maskedInput: function(){
  170. if($("input[class^='mask_']").length > 0){
  171. $("input.mask_tin").mask('99-9999999');
  172. $("input.mask_ssn").mask('999-99-9999');
  173. $("input.mask_date").mask('9999-99-99');
  174. $("input.mask_date_rev").mask('99-99-9999');
  175. $("input.mask_product").mask('a*-999-a999');
  176. $("input.mask_phone").mask('99 (999) 999-99-99');
  177. $("input.mask_phone_ext").mask('99 (999) 999-9999? x99999');
  178. $("input.mask_credit").mask('9999-9999-9999-9999');
  179. $("input.mask_percent").mask('99%');
  180. }
  181. },
  182. noty: function(){
  183. $(".notify").on("click",function(){
  184. noty({
  185. text: $(this).data("notify"),
  186. type: $(this).data("notify-type"),
  187. layout: $(this).data("notify-layout") ? $(this).data("notify-layout") : 'topRight',
  188. animation: {
  189. open: 'animated bounceIn',
  190. close: 'animated fadeOut',
  191. speed: 200
  192. }
  193. });
  194. });
  195. },
  196. datatables: function(){
  197. if($(".datatable-basic").length > 0){
  198. $(".datatable-basic").DataTable({
  199. searching: false,
  200. paging: false,
  201. info: false
  202. });
  203. }
  204. if($(".datatable-extended").length > 0){
  205. $(".datatable-extended").DataTable();
  206. }
  207. },
  208. knob: function(){
  209. if($(".knob").length > 0){
  210. $(".knob").knob({
  211. 'format' : function (value) {
  212. return value + '%';
  213. }
  214. });
  215. }
  216. },
  217. sparkline: function(){
  218. if($(".sparkline").length > 0)
  219. $(".sparkline").sparkline('html', { enableTagOptions: true,disableHiddenCheck: true});
  220. },
  221. wizard: function(){
  222. if($(".wizard").length > 0){
  223. //check count of steps in each wizard
  224. $(".wizard > ul").each(function(){
  225. $(this).addClass("steps_"+$(this).children("li").length);
  226. });// ./end
  227. // init wizard plugin
  228. $(".wizard").smartWizard({
  229. // This part (using for wizard validation) of code can be removed FROM
  230. onLeaveStep: function(obj){
  231. var wizard = obj.parents(".wizard");
  232. if(wizard.hasClass("wizard-validation")){
  233. var valid = true;
  234. $('input,textarea',$(obj.attr("href"))).each(function(i,v){
  235. valid = validate.element(v) && valid;
  236. });
  237. if(!valid){
  238. wizard.find(".stepContainer").removeAttr("style");
  239. validate.focusInvalid();
  240. return false;
  241. }
  242. }
  243. app.spy();
  244. return true;
  245. },// <-- TO
  246. //this is important part of wizard init
  247. onShowStep: function(obj){
  248. var wizard = obj.parents(".wizard");
  249. if(wizard.hasClass("show-submit")){
  250. var step_num = obj.attr('rel');
  251. var step_max = obj.parents(".anchor").find("li").length;
  252. if(step_num == step_max){
  253. obj.parents(".wizard").find(".actionBar .btn-primary").css("display","block");
  254. }
  255. }
  256. app.spy();
  257. return true;
  258. }// ./end
  259. });
  260. }
  261. },
  262. multiselect: function(){
  263. if($(".multiselect").length > 0){
  264. $(".multiselect").multiSelect({
  265. afterInit: function(){
  266. var self = this;
  267. self.$container.addClass("row");
  268. self.$container.find(".ms-selectable, .ms-selection").addClass("col-xs-6");
  269. }
  270. });
  271. }
  272. },
  273. bootstrap_colorpicker: function(){
  274. if($(".bs-colorpicker").length > 0){
  275. $(".bs-colorpicker").colorpicker({
  276. sliders: {
  277. saturation: {maxLeft: 150,maxTop: 150},
  278. hue: {maxTop: 150},
  279. alpha: {maxTop: 150}
  280. }
  281. });
  282. }
  283. if($(".bs-colorpicker-lg").length > 0){
  284. $(".bs-colorpicker-lg").colorpicker({
  285. customClass: 'colorpicker-2x',
  286. sliders: {
  287. saturation: {maxLeft: 250,maxTop: 250},
  288. hue: {maxTop: 250},
  289. alpha: {maxTop: 250}
  290. }
  291. });
  292. }
  293. },
  294. loaded: function(){
  295. app_plugins.customScrollBar();
  296. app_plugins.checkbox_radio();
  297. app_plugins.formSpinner();
  298. app_plugins.switch_button();
  299. app_plugins.bootstrap_select();
  300. app_plugins.select2();
  301. app_plugins.bootstrap_popover();
  302. app_plugins.bootstrap_datepicker();
  303. app_plugins.bootstrap_tooltip();
  304. app_plugins.maskedInput();
  305. app_plugins.datatables();
  306. app_plugins.knob();
  307. app_plugins.sparkline();
  308. app_plugins.isotope();
  309. app_plugins.noty();
  310. app_plugins.wizard();
  311. app_plugins.bootstrap_daterange();
  312. app_plugins.multiselect();
  313. app_plugins.bootstrap_colorpicker();
  314. }
  315. };
  316. $(function(){
  317. app_plugins.loaded();
  318. });
  319. $(document).ready(function(){
  320. app.loaded();
  321. });