2007-09-21 13:54:30 +00:00
|
|
|
//
|
|
|
|
// The Antville Project
|
|
|
|
// http://code.google.com/p/antville
|
|
|
|
//
|
|
|
|
// Copyright 2001-2007 by The Antville People
|
|
|
|
//
|
|
|
|
// Licensed under the Apache License, Version 2.0 (the ``License'');
|
|
|
|
// you may not use this file except in compliance with the License.
|
|
|
|
// You may obtain a copy of the License at
|
|
|
|
//
|
|
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
//
|
|
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
|
|
// distributed under the License is distributed on an ``AS IS'' BASIS,
|
|
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
// See the License for the specific language governing permissions and
|
|
|
|
// limitations under the License.
|
|
|
|
//
|
2007-09-22 21:48:33 +00:00
|
|
|
// $Revision:3337 $
|
|
|
|
// $LastChangedBy:piefke3000 $
|
|
|
|
// $LastChangedDate:2007-09-21 15:54:30 +0200 (Fri, 21 Sep 2007) $
|
2007-09-21 13:54:30 +00:00
|
|
|
// $URL$
|
|
|
|
//
|
|
|
|
|
2007-11-03 20:18:18 +00:00
|
|
|
Skins.prototype.constructor = function(name, parent) {
|
|
|
|
this.name = name;
|
|
|
|
this.parent = parent;
|
|
|
|
return this;
|
|
|
|
}
|
|
|
|
|
2007-09-21 13:54:30 +00:00
|
|
|
Skins.prototype.getPermission = function(action) {
|
2007-11-03 20:18:18 +00:00
|
|
|
return res.handlers.layout.getPermission("main");
|
2007-09-21 13:54:30 +00:00
|
|
|
};
|
|
|
|
|
2007-11-03 20:18:18 +00:00
|
|
|
Skins.prototype.getChildElement = function(name) {
|
2008-03-21 22:16:54 +00:00
|
|
|
if (this.parent) {
|
|
|
|
var groupName = path[path.length - 1].name;
|
|
|
|
var group = this.parent.get(groupName);
|
|
|
|
if (group) {
|
|
|
|
var skin = group.get(name);
|
|
|
|
if (skin) {
|
|
|
|
return skin;
|
|
|
|
}
|
|
|
|
}
|
2008-03-26 12:33:54 +00:00
|
|
|
if (global[groupName] || groupName === "Global") {
|
2008-03-21 22:16:54 +00:00
|
|
|
return new Skin(groupName, name);
|
|
|
|
}
|
|
|
|
}
|
2007-11-03 20:18:18 +00:00
|
|
|
return new Skins(name, this);
|
2007-11-23 17:57:59 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
// FIXME: It's not totally clear why this is necessary;
|
|
|
|
// but somehow Helma does not provide the correct path...
|
2008-01-11 21:09:44 +00:00
|
|
|
// FIXME 2: Probably obsolete thanks to a custom Layout.href() method
|
|
|
|
/*
|
2007-11-23 17:57:59 +00:00
|
|
|
Skins.prototype.href = function(action) {
|
|
|
|
res.push();
|
|
|
|
res.write(res.handlers.site.href());
|
|
|
|
res.write("layout/skins/");
|
|
|
|
action && (res.write(action));
|
|
|
|
return res.pop();
|
|
|
|
};
|
2008-01-11 21:09:44 +00:00
|
|
|
*/
|
2007-11-03 20:18:18 +00:00
|
|
|
|
2007-09-21 13:54:30 +00:00
|
|
|
Skins.prototype.main_action = function() {
|
2008-03-27 15:10:31 +00:00
|
|
|
if (!this._parent) {
|
|
|
|
res.redirect(res.handlers.layout.skins.href());
|
|
|
|
}
|
2008-03-26 12:33:54 +00:00
|
|
|
res.data.title = gettext("Custom skins of {0}", this._parent.title);
|
|
|
|
res.data.list = this.renderSkinAsString("Skins#basic");
|
2008-03-21 22:16:54 +00:00
|
|
|
res.data.body = this.renderSkinAsString("Skins#main");
|
|
|
|
res.handlers.site.renderSkin("Site#page");
|
2007-11-03 20:18:18 +00:00
|
|
|
return;
|
|
|
|
};
|
|
|
|
|
|
|
|
Skins.prototype.getOutline = function(type) {
|
|
|
|
var key = "outline:" + type;
|
|
|
|
var outline = this.cache[key];
|
2008-03-21 22:16:54 +00:00
|
|
|
if (false && outline) {
|
2007-11-03 20:18:18 +00:00
|
|
|
return outline;
|
|
|
|
}
|
|
|
|
|
|
|
|
var prototype, skin, subskins, names, skins = [];
|
|
|
|
var options = Skin.getPrototypeOptions();
|
|
|
|
|
|
|
|
for each (var option in options) {
|
|
|
|
prototype = option.value;
|
|
|
|
names = [];
|
|
|
|
for (var name in app.skinfiles[prototype]) {
|
|
|
|
if (name === prototype && type !== "custom") {
|
|
|
|
skin = createSkin(app.skinfiles[prototype][name]);
|
|
|
|
subskins = skin.getSubskinNames();
|
|
|
|
for each (var subskin in subskins) {
|
|
|
|
names.push(subskin);
|
|
|
|
}
|
|
|
|
} else if (name !== prototype && type === "custom") {
|
|
|
|
names.push(name);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
names.sort();
|
|
|
|
skins.push([prototype, names]);
|
|
|
|
}
|
2008-03-26 12:33:54 +00:00
|
|
|
|
2007-09-21 13:54:30 +00:00
|
|
|
res.push();
|
|
|
|
for each (var item in skins) {
|
2007-09-30 23:59:13 +00:00
|
|
|
prototype = item[0];
|
2008-03-26 12:33:54 +00:00
|
|
|
skin = item[1];
|
|
|
|
if (skin && skin.length > 0) {
|
2007-09-21 13:54:30 +00:00
|
|
|
html.openTag("li");
|
2008-03-21 22:16:54 +00:00
|
|
|
html.openTag("a", {href: "#", name: prototype, id: prototype});
|
2007-09-30 23:59:13 +00:00
|
|
|
res.write(prototype);
|
2008-03-21 22:16:54 +00:00
|
|
|
html.closeTag("a");
|
2007-09-21 13:54:30 +00:00
|
|
|
html.openTag("ul");
|
2008-03-26 12:33:54 +00:00
|
|
|
for each (var name in skin) {
|
|
|
|
subskin = this.getSkin(prototype, name) ||
|
|
|
|
new Skin(prototype, name);
|
|
|
|
subskin.renderSkin("Skin#listItem");
|
2007-09-21 13:54:30 +00:00
|
|
|
}
|
|
|
|
html.closeTag("ul");
|
|
|
|
html.closeTag("li");
|
|
|
|
}
|
|
|
|
}
|
2007-11-03 20:18:18 +00:00
|
|
|
return this.cache[key] = res.pop();
|
2007-09-21 13:54:30 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
Skins.prototype.create_action = function() {
|
2007-09-30 23:59:13 +00:00
|
|
|
var skin = new Skin(req.data.prototype, req.data.name);
|
|
|
|
if (req.postParams.save) {
|
2007-09-21 13:54:30 +00:00
|
|
|
try {
|
2007-09-30 23:59:13 +00:00
|
|
|
if (!skin.equals(req.postParams.source)) {
|
|
|
|
skin.setSource(req.postParams.source);
|
2007-09-21 13:54:30 +00:00
|
|
|
this.add(skin);
|
|
|
|
}
|
2007-09-30 23:59:13 +00:00
|
|
|
res.message = gettext("The changes were saved successfully.");
|
|
|
|
if (req.postParams.save == 1) {
|
|
|
|
res.redirect(skin.href("edit"));
|
|
|
|
} else {
|
2008-04-15 22:02:29 +00:00
|
|
|
res.redirect(res.handlers.layout.skins.href("modified"));
|
2007-09-30 23:59:13 +00:00
|
|
|
}
|
2007-09-21 13:54:30 +00:00
|
|
|
} catch (ex) {
|
|
|
|
res.message = ex;
|
|
|
|
app.log(ex);
|
|
|
|
}
|
|
|
|
} else {
|
2007-09-30 23:59:13 +00:00
|
|
|
if (skin.getSource()) {
|
2008-04-12 18:55:08 +00:00
|
|
|
res.data.title = gettext("Edit skin {0}.{1} of {2}",
|
|
|
|
skin.prototype, skin.name, res.handlers.site.title);
|
2007-09-30 23:59:13 +00:00
|
|
|
} else {
|
2008-04-12 18:55:08 +00:00
|
|
|
res.data.title = gettext('Create a custom skin of {0}',
|
2008-03-26 12:33:54 +00:00
|
|
|
res.handlers.site.title);
|
2007-09-30 23:59:13 +00:00
|
|
|
}
|
2007-09-21 13:54:30 +00:00
|
|
|
}
|
2007-09-30 23:59:13 +00:00
|
|
|
res.data.action = this.href(req.action);
|
|
|
|
res.data.body = skin.renderSkinAsString("Skin#edit");
|
2008-03-26 12:33:54 +00:00
|
|
|
this.renderSkin("Skins#page");
|
2007-09-21 13:54:30 +00:00
|
|
|
return;
|
|
|
|
};
|
|
|
|
|
|
|
|
Skins.prototype.modified_action = function() {
|
|
|
|
res.data.title = gettext("Modified skins of {0}", this._parent.title);
|
2007-11-03 20:18:18 +00:00
|
|
|
res.push();
|
|
|
|
this.modified.forEach(function() {
|
2008-03-21 22:16:54 +00:00
|
|
|
this.renderSkin("Skin#listItem");
|
2007-11-03 20:18:18 +00:00
|
|
|
});
|
|
|
|
res.data.list = res.pop();
|
2008-03-21 22:16:54 +00:00
|
|
|
res.data.body = this.renderSkinAsString("Skins#main");
|
2008-01-13 01:39:01 +00:00
|
|
|
res.handlers.site.renderSkin("Site#page");
|
2007-09-21 13:54:30 +00:00
|
|
|
return;
|
|
|
|
};
|
|
|
|
|
2008-03-26 12:33:54 +00:00
|
|
|
Skins.prototype.advanced_action = function() {
|
|
|
|
if (this.parent) {
|
|
|
|
res.redirect(res.handlers.layout.skins.href());
|
|
|
|
}
|
|
|
|
res.data.list = this.getOutline();
|
|
|
|
res.data.title = gettext("Skins of {0}", res.handlers.site.title);
|
|
|
|
res.data.body = this.renderSkinAsString("Skins#main");
|
2008-01-13 01:39:01 +00:00
|
|
|
res.handlers.site.renderSkin("Site#page");
|
2007-09-21 13:54:30 +00:00
|
|
|
return;
|
|
|
|
};
|
|
|
|
|
|
|
|
// FIXME: i'd like to have this by default (ie. always safe)
|
|
|
|
Skins.prototype.safe_action = function() {
|
2008-04-16 18:03:41 +00:00
|
|
|
res.data.title = gettext("Modified skins of {0}", this._parent.title);
|
|
|
|
res.push();
|
|
|
|
this.modified.forEach(function() {
|
|
|
|
this.renderSkin("Skin#listItem");
|
|
|
|
});
|
|
|
|
res.data.list = res.pop();
|
|
|
|
res.data.body = this.renderSkinAsString("Skins#main");
|
|
|
|
this.renderSkin("Skins#page");
|
2007-09-21 13:54:30 +00:00
|
|
|
return;
|
|
|
|
};
|
|
|
|
|
|
|
|
Skins.prototype.getSkin = function(prototype, name) {
|
2008-01-04 14:05:58 +00:00
|
|
|
var skinset = this.get(prototype);
|
|
|
|
return skinset ? skinset.get(name) : null;
|
2007-09-21 13:54:30 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
Skins.prototype.getSkinSource = function(proto, name) {
|
|
|
|
var skin;
|
|
|
|
if (skin = this.getSkin(proto, name)) {
|
|
|
|
return skin.getSource();
|
|
|
|
}
|
|
|
|
if (app.skinfiles[proto]) {
|
|
|
|
return app.skinfiles[proto][name];
|
|
|
|
}
|
|
|
|
return null;
|
|
|
|
};
|
|
|
|
|
|
|
|
Skins.prototype.getOriginalSkin = function(proto, name) {
|
|
|
|
var skin;
|
|
|
|
var layout = this._parent;
|
|
|
|
while (layout = layout.parent) {
|
|
|
|
if (skin = layout.skins.getSkin(proto, name)) {
|
|
|
|
return skin;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return null;
|
|
|
|
};
|
|
|
|
|
|
|
|
Skins.prototype.getOriginalSkinSource = function(proto, name) {
|
|
|
|
var skin;
|
|
|
|
if (skin = this.getOriginalSkin(proto, name)) {
|
|
|
|
return skin.getSource();
|
|
|
|
}
|
|
|
|
if (app.skinfiles[proto]) {
|
|
|
|
return app.skinfiles[proto][name];
|
|
|
|
}
|
|
|
|
return null;
|
|
|
|
};
|
|
|
|
|
|
|
|
Skins.prototype.getCustomSkins = function() {
|
|
|
|
var coll = [];
|
|
|
|
// object to store the already added skin keys
|
|
|
|
// used to avoid duplicate skins in the list
|
|
|
|
var keys = {};
|
|
|
|
|
|
|
|
// private method to add a custom skin
|
|
|
|
var addSkins = function(mgr) {
|
|
|
|
var size = mgr.custom.size();
|
|
|
|
for (var i=0;i<size;i++) {
|
|
|
|
var s = mgr.custom.get(i);
|
|
|
|
var key = s.proto + ":" + s.name;
|
|
|
|
if (!keys[key]) {
|
|
|
|
keys[key] = s;
|
|
|
|
coll.push(s);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
var handler = this._parent;
|
|
|
|
while (handler) {
|
|
|
|
addSkins(handler.skins);
|
|
|
|
handler = handler.parent;
|
|
|
|
}
|
|
|
|
return coll;
|
|
|
|
};
|
|
|
|
|
|
|
|
Skins.getSummary = function(prefix, prototype, name) {
|
2008-04-12 18:55:08 +00:00
|
|
|
return gettext("Description of skin {0}", prototype + "." + name);
|
2007-09-21 13:54:30 +00:00
|
|
|
var key = prefix + "." + prototype;
|
|
|
|
name && (key += "." + name);
|
2007-10-12 19:05:33 +00:00
|
|
|
var languages = new Array("en");
|
|
|
|
var syslang;
|
|
|
|
if ((syslang = root.getLocale().getLanguage()) != "en")
|
|
|
|
languages.unshift(syslang);
|
|
|
|
if (res.handlers.site) {
|
|
|
|
var lang = res.handlers.site.getLocale().getLanguage();
|
|
|
|
if (lang != "en" && lang != syslang)
|
|
|
|
languages.unshift(lang);
|
|
|
|
}
|
2007-09-21 13:54:30 +00:00
|
|
|
var lang;
|
|
|
|
for (var i=0; i<languages.length; i+=1) {
|
|
|
|
if (!(lang = app.data[languages[i]])) {
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
if (lang.getProperty(key)) {
|
|
|
|
return lang.getProperty(key).split("|");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return [prototype + "." + name];
|
|
|
|
};
|
|
|
|
|
|
|
|
Skins.Skinset = function(key, skins, context) {
|
|
|
|
this.key = key;
|
|
|
|
this.skins = skins;
|
|
|
|
this.context = context;
|
|
|
|
this.children = [];
|
|
|
|
this.add = function(obj) {
|
|
|
|
this.children.push(obj);
|
|
|
|
}
|
|
|
|
return this;
|
|
|
|
};
|
|
|
|
|
|
|
|
Skins.SKINSETS = [];
|
|
|
|
|
|
|
|
new function() {
|
|
|
|
var newSet = new Skins.Skinset("Root", ["Root.page", "Root.main", "Root.style", "Root.javascript", "Root.sysmgrnavigation", "Root.new"], "Root");
|
|
|
|
newSet.add(new Skins.Skinset("Root.scripts", ["Root.systemscripts", "Global.colorpickerScripts"]));
|
|
|
|
newSet.add(new Skins.Skinset("Root.sitelist", ["Site.preview", "Root.list"]));
|
|
|
|
newSet.add(new Skins.Skinset("Root.rss", ["Root.rss", "Site.rssItem", "Site.rssResource", "Global.rssImage"]));
|
|
|
|
newSet.add(new Skins.Skinset("Root.colorpicker", ["Global.colorpicker", "Global.colorpickerExt", "Global.colorpickerWidget", "Global.colorpickerScripts"]));
|
|
|
|
newSet.add(new Skins.Skinset("Root.welcome", ["Site.welcome", "Site.welcomeowner", "Site.welcomesysadmin", "Root.welcome"]));
|
|
|
|
newSet.add(new Skins.Skinset("Root.various", ["Root.blocked", "Root.notfound", "Root.sysError"]));
|
|
|
|
Skins.SKINSETS.push(newSet);
|
|
|
|
|
|
|
|
newSet = new Skins.Skinset("Site", ["Site.page", "Site.style", "Site.javascript", "Site.main", "Day.main", "Story.dayheader"]);
|
|
|
|
newSet.add(new Skins.Skinset("Site.navigation", ["Site.contribnavigation", "Site.adminnavigation", "Global.nextpagelink", "Global.prevpagelink", "Global.pagenavigation", "Global.pagenavigationitem", "Members.statusloggedin", "Members.statusloggedout"]));
|
|
|
|
newSet.add(new Skins.Skinset("Site.topics", ["TopicMgr.main", "Topic.main"]));
|
|
|
|
newSet.add(new Skins.Skinset("Site.calendar", ["Site.calendar", "Site.calendardayheader", "Site.calendarweek", "Site.calendarday", "Site.calendarselday"]));
|
|
|
|
newSet.add(new Skins.Skinset("Site.rss", ["Site.rss", "Story.rssItem", "Story.rssResource"]));
|
|
|
|
newSet.add(new Skins.Skinset("Site.search", ["Site.searchresult", "Site.searchbox", "Story.searchview"]));
|
|
|
|
newSet.add(new Skins.Skinset("Site.referrers", ["Site.referrers", "Site.referrerItem"]));
|
|
|
|
newSet.add(new Skins.Skinset("Site.mostread", ["Site.mostread", "Story.mostread"]));
|
|
|
|
newSet.add(new Skins.Skinset("Site.mails", ["Members.mailregconfirm", "Members.mailpassword", "Members.mailnewmember", "Membership.mailstatuschange", "Membership.mailmessage", "Site.notificationMail"], "Root"));
|
|
|
|
newSet.add(new Skins.Skinset("Site.preferences", ["Site.edit", "Site.notification"], "Root"));
|
|
|
|
newSet.add(new Skins.Skinset("Site.user", ["Members.login", "Members.register", "Members.sendpwd", "User.edit", "User.sitelist", "User.subscriptions", "Membership.subscriptionlistitem"], "Root"));
|
|
|
|
newSet.add(new Skins.Skinset("Site.members", ["Members.main", "Members.new", "Members.membergroup", "Members.searchresult", "Members.searchresultitem", "Membership.mgrlistitem", "Membership.edit"], "Root"));
|
|
|
|
newSet.add(new Skins.Skinset("Site.various", ["Site.robots"]));
|
|
|
|
Skins.SKINSETS.push(newSet);
|
|
|
|
|
|
|
|
newSet = new Skins.Skinset("Story", ["Story.display", "Story.main", "Story.preview", "Story.comment", "Story.historyview", "Story.embed", "Story.edit"]);
|
|
|
|
newSet.add(new Skins.Skinset("Story.backlinks", ["Story.backlinks", "Story.backlinkItem"]));
|
|
|
|
newSet.add(new Skins.Skinset("Story.list", ["StoryMgr.main", "Story.mgrlistitem"]));
|
|
|
|
Skins.SKINSETS.push(newSet);
|
|
|
|
|
|
|
|
newSet = new Skins.Skinset("Comment", ["Comment.toplevel", "Comment.reply", "Comment.edit"]);
|
|
|
|
Skins.SKINSETS.push(newSet);
|
|
|
|
|
|
|
|
newSet = new Skins.Skinset("Image", ["Image.main", "Image.edit", "ImageMgr.new", "LayoutImage.edit", "ImageMgr.main", "Image.mgrlistitem"]);
|
|
|
|
Skins.SKINSETS.push(newSet);
|
|
|
|
|
|
|
|
newSet = new Skins.Skinset("File", ["File.main", "File.edit", "FileMgr.new", "FileMgr.main", "File.mgrlistitem"]);
|
|
|
|
Skins.SKINSETS.push(newSet);
|
|
|
|
|
|
|
|
newSet = new Skins.Skinset("Poll", ["Poll.main", "Poll.results", "Choice.main", "Choice.result", "Choice.graph"]);
|
|
|
|
newSet.add(new Skins.Skinset("Poll.editor", ["Poll.edit", "Choice.edit"]));
|
|
|
|
newSet.add(new Skins.Skinset("Poll.list", ["PollMgr.main", "Poll.mgrlistitem"]));
|
|
|
|
Skins.SKINSETS.push(newSet);
|
|
|
|
|
|
|
|
newSet = new Skins.Skinset("SysMgr", ["SysMgr.status", "SysMgr.list", "Site.sysmgr_listitem", "Site.sysmgr_edit", "Site.sysmgr_delete", "User.sysmgr_listitem", "User.sysmgr_edit", "SysLog.sysmgr_listitem"], "Root");
|
|
|
|
newSet.add(new Skins.Skinset("SysMgr.forms", ["SysMgr.setup", "SysMgr.sitesearchform", "SysMgr.usersearchform", "SysMgr.syslogsearchform"]));
|
|
|
|
newSet.add(new Skins.Skinset("SysMgr.mails", ["SysMgr.blockwarnmail", "SysMgr.deletewarnmail"]));
|
|
|
|
Skins.SKINSETS.push(newSet);
|
|
|
|
|
|
|
|
newSet = new Skins.Skinset("SkinMgr", ["SkinMgr.main", "SkinMgr.page", "SkinMgr.edit", "SkinMgr.treebranch", "SkinMgr.treeleaf", "Skin.status", "Skin.statuscustom", "SkinMgr.new", "Skin.diff", "Skin.diffline"], "Root");
|
|
|
|
Skins.SKINSETS.push(newSet);
|
|
|
|
|
|
|
|
newSet = new Skins.Skinset("LayoutMgr", ["LayoutMgr.main", "LayoutMgr.new", "LayoutMgr.import"], "Root");
|
|
|
|
newSet.add(new Skins.Skinset("LayoutMgr.layout", ["Layout.mgrlistitem", "Layout.main", "Layout.edit", "Layout.download", "Layout.chooserlistitem", "Layout.testdrive"]));
|
|
|
|
newSet.add(new Skins.Skinset("LayoutMgr.images", ["LayoutImageMgr.main", "LayoutImageMgr.navigation", "LayoutImageMgr.new"]));
|
|
|
|
Skins.SKINSETS.push(newSet);
|
|
|
|
|
|
|
|
newSet = new Skins.Skinset("various", ["HopObject.delete"], "Root");
|
|
|
|
Skins.SKINSETS.push(newSet);
|
|
|
|
};
|
2007-10-12 19:05:33 +00:00
|
|
|
|
|
|
|
Skins.buildMacroHelp = function() {
|
|
|
|
var sorter = function(a, b) {
|
|
|
|
var str1 = a.name.toLowerCase();
|
|
|
|
var str2 = b.name.toLowerCase();
|
|
|
|
if (str1 > str2)
|
|
|
|
return 1;
|
|
|
|
else if (str1 < str2)
|
|
|
|
return -1;
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
var macroHelp = {};
|
|
|
|
var ref = macroHelp.Global = [];
|
|
|
|
var macrolist = HELP.macros.Global;
|
|
|
|
for (var i in macrolist)
|
|
|
|
ref.push({name: i, storyid: macrolist[i]});
|
|
|
|
ref.sort(sorter);
|
|
|
|
|
|
|
|
var ref = macroHelp.HopObject = [];
|
|
|
|
var macrolist = HELP.macros.HopObject;
|
|
|
|
for (var i in macrolist)
|
|
|
|
ref.push({name: i, storyid: macrolist[i]});
|
|
|
|
ref.sort(sorter);
|
|
|
|
|
|
|
|
for (var proto in HELP.macros) {
|
|
|
|
if (proto.indexOf("_") == 0 || proto == "Global" || proto == "HopObject")
|
|
|
|
continue;
|
|
|
|
var macrolist = HELP.macros[proto];
|
|
|
|
var ref = macroHelp[proto] = [];
|
|
|
|
var keys = "";
|
|
|
|
for (var i in macrolist) {
|
|
|
|
ref.push({name: i, storyid: macrolist[i]});
|
|
|
|
keys += i + ",";
|
|
|
|
}
|
|
|
|
for (var n in macroHelp.HopObject) {
|
|
|
|
var shared = macroHelp.HopObject[n];
|
|
|
|
if (keys.indexOf(shared.name + ",") < 0)
|
|
|
|
ref.push(shared);
|
|
|
|
}
|
|
|
|
ref.sort(sorter);
|
|
|
|
}
|
|
|
|
return macroHelp;
|
|
|
|
};
|
2007-11-23 17:57:59 +00:00
|
|
|
|
|
|
|
Skins.remove = function() {
|
|
|
|
if (this.constructor === Skins) {
|
|
|
|
this.forEach(function() {
|
|
|
|
HopObject.remove(this);
|
|
|
|
});
|
|
|
|
}
|
|
|
|
return;
|
|
|
|
};
|