Wednesday, March 16, 2011 at 3:29 PM.
scripting2Suite.init
on init () { <<Changes <<3/16/11; 12:12:06 PM by DW <<Init adrdata^.prefs.staticText. <<8/18/10; 3:52:55 PM by DW <<Comment code that inits the realtime server-side. We were validating the password through our code and thus breaking the instant outliner that had its own password validator in the realtime callback chain. <<7/13/10; 7:11:28 AM by DW <<Pull the editor init code into a separate script. <<7/10/10; 3:47:25 PM by DW <<Init the URL of the live-blog. <<7/8/10; 5:39:47 PM by DW <<Set a flag for the editor indicating that the password has not been validated. Until it has, there's no point automatically opening the workspace. <<7/7/10; 7:27:53 AM by DW <<When the workspace is created, set a flag that says it's new. <<6/29/10; 11:36:26 AM by DW <<Init domains table on server. <<6/23/10; 8:14:58 PM by DW <<Init system.temp.scripting2.editor.posts. <<6/23/10; 10:22:04 AM by DW <<Add opInsert callback. <<6/12/10; 7:33:16 AM by DW <<Add system.temp.editor table. <<5/29/10; 7:59:18 AM by DW <<Created. local (adrdata = frontier.opendatafile ("scripting2Data", flCheckWindowOpen:false)); <<local (adrdata = @config.scripting2) if not defined (adrdata^) { new (tabletype, adrdata)}; bundle { //prefs if not defined (adrdata^.prefs) { new (tabletype, @adrdata^.prefs)}; if not defined (adrdata^.prefs.basefolder) { adrdata^.prefs.basefolder = frontier.pathstring + "scripting2" + file.getpathchar ()}; if not defined (adrdata^.prefs.baseUrl) { adrdata^.prefs.baseUrl = "http://scripting.com/scripting2/"}; if not defined (adrdata^.prefs.maxFileNameLength) { adrdata^.prefs.maxFileNameLength = 31}; if not defined (adrdata^.prefs.htmlFileExtension) { adrdata^.prefs.htmlFileExtension = ".html"}; bundle { //ftp if not defined (adrdata^.prefs.ftp) { new (tabletype, @adrdata^.prefs.ftp)}; if not defined (adrdata^.prefs.ftp.enabled) { adrdata^.prefs.ftp.enabled = false}; if not defined (adrdata^.prefs.ftp.server) { adrdata^.prefs.ftp.server = ""}; if not defined (adrdata^.prefs.ftp.username) { adrdata^.prefs.ftp.username = ""}; if not defined (adrdata^.prefs.ftp.password) { adrdata^.prefs.ftp.password = binary ("")}; if not defined (adrdata^.prefs.ftp.path) { adrdata^.prefs.ftp.path = ""}; if not defined (adrdata^.prefs.ftp.indexFileName) { adrdata^.prefs.ftp.indexFileName = "default.html"}; if not defined (adrdata^.prefs.ftp.rssFileName) { adrdata^.prefs.ftp.rssFileName = "rss.xml"}; if not defined (adrdata^.prefs.ftp.baseUrl) { adrdata^.prefs.ftp.baseUrl = ""}}; bundle { //staticText -- 3/16/11 by DW staticText.init (@adrdata^.prefs.staticText)}}; bundle { //stats if not defined (adrdata^.stats) { new (tabletype, @adrdata^.stats)}; if not defined (adrdata^.stats.ctThreadLoops) { adrdata^.stats.ctThreadLoops = 0}; if not defined (adrdata^.stats.ctTicksRealtimeCollection) { adrdata^.stats.ctTicksRealtimeCollection = 0}}; bundle { //server if not defined (adrdata^.server) { new (tabletype, @adrdata^.server)}; if not defined (adrdata^.server.users) { new (tabletype, @adrdata^.server.users)}; if not defined (adrdata^.server.domains) { //6/29/10 by DW new (tabletype, @adrdata^.server.domains)}; bundle { //prefs if not defined (adrdata^.server.prefs) { new (tabletype, @adrdata^.server.prefs)}; if not defined (adrdata^.server.prefs.enabled) { adrdata^.server.prefs.enabled = false}; if not defined (adrdata^.server.prefs.ctSecsRealtimeTimeout) { adrdata^.server.prefs.ctSecsRealtimeTimeout = 60}}}; <<bundle //realtime, 7/20/10 by DW <<if not defined (system.verbs.builtins.realtime) <<system.verbs.builtins.realtime = scripting2Suite.data.code.realtime <<local (adrrealtime = realtime.init ()) <<adrrealtime^.server.callbacks.validatePassword.scripting2 = @scripting2Suite.server.validatePassword <<bundle //editor <<if not defined (adrdata^.editor) <<new (tabletype, @adrdata^.editor) <<bundle //workspace <<if defined (adrdata^.editor.workspace) //convert from outline to table -- 7/3/10 by DW <<if typeof (adrdata^.editor.workspace) == outlinetype <<local (lo = adrdata^.editor.workspace) <<delete (@adrdata^.editor.workspace) <<new (tabletype, @adrdata^.editor.workspace) <<adrdata^.editor.workspace.outline = lo <<else <<new (tabletype, @adrdata^.editor.workspace) <<new (outlinetype, @adrdata^.editor.workspace.outline) <<adrdata^.editor.workspace.flnew = true //7/7/10 by DW <<if not defined (adrdata^.editor.workspace.flnew) <<adrdata^.editor.workspace.flnew = false <<bundle //prefs <<if not defined (adrdata^.editor.prefs) <<new (tabletype, @adrdata^.editor.prefs) <<if not defined (adrdata^.editor.prefs.username) <<adrdata^.editor.prefs.username = "" <<if not defined (adrdata^.editor.prefs.password) <<adrdata^.editor.prefs.password = "" <<if not defined (adrdata^.editor.prefs.server) //6/26/10 by DW <<adrdata^.editor.prefs.server = "xmlrpc://edit.scripting2.com/RPC2" <<bundle //"folder" changes to "backupFolder", 7/1/10 by DW <<if defined (adrdata^.editor.prefs.folder) <<adrdata^.editor.prefs.backupFolder = adrdata^.editor.prefs.folder <<delete (@adrdata^.editor.prefs.folder) <<if not defined (adrdata^.editor.prefs.backupFolder) <<local (pc = file.getpathchar ()) <<adrdata^.editor.prefs.backupFolder = frontier.pathstring + "Scripting2" + pc + "backups" + pc <<if not defined (adrdata^.editor.prefs.imagesFolder) <<local (pc = file.getpathchar ()) <<adrdata^.editor.prefs.imagesFolder = frontier.pathstring + "Scripting2" + pc + "images" + pc <<bundle //watchedFolder prefs, 7/1/10 by DW <<if not defined (adrdata^.editor.prefs.watchedFolder) <<new (tabletype, @adrdata^.editor.prefs.watchedFolder) <<if not defined (adrdata^.editor.prefs.watchedFolder.enabled) <<adrdata^.editor.prefs.watchedFolder.enabled = true <<if not defined (adrdata^.editor.prefs.watchedFolder.folder) <<local (pc = file.getpathchar ()) <<adrdata^.editor.prefs.watchedFolder.folder = frontier.pathstring + "Scripting2" + pc + "images" + pc <<file.surefilepath (adrdata^.editor.prefs.watchedFolder.folder + "xxx") <<if not defined (adrdata^.editor.prefs.watchedFolder.ctUploads) <<adrdata^.editor.prefs.watchedFolder.ctUploads = 0 <<if not defined (adrdata^.editor.prefs.watchedFolder.ctChecks) <<adrdata^.editor.prefs.watchedFolder.ctChecks = 0 <<if not defined (adrdata^.editor.prefs.watchedFolder.clipboardTemplate) <<adrdata^.editor.prefs.watchedFolder.clipboardTemplate = scripting2Suite.data.html.clipboardTemplate <<if not defined (adrdata^.editor.prefs.flOpenWorkspaceOnLaunch) <<adrdata^.editor.prefs.flOpenWorkspaceOnLaunch = false <<bundle //stats <<if not defined (adrdata^.editor.stats) <<new (tabletype, @adrdata^.editor.stats) <<if not defined (adrdata^.editor.stats.pgfSerialnum) //6/23/10 by DW <<adrdata^.editor.stats.pgfSerialnum = 1 <<if not defined (adrdata^.editor.stats.flPasswordValid) //7/8/10 by DW <<adrdata^.editor.stats.flPasswordValid = false <<if not defined (adrdata^.editor.stats.urlLiveBlog) //7/10/10 by DW <<adrdata^.editor.stats.urlLiveBlog = "" <<bundle //serverPrefs, have to set this up in case username/password fail on Prefs page <<if not defined (adrdata^.editor.serverPrefs) <<new (tabletype, @adrdata^.editor.serverPrefs) <<if not defined (adrdata^.editor.serverPrefs.ownerName) <<adrdata^.editor.serverPrefs.ownerName = "" <<if not defined (adrdata^.editor.serverPrefs.ownerEmail) <<adrdata^.editor.serverPrefs.ownerEmail = "" <<if not defined (adrdata^.editor.serverPrefs.weblogName) <<adrdata^.editor.serverPrefs.weblogName = "" <<if not defined (adrdata^.editor.serverPrefs.tagline) <<adrdata^.editor.serverPrefs.tagline = "" <<if not defined (adrdata^.editor.serverPrefs.timeZone) <<adrdata^.editor.serverPrefs.timeZone = 0 <<if not defined (adrdata^.editor.serverPrefs.timeZoneName) <<adrdata^.editor.serverPrefs.timeZoneName = "GMT" <<if not defined (adrdata^.editor.serverPrefs.flDisqusComments) <<adrdata^.editor.serverPrefs.flDisqusComments = false <<if not defined (adrdata^.editor.serverPrefs.disqusShortname) <<adrdata^.editor.serverPrefs.disqusShortname = "" scripting2suite.editor.init (adrdata); //7/13/10 by DW bundle { //system.temp sub-table if not defined (system.temp.scripting2) { new (tabletype, @system.temp.scripting2)}; bundle { //editor if not defined (system.temp.scripting2.editor) { //6/12/10 by DW new (tabletype, @system.temp.scripting2.editor)}; if not defined (system.temp.scripting2.editor.posts) { //6/23/10 by DW new (tabletype, @system.temp.scripting2.editor.posts)}}; bundle { //server if not defined (system.temp.scripting2.server) { //7/14/10 by DW new (tabletype, @system.temp.scripting2.server)}; if not defined (system.temp.scripting2.server.users) { //7/14/10 by DW new (tabletype, @system.temp.scripting2.server.users)}}}; bundle { //general if not defined (user.scheduler2.everyminute.scripting2) { user.scheduler2.everyminute.scripting2 = @scripting2Suite.everyMinute}; if not defined (user.callbacks.opInsert.scripting2) { user.callbacks.opinsert.scripting2 = @scripting2Suite.editor.opInsertCallback}; if not defined (user.callbacks.opRightClick.scripting2) { user.callbacks.opRightClick.scripting2 = @scripting2Suite.editor.opRightClickCallback}; if not defined (user.callbacks.addBookmark.scripting2) { //6/29/10 by DW user.callbacks.addBookmark.scripting2 = @scripting2Suite.editor.addBookmarkCallback}}; return (adrdata)}; bundle { //test code local (tc = clock.ticks ()); for i = 1 to 1000 { init ()}; dialog.alert (clock.ticks () - tc)}
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.