Refactores localization.

This commit is contained in:
Lars Jung 2012-03-07 17:29:20 +01:00
parent 1152c00018
commit a796bd606f
13 changed files with 286 additions and 267 deletions

View file

@ -20,8 +20,8 @@
},
fetchStatus = function (pathname, callback) {
if (h5ai.core.settings.folderStatus[pathname]) {
callback(h5ai.core.settings.folderStatus[pathname]);
if (h5ai.settings.folderStatus[pathname]) {
callback(h5ai.settings.folderStatus[pathname]);
return;
} else if (pathnameStatusCache[pathname]) {
callback(pathnameStatusCache[pathname]);
@ -30,13 +30,13 @@
$.ajax({
url: pathname,
type: "HEAD",
type: 'HEAD',
complete: function (xhr) {
var status = xhr.status;
if (status === 200 && contentTypeRegEx.test(xhr.getResponseHeader("Content-Type"))) {
status = "h5ai";
if (status === 200 && contentTypeRegEx.test(xhr.getResponseHeader('Content-Type'))) {
status = 'h5ai';
}
pathnameStatusCache[pathname] = status;
callback(status);
@ -48,7 +48,7 @@
if (path.isFolder && !path.isParentFolder && path.status === undefined) {
fetchStatus(path.absHref, function (status) {
if (status !== "h5ai") {
if (status !== 'h5ai') {
path.status = status;
}
h5ai.html.updateHtml(path);
@ -66,15 +66,15 @@
fetchStatus(pathname, function (status) {
if (status !== "h5ai") {
if (status !== 'h5ai') {
callback(status, {});
return;
}
$.ajax({
url: pathname,
type: "GET",
dataType: "html",
type: 'GET',
dataType: 'html',
error: function (xhr) {
callback(xhr.status, {}); // since it was checked before this should never happen
@ -83,12 +83,12 @@
var content = {};
if (!contentTypeRegEx.test(xhr.getResponseHeader("Content-Type"))) {
if (!contentTypeRegEx.test(xhr.getResponseHeader('Content-Type'))) {
callback(xhr.status, {}); // since it was checked before this should never happen
return;
}
$(html).find("#table td").closest("tr").each(function () {
$(html).find('#table td').closest('tr').each(function () {
var path = getPath(pathname, this);
@ -97,7 +97,7 @@
updatePath(path);
}
});
callback("h5ai", content);
callback('h5ai', content);
}
});
});

View file

@ -18,7 +18,7 @@
},
init = function () {
qrCodesSize = h5ai.core.settings.qrCodesSize;
qrCodesSize = h5ai.settings.qrCodesSize;
if (!qrCodesSize) {
return;
}

View file

@ -1,38 +1,8 @@
(function (window, $, h5ai, config) {
(function (window, $, h5ai) {
var $window = $(window),
defaults = {
store: {
viewmode: "h5ai.pref.viewmode",
lang: "h5ai.pref.lang"
},
callbacks: {
pathClick: []
},
rootAbsHref: "/",
h5aiAbsHref: "/_h5ai/",
customHeader: null,
customFooter: null,
viewmodes: ["details", "icons"],
sortorder: "na",
showTree: true,
slideTree: true,
folderStatus: {},
lang: "en",
useBrowserLang: true,
setParentFolderLabels: true,
linkHoverStates: true,
dateFormat: "yyyy-MM-dd HH:mm",
showThumbs: false,
thumbTypes: ["bmp", "gif", "ico", "image", "jpg", "png", "tiff"],
zippedDownload: false,
qrCodesSize: null,
showFilter: false
},
settings = $.extend({}, defaults, config.options),
currentDateFormat = settings.dateFormat,
settings = h5ai.settings,
extToFileType = (function (types) {
var map = {};
$.each(types, function (type, exts) {
@ -41,7 +11,7 @@
});
});
return map;
}(config.types)),
}(h5ai.config.types)),
hash = function (obj) {
if ($.isPlainObject(obj)) {
@ -248,97 +218,6 @@
});
}
},
formatDates = function (dateFormat) {
if (dateFormat) {
currentDateFormat = dateFormat;
}
$("#extended .entry .date").each(function () {
var $this = $(this),
time = $this.data("time"),
formattedDate = time ? new Date(time).toString(currentDateFormat) : "";
$this.text(formattedDate);
});
},
localize = function (langs, lang, useBrowserLang) {
var storedLang = amplify.store(settings.store.lang),
browserLang, selected, key;
if (langs[storedLang]) {
lang = storedLang;
} else if (useBrowserLang) {
browserLang = navigator.language || navigator.browserLanguage;
if (browserLang) {
if (langs[browserLang]) {
lang = browserLang;
} else if (browserLang.length > 2 && langs[browserLang.substr(0, 2)]) {
lang = browserLang.substr(0, 2);
}
}
}
if (!langs[lang]) {
lang = "en";
}
selected = langs[lang];
if (selected) {
$.each(selected, function (key, value) {
$(".l10n-" + key).text(value);
});
$(".lang").text(lang);
$(".langOption").removeClass("current");
$(".langOption." + lang).addClass("current");
h5ai.core.hash({lang: lang});
}
formatDates(selected.dateFormat || settings.dateFormat);
},
initLangSelector = function (langs) {
var $langOptions = $("#langSelector .langOptions"),
sortedLangsKeys = [],
$ul;
$.each(langs, function (lang) {
sortedLangsKeys.push(lang);
});
sortedLangsKeys.sort();
$ul = $("<ul />");
$.each(sortedLangsKeys, function (idx, lang) {
$("<li class='langOption' />")
.addClass(lang)
.text(lang + " - " + langs[lang].lang)
.appendTo($ul)
.click(function () {
amplify.store(settings.store.lang, lang);
localize(langs, lang, false);
});
});
$langOptions
.append($ul)
.scrollpanel();
$("#langSelector").hover(
function () {
$langOptions
.css("top", "-" + $langOptions.outerHeight() + "px")
.stop(true, true)
.fadeIn();
$langOptions.get(0).updateScrollbar();
},
function () {
$langOptions
.stop(true, true)
.fadeOut();
}
);
},
onIndicatorClick = function (event) {
var $indicator = $(this),
@ -414,15 +293,12 @@
initTopSpace();
initTree();
linkHoverStates();
initLangSelector(config.langs);
localize(config.langs, settings.lang, settings.useBrowserLang);
formatSizes();
setTotals();
initIndicators();
};
h5ai.core = {
settings: settings,
hash: hash,
api: api,
image: image,
@ -430,9 +306,8 @@
shiftTree: shiftTree,
linkHoverStates: linkHoverStates,
initIndicators: initIndicators,
formatDates: formatDates,
getFileType: getFileType,
init: init
};
}(window, jQuery, h5ai, H5AI_CONFIG));
}(window, jQuery, h5ai));

View file

@ -51,9 +51,9 @@
},
customize = function () {
if (h5ai.core.settings.customHeader) {
if (h5ai.settings.customHeader) {
$.ajax({
url: h5ai.core.settings.customHeader,
url: h5ai.settings.customHeader,
dataType: "html",
success: function (data) {
$("#content > header").append($(data)).show();
@ -61,9 +61,9 @@
});
}
if (h5ai.core.settings.customFooter) {
if (h5ai.settings.customFooter) {
$.ajax({
url: h5ai.core.settings.customFooter,
url: h5ai.settings.customFooter,
dataType: "html",
success: function (data) {
$("#content > footer").prepend($(data)).show();
@ -117,7 +117,7 @@
initExtendedView();
customize();
h5ai.connector.updatePaths();
if (h5ai.core.settings.showTree) {
if (h5ai.settings.showTree) {
populateTree();
}
};

View file

@ -59,15 +59,15 @@
},
init = function () {
if (h5ai.core.settings.showFilter) {
$("<li id='filter'><span class='element'><img alt='filter' /><input type='text' value='' placeholder='filter' /></span></li>")
if (h5ai.settings.showFilter) {
$('<li id="filter"><span class="element"><img alt="filter" /><input type="text" value="" placeholder="filter" /></span></li>')
.on('click', function () {
var $input = $(this).find('input');
$input.focus();
})
.find("img").attr("src", h5ai.core.image("filter")).end()
.find("input")
.find('img').attr('src', h5ai.core.image('filter')).end()
.find('input')
.on('focus', function () {
checkState(true);
@ -89,7 +89,7 @@
checkState($input.is(':focus'));
})
.end()
.appendTo($("#navbar"));
.appendTo($('#navbar'));
var initialFilter = h5ai.core.hash('filter');
if (initialFilter) {

View file

@ -1,40 +1,75 @@
(function ($) {
(function ($, config) {
'use strict';
/*jslint browser: true, confusion: true, regexp: true, vars: true, white: true */
/*global Modernizr, jQuery, amplify, Base64, H5AI_CONFIG */
var h5ai = function () {
var defaults = {
store: {
viewmode: 'h5ai.pref.viewmode',
lang: 'h5ai.pref.lang'
},
callbacks: {
pathClick: []
},
rootAbsHref: '/',
h5aiAbsHref: '/_h5ai/',
customHeader: null,
customFooter: null,
viewmodes: ['details', 'icons'],
sortorder: 'na',
showTree: true,
slideTree: true,
folderStatus: {},
lang: 'en',
useBrowserLang: true,
setParentFolderLabels: true,
linkHoverStates: true,
dateFormat: 'yyyy-MM-dd HH:mm',
showThumbs: false,
thumbTypes: ['bmp', 'gif', 'ico', 'image', 'jpg', 'png', 'tiff'],
zippedDownload: false,
qrCodesSize: null,
showFilter: false
},
init = function () {
h5ai = function () {
var $html = $('html');
h5ai.isJs = $html.hasClass('h5ai-js');
h5ai.isPhp = $html.hasClass('h5ai-php');
if (h5ai.isJs) {
h5ai.extended.init();
}
h5ai.core.init();
h5ai.sort.init();
h5ai.finder.init();
h5ai.zippedDownload.init();
h5ai.context.init();
if (h5ai.isPhp) {
$('#tree').scrollpanel();
h5ai.core.shiftTree(false, true);
}
// publish for testing
window.h5ai = h5ai;
};
h5ai.config = config;
h5ai.settings = $.extend({}, defaults, config.options);
h5ai.init = function () {
var $html = $('html');
h5ai.isJs = $html.hasClass('h5ai-js');
h5ai.isPhp = $html.hasClass('h5ai-php');
if (h5ai.isJs) {
h5ai.extended.init();
}
h5ai.core.init();
h5ai.localize.init();
h5ai.sort.init();
h5ai.finder.init();
h5ai.zippedDownload.init();
h5ai.context.init();
if (h5ai.isPhp) {
$('#tree').scrollpanel();
h5ai.core.shiftTree(false, true);
}
// publish for testing
window.h5ai = h5ai;
};
// @include "Util.js"
// @include "Core.js"
// @include "Localize.js"
// @include "Sort.js"
// @include "ZippedDownload.js"
// @include "Finder.js"
@ -45,6 +80,6 @@
// @include "Html.js"
// @include "Extended.js"
$(init);
$(h5ai.init);
}(jQuery));
}(jQuery, H5AI_CONFIG));

View file

@ -52,7 +52,7 @@
updateExtendedHtml = function (path) {
var $html, $a, $label,
formattedDate = path.date ? path.date.toString(h5ai.core.settings.dateFormat) : "",
formattedDate = path.date ? path.date.toString(h5ai.settings.dateFormat) : "",
imgClass = "",
icon16 = h5ai.core.icon(path.type),
icon48 = h5ai.core.icon(path.type, true);
@ -69,7 +69,7 @@
$html.data("status", path.status);
}
if (h5ai.core.settings.showThumbs === true && $.inArray(path.type, h5ai.core.settings.thumbTypes) >= 0) {
if (h5ai.settings.showThumbs === true && $.inArray(path.type, h5ai.settings.thumbTypes) >= 0) {
imgClass = "class='thumb'";
var escapedHref = path.absHref.replace(/'/g, "%27").replace(/"/g, "%22");
icon16 = h5ai.core.api() + "?action=thumb&href=" + escapedHref + "&width=16&height=16&mode=square";
@ -113,7 +113,7 @@
);
if (path.isParentFolder) {
if (!h5ai.core.settings.setParentFolderLabels) {
if (!h5ai.settings.setParentFolderLabels) {
$label.addClass("l10n-parentDirectory");
}
$html.addClass("folder-parent");

View file

@ -0,0 +1,108 @@
(function ($, h5ai) {
var settings = h5ai.settings,
langs = h5ai.config.langs,
currentDateFormat = settings.dateFormat,
formatDates = function (dateFormat) {
if (dateFormat) {
currentDateFormat = dateFormat;
}
$('#extended .entry .date').each(function () {
var $this = $(this),
time = $this.data('time'),
formattedDate = time ? new Date(time).toString(currentDateFormat) : '';
$this.text(formattedDate);
});
},
localize = function (langs, lang, useBrowserLang) {
var storedLang = amplify.store(settings.store.lang),
browserLang, selected, key;
if (langs[storedLang]) {
lang = storedLang;
} else if (useBrowserLang) {
browserLang = navigator.language || navigator.browserLanguage;
if (browserLang) {
if (langs[browserLang]) {
lang = browserLang;
} else if (browserLang.length > 2 && langs[browserLang.substr(0, 2)]) {
lang = browserLang.substr(0, 2);
}
}
}
if (!langs[lang]) {
lang = 'en';
}
selected = langs[lang];
if (selected) {
$.each(selected, function (key, value) {
$('.l10n-' + key).text(value);
});
$('.lang').text(lang);
$('.langOption').removeClass('current');
$('.langOption.' + lang).addClass('current');
h5ai.core.hash({lang: lang});
}
formatDates(selected.dateFormat || settings.dateFormat);
},
initLangSelector = function (langs) {
var $langOptions = $('#langSelector .langOptions'),
sortedLangsKeys = [],
$ul;
$.each(langs, function (lang) {
sortedLangsKeys.push(lang);
});
sortedLangsKeys.sort();
$ul = $('<ul />');
$.each(sortedLangsKeys, function (idx, lang) {
$('<li class="langOption" />')
.addClass(lang)
.text(lang + ' - ' + langs[lang].lang)
.appendTo($ul)
.click(function () {
amplify.store(settings.store.lang, lang);
localize(langs, lang, false);
});
});
$langOptions
.append($ul)
.scrollpanel();
$('#langSelector').hover(
function () {
$langOptions
.css('top', '-' + $langOptions.outerHeight() + 'px')
.stop(true, true)
.fadeIn();
$langOptions.get(0).updateScrollbar();
},
function () {
$langOptions
.stop(true, true)
.fadeOut();
}
);
},
init = function () {
initLangSelector(langs);
localize(langs, settings.lang, settings.useBrowserLang);
};
h5ai.localize = {
init: init
};
}(jQuery, h5ai));

View file

@ -18,7 +18,7 @@
// path.isCurrentFolder: undefined
// path.isDomain: undefined
path.status = undefined; // undefined, "h5ai" or HTTP response code
path.status = undefined; // undefined, 'h5ai' or HTTP response code
path.content = undefined; // associative array path.absHref -> path
path.html = {
$crumb: undefined,
@ -28,30 +28,30 @@
path.treeOpen = false;
if (!h5ai.util.pathEndsWithSlash(folder)) {
folder += "/";
folder += '/';
}
if (tableRow) {
$tds = $(tableRow).find("td");
$a = $tds.eq(1).find("a");
$tds = $(tableRow).find('td');
$a = $tds.eq(1).find('a');
date = Date.parse($tds.eq(2).text());
size = h5ai.util.parseSize($tds.eq(3).text());
path.parentFolder = folder;
path.label = $a.text();
path.type = h5ai.util.pathEndsWithSlash(path.label) ? "folder" : h5ai.core.getFileType(path.label);
path.href = $a.attr("href");
path.type = h5ai.util.pathEndsWithSlash(path.label) ? 'folder' : h5ai.core.getFileType(path.label);
path.href = $a.attr('href');
path.time = date ? date.getTime() : 0;
path.size = size;
} else {
splits = h5ai.util.splitPath(folder);
path.parentFolder = splits.parent || "";
path.parentFolder = splits.parent || '';
path.label = h5ai.util.checkedDecodeUri(splits.name);
if (path.label === "/") {
if (path.label === '/') {
path.label = h5ai.util.checkedDecodeUri(document.domain);
}
path.type = "folder";
path.type = 'folder';
path.href = splits.name;
path.time = 0;
path.size = -1;
@ -61,17 +61,17 @@
path.label = path.label.slice(0, -1);
}
path.isFolder = (path.type === "folder");
path.isParentFolder = (path.label === "Parent Directory");
path.isFolder = (path.type === 'folder');
path.isParentFolder = (path.label === 'Parent Directory');
if (path.isParentFolder) {
path.isFolder = true;
path.type = "folder-parent";
path.type = 'folder-parent';
}
path.absHref = path.isParentFolder ? path.href : path.parentFolder + path.href;
path.isCurrentFolder = (path.absHref === document.location.pathname);
path.isDomain = (path.absHref === "/");
path.isDomain = (path.absHref === '/');
if (path.isParentFolder && h5ai.core.settings.setParentFolderLabels) {
if (path.isParentFolder && h5ai.settings.setParentFolderLabels) {
if (path.isDomain) {
path.label = h5ai.util.checkedDecodeUri(document.domain);
} else {

View file

@ -5,9 +5,9 @@
var $entry = $(entry);
if ($entry.hasClass("folder-parent")) {
if ($entry.hasClass('folder-parent')) {
return 0;
} else if ($entry.hasClass("folder")) {
} else if ($entry.hasClass('folder')) {
return 1;
}
return 2;
@ -33,117 +33,117 @@
cmpName = function (entry1, entry2) {
return cmp(entry1, entry2, false, function (entry) {
return $(entry).find(".label").text().toLowerCase();
return $(entry).find('.label').text().toLowerCase();
});
},
cmpTime = function (entry1, entry2) {
return cmp(entry1, entry2, false, function (entry) {
return $(entry).find(".date").data("time");
return $(entry).find('.date').data('time');
});
},
cmpSize = function (entry1, entry2) {
return cmp(entry1, entry2, false, function (entry) {
return $(entry).find(".size").data("bytes");
return $(entry).find('.size').data('bytes');
});
},
cmpNameRev = function (entry1, entry2) {
return cmp(entry1, entry2, true, function (entry) {
return $(entry).find(".label").text().toLowerCase();
return $(entry).find('.label').text().toLowerCase();
});
},
cmpTimeRev = function (entry1, entry2) {
return cmp(entry1, entry2, true, function (entry) {
return $(entry).find(".date").data("time");
return $(entry).find('.date').data('time');
});
},
cmpSizeRev = function (entry1, entry2) {
return cmp(entry1, entry2, true, function (entry) {
return $(entry).find(".size").data("bytes");
return $(entry).find('.size').data('bytes');
});
},
sort = function (fn) {
$("#extended .entry").detach().sort(fn).appendTo($("#extended > ul"));
$('#extended .entry').detach().sort(fn).appendTo($('#extended > ul'));
},
$all, orders,
sortBy = function (id) {
var order = orders[id];
$all.removeClass("ascending").removeClass("descending");
$all.removeClass('ascending').removeClass('descending');
order.head.addClass(order.clas);
sort(order.fn);
h5ai.core.hash({sort: id});
},
init = function () {
var $ascending = $("<img src='" + h5ai.core.image("ascending") + "' class='sort ascending' alt='ascending' />"),
$descending = $("<img src='" + h5ai.core.image("descending") + "' class='sort descending' alt='descending' />"),
var $ascending = $('<img src="' + h5ai.core.image('ascending') + '" class="sort ascending" alt="ascending" />'),
$descending = $('<img src="' + h5ai.core.image('descending') + '" class="sort descending" alt="descending" />'),
initialOrder = h5ai.core.hash('sort'),
$header = $("#extended li.header"),
$label = $header.find("a.label"),
$date = $header.find("a.date"),
$size = $header.find("a.size");
$header = $('#extended li.header'),
$label = $header.find('a.label'),
$date = $header.find('a.date'),
$size = $header.find('a.size');
$all = $header.find("a.label,a.date,a.size");
$all = $header.find('a.label,a.date,a.size');
orders = {
na: {
head: $label,
clas: "ascending",
clas: 'ascending',
fn: cmpName
},
nd: {
head: $label,
clas: "descending",
clas: 'descending',
fn: cmpNameRev
},
da: {
head: $date,
clas: "ascending",
clas: 'ascending',
fn: cmpTime
},
dd: {
head: $date,
clas: "descending",
clas: 'descending',
fn: cmpTimeRev
},
sa: {
head: $size,
clas: "ascending",
clas: 'ascending',
fn: cmpSize
},
sd: {
head: $size,
clas: "descending",
clas: 'descending',
fn: cmpSizeRev
}
};
sortBy(initialOrder ? initialOrder : h5ai.core.settings.sortorder);
sortBy(initialOrder ? initialOrder : h5ai.settings.sortorder);
$label
.append($ascending.clone()).append($descending.clone())
.click(function (event) {
sortBy("n" + ($label.hasClass("ascending") ? "d" : "a"));
sortBy('n' + ($label.hasClass('ascending') ? 'd' : 'a'));
event.preventDefault();
});
$date
.prepend($ascending.clone()).prepend($descending.clone())
.click(function (event) {
sortBy("d" + ($date.hasClass("ascending") ? "d" : "a"));
sortBy('d' + ($date.hasClass('ascending') ? 'd' : 'a'));
event.preventDefault();
});
$size
.prepend($ascending.clone()).prepend($descending.clone())
.click(function (event) {
sortBy("s" + ($size.hasClass("ascending") ? "d" : "a"));
sortBy('s' + ($size.hasClass('ascending') ? 'd' : 'a'));
event.preventDefault();
});
};

View file

@ -3,15 +3,20 @@
var reSplitPath = /^\/([^\/]+\/?)$/,
reSplitPath2 = /^(\/(?:.*\/)*?([^\/]+)\/)([^\/]+\/?)$/,
rePathEndsWithSlash = /\/$/,
reParseSize = /^\s*([\.\d]+)\s*([kmg]?)b?\s*$/i,
kilo = 1000.0,
sizeUnits = ['B', 'KB', 'MB', 'GB', 'TB'],
splitPath = function (pathname) {
var match;
if (pathname === "/") {
if (pathname === '/') {
return {
parent: null,
parentname: null,
name: "/"
name: '/'
};
}
match = reSplitPath2.exec(pathname);
@ -25,13 +30,12 @@
match = reSplitPath.exec(pathname);
if (match) {
return {
parent: "/",
parentname: "/",
parent: '/',
parentname: '/',
name: match[1]
};
}
},
rePathEndsWithSlash = /\/$/,
pathEndsWithSlash = function (pathname) {
return rePathEndsWithSlash.test(pathname);
@ -41,18 +45,16 @@
var $a, isParentFolder, href;
if (!pathEndsWithSlash(folder)) {
folder += "/";
folder += '/';
}
if (!tableRow) {
return folder;
}
$a = $(tableRow).find("td").eq(1).find("a");
isParentFolder = ($a.text() === "Parent Directory");
href = $a.attr("href");
$a = $(tableRow).find('td').eq(1).find('a');
isParentFolder = ($a.text() === 'Parent Directory');
href = $a.attr('href');
return isParentFolder ? undefined : folder + href;
},
kilo = 1000.0,
reParseSize = /^\s*([\.\d]+)\s*([kmg]?)b?\s*$/i,
parseSize = function (str) {
var match = reParseSize.exec(str),
@ -64,18 +66,17 @@
val = parseFloat(match[1]);
unit = match[2].toLowerCase();
if (unit === "k") {
if (unit === 'k') {
val *= kilo;
} else if (unit === "m") {
} else if (unit === 'm') {
val *= kilo * kilo;
} else if (unit === "g") {
} else if (unit === 'g') {
val *= kilo * kilo * kilo;
} else if (unit === "t") {
} else if (unit === 't') {
val *= kilo * kilo * kilo * kilo;
}
return val;
},
sizeUnits = ["B", "KB", "MB", "GB", "TB"],
formatSize = function (size) {
var th = 1000.0,
@ -90,7 +91,7 @@
size /= kilo;
i += 1;
}
return (i <= 1 ? Math.round(size) : size.toFixed(1)).toString() + " " + sizeUnits[i];
return (i <= 1 ? Math.round(size) : size.toFixed(1)).toString() + ' ' + sizeUnits[i];
},
checkedDecodeUri = function (uri) {

View file

@ -4,21 +4,21 @@
var x = 0,
y = 0,
$document = $(document),
$selectionRect = $("#selection-rect"),
selectedHrefsStr = "",
$selectionRect = $('#selection-rect'),
selectedHrefsStr = '',
$download, $img, $downloadAuth, $downloadUser, $downloadPassword,
updateDownloadBtn = function () {
var $selected = $("#extended a.selected"),
$downloadBtn = $("#download");
var $selected = $('#extended a.selected'),
$downloadBtn = $('#download');
selectedHrefsStr = "";
selectedHrefsStr = '';
if ($selected.length) {
$selected.each(function () {
var href = $(this).attr("href");
selectedHrefsStr = selectedHrefsStr ? selectedHrefsStr + ":" + href : href;
var href = $(this).attr('href');
selectedHrefsStr = selectedHrefsStr ? selectedHrefsStr + ':' + href : href;
});
$downloadBtn.show();
} else {
@ -37,24 +37,24 @@
event.preventDefault();
$selectionRect.css({left: l, top: t, width: w, height: h});
selRect = $selectionRect.fracs("rect");
$("#extended a").removeClass("selecting").each(function () {
selRect = $selectionRect.fracs('rect');
$('#extended a').removeClass('selecting').each(function () {
var $a = $(this),
rect = $a.fracs("rect"),
rect = $a.fracs('rect'),
inter = selRect.intersection(rect);
if (inter && !$a.closest(".entry").hasClass("folder-parent")) {
$a.addClass("selecting");
if (inter && !$a.closest('.entry').hasClass('folder-parent')) {
$a.addClass('selecting');
}
});
},
selectionEnd = function (event) {
event.preventDefault();
$document.off("mousemove", selectionUpdate);
$document.off('mousemove', selectionUpdate);
$selectionRect.hide().css({left: 0, top: 0, width: 0, height: 0});
$("#extended a.selecting.selected").removeClass("selecting").removeClass("selected");
$("#extended a.selecting").removeClass("selecting").addClass("selected");
$('#extended a.selecting.selected').removeClass('selecting').removeClass('selected');
$('#extended a.selecting').removeClass('selecting').addClass('selected');
updateDownloadBtn();
},
selectionStart = function (event) {
@ -156,18 +156,18 @@
},
init = function () {
if (h5ai.core.settings.zippedDownload) {
$("<li id='download'><a href='#'><img alt='download' /><span class='l10n-download'>download</span></a></li>")
.find("img").attr("src", h5ai.core.image("download")).end()
.find("a").click(function (event) {
if (h5ai.settings.zippedDownload) {
$('<li id="download"><a href="#"><img alt="download" /><span class="l10n-download">download</span></a></li>')
.find('img').attr('src', h5ai.core.image('download')).end()
.find('a').click(function (event) {
event.preventDefault();
$downloadAuth.hide();
requestZipping(selectedHrefsStr);
}).end()
.appendTo($("#navbar"));
$("<div id='download-auth'><input id='download-auth-user' type='text' value='' placeholder='user' /><input id='download-auth-password' type='text' value='' placeholder='password' /></div>")
.appendTo($("body"));
.appendTo($('#navbar'));
$('<div id="download-auth"><input id="download-auth-user" type="text" value="" placeholder="user" /><input id="download-auth-password" type="text" value="" placeholder="password" /></div>')
.appendTo($('body'));
$download = $('#download');
$downloadAuth = $('#download-auth');
@ -175,9 +175,9 @@
$downloadPassword = $('#download-auth-password');
$img = $download.find('img');
$("body>nav,body>footer,#tree,input").on("mousedown", noSelection);
$("#content").on("mousedown", "a", noSelectionUnlessCtrl);
$document.on("mousedown", selectionStart);
$('body>nav,body>footer,#tree,input').on('mousedown', noSelection);
$('#content').on('mousedown', 'a', noSelectionUnlessCtrl);
$document.on('mousedown', selectionStart);
}
};

View file

@ -14,6 +14,6 @@
// @include "inc/lib/base64.js"
// @include "inc/lib/date.js"
// app scripts
// -----------
// h5ai
// ----
// @include "inc/H5ai.js"