You can subscribe to this list here.
| 2004 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(447) |
Nov
(163) |
Dec
(57) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2005 |
Jan
(172) |
Feb
|
Mar
(123) |
Apr
(64) |
May
(1) |
Jun
(278) |
Jul
(89) |
Aug
(97) |
Sep
(62) |
Oct
(53) |
Nov
(119) |
Dec
(60) |
| 2006 |
Jan
(76) |
Feb
(1094) |
Mar
(363) |
Apr
(163) |
May
(57) |
Jun
(43) |
Jul
(39) |
Aug
(15) |
Sep
(33) |
Oct
(62) |
Nov
(8) |
Dec
|
| 2007 |
Jan
(9) |
Feb
(34) |
Mar
(2) |
Apr
(14) |
May
(8) |
Jun
(40) |
Jul
(21) |
Aug
(1) |
Sep
(20) |
Oct
(15) |
Nov
(26) |
Dec
|
| 2008 |
Jan
(1) |
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(3) |
Oct
|
Nov
|
Dec
(1) |
| 2009 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(32) |
Jun
|
Jul
|
Aug
(3) |
Sep
(3) |
Oct
|
Nov
|
Dec
|
| 2010 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2011 |
Jan
|
Feb
|
Mar
(2) |
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(7) |
Dec
|
| 2012 |
Jan
|
Feb
|
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: creedon <icr...@us...> - 2006-01-17 23:30:39
|
Update of /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/adminSite/data/localization/languages/english/outlines In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14090 Modified Files: prefs Log Message: changed read read to just read Index: prefs =================================================================== RCS file: /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/adminSite/data/localization/languages/english/outlines/prefs,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** prefs 8 Jan 2006 01:53:45 -0000 1.5 --- prefs 17 Jan 2006 23:30:27 -0000 1.6 *************** *** 1,3 **** FrontierVcsFile:1:optx:mainResponder.adminSite.data.localization.languages.english.outlines.prefs ! Server Settings Basic Settings You can edit the personalization and mail server (SMTP) information used for this server. <br/> <%radio.prefs.stringPref ("Name", @user.prefs.name)%> <%radio.prefs.stringPref ("Organization", @user.prefs.organization)%> <%radio.prefs.stringPref ("Email address", @user.prefs.mailAddress)%> <%radio.prefs.stringPref ("Outgoing (SMTP) mail server", @user.prefs.mailHost)%> <%radio.prefs.numberPref ("Outgoing (SMTP) mail server port", @user.prefs.mailHostPort)%> Security You can set security access controls on all content that the server renders. The values on this page control the global settings. The directory and script settings can be over-ridden at the site level, while IP address security is global. <%mainResponder.adminSite.prefs.securityLevel ("Admin security level")%> <%radio.prefs.checkboxPref ("Check this box to allow directory listings by default.", @config.mainresponder.globals.allowDirectoryListings)%> <%radio.prefs.checkboxPref ("Check this box to allow script listings by default.", @config.mainresponder.globals.allowScriptListings)%> <%radio.prefs.checkboxPref ("Check this box to allow scripts to run by default.", @config.mainresponder.globals.allowScriptsToRun)%> <br /> <b>Blocking HTTP requests by IP address</b> <%radio.prefs.checkboxPref ("Check this box to allow HTTP access <i>only</i> from the following IP addresses.", @config.mainresponder.prefs.flAllowByIpOnly)%> <%radio.prefs.textAreaPref ("IP addresses<br />separated by<br />commas", @config.mainresponder.prefs.allowedIpAddresses)%> <br /> <b>Membership</b> <%radio.prefs.checkboxPref ("Check this box to use the more secure encrypted cookie format. The encrypted format does not store passwords in membership cookies. Instead it hashes the password, plus additional information, to make membership more secure.", @config.mainresponder.prefs.flMembershipHashedCookies)%> Administrators You can add or remove administrators access to the Frontier Admin Site or edit the information for an existing administrator. You can also grant access to the WebEdit server to an administrator. <%mainResponder.adminSite.prefs.listAdministrators ()%> <br /><%mainResponder.adminSite.prefs.addOrEditAdministrator ()%> Domains The settings on this page are used configure virtual domains and sub-sites. For each site hosted on your server, there's a domain, a path, and a collection of objects which comprise the site. For a site hosted from an object database -- a Manila site for example, the objects will be specified by a database address. For a site hosted fom the filesystem, the objects will be specified by the path to a folder on disk. To map a domain and path to a site, type the domain name, and the path under the domain where the site will be served. In the Object field, enter either an object database address or the path to a folder of files on disk. Then click the Add Site button to add the site to the hierarchy. You can specify a redirect by entering the URL to redirect to, starting with http:\\// without a trailing slash, for example http:\\//www.example.com -- This will redirect all requests for the specified URL to the site of your choosing. <%local (pta = html.getPageTableAddress ()); pta^.flAddSubmitButton = false; if defined (pta^.postArgs.delete) {""} else {mainResponder.adminSite.prefs.addMappingToSiteTree () + "<br /><br />"}%> <b>Domains on this server</b> <%mainResponder.adminSite.prefs.listDomains ()%> Search Engine You can enable and set up the search engine server on this page. <%radio.prefs.checkboxPref ("Check this box to enable the search engine.", @config.mainResponder.prefs.flSearchEngine)%> <%radio.prefs.stringPref ("Search page URL", @config.mainResponder.urls.searchHome,size:80, maxlength:300)%> <%radio.prefs.numberPref ("Index stored pages every", @config.mainResponder.search.prefs.minutesBetweenIndexes, 1, textToRight:" minute(s).")%> <%radio.prefs.checkboxPref ("Check this box if you want to store the full text of indexed pages, so that excerpts can be displayed in search results.", @config.mainResponder.search.prefs.flStoreFullText)%> <%radio.prefs.checkboxPref ("Check this box to allow public search submissions.", @config.mainresponder.prefs.flAllowPublicSearchSubmissions)%> <%radio.prefs.checkboxPref ("Check this box to enable search engine logging", @config.mainResponder.search.prefs.flLogEnabled)%> MIME Types <%if defined (searchArgTable.itemToEdit) {"To change the MIME type associated with the ." + searchArgTable.itemToEdit + " extension, fill in the Type input box and click the Submit button."} else {"To add a new MIME type, fill in the suffix and its MIME type, then click the Add New Type button. To delete one or more types, check its checkbox and click the Delete button at the bottom of the page. To edit a type, click an Edit link on the right."}%> <%mainResponder.adminSite.prefs.mimeTypes ()%> Update Notification Frontier can automatically connect to a server at UserLand each night, to check the availability of new features and bug fixes. When software updates are available, Frontier will notify you via email. It's recommended that you turn this feature on. <%radio.prefs.checkboxPref ("Check this box to receive email notification when new software updates are available.", @config.mainResponder.prefs.flUpdateNightly)%> <br />You can view a list of pending software updates, and optionally install them via the <%"<a href=\"" + mainResponder.adminSite.urls.updates + "\">"%>Updates page</a>. <br /><b>Databases to update</b> Check the box next to each database that you want to be updated when installing new software. It's strongly recommended that you enable updating all of these databases. <%mainResponder.adminSite.prefs.dbToUpdateCheck ("Frontier.root")%> <%mainResponder.adminSite.prefs.dbToUpdateCheck ("mainResponder.root")%> <%mainResponder.adminSite.prefs.dbToUpdateCheck ("prefs.root")%> Backups This page contains the global backup settings for Manila sites, Frontier databases, and discussion group archives in XML. <br /> <b>Databases</b> Frontier can automatically save all changed databases every minute, and make backup copies each night. It's strongly recommended that you enable the saving of changed databases every minute. Depending on the size of your databases, nightly backups may take some time, so you may want to only enable this feature if your databases are small, or if the server traffic is low at night. <%radio.prefs.checkboxPref ("Check this box to save all changed databases every minute.", @config.mainresponder.prefs.flSaveDatabasesEveryMinute)%> <%radio.prefs.checkboxPref ("Check this box to back up all changed files in the Guest Databases folder every night?", @config.mainResponder.prefs.flBackupNightly)%> <%radio.prefs.stringPref ("Backup folder", @config.mainResponder.prefs.backupFolder, size:60)%> <br /><br /><b>Discussion group archives</b> The discussion group archives feature saves an XML file for every discussion group message. Only new or changed discussion group messages will be archived in XML. <%radio.prefs.checkboxPref ("Check this box to archive changes to discussion group messages in XML?", @config.mainResponder.prefs.flArchiveDiscuss)%> <%radio.prefs.stringPref ("Archive folder", @config.mainResponder.prefs.discussArchiveFolder, size:60)%> Logging and Statistics Frontier can maintain logs detailing what happens on your server and statistics that provide a cumulative view. You can choose which logs and stats Frontier should maintain, and where to store the logs. <br /> <%radio.prefs.checkboxPref ("Check this box to log every HTTP request.", @config.mainResponder.prefs.flLog)%> <%radio.prefs.checkboxPref ("Check this box to log every XML-RPC and SOAP request.", @user.betty.prefs.flKeepServerLog)%> <%radio.prefs.checkboxPref ("Check this box to log root updates.", @user.rootUpdates.prefs.flShowUpdatesToUser)%> <%radio.prefs.checkboxPref ("Check this box to enable search engine logging", @config.mainResponder.search.prefs.flLogEnabled)%> <%radio.prefs.checkboxPref ("Check this box to log scheduled tasks.", @user.scheduler.prefs.logInGuestDatabase)%> <%radio.prefs.checkboxPref ("Check this box to close and re-open the log database every hour, to reclaim allocated memory.", @config.mainresponder.prefs.flLogReopenHourly)%> <%radio.prefs.stringPref ("Log folder", @user.log.prefs.folder, size:70, maxlength:300)%> <br /> <b>Common Log Format</b> Common log format is a text file format used by popular web servers like Apache. Many log analysis programs used to generate traffic graphs and summaries can read this format. Settings in this section enable or disable the output of common log text files, and determine what information is included. <%table.surePath ("system.temp.mainResponder.misc.flCommonLog"); local (ad...@sy..., adr...@us..., s); if method != "POST" {adr^ = defined (adrcallback^)}; s=radio.prefs.checkboxPref ("Check this box to log HTTP requests in common log format.", adr); if method == "POST" {if adr^ {script.newScriptObject ("on commonLog (pta)\r\treturn (webserver.postFilters.commonLog (pta, true))", adrcallback)} else {if defined (adrcallback^) {delete (adrcallback)}}}; delete (adr); s%> <%radio.prefs.checkboxPref ("Check this box to use common log date format.", @user.webserver.prefs.commonLog.flUseCommonLogDateFormat)%> <%radio.prefs.checkboxPref ("Check this box to include virtual hosts.", @user.webserver.prefs.commonLog.flIncludeVirtualHosts)%> <%radio.prefs.checkboxPref ("Check this box to include referers.", @user.webserver.prefs.commonLog.flIncludeReferers)%> <%radio.prefs.checkboxPref ("Check this box to include User-Agents.", @user.webserver.prefs.commonLog.flIncludeUserAgents)%> <br /> <b>Statistics</b> Frontier can count hits on a per-domain basis, complie nightly discussion group stats, and write XML reports listing the most read sites. <%radio.prefs.checkboxPref ("Check this box to compile discussion group stats every night.", @config.mainresponder.prefs.flDiscussStatsNightly)%> <%radio.prefs.checkboxPref ("Check this box to count total hits for each domain hosted on this server.", @user.webserver.prefs.flDomainStats)%> Database Subscriptions You can publish a guest database and allow other people to subscribe to changes made to the guest database. Changes to the guest database made using WebEdit will be added to the updates flow for the database.<br /><br /> <%radio.prefs.checkboxPref ("Check this box to enable database subscriptions from this server to other copies of Frontier or Radio UserLand.", @config.mainresponder.prefs.flSubscriptions)%> <br /><b>Subscribable databases</b> Below is a list of all databases on this server. To enable or disable subscriptions for a given database, check or uncheck the box next to its name and click the Submit button below.<br /><br /> <%mainResponder.adminSite.prefs.listSubscribableDatabases ()%> WebEdit WebEdit allows remote access to your databases, from one copy of Frontier to another. On this page you can enable and disable the WebEdit server, add users, edit user information, and manage the custody of checked-out objects. <%local (pta = html.getPageTableAddress ()); pta^.flAddSubmitButton = false; if not defined (system.temp.mainResponder.misc) {new (tableType, @system.temp.mainResponder.misc)}; ""%> <%local (adrpref = @system.temp.mainResponder.misc.flWebEditEnabled, adrhandlers = @user.betty.rpcHandlers.webEdit); if method != "POST" {if defined (adrhandlers^) {adrpref^ = true} else {adrpref^ = false}}; local (s = radio.prefs.checkboxPref ("Check this box to enable the WebEdit server.", adrpref)); if method == "POST" {if adrpref^ {adrhandlers^ = @webeditServer.rpcHandlers.webEdit} else {try {delete (adrhandlers)}}}; s%> <br /><input type="submit" value="Submit"> <br /> <b>Add User</b> To add a new WebEdit user, enter the user's name, email address and password below, and click the Add User button.<br /><br /> <%mainResponder.adminSite.prefs.addWebeditUser ()%> <br /> <b>Current users</b> Below is a list of users who currently have WebEdit access to this server. To remove a user, check the box next to the user's name, and then click the Remove Users button below.<br /><br /> <%mainResponder.adminSite.prefs.listWebeditUsers ()%> <br /> <b>Objects</b> The following objects have been checked out with WebEdit. To force the check-in of an object, check the box next to its name, and then click the Force Check-In button below.<br /><br /> <%mainResponder.adminSite.prefs.listObjects ()%> Legal Macros <%mainResponder.adminSite.prefs.legalMacros ()%> News Aggregator <%local (htmlText = ""); xml.aggregator.init (); htmlText = radio.prefs.checkboxPref ("Check this box to enable the news aggregator on this server. If it's enabled, Frontier will automatically scan subscribed channels once per hour.", @aggregatorData.prefs.enabled); xml.aggregator.init (); return (htmlText)%> <br /><b>When and how the aggregator runs</b>: <br />At what minute past the top of each hour should the aggregator scan for news? <%radio.prefs.numberPref ("Minute to scan", @aggregatorData.prefs.minuteToRead, upperbound:59)%> <br />The aggregator is multi-threaded. This means it can read read several RSS feeds at the same time. The larger this number the quicker it will finish each scan, but it may make the server slower while the scan is running. <%radio.prefs.numberPref ("Number of threads", @aggregatorData.prefs.maxThreads, lowerbound:1, upperbound:10)%> <br /><b>Archiving options</b>: <br />The news aggregator can automatically delete old stories from the database. It is highly recommended that you enable this option.<br /><br /> <%radio.prefs.checkboxPref ("Check this box to automatically delete old news items once an hour.", @aggregatorData.prefs.flArchive)%> <br />How old must an item be (in hours) in order to be deleted? <%radio.prefs.numberPref ("Hours before deletion", @aggregatorData.prefs.hoursBeforeArchive, lowerbound:1, upperbound:100)%> Subscriptions <%mainResponder.adminSite.prefs.subscriptions ()%> Debugging The settings on this page are for people who develop web applications in the Frontier environment. The debugging features help find problems with your code, and to isolate performance bottlenecks. Note that enabling these features can degrade server performance, and cause Frontier to use more memory and disk space than normal, so you should only enable them if needed. <br /> <b>mainResponder debugging</b> <%radio.prefs.checkboxPref ("Check this box to run mainResponder in debug mode. This will cause low-level errors to display an error window in the Frontier application.", @config.mainresponder.prefs.flDebug)%> <%radio.prefs.checkboxPref ("Check this box to copy the paramtable to scratchpad.params after every request.", @config.mainresponder.prefs.flKeepParamTable)%> <br /> <b>Profiling</b> Profiling allows you to find out what scripts and kernel verbs are being executed and for how long. It's a way of finding performance bottlenecks. With the feature enabled, you can view a web page showing the amount of time Frontier spent in each script and verb in processing the request by adding /profile/ to the begining of the path to the page. <%radio.prefs.checkboxPref ("Check this box to enable profiling.", @config.mainresponder.prefs.flProfiling)%> <br /> <b>Miscellaneous</b> Below are miscellaneous debugging features which may be useful depending on the type of application you're developing. <%radio.prefs.checkboxPref ("Check this box to record automatic database opens in system.temp.", @config.mainresponder.prefs.flLogDatabaseOpens)%> <%radio.prefs.checkboxPref ("Check this box to log available memory.", @config.mainresponder.prefs.flLogMemavail)%> Email Config <%flAddSubmitButton = false; mainResponder.controlPanel.emailConfig ()%> \ No newline at end of file --- 1,3 ---- FrontierVcsFile:1:optx:mainResponder.adminSite.data.localization.languages.english.outlines.prefs ! Server Settings Basic Settings You can edit the personalization and mail server (SMTP) information used for this server. <br/> <%radio.prefs.stringPref ("Name", @user.prefs.name)%> <%radio.prefs.stringPref ("Organization", @user.prefs.organization)%> <%radio.prefs.stringPref ("Email address", @user.prefs.mailAddress)%> <%radio.prefs.stringPref ("Outgoing (SMTP) mail server", @user.prefs.mailHost)%> <%radio.prefs.numberPref ("Outgoing (SMTP) mail server port", @user.prefs.mailHostPort)%> Security You can set security access controls on all content that the server renders. The values on this page control the global settings. The directory and script settings can be over-ridden at the site level, while IP address security is global. <%mainResponder.adminSite.prefs.securityLevel ("Admin security level")%> <%radio.prefs.checkboxPref ("Check this box to allow directory listings by default.", @config.mainresponder.globals.allowDirectoryListings)%> <%radio.prefs.checkboxPref ("Check this box to allow script listings by default.", @config.mainresponder.globals.allowScriptListings)%> <%radio.prefs.checkboxPref ("Check this box to allow scripts to run by default.", @config.mainresponder.globals.allowScriptsToRun)%> <br /> <b>Blocking HTTP requests by IP address</b> <%radio.prefs.checkboxPref ("Check this box to allow HTTP access <i>only</i> from the following IP addresses.", @config.mainresponder.prefs.flAllowByIpOnly)%> <%radio.prefs.textAreaPref ("IP addresses<br />separated by<br />commas", @config.mainresponder.prefs.allowedIpAddresses)%> <br /> <b>Membership</b> <%radio.prefs.checkboxPref ("Check this box to use the more secure encrypted cookie format. The encrypted format does not store passwords in membership cookies. Instead it hashes the password, plus additional information, to make membership more secure.", @config.mainresponder.prefs.flMembershipHashedCookies)%> Administrators You can add or remove administrators access to the Frontier Admin Site or edit the information for an existing administrator. You can also grant access to the WebEdit server to an administrator. <%mainResponder.adminSite.prefs.listAdministrators ()%> <br /><%mainResponder.adminSite.prefs.addOrEditAdministrator ()%> Domains The settings on this page are used configure virtual domains and sub-sites. For each site hosted on your server, there's a domain, a path, and a collection of objects which comprise the site. For a site hosted from an object database -- a Manila site for example, the objects will be specified by a database address. For a site hosted fom the filesystem, the objects will be specified by the path to a folder on disk. To map a domain and path to a site, type the domain name, and the path under the domain where the site will be served. In the Object field, enter either an object database address or the path to a folder of files on disk. Then click the Add Site button to add the site to the hierarchy. You can specify a redirect by entering the URL to redirect to, starting with http:\\// without a trailing slash, for example http:\\//www.example.com -- This will redirect all requests for the specified URL to the site of your choosing. <%local (pta = html.getPageTableAddress ()); pta^.flAddSubmitButton = false; if defined (pta^.postArgs.delete) {""} else {mainResponder.adminSite.prefs.addMappingToSiteTree () + "<br /><br />"}%> <b>Domains on this server</b> <%mainResponder.adminSite.prefs.listDomains ()%> Search Engine You can enable and set up the search engine server on this page. <%radio.prefs.checkboxPref ("Check this box to enable the search engine.", @config.mainResponder.prefs.flSearchEngine)%> <%radio.prefs.stringPref ("Search page URL", @config.mainResponder.urls.searchHome,size:80, maxlength:300)%> <%radio.prefs.numberPref ("Index stored pages every", @config.mainResponder.search.prefs.minutesBetweenIndexes, 1, textToRight:" minute(s).")%> <%radio.prefs.checkboxPref ("Check this box if you want to store the full text of indexed pages, so that excerpts can be displayed in search results.", @config.mainResponder.search.prefs.flStoreFullText)%> <%radio.prefs.checkboxPref ("Check this box to allow public search submissions.", @config.mainresponder.prefs.flAllowPublicSearchSubmissions)%> <%radio.prefs.checkboxPref ("Check this box to enable search engine logging", @config.mainResponder.search.prefs.flLogEnabled)%> MIME Types <%if defined (searchArgTable.itemToEdit) {"To change the MIME type associated with the ." + searchArgTable.itemToEdit + " extension, fill in the Type input box and click the Submit button."} else {"To add a new MIME type, fill in the suffix and its MIME type, then click the Add New Type button. To delete one or more types, check its checkbox and click the Delete button at the bottom of the page. To edit a type, click an Edit link on the right."}%> <%mainResponder.adminSite.prefs.mimeTypes ()%> Update Notification Frontier can automatically connect to a server at UserLand each night, to check the availability of new features and bug fixes. When software updates are available, Frontier will notify you via email. It's recommended that you turn this feature on. <%radio.prefs.checkboxPref ("Check this box to receive email notification when new software updates are available.", @config.mainResponder.prefs.flUpdateNightly)%> <br />You can view a list of pending software updates, and optionally install them via the <%"<a href=\"" + mainResponder.adminSite.urls.updates + "\">"%>Updates page</a>. <br /><b>Databases to update</b> Check the box next to each database that you want to be updated when installing new software. It's strongly recommended that you enable updating all of these databases. <%mainResponder.adminSite.prefs.dbToUpdateCheck ("Frontier.root")%> <%mainResponder.adminSite.prefs.dbToUpdateCheck ("mainResponder.root")%> <%mainResponder.adminSite.prefs.dbToUpdateCheck ("prefs.root")%> Backups This page contains the global backup settings for Manila sites, Frontier databases, and discussion group archives in XML. <br /> <b>Databases</b> Frontier can automatically save all changed databases every minute, and make backup copies each night. It's strongly recommended that you enable the saving of changed databases every minute. Depending on the size of your databases, nightly backups may take some time, so you may want to only enable this feature if your databases are small, or if the server traffic is low at night. <%radio.prefs.checkboxPref ("Check this box to save all changed databases every minute.", @config.mainresponder.prefs.flSaveDatabasesEveryMinute)%> <%radio.prefs.checkboxPref ("Check this box to back up all changed files in the Guest Databases folder every night?", @config.mainResponder.prefs.flBackupNightly)%> <%radio.prefs.stringPref ("Backup folder", @config.mainResponder.prefs.backupFolder, size:60)%> <br /><br /><b>Discussion group archives</b> The discussion group archives feature saves an XML file for every discussion group message. Only new or changed discussion group messages will be archived in XML. <%radio.prefs.checkboxPref ("Check this box to archive changes to discussion group messages in XML?", @config.mainResponder.prefs.flArchiveDiscuss)%> <%radio.prefs.stringPref ("Archive folder", @config.mainResponder.prefs.discussArchiveFolder, size:60)%> Logging and Statistics Frontier can maintain logs detailing what happens on your server and statistics that provide a cumulative view. You can choose which logs and stats Frontier should maintain, and where to store the logs. <br /> <%radio.prefs.checkboxPref ("Check this box to log every HTTP request.", @config.mainResponder.prefs.flLog)%> <%radio.prefs.checkboxPref ("Check this box to log every XML-RPC and SOAP request.", @user.betty.prefs.flKeepServerLog)%> <%radio.prefs.checkboxPref ("Check this box to log root updates.", @user.rootUpdates.prefs.flShowUpdatesToUser)%> <%radio.prefs.checkboxPref ("Check this box to enable search engine logging", @config.mainResponder.search.prefs.flLogEnabled)%> <%radio.prefs.checkboxPref ("Check this box to log scheduled tasks.", @user.scheduler.prefs.logInGuestDatabase)%> <%radio.prefs.checkboxPref ("Check this box to close and re-open the log database every hour, to reclaim allocated memory.", @config.mainresponder.prefs.flLogReopenHourly)%> <%radio.prefs.stringPref ("Log folder", @user.log.prefs.folder, size:70, maxlength:300)%> <br /> <b>Common Log Format</b> Common log format is a text file format used by popular web servers like Apache. Many log analysis programs used to generate traffic graphs and summaries can read this format. Settings in this section enable or disable the output of common log text files, and determine what information is included. <%table.surePath ("system.temp.mainResponder.misc.flCommonLog"); local (ad...@sy..., adr...@us..., s); if method != "POST" {adr^ = defined (adrcallback^)}; s=radio.prefs.checkboxPref ("Check this box to log HTTP requests in common log format.", adr); if method == "POST" {if adr^ {script.newScriptObject ("on commonLog (pta)\r\treturn (webserver.postFilters.commonLog (pta, true))", adrcallback)} else {if defined (adrcallback^) {delete (adrcallback)}}}; delete (adr); s%> <%radio.prefs.checkboxPref ("Check this box to use common log date format.", @user.webserver.prefs.commonLog.flUseCommonLogDateFormat)%> <%radio.prefs.checkboxPref ("Check this box to include virtual hosts.", @user.webserver.prefs.commonLog.flIncludeVirtualHosts)%> <%radio.prefs.checkboxPref ("Check this box to include referers.", @user.webserver.prefs.commonLog.flIncludeReferers)%> <%radio.prefs.checkboxPref ("Check this box to include User-Agents.", @user.webserver.prefs.commonLog.flIncludeUserAgents)%> <br /> <b>Statistics</b> Frontier can count hits on a per-domain basis, complie nightly discussion group stats, and write XML reports listing the most read sites. <%radio.prefs.checkboxPref ("Check this box to compile discussion group stats every night.", @config.mainresponder.prefs.flDiscussStatsNightly)%> <%radio.prefs.checkboxPref ("Check this box to count total hits for each domain hosted on this server.", @user.webserver.prefs.flDomainStats)%> Database Subscriptions You can publish a guest database and allow other people to subscribe to changes made to the guest database. Changes to the guest database made using WebEdit will be added to the updates flow for the database.<br /><br /> <%radio.prefs.checkboxPref ("Check this box to enable database subscriptions from this server to other copies of Frontier or Radio UserLand.", @config.mainresponder.prefs.flSubscriptions)%> <br /><b>Subscribable databases</b> Below is a list of all databases on this server. To enable or disable subscriptions for a given database, check or uncheck the box next to its name and click the Submit button below.<br /><br /> <%mainResponder.adminSite.prefs.listSubscribableDatabases ()%> WebEdit WebEdit allows remote access to your databases, from one copy of Frontier to another. On this page you can enable and disable the WebEdit server, add users, edit user information, and manage the custody of checked-out objects. <%local (pta = html.getPageTableAddress ()); pta^.flAddSubmitButton = false; if not defined (system.temp.mainResponder.misc) {new (tableType, @system.temp.mainResponder.misc)}; ""%> <%local (adrpref = @system.temp.mainResponder.misc.flWebEditEnabled, adrhandlers = @user.betty.rpcHandlers.webEdit); if method != "POST" {if defined (adrhandlers^) {adrpref^ = true} else {adrpref^ = false}}; local (s = radio.prefs.checkboxPref ("Check this box to enable the WebEdit server.", adrpref)); if method == "POST" {if adrpref^ {adrhandlers^ = @webeditServer.rpcHandlers.webEdit} else {try {delete (adrhandlers)}}}; s%> <br /><input type="submit" value="Submit"> <br /> <b>Add User</b> To add a new WebEdit user, enter the user's name, email address and password below, and click the Add User button.<br /><br /> <%mainResponder.adminSite.prefs.addWebeditUser ()%> <br /> <b>Current users</b> Below is a list of users who currently have WebEdit access to this server. To remove a user, check the box next to the user's name, and then click the Remove Users button below.<br /><br /> <%mainResponder.adminSite.prefs.listWebeditUsers ()%> <br /> <b>Objects</b> The following objects have been checked out with WebEdit. To force the check-in of an object, check the box next to its name, and then click the Force Check-In button below.<br /><br /> <%mainResponder.adminSite.prefs.listObjects ()%> Legal Macros <%mainResponder.adminSite.prefs.legalMacros ()%> News Aggregator <%local (htmlText = ""); xml.aggregator.init (); htmlText = radio.prefs.checkboxPref ("Check this box to enable the news aggregator on this server. If it's enabled, Frontier will automatically scan subscribed channels once per hour.", @aggregatorData.prefs.enabled); xml.aggregator.init (); return (htmlText)%> <br /><b>When and how the aggregator runs</b>: <br />At what minute past the top of each hour should the aggregator scan for news? <%radio.prefs.numberPref ("Minute to scan", @aggregatorData.prefs.minuteToRead, upperbound:59)%> <br />The aggregator is multi-threaded. This means it can read several RSS feeds at the same time. The larger this number the quicker it will finish each scan, but it may make the server slower while the scan is running. <%radio.prefs.numberPref ("Number of threads", @aggregatorData.prefs.maxThreads, lowerbound:1, upperbound:10)%> <br /><b>Archiving options</b>: <br />The news aggregator can automatically delete old stories from the database. It is highly recommended that you enable this option.<br /><br /> <%radio.prefs.checkboxPref ("Check this box to automatically delete old news items once an hour.", @aggregatorData.prefs.flArchive)%> <br />How old must an item be (in hours) in order to be deleted? <%radio.prefs.numberPref ("Hours before deletion", @aggregatorData.prefs.hoursBeforeArchive, lowerbound:1, upperbound:100)%> Subscriptions <%mainResponder.adminSite.prefs.subscriptions ()%> Debugging The settings on this page are for people who develop web applications in the Frontier environment. The debugging features help find problems with your code, and to isolate performance bottlenecks. Note that enabling these features can degrade server performance, and cause Frontier to use more memory and disk space than normal, so you should only enable them if needed. <br /> <b>mainResponder debugging</b> <%radio.prefs.checkboxPref ("Check this box to run mainResponder in debug mode. This will cause low-level errors to display an error window in the Frontier application.", @config.mainresponder.prefs.flDebug)%> <%radio.prefs.checkboxPref ("Check this box to copy the paramtable to scratchpad.params after every request.", @config.mainresponder.prefs.flKeepParamTable)%> <br /> <b>Profiling</b> Profiling allows you to find out what scripts and kernel verbs are being executed and for how long. It's a way of finding performance bottlenecks. With the feature enabled, you can view a web page showing the amount of time Frontier spent in each script and verb in processing the request by adding /profile/ to the begining of the path to the page. <%radio.prefs.checkboxPref ("Check this box to enable profiling.", @config.mainresponder.prefs.flProfiling)%> <br /> <b>Miscellaneous</b> Below are miscellaneous debugging features which may be useful depending on the type of application you're developing. <%radio.prefs.checkboxPref ("Check this box to record automatic database opens in system.temp.", @config.mainresponder.prefs.flLogDatabaseOpens)%> <%radio.prefs.checkboxPref ("Check this box to log available memory.", @config.mainresponder.prefs.flLogMemavail)%> Email Config <%flAddSubmitButton = false; mainResponder.controlPanel.emailConfig ()%> \ No newline at end of file |
|
From: creedon <icr...@us...> - 2006-01-17 23:27:14
|
Update of /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/search/server In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12756 Modified Files: restartIndex Log Message: added indexName parameter Index: restartIndex =================================================================== RCS file: /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/search/server/restartIndex,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** restartIndex 26 Mar 2005 21:46:12 -0000 1.1.1.1 --- restartIndex 17 Jan 2006 23:27:06 -0000 1.2 *************** *** 1,3 **** FrontierVcsFile:1:scpt:mainResponder.search.server.restartIndex ! on restartIndex (siteName, flMessages=false) { ÇDelete all pages from the index that are in the specified site. ÇReturns the number of pages deleted. local (indexPath = mainResponder.search.utilities.getIndexPath ()); mainResponder.search.utilities.assureIndex (); local (adrIndex = @[indexPath].index); local (adrPageInfoTable = @[indexPath].pageInfo); local (i, lowerSiteName = string.lower (siteName)); local (ctDeletes = 0); ÇLoop through all indexed pages, looking for pages in this site. for i = sizeOf (adrPageInfoTable^) downTo 1 { local (adrPageInfo = @adrPageInfoTable^ [i]); local (url = nameOf (adrPageInfo^)); if flMessages { msg ("Search Engine: checking " + url)}; if defined (adrPageInfo^.siteName) { local (lowerPageSite = string.lower (adrPageInfo^.siteName)); ÇIs this page in the site? if lowerPageSite == lowerSiteName { ÇDelete this page from the index. if flMessages { msg ("Search Engine: de-indexing " + url + "...")}; mainResponder.search.server.deIndexPage (url); ctDeletes++}}; sys.systemTask ()}; if flMessages { msg ("Search Engine: Saving Index.root...")}; fileMenu.save (indexPath); msg (""); return (ctDeletes)} \ No newline at end of file --- 1,3 ---- FrontierVcsFile:1:scpt:mainResponder.search.server.restartIndex ! on restartIndex (siteName, flMessages=false, indexName = nil) { ÇChanges Ç2/19/00; 6:00:13 PM by TAC Çadded indexName parameter ÇDelete all pages from the index that are in the specified site. ÇReturns the number of pages deleted. local (indexPath = mainResponder.search.utilities.getIndexPath (indexName)); mainResponder.search.utilities.assureIndex (indexName); local (adrIndex = @[indexPath].index); local (adrPageInfoTable = @[indexPath].pageInfo); local (i, lowerSiteName = string.lower (siteName)); local (ctDeletes = 0); ÇLoop through all indexed pages, looking for pages in this site. for i = sizeOf (adrPageInfoTable^) downTo 1 { local (adrPageInfo = @adrPageInfoTable^ [i]); local (url = nameOf (adrPageInfo^)); if flMessages { msg ("Search Engine: checking " + url)}; if defined (adrPageInfo^.siteName) { local (lowerPageSite = string.lower (adrPageInfo^.siteName)); ÇIs this page in the site? if lowerPageSite == lowerSiteName { ÇDelete this page from the index. if flMessages { msg ("Search Engine: de-indexing " + url + "...")}; mainResponder.search.server.deIndexPage (url, indexName: indexName); ctDeletes++}}; sys.systemTask ()}; if flMessages { msg ("Search Engine: Saving " + indexName + "...")}; fileMenu.save (indexPath); msg (""); return (ctDeletes)}; bundle { // testing ÇrestartIndex ("Sample mainResponder Website") restartIndex ("sample", true)} \ No newline at end of file |
|
From: creedon <icr...@us...> - 2006-01-17 23:26:13
|
Update of /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/search/server In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12309 Modified Files: searchPage Log Message: minor formatting tweaks close p and input tags, XHTML compliance replaced manilaSuite.unTaint with mainResponder.neuterText Index: searchPage =================================================================== RCS file: /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/search/server/searchPage,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** searchPage 26 Mar 2005 21:46:12 -0000 1.1.1.1 --- searchPage 17 Jan 2006 23:26:03 -0000 1.2 *************** *** 1,3 **** FrontierVcsFile:1:scpt:mainResponder.search.server.searchPage ! on searchPage (altColor="", flShowSiteNames=true, flFeedback=false) { ÇChanges: Ç8/3/02; 2:37:48 AM by JES ÇCreated. Generalized search page for mainResponder. Based on workspace.sampleSearch. Original change notes below. Ç01/31/00; 1:40:00 PM by PBS ÇAdded the closing </form> tag, so the Edit this Page button will work. Ç01/27/00; 1:40:08 PM by PBS ÇThis is a safe macro which displays a search page. You can specify an alternate altColor by supplying the third parameter. You can turn off display of site names by supplying the flShowSiteNames parameter and setting it to false. bundle { //deal with defaults if altColor == "" { altColor = "gainsboro"}}; local (pta = html.getPageTableAddress ()); //get the address of the current page table local (indexName = "Index.root"); //change this if you want to use a different index local (adrFilterCallback); if defined (pta^.responderAttributes.adrSearchFilterCallback) { adrFilterCallback = pta^.responderAttributes.adrSearchFilterCallback}; local (flRunSearch = false); //will be true if a search should be run local (actionUrl); //the action URL for the form bundle { //get the action URL actionUrl = pta^.uri; if defined (pta^.pathArgs) { //there may also be a $xxx component if pta^.pathArgs != "" { if not (actionUrl endsWith "$") { actionUrl = actionUrl + "$"}; actionUrl = actionUrl + pta^.pathArgs}}}; local (htmlText); //htmlText will contain the HTML that will be returned on add (s) { //subroutine for adding a string to htmlText htmlText = htmlText + s}; local (queryString = "", displayQueryString = ""); bundle { //get the query string and display query string local (argTable); new (tableType, @argTable); if defined (pta^.searchArgs) and pta^.searchArgs != "" { flRunSearch = true; webserver.parseArgs (pta^.searchArgs, @argTable); //parse the search args into a local table if defined (argTable.q) { //q is the element which contains the query string from the browser queryString = string.trimWhiteSpace (argTable.q); //trim it up local (adrIsoTable); if system.environment.isMac { adrIsoTable = @html.data.iso8859.mac}; if system.environment.isWindows { adrIsoTable = @html.data.iso8859.win}; displayQueryString = string.iso8859Encode (queryString, adrIsoTable); //encode characters as HTML entities ÇVarious additional filterings are necessary to get this to show up correctly in the input field. displayQueryString = string.replaceAll (displayQueryString, "\"", """); displayQueryString = string.replaceAll (displayQueryString, "<", "<"); displayQueryString = string.replaceAll (displayQueryString, ">", ">"); displayQueryString = string.replaceAll (displayQueryString, "+", " ")}}}; on addSearchForm () { //build the search form -- you might want to customize the display of this add ("<form method=\"get\" action=\"" + actionUrl + "\">\r"); //it's a GET method form add ("Search for: \r"); add ("<input type=\"text\" name=\"q\" size=\"30\" value=\"" + displayQueryString + "\"> "); add ("<input type=\"submit\" value=\"Search\"><p>\r"); add ("</form>")}; //PBS 01/31/00: close the form. addSearchForm (); if flRunSearch { //display the search results if a search should be run add (mainResponder.search.server.htmlSearch (pta, actionUrl, flShowSiteNames, altColor, flFeedback, indexName, adrFilterCallback))}; ÇMake sure this page is totally secure -- no macros may be run. htmlText = manilaSuite.unTaint (htmlText); htmltext = string.replaceAll (htmltext, "<%", "<%"); return (htmlText)} //return the text of the page \ No newline at end of file --- 1,3 ---- FrontierVcsFile:1:scpt:mainResponder.search.server.searchPage ! on searchPage (altColor="", flShowSiteNames=true, flFeedback=false) { ÇChanges Ç1/16/06; 12:50:49 PM by TAC Çminor formatting tweaks Çclose p and input tags, XHTML compliance Çreplaced manilaSuite.unTaint with mainResponder.neuterText Ç8/3/02; 2:37:48 AM by JES ÇCreated. Generalized search page for mainResponder. Based on workspace.sampleSearch. Original change notes below. Ç01/31/00; 1:40:00 PM by PBS ÇAdded the closing </form> tag, so the Edit this Page button will work. Ç01/27/00; 1:40:08 PM by PBS ÇThis is a safe macro which displays a search page. You can specify an alternate altColor by supplying the third parameter. You can turn off display of site names by supplying the flShowSiteNames parameter and setting it to false. bundle { //deal with defaults if altColor == "" { altColor = "gainsboro"}}; local (pta = html.getPageTableAddress ()); //get the address of the current page table local (indexName = "Index.root"); //change this if you want to use a different index local (adrFilterCallback); if defined (pta^.responderAttributes.adrSearchFilterCallback) { adrFilterCallback = pta^.responderAttributes.adrSearchFilterCallback}; local (flRunSearch = false); //will be true if a search should be run local (actionUrl); //the action URL for the form bundle { //get the action URL actionUrl = pta^.URI; if defined (pta^.pathArgs) { //there may also be a $xxx component if pta^.pathArgs != "" { if not (actionUrl endsWith "$") { actionUrl = actionUrl + "$"}; actionUrl = actionUrl + pta^.pathArgs}}}; local (htmlText); //htmlText will contain the HTML that will be returned on add (s) { //subroutine for adding a string to htmlText htmlText = htmlText + s}; local (queryString = "", displayQueryString = ""); bundle { //get the query string and display query string local (argTable); new (tableType, @argTable); if defined (pta^.searchArgs) and pta^.searchArgs != "" { flRunSearch = true; webserver.parseArgs (pta^.searchArgs, @argTable); //parse the search args into a local table if defined (argTable.q) { //q is the element which contains the query string from the browser queryString = string.trimWhiteSpace (argTable.q); //trim it up local (adrIsoTable); if system.environment.isMac { adrIsoTable = @html.data.iso8859.mac}; if system.environment.isWindows { adrIsoTable = @html.data.iso8859.win}; displayQueryString = string.iso8859Encode (queryString, adrIsoTable); //encode characters as HTML entities ÇVarious additional filterings are necessary to get this to show up correctly in the input field. displayQueryString = string.replaceAll (displayQueryString, "\"", """); displayQueryString = string.replaceAll (displayQueryString, "<", "<"); displayQueryString = string.replaceAll (displayQueryString, ">", ">"); displayQueryString = string.replaceAll (displayQueryString, "+", " ")}}}; on addSearchForm () { //build the search form -- you might want to customize the display of this add ("<form method=\"get\" action=\"" + actionUrl + "\">\r"); //it's a GET method form add ("Search for: \r"); add ("<input type=\"text\" name=\"q\" size=\"30\" value=\"" + displayQueryString + "\" /> "); add ("<input type=\"submit\" value=\"Search\" /><p />\r"); add ("</form>")}; //PBS 01/31/00: close the form. addSearchForm (); if flRunSearch { //display the search results if a search should be run add (mainResponder.search.server.htmlSearch (pta, actionUrl, flShowSiteNames, altColor, flFeedback, indexName, adrFilterCallback))}; ÇMake sure this page is totally secure -- no macros may be run. htmlText = mainResponder.neuterText (htmlText, flNeuterTags: false); htmlText = string.replaceAll (htmlText, "<%", "<%"); return (htmlText)} //return the text of the page \ No newline at end of file |
|
From: creedon <icr...@us...> - 2006-01-17 23:25:14
|
Update of /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/adminSite/prefs In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11807 Modified Files: subscriptions Log Message: changed br tags for XHTML compliance added another <br /> above congratulations message Index: subscriptions =================================================================== RCS file: /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/adminSite/prefs/subscriptions,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** subscriptions 7 Jan 2006 21:38:21 -0000 1.3 --- subscriptions 17 Jan 2006 23:25:06 -0000 1.4 *************** *** 1,3 **** FrontierVcsFile:1:scpt:mainResponder.adminSite.prefs.subscriptions ! on subscriptions () { ÇChanges Ç1/7/06; 11:50:55 AM by TAC Çfor xmlImg use config.mainresponder.prefs.baseUrl Çlowercase method check, XHTML compliance Çminor script formatting tweaks Çconditionalize unsubscribing Manila websites Çimg and input tags XHTML compliant Ç9/7/05; 10:53:18 PM by TAC Çchanged userlandIcons to frontierIcons Çchanged /mainResponderResources/ to /resources/ Ç2003 Ç3/13/03; 3:11:00 AM by JES ÇWhen unsubscribing from a feed, make sure that all installed Manila sites are also unsubscribed. Ç3/10/03; 8:44:32 PM by JES ÇSet the border attribute for the XML icon IMG tag to "0". Ç3/4/03; 3:34:29 PM by JES ÇCreated. Render the list of subscriptions global to this server, along with a field for adding a new subscription. local (htmlText); on add (s) { htmlText = htmlText + (s + "\r");}; on getDateString (when, flIncludeSeconds=true) { ÇChanges Ç1/15/01; 11:00:50 AM by DW ÇReturn the time string if it's today, return the date string if it's earlier. local (day, month, year, hour, minute, second, nowday, nowmonth, nowyear); date.get (when, @day, @month, @year, @hour, @minute, @second); date.get (clock.now (), @nowday, @nowmonth, @nowyear, @hour, @minute, @second); if (day == nowday) and (month == nowmonth) and (year == nowyear) { return (date.timestring (when, flIncludeSeconds))}; return (date.shortstring (when))}; local (xmlImg = "<img src=\"" + config.mainresponder.prefs.baseUrl + "resources/frontierIcons/xml\" height=\"14\" width=\"36\" border=\"0\" alt=\"xml image\" />"); local (pta = html.getPageTableAddress ()); local (adrdata = xml.aggregator.init ()); pta^.errorString = ""; pta^.adrNewService = nil; pta^.flAddSubmitButton = false; if string.lower (pta^.method) == "post" { //add or remove subscription(s) local (adrArgs = @pta^.postArgs); if defined (adrArgs^.subscribe) { //user click the Subscribe button local (rssurl = adrArgs^.url); if not (rssurl beginswith "http://") { rssurl = "http://" + rssurl}; if rssurl != "http://" { //add this subscription xml.aggregator.subscribeService (rssurl, @pta^.errorString, @pta^.adrNewService)}}; if defined (adrArgs^.unsubscribe) { //user clicked the Unsubscribe button local (i, adr, adrservice); for i = sizeof (adrArgs^) downto 1 { adr = @adrArgs^[i]; local (urlservice = string.urlDecode (nameof (adr^)) ); adrservice = @adrdata^.services.[urlservice]; if defined (adrservice^) { xml.aggregator.unsubscribeService (nameof (adrservice^))}; if defined (config.manila.sites) { local (nomad); for nomad in @config.manila.sites { local (adrsite = nomad^); if defined (adrsite^) { local (adrnewssite = manilaSuite.getNewsSiteAddress (adrsite)); if defined (adrnewssite^) { if defined (adrnewssite^.aggregator) { if defined (adrnewssite^.aggregator.services.[urlservice]) { delete (@adrnewssite^.aggregator.services.[urlservice])}}}}}}}}}; bundle { //field to subscribe to a new feed, Subscribe button local (initialurl = "http://"); if defined (pta^.searchArgs) { //try to get the initial URL from a url argument in the request if pta^.searchArgs != "" { local (t); new (tableType, @t); webserver.parseArgs (pta^.searchArgs, @t); if defined (t.url) { initialurl = t.url}}}; add ("<td align=\"left\">" + "URL" + ":</td>"); add ("<td valign=\"top\"><input type=\"text\" name=\"url\" size=\"55\" maxlength=\"255\" value=\"" + initialurl + "\" /> <input type=\"submit\" name=\"subscribe\" value=\"Add\" /></td>"); if pta^.errorString != "" { //show the error to the user add ("</tr><tr><td colspan=\"2\"><br><i>Can't subscribe to the channel. The most likely cure is to check the URL in a web browser and see if you can get it to read the feed. The following message probably won't help you figure out what went wrong, but we include it here because it might: \"" + errorstring + "\"</i></td>")}; if pta^.adrNewService != nil { //show confirmation to the user local (channeltitle = xml.entityDecode (pta^.adrNewService^.compilation.channeltitle, true, true) ); add ("</tr><tr><td colspan=\"2\"><br><i>Congratulations, you have successfully added the \"" + channeltitle + "\" feed to the news feeds available on this server. It now appears in the list of available feeds below. For subscribed sites, new items will appear on the Aggregator page every hour.</i></td>")}; add ("</td>")}; if sizeOf (adrdata^.services) > 0 { //list of feeds with check boxes and Delete button bundle { //add explanatory text add ("</tr><tr><td colspan=\"2\">"); add ("<br><br>The following table lists the feeds available to sites on this server. Included is the name of the source, linked to its Web page, the time or day it last changed, the number of times it has changed since it was added, and a link to the XML file for the channel. To delete a feed, check it and then click on the Unsubscribe button at the bottom of the page.<br><br>"); add ("</td>")}; add ("</tr><tr><td colspan=\"2\"><blockquote>"); local (sortedTable, adr, adrSort); bundle { //fill sorted table new (tabletype, @sortedTable); for adr in @adrdata^.services { if defined (adr^.compilation) { if sizeof (adr^.compilation) > 0 { try { //missing channeltitle doesn't stop us -- 3/20/02 DW local (channeltitle = adr^.compilation.channeltitle); if sizeof (channeltitle) > 0 { adrSort = @sortedTable.[adr^.compilation.channeltitle]; if defined (adrSort^) { //collision local (ct = 1); loop { adrSort = @sortedTable.[adr^.compilation.channeltitle + "." + ct++]; if not defined (adrSort^) { break}}}; adrSort^ = nameof (adr^)}}}}}}; bundle { //start the HTML table add ("<table cellspacing=\"0\" cellpadding=\"0\"><tr bgcolor=\"DCDCDC\"><td>"); add ("<table cellspacing=\"1\" cellpadding=\"5\" border=\"0\">")}; for adrSort in @sortedTable { //add the table rows for each channel adr = @adrdata^.services.[adrSort^]; if defined (adr^.compilation) { if sizeof (adr^.compilation) > 0 { local (title = adr^.compilation.channeltitle); local (channeldescription = "", channellink = ""); if defined (adr^.compilation.channeldescription) { channeldescription = xml.entityDecode (adr^.compilation.channeldescription, true, true); channeldescription = string.replaceAll (channeldescription, "\"", """); channeldescription = string.replaceAll (channeldescription, "\'", "'"); channeldescription = string.replaceAll (channeldescription, "<", "<"); channeldescription = string.replaceAll (channeldescription, ">", ">")}; if defined (adr^.compilation.channellink) { channellink = adr^.compilation.channellink}; add ("<tr bgcolor=\"white\">"); bundle { //add checkbox local (name = nameof (adr^)); local (checkboxval = "xxx "); if false { checkboxval = checkboxval + "checked"}; add ("<td valign=\"top\"><input type=\"checkbox\" name=\"" + string.urlEncode (nameOf (adr^)) + "\" value=" + checkboxval + " /></td>")}; if sizeof (title) > 50 { title = string.mid (title, 1, 50) + "..."}; add ("<td valign=\"top\" title=\"" + channeldescription + "\" nowrap><a href=\"" + channellink + "\">" + xml.entityDecode (title, true, true) + "</a></td>"); add ("<td align=\"right\" valign=\"top\"><nobr><font size=\"-1\">" + getDateString (adr^.timeLastChange, false) + "</font></nobr></td>"); add ("<td align=\"right\" valign=\"top\"><font size=\"-1\">" + adr^.ctChanges + "</font></td>"); add ("<td valign=\"top\"><a href=\"" + nameof (adr^) + "\" title=\"Click to view the current XML source text for the channel.\">" + xmlImg + "</a></td>"); add ("</tr>")}}}; bundle { //end the HTML table add ("</table></td></tr></table>")}; add ("</blockquote></td>"); bundle { //Unsubscribe button add ("</tr><tr><td colspan=\"2\">"); add ("<br><input type=\"submit\" name=\"unsubscribe\" value=\"Unsubscribe\" />"); add ("</td>")}}; return (htmlText)} \ No newline at end of file --- 1,3 ---- FrontierVcsFile:1:scpt:mainResponder.adminSite.prefs.subscriptions ! on subscriptions () { ÇChanges Ç1/11/06; 1:22:28 PM by TAC Çchanged br tags for XHTML compliance Çadded another <br /> above congratulations message Ç1/7/06; 11:50:55 AM by TAC Çfor xmlImg use config.mainresponder.prefs.baseUrl Çlowercase method check, XHTML compliance Çminor script formatting tweaks Çconditionalize unsubscribing Manila websites Çimg and input tags XHTML compliant Ç9/7/05; 10:53:18 PM by TAC Çchanged userlandIcons to frontierIcons Çchanged /mainResponderResources/ to /resources/ Ç2003 Ç3/13/03; 3:11:00 AM by JES ÇWhen unsubscribing from a feed, make sure that all installed Manila sites are also unsubscribed. Ç3/10/03; 8:44:32 PM by JES ÇSet the border attribute for the XML icon IMG tag to "0". Ç3/4/03; 3:34:29 PM by JES ÇCreated. Render the list of subscriptions global to this server, along with a field for adding a new subscription. local (htmlText); on add (s) { htmlText = htmlText + (s + "\r");}; on getDateString (when, flIncludeSeconds=true) { ÇChanges Ç1/15/01; 11:00:50 AM by DW ÇReturn the time string if it's today, return the date string if it's earlier. local (day, month, year, hour, minute, second, nowday, nowmonth, nowyear); date.get (when, @day, @month, @year, @hour, @minute, @second); date.get (clock.now (), @nowday, @nowmonth, @nowyear, @hour, @minute, @second); if (day == nowday) and (month == nowmonth) and (year == nowyear) { return (date.timestring (when, flIncludeSeconds))}; return (date.shortstring (when))}; local (xmlImg = "<img src=\"" + config.mainresponder.prefs.baseUrl + "resources/frontierIcons/xml\" height=\"14\" width=\"36\" border=\"0\" alt=\"xml image\" />"); local (pta = html.getPageTableAddress ()); local (adrdata = xml.aggregator.init ()); pta^.errorString = ""; pta^.adrNewService = nil; pta^.flAddSubmitButton = false; if string.lower (pta^.method) == "post" { //add or remove subscription(s) local (adrArgs = @pta^.postArgs); if defined (adrArgs^.subscribe) { //user click the Subscribe button local (rssurl = adrArgs^.url); if not (rssurl beginswith "http://") { rssurl = "http://" + rssurl}; if rssurl != "http://" { //add this subscription xml.aggregator.subscribeService (rssurl, @pta^.errorString, @pta^.adrNewService); scratchpad.pt2 = pta^}}; if defined (adrArgs^.unsubscribe) { //user clicked the Unsubscribe button local (i, adr, adrservice); for i = sizeof (adrArgs^) downto 1 { adr = @adrArgs^[i]; local (urlservice = string.urlDecode (nameof (adr^)) ); adrservice = @adrdata^.services.[urlservice]; if defined (adrservice^) { xml.aggregator.unsubscribeService (nameof (adrservice^))}; if defined (config.manila.sites) { local (nomad); for nomad in @config.manila.sites { local (adrsite = nomad^); if defined (adrsite^) { local (adrnewssite = manilaSuite.getNewsSiteAddress (adrsite)); if defined (adrnewssite^) { if defined (adrnewssite^.aggregator) { if defined (adrnewssite^.aggregator.services.[urlservice]) { delete (@adrnewssite^.aggregator.services.[urlservice])}}}}}}}}}; bundle { //field to subscribe to a new feed, Subscribe button local (initialurl = "http://"); if defined (pta^.searchArgs) { //try to get the initial URL from a url argument in the request if pta^.searchArgs != "" { local (t); new (tableType, @t); webserver.parseArgs (pta^.searchArgs, @t); if defined (t.url) { initialurl = t.url}}}; add ("<td align=\"left\">" + "URL" + ":</td>"); add ("<td valign=\"top\"><input type=\"text\" name=\"url\" size=\"55\" maxlength=\"255\" value=\"" + initialurl + "\" /> <input type=\"submit\" name=\"subscribe\" value=\"Add\" /></td>"); if pta^.errorString != "" { //show the error to the user add ("</tr><tr><td colspan=\"2\"><br /><i>Can't subscribe to the channel. The most likely cure is to check the URL in a web browser and see if you can get it to read the feed. The following message probably won't help you figure out what went wrong, but we include it here because it might: \"" + errorstring + "\"</i></td>")}; if pta^.adrNewService != nil { //show confirmation to the user local (channeltitle = xml.entityDecode (pta^.adrNewService^.compilation.channeltitle, true, true) ); add ("</tr><tr><td colspan=\"2\"><br /><br /><i>Congratulations, you have successfully added the \"" + channeltitle + "\" feed to the news feeds available on this server. It now appears in the list of available feeds below. For subscribed sites, new items will appear on the Aggregator page every hour.</i></td>")}; add ("</td>")}; if sizeOf (adrdata^.services) > 0 { //list of feeds with check boxes and Delete button bundle { //add explanatory text add ("</tr><tr><td colspan=\"2\">"); add ("<br /><br />The following table lists the feeds available to sites on this server. Included is the name of the source, linked to its Web page, the time or day it last changed, the number of times it has changed since it was added, and a link to the XML file for the channel. To delete a feed, check it and then click on the Unsubscribe button at the bottom of the page.<br /><br />"); add ("</td>")}; add ("</tr><tr><td colspan=\"2\"><blockquote>"); local (sortedTable, adr, adrSort); bundle { //fill sorted table new (tabletype, @sortedTable); for adr in @adrdata^.services { if defined (adr^.compilation) { if sizeof (adr^.compilation) > 0 { try { //missing channeltitle doesn't stop us -- 3/20/02 DW local (channeltitle = adr^.compilation.channeltitle); if sizeof (channeltitle) > 0 { adrSort = @sortedTable.[adr^.compilation.channeltitle]; if defined (adrSort^) { //collision local (ct = 1); loop { adrSort = @sortedTable.[adr^.compilation.channeltitle + "." + ct++]; if not defined (adrSort^) { break}}}; adrSort^ = nameof (adr^)}}}}}}; bundle { //start the HTML table add ("<table cellspacing=\"0\" cellpadding=\"0\"><tr bgcolor=\"DCDCDC\"><td>"); add ("<table cellspacing=\"1\" cellpadding=\"5\" border=\"0\">")}; for adrSort in @sortedTable { //add the table rows for each channel adr = @adrdata^.services.[adrSort^]; if defined (adr^.compilation) { if sizeof (adr^.compilation) > 0 { local (title = adr^.compilation.channeltitle); local (channeldescription = "", channellink = ""); if defined (adr^.compilation.channeldescription) { channeldescription = xml.entityDecode (adr^.compilation.channeldescription, true, true); channeldescription = string.replaceAll (channeldescription, "\"", """); channeldescription = string.replaceAll (channeldescription, "\'", "'"); channeldescription = string.replaceAll (channeldescription, "<", "<"); channeldescription = string.replaceAll (channeldescription, ">", ">")}; if defined (adr^.compilation.channellink) { channellink = adr^.compilation.channellink}; add ("<tr bgcolor=\"white\">"); bundle { //add checkbox local (name = nameof (adr^)); local (checkboxval = "xxx "); if false { checkboxval = checkboxval + "checked"}; add ("<td valign=\"top\"><input type=\"checkbox\" name=\"" + string.urlEncode (nameOf (adr^)) + "\" value=" + checkboxval + " /></td>")}; if sizeof (title) > 50 { title = string.mid (title, 1, 50) + "..."}; add ("<td valign=\"top\" title=\"" + channeldescription + "\" nowrap><a href=\"" + channellink + "\">" + xml.entityDecode (title, true, true) + "</a></td>"); add ("<td align=\"right\" valign=\"top\"><nobr><font size=\"-1\">" + getDateString (adr^.timeLastChange, false) + "</font></nobr></td>"); add ("<td align=\"right\" valign=\"top\"><font size=\"-1\">" + adr^.ctChanges + "</font></td>"); add ("<td valign=\"top\"><a href=\"" + nameof (adr^) + "\" title=\"Click to view the current XML source text for the channel.\">" + xmlImg + "</a></td>"); add ("</tr>")}}}; bundle { //end the HTML table add ("</table></td></tr></table>")}; add ("</blockquote></td>"); bundle { //Unsubscribe button add ("</tr><tr><td colspan=\"2\">"); add ("<br /><input type=\"submit\" name=\"unsubscribe\" value=\"Unsubscribe\" />"); add ("</td>")}}; return (htmlText)} \ No newline at end of file |
|
From: creedon <icr...@us...> - 2006-01-17 23:24:11
|
Update of /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/discuss In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11256 Modified Files: postMessage Log Message: added testing bundle Index: postMessage =================================================================== RCS file: /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/discuss/postMessage,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** postMessage 26 Mar 2005 21:45:37 -0000 1.1.1.1 --- postMessage 17 Jan 2006 23:24:01 -0000 1.2 *************** *** 1,3 **** FrontierVcsFile:1:scpt:mainResponder.discuss.postMessage ! on postMessage (flAcceptFileUploads=false, postTime=clock.now ()) { ÇPost a discussion group message. ÇChanges: Ç4/8/03; 2:56:30 PM by JES ÇPass the address of a data table to mainResponder.discuss.addMessage. The data table contains the POST-ing client's IP address, which mainResponder.discuss.addMessage will save in the message table. Ç10/08/00; 4:58:57 PM by JES ÇRedirect if the postArgs contains a redirect url Ç04/02/00; 7:17:10 PM by PBS ÇAdded postTime parameter so Manila can over-ride -- Manila can support time zone preferences. Ç5/26/99; 02:01:42 GMT by AR ÇAdded groupName parameter to call to mainresponder.discuss.addmessage. Ç5/20/99; 16:28:38 GMT by AR ÇAdded optional parameter named flAcceptFileUploads and defaulting to false. If true, the script saves attached files to the enclosure folder structure. Ç5/19/99; 14:59:20 GMT by DW ÇIt now returns the msgNum of the new message so a caller can do stmemberKey with the table before returning. local (pta = html.getPageTableAddress ()); local (subject = pta^.postArgs.subject); local (memberKey = nameof (pta^.adrMemberInfo^)); local (inResponseTo = pta^.postArgs.inResponseTo); local (data); new (tableType, @data); bundle { //populate the data table data.ipAddress = pta^.client}; local (msgNum = mainresponder.discuss.addMessage (subject, memberKey, inResponseTo, string (pta^.postArgs.text), groupName:pta^.members, postTime:postTime, adrdata:@data)); if flAcceptFileUploads { if (defined (pta^.postArgs.attachFile) and (typeOf (pta^.postArgs.attachFile) == tableType)) { mainResponder.discuss.postAttachedFile (@pta^.postArgs.attachFile, msgNum, pta^.members)}}; local (redirectUrl = pta^.responderAttributes.urls^.discussMsgReader); if defined (pta^.postArgs.redirect) { redirectUrl = pta^.postArgs.redirect}; mainResponder.redirect (redirectUrl + msgNum); return (msgNum)} \ No newline at end of file --- 1,3 ---- FrontierVcsFile:1:scpt:mainResponder.discuss.postMessage ! on postMessage (flAcceptFileUploads=false, postTime=clock.now ()) { ÇChanges Ç1/15/06; 12:09:22 PM by TAC Çadded testing bundle Ç4/8/03; 2:56:30 PM by JES ÇPass the address of a data table to mainResponder.discuss.addMessage. The data table contains the POST-ing client's IP address, which mainResponder.discuss.addMessage will save in the message table. Ç10/08/00; 4:58:57 PM by JES ÇRedirect if the postArgs contains a redirect url Ç04/02/00; 7:17:10 PM by PBS ÇAdded postTime parameter so Manila can over-ride -- Manila can support time zone preferences. Ç1999 Ç5/26/99; 02:01:42 GMT by AR ÇAdded groupName parameter to call to mainresponder.discuss.addmessage. Ç5/20/99; 16:28:38 GMT by AR ÇAdded optional parameter named flAcceptFileUploads and defaulting to false. If true, the script saves attached files to the enclosure folder structure. Ç5/19/99; 14:59:20 GMT by DW ÇIt now returns the msgNum of the new message so a caller can do stmemberKey with the table before returning. ÇPost a discussion group message. local (pta = html.getPageTableAddress ()); Çscratchpad.pt = pta^ // testing local (subject = pta^.postArgs.subject); local (memberKey = nameof (pta^.adrMemberInfo^)); local (inResponseTo = pta^.postArgs.inResponseTo); local (data); new (tableType, @data); bundle { //populate the data table data.ipAddress = pta^.client}; local (msgNum = mainresponder.discuss.addMessage (subject, memberKey, inResponseTo, string (pta^.postArgs.text), groupName:pta^.members, postTime:postTime, adrdata:@data)); if flAcceptFileUploads { if (defined (pta^.postArgs.attachFile) and (typeOf (pta^.postArgs.attachFile) == tableType)) { mainResponder.discuss.postAttachedFile (@pta^.postArgs.attachFile, msgNum, pta^.members)}}; local (redirectUrl = pta^.responderAttributes.urls^.discussMsgReader); if defined (pta^.postArgs.redirect) { redirectUrl = pta^.postArgs.redirect}; mainResponder.redirect (redirectUrl + msgNum); return (msgNum)}; Çbundle // testing Çhtml.setPageTableAddress (@scratchpad.pt) Ç ÇpostMessage (true) Ç Çhtml.deletePageTableAddress () \ No newline at end of file |
|
From: creedon <icr...@us...> - 2006-01-17 23:18:07
|
Update of /cvsroot/frontierkernel/odbs/frontierRoot/system/callbacks In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8313 Modified Files: cmd2Click Log Message: if name is string most certainly the user wants to see the system.verbs.builtins.string table, not system.verbs.globals.string Index: cmd2Click =================================================================== RCS file: /cvsroot/frontierkernel/odbs/frontierRoot/system/callbacks/cmd2Click,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** cmd2Click 19 Jun 2005 03:55:45 -0000 1.2 --- cmd2Click 17 Jan 2006 23:17:50 -0000 1.3 *************** *** 1,3 **** FrontierVcsFile:1:scpt:system.callbacks.cmd2Click ! on cmd2Click (name) { Çcalled when you cmd-double-click on an identifier ÇIt enhances the default, built-in behavior of jumping to the named object. ÇIt checks for the option key, and closes the front window if it's pressed. ÇIf the name is a file rather than a db object, it will reveal it in the Finder ÇChanges Ç6/18/05; 1:34:38 PM by TAC Çuse Frontier.createUserCallbacksSubtable to initialize tables Ç4/20/01; 4:05:40 PM by JES ÇAllow callbacks to be addresses or addresses of addresses... ÇTue, Oct 7, 1997 at 11:37:49 AM by PBS ÇNew callbacks for cmd2click. Callback script returns true if it handled the click, then this script immediately returns true. Otherwise, this script handles the click. ÇWed, Dec 11, 1996 at 11:16:00 PM by DW Ç4.2, handles macros in web pages Ç8/15/96 by dmb Ç integrated ssl's "enhanced2click" functionality Ç3/19/96 by ssl Çmoved checkWith etc. to enhanced2click table to simplify distribution Ç6/17/95 by ssl Çadded support for local scripts (via checkScript) Çssl change notes Çenhanced to walk up the script/outline hierarchy and check every "with" path in an outline window, assume it's a oneLiner Çadded support for reserved constants, keywords & builtins Çchanges are Pioneerware by Scott S. Lawton ÇInternet: ss...@pr..., http://www.tiac.net/prefab/ on checkWith (name, callbackAction) { Çwalk up the script/outline hierarchy checking in "with" for a match: "table.[name]" Çcalled by my cmd2click, control2click ÇPioneerware by Scott S. Lawton Çrevisions Ç6/13/96: handle menuscripts Ç5/16/96: now handle an "object database map" Ç3/19/96: moved to enhanced2click table, updated paths Ç1/27/96 to handle double-clicking on part of the hierarchy within a single "with" Ç5/28/95 to handle comment in the "with" Ç5/15/95 to handle hierarchy within a single "with" Çe.g. "with ObjectModel, QXP, defs" Ç(Actually, I only look at pairs. It didn't seem worth the effort to test every combination.) Çpossible improvements Çlook for nested "with" (as I do for outlines & an "object database map"), e.g. Çwith Player Çwith Keys Çlook for all combinations with multiple "fields" (not just pairs), e.g. Çwith QXP, ObjectModel, defs Çlook at every "with" in an outline oneLiner Çcall Simple.window.frontmostType to handle menuscripts Çbut then the enhanced2click package wouldn't stand on its own local { categorizedName = name; theLine; space = " "; windowType = "Unknown"; Ç modified below... windowName = window.frontmost(); whereAmI; displayStatus; leftOfSelection = 0; rightOfSelection = 0}; try { Çthe following fails for a few cases, see Simple.window.frontmostType() ... the only one we need is handled in the else windowType = typeOf(windowName^)} else { Ç 6/13/96 if window.isMenuScript(windowName) { windowType = scriptType}}; on initialize() { displayStatus = op.getDisplay(); Ç want to restore it to original state op.setDisplay(false); Ç no need to show the user our travels case windowType { outlineType; Ç added 5/16/96 ==> changed to a case statement scriptType { whereAmI = op.getCursor()}}; Ç uniqueID, to restore at end if wp.inTextMode() { Ç doesn't apply to cmd2Click, but may to Jump wp.getSelect(@leftOfSelection, @rightOfSelection)}; };Çelse: the left/right of selection are correct at zero on restoreOutline() { case windowType { outlineType; Ç added 5/16/96 ==> changed to a case statement scriptType { op.setCursor(whereAmI)}}; wp.setTextMode(true); wp.setSelect(leftOfSelection, rightOfSelection); op.setDisplay(displayStatus)}; on checkAllFields() { Çglobals ÇtheLine Ç which has the spaces removed Çname ÇwhereAmI local { comma = ","; fieldCount; previous; i}; fieldCount = string.countFields(theLine, comma); for i = 1 to fieldCount { categorizedName = string.nthField(theLine, comma, i) + "." + name; if defined (categorizedName^) { restoreOutline(); callbackAction^(categorizedName, true); Ç second parameter: yes it's in a "with" return (true)}}; for i = 1 to fieldCount { Ç 5/15/95: check pairs next (less likely) previous = string.nthField(theLine, comma, i); for j = i+1 to fieldCount { categorizedName = previous + "." + string.nthField(theLine, comma, j) + "." + name; if defined (categorizedName^) { restoreOutline(); callbackAction^(categorizedName, true); Ç second parameter: yes it's in a "with" return (true)}}}; return false}; Ç won't get here if it finds a match on handleWith() { Ç1/27/96: call twice ==> moved to a subroutine theLine = string.popLeading( string.lower(op.getLineText()), space ); if theLine beginsWith "with " { theLine = string.commentDelete(theLine); Ç 5/28/95 Çget rid of the with, then strip out spaces so they don't interfere with nthField theLine = string.replaceAll( theLine - "with", space, "" ); if checkAllFields() { Çit also performs the callbackAction return true} else { return false}} else { return false}}; on handleOutlineHierarchy() { Ç5/16/96: doesn't actually check "with", but something similar Çit's easier to add here than as a separate script since it calls initialize & restoreOutline categorizedName = string.nthField(string.popLeading(op.getLineText(), space), space, 1) + "." + categorizedName; if defined (categorizedName^) { restoreOutline(); callbackAction^(categorizedName, true); Ç second parameter: yes it's in a "with" return (true)} else { return false}}; case windowType { scriptType { initialize(); if handleWith () { Ç 1/27/96: for cases like "with Player, keys"; 2click on keys return true}; Ç i.e. out of the whole script while op.go (left, 1) { if handleWith () { return true}}; Ç i.e. out of the whole script restoreOutline (); return false}; outlineType { Ç assume it's a oneLiner (5/16/96: also handle an "object database map") initialize(); local { theLine = string.lower(op.getLineText())}; if theLine contains "with " { Ç at present: only looks at the FIRST "with" local { fromPosition = string.patternMatch("with ", theLine) + 5; toPosition = string.patternMatch("{", theLine); numChars = toPosition - fromPosition}; Çget rid of the with, then strip out spaces so they don't interfere with nthField theLine = string.replaceAll(string.mid(theLine, fromPosition, numChars), space, ""); if checkAllFields() { Çit also performs the callbackAction return true}} Ç i.e. out of the whole script else { Ç modified 5/16/96 to walk up the hierarchy Çunlike "with", do NOT check the current line ÇcategorizedName starts out as just name; that's what we want here too while op.go(left, 1) { Ç 5/16/96 if handleOutlineHierarchy() { return true}}; Ç i.e. out of the whole script restoreOutline(); return false}}} else { return false}}; on pathToBracketedPath (s) { ÇSunday, January 25, 1998 at 4:21:03 PM by PBS local (path, flinquotes, flinbrackets, fladd, flend); local (i, ch = "", lastch = "", piece); local (oneElement = "", elementList = {}); for i = 1 to sizeOf (s) { fladd = false; flend = false; lastch = ch; ch = s [i]; case ch { '"' { if lastch == '\\' { fladd = true} else { if !flinquotes { flinquotes = true} else { flinquotes = false}}}; '[' { if !flinquotes { flinbrackets = true}}; ']' { if !flinquotes { flinbrackets = false}}; '.' { if !flinquotes and !flinbrackets { flend = true} else { fladd = true}}} else { fladd = true}; if fladd { oneElement = oneElement + ch}; if flend { elementList = elementList + oneElement; oneElement = ""}}; elementList = elementList + oneElement; for oneElement in elementList { path = path + "[\"" + oneElement + "\"]."}; path = string.mid (path, 1, sizeOf (path) - 1); // strip off trailing dot return (path)}; Frontier.createUserCallbacksSubtable (nameOf (this^)); Çif not defined (user.callbacks.cmd2click) // old code Çnew (tabletype, @user.callbacks.cmd2click) local (i); local (bracketedName); for i = 1 to sizeof (user.callbacks.cmd2click) { local (adrScript = @user.callbacks.cmd2click [i]); try { while typeOf (adrScript^) == addressType { adrScript = adrScript^}; if adrScript^ (name) { return (true)}}}; on checkOtherTables (name, callbackAction) { Çlook in tables that UserTalk references, but aren't global ... to match "table.[name]" Çcalled by my cmd2click, Cmd-Jump & possibly others ÇPioneerware by Scott S. Lawton Çrevisions Ç3/19/96: moved to enhanced2click table, updated paths Ç5/15/95: handle subtables, e.g. "dialog.getFile" (in Simple) should NOT be bracketed local { jumpPaths = { "system.compiler.language.constants", "system.compiler.language.builtins", "system.compiler.language.keywords", "system.misc", "people", "system.verbs", "Simple"}; path; test}; for path in jumpPaths { test = path + "." + name; Ç added 5/15/95 if defined (test^) { callbackAction^ (test); return true}; test = path + "." + "[\"" + name + "\"]"; if defined (test^) { callbackAction^ (test); return true}}; return false}; Ç will only get here if the above fails on checkScript (name) { Çlook in the script itself for a local "handler" Çcalled by my cmd2click, control2click, Cmd-Jump & possibly others ÇPioneerware by Scott S. Lawton Çrevisions Ç3/19/96: moved to enhanced2click table, updated paths Ç6/17/95: created local { windowType = "Unknown"; Ç modified below... whereAmI; displayStatus; leftOfSelection = 0; rightOfSelection = 0}; try { Çthe following fails for a few cases, see Simple.window.frontmostType() ... though it isn't needed here windowType = typeOf (window.frontmost()^)}; on initialize() { displayStatus = op.getDisplay(); Ç want to restore it to original state op.setDisplay (false); Ç no need to show the user our travels if windowType equals scriptType { whereAmI = op.getCursor()}; Ç uniqueID, to restore at end if wp.inTextMode() { Ç doesn't apply to cmd2Click, but may to Jump wp.getSelect(@leftOfSelection, @rightOfSelection)}; };Çelse: the left/right of selection are correct at zero on restoreOutline() { if windowType equals scriptType { op.setCursor(whereAmI)}; wp.setTextMode(true); wp.setSelect(leftOfSelection, rightOfSelection); op.setDisplay(displayStatus)}; if windowType equals scriptType { initialize(); bundle { Ç set the search parameters user.prefs.search.casesensitive = false; user.prefs.search.wholewords = false; user.prefs.search.wraparound = true}; op.firstSummit (); Ç FIND seems to take current heading as its scope if op.find ("on " + name) { Ç look for the "category" text wp.setTextMode (true); op.setDisplay (displayStatus); return true} else { restoreOutline (); return false}} else { return false}}; on doIt (objectName, fromWith = false) { ÇSSL: moved standard behavior here if kb.optionKey () { local (front = window.frontMost ()); edit (address (objectName)); if window.getFile (front) == nil { window.close (front)} else { window.hide (front)}} else { edit (address (objectName))}}; if defined (name^) { Çsimple: just jump to it doIt (name); return (true)}; bracketedName = pathToBracketedPath (name); if defined (bracketedName^) { doIt (bracketedName); return (true)}; if defined (("websites." + name)^) { //it's in the websites table ÇSaturday, January 24, 1998 at 4:03:20 PM by PBS doIt ("websites." + name); return (true)}; if defined (("websites." + bracketedName)^) { //it's in the websites table ÇSaturday, January 24, 1998 at 4:03:20 PM by PBS doIt ("websites." + bracketedName); return (true)}; bundle { Ç4.2 -- make cmd-2clicking work for macros ÇWed, Dec 11, 1996 at 7:30:25 PM by DW try { if defined (websites.["#data"].tools) { if defined (websites.["#data"].tools^.[name]) { edit (@websites.["#data"].tools^.[name]); return (true)}}}; try { if defined (user.html.macros.[name]) { edit (@user.html.macros.[name]); return (true)}}; try { if defined (user.html.renderers.[name]) { edit (@user.html.renderers.[name]); return (true)}}; try { if defined (html.data.standardMacros.[name]) { edit (@html.data.standardMacros.[name]); return (true)}}}; if checkOtherTables (name, @doIt) { Çcheck reserved words return (true)}; if checkWith (name, @doIt) { Çcheck every "with" return (true)}; if checkScript (name) { Çcheck this script return (true)}; if file.exists (name) { // maybe it's a filename if sys.os () == "MacOS" { return (Finder.reveal (name))} else { return (webBrowser.openDocument (file.folderFromPath (name)))}}; if name beginsWith "http://" or name beginsWith "www." { // it's a URL if not (name beginsWith "http://") { name = "http://" + name}; if webBrowser.openURL (name) { webBrowser.bringToFront ()}; return (true)}; return (false)} \ No newline at end of file --- 1,3 ---- FrontierVcsFile:1:scpt:system.callbacks.cmd2Click ! on cmd2Click (name) { ÇChanges Ç1/17/06; 10:35:24 AM by TAC Çif name is string most certainly the user wants to see the system.verbs.builtins.string table, not system.verbs.globals.string Ç6/18/05; 1:34:38 PM by TAC Çuse Frontier.createUserCallbacksSubtable to initialize tables Ç4/20/01; 4:05:40 PM by JES ÇAllow callbacks to be addresses or addresses of addresses... ÇTue, Oct 7, 1997 at 11:37:49 AM by PBS ÇNew callbacks for cmd2click. Callback script returns true if it handled the click, then this script immediately returns true. Otherwise, this script handles the click. ÇWed, Dec 11, 1996 at 11:16:00 PM by DW Ç4.2, handles macros in web pages Ç8/15/96 by dmb Ç integrated ssl's "enhanced2click" functionality Ç3/19/96 by ssl Çmoved checkWith etc. to enhanced2click table to simplify distribution Ç6/17/95 by ssl Çadded support for local scripts (via checkScript) Çssl change notes Çenhanced to walk up the script/outline hierarchy and check every "with" path in an outline window, assume it's a oneLiner Çadded support for reserved constants, keywords & builtins Çchanges are Pioneerware by Scott S. Lawton ÇInternet: ss...@pr..., http://www.tiac.net/prefab/ Çcalled when you cmd-double-click on an identifier ÇIt enhances the default, built-in behavior of jumping to the named object. ÇIt checks for the option key, and closes the front window if it's pressed. ÇIf the name is a file rather than a db object, it will reveal it in the Finder on checkWith (name, callbackAction) { Çwalk up the script/outline hierarchy checking in "with" for a match: "table.[name]" Çcalled by my cmd2click, control2click ÇPioneerware by Scott S. Lawton Çrevisions Ç6/13/96: handle menuscripts Ç5/16/96: now handle an "object database map" Ç3/19/96: moved to enhanced2click table, updated paths Ç1/27/96 to handle double-clicking on part of the hierarchy within a single "with" Ç5/28/95 to handle comment in the "with" Ç5/15/95 to handle hierarchy within a single "with" Çe.g. "with ObjectModel, QXP, defs" Ç(Actually, I only look at pairs. It didn't seem worth the effort to test every combination.) Çpossible improvements Çlook for nested "with" (as I do for outlines & an "object database map"), e.g. Çwith Player Çwith Keys Çlook for all combinations with multiple "fields" (not just pairs), e.g. Çwith QXP, ObjectModel, defs Çlook at every "with" in an outline oneLiner Çcall Simple.window.frontmostType to handle menuscripts Çbut then the enhanced2click package wouldn't stand on its own local { categorizedName = name; theLine; space = " "; windowType = "Unknown"; Ç modified below... windowName = window.frontmost(); whereAmI; displayStatus; leftOfSelection = 0; rightOfSelection = 0}; try { Çthe following fails for a few cases, see Simple.window.frontmostType() ... the only one we need is handled in the else windowType = typeOf(windowName^)} else { Ç 6/13/96 if window.isMenuScript(windowName) { windowType = scriptType}}; on initialize() { displayStatus = op.getDisplay(); Ç want to restore it to original state op.setDisplay(false); Ç no need to show the user our travels case windowType { outlineType; Ç added 5/16/96 ==> changed to a case statement scriptType { whereAmI = op.getCursor()}}; Ç uniqueID, to restore at end if wp.inTextMode() { Ç doesn't apply to cmd2Click, but may to Jump wp.getSelect(@leftOfSelection, @rightOfSelection)}; };Çelse: the left/right of selection are correct at zero on restoreOutline() { case windowType { outlineType; Ç added 5/16/96 ==> changed to a case statement scriptType { op.setCursor(whereAmI)}}; wp.setTextMode(true); wp.setSelect(leftOfSelection, rightOfSelection); op.setDisplay(displayStatus)}; on checkAllFields() { Çglobals ÇtheLine Ç which has the spaces removed Çname ÇwhereAmI local { comma = ","; fieldCount; previous; i}; fieldCount = string.countFields(theLine, comma); for i = 1 to fieldCount { categorizedName = string.nthField(theLine, comma, i) + "." + name; if defined (categorizedName^) { restoreOutline(); callbackAction^(categorizedName, true); Ç second parameter: yes it's in a "with" return (true)}}; for i = 1 to fieldCount { Ç 5/15/95: check pairs next (less likely) previous = string.nthField(theLine, comma, i); for j = i+1 to fieldCount { categorizedName = previous + "." + string.nthField(theLine, comma, j) + "." + name; if defined (categorizedName^) { restoreOutline(); callbackAction^(categorizedName, true); Ç second parameter: yes it's in a "with" return (true)}}}; return false}; Ç won't get here if it finds a match on handleWith() { Ç1/27/96: call twice ==> moved to a subroutine theLine = string.popLeading( string.lower(op.getLineText()), space ); if theLine beginsWith "with " { theLine = string.commentDelete(theLine); Ç 5/28/95 Çget rid of the with, then strip out spaces so they don't interfere with nthField theLine = string.replaceAll( theLine - "with", space, "" ); if checkAllFields() { Çit also performs the callbackAction return true} else { return false}} else { return false}}; on handleOutlineHierarchy() { Ç5/16/96: doesn't actually check "with", but something similar Çit's easier to add here than as a separate script since it calls initialize & restoreOutline categorizedName = string.nthField(string.popLeading(op.getLineText(), space), space, 1) + "." + categorizedName; if defined (categorizedName^) { restoreOutline(); callbackAction^(categorizedName, true); Ç second parameter: yes it's in a "with" return (true)} else { return false}}; case windowType { scriptType { initialize(); if handleWith () { Ç 1/27/96: for cases like "with Player, keys"; 2click on keys return true}; Ç i.e. out of the whole script while op.go (left, 1) { if handleWith () { return true}}; Ç i.e. out of the whole script restoreOutline (); return false}; outlineType { Ç assume it's a oneLiner (5/16/96: also handle an "object database map") initialize(); local { theLine = string.lower(op.getLineText())}; if theLine contains "with " { Ç at present: only looks at the FIRST "with" local { fromPosition = string.patternMatch("with ", theLine) + 5; toPosition = string.patternMatch("{", theLine); numChars = toPosition - fromPosition}; Çget rid of the with, then strip out spaces so they don't interfere with nthField theLine = string.replaceAll(string.mid(theLine, fromPosition, numChars), space, ""); if checkAllFields() { Çit also performs the callbackAction return true}} Ç i.e. out of the whole script else { Ç modified 5/16/96 to walk up the hierarchy Çunlike "with", do NOT check the current line ÇcategorizedName starts out as just name; that's what we want here too while op.go(left, 1) { Ç 5/16/96 if handleOutlineHierarchy() { return true}}; Ç i.e. out of the whole script restoreOutline(); return false}}} else { return false}}; on pathToBracketedPath (s) { ÇSunday, January 25, 1998 at 4:21:03 PM by PBS local (path, flinquotes, flinbrackets, fladd, flend); local (i, ch = "", lastch = "", piece); local (oneElement = "", elementList = {}); for i = 1 to sizeOf (s) { fladd = false; flend = false; lastch = ch; ch = s [i]; case ch { '"' { if lastch == '\\' { fladd = true} else { if !flinquotes { flinquotes = true} else { flinquotes = false}}}; '[' { if !flinquotes { flinbrackets = true}}; ']' { if !flinquotes { flinbrackets = false}}; '.' { if !flinquotes and !flinbrackets { flend = true} else { fladd = true}}} else { fladd = true}; if fladd { oneElement = oneElement + ch}; if flend { elementList = elementList + oneElement; oneElement = ""}}; elementList = elementList + oneElement; for oneElement in elementList { path = path + "[\"" + oneElement + "\"]."}; path = string.mid (path, 1, sizeOf (path) - 1); // strip off trailing dot return (path)}; Frontier.createUserCallbacksSubtable (nameOf (this^)); Çif not defined (user.callbacks.cmd2click) // old code Çnew (tabletype, @user.callbacks.cmd2click) local (i); local (bracketedName); for i = 1 to sizeof (user.callbacks.cmd2click) { local (adrScript = @user.callbacks.cmd2click [i]); try { while typeOf (adrScript^) == addressType { adrScript = adrScript^}; if adrScript^ (name) { return (true)}}}; on checkOtherTables (name, callbackAction) { Çlook in tables that UserTalk references, but aren't global ... to match "table.[name]" Çcalled by my cmd2click, Cmd-Jump & possibly others ÇPioneerware by Scott S. Lawton Çrevisions Ç3/19/96: moved to enhanced2click table, updated paths Ç5/15/95: handle subtables, e.g. "dialog.getFile" (in Simple) should NOT be bracketed local { jumpPaths = { "system.compiler.language.constants", "system.compiler.language.builtins", "system.compiler.language.keywords", "system.misc", "people", "system.verbs", "Simple"}; path; test}; for path in jumpPaths { test = path + "." + name; Ç added 5/15/95 if defined (test^) { callbackAction^ (test); return true}; test = path + "." + "[\"" + name + "\"]"; if defined (test^) { callbackAction^ (test); return true}}; return false}; Ç will only get here if the above fails on checkScript (name) { Çlook in the script itself for a local "handler" Çcalled by my cmd2click, control2click, Cmd-Jump & possibly others ÇPioneerware by Scott S. Lawton Çrevisions Ç3/19/96: moved to enhanced2click table, updated paths Ç6/17/95: created local { windowType = "Unknown"; Ç modified below... whereAmI; displayStatus; leftOfSelection = 0; rightOfSelection = 0}; try { Çthe following fails for a few cases, see Simple.window.frontmostType() ... though it isn't needed here windowType = typeOf (window.frontmost()^)}; on initialize() { displayStatus = op.getDisplay(); Ç want to restore it to original state op.setDisplay (false); Ç no need to show the user our travels if windowType equals scriptType { whereAmI = op.getCursor()}; Ç uniqueID, to restore at end if wp.inTextMode() { Ç doesn't apply to cmd2Click, but may to Jump wp.getSelect(@leftOfSelection, @rightOfSelection)}; };Çelse: the left/right of selection are correct at zero on restoreOutline() { if windowType equals scriptType { op.setCursor(whereAmI)}; wp.setTextMode(true); wp.setSelect(leftOfSelection, rightOfSelection); op.setDisplay(displayStatus)}; if windowType equals scriptType { initialize(); bundle { Ç set the search parameters user.prefs.search.casesensitive = false; user.prefs.search.wholewords = false; user.prefs.search.wraparound = true}; op.firstSummit (); Ç FIND seems to take current heading as its scope if op.find ("on " + name) { Ç look for the "category" text wp.setTextMode (true); op.setDisplay (displayStatus); return true} else { restoreOutline (); return false}} else { return false}}; on doIt (objectName, fromWith = false) { ÇSSL: moved standard behavior here if kb.optionKey () { local (front = window.frontMost ()); edit (address (objectName)); if window.getFile (front) == nil { window.close (front)} else { window.hide (front)}} else { edit (address (objectName))}}; if string.lower (name) == "string" { name = "system.verbs.builtins." + name}; if defined (name^) { Çsimple: just jump to it doIt (name); return (true)}; bracketedName = pathToBracketedPath (name); if defined (bracketedName^) { doIt (bracketedName); return (true)}; if defined (("websites." + name)^) { //it's in the websites table ÇSaturday, January 24, 1998 at 4:03:20 PM by PBS doIt ("websites." + name); return (true)}; if defined (("websites." + bracketedName)^) { //it's in the websites table ÇSaturday, January 24, 1998 at 4:03:20 PM by PBS doIt ("websites." + bracketedName); return (true)}; bundle { Ç4.2 -- make cmd-2clicking work for macros ÇWed, Dec 11, 1996 at 7:30:25 PM by DW try { if defined (websites.["#data"].tools) { if defined (websites.["#data"].tools^.[name]) { edit (@websites.["#data"].tools^.[name]); return (true)}}}; try { if defined (user.html.macros.[name]) { edit (@user.html.macros.[name]); return (true)}}; try { if defined (user.html.renderers.[name]) { edit (@user.html.renderers.[name]); return (true)}}; try { if defined (html.data.standardMacros.[name]) { edit (@html.data.standardMacros.[name]); return (true)}}}; if checkOtherTables (name, @doIt) { Çcheck reserved words return (true)}; if checkWith (name, @doIt) { Çcheck every "with" return (true)}; if checkScript (name) { Çcheck this script return (true)}; if file.exists (name) { // maybe it's a filename if sys.os () == "MacOS" { return (Finder.reveal (name))} else { return (webBrowser.openDocument (file.folderFromPath (name)))}}; if name beginsWith "http://" or name beginsWith "www." { // it's a URL if not (name beginsWith "http://") { name = "http://" + name}; if webBrowser.openURL (name) { webBrowser.bringToFront ()}; return (true)}; return (false)}; Çbundle // testing Çcmd2Click ("string") \ No newline at end of file |
|
From: creedon <icr...@us...> - 2006-01-17 23:17:02
|
Update of /cvsroot/frontierkernel/odbs/frontierRoot/system/verbs/builtins/html In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7945 Modified Files: getJpegHeightWidth Log Message: do file delete in a try, on Mac OS X I've been getting some file busy errors when doing more than one f of type address in rapid succession, downside is that there will be files left over but that could be cleaned up by a maintenance script Index: getJpegHeightWidth =================================================================== RCS file: /cvsroot/frontierkernel/odbs/frontierRoot/system/verbs/builtins/html/getJpegHeightWidth,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** getJpegHeightWidth 26 Mar 2005 19:42:58 -0000 1.1.1.1 --- getJpegHeightWidth 17 Jan 2006 23:16:53 -0000 1.2 *************** *** 1,3 **** FrontierVcsFile:1:scpt:system.verbs.builtins.html.getJpegHeightWidth ! on getJpegHeightWidth (f) { ÇGet the height and width in pixels of a JPEG. ÇChanges: Ç10/20/99; at 2:57:07 PM by PBS ÇLike html.getGifHeightWidth, it now supports addresses. It does still write the file out to disk, but in a temporary location, in Guest Databases/ops/Temporary Items/. After writing out the file, it deletes it. on kernelcall (f) { kernel (string.getJpegHeightWidth)}; if typeOf (f) == addressType { //write the file to disk in a temporary location local (tempFolder = Frontier.getSubFolder ("ops/Temporary Items/")); if not (file.exists (tempFolder)) { file.newFolder (tempFolder)}; local (tempFilePath = file.uniqueName ("tempJpeg", tempFolder, 7)); file.writeWholeFile (tempFilePath, f^, 'JPEG', user.html.prefs.imgFileCreator, clock.now ()); local (hwList); hwList = kernelcall (tempFilePath); file.delete (tempFilePath); return (hwList)}; return (kernelcall (f))}; Çbundle //test code Çdialog.alert (getJpegHeightWidth (@websites.samples.["#images"].wozJobs)) //test addresses Çdialog.alert (getJpegHeightWidth ("C:\\Frontier\\Websites\\samples\\images\\wozjobs.jpg")) //test files on Windows Çdialog.alert (getJpegHeightWidth ("Power HD:Frontier:Websites:samples:images:wozJobs.jpg")) //test files on Mac \ No newline at end of file --- 1,3 ---- FrontierVcsFile:1:scpt:system.verbs.builtins.html.getJpegHeightWidth ! on getJpegHeightWidth (f) { ÇChanges Ç1/15/06; 10:45:59 AM by TAC Çdo file delete in a try, on Mac OS X I've been getting some file busy errors when doing more than one f of type address in rapid succession, downside is that there will be files left over but that could be cleaned up by a maintenance script Ç10/20/99; at 2:57:07 PM by PBS ÇLike html.getGifHeightWidth, it now supports addresses. It does still write the file out to disk, but in a temporary location, in Guest Databases/ops/Temporary Items/. After writing out the file, it deletes it. ÇGet the height and width in pixels of a JPEG. on kernelcall (f) { kernel (string.getJpegHeightWidth)}; if typeOf (f) == addressType { //write the file to disk in a temporary location local (tempFolder = Frontier.getSubFolder ("ops/Temporary Items/")); if not (file.exists (tempFolder)) { file.newFolder (tempFolder)}; local (tempFilePath = file.uniqueName ("tempJpeg", tempFolder, 7)); file.writeWholeFile (tempFilePath, f^, 'JPEG', user.html.prefs.imgFileCreator, clock.now ()); local (hwList = kernelcall (tempFilePath)); try { file.delete (tempFilePath)}; return (hwList)}; return (kernelcall (f))}; Çbundle // testing Çdialog.alert (getJpegHeightWidth (@websites.samples.["#images"].wozJobs)) // testing addresses Çdialog.alert (getJpegHeightWidth ("C:\\Frontier\\Websites\\samples\\images\\wozjobs.jpg")) //test files on Windows Çdialog.alert (getJpegHeightWidth ("Power HD:Frontier:Websites:samples:images:wozJobs.jpg")) //test files on Mac \ No newline at end of file |
|
From: creedon <icr...@us...> - 2006-01-13 20:57:55
|
Update of /cvsroot/frontierkernel/odbs/frontierRoot/system/verbs/builtins/webserver/data/responders/XmlSubscribe In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8385 Added Files: enabled condition Log Message: a responder that understands Radio UserLand subscriptions links --- NEW FILE: enabled --- FrontierVcsFile:1:bool:system.verbs.builtins.webserver.data.responders.XmlSubscribe.enabled true --- NEW FILE: condition --- FrontierVcsFile:1:TEXT:system.verbs.builtins.webserver.data.responders.XmlSubscribe.condition (string.lower (path) beginsWith "/system/pages/subscriptions") |
|
From: creedon <icr...@us...> - 2006-01-13 20:57:55
|
Update of /cvsroot/frontierkernel/odbs/frontierRoot/system/verbs/builtins/webserver/data/responders/XmlSubscribe/data In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8363 Added Files: pageHeader cascadingStyleSheet body template Log Message: a responder that understands Radio UserLand subscriptions links --- NEW FILE: body --- FrontierVcsFile:1:optx:system.verbs.builtins.webserver.data.responders.XmlSubscribe.data.body #indirectTemplate false <form action="" method="post"> {mainResponder.adminSite.prefs.subscriptions ()} </form> --- NEW FILE: cascadingStyleSheet --- FrontierVcsFile:1:optx:system.verbs.builtins.webserver.data.responders.XmlSubscribe.data.cascadingStyleSheet <style type="text/css"> body { margin:0px 0px 10px 0px; background:#FFFFFF; } A { color: #336666; font-family: verdana, arial, sans-serif; font-size:10px; text-decoration: none; font-weight:bold; } A:link { color: #336666; text-decoration: none; } A:visited { color: #669999; text-decoration: none; } A:active { color: #FFFF00; } A:hover { color: #000000; } #banner { font-family:verdana, arial, sans-serif; color:#FFF; font-size:20px; font-weight:normal; border-bottom:1px dotted #000000; border-top:3px solid #003333; background:#336666; padding:15px; text-transform:uppercase; letter-spacing: .2em; } .description { font-family:verdana, arial, sans-serif; color:#99CCCC; font-size:12px; font-weight:bold; text-transform:none; } #content { float:left; height: 100%; width:100%; background:#fff; <!- border-right:1px dotted #999; -> margin-right:15px; padding-bottom:20px; } #links { background:#fff; padding-right:15px; } .blog { padding-left:15px; padding-top:15px; padding-right:15px; } .blogbody { font-family:georgia, verdana, arial, sans-serif; color:#333; font-size:13px; font-weight:normal; background:#FFF; line-height:15px; padding-left:10px; padding-right:10px; padding-top:10px; } .title { font-family: verdana, arial; font-size: 15px; color: #003333; text-transform: uppercase; font-weight:bold; } .footer { font-family:georgia, verdana, arial, sans-serif; color:#333; font-size:11px; font-weight:normal; line-height:11px; margin-top: 10px; padding-left:10px; padding-right:10px; padding-top:10px; border-top:1px dotted #999; text-align:center; } #menu { margin-bottom:15px; background:#FFF; } .date { font-family:verdana, arial, sans-serif; color:#666; font-size:9px; font-weight:bold; text-align:center; background:#EEE; line-height:14px; padding:2px; margin-top:10px; text-transform:uppercase; letter-spacing: .2em; } .posted { font-family:verdana, arial, sans-serif; font-size: 11px; color: #003366; margin-bottom:15px; } .side { font-family:verdana, arial, sans-serif; color:#333; font-size:11px; font-weight:normal; background:#FFF; line-height:14px; padding:2px; } .sidetitle { font-family:verdana, arial, sans-serif; color:#666; font-size:9px; font-weight:bold; background:#EEE; line-height:14px; padding:2px; margin-top:10px; text-align:center; text-transform:uppercase; letter-spacing: .2em; } td { font-family:georgia, verdana, arial, sans-serif; color:#333; font-size:13px; font-weight:normal; line-height:15px; } </style> --- NEW FILE: pageHeader --- FrontierVcsFile:1:optx:system.verbs.builtins.webserver.data.responders.XmlSubscribe.data.pageHeader <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <title> {siteName} : {title} </title> <meta http-equiv="Expires" content="Mon, 01 Jan 1990 01:00:00 GMT" /> {metaTags ()} {string (prefsSuite.javaScriptSource)} {cascadingStyleSheet} </head> --- NEW FILE: template --- FrontierVcsFile:1:optx:system.verbs.builtins.webserver.data.responders.XmlSubscribe.data.template <body> <div id="banner"> {siteName} <span class="description"> {tagline} </span> </div> <div id="content"> <div class="blogbody"> <p class="title"> {title} </p> {bodytext} <div class="footer"> <p> This Page was last update: {lastUpdate} <br /> Page template based on <a href="http://www.bryanbell.com/">Bryan Bell's</a> <a href="http://www.bryanbell.com/2002/07/23#a63">Moveable Manila: green</a>. <br /> Copyright {date.year ()} {siteName} </p> <p> <a href="http://jigsaw.w3.org/css-validator/"> <img style="border:0;width:88px;height:31px" src="http://jigsaw.w3.org/css-validator/images/vcss" alt="Valid CSS!" /> </a> </p> </div> </div> </div> </body> </html> |
|
From: creedon <icr...@us...> - 2006-01-13 20:57:45
|
Update of /cvsroot/frontierkernel/odbs/frontierRoot/system/verbs/builtins/webserver/data/responders/XmlSubscribe/methods In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8339 Added Files: any Log Message: a responder that understands Radio UserLand subscriptions links --- NEW FILE: any --- (This appears to be a binary file; contents omitted.) |
|
From: creedon <icr...@us...> - 2006-01-13 20:38:50
|
Update of /cvsroot/frontierkernel/odbs/frontierRoot/system/verbs/builtins/webserver/data/responders/XmlSubscribe/methods In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4944/methods Log Message: Directory /cvsroot/frontierkernel/odbs/frontierRoot/system/verbs/builtins/webserver/data/responders/XmlSubscribe/methods added to the repository |
|
From: creedon <icr...@us...> - 2006-01-13 20:38:43
|
Update of /cvsroot/frontierkernel/odbs/frontierRoot/system/verbs/builtins/webserver/data/responders/XmlSubscribe/data In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4916/data Log Message: Directory /cvsroot/frontierkernel/odbs/frontierRoot/system/verbs/builtins/webserver/data/responders/XmlSubscribe/data added to the repository |
|
From: creedon <icr...@us...> - 2006-01-13 20:38:42
|
Update of /cvsroot/frontierkernel/odbs/frontierRoot/system/verbs/builtins/webserver/data/responders/XmlSubscribe In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4888/XmlSubscribe Log Message: Directory /cvsroot/frontierkernel/odbs/frontierRoot/system/verbs/builtins/webserver/data/responders/XmlSubscribe added to the repository |
|
From: creedon <icr...@us...> - 2006-01-08 01:53:57
|
Update of /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/adminSite/data/localization/languages/english/outlines In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5231 Modified Files: prefs Log Message: resurrect the News Aggregator and Subscription settings, minus Manila specific stuff reworked News Aggregator code to partially address < http://sourceforge.net/tracker/index.php?func=detail&aid=1394743&group_id=120666&atid=687798 > Index: prefs =================================================================== RCS file: /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/adminSite/data/localization/languages/english/outlines/prefs,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** prefs 7 Jan 2006 21:37:23 -0000 1.4 --- prefs 8 Jan 2006 01:53:45 -0000 1.5 *************** *** 1,3 **** FrontierVcsFile:1:optx:mainResponder.adminSite.data.localization.languages.english.outlines.prefs ! Server Settings Basic Settings You can edit the personalization and mail server (SMTP) information used for this server. <br/> <%radio.prefs.stringPref ("Name", @user.prefs.name)%> <%radio.prefs.stringPref ("Organization", @user.prefs.organization)%> <%radio.prefs.stringPref ("Email address", @user.prefs.mailAddress)%> <%radio.prefs.stringPref ("Outgoing (SMTP) mail server", @user.prefs.mailHost)%> <%radio.prefs.numberPref ("Outgoing (SMTP) mail server port", @user.prefs.mailHostPort)%> Security You can set security access controls on all content that the server renders. The values on this page control the global settings. The directory and script settings can be over-ridden at the site level, while IP address security is global. <%mainResponder.adminSite.prefs.securityLevel ("Admin security level")%> <%radio.prefs.checkboxPref ("Check this box to allow directory listings by default.", @config.mainresponder.globals.allowDirectoryListings)%> <%radio.prefs.checkboxPref ("Check this box to allow script listings by default.", @config.mainresponder.globals.allowScriptListings)%> <%radio.prefs.checkboxPref ("Check this box to allow scripts to run by default.", @config.mainresponder.globals.allowScriptsToRun)%> <br /> <b>Blocking HTTP requests by IP address</b> <%radio.prefs.checkboxPref ("Check this box to allow HTTP access <i>only</i> from the following IP addresses.", @config.mainresponder.prefs.flAllowByIpOnly)%> <%radio.prefs.textAreaPref ("IP addresses<br />separated by<br />commas", @config.mainresponder.prefs.allowedIpAddresses)%> <br /> <b>Membership</b> <%radio.prefs.checkboxPref ("Check this box to use the more secure encrypted cookie format. The encrypted format does not store passwords in membership cookies. Instead it hashes the password, plus additional information, to make membership more secure.", @config.mainresponder.prefs.flMembershipHashedCookies)%> Administrators You can add or remove administrators access to the Frontier Admin Site or edit the information for an existing administrator. You can also grant access to the WebEdit server to an administrator. <%mainResponder.adminSite.prefs.listAdministrators ()%> <br /><%mainResponder.adminSite.prefs.addOrEditAdministrator ()%> Domains The settings on this page are used configure virtual domains and sub-sites. For each site hosted on your server, there's a domain, a path, and a collection of objects which comprise the site. For a site hosted from an object database -- a Manila site for example, the objects will be specified by a database address. For a site hosted fom the filesystem, the objects will be specified by the path to a folder on disk. To map a domain and path to a site, type the domain name, and the path under the domain where the site will be served. In the Object field, enter either an object database address or the path to a folder of files on disk. Then click the Add Site button to add the site to the hierarchy. You can specify a redirect by entering the URL to redirect to, starting with http:\\// without a trailing slash, for example http:\\//www.example.com -- This will redirect all requests for the specified URL to the site of your choosing. <%local (pta = html.getPageTableAddress ()); pta^.flAddSubmitButton = false; if defined (pta^.postArgs.delete) {""} else {mainResponder.adminSite.prefs.addMappingToSiteTree () + "<br /><br />"}%> <b>Domains on this server</b> <%mainResponder.adminSite.prefs.listDomains ()%> Search Engine You can enable and set up the search engine server on this page. <%radio.prefs.checkboxPref ("Check this box to enable the search engine.", @config.mainResponder.prefs.flSearchEngine)%> <%radio.prefs.stringPref ("Search page URL", @config.mainResponder.urls.searchHome,size:80, maxlength:300)%> <%radio.prefs.numberPref ("Index stored pages every", @config.mainResponder.search.prefs.minutesBetweenIndexes, 1, textToRight:" minute(s).")%> <%radio.prefs.checkboxPref ("Check this box if you want to store the full text of indexed pages, so that excerpts can be displayed in search results.", @config.mainResponder.search.prefs.flStoreFullText)%> <%radio.prefs.checkboxPref ("Check this box to allow public search submissions.", @config.mainresponder.prefs.flAllowPublicSearchSubmissions)%> <%radio.prefs.checkboxPref ("Check this box to enable search engine logging", @config.mainResponder.search.prefs.flLogEnabled)%> MIME Types <%if defined (searchArgTable.itemToEdit) {"To change the MIME type associated with the ." + searchArgTable.itemToEdit + " extension, fill in the Type input box and click the Submit button."} else {"To add a new MIME type, fill in the suffix and its MIME type, then click the Add New Type button. To delete one or more types, check its checkbox and click the Delete button at the bottom of the page. To edit a type, click an Edit link on the right."}%> <%mainResponder.adminSite.prefs.mimeTypes ()%> Update Notification Frontier can automatically connect to a server at UserLand each night, to check the availability of new features and bug fixes. When software updates are available, Frontier will notify you via email. It's recommended that you turn this feature on. <%radio.prefs.checkboxPref ("Check this box to receive email notification when new software updates are available.", @config.mainResponder.prefs.flUpdateNightly)%> <br />You can view a list of pending software updates, and optionally install them via the <%"<a href=\"" + mainResponder.adminSite.urls.updates + "\">"%>Updates page</a>. <br /><b>Databases to update</b> Check the box next to each database that you want to be updated when installing new software. It's strongly recommended that you enable updating all of these databases. <%mainResponder.adminSite.prefs.dbToUpdateCheck ("Frontier.root")%> <%mainResponder.adminSite.prefs.dbToUpdateCheck ("mainResponder.root")%> <%mainResponder.adminSite.prefs.dbToUpdateCheck ("prefs.root")%> Backups This page contains the global backup settings for Manila sites, Frontier databases, and discussion group archives in XML. <br /> <b>Databases</b> Frontier can automatically save all changed databases every minute, and make backup copies each night. It's strongly recommended that you enable the saving of changed databases every minute. Depending on the size of your databases, nightly backups may take some time, so you may want to only enable this feature if your databases are small, or if the server traffic is low at night. <%radio.prefs.checkboxPref ("Check this box to save all changed databases every minute.", @config.mainresponder.prefs.flSaveDatabasesEveryMinute)%> <%radio.prefs.checkboxPref ("Check this box to back up all changed files in the Guest Databases folder every night?", @config.mainResponder.prefs.flBackupNightly)%> <%radio.prefs.stringPref ("Backup folder", @config.mainResponder.prefs.backupFolder, size:60)%> <br /><br /><b>Discussion group archives</b> The discussion group archives feature saves an XML file for every discussion group message. Only new or changed discussion group messages will be archived in XML. <%radio.prefs.checkboxPref ("Check this box to archive changes to discussion group messages in XML?", @config.mainResponder.prefs.flArchiveDiscuss)%> <%radio.prefs.stringPref ("Archive folder", @config.mainResponder.prefs.discussArchiveFolder, size:60)%> Logging and Statistics Frontier can maintain logs detailing what happens on your server and statistics that provide a cumulative view. You can choose which logs and stats Frontier should maintain, and where to store the logs. <br /> <%radio.prefs.checkboxPref ("Check this box to log every HTTP request.", @config.mainResponder.prefs.flLog)%> <%radio.prefs.checkboxPref ("Check this box to log every XML-RPC and SOAP request.", @user.betty.prefs.flKeepServerLog)%> <%radio.prefs.checkboxPref ("Check this box to log root updates.", @user.rootUpdates.prefs.flShowUpdatesToUser)%> <%radio.prefs.checkboxPref ("Check this box to enable search engine logging", @config.mainResponder.search.prefs.flLogEnabled)%> <%radio.prefs.checkboxPref ("Check this box to log scheduled tasks.", @user.scheduler.prefs.logInGuestDatabase)%> <%radio.prefs.checkboxPref ("Check this box to close and re-open the log database every hour, to reclaim allocated memory.", @config.mainresponder.prefs.flLogReopenHourly)%> <%radio.prefs.stringPref ("Log folder", @user.log.prefs.folder, size:70, maxlength:300)%> <br /> <b>Common Log Format</b> Common log format is a text file format used by popular web servers like Apache. Many log analysis programs used to generate traffic graphs and summaries can read this format. Settings in this section enable or disable the output of common log text files, and determine what information is included. <%table.surePath ("system.temp.mainResponder.misc.flCommonLog"); local (ad...@sy..., adr...@us..., s); if method != "POST" {adr^ = defined (adrcallback^)}; s=radio.prefs.checkboxPref ("Check this box to log HTTP requests in common log format.", adr); if method == "POST" {if adr^ {script.newScriptObject ("on commonLog (pta)\r\treturn (webserver.postFilters.commonLog (pta, true))", adrcallback)} else {if defined (adrcallback^) {delete (adrcallback)}}}; delete (adr); s%> <%radio.prefs.checkboxPref ("Check this box to use common log date format.", @user.webserver.prefs.commonLog.flUseCommonLogDateFormat)%> <%radio.prefs.checkboxPref ("Check this box to include virtual hosts.", @user.webserver.prefs.commonLog.flIncludeVirtualHosts)%> <%radio.prefs.checkboxPref ("Check this box to include referers.", @user.webserver.prefs.commonLog.flIncludeReferers)%> <%radio.prefs.checkboxPref ("Check this box to include User-Agents.", @user.webserver.prefs.commonLog.flIncludeUserAgents)%> <br /> <b>Statistics</b> Frontier can count hits on a per-domain basis, complie nightly discussion group stats, and write XML reports listing the most read sites. <%radio.prefs.checkboxPref ("Check this box to compile discussion group stats every night.", @config.mainresponder.prefs.flDiscussStatsNightly)%> <%radio.prefs.checkboxPref ("Check this box to count total hits for each domain hosted on this server.", @user.webserver.prefs.flDomainStats)%> Database Subscriptions You can publish a guest database and allow other people to subscribe to changes made to the guest database. Changes to the guest database made using WebEdit will be added to the updates flow for the database.<br /><br /> <%radio.prefs.checkboxPref ("Check this box to enable database subscriptions from this server to other copies of Frontier or Radio UserLand.", @config.mainresponder.prefs.flSubscriptions)%> <br /><b>Subscribable databases</b> Below is a list of all databases on this server. To enable or disable subscriptions for a given database, check or uncheck the box next to its name and click the Submit button below.<br /><br /> <%mainResponder.adminSite.prefs.listSubscribableDatabases ()%> WebEdit WebEdit allows remote access to your databases, from one copy of Frontier to another. On this page you can enable and disable the WebEdit server, add users, edit user information, and manage the custody of checked-out objects. <%local (pta = html.getPageTableAddress ()); pta^.flAddSubmitButton = false; if not defined (system.temp.mainResponder.misc) {new (tableType, @system.temp.mainResponder.misc)}; ""%> <%local (adrpref = @system.temp.mainResponder.misc.flWebEditEnabled, adrhandlers = @user.betty.rpcHandlers.webEdit); if method != "POST" {if defined (adrhandlers^) {adrpref^ = true} else {adrpref^ = false}}; local (s = radio.prefs.checkboxPref ("Check this box to enable the WebEdit server.", adrpref)); if method == "POST" {if adrpref^ {adrhandlers^ = @webeditServer.rpcHandlers.webEdit} else {try {delete (adrhandlers)}}}; s%> <br /><input type="submit" value="Submit"> <br /> <b>Add User</b> To add a new WebEdit user, enter the user's name, email address and password below, and click the Add User button.<br /><br /> <%mainResponder.adminSite.prefs.addWebeditUser ()%> <br /> <b>Current users</b> Below is a list of users who currently have WebEdit access to this server. To remove a user, check the box next to the user's name, and then click the Remove Users button below.<br /><br /> <%mainResponder.adminSite.prefs.listWebeditUsers ()%> <br /> <b>Objects</b> The following objects have been checked out with WebEdit. To force the check-in of an object, check the box next to its name, and then click the Force Check-In button below.<br /><br /> <%mainResponder.adminSite.prefs.listObjects ()%> Legal Macros <%mainResponder.adminSite.prefs.legalMacros ()%> News Aggregator <%xml.aggregator.init (); radio.prefs.checkboxPref ("Check this box to enable the news aggregator on this server. If it's enabled, Frontier will automatically scan subscribed channels once per hour.", @aggregatorData.prefs.enabled)%> <br /><b>When and how the aggregator runs</b>: <br />At what minute past the top of each hour should the aggregator scan for news? <%radio.prefs.numberPref ("Minute to scan", @aggregatorData.prefs.minuteToRead, upperbound:59)%> <br />The aggregator is multi-threaded. This means it can read read several RSS feeds at the same time. The larger this number the quicker it will finish each scan, but it may make the server slower while the scan is running. <%radio.prefs.numberPref ("Number of threads", @aggregatorData.prefs.maxThreads, lowerbound:1, upperbound:10)%> <br /><b>Archiving options</b>: <br />The news aggregator can automatically delete old stories from the database. It is highly recommended that you enable this option.<br /><br /> <%radio.prefs.checkboxPref ("Check this box to automatically delete old news items once an hour.", @aggregatorData.prefs.flArchive)%> <br />How old must an item be (in hours) in order to be deleted? <%radio.prefs.numberPref ("Hours before deletion", @aggregatorData.prefs.hoursBeforeArchive, lowerbound:1, upperbound:100)%> Subscriptions <%mainResponder.adminSite.prefs.subscriptions ()%> Debugging The settings on this page are for people who develop web applications in the Frontier environment. The debugging features help find problems with your code, and to isolate performance bottlenecks. Note that enabling these features can degrade server performance, and cause Frontier to use more memory and disk space than normal, so you should only enable them if needed. <br /> <b>mainResponder debugging</b> <%radio.prefs.checkboxPref ("Check this box to run mainResponder in debug mode. This will cause low-level errors to display an error window in the Frontier application.", @config.mainresponder.prefs.flDebug)%> <%radio.prefs.checkboxPref ("Check this box to copy the paramtable to scratchpad.params after every request.", @config.mainresponder.prefs.flKeepParamTable)%> <br /> <b>Profiling</b> Profiling allows you to find out what scripts and kernel verbs are being executed and for how long. It's a way of finding performance bottlenecks. With the feature enabled, you can view a web page showing the amount of time Frontier spent in each script and verb in processing the request by adding /profile/ to the begining of the path to the page. <%radio.prefs.checkboxPref ("Check this box to enable profiling.", @config.mainresponder.prefs.flProfiling)%> <br /> <b>Miscellaneous</b> Below are miscellaneous debugging features which may be useful depending on the type of application you're developing. <%radio.prefs.checkboxPref ("Check this box to record automatic database opens in system.temp.", @config.mainresponder.prefs.flLogDatabaseOpens)%> <%radio.prefs.checkboxPref ("Check this box to log available memory.", @config.mainresponder.prefs.flLogMemavail)%> Email Config <%flAddSubmitButton = false; mainResponder.controlPanel.emailConfig ()%> \ No newline at end of file --- 1,3 ---- FrontierVcsFile:1:optx:mainResponder.adminSite.data.localization.languages.english.outlines.prefs ! Server Settings Basic Settings You can edit the personalization and mail server (SMTP) information used for this server. <br/> <%radio.prefs.stringPref ("Name", @user.prefs.name)%> <%radio.prefs.stringPref ("Organization", @user.prefs.organization)%> <%radio.prefs.stringPref ("Email address", @user.prefs.mailAddress)%> <%radio.prefs.stringPref ("Outgoing (SMTP) mail server", @user.prefs.mailHost)%> <%radio.prefs.numberPref ("Outgoing (SMTP) mail server port", @user.prefs.mailHostPort)%> Security You can set security access controls on all content that the server renders. The values on this page control the global settings. The directory and script settings can be over-ridden at the site level, while IP address security is global. <%mainResponder.adminSite.prefs.securityLevel ("Admin security level")%> <%radio.prefs.checkboxPref ("Check this box to allow directory listings by default.", @config.mainresponder.globals.allowDirectoryListings)%> <%radio.prefs.checkboxPref ("Check this box to allow script listings by default.", @config.mainresponder.globals.allowScriptListings)%> <%radio.prefs.checkboxPref ("Check this box to allow scripts to run by default.", @config.mainresponder.globals.allowScriptsToRun)%> <br /> <b>Blocking HTTP requests by IP address</b> <%radio.prefs.checkboxPref ("Check this box to allow HTTP access <i>only</i> from the following IP addresses.", @config.mainresponder.prefs.flAllowByIpOnly)%> <%radio.prefs.textAreaPref ("IP addresses<br />separated by<br />commas", @config.mainresponder.prefs.allowedIpAddresses)%> <br /> <b>Membership</b> <%radio.prefs.checkboxPref ("Check this box to use the more secure encrypted cookie format. The encrypted format does not store passwords in membership cookies. Instead it hashes the password, plus additional information, to make membership more secure.", @config.mainresponder.prefs.flMembershipHashedCookies)%> Administrators You can add or remove administrators access to the Frontier Admin Site or edit the information for an existing administrator. You can also grant access to the WebEdit server to an administrator. <%mainResponder.adminSite.prefs.listAdministrators ()%> <br /><%mainResponder.adminSite.prefs.addOrEditAdministrator ()%> Domains The settings on this page are used configure virtual domains and sub-sites. For each site hosted on your server, there's a domain, a path, and a collection of objects which comprise the site. For a site hosted from an object database -- a Manila site for example, the objects will be specified by a database address. For a site hosted fom the filesystem, the objects will be specified by the path to a folder on disk. To map a domain and path to a site, type the domain name, and the path under the domain where the site will be served. In the Object field, enter either an object database address or the path to a folder of files on disk. Then click the Add Site button to add the site to the hierarchy. You can specify a redirect by entering the URL to redirect to, starting with http:\\// without a trailing slash, for example http:\\//www.example.com -- This will redirect all requests for the specified URL to the site of your choosing. <%local (pta = html.getPageTableAddress ()); pta^.flAddSubmitButton = false; if defined (pta^.postArgs.delete) {""} else {mainResponder.adminSite.prefs.addMappingToSiteTree () + "<br /><br />"}%> <b>Domains on this server</b> <%mainResponder.adminSite.prefs.listDomains ()%> Search Engine You can enable and set up the search engine server on this page. <%radio.prefs.checkboxPref ("Check this box to enable the search engine.", @config.mainResponder.prefs.flSearchEngine)%> <%radio.prefs.stringPref ("Search page URL", @config.mainResponder.urls.searchHome,size:80, maxlength:300)%> <%radio.prefs.numberPref ("Index stored pages every", @config.mainResponder.search.prefs.minutesBetweenIndexes, 1, textToRight:" minute(s).")%> <%radio.prefs.checkboxPref ("Check this box if you want to store the full text of indexed pages, so that excerpts can be displayed in search results.", @config.mainResponder.search.prefs.flStoreFullText)%> <%radio.prefs.checkboxPref ("Check this box to allow public search submissions.", @config.mainresponder.prefs.flAllowPublicSearchSubmissions)%> <%radio.prefs.checkboxPref ("Check this box to enable search engine logging", @config.mainResponder.search.prefs.flLogEnabled)%> MIME Types <%if defined (searchArgTable.itemToEdit) {"To change the MIME type associated with the ." + searchArgTable.itemToEdit + " extension, fill in the Type input box and click the Submit button."} else {"To add a new MIME type, fill in the suffix and its MIME type, then click the Add New Type button. To delete one or more types, check its checkbox and click the Delete button at the bottom of the page. To edit a type, click an Edit link on the right."}%> <%mainResponder.adminSite.prefs.mimeTypes ()%> Update Notification Frontier can automatically connect to a server at UserLand each night, to check the availability of new features and bug fixes. When software updates are available, Frontier will notify you via email. It's recommended that you turn this feature on. <%radio.prefs.checkboxPref ("Check this box to receive email notification when new software updates are available.", @config.mainResponder.prefs.flUpdateNightly)%> <br />You can view a list of pending software updates, and optionally install them via the <%"<a href=\"" + mainResponder.adminSite.urls.updates + "\">"%>Updates page</a>. <br /><b>Databases to update</b> Check the box next to each database that you want to be updated when installing new software. It's strongly recommended that you enable updating all of these databases. <%mainResponder.adminSite.prefs.dbToUpdateCheck ("Frontier.root")%> <%mainResponder.adminSite.prefs.dbToUpdateCheck ("mainResponder.root")%> <%mainResponder.adminSite.prefs.dbToUpdateCheck ("prefs.root")%> Backups This page contains the global backup settings for Manila sites, Frontier databases, and discussion group archives in XML. <br /> <b>Databases</b> Frontier can automatically save all changed databases every minute, and make backup copies each night. It's strongly recommended that you enable the saving of changed databases every minute. Depending on the size of your databases, nightly backups may take some time, so you may want to only enable this feature if your databases are small, or if the server traffic is low at night. <%radio.prefs.checkboxPref ("Check this box to save all changed databases every minute.", @config.mainresponder.prefs.flSaveDatabasesEveryMinute)%> <%radio.prefs.checkboxPref ("Check this box to back up all changed files in the Guest Databases folder every night?", @config.mainResponder.prefs.flBackupNightly)%> <%radio.prefs.stringPref ("Backup folder", @config.mainResponder.prefs.backupFolder, size:60)%> <br /><br /><b>Discussion group archives</b> The discussion group archives feature saves an XML file for every discussion group message. Only new or changed discussion group messages will be archived in XML. <%radio.prefs.checkboxPref ("Check this box to archive changes to discussion group messages in XML?", @config.mainResponder.prefs.flArchiveDiscuss)%> <%radio.prefs.stringPref ("Archive folder", @config.mainResponder.prefs.discussArchiveFolder, size:60)%> Logging and Statistics Frontier can maintain logs detailing what happens on your server and statistics that provide a cumulative view. You can choose which logs and stats Frontier should maintain, and where to store the logs. <br /> <%radio.prefs.checkboxPref ("Check this box to log every HTTP request.", @config.mainResponder.prefs.flLog)%> <%radio.prefs.checkboxPref ("Check this box to log every XML-RPC and SOAP request.", @user.betty.prefs.flKeepServerLog)%> <%radio.prefs.checkboxPref ("Check this box to log root updates.", @user.rootUpdates.prefs.flShowUpdatesToUser)%> <%radio.prefs.checkboxPref ("Check this box to enable search engine logging", @config.mainResponder.search.prefs.flLogEnabled)%> <%radio.prefs.checkboxPref ("Check this box to log scheduled tasks.", @user.scheduler.prefs.logInGuestDatabase)%> <%radio.prefs.checkboxPref ("Check this box to close and re-open the log database every hour, to reclaim allocated memory.", @config.mainresponder.prefs.flLogReopenHourly)%> <%radio.prefs.stringPref ("Log folder", @user.log.prefs.folder, size:70, maxlength:300)%> <br /> <b>Common Log Format</b> Common log format is a text file format used by popular web servers like Apache. Many log analysis programs used to generate traffic graphs and summaries can read this format. Settings in this section enable or disable the output of common log text files, and determine what information is included. <%table.surePath ("system.temp.mainResponder.misc.flCommonLog"); local (ad...@sy..., adr...@us..., s); if method != "POST" {adr^ = defined (adrcallback^)}; s=radio.prefs.checkboxPref ("Check this box to log HTTP requests in common log format.", adr); if method == "POST" {if adr^ {script.newScriptObject ("on commonLog (pta)\r\treturn (webserver.postFilters.commonLog (pta, true))", adrcallback)} else {if defined (adrcallback^) {delete (adrcallback)}}}; delete (adr); s%> <%radio.prefs.checkboxPref ("Check this box to use common log date format.", @user.webserver.prefs.commonLog.flUseCommonLogDateFormat)%> <%radio.prefs.checkboxPref ("Check this box to include virtual hosts.", @user.webserver.prefs.commonLog.flIncludeVirtualHosts)%> <%radio.prefs.checkboxPref ("Check this box to include referers.", @user.webserver.prefs.commonLog.flIncludeReferers)%> <%radio.prefs.checkboxPref ("Check this box to include User-Agents.", @user.webserver.prefs.commonLog.flIncludeUserAgents)%> <br /> <b>Statistics</b> Frontier can count hits on a per-domain basis, complie nightly discussion group stats, and write XML reports listing the most read sites. <%radio.prefs.checkboxPref ("Check this box to compile discussion group stats every night.", @config.mainresponder.prefs.flDiscussStatsNightly)%> <%radio.prefs.checkboxPref ("Check this box to count total hits for each domain hosted on this server.", @user.webserver.prefs.flDomainStats)%> Database Subscriptions You can publish a guest database and allow other people to subscribe to changes made to the guest database. Changes to the guest database made using WebEdit will be added to the updates flow for the database.<br /><br /> <%radio.prefs.checkboxPref ("Check this box to enable database subscriptions from this server to other copies of Frontier or Radio UserLand.", @config.mainresponder.prefs.flSubscriptions)%> <br /><b>Subscribable databases</b> Below is a list of all databases on this server. To enable or disable subscriptions for a given database, check or uncheck the box next to its name and click the Submit button below.<br /><br /> <%mainResponder.adminSite.prefs.listSubscribableDatabases ()%> WebEdit WebEdit allows remote access to your databases, from one copy of Frontier to another. On this page you can enable and disable the WebEdit server, add users, edit user information, and manage the custody of checked-out objects. <%local (pta = html.getPageTableAddress ()); pta^.flAddSubmitButton = false; if not defined (system.temp.mainResponder.misc) {new (tableType, @system.temp.mainResponder.misc)}; ""%> <%local (adrpref = @system.temp.mainResponder.misc.flWebEditEnabled, adrhandlers = @user.betty.rpcHandlers.webEdit); if method != "POST" {if defined (adrhandlers^) {adrpref^ = true} else {adrpref^ = false}}; local (s = radio.prefs.checkboxPref ("Check this box to enable the WebEdit server.", adrpref)); if method == "POST" {if adrpref^ {adrhandlers^ = @webeditServer.rpcHandlers.webEdit} else {try {delete (adrhandlers)}}}; s%> <br /><input type="submit" value="Submit"> <br /> <b>Add User</b> To add a new WebEdit user, enter the user's name, email address and password below, and click the Add User button.<br /><br /> <%mainResponder.adminSite.prefs.addWebeditUser ()%> <br /> <b>Current users</b> Below is a list of users who currently have WebEdit access to this server. To remove a user, check the box next to the user's name, and then click the Remove Users button below.<br /><br /> <%mainResponder.adminSite.prefs.listWebeditUsers ()%> <br /> <b>Objects</b> The following objects have been checked out with WebEdit. To force the check-in of an object, check the box next to its name, and then click the Force Check-In button below.<br /><br /> <%mainResponder.adminSite.prefs.listObjects ()%> Legal Macros <%mainResponder.adminSite.prefs.legalMacros ()%> News Aggregator <%local (htmlText = ""); xml.aggregator.init (); htmlText = radio.prefs.checkboxPref ("Check this box to enable the news aggregator on this server. If it's enabled, Frontier will automatically scan subscribed channels once per hour.", @aggregatorData.prefs.enabled); xml.aggregator.init (); return (htmlText)%> <br /><b>When and how the aggregator runs</b>: <br />At what minute past the top of each hour should the aggregator scan for news? <%radio.prefs.numberPref ("Minute to scan", @aggregatorData.prefs.minuteToRead, upperbound:59)%> <br />The aggregator is multi-threaded. This means it can read read several RSS feeds at the same time. The larger this number the quicker it will finish each scan, but it may make the server slower while the scan is running. <%radio.prefs.numberPref ("Number of threads", @aggregatorData.prefs.maxThreads, lowerbound:1, upperbound:10)%> <br /><b>Archiving options</b>: <br />The news aggregator can automatically delete old stories from the database. It is highly recommended that you enable this option.<br /><br /> <%radio.prefs.checkboxPref ("Check this box to automatically delete old news items once an hour.", @aggregatorData.prefs.flArchive)%> <br />How old must an item be (in hours) in order to be deleted? <%radio.prefs.numberPref ("Hours before deletion", @aggregatorData.prefs.hoursBeforeArchive, lowerbound:1, upperbound:100)%> Subscriptions <%mainResponder.adminSite.prefs.subscriptions ()%> Debugging The settings on this page are for people who develop web applications in the Frontier environment. The debugging features help find problems with your code, and to isolate performance bottlenecks. Note that enabling these features can degrade server performance, and cause Frontier to use more memory and disk space than normal, so you should only enable them if needed. <br /> <b>mainResponder debugging</b> <%radio.prefs.checkboxPref ("Check this box to run mainResponder in debug mode. This will cause low-level errors to display an error window in the Frontier application.", @config.mainresponder.prefs.flDebug)%> <%radio.prefs.checkboxPref ("Check this box to copy the paramtable to scratchpad.params after every request.", @config.mainresponder.prefs.flKeepParamTable)%> <br /> <b>Profiling</b> Profiling allows you to find out what scripts and kernel verbs are being executed and for how long. It's a way of finding performance bottlenecks. With the feature enabled, you can view a web page showing the amount of time Frontier spent in each script and verb in processing the request by adding /profile/ to the begining of the path to the page. <%radio.prefs.checkboxPref ("Check this box to enable profiling.", @config.mainresponder.prefs.flProfiling)%> <br /> <b>Miscellaneous</b> Below are miscellaneous debugging features which may be useful depending on the type of application you're developing. <%radio.prefs.checkboxPref ("Check this box to record automatic database opens in system.temp.", @config.mainresponder.prefs.flLogDatabaseOpens)%> <%radio.prefs.checkboxPref ("Check this box to log available memory.", @config.mainresponder.prefs.flLogMemavail)%> Email Config <%flAddSubmitButton = false; mainResponder.controlPanel.emailConfig ()%> \ No newline at end of file |
|
From: creedon <icr...@us...> - 2006-01-08 01:38:49
|
Update of /cvsroot/frontierkernel/odbs/frontierRoot/system/verbs/builtins/xml/aggregator In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2944 Modified Files: init Log Message: if enabled is false, delete user.scheduler.everyMinute.aggregator, prevent aggregatorData.root from opening if its not enabled script format tweaks enabled is false by default Index: init =================================================================== RCS file: /cvsroot/frontierkernel/odbs/frontierRoot/system/verbs/builtins/xml/aggregator/init,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** init 26 Mar 2005 19:44:16 -0000 1.1.1.1 --- init 8 Jan 2006 01:38:32 -0000 1.2 *************** *** 1,3 **** FrontierVcsFile:1:scpt:system.verbs.builtins.xml.aggregator.init ! ÇChanges Ç3/5/03; 1:43:51 PM by JES ÇIn Frontier, initialize adrdata^.prefs.flSaveItemData to true instead of false -- it's needed for features of a modern news aggregator like comment links and permalinks. Ç11/14/02; 7:06:08 PM by JES ÇInitialize adrdata^.prefs.flSaveItemData. Ç4/5/02; 7:50:24 PM by DW ÇInitialize callback table for scripts that run when a user unsubscribes from afeed. Ç4/5/02; 4:39:38 PM by DW ÇInitialize callback table for scripts that run when a user subscribes to a new feed. Ç1/23/02; 3:38:57 PM by JES ÇIf the aggregator is enabled, always make sure that the everyMinute scheduler script is installed. This fixes a problem in Radio where after a re-install, the aggregator would stop working. Ç1/12/02; 8:46:05 PM by DW ÇInstead of initializing aggregatorData.prefs.minuteToRead to 0, initialize it to a random number between 5 and 55. There are already too many people scanning at 0, and I offset by 5 because clocks are not generally synchronized. Thanks to Aaron Swartz for this suggestion. Çhttp://groups.yahoo.com/group/radio-userland/message/11005 Ç12/27/01; 6:00:32 PM by PBS ÇSet up flBehindFirewall pref on Frontier. In Radio the pref is at user.radio.prefs.flBehindFirewall. In Frontier the pref is in the adrdata^.prefs table. Ç12/4/01; 7:20:44 PM by DW ÇInitialize callback tables for pre and post scan. Ç12/3/01; 5:50:18 PM by DW ÇInitialize aggregatorData.prefs.maxErrorsBeforeAutoUnsubscribe. Ç11/30/01; 1:52:55 PM by DW ÇInitialize prefs.flScanOnStartup. Ç11/7/01; 6:52:19 PM by DW ÇDon't initialize system.temp.aggregator. ÇInitialize adrdata^.stats.lastRun, which contains all the fields of the old temp table, ctThreads, lastChannelRead, ctNewStories, and status. Ç10/19/01; 7:51:37 PM by DW ÇInitialize stuff for hourly archives. local (adrdata = frontier.openDataFile ("aggregatorData")); bundle { //stats if not defined (adrdata^.stats) { new (tabletype, @adrdata^.stats)}; if not defined (adrdata^.stats.lastRun) { new (tabletype, @adrdata^.stats.lastRun)}; if not defined (adrdata^.stats.lastRun.ctThreads) { adrdata^.stats.lastRun.ctThreads = 0}; if not defined (adrdata^.stats.lastRun.ctNewStories) { adrdata^.stats.lastRun.ctNewStories = 0}; if not defined (adrdata^.stats.lastRun.lastChannelRead) { adrdata^.stats.lastRun.lastChannelRead = ""}; if not defined (adrdata^.stats.lastRun.status) { adrdata^.stats.lastRun.status = ""}; if not defined (adrdata^.stats.lastRun.whenComplete) { adrdata^.stats.lastRun.whenComplete = date (0)}; if not defined (adrdata^.stats.lastRun.flScanRunningNow) { adrdata^.stats.lastRun.flScanRunningNow = false}}; bundle { //prefs if not defined (adrdata^.prefs) { new (tabletype, @adrdata^.prefs)}; if not defined (adrdata^.prefs.flLogHourlyScan) { adrdata^.prefs.flLogHourlyScan = true}; if not defined (adrdata^.prefs.flLogNotification) { adrdata^.prefs.flLogNotification = true}; if not defined (adrdata^.prefs.flChannelChange) { adrdata^.prefs.flChannelChange = true}; if not defined (adrdata^.prefs.maxThreads) { if defined (myUserLandData.prefs.maxThreads) { adrdata^.prefs.maxThreads = myUserLandData.prefs.maxThreads} else { adrdata^.prefs.maxThreads = 2}}; if not defined (adrdata^.prefs.appSignatureUrl) { adrdata^.prefs.appSignatureUrl = "http://frontier.userland.com/xmlAggregator"}; if not defined (adrdata^.prefs.nextStoryNum) { if defined (myUserLandData.prefs.nextStoryNum) { adrdata^.prefs.nextStoryNum = myUserLandData.prefs.nextStoryNum} else { adrdata^.prefs.nextStoryNum = 1}}; if not defined (adrdata^.prefs.enabled) { adrdata^.prefs.enabled = true}; if not defined (adrdata^.prefs.minuteToRead) { if defined (myUserLandData.prefs.minuteToDoHourlyScan) { adrdata^.prefs.minuteToRead = myUserLandData.prefs.minuteToDoHourlyScan} else { adrdata^.prefs.minuteToRead = random (5, 55)}}; if not defined (adrdata^.prefs.minuteToArchive) { if defined (myUserLandData.prefs.minuteToArchive) { adrdata^.prefs.minuteToArchive = myUserLandData.prefs.minuteToArchive} else { adrdata^.prefs.minuteToArchive = 58}}; if not defined (adrdata^.prefs.hoursBeforeArchive) { if defined (myUserLandData.prefs.hoursBetweenArchives) { adrdata^.prefs.hoursBeforeArchive = myUserLandData.prefs.hoursBetweenArchives} else { adrdata^.prefs.hoursBeforeArchive = 24}}; if not defined (adrdata^.prefs.flArchive) { if defined (myUserLandData.prefs.flArchiveStoriesNightly) { adrdata^.prefs.flArchive = myUserLandData.prefs.flArchiveStoriesNightly} else { adrdata^.prefs.flArchive = true}}; if not defined (adrdata^.prefs.flSaveArchiveXmlFiles) { adrdata^.prefs.flSaveArchiveXmlFiles = false}; if not defined (adrdata^.prefs.flLogArchiveStories) { if defined (myUserLandData.prefs.flLogArchiveStories) { adrdata^.prefs.flLogArchiveStories = myUserLandData.prefs.flLogArchiveStories} else { adrdata^.prefs.flLogArchiveStories = true}}; if not defined (adrdata^.prefs.flScanOnStartup) { adrdata^.prefs.flScanOnStartup = false}; if not defined (adrdata^.prefs.maxErrorsBeforeAutoUnsubscribe) { adrdata^.prefs.maxErrorsBeforeAutoUnsubscribe = 24 * 2}; if not defined (adrdata^.prefs.flSaveItemData) { //JES 11/14/02: passed to xml.rss.readService adrdata^.prefs.flSaveItemData = true; //JES 3/4/03: always init to true -- needed for "modern" aggregator features to work Çbundle //old code/notes Ç11/14/02 JES: The aggregator XML-RPC API returns the title and link along with the item. xml.rss.readService takes an optional parameter, flSaveData, which determines whether to save the title and link in the item sub-table of the compilation. ÇPreviously, the default value for this parameter was false. In Radio, it needs to be passed in as true, so that the aggregator API will get the right data. ÇWe initialize to true in Radio, and false in Frontier. Then in xml.aggregator.subscribeService and xml.aggregator.readService, we pass the value of the pref. Çif system.environment.isRadio Çadrdata^.prefs.flSaveItemData = true Çelse Çadrdata^.prefs.flSaveItemData = false}; if not system.environment.isRadio { //PBS 12/27/01: set up flBehindFirewall pref on Frontier ÇIn Radio the pref is at user.radio.prefs.flBehindFirewall. In Frontier the pref is in the adrdata^.prefs table. if not defined (adrdata^.prefs.flBehindFirewall) { adrdata^.prefs.flBehindFirewall = false}}}; bundle { //services if not defined (adrdata^.services) { if defined (myUserLandData.services) { adrdata^.services = myUserLandData.services} else { new (tabletype, @adrdata^.services)}}}; bundle { //stories if not defined (adrdata^.stories) { if defined (myUserLandData.stories) { adrdata^.stories = myUserLandData.stories} else { new (tabletype, @adrdata^.stories)}}}; bundle { //trash if not defined (adrdata^.trash) { new (tabletype, @adrdata^.trash)}}; bundle { //cache if not defined (adrdata^.cache) { new (tabletype, @adrdata^.cache)}}; bundle { //settings if not defined (adrdata^.settings) { new (tabletype, @adrdata^.settings)}}; bundle { //callbacks if not defined (adrdata^.callbacks) { new (tabletype, @adrdata^.callbacks)}; if not defined (adrdata^.callbacks.storyArrived) { if defined (myUserLandData.callbacks.storyArrived) { adrdata^.callbacks.storyArrived = myUserLandData.callbacks.storyArrived} else { new (tabletype, @adrdata^.callbacks.storyArrived)}}; if not defined (adrdata^.callbacks.preScan) { new (tabletype, @adrdata^.callbacks.preScan)}; if not defined (adrdata^.callbacks.postScan) { new (tabletype, @adrdata^.callbacks.postScan)}; if not defined (adrdata^.callbacks.subscribeService) { new (tabletype, @adrdata^.callbacks.subscribeService)}; if not defined (adrdata^.callbacks.unsubscribeService) { new (tabletype, @adrdata^.callbacks.unsubscribeService)}}; bundle { //rpcHandlers if not defined (user.betty.rpcHandlers.aggregator) { user.betty.rpcHandlers.aggregator = @xml.aggregator.rpcHandlers}; if not defined (user.betty.soapHandlers.aggregator) { user.soap.rpcHandlers.aggregator = @xml.aggregator.rpcHandlers}}; bundle { //make sure everyMinute script is installed, if necessary Çif not defined (adrdata^.settings.flInstalled) if adrdata^.prefs.enabled { if not defined (user.scheduler.everyMinute.aggregator) { user.scheduler.everyMinute.aggregator = @xml.aggregator.everyMinute; }}};Çadrdata^.settings.flInstalled = true //only do this once Çbundle //system.temp.aggregator Çif not defined (system.temp.aggregator) Çnew (tabletype, @system.temp.aggregator) Çif not defined (system.temp.aggregator.ctNewStories) Çsystem.temp.aggregator.ctNewStories = 0 Çif not defined (system.temp.aggregator.ctThreads) Çsystem.temp.aggregator.ctThreads = 0 Çif not defined (system.temp.aggregator.lastChannelRead) Çsystem.temp.aggregator.lastChannelRead = "" Çif not defined (system.temp.aggregator.status) Çsystem.temp.aggregator.status = "" return (adrdata) \ No newline at end of file --- 1,3 ---- FrontierVcsFile:1:scpt:system.verbs.builtins.xml.aggregator.init ! ÇChanges Ç1/7/06; 4:18:46 PM by TAC Çif enabled is false, delete user.scheduler.everyMinute.aggregator, prevent aggregatorData.root from opening if its not enabled Çscript format tweaks Çenabled is false by default Ç3/5/03; 1:43:51 PM by JES ÇIn Frontier, initialize adrData^.prefs.flSaveItemData to true instead of false -- it's needed for features of a modern news aggregator like comment links and permalinks. Ç2002 Ç11/14/02; 7:06:08 PM by JES ÇInitialize adrData^.prefs.flSaveItemData. Ç4/5/02; 7:50:24 PM by DW ÇInitialize callback table for scripts that run when a user unsubscribes from afeed. Ç4/5/02; 4:39:38 PM by DW ÇInitialize callback table for scripts that run when a user subscribes to a new feed. Ç1/23/02; 3:38:57 PM by JES ÇIf the aggregator is enabled, always make sure that the everyMinute scheduler script is installed. This fixes a problem in Radio where after a re-install, the aggregator would stop working. Ç1/12/02; 8:46:05 PM by DW ÇInstead of initializing aggregatorData.prefs.minuteToRead to 0, initialize it to a random number between 5 and 55. There are already too many people scanning at 0, and I offset by 5 because clocks are not generally synchronized. Thanks to Aaron Swartz for this suggestion. Çhttp://groups.yahoo.com/group/radio-userland/message/11005 Ç2001 Ç12/27/01; 6:00:32 PM by PBS ÇSet up flBehindFirewall pref on Frontier. In Radio the pref is at user.radio.prefs.flBehindFirewall. In Frontier the pref is in the adrData^.prefs table. Ç12/4/01; 7:20:44 PM by DW ÇInitialize callback tables for pre and post scan. Ç12/3/01; 5:50:18 PM by DW ÇInitialize aggregatorData.prefs.maxErrorsBeforeAutoUnsubscribe. Ç11/30/01; 1:52:55 PM by DW ÇInitialize prefs.flScanOnStartup. Ç11/7/01; 6:52:19 PM by DW ÇDon't initialize system.temp.aggregator. ÇInitialize adrData^.stats.lastRun, which contains all the fields of the old temp table, ctThreads, lastChannelRead, ctNewStories, and status. Ç10/19/01; 7:51:37 PM by DW ÇInitialize stuff for hourly archives. local (adrData = frontier.openDataFile ("aggregatorData")); bundle { //stats if not defined (adrData^.stats) { new (tabletype, @adrData^.stats)}; if not defined (adrData^.stats.lastRun) { new (tabletype, @adrData^.stats.lastRun)}; if not defined (adrData^.stats.lastRun.ctThreads) { adrData^.stats.lastRun.ctThreads = 0}; if not defined (adrData^.stats.lastRun.ctNewStories) { adrData^.stats.lastRun.ctNewStories = 0}; if not defined (adrData^.stats.lastRun.lastChannelRead) { adrData^.stats.lastRun.lastChannelRead = ""}; if not defined (adrData^.stats.lastRun.status) { adrData^.stats.lastRun.status = ""}; if not defined (adrData^.stats.lastRun.whenComplete) { adrData^.stats.lastRun.whenComplete = date (0)}; if not defined (adrData^.stats.lastRun.flScanRunningNow) { adrData^.stats.lastRun.flScanRunningNow = false}}; bundle { //prefs if not defined (adrData^.prefs) { new (tabletype, @adrData^.prefs)}; if not defined (adrData^.prefs.flLogHourlyScan) { adrData^.prefs.flLogHourlyScan = true}; if not defined (adrData^.prefs.flLogNotification) { adrData^.prefs.flLogNotification = true}; if not defined (adrData^.prefs.flChannelChange) { adrData^.prefs.flChannelChange = true}; if not defined (adrData^.prefs.maxThreads) { if defined (myUserLandData.prefs.maxThreads) { adrData^.prefs.maxThreads = myUserLandData.prefs.maxThreads} else { adrData^.prefs.maxThreads = 2}}; if not defined (adrData^.prefs.appSignatureUrl) { adrData^.prefs.appSignatureUrl = "http://frontier.userland.com/xmlAggregator"}; if not defined (adrData^.prefs.nextStoryNum) { if defined (myUserLandData.prefs.nextStoryNum) { adrData^.prefs.nextStoryNum = myUserLandData.prefs.nextStoryNum} else { adrData^.prefs.nextStoryNum = 1}}; if not defined (adrData^.prefs.enabled) { adrData^.prefs.enabled = false}; if not defined (adrData^.prefs.minuteToRead) { if defined (myUserLandData.prefs.minuteToDoHourlyScan) { adrData^.prefs.minuteToRead = myUserLandData.prefs.minuteToDoHourlyScan} else { adrData^.prefs.minuteToRead = random (5, 55)}}; if not defined (adrData^.prefs.minuteToArchive) { if defined (myUserLandData.prefs.minuteToArchive) { adrData^.prefs.minuteToArchive = myUserLandData.prefs.minuteToArchive} else { adrData^.prefs.minuteToArchive = 58}}; if not defined (adrData^.prefs.hoursBeforeArchive) { if defined (myUserLandData.prefs.hoursBetweenArchives) { adrData^.prefs.hoursBeforeArchive = myUserLandData.prefs.hoursBetweenArchives} else { adrData^.prefs.hoursBeforeArchive = 24}}; if not defined (adrData^.prefs.flArchive) { if defined (myUserLandData.prefs.flArchiveStoriesNightly) { adrData^.prefs.flArchive = myUserLandData.prefs.flArchiveStoriesNightly} else { adrData^.prefs.flArchive = true}}; if not defined (adrData^.prefs.flSaveArchiveXmlFiles) { adrData^.prefs.flSaveArchiveXmlFiles = false}; if not defined (adrData^.prefs.flLogArchiveStories) { if defined (myUserLandData.prefs.flLogArchiveStories) { adrData^.prefs.flLogArchiveStories = myUserLandData.prefs.flLogArchiveStories} else { adrData^.prefs.flLogArchiveStories = true}}; if not defined (adrData^.prefs.flScanOnStartup) { adrData^.prefs.flScanOnStartup = false}; if not defined (adrData^.prefs.maxErrorsBeforeAutoUnsubscribe) { adrData^.prefs.maxErrorsBeforeAutoUnsubscribe = 24 * 2}; if not defined (adrData^.prefs.flSaveItemData) { //JES 11/14/02: passed to xml.rss.readService adrData^.prefs.flSaveItemData = true; //JES 3/4/03: always init to true -- needed for "modern" aggregator features to work Çbundle //old code/notes Ç11/14/02 JES: The aggregator XML-RPC API returns the title and link along with the item. xml.rss.readService takes an optional parameter, flSaveData, which determines whether to save the title and link in the item sub-table of the compilation. ÇPreviously, the default value for this parameter was false. In Radio, it needs to be passed in as true, so that the aggregator API will get the right data. ÇWe initialize to true in Radio, and false in Frontier. Then in xml.aggregator.subscribeService and xml.aggregator.readService, we pass the value of the pref. Çif system.environment.isRadio ÇadrData^.prefs.flSaveItemData = true Çelse ÇadrData^.prefs.flSaveItemData = false};}; if not system.environment.isRadio { //PBS 12/27/01: set up flBehindFirewall pref on Frontier ÇIn Radio the pref is at user.radio.prefs.flBehindFirewall. In Frontier the pref is in the adrData^.prefs table. if not defined (adrData^.prefs.flBehindFirewall) { adrData^.prefs.flBehindFirewall = false}}}; bundle { //services if not defined (adrData^.services) { if defined (myUserLandData.services) { adrData^.services = myUserLandData.services} else { new (tabletype, @adrData^.services)}}}; bundle { //stories if not defined (adrData^.stories) { if defined (myUserLandData.stories) { adrData^.stories = myUserLandData.stories} else { new (tabletype, @adrData^.stories)}}}; bundle { //trash if not defined (adrData^.trash) { new (tabletype, @adrData^.trash)}}; bundle { //cache if not defined (adrData^.cache) { new (tabletype, @adrData^.cache)}}; bundle { //settings if not defined (adrData^.settings) { new (tabletype, @adrData^.settings)}}; bundle { //callbacks if not defined (adrData^.callbacks) { new (tabletype, @adrData^.callbacks)}; if not defined (adrData^.callbacks.storyArrived) { if defined (myUserLandData.callbacks.storyArrived) { adrData^.callbacks.storyArrived = myUserLandData.callbacks.storyArrived} else { new (tabletype, @adrData^.callbacks.storyArrived)}}; if not defined (adrData^.callbacks.preScan) { new (tabletype, @adrData^.callbacks.preScan)}; if not defined (adrData^.callbacks.postScan) { new (tabletype, @adrData^.callbacks.postScan)}; if not defined (adrData^.callbacks.subscribeService) { new (tabletype, @adrData^.callbacks.subscribeService)}; if not defined (adrData^.callbacks.unsubscribeService) { new (tabletype, @adrData^.callbacks.unsubscribeService)}}; bundle { //rpcHandlers if not defined (user.betty.rpcHandlers.aggregator) { user.betty.rpcHandlers.aggregator = @xml.aggregator.rpcHandlers}; if not defined (user.betty.soapHandlers.aggregator) { user.soap.rpcHandlers.aggregator = @xml.aggregator.rpcHandlers}}; bundle { //make sure everyMinute script is installed, if necessary if adrData^.prefs.enabled { if not defined (user.scheduler.everyMinute.aggregator) { user.scheduler.everyMinute.aggregator = @xml.aggregator.everyMinute; }}ÇadrData^.settings.flInstalled = true //only do this once else { if defined (user.scheduler.everyMinute.aggregator) { if user.scheduler.everyMinute.aggregator == @xml.aggregator.everyMinute { delete (@user.scheduler.everyMinute.aggregator)}}}}; Çbundle //system.temp.aggregator Çif not defined (system.temp.aggregator) Çnew (tabletype, @system.temp.aggregator) Çif not defined (system.temp.aggregator.ctNewStories) Çsystem.temp.aggregator.ctNewStories = 0 Çif not defined (system.temp.aggregator.ctThreads) Çsystem.temp.aggregator.ctThreads = 0 Çif not defined (system.temp.aggregator.lastChannelRead) Çsystem.temp.aggregator.lastChannelRead = "" Çif not defined (system.temp.aggregator.status) Çsystem.temp.aggregator.status = "" return (adrData) \ No newline at end of file |
|
From: creedon <icr...@us...> - 2006-01-07 22:34:45
|
Update of /cvsroot/frontierkernel/odbs/frontierRoot/system/verbs/builtins/radio/prefs In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31027 Modified Files: browser Log Message: minor formatting tweaks lowercase form method, add action to form, remove tr tag height XHTML compliance Index: browser =================================================================== RCS file: /cvsroot/frontierkernel/odbs/frontierRoot/system/verbs/builtins/radio/prefs/browser,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** browser 26 Mar 2005 19:43:20 -0000 1.1.1.1 --- browser 7 Jan 2006 22:34:30 -0000 1.2 *************** *** 1,3 **** FrontierVcsFile:1:scpt:system.verbs.builtins.radio.prefs.browser ! on browser (adroutline, pagename="Preferences", flAddSubmitButton=true, nextLinkText="Next", prevLinkText="Previous", submitButtonText="Submit") { ÇChanges Ç10/12/02; 1:44:56 AM by JES ÇThree new parameters to facilitate localization: nextLinkText, prevLinkText and submitButtonText. These parameters specify the text for the next and previous links, and the text for the submit button. Ç9/24/02; 12:51:38 AM by JES ÇDecode ampersand entities in category and topic names. Needed for localization. Ç6/26/02; 11:51:52 PM by JES ÇBefore adding the Submit button, check to see if pta^.flAddSubmitButton is defined. If defined and false, don't add the button. This allows macros in a prefs outline to suppress the Submit button, and add their own button(s) if desired. Ç2/5/02; 11:26:46 AM by PBS ÇConditionalized to work in Frontier. Ç1/9/02; 5:03:56 PM by JES ÇCall radio.prefs.compileIfDirty, instead of compiling the xml and caching home page text, next-prev links, and page titles here. Ç12/10/01; 10:21:06 PM by JES ÇInclude the full path in the link to sub-pages, since Opera doesn't know how to link to the same page, adding just the searchArgs. Fixes a bug where none of the Prefs or Help sub-pages could be reached in Opera. Ç11/24/01; 5:18:15 PM by JES ÇSet pta^.headTitle, which is used for the <%title%> in the header of the page (when rendered in the context of an #flUseHomeTitle true directive). ÇSee radio.webserver.setTemplate for the code that handles the #flUseHomeTitle directive. ÇNew optional parameter, flAddSubmitButton. If true, then the Submit button will be added at the bottom of the page. If false, there's no submit button. Default is true. This is needed in order to remove the Submit button from the bottom of the help pages. Ç11/23/01; 9:17:39 PM by DW ÇPut the address of the prefs outline into pta^.radioResponder.adrPrefsOutline. ÇIt's picked up in radio.prefs.seeAlso, to determine which element of the cache it should use. Ç11/23/01; 9:06:49 PM by DW ÇAdd a second parameter which is the name of the home page of the sub-site. Ç11/18/01; 5:48:45 PM by DW ÇNot content with my most recent one, now I'm swingin for the fences. ÇThis browser runs off a single outline. It's not XML. It's just an outline. ÇWhere it requires user input -- a checkbox or a number-entry box, it calls macros. ÇWe do a directory-like browser for prefs, breaking it down to sections. ÇThe key thing about this approach is that the writer gets to use a writing tool, not an XML editor, and not a bunch of scattered strings. This makes it possible for docs and settings to be mixed in a single presentation. This is how docs were supposed to work. local (pta = html.getpagetableaddress ()); if system.environment.isRadio { //PBS 02/05/02: conditionalized for Frontier pta^.radioResponder.adrPrefsOutline = adroutline} else { pta^.adrPrefsOutline = adroutline}; pta^.title = " "; local (titleBarColor = "#" + gainsboro, titleBarTextColor = "#" + black); titleBarColor = "#859EC9"; titleBarTextColor = "#" + white; //matches the coffee-cup background color titleBarcolor = "#C5CEDE"; titleBarcolor = "#" + whitesmoke; Çscratchpad.params = pta^ Ç1/9/02; 7:08:11 PM by JES: call radio.prefs.compileIfDirty to set home page cache, build next/prev's and get page titles ÇThis prevents a crash on Help pages which link to related Prefs pages, when the Prefs have not been viewed since Radio was launched. Çbundle //original code Çlocal (adrcache) Çbundle //find the cache for this outline Çlocal (adr = @system.temp.radio.prefsCache) Çif not defined (adr^) Çnew (tabletype, adr) Çadr = @adr^.[string (adroutline)] Çif not defined (adr^) Çnew (tabletype, adr) Çadrcache = adr Ç Çlocal (flcompile, adrxstruct = @adrcache^.xstruct) Çbundle //compile the outline if it changed Çflcompile = true Çif defined (adrxstruct^) Çif timemodified (adroutline) <= timemodified (adrxstruct) Çflcompile = false Çif flcompile Çxml.compile (op.outlinetoxml (adroutline), adrxstruct) Ç Çlocal (adropml = xml.getAddress (adrxstruct, "opml")) Çlocal (adrbody = xml.getAddress (adropml, "body")) Ç Çlocal (adrhomepagehtml = @adrcache^.homePageHtml, adrnextprevlist = @adrcache^.nextPrevList, adrpagetitles = @adrcache^.pagetitles) Çif flcompile //cache the text for the home page, create next-prevs list and cache it, and the page-titles table Çadrnextprevlist^ = {} Çnew (tabletype, adrpagetitles) Çlocal (htmltext = "", indentlevel = 0) Çon add (s) Çhtmltext = htmltext + string.filledstring ("\t", indentlevel) + s + "\r\n" Çlocal (adrcat, catnum = 1) Çfor adrcat in adrbody Çif not (nameof (adrcat^) beginswith "/") Çlocal (catname = xml.getattributevalue (adrcat, "text"), adrtopic, topicnum = 1) Çadd ("<h4>" + catname + "</h4>") Çadd ("<ul>"); indentlevel++ Çfor adrtopic in adrcat Çif not (nameof (adrtopic^) beginswith "/") Çlocal (dottedid = catnum + "." + topicnum) Çadrnextprevlist^ = adrnextprevlist^ + {dottedid} Çlocal (url = pta^.URI + "?page=" + dottedid) Çlocal (pagetitle = xml.getattributevalue (adrtopic, "text")) Çadrpagetitles^.[pagetitle] = dottedid Çadd ("<li><a href=\"" + url + "\">" + pagetitle + "</a></li>") Çtopicnum++ Çadd ("</ul>"); indentlevel-- Çcatnum++ Çadrhomepagehtml^ = htmltext local (adrcache = radio.prefs.compileIfDirty (adroutline)); local (adrxstruct = @adrcache^.xstruct); local (adropml = xml.getAddress (adrxstruct, "opml")); local (adrbody = xml.getAddress (adropml, "body")); local (adrhomepagehtml = @adrcache^.homePageHtml, adrnextprevlist = @adrcache^.nextPrevList); local (navigationpath = ""); if system.environment.isRadio { //PBS 02/05/02: conditionalized for Frontier if defined (pta^.radioresponder.getargs.page) { navigationpath = pta^.radioresponder.getargs.page}} else { if defined (pta^.searchArgTable.page) { navigationpath = pta^.searchArgTable.page}}; local (adrframe, fltoplevel); bundle { //set adrframe, fltoplevel local (ctfields = string.countfields (navigationpath, ".")); if ctfields >= 2 { local (i, ix, nomad = adrbody); for i = 1 to ctfields { ix = number (string.nthfield (navigationpath, ".", i)); if defined (nomad^.["/atts"]) { //skip over /atts ix++}; nomad = @nomad^ [ix]}; adrframe = nomad; fltoplevel = false} else { adrframe = adrbody; fltoplevel = true}}; local (htmltext = "", indentlevel = 0); on add (s) { htmltext = htmltext + string.filledstring ("\t", indentlevel) + s + "\r\n"}; bundle { //display the frame if fltoplevel { //adrframe points to the first category add (adrhomepagehtml^); pta^.headTitle = pagename; Çbundle //discarded method -- displays the topics in an array ÇToo bad the topic names are too long for this to look reasonable. Çlocal (adrcat, catnames = {}, tableofcontents) Çnew (tabletype, @tableofcontents) Ç Çfor adrcat in adrframe //loop over the top-level Çif not (nameof (adrcat^) beginswith "/") Çlocal (catname = xml.getattributevalue (adrcat, "text")) Çcatnames = catnames + {catname} Ç Çlocal (adrtopic, topics) Çnew (tabletype, @topics) Çfor adrtopic in adrcat Çif not (nameof (adrtopic^) beginswith "/") Çtopics.[string.padwithzeros (sizeof (topics), 3)] = xml.getattributevalue (adrtopic, "text") Çtableofcontents.[catname] = topics Çscratchpad.tableofcontents = tableofcontents Ç Çadd ("<table border=\"0\" cellspacing=\"0\" cellpadding=\"4\">"); indentlevel++ Çbundle //add top row of the table, the category names Çlocal (catname, width) Çwidth = 33 Çadd ("<tr>"); indentlevel++ Çfor catname in catnames Çadd ("<td width=\"" + width + "%\"><b>" + catname + "</b></td>") Çadd ("</tr>"); indentlevel-- Çbundle //add rows of topics Çlocal (rownum = 1, catname) Çloop //do a row Çlocal (rowtext = "<tr>", flallblank = true) Çfor catname in catnames Çmsg (sizeof (tableofcontents.[catname]) + " " + rownum); clock.waitseconds (1) Çif sizeof (tableofcontents.[catname]) >= rownum Çs = tableofcontents.[catname] [rownum] Çflallblank = false Çelse Çs = " " Çrowtext = rowtext + "<td>" + s + "</td>" Çrowtext = rowtext + "</tr>" Çif flallblank Çbreak Çadd (rowtext) Çrownum++ Çadd ("</table>"); indentlevel--} else { local (category); bundle { //set category local (categoryname = xml.getattributevalue (parentof (adrframe^), "text")); categoryname = string.replaceAll (categoryname, "&", "&"); category = categoryname}; local (nextprev); bundle { //set nextprev local (ixmyself, i); for i = 1 to sizeof (adrnextprevlist^) { if adrnextprevlist^ [i] == navigationpath { ixmyself = i; break}}; local (next, prev); if ixmyself == sizeof (adrnextprevlist^) { next = nextLinkText} else { next = "<a href=\"?page=" + adrnextprevlist^ [ixmyself + 1] + "\">" + nextLinkText + "</a>"}; if ixmyself == 1 { prev = prevLinkText} else { prev = "<a href=\"?page=" + adrnextprevlist^ [ixmyself - 1] + "\">" + prevLinkText + "</a>"}; nextprev = prev + "/" + next}; on blankLine () { return ("<tr height=\"15\"><td colspan=\"2\"> </td></tr>")}; on titleBar (s) { return ("<tr bgcolor=\"" + titleBarColor + "\"><td colspan=\"2\"><b><font color=\"" + titlebartextcolor + "\">" + s + "</font></b></td></tr>")}; add ("<form method=\"POST\">"); indentlevel++; add ("<table border=\"0\" width=\"100%\" cellpadding=\"0\" cellspacing=\"0\"><tr><td><a href=\"?page=1\">" + pagename + "</a> > " + category + "</td><td align=\"right\">" + nextprev + "</td></tr></table>"); add ("<h3>" + string.replaceAll (adrframe^.["/atts"].text, "&", "&") + "</h3>"); pta^.headTitle = category + ": " + adrframe^.["/atts"].text; add ("<table border=\"0\" cellspacing=\"0\" cellpadding=\"4\" width=\"100%\">"); indentlevel++; bundle { //add the sub-elements local (adr); for adr in adrframe { if not (nameof (adr^) beginswith "/") { local (s = xml.entitydecode (adr^.["/atts"].text, true)); if s beginswith "<%" { add (html.processmacros (s, adrPageTable:pta))} else { add ("<tr><td colspan=\"2\">" + html.processmacros (s, adrPageTable:pta) + "</td></tr>")}}}}; if defined (pta^.flAddSubmitButton) { //JES 6/26/02: allow macros to suppress the Submit button flAddSubmitButton = pta^.flAddSubmitButton}; if flAddSubmitButton { //add the Submit button add (blankline () + "<tr><td colspan=\"2\"><input type=\"submit\" value=\"" + submitButtonText + "\"></td></tr>")}; add ("</table>"); indentlevel--; add ("</form>"); indentlevel--}}; return (htmltext)}; Çbundle //test code Çhtml.setpagetableaddress (@workspace.pt) Çradio.prefs.browser ("") \ No newline at end of file --- 1,3 ---- FrontierVcsFile:1:scpt:system.verbs.builtins.radio.prefs.browser ! on browser (adroutline, pagename="Preferences", flAddSubmitButton=true, nextLinkText="Next", prevLinkText="Previous", submitButtonText="Submit") { ÇChanges Ç1/7/06; 12:56:08 PM by TAC Çminor formatting tweaks Çlowercase form method, add action to form, remove tr tag height XHTML compliance Ç2002 Ç10/12/02; 1:44:56 AM by JES ÇThree new parameters to facilitate localization: nextLinkText, prevLinkText and submitButtonText. These parameters specify the text for the next and previous links, and the text for the submit button. Ç9/24/02; 12:51:38 AM by JES ÇDecode ampersand entities in category and topic names. Needed for localization. Ç6/26/02; 11:51:52 PM by JES ÇBefore adding the Submit button, check to see if pta^.flAddSubmitButton is defined. If defined and false, don't add the button. This allows macros in a prefs outline to suppress the Submit button, and add their own button(s) if desired. Ç2/5/02; 11:26:46 AM by PBS ÇConditionalized to work in Frontier. Ç1/9/02; 5:03:56 PM by JES ÇCall radio.prefs.compileIfDirty, instead of compiling the xml and caching home page text, next-prev links, and page titles here. Ç2001 Ç12/10/01; 10:21:06 PM by JES ÇInclude the full path in the link to sub-pages, since Opera doesn't know how to link to the same page, adding just the searchArgs. Fixes a bug where none of the Prefs or Help sub-pages could be reached in Opera. Ç11/24/01; 5:18:15 PM by JES ÇSet pta^.headTitle, which is used for the <%title%> in the header of the page (when rendered in the context of an #flUseHomeTitle true directive). ÇSee radio.webserver.setTemplate for the code that handles the #flUseHomeTitle directive. ÇNew optional parameter, flAddSubmitButton. If true, then the Submit button will be added at the bottom of the page. If false, there's no submit button. Default is true. This is needed in order to remove the Submit button from the bottom of the help pages. Ç11/23/01; 9:17:39 PM by DW ÇPut the address of the prefs outline into pta^.radioResponder.adrPrefsOutline. ÇIt's picked up in radio.prefs.seeAlso, to determine which element of the cache it should use. Ç11/23/01; 9:06:49 PM by DW ÇAdd a second parameter which is the name of the home page of the sub-site. Ç11/18/01; 5:48:45 PM by DW ÇNot content with my most recent one, now I'm swingin for the fences. ÇThis browser runs off a single outline. It's not XML. It's just an outline. ÇWhere it requires user input -- a checkbox or a number-entry box, it calls macros. ÇWe do a directory-like browser for prefs, breaking it down to sections. ÇThe key thing about this approach is that the writer gets to use a writing tool, not an XML editor, and not a bunch of scattered strings. This makes it possible for docs and settings to be mixed in a single presentation. This is how docs were supposed to work. local (pta = html.getPageTableAddress ()); if system.environment.isRadio { //PBS 02/05/02: conditionalized for Frontier pta^.radioResponder.adrPrefsOutline = adroutline} else { pta^.adrPrefsOutline = adroutline}; pta^.title = " "; local (titleBarColor = "#" + gainsboro, titleBarTextColor = "#" + black); titleBarColor = "#859EC9"; titleBarTextColor = "#" + white; //matches the coffee-cup background color titleBarcolor = "#C5CEDE"; titleBarcolor = "#" + whitesmoke; Çscratchpad.pt = pta^ // enable for testing Ç1/9/02; 7:08:11 PM by JES: call radio.prefs.compileIfDirty to set home page cache, build next/prev's and get page titles ÇThis prevents a crash on Help pages which link to related Prefs pages, when the Prefs have not been viewed since Radio was launched. Çbundle //original code Çlocal (adrcache) Çbundle //find the cache for this outline Çlocal (adr = @system.temp.radio.prefsCache) Çif not defined (adr^) Çnew (tabletype, adr) Çadr = @adr^.[string (adroutline)] Çif not defined (adr^) Çnew (tabletype, adr) Çadrcache = adr Ç Çlocal (flcompile, adrxstruct = @adrcache^.xstruct) Çbundle //compile the outline if it changed Çflcompile = true Çif defined (adrxstruct^) Çif timemodified (adroutline) <= timemodified (adrxstruct) Çflcompile = false Çif flcompile Çxml.compile (op.outlinetoxml (adroutline), adrxstruct) Ç Çlocal (adropml = xml.getAddress (adrxstruct, "opml")) Çlocal (adrbody = xml.getAddress (adropml, "body")) Ç Çlocal (adrhomepagehtml = @adrcache^.homePageHtml, adrnextprevlist = @adrcache^.nextPrevList, adrpagetitles = @adrcache^.pagetitles) Çif flcompile //cache the text for the home page, create next-prevs list and cache it, and the page-titles table Çadrnextprevlist^ = {} Çnew (tabletype, adrpagetitles) Çlocal (htmlText = "", indentlevel = 0) Çon add (s) ÇhtmlText = htmlText + string.filledstring ("\t", indentlevel) + s + "\r\n" Çlocal (adrcat, catnum = 1) Çfor adrcat in adrbody Çif not (nameof (adrcat^) beginswith "/") Çlocal (catname = xml.getattributevalue (adrcat, "text"), adrtopic, topicnum = 1) Çadd ("<h4>" + catname + "</h4>") Çadd ("<ul>"); indentlevel++ Çfor adrtopic in adrcat Çif not (nameof (adrtopic^) beginswith "/") Çlocal (dottedid = catnum + "." + topicnum) Çadrnextprevlist^ = adrnextprevlist^ + {dottedid} Çlocal (url = pta^.URI + "?page=" + dottedid) Çlocal (pagetitle = xml.getattributevalue (adrtopic, "text")) Çadrpagetitles^.[pagetitle] = dottedid Çadd ("<li><a href=\"" + url + "\">" + pagetitle + "</a></li>") Çtopicnum++ Çadd ("</ul>"); indentlevel-- Çcatnum++ Çadrhomepagehtml^ = htmlText local (adrcache = radio.prefs.compileIfDirty (adroutline)); local (adrxstruct = @adrcache^.xstruct); local (adropml = xml.getAddress (adrxstruct, "opml")); local (adrbody = xml.getAddress (adropml, "body")); local (adrhomepagehtml = @adrcache^.homePageHtml, adrnextprevlist = @adrcache^.nextPrevList); local (navigationpath = ""); if system.environment.isRadio { //PBS 02/05/02: conditionalized for Frontier if defined (pta^.radioresponder.getargs.page) { navigationpath = pta^.radioresponder.getargs.page}} else { if defined (pta^.searchArgTable.page) { navigationpath = pta^.searchArgTable.page}}; local (adrframe, fltoplevel); bundle { //set adrframe, fltoplevel local (ctfields = string.countfields (navigationpath, ".")); if ctfields >= 2 { local (i, ix, nomad = adrbody); for i = 1 to ctfields { ix = number (string.nthfield (navigationpath, ".", i)); if defined (nomad^.["/atts"]) { //skip over /atts ix++}; nomad = @nomad^ [ix]}; adrframe = nomad; fltoplevel = false} else { adrframe = adrbody; fltoplevel = true}}; local (htmlText = "", indentlevel = 0); on add (s) { htmlText = htmlText + string.filledstring ("\t", indentlevel) + s + "\r\n"}; bundle { //display the frame if fltoplevel { //adrframe points to the first category add (adrhomepagehtml^); pta^.headTitle = pagename; Çbundle //discarded method -- displays the topics in an array ÇToo bad the topic names are too long for this to look reasonable. Çlocal (adrcat, catnames = {}, tableofcontents) Çnew (tabletype, @tableofcontents) Ç Çfor adrcat in adrframe //loop over the top-level Çif not (nameof (adrcat^) beginswith "/") Çlocal (catname = xml.getattributevalue (adrcat, "text")) Çcatnames = catnames + {catname} Ç Çlocal (adrtopic, topics) Çnew (tabletype, @topics) Çfor adrtopic in adrcat Çif not (nameof (adrtopic^) beginswith "/") Çtopics.[string.padwithzeros (sizeof (topics), 3)] = xml.getattributevalue (adrtopic, "text") Çtableofcontents.[catname] = topics Çscratchpad.tableofcontents = tableofcontents Ç Çadd ("<table border=\"0\" cellspacing=\"0\" cellpadding=\"4\">"); indentlevel++ Çbundle //add top row of the table, the category names Çlocal (catname, width) Çwidth = 33 Çadd ("<tr>"); indentlevel++ Çfor catname in catnames Çadd ("<td width=\"" + width + "%\"><b>" + catname + "</b></td>") Çadd ("</tr>"); indentlevel-- Çbundle //add rows of topics Çlocal (rownum = 1, catname) Çloop //do a row Çlocal (rowtext = "<tr>", flallblank = true) Çfor catname in catnames Çmsg (sizeof (tableofcontents.[catname]) + " " + rownum); clock.waitseconds (1) Çif sizeof (tableofcontents.[catname]) >= rownum Çs = tableofcontents.[catname] [rownum] Çflallblank = false Çelse Çs = " " Çrowtext = rowtext + "<td>" + s + "</td>" Çrowtext = rowtext + "</tr>" Çif flallblank Çbreak Çadd (rowtext) Çrownum++ Çadd ("</table>"); indentlevel--} else { local (category); bundle { //set category local (categoryname = xml.getattributevalue (parentof (adrframe^), "text")); categoryname = string.replaceAll (categoryname, "&", "&"); category = categoryname}; local (nextprev); bundle { //set nextprev local (ixmyself, i); for i = 1 to sizeof (adrnextprevlist^) { if adrnextprevlist^ [i] == navigationpath { ixmyself = i; break}}; local (next, prev); if ixmyself == sizeof (adrnextprevlist^) { next = nextLinkText} else { next = "<a href=\"?page=" + adrnextprevlist^ [ixmyself + 1] + "\">" + nextLinkText + "</a>"}; if ixmyself == 1 { prev = prevLinkText} else { prev = "<a href=\"?page=" + adrnextprevlist^ [ixmyself - 1] + "\">" + prevLinkText + "</a>"}; nextprev = prev + "/" + next}; on blankLine () { return ("<tr><td colspan=\"2\"> </td></tr>")}; on titleBar (s) { return ("<tr bgcolor=\"" + titleBarColor + "\"><td colspan=\"2\"><b><font color=\"" + titlebartextcolor + "\">" + s + "</font></b></td></tr>")}; add ("<form method=\"post\" action=\"\">"); indentlevel++; add ("<table border=\"0\" width=\"100%\" cellpadding=\"0\" cellspacing=\"0\"><tr><td><a href=\"?page=1\">" + pagename + "</a> > " + category + "</td><td align=\"right\">" + nextprev + "</td></tr></table>"); add ("<h3>" + string.replaceAll (adrframe^.["/atts"].text, "&", "&") + "</h3>"); pta^.headTitle = category + ": " + adrframe^.["/atts"].text; add ("<table border=\"0\" cellspacing=\"0\" cellpadding=\"4\" width=\"100%\">"); indentlevel++; bundle { //add the sub-elements local (adr); for adr in adrframe { if not (nameof (adr^) beginswith "/") { local (s = xml.entitydecode (adr^.["/atts"].text, true)); if s beginswith "<%" { add (html.processmacros (s, adrPageTable:pta))} else { add ("<tr><td colspan=\"2\">" + html.processmacros (s, adrPageTable:pta) + "</td></tr>")}}}}; if defined (pta^.flAddSubmitButton) { //JES 6/26/02: allow macros to suppress the Submit button flAddSubmitButton = pta^.flAddSubmitButton}; if flAddSubmitButton { //add the Submit button add (blankline () + "<tr><td colspan=\"2\"><input type=\"submit\" value=\"" + submitButtonText + "\" /></td></tr>")}; add ("</table>"); indentlevel--; add ("</form>"); indentlevel--}}; return (htmlText)}; Çbundle // testing Çhtml.setpagetableaddress (@workspace.pt) Çradio.prefs.browser ("") \ No newline at end of file |
|
From: creedon <icr...@us...> - 2006-01-07 22:33:44
|
Update of /cvsroot/frontierkernel/odbs/frontierRoot/system/verbs/builtins/scheduler In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30816 Modified Files: monitor Log Message: minor formatting tweaks moved currenttask to temp.scheduler, it is disconcerting to be looking at scheduler table and having currenttask being created and deleted Index: monitor =================================================================== RCS file: /cvsroot/frontierkernel/odbs/frontierRoot/system/verbs/builtins/scheduler/monitor,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** monitor 26 Mar 2005 19:43:27 -0000 1.1.1.1 --- monitor 7 Jan 2006 22:33:36 -0000 1.2 *************** *** 1,3 **** FrontierVcsFile:1:scpt:system.verbs.builtins.scheduler.monitor ! ÇCalled from the agent, once a minute. ÇWe check the task list to see if any are ready to run. ÇIf so, we run it and then check the next task. ÇAbout scheduler.currentTask: ÇBefore your script runs this global is set. ÇYou can use this table to store information between runs, Çscheduler.currentTask^.xxx = 12 ÇChange Notes: ÇSun, 07 Mar 1999 11:25:31 GMT by AR ÇConvert pre-6.0 tasks which are string objects to script objects. Ç12/18/98; 12:05:59 PM by DW ÇMajor rewrite, added logging, scripts can be addresses Ç12/14/98; 11:11:46 PM by DW ÇLogging goes thru log.add ÇMon, Aug 3, 1998 at 5:12:36 PM by PBS ÇRestore oldTarget from within a try (in case it's disappeared). ÇFri, Jul 24, 1998 at 1:06:04 PM by PBS ÇRemoved call to scheduler.init. ÇIt's called from system.startup.startupScript. ÇDon't call target.clear -- instead restore the old target. Ç9/9/99; 6:35:08 PM by DW Çadded support for user.scheduler.threads local (adrtasks = @user.scheduler.tasks, cttasks = sizeOf (adrtasks^), now = clock.now ()); on reschedule (adrtask) { //reschedule the task for another run local (minutesbetweenruns = adrtask^.minutesbetweenruns); if minutesbetweenruns > 0 { Çdon't try to reschedule one-time tasks while now >= adrtask^.tasktime { local (day, month, year, hour, minute, second); date.get (adrtask^.tasktime, @day, @month, @year, @hour, @minute, @second); adrtask^.tasktime = date.set (day, month, year, hour, minute + minutesBetweenRuns, 0)}} else { if minutesbetweenruns == 0 { adrtask^.completed = true}}}; if user.scheduler.prefs.startingup { //confirm that user wants to run awaiting longterm tasks user.scheduler.prefs.startingup = false; local (i); for i = 1 to cttasks { local (adrtask = @adrtasks^ [i]); with adrtask^ { if now >= taskTime { Çit's ready to run local (flreschedule = true); if minutesBetweenRuns > 60 { if user.scheduler.prefs.reschedule { if user.scheduler.prefs.confirmStartupTasks { if dialog.confirm ("Scheduler startup: \"" + nameOf (adrtask^) + "\" is ready to run.") { flreschedule = false}} else { flreschedule = false}}}; //PBS 2/18/99: automatically run the pending tasks if confirmStartupTasks is false (this change is for Frontier servers) if flreschedule { reschedule (adrtask)}}}}}; local (logtable); new (tabletype, @logtable); //globals for all the tasks to share, used in logging local (i, ctran = 0, cterrors = 0, adrtask); for i = 1 to cttasks { //run tasks that are ready adrtask = @adrtasks^ [i]; if now >= adrtask^.taskTime { //it's ready to run adrtask^.ctruns++; scheduler.currentTask = adrtask; //global, available to task try { on callWithLogging (adrscript) { new (tabletype, @logtable.taskInfo); try { callScript (string (adrscript), {}, @logtable)} else { logtable.taskinfo.scriptError = tryError}; table.rename (@logtable.taskInfo, string (adrscript))}; case typeof (adrtask^.script) { scripttype { callWithLogging (@adrtask^.script)}; addresstype { local (nomad = adrtask^.script); while typeof (nomad^) != scripttype { nomad = nomad^}; callWithLogging (nomad)}} else { //convert a pre-6.0 scheduled task from string type to script type and run it local (adrscript = @adrtask^.script); script.newScriptObject (string (adrscript^), adrscript); script.compile (adrscript); //make sure it is valid UserTalk callWithLogging (adrscript)}; adrtask^.error = ""; reschedule (adrtask)} else { adrtask^.error = tryError; cterrors++}; ctran++}}; if defined (scheduler.currentTask) { delete (@scheduler.currentTask)}; bundle { //delete one-time tasks that have been run local (i); for i = cttasks downto 1 { //delete one-time tasks that have been run local (adrtask = @adrtasks^ [i]); if defined (adrtask^.completed) { //a one-time task that's done delete (adrtask)}}}; bundle { //do logging if ctran > 0 { if user.scheduler.prefs.keepLog { local (item = { "Ran " + ctran + " tasks"}); if cterrors > 0 { local (i); item [1] = item [1] + ". " + cterrors + " errors."; for i = cttasks downto 1 { local (errorstring = adrtasks^ [i].error); if errorstring != "" { local (s = nameOf (adrtasks^ [i]) + ": " + errorstring); item = item + {s}}}}; log.add (item, "schedulerMonitor")}; if user.scheduler.prefs.logInGuestDatabase { log.addToGuestDatabase ("schedulerMonitor", flHourlyRoll:true)^ = logtable}}}; bundle { //start threads that need starting, keep threads running scheduler.monitorThreads ()} \ No newline at end of file --- 1,3 ---- FrontierVcsFile:1:scpt:system.verbs.builtins.scheduler.monitor ! ÇChanges Ç1/7/06; 1:59:50 PM by TAC Çminor formatting tweaks Çmoved currenttask to temp.scheduler, it is disconcerting to be looking at scheduler table and having currenttask being created and deleted Ç9/9/99; 6:35:08 PM by DW Çadded support for user.scheduler.threads ÇSun, 07 Mar 1999 11:25:31 GMT by AR ÇConvert pre-6.0 tasks which are string objects to script objects. Ç1998 Ç12/18/98; 12:05:59 PM by DW ÇMajor rewrite, added logging, scripts can be addresses Ç12/14/98; 11:11:46 PM by DW ÇLogging goes thru log.add ÇMon, Aug 3, 1998 at 5:12:36 PM by PBS ÇRestore oldTarget from within a try (in case it's disappeared). ÇFri, Jul 24, 1998 at 1:06:04 PM by PBS ÇRemoved call to scheduler.init. ÇIt's called from system.startup.startupScript. ÇDon't call target.clear -- instead restore the old target. ÇCalled from the agent, once a minute. ÇWe check the task list to see if any are ready to run. ÇIf so, we run it and then check the next task. ÇAbout scheduler.currentTask: ÇBefore your script runs this global is set. ÇYou can use this table to store information between runs, Çscheduler.currentTask^.xxx = 12 local (adrTasks = @user.scheduler.tasks, ctTasks = sizeOf (adrTasks^), now = clock.now ()); on reschedule (adrTask) { //reschedule the task for another run local (minutesbetweenruns = adrTask^.minutesbetweenruns); if minutesbetweenruns > 0 { Çdon't try to reschedule one-time tasks while now >= adrTask^.tasktime { local (day, month, year, hour, minute, second); date.get (adrTask^.tasktime, @day, @month, @year, @hour, @minute, @second); adrTask^.tasktime = date.set (day, month, year, hour, minute + minutesBetweenRuns, 0)}} else { if minutesbetweenruns == 0 { adrTask^.completed = true}}}; if user.scheduler.prefs.startingup { //confirm that user wants to run awaiting longterm tasks user.scheduler.prefs.startingup = false; local (i); for i = 1 to ctTasks { local (adrTask = @adrTasks^ [i]); with adrTask^ { if now >= taskTime { Çit's ready to run local (flreschedule = true); if minutesBetweenRuns > 60 { if user.scheduler.prefs.reschedule { if user.scheduler.prefs.confirmStartupTasks { if dialog.confirm ("Scheduler startup: \"" + nameOf (adrTask^) + "\" is ready to run.") { flreschedule = false}} else { flreschedule = false}}}; //PBS 2/18/99: automatically run the pending tasks if confirmStartupTasks is false (this change is for Frontier servers) if flreschedule { reschedule (adrTask)}}}}}; local (logTable); new (tabletype, @logTable); //globals for all the tasks to share, used in logging local (i, ctRan = 0, ctErrors = 0, adrTask); if not (defined (system.temp.scheduler)) { new (tableType, @system.temp.scheduler)}; for i = 1 to ctTasks { //run tasks that are ready adrTask = @adrTasks^ [i]; if now >= adrTask^.taskTime { //it's ready to run system.temp.scheduler.currentTask = adrTask; //global, available to task adrTask^.ctruns++; try { on callWithLogging (adrScript) { new (tabletype, @logTable.taskInfo); try { callScript (string (adrScript), {}, @logTable)} else { logTable.taskinfo.scriptError = tryError}; table.rename (@logTable.taskInfo, string (adrScript))}; case typeof (adrTask^.script) { scripttype { callWithLogging (@adrTask^.script)}; addresstype { local (nomad = adrTask^.script); while typeof (nomad^) != scripttype { nomad = nomad^}; callWithLogging (nomad)}} else { //convert a pre-6.0 scheduled task from string type to script type and run it local (adrScript = @adrTask^.script); script.newScriptObject (string (adrScript^), adrScript); script.compile (adrScript); //make sure it is valid UserTalk callWithLogging (adrScript)}; adrTask^.error = ""; reschedule (adrTask)} else { adrTask^.error = tryError; ctErrors++}; ctRan++}; }; if defined (system.temp.scheduler.currentTask) { delete (@system.temp.scheduler.currentTask)}; bundle { //delete one-time tasks that have been run local (i); for i = ctTasks downto 1 { //delete one-time tasks that have been run local (adrTask = @adrTasks^ [i]); if defined (adrTask^.completed) { //a one-time task that's done delete (adrTask)}}}; bundle { //do logging if ctRan > 0 { if user.scheduler.prefs.keepLog { local (item = { "Ran " + ctRan + " tasks"}); if ctErrors > 0 { local (i); item [1] = item [1] + ". " + ctErrors + " errors."; for i = ctTasks downto 1 { local (errorstring = adrTasks^ [i].error); if errorstring != "" { local (s = nameOf (adrTasks^ [i]) + ": " + errorstring); item = item + {s}}}}; log.add (item, "schedulerMonitor")}; if user.scheduler.prefs.logInGuestDatabase { log.addToGuestDatabase ("schedulerMonitor", flHourlyRoll:true)^ = logTable}}}; bundle { //start threads that need starting, keep threads running scheduler.monitorThreads ()} \ No newline at end of file |
|
From: creedon <icr...@us...> - 2006-01-07 22:32:58
|
Update of /cvsroot/frontierkernel/odbs/frontierRoot/system/verbs/builtins/radio/prefs In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30687 Modified Files: checkboxPref Log Message: minor formatting tweaks lowercase method check, value must be quoted, close input tag, XHTML compliance Index: checkboxPref =================================================================== RCS file: /cvsroot/frontierkernel/odbs/frontierRoot/system/verbs/builtins/radio/prefs/checkboxPref,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** checkboxPref 26 Mar 2005 19:43:20 -0000 1.1.1.1 --- checkboxPref 7 Jan 2006 22:32:47 -0000 1.2 *************** *** 1,3 **** FrontierVcsFile:1:scpt:system.verbs.builtins.radio.prefs.checkboxPref ! on checkboxPref (prompt, adrboolean) { ÇChanges: Ç8/3/02; 8:43:10 PM by JES ÇQuote characters in addresses were mangling the HTML, so now addresses are url-encoded when generating the form element. When processing a POST, we look for the url-encoded field in the postArgs table. Ç2/5/02; 11:31:20 AM by PBS ÇConditionalized to work in Frontier. local (pta = html.getpagetableaddress ()); if pta^.method == "POST" { local (adr = address (string.popFileFromAddress (adrboolean))); if system.environment.isRadio { //PBS 02/05/02: conditionalized to work in Frontier if defined (pta^.radioresponder.postargs.[string.urlEncode (string.popFileFromAddress (adrboolean))]) { adr^ = true} else { adr^ = false}} else { if defined (pta^.postargs.[string.urlEncode (string.popFileFromAddress (adrboolean))]) { adr^ = true} else { adr^ = false}}}; local (checkbox = "<input type=\"checkbox\" name=\"" + string.urlEncode (string.popFileFromAddress (adrboolean)) + "\" value=xxx"); if adrboolean^ { checkbox = checkbox + " checked>"} else { checkbox = checkbox + ">"}; return ("<tr><td colspan=\"2\">" + checkbox + " " + prompt + "</td></tr>")} \ No newline at end of file --- 1,3 ---- FrontierVcsFile:1:scpt:system.verbs.builtins.radio.prefs.checkboxPref ! on checkboxPref (prompt, adrBoolean) { ÇChanges Ç1/7/06; 1:04:13 PM by TAC Çminor formatting tweaks Çlowercase method check, value must be quoted, close input tag, XHTML compliance Ç8/3/02; 8:43:10 PM by JES ÇQuote characters in addresses were mangling the HTML, so now addresses are url-encoded when generating the form element. When processing a POST, we look for the url-encoded field in the postArgs table. Ç2/5/02; 11:31:20 AM by PBS ÇConditionalized to work in Frontier. local (pta = html.getpagetableaddress ()); if string.lower (pta^.method) == "post" { local (adr = address (string.popFileFromAddress (adrBoolean))); if system.environment.isRadio { //PBS 02/05/02: conditionalized to work in Frontier if defined (pta^.radioresponder.postargs.[string.urlEncode (string.popFileFromAddress (adrBoolean))]) { adr^ = true} else { adr^ = false}} else { if defined (pta^.postargs.[string.urlEncode (string.popFileFromAddress (adrBoolean))]) { adr^ = true} else { adr^ = false}}}; local (checkbox = "<input type=\"checkbox\" name=\"" + string.urlEncode (string.popFileFromAddress (adrBoolean)) + "\" value=\"xxx\""); if adrBoolean^ { checkbox = checkbox + " checked"}; checkbox = checkbox + " />"; return ("<tr><td colspan=\"2\">" + checkbox + " " + prompt + "</td></tr>")} \ No newline at end of file |
|
From: creedon <icr...@us...> - 2006-01-07 21:38:33
|
Update of /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/adminSite/prefs In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21835 Modified Files: subscriptions Log Message: for xmlImg use config.mainresponder.prefs.baseUrl lowercase method check, XHTML compliance minor script formatting tweaks conditionalize unsubscribing Manila websites img and input tags XHTML compliant Index: subscriptions =================================================================== RCS file: /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/adminSite/prefs/subscriptions,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** subscriptions 8 Sep 2005 06:00:56 -0000 1.2 --- subscriptions 7 Jan 2006 21:38:21 -0000 1.3 *************** *** 1,3 **** FrontierVcsFile:1:scpt:mainResponder.adminSite.prefs.subscriptions ! on subscriptions () { ÇChanges Ç9/7/05; 10:53:18 PM by TAC Çchanged userlandIcons to frontierIcons Çchanged /mainResponderResources/ to /resources/ Ç3/13/03; 3:11:00 AM by JES ÇWhen unsubscribing from a feed, make sure that all installed Manila sites are also unsubscribed. Ç3/10/03; 8:44:32 PM by JES ÇSet the border attribute for the XML icon IMG tag to "0". Ç3/4/03; 3:34:29 PM by JES ÇCreated. Render the list of subscriptions global to this server, along with a field for adding a new subscription. local (htext); on add (s) { htext = htext + (s + "\r");}; on getDateString (when, flIncludeSeconds=true) { ÇChanges Ç1/15/01; 11:00:50 AM by DW ÇReturn the time string if it's today, return the date string if it's earlier. local (day, month, year, hour, minute, second, nowday, nowmonth, nowyear); date.get (when, @day, @month, @year, @hour, @minute, @second); date.get (clock.now (), @nowday, @nowmonth, @nowyear, @hour, @minute, @second); if (day == nowday) and (month == nowmonth) and (year == nowyear) { return (date.timestring (when, flIncludeSeconds))}; return (date.shortstring (when))}; local (xmlimg = "<img src=\"/resources/frontierIcons/xml\" height=\"14\" width=\"36\" border=\"0\">"); local (pta = html.getPageTableAddress ()); local (adrdata = xml.aggregator.init ()); pta^.errorString = ""; pta^.adrNewService = nil; pta^.flAddSubmitButton = false; if pta^.method == "POST" { //add or remove subscription(s) local (adrargs = @pta^.postArgs); if defined (adrargs^.subscribe) { //user click the Subscribe button local (rssurl = adrargs^.url); if not (rssurl beginswith "http://") { rssurl = "http://" + rssurl}; if rssurl != "http://" { //add this subscription xml.aggregator.subscribeService (rssurl, @pta^.errorString, @pta^.adrNewService)}}; if defined (adrargs^.unsubscribe) { //user clicked the Unsubscribe button local (i, adr, adrservice); for i = sizeof (adrargs^) downto 1 { adr = @adrargs^[i]; local (urlservice = string.urlDecode (nameof (adr^)) ); adrservice = @adrdata^.services.[urlservice]; if defined (adrservice^) { xml.aggregator.unsubscribeService (nameof (adrservice^))}; local (nomad); for nomad in @config.manila.sites { local (adrsite = nomad^); if defined (adrsite^) { local (adrnewssite = manilaSuite.getNewsSiteAddress (adrsite)); if defined (adrnewssite^) { if defined (adrnewssite^.aggregator) { if defined (adrnewssite^.aggregator.services.[urlservice]) { delete (@adrnewssite^.aggregator.services.[urlservice])}}}}}}}}; bundle { //field to subscribe to a new feed, Subscribe button local (initialurl = "http://"); if defined (pta^.searchArgs) { //try to get the initial URL from a url argument in the request if pta^.searchArgs != "" { local (t); new (tableType, @t); webserver.parseArgs (pta^.searchArgs, @t); if defined (t.url) { initialurl = t.url}}}; add ("<td align=\"left\">" + "URL" + ":</td>"); add ("<td valign=\"top\"><input type=\"text\" name=\"url\" size=\"55\" maxlength=\"255\" value=\"" + initialurl + "\"> <input type=\"submit\" name=\"subscribe\" value=\"Add\"></td>"); if pta^.errorString != "" { //show the error to the user add ("</tr><tr><td colspan=\"2\"><br><i>Can't subscribe to the channel. The most likely cure is to check the URL in a web browser and see if you can get it to read the feed. The following message probably won't help you figure out what went wrong, but we include it here because it might: \"" + errorstring + "\"</i></td>")}; if pta^.adrNewService != nil { //show confirmation to the user local (channeltitle = xml.entityDecode (pta^.adrNewService^.compilation.channeltitle, true, true) ); add ("</tr><tr><td colspan=\"2\"><br><i>Congratulations, you have successfully added the \"" + channeltitle + "\" feed to the news feeds available on this server. It now appears in the list of available feeds below. For subscribed sites, new items will appear on the Aggregator page every hour.</i></td>")}; add ("</td>")}; if sizeOf (adrdata^.services) > 0 { //list of feeds with check boxes and Delete button bundle { //add explanatory text add ("</tr><tr><td colspan=\"2\">"); add ("<br><br>The following table lists the feeds available to sites on this server. Included is the name of the source, linked to its Web page, the time or day it last changed, the number of times it has changed since it was added, and a link to the XML file for the channel. To delete a feed, check it and then click on the Unsubscribe button at the bottom of the page.<br><br>"); add ("</td>")}; add ("</tr><tr><td colspan=\"2\"><blockquote>"); local (sortedtable, adr, adrsort); bundle { //fill sorted table new (tabletype, @sortedtable); for adr in @adrdata^.services { if defined (adr^.compilation) { if sizeof (adr^.compilation) > 0 { try { //missing channeltitle doesn't stop us -- 3/20/02 DW local (channeltitle = adr^.compilation.channeltitle); if sizeof (channeltitle) > 0 { adrsort = @sortedtable.[adr^.compilation.channeltitle]; if defined (adrsort^) { //collision local (ct = 1); loop { adrsort = @sortedtable.[adr^.compilation.channeltitle + "." + ct++]; if not defined (adrsort^) { break}}}; adrsort^ = nameof (adr^)}}}}}}; bundle { //start the HTML table add ("<table cellspacing=\"0\" cellpadding=\"0\"><tr bgcolor=\"DCDCDC\"><td>"); add ("<table cellspacing=\"1\" cellpadding=\"5\" border=\"0\">")}; for adrsort in @sortedtable { //add the table rows for each channel adr = @adrdata^.services.[adrsort^]; if defined (adr^.compilation) { if sizeof (adr^.compilation) > 0 { local (title = adr^.compilation.channeltitle); local (channeldescription = "", channellink = ""); if defined (adr^.compilation.channeldescription) { channeldescription = xml.entityDecode (adr^.compilation.channeldescription, true, true); channeldescription = string.replaceAll (channeldescription, "\"", """); channeldescription = string.replaceAll (channeldescription, "\'", "'"); channeldescription = string.replaceAll (channeldescription, "<", "<"); channeldescription = string.replaceAll (channeldescription, ">", ">")}; if defined (adr^.compilation.channellink) { channellink = adr^.compilation.channellink}; add ("<tr bgcolor=\"white\">"); bundle { //add checkbox local (name = nameof (adr^)); local (checkboxval = "xxx "); if false { checkboxval = checkboxval + "checked"}; add ("<td valign=\"top\"><input type=\"checkbox\" name=\"" + string.urlEncode (nameOf (adr^)) + "\" value=" + checkboxval + "></td>")}; if sizeof (title) > 50 { title = string.mid (title, 1, 50) + "..."}; add ("<td valign=\"top\" title=\"" + channeldescription + "\" nowrap><a href=\"" + channellink + "\">" + xml.entityDecode (title, true, true) + "</a></td>"); add ("<td align=\"right\" valign=\"top\"><nobr><font size=\"-1\">" + getDateString (adr^.timeLastChange, false) + "</font></nobr></td>"); add ("<td align=\"right\" valign=\"top\"><font size=\"-1\">" + adr^.ctChanges + "</font></td>"); add ("<td valign=\"top\"><a href=\"" + nameof (adr^) + "\" title=\"Click to view the current XML source text for the channel.\">" + xmlimg + "</a></td>"); add ("</tr>")}}}; bundle { //end the HTML table add ("</table></td></tr></table>")}; add ("</blockquote></td>"); bundle { //Unsubscribe button add ("</tr><tr><td colspan=\"2\">"); add ("<br><input type=\"submit\" name=\"unsubscribe\" value=\"Unsubscribe\">"); add ("</td>")}}; return (htext)} \ No newline at end of file --- 1,3 ---- FrontierVcsFile:1:scpt:mainResponder.adminSite.prefs.subscriptions ! on subscriptions () { ÇChanges Ç1/7/06; 11:50:55 AM by TAC Çfor xmlImg use config.mainresponder.prefs.baseUrl Çlowercase method check, XHTML compliance Çminor script formatting tweaks Çconditionalize unsubscribing Manila websites Çimg and input tags XHTML compliant Ç9/7/05; 10:53:18 PM by TAC Çchanged userlandIcons to frontierIcons Çchanged /mainResponderResources/ to /resources/ Ç2003 Ç3/13/03; 3:11:00 AM by JES ÇWhen unsubscribing from a feed, make sure that all installed Manila sites are also unsubscribed. Ç3/10/03; 8:44:32 PM by JES ÇSet the border attribute for the XML icon IMG tag to "0". Ç3/4/03; 3:34:29 PM by JES ÇCreated. Render the list of subscriptions global to this server, along with a field for adding a new subscription. local (htmlText); on add (s) { htmlText = htmlText + (s + "\r");}; on getDateString (when, flIncludeSeconds=true) { ÇChanges Ç1/15/01; 11:00:50 AM by DW ÇReturn the time string if it's today, return the date string if it's earlier. local (day, month, year, hour, minute, second, nowday, nowmonth, nowyear); date.get (when, @day, @month, @year, @hour, @minute, @second); date.get (clock.now (), @nowday, @nowmonth, @nowyear, @hour, @minute, @second); if (day == nowday) and (month == nowmonth) and (year == nowyear) { return (date.timestring (when, flIncludeSeconds))}; return (date.shortstring (when))}; local (xmlImg = "<img src=\"" + config.mainresponder.prefs.baseUrl + "resources/frontierIcons/xml\" height=\"14\" width=\"36\" border=\"0\" alt=\"xml image\" />"); local (pta = html.getPageTableAddress ()); local (adrdata = xml.aggregator.init ()); pta^.errorString = ""; pta^.adrNewService = nil; pta^.flAddSubmitButton = false; if string.lower (pta^.method) == "post" { //add or remove subscription(s) local (adrArgs = @pta^.postArgs); if defined (adrArgs^.subscribe) { //user click the Subscribe button local (rssurl = adrArgs^.url); if not (rssurl beginswith "http://") { rssurl = "http://" + rssurl}; if rssurl != "http://" { //add this subscription xml.aggregator.subscribeService (rssurl, @pta^.errorString, @pta^.adrNewService)}}; if defined (adrArgs^.unsubscribe) { //user clicked the Unsubscribe button local (i, adr, adrservice); for i = sizeof (adrArgs^) downto 1 { adr = @adrArgs^[i]; local (urlservice = string.urlDecode (nameof (adr^)) ); adrservice = @adrdata^.services.[urlservice]; if defined (adrservice^) { xml.aggregator.unsubscribeService (nameof (adrservice^))}; if defined (config.manila.sites) { local (nomad); for nomad in @config.manila.sites { local (adrsite = nomad^); if defined (adrsite^) { local (adrnewssite = manilaSuite.getNewsSiteAddress (adrsite)); if defined (adrnewssite^) { if defined (adrnewssite^.aggregator) { if defined (adrnewssite^.aggregator.services.[urlservice]) { delete (@adrnewssite^.aggregator.services.[urlservice])}}}}}}}}}; bundle { //field to subscribe to a new feed, Subscribe button local (initialurl = "http://"); if defined (pta^.searchArgs) { //try to get the initial URL from a url argument in the request if pta^.searchArgs != "" { local (t); new (tableType, @t); webserver.parseArgs (pta^.searchArgs, @t); if defined (t.url) { initialurl = t.url}}}; add ("<td align=\"left\">" + "URL" + ":</td>"); add ("<td valign=\"top\"><input type=\"text\" name=\"url\" size=\"55\" maxlength=\"255\" value=\"" + initialurl + "\" /> <input type=\"submit\" name=\"subscribe\" value=\"Add\" /></td>"); if pta^.errorString != "" { //show the error to the user add ("</tr><tr><td colspan=\"2\"><br><i>Can't subscribe to the channel. The most likely cure is to check the URL in a web browser and see if you can get it to read the feed. The following message probably won't help you figure out what went wrong, but we include it here because it might: \"" + errorstring + "\"</i></td>")}; if pta^.adrNewService != nil { //show confirmation to the user local (channeltitle = xml.entityDecode (pta^.adrNewService^.compilation.channeltitle, true, true) ); add ("</tr><tr><td colspan=\"2\"><br><i>Congratulations, you have successfully added the \"" + channeltitle + "\" feed to the news feeds available on this server. It now appears in the list of available feeds below. For subscribed sites, new items will appear on the Aggregator page every hour.</i></td>")}; add ("</td>")}; if sizeOf (adrdata^.services) > 0 { //list of feeds with check boxes and Delete button bundle { //add explanatory text add ("</tr><tr><td colspan=\"2\">"); add ("<br><br>The following table lists the feeds available to sites on this server. Included is the name of the source, linked to its Web page, the time or day it last changed, the number of times it has changed since it was added, and a link to the XML file for the channel. To delete a feed, check it and then click on the Unsubscribe button at the bottom of the page.<br><br>"); add ("</td>")}; add ("</tr><tr><td colspan=\"2\"><blockquote>"); local (sortedTable, adr, adrSort); bundle { //fill sorted table new (tabletype, @sortedTable); for adr in @adrdata^.services { if defined (adr^.compilation) { if sizeof (adr^.compilation) > 0 { try { //missing channeltitle doesn't stop us -- 3/20/02 DW local (channeltitle = adr^.compilation.channeltitle); if sizeof (channeltitle) > 0 { adrSort = @sortedTable.[adr^.compilation.channeltitle]; if defined (adrSort^) { //collision local (ct = 1); loop { adrSort = @sortedTable.[adr^.compilation.channeltitle + "." + ct++]; if not defined (adrSort^) { break}}}; adrSort^ = nameof (adr^)}}}}}}; bundle { //start the HTML table add ("<table cellspacing=\"0\" cellpadding=\"0\"><tr bgcolor=\"DCDCDC\"><td>"); add ("<table cellspacing=\"1\" cellpadding=\"5\" border=\"0\">")}; for adrSort in @sortedTable { //add the table rows for each channel adr = @adrdata^.services.[adrSort^]; if defined (adr^.compilation) { if sizeof (adr^.compilation) > 0 { local (title = adr^.compilation.channeltitle); local (channeldescription = "", channellink = ""); if defined (adr^.compilation.channeldescription) { channeldescription = xml.entityDecode (adr^.compilation.channeldescription, true, true); channeldescription = string.replaceAll (channeldescription, "\"", """); channeldescription = string.replaceAll (channeldescription, "\'", "'"); channeldescription = string.replaceAll (channeldescription, "<", "<"); channeldescription = string.replaceAll (channeldescription, ">", ">")}; if defined (adr^.compilation.channellink) { channellink = adr^.compilation.channellink}; add ("<tr bgcolor=\"white\">"); bundle { //add checkbox local (name = nameof (adr^)); local (checkboxval = "xxx "); if false { checkboxval = checkboxval + "checked"}; add ("<td valign=\"top\"><input type=\"checkbox\" name=\"" + string.urlEncode (nameOf (adr^)) + "\" value=" + checkboxval + " /></td>")}; if sizeof (title) > 50 { title = string.mid (title, 1, 50) + "..."}; add ("<td valign=\"top\" title=\"" + channeldescription + "\" nowrap><a href=\"" + channellink + "\">" + xml.entityDecode (title, true, true) + "</a></td>"); add ("<td align=\"right\" valign=\"top\"><nobr><font size=\"-1\">" + getDateString (adr^.timeLastChange, false) + "</font></nobr></td>"); add ("<td align=\"right\" valign=\"top\"><font size=\"-1\">" + adr^.ctChanges + "</font></td>"); add ("<td valign=\"top\"><a href=\"" + nameof (adr^) + "\" title=\"Click to view the current XML source text for the channel.\">" + xmlImg + "</a></td>"); add ("</tr>")}}}; bundle { //end the HTML table add ("</table></td></tr></table>")}; add ("</blockquote></td>"); bundle { //Unsubscribe button add ("</tr><tr><td colspan=\"2\">"); add ("<br><input type=\"submit\" name=\"unsubscribe\" value=\"Unsubscribe\" />"); add ("</td>")}}; return (htmlText)} \ No newline at end of file |
|
From: creedon <icr...@us...> - 2006-01-07 21:37:33
|
Update of /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/adminSite/data/localization/languages/english/outlines In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21698 Modified Files: prefs Log Message: towards XHTML compliance Index: prefs =================================================================== RCS file: /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/adminSite/data/localization/languages/english/outlines/prefs,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** prefs 10 Jul 2005 05:58:04 -0000 1.3 --- prefs 7 Jan 2006 21:37:23 -0000 1.4 *************** *** 1,3 **** FrontierVcsFile:1:optx:mainResponder.adminSite.data.localization.languages.english.outlines.prefs ! Server Settings Basic Settings You can edit the personalization and mail server (SMTP) information used for this server. <br/> <%radio.prefs.stringPref ("Name", @user.prefs.name)%> <%radio.prefs.stringPref ("Organization", @user.prefs.organization)%> <%radio.prefs.stringPref ("Email address", @user.prefs.mailAddress)%> <%radio.prefs.stringPref ("Outgoing (SMTP) mail server", @user.prefs.mailHost)%> <%radio.prefs.numberPref ("Outgoing (SMTP) mail server port", @user.prefs.mailHostPort)%> Security You can set security access controls on all content that the server renders. The values on this page control the global settings. The directory and script settings can be over-ridden at the site level, while IP address security is global. <%mainResponder.adminSite.prefs.securityLevel ("Admin security level")%> <%radio.prefs.checkboxPref ("Check this box to allow directory listings by default.", @config.mainresponder.globals.allowDirectoryListings)%> <%radio.prefs.checkboxPref ("Check this box to allow script listings by default.", @config.mainresponder.globals.allowScriptListings)%> <%radio.prefs.checkboxPref ("Check this box to allow scripts to run by default.", @config.mainresponder.globals.allowScriptsToRun)%> <br /> <b>Blocking HTTP requests by IP address</b> <%radio.prefs.checkboxPref ("Check this box to allow HTTP access <i>only</i> from the following IP addresses.", @config.mainresponder.prefs.flAllowByIpOnly)%> <%radio.prefs.textAreaPref ("IP addresses<br>separated by<br>commas", @config.mainresponder.prefs.allowedIpAddresses)%> <br /> <b>Membership</b> <%radio.prefs.checkboxPref ("Check this box to use the more secure encrypted cookie format. The encrypted format does not store passwords in membership cookies. Instead it hashes the password, plus additional information, to make membership more secure.", @config.mainresponder.prefs.flMembershipHashedCookies)%> Administrators You can add or remove administrators access to the Frontier Admin Site or edit the information for an existing administrator. You can also grant access to the WebEdit server to an administrator. <%mainResponder.adminSite.prefs.listAdministrators ()%> <br /><%mainResponder.adminSite.prefs.addOrEditAdministrator ()%> Domains The settings on this page are used configure virtual domains and sub-sites. For each site hosted on your server, there's a domain, a path, and a collection of objects which comprise the site. For a site hosted from an object database -- a Manila site for example, the objects will be specified by a database address. For a site hosted fom the filesystem, the objects will be specified by the path to a folder on disk. To map a domain and path to a site, type the domain name, and the path under the domain where the site will be served. In the Object field, enter either an object database address or the path to a folder of files on disk. Then click the Add Site button to add the site to the hierarchy. You can specify a redirect by entering the URL to redirect to, starting with http:\\// without a trailing slash, for example http:\\//www.example.com -- This will redirect all requests for the specified URL to the site of your choosing. <%local (pta = html.getPageTableAddress ()); pta^.flAddSubmitButton = false; if defined (pta^.postArgs.delete) {""} else {mainResponder.adminSite.prefs.addMappingToSiteTree () + "<br /><br />"}%> <b>Domains on this server</b> <%mainResponder.adminSite.prefs.listDomains ()%> Search Engine You can enable and set up the search engine server on this page. <%radio.prefs.checkboxPref ("Check this box to enable the search engine.", @config.mainResponder.prefs.flSearchEngine)%> <%radio.prefs.stringPref ("Search page URL", @config.mainResponder.urls.searchHome,size:80, maxlength:300)%> <%radio.prefs.numberPref ("Index stored pages every", @config.mainResponder.search.prefs.minutesBetweenIndexes, 1, textToRight:" minute(s).")%> <%radio.prefs.checkboxPref ("Check this box if you want to store the full text of indexed pages, so that excerpts can be displayed in search results.", @config.mainResponder.search.prefs.flStoreFullText)%> <%radio.prefs.checkboxPref ("Check this box to allow public search submissions.", @config.mainresponder.prefs.flAllowPublicSearchSubmissions)%> <%radio.prefs.checkboxPref ("Check this box to enable search engine logging", @config.mainResponder.search.prefs.flLogEnabled)%> MIME Types <%if defined (searchArgTable.itemToEdit) {"To change the MIME type associated with the ." + searchArgTable.itemToEdit + " extension, fill in the Type input box and click the Submit button."} else {"To add a new MIME type, fill in the suffix and its MIME type, then click the Add New Type button. To delete one or more types, check its checkbox and click the Delete button at the bottom of the page. To edit a type, click an Edit link on the right."}%> <%mainResponder.adminSite.prefs.mimeTypes ()%> Update Notification Frontier can automatically connect to a server at UserLand each night, to check the availability of new features and bug fixes. When software updates are available, Frontier will notify you via email. It's recommended that you turn this feature on. <%radio.prefs.checkboxPref ("Check this box to receive email notification when new software updates are available.", @config.mainResponder.prefs.flUpdateNightly)%> <br />You can view a list of pending software updates, and optionally install them via the <%"<a href=\"" + mainResponder.adminSite.urls.updates + "\">"%>Updates page</a>. <br /><b>Databases to update</b> Check the box next to each database that you want to be updated when installing new software. It's strongly recommended that you enable updating all of these databases. <%mainResponder.adminSite.prefs.dbToUpdateCheck ("Frontier.root")%> <%mainResponder.adminSite.prefs.dbToUpdateCheck ("mainResponder.root")%> <%mainResponder.adminSite.prefs.dbToUpdateCheck ("prefs.root")%> Backups This page contains the global backup settings for Manila sites, Frontier databases, and discussion group archives in XML. <br /> <b>Databases</b> Frontier can automatically save all changed databases every minute, and make backup copies each night. It's strongly recommended that you enable the saving of changed databases every minute. Depending on the size of your databases, nightly backups may take some time, so you may want to only enable this feature if your databases are small, or if the server traffic is low at night. <%radio.prefs.checkboxPref ("Check this box to save all changed databases every minute.", @config.mainresponder.prefs.flSaveDatabasesEveryMinute)%> <%radio.prefs.checkboxPref ("Check this box to back up all changed files in the Guest Databases folder every night?", @config.mainResponder.prefs.flBackupNightly)%> <%radio.prefs.stringPref ("Backup folder", @config.mainResponder.prefs.backupFolder, size:60)%> <br /><br /><b>Discussion group archives</b> The discussion group archives feature saves an XML file for every discussion group message. Only new or changed discussion group messages will be archived in XML. <%radio.prefs.checkboxPref ("Check this box to archive changes to discussion group messages in XML?", @config.mainResponder.prefs.flArchiveDiscuss)%> <%radio.prefs.stringPref ("Archive folder", @config.mainResponder.prefs.discussArchiveFolder, size:60)%> Logging and Statistics Frontier can maintain logs detailing what happens on your server and statistics that provide a cumulative view. You can choose which logs and stats Frontier should maintain, and where to store the logs. <br> <%radio.prefs.checkboxPref ("Check this box to log every HTTP request.", @config.mainResponder.prefs.flLog)%> <%radio.prefs.checkboxPref ("Check this box to log every XML-RPC and SOAP request.", @user.betty.prefs.flKeepServerLog)%> <%radio.prefs.checkboxPref ("Check this box to log root updates.", @user.rootUpdates.prefs.flShowUpdatesToUser)%> <%radio.prefs.checkboxPref ("Check this box to enable search engine logging", @config.mainResponder.search.prefs.flLogEnabled)%> <%radio.prefs.checkboxPref ("Check this box to log scheduled tasks.", @user.scheduler.prefs.logInGuestDatabase)%> <%radio.prefs.checkboxPref ("Check this box to close and re-open the log database every hour, to reclaim allocated memory.", @config.mainresponder.prefs.flLogReopenHourly)%> <%radio.prefs.stringPref ("Log folder", @user.log.prefs.folder, size:70, maxlength:300)%> <br> <b>Common Log Format</b> Common log format is a text file format used by popular web servers like Apache. Many log analysis programs used to generate traffic graphs and summaries can read this format. Settings in this section enable or disable the output of common log text files, and determine what information is included. <%table.surePath ("system.temp.mainResponder.misc.flCommonLog"); local (ad...@sy..., adr...@us..., s); if method != "POST" {adr^ = defined (adrcallback^)}; s=radio.prefs.checkboxPref ("Check this box to log HTTP requests in common log format.", adr); if method == "POST" {if adr^ {script.newScriptObject ("on commonLog (pta)\r\treturn (webserver.postFilters.commonLog (pta, true))", adrcallback)} else {if defined (adrcallback^) {delete (adrcallback)}}}; delete (adr); s%> <%radio.prefs.checkboxPref ("Check this box to use common log date format.", @user.webserver.prefs.commonLog.flUseCommonLogDateFormat)%> <%radio.prefs.checkboxPref ("Check this box to include virtual hosts.", @user.webserver.prefs.commonLog.flIncludeVirtualHosts)%> <%radio.prefs.checkboxPref ("Check this box to include referers.", @user.webserver.prefs.commonLog.flIncludeReferers)%> <%radio.prefs.checkboxPref ("Check this box to include User-Agents.", @user.webserver.prefs.commonLog.flIncludeUserAgents)%> <br> <b>Statistics</b> Frontier can count hits on a per-domain basis, complie nightly discussion group stats, and write XML reports listing the most read sites. <%radio.prefs.checkboxPref ("Check this box to compile discussion group stats every night.", @config.mainresponder.prefs.flDiscussStatsNightly)%> <%radio.prefs.checkboxPref ("Check this box to count total hits for each domain hosted on this server.", @user.webserver.prefs.flDomainStats)%> Database Subscriptions You can publish a guest database and allow other people to subscribe to changes made to the guest database. Changes to the guest database made using WebEdit will be added to the updates flow for the database.<br /><br /> <%radio.prefs.checkboxPref ("Check this box to enable database subscriptions from this server to other copies of Frontier or Radio UserLand.", @config.mainresponder.prefs.flSubscriptions)%> <br /><b>Subscribable databases</b> Below is a list of all databases on this server. To enable or disable subscriptions for a given database, check or uncheck the box next to its name and click the Submit button below.<br /><br /> <%mainResponder.adminSite.prefs.listSubscribableDatabases ()%> WebEdit WebEdit allows remote access to your databases, from one copy of Frontier to another. On this page you can enable and disable the WebEdit server, add users, edit user information, and manage the custody of checked-out objects. <%local (pta = html.getPageTableAddress ()); pta^.flAddSubmitButton = false; if not defined (system.temp.mainResponder.misc) {new (tableType, @system.temp.mainResponder.misc)}; ""%> <%local (adrpref = @system.temp.mainResponder.misc.flWebEditEnabled, adrhandlers = @user.betty.rpcHandlers.webEdit); if method != "POST" {if defined (adrhandlers^) {adrpref^ = true} else {adrpref^ = false}}; local (s = radio.prefs.checkboxPref ("Check this box to enable the WebEdit server.", adrpref)); if method == "POST" {if adrpref^ {adrhandlers^ = @webeditServer.rpcHandlers.webEdit} else {try {delete (adrhandlers)}}}; s%> <br /><input type="submit" value="Submit"> <br> <b>Add User</b> To add a new WebEdit user, enter the user's name, email address and password below, and click the Add User button.<br><br> <%mainResponder.adminSite.prefs.addWebeditUser ()%> <br> <b>Current users</b> Below is a list of users who currently have WebEdit access to this server. To remove a user, check the box next to the user's name, and then click the Remove Users button below.<br><br> <%mainResponder.adminSite.prefs.listWebeditUsers ()%> <br> <b>Objects</b> The following objects have been checked out with WebEdit. To force the check-in of an object, check the box next to its name, and then click the Force Check-In button below.<br><br> <%mainResponder.adminSite.prefs.listObjects ()%> Debugging The settings on this page are for people who develop web applications in the Frontier environment. The debugging features help find problems with your code, and to isolate performance bottlenecks. Note that enabling these features can degrade server performance, and cause Frontier to use more memory and disk space than normal, so you should only enable them if needed. <br> <b>mainResponder debugging</b> <%radio.prefs.checkboxPref ("Check this box to run mainResponder in debug mode. This will cause low-level errors to display an error window in the Frontier application.", @config.mainresponder.prefs.flDebug)%> <%radio.prefs.checkboxPref ("Check this box to copy the paramtable to scratchpad.params after every request.", @config.mainresponder.prefs.flKeepParamTable)%> <br> <b>Profiling</b> Profiling allows you to find out what scripts and kernel verbs are being executed and for how long. It's a way of finding performance bottlenecks. With the feature enabled, you can view a web page showing the amount of time Frontier spent in each script and verb in processing the request by adding /profile/ to the begining of the path to the page. <%radio.prefs.checkboxPref ("Check this box to enable profiling.", @config.mainresponder.prefs.flProfiling)%> <br> <b>Miscellaneous</b> Below are miscellaneous debugging features which may be useful depending on the type of application you're developing. <%radio.prefs.checkboxPref ("Check this box to record automatic database opens in system.temp.", @config.mainresponder.prefs.flLogDatabaseOpens)%> <%radio.prefs.checkboxPref ("Check this box to log available memory.", @config.mainresponder.prefs.flLogMemavail)%> Email Config <%flAddSubmitButton = false; mainResponder.controlPanel.emailConfig ()%> \ No newline at end of file --- 1,3 ---- FrontierVcsFile:1:optx:mainResponder.adminSite.data.localization.languages.english.outlines.prefs ! Server Settings Basic Settings You can edit the personalization and mail server (SMTP) information used for this server. <br/> <%radio.prefs.stringPref ("Name", @user.prefs.name)%> <%radio.prefs.stringPref ("Organization", @user.prefs.organization)%> <%radio.prefs.stringPref ("Email address", @user.prefs.mailAddress)%> <%radio.prefs.stringPref ("Outgoing (SMTP) mail server", @user.prefs.mailHost)%> <%radio.prefs.numberPref ("Outgoing (SMTP) mail server port", @user.prefs.mailHostPort)%> Security You can set security access controls on all content that the server renders. The values on this page control the global settings. The directory and script settings can be over-ridden at the site level, while IP address security is global. <%mainResponder.adminSite.prefs.securityLevel ("Admin security level")%> <%radio.prefs.checkboxPref ("Check this box to allow directory listings by default.", @config.mainresponder.globals.allowDirectoryListings)%> <%radio.prefs.checkboxPref ("Check this box to allow script listings by default.", @config.mainresponder.globals.allowScriptListings)%> <%radio.prefs.checkboxPref ("Check this box to allow scripts to run by default.", @config.mainresponder.globals.allowScriptsToRun)%> <br /> <b>Blocking HTTP requests by IP address</b> <%radio.prefs.checkboxPref ("Check this box to allow HTTP access <i>only</i> from the following IP addresses.", @config.mainresponder.prefs.flAllowByIpOnly)%> <%radio.prefs.textAreaPref ("IP addresses<br />separated by<br />commas", @config.mainresponder.prefs.allowedIpAddresses)%> <br /> <b>Membership</b> <%radio.prefs.checkboxPref ("Check this box to use the more secure encrypted cookie format. The encrypted format does not store passwords in membership cookies. Instead it hashes the password, plus additional information, to make membership more secure.", @config.mainresponder.prefs.flMembershipHashedCookies)%> Administrators You can add or remove administrators access to the Frontier Admin Site or edit the information for an existing administrator. You can also grant access to the WebEdit server to an administrator. <%mainResponder.adminSite.prefs.listAdministrators ()%> <br /><%mainResponder.adminSite.prefs.addOrEditAdministrator ()%> Domains The settings on this page are used configure virtual domains and sub-sites. For each site hosted on your server, there's a domain, a path, and a collection of objects which comprise the site. For a site hosted from an object database -- a Manila site for example, the objects will be specified by a database address. For a site hosted fom the filesystem, the objects will be specified by the path to a folder on disk. To map a domain and path to a site, type the domain name, and the path under the domain where the site will be served. In the Object field, enter either an object database address or the path to a folder of files on disk. Then click the Add Site button to add the site to the hierarchy. You can specify a redirect by entering the URL to redirect to, starting with http:\\// without a trailing slash, for example http:\\//www.example.com -- This will redirect all requests for the specified URL to the site of your choosing. <%local (pta = html.getPageTableAddress ()); pta^.flAddSubmitButton = false; if defined (pta^.postArgs.delete) {""} else {mainResponder.adminSite.prefs.addMappingToSiteTree () + "<br /><br />"}%> <b>Domains on this server</b> <%mainResponder.adminSite.prefs.listDomains ()%> Search Engine You can enable and set up the search engine server on this page. <%radio.prefs.checkboxPref ("Check this box to enable the search engine.", @config.mainResponder.prefs.flSearchEngine)%> <%radio.prefs.stringPref ("Search page URL", @config.mainResponder.urls.searchHome,size:80, maxlength:300)%> <%radio.prefs.numberPref ("Index stored pages every", @config.mainResponder.search.prefs.minutesBetweenIndexes, 1, textToRight:" minute(s).")%> <%radio.prefs.checkboxPref ("Check this box if you want to store the full text of indexed pages, so that excerpts can be displayed in search results.", @config.mainResponder.search.prefs.flStoreFullText)%> <%radio.prefs.checkboxPref ("Check this box to allow public search submissions.", @config.mainresponder.prefs.flAllowPublicSearchSubmissions)%> <%radio.prefs.checkboxPref ("Check this box to enable search engine logging", @config.mainResponder.search.prefs.flLogEnabled)%> MIME Types <%if defined (searchArgTable.itemToEdit) {"To change the MIME type associated with the ." + searchArgTable.itemToEdit + " extension, fill in the Type input box and click the Submit button."} else {"To add a new MIME type, fill in the suffix and its MIME type, then click the Add New Type button. To delete one or more types, check its checkbox and click the Delete button at the bottom of the page. To edit a type, click an Edit link on the right."}%> <%mainResponder.adminSite.prefs.mimeTypes ()%> Update Notification Frontier can automatically connect to a server at UserLand each night, to check the availability of new features and bug fixes. When software updates are available, Frontier will notify you via email. It's recommended that you turn this feature on. <%radio.prefs.checkboxPref ("Check this box to receive email notification when new software updates are available.", @config.mainResponder.prefs.flUpdateNightly)%> <br />You can view a list of pending software updates, and optionally install them via the <%"<a href=\"" + mainResponder.adminSite.urls.updates + "\">"%>Updates page</a>. <br /><b>Databases to update</b> Check the box next to each database that you want to be updated when installing new software. It's strongly recommended that you enable updating all of these databases. <%mainResponder.adminSite.prefs.dbToUpdateCheck ("Frontier.root")%> <%mainResponder.adminSite.prefs.dbToUpdateCheck ("mainResponder.root")%> <%mainResponder.adminSite.prefs.dbToUpdateCheck ("prefs.root")%> Backups This page contains the global backup settings for Manila sites, Frontier databases, and discussion group archives in XML. <br /> <b>Databases</b> Frontier can automatically save all changed databases every minute, and make backup copies each night. It's strongly recommended that you enable the saving of changed databases every minute. Depending on the size of your databases, nightly backups may take some time, so you may want to only enable this feature if your databases are small, or if the server traffic is low at night. <%radio.prefs.checkboxPref ("Check this box to save all changed databases every minute.", @config.mainresponder.prefs.flSaveDatabasesEveryMinute)%> <%radio.prefs.checkboxPref ("Check this box to back up all changed files in the Guest Databases folder every night?", @config.mainResponder.prefs.flBackupNightly)%> <%radio.prefs.stringPref ("Backup folder", @config.mainResponder.prefs.backupFolder, size:60)%> <br /><br /><b>Discussion group archives</b> The discussion group archives feature saves an XML file for every discussion group message. Only new or changed discussion group messages will be archived in XML. <%radio.prefs.checkboxPref ("Check this box to archive changes to discussion group messages in XML?", @config.mainResponder.prefs.flArchiveDiscuss)%> <%radio.prefs.stringPref ("Archive folder", @config.mainResponder.prefs.discussArchiveFolder, size:60)%> Logging and Statistics Frontier can maintain logs detailing what happens on your server and statistics that provide a cumulative view. You can choose which logs and stats Frontier should maintain, and where to store the logs. <br /> <%radio.prefs.checkboxPref ("Check this box to log every HTTP request.", @config.mainResponder.prefs.flLog)%> <%radio.prefs.checkboxPref ("Check this box to log every XML-RPC and SOAP request.", @user.betty.prefs.flKeepServerLog)%> <%radio.prefs.checkboxPref ("Check this box to log root updates.", @user.rootUpdates.prefs.flShowUpdatesToUser)%> <%radio.prefs.checkboxPref ("Check this box to enable search engine logging", @config.mainResponder.search.prefs.flLogEnabled)%> <%radio.prefs.checkboxPref ("Check this box to log scheduled tasks.", @user.scheduler.prefs.logInGuestDatabase)%> <%radio.prefs.checkboxPref ("Check this box to close and re-open the log database every hour, to reclaim allocated memory.", @config.mainresponder.prefs.flLogReopenHourly)%> <%radio.prefs.stringPref ("Log folder", @user.log.prefs.folder, size:70, maxlength:300)%> <br /> <b>Common Log Format</b> Common log format is a text file format used by popular web servers like Apache. Many log analysis programs used to generate traffic graphs and summaries can read this format. Settings in this section enable or disable the output of common log text files, and determine what information is included. <%table.surePath ("system.temp.mainResponder.misc.flCommonLog"); local (ad...@sy..., adr...@us..., s); if method != "POST" {adr^ = defined (adrcallback^)}; s=radio.prefs.checkboxPref ("Check this box to log HTTP requests in common log format.", adr); if method == "POST" {if adr^ {script.newScriptObject ("on commonLog (pta)\r\treturn (webserver.postFilters.commonLog (pta, true))", adrcallback)} else {if defined (adrcallback^) {delete (adrcallback)}}}; delete (adr); s%> <%radio.prefs.checkboxPref ("Check this box to use common log date format.", @user.webserver.prefs.commonLog.flUseCommonLogDateFormat)%> <%radio.prefs.checkboxPref ("Check this box to include virtual hosts.", @user.webserver.prefs.commonLog.flIncludeVirtualHosts)%> <%radio.prefs.checkboxPref ("Check this box to include referers.", @user.webserver.prefs.commonLog.flIncludeReferers)%> <%radio.prefs.checkboxPref ("Check this box to include User-Agents.", @user.webserver.prefs.commonLog.flIncludeUserAgents)%> <br /> <b>Statistics</b> Frontier can count hits on a per-domain basis, complie nightly discussion group stats, and write XML reports listing the most read sites. <%radio.prefs.checkboxPref ("Check this box to compile discussion group stats every night.", @config.mainresponder.prefs.flDiscussStatsNightly)%> <%radio.prefs.checkboxPref ("Check this box to count total hits for each domain hosted on this server.", @user.webserver.prefs.flDomainStats)%> Database Subscriptions You can publish a guest database and allow other people to subscribe to changes made to the guest database. Changes to the guest database made using WebEdit will be added to the updates flow for the database.<br /><br /> <%radio.prefs.checkboxPref ("Check this box to enable database subscriptions from this server to other copies of Frontier or Radio UserLand.", @config.mainresponder.prefs.flSubscriptions)%> <br /><b>Subscribable databases</b> Below is a list of all databases on this server. To enable or disable subscriptions for a given database, check or uncheck the box next to its name and click the Submit button below.<br /><br /> <%mainResponder.adminSite.prefs.listSubscribableDatabases ()%> WebEdit WebEdit allows remote access to your databases, from one copy of Frontier to another. On this page you can enable and disable the WebEdit server, add users, edit user information, and manage the custody of checked-out objects. <%local (pta = html.getPageTableAddress ()); pta^.flAddSubmitButton = false; if not defined (system.temp.mainResponder.misc) {new (tableType, @system.temp.mainResponder.misc)}; ""%> <%local (adrpref = @system.temp.mainResponder.misc.flWebEditEnabled, adrhandlers = @user.betty.rpcHandlers.webEdit); if method != "POST" {if defined (adrhandlers^) {adrpref^ = true} else {adrpref^ = false}}; local (s = radio.prefs.checkboxPref ("Check this box to enable the WebEdit server.", adrpref)); if method == "POST" {if adrpref^ {adrhandlers^ = @webeditServer.rpcHandlers.webEdit} else {try {delete (adrhandlers)}}}; s%> <br /><input type="submit" value="Submit"> <br /> <b>Add User</b> To add a new WebEdit user, enter the user's name, email address and password below, and click the Add User button.<br /><br /> <%mainResponder.adminSite.prefs.addWebeditUser ()%> <br /> <b>Current users</b> Below is a list of users who currently have WebEdit access to this server. To remove a user, check the box next to the user's name, and then click the Remove Users button below.<br /><br /> <%mainResponder.adminSite.prefs.listWebeditUsers ()%> <br /> <b>Objects</b> The following objects have been checked out with WebEdit. To force the check-in of an object, check the box next to its name, and then click the Force Check-In button below.<br /><br /> <%mainResponder.adminSite.prefs.listObjects ()%> Legal Macros <%mainResponder.adminSite.prefs.legalMacros ()%> News Aggregator <%xml.aggregator.init (); radio.prefs.checkboxPref ("Check this box to enable the news aggregator on this server. If it's enabled, Frontier will automatically scan subscribed channels once per hour.", @aggregatorData.prefs.enabled)%> <br /><b>When and how the aggregator runs</b>: <br />At what minute past the top of each hour should the aggregator scan for news? <%radio.prefs.numberPref ("Minute to scan", @aggregatorData.prefs.minuteToRead, upperbound:59)%> <br />The aggregator is multi-threaded. This means it can read read several RSS feeds at the same time. The larger this number the quicker it will finish each scan, but it may make the server slower while the scan is running. <%radio.prefs.numberPref ("Number of threads", @aggregatorData.prefs.maxThreads, lowerbound:1, upperbound:10)%> <br /><b>Archiving options</b>: <br />The news aggregator can automatically delete old stories from the database. It is highly recommended that you enable this option.<br /><br /> <%radio.prefs.checkboxPref ("Check this box to automatically delete old news items once an hour.", @aggregatorData.prefs.flArchive)%> <br />How old must an item be (in hours) in order to be deleted? <%radio.prefs.numberPref ("Hours before deletion", @aggregatorData.prefs.hoursBeforeArchive, lowerbound:1, upperbound:100)%> Subscriptions <%mainResponder.adminSite.prefs.subscriptions ()%> Debugging The settings on this page are for people who develop web applications in the Frontier environment. The debugging features help find problems with your code, and to isolate performance bottlenecks. Note that enabling these features can degrade server performance, and cause Frontier to use more memory and disk space than normal, so you should only enable them if needed. <br /> <b>mainResponder debugging</b> <%radio.prefs.checkboxPref ("Check this box to run mainResponder in debug mode. This will cause low-level errors to display an error window in the Frontier application.", @config.mainresponder.prefs.flDebug)%> <%radio.prefs.checkboxPref ("Check this box to copy the paramtable to scratchpad.params after every request.", @config.mainresponder.prefs.flKeepParamTable)%> <br /> <b>Profiling</b> Profiling allows you to find out what scripts and kernel verbs are being executed and for how long. It's a way of finding performance bottlenecks. With the feature enabled, you can view a web page showing the amount of time Frontier spent in each script and verb in processing the request by adding /profile/ to the begining of the path to the page. <%radio.prefs.checkboxPref ("Check this box to enable profiling.", @config.mainresponder.prefs.flProfiling)%> <br /> <b>Miscellaneous</b> Below are miscellaneous debugging features which may be useful depending on the type of application you're developing. <%radio.prefs.checkboxPref ("Check this box to record automatic database opens in system.temp.", @config.mainresponder.prefs.flLogDatabaseOpens)%> <%radio.prefs.checkboxPref ("Check this box to log available memory.", @config.mainresponder.prefs.flLogMemavail)%> Email Config <%flAddSubmitButton = false; mainResponder.controlPanel.emailConfig ()%> \ No newline at end of file |
|
From: creedon <icr...@us...> - 2006-01-07 21:37:04
|
Update of /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/adminSite/prefs In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21618 Modified Files: listSubscribableDatabases Log Message: lowercase method case, XHTML compliance exclude aggregatorData.root in list Index: listSubscribableDatabases =================================================================== RCS file: /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/adminSite/prefs/listSubscribableDatabases,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** listSubscribableDatabases 25 Dec 2005 01:51:54 -0000 1.2 --- listSubscribableDatabases 7 Jan 2006 21:36:51 -0000 1.3 *************** *** 1,3 **** FrontierVcsFile:1:scpt:mainResponder.adminSite.prefs.listSubscribableDatabases ! on listSubscribableDatabases () { ÇChanges Ç12/24/05; 2:56:15 PM by TAC Çadded support to display host database (@root) as subscribable Çadded support for relative paths Ç9/7/02; 10:22:30 PM by JES ÇBe more tolerant about which databases are allowed to be subscribed. Ç8/26/02; 5:52:49 PM by JES ÇCreated. Lists databases on this server, with checkboxes for whether or not the database should be subscribable. local (pta = html.getPageTableAddress ()); local (bgcolors = {pta^.trbg1, pta^.trbg2}); on findInUserDatabases (f) { local (lowerpath = string.lower (f)); local (adrTable); for adrTable in @user.databases { if string.lower (adrTable^.f) == lowerpath { return (adrTable)}}; return (@user.databases.[file.fileFromPath (f)] )}; local (htmltext); on add (s) { htmltext = htmltext + (s + "\r");}; bundle { //list the databases local (t); new (tableType, @t); bundle { //build sorted table of databases local (pc = file.getPathChar ()); on isSubscribable (f) { local (lowerpath = string.lower (f)); local (adrTable); for adrTable in @user.databases { try { if string.lower (fileSpec (adrTable^.f)) == lowerpath { return (adrTable^.supportsSubscribe)}}}; return (false)}; on skipDatabase (f) { bundle { //skip all databases that are getting updates from elsewhere local (lowerfname = string.lower (file.fileFromPath (f))); local (adrTable); for adrTable in @user.rootUpdates.servers { try { if string.lower (adrTable^.dbname) == lowerfname { if tcp.equalNames (tcp.dns.getMyDottedId (), adrTable^.server) { return (false)}; return (true)}}}}; bundle { //skip other canonical databases local (lowerpath = string.lower (f)); local (appFolder = Frontier.getSubFolder ("apps")); local (logFolder = Frontier.getSubFolder ("ops") + "logs" + pc); local (opsFolder = Frontier.getSubFolder ("ops")); local (datafilesFolder = Frontier.getSubFolder ("ops") + "datafiles" + pc); on checkOne (path) { if string.lower (path) == lowerpath { return (true)}; return (false)}; if checkOne (appFolder + "config.root") {return (true)}; if checkOne (datafilesFolder + "mainResponderSearchQueue.root") {return (true)}; if checkOne (opsFolder + "members.root") {return (true)}; if checkOne (opsFolder + "discuss.root") {return (true)}; if lowerpath beginsWith string.lower (logfolder) {return (true)}}; return (false)}; local (fileList = {}); bundle { // build fileList local (adr); for adr in @system.compiler.files { fileList = fileList + nameOf (adr^)}; if defined (config.mainResponder.prefs.flAddRootToSubscribableDatabasesList) { // add host database (@root) to list if config.mainResponder.prefs.flAddRootToSubscribableDatabasesList { fileList = fileList + window.getFile (@root)}}}; local (f); for f in fileList { if skipDatabase (f) { continue}; local (dbname = file.fileFromPath (f)); local (dbsize = file.size (f)); local (modified = file.modified (f)); local (folder = file.folderFromPath (f)); local (folderName = file.fileFromPath (folder)); local (adrDb); bundle { // host database (@root)? if window.getFile (@root) == f { adrDb = @root; folderName = ":"} else { adrDb = @[f]}}; local (dbtables = sizeOf (adrDb^)); local (adrFolder = @t.[folderName]); if not defined (adrFolder^) { new (tableType, adrFolder)}; local (adrDbInfo = @adrFolder^.[dbname]); new (tableType, adrDbInfo); if defined (adrDb^.["#changes"]) { adrDbInfo^.changes = sizeOf (adrDb^.["#changes"])} else { adrDbInfo^.changes = 0}; adrDbInfo^.flSubscribable = isSubscribable (f); adrDbInfo^.f = f}}; add ("<table cellpadding=\"2\" cellspacing=\"0\" border=\"0\">"); bundle { //headers add ("<tr><td> </td><td><b>Folder</b></td><td><b>Database</b></td><td align=\"right\"><b>Changes</b></td></tr>")}; local (ct = 0, adrFolder, adrDb); for adrFolder in @t { local (folder = nameOf (adrFolder^)); if folder == ':' { folder = ""}; folder = folder + " "; for adrDb in adrFolder { local (dbname = nameOf (adrDb^)); if pta^.method == "POST" { //set up this db if defined (pta^.postArgs.[string.urlEncode (adrDb^.f)] ) { local (adrinfo = findInUserDatabases (adrDb^.f)); if not defined (adrinfo^) { //init user.databases sub-table new (tableType, adrinfo); adrinfo^.f = adrDb^.f; adrinfo^.openOnStartup = true; adrinfo^.runStartupScript = false}; adrinfo^.supportsSubscribe = true; bundle { // #changes local (adr); if window.getFile (@root) == adrDb^.f { adr = @root} else { adr = @[adrDb^.f]}; if not defined (adr^.["#changes"]) { new (tableType, @adr^.["#changes"])}}; adrDb^.flsubscribable = true} else { //turn off subscriptions for this database local (adrinfo = findInUserDatabases (adrDb^.f)); if defined (adrinfo^) { adrinfo^.supportsSubscribe = false; adrDb^.flsubscribable = false}}}; add ("<tr bgcolor=\"" + bgcolors[(ct++% 2) + 1] + "\">"); bundle { //checkbox local (checked = ""); if adrDb^.flsubscribable { checked = " checked"}; add ("<td> <input type=\"checkbox\" name=\"" + string.urlEncode (adrDb^.f) + "\"" + checked + " /> </td>")}; add ("<td class=\"small\">" + folder + "</td>"); folder = ""; //only display the folder once add ("<td class=\"small\">" + dbname + "</td>"); add ("<td class=\"small\" align=\"right\">" + adrDb^.changes + " </td>"); add ("</tr>")}; };Çadd ("<tr><td> </td></tr>"); ct = 0 add ("</table>")}; return (htmltext)}; Çbundle // testing Çhtml.setPageTableAddress (@workspace.pt) ÇlistSubscribableDatabases () \ No newline at end of file --- 1,3 ---- FrontierVcsFile:1:scpt:mainResponder.adminSite.prefs.listSubscribableDatabases ! on listSubscribableDatabases () { ÇChanges Ç1/7/06; 12:16:41 PM by TAC Çlowercase method case, XHTML compliance Çexclude aggregatorData.root in list Ç12/24/05; 2:56:15 PM by TAC Çadded support to display host database (@root) as subscribable Çadded support for relative paths Ç9/7/02; 10:22:30 PM by JES ÇBe more tolerant about which databases are allowed to be subscribed. Ç8/26/02; 5:52:49 PM by JES ÇCreated. Lists databases on this server, with checkboxes for whether or not the database should be subscribable. local (pta = html.getPageTableAddress ()); Çscratchpad.pt = pta^ // enable for debugging local (bgcolors = {pta^.trbg1, pta^.trbg2}); on findInUserDatabases (f) { local (lowerpath = string.lower (f)); local (adrTable); for adrTable in @user.databases { if string.lower (adrTable^.f) == lowerpath { return (adrTable)}}; return (@user.databases.[file.fileFromPath (f)] )}; local (htmlText); on add (s) { htmlText = htmlText + (s + "\r");}; bundle { //list the databases local (t); new (tableType, @t); bundle { //build sorted table of databases local (pc = file.getPathChar ()); on isSubscribable (f) { local (lowerpath = string.lower (f)); local (adrTable); for adrTable in @user.databases { try { if string.lower (fileSpec (adrTable^.f)) == lowerpath { return (adrTable^.supportsSubscribe)}}}; return (false)}; on skipDatabase (f) { bundle { //skip all databases that are getting updates from elsewhere local (lowerfname = string.lower (file.fileFromPath (f))); local (adrTable); for adrTable in @user.rootUpdates.servers { try { if string.lower (adrTable^.dbname) == lowerfname { if tcp.equalNames (tcp.dns.getMyDottedId (), adrTable^.server) { return (false)}; return (true)}}}}; bundle { //skip other canonical databases local (lowerpath = string.lower (f)); local (appFolder = Frontier.getSubFolder ("apps")); local (logFolder = Frontier.getSubFolder ("ops") + "logs" + pc); local (opsFolder = Frontier.getSubFolder ("ops")); local (datafilesFolder = Frontier.getSubFolder ("ops") + "datafiles" + pc); on checkOne (path) { if string.lower (path) == lowerpath { return (true)}; return (false)}; if checkOne (appFolder + "config.root") {return (true)}; if checkOne (datafilesFolder + "aggregatorData.root") {return (true)}; if checkOne (datafilesFolder + "mainResponderSearchQueue.root") {return (true)}; if checkOne (opsFolder + "members.root") {return (true)}; if checkOne (opsFolder + "discuss.root") {return (true)}; if lowerpath beginsWith string.lower (logfolder) {return (true)}}; return (false)}; local (fileList = {}); bundle { // build fileList local (adr); for adr in @system.compiler.files { fileList = fileList + nameOf (adr^)}; if defined (config.mainResponder.prefs.flAddRootToSubscribableDatabasesList) { // add host database (@root) to list if config.mainResponder.prefs.flAddRootToSubscribableDatabasesList { fileList = fileList + window.getFile (@root)}}}; local (f); for f in fileList { if skipDatabase (f) { continue}; local (dbname = file.fileFromPath (f)); local (dbsize = file.size (f)); local (modified = file.modified (f)); local (folder = file.folderFromPath (f)); local (folderName = file.fileFromPath (folder)); local (adrDb); bundle { // host database (@root)? if window.getFile (@root) == f { adrDb = @root; folderName = ":"} else { adrDb = @[f]}}; local (dbtables = sizeOf (adrDb^)); local (adrFolder = @t.[folderName]); if not defined (adrFolder^) { new (tableType, adrFolder)}; local (adrDbInfo = @adrFolder^.[dbname]); new (tableType, adrDbInfo); if defined (adrDb^.["#changes"]) { adrDbInfo^.changes = sizeOf (adrDb^.["#changes"])} else { adrDbInfo^.changes = 0}; adrDbInfo^.flSubscribable = isSubscribable (f); adrDbInfo^.f = f}}; add ("<table cellpadding=\"2\" cellspacing=\"0\" border=\"0\">"); bundle { //headers add ("<tr><td> </td><td><b>Folder</b></td><td><b>Database</b></td><td align=\"right\"><b>Changes</b></td></tr>")}; local (ct = 0, adrFolder, adrDb); for adrFolder in @t { local (folder = nameOf (adrFolder^)); if folder == ':' { folder = ""}; folder = folder + " "; for adrDb in adrFolder { local (dbname = nameOf (adrDb^)); if string.lower (pta^.method) == "post" { //set up this db if defined (pta^.postArgs.[string.urlEncode (adrDb^.f)] ) { local (adrinfo = findInUserDatabases (adrDb^.f)); if not defined (adrinfo^) { //init user.databases sub-table new (tableType, adrinfo); adrinfo^.f = adrDb^.f; adrinfo^.openOnStartup = true; adrinfo^.runStartupScript = false}; adrinfo^.supportsSubscribe = true; bundle { // #changes local (adr); if window.getFile (@root) == adrDb^.f { adr = @root} else { adr = @[adrDb^.f]}; if not defined (adr^.["#changes"]) { new (tableType, @adr^.["#changes"])}}; adrDb^.flsubscribable = true} else { //turn off subscriptions for this database local (adrinfo = findInUserDatabases (adrDb^.f)); if defined (adrinfo^) { adrinfo^.supportsSubscribe = false; adrDb^.flsubscribable = false}}}; add ("<tr bgcolor=\"" + bgcolors[(ct++% 2) + 1] + "\">"); bundle { //checkbox local (checked = ""); if adrDb^.flsubscribable { checked = " checked"}; add ("<td> <input type=\"checkbox\" name=\"" + string.urlEncode (adrDb^.f) + "\"" + checked + " /> </td>")}; add ("<td class=\"small\">" + folder + "</td>"); folder = ""; //only display the folder once add ("<td class=\"small\">" + dbname + "</td>"); add ("<td class=\"small\" align=\"right\">" + adrDb^.changes + " </td>"); add ("</tr>")}; };Çadd ("<tr><td> </td></tr>"); ct = 0 add ("</table>")}; return (htmlText)}; Çbundle // testing Çhtml.setPageTableAddress (@scratchpad.pt) ÇlistSubscribableDatabases () \ No newline at end of file |
|
From: creedon <icr...@us...> - 2006-01-07 21:36:27
|
Update of /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/adminSite/macros In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21545 Modified Files: adminMenu Log Message: changed font to span tags tweaked formatting of script replaced hard coded Frontier name with Frontier.getProgramname removed extraneous " character from spanOpen Index: adminMenu =================================================================== RCS file: /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/adminSite/macros/adminMenu,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** adminMenu 10 Jul 2005 05:58:09 -0000 1.2 --- adminMenu 7 Jan 2006 21:36:13 -0000 1.3 *************** *** 1,3 **** FrontierVcsFile:1:scpt:mainResponder.adminSite.macros.adminMenu ! on adminMenu (color = "#FFFFFF") { ÇChanges Ç7/9/05; 12:17:29 PM by TAC Çchanged name of Home webpage to Status Ç12/16/03; 4:07:37 AM by JES ÇAdded Updates link to the Pending Updates page. Ç7/3/03; 3:21:42 PM by JES ÇDon't add the admin menu if we're serving a mainResponder error page. Ç6/6/02; 1:16:37 PM by JES ÇCreated. Cribbed from radioCommunityServerSuite.websites.macros.menu. local (pta = html.getPageTableAddress ()); if pta^.adrObject == @mainResponder.adminSite.website.errorPage { return ("")}; local (fontopen = "<font class=\"adminMenuLinkFont\" \" color=\"" + color + "\">", fontclose = "</font>"); local (uriWithSearchArgs = pta^.uri); if sizeof (pta^.searchargs) > 0 { uriWithSearchArgs = uriWithSearchArgs + "?" + pta^.searchargs}; local (htmlText = ""); on add (s) { htmlText = htmlText + s}; on addCommand (linetext, url, fllastcommand = false) { local (flhot = true); if uriWithSearchArgs == url { flhot = false}; if flhot { add ("<a class=\"adminMenuLink\" href=\"" + url + "\">" + fontopen + linetext + fontclose + "</a>")} else { add ("<b><font class=\"adminMenuLinkFontCurrent\">" + linetext + "</font></b>")}; if not fllastcommand { add (fontopen + " <b>|</b> " + fontclose)}}; add (fontopen + "<b>Frontier " + frontier.version () + "</b>: " + fontclose); addCommand ("Status", mainResponder.adminSite.urls.home); addCommand ("Readouts", mainResponder.adminSite.urls.readouts); addCommand ("Settings", mainResponder.adminSite.urls.settings); addCommand ("Maintenance", mainResponder.adminSite.urls.maintenance); addCommand ("Updates", mainResponder.adminSite.urls.updates); addCommand ("Tools", mainResponder.adminSite.urls.tools); addCommand ("Help", mainResponder.adminSite.urls.help, fllastcommand:true); return (htmlText)} \ No newline at end of file --- 1,3 ---- FrontierVcsFile:1:scpt:mainResponder.adminSite.macros.adminMenu ! on adminMenu (color = "#FFFFFF") { ÇChanges Ç1/7/06; 12:32:33 PM by TAC Çchanged font to span tags Çtweaked formatting of script Çreplaced hard coded Frontier name with Frontier.getProgramname Çremoved extraneous " character from spanOpen Ç7/9/05; 12:17:29 PM by TAC Çchanged name of Home webpage to Status Ç12/16/03; 4:07:37 AM by JES ÇAdded Updates link to the Pending Updates page. Ç7/3/03; 3:21:42 PM by JES ÇDon't add the admin menu if we're serving a mainResponder error page. Ç6/6/02; 1:16:37 PM by JES ÇCreated. Cribbed from radioCommunityServerSuite.websites.macros.menu. local (pta = html.getPageTableAddress ()); if pta^.adrObject == @mainResponder.adminSite.website.errorPage { return ("")}; local (spanOpen = "<span class=\"adminMenuLinkFont\" style=\"color: " + color + "\">", spanClose = "</span>"); local (uriWithSearchArgs = pta^.uri); if sizeof (pta^.searchargs) > 0 { uriWithSearchArgs = uriWithSearchArgs + "?" + pta^.searchargs}; local (htmlText = ""); on add (s) { htmlText = htmlText + s}; on addCommand (lineText, url, flLastCommand = false) { local (flHot = true); if uriWithSearchArgs == url { flHot = false}; if flHot { add ("<a class=\"adminMenuLink\" href=\"" + url + "\">" + spanOpen + lineText + spanClose + "</a>")} else { add ("<b><span class=\"adminMenuLinkFontCurrent\">" + lineText + "</span></b>")}; if not flLastCommand { add (spanOpen + " <b>|</b> " + spanClose)}}; add (spanOpen + "<b>" + Frontier.getProgramName () + "</b>: " + spanClose); addCommand ("Status", mainResponder.adminSite.urls.home); addCommand ("Readouts", mainResponder.adminSite.urls.readouts); addCommand ("Settings", mainResponder.adminSite.urls.settings); addCommand ("Maintenance", mainResponder.adminSite.urls.maintenance); addCommand ("Updates", mainResponder.adminSite.urls.updates); addCommand ("Tools", mainResponder.adminSite.urls.tools); addCommand ("Help", mainResponder.adminSite.urls.help, flLastCommand:true); return (htmlText)} \ No newline at end of file |
|
From: creedon <icr...@us...> - 2006-01-07 21:35:13
|
Update of /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/adminSite/website In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21301 Modified Files: 23template 23pageHeader Log Message: towards XHTML compliance Index: 23template =================================================================== RCS file: /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/adminSite/website/23template,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** 23template 10 Jul 2005 05:47:49 -0000 1.4 --- 23template 7 Jan 2006 21:35:02 -0000 1.5 *************** *** 1,3 **** FrontierVcsFile:1:optx:mainResponder.adminSite.website.["#template"] ! <body> <div id="banner"> <a href="http://frontierkernel.sourceforge.net/" style="font-family:verdana, arial, sans-serif;color:#FFF;font-size:20px;font-weight:normal;text-transform:uppercase;letter-spacing: .2em;"> Frontier </a> <br/> <span class="description"> High performance Web content management, object database, system-level and Internet scripting environment, including source code editing and debugging. </span> </div> <div id="content"> <div class="blogbody"> <%menu ("black")%> <br/> <p class="title"> <%viewPageTitle ()%> </p> {bodytext} <br/> <br/> <div class="footer"> <p> This Page was last update: <%timeModified (adrobject)%> <br/> Page template based on <a href="http://www.bryanbell.com/">Bryan Bell's</a> <a href="http://www.bryanbell.com/2002/07/23#a63">Moveable Manila: green</a>. <br/> © Copyright <%date.year ()%> </p> <p> <a href="http://jigsaw.w3.org/css-validator/"> <img style="border:0;width:88px;height:31px" src="http://jigsaw.w3.org/css-validator/images/vcss" alt="Valid CSS!"> </a> </p> </div> </div> </div> </body> </html> \ No newline at end of file --- 1,3 ---- FrontierVcsFile:1:optx:mainResponder.adminSite.website.["#template"] ! <body> <div id="banner"> <a href="http://frontierkernel.sourceforge.net/" style="font-family:verdana, arial, sans-serif;color:#FFF;font-size:20px;font-weight:normal;text-transform:uppercase;letter-spacing: .2em;"> Frontier </a> <br/> <span class="description"> High performance Web content management, object database, system-level and Internet scripting environment, including source code editing and debugging. </span> </div> <div id="content"> <div class="blogbody"> <%menu ("black")%> <br/> <p class="title"> <%viewPageTitle ()%> </p> {bodytext} <br/> <br/> <div class="footer"> <p> This Page was last update: <%timeModified (adrobject)%> <br/> Page template based on <a href="http://www.bryanbell.com/">Bryan Bell's</a> <a href="http://www.bryanbell.com/2002/07/23#a63">Moveable Manila: green</a>. <br/> © Copyright <%date.year ()%> </p> <p> <a href="http://jigsaw.w3.org/css-validator/"> <img style="border:0;width:88px;height:31px" src="http://jigsaw.w3.org/css-validator/images/vcss" alt="Valid CSS!" /> </a> </p> </div> </div> </div> </body> </html> \ No newline at end of file Index: 23pageHeader =================================================================== RCS file: /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/adminSite/website/23pageHeader,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** 23pageHeader 10 Jul 2005 05:52:19 -0000 1.3 --- 23pageHeader 7 Jan 2006 21:35:02 -0000 1.4 *************** *** 1,3 **** FrontierVcsFile:1:optx:mainResponder.adminSite.website.["#pageHeader"] ! <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title> Frontier: <%title%> </title> <META HTTP-EQUIV="Expires" CONTENT="Mon, 01 Jan 1990 01:00:00 GMT"> <%metaTags ()%> <%string (prefsSuite.javaScriptSource)%> <style type="text/css"> body { margin:0px 0px 10px 0px; background: #FFFFFF; } A { color: #336666; font-family: verdana, arial, sans-serif; font-size:10px; text-decoration: none; font-weight:bold; } A:link { color: #336666; text-decoration: none; } A:visited { color: #669999; text-decoration: none; } A:active { color: #FFFF00; } A:hover { color: #000000; } #banner { font-family:verdana, arial, sans-serif; color:#FFF; font-size:20px; font-weight:normal; border-bottom:1px dotted #000000; border-top:3px solid #003333; background:#336666; padding:15px; text-transform:uppercase; letter-spacing: .2em; } .description { font-family:verdana, arial, sans-serif; color:#99CCCC; font-size:12px; font-weight:bold; text-transform:none; } #content { background:#fff; margin-right:15px; padding-bottom:20px; } #links { background:#fff; padding-right:15px; } .blog { padding-left:15px; padding-top:15px; padding-right:15px; } .blogbody { font-family:georgia, verdana, arial, sans-serif; color:#333; font-size:13px; font-weight:normal; background:#FFF; line-height:15px; padding-left:10px; padding-right:10px; padding-top:10px; } .title { font-family: verdana, arial; font-size: 15px; color: #003333; text-transform: uppercase; font-weight:bold; } .footer { font-family:georgia, verdana, arial, sans-serif; color:#333; font-size:11px; font-weight:normal; line-height:11px; padding-left:10px; padding-right:10px; padding-top:10px; border-top:1px dotted #999; text-align:center; } #menu { margin-bottom:15px; background:#FFF; } .date { font-family:verdana, arial, sans-serif; color:#666; font-size:9px; font-weight:bold; text-align:center; background:#EEE; line-height:14px; padding:2px; margin-top:10px; text-transform:uppercase; letter-spacing: .2em; } .posted { font-family:verdana, arial, sans-serif; font-size: 11px; color: #003366; margin-bottom:15px; } .side { font-family:verdana, arial, sans-serif; color:#333; font-size:11px; font-weight:normal; background:#FFF; line-height:14px; padding:2px; } .sidetitle { font-family:verdana, arial, sans-serif; color:#666; font-size:9px; font-weight:bold; background:#EEE; line-height:14px; padding:2px; margin-top:10px; text-align:center; text-transform:uppercase; letter-spacing: .2em; } .dlHeader{ font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; padding:4px; text-transform:uppercase; letter-spacing: .2em; } .dlCountReadsTitle, .dlSubjectTitle, .dlCountMessagesTitle, .dlPostedTitle, .dlMessageLinkTitle, .dlAuthorTitle { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; color:#333; padding:4px; } .dlSubject, .dlCountMessages, .dlPosted, .dlCountReads, .dlAuthor, .dlMessageLink { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; padding:4px; } .discussHeader { font-family:georgia, verdana, arial, sans-serif; color:#333; font-size:11px; font-weight:normal; line-height:11px; } .discussResponceList { font-family:georgia, verdana, arial, sans-serif; color:#333; font-size:11px; font-weight:normal; line-height:11px; padding-left:10px; padding-right:10px; padding-top:10px; margin-top:10px; border-top:1px dotted #999; } .hCalendarMonthYearRow, .dCalendarMonthYearRow { font-family:verdana, arial, sans-serif; color:#003366; font-size:10px; font-weight:bold; line-height:14px; padding:2px; } .hCalendarDayNameRow, .dCalendarDayNameRow { color:#666; font-family:verdana, arial, sans-serif; font-size:10px; font-weight:bold; line-height:14px; padding:2px; } .hCalendarDayRow, .dCalendarDayRow { color:#666; font-family:verdana, arial, sans-serif; font-size:10px; font-weight:normal; line-height:14px; padding:2px; } .hCalendarDayLinked, .dCalendarDayLinked { color:#666; background-color: #EEEEEE; font-family:verdana, arial, sans-serif; font-size:10px; font-weight:normal; line-height:14px; padding:2px; } .hCalendarDayCurrent, .dCalendarDayCurrent { color: #FFFFFF; background-color: #DCDCDC; font-family:verdana, arial, sans-serif; font-size:10px; font-weight:normal; line-height:14px; padding:2px; } td { font-family:georgia, verdana, arial, sans-serif; color:#333; font-size:13px; font-weight:normal; line-height:15px; } .adminMenuLink:hover { border-bottom: solid; } .adminMenuLinkFont { } .adminMenuLinkFontCurrent { border-bottom: solid; } </style> </head> <%bodyTag ()%> \ No newline at end of file --- 1,3 ---- FrontierVcsFile:1:optx:mainResponder.adminSite.website.["#pageHeader"] ! <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <title> Frontier: <%title%> </title> <meta http-equiv="Expires" content="Mon, 01 Jan 1990 01:00:00 GMT" /> <%metaTags ()%> <%string (prefsSuite.javaScriptSource)%> <style type="text/css"> body { margin:0px 0px 10px 0px; background: #FFFFFF; } A { color: #336666; font-family: verdana, arial, sans-serif; font-size:10px; text-decoration: none; font-weight:bold; } A:link { color: #336666; text-decoration: none; } A:visited { color: #669999; text-decoration: none; } A:active { color: #FFFF00; } A:hover { color: #000000; } #banner { font-family:verdana, arial, sans-serif; color:#FFF; font-size:20px; font-weight:normal; border-bottom:1px dotted #000000; border-top:3px solid #003333; background:#336666; padding:15px; text-transform:uppercase; letter-spacing: .2em; } .description { font-family:verdana, arial, sans-serif; color:#99CCCC; font-size:12px; font-weight:bold; text-transform:none; } #content { background:#fff; margin-right:15px; padding-bottom:20px; } #links { background:#fff; padding-right:15px; } .blog { padding-left:15px; padding-top:15px; padding-right:15px; } .blogbody { font-family:georgia, verdana, arial, sans-serif; color:#333; font-size:13px; font-weight:normal; background:#FFF; line-height:15px; padding-left:10px; padding-right:10px; padding-top:10px; } .title { font-family: verdana, arial; font-size: 15px; color: #003333; text-transform: uppercase; font-weight:bold; } .footer { font-family:georgia, verdana, arial, sans-serif; color:#333; font-size:11px; font-weight:normal; line-height:11px; padding-left:10px; padding-right:10px; padding-top:10px; border-top:1px dotted #999; text-align:center; } #menu { margin-bottom:15px; background:#FFF; } .date { font-family:verdana, arial, sans-serif; color:#666; font-size:9px; font-weight:bold; text-align:center; background:#EEE; line-height:14px; padding:2px; margin-top:10px; text-transform:uppercase; letter-spacing: .2em; } .posted { font-family:verdana, arial, sans-serif; font-size: 11px; color: #003366; margin-bottom:15px; } .side { font-family:verdana, arial, sans-serif; color:#333; font-size:11px; font-weight:normal; background:#FFF; line-height:14px; padding:2px; } .sidetitle { font-family:verdana, arial, sans-serif; color:#666; font-size:9px; font-weight:bold; background:#EEE; line-height:14px; padding:2px; margin-top:10px; text-align:center; text-transform:uppercase; letter-spacing: .2em; } .dlHeader{ font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; padding:4px; text-transform:uppercase; letter-spacing: .2em; } .dlCountReadsTitle, .dlSubjectTitle, .dlCountMessagesTitle, .dlPostedTitle, .dlMessageLinkTitle, .dlAuthorTitle { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; color:#333; padding:4px; } .dlSubject, .dlCountMessages, .dlPosted, .dlCountReads, .dlAuthor, .dlMessageLink { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; padding:4px; } .discussHeader { font-family:georgia, verdana, arial, sans-serif; color:#333; font-size:11px; font-weight:normal; line-height:11px; } .discussResponceList { font-family:georgia, verdana, arial, sans-serif; color:#333; font-size:11px; font-weight:normal; line-height:11px; padding-left:10px; padding-right:10px; padding-top:10px; margin-top:10px; border-top:1px dotted #999; } .hCalendarMonthYearRow, .dCalendarMonthYearRow { font-family:verdana, arial, sans-serif; color:#003366; font-size:10px; font-weight:bold; line-height:14px; padding:2px; } .hCalendarDayNameRow, .dCalendarDayNameRow { color:#666; font-family:verdana, arial, sans-serif; font-size:10px; font-weight:bold; line-height:14px; padding:2px; } .hCalendarDayRow, .dCalendarDayRow { color:#666; font-family:verdana, arial, sans-serif; font-size:10px; font-weight:normal; line-height:14px; padding:2px; } .hCalendarDayLinked, .dCalendarDayLinked { color:#666; background-color: #EEEEEE; font-family:verdana, arial, sans-serif; font-size:10px; font-weight:normal; line-height:14px; padding:2px; } .hCalendarDayCurrent, .dCalendarDayCurrent { color: #FFFFFF; background-color: #DCDCDC; font-family:verdana, arial, sans-serif; font-size:10px; font-weight:normal; line-height:14px; padding:2px; } td { font-family:georgia, verdana, arial, sans-serif; color:#333; font-size:13px; font-weight:normal; line-height:15px; } .adminMenuLink:hover { border-bottom: solid; } .adminMenuLinkFont { } .adminMenuLinkFontCurrent { border-bottom: solid; } </style> </head> \ No newline at end of file |
|
From: creedon <icr...@us...> - 2006-01-07 21:34:22
|
Update of /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/adminSite/website/23prefs In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21120 Removed Files: marginHeight leftMargin marginWidth topMargin Log Message: no longer needed for current template --- marginHeight DELETED --- --- marginWidth DELETED --- --- topMargin DELETED --- --- leftMargin DELETED --- |
|
From: creedon <icr...@us...> - 2006-01-05 06:18:36
|
Update of /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/discuss In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24397 Modified Files: listTopics Log Message: towards XHTML compliance apply font-size small to whole table instead of each table cell remove use of font tag removed double space if align parameters is empty for td obscure member email addresses in list Index: listTopics =================================================================== RCS file: /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/discuss/listTopics,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** listTopics 26 Mar 2005 21:45:36 -0000 1.1.1.1 --- listTopics 5 Jan 2006 06:18:27 -0000 1.2 *************** *** 1,3 **** FrontierVcsFile:1:scpt:mainResponder.discuss.listTopics ! on listTopics (channelname="", url=nil) { ÇChanges ÇMon, 01 Mar 1999 15:15:05 GMT by AR ÇMinor optimizations in the for loop for the flonemonth==true case ÇAlso changed valign=center to valign=middle ÇWed, 26 May 1999 01:22:21 GMT by AR ÇReal names of message authors are now looked up in the membership group specified thru pta^.responderAttributes.defaultMembershipGroup instead of formerly config.mainresponder.globals.defaultMembershipGroup, allowing greater flexibility while retaining backwards-compatibility. ÇSaturday, August 21, 1999 at 9:14:02 PM by PBS ÇUndeclared local variable adrStorage now declared. Ç04/12/00; 12:56:00 PM by JES ÇLocalized using mainResponder.getString ÇLocalized date display Ç05/22/00; 5:01:30 PM by JES Çwork around problem with cached table rows -- when you change the language, they needed to be re-rendered. local (pta = html.getPageTableAddress ()); if url == nil { url = pta^.responderattributes.urls^.discussMsgReader}; local (flTopLevelTopics = channelname == ""); local (htmltext = "", indentlevel = 0); local (membershipGroup = pta^.responderAttributes.defaultMembershipGroup); on add (s) { htmltext = htmltext + string.filledString ("\t", indentlevel) + s + "\r"}; on td (s, align="") { add ("<td nowrap " + align + " valign=\"middle\"><font size=\"-1\"> " + s + " </font></td>")}; on shortenstring (s, maxlen=35) { if sizeof (s) <= maxlen { return (s)}; return (string.mid (s, 1, maxlen - 3) + "...")}; local (adrroot = mainresponder.discuss.openroot ()); local (adrmsgs = @adrroot^.messages); local (i, ct = sizeof (adrmsgs^), fllist); local (flonemonth = false, firstdate = nil, firstmonth); if defined (pta^.oneMonthTopicList) { flonemonth = pta^.oneMonthTopicList}; add ("<table cellspacing=\"3\">"); indentlevel++; bundle { //column headings; 4/13/00 JES: localized headings add ("<tr>"); indentlevel++; td ("<b>" + mainResponder.getString ("listHeaders.date") + "</b>"); td ("<b>" + mainResponder.getString ("listHeaders.subject") + "</b>"); td ("<b>" + mainResponder.getString ("listHeaders.originator") + "</b>"); add ("</tr>"); indentlevel--}; local (sitelanguage = nameOf (mainResponder.localization.getLanguageTableAddress ()^)); // 05/22/00 JES: get the current rendering language for i = ct downto 1 { local (adrstorage); //PBS 8/21/99 adrstorage = @adrmsgs^ [i]; if flonemonth { //break if we're in the next month if firstdate == nil { firstdate = adrstorage^.posttime; firstmonth = date.month (firstdate)}; if firstmonth != date.month (adrstorage^.posttime) { break}}; fllist = false; if flTopLevelTopics { //list all top level topics fllist = adrstorage^.inResponseTo == 0} else { if defined (adrstorage^.alsoListedIn) { fllist = adrstorage^.alsoListedIn contains channelname}}; if defined (adrstorage^.fldeleted) { if adrstorage^.fldeleted { fllist = false}}; if fllist { local (adrcache, adrcachelanguage); if flTopLevelTopics { adrcache = @adrstorage^.topTopicsCache; adrcachelanguage = @adrstorage^.topTopicsCacheLanguage} else { adrcache = @adrstorage^.[channelname + "Cache"]; adrcachelanguage = @adrstorage^.[channelname + "CacheLanguage"]}; if not defined (adrcachelanguage^) { adrcachelanguage^ = sitelanguage}; if defined (adrcache^) and (string.lower (adrcachelanguage^) == string.lower (sitelanguage)) { add (adrcache^)} else { local (ixhtmltext = sizeof (htmltext)); add ("<tr>"); indentlevel++; td (mainResponder.localization.shortDateString (adrstorage^.posttime)); // 4/13/00 JES: localized td (mainresponder.discuss.linkToMessage (adrstorage, url, 40)); td (mainResponder.members.getMemberName (membershipGroup, adrstorage^.member)); add ("</tr>"); indentlevel--; local (s = string.delete (htmltext, 1, ixhtmltext)); adrcache^ = string.delete (s, sizeof (s), 1); adrcachelanguage^ = sitelanguage}}}; add ("</table>"); indentlevel--; return (htmltext)} \ No newline at end of file --- 1,3 ---- FrontierVcsFile:1:scpt:mainResponder.discuss.listTopics ! on listTopics (channelname="", url=nil) { ÇChanges Ç2006 Ç1/4/06; 2:24:13 PM by TAC Çapply font-size small to whole table instead of each table cell Çremove use of font tag Çremoved double space if align parameters is empty for td Çchanged nowrap to nowrap=\"nowrap\" for XHTML compliance Çobscure member email addresses in list Ç2000 Ç05/22/00; 5:01:30 PM by JES Çwork around problem with cached table rows -- when you change the language, they needed to be re-rendered. Ç04/12/00; 12:56:00 PM by JES ÇLocalized using mainResponder.getString ÇLocalized date display Ç1999 ÇSaturday, August 21, 1999 at 9:14:02 PM by PBS ÇUndeclared local variable adrStorage now declared. ÇWed, 26 May 1999 01:22:21 GMT by AR ÇReal names of message authors are now looked up in the membership group specified thru pta^.responderAttributes.defaultMembershipGroup instead of formerly config.mainresponder.globals.defaultMembershipGroup, allowing greater flexibility while retaining backwards-compatibility. ÇMon, 01 Mar 1999 15:15:05 GMT by AR ÇMinor optimizations in the for loop for the flonemonth==true case ÇAlso changed valign=center to valign=middle local (pta = html.getPageTableAddress ()); if url == nil { url = pta^.responderattributes.urls^.discussMsgReader}; local (flTopLevelTopics = channelname == ""); local (htmlText = "", indentLevel = 0); local (membershipGroup = pta^.responderAttributes.defaultMembershipGroup); on add (s) { htmlText = htmlText + string.filledString ("\t", indentLevel) + s + "\r"}; on td (s, align="") { if align != "" { align = " " + align}; add ("<td nowrap=\"nowrap\"" + align + " valign=\"middle\"> " + s + " </td>")}; on shortenstring (s, maxlen=35) { if sizeof (s) <= maxlen { return (s)}; return (string.mid (s, 1, maxlen - 3) + "...")}; local (adrroot = mainresponder.discuss.openroot ()); local (adrMsgs = @adrroot^.messages); local (i, ct = sizeof (adrMsgs^), fllist); local (flonemonth = false, firstdate = nil, firstmonth); if defined (pta^.oneMonthTopicList) { flonemonth = pta^.oneMonthTopicList}; add ("<table cellspacing=\"3\" style=\"font-size: small;\">"); indentLevel++; bundle { //column headings; 4/13/00 JES: localized headings add ("<tr>"); indentLevel++; td ("<b>" + mainResponder.getString ("listHeaders.date") + "</b>"); td ("<b>" + mainResponder.getString ("listHeaders.subject") + "</b>"); td ("<b>" + mainResponder.getString ("listHeaders.originator") + "</b>"); add ("</tr>"); indentLevel--}; local (sitelanguage = nameOf (mainResponder.localization.getLanguageTableAddress ()^)); // 05/22/00 JES: get the current rendering language for i = ct downto 1 { local (adrStorage = @adrMsgs^ [i]); //PBS 8/21/99 if flonemonth { //break if we're in the next month if firstdate == nil { firstdate = adrStorage^.posttime; firstmonth = date.month (firstdate)}; if firstmonth != date.month (adrStorage^.posttime) { break}}; fllist = false; if flTopLevelTopics { //list all top level topics fllist = adrStorage^.inResponseTo == 0} else { if defined (adrStorage^.alsoListedIn) { fllist = adrStorage^.alsoListedIn contains channelname}}; if defined (adrStorage^.fldeleted) { if adrStorage^.fldeleted { fllist = false}}; if fllist { local (adrcache, adrcachelanguage); if flTopLevelTopics { adrcache = @adrStorage^.topTopicsCache; adrcachelanguage = @adrStorage^.topTopicsCacheLanguage} else { adrcache = @adrStorage^.[channelname + "Cache"]; adrcachelanguage = @adrStorage^.[channelname + "CacheLanguage"]}; if not defined (adrcachelanguage^) { adrcachelanguage^ = sitelanguage}; if defined (adrcache^) and (string.lower (adrcachelanguage^) == string.lower (sitelanguage)) { add (adrcache^)} else { local (ixhtmlText = sizeof (htmlText)); add ("<tr>"); indentLevel++; td (mainResponder.localization.shortDateString (adrStorage^.posttime)); // 4/13/00 JES: localized td (mainresponder.discuss.linkToMessage (adrStorage, url, 40)); td (mainResponder.members.linkToMember (membershipGroup, adrStorage^.member, true, useMap: true)); add ("</tr>"); indentLevel--; local (s = string.delete (htmlText, 1, ixhtmlText)); adrcache^ = string.delete (s, sizeof (s), 1); adrcachelanguage^ = sitelanguage}}}; add ("</table>"); indentLevel--; return (htmlText)} \ No newline at end of file |