modulejs.define('view/viewmode', ['_', '$', 'core/resource', 'core/settings', 'core/store', 'view/sidebar', 'view/view'], function (_, $, resource, allsettings, store, sidebar, view) { var modes = ['details', 'grid', 'icons']; var settings = _.extend({}, { modes: modes, sizes: [20, 40, 60, 80, 100, 150, 200, 250, 300, 350, 400] }, allsettings.view); var storekey = 'viewmode'; var modeTemplate = '
' + 'view-[MODE]' + '
'; var sizeTemplate = ''; var sortedSizes = settings.sizes.sort(function (a, b) { return a - b; }); function cropSize(size, min, max) { return Math.min(max, Math.max(min, size)); } function createStyles(size) { var dsize = cropSize(size, 20, 80); var gsize = cropSize(size, 40, 150); var isize = cropSize(size, 80, 2000); var ilsize = Math.round(isize * 4 / 3); var rules = [ '#view.view-details.view-size-' + size + ' .item .label { line-height: ' + (dsize + 14) + 'px !important; }', '#view.view-details.view-size-' + size + ' .item .date { line-height: ' + (dsize + 14) + 'px !important; }', '#view.view-details.view-size-' + size + ' .item .size { line-height: ' + (dsize + 14) + 'px !important; }', '#view.view-details.view-size-' + size + ' .square { width: ' + dsize + 'px !important; height: ' + dsize + 'px !important; }', '#view.view-details.view-size-' + size + ' .square img { width: ' + dsize + 'px !important; height: ' + dsize + 'px !important; }', '#view.view-details.view-size-' + size + ' .label { margin: 0 246px 0 ' + (dsize + 32) + 'px !important; }', '#view.view-grid.view-size-' + size + ' .item .label { line-height: ' + gsize + 'px !important; }', '#view.view-grid.view-size-' + size + ' .square { width: ' + gsize + 'px !important; height: ' + gsize + 'px !important; }', '#view.view-grid.view-size-' + size + ' .square img { width: ' + gsize + 'px !important; height: ' + gsize + 'px !important; }', '#view.view-icons.view-size-' + size + ' .item { width: ' + ilsize + 'px !important; }', '#view.view-icons.view-size-' + size + ' .landscape { width: ' + ilsize + 'px !important; height: ' + isize + 'px !important; }', '#view.view-icons.view-size-' + size + ' .landscape img { width: ' + isize + 'px !important; height: ' + isize + 'px !important; }', '#view.view-icons.view-size-' + size + ' .landscape .thumb { width: ' + ilsize + 'px !important; }' ]; return rules.join('\n'); } function addCssStyles() { var styles = _.map(sortedSizes, function (size) { return createStyles(size); }); $('