"use strict"
;
var
ajaxSynchronized = true;
var
ajaxAutoUnblock = true;
var
ajax_action_button =
function
(e){
var
btn = $(this);
var
pre_script;
if
(pre_script = btn.attr(
"pre_script"
)){
var
ret =
eval
(pre_script);
if
(ret==false){
return
false;
}
}
var
btn_action = btn.attr(
'value'
);
if
(btn_action){
$(this).closest(
'form'
).data(
'btn_action'
,
{ name:
'btn_action'
,value:btn_action }
);
}
};
var
ajax_update_post_data =
function
(formEle, k, v){
var
form = $(formEle);
var
post_data = form.data(
'post_data'
);
if
( post_data == undefined ){
post_data = {};
}
if
( v == undefined ){
delete
post_data[k];
}
else
{
post_data[k] = v;
}
form.data(
'post_data'
,post_data);
return
true;
};
var
bool_checkbox =
function
(){
var
ipt = $(this);
var
formEle = ipt.closest(
"form"
);
var
_check = ipt.prop(
"checked"
);
if
(_check){
ajax_update_post_data(formEle,ipt.attr(
'name'
));
}
else
{
ajax_update_post_data(formEle,ipt.attr(
'name'
),
'f'
);
}
};
var
spin_number =
function
(){
var
spin = $(this);
var
config = {
lock:true,
imageBasePath:
'{webpath}/css/images/spin/'
,
btnCss: null,
txtCss: null,
btnClass:
'spin_btn'
,
};
var
interval = spin.attr(
'interval'
);
if
(interval){
config.interval = interval;
}
else
{
config.interval = 1;
}
var
min = spin.attr(
'min'
);
if
( min ){
config.min = min;
}
var
max = spin.attr(
'max'
);
if
( max ){
config.max = max;
}
spin.spin(config);
return
true;
};
var
date_input =
function
(){
var
ipt = $(this);
var
config = {
offset:[4,0],
selectors:true,
lang:
'{lang}'
,
firstDay : 1,
format:
'yyyy-mm-dd'
,
};
var
min = ipt.attr(
'min'
);
if
( min ){
config.min = min;
}
var
min = ipt.attr(
'min'
);
if
( min ){
config.min = min;
}
ipt.dateinput(config);
return
true;
};
var
time_picker =
function
(){
var
ipt = $(this);
var
config = { };
var
step = ipt.attr(
"step"
);
if
( step ){
config.step = step;
}
ipt.timePicker( config );
return
true;
};
var
ajax_form_post =
function
(e){
var
form = $(this);
var
pre_script;
if
(pre_script = form.attr(
"pre_script"
)){
var
ret =
eval
(pre_script);
if
(ret==false){
return
false;
}
}
var
errHint = form.find(
".formError"
).first();
if
(errHint.size() == 0){
errHint = $(
"#pageError"
);
}
errHint.text(
''
).hide();
if
(!e.isDefaultPrevented()){
$.blockUI({ message:
"{__('L_PROCESSING')}"
});
var
formArray = form.serializeArray();
var
btn_action_data;
var
btn_action;
if
(btn_action_data = form.data(
'btn_action'
)){
formArray.push(btn_action_data);
form.removeData(
'btn_action'
);
btn_action = btn_action_data.value;
}
else
{
btn_action =
''
;
}
console.log(
'btn action:'
+btn_action);
var
post_data;
if
(post_data = form.data(
'post_data'
)){
for
(
var
k in post_data ){
formArray.push( { name:k ,value: post_data[k] } );
}
form.removeData(
'post_data'
);
}
$.post(form.attr(
'action'
), formArray,
function
(json){
if
($(window).data(
'blockUI.isBlocked'
) == 1){
$.unblockUI();
}
if
(json.code === true){
var
returi =
""
;
var
retData =
"{__('L_PROCESSED')}!"
;
if
(json.data){
retData = json.data;
}
if
(btn_action ==
'reqonly'
){
if
(returi = form.attr(
'returi'
)){
$(window).data(
'blockUI.returi'
,returi);
ajaxAutoUnblock = false;
}
$.blockUI({ message:retData, css:{ cursor:
'pointer'
,padding:
'4px'
,border:
'3px solid #CC0000'
,}, overlayCSS:{ cursor:
'pointer'
} });
$(
".blockUI"
).addClass(
"blockwarn"
);
}
else
if
(returi = form.attr(
'returi'
)){
window.location = returi;
}
else
if
(form.attr(
'reload'
)!=undefined){
window.location.reload();
}
else
{
$.blockUI({ message:retData });
$.unblockUI();
}
}
else
{
if
(typeof (json.data.errmsg) ==
'string'
){
errHint.html(json.data).show();
}
else
{
errHint.html(
"{Html::text(__('E_FORM'))}"
).show();
for
(
var
p in json.data){
var
msg = json.data[p];
var
ele = form.find(
"[type=hidden][name="
+p+
"]"
);
if
(ele.length){
delete
json.data.p;
refid = ele.attr(
"id"
);
refname = form.find(
"[hidden-id="
+refid+
"]"
).attr(
"name"
);
json.data[refname]=+msg;
}
var
ele = form.find(
"[type=checkbox][name='"
+p+
"[]']"
);
if
(ele.length){
delete
json.data.p;
refname = p+
'[]'
;
json.data[refname]=+msg;
}
}
}
form.data(
"validator"
).invalidate(json.data);
} },
'json'
);
e.preventDefault();
}
else
{
errHint.html(
"{Html::text(__('E_FORM'))}"
).show();
}
};
var
ajax_post_form_hidden =
function
(){
var
form = $(this);
form.find(
"[hidden-id]"
).each(
function
(){
var
input = $(this);
var
refid = input.attr(
"hidden-id"
);
var
field = $(
"#"
+ refid +
""
);
field.change(
function
(){
var
hinput = $(this);
var
rinput = $(
"[hidden-id="
+hinput.attr(
"id"
)+
"]"
).first();
form.data(
'validator'
).reset(rinput)
});
});
};
var
validate_hidden_id =
function
(input) {
var
refid = input.attr(
"hidden-id"
);
var
field = $(
"#"
+ refid +
""
);
var
msg = field.attr(
'msg'
);
if
( !msg ){
msg =
"{__('E_NOT_EMPTY')}"
;
}
return
field.val() ? true : msg;
};
var
data_equals_validate =
function
(input) {
var
field;
var
name = input.attr(
"data-equals"
);
field = this.getInputs().filter(
"[name="
+ name +
"]"
);
return
input.val() == field.val() ? true : [name];
};
var
ajax_link_req =
function
(){
var
l = $(this);
var
hint = l.attr(
'hint'
);
if
(hint){
var
errHint = $(l.attr(
'hint'
));
errHint.text(
''
).hide();
}
if
(l.attr(
'confirm'
)){
if
(!confirm(l.attr(
'confirm'
))){
return
false;
}
}
$.blockUI({ message:
"{__('L_PROCESSING')}"
});
var
pre_script;
if
(pre_script = l.attr(
"pre_script"
)){
var
ret =
eval
(pre_script);
if
(ret==false){
return
false;
}
}
var
block = l.attr(
'block'
);
if
(block != undefined){
ajaxAutoUnblock = false ;
}
$.get(l.attr(
'href'
),
function
(json){
if
(json.code == true){
var
retData =
"{__('L_PROCESSED')}!"
;
var
returi;
var
successFunc = l.attr(
'success'
);
if
(successFunc){
l.each(window[successFunc]);
}
if
(json.data){
retData = json.data;
}
if
( l.attr(
'value'
) ==
'reqonly'
){
alert(retData);
}
else
if
(returi = l.attr(
'returi'
)){
window.location = returi;
}
else
if
(l.attr(
'reload'
)!=undefined){
window.location.reload();
}
else
{
$.blockUI({ message:retData, css:{ cursor:
'pointer'
,padding:
'4px'
,border:
'3px solid #CC0000'
,}, overlayCSS:{ cursor:
'pointer'
} });
$(
".blockUI"
).addClass(
"blockwarn"
);
}
}
else
{
if
(hint){
errHint.text(json.data).show();
}
else
{
alert(json.data);
}
}},
'json'
);
return
false;
};
var
btn_nav =
function
(){
var
input = $(this);
var
href = input.attr(
"href"
);
if
(href){
window.location = href;
}
else
{
alert(
"Href not set"
);
}
return
false;
};
var
btn_req =
function
(){
var
input = $(this);
var
href = input.attr(
"href"
);
var
hint = input.attr(
'hint'
);
if
(hint){
var
errHint = $(hint).first();
if
(errHint.size() == 0){
errHint = $(
"#pageError"
);
}
errHint.text(
''
).hide();
}
var
block = input.attr(
'block'
);
if
(block != undefined){
ajaxAutoUnblock = false
}
$.get(href,
function
(json){
if
(json.code == true){
var
returi;
if
(returi = input.attr(
'returi'
)){
window.location = returi;
}
else
if
(input.attr(
"reload"
)!=undefined){
window.location.reload();
}
else
{
var
retData =
"{__('L_PROCESSED')}!"
;
if
(json.data){
retData = json.data;
}
$.blockUI({ message:retData,css:{ cursor:
'pointer'
},overlayCSS:{ cursor:
'pointer'
} });
}
}
else
{
if
(hint){
$.unblockUI();
errHint.html(json.data.errmsg).show();
}
else
{
$.blockUI({ message:json.data.errmsg, css:{ cursor:
'pointer'
,padding:
'4px'
,border:
'3px solid #CC0000'
,}, overlayCSS:{ cursor:
'pointer'
} });
$(
".blockUI"
).addClass(
"blockwarn"
);
}
}
},
'json'
);
return
false;
};
var
ajax_checkbox =
function
(){
event.preventDefault();
var
action = $(this);
var
url = action.attr(
'url'
);
var
_check = action.prop(
"checked"
);
console.log(_check);
var
op ;
if
(_check){
op =
"1"
;
}
else
{
op =
"0"
;
}
$.get(url + op ,
function
(json){
if
(json.code == true){
if
(_check){
action.prop(
"checked"
,true);
}
else
{
action.prop(
"checked"
,false);
}
return
true;
}
else
{
return
false;
}
},
'json'
);
};
var
picklistinit =
function
(){
var
_select = $(this);
var
_hidden_id = _select.attr(
'hidden-id'
);
var
_un = _select.attr(
'un'
);
var
_lovchildren = _select.data(
'lovtree'
).c;
var
_rowvalue = _select.data(
'rowvalue'
);
$(
"<OPTION>"
).append(
"{__('L_SELECT')}"
).appendTo(_select);
for
(
var
_kid in _lovchildren){
var
_lov = _lovchildren[_kid][
'lov'
];
$(
"<OPTION>"
).val(_lov.lov_id).append(_lov.v).attr(
'k'
,_lov.id).attr(
'is_leaf'
,_lov.is_leaf).appendTo(_select);
}
_select.change(picklistchange);
if
(_rowvalue){
_select.find(
"[value="
+_rowvalue[0]+
"]"
).prop(
"selected"
,true);
_select.change();
}
return
true;
};
var
picklistchange =
function
(){
var
_select = $(this);
var
_hidden_id = _select.attr(
'hidden-id'
);
var
_un = _select.attr(
'un'
);
var
_lovtree = _select.data(
'lovtree'
);
var
_rowvalue = _select.data(
'rowvalue'
);
_select.nextAll().remove();
var
_selected = _select.find(
':selected'
);
if
(_selected.attr(
'is_leaf'
)==
"{DB::T}"
){
$(
"#"
+_hidden_id).val(_select.val());
_select.after(
"<img src='/s.gif' class='sprite_global successimg'/>"
);
}
else
{
var
_val = _select.val();
var
_k = _selected.attr(
'k'
);
if
(_lovtree.c[_k].c == undefined){
return
false;
}
var
_c_lovtree = _lovtree.c[_k];
var
_c_select = $(
'<SELECT>'
).data(
'lovtree'
,_c_lovtree).
data(
'rowvalue'
,_rowvalue).
attr(
'hidden-id'
,_hidden_id).attr(
'un'
,_un).
attr(
'name'
,_un+
'_'
+_k);
$(
"<OPTION>"
).append(
"{__('L_SELECT')}"
).appendTo(_c_select);
for
(
var
_kid in _c_lovtree.c){
var
_lov = _c_lovtree.c[_kid][
'lov'
];
$(
"<OPTION>"
).val(_lov.lov_id).append(_lov.v).attr(
'k'
,_lov.id).attr(
'is_leaf'
,_lov.is_leaf).appendTo(_c_select);
_select.after(_c_select);
}
_c_select.change(picklistchange);
if
(_rowvalue){
_c_select.find(
"[value="
+_rowvalue[_k]+
"]"
).prop(
"selected"
,true);
_c_select.change();
}
}
};
var
lookup_new =
function
(){
var
lookup = $(this);
var
pre_script;
if
(pre_script = lookup.attr(
"pre_script"
)){
var
ret =
eval
(pre_script);
if
(ret==false){
return
false;
}
}
var
url = lookup.attr(
"url"
);
if
(!url){
alert(
'url not set'
);
return
false;
}
var
height = lookup.attr(
'h'
);
if
(!height){
height = 600;
}
var
width = lookup.attr(
'w'
);
if
(!width){
width = 800;
}
window.open(url,
"pselect"
,
"scrollbars=yes,menubar=no,height="
+height+
",width="
+width+
",resizable=yes,toolbar=no,location=no,status=no"
);
return
false;
};
var
parent_lookup =
function
(){
var
lookup = $(this);
var
pid = opener.$(
"#"
+ lookup.attr(
'pid'
));
if
(!pid.length){
alert(lookup.attr(
'pid'
)+
" not found"
);
return
false;
}
var
pname = opener.$(
"#"
+ lookup.attr(
'pname'
));
if
(!pname.length){
alert(lookup.attr(
'pname'
)+
" not found"
);
return
false;
}
var
aft_script;
if
(aft_script = lookup.attr(
'aft_script'
)){
window.
eval
(aft_script);
}
pid.val($(this).attr(
"refid"
));
pid.change();
pname.val($(this).attr(
"refvalue"
));
pname.change();
if
(aft_script = pname.attr(
'aft_script'
)){
opener.window.
eval
(aft_script);
}
if
(aft_script = pid.attr(
'aft_script'
)){
opener.window.
eval
(aft_script);
}
window.close();
};
var
uploadComplete =
function
(e, data) {
var
_fileUpload = $(this);
if
(_fileUpload.attr(
'reload'
)!=undefined){
window.location.reload();
}
};
var
genericUpload =
function
(dom){
var
endpointurl = $(this).attr(
'endpoint'
);
var
sid = $(this).attr(
"sid"
);
var
completeFunc =
'uploadComplete'
;
var
cusComplete = $(this).attr(
'complete'
);
if
(cusComplete){
completeFunc = cusComplete;
}
$(this).fileupload({
url: endpointurl,
autoUpload:true,
dataType:
'json'
,
formData: [{
'sessionid'
: sid }],
paramName:
'Filedata'
,
}).bind(
'fileuploaddone'
,window[completeFunc]);
};
var
advance_validate =
function
(errors, event) {
var
conf = this.getConf();
$.each(errors,
function
(index, error) {
var
input = error.input;
input.addClass(conf.errorClass);
var
msg = input.data(
"msg.el"
);
if
(!msg) {
msg = $(conf.message).addClass(conf.messageClass).appendTo(input.parent());
input.data(
"msg.el"
, msg);
}
msg.css({visibility:
'hidden'
}).find(
"span"
).remove();
$.each(error.messages,
function
(i, m) {
$(
"<span/>"
).html(m).appendTo(msg);
});
if
(msg.outerWidth() == msg.parent().width()) {
msg.add(msg.find(
"span"
));
}
msg.css({ visibility:
'visible'
}) .fadeIn(conf.speed);
msg.parent().addClass(
"colError"
);
});
};
var
advance_inputs =
function
(inputs) {
var
conf = this.getConf();
inputs.removeClass(conf.errorClass).each(
function
() {
var
msg = $(this).data(
"msg.el"
);
if
(msg) {
msg.hide();
msg.parent().removeClass(
"colError"
);
}
});
if
($(
".colError"
).size() == 0){
var
form = $(this);
var
errHint = form.find(
".formError"
).first();
if
(errHint.size() == 0){
errHint = $(
"#pageError"
);
errHint.text(
''
).hide();
}
}
};
var
checkall =
function
() {
var
check = $(this);
var
refname = check.attr(
'refname'
);
if
(refname){
if
(check.prop(
"checked"
)){
$(
"input[name*='"
+refname+
"']"
).prop(
"checked"
,true);
}
else
{
$(
"input[name*='"
+refname+
"']"
).prop(
"checked"
,false);
}
}
var
refclass = check.attr(
'refclass'
);
if
(refclass){
if
(check.prop(
"checked"
)){
$(
"input."
+refclass).prop(
"checked"
,true);
}
else
{
$(
"input."
+refclass).prop(
"checked"
,false);
}
}
};
var
readonlyCheck =
function
(e){
e.preventDefault();
return
false;
};
var
readonlySelect =
function
(){
$(this).prop(
"disabled"
, true);
};
$(document).ready(
function
() {
$(document).ajaxStart(
function
(){
$(
"#pageError"
).text(
''
).hide();
$(
".formError"
).text(
''
).hide();
if
(ajaxSynchronized){
$.blockUI({ message:
"{__('L_PROCESSING')}"
});
}
});
$(document).ajaxStop(
function
(){
if
(ajaxSynchronized){
if
($(window).data(
'blockUI.isBlocked'
) == 1){
if
(ajaxAutoUnblock){
$.unblockUI();
}
else
{
ajaxAutoUnblock = true;
}
}
}
else
{
ajaxAutoUnblock = true;
ajaxSynchronized = true;
}
});
$(document).ajaxError(
function
(event, request, settings){
alert(
'Ajax Request Error! URL='
+settings.url);
if
(ajaxSynchronized){
if
($(window).data(
'blockUI.isBlocked'
) == 1){
if
(ajaxAutoUnblock){
$.unblockUI();
}
else
{
ajaxAutoUnblock = true;
}
}
}
else
{
ajaxAutoUnblock = true;
ajaxSynchronized = true;
}
});
$(document).click(
function
(){
if
($(window).data(
'blockUI.isBlocked'
) == 1){
$.unblockUI();
var
returi = $(window).data(
'blockUI.returi'
);
if
(returi){
window.location = returi;
}
}});
$.tools.validator.addEffect(
"advanced"
, advance_validate,advance_inputs);
$.tools.validator.fn(
"[data-equals]"
, {
"{lang}"
:
"{__('E_NOTEQUAL')}"
}, data_equals_validate );
$.tools.validator.fn(
"[hidden-id]"
,validate_hidden_id);
$(
".ajax_form_post"
).validator({ lang:
'{lang}'
,effect:
'advanced'
}) .submit( ajax_form_post );
$(
".ajax_form_post"
).each(ajax_post_form_hidden);
$(
".spin_number"
).each(spin_number);
$(
".date_input"
).each(date_input);
$(
".time_picker"
).each(time_picker);
$(
'.ajax_link_req'
).click(ajax_link_req);
$(
".require_validate"
).validator({ lang:
'{lang}'
,effect:
'advanced'
});
$(
".btn_nav"
).click( btn_nav );
$(
".btn_req"
).click( btn_req );
$(
"button.btn_action"
).click(ajax_action_button);
$(
".lookup_new"
).click(lookup_new);
$(
".parent_lookup"
).click(parent_lookup);
$(
".ajax_checkbox"
).click(ajax_checkbox);
$(
".bool_checkbox"
).click(bool_checkbox);
$(
".checkall"
).click(checkall);
$(
"img[rel]"
).overlay();
$(
"input[tip]"
).tooltip({ position:
"center right"
});
$.tools.validator.localize(
"{lang}"
, {
'*'
:
"{__('E_ALL')}"
,
':email'
:
"{__('E_EMAIL')}"
,
':number'
:
"{__('E_DECIMAL')}"
,
':url'
:
"{__('E_URL')}"
,
'[max]'
:
"{__('E_MAX_LENGTH')}"
,
'[min]'
:
"{__('E_MIN_LENGTH')}"
,
'[required]'
:
"{__('E_NOT_EMPTY')}"
,
});
});