--- a/src/pyams_skin/resources/js/myams.js Thu Apr 21 17:18:11 2016 +0200
+++ b/src/pyams_skin/resources/js/myams.js Thu Apr 21 17:20:00 2016 +0200
@@ -7,7 +7,7 @@
*
* Custom administration and application skin tools
* Released under Zope Public License ZPL 1.1
- * ©2014-2015 Thierry Florac <tflorac@ulthar.net>
+ * ©2014-2016 Thierry Florac <tflorac@ulthar.net>
*/
(function($, globals) {
@@ -2312,7 +2312,7 @@
callbacks: new_plugin.callback ? [new_plugin.callback] : [],
register: new_plugin.register,
async: new_plugin.async
- }
+ };
}
}
@@ -3034,6 +3034,40 @@
},
/**
+ * JQuery input-mask plug-in
+ *
+ * Mask value can be set in a "data-input-mask" attribute defined:
+ * - as a simple string containing mask
+ * - as a JSON object defining all mask attributes, for example:
+ * data-input-mask='{"alias": "integer", "allowPlus": false, "allowMinus": false}'
+ */
+ inputmask: function(element) {
+ var masks = $('[data-input-mask]', element);
+ if (masks.length > 0) {
+ ams.ajax.check($.fn.inputmask,
+ ams.baseURL + 'ext/jquery-inputmask-bundle-3.2.8' + ams.devext + '.js',
+ function() {
+ masks.each(function() {
+ var input = $(this);
+ var data = input.data();
+ var data_options;
+ if (typeof(data.inputMask) === 'object') {
+ data_options = data.inputMask;
+ } else {
+ data_options = {
+ mask: data.inputMask.toString()
+ };
+ }
+ var settings = $.extend({}, data_options, data.amsInputmaskOptions);
+ settings = ams.executeFunctionByName(data.amsInputmaskInitCallback, input, settings) || settings;
+ var plugin = input.inputmask(settings);
+ ams.executeFunctionByName(data.amsInputmaskAfterInitCallback, input, plugin, settings);
+ });
+ });
+ }
+ },
+
+ /**
* JQuery date picker
*/
datepicker: function(element) {
@@ -3235,6 +3269,12 @@
: ams.getFunctionByName(data.amsFormInvalidHandler)
: undefined
};
+ $('[data-ams-validate-rules]', form).each(function() {
+ if (index === 0) {
+ data_options.rules = {};
+ }
+ data_options.rules[$(this).attr('name')] = $(this).data('ams-validate-rules');
+ });
var settings = $.extend({}, data_options, data.amsValidateOptions);
settings = ams.executeFunctionByName(data.amsValidateInitCallback, form, settings) || settings;
var plugin = form.validate(settings);
@@ -3301,7 +3341,7 @@
// Set options
var data_options = {
bJQueryUI: false,
- bFilter: data.amsDatatableGlobalFilter !== false,
+ bFilter: data.amsDatatableGlobalFilter !== false || extensions.indexOf('columnfilter') >= 0,
bPaginate: data.amsDatatablePagination !== false,
bInfo: data.amsDatatableInfo !== false,
bSort: data.amsDatatableSort !== false,