Skip to content

Commit

Permalink
Icon handler to open combo-lookup controls
Browse files Browse the repository at this point in the history
  • Loading branch information
tvannini committed May 24, 2021
1 parent c8d0669 commit a1d0dde
Show file tree
Hide file tree
Showing 5 changed files with 208 additions and 21 deletions.
99 changes: 86 additions & 13 deletions htdocs/js/env.js
Expand Up @@ -2706,7 +2706,9 @@ o2jse.tab.changeRow = function(targetObj, movDir, navName) {
return false;
}
targetObj.blur();
var sourceRow = targetObj.parentNode.parentNode;
var sourceRow = (targetObj.o2.cT == 'listcombo' ?
targetObj.parentNode.parentNode.parentNode :
targetObj.parentNode.parentNode);
var targetRow;
// _________________________________________________________ Go to previous record ___
if (movDir == "P") {
Expand Down Expand Up @@ -2861,11 +2863,13 @@ o2jse.tab.moveSel = function(sourceRow, targetRow, noRequest) {
}
// _____________________________________________ Combo look-up ___
else {
sourceFrame = sourceField;
sourceField = o2jse.firstRealChild(sourceFrame);
// _____________________ Move hidden field with code value ___
$code_field = document.getElementsByName(targetField.o2.c +
targetField.o2.e);
if ($code_field[0]) {
targetParent.appendChild($code_field[0]);
code_field = document.getElementsByName(targetField.o2.c +
targetField.o2.e);
if (code_field[0]) {
targetField.appendChild(code_field[0].cloneNode(true));
}
// ______________________________________________ Disabled ___
if (sourceField.tagName.toLowerCase() == 'div') {
Expand All @@ -2882,11 +2886,12 @@ o2jse.tab.moveSel = function(sourceRow, targetRow, noRequest) {
// _______________________________________________ Enabled ___
else {
targetClone.innerHTML = sourceField.value;
var newValue = targetField.innerHTML.trim();
var newValue = targetField.firstChild
.textContent.trim();
sourceField.value = newValue.decode();
sourceField.dropDownActive = false;
delete sourceField.saveValue;
targetParent.replaceChild(sourceField, targetField);
targetParent.replaceChild(sourceFrame, targetField);
sourceParent.insertBefore(targetClone,
sourceParent.firstChild);
}
Expand Down Expand Up @@ -5929,6 +5934,67 @@ o2jse.lu.ck = function(targetObj) {
};


/**
* Handler for onMouseDown events on lookup open icon
*
* @param {object} targetObj Lookup pseudo-element icon receiving event
*/
o2jse.lu.ick = function(targetObj) {

ctrlObj = o2jse.firstRealChild(targetObj.parentNode);
if (ctrlObj.listObj) {
return o2jse.lu.listOff(ctrlObj);
}
else {
o2jse.lu.list(ctrlObj, true, true);
}
if (ctrlObj.select) {
ctrlObj.select();
}
return false;

};


/**
* Handler for OnMouseOver events on lookup open icon to magnify it
*
* @param object targetObj HTML element (DIV) on which event is fired
*/
o2jse.lu.onI = function(targetObj) {

var ratio = 1.2;
if (o2jse.lu.effectTimeout) {
clearTimeout(o2jse.lu.effectTimeout);
}
if (o2jse.lu.btnEffectObj) {
o2jse.removeEl(o2jse.lu.btnEffectObj);
o2jse.lu.btnEffectObj = null;
}
var bigImg = o2jse.createEl(targetObj.parentNode,
'DIV',
targetObj.className);
var pos = o2jse.getPos(targetObj);
bigImg.style = 'transform:scale(' + ratio + ');';
bigImg.style.position = 'absolute';
bigImg.style.width = parseInt(targetObj.offsetWidth * ratio) + 'px';
bigImg.style.height = parseInt(targetObj.offsetHeight * ratio) + 'px';
bigImg.style.left = pos.x + 'px';
bigImg.style.top = pos.y + 'px';
bigImg.style.cursor = 'pointer';
bigImg.onclick = function() { bigImg.onmouseout();
targetObj.onmouseover = null;
targetObj.onclick(targetObj); };
bigImg.onmouseout = function() { o2jse.removeEl(bigImg); delete bigImg; };
targetObj.onmouseout = function() { targetObj.onmouseover = function() {
o2jse.lu.onI(this);
}; };
o2jse.lu.btnEffectObj = bigImg;
o2jse.elBody.appendChild(o2jse.lu.btnEffectObj);

};


/**
* Compose and display items list panel
*
Expand Down Expand Up @@ -8520,7 +8586,7 @@ jxc = function(defObj) {
}
// __________________________________________________ Disabled ___
else {
divObj.onclick = null;
divObj.onclick = null;
}
// _________________________ Reload listbox options from items ___
var opts = divObj.getElementsByTagName("div");
Expand Down Expand Up @@ -8561,10 +8627,10 @@ jxc = function(defObj) {
descField.style.width = defObj.w + 'px';
descField.style.height = defObj.h + 'px';
if (defObj.p.pT != 'tab') {
descField.parentNode.style.left = defObj.x + 'px';
descField.parentNode.style.top = defObj.y + 'px';
descField.parentNode.parentNode.style.left = defObj.x + 'px';
descField.parentNode.parentNode.style.top = defObj.y + 'px';
}
var disabled = descField.nodeName != "INPUT";
var disabled = descField.nodeName != "INPUT";
if (disabled == defObj.e) {
// ________________________________ Replace DIV with INPUT ___
if (defObj.e) {
Expand Down Expand Up @@ -8613,7 +8679,6 @@ jxc = function(defObj) {
// ____________________________________________ Active control ___
var zoom = defObj.p.z;
if (defObj.e) {
descField.style.cursor = "pointer";
if (defObj.dyn) {
descField.o2.dyn = true;
}
Expand All @@ -8623,10 +8688,18 @@ jxc = function(defObj) {
}
descField.o2.rows = defObj.p.rows;
descField.onkeydown = function(e) { o2jse.lu.k(e, this); };
descField.onclick = function() { o2jse.lu.ck(this); };
descField.onpaste = function() { o2jse.lu.p(this); };
descField.onfocus = function() { o2jse.lu.f(this); };
descField.onblur = function() { o2jse.lu.b(this); };
if (defObj.o) {
iObj = descField.parentNode.getElementsByTagName('div')[0];
iObj.onclick = function() { o2jse.lu.ick(this); };
descField.style.cursor = 'auto';
}
else {
descField.onclick = function() { o2jse.lu.ck(this); };
descField.style.cursor = 'pointer';
}
}
// __________________________________________________ Disabled ___
else {
Expand Down
26 changes: 21 additions & 5 deletions lib/jxhtml.inc
Expand Up @@ -2461,24 +2461,40 @@ class o2html {
($zoom ? ",z:!0" : ",z:!1"));
$htmlname = $o2ctrl_obj->nome.$o2ctrl_obj->id_esecuzione;
if ($enabled && $enabled_in_tab && $active) {
// ___________________________ Handler icon to open or click on full field ___
$handler = $app->option_get('lookup_handler');
$js_change = 'onKeyDown="o2jse.lu.k(event, this);" '.
'onClick="o2jse.lu.ck(this);" '.
($handler ? '' : 'onClick="o2jse.lu.ck(this);" ').
'onPaste="o2jse.lu.p(this);" '.
($zoom ? 'onDblClick="o2jse.ctrl.zoom(event);" ' : '').
'onFocus="o2jse.lu.f(this);" onBlur="o2jse.lu.b(this);"';
print '<input type="text" id="'.$htmlname.
print '<div style="position:relative;width:'.$o2ctrl_obj->larghezza.'px;" '.
$js_prop.'><input type="text" id="'.$htmlname.
'_desc" value="'.str_replace('"', "&quot;", $desc_value).
'" class="'.$o2ctrl_obj->css."_field".($zoom ? ' jxzoom' : '').
($o2ctrl_obj->forza_submit ? ' jxsoc' : '').
($o2ctrl_obj->error ? ' jxerror' : '').
'" style="width:'.$o2ctrl_obj->larghezza.'px;height:'.
$o2ctrl_obj->altezza."px;cursor:pointer".
$o2ctrl_obj->altezza.
"px;cursor:".($handler ? 'auto' : 'pointer').
($o2ctrl_obj->visibile ? "" : ";display:none")."\"\n".
$js_prop.$js_change.
($o2ctrl_obj->popup_exp ?
' onMouseOver="o2jse.pu.i(event)" onMouseOut="o2jse.pu.o()"' : '').
">\n<input type=\"hidden\" name=\"".$htmlname.
'" value="'.$code_value.'" '.$js_prop.">\n";
">\n";
// _________________________________________ Add DIV for open icon handler ___
if ($handler && $o2ctrl_obj->visibile) {
$effect = $app->option_get('lookup_effect');
print '<div class="'.$o2ctrl_obj->css.'_field" '.
'style="position:absolute;width:'.$o2ctrl_obj->altezza.
'px;height:'.$o2ctrl_obj->altezza.'px;right:0;top:0;'.
'background-color:transparent;border-color:transparent;'.
'cursor:pointer" onClick="o2jse.lu.ick(this);"'.
($effect ? ' onMouseOver="o2jse.lu.onI(this);"' : '').
'>&nbsp;</div>';
}
print '<input type="hidden" name="'.$htmlname.'" value="'.$code_value.'" '.
$js_prop."></div>\n";
}
else {
if (!$desc_value) {
Expand Down
3 changes: 2 additions & 1 deletion lib/jxjs.inc
Expand Up @@ -496,7 +496,8 @@ class jxjs {
(!$o2ctrl_obj->tab_index ?
',x:'.$o2ctrl_obj->x.',y:'.$o2ctrl_obj->y : '').
',w:'.$o2ctrl_obj->larghezza.
',h:'.$o2ctrl_obj->altezza,
',h:'.$o2ctrl_obj->altezza.
($app->option_get('lookup_handler') ? ',o:!0' : ',o:!1'),
$o2ctrl_obj->js_props("cssf:'".$o2ctrl_obj->css.
($enabled ? '_field' : '_field_dis').
($zoom ? ' jxzoom' : '').
Expand Down
99 changes: 97 additions & 2 deletions lib/prgs/o2sys_options_admin.prf
Expand Up @@ -12,6 +12,8 @@ function o2sys_options_admin
$task_prg�_�var->definisci("opt_grid_scroll", "_o2logical");
$task_prg�_�var->definisci("opt_grid_settings", "o2sys_generic_opt");
$task_prg�_�var->definisci("opt_language", "o2sys_language");
$task_prg�_�var->definisci("opt_lookup_effect", "_o2logical");
$task_prg�_�var->definisci("opt_lookup_handler", "_o2logical");
$task_prg�_�var->definisci("opt_lookup_time", "_o2number");
$task_prg�_�var->definisci("opt_menu_app", "_o2logical");
$task_prg�_�var->definisci("opt_menu_help", "_o2logical");
Expand Down Expand Up @@ -48,7 +50,7 @@ function o2sys_options_admin
$ctrl_o2multipage7->y(20);
$ctrl_o2multipage7->larghezza(370);
$ctrl_o2multipage7->altezza(260);
$ctrl_o2multipage7->label(array("Language","Menu","Tables","Themes","Miscellaneous"));
$ctrl_o2multipage7->label(array("Language","Menu","Tables","Themes","Combo-lookup"));
$ctrl_o2multipage7->buttons("T");
$ctrl_o2button2 = &$form_options_admin->ctrldef("o2button2", "button", "", "", "");
$ctrl_o2button2->x(220);
Expand Down Expand Up @@ -351,6 +353,20 @@ function o2sys_options_admin
$ctrl_o2label21->altezza(20);
$ctrl_o2label21->info_padre(array(4));
$ctrl_o2label21->label("NOTE: Minimum allowed time is 300 ms.");
$ctrl_o2label22 = &$form_options_admin->ctrldef("o2label22", "label", "o2multipage7", "", "");
$ctrl_o2label22->x(30);
$ctrl_o2label22->y(100);
$ctrl_o2label22->larghezza(160);
$ctrl_o2label22->altezza(20);
$ctrl_o2label22->info_padre(array(4));
$ctrl_o2label22->label("Click on icon handler to open:");
$ctrl_o2label23 = &$form_options_admin->ctrldef("o2label23", "label", "o2multipage7", "", "");
$ctrl_o2label23->x(30);
$ctrl_o2label23->y(125);
$ctrl_o2label23->larghezza(160);
$ctrl_o2label23->altezza(20);
$ctrl_o2label23->info_padre(array(4));
$ctrl_o2label23->label("Magnify icon handler on over:");
$ctrl_o2edit4 = &$form_options_admin->ctrldef("o2edit4", "edit", "o2multipage7", "prg�_�var", "opt_lookup_time");
$ctrl_o2edit4->x(190);
$ctrl_o2edit4->y(50);
Expand All @@ -359,6 +375,23 @@ function o2sys_options_admin
$ctrl_o2edit4->azione("mod_lookup_time");
$ctrl_o2edit4->on_change(o2sys_options_admin_exp_5());
$ctrl_o2edit4->info_padre(array(4));
$ctrl_o2checkbox7 = &$form_options_admin->ctrldef("o2checkbox7", "check", "o2multipage7", "prg�_�var", "opt_lookup_handler");
$ctrl_o2checkbox7->x(190);
$ctrl_o2checkbox7->y(100);
$ctrl_o2checkbox7->larghezza(20);
$ctrl_o2checkbox7->altezza(20);
$ctrl_o2checkbox7->azione("mod_lookup_handler");
$ctrl_o2checkbox7->on_change(o2sys_options_admin_exp_5());
$ctrl_o2checkbox7->info_padre(array(4));
$ctrl_o2checkbox8 = &$form_options_admin->ctrldef("o2checkbox8", "check", "o2multipage7", "prg�_�var", "opt_lookup_effect");
$ctrl_o2checkbox8->x(190);
$ctrl_o2checkbox8->y(125);
$ctrl_o2checkbox8->larghezza(20);
$ctrl_o2checkbox8->altezza(20);
$ctrl_o2checkbox8->modificabile(o2sys_options_admin_exp_58());
$ctrl_o2checkbox8->azione("mod_lookup_effect");
$ctrl_o2checkbox8->on_change(o2sys_options_admin_exp_5());
$ctrl_o2checkbox8->info_padre(array(4));
}

function o2sys_options_admin��add_skin_act(&$o2exe) {
Expand Down Expand Up @@ -406,6 +439,12 @@ function o2sys_options_admin
// $o2exe->s(36) && True && o2act::remark("Lookup request delay time while typing") && $o2exe->e();
$o2exe->s(37) && True && o2act::set("prg�_�var", "option_key", o2sys_options_admin_exp_34()) && $o2exe->e();
$o2exe->s(38) && True && o2act::set("prg�_�var", "opt_lookup_time", o2sys_options_admin_exp_40()) && $o2exe->e();
// $o2exe->s(39) && True && o2act::remark("Lookup uses icon handler or full field to open") && $o2exe->e();
$o2exe->s(40) && True && o2act::set("prg�_�var", "option_key", o2sys_options_admin_exp_52()) && $o2exe->e();
$o2exe->s(41) && True && o2act::set("prg�_�var", "opt_lookup_handler", o2sys_options_admin_exp_4()) && $o2exe->e();
// $o2exe->s(42) && True && o2act::remark("Lookup maginfy handler icon on over") && $o2exe->e();
$o2exe->s(43) && True && o2act::set("prg�_�var", "option_key", o2sys_options_admin_exp_53()) && $o2exe->e();
$o2exe->s(44) && True && o2act::set("prg�_�var", "opt_lookup_effect", o2sys_options_admin_exp_54()) && $o2exe->e();
} //|o2_fine_act|

function o2sys_options_admin��load_skins_act(&$o2exe) {
Expand Down Expand Up @@ -434,6 +473,15 @@ function o2sys_options_admin
$o2exe->s(1) && True && o2act::set("prg�_�var", "modified_options", o2sys_options_admin_exp_5()) && $o2exe->e();
} //|o2_fine_act|

function o2sys_options_admin��mod_lookup_effect_act(&$o2exe) {
$o2exe->s(1) && True && o2act::set("prg�_�var", "modified_options", o2sys_options_admin_exp_5()) && $o2exe->e();
} //|o2_fine_act|

function o2sys_options_admin��mod_lookup_handler_act(&$o2exe) {
$o2exe->s(1) && (o2sys_options_admin_exp_57() || $o2exe->e()) && o2act::set("prg�_�var", "opt_lookup_effect", o2sys_options_admin_exp_8()) && $o2exe->e();
$o2exe->s(2) && True && o2act::set("prg�_�var", "modified_options", o2sys_options_admin_exp_5()) && $o2exe->e();
} //|o2_fine_act|

function o2sys_options_admin��mod_lookup_time_act(&$o2exe) {
$o2exe->s(1) && True && o2act::set("prg�_�var", "opt_lookup_time", o2sys_options_admin_exp_35()) && $o2exe->e();
$o2exe->s(2) && True && o2act::set("prg�_�var", "modified_options", o2sys_options_admin_exp_5()) && $o2exe->e();
Expand Down Expand Up @@ -587,7 +635,19 @@ function o2sys_options_admin
$o2exe->s(82) && True && o2act::set("options", "code", o2sys_options_admin_exp_2()) && $o2exe->e();
$o2exe->s(83) && True && o2act::set("options", "value", o2sys_options_admin_exp_35()) && $o2exe->e();
$o2exe->s(84) && True && o2act::view("options", "S", "") && $o2exe->e();
$o2exe->s(85) && True && o2act::alert(o2sys_options_admin_exp_45(), 0) && $o2exe->e();
$o2exe->s(85) && True && o2act::set("prg�_�var", "option_key", o2sys_options_admin_exp_52()) && $o2exe->e();
$o2exe->s(86) && (o2sys_options_admin_exp_6() || $o2exe->e()) && o2act::view("options", "I", "") && $o2exe->e();
$o2exe->s(87) && True && o2act::set("options", "o2user", o2sys_options_admin_exp_1()) && $o2exe->e();
$o2exe->s(88) && True && o2act::set("options", "code", o2sys_options_admin_exp_2()) && $o2exe->e();
$o2exe->s(89) && True && o2act::set("options", "value", o2sys_options_admin_exp_55()) && $o2exe->e();
$o2exe->s(90) && True && o2act::view("options", "S", "") && $o2exe->e();
$o2exe->s(91) && True && o2act::set("prg�_�var", "option_key", o2sys_options_admin_exp_53()) && $o2exe->e();
$o2exe->s(92) && (o2sys_options_admin_exp_6() || $o2exe->e()) && o2act::view("options", "I", "") && $o2exe->e();
$o2exe->s(93) && True && o2act::set("options", "o2user", o2sys_options_admin_exp_1()) && $o2exe->e();
$o2exe->s(94) && True && o2act::set("options", "code", o2sys_options_admin_exp_2()) && $o2exe->e();
$o2exe->s(95) && True && o2act::set("options", "value", o2sys_options_admin_exp_56()) && $o2exe->e();
$o2exe->s(96) && True && o2act::view("options", "S", "") && $o2exe->e();
$o2exe->s(97) && True && o2act::alert(o2sys_options_admin_exp_45(), 0) && $o2exe->e();
} //|o2_fine_act|

function o2sys_options_admin��start_act(&$o2exe) {
Expand Down Expand Up @@ -897,4 +957,39 @@ function o2sys_options_admin_exp_51() {

return ((o2val('prg�_�var','opt_nav_effects') ? true : false));
} //|o2_fine_exp|

function o2sys_options_admin_exp_52() {

return ('lookup_handler');
} //|o2_fine_exp|

function o2sys_options_admin_exp_53() {

return ('lookup_effect');
} //|o2_fine_exp|

function o2sys_options_admin_exp_54() {

return ((o2val('prg�_�var','opt_lookup_handler') && o2val('options','value') ? true : false));
} //|o2_fine_exp|

function o2sys_options_admin_exp_55() {

return ((o2val('prg�_�var','opt_lookup_handler') ? true : false));
} //|o2_fine_exp|

function o2sys_options_admin_exp_56() {

return ((o2val('prg�_�var','opt_lookup_handler') && o2val('prg�_�var','opt_lookup_effect') ? true : false));
} //|o2_fine_exp|

function o2sys_options_admin_exp_57() {

return (!o2val('prg�_�var','opt_lookup_handler'));
} //|o2_fine_exp|

function o2sys_options_admin_exp_58() {

return (o2val('prg�_�var','opt_lookup_handler'));
} //|o2_fine_exp|
?>

0 comments on commit a1d0dde

Please sign in to comment.