Monday, November 08, 2010 at 12:03 AM.
system.verbs.builtins.html.dialog.run
on run (adrWizard, dialogNum, adrPrefs=nil, flDrawCancelButton = true) { <<Run an HTML dialog. <<Changes <<Monday, July 24, 2000 at 4:09:02 PM by JES <<Added support for overriding the default JavaScript with a JavaScript object defined in the Wizard table. <<Wednesday, February 28, 2001 at 3:25:23 PM by JES <<New optional parameter, flDrawCancelButton, for specifying whether the dialog has a cancel button. Default is true. if not system.environment.isWindows { scriptError ("HTML dialogs are only available on Windows.")}; filemenu.saveMyRoot (this); local (t); new (tableType, @t); bundle { // build the pageTable t.wizard = adrWizard; if defined (adrWizard^.javaScript) { t.javaScript = @adrWizard^.javaScript}; t.panelNum = dialogNum; t.wizardPrefsAddress = adrPrefs; bundle { // set #ftpSite.folder <<This is thread-safe, since the platform obviously will not change in the middle of rendering a page. if system.environment.isWindows { html.dialog.website.["#ftpSite"].folder = file.getSpecialFolderPath ("", "temp", true) + "UserLand\\HTML Dialogs\\"} else { html.dialog.website.["#ftpSite"].folder = file.getSpecialFolderPath ("", "Preferences", true) + "UserLand:HTML Dialogs:"}}; t.flDrawCancelButton = flDrawCancelButton; new (tableType, @t.argTable)}; html.buildOnePage (@html.dialog.website.default, @t); local (s); s = html.dialog.showHtmlDialog (file.fileToUrl (t.f)); if adrPrefs != nil { //set the prefs if s == "" { //the user cancelled return (false)}; local (returnTable); new (tableType, @returnTable); webserver.parseArgs (s, @returnTable); local (i); for i = 1 to sizeOf (returnTable) { local (adrCallbacks = @t.wizard^.callbacks, flCallbacks = defined (adrCallbacks^)); local (prefName = nameOf (returnTable [i])); local (prefValue = returnTable [i]); if flcallbacks { // JES 07/22/00 call set value callbacks local (adrcallback = @adrcallbacks^.setValue); if defined (adrcallback^) { prefValue = adrcallback^ (string.replaceAll (prefName, "_", "."), prefValue)}}; if prefValue == "true" or prefValue == "false" { prefValue = boolean (prefValue)}; local (adrPref = string (adrPrefs) + "." + prefName); adrPref = string.replaceAll (adrPref, "_", "."); adrPref^ = prefValue; table.rename (@returnTable [i], string.replaceAll (prefName, "_", "."))}}; 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.