Wednesday, March 16, 2011 at 3:29 PM.

scripting2Suite.editor.init

on init (adrdata) {
	<<Changes
		<<3/16/11; 12:13:09 AM by DW
			<<The default server for new users is 127.0.0.1 not cms.scripting2.com.
		<<11/11/10; 11:46:48 AM by DW
			<<The domain and port of the default server changed.
		<<8/18/10; 3:16:57 PM by DW
			<<Comment out code for hooking into the realtime manager for the (no longer present) instant outliner.
		<<7/13/10; 7:08:59 AM by DW
			<<Created. This code used to be in the top-level init script, which caused all kinds of consistency problems. Instead we call it from there.
	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 { //buddies
		if not defined (adrdata^.editor.buddies) {
			new (tabletype, @adrdata^.editor.buddies);
			new (outlinetype, @adrdata^.editor.buddies.outline);
			new (tabletype, @adrdata^.editor.buddies.users)}};
	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://127.0.0.1:5337/RPC2"};
			<<adrdata^.editor.prefs.server = "xmlrpc://cms.scripting2.com:5337/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};
		if not defined (adrdata^.editor.prefs.flBeepOnBuddyUpdate) {
			adrdata^.editor.prefs.flBeepOnBuddyUpdate = true};
		if not defined (adrdata^.editor.prefs.flBeepOnBuddyUpdate) {
			adrdata^.editor.prefs.flBeepOnBuddyUpdate = true};
		if not defined (adrdata^.editor.prefs.flRealtimeEnabled) { //7/16/10 by DW -- so you can turn it off quickly
			adrdata^.editor.prefs.flRealtimeEnabled = true}};
	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 = ""};
		if not defined (adrdata^.editor.stats.ctRealtimeLoops) { //7/15/10 by DW
			adrdata^.editor.stats.ctRealtimeLoops = 0};
		if not defined (adrdata^.editor.stats.ctRealtimeThreadStarts) { //7/15/10 by DW
			adrdata^.editor.stats.ctRealtimeThreadStarts = 0}};
	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 = ""}}}
	<<bundle //hook into the realtime manager, so we get instant outline updates, 7/20/10 by DW
		<<local (adrrealtime = realtime.init ())
		<<if not defined (adrrealtime^.client.callbacks.handleUpdate.instantOutline)
			<<adrrealtime^.client.callbacks.handleUpdate.instantOutline = @scripting2Suite.editor.io.incomingUpdate



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.