mirror of
https://github.com/EGroupware/egroupware.git
synced 2024-12-16 19:50:44 +01:00
add wz_dragdrop code to resize the sidebox menu. It uses ajax to store the new size
This commit is contained in:
parent
733e2cfe2d
commit
498fd3be96
55
phpgwapi/templates/idots/ajaxStorePrefs.php
Normal file
55
phpgwapi/templates/idots/ajaxStorePrefs.php
Normal file
@ -0,0 +1,55 @@
|
||||
<?php
|
||||
/**
|
||||
* eGW idots template ajax server
|
||||
*
|
||||
* @link http://www.egroupware.org
|
||||
* @author Pim Snel <pim@lingewoud.nl> author of the idots template set
|
||||
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
|
||||
* @package api
|
||||
* @subpackage framework
|
||||
* @access public
|
||||
* @abstract script which is called by idots template set to store prefs using AJAX
|
||||
* @version $Id$
|
||||
*/
|
||||
|
||||
if(!$_GET['currentapp'])
|
||||
{
|
||||
$_GET['currentapp']='preferences';
|
||||
}
|
||||
|
||||
$egw_flags = Array(
|
||||
'currentapp' => $_GET['currentapp'],
|
||||
'noheader' => True,
|
||||
'nonavbar' => True,
|
||||
'noappheader' => True,
|
||||
'noappfooter' => True,
|
||||
'nofooter' => True
|
||||
);
|
||||
|
||||
$GLOBALS['egw_info']['flags'] = $egw_flags;
|
||||
|
||||
require('../../../header.inc.php');
|
||||
require_once(EGW_API_INC.'/xajax.inc.php');
|
||||
$xajax = new xajax($GLOBALS['egw_info']['server']['webserver_url']."/phpgwapi/templates/idots/ajaxStorePrefs.php");
|
||||
$xajax->registerFunction("storeEGWPref");
|
||||
|
||||
/**
|
||||
* storeEGWPref
|
||||
*
|
||||
* @param mixed $repository egroupware preferences repository
|
||||
* @param mixed $key key to preference
|
||||
* @param mixed $value new value
|
||||
* @access public
|
||||
* @return mixed returns null when no erro, else return error message.
|
||||
*/
|
||||
function storeEGWPref($repository,$key,$value)
|
||||
{
|
||||
$objResponse = new xajaxResponse();
|
||||
$GLOBALS['egw']->preferences->read_repository();
|
||||
$GLOBALS['egw']->preferences->change($repository,$key,$value);
|
||||
$GLOBALS['egw']->preferences->save_repository(True);
|
||||
return $objResponse;
|
||||
}
|
||||
|
||||
$xajax->processRequests();
|
||||
?>
|
@ -14,6 +14,7 @@
|
||||
|
||||
require_once(EGW_API_INC.'/class.egw_framework.inc.php');
|
||||
require_once(EGW_API_INC.'/class.Template.inc.php');
|
||||
require_once(EGW_API_INC.'/class.dragdrop.inc.php');
|
||||
|
||||
/**
|
||||
* eGW idots template
|
||||
@ -90,6 +91,9 @@ class idots_framework extends egw_framework
|
||||
*/
|
||||
function navbar()
|
||||
{
|
||||
$this->tplsav2 = CreateObject('phpgwapi.tplsavant2');
|
||||
$this->tplsav2->set_tpl_path(EGW_SERVER_ROOT.SEP.'phpgwapi'.SEP.'templates'.SEP.'idots');
|
||||
|
||||
$this->navbar_done = true;
|
||||
|
||||
// the navbar
|
||||
@ -158,15 +162,52 @@ class idots_framework extends egw_framework
|
||||
}
|
||||
else
|
||||
{
|
||||
$var['menu_link'] = '';
|
||||
$var['sideboxcolstart'] = '<td id="tdSidebox" valign="top">';
|
||||
$var['remove_padding'] = '';
|
||||
$this->tpl->set_var($var);
|
||||
$content .= $this->tpl->parse('out','appbox');
|
||||
$GLOBALS['phpgw']->preferences->read_repository();
|
||||
|
||||
$content .= $this->sidebox_content;
|
||||
|
||||
$var['sideboxcolend'] = '</td>';
|
||||
$prefs = array();
|
||||
|
||||
if ($GLOBALS['egw_info']['user']['preferences']['common'])
|
||||
{
|
||||
$sideboxwidth = $GLOBALS['egw_info']['user']['preferences']['common']['idotssideboxwidth'];
|
||||
}
|
||||
if(intval($sideboxwidth)<1)
|
||||
{
|
||||
$sideboxwidth = 203;
|
||||
}
|
||||
|
||||
$var['menu_link'] = '';
|
||||
|
||||
$var['sideboxcolstart'] = '<td id="tdSidebox" valign="top"><div id="thesideboxcolumn" style="width:'.$sideboxwidth.'px">';
|
||||
$var['sideboxcolstart'] .= '<div style="width:13px;height:13px;right:1px;top:1px;position:absolute;z-index:9999;" id="sideresize">
|
||||
<img src="'.$GLOBALS['egw_info']['server']['webserver_url'] . '/phpgwapi/templates/default/images'.'/resize.png" alt="resize"/>
|
||||
|
||||
</div>';
|
||||
$var['remove_padding'] = '';
|
||||
$this->tpl->set_var($var);
|
||||
$content .= $this->tpl->parse('out','appbox');
|
||||
|
||||
$content .= $this->sidebox_content;
|
||||
|
||||
$var['sideboxcolend'] = '</div></td>';
|
||||
|
||||
// Add DHTML for resizing sidebox menu
|
||||
// include wz_dragdrop once
|
||||
if(!$GLOBALS['egw_info']['flags']['wz_dragdrop_included'])
|
||||
{
|
||||
$GLOBALS['egw_info']['flags']['need_footer'] .= "<!-- BEGIN JavaScript for wz_dragdrop.js -->\n";
|
||||
$GLOBALS['egw_info']['flags']['need_footer'] .= '<script language="JavaScript" type="text/javascript" src="'.$GLOBALS['egw_info']['server']['webserver_url'].'/phpgwapi/js/wz_dragdrop/wz_dragdrop.js"></script>'."\n";
|
||||
$GLOBALS['egw_info']['flags']['wz_dragdrop_included'] = True;
|
||||
}
|
||||
|
||||
require_once(EGW_API_INC.'/xajax.inc.php');
|
||||
$xajax = new xajax($GLOBALS['egw_info']['server']['webserver_url']."/phpgwapi/templates/idots/ajaxStorePrefs.php");
|
||||
$xajax->registerFunction("storeEGWPref");
|
||||
|
||||
$this->tplsav2->assign('sideboxwidth', $sideboxwidth);
|
||||
$this->tplsav2->assign('xajaxobj',&$xajax);
|
||||
$this->tplsav2->assign('xajaxincdir',$GLOBALS['egw_info']['server']['webserver_url'].'/phpgwapi/js');
|
||||
|
||||
$GLOBALS['egw_info']['flags']['need_footer'] .= $this->tplsav2->fetch('sidebox_dhtml.tpl.php');
|
||||
}
|
||||
|
||||
$this->tpl->set_var($var);
|
||||
@ -559,17 +600,18 @@ class idots_framework extends egw_framework
|
||||
*/
|
||||
function sidebox($appname,$menu_title,$file)
|
||||
{
|
||||
if(!$appname || ($appname==$GLOBALS['egw_info']['flags']['currentapp'] && $file))
|
||||
{
|
||||
$this->tpl->set_var('lang_title',$menu_title);
|
||||
$this->sidebox_content .= $this->tpl->fp('out','extra_blocks_header');
|
||||
|
||||
foreach($file as $text => $url)
|
||||
{
|
||||
$this->sidebox_content .= $this->_sidebox_menu_item($url,$text);
|
||||
}
|
||||
$this->sidebox_content .= $this->tpl->parse('out','extra_blocks_footer');
|
||||
}
|
||||
if(!$appname || ($appname==$GLOBALS['egw_info']['flags']['currentapp'] && $file))
|
||||
{
|
||||
$this->tpl->set_var('lang_title',$menu_title);
|
||||
$this->sidebox_content .= $this->tpl->fp('out','extra_blocks_header');
|
||||
|
||||
foreach($file as $text => $url)
|
||||
{
|
||||
$this->sidebox_content .= $this->_sidebox_menu_item($url,$text);
|
||||
}
|
||||
$this->sidebox_content .= $this->tpl->parse('out','extra_blocks_footer');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -153,8 +153,13 @@ input[type=image]
|
||||
border: 0;
|
||||
}
|
||||
|
||||
.divLoginbox,.divSidebox
|
||||
#thesideboxcolumn
|
||||
{
|
||||
width: 177px;
|
||||
position:relative;
|
||||
}
|
||||
|
||||
.divLoginbox
|
||||
{
|
||||
position:relative;
|
||||
width: 370px;
|
||||
@ -163,7 +168,8 @@ input[type=image]
|
||||
|
||||
.divSidebox
|
||||
{
|
||||
width: 177px;
|
||||
position:relative;
|
||||
border: #9c9c9c 1px solid;
|
||||
}
|
||||
|
||||
.divSideboxHeader,.divLoginboxHeader
|
||||
|
22
phpgwapi/templates/idots/sidebox_dhtml.tpl.php
Normal file
22
phpgwapi/templates/idots/sidebox_dhtml.tpl.php
Normal file
@ -0,0 +1,22 @@
|
||||
<!-- Savant template - sidebox dhtml -->
|
||||
<?php $this->xajaxobj->printJavascript($this->xajaxincdir); ?>
|
||||
<script language="JavaScript" type="text/javascript">SET_DHTML("thesideboxcolumn"+NO_DRAG)</script>
|
||||
<script language="JavaScript" type="text/javascript">ADD_DHTML("sideresize"+CURSOR_W_RESIZE+MAXOFFBOTTOM+0+MAXOFFTOP+0+MAXOFFLEFT+1000+MAXOFFRIGHT+1000)</script>
|
||||
<script language="JavaScript" type="text/javascript">
|
||||
var mainbox = dd.elements.thesideboxcolumn;
|
||||
var rt = dd.elements.sideresize;
|
||||
var rtxstart= rt.x;
|
||||
|
||||
function my_DragFunc()
|
||||
{
|
||||
if (dd.obj == rt)
|
||||
{
|
||||
mainbox.resizeTo(rt.x-rtxstart+<?=$this->sideboxwidth?>, mainbox.h);
|
||||
}
|
||||
}
|
||||
|
||||
function my_DropFunc()
|
||||
{
|
||||
xajax_storeEGWPref('common','idotssideboxwidth',mainbox.w);
|
||||
}
|
||||
</script>
|
Loading…
Reference in New Issue
Block a user