Fix a lot eslint errors.

This commit is contained in:
Lars Jung 2015-11-18 23:16:58 +01:00
parent 0c6143704a
commit 39ea94daa8
88 changed files with 3872 additions and 4930 deletions

View file

@ -1,30 +1,25 @@
modulejs.define('ext/autorefresh', ['_', '$', 'core/event', 'core/location', 'core/settings'], function (_, $, event, location, allsettings) {
var settings = _.extend({
enabled: false,
interval: 5000
}, allsettings.autorefresh);
enabled: false,
interval: 5000
}, allsettings.autorefresh);
var timeoutId = null;
function heartbeat() {
location.refresh();
}
function before() {
clearTimeout(timeoutId);
}
function after() {
clearTimeout(timeoutId);
timeoutId = setTimeout(heartbeat, settings.interval);
}
function init() {
if (!settings.enabled) {
return;
}

View file

@ -1,8 +1,7 @@
modulejs.define('ext/contextmenu', ['_', '$', 'core/resource', 'core/settings'], function (_, $, resource, allsettings) {
var settings = _.extend({
enabled: false
}, allsettings.contextmenu);
enabled: false
}, allsettings.contextmenu);
var templateOverlay = '<div id="cm-overlay"/>';
var templatePanel = '<div class="cm-panel"><ul/></div>';
var templateSep = '<li class="cm-sep"/>';
@ -11,12 +10,10 @@ modulejs.define('ext/contextmenu', ['_', '$', 'core/resource', 'core/settings'],
function createOverlay(callback) {
var $overlay = $(templateOverlay);
$overlay
.on('click contextmenu', function (ev) {
ev.stopPropagation();
ev.preventDefault();
@ -32,20 +29,16 @@ modulejs.define('ext/contextmenu', ['_', '$', 'core/resource', 'core/settings'],
}
function createPanel(menu) {
var $panel = $(templatePanel);
var $ul = $panel.find('ul');
var $li;
_.each(menu, function (entry) {
if (entry.type === '-') {
$(templateSep).appendTo($ul);
} else if (entry.type === 'l') {
$(templateLabel).appendTo($ul)
.find('.cm-text').text(entry.text);
} else if (entry.type === 'e') {
$li = $(templateEntry).appendTo($ul);
$li.data('cm-id', entry.id);
@ -62,7 +55,6 @@ modulejs.define('ext/contextmenu', ['_', '$', 'core/resource', 'core/settings'],
}
function positionPanel($overlay, $panel, x, y) {
var margin = 4;
$panel.css({
@ -123,7 +115,6 @@ modulejs.define('ext/contextmenu', ['_', '$', 'core/resource', 'core/settings'],
}
function showMenuAt(x, y, menu, callback) {
var $overlay = createOverlay(callback);
var $panel = createPanel(menu);
$overlay.append($panel).appendTo('body');
@ -131,20 +122,17 @@ modulejs.define('ext/contextmenu', ['_', '$', 'core/resource', 'core/settings'],
}
function init() {
// settings.enabled = true;
if (!settings.enabled) {
return;
}
$(document).on('contextmenu', function (ev) {
ev.stopPropagation();
ev.preventDefault();
$(ev.target).trigger($.Event('h5ai-contextmenu', {
originalEvent: ev,
showMenu: function (menu, callback) {
showMenuAt(ev.pageX, ev.pageY, menu, callback);
}
}));

View file

@ -1,8 +1,7 @@
modulejs.define('ext/crumb', ['_', '$', 'core/event', 'core/location', 'core/resource', 'core/settings', 'view/topbar'], function (_, $, event, location, resource, allsettings, topbar) {
var settings = _.extend({
enabled: false
}, allsettings.crumb);
enabled: false
}, allsettings.crumb);
var crumbTemplate =
'<a class="crumb">' +
'<img class="sep" src="' + resource.image('crumb') + '" alt=">"/>' +
@ -13,7 +12,6 @@ modulejs.define('ext/crumb', ['_', '$', 'core/event', 'core/location', 'core/res
function createHtml(item) {
var $html = $(crumbTemplate).data('item', item);
item.$crumb = $html;
location.setLink($html, item);
@ -32,7 +30,6 @@ modulejs.define('ext/crumb', ['_', '$', 'core/event', 'core/location', 'core/res
}
function onLocationChanged(item) {
var $crumb = item.$crumb;
if ($crumb && $crumb.parent()[0] === $crumbbar[0]) {
@ -40,14 +37,13 @@ modulejs.define('ext/crumb', ['_', '$', 'core/event', 'core/location', 'core/res
$crumb.addClass('active');
} else {
$crumbbar.empty();
_.each(item.getCrumb(), function (item) {
$crumbbar.append(createHtml(item));
_.each(item.getCrumb(), function (crumbItem) {
$crumbbar.append(createHtml(crumbItem));
});
}
}
function init() {
if (!settings.enabled) {
return;
}

View file

@ -1,17 +1,14 @@
modulejs.define('ext/custom', ['_', '$', 'marked', 'core/event', 'core/server', 'core/settings'], function (_, $, marked, event, server, allsettings) {
var settings = _.extend({
enabled: false
}, allsettings.custom);
enabled: false
}, allsettings.custom);
var $header;
var $footer;
var duration = 200;
function onLocationChanged(item) {
server.request({action: 'get', custom: item.absHref}, function (response) {
var custom = response && response.custom;
var hasHeader;
var hasFooter;
@ -50,7 +47,6 @@ modulejs.define('ext/custom', ['_', '$', 'marked', 'core/event', 'core/server',
}
function init() {
if (!settings.enabled) {
return;
}

View file

@ -1,11 +1,10 @@
modulejs.define('ext/download', ['_', '$', 'core/event', 'core/location', 'core/resource', 'core/server', 'core/settings'], function (_, $, event, location, resource, server, allsettings) {
var settings = _.extend({
enabled: false,
type: 'php-tar',
packageName: 'package',
alwaysVisible: false
}, allsettings.download);
enabled: false,
type: 'php-tar',
packageName: 'package',
alwaysVisible: false
}, allsettings.download);
var template =
'<div id="download" class="tool">' +
'<img src="' + resource.image('download') + '" alt="download"/>' +
@ -15,7 +14,6 @@ modulejs.define('ext/download', ['_', '$', 'core/event', 'core/location', 'core/
function onSelection(items) {
selectedItems = items.slice(0);
if (selectedItems.length) {
$download.show();
@ -25,10 +23,9 @@ modulejs.define('ext/download', ['_', '$', 'core/event', 'core/location', 'core/
}
function onClick() {
var type = settings.type;
var name = settings.packageName;
var extension = (type === 'shell-zip') ? 'zip' : 'tar';
var extension = type === 'shell-zip' ? 'zip' : 'tar';
if (!name) {
if (selectedItems.length === 1) {
@ -39,14 +36,13 @@ modulejs.define('ext/download', ['_', '$', 'core/event', 'core/location', 'core/
}
var query = {
action: 'download',
as: name + '.' + extension,
type: type,
baseHref: location.getAbsHref()
};
action: 'download',
as: name + '.' + extension,
type: type,
baseHref: location.getAbsHref()
};
_.each(selectedItems, function (item, idx) {
query['hrefs[' + idx + ']'] = item.absHref;
});
@ -54,7 +50,6 @@ modulejs.define('ext/download', ['_', '$', 'core/event', 'core/location', 'core/
}
function init() {
if (!settings.enabled) {
return;
}

View file

@ -1,10 +1,9 @@
modulejs.define('ext/filter', ['_', '$', 'core/event', 'core/location', 'core/resource', 'core/settings', 'core/util', 'view/view'], function (_, $, event, location, resource, allsettings, util, view) {
var settings = _.extend({
enabled: false,
advanced: false,
debounceTime: 100
}, allsettings.filter);
enabled: false,
advanced: false,
debounceTime: 100
}, allsettings.filter);
var template =
'<div id="filter" class="tool">' +
'<img src="' + resource.image('filter') + '" alt="filter"/>' +
@ -17,7 +16,6 @@ modulejs.define('ext/filter', ['_', '$', 'core/event', 'core/location', 'core/re
function filter(pattern) {
pattern = pattern || '';
if (pattern === prevPattern) {
return;
@ -35,7 +33,6 @@ modulejs.define('ext/filter', ['_', '$', 'core/event', 'core/location', 'core/re
var matchedItems = [];
_.each(location.getItem().content, function (item) {
if (re.test(item.label)) {
matchedItems.push(item);
}
@ -47,7 +44,6 @@ modulejs.define('ext/filter', ['_', '$', 'core/event', 'core/location', 'core/re
}
function update() {
if (inputIsVisible) {
$filter.addClass('active');
$input.focus();
@ -59,20 +55,17 @@ modulejs.define('ext/filter', ['_', '$', 'core/event', 'core/location', 'core/re
}
function toggle() {
inputIsVisible = !inputIsVisible;
update();
}
function reset() {
inputIsVisible = false;
$input.val('');
update();
}
function init() {
if (!settings.enabled) {
return;
}

View file

@ -1,49 +1,37 @@
modulejs.define('ext/google-analytics-ua', ['_', 'core/event', 'core/settings'], function (_, event, allsettings) {
var settings = _.extend({
enabled: false,
id: 'UA-000000-0'
}, allsettings['google-analytics-ua']);
var win = window;
var doc = document;
var scriptLiteral = 'script';
var id = 'h5ai-ga';
enabled: false,
id: 'UA-000000-0'
}, allsettings['google-analytics-ua']);
function snippet() {
/* eslint-disable */
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
/* eslint-enable */
}
function init() {
if (!settings.enabled) {
return;
}
var el;
var firstScriptElement;
snippet();
win.GoogleAnalyticsObject = id;
win[id] = win[id] || function () {
(win[id].q = win[id].q || []).push(arguments);
};
win[id].l = 1 * new Date();
el = doc.createElement(scriptLiteral);
el.async = true;
el.src = '//www.google-analytics.com/analytics.js';
firstScriptElement = doc.getElementsByTagName(scriptLiteral)[0];
firstScriptElement.parentNode.insertBefore(el, firstScriptElement);
win[id]('create', settings.id, 'auto');
var WIN = window;
var GA = 'ga';
WIN[GA]('create', settings.id, 'auto');
event.sub('location.changed', function (item) {
var loc = win.location;
win[id]('send', 'pageview', {
var loc = WIN.location;
WIN[GA]('send', 'pageview', {
location: loc.protocol + '//' + loc.host + item.absHref,
title: _.pluck(item.getCrumb(), 'label').join(' > ')
});
});
}
init();
});

View file

@ -1,11 +1,10 @@
modulejs.define('ext/info', ['_', '$', 'core/event', 'core/format', 'core/modernizr', 'core/resource', 'core/settings', 'core/store'], function (_, $, event, format, modernizr, resource, allsettings, store) {
var settings = _.extend({
enabled: false,
show: false,
qrcode: true,
qrColor: '#999'
}, allsettings.info);
enabled: false,
show: false,
qrcode: true,
qrColor: '#999'
}, allsettings.info);
var template =
'<div id="info">' +
'<div class="icon"><img/></div>' +
@ -40,7 +39,6 @@ modulejs.define('ext/info', ['_', '$', 'core/event', 'core/format', 'core/modern
function updateSettings() {
if (store.get(storekey)) {
$('#view-info').addClass('active');
$('#info').show();
@ -51,7 +49,6 @@ modulejs.define('ext/info', ['_', '$', 'core/event', 'core/format', 'core/modern
}
function update(item) {
var src = item.thumbRational || item.icon;
var isThumb = Boolean(item.thumbRational);
@ -101,23 +98,19 @@ modulejs.define('ext/info', ['_', '$', 'core/event', 'core/format', 'core/modern
}
function onMouseenter(item) {
update(item);
}
function onMouseleave() {
update(currentFolder);
}
function onLocationChanged(item) {
currentFolder = item;
update(currentFolder);
}
function init() {
if (!settings.enabled) {
return;
}
@ -140,14 +133,13 @@ modulejs.define('ext/info', ['_', '$', 'core/event', 'core/format', 'core/modern
.appendTo('#sidebar')
.find('#view-info')
.on('click', function (ev) {
store.put(storekey, !store.get(storekey));
updateSettings();
ev.preventDefault();
});
// ensure stored value is boolean, otherwise set default
if (typeof (store.get(storekey)) !== 'boolean') {
if (typeof store.get(storekey) !== 'boolean') {
store.put(storekey, settings.show);
}
updateSettings();

View file

@ -1,44 +1,43 @@
modulejs.define('ext/l10n', ['_', '$', 'core/event', 'core/format', 'core/langs', 'core/server', 'core/settings', 'core/store'], function (_, $, event, format, langs, server, allsettings, store) {
modulejs.define('ext/l10n', ['_', '$', 'core/event', 'core/format', 'core/langs', 'core/server', 'core/settings', 'core/store'],
function (_, $, event, format, langs, server, allsettings, store) {
var settings = _.extend({
enabled: false,
lang: 'en',
useBrowserLang: true
}, allsettings.l10n);
enabled: false,
lang: 'en',
useBrowserLang: true
}, allsettings.l10n);
var defaultTranslations = {
isoCode: 'en',
lang: 'english',
isoCode: 'en',
lang: 'english',
dateFormat: 'YYYY-MM-DD HH:mm',
details: 'details',
download: 'download',
empty: 'empty',
files: 'files',
filter: 'filter',
folders: 'folders',
grid: 'grid',
icons: 'icons',
language: 'Language',
lastModified: 'Last modified',
name: 'Name',
noMatch: 'no match',
parentDirectory: 'Parent Directory',
search: 'search',
size: 'Size',
tree: 'Tree',
view: 'View'
};
dateFormat: 'YYYY-MM-DD HH:mm',
details: 'details',
download: 'download',
empty: 'empty',
files: 'files',
filter: 'filter',
folders: 'folders',
grid: 'grid',
icons: 'icons',
language: 'Language',
lastModified: 'Last modified',
name: 'Name',
noMatch: 'no match',
parentDirectory: 'Parent Directory',
search: 'search',
size: 'Size',
tree: 'Tree',
view: 'View'
};
var blockTemplate = '<div class="block"><h1 class="l10n-language">Language</h1><div class="select"><select id="langs"/></div></div>';
var optionTemplate = '<option/>';
var storekey = 'ext/l10n';
var loaded = {
en: _.extend({}, defaultTranslations)
};
en: _.extend({}, defaultTranslations)
};
var currentLang = loaded.en;
function update(lang) {
if (lang) {
currentLang = lang;
}
@ -55,7 +54,6 @@ modulejs.define('ext/l10n', ['_', '$', 'core/event', 'core/format', 'core/langs'
format.setDefaultDateFormat(currentLang.dateFormat);
$('#items .item .date').each(function () {
var $this = $(this);
$this.text(format.formatDate($this.data('time')));
@ -63,14 +61,10 @@ modulejs.define('ext/l10n', ['_', '$', 'core/event', 'core/format', 'core/langs'
}
function loadLanguage(isoCode, callback) {
if (loaded[isoCode]) {
callback(loaded[isoCode]);
} else {
server.request({action: 'get', l10n: [isoCode]}, function (response) {
var json = response.l10n && response.l10n[isoCode] ? response.l10n[isoCode] : {};
loaded[isoCode] = _.extend({}, defaultTranslations, json, {isoCode: isoCode});
callback(loaded[isoCode]);
@ -78,46 +72,44 @@ modulejs.define('ext/l10n', ['_', '$', 'core/event', 'core/format', 'core/langs'
}
}
function localize(langs, isoCode, useBrowserLang) {
function localize(languages, isoCode, useBrowserLang) {
var storedIsoCode = store.get(storekey);
if (langs[storedIsoCode]) {
if (languages[storedIsoCode]) {
isoCode = storedIsoCode;
} else if (useBrowserLang) {
var browserLang = navigator.language || navigator.browserLanguage;
if (browserLang) {
if (langs[browserLang]) {
if (languages[browserLang]) {
isoCode = browserLang;
} else if (browserLang.length > 2 && langs[browserLang.substr(0, 2)]) {
} else if (browserLang.length > 2 && languages[browserLang.substr(0, 2)]) {
isoCode = browserLang.substr(0, 2);
}
}
}
if (!langs[isoCode]) {
if (!languages[isoCode]) {
isoCode = 'en';
}
loadLanguage(isoCode, update);
}
function initLangSelector(langs) {
var isoCodes = _.keys(langs).sort();
function initLangSelector(languages) {
var isoCodes = _.keys(languages).sort();
var $block = $(blockTemplate);
var $select = $block.find('select')
.on('change', function (event) {
var isoCode = event.target.value;
store.put(storekey, isoCode);
localize(langs, isoCode, false);
});
.on('change', function (ev) {
var isoCode = ev.target.value;
store.put(storekey, isoCode);
localize(languages, isoCode, false);
});
$.each(isoCodes, function (idx, isoCode) {
$(optionTemplate)
.attr('value', isoCode)
.addClass(isoCode)
.text(isoCode + ' - ' + (_.isString(langs[isoCode]) ? langs[isoCode] : langs[isoCode].lang))
.text(isoCode + ' - ' + (_.isString(languages[isoCode]) ? languages[isoCode] : languages[isoCode].lang))
.appendTo($select);
});
@ -125,13 +117,11 @@ modulejs.define('ext/l10n', ['_', '$', 'core/event', 'core/format', 'core/langs'
}
function init() {
if (settings.enabled) {
initLangSelector(langs);
}
event.sub('view.changed', function () {
localize(langs, settings.lang, settings.useBrowserLang);
});
}

View file

@ -1,13 +1,11 @@
modulejs.define('ext/peer5', ['_', '$', 'core/settings'], function (_, $, allsettings) {
var settings = _.extend({
enabled: false,
id: 'z142i5n5qypq4cxr'
}, allsettings.peer5);
enabled: false,
id: 'z142i5n5qypq4cxr'
}, allsettings.peer5);
function init() {
if (!settings.enabled) {
return;
}
@ -23,9 +21,7 @@ modulejs.define('ext/peer5', ['_', '$', 'core/settings'], function (_, $, allset
// attach to file items, once the DOM is ready
$(function () {
$('body').on('click', '.item.file > a', function (ev) {
if (window.peer5) {
ev.preventDefault();
var url = ev.currentTarget.href;

View file

@ -1,25 +1,23 @@
modulejs.define('ext/piwik-analytics', ['_', '$', 'core/settings'], function (_, $, allsettings) {
var settings = _.extend({
enabled: false,
baseURL: 'not-set',
idSite: 0
}, allsettings['piwik-analytics']);
enabled: false,
baseURL: 'not-set',
idSite: 0
}, allsettings['piwik-analytics']);
function init() {
if (!settings.enabled) {
return;
}
// reference: http://piwik.org/docs/javascript-tracking/
var pkBaseURL = ((document.location.protocol === 'https:') ? 'https://' : 'http://') + settings.baseURL + '/';
var pkBaseURL = (document.location.protocol === 'https:' ? 'https://' : 'http://') + settings.baseURL + '/';
$('<script/>').attr('src', pkBaseURL + 'piwik.js').appendTo('body');
$(window).load(function () {
/*global Piwik */
/* global Piwik */
var piwikTracker = Piwik.getTracker(pkBaseURL + 'piwik.php', settings.idSite);
piwikTracker.trackPageView();

View file

@ -1,37 +1,30 @@
modulejs.define('ext/preview-audio', ['_', '$', 'core/event', 'core/format', 'core/settings', 'ext/preview'], function (_, $, event, format, allsettings, preview) {
var settings = _.extend({
enabled: false,
types: []
}, allsettings['preview-aud']);
enabled: false,
types: []
}, allsettings['preview-aud']);
function preloadAudio(src, callback) {
var $audio = $('<audio/>')
.one('loadedmetadata', function () {
callback($audio);
// setTimeout(function () { callback($img); }, 1000); // for testing
})
.attr('autoplay', 'autoplay')
.attr('controls', 'controls')
.attr('src', src);
.one('loadedmetadata', function () {
callback($audio);
// setTimeout(function () { callback($img); }, 1000); // for testing
})
.attr('autoplay', 'autoplay')
.attr('controls', 'controls')
.attr('src', src);
}
function onEnter(items, idx) {
var currentItems = items;
var currentIdx = idx;
var currentItem = items[idx];
function onAdjustSize() {
var $content = $('#pv-content');
var $audio = $('#pv-aud-audio');
if ($audio.length) {
$audio.css({
left: String(($content.width() - $audio.width()) * 0.5) + 'px',
top: String(($content.height() - $audio.height()) * 0.5) + 'px'
@ -45,7 +38,6 @@ modulejs.define('ext/preview-audio', ['_', '$', 'core/event', 'core/format', 'co
}
function onIdxChange(rel) {
currentIdx = (currentIdx + rel + currentItems.length) % currentItems.length;
currentItem = currentItems[currentIdx];
@ -54,24 +46,29 @@ modulejs.define('ext/preview-audio', ['_', '$', 'core/event', 'core/format', 'co
if ($('#pv-aud-audio').length) {
$('#pv-aud-audio')[0].pause();
}
preloadAudio(currentItem.absHref, function ($preloadedAudio) {
function updateMeta() {
onAdjustSize();
preview.setIndex(currentIdx + 1, currentItems.length);
preview.setRawLink(currentItem.absHref);
}
function swap(nuContent) {
$('#pv-content').empty().append(nuContent.attr('id', 'pv-vid-audio')).fadeIn(200);
// small timeout, so nuContent is visible and therefore its width is available
setTimeout(updateMeta, 10);
}
function onReady($preloadedContent) {
clearTimeout(spinnerTimeout);
preview.showSpinner(false);
$('#pv-content').fadeOut(100, function () {
$('#pv-content').empty().append($preloadedAudio.attr('id', 'pv-aud-audio')).fadeIn(200);
// small timeout, so $preloadedAudio is visible and therefore $preloadedAudio.width is available
setTimeout(function () {
onAdjustSize();
preview.setIndex(currentIdx + 1, currentItems.length);
preview.setRawLink(currentItem.absHref);
}, 10);
swap($preloadedContent);
});
});
}
preloadAudio(currentItem.absHref, onReady);
}
onIdxChange(0);
@ -81,30 +78,25 @@ modulejs.define('ext/preview-audio', ['_', '$', 'core/event', 'core/format', 'co
}
function initItem(item) {
if (item.$view && _.indexOf(settings.types, item.type) >= 0) {
item.$view.find('a').on('click', function (event) {
item.$view.find('a').on('click', function (ev) {
ev.preventDefault();
event.preventDefault();
var matchedEntries = _.compact(_.map($('#items .item'), function (item) {
item = $(item).data('item');
return _.indexOf(settings.types, item.type) >= 0 ? item : null;
var matchedItems = _.compact(_.map($('#items .item'), function (matchedItem) {
matchedItem = $(matchedItem).data('item');
return _.indexOf(settings.types, matchedItem.type) >= 0 ? matchedItem : null;
}));
onEnter(matchedEntries, _.indexOf(matchedEntries, item));
onEnter(matchedItems, _.indexOf(matchedItems, item));
});
}
}
function onViewChanged(added) {
_.each(added, initItem);
}
function init() {
if (!settings.enabled) {
return;
}
@ -112,6 +104,5 @@ modulejs.define('ext/preview-audio', ['_', '$', 'core/event', 'core/format', 'co
event.sub('view.changed', onViewChanged);
}
init();
});

View file

@ -1,10 +1,9 @@
modulejs.define('ext/preview-img', ['_', '$', 'core/event', 'core/server', 'core/settings', 'ext/preview'], function (_, $, event, server, allsettings, preview) {
var settings = _.extend({
enabled: false,
size: null,
types: []
}, allsettings['preview-img']);
enabled: false,
size: null,
types: []
}, allsettings['preview-img']);
var spinnerThreshold = 200;
var spinnerTimeoutId;
var currentItems;
@ -13,7 +12,6 @@ modulejs.define('ext/preview-img', ['_', '$', 'core/event', 'core/server', 'core
function requestSample(href, callback) {
if (!settings.size) {
callback(href);
return;
@ -28,18 +26,14 @@ modulejs.define('ext/preview-img', ['_', '$', 'core/event', 'core/server', 'core
height: 0
}]
}, function (json) {
callback(json && json.thumbs && json.thumbs[0] ? json.thumbs[0] : null);
});
}
function preloadImage(item, callback) {
requestSample(item.absHref, function (src) {
$('<img/>')
.one('load', function (ev) {
callback(item, ev.target);
// for testing
@ -50,7 +44,6 @@ modulejs.define('ext/preview-img', ['_', '$', 'core/event', 'core/server', 'core
}
function onAdjustSize() {
var $content = $('#pv-content');
var $img = $('#pv-img-image');
@ -72,7 +65,6 @@ modulejs.define('ext/preview-img', ['_', '$', 'core/event', 'core/server', 'core
}
function onIdxChange(rel) {
currentIdx = (currentIdx + rel + currentItems.length) % currentItems.length;
currentItem = currentItems[currentIdx];
@ -86,13 +78,11 @@ modulejs.define('ext/preview-img', ['_', '$', 'core/event', 'core/server', 'core
} else {
clearTimeout(spinnerTimeoutId);
spinnerTimeoutId = setTimeout(function () {
preview.showSpinner(true, currentItem.thumbSquare);
}, spinnerThreshold);
}
preloadImage(currentItem, function (item, preloadedImage) {
if (item !== currentItem) {
return;
}
@ -108,7 +98,6 @@ modulejs.define('ext/preview-img', ['_', '$', 'core/event', 'core/server', 'core
}
function onEnter(items, idx) {
currentItems = items;
currentIdx = idx;
preview.setOnIndexChange(onIdxChange);
@ -118,30 +107,25 @@ modulejs.define('ext/preview-img', ['_', '$', 'core/event', 'core/server', 'core
}
function initItem(item) {
if (item.$view && _.indexOf(settings.types, item.type) >= 0) {
item.$view.find('a').on('click', function (ev) {
ev.preventDefault();
var matchedEntries = _.compact(_.map($('#items .item'), function (item) {
item = $(item).data('item');
return _.indexOf(settings.types, item.type) >= 0 ? item : null;
var matchedItems = _.compact(_.map($('#items .item'), function (matchedItem) {
matchedItem = $(matchedItem).data('item');
return _.indexOf(settings.types, matchedItem.type) >= 0 ? matchedItem : null;
}));
onEnter(matchedEntries, _.indexOf(matchedEntries, item));
onEnter(matchedItems, _.indexOf(matchedItems, item));
});
}
}
function onViewChanged(added) {
_.each(added, initItem);
}
function init() {
if (!settings.enabled) {
return;
}

View file

@ -1,9 +1,8 @@
modulejs.define('ext/preview-txt', ['_', '$', 'marked', 'prism', 'core/event', 'core/settings', 'ext/preview'], function (_, $, marked, prism, event, allsettings, preview) {
var settings = _.extend({
enabled: false,
types: {}
}, allsettings['preview-txt']);
enabled: false,
types: {}
}, allsettings['preview-txt']);
var tplText = '<pre id="pv-txt-text" class="highlighted"/>';
var tplMarkdown = '<div id="pv-txt-text" class="markdown"/>';
var spinnerThreshold = 200;
@ -14,26 +13,22 @@ modulejs.define('ext/preview-txt', ['_', '$', 'marked', 'prism', 'core/event', '
function preloadText(item, callback) {
$.ajax({
url: item.absHref,
dataType: 'text'
})
.done(function (content) {
url: item.absHref,
dataType: 'text'
})
.done(function (content) {
callback(item, content);
callback(item, content);
// for testing
// setTimeout(function () { callback(item, content); }, 1000);
})
.fail(function (jqXHR, textStatus) {
callback(item, '[ajax error] ' + textStatus);
});
// for testing
// setTimeout(function () { callback(item, content); }, 1000);
})
.fail(function (jqXHR, textStatus) {
callback(item, '[ajax error] ' + textStatus);
});
}
function onAdjustSize() {
var $content = $('#pv-content');
var $text = $('#pv-txt-text');
@ -43,7 +38,6 @@ modulejs.define('ext/preview-txt', ['_', '$', 'marked', 'prism', 'core/event', '
}
function onIdxChange(rel) {
currentIdx = (currentIdx + rel + currentItems.length) % currentItems.length;
currentItem = currentItems[currentIdx];
@ -60,13 +54,11 @@ modulejs.define('ext/preview-txt', ['_', '$', 'marked', 'prism', 'core/event', '
} else {
clearTimeout(spinnerTimeoutId);
spinnerTimeoutId = setTimeout(function () {
preview.showSpinner(true, currentItem.icon);
}, spinnerThreshold);
}
preloadText(currentItem, function (item, textContent) {
if (item !== currentItem) {
return;
}
@ -104,7 +96,6 @@ modulejs.define('ext/preview-txt', ['_', '$', 'marked', 'prism', 'core/event', '
}
function onEnter(items, idx) {
currentItems = items;
currentIdx = idx;
currentItem = items[idx];
@ -115,30 +106,25 @@ modulejs.define('ext/preview-txt', ['_', '$', 'marked', 'prism', 'core/event', '
}
function initItem(item) {
if (item.$view && _.indexOf(_.keys(settings.types), item.type) >= 0) {
item.$view.find('a').on('click', function (event) {
item.$view.find('a').on('click', function (ev) {
ev.preventDefault();
event.preventDefault();
var matchedEntries = _.compact(_.map($('#items .item'), function (item) {
item = $(item).data('item');
return _.indexOf(_.keys(settings.types), item.type) >= 0 ? item : null;
var matchedItems = _.compact(_.map($('#items .item'), function (matchedItem) {
matchedItem = $(matchedItem).data('item');
return _.indexOf(_.keys(settings.types), matchedItem.type) >= 0 ? matchedItem : null;
}));
onEnter(matchedEntries, _.indexOf(matchedEntries, item));
onEnter(matchedItems, _.indexOf(matchedItems, item));
});
}
}
function onViewChanged(added) {
_.each(added, initItem);
}
function init() {
if (!settings.enabled) {
return;
}

View file

@ -1,37 +1,30 @@
modulejs.define('ext/preview-vid', ['_', '$', 'core/event', 'core/settings', 'ext/preview'], function (_, $, event, allsettings, preview) {
var settings = _.extend({
enabled: false,
types: []
}, allsettings['preview-vid']);
enabled: false,
types: []
}, allsettings['preview-vid']);
function preloadVideo(src, callback) {
var $video = $('<video/>')
.one('loadedmetadata', function () {
callback($video);
// setTimeout(function () { callback($video); }, 1000); // for testing
})
.attr('autoplay', 'autoplay')
.attr('controls', 'controls')
.attr('src', src);
.one('loadedmetadata', function () {
callback($video);
// setTimeout(function () { callback($video); }, 1000); // for testing
})
.attr('autoplay', 'autoplay')
.attr('controls', 'controls')
.attr('src', src);
}
function onEnter(items, idx) {
var currentItems = items;
var currentIdx = idx;
var currentItem = items[idx];
function onAdjustSize() {
var $content = $('#pv-content');
var $vid = $('#pv-vid-video');
if ($vid.length) {
$vid.css({
left: String(($content.width() - $vid.width()) * 0.5) + 'px',
top: String(($content.height() - $vid.height()) * 0.5) + 'px'
@ -46,7 +39,6 @@ modulejs.define('ext/preview-vid', ['_', '$', 'core/event', 'core/settings', 'ex
}
function onIdxChange(rel) {
currentIdx = (currentIdx + rel + currentItems.length) % currentItems.length;
currentItem = currentItems[currentIdx];
@ -55,24 +47,29 @@ modulejs.define('ext/preview-vid', ['_', '$', 'core/event', 'core/settings', 'ex
if ($('#pv-vid-video').length) {
$('#pv-vid-video')[0].pause();
}
preloadVideo(currentItem.absHref, function ($preloadedVideo) {
function updateMeta() {
onAdjustSize();
preview.setIndex(currentIdx + 1, currentItems.length);
preview.setRawLink(currentItem.absHref);
}
function swap(nuContent) {
$('#pv-content').empty().append(nuContent.attr('id', 'pv-vid-video')).fadeIn(200);
// small timeout, so nuContent is visible and therefore its width is available
setTimeout(updateMeta, 10);
}
function onReady($preloadedContent) {
clearTimeout(spinnerTimeout);
preview.showSpinner(false);
$('#pv-content').fadeOut(100, function () {
$('#pv-content').empty().append($preloadedVideo.attr('id', 'pv-vid-video')).fadeIn(200);
// small timeout, so $preloadedVideo is visible and therefore $preloadedVideo.width is available
setTimeout(function () {
onAdjustSize();
preview.setIndex(currentIdx + 1, currentItems.length);
preview.setRawLink(currentItem.absHref);
}, 10);
swap($preloadedContent);
});
});
}
preloadVideo(currentItem.absHref, onReady);
}
onIdxChange(0);
@ -82,30 +79,25 @@ modulejs.define('ext/preview-vid', ['_', '$', 'core/event', 'core/settings', 'ex
}
function initItem(item) {
if (item.$view && _.indexOf(settings.types, item.type) >= 0) {
item.$view.find('a').on('click', function (event) {
item.$view.find('a').on('click', function (ev) {
ev.preventDefault();
event.preventDefault();
var matchedEntries = _.compact(_.map($('#items .item'), function (item) {
item = $(item).data('item');
return _.indexOf(settings.types, item.type) >= 0 ? item : null;
var matchedItems = _.compact(_.map($('#items .item'), function (matchedItem) {
matchedItem = $(matchedItem).data('item');
return _.indexOf(settings.types, matchedItem.type) >= 0 ? matchedItem : null;
}));
onEnter(matchedEntries, _.indexOf(matchedEntries, item));
onEnter(matchedItems, _.indexOf(matchedItems, item));
});
}
}
function onViewChanged(added) {
_.each(added, initItem);
}
function init() {
if (!settings.enabled) {
return;
}
@ -113,6 +105,5 @@ modulejs.define('ext/preview-vid', ['_', '$', 'core/event', 'core/settings', 'ex
event.sub('view.changed', onViewChanged);
}
init();
});

View file

@ -1,8 +1,7 @@
modulejs.define('ext/preview', ['_', '$', 'core/resource', 'core/settings', 'core/store'], function (_, $, resource, allsettings, store) {
var settings = _.extend({
enabled: true
}, allsettings.preview);
enabled: true
}, allsettings.preview);
var $window = $(window);
var tplOverlay =
'<div id="pv-overlay">' +
@ -30,7 +29,6 @@ modulejs.define('ext/preview', ['_', '$', 'core/resource', 'core/settings', 'cor
function adjustSize() {
var winWidth = $window.width();
var winHeight = $window.height();
var $container = $('#pv-content');
@ -63,53 +61,40 @@ modulejs.define('ext/preview', ['_', '$', 'core/resource', 'core/settings', 'cor
}
}
function onEnter() {
setLabels([]);
$('#pv-content').empty();
$('#pv-overlay').stop(true, true).fadeIn(200);
$window.on('keydown', onKeydown);
adjustSize();
}
function onExit() {
$window.off('keydown', onKeydown);
$('#pv-overlay').stop(true, true).fadeOut(200, function () {
$('#pv-content').empty();
setLabels([]);
function setLabels(labels) {
$('#pv-buttons .bar-left').remove();
_.each(labels, function (label) {
$('<li/>')
.addClass('bar-left bar-label')
.text(label)
.appendTo('#pv-buttons');
});
}
function onNext() {
if (_.isFunction(onIndexChange)) {
onIndexChange(1);
}
}
function onPrevious() {
if (_.isFunction(onIndexChange)) {
onIndexChange(-1);
}
}
function userAlive() {
clearTimeout(userAliveTimeoutId);
$('#pv-overlay .hof').stop(true, true).fadeIn(200);
if (isFullscreen) {
userAliveTimeoutId = setTimeout(function () {
$('#pv-overlay .hof').stop(true, true).fadeOut(2000);
}, 2000);
}
}
function onFullscreen() {
isFullscreen = !isFullscreen;
store.put(storekey, isFullscreen);
@ -118,7 +103,6 @@ modulejs.define('ext/preview', ['_', '$', 'core/resource', 'core/settings', 'cor
}
function onKeydown(ev) {
var key = ev.which;
if (key === 27) { // esc
@ -140,8 +124,23 @@ modulejs.define('ext/preview', ['_', '$', 'core/resource', 'core/settings', 'cor
}
}
function setIndex(idx, total) {
function onEnter() {
setLabels([]);
$('#pv-content').empty();
$('#pv-overlay').stop(true, true).fadeIn(200);
$window.on('keydown', onKeydown);
adjustSize();
}
function onExit() {
$window.off('keydown', onKeydown);
$('#pv-overlay').stop(true, true).fadeOut(200, function () {
$('#pv-content').empty();
setLabels([]);
});
}
function setIndex(idx, total) {
if (_.isNumber(idx)) {
$('#pv-bar-idx').text(String(idx) + (_.isNumber(total) ? '/' + String(total) : '')).show();
} else {
@ -150,7 +149,6 @@ modulejs.define('ext/preview', ['_', '$', 'core/resource', 'core/settings', 'cor
}
function setRawLink(href) {
if (href) {
$('#pv-bar-raw').show().find('a').attr('href', href);
} else {
@ -158,30 +156,15 @@ modulejs.define('ext/preview', ['_', '$', 'core/resource', 'core/settings', 'cor
}
}
function setLabels(labels) {
$('#pv-buttons .bar-left').remove();
_.each(labels, function (label) {
$('<li/>')
.addClass('bar-left bar-label')
.text(label)
.appendTo('#pv-buttons');
});
}
function setOnIndexChange(fn) {
onIndexChange = fn;
}
function setOnAdjustSize(fn) {
onAdjustSize = fn;
}
function showSpinner(show, src, millis) {
if (!_.isNumber(millis)) {
millis = 300;
}
@ -204,12 +187,10 @@ modulejs.define('ext/preview', ['_', '$', 'core/resource', 'core/settings', 'cor
}
function isSpinnerVisible() {
return spinnerVisible;
}
function init() {
if (!settings.enabled) {
return;
}
@ -226,7 +207,6 @@ modulejs.define('ext/preview', ['_', '$', 'core/resource', 'core/settings', 'cor
.on('keydown', onKeydown)
.on('mousemove mousedown', userAlive)
.on('click mousedown mousemove keydown keypress', function (ev) {
if (ev.type === 'click' && (ev.target.id === 'pv-overlay' || ev.target.id === 'pv-content')) {
onExit();
}

View file

@ -1,10 +1,9 @@
modulejs.define('ext/search', ['_', '$', 'core/event', 'core/location', 'core/resource', 'core/server', 'core/settings', 'core/util', 'model/item', 'view/view'], function (_, $, event, location, resource, server, allsettings, util, Item, view) {
var settings = _.extend({
enabled: false,
advanced: false,
debounceTime: 300
}, allsettings.search);
enabled: false,
advanced: false,
debounceTime: 300
}, allsettings.search);
var template =
'<div id="search" class="tool">' +
'<img src="' + resource.image('search') + '" alt="search"/>' +
@ -17,7 +16,6 @@ modulejs.define('ext/search', ['_', '$', 'core/event', 'core/location', 'core/re
function search(pattern) {
pattern = pattern || '';
if (pattern === prevPattern) {
return;
@ -38,18 +36,15 @@ modulejs.define('ext/search', ['_', '$', 'core/event', 'core/location', 'core/re
pattern: pattern
}
}, function (response) {
$search.removeClass('pending');
view.setHint('noMatch');
view.setItems(_.map(response.search, function (item) {
return Item.get(item);
}));
});
}
function update() {
if (inputIsVisible) {
$search.addClass('active');
$input.focus();
@ -61,20 +56,17 @@ modulejs.define('ext/search', ['_', '$', 'core/event', 'core/location', 'core/re
}
function toggle() {
inputIsVisible = !inputIsVisible;
update();
}
function reset() {
inputIsVisible = false;
$input.val('');
update();
}
function init() {
if (!settings.enabled) {
return;
}

View file

@ -1,10 +1,9 @@
modulejs.define('ext/select', ['_', '$', 'core/event', 'core/resource', 'core/settings'], function (_, $, event, resource, allsettings) {
var settings = _.extend({
enabled: false,
clickndrag: false,
checkboxes: false
}, allsettings.select);
enabled: false,
clickndrag: false,
checkboxes: false
}, allsettings.select);
var template = '<span class="selector"><img src="' + resource.image('selected') + '" alt="selected"/></span>';
var x = 0;
var y = 0;
@ -21,30 +20,26 @@ modulejs.define('ext/select', ['_', '$', 'core/event', 'core/resource', 'core/se
function publish() {
var items = _.map($('#items .item.selected'), function (itemElement) {
return $(itemElement).data('item');
});
event.pub('selection', items);
}
function elementRect($element) {
if (!$element.is(':visible')) {
return null;
}
var offset = $element.offset();
var l = offset.left;
var t = offset.top;
var w = $element.outerWidth();
var h = $element.outerHeight();
return {l: l, t: t, w: w, h: h, r: l + w, b: t + h};
var elL = offset.left;
var elT = offset.top;
var elW = $element.outerWidth();
var elH = $element.outerHeight();
return {l: elL, t: elT, w: elW, h: elH, r: elL + elW, b: elT + elH};
}
function doOverlap(rect1, rect2) {
if (!rect1 || !rect2) {
return false;
}
@ -56,11 +51,10 @@ modulejs.define('ext/select', ['_', '$', 'core/event', 'core/resource', 'core/se
var width = right - left;
var height = bottom - top;
return (width >= 0 && height >= 0);
return width >= 0 && height >= 0;
}
function selectionUpdate(ev) {
l = Math.min(x, ev.pageX);
t = Math.min(y, ev.pageY);
w = Math.abs(x - ev.pageX);
@ -86,7 +80,6 @@ modulejs.define('ext/select', ['_', '$', 'core/event', 'core/resource', 'core/se
var selRect = elementRect($selectionRect);
$('#items .item').removeClass('selecting').each(function () {
var $item = $(this);
var inter = doOverlap(selRect, elementRect($item.find('a')));
@ -97,7 +90,6 @@ modulejs.define('ext/select', ['_', '$', 'core/event', 'core/resource', 'core/se
}
function selectionEnd(ev) {
$document.off('mousemove', selectionUpdate);
if (!isDragSelect) {
@ -112,23 +104,20 @@ modulejs.define('ext/select', ['_', '$', 'core/event', 'core/resource', 'core/se
$html.removeClass('drag-select');
$selectionRect
.stop(true, true)
.animate(
{
left: l + w * 0.5 * shrink,
top: t + h * 0.5 * shrink,
width: w * (1 - shrink),
height: h * (1 - shrink),
opacity: 0
},
300,
function () {
$selectionRect.hide();
}
);
.animate({
left: l + w * 0.5 * shrink,
top: t + h * 0.5 * shrink,
width: w * (1 - shrink),
height: h * (1 - shrink),
opacity: 0
},
300,
function () {
$selectionRect.hide();
});
}
function selectionStart(ev) {
// only on left button and don't block scrollbar
if (ev.button !== 0 || ev.offsetX >= $('#content').width() - 14) {
return;
@ -145,7 +134,6 @@ modulejs.define('ext/select', ['_', '$', 'core/event', 'core/resource', 'core/se
}
function onSelectorClick(ev) {
ev.stopImmediatePropagation();
ev.preventDefault();
@ -154,7 +142,6 @@ modulejs.define('ext/select', ['_', '$', 'core/event', 'core/resource', 'core/se
}
function addCheckbox(item) {
if (item.$view && !item.isCurrentParentFolder()) {
$(template)
.on('click', onSelectorClick)
@ -163,13 +150,11 @@ modulejs.define('ext/select', ['_', '$', 'core/event', 'core/resource', 'core/se
}
function onViewChanged(added, removed) {
if (settings.checkboxes) {
_.each(added, addCheckbox);
}
_.each(removed, function (item) {
if (item.$view) {
item.$view.removeClass('selected');
}
@ -179,8 +164,7 @@ modulejs.define('ext/select', ['_', '$', 'core/event', 'core/resource', 'core/se
}
function init() {
if (!settings.enabled || (!settings.clickndrag && !settings.checkboxes)) {
if (!settings.enabled || !settings.clickndrag && !settings.checkboxes) {
return;
}
@ -192,12 +176,10 @@ modulejs.define('ext/select', ['_', '$', 'core/event', 'core/resource', 'core/se
$('#content')
.on('mousedown', selectionStart)
.on('drag dragstart', function (ev) {
ev.stopImmediatePropagation();
ev.preventDefault();
})
.on('click', function () {
$('#items .item').removeClass('selected');
publish();
});

View file

@ -1,19 +1,17 @@
modulejs.define('ext/sort', ['_', '$', 'core/event', 'core/resource', 'core/settings', 'core/store', 'core/util'], function (_, $, event, resource, allsettings, store, util) {
var settings = _.extend({
enabled: false,
column: 0,
reverse: false,
ignorecase: true,
natural: false,
folders: 0
}, allsettings.sort);
enabled: false,
column: 0,
reverse: false,
ignorecase: true,
natural: false,
folders: 0
}, allsettings.sort);
var storekey = 'ext/sort';
var template = '<img src="' + resource.image('sort') + '" class="sort" alt="sort order" />';
function getType(item) {
var $item = $(item);
if ($item.hasClass('folder-parent')) {
@ -31,37 +29,32 @@ modulejs.define('ext/sort', ['_', '$', 'core/event', 'core/resource', 'core/sett
}
function getName(item) {
return $(item).find('.label').text();
}
function getTime(item) {
return $(item).find('.date').data('time');
}
function getSize(item) {
return $(item).find('.size').data('bytes');
}
var columnGetters = {
0: getName,
1: getTime,
2: getSize
};
0: getName,
1: getTime,
2: getSize
};
var columnClasses = {
0: 'label',
1: 'date',
2: 'size'
};
0: 'label',
1: 'date',
2: 'size'
};
function cmpFn(getValue, reverse, ignorecase, natural) {
return function (item1, item2) {
var res;
var val1;
var val2;
@ -90,7 +83,6 @@ modulejs.define('ext/sort', ['_', '$', 'core/event', 'core/resource', 'core/sett
}
function sortItems(column, reverse) {
var $headers = $('#items li.header a');
var $header = $('#items li.header a.' + columnClasses[column]);
var fn = cmpFn(columnGetters[column], reverse, settings.ignorecase, column === 0 && settings.natural);
@ -111,7 +103,6 @@ modulejs.define('ext/sort', ['_', '$', 'core/event', 'core/resource', 'core/sett
}
function onContentChanged() {
var order = store.get(storekey);
var column = order && order.column || settings.column;
var reverse = order && order.reverse || settings.reverse;
@ -120,7 +111,6 @@ modulejs.define('ext/sort', ['_', '$', 'core/event', 'core/resource', 'core/sett
}
function init() {
if (!settings.enabled) {
return;
}

View file

@ -1,19 +1,17 @@
modulejs.define('ext/thumbnails', ['_', 'core/event', 'core/server', 'core/settings'], function (_, event, server, allsettings) {
var settings = _.extend({
enabled: false,
img: ['img-bmp', 'img-gif', 'img-ico', 'img-jpg', 'img-png'],
mov: ['vid-avi', 'vid-flv', 'vid-mkv', 'vid-mov', 'vid-mp4', 'vid-mpg', 'vid-webm'],
doc: ['x-pdf', 'x-ps'],
delay: 1,
size: 100,
exif: false
}, allsettings.thumbnails);
enabled: false,
img: ['img-bmp', 'img-gif', 'img-ico', 'img-jpg', 'img-png'],
mov: ['vid-avi', 'vid-flv', 'vid-mkv', 'vid-mov', 'vid-mp4', 'vid-mpg', 'vid-webm'],
doc: ['x-pdf', 'x-ps'],
delay: 1,
size: 100,
exif: false
}, allsettings.thumbnails);
var landscapeRatio = 4 / 3;
function queueItem(queue, item) {
var type = null;
if (_.contains(settings.img, item.type)) {
@ -34,7 +32,6 @@ modulejs.define('ext/thumbnails', ['_', 'core/event', 'core/server', 'core/setti
href: item.absHref,
ratio: 1,
callback: function (src) {
if (src && item.$view) {
item.thumbSquare = src;
item.$view.find('.icon.square img').addClass('thumb').attr('src', src);
@ -51,7 +48,6 @@ modulejs.define('ext/thumbnails', ['_', 'core/event', 'core/server', 'core/setti
href: item.absHref,
ratio: landscapeRatio,
callback: function (src) {
if (src && item.$view) {
item.thumbRational = src;
item.$view.find('.icon.landscape img').addClass('thumb').attr('src', src);
@ -62,9 +58,7 @@ modulejs.define('ext/thumbnails', ['_', 'core/event', 'core/server', 'core/setti
}
function requestQueue(queue) {
var thumbs = _.map(queue, function (req) {
return {
type: req.type,
href: req.href,
@ -77,20 +71,16 @@ modulejs.define('ext/thumbnails', ['_', 'core/event', 'core/server', 'core/setti
action: 'get',
thumbs: thumbs
}, function (json) {
_.each(queue, function (req, idx) {
req.callback(json && json.thumbs ? json.thumbs[idx] : null);
});
});
}
function handleItems(items) {
var queue = [];
_.each(items, function (item) {
queueItem(queue, item);
});
@ -100,15 +90,12 @@ modulejs.define('ext/thumbnails', ['_', 'core/event', 'core/server', 'core/setti
}
function onViewChanged(added) {
setTimeout(function () {
handleItems(added);
}, settings.delay);
}
function init() {
if (!settings.enabled) {
return;
}

View file

@ -1,11 +1,9 @@
modulejs.define('ext/title', ['_', 'core/event', 'core/settings'], function (_, event, allsettings) {
var settings = _.extend({
enabled: false
}, allsettings.title);
enabled: false
}, allsettings.title);
function onLocationChanged(item) {
var labels = _.pluck(item.getCrumb(), 'label');
var title = labels.join(' > ');
@ -17,7 +15,6 @@ modulejs.define('ext/title', ['_', 'core/event', 'core/settings'], function (_,
}
function init() {
if (!settings.enabled) {
return;
}

View file

@ -1,12 +1,11 @@
modulejs.define('ext/tree', ['_', '$', 'core/event', 'core/location', 'core/resource', 'core/settings', 'core/store', 'core/util'], function (_, $, event, location, resource, allsettings, store, util) {
var settings = _.extend({
enabled: false,
show: true,
maxSubfolders: 50,
naturalSort: false,
ignorecase: true
}, allsettings.tree);
enabled: false,
show: true,
maxSubfolders: 50,
naturalSort: false,
ignorecase: true
}, allsettings.tree);
var template =
'<div class="item">' +
'<span class="indicator none">' +
@ -28,7 +27,6 @@ modulejs.define('ext/tree', ['_', '$', 'core/event', 'core/location', 'core/reso
function cmpFn(item1, item2) {
var val1 = item1.label;
var val2 = item2.label;
@ -41,7 +39,6 @@ modulejs.define('ext/tree', ['_', '$', 'core/event', 'core/location', 'core/reso
}
function update(item) {
var $html = $(template);
var $indicator = $html.find('.indicator');
var $a = $html.find('a');
@ -57,15 +54,13 @@ modulejs.define('ext/tree', ['_', '$', 'core/event', 'core/location', 'core/reso
$label.text(item.label);
if (item.isFolder()) {
var subfolders = item.getSubfolders();
// indicator
if ((item.isManaged && !item.isContentFetched) || subfolders.length) {
if (item.isManaged && !item.isContentFetched || subfolders.length) {
$indicator.removeClass('none');
if ((item.isManaged && !item.isContentFetched)) {
if (item.isManaged && !item.isContentFetched) {
$indicator.addClass('unknown');
} else if (item.isContentVisible) {
$indicator.addClass('open');
@ -114,52 +109,41 @@ modulejs.define('ext/tree', ['_', '$', 'core/event', 'core/location', 'core/reso
}
function createOnIndicatorClick() {
function slide(item, $indicator, $content, down) {
item.isContentVisible = down;
$indicator.removeClass('open close').addClass(down ? 'open' : 'close');
$content[down ? 'slideDown' : 'slideUp']();
}
return function () {
var $indicator = $(this);
var $item = $indicator.closest('.item');
var item = $item.data('item');
var $content = $item.find('> ul.content');
if ($indicator.hasClass('unknown')) {
item.fetchContent(function (item) {
item.fetchContent(function () {
item.isContentVisible = false;
var $item = update(item);
var $indicator = $item.find('> .indicator');
var $content = $item.find('> ul.content');
$item = update(item);
$indicator = $item.find('> .indicator');
$content = $item.find('> ul.content');
if (!$indicator.hasClass('none')) {
slide(item, $indicator, $content, true);
}
});
} else if ($indicator.hasClass('open')) {
slide(item, $indicator, $content, false);
} else if ($indicator.hasClass('close')) {
slide(item, $indicator, $content, true);
}
};
}
function fetchTree(item, callback) {
item.isContentVisible = true;
item.fetchContent(function (item) {
item.fetchContent(function () {
if (item.parent) {
fetchTree(item.parent, callback);
} else {
@ -169,7 +153,6 @@ modulejs.define('ext/tree', ['_', '$', 'core/event', 'core/location', 'core/reso
}
function updateSettings() {
if (store.get(storekey)) {
$('#view-tree').addClass('active');
$('#tree').show();
@ -180,16 +163,13 @@ modulejs.define('ext/tree', ['_', '$', 'core/event', 'core/location', 'core/reso
}
function onLocationChanged(item) {
fetchTree(item, function (root) {
$('#tree').append(update(root));
updateSettings();
});
}
function init() {
if (!settings.enabled) {
return;
}
@ -202,14 +182,13 @@ modulejs.define('ext/tree', ['_', '$', 'core/event', 'core/location', 'core/reso
.appendTo('#sidebar')
.find('#view-tree')
.on('click', function (ev) {
store.put(storekey, !store.get(storekey));
updateSettings();
ev.preventDefault();
});
// ensure stored value is boolean, otherwise set default
if (typeof (store.get(storekey)) !== 'boolean') {
if (typeof store.get(storekey) !== 'boolean') {
store.put(storekey, settings.show);
}
updateSettings();