Update mode toggle.

This commit is contained in:
Lars Jung 2015-05-14 18:04:39 +02:00
parent a61dea8c40
commit 89d56b3ae4
3 changed files with 10 additions and 6 deletions

View file

@ -30,6 +30,7 @@ Options
is given the view mode is fixed and the selector buttons are hidden. 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 The user selected view mode is also stored local in modern browsers
so that it will be persistent. 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 - setParentFolderLabels: boolean, set parent folder labels to real folder names
- sizes: array of numbers - sizes: array of numbers
the first value indicates the default view size. If only one value 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" - 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 - unmanaged: array of strings, don't manage folders containing one of those files
- unmanagedInNewWindow: boolean, open unmanaged links in new window/tab - unmanagedInNewWindow: boolean, open unmanaged links in new window/tab
- viewmodeToggle: boolean, show a view mode toggle in the toolbar
*/ */
"view": { "view": {
"binaryPrefix": false, "binaryPrefix": false,
@ -49,12 +49,12 @@ Options
"hideIf403": true, "hideIf403": true,
"hideParentFolder": false, "hideParentFolder": false,
"modes": ["details", "grid", "icons"], "modes": ["details", "grid", "icons"],
"modeToggle": false,
"setParentFolderLabels": true, "setParentFolderLabels": true,
"sizes": [20, 40, 60, 80, 100, 150, 200, 250, 300, 350, 400], "sizes": [20, 40, 60, 80, 100, 150, 200, 250, 300, 350, 400],
"theme": "", "theme": "",
"unmanaged": ["index.html", "index.htm", "index.php"], "unmanaged": ["index.html", "index.htm", "index.php"],
"unmanagedInNewWindow": false, "unmanagedInNewWindow": false
"viewmodeToggle": false
}, },

View file

@ -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) { 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({ var settings = _.extend({
viewmodeToggle: false modeToggle: false
}, allsettings.view); }, allsettings.view);
var tplSettings = var tplSettings =
'<div id="viewmode-settings" class="block"><h1 class="l10n-view">View</h1></div>'; '<div id="viewmode-settings" class="block"><h1 class="l10n-view">View</h1></div>';
@ -24,6 +24,10 @@ modulejs.define('view/viewmode', ['_', '$', 'core/event', 'core/resource', 'core
$('#viewmode-settings .mode').removeClass('active'); $('#viewmode-settings .mode').removeClass('active');
$('#viewmode-' + mode).addClass('active'); $('#viewmode-' + mode).addClass('active');
$('#viewmode-size').val(_.indexOf(sizes, size)); $('#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)); $('#viewmode-toggle img').attr('src', resource.image('view-' + mode));
} }
@ -71,7 +75,7 @@ modulejs.define('view/viewmode', ['_', '$', 'core/event', 'core/resource', 'core
function addToggle() { function addToggle() {
if (settings.viewmodeToggle && modes.length > 1) { if (settings.modeToggle && modes.length > 1) {
$(tplToggle) $(tplToggle)
.on('click', onToggle) .on('click', onToggle)
.appendTo(topbar.$toolbar); .appendTo(topbar.$toolbar);

View file

@ -18,7 +18,7 @@ describe('module \'' + ID + '\'', function () {
image: sinon.stub().returns(util.uniqPath('-image.png')) image: sinon.stub().returns(util.uniqPath('-image.png'))
}; };
this.xSettings = {view: { this.xSettings = {view: {
viewmodeToggle: false modeToggle: false
}}; }};
this.xSidebar = {$el: null}; this.xSidebar = {$el: null};
this.xTopbar = {$el: null}; this.xTopbar = {$el: null};