commit 61d43ad9626c724d4bc3b54851ce429cca599564
parent 935820bd91e013edf6ab26bdc229d3211827cae7
Author: Jan Dankert <devnull@localhost>
Date: Thu, 7 Mar 2013 00:08:04 +0100
Kleine Bugfixes für das Ziehen der Views.
Diffstat:
2 files changed, 30 insertions(+), 9 deletions(-)
diff --git a/themes/default/js/openrat.js b/themes/default/js/openrat.js
@@ -166,6 +166,8 @@ function registerWorkbenchEvents()
revert: 'invalid'
} );
+ // Ziehen von Views in andere View-Leisten.
+ // Die View wird dabei einfach kopiert. Container mit leeren View-Leisten werden gelöscht.
$('ul.views').droppable(
{
accept : 'li.action',
@@ -185,15 +187,23 @@ function registerWorkbenchEvents()
// Falls die View-Liste, von der die View weggezogen wurde, jetzt leer ist:
if ( oldViewList.find('li').size() == 0 )
{
- var container = oldViewList.closest('div.container');
+ var oldContainer = oldViewList.closest('div.container');
oldViewList.closest('div.bar').remove(); // Die Bar, in der die leere Viewliste ist, entfernen.
- container.replaceWith( container.children('div.bar') ); // die andere Bar nehmen und den übergeordneten Container ersetzen.
+
+ if ( oldContainer.hasClass('autosize') )
+ oldContainer.children('div.bar').addClass('autosize').removeClass('resizable');
+ else
+ oldContainer.children('div.bar').addClass('resizable').removeClass('autosize');
+
+ oldContainer.replaceWith( oldContainer.children('div.bar') ); // die andere Bar nehmen und den übergeordneten Container ersetzen.
resizeWorkbench();
}
}
}
);
+ // Ziehen von Views in anderen Inhalt-Bereichen
+ // Dabei wird der Ziel-Bereich durch einen neuen View-Container ersetzt.
$('div.content').droppable(
{
accept : 'li.action',
@@ -204,7 +214,6 @@ function registerWorkbenchEvents()
var dropped = ui.draggable;
var droppedOn = $(this);
var oldViewList = dropped.parent();
- var bar = $(droppedOn).closest('div.bar');
var offsetDropped = dropped.offset();
var offsetContent = droppedOn.offset();
@@ -216,7 +225,7 @@ function registerWorkbenchEvents()
var paddingBottom = offsetContent.top+droppedOn.height()-offsetDropped.top;
//alert( ' L:' + paddingLeft + ' R:' + paddingRight + ' T:'+ paddingTop + ' B:' + paddingBottom );
- var newContainer = $('<div class="container"><div class="bar first" /><div class="divider" /><div class="second"></div>');
+ var newContainer = $('<div class="container"><div class="first" /><div class="divider" /><div class="second"></div>');
if ( paddingLeft < Math.min(paddingRight,Math.min(paddingTop,paddingBottom)) )
{
@@ -250,6 +259,8 @@ function registerWorkbenchEvents()
newContainer.children('div.first' ).removeClass('first').addClass('autosize');
newContainer.children('div.second').removeClass('first').addClass('resizable' );
}
+
+ newContainer.children('div.resizable' ).addClass('bar').data('size-factor',0.4);
// Die komplette Bar der Quelle kopieren.
$(dropped).closest('div.bar').clone().addClass('resizable').removeClass('autosize').replaceAll( newContainer.children('div.resizable') );
@@ -257,7 +268,7 @@ function registerWorkbenchEvents()
$(dropped).detach().css({top: 0,left: 0}).appendTo( newContainer.find('ul.views') ).click(); // View kopieren
// Neuen Container in den DOM einfügen.
- var oldContainer = $(bar).parent().replaceWith( newContainer );
+ var oldContainer = $(droppedOn).closest('div.bar').replaceWith( newContainer );
newContainer.children('div.autosize').replaceWith( oldContainer );
if ( oldContainer.hasClass('autosize' )) { newContainer.addClass('autosize' ).removeClass('resizable'); }
@@ -267,9 +278,16 @@ function registerWorkbenchEvents()
// Falls die View-Liste, von der die View weggezogen wurde, jetzt leer ist:
if ( oldViewList.find('li').size() == 0 )
{
- var container = oldViewList.closest('div.container');
+ var oldContainer = oldViewList.closest('div.container');
oldViewList.closest('div.bar').remove(); // Die Bar, in der die leere Viewliste ist, entfernen.
- container.replaceWith( container.children('div.bar') ); // die andere Bar nehmen und den übergeordneten Container ersetzen.
+
+ if ( oldContainer.hasClass('autosize') )
+ oldContainer.children('div.bar').addClass('autosize').removeClass('resizable');
+ else
+ oldContainer.children('div.bar').addClass('resizable').removeClass('autosize');
+
+ oldContainer.replaceWith( oldContainer.children('div.bar') ); // die andere Bar nehmen und den übergeordneten Container ersetzen.
+ resizeWorkbench();
}
resizeWorkbench();
@@ -1364,6 +1382,9 @@ function resizeWorkbenchContainer( container )
var availableHeight = container.height();
var factor = container.children('div.resizable').data('size-factor');
+ if ( !factor)
+ factor = 0.3;
+
var horizontal = container.hasClass('axle-x');
if ( horizontal )
diff --git a/themes/default/layout/perspective/workbench.php b/themes/default/layout/perspective/workbench.php
@@ -22,7 +22,7 @@
<div class="divider to-left" />
- <div class="bar small resizable" data-size-factor="0.2">
+ <div class="bar small resizable" data-size-factor="0.25">
<?php
view_header('side');
?>
@@ -33,7 +33,7 @@
<div class="divider to-top" />
- <div class="bar wide resizable" data-size-factor="0.2">
+ <div class="bar wide resizable" data-size-factor="0.25">
<?php
view_header('bottom');
?>