mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-04-20 02:42:23 +09:00
#18592325 xml js filter에 확장 변수 처리 추가
git-svn-id: http://xe-core.googlecode.com/svn/sandbox@7126 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
parent
27317eec99
commit
62387a364b
2 changed files with 49 additions and 29 deletions
|
|
@ -12,6 +12,7 @@ var messages = [];
|
|||
var rules = [];
|
||||
var filters = [];
|
||||
var callbacks = [];
|
||||
var extras = {};
|
||||
|
||||
var Validator = xe.createApp('Validator', {
|
||||
init : function() {
|
||||
|
|
@ -48,7 +49,7 @@ var Validator = xe.createApp('Validator', {
|
|||
this.cast('ADD_RULE', ['alpha_number', regAlphaNum]);
|
||||
|
||||
// number
|
||||
var regNum = /^[0-9]*$/i;
|
||||
var regNum = /^[0-9]*$/;
|
||||
this.cast('ADD_RULE', ['number', regNum]);
|
||||
// }}} add filters
|
||||
},
|
||||
|
|
@ -72,7 +73,7 @@ var Validator = xe.createApp('Validator', {
|
|||
}
|
||||
})
|
||||
.submit(function(){
|
||||
var legacyFn = this['xe:onsubmit'];
|
||||
var legacyFn = this['xe:onsubmit'];
|
||||
var hasLegacyFn = $.isFunction(legacyFn);
|
||||
var bResult = hasLegacyFn?legacyFn.apply(this):self.run(this);
|
||||
|
||||
|
|
@ -85,7 +86,7 @@ var Validator = xe.createApp('Validator', {
|
|||
if (form.elements['_filter']) filter = form.elements['_filter'].value;
|
||||
if (!filter) return true;
|
||||
if ($.isFunction(callbacks[filter])) callback = callbacks[filter];
|
||||
filter = filters[filter.toLowerCase()] || null;
|
||||
filter = $.extend({}, filters[filter.toLowerCase()] || {}, extras);
|
||||
|
||||
$.each(filter, function(name) {
|
||||
var _el = form.elements[name];
|
||||
|
|
@ -158,6 +159,20 @@ var Validator = xe.createApp('Validator', {
|
|||
return null;
|
||||
}
|
||||
},
|
||||
API_ADD_EXTRA_FIELD : function(sender, params) {
|
||||
var name = params[0].toLowerCase();
|
||||
var prop = params[1];
|
||||
|
||||
extras[name] = prop;
|
||||
},
|
||||
API_GET_EXTRA_FIELD : function(sender, params) {
|
||||
var name = params[0].toLowerCase();
|
||||
return extras[name];
|
||||
},
|
||||
API_DEL_EXTRA_FIELD : function(sender, params) {
|
||||
var name = params[0].toLowerCase();
|
||||
delete extras[name];
|
||||
},
|
||||
API_APPLY_RULE : function(sender, params) {
|
||||
var name = params[0].toLowerCase();
|
||||
var value = params[1];
|
||||
|
|
@ -235,10 +250,10 @@ oValidator.registerPlugin(new EditorStub);
|
|||
|
||||
// functions
|
||||
function get_value(elem) {
|
||||
var vals = [];
|
||||
if (elem.is(':radio')){
|
||||
return elem.filter(':checked').val();
|
||||
} else if (elem.is(':checkbox')) {
|
||||
var vals = [];
|
||||
elem.filter(':checked').each(function(){
|
||||
vals.push(this.value);
|
||||
});
|
||||
|
|
@ -255,20 +270,20 @@ function get_value(elem) {
|
|||
* @brief ajax로 서버에 요청후 결과를 처리할 callback_function을 지정하지 않았을 시 호출되는 기본 함수
|
||||
**/
|
||||
function filterAlertMessage(ret_obj) {
|
||||
var error = ret_obj["error"];
|
||||
var message = ret_obj["message"];
|
||||
var act = ret_obj["act"];
|
||||
var redirect_url = ret_obj["redirect_url"];
|
||||
var url = location.href;
|
||||
var error = ret_obj["error"];
|
||||
var message = ret_obj["message"];
|
||||
var act = ret_obj["act"];
|
||||
var redirect_url = ret_obj["redirect_url"];
|
||||
var url = location.href;
|
||||
|
||||
if(typeof(message)!="undefined"&&message&&message!="success") alert(message);
|
||||
if(typeof(message)!="undefined"&&message&&message!="success") alert(message);
|
||||
|
||||
if(typeof(act)!="undefined" && act) url = current_url.setQuery("act", act);
|
||||
else if(typeof(redirect_url)!="undefined" && redirect_url) url = redirect_url;
|
||||
if(typeof(act)!="undefined" && act) url = current_url.setQuery("act", act);
|
||||
else if(typeof(redirect_url)!="undefined" && redirect_url) url = redirect_url;
|
||||
|
||||
if(url == location.href) url = url.replace(/#(.*)$/,'');
|
||||
if(url == location.href) url = url.replace(/#(.*)$/,'');
|
||||
|
||||
location.href = url;
|
||||
location.href = url;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -1002,25 +1002,30 @@
|
|||
/**
|
||||
* @brief 특정 module_srl에 해당하는 document_extra_keys type, required등의 값을 체크하여 header에 javascript 코드 추가
|
||||
**/
|
||||
function addXmlJsFilter($module_srl) {
|
||||
$oDocumentModel = &getModel('document');
|
||||
$extra_keys = $oDocumentModel->getExtraKeys($module_srl);
|
||||
if(!count($extra_keys)) return;
|
||||
function addXmlJsFilter($module_srl) {
|
||||
$oDocumentModel = &getModel('document');
|
||||
$extra_keys = $oDocumentModel->getExtraKeys($module_srl);
|
||||
if(!count($extra_keys)) return;
|
||||
|
||||
$js_code = "";
|
||||
$js_code = array();
|
||||
$js_code[] = '<script type="text/javascript">//<![CDATA[';
|
||||
$js_code[] = '(function($){';
|
||||
$js_code[] = 'var validator = xe.getApp("validator")[0];';
|
||||
$js_code[] = 'if(!validator) return false;';
|
||||
|
||||
$logged_info = Context::get('logged_info');
|
||||
$logged_info = Context::get('logged_info');
|
||||
|
||||
foreach($extra_keys as $idx => $val) {
|
||||
$js_code .= sprintf('alertMsg["extra_vars%s"] = "%s";', $val->idx, $val->name);
|
||||
$js_code .= sprintf('target_type_list["extra_vars%s"] = "%s";', $val->idx, $val->type);
|
||||
$js_code .= sprintf('extra_vars[extra_vars.length] = "extra_vars%s";', $val->idx);
|
||||
if($val->is_required == 'Y' && $logged_info->is_admin != 'Y') $js_code .= sprintf('notnull_list[notnull_list.length] = "extra_vars%s";',$val->idx);
|
||||
}
|
||||
foreach($extra_keys as $idx => $val) {
|
||||
$js_code[] = sprintf('validator.cast("ADD_MESSAGE", ["extra_vars%s","%s"]);', $val->idx, $val->name);
|
||||
if($val->is_required == 'Y' && $logged_info->is_admin != 'Y') $js_code[] = sprintf('validator.cast("ADD_EXTRA_FIELD", ["extra_vars%s", { required:true }]);', $val->idx);
|
||||
}
|
||||
|
||||
$js_code = "<script type=\"text/javascript\">//<![CDATA[\n".$js_code."\n//]]></script>";
|
||||
Context::addHtmlHeader($js_code);
|
||||
}
|
||||
$js_code[] = '})(jQuery);';
|
||||
$js_code[] = '//]]></script>';
|
||||
$js_code = implode("\n", $js_code);
|
||||
|
||||
Context::addHtmlHeader($js_code);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 카테고리 추가
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue