Monday, March 07, 2011 at 9:24 PM.
suites.webEdit.commands.sendToServer
on sendToServer () { <<Changes <<3/7/11; 9:04:39 PM by DW <<Do a better job of cleaning up the address before adding it to the recentChanges table. <<3/6/11; 11:47:41 AM by DW <<The recentChanges outline becomes a table. <<3/2/11; 6:51:18 PM by DW <<Record the send in user.webEdit.stats.recentChanges, if enabled. local (adrObject, s, note = "", now = clock.now ()); bundle { //get the currently selected object adrObject = webEdit.getSelectedObject (); if adrObject == false { return (false)}}; local (currentServer = webEdit.getCurrentServer ()); local (adrPrefs = @user.webEdit.servers.[currentServer]); if (defined (adrPrefs^.flNotes)) and (adrPrefs^.flNotes) { if not (dialog.ask ("Change Note:", @note)) { return (false)}}; s = webEdit.sendObjectToServer (adrObject, note); bundle { //init user.webedit.stats/prefs, 3/2/11 by DW if not defined (user.webEdit.stats) { new (tableType, @user.webEdit.stats)}; bundle { //user.webEdit.stats.recentChanges if defined (user.webEdit.stats.recentChanges) { if typeof (user.webEdit.stats.recentChanges) == outlinetype { table.rename (@user.webEdit.stats.recentChanges, "recentChangesOutline"); new (tabletype, @user.webEdit.stats.recentChanges)}} else { new (tabletype, @user.webEdit.stats.recentChanges)}}; if not (defined (user.webEdit.prefs.flKeepRecentChangesOutline)) { user.webEdit.prefs.flKeepRecentChangesOutline = false}}; bundle { //add the change to recentChanges table, 3/6/11 by DW if user.webEdit.prefs.flKeepRecentChangesOutline { local (nameobject); bundle { //set nameobject local (s = string.popFileFromAddress (adrObject), adr); for adr in @system.paths { if s beginswith adr^ { s = string.delete (s, 1, sizeof (adr^) + 1); break}}; if s beginswith "suites." { s = string.delete (s, 1, sizeof ("suites."))}; nameobject = s}; local (adr = @user.webEdit.stats.recentChanges.[nameobject]); if not defined (adr^) { new (tabletype, adr); adr^.ct = 0}; adr^.ct++; adr^.when = clock.now ()}}; <<bundle //old code, for outline <<local (oldtarget = target.set (@user.webEdit.stats.recentChanges)) <<op.firstsummit () <<if string.trimwhitespace (op.getlinetext ()) == "" <<op.setlinetext (nameobject) <<else <<op.insert (nameobject, up) <<op.insert (now, right) <<op.go (left, 1) <<op.collapse () <<target.set (oldtarget) webEdit.notify (s); return (true)}; bundle { //test code sendToServer ()}
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.