mirror of
https://github.com/lrsjng/h5ai.git
synced 2025-06-06 17:51:15 -04:00
More refactorings.
This commit is contained in:
parent
4c1ed3d1e8
commit
caced60eaa
10 changed files with 150 additions and 165 deletions
|
@ -16,5 +16,5 @@ release.dir = release
|
||||||
|
|
||||||
|
|
||||||
# tools
|
# tools
|
||||||
wepp = tools/wepp
|
tool.wepp = tools/wepp
|
||||||
|
|
||||||
|
|
|
@ -99,18 +99,14 @@ H5aiJs.factory.Extended = function () {
|
||||||
|
|
||||||
$(".folderCount").text($("#extended .entry.folder:not(.parentfolder)").size());
|
$(".folderCount").text($("#extended .entry.folder:not(.parentfolder)").size());
|
||||||
$(".fileCount").text($("#extended .entry.file").size());
|
$(".fileCount").text($("#extended .entry.file").size());
|
||||||
},
|
};
|
||||||
init = function () {
|
|
||||||
|
this.init = function () {
|
||||||
|
|
||||||
initTitle();
|
initTitle();
|
||||||
initBreadcrumb();
|
initBreadcrumb();
|
||||||
initExtendedView();
|
initExtendedView();
|
||||||
customize();
|
customize();
|
||||||
initCounts();
|
initCounts();
|
||||||
},
|
|
||||||
extended = {
|
|
||||||
init: init
|
|
||||||
};
|
};
|
||||||
|
|
||||||
return extended;
|
|
||||||
};
|
};
|
||||||
|
|
|
@ -2,7 +2,8 @@
|
||||||
|
|
||||||
H5aiJs.factory.H5ai = function (options, langs) {
|
H5aiJs.factory.H5ai = function (options, langs) {
|
||||||
|
|
||||||
var defaults = {
|
var $window = $(window),
|
||||||
|
defaults = {
|
||||||
store: {
|
store: {
|
||||||
viewmode: "h5ai.viewmode",
|
viewmode: "h5ai.viewmode",
|
||||||
lang: "h5ai.lang"
|
lang: "h5ai.lang"
|
||||||
|
@ -41,7 +42,7 @@ H5aiJs.factory.H5ai = function (options, langs) {
|
||||||
triggerPathClick = function (path, context) {
|
triggerPathClick = function (path, context) {
|
||||||
|
|
||||||
$.each(settings.callbacks.pathClick, function (idx, callback) {
|
$.each(settings.callbacks.pathClick, function (idx, callback) {
|
||||||
callback.call(window, path, context);
|
callback(path, context);
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
getViewmode = function () {
|
getViewmode = function () {
|
||||||
|
@ -82,7 +83,7 @@ H5aiJs.factory.H5ai = function (options, langs) {
|
||||||
|
|
||||||
var adjustTopSpace = function () {
|
var adjustTopSpace = function () {
|
||||||
|
|
||||||
var winHeight = $(window).height(),
|
var winHeight = $window.height(),
|
||||||
navHeight = $("body > nav").outerHeight(),
|
navHeight = $("body > nav").outerHeight(),
|
||||||
footerHeight = $("body > footer").outerHeight(),
|
footerHeight = $("body > footer").outerHeight(),
|
||||||
contentSpacing = 50,
|
contentSpacing = 50,
|
||||||
|
@ -103,7 +104,7 @@ H5aiJs.factory.H5ai = function (options, langs) {
|
||||||
} catch (err) {}
|
} catch (err) {}
|
||||||
};
|
};
|
||||||
|
|
||||||
$(window).resize(function () {
|
$window.resize(function () {
|
||||||
adjustTopSpace();
|
adjustTopSpace();
|
||||||
});
|
});
|
||||||
adjustTopSpace();
|
adjustTopSpace();
|
||||||
|
@ -168,7 +169,7 @@ H5aiJs.factory.H5ai = function (options, langs) {
|
||||||
function () { shiftTree(true); },
|
function () { shiftTree(true); },
|
||||||
function () { shiftTree(); }
|
function () { shiftTree(); }
|
||||||
);
|
);
|
||||||
$(window).resize(function () { shiftTree(); });
|
$window.resize(function () { shiftTree(); });
|
||||||
shiftTree(false, true);
|
shiftTree(false, true);
|
||||||
},
|
},
|
||||||
linkHoverStates = function () {
|
linkHoverStates = function () {
|
||||||
|
@ -266,7 +267,9 @@ H5aiJs.factory.H5ai = function (options, langs) {
|
||||||
$indicator.addClass("open");
|
$indicator.addClass("open");
|
||||||
$entry.find("> .content").replaceWith($content);
|
$entry.find("> .content").replaceWith($content);
|
||||||
$("#tree").get(0).updateScrollbar();
|
$("#tree").get(0).updateScrollbar();
|
||||||
initIndicators();
|
$content.find(".indicator:not(.initiated)")
|
||||||
|
.click(onIndicatorClick)
|
||||||
|
.addClass("initiated");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} else if ($indicator.hasClass("open")) {
|
} else if ($indicator.hasClass("open")) {
|
||||||
|
@ -285,16 +288,14 @@ H5aiJs.factory.H5ai = function (options, langs) {
|
||||||
},
|
},
|
||||||
initIndicators = function () {
|
initIndicators = function () {
|
||||||
|
|
||||||
$("#tree .entry.folder .indicator:not(.initiated)").each(function () {
|
$("#tree .entry.folder .indicator:not(.initiated)")
|
||||||
|
.click(onIndicatorClick)
|
||||||
$(this).addClass("initiated").click(onIndicatorClick);
|
.addClass("initiated");
|
||||||
});
|
|
||||||
},
|
},
|
||||||
initZippedDownload = function () {
|
initZippedDownload = function () {
|
||||||
|
|
||||||
var x = 0,
|
var x = 0,
|
||||||
y = 0,
|
y = 0,
|
||||||
$window = $(window),
|
|
||||||
selected = function (hrefs) {
|
selected = function (hrefs) {
|
||||||
|
|
||||||
var query, idx;
|
var query, idx;
|
||||||
|
@ -377,8 +378,9 @@ H5aiJs.factory.H5ai = function (options, langs) {
|
||||||
localize(langs, settings.lang, settings.useBrowserLang);
|
localize(langs, settings.lang, settings.useBrowserLang);
|
||||||
initIndicators();
|
initIndicators();
|
||||||
initZippedDownload();
|
initZippedDownload();
|
||||||
},
|
};
|
||||||
h5ai = {
|
|
||||||
|
return {
|
||||||
settings: settings,
|
settings: settings,
|
||||||
shiftTree: shiftTree,
|
shiftTree: shiftTree,
|
||||||
linkHoverStates: linkHoverStates,
|
linkHoverStates: linkHoverStates,
|
||||||
|
@ -387,6 +389,4 @@ H5aiJs.factory.H5ai = function (options, langs) {
|
||||||
initIndicators: initIndicators,
|
initIndicators: initIndicators,
|
||||||
init: init
|
init: init
|
||||||
};
|
};
|
||||||
|
|
||||||
return h5ai;
|
|
||||||
};
|
};
|
||||||
|
|
|
@ -2,25 +2,13 @@
|
||||||
|
|
||||||
H5aiJs.factory.Path = function (folder, tableRow) {
|
H5aiJs.factory.Path = function (folder, tableRow) {
|
||||||
|
|
||||||
var path,
|
var checkedDecodeUri = function (uri) {
|
||||||
checkedDecodeUri = function (uri) {
|
|
||||||
|
|
||||||
try { return decodeURI(uri); } catch (err) {}
|
try { return decodeURI(uri); } catch (err) {}
|
||||||
return uri;
|
return uri;
|
||||||
},
|
},
|
||||||
isEmpty = function () {
|
$tds, $img, $a, splits;
|
||||||
|
|
||||||
return !path.content || $.isEmptyObject(path.content);
|
|
||||||
},
|
|
||||||
onClick = function (context) {
|
|
||||||
|
|
||||||
H5aiJs.h5ai.triggerPathClick(path, context);
|
|
||||||
},
|
|
||||||
init = function () {
|
|
||||||
|
|
||||||
var $tds, $img, $a, splits;
|
|
||||||
|
|
||||||
path = {
|
|
||||||
// parentFolder: undefined,
|
// parentFolder: undefined,
|
||||||
// label: undefined,
|
// label: undefined,
|
||||||
// date: undefined,
|
// date: undefined,
|
||||||
|
@ -35,18 +23,14 @@ H5aiJs.factory.Path = function (folder, tableRow) {
|
||||||
// isCurrentFolder: undefined,
|
// isCurrentFolder: undefined,
|
||||||
// isDomain: undefined,
|
// isDomain: undefined,
|
||||||
|
|
||||||
status: undefined, // undefined, "h5ai" or HTTP response code
|
this.status = undefined; // undefined, "h5ai" or HTTP response code
|
||||||
content: undefined, // associative array path.absHref -> path
|
this.content = undefined; // associative array path.absHref -> path
|
||||||
html: {
|
this.html = {
|
||||||
$crumb: undefined,
|
$crumb: undefined,
|
||||||
$extended: undefined,
|
$extended: undefined,
|
||||||
$tree: undefined
|
$tree: undefined
|
||||||
},
|
|
||||||
treeOpen: false,
|
|
||||||
|
|
||||||
isEmpty: isEmpty,
|
|
||||||
onClick: onClick
|
|
||||||
};
|
};
|
||||||
|
this.treeOpen = false;
|
||||||
|
|
||||||
if (!H5aiJs.pathCache.pathEndsWithSlash(folder)) {
|
if (!H5aiJs.pathCache.pathEndsWithSlash(folder)) {
|
||||||
folder += "/";
|
folder += "/";
|
||||||
|
@ -57,49 +41,56 @@ H5aiJs.factory.Path = function (folder, tableRow) {
|
||||||
$img = $tds.eq(0).find("img");
|
$img = $tds.eq(0).find("img");
|
||||||
$a = $tds.eq(1).find("a");
|
$a = $tds.eq(1).find("a");
|
||||||
|
|
||||||
path.parentFolder = folder;
|
this.parentFolder = folder;
|
||||||
path.label = $a.text();
|
this.label = $a.text();
|
||||||
path.date = $tds.eq(2).text();
|
this.date = $tds.eq(2).text();
|
||||||
path.size = $tds.eq(3).text();
|
this.size = $tds.eq(3).text();
|
||||||
path.href = $a.attr("href");
|
this.href = $a.attr("href");
|
||||||
path.alt = $img.attr("alt");
|
this.alt = $img.attr("alt");
|
||||||
path.icon16 = $img.attr("src");
|
this.icon16 = $img.attr("src");
|
||||||
} else {
|
} else {
|
||||||
splits = H5aiJs.pathCache.splitPathname(folder);
|
splits = H5aiJs.pathCache.splitPathname(folder);
|
||||||
|
|
||||||
path.parentFolder = splits[0];
|
this.parentFolder = splits[0];
|
||||||
path.label = checkedDecodeUri(splits[1]);
|
this.label = checkedDecodeUri(splits[1]);
|
||||||
if (path.label === "/") {
|
if (this.label === "/") {
|
||||||
path.label = checkedDecodeUri(document.domain) + "/";
|
this.label = checkedDecodeUri(document.domain) + "/";
|
||||||
}
|
}
|
||||||
path.date = "";
|
this.date = "";
|
||||||
path.size = "";
|
this.size = "";
|
||||||
path.href = splits[1];
|
this.href = splits[1];
|
||||||
path.alt = "[DIR]";
|
this.alt = "[DIR]";
|
||||||
path.icon16 = "/h5ai/icons/16x16/folder.png";
|
this.icon16 = "/h5ai/icons/16x16/folder.png";
|
||||||
}
|
}
|
||||||
|
|
||||||
if (H5aiJs.pathCache.pathEndsWithSlash(path.label)) {
|
if (H5aiJs.pathCache.pathEndsWithSlash(this.label)) {
|
||||||
path.label = path.label.slice(0, -1);
|
this.label = this.label.slice(0, -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
path.icon48 = path.icon16.replace("16x16", "48x48");
|
this.icon48 = this.icon16.replace("16x16", "48x48");
|
||||||
path.isFolder = (path.alt === "[DIR]");
|
this.isFolder = (this.alt === "[DIR]");
|
||||||
path.isParentFolder = (path.isFolder && path.label === "Parent Directory");
|
this.isParentFolder = (this.isFolder && this.label === "Parent Directory");
|
||||||
path.absHref = path.isParentFolder ? path.href : path.parentFolder + path.href;
|
this.absHref = this.isParentFolder ? this.href : this.parentFolder + this.href;
|
||||||
path.isCurrentFolder = (path.absHref === document.location.pathname);
|
this.isCurrentFolder = (this.absHref === document.location.pathname);
|
||||||
path.isDomain = (path.absHref === "/");
|
this.isDomain = (this.absHref === "/");
|
||||||
|
|
||||||
if (path.isParentFolder && H5aiJs.h5ai.settings.setParentFolderLabels) {
|
if (this.isParentFolder && H5aiJs.h5ai.settings.setParentFolderLabels) {
|
||||||
if (path.isDomain) {
|
if (this.isDomain) {
|
||||||
path.label = checkedDecodeUri(document.domain);
|
this.label = checkedDecodeUri(document.domain);
|
||||||
} else {
|
} else {
|
||||||
path.label = checkedDecodeUri(H5aiJs.pathCache.splitPathname(H5aiJs.pathCache.splitPathname(path.parentFolder)[0])[1].slice(0, -1));
|
this.label = checkedDecodeUri(H5aiJs.pathCache.splitPathname(H5aiJs.pathCache.splitPathname(this.parentFolder)[0])[1].slice(0, -1));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
init();
|
H5aiJs.factory.Path.prototype = {
|
||||||
|
|
||||||
return path;
|
isEmpty: function () {
|
||||||
|
|
||||||
|
return !this.content || $.isEmptyObject(this.content);
|
||||||
|
},
|
||||||
|
onClick: function (context) {
|
||||||
|
|
||||||
|
H5aiJs.h5ai.triggerPathClick(this, context);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
|
@ -2,8 +2,7 @@
|
||||||
|
|
||||||
H5aiJs.factory.PathCache = function () {
|
H5aiJs.factory.PathCache = function () {
|
||||||
|
|
||||||
var pathCache,
|
var cache = {},
|
||||||
cache = {},
|
|
||||||
rePathnameSplit = /^(\/(.*\/)*)([^\/]+\/?)$/,
|
rePathnameSplit = /^(\/(.*\/)*)([^\/]+\/?)$/,
|
||||||
rePathEndsWithSlash = /\/$/,
|
rePathEndsWithSlash = /\/$/,
|
||||||
splitPathname = function (pathname) {
|
splitPathname = function (pathname) {
|
||||||
|
@ -50,12 +49,8 @@ H5aiJs.factory.PathCache = function () {
|
||||||
return path;
|
return path;
|
||||||
};
|
};
|
||||||
|
|
||||||
pathCache = {
|
this.splitPathname = splitPathname;
|
||||||
splitPathname: splitPathname,
|
this.pathEndsWithSlash = pathEndsWithSlash;
|
||||||
pathEndsWithSlash: pathEndsWithSlash,
|
this.getPath = getPath;
|
||||||
getPath: getPath,
|
this.cache = cache;
|
||||||
cache: cache
|
|
||||||
};
|
|
||||||
|
|
||||||
return pathCache;
|
|
||||||
};
|
};
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
// http://paulirish.com/2009/log-a-lightweight-wrapper-for-consolelog/
|
// http://paulirish.com/2009/log-a-lightweight-wrapper-for-consolelog/
|
||||||
// modified
|
// modified
|
||||||
$.log = function () {
|
$.log = function () {
|
||||||
|
|
||||||
$.log.history = $.log.history || [];
|
$.log.history = $.log.history || [];
|
||||||
$.log.history.push(arguments);
|
$.log.history.push(arguments);
|
||||||
if (window.console) {
|
if (window.console) {
|
||||||
|
@ -14,17 +15,17 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
$.timer = (function () {
|
$.timer = (function () {
|
||||||
|
|
||||||
var start = $.now(),
|
var start = $.now(),
|
||||||
last = start,
|
last = start;
|
||||||
timer = {
|
|
||||||
|
return {
|
||||||
log: function (label) {
|
log: function (label) {
|
||||||
var now = $.now();
|
var now = $.now();
|
||||||
$.log("timer", label, "+" + (now - last), "=" + (now - start));
|
$.log("timer", label, "+" + (now - last), "=" + (now - start));
|
||||||
last = now;
|
last = now;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
return timer;
|
|
||||||
}());
|
}());
|
||||||
|
|
||||||
}(jQuery));
|
}(jQuery));
|
||||||
|
|
|
@ -9,6 +9,7 @@
|
||||||
var H5aiJs = {
|
var H5aiJs = {
|
||||||
factory: {},
|
factory: {},
|
||||||
init: function () {
|
init: function () {
|
||||||
|
|
||||||
this.h5ai = new this.factory.H5ai(h5aiOptions, h5aiLangs);
|
this.h5ai = new this.factory.H5ai(h5aiOptions, h5aiLangs);
|
||||||
this.pathCache = new this.factory.PathCache();
|
this.pathCache = new this.factory.PathCache();
|
||||||
this.connector = new this.factory.Connector();
|
this.connector = new this.factory.Connector();
|
||||||
|
|
|
@ -9,6 +9,7 @@
|
||||||
var H5aiJs = {
|
var H5aiJs = {
|
||||||
factory: {},
|
factory: {},
|
||||||
init: function () {
|
init: function () {
|
||||||
|
|
||||||
this.h5ai = new this.factory.H5ai(h5aiOptions, h5aiLangs);
|
this.h5ai = new this.factory.H5ai(h5aiOptions, h5aiLangs);
|
||||||
|
|
||||||
this.h5ai.init();
|
this.h5ai.init();
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
<attribute name="toFile" />
|
<attribute name="toFile" />
|
||||||
<attribute name="args" default="" />
|
<attribute name="args" default="" />
|
||||||
<sequential>
|
<sequential>
|
||||||
<exec executable="${wepp}">
|
<exec executable="${tool.wepp}">
|
||||||
<arg line="@{args}" />
|
<arg line="@{args}" />
|
||||||
<arg value="--in" />
|
<arg value="--in" />
|
||||||
<arg value="@{file}" />
|
<arg value="@{file}" />
|
||||||
|
@ -20,7 +20,7 @@
|
||||||
<attribute name="dir" />
|
<attribute name="dir" />
|
||||||
<attribute name="args" default="" />
|
<attribute name="args" default="" />
|
||||||
<sequential>
|
<sequential>
|
||||||
<exec executable="${wepp}">
|
<exec executable="${tool.wepp}">
|
||||||
<arg line="@{args}" />
|
<arg line="@{args}" />
|
||||||
<arg value="--inDir" />
|
<arg value="--inDir" />
|
||||||
<arg value="@{dir}" />
|
<arg value="@{dir}" />
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue