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 }); |