Project

General

Profile

Feature #19543 » 9703v4.diff

Administrator Admin, 2009-03-27 02:11

View differences:

typo3/sysext/fe_edit/view/class.tx_feedit_adminpanel.php (working copy)
* @return string HTML for the Admin Panel
*/
public function display() {
$out='';
$out = '<script type="text/javascript" src="t3lib/js/adminpanel_dnd.js"></script>';
if ($GLOBALS['BE_USER']->uc['TSFE_adminConfig']['display_top']) {
if ($GLOBALS['BE_USER']->frontendEdit->isAdminModuleEnabled('preview')) {
$out .= $this->getPreviewModule();
......
$row .= $this->extFw(': ' . $GLOBALS['BE_USER']->user['username']);
$header = '
<tr class="typo3-adminPanel-hRow" style="background-color:#9ba1a8;">
<tr class="typo3-adminPanel-hRow" style="background-color: #9ba1a8; cursor: move;">
<td colspan="4" style="text-align:left; white-space:nowrap;">' .
$this->extItemLink('top',$row) . '
<img src="clear.gif" width="40" height="1" alt="" />
......
</script>
<script language="javascript" type="text/javascript">' . $this->extJSCODE . '</script>';
}
return "\n\n\n\n" . $out . '<br />';
$out = '
<div onmousedown="admPanel_dragstart(this)" onmouseup="admPanel_saveposition(this)" id="admPanel" style="position:absolute; left:10px; top:100px; width:30px; z-index:5;">
' . $out . '
<br /></div>
<script type="text/javascript">
admPanel_draginit();
admPanel_restorePosition();
</script>';
return $out;
}
/**
t3lib/js/adminpanel_dnd.js (revision 0)
/***************************************************************
* Admin Panel drag and drop
*
* $Id$
*
* Copyright notice
*
* (c) 2009 Ingo Renner <ingo@typo3.org>
* All rights reserved
*
* This script is part of the TYPO3 project. The TYPO3 project is
* free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* The GNU General Public License can be found at
* http://www.gnu.org/copyleft/gpl.html.
*
* This script is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* This copyright notice MUST APPEAR in all copies of the script!
***************************************************************/
var positionRestored = false;
var dragObject = null;
var dragx = 0;
var dragy = 0;
var posx = 0;
var posy = 0;
function admPanel_saveposition(panel) {
var admPanelPosX = panel.offsetLeft;
var admPanelPosY = panel.offsetTop;
admPanel_setCookie('admPanelPosX', admPanelPosX, '', '/');
admPanel_setCookie('admPanelPosY', admPanelPosY, '', '/');
}
function admPanel_restorePosition() {
if (positionRestored == false) {
var admPanelPosX = admPanel_getCookie('admPanelPosX');
if (admPanelPosX > 0) {
document.getElementById('admPanel').style.left = admPanelPosX + 'px';
}
var admPanelPosY = admPanel_getCookie('admPanelPosY');
if (admPanelPosY > 0) {
document.getElementById('admPanel').style.top = admPanelPosY + 'px';
}
positionRestored = true;
}
}
function admPanel_setCookie(name, value, expires, path, domain, secure) {
document.cookie = name + '=' + escape(value)
+ ((expires) ? '; expires=' + expires.toGMTString() : '')
+ ((path) ? '; path=' + path : '')
+ ((domain) ? '; domain=' + domain : '')
+ ((secure) ? '; secure' : '');
}
function admPanel_getCookie(name) {
var dc = document.cookie;
var prefix = name + '=';
var begin = dc.indexOf('; ' + prefix);
if (begin == -1) {
begin = dc.indexOf(prefix);
if (begin != 0)
return null;
} else {
begin += 2;
}
var end = dc.indexOf(';', begin);
if (end == -1) {
end = dc.length;
}
return unescape(dc.substring(begin + prefix.length, end));
};
function admPanel_draginit() {
document.getElementById('admPanel').onmousemove = admPanel_drag;
document.getElementById('admPanel').onmouseup = admPanel_dragstop;
};
function admPanel_dragstart(element) {
dragObject = element;
dragx = posx - dragObject.offsetLeft;
dragy = posy - dragObject.offsetTop;
};
function admPanel_dragstop() {
dragObject = null;
};
function admPanel_drag(dragEvent) {
posx = document.all ? window.event.clientX : dragEvent.pageX;
posy = document.all ? window.event.clientY : dragEvent.pageY;
if (dragObject != null) {
dragObject.style.left = (posx - dragx) + 'px';
dragObject.style.top = (posy - dragy) + 'px';
}
}
(7-7/8)