diff --git a/build.properties b/build.properties index 9ea727a9..061dc895 100644 --- a/build.properties +++ b/build.properties @@ -16,5 +16,5 @@ release.dir = release # tools -wepp = tools/wepp +tool.wepp = tools/wepp diff --git a/src/h5ai/js/inc/Extended.js b/src/h5ai/js/inc/Extended.js index 486107c2..d5acd5a4 100644 --- a/src/h5ai/js/inc/Extended.js +++ b/src/h5ai/js/inc/Extended.js @@ -99,18 +99,14 @@ H5aiJs.factory.Extended = function () { $(".folderCount").text($("#extended .entry.folder:not(.parentfolder)").size()); $(".fileCount").text($("#extended .entry.file").size()); - }, - init = function () { - - initTitle(); - initBreadcrumb(); - initExtendedView(); - customize(); - initCounts(); - }, - extended = { - init: init }; - return extended; + this.init = function () { + + initTitle(); + initBreadcrumb(); + initExtendedView(); + customize(); + initCounts(); + }; }; diff --git a/src/h5ai/js/inc/H5ai.js b/src/h5ai/js/inc/H5ai.js index 79779d7d..70a4df45 100644 --- a/src/h5ai/js/inc/H5ai.js +++ b/src/h5ai/js/inc/H5ai.js @@ -2,7 +2,8 @@ H5aiJs.factory.H5ai = function (options, langs) { - var defaults = { + var $window = $(window), + defaults = { store: { viewmode: "h5ai.viewmode", lang: "h5ai.lang" @@ -41,7 +42,7 @@ H5aiJs.factory.H5ai = function (options, langs) { triggerPathClick = function (path, context) { $.each(settings.callbacks.pathClick, function (idx, callback) { - callback.call(window, path, context); + callback(path, context); }); }, getViewmode = function () { @@ -82,7 +83,7 @@ H5aiJs.factory.H5ai = function (options, langs) { var adjustTopSpace = function () { - var winHeight = $(window).height(), + var winHeight = $window.height(), navHeight = $("body > nav").outerHeight(), footerHeight = $("body > footer").outerHeight(), contentSpacing = 50, @@ -103,7 +104,7 @@ H5aiJs.factory.H5ai = function (options, langs) { } catch (err) {} }; - $(window).resize(function () { + $window.resize(function () { adjustTopSpace(); }); adjustTopSpace(); @@ -141,7 +142,7 @@ H5aiJs.factory.H5ai = function (options, langs) { $(".status.default").show(); $(".status.dynamic").empty().hide(); } - ); + ); }, shiftTree = function (forceVisible, dontAnimate) { @@ -168,7 +169,7 @@ H5aiJs.factory.H5ai = function (options, langs) { function () { shiftTree(true); }, function () { shiftTree(); } ); - $(window).resize(function () { shiftTree(); }); + $window.resize(function () { shiftTree(); }); shiftTree(false, true); }, linkHoverStates = function () { @@ -266,7 +267,9 @@ H5aiJs.factory.H5ai = function (options, langs) { $indicator.addClass("open"); $entry.find("> .content").replaceWith($content); $("#tree").get(0).updateScrollbar(); - initIndicators(); + $content.find(".indicator:not(.initiated)") + .click(onIndicatorClick) + .addClass("initiated"); } }); } else if ($indicator.hasClass("open")) { @@ -285,16 +288,14 @@ H5aiJs.factory.H5ai = function (options, langs) { }, initIndicators = function () { - $("#tree .entry.folder .indicator:not(.initiated)").each(function () { - - $(this).addClass("initiated").click(onIndicatorClick); - }); + $("#tree .entry.folder .indicator:not(.initiated)") + .click(onIndicatorClick) + .addClass("initiated"); }, initZippedDownload = function () { var x = 0, y = 0, - $window = $(window), selected = function (hrefs) { var query, idx; @@ -377,16 +378,15 @@ H5aiJs.factory.H5ai = function (options, langs) { localize(langs, settings.lang, settings.useBrowserLang); initIndicators(); initZippedDownload(); - }, - h5ai = { - settings: settings, - shiftTree: shiftTree, - linkHoverStates: linkHoverStates, - pathClick: pathClick, - triggerPathClick: triggerPathClick, - initIndicators: initIndicators, - init: init }; - return h5ai; + return { + settings: settings, + shiftTree: shiftTree, + linkHoverStates: linkHoverStates, + pathClick: pathClick, + triggerPathClick: triggerPathClick, + initIndicators: initIndicators, + init: init + }; }; diff --git a/src/h5ai/js/inc/Path.js b/src/h5ai/js/inc/Path.js index 923944b4..03c1d5ba 100644 --- a/src/h5ai/js/inc/Path.js +++ b/src/h5ai/js/inc/Path.js @@ -2,104 +2,95 @@ H5aiJs.factory.Path = function (folder, tableRow) { - var path, - checkedDecodeUri = function (uri) { + var checkedDecodeUri = function (uri) { try { return decodeURI(uri); } catch (err) {} return uri; }, - isEmpty = function () { + $tds, $img, $a, splits; - return !path.content || $.isEmptyObject(path.content); - }, - onClick = function (context) { + // parentFolder: undefined, + // label: undefined, + // date: undefined, + // size: undefined, + // href: undefined, + // absHref: undefined, + // alt: undefined, + // icon16: undefined, + // icon48: undefined, + // isFolder: undefined, + // isParentFolder: undefined, + // isCurrentFolder: undefined, + // isDomain: undefined, - H5aiJs.h5ai.triggerPathClick(path, context); - }, - init = function () { + this.status = undefined; // undefined, "h5ai" or HTTP response code + this.content = undefined; // associative array path.absHref -> path + this.html = { + $crumb: undefined, + $extended: undefined, + $tree: undefined + }; + this.treeOpen = false; + + if (!H5aiJs.pathCache.pathEndsWithSlash(folder)) { + folder += "/"; + } - var $tds, $img, $a, splits; + if (tableRow) { + $tds = $(tableRow).find("td"); + $img = $tds.eq(0).find("img"); + $a = $tds.eq(1).find("a"); - path = { - // parentFolder: undefined, - // label: undefined, - // date: undefined, - // size: undefined, - // href: undefined, - // absHref: undefined, - // alt: undefined, - // icon16: undefined, - // icon48: undefined, - // isFolder: undefined, - // isParentFolder: undefined, - // isCurrentFolder: undefined, - // isDomain: undefined, + this.parentFolder = folder; + this.label = $a.text(); + this.date = $tds.eq(2).text(); + this.size = $tds.eq(3).text(); + this.href = $a.attr("href"); + this.alt = $img.attr("alt"); + this.icon16 = $img.attr("src"); + } else { + splits = H5aiJs.pathCache.splitPathname(folder); - status: undefined, // undefined, "h5ai" or HTTP response code - content: undefined, // associative array path.absHref -> path - html: { - $crumb: undefined, - $extended: undefined, - $tree: undefined - }, - treeOpen: false, + this.parentFolder = splits[0]; + this.label = checkedDecodeUri(splits[1]); + if (this.label === "/") { + this.label = checkedDecodeUri(document.domain) + "/"; + } + this.date = ""; + this.size = ""; + this.href = splits[1]; + this.alt = "[DIR]"; + this.icon16 = "/h5ai/icons/16x16/folder.png"; + } - isEmpty: isEmpty, - onClick: onClick - }; + if (H5aiJs.pathCache.pathEndsWithSlash(this.label)) { + this.label = this.label.slice(0, -1); + } - if (!H5aiJs.pathCache.pathEndsWithSlash(folder)) { - folder += "/"; - } + this.icon48 = this.icon16.replace("16x16", "48x48"); + this.isFolder = (this.alt === "[DIR]"); + this.isParentFolder = (this.isFolder && this.label === "Parent Directory"); + this.absHref = this.isParentFolder ? this.href : this.parentFolder + this.href; + this.isCurrentFolder = (this.absHref === document.location.pathname); + this.isDomain = (this.absHref === "/"); - if (tableRow) { - $tds = $(tableRow).find("td"); - $img = $tds.eq(0).find("img"); - $a = $tds.eq(1).find("a"); - - path.parentFolder = folder; - path.label = $a.text(); - path.date = $tds.eq(2).text(); - path.size = $tds.eq(3).text(); - path.href = $a.attr("href"); - path.alt = $img.attr("alt"); - path.icon16 = $img.attr("src"); - } else { - splits = H5aiJs.pathCache.splitPathname(folder); - - path.parentFolder = splits[0]; - path.label = checkedDecodeUri(splits[1]); - if (path.label === "/") { - path.label = checkedDecodeUri(document.domain) + "/"; - } - path.date = ""; - path.size = ""; - path.href = splits[1]; - path.alt = "[DIR]"; - path.icon16 = "/h5ai/icons/16x16/folder.png"; - } - - if (H5aiJs.pathCache.pathEndsWithSlash(path.label)) { - path.label = path.label.slice(0, -1); - } - - path.icon48 = path.icon16.replace("16x16", "48x48"); - path.isFolder = (path.alt === "[DIR]"); - path.isParentFolder = (path.isFolder && path.label === "Parent Directory"); - path.absHref = path.isParentFolder ? path.href : path.parentFolder + path.href; - path.isCurrentFolder = (path.absHref === document.location.pathname); - path.isDomain = (path.absHref === "/"); - - if (path.isParentFolder && H5aiJs.h5ai.settings.setParentFolderLabels) { - if (path.isDomain) { - path.label = checkedDecodeUri(document.domain); - } else { - path.label = checkedDecodeUri(H5aiJs.pathCache.splitPathname(H5aiJs.pathCache.splitPathname(path.parentFolder)[0])[1].slice(0, -1)); - } - } - }; - - init(); - - return path; + if (this.isParentFolder && H5aiJs.h5ai.settings.setParentFolderLabels) { + if (this.isDomain) { + this.label = checkedDecodeUri(document.domain); + } else { + this.label = checkedDecodeUri(H5aiJs.pathCache.splitPathname(H5aiJs.pathCache.splitPathname(this.parentFolder)[0])[1].slice(0, -1)); + } + } +}; + +H5aiJs.factory.Path.prototype = { + + isEmpty: function () { + + return !this.content || $.isEmptyObject(this.content); + }, + onClick: function (context) { + + H5aiJs.h5ai.triggerPathClick(this, context); + } }; diff --git a/src/h5ai/js/inc/PathCache.js b/src/h5ai/js/inc/PathCache.js index 90c4edca..f0689616 100644 --- a/src/h5ai/js/inc/PathCache.js +++ b/src/h5ai/js/inc/PathCache.js @@ -2,8 +2,7 @@ H5aiJs.factory.PathCache = function () { - var pathCache, - cache = {}, + var cache = {}, rePathnameSplit = /^(\/(.*\/)*)([^\/]+\/?)$/, rePathEndsWithSlash = /\/$/, splitPathname = function (pathname) { @@ -50,12 +49,8 @@ H5aiJs.factory.PathCache = function () { return path; }; - pathCache = { - splitPathname: splitPathname, - pathEndsWithSlash: pathEndsWithSlash, - getPath: getPath, - cache: cache - }; - - return pathCache; + this.splitPathname = splitPathname; + this.pathEndsWithSlash = pathEndsWithSlash; + this.getPath = getPath; + this.cache = cache; }; diff --git a/src/h5ai/js/inc/jquery.scrollpanel.js b/src/h5ai/js/inc/jquery.scrollpanel.js index af039ce7..78b5af6e 100644 --- a/src/h5ai/js/inc/jquery.scrollpanel.js +++ b/src/h5ai/js/inc/jquery.scrollpanel.js @@ -4,15 +4,15 @@ "use strict"; var init = function (htmlElement) { - + var $element = $(htmlElement), $scrollbar, $drag, $wrapper, $content, mouseOffsetY, updateId, update, scroll; - + if (!$element.css("position") || $element.css("position") === "static") { $element.css("position", "relative"); } - + $scrollbar = $("
"); $drag = $("").appendTo($scrollbar); $element @@ -21,25 +21,25 @@ $wrapper = $element.find("> .wrapper"); $content = $wrapper.find("> .content"); mouseOffsetY = 0; - + update = function (repeat) { - + var visibleHeight, contentHeight, scrollTop, scrollTopFrac, visVertFrac; - + if (updateId && !repeat) { clearInterval(updateId); updateId = undefined; } else if (!updateId && repeat) { updateId = setInterval(function() { update(true); }, 50); } - + $wrapper.css("height", $element.height()); visibleHeight = $element.height(); contentHeight = $content.outerHeight(); scrollTop = $wrapper.scrollTop(); scrollTopFrac = scrollTop / contentHeight; visVertFrac = Math.min(visibleHeight / contentHeight, 1); - + if (visVertFrac < 1) { $scrollbar .fadeIn(50) @@ -55,19 +55,19 @@ $scrollbar.fadeOut(50); } }; - + scroll = function (event) { - + var clickFrac = (event.pageY - $scrollbar.offset().top - mouseOffsetY) / $scrollbar.height(); - + $wrapper.scrollTop($content.outerHeight() * clickFrac); update(); event.preventDefault(); }; - + $element .mousewheel(function (event, delta) { - + $wrapper.scrollTop($wrapper.scrollTop() - 50 * delta); update(); event.stopPropagation(); @@ -90,14 +90,14 @@ cursor: "pointer" }) .mousedown(function (event) { - + mouseOffsetY = $drag.outerHeight() / 2; scroll(event); $scrollbar.addClass("dragOn"); $(window) .bind("mousemove", scroll) .one("mouseup", function (event) { - + $scrollbar.removeClass("dragOn"); $(window).unbind("mousemove", scroll); scroll(event); @@ -106,9 +106,9 @@ event.preventDefault(); }) .each(function () { - + this.onselectstart = function () { - + return false; }; }); @@ -119,14 +119,14 @@ width: "100%" }) .mousedown(function (event) { - + mouseOffsetY = event.pageY - $drag.offset().top; scroll(event); $scrollbar.addClass("dragOn"); $(window) .bind("mousemove", scroll) .one("mouseup", function (event) { - + $scrollbar.removeClass("dragOn"); $(window).unbind("mousemove", scroll); scroll(event); @@ -134,7 +134,7 @@ }); event.stopPropagation(); }); - + update(); }; diff --git a/src/h5ai/js/inc/jquery.utils.js b/src/h5ai/js/inc/jquery.utils.js index 3d74e21b..02d9dac0 100644 --- a/src/h5ai/js/inc/jquery.utils.js +++ b/src/h5ai/js/inc/jquery.utils.js @@ -6,6 +6,7 @@ // http://paulirish.com/2009/log-a-lightweight-wrapper-for-consolelog/ // modified $.log = function () { + $.log.history = $.log.history || []; $.log.history.push(arguments); if (window.console) { @@ -14,17 +15,17 @@ }; $.timer = (function () { - var start = $.now(), - last = start, - timer = { - log: function (label) { - var now = $.now(); - $.log("timer", label, "+" + (now - last), "=" + (now - start)); - last = now; - } - }; - return timer; + var start = $.now(), + last = start; + + return { + log: function (label) { + var now = $.now(); + $.log("timer", label, "+" + (now - last), "=" + (now - start)); + last = now; + } + }; }()); }(jQuery)); diff --git a/src/h5ai/js/main-js.js b/src/h5ai/js/main-js.js index 9aca265f..d4275fd1 100644 --- a/src/h5ai/js/main-js.js +++ b/src/h5ai/js/main-js.js @@ -9,6 +9,7 @@ var H5aiJs = { factory: {}, init: function () { + this.h5ai = new this.factory.H5ai(h5aiOptions, h5aiLangs); this.pathCache = new this.factory.PathCache(); this.connector = new this.factory.Connector(); diff --git a/src/h5ai/js/main-php.js b/src/h5ai/js/main-php.js index 570b01cf..13e02424 100644 --- a/src/h5ai/js/main-php.js +++ b/src/h5ai/js/main-php.js @@ -9,6 +9,7 @@ var H5aiJs = { factory: {}, init: function () { + this.h5ai = new this.factory.H5ai(h5aiOptions, h5aiLangs); this.h5ai.init(); diff --git a/tools/wepp.ant.xml b/tools/wepp.ant.xml index 7bbb8d93..2339652e 100644 --- a/tools/wepp.ant.xml +++ b/tools/wepp.ant.xml @@ -6,7 +6,7 @@