diff --git a/src/_h5ai/client/css/inc/view/view.less b/src/_h5ai/client/css/inc/view/view.less index 79479d69..9276687d 100644 --- a/src/_h5ai/client/css/inc/view/view.less +++ b/src/_h5ai/client/css/inc/view/view.less @@ -1,8 +1,6 @@ #view { @max-icon-size: 32px; - display: none; - a, a:active, a:visited { display: block; color: inherit; diff --git a/src/_h5ai/client/js/inc/view/view.js b/src/_h5ai/client/js/inc/view/view.js index 5aaa299a..989a4392 100644 --- a/src/_h5ai/client/js/inc/view/view.js +++ b/src/_h5ai/client/js/inc/view/view.js @@ -1,12 +1,19 @@ -modulejs.define('view/view', ['_', '$', 'core/event', 'core/format', 'core/location', 'core/resource', 'core/settings', 'view/content'], function (_, $, event, format, location, resource, allsettings, content) { +modulejs.define('view/view', ['_', '$', 'core/event', 'core/format', 'core/location', 'core/resource', 'core/settings', 'core/store', 'view/content'], function (_, $, event, format, location, resource, allsettings, store, content) { + var modes = ['details', 'grid', 'icons']; + var sizes = [20, 40, 60, 80, 100, 150, 200, 250, 300, 350, 400]; var settings = _.extend({ binaryPrefix: false, hideFolders: false, hideParentFolder: false, - setParentFolderLabels: false + modes: modes, + setParentFolderLabels: false, + sizes: sizes }, allsettings.view); - var template = + var sortedSizes = settings.sizes.sort(function (a, b) { return a - b; }); + var checkedModes = _.intersection(settings.modes, modes); + var storekey = 'view'; + var tplView = '
' + '' + '
' + '
'; - var itemTemplate = + var tplItem = '
  • ' + '' + '' + @@ -28,14 +35,111 @@ modulejs.define('view/view', ['_', '$', 'core/event', 'core/format', 'core/locat '' + '' + '
  • '; - var $view = $(template); + var $view = $(tplView); var $items = $view.find('#items'); var $hint = $view.find('#view-hint'); + 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); }); + $('