Monday, November 08, 2010 at 12:03 AM.
system.verbs.builtins.io.client.menuCommands.archiveSubOutline
on archiveSubOutline () { <<Changes <<8/28/10; 10:57:17 AM by DW <<Created. local (adrdata = io.init (), now = clock.now ()); local (adroutline = address (window.frontmost ()), linetext = op.getlinetext ()); if op.countsubs (1) == 0 { scripterror ("Can't archive this sub-outline because it doesn't have any subheads.")}; if dialog.confirm ("Archive \"" + linetext + "\" sub-outline?") { local (lo = adroutline^); local (oldtarget = target.set (@lo)); op.reorg (left, infinity); op.reorg (up, infinity); if op.go (down, 1) { op.demote (); op.deleteline ()}; op.promote (); op.deleteline (); window.settitle (@lo, "Archive of \"" + linetext + "\""); local (opmltext = op.outlinetoxml (@lo)); wp.newtextobject (opmltext, @scratchpad.lotext); target.set (oldtarget); local (username = adrdata^.client.prefs.username); local (password = string (adrdata^.client.prefs.password)); local (server = string (adrdata^.client.prefs.server)); local (url = [server].io.archiveOutline (username, password, opmltext)); op.deletesubs (); new (tabletype, @atts); atts.type = "link"; atts.url = url; op.attributes.addgroup (@atts); return (url)}}; bundle { //test code dialog.alert (archiveSubOutline ())}
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.