From 89d56b3ae445f13efc45f9ab5387618d9ab33517 Mon Sep 17 00:00:00 2001 From: Lars Jung Date: Thu, 14 May 2015 18:04:39 +0200 Subject: [PATCH] Update mode toggle. --- src/_h5ai/conf/options.json | 6 +++--- src/_h5ai/public/js/inc/view/viewmode.js | 8 ++++++-- test/tests/unit/view/viewmode.js | 2 +- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/_h5ai/conf/options.json b/src/_h5ai/conf/options.json index 3ebc2cf7..15c0e2d6 100644 --- a/src/_h5ai/conf/options.json +++ b/src/_h5ai/conf/options.json @@ -30,6 +30,7 @@ Options is given the view mode is fixed and the selector buttons are hidden. The user selected view mode is also stored local in modern browsers so that it will be persistent. + - modeToggle: boolean, show a view mode toggle in the toolbar, or "next" - setParentFolderLabels: boolean, set parent folder labels to real folder names - sizes: array of numbers the first value indicates the default view size. If only one value @@ -39,7 +40,6 @@ Options - theme: string, name of one of the folders in "_{{pkg.name}}/images/themes", defaults to "default" - unmanaged: array of strings, don't manage folders containing one of those files - unmanagedInNewWindow: boolean, open unmanaged links in new window/tab - - viewmodeToggle: boolean, show a view mode toggle in the toolbar */ "view": { "binaryPrefix": false, @@ -49,12 +49,12 @@ Options "hideIf403": true, "hideParentFolder": false, "modes": ["details", "grid", "icons"], + "modeToggle": false, "setParentFolderLabels": true, "sizes": [20, 40, 60, 80, 100, 150, 200, 250, 300, 350, 400], "theme": "", "unmanaged": ["index.html", "index.htm", "index.php"], - "unmanagedInNewWindow": false, - "viewmodeToggle": false + "unmanagedInNewWindow": false }, diff --git a/src/_h5ai/public/js/inc/view/viewmode.js b/src/_h5ai/public/js/inc/view/viewmode.js index f3edce3d..8cb00a76 100644 --- a/src/_h5ai/public/js/inc/view/viewmode.js +++ b/src/_h5ai/public/js/inc/view/viewmode.js @@ -1,7 +1,7 @@ modulejs.define('view/viewmode', ['_', '$', 'core/event', 'core/resource', 'core/settings', 'view/sidebar', 'view/topbar', 'view/view'], function (_, $, event, resource, allsettings, sidebar, topbar, view) { var settings = _.extend({ - viewmodeToggle: false + modeToggle: false }, allsettings.view); var tplSettings = '

View

'; @@ -24,6 +24,10 @@ modulejs.define('view/viewmode', ['_', '$', 'core/event', 'core/resource', 'core $('#viewmode-settings .mode').removeClass('active'); $('#viewmode-' + mode).addClass('active'); $('#viewmode-size').val(_.indexOf(sizes, size)); + + if (settings.modeToggle === 'next') { + mode = modes[(modes.indexOf(mode) + 1) % modes.length]; + } $('#viewmode-toggle img').attr('src', resource.image('view-' + mode)); } @@ -71,7 +75,7 @@ modulejs.define('view/viewmode', ['_', '$', 'core/event', 'core/resource', 'core function addToggle() { - if (settings.viewmodeToggle && modes.length > 1) { + if (settings.modeToggle && modes.length > 1) { $(tplToggle) .on('click', onToggle) .appendTo(topbar.$toolbar); diff --git a/test/tests/unit/view/viewmode.js b/test/tests/unit/view/viewmode.js index fb52ae1b..5412ee89 100644 --- a/test/tests/unit/view/viewmode.js +++ b/test/tests/unit/view/viewmode.js @@ -18,7 +18,7 @@ describe('module \'' + ID + '\'', function () { image: sinon.stub().returns(util.uniqPath('-image.png')) }; this.xSettings = {view: { - viewmodeToggle: false + modeToggle: false }}; this.xSidebar = {$el: null}; this.xTopbar = {$el: null};