Monday, November 08, 2010 at 12:05 AM.
system.verbs.builtins.radio.userInterface.upstreamSettings
on upstreamSettings (folder, adrErrorFlag, pta) {
<<8/3/01; 2:58:38 AM by JES
<<Implement upstreaming prefs for the folder viewer.
<<Changes
<<9/6/01; 3:10:54 AM by JES
<<If the form is submitted without error (the user was able to register), then turn upstreaming on.
local (type = "xmlStorageSystem"); //the default
local (adrfolder);
radio.file.getFileAttributes (folder, @adrfolder);
local (adrspec);
if file.exists (folder + system.verbs.builtins.radio.data.fileNames.upstreamFileName) {
if radio.upstream.getUpstreamSpec (adrfolder, @adrspec) { //get the type from #upstream.xml
type = adrspec^.type}};
bundle { //get the type if specified in the POST args
if pta^.method == "POST" {
if defined (pta^.radioResponder.postArgs) {
if defined (pta^.radioResponder.postArgs.upstreamDriver) {
type = pta^.radioResponder.postArgs.upstreamDriver;
delete (@pta^.radioResponder.postArgs.upstreamDriver)}}}}; //so it won't confuse the prefsBrowser
local (adrdriver);
radio.upstream.findDriver (type, @adrdriver);
if defined (adrdriver^.configPage) {
try { //trap errors
adrErrorFlag^ = false;
user.radio.prefs.upstream.enabled = true;
return (adrdriver^.configPage (adrfolder, adrspec))}
else { //show the error to the user
adrErrorFlag^ = true;
return ("<font color=\"red\">Can't edit the upstream settings because the driver reported an error: " + tryError + "</font>")}}
else { //this driver doesn't know how to edit settings in the browser
adrErrorFlag^ = true;
return ("<font color=\"red\">Can't edit upstream settings because the '" + type + "' driver doesn't have a 'configPage' script.</font>")}}
<<bundle //testing
<<local (flError = false)
<<html.setPageTableAddress (@workspace.pt)
<<upstreamSettings ("Backup:Radio UserLand:www:system:upstream:", @flError, @workspace.pt)
<<html.deletePageTableAddress ()
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.