src/pyams_skin/resources/js/myams.js
changeset 125 d294083fb28c
parent 121 2c87fbbec680
child 130 38dc70be3cfa
equal deleted inserted replaced
124:601c667286f6 125:d294083fb28c
     5  * $Tag$
     5  * $Tag$
     6  * A bootstrap based application/administration skin
     6  * A bootstrap based application/administration skin
     7  *
     7  *
     8  * Custom administration and application skin tools
     8  * Custom administration and application skin tools
     9  * Released under Zope Public License ZPL 1.1
     9  * Released under Zope Public License ZPL 1.1
    10  * ©2014-2015 Thierry Florac <tflorac@ulthar.net>
    10  * ©2014-2016 Thierry Florac <tflorac@ulthar.net>
    11  */
    11  */
    12 
    12 
    13 (function($, globals) {
    13 (function($, globals) {
    14 
    14 
    15 	"use strict";
    15 	"use strict";
  2310 							src: new_plugin.src,
  2310 							src: new_plugin.src,
  2311 							css: new_plugin.css,
  2311 							css: new_plugin.css,
  2312 							callbacks: new_plugin.callback ? [new_plugin.callback] : [],
  2312 							callbacks: new_plugin.callback ? [new_plugin.callback] : [],
  2313 							register: new_plugin.register,
  2313 							register: new_plugin.register,
  2314 							async: new_plugin.async
  2314 							async: new_plugin.async
  2315 						}
  2315 						};
  2316 					}
  2316 					}
  2317 				}
  2317 				}
  2318 
  2318 
  2319 				var source = $(this);
  2319 				var source = $(this);
  2320 				var ams_plugins = source.data('ams-plugins');
  2320 				var ams_plugins = source.data('ams-plugins');
  3032 								   });
  3032 								   });
  3033 				}
  3033 				}
  3034 			},
  3034 			},
  3035 
  3035 
  3036 			/**
  3036 			/**
       
  3037 			 * JQuery input-mask plug-in
       
  3038 			 *
       
  3039 			 * Mask value can be set in a "data-input-mask" attribute defined:
       
  3040 			 * - as a simple string containing mask
       
  3041 			 * - as a JSON object defining all mask attributes, for example:
       
  3042 			 *   data-input-mask='{"alias": "integer", "allowPlus": false, "allowMinus": false}'
       
  3043 			 */
       
  3044 			inputmask: function(element) {
       
  3045 				var masks = $('[data-input-mask]', element);
       
  3046 				if (masks.length > 0) {
       
  3047 					ams.ajax.check($.fn.inputmask,
       
  3048 								   ams.baseURL + 'ext/jquery-inputmask-bundle-3.2.8' + ams.devext + '.js',
       
  3049 								   function() {
       
  3050 										masks.each(function() {
       
  3051 											var input = $(this);
       
  3052 											var data = input.data();
       
  3053 											var data_options;
       
  3054 											if (typeof(data.inputMask) === 'object') {
       
  3055 												data_options = data.inputMask;
       
  3056 											} else {
       
  3057 												data_options = {
       
  3058 													mask: data.inputMask.toString()
       
  3059 												};
       
  3060 											}
       
  3061 											var settings = $.extend({}, data_options, data.amsInputmaskOptions);
       
  3062 											settings = ams.executeFunctionByName(data.amsInputmaskInitCallback, input, settings) || settings;
       
  3063 											var plugin = input.inputmask(settings);
       
  3064 											ams.executeFunctionByName(data.amsInputmaskAfterInitCallback, input, plugin, settings);
       
  3065 										});
       
  3066 								   });
       
  3067 				}
       
  3068 			},
       
  3069 
       
  3070 			/**
  3037 			 * JQuery date picker
  3071 			 * JQuery date picker
  3038 			 */
  3072 			 */
  3039 			datepicker: function(element) {
  3073 			datepicker: function(element) {
  3040 				var datepickers = $('.datepicker', element);
  3074 				var datepickers = $('.datepicker', element);
  3041 				if (datepickers.length > 0) {
  3075 				if (datepickers.length > 0) {
  3233 																		}
  3267 																		}
  3234 																	}
  3268 																	}
  3235 																	: ams.getFunctionByName(data.amsFormInvalidHandler)
  3269 																	: ams.getFunctionByName(data.amsFormInvalidHandler)
  3236 																: undefined
  3270 																: undefined
  3237 											};
  3271 											};
       
  3272 											$('[data-ams-validate-rules]', form).each(function() {
       
  3273 												if (index === 0) {
       
  3274 													data_options.rules = {};
       
  3275 												}
       
  3276 												data_options.rules[$(this).attr('name')] = $(this).data('ams-validate-rules');
       
  3277 											});
  3238 											var settings = $.extend({}, data_options, data.amsValidateOptions);
  3278 											var settings = $.extend({}, data_options, data.amsValidateOptions);
  3239 											settings = ams.executeFunctionByName(data.amsValidateInitCallback, form, settings) || settings;
  3279 											settings = ams.executeFunctionByName(data.amsValidateInitCallback, form, settings) || settings;
  3240 											var plugin = form.validate(settings);
  3280 											var plugin = form.validate(settings);
  3241 											ams.executeFunctionByName(data.amsValidateAfterInitCallback, form, plugin, settings);
  3281 											ams.executeFunctionByName(data.amsValidateAfterInitCallback, form, plugin, settings);
  3242 										});
  3282 										});
  3299 												}
  3339 												}
  3300 											}
  3340 											}
  3301 											// Set options
  3341 											// Set options
  3302 											var data_options = {
  3342 											var data_options = {
  3303 												bJQueryUI: false,
  3343 												bJQueryUI: false,
  3304 												bFilter: data.amsDatatableGlobalFilter !== false,
  3344 												bFilter: data.amsDatatableGlobalFilter !== false || extensions.indexOf('columnfilter') >= 0,
  3305 												bPaginate: data.amsDatatablePagination !== false,
  3345 												bPaginate: data.amsDatatablePagination !== false,
  3306 												bInfo: data.amsDatatableInfo !== false,
  3346 												bInfo: data.amsDatatableInfo !== false,
  3307 												bSort: data.amsDatatableSort !== false,
  3347 												bSort: data.amsDatatableSort !== false,
  3308 												aaSorting: sorting,
  3348 												aaSorting: sorting,
  3309 												aoColumns: columns.length > 0 ? columns : undefined,
  3349 												aoColumns: columns.length > 0 ? columns : undefined,