mirror of
https://github.com/lrsjng/h5ai.git
synced 2025-05-25 20:44:53 -04:00
Updates to modulejs 0.1.
This commit is contained in:
parent
9266be9708
commit
cad50f76e2
36 changed files with 360 additions and 242 deletions
|
@ -1,5 +1,5 @@
|
||||||
|
|
||||||
module.define('core/entry', [jQuery, 'core/parser', 'model/entry'], function ($, parser, Entry) {
|
modulejs.define('core/entry', ['jQuery', 'core/parser', 'model/entry'], function ($, parser, Entry) {
|
||||||
|
|
||||||
var absHref = document.location.pathname.replace(/[^\/]*$/, '');
|
var absHref = document.location.pathname.replace(/[^\/]*$/, '');
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
|
|
||||||
module.define('core/event', [amplify], function (amplify) {
|
modulejs.define('core/event', ['amplify'], function (amplify) {
|
||||||
|
|
||||||
var sub = function (topic, callback) {
|
var sub = function (topic, callback) {
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
|
|
||||||
module.define('core/format', [moment], function (moment) {
|
modulejs.define('core/format', ['moment'], function (moment) {
|
||||||
|
|
||||||
var reParseSize = /^\s*([\.\d]+)\s*([kmgt]?)b?\s*$/i,
|
var reParseSize = /^\s*([\.\d]+)\s*([kmgt]?)b?\s*$/i,
|
||||||
treshhold = 1000.0,
|
treshhold = 1000.0,
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
|
|
||||||
module.define('core/parser', [jQuery], function ($) {
|
modulejs.define('core/parser', ['jQuery'], function ($) {
|
||||||
|
|
||||||
if ($('#data-apache-autoindex').length) {
|
if ($('#data-apache-autoindex').length) {
|
||||||
return module.require('parser/apache-autoindex');
|
return modulejs.require('parser/apache-autoindex');
|
||||||
}
|
}
|
||||||
if ($('#data-generic-json').length) {
|
if ($('#data-generic-json').length) {
|
||||||
return module.require('parser/generic-json');
|
return modulejs.require('parser/generic-json');
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
|
|
||||||
module.define('core/resource', ['core/settings'], function (settings) {
|
modulejs.define('core/resource', ['core/settings'], function (settings) {
|
||||||
|
|
||||||
var api = function () {
|
var api = function () {
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
|
|
||||||
module.define('core/settings', [H5AI_CONFIG], function (config) {
|
modulejs.define('core/settings', ['H5AI_CONFIG'], function (config) {
|
||||||
|
|
||||||
var defaults = {
|
var defaults = {
|
||||||
rootAbsHref: '/',
|
rootAbsHref: '/',
|
||||||
|
@ -12,7 +12,7 @@ module.define('core/settings', [H5AI_CONFIG], function (config) {
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
module.define('core/types', [H5AI_CONFIG], function (config) {
|
modulejs.define('core/types', ['H5AI_CONFIG'], function (config) {
|
||||||
|
|
||||||
var reEndsWithSlash = /\/$/,
|
var reEndsWithSlash = /\/$/,
|
||||||
reStartsWithDot = /^\./,
|
reStartsWithDot = /^\./,
|
||||||
|
@ -61,7 +61,7 @@ module.define('core/types', [H5AI_CONFIG], function (config) {
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
module.define('core/langs', [H5AI_CONFIG], function (config) {
|
modulejs.define('core/langs', ['H5AI_CONFIG'], function (config) {
|
||||||
|
|
||||||
var defaults = {
|
var defaults = {
|
||||||
lang: 'unknown',
|
lang: 'unknown',
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
|
|
||||||
module.define('core/store', [amplify], function (amplify) {
|
modulejs.define('core/store', ['amplify'], function (amplify) {
|
||||||
|
|
||||||
var put = function (key, value) {
|
var put = function (key, value) {
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
|
|
||||||
module.define('ext/crumb', [jQuery, 'core/settings', 'core/resource', 'core/entry'], function ($, allsettings, resource, entry) {
|
modulejs.define('ext/crumb', ['jQuery', 'core/settings', 'core/resource', 'core/entry'], function ($, allsettings, resource, entry) {
|
||||||
|
|
||||||
var defaults = {
|
var defaults = {
|
||||||
enabled: false
|
enabled: false
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
|
|
||||||
module.define('ext/custom', [jQuery, 'core/settings'], function ($, allsettings) {
|
modulejs.define('ext/custom', ['jQuery', 'core/settings'], function ($, allsettings) {
|
||||||
|
|
||||||
var defaults = {
|
var defaults = {
|
||||||
enabled: false,
|
enabled: false,
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
|
|
||||||
module.define('ext/download', [jQuery, 'core/settings', 'core/resource', 'core/event'], function ($, allsettings, resource, event) {
|
modulejs.define('ext/download', ['jQuery', 'core/settings', 'core/resource', 'core/event'], function ($, allsettings, resource, event) {
|
||||||
|
|
||||||
var defaults = {
|
var defaults = {
|
||||||
enabled: false,
|
enabled: false,
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
|
|
||||||
module.define('ext/filter', [jQuery, 'core/settings', 'core/resource'], function ($, allsettings, resource) {
|
modulejs.define('ext/filter', ['jQuery', 'core/settings', 'core/resource'], function ($, allsettings, resource) {
|
||||||
|
|
||||||
var defaults = {
|
var defaults = {
|
||||||
enabled: false
|
enabled: false
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
|
|
||||||
module.define('ext/folderstatus', [jQuery, 'core/settings'], function ($, allsettings) {
|
modulejs.define('ext/folderstatus', ['jQuery', 'core/settings'], function ($, allsettings) {
|
||||||
|
|
||||||
var defaults = {
|
var defaults = {
|
||||||
enabled: false,
|
enabled: false,
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
|
|
||||||
module.define('ext/l10n', [jQuery, 'core/settings', 'core/langs', 'core/format', 'core/store', 'core/event'], function ($, allsettings, langs, format, store, event) {
|
modulejs.define('ext/l10n', ['jQuery', 'core/settings', 'core/langs', 'core/format', 'core/store', 'core/event'], function ($, allsettings, langs, format, store, event) {
|
||||||
|
|
||||||
var defaults = {
|
var defaults = {
|
||||||
enabled: true,
|
enabled: true,
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
|
|
||||||
module.define('ext/link-hover-states', [jQuery, 'core/settings'], function ($, allsettings) {
|
modulejs.define('ext/link-hover-states', ['jQuery', 'core/settings'], function ($, allsettings) {
|
||||||
|
|
||||||
var defaults = {
|
var defaults = {
|
||||||
enabled: false
|
enabled: false
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
|
|
||||||
module.define('ext/mode', [jQuery, 'core/settings', 'core/parser'], function ($, allsettings, parser) {
|
modulejs.define('ext/mode', ['jQuery', 'core/settings', 'core/parser'], function ($, allsettings, parser) {
|
||||||
|
|
||||||
var defaults = {
|
var defaults = {
|
||||||
enabled: false,
|
enabled: false,
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
|
|
||||||
module.define('ext/preview-img', [jQuery, 'core/settings', 'core/resource', 'core/store', 'core/entry'], function ($, allsettings, resource, store, entry) {
|
modulejs.define('ext/preview-img', ['jQuery', 'core/settings', 'core/resource', 'core/store', 'core/entry'], function ($, allsettings, resource, store, entry) {
|
||||||
|
|
||||||
var defaults = {
|
var defaults = {
|
||||||
enabled: false,
|
enabled: false,
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
|
|
||||||
module.define('ext/qrcode', [jQuery, 'core/settings', 'core/event'], function ($, allsettings, event) {
|
modulejs.define('ext/qrcode', ['jQuery', 'core/settings', 'core/event'], function ($, allsettings, event) {
|
||||||
|
|
||||||
var defaults = {
|
var defaults = {
|
||||||
enabled: false,
|
enabled: false,
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
|
|
||||||
module.define('ext/select', [jQuery, 'core/settings', 'core/event'], function ($, allsettings, event) {
|
modulejs.define('ext/select', ['jQuery', 'core/settings', 'core/event'], function ($, allsettings, event) {
|
||||||
|
|
||||||
var defaults = {
|
var defaults = {
|
||||||
enabled: false
|
enabled: false
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
|
|
||||||
module.define('ext/sort', [jQuery, 'core/settings', 'core/resource', 'core/store'], function ($, allsettings, resource, store) {
|
modulejs.define('ext/sort', ['jQuery', 'core/settings', 'core/resource', 'core/store'], function ($, allsettings, resource, store) {
|
||||||
|
|
||||||
var defaults = {
|
var defaults = {
|
||||||
enabled: false,
|
enabled: false,
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
|
|
||||||
module.define('ext/statusbar', [jQuery, 'core/settings', 'core/format', 'core/event', 'core/entry'], function ($, allsettings, format, event, entry) {
|
modulejs.define('ext/statusbar', ['jQuery', 'core/settings', 'core/format', 'core/event', 'core/entry'], function ($, allsettings, format, event, entry) {
|
||||||
|
|
||||||
var defaults = {
|
var defaults = {
|
||||||
enabled: false
|
enabled: false
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
|
|
||||||
module.define('ext/thumbnails', [jQuery, 'core/settings', 'core/resource', 'core/entry'], function ($, allsettings, resource, entry) {
|
modulejs.define('ext/thumbnails', ['jQuery', 'core/settings', 'core/resource', 'core/entry'], function ($, allsettings, resource, entry) {
|
||||||
|
|
||||||
var defaults = {
|
var defaults = {
|
||||||
enabled: false,
|
enabled: false,
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
|
|
||||||
module.define('ext/title', [jQuery, 'core/settings', 'core/entry'], function ($, allsettings, entry) {
|
modulejs.define('ext/title', ['jQuery', 'core/settings', 'core/entry'], function ($, allsettings, entry) {
|
||||||
|
|
||||||
var defaults = {
|
var defaults = {
|
||||||
enabled: false
|
enabled: false
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
|
|
||||||
module.define('ext/tree', [jQuery, 'core/settings', 'core/resource', 'core/event', 'core/entry', 'core/parser'], function ($, allsettings, resource, event, entry, parser) {
|
modulejs.define('ext/tree', ['jQuery', 'core/settings', 'core/resource', 'core/event', 'core/entry', 'core/parser'], function ($, allsettings, resource, event, entry, parser) {
|
||||||
|
|
||||||
var defaults = {
|
var defaults = {
|
||||||
enabled: false,
|
enabled: false,
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
|
|
||||||
module.define('h5ai-info', [jQuery, 'core/resource'], function ($, resource) {
|
modulejs.define('h5ai-info', ['jQuery', 'core/resource'], function ($, resource) {
|
||||||
|
|
||||||
var setCheckResult = function (id, result) {
|
var setCheckResult = function (id, result) {
|
||||||
|
|
||||||
|
|
|
@ -1,18 +1,19 @@
|
||||||
|
|
||||||
module.define('h5ai-main', [jQuery, 'core/event', 'core/settings'], function ($, event, settings) {
|
modulejs.define('h5ai-main', ['jQuery', 'core/event', 'core/settings'], function ($, event, settings) {
|
||||||
|
|
||||||
event.pub('beforeView');
|
event.pub('beforeView');
|
||||||
|
|
||||||
module.require('view/extended');
|
modulejs.require('view/extended');
|
||||||
module.require('view/viewmode');
|
modulejs.require('view/viewmode');
|
||||||
module.require('view/spacing');
|
modulejs.require('view/spacing');
|
||||||
|
|
||||||
event.pub('beforeExt');
|
event.pub('beforeExt');
|
||||||
|
|
||||||
_.each(module.getIds(/^ext\/.+/), function (id) {
|
// _.each(modulejs.getIds(/^ext\/.+/), function (id) {
|
||||||
|
|
||||||
module.require(id);
|
// modulejs.require(id);
|
||||||
});
|
// });
|
||||||
|
modulejs.require(/^ext\/.+/);
|
||||||
|
|
||||||
event.pub('ready');
|
event.pub('ready');
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,198 +0,0 @@
|
||||||
/*!
|
|
||||||
* module.js
|
|
||||||
* author: Lars Jung
|
|
||||||
* license: MIT
|
|
||||||
*/
|
|
||||||
|
|
||||||
(function (global, name) {
|
|
||||||
'use strict';
|
|
||||||
|
|
||||||
var err = function (message) {
|
|
||||||
|
|
||||||
throw name + ' exception: ' + message;
|
|
||||||
};
|
|
||||||
|
|
||||||
if (!_) {
|
|
||||||
err(name + ' depends on underscore');
|
|
||||||
}
|
|
||||||
|
|
||||||
var self = {},
|
|
||||||
previous = global[name],
|
|
||||||
|
|
||||||
noConflict = function () {
|
|
||||||
|
|
||||||
if (global[name] === self) {
|
|
||||||
global[name] = previous;
|
|
||||||
}
|
|
||||||
return self;
|
|
||||||
},
|
|
||||||
|
|
||||||
definitions = {},
|
|
||||||
modules = {},
|
|
||||||
|
|
||||||
findDepsUnsafe = function (ids) {
|
|
||||||
|
|
||||||
var self = this;
|
|
||||||
var deps = [];
|
|
||||||
|
|
||||||
if (_.isString(ids)) {
|
|
||||||
|
|
||||||
var def = definitions[ids];
|
|
||||||
if (def) {
|
|
||||||
_.each(def.deps, function (id) {
|
|
||||||
|
|
||||||
deps = deps.concat(findDepsUnsafe(id));
|
|
||||||
});
|
|
||||||
deps.push(def.id);
|
|
||||||
} else {
|
|
||||||
deps.push(ids);
|
|
||||||
}
|
|
||||||
} else if (_.isArray(ids)) {
|
|
||||||
|
|
||||||
_.each(ids, function (id) {
|
|
||||||
|
|
||||||
deps = deps.concat(findDepsUnsafe(id));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
return _.uniq(deps);
|
|
||||||
},
|
|
||||||
|
|
||||||
findDeps = function (ids) {
|
|
||||||
|
|
||||||
if (ids) {
|
|
||||||
try {
|
|
||||||
return findDepsUnsafe(ids);
|
|
||||||
} catch (e) {
|
|
||||||
err('cyclic dependencies for ids "' + ids + '"');
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
var res = {};
|
|
||||||
_.each(definitions, function (def, id) {
|
|
||||||
|
|
||||||
res[id] = findDeps(id);
|
|
||||||
});
|
|
||||||
return res;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
log = function (showInvDeps) {
|
|
||||||
|
|
||||||
var allDeps = findDeps(),
|
|
||||||
allInvDeps = {},
|
|
||||||
out = '';
|
|
||||||
|
|
||||||
if (!showInvDeps) {
|
|
||||||
_.each(allDeps, function (deps, id) {
|
|
||||||
|
|
||||||
deps.pop();
|
|
||||||
out += (_.has(modules, id) ? '* ' : ' ') + id + ' -> [ ' + deps.join(', ') + ' ]\n';
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
_.each(definitions, function (def) {
|
|
||||||
|
|
||||||
var invDeps = [];
|
|
||||||
_.each(allDeps, function (depIds, id) {
|
|
||||||
|
|
||||||
if (_.indexOf(depIds, def.id) >= 0) {
|
|
||||||
invDeps.push(id);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
allInvDeps[def.id] = invDeps;
|
|
||||||
});
|
|
||||||
|
|
||||||
_.each(allInvDeps, function (invDeps, id) {
|
|
||||||
|
|
||||||
invDeps.shift();
|
|
||||||
out += (_.has(modules, id) ? '* ' : ' ') + id + ' <- [ ' + invDeps.join(', ') + ' ]\n';
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
return out;
|
|
||||||
},
|
|
||||||
|
|
||||||
define = function (id, deps, fn) {
|
|
||||||
|
|
||||||
if (_.isFunction(deps)) {
|
|
||||||
fn = deps;
|
|
||||||
deps = [];
|
|
||||||
}
|
|
||||||
if (!_.isString(id)) {
|
|
||||||
err('id must be a string "' + id + '"');
|
|
||||||
}
|
|
||||||
if (!_.isArray(deps)) {
|
|
||||||
err('dependencies must be an array "' + deps + '"');
|
|
||||||
}
|
|
||||||
if (!_.isFunction(fn)) {
|
|
||||||
err('constructor must be a function "' + fn + '"');
|
|
||||||
}
|
|
||||||
if (definitions[id]) {
|
|
||||||
err('id already defined "' + id + '"');
|
|
||||||
}
|
|
||||||
|
|
||||||
definitions[id] = {
|
|
||||||
id: id,
|
|
||||||
deps: deps,
|
|
||||||
fn: fn
|
|
||||||
};
|
|
||||||
},
|
|
||||||
|
|
||||||
getIds = function (regexp) {
|
|
||||||
|
|
||||||
var ids = _.map(definitions, function (def) {
|
|
||||||
|
|
||||||
return def.id;
|
|
||||||
});
|
|
||||||
|
|
||||||
if (!_.isRegExp(regexp)) {
|
|
||||||
return ids;
|
|
||||||
}
|
|
||||||
|
|
||||||
return _.filter(ids, function (id) {
|
|
||||||
|
|
||||||
return regexp.test(id);
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
isDefined = function (id) {
|
|
||||||
|
|
||||||
return _.isString(id) ? !!definitions[id] : !!id;
|
|
||||||
},
|
|
||||||
|
|
||||||
require = function (id) {
|
|
||||||
|
|
||||||
if (!_.isString(id)) {
|
|
||||||
return id;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (_.has(modules, id)) {
|
|
||||||
return modules[id];
|
|
||||||
}
|
|
||||||
|
|
||||||
var def = definitions[id];
|
|
||||||
if (!def) {
|
|
||||||
err('id not defined "' + id + '"');
|
|
||||||
}
|
|
||||||
|
|
||||||
var deps = _.map(def.deps, function (depId) {
|
|
||||||
|
|
||||||
return require(depId);
|
|
||||||
});
|
|
||||||
|
|
||||||
var obj = def.fn.apply(this, deps);
|
|
||||||
modules[id] = obj;
|
|
||||||
return obj;
|
|
||||||
};
|
|
||||||
|
|
||||||
_.extend(self, {
|
|
||||||
noConflict: noConflict,
|
|
||||||
log: log,
|
|
||||||
define: define,
|
|
||||||
require: require,
|
|
||||||
getIds: getIds,
|
|
||||||
isDefined: isDefined
|
|
||||||
});
|
|
||||||
|
|
||||||
global[name] = self;
|
|
||||||
|
|
||||||
}(this, 'module'));
|
|
168
src/_h5ai/js/inc/lib/modulejs-0.1.js
Normal file
168
src/_h5ai/js/inc/lib/modulejs-0.1.js
Normal file
|
@ -0,0 +1,168 @@
|
||||||
|
/*! modulejs 0.1 - //larsjung.de/qrcode - MIT License */
|
||||||
|
|
||||||
|
(function (global, _, name) {
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
|
||||||
|
// throws error
|
||||||
|
var err = function (condition, code, message) {
|
||||||
|
|
||||||
|
if (condition) {
|
||||||
|
if (console && console.error) {
|
||||||
|
console.error(name + ' error: [' + code + '] ' + message);
|
||||||
|
}
|
||||||
|
throw {
|
||||||
|
code: code,
|
||||||
|
msg: name + ' error: ' + message
|
||||||
|
};
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
// make sure underscore is loaded
|
||||||
|
err(!_, 1, name + ' requires underscore');
|
||||||
|
|
||||||
|
|
||||||
|
// ModuleJs
|
||||||
|
// ========
|
||||||
|
var ModuleJs = function () {
|
||||||
|
|
||||||
|
var self = this;
|
||||||
|
|
||||||
|
// module definitions
|
||||||
|
self.definitions = {};
|
||||||
|
|
||||||
|
// module instances
|
||||||
|
self.instances = {};
|
||||||
|
|
||||||
|
// define
|
||||||
|
// ------
|
||||||
|
// Defines a module.
|
||||||
|
self.define = function (id, deps, fn) {
|
||||||
|
|
||||||
|
// sort arguments
|
||||||
|
if (_.isFunction(deps)) {
|
||||||
|
fn = deps;
|
||||||
|
deps = [];
|
||||||
|
}
|
||||||
|
// check arguments
|
||||||
|
err(!_.isString(id), 11, 'id must be a string "' + id + '"');
|
||||||
|
err(self.definitions[id], 12, 'id already defined "' + id + '"');
|
||||||
|
err(!_.isFunction(fn), 13, 'constructor for "' + id + '" must be a function "' + fn + '"');
|
||||||
|
err(!_.isArray(deps), 14, 'dependencies for "' + id + '" must be an array "' + deps + '"');
|
||||||
|
|
||||||
|
// map definition
|
||||||
|
self.definitions[id] = {
|
||||||
|
id: id,
|
||||||
|
deps: deps,
|
||||||
|
fn: fn
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
// predefined
|
||||||
|
// ----------
|
||||||
|
// Registers a predefined object.
|
||||||
|
self.predefined = function (id, instance, check) {
|
||||||
|
|
||||||
|
if (_.isFunction(check)) {
|
||||||
|
check = !!check();
|
||||||
|
}
|
||||||
|
if (!_.isBoolean(check)) {
|
||||||
|
check = instance !== undefined;
|
||||||
|
}
|
||||||
|
err(!check, 21, 'check for predefined "' + id + '" failed');
|
||||||
|
|
||||||
|
self.define(id, [], function () {
|
||||||
|
|
||||||
|
return instance;
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
// Returns an instance for `id`, checked against require-`stack` for
|
||||||
|
// cyclic dependencies.
|
||||||
|
self._require = function (id, stack) {
|
||||||
|
|
||||||
|
err(!_.isString(id), 31, 'id must be a string "' + id + '"');
|
||||||
|
|
||||||
|
if (_.has(self.instances, id)) {
|
||||||
|
return self.instances[id];
|
||||||
|
}
|
||||||
|
|
||||||
|
var def = self.definitions[id];
|
||||||
|
err(!def, 32, 'id not defined "' + id + '"');
|
||||||
|
|
||||||
|
stack = (stack || []).slice(0);
|
||||||
|
stack.push(id);
|
||||||
|
var deps = _.map(def.deps, function (depId) {
|
||||||
|
|
||||||
|
err(_.indexOf(stack, depId) >= 0, 33, 'cyclic dependencies: ' + stack + ' & ' + depId);
|
||||||
|
|
||||||
|
return self._require(depId, stack);
|
||||||
|
});
|
||||||
|
|
||||||
|
var obj = def.fn.apply(global, deps);
|
||||||
|
self.instances[id] = obj;
|
||||||
|
return obj;
|
||||||
|
};
|
||||||
|
|
||||||
|
// require
|
||||||
|
// -------
|
||||||
|
// Returns an instance for `id`.
|
||||||
|
self.require = function (arg) {
|
||||||
|
|
||||||
|
if (_.isArray(arg)) {
|
||||||
|
|
||||||
|
return _.map(arg, function (id) {
|
||||||
|
|
||||||
|
return self._require(id);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_.isRegExp(arg)) {
|
||||||
|
|
||||||
|
var res = {};
|
||||||
|
_.each(_.keys(self.definitions), function (id) {
|
||||||
|
|
||||||
|
if (arg.test(id)) {
|
||||||
|
res[id] = self._require(id);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
return self._require(arg);
|
||||||
|
};
|
||||||
|
|
||||||
|
// Registers public API on the global object.
|
||||||
|
self.register = function (name) {
|
||||||
|
|
||||||
|
var previous = global[name],
|
||||||
|
api = {
|
||||||
|
define: self.define,
|
||||||
|
predefined: self.predefined,
|
||||||
|
require: self.require,
|
||||||
|
noConflict: function () {
|
||||||
|
|
||||||
|
if (global[name] === api) {
|
||||||
|
global[name] = previous;
|
||||||
|
}
|
||||||
|
return api;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
global[name] = api;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
var modulejs = new ModuleJs();
|
||||||
|
modulejs.register(name);
|
||||||
|
|
||||||
|
|
||||||
|
// debugger
|
||||||
|
// --------
|
||||||
|
var debugName = name.toUpperCase();
|
||||||
|
if (_.isFunction(global[debugName])) {
|
||||||
|
global[debugName] = new global[debugName](modulejs);
|
||||||
|
}
|
||||||
|
|
||||||
|
}(this, _, 'modulejs'));
|
133
src/_h5ai/js/inc/lib/modulejs-debug-0.1.js
Normal file
133
src/_h5ai/js/inc/lib/modulejs-debug-0.1.js
Normal file
|
@ -0,0 +1,133 @@
|
||||||
|
/*! modulejs-debug 0.1 - //larsjung.de/qrcode - MIT License */
|
||||||
|
|
||||||
|
(function (global, _, name) {
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
|
||||||
|
var Debugger = function (modulejs) {
|
||||||
|
|
||||||
|
|
||||||
|
var self = this;
|
||||||
|
|
||||||
|
|
||||||
|
self.modulejs = modulejs;
|
||||||
|
|
||||||
|
|
||||||
|
self.clear = function () {
|
||||||
|
|
||||||
|
modulejs.definitions = {};
|
||||||
|
modulejs.instances = {};
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
self.isDefined = function (id) {
|
||||||
|
|
||||||
|
return _.isString(id) && !!modulejs.definitions[id];
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
self.ids = function (regexp) {
|
||||||
|
|
||||||
|
var ids = _.map(modulejs.definitions, function (def) {
|
||||||
|
|
||||||
|
return def.id;
|
||||||
|
});
|
||||||
|
|
||||||
|
if (!_.isRegExp(regexp)) {
|
||||||
|
return ids;
|
||||||
|
}
|
||||||
|
|
||||||
|
return _.filter(ids, function (id) {
|
||||||
|
|
||||||
|
return regexp.test(id);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
var _deps = function (id, stack) {
|
||||||
|
|
||||||
|
var deps = [];
|
||||||
|
|
||||||
|
var def = modulejs.definitions[id];
|
||||||
|
if (def) {
|
||||||
|
stack = (stack || []).slice(0);
|
||||||
|
stack.push(id);
|
||||||
|
_.each(def.deps, function (depId) {
|
||||||
|
|
||||||
|
if (_.indexOf(stack, depId) >= 0) {
|
||||||
|
deps = deps.concat([false, def.id]);
|
||||||
|
return deps;
|
||||||
|
}
|
||||||
|
|
||||||
|
deps = deps.concat(_deps(depId, stack));
|
||||||
|
deps.push(depId);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
return _.uniq(deps);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
self.deps = function (ids) {
|
||||||
|
|
||||||
|
if (_.isString(ids)) {
|
||||||
|
|
||||||
|
return _deps(ids);
|
||||||
|
} else if (_.isArray(ids)) {
|
||||||
|
|
||||||
|
var deps = [];
|
||||||
|
_.each(ids, function (id) {
|
||||||
|
|
||||||
|
deps = deps.concat(_deps(id));
|
||||||
|
});
|
||||||
|
return _.uniq(deps);
|
||||||
|
}
|
||||||
|
|
||||||
|
var res = {};
|
||||||
|
_.each(modulejs.definitions, function (def, id) {
|
||||||
|
|
||||||
|
res[id] = _deps(id);
|
||||||
|
});
|
||||||
|
return res;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
self.log = function (showInvDeps) {
|
||||||
|
|
||||||
|
var allDeps = self.deps(),
|
||||||
|
allInvDeps = {},
|
||||||
|
out = '\n';
|
||||||
|
|
||||||
|
if (!showInvDeps) {
|
||||||
|
_.each(allDeps, function (deps, id) {
|
||||||
|
|
||||||
|
out += (_.has(modulejs.instances, id) ? '* ' : ' ') + id + ' -> [ ' + deps.join(', ') + ' ]\n';
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
_.each(modulejs.definitions, function (def) {
|
||||||
|
|
||||||
|
var invDeps = [];
|
||||||
|
_.each(allDeps, function (depIds, id) {
|
||||||
|
|
||||||
|
if (_.indexOf(depIds, def.id) >= 0) {
|
||||||
|
invDeps.push(id);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
allInvDeps[def.id] = invDeps;
|
||||||
|
});
|
||||||
|
|
||||||
|
_.each(allInvDeps, function (invDeps, id) {
|
||||||
|
|
||||||
|
out += (_.has(modulejs.instances, id) ? '* ' : ' ') + id + ' <- [ ' + invDeps.join(', ') + ' ]\n';
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
return out;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
global[name.toUpperCase()] = Debugger;
|
||||||
|
|
||||||
|
|
||||||
|
}(this, _, 'modulejs'));
|
|
@ -2,6 +2,12 @@
|
||||||
(function ($) {
|
(function ($) {
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
|
modulejs.predefined('jQuery', jQuery);
|
||||||
|
modulejs.predefined('amplify', amplify);
|
||||||
|
modulejs.predefined('moment', moment);
|
||||||
|
modulejs.predefined('H5AI_CONFIG', H5AI_CONFIG);
|
||||||
|
|
||||||
|
|
||||||
// @include "core/entry.js"
|
// @include "core/entry.js"
|
||||||
// @include "core/event.js"
|
// @include "core/event.js"
|
||||||
// @include "core/format.js"
|
// @include "core/format.js"
|
||||||
|
@ -42,7 +48,7 @@
|
||||||
|
|
||||||
$(function () {
|
$(function () {
|
||||||
|
|
||||||
module.require($('body').attr('id'));
|
modulejs.require($('body').attr('id'));
|
||||||
});
|
});
|
||||||
|
|
||||||
}(jQuery));
|
}(jQuery));
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
|
|
||||||
module.define('model/entry', [jQuery, 'core/types'], function ($, types) {
|
modulejs.define('model/entry', ['jQuery', 'core/types'], function ($, types) {
|
||||||
|
|
||||||
var domain = document.domain,
|
var domain = document.domain,
|
||||||
location = document.location.pathname.replace(/[^\/]*$/, ''),
|
location = document.location.pathname.replace(/[^\/]*$/, ''),
|
||||||
|
@ -132,7 +132,14 @@ module.define('model/entry', [jQuery, 'core/types'], function ($, types) {
|
||||||
return self;
|
return self;
|
||||||
},
|
},
|
||||||
|
|
||||||
folderstatus = module.isDefined('ext/folderstatus') ? module.require('ext/folderstatus') : {},
|
// folderstatus = module.isDefined('ext/folderstatus') ? module.require('ext/folderstatus') : {},
|
||||||
|
folderstatus = (function () {
|
||||||
|
|
||||||
|
var id = 'ext/folderstatus',
|
||||||
|
res = modulejs.require(new RegExp('^' + id + '$'));
|
||||||
|
|
||||||
|
return res.id ? res.id : {};
|
||||||
|
}()),
|
||||||
|
|
||||||
fetchStatus = function (absHref, callback) {
|
fetchStatus = function (absHref, callback) {
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
|
|
||||||
module.define('parser/apache-autoindex', [jQuery, 'core/settings', 'core/format', 'model/entry'], function ($, settings, format, Entry) {
|
modulejs.define('parser/apache-autoindex', ['jQuery', 'core/settings', 'core/format', 'model/entry'], function ($, settings, format, Entry) {
|
||||||
|
|
||||||
var parseTableRow = function (absHref, tr) {
|
var parseTableRow = function (absHref, tr) {
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
|
|
||||||
module.define('parser/generic-json', [jQuery, 'core/settings', 'model/entry'], function ($, settings, Entry) {
|
modulejs.define('parser/generic-json', ['jQuery', 'core/settings', 'model/entry'], function ($, settings, Entry) {
|
||||||
|
|
||||||
var parser = {
|
var parser = {
|
||||||
id: 'generic-json',
|
id: 'generic-json',
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
|
|
||||||
module.define('view/extended', [jQuery, 'core/settings', 'core/resource', 'core/format', 'core/event', 'core/entry'], function ($, allsettings, resource, format, event, entry) {
|
modulejs.define('view/extended', ['jQuery', 'core/settings', 'core/resource', 'core/format', 'core/event', 'core/entry'], function ($, allsettings, resource, format, event, entry) {
|
||||||
|
|
||||||
var defaults = {
|
var defaults = {
|
||||||
modes: ['details', 'icons'],
|
modes: ['details', 'icons'],
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
|
|
||||||
module.define('view/spacing', [jQuery, 'core/settings', 'core/event'], function ($, allsettings, event) {
|
modulejs.define('view/spacing', ['jQuery', 'core/settings', 'core/event'], function ($, allsettings, event) {
|
||||||
|
|
||||||
var defaults = {
|
var defaults = {
|
||||||
maxWidth: 960,
|
maxWidth: 960,
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
|
|
||||||
module.define('view/viewmode', [jQuery, 'core/settings', 'core/resource', 'core/store'], function ($, allsettings, resource, store) {
|
modulejs.define('view/viewmode', ['jQuery', 'core/settings', 'core/resource', 'core/store'], function ($, allsettings, resource, store) {
|
||||||
|
|
||||||
var defaults = {
|
var defaults = {
|
||||||
modes: ['details', 'list', 'icons'],
|
modes: ['details', 'list', 'icons'],
|
||||||
|
|
|
@ -10,7 +10,8 @@
|
||||||
// underscore libs
|
// underscore libs
|
||||||
// ---------------
|
// ---------------
|
||||||
// @include "inc/lib/underscore-1.3.1.min.js"
|
// @include "inc/lib/underscore-1.3.1.min.js"
|
||||||
// @include "inc/lib/module.js"
|
// @-include "inc/lib/modulejs-debug-0.1.js"
|
||||||
|
// @include "inc/lib/modulejs-0.1.js"
|
||||||
|
|
||||||
// other libs
|
// other libs
|
||||||
// ----------
|
// ----------
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue