#19524468 XML JS Filter 코드 정리 : 생성되는 코드가 조금 더 가볍도록 수정

git-svn-id: http://xe-core.googlecode.com/svn/sandbox@8086 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
taggon 2011-02-10 06:24:56 +00:00
parent 5f38afe37e
commit fadefd0964
2 changed files with 89 additions and 81 deletions

View file

@ -111,13 +111,15 @@ var Validator = xe.createApp('Validator', {
if (eq_val != val) return (result = (!!self.cast('ALERT', [form, name, 'equalto']) && false));
}
$.each(rule, function() {
var ret = self.cast('APPLY_RULE', [this, val]);
if (!ret) {
self.cast('ALERT', [form, name, 'invalid_'+this]);
return (result = false);
}
});
if (rule) {
$.each(rule, function() {
var ret = self.cast('APPLY_RULE', [this, val]);
if (!ret) {
self.cast('ALERT', [form, name, 'invalid_'+this]);
return (result = false);
}
});
}
if (!result) return false;
});
@ -178,7 +180,7 @@ var Validator = xe.createApp('Validator', {
delete extras[name];
},
API_APPLY_RULE : function(sender, params) {
var name = params[0].toLowerCase();
var name = params[0];
var value = params[1];
if (typeof(rules[name]) == 'undefined') return true; // no filter
@ -294,8 +296,35 @@ function filterAlertMessage(ret_obj) {
* @brief Function to process filters
* @deprecated
*/
function procFilter(fo_obj, filter_func)
{
filter_func(fo_obj);
function procFilter(form, filter_func) {
filter_func(form);
return false;
}
function legacy_filter(filter_name, form, module, act, callback, responses, confirm_msg) {
var v = xe.getApp('validator')[0], $ = jQuery, args = [];
if (!v) return false;
if (!form.elements['_filter']) $(form).prepend('<input type="hidden" name="_filter" />');
form.elements['_filter'].value = filter_name;
args[0] = filter_name;
args[1] = function(f) {
var params = {}, res = [], elms = f.elements, data = $(f).serializeArray();
$.each(data, function(i, field) {
var v = $.trim(field.value);
if(!v) return false;
if(/\[\]$/.test(field.name)) field.name = field.name.replace(/\[\]$/, '');
if(params[field.name]) params[field.name] += '|@|'+v;
else params[field.name] = field.value;
});
if (confirm_msg && !confirm(confirm_msg)) return false;
exec_xml(module, act, params, callback, responses, params, form);
};
v.cast('ADD_CALLBACK', args);
v.cast('VALIDATE', [form, filter_name]);
return false;
}