Monday, November 08, 2010 at 12:01 AM.
system.verbs.apps.Manila.nodeTypes.types.manilaEditorsContainer.expand
<<Expand a Manila Editors container.
<<10/27/00; 10:43:32 PM by PBS
<<Changes:
<<12/07/00; 5:40:37 PM by JES
<<Fixed expansion of editorsContainer node where editors were listed as editor001, editor002, etc.
<<return (playlist.manila.commands.expandManilaEditorsContainer ())
local (oldTarget = target.set (window.frontmost ()));
local (oldDisplay = op.getDisplay ());
op.setDisplay (false);
local (flGoneRight = false);
local (atts);
op.attributes.getAll (@atts);
local (siteUrl = atts.siteUrl);
local (type = string.lower (atts.containerType));
local (username, password);
on createInfoCallback (adrinfo) {
if manila.windowTypes.getUsernameAndPassword (adrinfo, @username, @password) {
manila.windowTypes.setUsernameAndPassword (adrinfo, username, password)}
else {
bundle { //don't leave stale data lying around
local (adrtempinfo = @system.temp.manila.data.sites.[nameOf (adrinfo^)]);
if defined (adrtempinfo^) {delete (adrtempinfo)};
delete (adrinfo)};
return (false)}};
local (adrinfo);
if not manila.windowTypes.findSiteInfo (siteUrl, @adrinfo, @createInfoCallback) {
return (false)};
local (siteinfo = adrinfo^);
manila.windowTypes.getUsernameAndPassword (adrinfo, @username, @password);
siteinfo.username = username;
siteinfo.password = password;
on addContainer (linetext, containerType) {
local (dir = down);
if not flGoneRight {
dir = right;
flGoneRight = true};
op.insert (linetext, dir);
local (atts);
new (tableType, @atts);
atts.type = "manilaEditorsContainer";
atts.containerType = containerType;
atts.siteUrl = siteUrl;
op.attributes.addGroup (@atts)};
on addEditor (editorName, editorEmail) {
local (dir = down);
if not flGoneRight {
dir = right;
flGoneRight = true};
op.insert (editorName, dir);
local (atts);
new (tableType, @atts);
atts.type = "manilaEditor";
atts.email = editorEmail;
atts.name = editorName;
atts.siteUrl = siteUrl;
op.attributes.addGroup (@atts)};
op.deleteSubs ();
local (cursor = op.getCursor ());
case type {
"toplevel" { //it contains ME and CE nodes
addContainer ("Managing Editors", "managingEditors");
addContainer ("Contributing Editors", "contributingEditors")};
"contributingeditors";
"managingeditors" {
local (editorsTable = manila.editors.getTable (adrinfo, type));
local (adrEditor);
for adrEditor in @editorsTable {
local (editorName, editorEmail);
<<12/07/00 JES: returned value is now a table containing name and email, not a table of name/value pairs.
editorName = adrEditor^.name;
editorEmail = adrEditor^.email;
addEditor (editorName, editorEmail)}}};
op.setCursor (cursor);
op.setDisplay (oldDisplay);
try {target.set (oldTarget)};
return (true)
This listing is for code that runs in the OPML Editor environment. I created these listings because I wanted the search engines to index it, so that when I want to look up something in my codebase I don't have to use the much slower search functionality in my object database. Dave Winer.