mirror of
https://github.com/EGroupware/egroupware.git
synced 2025-06-25 04:11:49 +02:00
- storing etemplate form name and variable prefix into egw_actionManager to be able to work on a 2. eTemplate on a page (InfoLog in Addressbook view)
- moving (open|hide|submit)_popup used in InfoLog and Tracker to etemplate, so code can be shared --> change 'onExecute' => 'javaScript:open_popup' to 'nm_action' => 'open_popup' and onclick="(hide|submit)_popup()" to onclick="nm_(hide|submit)_popup()"
This commit is contained in:
parent
ca1c71cc69
commit
0ced6fcf51
@ -5,7 +5,7 @@
|
|||||||
* @link http://www.egroupware.org
|
* @link http://www.egroupware.org
|
||||||
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
|
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
|
||||||
* @author Ralf Becker <RalfBecker@outdoor-training.de>
|
* @author Ralf Becker <RalfBecker@outdoor-training.de>
|
||||||
* @copyright 2002-9 by RalfBecker@outdoor-training.de
|
* @copyright 2002-11 by RalfBecker@outdoor-training.de
|
||||||
* @package etemplate
|
* @package etemplate
|
||||||
* @subpackage api
|
* @subpackage api
|
||||||
* @version $Id$
|
* @version $Id$
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
* eGroupWare eTemplate Extension - Nextmatch Widget
|
* eGroupWare eTemplate Extension - Nextmatch Widget
|
||||||
*
|
*
|
||||||
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
|
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
|
||||||
* @copyright 2002-9 by RalfBecker@outdoor-training.de
|
* @copyright 2002-11 by RalfBecker@outdoor-training.de
|
||||||
* @package etemplate
|
* @package etemplate
|
||||||
* @subpackage extensions
|
* @subpackage extensions
|
||||||
* @link http://www.egroupware.org
|
* @link http://www.egroupware.org
|
||||||
@ -870,6 +870,8 @@ class nextmatch_widget
|
|||||||
'.$prefix.'actionManager.updateActions('.str_replace('},',"},\n",
|
'.$prefix.'actionManager.updateActions('.str_replace('},',"},\n",
|
||||||
json_encode(self::egw_actions($actions, $template_name, '', $action_links))).');
|
json_encode(self::egw_actions($actions, $template_name, '', $action_links))).');
|
||||||
'.$prefix.'actionManager.setDefaultExecute("javaScript:nm_action");
|
'.$prefix.'actionManager.setDefaultExecute("javaScript:nm_action");
|
||||||
|
'.$prefix.'actionManager.etemplate_var_prefix="'.etemplate::$name_vars.'";
|
||||||
|
'.$prefix.'actionManager.etemplate_form=document.forms.'.etemplate::$name_form.';
|
||||||
|
|
||||||
var actionLinks = ["'.implode('","', $action_links).'"];
|
var actionLinks = ["'.implode('","', $action_links).'"];
|
||||||
|
|
||||||
|
@ -143,6 +143,14 @@ function nm_action(_action, _senders)
|
|||||||
egw_openWindowCentered2(url,target,_action.data.width,_action.data.height);
|
egw_openWindowCentered2(url,target,_action.data.width,_action.data.height);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 'open_popup':
|
||||||
|
// open div styled as popup contained in current form and named action.id+'_popup'
|
||||||
|
if (typeof nm_popup_action == 'undefined')
|
||||||
|
{
|
||||||
|
nm_open_popup(_action, _senders);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
// fall through, if popup is open --> submit form
|
||||||
case 'submit':
|
case 'submit':
|
||||||
// let user confirm select-all
|
// let user confirm select-all
|
||||||
if (select_all && select_all.checked)
|
if (select_all && select_all.checked)
|
||||||
@ -150,21 +158,20 @@ function nm_action(_action, _senders)
|
|||||||
if (!confirm(confirm_msg+"\n\n"+select_all.hint)) return;
|
if (!confirm(confirm_msg+"\n\n"+select_all.hint)) return;
|
||||||
}
|
}
|
||||||
var checkboxes = egw_actionManager.getActionsByAttr("checkbox", true);
|
var checkboxes = egw_actionManager.getActionsByAttr("checkbox", true);
|
||||||
var checkboxes_elem = document.getElementById('exec[nm][checkboxes]');
|
var checkboxes_elem = document.getElementById(egw_actionManager.etemplate_var_prefix+'[nm][checkboxes]');
|
||||||
if (checkboxes && checkboxes_elem)
|
if (checkboxes && checkboxes_elem)
|
||||||
for (var i in checkboxes)
|
for (var i in checkboxes)
|
||||||
checkboxes_elem.value += checkboxes[i].id + ":" + (checkboxes[i].checked ? "1" : "0") + ";";
|
checkboxes_elem.value += checkboxes[i].id + ":" + (checkboxes[i].checked ? "1" : "0") + ";";
|
||||||
|
|
||||||
var form = document.getElementsByName("eTemplate")[0];
|
document.getElementById(egw_actionManager.etemplate_var_prefix+'[nm][nm_action]').value = _action.id;
|
||||||
document.getElementById('exec[nm][nm_action]').value = _action.id;
|
document.getElementById(egw_actionManager.etemplate_var_prefix+'[nm][selected]').value = ids;
|
||||||
document.getElementById('exec[nm][selected]').value = ids;
|
|
||||||
if (typeof _action.data.button != 'undefined')
|
if (typeof _action.data.button != 'undefined')
|
||||||
{
|
{
|
||||||
submitit(form.context, 'exec[nm][rows]['+_action.data.button+']['+ids+']');
|
submitit(egw_actionManager.etemplate_form.context, egw_actionManager.etemplate_var_prefix+'[nm][rows]['+_action.data.button+']['+ids+']');
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
form.submit();
|
egw_actionManager.etemplate_form.submit();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -219,3 +226,53 @@ function nm_compare_field(_action, _senders, _target)
|
|||||||
|
|
||||||
return value == _action.data.fieldValue;
|
return value == _action.data.fieldValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var nm_popup_action, nm_popup_senders;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Open popup for a certain action requiring further input
|
||||||
|
*
|
||||||
|
* Popup needs to have eTemplate name of action id plus "_popup"
|
||||||
|
*
|
||||||
|
* @param _action
|
||||||
|
* @param _senders
|
||||||
|
*/
|
||||||
|
function nm_open_popup(_action, _senders)
|
||||||
|
{
|
||||||
|
var popup = document.getElementById(egw_actionManager.etemplate_var_prefix + '[' + _action.id + '_popup]');
|
||||||
|
|
||||||
|
if (popup) {
|
||||||
|
nm_popup_action = _action;
|
||||||
|
nm_popup_senders = _senders;
|
||||||
|
popup.style.display = 'block';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Submit a popup action
|
||||||
|
*/
|
||||||
|
function nm_submit_popup(button)
|
||||||
|
{
|
||||||
|
button.form.submit_button.value = button.name; // set name of button (sub-action)
|
||||||
|
|
||||||
|
// call regular nm_action to transmit action and senders correct
|
||||||
|
nm_action(nm_popup_action, nm_popup_senders);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Hide popup
|
||||||
|
*/
|
||||||
|
function nm_hide_popup(element, div_id)
|
||||||
|
{
|
||||||
|
var prefix = element.id.substring(0,element.id.indexOf('['));
|
||||||
|
var popup = document.getElementById(prefix+'['+div_id+']');
|
||||||
|
|
||||||
|
// Hide popup
|
||||||
|
if(popup) {
|
||||||
|
popup.style.display = 'none';
|
||||||
|
}
|
||||||
|
delete nm_popup_action;
|
||||||
|
delete nm_popup_senders;
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user