Implemented the hide/show sidebar feature

This commit is contained in:
alekseybobkov 2015-03-22 14:56:08 -07:00
parent 86b9f58465
commit 695c5d243b
6 changed files with 75 additions and 3 deletions

View File

@ -349,6 +349,13 @@ class MediaManager extends WidgetBase
];
}
public function onSetSidebarVisible()
{
$visible = Input::get('visible');
$this->setSidebarVisible($visible);
}
//
// Methods for th internal use
//
@ -378,6 +385,7 @@ class MediaManager extends WidgetBase
$this->vars['sortBy'] = $sortBy;
$this->vars['searchMode'] = $searchMode;
$this->vars['searchTerm'] = $searchTerm;
$this->vars['sidebarVisible'] = $this->getSidebarVisible();
}
protected function listFolderItems($folder, $filter, $sortBy)
@ -452,6 +460,16 @@ class MediaManager extends WidgetBase
return $this->getSession('media_sort_by', MediaLibrary::SORT_BY_TITLE);
}
protected function setSidebarVisible($visible)
{
return $this->putSession('sideba_visible', !!$visible);
}
protected function getSidebarVisible()
{
return $this->getSession('sideba_visible', true);
}
protected function itemTypeToIconClass($item, $itemType)
{
if ($item->type == MediaLibraryItem::TYPE_FOLDER)

View File

@ -380,6 +380,11 @@ div[data-control="media-manager"] .upload-progress .progress-controls .controls
div[data-control="media-manager"] .dz-preview {
display: none;
}
div[data-control="media-manager"] button[data-command="toggle-sidebar"].sidebar-hidden {
-webkit-transform: rotate(180deg) translate(0, 0);
-ms-transform: rotate(180deg) translate(0, 0);
transform: rotate(180deg) translate(0, 0);
}
body:not(.no-select) div[data-control="media-manager"] .media-list.tiles li:hover .icon-container {
background: #4da7e8 !important;
border-color: #2581b8;
@ -404,3 +409,8 @@ body:not(.no-select) div[data-control="media-manager"] .media-list .list li:hove
body:not(.no-select) div[data-control="media-manager"] .media-list .list li:hover .icon-container {
border-right-color: #4da7e8 !important;
}
@media (max-width: 1280px) {
div[data-control="media-manager"] .media-list.list li {
width: 230px;
}
}

View File

@ -287,7 +287,29 @@
//
MediaManager.prototype.isPreviewSidebarVisible = function() {
return true
return !this.$el.find('[data-control="preview-sidebar"]').hasClass('hide')
}
MediaManager.prototype.toggleSidebar = function(ev) {
var isVisible = this.isPreviewSidebarVisible(),
$sidebar = this.$el.find('[data-control="preview-sidebar"]'),
$button = $(ev.target)
if (!isVisible) {
$sidebar.removeClass('hide')
this.updateSidebarPreview()
$button.removeClass('sidebar-hidden')
}
else {
$sidebar.addClass('hide')
$button.addClass('sidebar-hidden')
}
this.$form.request(this.options.alias+'::onSetSidebarVisible', {
data: {
visible: (isVisible ? 0 : 1)
}
})
}
MediaManager.prototype.updateSidebarMediaPreview = function(items) {
@ -929,6 +951,9 @@
case 'move':
this.moveItems(ev)
break;
case 'toggle-sidebar':
this.toggleSidebar(ev)
break;
}
return false

View File

@ -448,6 +448,12 @@ div[data-control="media-manager"] {
.dz-preview {
display: none;
}
button[data-command="toggle-sidebar"] {
&.sidebar-hidden {
.transform( ~'rotate(180deg) translate(0, 0)' );
}
}
}
body:not(.no-select) {
@ -464,4 +470,16 @@ body:not(.no-select) {
}
}
}
}
@media (max-width: 1280px) {
div[data-control="media-manager"] {
.media-list {
&.list {
li {
width: 230px;
}
}
}
}
}

View File

@ -41,7 +41,7 @@
</div>
</div>
</div>
<div class="layout-cell width-300 panel border-left no-padding" data-control="preview-sidebar">
<div class="layout-cell width-300 panel border-left no-padding <?= !$sidebarVisible ? 'hide' : null ?>" data-control="preview-sidebar">
<!-- Right sidebar -->
<?= $this->makePartial('right-sidebar') ?>
</div>

View File

@ -8,7 +8,8 @@
<div class="layout-cell">
<button
type="button"
class="oc-icon-sign-out btn-icon pull-right larger">
data-command="toggle-sidebar"
class="oc-icon-sign-out btn-icon pull-right larger <?= !$sidebarVisible ? 'sidebar-hidden' : null ?>">
</button>
</div>
</div>