From 4b5f93d1161b989271fffe060701127dde28f857 Mon Sep 17 00:00:00 2001 From: John Chen Date: Fri, 13 Apr 2012 14:49:42 +0800 Subject: [PATCH 1/3] [Layout View] Treat ui-collapsible-contents as a sortable item to make it easier to move widgets into empty Collapsible Conflicts: src/js/composer.js --- src/js/composer.js | 6 ++++++ src/js/widgets.js | 5 ----- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/js/composer.js b/src/js/composer.js index d07dbf31..6fa92248 100644 --- a/src/js/composer.js +++ b/src/js/composer.js @@ -308,6 +308,12 @@ $(function() { cancel: '> :not(.adm-node,.orig-adm-node)', items: '> *.adm-node:not(.ui-header,.ui-content,.ui-footer),' + '> .ui-controlgroup-controls > .adm-node,' + + //When Collapsible is empty it is hard to move widgets into it. + //Treating ui-collapse-content as item will make it easier + // to move widgets in. + '> .ui-collapsible-content,' + + //Collapsible's items are under .ui-collapsible-content + ' > .ui-collapsible-content > .adm-node, ' + '> *.orig-adm-node:not(.ui-header,.ui-content,.ui-footer)', start: function(event, ui){ trackOffsets('start: ',ui,$(this).data('sortable')); diff --git a/src/js/widgets.js b/src/js/widgets.js index 6ba68eaf..2a865a4c 100644 --- a/src/js/widgets.js +++ b/src/js/widgets.js @@ -1491,11 +1491,6 @@ var BWidgetRegistry = { e.node = ADM.getDesignRoot().findNodeByUid(ADM.getSelected()); toggleCollapse(e); ADM.bind("selectionChanged", toggleCollapse); - // Fixup "Collapsible" to make the content div jQM adds at runtime - // be a "sortable" as well - $('.ui-collapsible-content', domNode) - .addClass('nrc-sortable-container') - .attr('data-uid', admNode.getUid()); return domNode; }, }, From b155ea6f32f4041c827e7e14d4f2c6a9a65f8862 Mon Sep 17 00:00:00 2001 From: John Chen Date: Fri, 13 Apr 2012 14:56:59 +0800 Subject: [PATCH 2/3] [Layout View] Make sure highlighted container is where the placeholder located Conflicts: src/js/composer.js --- src/js/composer.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/js/composer.js b/src/js/composer.js index 6fa92248..1c2a8171 100644 --- a/src/js/composer.js +++ b/src/js/composer.js @@ -355,11 +355,11 @@ $(function() { s.overflowOffset.left = sP.offsetWidth/2 - s.options.scrollSensitivity; } + targets.removeClass('ui-state-active'); + //The highlighted container should always be where the placeholder located + ui.placeholder.closest('.nrc-sortable-container').addClass('ui-state-active'); }, over: function(event, ui){ - $('.ui-sortable.ui-state-active') - .removeClass('ui-state-active'); - $(this).addClass('ui-state-active'); trackOffsets('over: ',ui,$(this).data('sortable')); if (ui && ui.placeholder) { From cd26173fd6e6bced9d10e0449202d2ac0ce357d7 Mon Sep 17 00:00:00 2001 From: John Chen Date: Thu, 22 Mar 2012 23:11:30 +0800 Subject: [PATCH 3/3] [Layout View] Automatically expand/collapse Collapsible when over/out --- src/js/composer.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/js/composer.js b/src/js/composer.js index 1c2a8171..476554ee 100644 --- a/src/js/composer.js +++ b/src/js/composer.js @@ -362,6 +362,8 @@ $(function() { over: function(event, ui){ trackOffsets('over: ',ui,$(this).data('sortable')); + if ($(this).hasClass('nrc-sortable-container ui-collapsible')) + $(this).trigger('expand'); if (ui && ui.placeholder) { var s = ui.placeholder.siblings('.adm-node:visible,' + '.orig-adm-node:visible'), @@ -386,8 +388,10 @@ $(function() { } }, out: function(event, ui){ - $(this).removeClass('ui-state-active'); trackOffsets('out: ',ui,$(this).data('sortable')); + if ($(this).hasClass('nrc-sortable-container ui-collapsible') + && $(this).subtree('.ui-selected').length === 0) + $(this).trigger('collapse'); }, stop: function(event, ui){ trackOffsets('stop: ',ui,$(this).data('sortable'));