src/ztfy/myams/resources/js/myams.js
changeset 167 bf78f1c35edd
parent 160 6c271ae9cfd3
child 171 d1a43750fea2
equal deleted inserted replaced
166:d38f0fdb0543 167:bf78f1c35edd
     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";
  2305 							src: new_plugin.src,
  2305 							src: new_plugin.src,
  2306 							css: new_plugin.css,
  2306 							css: new_plugin.css,
  2307 							callbacks: new_plugin.callback ? [new_plugin.callback] : [],
  2307 							callbacks: new_plugin.callback ? [new_plugin.callback] : [],
  2308 							register: new_plugin.register,
  2308 							register: new_plugin.register,
  2309 							async: new_plugin.async
  2309 							async: new_plugin.async
  2310 						}
  2310 						};
  2311 					}
  2311 					}
  2312 				}
  2312 				}
  2313 
  2313 
  2314 				var source = $(this);
  2314 				var source = $(this);
  2315 				var ams_plugins = source.data('ams-plugins');
  2315 				var ams_plugins = source.data('ams-plugins');
  3024 								   });
  3024 								   });
  3025 				}
  3025 				}
  3026 			},
  3026 			},
  3027 
  3027 
  3028 			/**
  3028 			/**
       
  3029 			 * JQuery input-mask plug-in
       
  3030 			 *
       
  3031 			 * Mask value can be set in a "data-input-mask" attribute defined:
       
  3032 			 * - as a simple string containing mask
       
  3033 			 * - as a JSON object defining all mask attributes, for example:
       
  3034 			 *   data-input-mask='{"alias": "integer", "allowPlus": false, "allowMinus": false}'
       
  3035 			 */
       
  3036 			inputmask: function(element) {
       
  3037 				var masks = $('[data-input-mask]', element);
       
  3038 				if (masks.length > 0) {
       
  3039 					ams.ajax.check($.fn.inputmask,
       
  3040 								   ams.baseURL + 'ext/jquery-inputmask-bundle-3.2.8' + ams.devext + '.js',
       
  3041 								   function() {
       
  3042 										masks.each(function() {
       
  3043 											var input = $(this);
       
  3044 											var data = input.data();
       
  3045 											var data_options;
       
  3046 											if (typeof(data.inputMask) === 'object') {
       
  3047 												data_options = data.inputMask;
       
  3048 											} else {
       
  3049 												data_options = {
       
  3050 													mask: data.inputMask.toString()
       
  3051 												};
       
  3052 											}
       
  3053 											var settings = $.extend({}, data_options, data.amsInputmaskOptions);
       
  3054 											settings = ams.executeFunctionByName(data.amsInputmaskInitCallback, input, settings) || settings;
       
  3055 											var plugin = input.inputmask(settings);
       
  3056 											ams.executeFunctionByName(data.amsInputmaskAfterInitCallback, input, plugin, settings);
       
  3057 										});
       
  3058 								   });
       
  3059 				}
       
  3060 			},
       
  3061 
       
  3062 			/**
  3029 			 * JQuery date picker
  3063 			 * JQuery date picker
  3030 			 */
  3064 			 */
  3031 			datepicker: function(element) {
  3065 			datepicker: function(element) {
  3032 				var datepickers = $('.datepicker', element);
  3066 				var datepickers = $('.datepicker', element);
  3033 				if (datepickers.length > 0) {
  3067 				if (datepickers.length > 0) {
  3225 																		}
  3259 																		}
  3226 																	}
  3260 																	}
  3227 																	: ams.getFunctionByName(data.amsFormInvalidHandler)
  3261 																	: ams.getFunctionByName(data.amsFormInvalidHandler)
  3228 																: undefined
  3262 																: undefined
  3229 											};
  3263 											};
       
  3264 											$('[data-ams-validate-rules]', form).each(function(index) {
       
  3265 												if (index === 0) {
       
  3266 													data_options.rules = {};
       
  3267 												}
       
  3268 												data_options.rules[$(this).attr('name')] = $(this).data('ams-validate-rules');
       
  3269 											});
  3230 											var settings = $.extend({}, data_options, data.amsValidateOptions);
  3270 											var settings = $.extend({}, data_options, data.amsValidateOptions);
  3231 											settings = ams.executeFunctionByName(data.amsValidateInitCallback, form, settings) || settings;
  3271 											settings = ams.executeFunctionByName(data.amsValidateInitCallback, form, settings) || settings;
  3232 											var plugin = form.validate(settings);
  3272 											var plugin = form.validate(settings);
  3233 											ams.executeFunctionByName(data.amsValidateAfterInitCallback, form, plugin, settings);
  3273 											ams.executeFunctionByName(data.amsValidateAfterInitCallback, form, plugin, settings);
  3234 										});
  3274 										});