diff --git a/src/_h5ai/client/js/inc/view/viewmode.js b/src/_h5ai/client/js/inc/view/viewmode.js index 94c9b453..10bcaa25 100644 --- a/src/_h5ai/client/js/inc/view/viewmode.js +++ b/src/_h5ai/client/js/inc/view/viewmode.js @@ -13,54 +13,45 @@ modulejs.define('view/viewmode', ['_', '$', 'core/resource', 'core/settings', 'c var sizeTemplate = ''; var sortedSizes = settings.sizes.sort(function (a, b) { return a - b; }); - var dynamicStyleTag = null; - function applyCss(rules) { - - if (dynamicStyleTag) { - document.head.removeChild(dynamicStyleTag); - } - dynamicStyleTag = document.createElement('style'); - dynamicStyleTag.appendChild(document.createTextNode('')); // fix webkit - document.head.appendChild(dynamicStyleTag); - _.each(rules, function (rule, i) { - - dynamicStyleTag.sheet.insertRule(rule, i); - }); - } - function cropSize(size, min, max) { return Math.min(max, Math.max(min, size)); } - function applyCssSizes(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 .item .label { line-height: ' + (dsize + 14) + 'px !important; }', - '#view.view-details .item .date { line-height: ' + (dsize + 14) + 'px !important; }', - '#view.view-details .item .size { line-height: ' + (dsize + 14) + 'px !important; }', - '#view.view-details .square { width: ' + dsize + 'px !important; height: ' + dsize + 'px !important; }', - '#view.view-details .square img { width: ' + dsize + 'px !important; height: ' + dsize + 'px !important; }', - '#view.view-details .label { margin: 0 246px 0 ' + (dsize + 32) + 'px !important; }', + '#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 .item .label { line-height: ' + gsize + 'px !important; }', - '#view.view-grid .square { width: ' + gsize + 'px !important; height: ' + gsize + 'px !important; }', - '#view.view-grid .square img { width: ' + gsize + 'px !important; height: ' + gsize + '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 .item { width: ' + ilsize + 'px !important; }', - '#view.view-icons .landscape { width: ' + ilsize + 'px !important; height: ' + isize + 'px !important; }', - '#view.view-icons .landscape img { width: ' + isize + 'px !important; height: ' + isize + 'px !important; }', - '#view.view-icons .landscape .thumb { width: ' + ilsize + '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; }' ]; - applyCss(rules); + + return rules.join('\n'); } + function addCssStyles() { + + var styles = _.map(sortedSizes, function (size) { return createStyles(size); }); + $('