Feature #22642 » 14375_v1.diff
t3lib/config_default.php (Arbeitskopie) | ||
---|---|---|
$GLOBALS['error']->debug($variable, $name, $line, $file, $recursiveDepth, $debugLevel);
|
||
} else {
|
||
$br = ($name == '*variable*') ? 0 : $name;
|
||
t3lib_div::debug($variable, $br);
|
||
$group = $line ? $line : NULL;
|
||
t3lib_div::debug($variable, $br, $group);
|
||
}
|
||
}
|
||
function debugBegin() {
|
t3lib/class.t3lib_db.php (Arbeitskopie) | ||
---|---|---|
'lastBuiltQuery' => ($query ? $query : $this->debug_lastBuiltQuery),
|
||
'debug_backtrace' => t3lib_div::debug_trail(),
|
||
),
|
||
'SQL debug'
|
||
$func,
|
||
is_object($GLOBALS['error']) && @is_callable(array($GLOBALS['error'],'debug')) ? '' : 'DB Error'
|
||
);
|
||
}
|
||
}
|
t3lib/js/extjs/ux/ext.ux.tabclosemenu.js (Revision 0) | ||
---|---|---|
/*!
|
||
* Ext JS Library 3.2.1
|
||
* Copyright(c) 2006-2010 Ext JS, Inc.
|
||
* licensing@extjs.com
|
||
* http://www.extjs.com/license
|
||
*/
|
||
/**
|
||
* @class Ext.ux.TabCloseMenu
|
||
* @extends Object
|
||
* Plugin (ptype = 'tabclosemenu') for adding a close context menu to tabs. Note that the menu respects
|
||
* the closable configuration on the tab. As such, commands like remove others and remove all will not
|
||
* remove items that are not closable.
|
||
*
|
||
* @constructor
|
||
* @param {Object} config The configuration options
|
||
* @ptype tabclosemenu
|
||
*/
|
||
Ext.ux.TabCloseMenu = Ext.extend(Object, {
|
||
/**
|
||
* @cfg {String} closeTabText
|
||
* The text for closing the current tab. Defaults to <tt>'Close Tab'</tt>.
|
||
*/
|
||
closeTabText: 'Close Tab',
|
||
/**
|
||
* @cfg {String} closeOtherTabsText
|
||
* The text for closing all tabs except the current one. Defaults to <tt>'Close Other Tabs'</tt>.
|
||
*/
|
||
closeOtherTabsText: 'Close Other Tabs',
|
||
|
||
/**
|
||
* @cfg {Boolean} showCloseAll
|
||
* Indicates whether to show the 'Close All' option. Defaults to <tt>true</tt>.
|
||
*/
|
||
showCloseAll: true,
|
||
/**
|
||
* @cfg {String} closeAllTabsText
|
||
* <p>The text for closing all tabs. Defaults to <tt>'Close All Tabs'</tt>.
|
||
*/
|
||
closeAllTabsText: 'Close All Tabs',
|
||
|
||
constructor : function(config){
|
||
Ext.apply(this, config || {});
|
||
},
|
||
//public
|
||
init : function(tabs){
|
||
this.tabs = tabs;
|
||
tabs.on({
|
||
scope: this,
|
||
contextmenu: this.onContextMenu,
|
||
destroy: this.destroy
|
||
});
|
||
},
|
||
|
||
destroy : function(){
|
||
Ext.destroy(this.menu);
|
||
delete this.menu;
|
||
delete this.tabs;
|
||
delete this.active;
|
||
},
|
||
// private
|
||
onContextMenu : function(tabs, item, e){
|
||
this.active = item;
|
||
var m = this.createMenu(),
|
||
disableAll = true,
|
||
disableOthers = true,
|
||
closeAll = m.getComponent('closeall');
|
||
|
||
m.getComponent('close').setDisabled(!item.closable);
|
||
tabs.items.each(function(){
|
||
if(this.closable){
|
||
disableAll = false;
|
||
if(this != item){
|
||
disableOthers = false;
|
||
return false;
|
||
}
|
||
}
|
||
return true;
|
||
});
|
||
m.getComponent('closeothers').setDisabled(disableOthers);
|
||
if(closeAll){
|
||
closeAll.setDisabled(disableAll);
|
||
}
|
||
|
||
e.stopEvent();
|
||
m.showAt(e.getPoint());
|
||
},
|
||
|
||
createMenu : function(){
|
||
if(!this.menu){
|
||
var items = [{
|
||
itemId: 'close',
|
||
text: this.closeTabText,
|
||
scope: this,
|
||
handler: this.onClose
|
||
}];
|
||
if(this.showCloseAll){
|
||
items.push('-');
|
||
}
|
||
items.push({
|
||
itemId: 'closeothers',
|
||
text: this.closeOtherTabsText,
|
||
scope: this,
|
||
handler: this.onCloseOthers
|
||
});
|
||
if(this.showCloseAll){
|
||
items.push({
|
||
itemId: 'closeall',
|
||
text: this.closeAllTabsText,
|
||
scope: this,
|
||
handler: this.onCloseAll
|
||
});
|
||
}
|
||
this.menu = new Ext.menu.Menu({
|
||
items: items
|
||
});
|
||
}
|
||
return this.menu;
|
||
},
|
||
|
||
onClose : function(){
|
||
this.tabs.remove(this.active);
|
||
},
|
||
|
||
onCloseOthers : function(){
|
||
this.doClose(true);
|
||
},
|
||
|
||
onCloseAll : function(){
|
||
this.doClose(false);
|
||
},
|
||
|
||
doClose : function(excludeActive){
|
||
var items = [];
|
||
this.tabs.items.each(function(item){
|
||
if(item.closable){
|
||
if(!excludeActive || item != this.active){
|
||
items.push(item);
|
||
}
|
||
}
|
||
}, this);
|
||
Ext.each(items, function(item){
|
||
this.tabs.remove(item);
|
||
}, this);
|
||
}
|
||
});
|
||
Ext.preg('tabclosemenu', Ext.ux.TabCloseMenu);
|
t3lib/class.t3lib_div.php (Arbeitskopie) | ||
---|---|---|
*
|
||
* @param mixed Variable to print
|
||
* @param string The header.
|
||
* @param string Group for the debug console
|
||
* @return void
|
||
*/
|
||
public static function debug($var = '', $header = '') {
|
||
public static function debug($var = '', $header = '', $group = 'Debug') {
|
||
// buffer the output of debug if no buffering started before
|
||
if (ob_get_level()==0) {
|
||
ob_start();
|
||
... | ... | |
}
|
||
if (TYPO3_MODE === 'BE') {
|
||
$tabHeader = 'Debug';
|
||
if ($header) {
|
||
$tabHeader .= ': ' . htmlspecialchars($header);
|
||
$group = htmlspecialchars($group);
|
||
if ($header !== '') {
|
||
$tabHeader = htmlspecialchars($header);
|
||
} else {
|
||
$tabHeader = 'Debug';
|
||
}
|
||
|
||
if (is_object($var)) {
|
||
$debug = str_replace(
|
||
array('"', "\n", "\r"),
|
||
array('\"', '<br />', ''),
|
||
array('"', '/', '<', "\n", "\r"),
|
||
array('\"', '\/', '\<', '<br />', ''),
|
||
$debug
|
||
);
|
||
} else {
|
||
$debug = str_replace(
|
||
array('"', "\n", "\r"),
|
||
array('\"', '', ''),
|
||
array('"', '/', '<', "\n", "\r"),
|
||
array('\"', '\/', '\<', '', ''),
|
||
$debug
|
||
);
|
||
}
|
||
$script = '
|
||
var TYPO3ViewportInstance = null, tab;
|
||
var debugString = "' . $debug . '";
|
||
var TYPO3ViewportInstance = null;
|
||
var debugMessage = "' . $debug . '";
|
||
var header = "' . $tabHeader . '";
|
||
var group = "' . $group . '";
|
||
if (top && top.TYPO3 && typeof top.TYPO3.Backend === "object") {
|
||
TYPO3ViewportInstance = top.TYPO3.Backend;
|
||
} else if (top.TYPO3 && typeof TYPO3.Backend === "object") {
|
||
} else if (typeof TYPO3 === "object" && typeof TYPO3.Backend === "object") {
|
||
TYPO3ViewportInstance = TYPO3.Backend;
|
||
}
|
||
if (TYPO3ViewportInstance !== null) {
|
||
if (TYPO3ViewportInstance.DebugConsole.hidden) {
|
||
TYPO3ViewportInstance.DebugConsole.show();
|
||
} else if (TYPO3ViewportInstance.DebugConsole.collapsed) {
|
||
TYPO3ViewportInstance.DebugConsole.expand();
|
||
}
|
||
tab = TYPO3ViewportInstance.DebugConsole.add({
|
||
title: "' . $tabHeader . '",
|
||
html: debugString,
|
||
border: false,
|
||
closable: true,
|
||
autoScroll: true,
|
||
listeners: {
|
||
close: function(tab) {
|
||
if (tab.ownerCt.items.getCount() === 1) {
|
||
tab.ownerCt.hide();
|
||
}
|
||
}
|
||
}
|
||
});
|
||
TYPO3ViewportInstance.DebugConsole.setActiveTab(tab);
|
||
TYPO3ViewportInstance.doLayout();
|
||
TYPO3ViewportInstance.DebugConsole.addTab(header, debugMessage, group);
|
||
} else {
|
||
document.write(debugString);
|
||
document.write(debugMessage);
|
||
}
|
||
';
|
||
echo self::wrapJS($script);
|
typo3/js/extjs/debugPanel.js (Revision 0) | ||
---|---|---|
/***************************************************************
|
||
* Copyright notice
|
||
*
|
||
* (c) 2010 Stefan Galinski <stefan.galinski@gmail.com>
|
||
* 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.
|
||
* A copy is found in the textfile GPL.txt and important notices to the license
|
||
* from the author is found in LICENSE.txt distributed with these scripts.
|
||
*
|
||
*
|
||
* 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!
|
||
***************************************************************/
|
||
Ext.ns('TYPO3');
|
||
/**
|
||
* Debug panel based upon the widget tab panel
|
||
*
|
||
* If you want to add a new tab, you can use the addTab or addTabWidget methods. The first one
|
||
* creates the widget itself. If you need the latter one, you must create the widget yourself.
|
||
*
|
||
* The drag&drop functionality introduced a new attribute for the widget that should be added
|
||
* as a tab. It's called "draggableTab" and needs to be set to true, if you want activated
|
||
* drag&drop for the new tab.
|
||
*
|
||
* Additional Features:
|
||
* - Drag&Drop
|
||
* - Close tabs with a simple wheel/middle click
|
||
* - utilization of the tabCloseMenu context menu (several closing options)
|
||
* - Grouping of tabs (Only one nested level allowed!)
|
||
*
|
||
* @author Stefan Galinski <stefan.galinski@gmail.com>
|
||
*/
|
||
TYPO3.DebugPanel = Ext.extend(Ext.TabPanel, {
|
||
/**
|
||
* Tab Groups
|
||
*
|
||
* @var Ext.util.MixedCollection
|
||
*/
|
||
tabGroups: new Ext.util.MixedCollection(),
|
||
/**
|
||
* Initializes the widget and merges our defaults with the user-defined ones. The
|
||
* user-defined settings are preferred.
|
||
*
|
||
* @return void
|
||
*/
|
||
initComponent: function(config) {
|
||
config = config || {};
|
||
Ext.apply(this, config, {
|
||
// activate general tab navigation with mouse wheel support
|
||
enableTabScroll: true,
|
||
defaults: {
|
||
autoScroll: true
|
||
},
|
||
// add the context menu actions
|
||
plugins: new Ext.ux.TabCloseMenu({
|
||
closeTabText: TYPO3.LLL.core.tabs_close,
|
||
closeOtherTabsText: TYPO3.LLL.core.tabs_closeOther,
|
||
closeAllTabsText: TYPO3.LLL.core.tabs_closeAll
|
||
})
|
||
});
|
||
// create a drop arrow indicator
|
||
this.on('render', function() {
|
||
this.arrow = Ext.DomHelper.append(
|
||
Ext.getBody(),
|
||
'<div class="typo3-debugPanel-dragDropArrowDown"> </div>',
|
||
true
|
||
);
|
||
this.arrow.hide();
|
||
}, this);
|
||
TYPO3.DebugPanel.superclass.initComponent.call(this);
|
||
},
|
||
/**
|
||
* Cleanup
|
||
*
|
||
* @return void
|
||
*/
|
||
onDestroy: function() {
|
||
Ext.destroy(this.arrow);
|
||
TYPO3.DebugPanel.superclass.onDestroy.call(this);
|
||
},
|
||
/**
|
||
* Adds a new tab
|
||
*
|
||
* If you need more possibilites, you should use the addTabWidget method.
|
||
*
|
||
* @see addTabWidget()
|
||
* @param header String tab header
|
||
* @param tabContent String content of the new tab
|
||
* @param group String tab group
|
||
* @param position Integer position of the new tab
|
||
* @return void
|
||
*/
|
||
addTab: function(header, tabContent, group, position) {
|
||
var tabWidget = new Ext.Panel({
|
||
title: header,
|
||
html: tabContent,
|
||
border: false,
|
||
autoScroll: true,
|
||
closable: true,
|
||
draggableTab: true
|
||
});
|
||
this.addTabWidget(tabWidget, group, position);
|
||
},
|
||
/**
|
||
* Adds a new tab to the widget
|
||
*
|
||
* You can inject any Ext component, but you need to create it yourself. If you just
|
||
* want to add some text into a new tab, you should use the addTab function.
|
||
*
|
||
* @see addTab()
|
||
* @param tabWidget Component the component that should be added as a new tab
|
||
* @param group String tab group
|
||
* @param position Integer position of the new tab
|
||
* @return void
|
||
*/
|
||
addTabWidget: function(tabWidget, group, position) {
|
||
if (this.hidden) {
|
||
this.show();
|
||
} else if (this.collapsed) {
|
||
this.expand();
|
||
}
|
||
// Move the widget into a tab group?
|
||
var tabGroup = this;
|
||
if (typeof group !== 'undefined' && group != '' && !this.isTabChildren) {
|
||
if (this.tabGroups.indexOfKey(group) === -1) {
|
||
tabGroup = new TYPO3.DebugPanel({
|
||
border: false,
|
||
title: group,
|
||
autoScroll: true,
|
||
closable: true,
|
||
isTabChildren: true,
|
||
tabParent: this,
|
||
draggableTab: true
|
||
});
|
||
this.addTabWidget(tabGroup);
|
||
this.tabGroups.add(group, tabGroup);
|
||
} else {
|
||
tabGroup = this.tabGroups.key(group);
|
||
}
|
||
}
|
||
// recalculate position if necessary
|
||
if (typeof position === 'undefined') {
|
||
position = tabGroup.items.getCount();
|
||
}
|
||
// hide the debug panel if the last element is closed
|
||
tabWidget.on('destroy', function(element) {
|
||
if (this.isTabChildren) {
|
||
if (!this.items.getCount()) {
|
||
this.tabParent.remove(this.tabParent.tabGroups.key(this.title));
|
||
}
|
||
} else {
|
||
if (!this.items.getCount()) {
|
||
this.hide();
|
||
this.fireEvent('resize');
|
||
}
|
||
this.tabGroups.removeKey(element.title);
|
||
}
|
||
}, tabGroup);
|
||
// add drag&drop and the wheel click functionality
|
||
tabWidget.on('afterlayout', function(element) {
|
||
Ext.get(this.id + '__' + element.id).on('mousedown', function(event) {
|
||
if (!Ext.isIE6 && !Ext.isIE7 && event.button === 1) {
|
||
event.stopEvent();
|
||
this.remove(tabWidget);
|
||
return false;
|
||
}
|
||
return true;
|
||
}, this);
|
||
if (tabWidget.draggableTab) {
|
||
this.initDragAndDropForTab(tabWidget);
|
||
}
|
||
}, tabGroup);
|
||
// add the widget as a new tab
|
||
tabGroup.insert(position, tabWidget).show();
|
||
tabGroup.ownerCt.doLayout();
|
||
},
|
||
/**
|
||
* Extends the tab item with drag&drop functionality.
|
||
*
|
||
* @param item Component the tab widget
|
||
* @return void
|
||
*/
|
||
initDragAndDropForTab: function(item) {
|
||
item.tabDragZone = new Ext.dd.DragZone(this.id + '__' + item.id, {
|
||
ddGroup: this.id,
|
||
/**
|
||
* Reintroduces the simple click event on a tab element.
|
||
*
|
||
* @return void
|
||
*/
|
||
b4MouseDown : function() {
|
||
item.show();
|
||
Ext.dd.DragZone.superclass.b4MouseDown.apply(this, arguments);
|
||
},
|
||
/**
|
||
* On receipt of a mousedown event, see if it is within a draggable element.
|
||
* Return a drag data object if so. The data object can contain arbitrary application
|
||
* data, but it should also contain a DOM element in the ddel property to provide
|
||
* a proxy to drag.
|
||
*
|
||
* @param event Ext.EventObject
|
||
* @return drag data
|
||
*/
|
||
getDragData: function(event) {
|
||
var sourceElement = event.getTarget(item.itemSelector, 10);
|
||
if (sourceElement) {
|
||
var dragComponent = sourceElement.cloneNode(true);
|
||
dragComponent.id = Ext.id();
|
||
item.dragData = {
|
||
ddel: dragComponent,
|
||
sourceEl: sourceElement,
|
||
repairXY: Ext.fly(sourceElement).getXY()
|
||
};
|
||
return item.dragData;
|
||
}
|
||
return false;
|
||
},
|
||
/**
|
||
* Provide coordinates for the proxy to slide back to on failed drag.
|
||
* This is the original XY coordinates of the draggable element.
|
||
*
|
||
* @return x,y coordinations of the original component position
|
||
*/
|
||
getRepairXY: function() {
|
||
return this.dragData.repairXY;
|
||
}
|
||
});
|
||
item.tabDropZone = new Ext.dd.DropZone(this.id + '__' + item.id, {
|
||
debugPanel: this,
|
||
ddGroup: this.id,
|
||
/**
|
||
* If the mouse is over a tab element, return that node. This is
|
||
* provided as the "target" parameter in all "onNodeXXXX" node event
|
||
* handling functions
|
||
*
|
||
* @param event Ext.EventObject
|
||
* @return the tab element or boolean false
|
||
*/
|
||
getTargetFromEvent: function(event) {
|
||
var tabElement = Ext.get(event.getTarget()).findParentNode('li');
|
||
if (tabElement !== null) {
|
||
return tabElement;
|
||
}
|
||
return false;
|
||
},
|
||
/**
|
||
* On entry into a target node, highlight that node.
|
||
*
|
||
* @param target string id of the target element
|
||
* @return void
|
||
*/
|
||
onNodeEnter : function(target) {
|
||
Ext.get(target).addClass('typo3-debugPanel-dragDropOver');
|
||
},
|
||
/**
|
||
* On exit from a target node, unhighlight that node.
|
||
*
|
||
* @param target string id of the target element
|
||
* @return void
|
||
*/
|
||
onNodeOut : function(target) {
|
||
Ext.get(target).removeClass('typo3-debugPanel-dragDropOver');
|
||
this.debugPanel.arrow.hide();
|
||
},
|
||
/**
|
||
* While over a target node, return the default drop allowed class which
|
||
* places a "tick" icon into the drag proxy. Also the arrow position is
|
||
* recalculated.
|
||
*
|
||
* @param target string id of the target element
|
||
* @param proxy Ext.dd.DDProxy proxy element
|
||
* @param event Ext.EventObject
|
||
* @return default dropAllowed class or a boolean false
|
||
*/
|
||
onNodeOver : function(target, proxy, event) {
|
||
// set arrow position
|
||
var element = Ext.get(target);
|
||
var left = 0;
|
||
var tabLeft = element.getX();
|
||
var tabMiddle = tabLeft + element.dom.clientWidth / 2;
|
||
var tabRight = tabLeft + element.dom.clientWidth;
|
||
if (event.getPageX() <= tabMiddle) {
|
||
left = tabLeft;
|
||
} else {
|
||
left = tabRight;
|
||
}
|
||
this.debugPanel.arrow.setTop(this.el.getY() - 8).setLeft(left - 9).show();
|
||
// drop allowed?
|
||
if (proxy.handleElId !== target.id) {
|
||
return Ext.dd.DropZone.prototype.dropAllowed;
|
||
}
|
||
return false;
|
||
},
|
||
/**
|
||
* On node drop we move the dragged tab element at the position of
|
||
* the dropped element.
|
||
*
|
||
* @param target string id of the target element
|
||
* @param proxy Ext.dd.DDProxy proxy element
|
||
* @param event Ext.EventObject
|
||
* @return true or false
|
||
*/
|
||
onNodeDrop : function(target, proxy, event) {
|
||
if (proxy.handleElId === target.id) {
|
||
return false;
|
||
}
|
||
var dropPanelId = target.id.substring(this.debugPanel.id.length + 2);
|
||
var dragPanelId = proxy.handleElId.substring(this.debugPanel.id.length + 2);
|
||
var dropPanelPosition = this.debugPanel.items.indexOfKey(dropPanelId);
|
||
var dragPanelPosition = this.debugPanel.items.indexOfKey(dragPanelId);
|
||
if (dropPanelPosition !== undefined &&
|
||
dropPanelPosition !== -1 &&
|
||
dropPanelPosition <= this.debugPanel.items.getCount()
|
||
) {
|
||
// calculate arrow position to decide if the elements needs
|
||
// to be inserted on the right or left
|
||
var element = Ext.get(target);
|
||
var tabMiddle = element.getX() + element.dom.clientWidth / 2;
|
||
if (dragPanelPosition > dropPanelPosition) {
|
||
if (event.getPageX() > tabMiddle) {
|
||
dropPanelPosition += 1;
|
||
}
|
||
} else {
|
||
if (event.getPageX() <= tabMiddle) {
|
||
dropPanelPosition -= 1;
|
||
}
|
||
}
|
||
var dropEl = this.debugPanel.remove(dragPanelId, false);
|
||
this.debugPanel.addTabWidget(dropEl, '', dropPanelPosition);
|
||
}
|
||
this.debugPanel.arrow.hide();
|
||
return true;
|
||
}
|
||
});
|
||
}
|
||
});
|
||
Ext.reg('typo3DebugPanel', TYPO3.DebugPanel);
|
typo3/js/extjs/viewportConfiguration.js (Arbeitskopie) | ||
---|---|---|
* This copyright notice MUST APPEAR in all copies of the script!
|
||
***************************************************************/
|
||
Ext.ns('TYPO3');
|
||
/**
|
||
* The backend viewport configuration
|
||
*
|
||
... | ... | |
}]
|
||
}, {
|
||
region: 'south',
|
||
xtype: 'tabpanel',
|
||
xtype: 'typo3DebugPanel',
|
||
collapsible: true,
|
||
collapseMode: 'mini',
|
||
hideCollapseTool: true,
|
||
... | ... | |
autoScroll: true,
|
||
hidden: true,
|
||
height: 200,
|
||
title: 'Debug-Console',
|
||
id: 'typo3-debug-console',
|
||
border: false,
|
||
enableTabScroll: true,
|
||
items: [{
|
||
title: "",
|
||
id: 'typo3-debug-console-closerTab',
|
||
border: false,
|
||
closable: false,
|
||
listeners: {
|
||
activate: function(tab) {
|
||
var i, id = [], tabCount = tab.ownerCt.items.getCount();
|
||
// get tab id's
|
||
for (var i = 1; i < tabCount; i++) {
|
||
id.push(tab.ownerCt.items.keys[i]);
|
||
}
|
||
// remove all tabs except first
|
||
for (var i = 0; i < id.length; i++) {
|
||
tab.ownerCt.remove(id[i]);
|
||
}
|
||
tab.ownerCt.hide();
|
||
tab.ownerCt.fireEvent("resize");
|
||
}
|
||
}
|
||
}]
|
||
border: false
|
||
}]
|
||
};
|
typo3/js/extjs/backendsizemanager.js (Arbeitskopie) | ||
---|---|---|
var resizeBackend = function() {
|
||
var viewportHeight = document.viewport.getHeight();
|
||
var topHeight = Ext.get('typo3-topbar').getHeight();
|
||
var consoleHeight = 0;
|
||
var debugConsole = Ext.get('typo3-debug-console');
|
||
var consoleHeight = debugConsole.isVisible() ? 0 : debugConsole.getHeight() + debugConsole.getHeight();
|
||
if (debugConsole.isVisible()) {
|
||
consoleHeight = debugConsole.getHeight() +
|
||
Ext.get('typo3-debug-console-xsplit').getHeight()
|
||
}
|
||
var styles = {
|
||
height: (viewportHeight - topHeight - consoleHeight) + 'px'
|
||
}
|
typo3/js/extjs/viewport.js (Arbeitskopie) | ||
---|---|---|
* This copyright notice MUST APPEAR in all copies of the script!
|
||
***************************************************************/
|
||
Ext.ns('TYPO3');
|
||
/**
|
||
* Extends the viewport with some functionality for TYPO3.
|
||
*
|
||
... | ... | |
}
|
||
}
|
||
});
|
||
Ext.ComponentMgr.get('typo3-debug-console-closerTab').setTitle(TYPO3.LLL.core.tabs_closeAll);
|
||
},
|
||
/**
|
typo3/backend.php (Arbeitskopie) | ||
---|---|---|
'js/flashupload.js',
|
||
'../t3lib/jsfunc.evalfield.js',
|
||
'../t3lib/js/extjs/ux/flashmessages.js',
|
||
'../t3lib/js/extjs/ux/ext.ux.tabclosemenu.js',
|
||
'js/backend.js',
|
||
'js/loginrefresh.js',
|
||
'js/extjs/debugPanel.js',
|
||
'js/extjs/viewport.js',
|
||
'js/extjs/viewportConfiguration.js',
|
||
);
|
||
... | ... | |
'refresh_login_refresh_button' => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xml:mess.refresh_login_refresh_button'),
|
||
'refresh_direct_logout_button' => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xml:mess.refresh_direct_logout_button'),
|
||
'tabs_closeAll' => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xml:tabs.closeAll'),
|
||
'tabs_closeOther' => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xml:tabs.closeOther'),
|
||
'tabs_close' => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xml:tabs.close'),
|
||
);
|
||
$t3LLLfileUpload = array(
|
||
'windowTitle' => $GLOBALS['LANG']->getLL('fileUpload_windowTitle'),
|
typo3/sysext/t3skin/stylesheets/visual/debug_panel.css (Revision 0) | ||
---|---|---|
/* - - - - - - - - - - - - - - - - - - - - -
|
||
TYPO3 debug panel
|
||
$Id$
|
||
- - - - - - - - - - - - - - - - - - - - - */
|
||
.typo3-debugPanel-dragDropOver {
|
||
}
|
||
.typo3-debugPanel-dragDropArrowDown {
|
||
background-image: url('../../icons/gfx/arrowdown.png');
|
||
display: block;
|
||
visibility: visible;
|
||
z-index: 20000;
|
||
position: absolute;
|
||
width: 16px;
|
||
height: 16px;
|
||
top: 0;
|
||
left: 0;
|
||
}
|
typo3/sysext/lang/locallang_core.xml (Arbeitskopie) | ||
---|---|---|
<label index="toolbarItems.shortcutsDelete">Delete Shortcut</label>
|
||
<label index="toolbarItems.search">Search</label>
|
||
<label index="toolbarItems.workspace">Workspace</label>
|
||
<label index="tabs.closeAll">Close all</label>
|
||
<label index="tabs.closeAll">Close All Tabs</label>
|
||
<label index="tabs.closeOther">Close Other Tabs</label>
|
||
<label index="tabs.close">Close Tab</label>
|
||
</languageKey>
|
||
</data>
|
||
</T3locallang>
|