|
From: creecode <icr...@us...> - 2006-03-10 22:01:36
|
Update of /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/adminSite/website In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21687 Modified Files: setupFrontier Log Message: popup text for email password on setup webpage Index: setupFrontier =================================================================== RCS file: /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/adminSite/website/setupFrontier,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** setupFrontier 18 Feb 2006 18:53:07 -0000 1.7 --- setupFrontier 10 Mar 2006 22:01:14 -0000 1.8 *************** *** 1,3 **** ! FrontierVcsFile:1:scpt:mainResponder.adminSite.website.setupFrontier ! on setupFrontier () { ÇChanges Ç2/18/06; 9:55:55 AM by TAC Çadded programName to personalize webpage and pop window Ç2/8/06; 2:20:15 PM by TAC Çlowercase method get, towards XHTML compliance Ç2/1/06; 1:32:48 PM by TAC Çtowards XHTML compliance Çlowercase method check, towards XHTML compliance Ç7/6/05; 12:51:01 PM by TAC Çrewrite, based on old code <http://cvs.sourceforge.net/viewcvs.py/frontierkernel/odbs/mainResponderRoot/mainResponder/adminSite/website/setupFrontier?rev=1.2> local (pta = html.getPageTableAddress ()); local (errorMessage = "", htmlText = "", indentLevel = 0, pathArgs = ""); on add (s) { htmlText = htmlText + string.filledstring ("\t", indentLevel) + s + "\r"}; on popupWindowLink (label, localizationStringId) { localizationStringId = string.urlEncode (localizationStringId); return ("<a href=\"JavaScript: newWindow=openWin ('" + string.popLeading (pta^.URI, '/') + "$popupWindow?label=" + string.urlEncode (label) + "&localizationStringId=" + localizationStringId + "', 'prefsPopup', 'width=400,height=400,toolbar=0,location=0,directories=0,status=0,menuBar=0,scrollBars=1,resizable=1'); newWindow.focus ()\">" + label + "</a>")}; if string.lower (pta^.method) == "post" { local (adrArgs = @pta^.postArgs, flError = false); if defined (adrArgs^.personalize) { // personalize local (name = adrArgs^.name); local (organization = adrArgs^.organization); local (email = adrArgs^.email); local (mailHost = adrArgs^.mailHost); local (password = adrArgs^.password); local (repeat = adrArgs^.repeatPassword); bundle { // convert mail host port to a number try { // if not, it's an error adrArgs^.mailHostPort = number (adrArgs^.mailHostPort)} else { errorMessage = "Can't set the outgoing mail server port because the port you entered is not valid."; flError = true}}; bundle { // convert web server port to a number try { // if not, it's an error adrArgs^.webServerPort = number (adrArgs^.webServerPort)} else { errorMessage = "Can't set the web server port because the port you entered is not valid."; flError = true}}; on getInitials (s) { local (initials = ""); bundle { //strip off parentheticals if s contains "(" { s = string.nthField (s, "(", 1)}; if s contains "[" { s = string.nthField (s, "[", 1)}; if s contains "{" { s = string.nthField (s, "{", 1)}}; s = string.trimWhiteSpace (s); initials = string.upper (s[1]); local (i, ct = sizeOf (s)); if sizeOf (s) > 1 { local (flNextCharIsInitial = false); for i = 2 to ct { if flNextCharIsInitial { if string.isAlpha (s[i]) { initials = initials + string.upper (s[i])}; flNextCharIsInitial = false}; if not string.isAlpha (s[i]) { flNextCharIsInitial = true}}}; return (initials)}; on setName (name) { user.prefs.name = name; bundle { //set user.prefs.initials user.prefs.initials = getInitials (name)}}; on setEmail (email) { user.prefs.mailAddress = email}; if system.environment.isMac { //convert name, organization to Mac text name = latinToMac.convert (name); organization = latinToMac.convert (organization)}; setName (name); setEmail (email); user.prefs.organization = organization; user.prefs.mailHost = mailHost; config.mainResponder.prefs.baseUrl = "http://" + adrArgs^.webServerDomain + "/"; bundle { //check that the password is ok, and that it matches the repeat password if sizeOf (password) < 4 { errorMessage = "Can't continue setting up Frontier because the password you supplied is not at least four characters long."; flError = true}; if not flError { if password != repeat { errorMessage = "Can't continue setting up Frontier because the password you supplied does not match the repeat password."; flError = true}}}; bundle { //set up Admin member for access to control panel bundle { //create the Admin membership group if needed local (adrRoot = @[system.temp.mainResponder.membersRootFile]); local (adrGroup = @adrRoot^.admin); if not defined (adrGroup^) { new (tableType, adrGroup)}; if not defined (adrGroup^.callbacks) { new (tableType, @adrGroup^.callbacks)}; if not defined (adrGroup^.cookieDomain) { adrGroup^.cookieDomain = ""}; if not defined (adrGroup^.cookieExpires) { adrGroup^.cookieExpires = "Mon, 01 Apr 2030 07:00:00 GMT"}; if not defined (adrGroup^.cookieName) { adrGroup^.cookieName = "Admin"}; if not defined (adrGroup^.mailReturnAddress) { adrGroup^.mailReturnAddress = user.prefs.mailAddress}; if not defined (adrGroup^.mailSubject) { adrGroup^.mailSubject = "Admin"}; if not defined (adrGroup^.mailTemplate) { wp.newTextObject ("", @adrGroup^.mailTemplate)}; if not defined (adrGroup^.openToPublic) { adrGroup^.openToPublic = false}; if not defined (adrGroup^.users) { new (tableType, @adrGroup^.users)}}; local (adrMember = mainResponder.members.getMemberTable ("Admin", user.prefs.mailAddress)); if not defined (adrMember^) { new (tableType, adrMember)}; adrMember^.password = password; if not defined (adrMember^.personalInfo) { new (tableType, @adrMember^.personalInfo)}; if not defined (adrMember^.personalInfo.name) { adrMember^.personalInfo.name = user.prefs.name}}; if not (flError) { user.prefs.mailHostPort = adrArgs^.mailHostPort; if adrArgs^.webServerPort != user.inetd.config.http.port { // web server port local (flRunning = inetd.isDaemonRunning (@user.inetd.config.http)); if flRunning { //stop server, set port, restart server inetd.stopOne (@user.inetd.config.http); user.inetd.config.http.port = adrArgs^.webServerPort; inetd.startOne (@user.inetd.config.http)} else { //just set port user.inetd.config.http.port = adrArgs^.webServerPort}}; scriptError ("!redirect " + pta^.URI + "$proxyServer")}}; if defined (adrArgs^.proxyServer) { // proxy server try { // convert port to a number -- if not, it's an error adrArgs^.port = number (adrArgs^.port)} else { errorMessage = "Can't set your proxy server settings because the port you entered is not valid."; adrArgs^.enabled = false; flError = true}; user.webBrowser.proxy.domain = adrArgs^.domain; user.webBrowser.proxy.username = adrArgs^.username; user.webBrowser.proxy.password = binary (adrArgs^.password); user.webBrowser.proxy.enabled = false; if defined (adrArgs^.enabled) { if adrArgs^.enabled { user.webBrowser.proxy.enabled = true}}; if not (flError) { user.webBrowser.proxy.port = adrArgs^.port; scriptError ("!redirect " + pta^.URI + "$portForwarding")}}; if defined (adrArgs^.portForwarding) { // port forwarding local (adminPassword = adrArgs^.password); local (flEnablePortForwarding = defined (adrArgs^.flEnablePortForwarding)); local (flRememberAdminPassword = defined (adrArgs^.flRememberAdminPassword)); local (password = mainResponder.members.getMemberTable ("Admin", user.prefs.mailAddress)^.password); local (urlParts = string.urlSplit (config.mainResponder.prefs.baseUrl)); bundle { // convert actualPort to a number -- if not, it's an error try { adrArgs^.actualPort = number (adrArgs^.actualPort)} else { errorMessage = "Can't set your actual web server port because the port you entered is not valid."; flEnablePortForwarding = false; flError = true}}; bundle { // convert apparentPort to a number -- if not, it's an error try { adrArgs^.apparentPort = number (adrArgs^.apparentPort)} else { errorMessage = "Can't set your apparent web server port because the port you entered is not valid."; flEnablePortForwarding = false; flError = true}}; if flRememberAdminPassword and flEnablePortForwarding { user.prefs.portForwardingAdminPassword = binary (adminPassword)}; if not (flError) { if adrArgs^.actualPort != user.inetd.config.http.port or adrArgs^.apparentPort != user.inetd.config.http.apparentPort { local (flRunning = inetd.isDaemonRunning (@user.inetd.config.http)); if flRunning { // stop server, set port, restart server inetd.stopOne (@user.inetd.config.http); user.inetd.config.http.apparentPort = adrArgs^.apparentPort; user.inetd.config.http.port = adrArgs^.actualPort; inetd.startOne (@user.inetd.config.http)} else { // just set port user.inetd.config.http.apparentPort = adrArgs^.apparentPort; user.inetd.config.http.port = adrArgs^.actualPort}}}; Frontier.completeSetup (urlParts [2], password, adminPassword, flRememberAdminPassword, flEnablePortForwarding); if not (flError) { scriptError ("!redirect " + pta^.URI + "$congratulations")}}}; if defined (pta^.pathArgs) { if pta^.pathArgs != "" { pathArgs = pta^.pathArgs}}; case pathArgs { // generally the cases should be ordered in user presentation order, they can be accessed by name or number, name is preferred "1"; "personalize" { local (name = user.prefs.name, organization = user.prefs.organization); pta^.title = "Personalize"; bundle { // change the template to the setup template, which doesn't have navigation links to the rest of the admin site table.assign (@pta^.template, "setup"); pta^.indirectTemplate = true}; if system.environment.isMac { // convert name, organization to latin text name = latinToMac.macToLatin (name); organization = latinToMac.macToLatin (organization)}; bundle { //render the new user page local (t); new (tabletype, @t); bundle { // add the labels to the replacement table t.userPasswordLabel = popupWindowLink (Frontier.getProgramName (false) + " Admin password", "setupFrontier.popupText.adminPassword"); t.webserverdomainlabel = popupWindowLink ("Web server domain name or IP address", "setupFrontier.popupText.webServerDomainIp")}; bundle { // add personal info to replacement table t.mailhost = user.prefs.mailHost; t.mailHostPort = user.prefs.mailHostPort; t.programName = Frontier.getProgramName (false); t.useremail = user.prefs.mailAddress; t.username = name; t.userorganization = organization; t.userpassword = ""; bundle { // web server domain or ip address local (urlParts = string.urlSplit (config.mainResponder.prefs.baseUrl)); t.webserverdomain = urlParts [2]}; try { // try to get the admin password from the Admin membership group local (adrMember = mainResponder.members.getMemberTable ("Admin", user.prefs.mailAddress)); if defined (adrMember^) { t.userpassword = adrMember^.password}}; bundle { // web server port t.webserverport = user.inetd.config.http.port}}; bundle { // add error message to replacement table t.errorMessage = ""; if errorMessage != "" { t.errorMessage = "<p style=\"color: red;\">" + errorMessage + "</p>"}}; add (mainResponder.getString ("setupFrontier.personalize", @t))}}; "2"; "proxyServer" { pta^.title = "Proxy Server Settings"; bundle { // change the template to the setup template, which doesn't have navigation links to the rest of the admin site table.assign (@pta^.template, "setup"); pta^.indirectTemplate = true}; bundle { // render the new user page local (t); new (tabletype, @t); bundle { // add proxy settings to replacement table with user.webBrowser.proxy { t.proxydomain = domain; t.proxyusername = username; t.proxypassword = string (password); t.proxyport = port; if enabled { t.proxyenabled = "checked"} else { t.proxyenabled = ""}}}; bundle { // add error message to replacement table t.errorMessage = ""; if errorMessage != "" { t.errorMessage = "<p style=\"color: red;\">" + errorMessage + "</p>"}}; add (mainResponder.getString ("setupFrontier.proxyServer", @t))}}; "3"; "portForwarding" { if system.environment.isCarbon { //we need to run the port forwarding page now pta^.title = "Mac OS X Port Forwarding"; bundle { // change the template to the setup template, which doesn't have navigation links to the rest of the admin site table.assign (@pta^.template, "setup"); pta^.indirectTemplate = true}; bundle { // render the new user page local (t); new (tabletype, @t); t.adminPassword = ""; t.rememberAdminPassword = "checked"; t.enablePortForwarding = "checked"; t.actualPort = user.inetd.config.http.port; t.apparentPort = 80; if defined (user.inetd.config.http.apparentPort) { t.apparentPort = user.inetd.config.http.apparentPort}; if defined (user.prefs.portForwardingAdminPassword) { t.adminPassword = string (user.prefs.portForwardingAdminPassword)}; bundle { // add error message to replacement table t.errorMessage = ""; if errorMessage != "" { t.errorMessage = "<p style=\"color: red;\">" + errorMessage + "</p>"}}; add (mainResponder.getString ("setupFrontier.portForwarding", @t))}} else { //Windows and Classic don't need to deal with port forwarding local (password = mainResponder.members.getMemberTable ("Admin", user.prefs.mailAddress)^.password); local (urlParts = string.urlSplit (config.mainResponder.prefs.baseUrl)); Frontier.completeSetup (urlParts [2], password); scriptError ("!redirect " + pta^.URI + "$congratulations")}}; "4"; "congratulations" { bundle { // change the template to the setup template, which doesn't have navigation links to the rest of the admin site table.assign (@pta^.template, "setup"); pta^.indirectTemplate = true}; pta^.title = "Congratulations"; local (adminSiteUrl = "http://" + pta^.host + "/"); bundle { //render the new user page add (mainResponder.getString ("setupFrontier.newUserConfirmMessage")); bundle { //add the Continue button local (adminSiteUrl = "http://" + pta^.host + "/"); add ("<form method=\"get\" action=\"" + adminSiteUrl + "\">"); add ("<input type=\"submit\" value=\"Continue\" onclick=\"document.location='" + adminSiteUrl + "'\" />"); add ("</form>")}; if defined (system.temp.Frontier.setupFrontier.flAllowLocalAccessToSetupPage) { system.temp.Frontier.setupFrontier.flAllowLocalAccessToSetupPage = false}}}; //require login from now on "popupWindow" { // this is a special case, it produces a popup window local (t); new (tableType, @t); t.programName = Frontier.getProgramName (false); pta^.autoParagraphs = true; pta^.title = "Popup Text"; table.assign (@pta^.pageHeader, "<html><head><title><%title%></title></head><body>"); table.assign (@pta^.template, "<body>{bodytext}</body></html>"); try { delete (@pta^.javaScript)}; // popup windows should not have any JavaScript add ("<div name=\"setupfrontierpopupwindow\" style=\"font-size: x-large; margin: 13px;\">"); indentLevel++; add ("<b>"); indentLevel++; add (string.urlDecode (pta^.searchArgTable.label)); add ("</b>"); indentLevel--; add ("<br />"); add ("<br />"); add (mainResponder.getString (pta^.searchArgTable.localizationStringId, @t)); add ("</div>"); indentLevel--}} else { scriptError ("!redirect " + pta^.URI + "$personalize")}; return (htmlText)} \ No newline at end of file --- 1,425 ---- ! FrontierVcsFile:2:scpt:mainResponder.adminSite.website.setupFrontier ! on setupFrontier () { ! «Changes ! «3/6/06; 7:50:35 PM by TAC ! «added local programName ! «added support for settings for using SMTP AUTH ! «2/28/06; 11:21:17 AM by TAC ! «replace extensions.latinToMac.convert with string.latinToMac ! «replace extensions.latinToMac.macToLatin with string.macToLatin ! «2/18/06; 9:55:55 AM by TAC ! «added programName to personalize webpage and pop window ! «2/8/06; 2:20:15 PM by TAC ! «lowercase method get, towards XHTML compliance ! «2/1/06; 1:32:48 PM by TAC ! «towards XHTML compliance ! «lowercase method check, towards XHTML compliance ! «7/6/05; 12:51:01 PM by TAC ! «rewrite, based on old code <http://cvs.sourceforge.net/viewcvs.py/frontierkernel/odbs/mainResponderRoot/mainResponder/adminSite/website/setupFrontier?rev=1.2> ! ! local (pta = html.getPageTableAddress ()); ! local (errorMessage = "", htmlText = "", indentLevel = 0, pathArgs = "", programName = Frontier.getProgramName (false)); ! ! on add (s) { ! htmlText = htmlText + string.filledstring ("\t", indentLevel) + s + "\r"}; ! ! on popupWindowLink (label, localizationStringId) { ! localizationStringId = string.urlEncode (localizationStringId); ! return ("<a href=\"JavaScript: newWindow=openWin ('" + string.popLeading (pta^.URI, '/') + "$popupWindow?label=" + string.urlEncode (label) + "&localizationStringId=" + localizationStringId + "', 'prefsPopup', 'width=400,height=400,toolbar=0,location=0,directories=0,status=0,menuBar=0,scrollBars=1,resizable=1'); newWindow.focus ()\">" + label + "</a>")}; ! ! if string.lower (pta^.method) == "post" { ! local (adrArgs = @pta^.postArgs, flError = false); ! ! if defined (adrArgs^.personalize) { // personalize ! local (name = adrArgs^.name); ! local (organization = adrArgs^.organization); ! local (email = adrArgs^.email); ! local (emailPassword = adrArgs^.emailPassword); ! local (repeatEmailPassword = adrArgs^.repeatEmailPassword); ! local (mailHost = adrArgs^.mailHost); ! local (smtpAuth = adrArgs^.smtpAuth); ! local (password = adrArgs^.password); ! local (repeat = adrArgs^.repeatPassword); ! ! bundle { // convert mail host port to a number ! try { // if not, it's an error ! adrArgs^.mailHostPort = number (adrArgs^.mailHostPort)} ! else { ! errorMessage = "Can't set the outgoing mail server port because the port you entered is not valid."; ! flError = true}}; ! ! bundle { // convert web server port to a number ! try { // if not, it's an error ! adrArgs^.webServerPort = number (adrArgs^.webServerPort)} ! else { ! errorMessage = "Can't set the web server port because the port you entered is not valid."; ! flError = true}}; ! ! on getInitials (s) { ! local (initials = ""); ! ! bundle { //strip off parentheticals ! if s contains "(" { ! s = string.nthField (s, "(", 1)}; ! if s contains "[" { ! s = string.nthField (s, "[", 1)}; ! if s contains "{" { ! s = string.nthField (s, "{", 1)}}; ! ! s = string.trimWhiteSpace (s); ! initials = string.upper (s[1]); ! ! local (i, ct = sizeOf (s)); ! ! if sizeOf (s) > 1 { ! local (flNextCharIsInitial = false); ! ! for i = 2 to ct { ! if flNextCharIsInitial { ! if string.isAlpha (s[i]) { ! initials = initials + string.upper (s[i])}; ! flNextCharIsInitial = false}; ! if not string.isAlpha (s[i]) { ! flNextCharIsInitial = true}}}; ! return (initials)}; ! ! on setName (name) { ! user.prefs.name = name; ! ! bundle { //set user.prefs.initials ! user.prefs.initials = getInitials (name)}}; ! ! on setEmail (email) { ! user.prefs.mailAddress = email}; ! ! if system.environment.isMac { //convert name, organization to Mac text ! name = string.latinToMac (name); ! organization = string.latinToMac (organization)}; ! ! setName (name); ! setEmail (email); ! ! config.mainResponder.prefs.baseUrl = "http://" + adrArgs^.webServerDomain + "/"; ! user.prefs.organization = organization; ! user.prefs.mailHost = mailHost; ! user.prefs.mailSmtpAuth = smtpAuth; ! ! bundle { // check that the email password is ok, and that it matches the repeat password ! «if sizeOf (emailPassword) < 4 ! «errorMessage = "Can't continue setting up Frontier because the email password you supplied is not at least four characters long." ! «flError = true ! ! «if not (flError) ! if emailPassword != repeatEmailPassword { ! errorMessage = "Can't continue setting up " + programName + " because the email password you supplied does not match the repeat email password."; ! flError = true}}; ! ! bundle { //check that the password is ok, and that it matches the repeat password ! if not (flError) { ! if sizeOf (password) < 4 { ! errorMessage = "Can't continue setting up Frontier because the password you supplied is not at least four characters long."; ! flError = true}; ! ! if not (flError) { ! if password != repeat { ! errorMessage = "Can't continue setting up Frontier because the password you supplied does not match the repeat password."; ! flError = true}}}}; ! ! if not (flError) { ! user.prefs.mailHostPort = adrArgs^.mailHostPort; ! ! bundle { //set up Admin member for access to control panel ! bundle { //create the Admin membership group if needed ! local (adrRoot = @[system.temp.mainResponder.membersRootFile]); ! local (adrGroup = @adrRoot^.admin); ! if not defined (adrGroup^) { ! new (tableType, adrGroup)}; ! if not defined (adrGroup^.callbacks) { ! new (tableType, @adrGroup^.callbacks)}; ! if not defined (adrGroup^.cookieDomain) { ! adrGroup^.cookieDomain = ""}; ! if not defined (adrGroup^.cookieExpires) { ! adrGroup^.cookieExpires = "Mon, 01 Apr 2030 07:00:00 GMT"}; ! if not defined (adrGroup^.cookieName) { ! adrGroup^.cookieName = "Admin"}; ! if not defined (adrGroup^.mailReturnAddress) { ! adrGroup^.mailReturnAddress = user.prefs.mailAddress}; ! if not defined (adrGroup^.mailSubject) { ! adrGroup^.mailSubject = "Admin"}; ! if not defined (adrGroup^.mailTemplate) { ! wp.newTextObject ("", @adrGroup^.mailTemplate)}; ! if not defined (adrGroup^.openToPublic) { ! adrGroup^.openToPublic = false}; ! if not defined (adrGroup^.users) { ! new (tableType, @adrGroup^.users)}}; ! ! local (adrMember = mainResponder.members.getMemberTable ("Admin", user.prefs.mailAddress)); ! ! if not defined (adrMember^) { ! new (tableType, adrMember)}; ! ! adrMember^.password = password; ! ! if not defined (adrMember^.personalInfo) { ! new (tableType, @adrMember^.personalInfo)}; ! ! if not defined (adrMember^.personalInfo.name) { ! adrMember^.personalInfo.name = user.prefs.name}}; ! ! bundle { // email password ! if emailPassword != "" { ! emailPassword = binary (emailPassword)}; ! ! user.prefs.mailPassword = emailPassword}; ! ! if adrArgs^.webServerPort != user.inetd.config.http.port { // web server port ! local (flRunning = inetd.isDaemonRunning (@user.inetd.config.http)); ! ! if flRunning { //stop server, set port, restart server ! inetd.stopOne (@user.inetd.config.http); ! user.inetd.config.http.port = adrArgs^.webServerPort; ! inetd.startOne (@user.inetd.config.http)} ! else { //just set port ! user.inetd.config.http.port = adrArgs^.webServerPort}}; ! ! scriptError ("!redirect " + pta^.URI + "$proxyServer")}}; ! ! if defined (adrArgs^.proxyServer) { // proxy server ! try { // convert port to a number -- if not, it's an error ! adrArgs^.port = number (adrArgs^.port)} ! else { ! errorMessage = "Can't set your proxy server settings because the port you entered is not valid."; ! adrArgs^.enabled = false; ! flError = true}; ! user.webBrowser.proxy.domain = adrArgs^.domain; ! user.webBrowser.proxy.username = adrArgs^.username; ! user.webBrowser.proxy.password = binary (adrArgs^.password); ! user.webBrowser.proxy.enabled = false; ! if defined (adrArgs^.enabled) { ! if adrArgs^.enabled { ! user.webBrowser.proxy.enabled = true}}; ! if not (flError) { ! user.webBrowser.proxy.port = adrArgs^.port; ! scriptError ("!redirect " + pta^.URI + "$portForwarding")}}; ! ! if defined (adrArgs^.portForwarding) { // port forwarding ! local (adminPassword = adrArgs^.password); ! local (flEnablePortForwarding = defined (adrArgs^.flEnablePortForwarding)); ! local (flRememberAdminPassword = defined (adrArgs^.flRememberAdminPassword)); ! local (password = mainResponder.members.getMemberTable ("Admin", user.prefs.mailAddress)^.password); ! local (urlParts = string.urlSplit (config.mainResponder.prefs.baseUrl)); ! bundle { // convert actualPort to a number -- if not, it's an error ! try { ! adrArgs^.actualPort = number (adrArgs^.actualPort)} ! else { ! errorMessage = "Can't set your actual web server port because the port you entered is not valid."; ! flEnablePortForwarding = false; ! flError = true}}; ! bundle { // convert apparentPort to a number -- if not, it's an error ! try { ! adrArgs^.apparentPort = number (adrArgs^.apparentPort)} ! else { ! errorMessage = "Can't set your apparent web server port because the port you entered is not valid."; ! flEnablePortForwarding = false; ! flError = true}}; ! if flRememberAdminPassword and flEnablePortForwarding { ! user.prefs.portForwardingAdminPassword = binary (adminPassword)}; ! if not (flError) { ! if adrArgs^.actualPort != user.inetd.config.http.port or adrArgs^.apparentPort != user.inetd.config.http.apparentPort { ! local (flRunning = inetd.isDaemonRunning (@user.inetd.config.http)); ! if flRunning { // stop server, set port, restart server ! inetd.stopOne (@user.inetd.config.http); ! user.inetd.config.http.apparentPort = adrArgs^.apparentPort; ! user.inetd.config.http.port = adrArgs^.actualPort; ! inetd.startOne (@user.inetd.config.http)} ! else { // just set port ! user.inetd.config.http.apparentPort = adrArgs^.apparentPort; ! user.inetd.config.http.port = adrArgs^.actualPort}}}; ! Frontier.completeSetup (urlParts [2], password, adminPassword, flRememberAdminPassword, flEnablePortForwarding); ! if not (flError) { ! scriptError ("!redirect " + pta^.URI + "$congratulations")}}}; ! ! if defined (pta^.pathArgs) { ! if pta^.pathArgs != "" { ! pathArgs = pta^.pathArgs}}; ! ! case pathArgs { // generally the cases should be ordered in user presentation order, they can be accessed by name or number, name is preferred ! "1"; ! "personalize" { ! local (name = user.prefs.name, organization = user.prefs.organization); ! ! pta^.title = "Personalize"; ! ! bundle { // change the template to the setup template, which doesn't have navigation links to the rest of the admin site ! table.assign (@pta^.template, "setup"); ! pta^.indirectTemplate = true}; ! ! if system.environment.isMac { // convert name, organization to latin text ! name = string.macToLatin (name); ! organization = string.macToLatin (organization)}; ! ! bundle { //render the new user page ! local (t); new (tabletype, @t); ! ! bundle { // add the labels to the replacement table ! t.emailPasswordLabel = popupWindowLink ("Email password", "setupFrontier.popupText.emailPassword"); ! t.userPasswordLabel = popupWindowLink (programName + " Admin password", "setupFrontier.popupText.adminPassword"); ! t.webserverdomainlabel = popupWindowLink ("Web server domain name or IP address", "setupFrontier.popupText.webServerDomainIp")}; ! ! bundle { // add personal info to replacement table ! t.mailhost = user.prefs.mailHost; ! t.mailHostPort = user.prefs.mailHostPort; ! t.programName = programName; ! t.useremail = user.prefs.mailAddress; ! t.emailPassword = ""; ! t.username = name; ! t.userorganization = organization; ! t.userpassword = ""; ! ! try { // try to get user email password ! t.emailPassword = string (user.prefs.mailPassword)}; ! ! try { // try to get the admin password from the Admin membership group ! local (adrMember = mainResponder.members.getMemberTable ("Admin", user.prefs.mailAddress)); ! ! if defined (adrMember^) { ! t.userpassword = adrMember^.password}}; ! ! bundle { // web server domain or ip address ! local (urlParts = string.urlSplit (config.mainResponder.prefs.baseUrl)); ! t.webserverdomain = urlParts [2]}; ! ! bundle { // web server port ! t.webserverport = user.inetd.config.http.port}; ! ! bundle { // smtp auth ! local (item, s, smtpAuthMethods = {"", "CRAM-MD5", "LOGIN", "PLAIN"}); ! ! s = "<select name=\"smtpAuth\">\r"; ! ! for item in smtpAuthMethods { ! s = s + "<option"; ! ! if item == user.prefs.mailSmtpAuth { ! s = s + " selected"}; ! ! s = s + " value=\"" + item + "\">\r"; ! ! if item == "" { ! item = "NONE"}; ! ! s = s + item + "\r"; ! s = s + "</option>\r"}; ! ! s = s + "</select>\r"; ! t.smtpAuth = s}; ! }; ! bundle { // add error message to replacement table ! t.errorMessage = ""; ! if errorMessage != "" { ! t.errorMessage = "<p style=\"color: red;\">" + errorMessage + "</p>"}}; ! ! add (mainResponder.getString ("setupFrontier.personalize", @t))}}; ! "2"; ! "proxyServer" { ! pta^.title = "Proxy Server Settings"; ! bundle { // change the template to the setup template, which doesn't have navigation links to the rest of the admin site ! table.assign (@pta^.template, "setup"); ! pta^.indirectTemplate = true}; ! ! bundle { // render the new user page ! local (t); new (tabletype, @t); ! bundle { // add proxy settings to replacement table ! with user.webBrowser.proxy { ! t.proxydomain = domain; ! t.proxyusername = username; ! t.proxypassword = string (password); ! t.proxyport = port; ! if enabled { ! t.proxyenabled = "checked"} ! else { ! t.proxyenabled = ""}}}; ! bundle { // add error message to replacement table ! t.errorMessage = ""; ! if errorMessage != "" { ! t.errorMessage = "<p style=\"color: red;\">" + errorMessage + "</p>"}}; ! add (mainResponder.getString ("setupFrontier.proxyServer", @t))}}; ! "3"; ! "portForwarding" { ! if system.environment.isCarbon { //we need to run the port forwarding page now ! pta^.title = "Mac OS X Port Forwarding"; ! bundle { // change the template to the setup template, which doesn't have navigation links to the rest of the admin site ! table.assign (@pta^.template, "setup"); ! pta^.indirectTemplate = true}; ! ! bundle { // render the new user page ! local (t); new (tabletype, @t); ! t.adminPassword = ""; ! t.rememberAdminPassword = "checked"; ! t.enablePortForwarding = "checked"; ! t.actualPort = user.inetd.config.http.port; ! t.apparentPort = 80; ! if defined (user.inetd.config.http.apparentPort) { ! t.apparentPort = user.inetd.config.http.apparentPort}; ! if defined (user.prefs.portForwardingAdminPassword) { ! t.adminPassword = string (user.prefs.portForwardingAdminPassword)}; ! bundle { // add error message to replacement table ! t.errorMessage = ""; ! if errorMessage != "" { ! t.errorMessage = "<p style=\"color: red;\">" + errorMessage + "</p>"}}; ! add (mainResponder.getString ("setupFrontier.portForwarding", @t))}} ! else { //Windows and Classic don't need to deal with port forwarding ! local (password = mainResponder.members.getMemberTable ("Admin", user.prefs.mailAddress)^.password); ! local (urlParts = string.urlSplit (config.mainResponder.prefs.baseUrl)); ! Frontier.completeSetup (urlParts [2], password); ! scriptError ("!redirect " + pta^.URI + "$congratulations")}}; ! "4"; ! "congratulations" { ! bundle { // change the template to the setup template, which doesn't have navigation links to the rest of the admin site ! table.assign (@pta^.template, "setup"); ! pta^.indirectTemplate = true}; ! ! pta^.title = "Congratulations"; ! ! local (adminSiteUrl = "http://" + pta^.host + "/"); ! ! bundle { //render the new user page ! add (mainResponder.getString ("setupFrontier.newUserConfirmMessage")); ! bundle { //add the Continue button ! local (adminSiteUrl = "http://" + pta^.host + "/"); ! ! add ("<form method=\"get\" action=\"" + adminSiteUrl + "\">"); ! add ("<input type=\"submit\" value=\"Continue\" onclick=\"document.location='" + adminSiteUrl + "'\" />"); ! add ("</form>")}; ! ! if defined (system.temp.Frontier.setupFrontier.flAllowLocalAccessToSetupPage) { ! system.temp.Frontier.setupFrontier.flAllowLocalAccessToSetupPage = false}}}; //require login from now on ! "popupWindow" { // this is a special case, it produces a popup window ! local (t); ! ! new (tableType, @t); ! ! t.programName = programName; ! ! pta^.autoParagraphs = true; ! pta^.title = "Popup Text"; ! ! table.assign (@pta^.pageHeader, "<html><head><title><%title%></title></head><body>"); ! table.assign (@pta^.template, "<body>{bodytext}</body></html>"); ! ! try { ! delete (@pta^.javaScript)}; // popup windows should not have any JavaScript ! ! add ("<div name=\"setupfrontierpopupwindow\" style=\"font-size: x-large; margin: 13px;\">"); indentLevel++; ! add ("<b>"); indentLevel++; ! add (string.urlDecode (pta^.searchArgTable.label)); ! add ("</b>"); indentLevel--; ! add ("<br />"); ! add ("<br />"); ! add (mainResponder.getString (pta^.searchArgTable.localizationStringId, @t)); ! add ("</div>"); indentLevel--}} ! else { ! scriptError ("!redirect " + pta^.URI + "$personalize")}; ! ! return (htmlText)} \ No newline at end of file |