Monday, November 08, 2010 at 12:01 AM.
system.verbs.apps.Manila.nodeTypes.types.manilaHomePage.expand
local (siteUrl);
op.attributes.getOne ("siteUrl", @siteUrl);
bundle { //bring the window to the front if it's already opened
local (adrsiteinfo);
if manila.windowTypes.findSiteInfo (siteUrl, @adrsiteinfo) { //no create info callback
local (adr, adrobject);
for adr in @temp.windowTypes.windows {
adrobject = @adr^.window;
local (type);
if window.attributes.getOne ("type", @type, adrobject) {
if type == "manilaMessage" {
local (url);
if window.attributes.getOne ("url", @url, adrobject) {
local (parts = string.urlSplit (url));
if not (parts[2] contains ":") {
url = parts[1] + parts[2] + ":80/" + parts[3]};
if string.lower (url) == string.lower (siteUrl) {
local (title, flReadOnly = false);
if not window.attributes.getOne ("title", @title, adrobject) {
title = adrinfo^.displaySiteName;
if title == "" {
title = adrinfo^.siteName}};
window.attributes.getOne ("flReadOnly", @flReadOnly, adrobject);
edit (adrobject, title, flReadOnly);
return (true)}}}}}}};
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;
local (msgnum = manila.homepage.getMsgNum (@siteinfo));
local (adrtype);
Frontier.tools.windowTypes.findWindowType ("manilaMessage", @adrtype);
<<adrtype^.openMessage (siteurl, msgnum, flHomePage:true) //this didn't work
thread.callscript (@adrtype^.openMessage, {siteurl, msgnum, false, true});
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.