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-02-10 21:13:24
|
Update of /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10674 Modified Files: menu Log Message: updated copy sample mainresonder site menu command to store url for site in newUrl Index: menu =================================================================== RCS file: /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/menu,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** menu 9 Feb 2006 02:52:29 -0000 1.4 --- menu 10 Feb 2006 21:13:13 -0000 1.5 *************** *** 1,3 **** FrontierVcsFile:1:mbar:mainResponder.menu ! AAEFAQAABTMAAQAAAAAAAAAAAAAAKwADA/0E/QAAAAAAAAZHZW5ldmEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgArAAMDBwNkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAGqAAACoQAAAAAADwZHZW5ldmEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAsjO617/ydPcAADdNAAAA4gEjAaoCpExBTkT///////8AAAAAAABtYWMgAAAAAAAAAAAAAAAAU2VydmVyDQlTZXQgQWRtaW4gUGFzc3dvcmQuLi4NCU9wZW4gQWRtaW4gU2l0ZQ0JPSBtYWluUmVzcG9uZGVyLm1lbnVDb21tYW5kcy5lbmFibGVEaXNhYmxlTWVudUl0ZW0gKCkNCS0NCU9wZW4NCQljb25maWcucm9vdA0JCWRpc2N1c3Mucm9vdA0JCWluZGV4LnJvb3QNCQltYWluUmVzcG9uZGVyLnJvb3QNCQltZW1iZXJzLnJvb3QNCQl0ZW1wLm1haW5SZXNwb25kZXINCQl1c2VyLmRhdGFiYXNlcw0JCXVzZXIuYmV0dHkucnBjSGFuZGxlcnMNCQl1c2VyLmJldHR5LnF1ZXVlT3V0Z29pbmcNCS0NCU1ha2UgYW4gSFRUUCBSZXF1ZXN0Li4uDQlDbG9zZS9IaWRlIFdpbmRvd3MNCVdha2UgYWxsIFRocmVhZHMNCU1hcCB0byBEb21haW4uLi4NCUxvb2t1cCBEb21haW4uLi4NCVJldmVyc2UgRG9tYWluIExvb2t1cC4uLg0JLQ0JSW5zdGFsbCBtYWluUmVzcG9uZGVyIFNpdGUuLi4NCVVuaW5zdGFsbCBtYWluUmVzcG9uZGVyIFNpdGUuLi4NCT0gbG9jYWwgKHMgPSAiQ29weSBTYW1wbGUgbWFpblJlc3BvbmRlciBTaXRlIik7IGlmIHRhYmxlLmdldEN1cnNvciAoKSAhPSBAc2FtcGxlTXJXcyB7cyA9ICIoIiArIHN9OyByZXR1cm4gKHMpDQktDQlTZWFyY2ggRW5naW5lDQkJSW5kZXggU3RvcmVkIFBhZ2VzDQkJRGVsZXRlIFBhZ2UgRnJvbSBJbmRleC4uLg0JCUVkaXQgUGFnZSBJbmZvLi4uDYAAAAAAAAAAAAAACgAAAAAAAAZkEtQAAAAAAAoAAAAAAAAGZBLYAAAAAAAKAAAAAAAABmQS3AAAAAAAAAAAAAAAAAAAAAAACgAAAAAAAAZkFCgAAAAAAAoAAAAAAAAGZBSUAAAAAAAKAAAAAAAABmQUsAAAAAAACgAAAAAAAAZkFLwAAAAAAAoAAAAAAAAGZBTIAAAAAAAKAAAAAAAABmQU1AAAAAAACgAAAAAAAAZkFOAAAAAAAAoAAAAAAAAGZBTsAAAAAAAKAAAAAAAABmQU+AAAAAAAAAAAAAAACgAAAAAAAAZkFQQAAAAAAAoAAAAAAAAGZBUQAAAAAAAKAAAAAAAABmQVHAAAAAAACgAAAAAAAAZkFSgAAAAAAAoAAAAAAAAGZBU0AAAAAAAKAAAAAAAABmQVWAAAAAAAAAAAAAAACgAAAAAAAAZkFWQAAAAAAAoAAAAAAAAGZBVwAAAAAAAKAAAAAAAABmQVfAAAAAAAAAAAAAAAAAAAAAAACgAAAAAAAAZkFYgAAAAAAAoAAAAAAAAGZBWUAAAAAAAKAAAAAAAABmQW8AACAAAA9gAABnAAAgAAAA8FQXJpYWwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAAAAAAAAAAAAALQ58nW8oO14AAAALQAAAWYBWAIuAtlMQU5E////////AAAAAAAAbWFjIAAAAAAAAAAAAAAAAENoYW5nZXMNCTQvMTMvMDQ7IDE6MDU6NDggQU0gYnkgSkVTDQkJVXBkYXRlZCBwYXNzd29yZCBwcm9tcHQuDQk5LzMwLzAzOyAxOjAyOjUzIFBNIGJ5IEpFUw0JCVN0b3JlIHRoZSBhZG1pbiBwYXNzd29yZCBhcyBhIGJpbmFyeSB2YWx1ZS4NaWYgbm90IChtYWluUmVzcG9uZGVyLm1lbnVDb21tYW5kcy5tdXN0QmVTaXhQb2ludE9uZSAoKSkNCXJldHVybiAoZmFsc2UpDWxvY2FsIChwYXNzd29yZCkNaWYgZGlhbG9nLmdldFBhc3N3b3JkICgiU2V0IHBhc3N3b3JkIGZvciB0aGUgRnJvbnRpZXIgQWRtaW4gd2Vic2l0ZToiLCBAcGFzc3dvcmQpDQlidW5kbGUgLy9jcmVhdGUgdGhlIEFkbWluIG1lbWJlcnNoaXAgZ3JvdXAgaWYgbmVlZGVkDQkJbG9jYWwgKGFkclJvb3QgPSBAW3N5c3RlbS50ZW1wLm1haW5SZXNwb25kZXIubWVtYmVyc1Jvb3RGaWxlXSkNCQlsb2NhbCAoYWRyR3JvdXAgPSBAYWRyUm9vdF4uYWRtaW4pDQkJaWYgbm90IGRlZmluZWQgKGFkckdyb3VwXikNCQkJbmV3ICh0YWJsZVR5cGUsIGFkckdyb3VwKQ0JCWlmIG5vdCBkZWZpbmVkIChhZHJHcm91cF4uY2FsbGJhY2tzKQ0JCQluZXcgKHRhYmxlVHlwZSwgQGFkckdyb3VwXi5jYWxsYmFja3MpDQkJaWYgbm90IGRlZmluZWQgKGFkckdyb3VwXi5jb29raWVEb21haW4pDQkJCWFkckdyb3VwXi5jb29raWVEb21haW4gPSAiIg0JCWlmIG5vdCBkZWZpbmVkIChhZHJHcm91cF4uY29va2llRXhwaXJlcykNCQkJYWRyR3JvdXBeLmNvb2tpZUV4cGlyZXMgPSAiTW9uLCAwMSBBcHIgMjAzMCAwNzowMDowMCBHTVQiDQkJaWYgbm90IGRlZmluZWQgKGFkckdyb3VwXi5jb29raWVOYW1lKQ0JCQlhZHJHcm91cF4uY29va2llTmFtZSA9ICJBZG1pbiINCQlpZiBub3QgZGVmaW5lZCAoYWRyR3JvdXBeLm1haWxSZXR1cm5BZGRyZXNzKQ0JCQlhZHJHcm91cF4ubWFpbFJldHVybkFkZHJlc3MgPSB1c2VyLnByZWZzLm1haWxBZGRyZXNzDQkJaWYgbm90IGRlZmluZWQgKGFkckdyb3VwXi5tYWlsU3ViamVjdCkNCQkJYWRyR3JvdXBeLm1haWxTdWJqZWN0ID0gIkFkbWluIg0JCWlmIG5vdCBkZWZpbmVkIChhZHJHcm91cF4ubWFpbFRlbXBsYXRlKQ0JCQl3cC5uZXdUZXh0T2JqZWN0ICgiIiwgQGFkckdyb3VwXi5tYWlsVGVtcGxhdGUpDQkJaWYgbm90IGRlZmluZWQgKGFkckdyb3VwXi5vcGVuVG9QdWJsaWMpDQkJCWFkckdyb3VwXi5vcGVuVG9QdWJsaWMgPSBmYWxzZQ0JCWlmIG5vdCBkZWZpbmVkIChhZHJHcm91cF4udXNlcnMpDQkJCW5l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FSQ6vxUkQQAAAAMAAAGnAb8CbwNATEFORP///////wAAAAAAAG1hYyAAAAAAAAAAAAAAAABtYWluUmVzcG9uZGVyLm1lbnVDb21tYW5kcy51bkluc3RhbGxNYWluUmVzcG9uZGVyU2l0ZSAoKQ2AAAAAAAAAAgAAAQIAAAW4AAQCAAAPBkdlbmV2YQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAC/8nPPv/KSVAAAACQBAAGnAb8CbwNATEFORP///////wAAAAAAAG1hYyAAAAAAAAAAAAAAAABDaGFuZ2VzDQkxLzE3LzA2OyAxMDoxNDowMSBBTSBieSBUQUMNCQljcmVhdGVkDQ1sb2NhbCAod2Vic2l0ZU5hbWUpDQ1pZiBkaWFsb2cuYXNrICgiU2l0ZSBuYW1lPyIsIEB3ZWJzaXRlTmFtZSkNCWlmIHN0cmluZy5sb3dlciAod2Vic2l0ZU5hbWUpIGVuZHNXaXRoICJtcndzIg0JCXdlYnNpdGVOYW1lID0gc3RyaW5nLmRlbGV0ZSAod2Vic2l0ZU5hbWUsIHN0cmluZy5sZW5ndGggKHdlYnNpdGVOYW1lKSAtIDMsIDQpDQkNCWxvY2FsIChjYW5vbmljYWwpDQkNCWNhbm9uaWNhbCA9IHN0cmluZy5pbm5lckNhc2VOYW1lICh3ZWJzaXRlTmFtZSkNCWNhbm9uaWNhbCA9IHN0cmluZy5taWQgKGNhbm9uaWNhbCwgMSwgMjcpDQkNCWxvY2FsIChhZHJTaXRlID0gQHRhYmxlLmdldFJvb3RBZGRyZXNzIChAc2FtcGxlTXJXcyleLltjYW5vbmljYWwgKyAiTXJXcyJdKQ0JDQlpZiBkZWZpbmVkIChhZHJTaXRlXikNCQlkaWFsb2cuYWxlcnQgKCJUaGUgbWFpblJlc3BvbmRlciB3ZWJzaXRlIFwiIiArIGNhbm9uaWNhbCArICJNcldzIiArICJcIiBhbHJlYWR5IGV4aXN0cy4iKQ0JCQ0JCXJldHVybiAoZmFsc2UpDQkNCWFkclNpdGVeID0gc2FtcGxlTXJXcw0JDQlhZHJTaXRlXi5bIiNmdHBTaXRlIl0udXJsID0gY29uZmlnLm1haW5yZXNwb25kZXIucHJlZnMuYmFzZVVybCArIGNhbm9uaWNhbCArICIvIg0JYWRyU2l0ZV4uWyIjc2l0ZU5hbWUiXSA9IHdlYnNpdGVOYW1lDQkNCW9wLm5ld091dGxpbmVPYmplY3QgKCIjdGl0bGUgXCJJdCBXb3JrZWQhXCJcclxyQ29uZ3JhdHVsYXRpb25zIHlvdSBoYXZlIGNvcGllZCB0aGUgU2FtcGxlIG1haW5SZXNwb25kZXIgV2Vic2l0ZSBhbmQgaW5zdGFsbGVkIHRoZSBjb3B5ISIsIEBhZHJTaXRlXi5kZWZhdWx0KQ0JDQlidW5kbGUgLy8gY2hhbmdlIGNhbm9uaWNhbCBzaXRlIHJlZmVyZW5jZXMNCQlidW5kbGUgLy8gc2ltcGxlIGFzc2lnbm1lbnQNCQkJYWRyU2l0ZV4uWyIjcHJlZnMiXS5zZWFyY2guc2l0ZU5hbWUgPSBjYW5vbmljYWwNCQkNCQlidW5kbGUgLy8gc3RyaW5nIHJlcGxhY2VtZW50cw0JCQlvbiByZXBsYWNlIChhZHIpDQkJCQlhZHJeID0gc3RyaW5nLnJlcGxhY2UgKGFkcl4sICJzYW1wbGUiLCBjYW5vbmljYWwpDQkJCQ0JCQlyZXBsYWNlIChAYWRyU2l0ZV4uWyIjZGlzY3Vzc2lvbkdyb3VwIl0uZWRpdG9yaWFsUHJlZnMubWVtYmVyc2hpcEdyb3VwKQ0JCQlyZXBsYWNlIChAYWRyU2l0ZV4uWyIjbWVtYmVyc2hpcEdyb3VwIl0uY29va2llTmFtZSkNCQkJcmVwbGFjZSAoQGFkclNpdGVeLlsiI3ByZWZzIl0uZGVmYXVsdE1lbWJlcnNoaXBHcm91cCkNCQkJcmVwbGFjZSAoQGFkclNpdGVeLlsiI3ByZWZzIl0uZGlzY3Vzc2lvblJvb3QpDQkJCXJlcGxhY2UgKEBhZHJTaXRlXi5kaXNjdXNzaW9uR3JvdXAuZWRpdC5bIiNtZW1iZXJzIl0pDQkJCXJlcGxhY2UgKEBhZHJTaXRlXi5tZW1iZXIucHJlZmVyZW5jZXMuWyIjbWVtYmVycyJdKQ2EAAAAAAAAAAAAAAAAAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAA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 \ No newline at end of file --- 1,3 ---- FrontierVcsFile:1:mbar:mainResponder.menu ! AAEFAQAABTMAAQAAAAAAAAAAAAAAKwADA/0E/QAAAAAAAAZHZW5ldmEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgArAAMDBwNkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAGqAAACoQAAAAAADwZHZW5ldmEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAsjO617/ydPcAADdZAAAA4gEjAaoCpExBTkT///////8AAAAAAABtYWMgAAAAAAAAAAAAAAAAU2VydmVyDQlTZXQgQWRtaW4gUGFzc3dvcmQuLi4NCU9wZW4gQWRtaW4gU2l0ZQ0JPSBtYWluUmVzcG9uZGVyLm1lbnVDb21tYW5kcy5lbmFibGVEaXNhYmxlTWVudUl0ZW0gKCkNCS0NCU9wZW4NCQljb25maWcucm9vdA0JCWRpc2N1c3Mucm9vdA0JCWluZGV4LnJvb3QNCQltYWluUmVzcG9uZGVyLnJvb3QNCQltZW1iZXJzLnJvb3QNCQl0ZW1wLm1haW5SZXNwb25kZXINCQl1c2VyLmRhdGFiYXNlcw0JCXVzZXIuYmV0dHkucnBjSGFuZGxlcnMNCQl1c2VyLmJldHR5LnF1ZXVlT3V0Z29pbmcNCS0NCU1ha2UgYW4gSFRUUCBSZXF1ZXN0Li4uDQlDbG9zZS9IaWRlIFdpbmRvd3MNCVdha2UgYWxsIFRocmVhZHMNCU1hcCB0byBEb21haW4uLi4NCUxvb2t1cCBEb21haW4uLi4NCVJldmVyc2UgRG9tYWluIExvb2t1cC4uLg0JLQ0JSW5zdGFsbCBtYWluUmVzcG9uZGVyIFNpdGUuLi4NCVVuaW5zdGFsbCBtYWluUmVzcG9uZGVyIFNpdGUuLi4NCT0gbG9jYWwgKHMgPSAiQ29weSBTYW1wbGUgbWFpblJlc3BvbmRlciBTaXRlIik7IGlmIHRhYmxlLmdldEN1cnNvciAoKSAhPSBAc2FtcGxlTXJXcyB7cyA9ICIoIiArIHN9OyByZXR1cm4gKHMpDQktDQlTZWFyY2ggRW5naW5lDQkJSW5kZXggU3RvcmVkIFBhZ2VzDQkJRGVsZXRlIFBhZ2UgRnJvbSBJbmRleC4uLg0JCUVkaXQgUGFnZSBJbmZvLi4uDYAAAAAAAAAAAAAACgAAAAAAAAZ+Q7QAAAAAAAoAAAAAAAAGfkO4AAAAAAAKAAAAAAAABn5DvAAAAAAAAAAAAAAAAAAAAAAACgAAAAAAAAZ+RQgAAAAAAAoAAAAAAAAGfkV0AAAAAAAKAAAAAAAABn5FkAAAAAAACgAAAAAAAAZ+RZwAAAAAAAoAAAAAAAAGfkWoAAAAAAAKAAAAAAAABn5FtAAAAAAACgAAAAAAAAZ+RcAAAAAAAAoAAAAAAAAGfkXMAAAAAAAKAAAAAAAABn5F2AAAAAAAAAAAAAAACgAAAAAAAAZ+ReQAAAAAAAoAAAAAAAAGfkXwAAAAAAAKAAAAAAAABn5F/AAAAAAACgAAAAAAAAZ+RggAAAAAAAoAAAAAAAAGfkYUAAAAAAAKAAAAAAAABn5GOAAAAAAAAAAAAAAACgAAAAAAAAZ+RkQAAAAAAAoAAAAAAAAGfkZQAAAAAAAKAAAAAAAABn5GXAAAAAAAAAAAAAAAAAAAAAAACgAAAAAAAAZ+RmgAAAAAAAoAAAAAAAAGfkZ0AAAAAAAKAAAAAAAABn5H4AACAAAA9gAABnAAAgAAAA8FQXJpYWwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAAAAAAAAAAAAALQ58nW8oO14AAAAMQAAAWYBWAIuAtlMQU5E////////AAAAAAAAbWFjIAAAAAAAAAAAAAAAAENoYW5nZXMNCTQvMTMvMDQ7IDE6MDU6NDggQU0gYnkgSkVTDQkJVXBkYXRlZCBwYXNzd29yZCBwcm9tcHQuDQk5LzMwLzAzOyAxOjAyOjUzIFBNIGJ5IEpFUw0JCVN0b3JlIHRoZSBhZG1pbiBwYXNzd29yZCBhcyBhIGJpbmFyeSB2YWx1ZS4NaWYgbm90IChtYWluUmVzcG9uZGVyLm1lbnVDb21tYW5kcy5tdXN0QmVTaXhQb2ludE9uZSAoKSkNCXJldHVybiAoZmFsc2UpDWxvY2FsIChwYXNzd29yZCkNaWYgZGlhbG9nLmdldFBhc3N3b3JkICgiU2V0IHBhc3N3b3JkIGZvciB0aGUgRnJvbnRpZXIgQWRtaW4gd2Vic2l0ZToiLCBAcGFzc3dvcmQpDQlidW5kbGUgLy9jcmVhdGUgdGhlIEFkbWluIG1lbWJlcnNoaXAgZ3JvdXAgaWYgbmVlZGVkDQkJbG9jYWwgKGFkclJvb3QgPSBAW3N5c3RlbS50ZW1wLm1haW5SZXNwb25kZXIubWVtYmVyc1Jvb3RGaWxlXSkNCQlsb2NhbCAoYWRyR3JvdXAgPSBAYWRyUm9vdF4uYWRtaW4pDQkJaWYgbm90IGRlZmluZWQgKGFkckdyb3VwXikNCQkJbmV3ICh0YWJsZVR5cGUsIGFkckdyb3VwKQ0JCWlmIG5vdCBkZWZpbmVkIChhZHJHcm91cF4uY2FsbGJhY2tzKQ0JCQluZXcgKHRhYmxlVHlwZSwgQGFkckdyb3VwXi5jYWxsYmFja3MpDQkJaWYgbm90IGRlZmluZWQgKGFkckdyb3VwXi5jb29raWVEb21haW4pDQkJCWFkckdyb3VwXi5jb29raWVEb21haW4gPSAiIg0JCWlmIG5vdCBkZWZpbmVkIChhZHJHcm91cF4uY29va2llRXhwaXJlcykNCQkJYWRyR3JvdXBeLmNvb2tpZUV4cGlyZXMgPSAiTW9uLCAwMSBBcHIgMjAzMCAwNzowMDowMCBHTVQiDQkJaWYgbm90IGRlZmluZWQgKGFkckdyb3VwXi5jb29raWVOYW1lKQ0JCQlhZHJHcm91cF4uY29va2llTmFtZSA9ICJBZG1pbiINCQlpZiBub3QgZGVmaW5lZCAoYWRyR3JvdXBeLm1haWxSZXR1cm5BZGRyZXNzKQ0JCQlhZHJHcm91cF4ubWFpbFJldHVybkFkZHJlc3MgPSB1c2VyLnByZWZzLm1haWxBZGRyZXNzDQkJaWYgbm90IGRlZmluZWQgKGFkckdyb3VwXi5tYWlsU3ViamVjdCkNCQkJYWRyR3JvdXBeLm1haWxTdWJqZWN0ID0gIkFkbWluIg0JCWlmIG5vdCBkZWZpbmVkIChhZHJHcm91cF4ubWFpbFRlbXBsYXRlKQ0JCQl3cC5uZXdUZXh0T2JqZWN0ICgiIiwgQGFkckdyb3VwXi5tYWlsVGVtcGxhdGUpDQkJaWYgbm90IGRlZmluZWQgKGFkckdyb3VwXi5vcGVuVG9QdWJsaWMpDQkJCWFkckdyb3VwXi5vcGVuVG9QdWJsaWMgPSBmYWxzZQ0JCWlmIG5vdCBkZWZpbmVkIChhZHJHcm91cF4udXNlcnMpDQkJCW5ldyAodGFibGVUeXBlLCBAYWRyR3JvdXBeLnVzZXJzKQ0JDQlsb2NhbCAoYWRyTWVtYmVyID0gbWFpblJlc3BvbmRlci5tZW1iZXJzLmdldE1lbWJlclRhYmxlICgiQWRtaW4iLCB1c2VyLnByZWZzLm1haWxBZGRyZXNzKSkNCWlmIG5vdCBkZWZpbmVkIChhZHJNZW1iZXJeKQ0JCW5ldyAodGFibGVUeXBlLCBhZHJNZW1iZXIpDQlhZHJNZW1iZXJeLnBhc3N3b3JkID0gYmluYXJ5IChwYXNzd29yZCkNCWlmIG5vdCBkZWZpbmVkIChhZHJNZW1iZXJeLnBlcnNvbmFsSW5mbykNCQluZXcgKHRhYmxlVHlwZSwgQGFkck1lbWJlcl4ucGVyc29uYWxJbmZvKQ0JaWYgbm90IGRlZmluZWQgKGFkck1lbWJlcl4ucGVyc29uYWxJbmZvLm5hbWUpDQkJYWRyTWVtYmVyXi5wZXJzb25hbEluZm8ubmFtZSA9IHVzZXIucHJlZnMubmFtZQ2EAAAAAACAAAAAAACAAAAAAACAAAAAAAAAAAAAAACAAAAAAAAAAAAAAACAAAAAAACAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAACAAAAAAACAAAAAAAAAAAAAAACAAAAAAACAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAgAAAE4AAAH/AAMAAAAPBUFyaWFsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAAAAAAAAAAAAAAC0RcCmuWyGGAAAADAAAAFaAVQCIgLVTEFORP///////wAAAAAAAG1hYyAAAAAAAAAAAAAAAABpZiBub3QgKG1haW5SZXNwb25kZXIubWVudUNvbW1hbmRzLm11c3RCZVNpeFBvaW50T25lICgpKQ0JcmV0dXJuIChmYWxzZSkNbG9jYWwgKGFkckFkbWluR3JvdXAgPSBAW3N5c3RlbS50ZW1wLm1haW5SZXNwb25kZXIubWVtYmVyc1Jvb3RGaWxlXS5hZG1pbikNaWYgbm90IGRlZmluZWQgKGFkckFkbWluR3JvdXBeKQ0JZGlhbG9nLm5vdGlmeSAoIkNhbid0IG9wZW4gdGhlIEFkbWluIFNpdGUgYmVjYXVzZSB5b3UgaGF2ZW4ndCBzZXQgYW4gQWRtaW4gcGFzc3dvcmQgdmlhIHRoZSBTZXQgQWRtaW4gUGFzc3dvcmQgY29tbWFuZC4iKQ0JcmV0dXJuIChmYWxzZSkNbG9jYWwgKHBvcnQpDXBvcnQgPSB1c2VyLmluZXRkLmNvbmZpZy5odHRwMi5wb3J0DWlmIHBvcnQgPT0gODANCXdlYkJyb3dzZXIub3BlblVybCAoImh0dHA6Ly8xMjcuMC4wLjEvIikNZWxzZQ0Jd2ViQnJvd3Nlci5vcGVuVXJsICgiaHR0cDovLzEyNy4wLjAuMToiICsgcG9ydCArICIvIikNd2ViQnJvd3Nlci5icmluZ1RvRnJvbnQgKCkNgAAAAAAAAAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAAAIAAAASAAAAegAAAAAADwVBcmlhbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAAAAAAAAAAGVAAAtFEgnrRcjL8AAAAkAAABZgFSAi4C00xBTkT///////8AAAAAAABtYWMgAAAAAAAAAAAAAAAAaWYgbm90IChtYWluUmVzcG9uZGVyLm1lbnVDb21tYW5kcy5tdXN0QmVTaXhQb2ludE9uZSAoKSkNCXJldHVybiAoZmFsc2UpDW1haW5SZXNwb25kZXIubWVudUNvbW1hbmRzLnRvZ2dsZUNvbnRyb2xQYW5lbCAoKQ2AAAAAAAAAAAAAAACAAAAAAAAAAgAAAAYAAAAzAAAAAAAPBUFyaWFsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAAAAAAAAAAZUAAC0HVLftB1TXAAAAD0AAAEwAaIB+AMjTEFORP///////wAAAAAAAG1hYyAAAAAAAAAAAAAAAABlZGl0IChAW3N5c3RlbS50ZW1wLm1haW5yZXNwb25kZXIuY29uZmlncm9vdGZpbGVdKQ2AAAAAAAAAAgAAAAYAAAA0AAAAAAAPBUFyaWFsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAAAAAAAAAAZUAAC0HVLftB1S9AAAADsAAAEwAaIB+AMjTEFORP///////wAAAAAAAG1hYyAAAAAAAAAAAAAAAABlZGl0IChAW3N5c3RlbS50ZW1wLm1haW5yZXNwb25kZXIuZGlzY3Vzc3Jvb3RmaWxlXSkNgAAAAAAAAAIAAAAGAAAAMgAAAAAADwVBcmlhbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAAAAAAAAAAGVAAAtB1S37QdU7sAAAA8AAABMAGiAfgDI0xBTkT///////8AAAAAAABtYWMgAAAAAAAAAAAAAAAAZWRpdCAoQFtzeXN0ZW0udGVtcC5tYWlucmVzcG9uZGVyLmluZGV4cm9vdGZpbGVdKQ2AAAAAAAAAAgAAAAYAAAA6AAAAAAAPBUFyaWFsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAAAAAAAAAAZUAAC0HVLftB1TRgAAAD0AAAEwAaIB+AMjTEFORP///////wAAAAAAAG1hYyAAAAAAAAAAAAAAAABlZGl0IChAW3N5c3RlbS50ZW1wLm1haW5yZXNwb25kZXIubWFpbnJlc3BvbmRlcnJvb3RmaWxlXSkNgAAAAAAAAAIAAAAGAAAANAAAAAAADwVBcmlhbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAAAAAAAAAAGVAAAtB1S37QdUw0AAAA8AAABMAGiAfgDI0xBTkT///////8AAAAAAABtYWMgAAAAAAAAAAAAAAAAZWRpdCAoQFtzeXN0ZW0udGVtcC5tYWlucmVzcG9uZGVyLm1lbWJlcnNyb290ZmlsZV0pDYAAAAAAAAACAAAABgAAACIAAAAAAA8FQXJpYWwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAAAAAAAABlQAALQdU4C0HVOLAAAAOwAAATABogH4AyNMQU5E////////AAAAAAAAbWFjIAAAAAAAAAAAAAAAAGVkaXQgKEBzeXN0ZW0udGVtcC5tYWluUmVzcG9uZGVyKQ2AAAAAAAAAAgAAAAYAAAAXAAAAAAAPBUFyaWFsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAAAAAAAAAAZUAAC0HVedtB1XpAAAADkAAAEwAaIB+AMjTEFORP///////wAAAAAAAG1hYyAAAAAAAAAAAAAAAABlZGl0IChAdXNlci5kYXRhYmFzZXMpDYAAAAAAAAACAAAABgAAAB8AAAAAAA8FQXJpYWwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAAAAAAAABlQAALQdV520HVjlAAAAOgAAATABogH4AyNMQU5E////////AAAAAAAAbWFjIAAAAAAAAAAAAAAAAGVkaXQgKEB1c2VyLmJldHR5LnJwY0hhbmRsZXJzKQ2AAAAAAAAAAgAAAAYAAAAhAAAAAAAPBUFyaWFsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAAAAAAAAAAZUAAC0HVedtB1Y/wAAADoAAAEwAaIB+AMjTEFORP///////wAAAAAAAG1hYyAAAAAAAAAAAAAAAABlZGl0IChAdXNlci5iZXR0eS5xdWV1ZU91dGdvaW5nKQ2AAAAAAAAAAgAAAAYAAAApAAAAAAAPBUFyaWFsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAAAAAAAAAAZUAACyO3TfslZ4hQAAAE0AAADsAS4BtAKvTEFORP///////wAAAAAAAG1hYyAAAAAAAAAAAAAAAABtYWlucmVzcG9uZGVyLnRlc3RpbmcubWFrZUh0dHBSZXF1ZXN0ICgpDYAAAAAAAAACAAAABgAAAC4AAAAAAA8FQXJpYWwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAAAAAAAABlQAALQXPwC0RcASAAAAPAAAAPEBGwG5ApxMQU5E////////AAAAAAAAbWFjIAAAAAAAAAAAAAAAAG1haW5SZXNwb25kZXIubWVudUNvbW1hbmRzLmNsb3NlRXZlcnl0aGluZyAoKQ2AAAAAAAAAAgAAABgAAAB0AAAAAAAPBUFyaWFsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAAAAAAAAAAZUAAC0Lf65tFx7HAAAADUAAAE0AVsB/ALcTEFORP///////wAAAAAAAG1hYyAAAAAAAAAAAAAAAABGcm9udGllci52ZXJzaW9uUmVxdWlyZWQgKCI2LjFiMTYiKQ1sb2NhbCAoYWRyaXRlbSkNZm9yIGFkcml0ZW0gaW4gQHN5c3RlbS5jb21waWxlci50aHJlYWRzDQl0aHJlYWQud2FrZSAoYWRyaXRlbV4pDYAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAAACAAAABgAAACoAAAAAAA8FQXJpYWwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAAAAAAAABlQAALQ4fMa0OHzvAAAAMgAAAVkBagIhAutMQU5E////////AAAAAAAAbWFjIAAAAAAAAAAAAAAAAG1haW5SZXNwb25kZXIubWVudUNvbW1hbmRzLm1hcFRvRG9tYWluICgpDYAAAAAAAAACAAAABgAAACsAAAAAAA8FQXJpYWwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAAAAAAAABlQAALQ4oUm0OKHGAAAAMgAAAVkBagIhAutMQU5E////////AAAAAAAAbWFjIAAAAAAAAAAAAAAAAG1haW5SZXNwb25kZXIubWVudUNvbW1hbmRzLmxvb2t1cERvbWFpbiAoKQ2AAAAAAAAAAgAAAAYAAAAyAAAAAAAPBUFyaWFsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAAAAAAAAAAZUAAC0OKFJtDnM2AAAADMAAAFZAWoCIQLrTEFORP///////wAAAAAAAG1hYyAAAAAAAAAAAAAAAABtYWluUmVzcG9uZGVyLm1lbnVDb21tYW5kcy5sb29rdXBEb21haW5SZXZlcnNlICgpDYAAAAAAAAACAAAABgAAADcAAAIAAA8GR2VuZXZhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAABlQAAL8VMQm/FTEaAAAABgAAAacBvwJvA0BMQU5E////////AAAAAAAAbWFjIAAAAAAAAAAAAAAAAG1haW5SZXNwb25kZXIubWVudUNvbW1hbmRzLmluc3RhbGxNYWluUmVzcG9uZGVyU2l0ZSAoKQ2AAAAAAAAAAgAAAAYAAAA5AAACAAAPBkdlbmV2YQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAZUAAC/FSQ6vxUkQQAAAAcAAAGnAb8CbwNATEFORP///////wAAAAAAAG1hYyAAAAAAAAAAAAAAAABtYWluUmVzcG9uZGVyLm1lbnVDb21tYW5kcy51bkluc3RhbGxNYWluUmVzcG9uZGVyU2l0ZSAoKQ2AAAAAAAAAAgAAAQ4AAAX2AAICAAAPBkdlbmV2YQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAOAAAAAAAAAAC/8nPPwBIseAAAACoBAAGnAb8CbwNATEFORP///////wAAAAAAAG1hYyAAAAAAAAAAAAAAAABDaGFuZ2VzDQkyLzEwLzA2OyAxMTozOTozNyBBTSBieSBUQUMNCQlzdG9yZSB3ZWJzaXRlIHVybCBpbiBuZXdVcmwNCTEvMTcvMDY7IDEwOjE0OjAxIEFNIGJ5IFRBQw0JCWNyZWF0ZWQNDWxvY2FsICh3ZWJzaXRlTmFtZSkNDWlmIGRpYWxvZy5hc2sgKCJTaXRlIG5hbWU/IiwgQHdlYnNpdGVOYW1lKQ0JaWYgc3RyaW5nLmxvd2VyICh3ZWJzaXRlTmFtZSkgZW5kc1dpdGggIm1yd3MiDQkJd2Vic2l0ZU5hbWUgPSBzdHJpbmcuZGVsZXRlICh3ZWJzaXRlTmFtZSwgc3RyaW5nLmxlbmd0aCAod2Vic2l0ZU5hbWUpIC0gMywgNCkNCQ0JbG9jYWwgKGNhbm9uaWNhbCkNCQ0JY2Fub25pY2FsID0gc3RyaW5nLmlubmVyQ2FzZU5hbWUgKHdlYnNpdGVOYW1lKQ0JY2Fub25pY2FsID0gc3RyaW5nLm1pZCAoY2Fub25pY2FsLCAxLCAyNykNCQ0JbG9jYWwgKGFkclNpdGUgPSBAdGFibGUuZ2V0Um9vdEFkZHJlc3MgKEBzYW1wbGVNcldzKV4uW2Nhbm9uaWNhbCArICJNcldzIl0pDQkNCWlmIGRlZmluZWQgKGFkclNpdGVeKQ0JCWRpYWxvZy5hbGVydCAoIlRoZSBtYWluUmVzcG9uZGVyIHdlYnNpdGUgXCIiICsgY2Fub25pY2FsICsgIk1yV3MiICsgIlwiIGFscmVhZHkgZXhpc3RzLiIpDQkJDQkJcmV0dXJuIChmYWxzZSkNCQ0JYWRyU2l0ZV4gPSBzYW1wbGVNcldzDQkNCWFkclNpdGVeLlsiI2Z0cFNpdGUiXS5uZXdVcmwgPSBjb25maWcubWFpbnJlc3BvbmRlci5wcmVmcy5iYXNlVXJsICsgY2Fub25pY2FsICsgIi8iDQlhZHJTaXRlXi5bIiNzaXRlTmFtZSJdID0gd2Vic2l0ZU5hbWUNCQ0Jb3AubmV3T3V0bGluZU9iamVjdCAoIiN0aXRsZSBcIkl0IFdvcmtlZCFcIlxyXHJDb25ncmF0dWxhdGlvbnMgeW91IGhhdmUgY29waWVkIHRoZSBTYW1wbGUgbWFpblJlc3BvbmRlciBXZWJzaXRlIGFuZCBpbnN0YWxsZWQgdGhlIGNvcHkhIiwgQGFkclNpdGVeLmRlZmF1bHQpDQkNCWJ1bmRsZSAvLyBjaGFuZ2UgY2Fub25pY2FsIHNpdGUgcmVmZXJlbmNlcw0JCWJ1bmRsZSAvLyBzaW1wbGUgYXNzaWdubWVudA0JCQlhZHJTaXRlXi5bIiNwcmVmcyJdLnNlYXJjaC5zaXRlTmFtZSA9IGNhbm9uaWNhbA0JCQ0JCWJ1bmRsZSAvLyBzdHJpbmcgcmVwbGFjZW1lbnRzDQkJCW9uIHJlcGxhY2UgKGFkcikNCQkJCWFkcl4gPSBzdHJpbmcucmVwbGFjZSAoYWRyXiwgInNhbXBsZSIsIGNhbm9uaWNhbCkNCQkJDQkJCXJlcGxhY2UgKEBhZHJTaXRlXi5bIiNkaXNjdXNzaW9uR3JvdXAiXS5lZGl0b3JpYWxQcmVmcy5tZW1iZXJzaGlwR3JvdXApDQkJCXJlcGxhY2UgKEBhZHJTaXRlXi5bIiNtZW1iZXJzaGlwR3JvdXAiXS5jb29raWVOYW1lKQ0JCQlyZXBsYWNlIChAYWRyU2l0ZV4uWyIjcHJlZnMiXS5kZWZhdWx0TWVtYmVyc2hpcEdyb3VwKQ0JCQlyZXBsYWNlIChAYWRyU2l0ZV4uWyIjcHJlZnMiXS5kaXNjdXNzaW9uUm9vdCkNCQkJcmVwbGFjZSAoQGFkclNpdGVeLmRpc2N1c3Npb25Hcm91cC5lZGl0LlsiI21lbWJlcnMiXSkNCQkJcmVwbGFjZSAoQGFkclNpdGVeLm1lbWJlci5wcmVmZXJlbmNlcy5bIiNtZW1iZXJzIl0pDYQAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAAAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAIAAAAAAAAACAAAAHgAAANMABAIAAA8FQXJpYWwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAAAAAAAABlQAALLbhZ+0RcBMAAAASAAAASYBPwHuAsBMQU5E////////AAAAAAAAbWFjIAAAAAAAAAAAAAAAAGlmIG5vdCAoY29uZmlnLm1haW5SZXNwb25kZXIucHJlZnMuZmxTZWFyY2hFbmdpbmUpDQlkaWFsb2cuYWxlcnQgKCJDYW4ndCBpbmRleCBzdG9yZWQgcGFnZXMgYmVjYXVzZSB0aGlzIG1hY2hpbmUgaXMgbm90IGEgc2VhcmNoIGVuZ2luZSBzZXJ2ZXIuIikNCXJldHVybiAoZmFsc2UpDQ1tYWluUmVzcG9uZGVyLnNlYXJjaC5zZXJ2ZXIuaW5kZXhTdG9yZWRQYWdlcyAoKQ2AAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAAAAAgAAACQAAAEXAAUCAAAPBUFyaWFsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAAAAAAAAAAZUAACy11ortEXARgAAAEoAAAEmAT8B7gLATEFORP///////wAAAAAAAG1hYyAAAAAAAAAAAAAAAABpZiBub3QgKGNvbmZpZy5tYWluUmVzcG9uZGVyLnByZWZzLmZsU2VhcmNoRW5naW5lKQ0JZGlhbG9nLmFsZXJ0ICgiQ2FuJ3QgZGVsZXRlIGEgcGFnZSBiZWNhdXNlIHRoaXMgbWFjaGluZSBpcyBub3QgYSBzZWFyY2ggZW5naW5lIHNlcnZlci4iKQ0JcmV0dXJuIChmYWxzZSkNbG9jYWwgKHVybCkNaWYgZGlhbG9nLmFzayAoIlVSTCBvZiBwYWdlIHRvIGRlbGV0ZT8iLCBAdXJsKQ0JbWFpblJlc3BvbmRlci5zZWFyY2guc2VydmVyLmRlSW5kZXhQYWdlICh1cmwsIGZsRGlhbG9nczp0cnVlKQ2AAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAAAAAgAAAE4AAAJAAAwCAAAPBUFyaWFsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAAAFAAUAAAZUAACy11mVtEXAQQAAAEgAAAEmAT8B7gLATEFORP///////wAAAAAAAG1hYyAAAAAAAAAAAAAAAABpZiBub3QgKGNvbmZpZy5tYWluUmVzcG9uZGVyLnByZWZzLmZsU2VhcmNoRW5naW5lKQ0JZGlhbG9nLmFsZXJ0ICgiQ2FuJ3QgRWRpdCBQYWdlIEluZm8gYmVjYXVzZSB0aGlzIG1hY2hpbmUgaXMgbm90IGEgc2VhcmNoIGVuZ2luZSBzZXJ2ZXIuIikNCXJldHVybiAoZmFsc2UpDWxvY2FsICh1cmwpDWlmIGRpYWxvZy5hc2sgKCJVUkwgb2YgcGFnZT8iLCBAdXJsKQ0JbG9jYWwgKGluZGV4UGF0aCA9IG1haW5SZXNwb25kZXIuc2VhcmNoLnV0aWxpdGllcy5nZXRJbmRleFBhdGggKCkpDQltYWluUmVzcG9uZGVyLnNlYXJjaC51dGlsaXRpZXMuYXNzdXJlSW5kZXggKCkNCWxvY2FsIChhZHJQYWdlSW5mb1RhYmxlID0gQFtpbmRleFBhdGhdLnBhZ2VJbmZvKQ0JbG9jYWwgKGFkclBhZ2VJbmZvID0gQGFkclBhZ2VJbmZvVGFibGVeLlt1cmxdKQ0JaWYgbm90IGRlZmluZWQgKGFkclBhZ2VJbmZvXikNCQlkaWFsb2cuYWxlcnQgKCJDYW4ndCBlZGl0IGluZm8gZm9yICIgKyB1cmwgKyAiIGJlY2F1c2UgdGhlIHBhZ2UgaXNuJ3QgaW4gdGhlIGluZGV4LiIpDQkJcmV0dXJuIChmYWxzZSkNCWVkaXQgKGFkclBhZ2VJbmZvKQ2AAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAAA= \ No newline at end of file |
|
From: Andre R. <and...@us...> - 2006-02-10 20:48:54
|
Update of /cvsroot/frontierkernel/Frontier/build_XCode/tools In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv32594 Modified Files: appcopyright.c appversion.c Log Message: Specify return type of main() explicitly to avoid compiler warning. Index: appversion.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/build_XCode/tools/appversion.c,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** appversion.c 8 Feb 2006 19:13:44 -0000 1.1 --- appversion.c 10 Feb 2006 20:48:47 -0000 1.2 *************** *** 37,41 **** #include "versions.h" ! main () { printf(APP_VERSION_STRING); return 0; --- 37,41 ---- #include "versions.h" ! int main () { printf(APP_VERSION_STRING); return 0; Index: appcopyright.c =================================================================== RCS file: /cvsroot/frontierkernel/Frontier/build_XCode/tools/appcopyright.c,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** appcopyright.c 8 Feb 2006 19:13:44 -0000 1.1 --- appcopyright.c 10 Feb 2006 20:48:46 -0000 1.2 *************** *** 37,41 **** #include "versions.h" ! main () { printf(APP_COPYRIGHT); return 0; --- 37,41 ---- #include "versions.h" ! int main () { printf(APP_COPYRIGHT); return 0; |
|
From: creedon <icr...@us...> - 2006-02-10 03:21:34
|
Update of /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/discuss In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1634 Modified Files: getMessageAttachmentsFolder Log Message: added flStoreInSiteFolder parameter which when set to true just simply returns the site name Index: getMessageAttachmentsFolder =================================================================== RCS file: /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/discuss/getMessageAttachmentsFolder,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** getMessageAttachmentsFolder 26 Mar 2005 21:45:34 -0000 1.1.1.1 --- getMessageAttachmentsFolder 10 Feb 2006 03:21:26 -0000 1.2 *************** *** 1,3 **** FrontierVcsFile:1:scpt:mainResponder.discuss.getMessageAttachmentsFolder ! on getMessageAttachmentsFolder (adrMsgTable, adrUrl=nil, pta=nil) { ÇGet the path to the folder on disk where uploads attached to this message get stored. This is code factored out from mainResponder.discuss.editMessageForm, postAttachedFile, and postEditedMessage. adrUrl^, if not nil, will contain the url of the folder. Ç03/15/00; 4:53:20 PM by PBS if pta == nil { pta = html.getPageTableAddress ()}; local (adrDiscuss = mainResponder.discuss.openRoot ()); local (dgName = nameOf (adrDiscuss^)); local (groupName); bundle { //get the real name of the dg (it might be an address in discuss.root) ÇWhy not just use pta^.discussionRoot -- since that should be the real name? Because some static servers have case sensitive file systems. So get the name from discuss.root, so it's always the same. The same thing is done for the membership group name. local (adr = @[system.temp.mainResponder.discussRootFile]); if defined (adr^.[pta^.discussionRoot]) { dgName = nameOf (adr^.[pta^.discussionRoot])}}; bundle { //get the real name of the membership group (it might be an address in members.root) if defined (pta^.members) { groupName = pta^.members} else { groupName = pta^.defaultMembershipGroup}; local (adr = @[system.temp.mainResponder.membersRootFile]); if defined (adr^.[groupName]) { groupName = nameOf (adr^.[groupName])}}; local (folderPath = adrDiscuss^.prefs.binaryServerFolder); local (url = adrDiscuss^.prefs.binaryServerURL); local (pc = file.getPathChar ()); on addToPath (s) { //append sub-folders to folderpath folderPath = folderPath + s + pc; url = url + s + "/"; return (true)}; addToPath (groupName); addToPath (adrMsgTable^.member); addToPath (dgName); addToPath (adrMsgTable^.msgNum); if adrUrl != nil { //put the URL in adrUrl^ if wanted adrUrl^ = url}; return (folderPath)} \ No newline at end of file --- 1,3 ---- FrontierVcsFile:1:scpt:mainResponder.discuss.getMessageAttachmentsFolder ! on getMessageAttachmentsFolder (adrMsgTable, adrUrl = nil, pta = nil, flStoreInSiteFolder = false) { ÇChanges Ç2/9/06; 5:44:18 PM by TAC Çadded flStoreInSiteFolder parameter which when set to true just simply returns the site name Ç03/15/00; 4:53:20 PM by PBS Çcreated ÇGet the path to the folder on disk where uploads attached to this message get stored. This is code factored out from mainResponder.discuss.editMessageForm, postAttachedFile, and postEditedMessage. adrUrl^, if not nil, will contain the url of the folder. if pta == nil { pta = html.getPageTableAddress ()}; Çscratchpad.pt = pta^ // testing local (adrDiscuss = mainResponder.discuss.openRoot ()); local (dgName = nameOf (adrDiscuss^)); local (groupName); local (siteName = nameOf (pta^.adrSiteRootTable^)); if flStoreInSiteFolder { if string.lower (siteName) endsWith "mrws" { siteName = string.delete (siteName, sizeOf (siteName) - 3, infinity)}} else { bundle { //get the real name of the dg (it might be an address in discuss.root) ÇWhy not just use pta^.discussionRoot -- since that should be the real name? Because some static servers have case sensitive file systems. So get the name from discuss.root, so it's always the same. The same thing is done for the membership group name. local (adr = @[system.temp.mainResponder.discussRootFile]); if defined (adr^.[pta^.discussionRoot]) { dgName = nameOf (adr^.[pta^.discussionRoot])}}; bundle { //get the real name of the membership group (it might be an address in members.root) if defined (pta^.members) { groupName = pta^.members} else { groupName = pta^.defaultMembershipGroup}; local (adr = @[system.temp.mainResponder.membersRootFile]); if defined (adr^.[groupName]) { groupName = nameOf (adr^.[groupName])}}}; local (folderPath = adrDiscuss^.prefs.binaryServerFolder); local (url = adrDiscuss^.prefs.binaryServerURL); local (pc = file.getPathChar ()); on addToPath (s) { //append sub-folders to folderpath folderPath = folderPath + s + pc; url = url + s + "/"; return (true)}; if flStoreInSiteFolder { addToPath (siteName)} else { addToPath (groupName); addToPath (adrMsgTable^.member); addToPath (dgName); addToPath (adrMsgTable^.msgNum)}; if adrUrl != nil { //put the URL in adrUrl^ if wanted adrUrl^ = url}; return (folderPath)}; Çbundle // testing Çhtml.setPageTableAddress (@scratchpad.pt) Ç Çdialog.alert (getMessageAttachmentsFolder (@workingSampleMrWs.["#discussionGroup"].messages.["0000017"], flStoreInSiteFolder: true)) Ç Çhtml.deletePageTableAddress () \ No newline at end of file |
|
From: creedon <icr...@us...> - 2006-02-10 03:20:55
|
Update of /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1387 Modified Files: init Log Message: don't add any data to domains table at this time Index: init =================================================================== RCS file: /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/init,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** init 9 Feb 2006 02:52:29 -0000 1.9 --- init 10 Feb 2006 03:20:45 -0000 1.10 *************** *** 1,3 **** FrontierVcsFile:1:scpt:mainResponder.init ! on init () { ÇChanges Ç2/8/06; 11:07:06 AM by TAC Çadded mainResponderWebsites.root to nightly updates Çdefault website is sampleMrWs Çtweaked script formatting Ç2005 Ç12/21/05; 1:43:35 PM by TAC Çadded init for config.mainresponder.sites Ç9/7/05; 10:53:18 PM by TAC Çchanged userlandIcons to frontierIcons Çchanged /mainResponderResources/ to /resources/ Ç8/6/05; 10:30:54 AM by TAC Çpartial path support for config.mainresponder.prefs.logFolder; config.mainresponder.prefs.discussArchiveFolder; config.mainresponder.prefs.backupFolder, more portable Ç6/19/05; 10:47:10 AM by TAC Çchanged localhost value to 127.0.0.1 Çadded config.mainResponder.callbacks.subscriptionsServer Çadded config.mainresponder.prefs.legalMacros Çadded config.mainresponder.prefs.baseUrl for adminSite setupFrontier Ç6/16/05; 1:52:08 PM by TAC Çremoved manila.root from nightly root update init Ç3/10/03; 5:53:51 PM by JES ÇMake sure that system.environment.isRadio is defined (and false). Ç3/4/03; 3:19:15 PM by JES ÇReturn @config.mainResponder. Ç2002 Ç9/3/02; 1:26:05 AM by JES ÇFixed a bonehead bug -- we were calling user.rootUpdates.init to initialize the user.rootUpdates.callbacks table. We should have called rootUpdates.init instead. Ç8/28/02; 11:18:11 PM by JES ÇRegister admin site callbacks, and config.mainResponder.prefs.flLogRootUpdates. Ç8/20/02; 12:38:52 AM by JES ÇIf the port 5335 listen configured at user.inetd.config.http2 is not installed, install it, based on the default http listen. Ç8/18/02; 5:21:19 PM by JES ÇInstall the admin site pathEvaluation callback at config.mainresponder.callbacks.pathEvaluation.frontierAdminSite. Ç8/1/02; 6:59:56 PM by JES ÇInitialize new search engine prefs at config.mainResponder.search.prefs. No longer create config.mainresponder.data.searchQueue. Ç06/22/00; 3:57:55 PM by PBS ÇSet hashed cookies to true by default. Ç06/17/00; 5:29:29 PM by PBS ÇNow false by default: flKeepParamTable, flLog, flDiscussStatsNightly Ç1999 Ç12/11/1999 at 5:29:32 AM by AR ÇCommented out the code for hooking into the scheduler. This is now handled in mainResponder.startup. Ç11/23/99; 4:10:06 PM by PBS ÇBackups and discuss archiving now false by default. Ç11/20/99; 4:29:29 PM by PBS ÇChanged some defaults. Discuss archiving is true by default. Nightly updates are on by default; the default nightly update list contains Frontier, mainResponder, manila, and prefs.root. Save databases every minute is true by default. Logging database opens to the temp table is now false by default. Ç11/16/99; 11:48:17 PM by PBS ÇSet up prefs for flUpdateNightly, updateNightlyList, and securityLevel. The first two are prefs for automated nightly updates, the third is the security level for the Control Panel. Ç10/25/99; 4:04:59 PM by PBS Çconfig.mainResponder.prefs.flControlPanel: if true, then the /controlPanel/ system website can be accessed. It's true by default. Ç8/15/99; 9:53:42 AM by DW Çconfig.mainresponder.prefs.flLogReopenHourly, if true, we close the log file every hour. It will be re-opened by the next log.add call. In our work with the 6.1 kernel, we've determined that for busy servers this helps Frontier's memory utilization significantly, and the cost of re-opening the file once an hour is relatively small. Ç8/15/99; 9:34:07 AM by DW ÇMake sure that scheduler tasks are installed. This is also handled in mainResponder.install, but I don't want to ask people to run this script to go to 6.1, so we check to see if they're defined and if they're not we link them in. Ç8/15/99; 8:26:14 AM by DW Çinitialize config.mainresponder.prefs.flArchiveDiscuss and discussArchiveFolder. ÇWed, Mar 10, 1999 at 2:34:19 PM by PBS ÇInitialize config.mainResponder.data. ÇInitialize config.mainResponder.data.searchQueue. ÇWed, Mar 10, 1999 at 2:19:48 PM by PBS ÇInitialize the config.mainresponder.search table. ÇSet config.mainResponder.prefs.flSearchEngine to false by default. ÇThis means that this machine is not, by default, a search engine server. ÇSet config.mainResponder.prefs.flLogMemAvail to false by default. ÇTue, Mar 9, 1999 at 4:12:13 PM by PBS ÇUse Frontier.getSubFolder rather than mainResponder.getFolder. ÇSat, Mar 20, 1999 at 4:48:37 PM by PBS ÇAdded flConvertToMacText pref. ÇOn Macs, convert incoming latin text to Mac. ÇOn Windows the pref has no effect. ÇInitialize mainResponder local (ps = string.popTrailing (system.verbs.builtins.Frontier.pathstring, file.getPathChar ())); // path string minus the trailing path character on sureTable (adrtable) { if not defined (adrtable^) { new (tabletype, adrtable)}}; sureTable (@config.mainresponder); bundle { //config.mainresponder.prefs sureTable (@config.mainresponder.prefs); if not defined (config.mainresponder.prefs.baseUrl) { config.mainresponder.prefs.baseUrl = "http://127.0.0.1/"}; if not defined (config.mainresponder.prefs.backupFolder) { config.mainresponder.prefs.backupFolder = Frontier.getSubFolder ("/ops/backups/") - ps}; // 8/6/05; 10:30:54 AM by TAC if not defined (config.mainresponder.prefs.defaultDiscussRoot) { config.mainresponder.prefs.defaultDiscussRoot = "discuss"}; if not defined (config.mainresponder.prefs.defaultNewsRoot) { config.mainresponder.prefs.defaultNewsRoot = "default"}; if not defined (config.mainresponder.prefs.flAllowPublicSearchSubmissions) { //PBS 3/9/99 config.mainresponder.prefs.flAllowPublicSearchSubmissions = false}; if not defined (config.mainresponder.prefs.flBackupNightly) { config.mainresponder.prefs.flBackupNightly = false}; //PBS 11/23/99: now false by default if not defined (config.mainresponder.prefs.flDiscussStatsNightly) { Çconfig.mainresponder.prefs.flDiscussStatsNightly = true config.mainresponder.prefs.flDiscussStatsNightly = false}; //PBS 06/17/00: Now false by default for 6.2. if not defined (config.mainresponder.prefs.flArchiveDiscuss) { config.mainresponder.prefs.flArchiveDiscuss = false}; //PBS 11/23/99: now false by default if not defined (config.mainresponder.prefs.discussArchiveFolder) { config.mainresponder.prefs.discussArchiveFolder = Frontier.getSubFolder ("/ops/discussArchive/") - ps}; // 8/6/05; 10:30:54 AM by TAC if not defined (config.mainresponder.prefs.flControlPanel) { //PBS 10/25/99: pref for the /controlPanel/ site config.mainresponder.prefs.flControlPanel = true}; if not defined (config.mainresponder.prefs.flDebug) { config.mainresponder.prefs.flDebug = false}; if not defined (config.mainresponder.prefs.flKeepParamTable) { Çconfig.mainresponder.prefs.flKeepParamTable = true config.mainresponder.prefs.flKeepParamTable = false}; //PBS 06/17/00: Now false by default in 6.2. if not defined (config.mainresponder.prefs.flLog) { Çconfig.mainresponder.prefs.flLog = true config.mainresponder.prefs.flLog = false}; //PBS 06/17/00: HTTP logging now off by default in 6.2. if not defined (config.mainresponder.prefs.flLogMemavail) { config.mainresponder.prefs.flLogMemavail = false}; if not defined (config.mainresponder.prefs.flLogDatabaseOpens) { config.mainresponder.prefs.flLogDatabaseOpens = false}; //PBS 11/20/99: now false by default, no to logging database opens to the temp table if not defined (config.mainresponder.prefs.flLogReopenHourly) { config.mainresponder.prefs.flLogReopenHourly = false}; if not defined (config.mainresponder.prefs.flOpenAboutWindow) { config.mainresponder.prefs.flOpenAboutWindow = true}; if not defined (config.mainresponder.prefs.flBuildPagesInBackground) { config.mainresponder.prefs.flBuildPagesInBackground = false}; //PBS 11/20/99: now false by default, no to building pages in the background if not defined (config.mainresponder.prefs.flProfiling) { config.mainresponder.prefs.flProfiling = false}; if not defined (config.mainresponder.prefs.flSaveDatabasesEveryMinute) { config.mainresponder.prefs.flSaveDatabasesEveryMinute = true}; //PBS 11/20/99: save databases every minute is now true by default if not defined (config.mainResponder.prefs.flMembershipHashedCookies) { //PBS 06/22/00: true by default config.mainResponder.prefs.flMembershipHashedCookies = true}; if not defined (config.mainresponder.prefs.flSearchEngine) { config.mainresponder.prefs.flSearchEngine = false}; if not defined (config.mainresponder.prefs.flStats) { config.mainresponder.prefs.flStats = true}; if not defined (config.mainresponder.prefs.flSubscriptions) { config.mainresponder.prefs.flSubscriptions = false}; if not defined (config.mainresponder.prefs.hitsBetweenLogSaves) { config.mainresponder.prefs.hitsBetweenLogSaves = 100}; if not defined (config.mainresponder.prefs.flConvertToMacText) { //PBS 3/20/99 config.mainresponder.prefs.flConvertToMacText = true}; if not defined (config.mainresponder.prefs.logFolder) { config.mainresponder.prefs.logFolder = Frontier.getSubFolder ("/ops/logs/") - ps}; // 8/6/05; 10:30:54 AM by TAC if not defined (config.mainresponder.prefs.legalMacros) { new (tabletype, @config.mainresponder.prefs.legalMacros)}; if not defined (config.mainresponder.prefs.legalTags) { new (tabletype, @config.mainresponder.prefs.legalTags); config.mainresponder.prefs.legalTags.i = true; config.mainresponder.prefs.legalTags.pre = true}; if not defined (config.mainresponder.prefs.flAllowByIpOnly) { //AR 11/04/1999 config.mainresponder.prefs.flAllowByIpOnly = false}; if not defined (config.mainresponder.prefs.allowedIpAddresses) { //AR 11/04/1999 config.mainresponder.prefs.allowedIpAddresses = "127.0.0.1"}; if not defined (config.mainResponder.prefs.flUpdateNightly) { //PBS 11/16/99: update various gdbs every night config.mainResponder.prefs.flUpdateNightly = true}; //PBS 11/20/99: nightly updates now true by default if not defined (config.mainResponder.prefs.updateNightlyList) { //PBS 11/16/99: list of gdbs to update nightly config.mainResponder.prefs.updateNightlyList = {"Frontier.root", "mainResponder.root", "prefs.root", "mainResponderWebsites.root"}}; if not defined (config.mainResponder.prefs.securityLevel) { //PBS 11/16/99: set up security level pref config.mainResponder.prefs.securityLevel = 0}; if not defined (config.mainResponder.prefs.flLogRootUpdates) { config.mainResponder.prefs.flLogRootUpdates = true}}; bundle { //config.mainresponder.urls local (localhost = "127.0.0.1"); sureTable (@config.mainresponder.urls); bundle { //discuss urls local (basediscussurl = "http://" + localhost + "/htmlInterfaces/discussionGroup/"); if not defined (config.mainResponder.urls.discussEditInBrowser) { config.mainResponder.urls.discussEditInBrowser = basediscussurl + "edit/editInBrowser$"}; if not defined (config.mainResponder.urls.discussEditInFrontier) { config.mainResponder.urls.discussEditInFrontier = basediscussurl + "edit/editInFrontier$"}; if not defined (config.mainResponder.urls.discussEnclosureDownloader) { config.mainResponder.urls.discussEnclosureDownloader = basediscussurl + "enclosureDownloader$"}; if not defined (config.mainResponder.urls.discussEnclosureRPCer) { config.mainResponder.urls.discussEnclosureRPCer = basediscussurl + "enclosureRPCer$"}; if not defined (config.mainResponder.urls.discussEnclosureViewer) { config.mainResponder.urls.discussEnclosureViewer = basediscussurl + "raw/messages/"}; if not defined (config.mainResponder.urls.discussGetChangesFromWorkstation) { config.mainResponder.urls.discussGetChangesFromWorkstation = basediscussurl + "edit/getChangesFromWorkstation"}; if not defined (config.mainResponder.urls.discussHomePage) { config.mainResponder.urls.discussHomePage = basediscussurl}; if not defined (config.mainResponder.urls.discussMsgReader) { config.mainResponder.urls.discussMsgReader = basediscussurl + "msgReader$"}; if not defined (config.mainResponder.urls.discussNewThread) { config.mainResponder.urls.discussNewThread = basediscussurl + "edit/newThread$"}; if not defined (config.mainResponder.urls.discussPostEditedMessage) { config.mainResponder.urls.discussPostEditedMessage = basediscussurl + "edit/postEditedMsg"}; if not defined (config.mainResponder.urls.discussPostMessage) { config.mainResponder.urls.discussPostMessage = basediscussurl + "edit/postMsg"}; if not defined (config.mainResponder.urls.discussTopics) { config.mainResponder.urls.discussTopics = basediscussurl + "topics"}}; bundle { //resources urls local (baseresourcesurl = "http://" + localhost + "/resources/"); if not defined (config.mainresponder.urls.frontierLogo) { config.mainresponder.urls.frontierLogo = baseresourcesurl + "logos/logoWinNT.gif"}; if not defined (config.mainresponder.urls.icons) { config.mainresponder.urls.icons = baseresourcesurl + "icons/"}; if not defined (config.mainresponder.urls.imageCowSkull) { config.mainresponder.urls.imageCowSkull = baseresourcesurl + "frontierIcons/skull"}}; bundle { //member urls local (basememberurl = "http://" + localhost + "/htmlInterfaces/logon/"); if not defined (config.mainResponder.urls.memberCheckMail) { config.mainResponder.urls.memberCheckMail = basememberurl + "checkYourMail"}; if not defined (config.mainResponder.urls.memberHome) { config.mainResponder.urls.memberHome = basememberurl + "welcome"}; if not defined (config.mainResponder.urls.memberLogoff) { config.mainResponder.urls.memberLogoff = basememberurl + "logoffConfirm"}; if not defined (config.mainResponder.urls.memberLogon) { config.mainResponder.urls.memberLogon = basememberurl}}; bundle { //misc urls if not defined (config.mainResponder.urls.newsHome) { config.mainResponder.urls.newsHome = "http://" + localhost + "/"}; if not defined (config.mainResponder.urls.searchHome) { config.mainResponder.urls.searchHome = "http://" + localhost + "/search/"}; local (basepeopleurl = "http://" + localhost + "/htmlInterfaces/people/"); if not defined (config.mainResponder.urls.prefsHome) { config.mainResponder.urls.prefsHome = basepeopleurl + "prefs/"}; if not defined (config.mainResponder.urls.profilesHome) { config.mainResponder.urls.profilesHome = basepeopleurl + "profiles/"}}}; bundle { //config.mainresponder.callbacks sureTable (@config.mainresponder.callbacks); sureTable (@config.mainresponder.callbacks.addMessage); sureTable (@config.mainresponder.callbacks.controlAccess); sureTable (@config.mainresponder.callbacks.editMessage); sureTable (@config.mainresponder.callbacks.lightweightMacros); sureTable (@config.mainresponder.callbacks.nightlyBackup); sureTable (@config.mainResponder.callbacks.searchEngineSecurity); //PBS 3/9/99 sureTable (@config.mainResponder.callbacks.subscriptionsServer); ÇAdd search engine callbacks. if not defined (config.mainResponder.callbacks.addMessage.index) { script.newScriptObject ("mainResponder.search.client.addMessageCallback (adrNewMsg)", @config.mainResponder.callbacks.addMessage.index); script.compile (@config.mainResponder.callbacks.addMessage.index)}; if not defined (config.mainResponder.callbacks.editMessage.index) { script.newScriptObject ("mainResponder.search.client.addMessageCallback (adrEditedMsg)", @config.mainResponder.callbacks.editMessage.index); script.compile (@config.mainResponder.callbacks.editMessage.index)}; ÇAdd security callback if not defined (config.mainResponder.callbacks.controlAccess.blockByIP) { //AR 11/04/1999 script.newScriptObject ("mainResponder.security.blockHttpByIP ()", @config.mainResponder.callbacks.controlAccess.blockByIP)}; ÇAdd pathEvaluation callback for the Admin site if not defined (config.mainresponder.callbacks.pathEvaluation) { //JES 8/18/02 new (tableType, @config.mainresponder.callbacks.pathEvaluation)}; if not defined (config.mainresponder.callbacks.pathEvaluation.frontierAdminSite) { //JES 8/18/02 config.mainresponder.callbacks.pathEvaluation.frontierAdminSite = @mainResponder.adminSite.callbacks.pathEvaluation}}; bundle { //config.mainresponder.data sureTable (@config.mainresponder.data)}; ÇsureTable (@config.mainresponder.data.searchQueue) bundle { // config.mainresponder.domains sureTable (@config.mainresponder.domains); if sizeof (config.mainresponder.domains) == 0 { mainResponder.siteTree.addSiteToTree ("default", "", @sampleMrWs, true, false)}}; Çconfig.mainresponder.domains.default = Frontier.getSubFolder ("/www/") bundle { //config.mainresponder.globals sureTable (@config.mainresponder.globals); if not defined (config.mainresponder.globals.allowDirectoryListings) { //PBS 11/19/99: default is now false config.mainresponder.globals.allowDirectoryListings = false}; if not defined (config.mainresponder.globals.allowScriptListings) { config.mainresponder.globals.allowScriptListings = false}; if not defined (config.mainresponder.globals.allowScriptsToRun) { config.mainresponder.globals.allowScriptsToRun = false}; if not defined (config.mainresponder.globals.defaultDirectoryItems) { config.mainresponder.globals.defaultDirectoryItems = {"default.html", "default", "index.html", "index"}}; if not defined (config.mainresponder.globals.defaultMembershipGroup) { config.mainresponder.globals.defaultMembershipGroup = "default"}; if not defined (config.mainresponder.globals.flRender) { config.mainresponder.globals.flRender = false}; if not defined (config.mainresponder.globals.flRenderingCache) { config.mainresponder.globals.flRenderingCache = false}}; bundle { //config.mainresponder.search sureTable (@config.mainresponder.search); if not defined (config.mainresponder.search.domain) { config.mainresponder.search.domain = "127.0.0.1"}; if not defined (config.mainresponder.search.port) { config.mainresponder.search.port = 80}; if not defined (config.mainresponder.search.addToIndex) { config.mainresponder.search.addToIndex = "mainResponder.search.index"}; if not defined (config.mainresponder.search.restartIndex) { config.mainresponder.search.restartIndex = "mainResponder.search.restartIndex"}; if not defined (config.mainresponder.search.sites) { sureTable (@config.mainresponder.search.sites)}; if not defined (config.mainResponder.search.prefs) { new (tableType, @config.mainResponder.search.prefs)}; if not defined (config.mainResponder.search.prefs.flLogEnabled) { config.mainResponder.search.prefs.flLogEnabled = false}; if not defined (config.mainResponder.search.prefs.flLogSearches) { config.mainResponder.search.prefs.flLogSearches = true}; if not defined (config.mainResponder.search.prefs.flLogIndex) { config.mainResponder.search.prefs.flLogIndex = true}; if not defined (config.mainResponder.search.prefs.flLogNoIndex) { config.mainResponder.search.prefs.flLogNoIndex = true}; if not defined (config.mainResponder.search.prefs.flStoreFullText) { config.mainResponder.search.prefs.flStoreFullText = false}; if not defined (config.mainResponder.search.prefs.minutesBetweenIndexes) { config.mainResponder.search.prefs.minutesBetweenIndexes = 60}; if not defined (config.mainResponder.search.prefs.hoursToCacheSearchResults) { config.mainResponder.search.prefs.hoursToCacheSearchResults = 24}}; bundle { //config.mainresponder.stats if not defined (config.mainResponder.stats) { new (tabletype, @config.mainResponder.stats)}; if not defined (config.mainResponder.stats.ctDiscussionGroupReads) { config.mainResponder.stats.ctDiscussionGroupReads = 0}}; bundle { // config.mainresponder.sites sureTable (@config.mainresponder.sites); if not (defined (config.mainresponder.sites.resources)) { config.mainresponder.sites.resources = @mainResponder.resources}}; bundle { // port 5336 listener if not defined (user.inetd.config.http2) { user.inetd.config.http2 = user.inetd.config.http; user.inetd.config.http2.port = 5336; if user.inetd.config.http2.startup { try { inetd.startOne (@user.inetd.config.http2)}}}}; try { //register admin site callbacks if not defined (user.rootUpdates.callbacks) { rootUpdates.init ()}; if not defined (user.rootUpdates.callbacks.afterInstallPart.mainResponder) { user.rootUpdates.callbacks.afterInstallPart.mainResponder = @mainResponder.adminSite.callbacks.logRootUpdate}}; bundle { //miscellaneous clean-up if not defined (system.environment.isRadio) { system.environment.isRadio = false}}; Çbundle //hook in to user.scheduler Çif not defined (user.scheduler.everyMinute.nirvanaServer) Çuser.scheduler.everyMinute.nirvanaServer = @mainresponder.background.everyminute Çif not defined (user.scheduler.hourly.nirvanaServer) Çuser.scheduler.hourly.nirvanaServer = @mainresponder.background.everyHour Çif not defined (user.scheduler.overnight.nirvanaServer) Çuser.scheduler.overnight.nirvanaServer = @mainresponder.background.everynight return (@config.mainResponder)}; Çbundle // testing Çlocal (ticks = clock.ticks ()) Çfor i = 1 to 100 Çinit () Çdialog.notify ((double (clock.ticks ()) - ticks) / 60 + " secs.") \ No newline at end of file --- 1,3 ---- FrontierVcsFile:1:scpt:mainResponder.init ! on init () { ÇChanges Ç2/9/06; 2:21:48 PM by TAC Çdon't add any data to domains table at this time Ç2/8/06; 11:07:06 AM by TAC Çadded mainResponderWebsites.root to nightly updates Çdefault website is sampleMrWs Çtweaked script formatting Ç2005 Ç12/21/05; 1:43:35 PM by TAC Çadded init for config.mainresponder.sites Ç9/7/05; 10:53:18 PM by TAC Çchanged userlandIcons to frontierIcons Çchanged /mainResponderResources/ to /resources/ Ç8/6/05; 10:30:54 AM by TAC Çpartial path support for config.mainresponder.prefs.logFolder; config.mainresponder.prefs.discussArchiveFolder; config.mainresponder.prefs.backupFolder, more portable Ç6/19/05; 10:47:10 AM by TAC Çchanged localhost value to 127.0.0.1 Çadded config.mainResponder.callbacks.subscriptionsServer Çadded config.mainresponder.prefs.legalMacros Çadded config.mainresponder.prefs.baseUrl for adminSite setupFrontier Ç6/16/05; 1:52:08 PM by TAC Çremoved manila.root from nightly root update init Ç3/10/03; 5:53:51 PM by JES ÇMake sure that system.environment.isRadio is defined (and false). Ç3/4/03; 3:19:15 PM by JES ÇReturn @config.mainResponder. Ç2002 Ç9/3/02; 1:26:05 AM by JES ÇFixed a bonehead bug -- we were calling user.rootUpdates.init to initialize the user.rootUpdates.callbacks table. We should have called rootUpdates.init instead. Ç8/28/02; 11:18:11 PM by JES ÇRegister admin site callbacks, and config.mainResponder.prefs.flLogRootUpdates. Ç8/20/02; 12:38:52 AM by JES ÇIf the port 5335 listen configured at user.inetd.config.http2 is not installed, install it, based on the default http listen. Ç8/18/02; 5:21:19 PM by JES ÇInstall the admin site pathEvaluation callback at config.mainresponder.callbacks.pathEvaluation.frontierAdminSite. Ç8/1/02; 6:59:56 PM by JES ÇInitialize new search engine prefs at config.mainResponder.search.prefs. No longer create config.mainresponder.data.searchQueue. Ç06/22/00; 3:57:55 PM by PBS ÇSet hashed cookies to true by default. Ç06/17/00; 5:29:29 PM by PBS ÇNow false by default: flKeepParamTable, flLog, flDiscussStatsNightly Ç1999 Ç12/11/1999 at 5:29:32 AM by AR ÇCommented out the code for hooking into the scheduler. This is now handled in mainResponder.startup. Ç11/23/99; 4:10:06 PM by PBS ÇBackups and discuss archiving now false by default. Ç11/20/99; 4:29:29 PM by PBS ÇChanged some defaults. Discuss archiving is true by default. Nightly updates are on by default; the default nightly update list contains Frontier, mainResponder, manila, and prefs.root. Save databases every minute is true by default. Logging database opens to the temp table is now false by default. Ç11/16/99; 11:48:17 PM by PBS ÇSet up prefs for flUpdateNightly, updateNightlyList, and securityLevel. The first two are prefs for automated nightly updates, the third is the security level for the Control Panel. Ç10/25/99; 4:04:59 PM by PBS Çconfig.mainResponder.prefs.flControlPanel: if true, then the /controlPanel/ system website can be accessed. It's true by default. Ç8/15/99; 9:53:42 AM by DW Çconfig.mainresponder.prefs.flLogReopenHourly, if true, we close the log file every hour. It will be re-opened by the next log.add call. In our work with the 6.1 kernel, we've determined that for busy servers this helps Frontier's memory utilization significantly, and the cost of re-opening the file once an hour is relatively small. Ç8/15/99; 9:34:07 AM by DW ÇMake sure that scheduler tasks are installed. This is also handled in mainResponder.install, but I don't want to ask people to run this script to go to 6.1, so we check to see if they're defined and if they're not we link them in. Ç8/15/99; 8:26:14 AM by DW Çinitialize config.mainresponder.prefs.flArchiveDiscuss and discussArchiveFolder. ÇWed, Mar 10, 1999 at 2:34:19 PM by PBS ÇInitialize config.mainResponder.data. ÇInitialize config.mainResponder.data.searchQueue. ÇWed, Mar 10, 1999 at 2:19:48 PM by PBS ÇInitialize the config.mainresponder.search table. ÇSet config.mainResponder.prefs.flSearchEngine to false by default. ÇThis means that this machine is not, by default, a search engine server. ÇSet config.mainResponder.prefs.flLogMemAvail to false by default. ÇTue, Mar 9, 1999 at 4:12:13 PM by PBS ÇUse Frontier.getSubFolder rather than mainResponder.getFolder. ÇSat, Mar 20, 1999 at 4:48:37 PM by PBS ÇAdded flConvertToMacText pref. ÇOn Macs, convert incoming latin text to Mac. ÇOn Windows the pref has no effect. ÇInitialize mainResponder local (ps = string.popTrailing (system.verbs.builtins.Frontier.pathstring, file.getPathChar ())); // path string minus the trailing path character on sureTable (adrtable) { if not defined (adrtable^) { new (tabletype, adrtable)}}; sureTable (@config.mainresponder); bundle { //config.mainresponder.prefs sureTable (@config.mainresponder.prefs); if not defined (config.mainresponder.prefs.baseUrl) { config.mainresponder.prefs.baseUrl = "http://127.0.0.1/"}; if not defined (config.mainresponder.prefs.backupFolder) { config.mainresponder.prefs.backupFolder = Frontier.getSubFolder ("/ops/backups/") - ps}; // 8/6/05; 10:30:54 AM by TAC if not defined (config.mainresponder.prefs.defaultDiscussRoot) { config.mainresponder.prefs.defaultDiscussRoot = "discuss"}; if not defined (config.mainresponder.prefs.defaultNewsRoot) { config.mainresponder.prefs.defaultNewsRoot = "default"}; if not defined (config.mainresponder.prefs.flAllowPublicSearchSubmissions) { //PBS 3/9/99 config.mainresponder.prefs.flAllowPublicSearchSubmissions = false}; if not defined (config.mainresponder.prefs.flBackupNightly) { config.mainresponder.prefs.flBackupNightly = false}; //PBS 11/23/99: now false by default if not defined (config.mainresponder.prefs.flDiscussStatsNightly) { Çconfig.mainresponder.prefs.flDiscussStatsNightly = true config.mainresponder.prefs.flDiscussStatsNightly = false}; //PBS 06/17/00: Now false by default for 6.2. if not defined (config.mainresponder.prefs.flArchiveDiscuss) { config.mainresponder.prefs.flArchiveDiscuss = false}; //PBS 11/23/99: now false by default if not defined (config.mainresponder.prefs.discussArchiveFolder) { config.mainresponder.prefs.discussArchiveFolder = Frontier.getSubFolder ("/ops/discussArchive/") - ps}; // 8/6/05; 10:30:54 AM by TAC if not defined (config.mainresponder.prefs.flControlPanel) { //PBS 10/25/99: pref for the /controlPanel/ site config.mainresponder.prefs.flControlPanel = true}; if not defined (config.mainresponder.prefs.flDebug) { config.mainresponder.prefs.flDebug = false}; if not defined (config.mainresponder.prefs.flKeepParamTable) { Çconfig.mainresponder.prefs.flKeepParamTable = true config.mainresponder.prefs.flKeepParamTable = false}; //PBS 06/17/00: Now false by default in 6.2. if not defined (config.mainresponder.prefs.flLog) { Çconfig.mainresponder.prefs.flLog = true config.mainresponder.prefs.flLog = false}; //PBS 06/17/00: HTTP logging now off by default in 6.2. if not defined (config.mainresponder.prefs.flLogMemavail) { config.mainresponder.prefs.flLogMemavail = false}; if not defined (config.mainresponder.prefs.flLogDatabaseOpens) { config.mainresponder.prefs.flLogDatabaseOpens = false}; //PBS 11/20/99: now false by default, no to logging database opens to the temp table if not defined (config.mainresponder.prefs.flLogReopenHourly) { config.mainresponder.prefs.flLogReopenHourly = false}; if not defined (config.mainresponder.prefs.flOpenAboutWindow) { config.mainresponder.prefs.flOpenAboutWindow = true}; if not defined (config.mainresponder.prefs.flBuildPagesInBackground) { config.mainresponder.prefs.flBuildPagesInBackground = false}; //PBS 11/20/99: now false by default, no to building pages in the background if not defined (config.mainresponder.prefs.flProfiling) { config.mainresponder.prefs.flProfiling = false}; if not defined (config.mainresponder.prefs.flSaveDatabasesEveryMinute) { config.mainresponder.prefs.flSaveDatabasesEveryMinute = true}; //PBS 11/20/99: save databases every minute is now true by default if not defined (config.mainResponder.prefs.flMembershipHashedCookies) { //PBS 06/22/00: true by default config.mainResponder.prefs.flMembershipHashedCookies = true}; if not defined (config.mainresponder.prefs.flSearchEngine) { config.mainresponder.prefs.flSearchEngine = false}; if not defined (config.mainresponder.prefs.flStats) { config.mainresponder.prefs.flStats = true}; if not defined (config.mainresponder.prefs.flSubscriptions) { config.mainresponder.prefs.flSubscriptions = false}; if not defined (config.mainresponder.prefs.hitsBetweenLogSaves) { config.mainresponder.prefs.hitsBetweenLogSaves = 100}; if not defined (config.mainresponder.prefs.flConvertToMacText) { //PBS 3/20/99 config.mainresponder.prefs.flConvertToMacText = true}; if not defined (config.mainresponder.prefs.logFolder) { config.mainresponder.prefs.logFolder = Frontier.getSubFolder ("/ops/logs/") - ps}; // 8/6/05; 10:30:54 AM by TAC if not defined (config.mainresponder.prefs.legalMacros) { new (tabletype, @config.mainresponder.prefs.legalMacros)}; if not defined (config.mainresponder.prefs.legalTags) { new (tabletype, @config.mainresponder.prefs.legalTags); config.mainresponder.prefs.legalTags.i = true; config.mainresponder.prefs.legalTags.pre = true}; if not defined (config.mainresponder.prefs.flAllowByIpOnly) { //AR 11/04/1999 config.mainresponder.prefs.flAllowByIpOnly = false}; if not defined (config.mainresponder.prefs.allowedIpAddresses) { //AR 11/04/1999 config.mainresponder.prefs.allowedIpAddresses = "127.0.0.1"}; if not defined (config.mainResponder.prefs.flUpdateNightly) { //PBS 11/16/99: update various gdbs every night config.mainResponder.prefs.flUpdateNightly = true}; //PBS 11/20/99: nightly updates now true by default if not defined (config.mainResponder.prefs.updateNightlyList) { //PBS 11/16/99: list of gdbs to update nightly config.mainResponder.prefs.updateNightlyList = {"Frontier.root", "mainResponder.root", "prefs.root", "mainResponderWebsites.root"}}; if not defined (config.mainResponder.prefs.securityLevel) { //PBS 11/16/99: set up security level pref config.mainResponder.prefs.securityLevel = 0}; if not defined (config.mainResponder.prefs.flLogRootUpdates) { config.mainResponder.prefs.flLogRootUpdates = true}}; bundle { //config.mainresponder.urls local (localhost = "127.0.0.1"); sureTable (@config.mainresponder.urls); bundle { //discuss urls local (basediscussurl = "http://" + localhost + "/htmlInterfaces/discussionGroup/"); if not defined (config.mainResponder.urls.discussEditInBrowser) { config.mainResponder.urls.discussEditInBrowser = basediscussurl + "edit/editInBrowser$"}; if not defined (config.mainResponder.urls.discussEditInFrontier) { config.mainResponder.urls.discussEditInFrontier = basediscussurl + "edit/editInFrontier$"}; if not defined (config.mainResponder.urls.discussEnclosureDownloader) { config.mainResponder.urls.discussEnclosureDownloader = basediscussurl + "enclosureDownloader$"}; if not defined (config.mainResponder.urls.discussEnclosureRPCer) { config.mainResponder.urls.discussEnclosureRPCer = basediscussurl + "enclosureRPCer$"}; if not defined (config.mainResponder.urls.discussEnclosureViewer) { config.mainResponder.urls.discussEnclosureViewer = basediscussurl + "raw/messages/"}; if not defined (config.mainResponder.urls.discussGetChangesFromWorkstation) { config.mainResponder.urls.discussGetChangesFromWorkstation = basediscussurl + "edit/getChangesFromWorkstation"}; if not defined (config.mainResponder.urls.discussHomePage) { config.mainResponder.urls.discussHomePage = basediscussurl}; if not defined (config.mainResponder.urls.discussMsgReader) { config.mainResponder.urls.discussMsgReader = basediscussurl + "msgReader$"}; if not defined (config.mainResponder.urls.discussNewThread) { config.mainResponder.urls.discussNewThread = basediscussurl + "edit/newThread$"}; if not defined (config.mainResponder.urls.discussPostEditedMessage) { config.mainResponder.urls.discussPostEditedMessage = basediscussurl + "edit/postEditedMsg"}; if not defined (config.mainResponder.urls.discussPostMessage) { config.mainResponder.urls.discussPostMessage = basediscussurl + "edit/postMsg"}; if not defined (config.mainResponder.urls.discussTopics) { config.mainResponder.urls.discussTopics = basediscussurl + "topics"}}; bundle { //resources urls local (baseresourcesurl = "http://" + localhost + "/resources/"); if not defined (config.mainresponder.urls.frontierLogo) { config.mainresponder.urls.frontierLogo = baseresourcesurl + "logos/logoWinNT.gif"}; if not defined (config.mainresponder.urls.icons) { config.mainresponder.urls.icons = baseresourcesurl + "icons/"}; if not defined (config.mainresponder.urls.imageCowSkull) { config.mainresponder.urls.imageCowSkull = baseresourcesurl + "frontierIcons/skull"}}; bundle { //member urls local (basememberurl = "http://" + localhost + "/htmlInterfaces/logon/"); if not defined (config.mainResponder.urls.memberCheckMail) { config.mainResponder.urls.memberCheckMail = basememberurl + "checkYourMail"}; if not defined (config.mainResponder.urls.memberHome) { config.mainResponder.urls.memberHome = basememberurl + "welcome"}; if not defined (config.mainResponder.urls.memberLogoff) { config.mainResponder.urls.memberLogoff = basememberurl + "logoffConfirm"}; if not defined (config.mainResponder.urls.memberLogon) { config.mainResponder.urls.memberLogon = basememberurl}}; bundle { //misc urls if not defined (config.mainResponder.urls.newsHome) { config.mainResponder.urls.newsHome = "http://" + localhost + "/"}; if not defined (config.mainResponder.urls.searchHome) { config.mainResponder.urls.searchHome = "http://" + localhost + "/search/"}; local (basepeopleurl = "http://" + localhost + "/htmlInterfaces/people/"); if not defined (config.mainResponder.urls.prefsHome) { config.mainResponder.urls.prefsHome = basepeopleurl + "prefs/"}; if not defined (config.mainResponder.urls.profilesHome) { config.mainResponder.urls.profilesHome = basepeopleurl + "profiles/"}}}; bundle { //config.mainresponder.callbacks sureTable (@config.mainresponder.callbacks); sureTable (@config.mainresponder.callbacks.addMessage); sureTable (@config.mainresponder.callbacks.controlAccess); sureTable (@config.mainresponder.callbacks.editMessage); sureTable (@config.mainresponder.callbacks.lightweightMacros); sureTable (@config.mainresponder.callbacks.nightlyBackup); sureTable (@config.mainResponder.callbacks.searchEngineSecurity); //PBS 3/9/99 sureTable (@config.mainResponder.callbacks.subscriptionsServer); ÇAdd search engine callbacks. if not defined (config.mainResponder.callbacks.addMessage.index) { script.newScriptObject ("mainResponder.search.client.addMessageCallback (adrNewMsg)", @config.mainResponder.callbacks.addMessage.index); script.compile (@config.mainResponder.callbacks.addMessage.index)}; if not defined (config.mainResponder.callbacks.editMessage.index) { script.newScriptObject ("mainResponder.search.client.addMessageCallback (adrEditedMsg)", @config.mainResponder.callbacks.editMessage.index); script.compile (@config.mainResponder.callbacks.editMessage.index)}; ÇAdd security callback if not defined (config.mainResponder.callbacks.controlAccess.blockByIP) { //AR 11/04/1999 script.newScriptObject ("mainResponder.security.blockHttpByIP ()", @config.mainResponder.callbacks.controlAccess.blockByIP)}; ÇAdd pathEvaluation callback for the Admin site if not defined (config.mainresponder.callbacks.pathEvaluation) { //JES 8/18/02 new (tableType, @config.mainresponder.callbacks.pathEvaluation)}; if not defined (config.mainresponder.callbacks.pathEvaluation.frontierAdminSite) { //JES 8/18/02 config.mainresponder.callbacks.pathEvaluation.frontierAdminSite = @mainResponder.adminSite.callbacks.pathEvaluation}}; bundle { //config.mainresponder.data sureTable (@config.mainresponder.data)}; ÇsureTable (@config.mainresponder.data.searchQueue) bundle { // config.mainresponder.domains sureTable (@config.mainresponder.domains); }; Çif sizeOf (config.mainresponder.domains) == 0 Çconfig.mainresponder.domains.default = Frontier.getSubFolder ("/www/") bundle { //config.mainresponder.globals sureTable (@config.mainresponder.globals); if not defined (config.mainresponder.globals.allowDirectoryListings) { //PBS 11/19/99: default is now false config.mainresponder.globals.allowDirectoryListings = false}; if not defined (config.mainresponder.globals.allowScriptListings) { config.mainresponder.globals.allowScriptListings = false}; if not defined (config.mainresponder.globals.allowScriptsToRun) { config.mainresponder.globals.allowScriptsToRun = false}; if not defined (config.mainresponder.globals.defaultDirectoryItems) { config.mainresponder.globals.defaultDirectoryItems = {"default.html", "default", "index.html", "index"}}; if not defined (config.mainresponder.globals.defaultMembershipGroup) { config.mainresponder.globals.defaultMembershipGroup = "default"}; if not defined (config.mainresponder.globals.flRender) { config.mainresponder.globals.flRender = false}; if not defined (config.mainresponder.globals.flRenderingCache) { config.mainresponder.globals.flRenderingCache = false}}; bundle { //config.mainresponder.search sureTable (@config.mainresponder.search); if not defined (config.mainresponder.search.domain) { config.mainresponder.search.domain = "127.0.0.1"}; if not defined (config.mainresponder.search.port) { config.mainresponder.search.port = 80}; if not defined (config.mainresponder.search.addToIndex) { config.mainresponder.search.addToIndex = "mainResponder.search.index"}; if not defined (config.mainresponder.search.restartIndex) { config.mainresponder.search.restartIndex = "mainResponder.search.restartIndex"}; if not defined (config.mainresponder.search.sites) { sureTable (@config.mainresponder.search.sites)}; if not defined (config.mainResponder.search.prefs) { new (tableType, @config.mainResponder.search.prefs)}; if not defined (config.mainResponder.search.prefs.flLogEnabled) { config.mainResponder.search.prefs.flLogEnabled = false}; if not defined (config.mainResponder.search.prefs.flLogSearches) { config.mainResponder.search.prefs.flLogSearches = true}; if not defined (config.mainResponder.search.prefs.flLogIndex) { config.mainResponder.search.prefs.flLogIndex = true}; if not defined (config.mainResponder.search.prefs.flLogNoIndex) { config.mainResponder.search.prefs.flLogNoIndex = true}; if not defined (config.mainResponder.search.prefs.flStoreFullText) { config.mainResponder.search.prefs.flStoreFullText = false}; if not defined (config.mainResponder.search.prefs.minutesBetweenIndexes) { config.mainResponder.search.prefs.minutesBetweenIndexes = 60}; if not defined (config.mainResponder.search.prefs.hoursToCacheSearchResults) { config.mainResponder.search.prefs.hoursToCacheSearchResults = 24}}; bundle { //config.mainresponder.stats if not defined (config.mainResponder.stats) { new (tabletype, @config.mainResponder.stats)}; if not defined (config.mainResponder.stats.ctDiscussionGroupReads) { config.mainResponder.stats.ctDiscussionGroupReads = 0}}; bundle { // config.mainresponder.sites sureTable (@config.mainresponder.sites); if not (defined (config.mainresponder.sites.resources)) { config.mainresponder.sites.resources = @mainResponder.resources}}; bundle { // port 5336 listener if not defined (user.inetd.config.http2) { user.inetd.config.http2 = user.inetd.config.http; user.inetd.config.http2.port = 5336; if user.inetd.config.http2.startup { try { inetd.startOne (@user.inetd.config.http2)}}}}; try { //register admin site callbacks if not defined (user.rootUpdates.callbacks) { rootUpdates.init ()}; if not defined (user.rootUpdates.callbacks.afterInstallPart.mainResponder) { user.rootUpdates.callbacks.afterInstallPart.mainResponder = @mainResponder.adminSite.callbacks.logRootUpdate}}; bundle { //miscellaneous clean-up if not defined (system.environment.isRadio) { system.environment.isRadio = false}}; Çbundle //hook in to user.scheduler Çif not defined (user.scheduler.everyMinute.nirvanaServer) Çuser.scheduler.everyMinute.nirvanaServer = @mainresponder.background.everyminute Çif not defined (user.scheduler.hourly.nirvanaServer) Çuser.scheduler.hourly.nirvanaServer = @mainresponder.background.everyHour Çif not defined (user.scheduler.overnight.nirvanaServer) Çuser.scheduler.overnight.nirvanaServer = @mainresponder.background.everynight return (@config.mainResponder)}; Çbundle // testing Çlocal (ticks = clock.ticks ()) Çfor i = 1 to 100 Çinit () Çdialog.notify ((double (clock.ticks ()) - ticks) / 60 + " secs.") \ No newline at end of file |
|
From: creedon <icr...@us...> - 2006-02-10 03:20:23
|
Update of /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/discuss In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1264 Modified Files: postAttachedFile Log Message: add file name to attachment url store attachments in site name folder Index: postAttachedFile =================================================================== RCS file: /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/discuss/postAttachedFile,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** postAttachedFile 9 Feb 2006 02:52:18 -0000 1.2 --- postAttachedFile 10 Feb 2006 03:20:14 -0000 1.3 *************** *** 1,3 **** FrontierVcsFile:1:scpt:mainResponder.discuss.postAttachedFile ! on postAttachedFile (adrFileArgs, msgNum, memberGroup) { ÇChanges Ç1/15/06; 1:36:47 PM by TAC Çcategorize images and attachements in alsoListedIn Çstore information about the file in an attachement table, we don't care what kind of file it is Ç7/26/03; 4:04:15 PM by TAC Çadded PNG support Ç03/15/00; 5:26:21 PM by PBS ÇWhen computing the path to the attachments folder for this message, it now calls mainResponder.discuss.getMessageAttachmentsFolder -- a new bottleneck script. Ç1999 Ç10/20/99; 12:16:56 PM by PBS ÇIf an image is attached, store it in the dg in an image subtable. ÇOnly do so if flDiscussStoreImages is true, otherwise write even images to disk. Ç10/15/99; 1:13:09 AM by PBS ÇAdded support for addresses, and strings that can be coerced to addresses, in discuss.root. Ç5/20/99; 8:39:55 AM by AR ÇFirst implementation. Based on screenshotsSite.postCatcher in screenshots.root. ÇStore an attached file, either on disk or inside the discussion group. bundle { //error checking if not defined (adrFileArgs^.filename) { return (false)}; if not defined (adrFileArgs^.data) { return (false)}; if string.length (adrFileArgs^.filename) == 0 { return (false)}; if string.length (adrFileArgs^.data) == 0 { return (false)}}; local (pta = html.getPageTableAddress ()); local (adrMsg = mainResponder.discuss.getMessageTable (msgNum)); local (adrAttachment = @adrMsg^.attachment); local (flStoredInDg = false, f, newAlsoListedIn, oldAlsoListedIn = ""); if defined (adrAttachment^.mimeType) { // old also listed in case string.lower (adrAttachment^.mimeType) { // is it a GIF, JPEG, or PNG? "image/gif"; "image/jpeg"; "image/pjpeg"; "image/png" { oldAlsoListedIn = "images"}} else { oldAlsoListedIn = "attachments"}}; bundle { // set up attachment storage if not defined (adrAttachment^) { new (tableType, adrAttachment)}; try { adrAttachment^.mimeType = adrFileArgs^.["Content-type"]}; adrAttachment^.originalFileName = adrFileArgs^.filename; adrAttachment^.sizeBytes = sizeOf (adrFileArgs^.data)}; if defined (pta^.responderAttributes.flDiscussStoreImages) { // possibly store an image attachment in the dg, not to disk if pta^.responderAttributes.flDiscussStoreImages { if defined (adrAttachment^.mimeType) { local (mimeType = adrAttachment^.mimeType); local (flGif = false, flJpeg = false, flPng = false); case string.lower (mimeType) { // is it a GIF, JPEG, or PNG? "image/gif" { flGif = true}; "image/jpeg"; "image/pjpeg" { flJpeg = true}; "image/png" { flPng = true}}; if flGif or flJpeg or flPng { // store GIFs, JPEGs, or PNGs in the dg local (hwList); adrAttachment^.data = binary (adrFileArgs^.data); if flGif { hwList = html.getGifHeightWidth (@adrAttachment^.data); setBinaryType (@adrAttachment^.data, 'GIFf')}; if flJpeg { hwList = html.getJpegHeightWidth (@adrAttachment^.data); setBinaryType (@adrAttachment^.data, 'JPEG')}; if flPng { hwList = html.getPngHeightWidth (@adrAttachment^.data); setBinaryType (@adrAttachment^.data, 'PNGf')}; adrAttachment^.height = hwList [1]; adrAttachment^.width = hwList [2]; newAlsoListedIn = "images"; flStoredInDg = true}}}}; if not flStoredInDg { //write to disk local (folderPath, s = adrFileArgs^.filename, i, ch); local (pc = file.getPathChar ()); bundle { //compute folderPath folderPath = mainResponder.discuss.getMessageAttachmentsFolder (adrMsg, @adrAttachment^.url); ÇPBS 03/15/00: old code, now factored out Çlocal (adrDiscuss = mainResponder.discuss.openRoot ()) Çlocal (dgName = nameOf (adrDiscuss^)) Çtry //PBS 10/15/99: get the real name of the dg (it might be an address in discuss.root) Çlocal (adr = @[system.temp.mainResponder.discussRootFile]) Çif defined (adr^.[pta^.discussionRoot]) ÇdgName = nameOf (adr^.[pta^.discussionRoot]) Çlocal (discussionFolderName = nameOf (adrDiscuss^)) //PBS 10/15/99 Çif discussionFolderName beginsWith "#" ÇdiscussionFolderName = string.popLeading (discussionFolderName, '#') Çon add (s) //append sub-folders to folderpath ÇfolderPath = folderPath + s + pc ÇfolderPath = adrDiscuss^.prefs.binaryServerFolder Çadd (memberGroup) Çadd (adrMsg^.member) Çadd (dgName) Çadd (msgNum)};}; for i = sizeOf (s) downTo 1 { //pop off everything but the file name ch = s [i]; if not (string.isAlpha (ch) or string.isNumeric (ch) or (ch == ".") or (ch == " ")) { s = string.delete (s, 1, i); break}}; adrAttachment^.fileName = s; f = folderPath + adrAttachment^.fileName; adrAttachment^.f = f; file.sureFilePath (f); file.writeWholeFile (f, adrFileArgs^.data); newAlsoListedIn = "attachments"}; bundle { // also listed in if not (defined (adrMsg^.alsoListedIn)) { adrMsg^.alsoListedIn = {}}; adrMsg^.alsoListedIn = adrMsg^.alsoListedIn - {oldAlsoListedIn}; adrMsg^.alsoListedIn = adrMsg^.alsoListedIn + {newAlsoListedIn}}; return (f)} \ No newline at end of file --- 1,3 ---- FrontierVcsFile:1:scpt:mainResponder.discuss.postAttachedFile ! on postAttachedFile (adrFileArgs, msgNum, memberGroup) { ÇChanges Ç2/9/06; 5:56:03 PM by TAC Çadd file name to attachment url Çstore attachments in site name folder Ç1/15/06; 1:36:47 PM by TAC Çcategorize images and attachements in alsoListedIn Çstore information about the file in an attachement table, we don't care what kind of file it is Ç7/26/03; 4:04:15 PM by TAC Çadded PNG support Ç03/15/00; 5:26:21 PM by PBS ÇWhen computing the path to the attachments folder for this message, it now calls mainResponder.discuss.getMessageAttachmentsFolder -- a new bottleneck script. Ç1999 Ç10/20/99; 12:16:56 PM by PBS ÇIf an image is attached, store it in the dg in an image subtable. ÇOnly do so if flDiscussStoreImages is true, otherwise write even images to disk. Ç10/15/99; 1:13:09 AM by PBS ÇAdded support for addresses, and strings that can be coerced to addresses, in discuss.root. Ç5/20/99; 8:39:55 AM by AR ÇFirst implementation. Based on screenshotsSite.postCatcher in screenshots.root. ÇStore an attached file, either on disk or inside the discussion group. bundle { //error checking if not defined (adrFileArgs^.filename) { return (false)}; if not defined (adrFileArgs^.data) { return (false)}; if string.length (adrFileArgs^.filename) == 0 { return (false)}; if string.length (adrFileArgs^.data) == 0 { return (false)}}; local (pta = html.getPageTableAddress ()); local (adrMsg = mainResponder.discuss.getMessageTable (msgNum)); local (adrAttachment = @adrMsg^.attachment); local (flStoredInDg = false, f, newAlsoListedIn, oldAlsoListedIn = ""); if defined (adrAttachment^.mimeType) { // old also listed in case string.lower (adrAttachment^.mimeType) { // is it a GIF, JPEG, or PNG? "image/gif"; "image/jpeg"; "image/pjpeg"; "image/png" { oldAlsoListedIn = "images"}} else { oldAlsoListedIn = "attachments"}}; bundle { // set up attachment storage if not defined (adrAttachment^) { new (tableType, adrAttachment)}; try { adrAttachment^.mimeType = adrFileArgs^.["Content-type"]}; adrAttachment^.originalFileName = adrFileArgs^.filename; adrAttachment^.sizeBytes = sizeOf (adrFileArgs^.data)}; if defined (pta^.responderAttributes.flDiscussStoreImages) { // possibly store an image attachment in the dg, not to disk if pta^.responderAttributes.flDiscussStoreImages { if defined (adrAttachment^.mimeType) { local (mimeType = adrAttachment^.mimeType); local (flGif = false, flJpeg = false, flPng = false); case string.lower (mimeType) { // is it a GIF, JPEG, or PNG? "image/gif" { flGif = true}; "image/jpeg"; "image/pjpeg" { flJpeg = true}; "image/png" { flPng = true}}; if flGif or flJpeg or flPng { // store GIFs, JPEGs, or PNGs in the dg local (hwList); adrAttachment^.data = binary (adrFileArgs^.data); if flGif { hwList = html.getGifHeightWidth (@adrAttachment^.data); setBinaryType (@adrAttachment^.data, 'GIFf')}; if flJpeg { hwList = html.getJpegHeightWidth (@adrAttachment^.data); setBinaryType (@adrAttachment^.data, 'JPEG')}; if flPng { hwList = html.getPngHeightWidth (@adrAttachment^.data); setBinaryType (@adrAttachment^.data, 'PNGf')}; adrAttachment^.height = hwList [1]; adrAttachment^.width = hwList [2]; newAlsoListedIn = "images"; flStoredInDg = true}}}}; if not flStoredInDg { //write to disk local (folderPath, s = adrFileArgs^.filename, i, ch); local (pc = file.getPathChar ()); bundle { //compute folderPath folderPath = mainResponder.discuss.getMessageAttachmentsFolder (adrMsg, @adrAttachment^.url, pta, true); }; ÇPBS 03/15/00: old code, now factored out Çlocal (adrDiscuss = mainResponder.discuss.openRoot ()) Çlocal (dgName = nameOf (adrDiscuss^)) Çtry //PBS 10/15/99: get the real name of the dg (it might be an address in discuss.root) Çlocal (adr = @[system.temp.mainResponder.discussRootFile]) Çif defined (adr^.[pta^.discussionRoot]) ÇdgName = nameOf (adr^.[pta^.discussionRoot]) Çlocal (discussionFolderName = nameOf (adrDiscuss^)) //PBS 10/15/99 Çif discussionFolderName beginsWith "#" ÇdiscussionFolderName = string.popLeading (discussionFolderName, '#') Çon add (s) //append sub-folders to folderpath ÇfolderPath = folderPath + s + pc ÇfolderPath = adrDiscuss^.prefs.binaryServerFolder Çadd (memberGroup) Çadd (adrMsg^.member) Çadd (dgName) Çadd (msgNum)}; for i = sizeOf (s) downTo 1 { //pop off everything but the file name ch = s [i]; if not (string.isAlpha (ch) or string.isNumeric (ch) or (ch == ".") or (ch == " ")) { s = string.delete (s, 1, i); break}}; adrAttachment^.fileName = s; f = folderPath + s; adrAttachment^.f = f; file.sureFilePath (f); file.writeWholeFile (f, adrFileArgs^.data); newAlsoListedIn = "attachments"; adrAttachment^.url = adrAttachment^.url + s}; bundle { // also listed in if not (defined (adrMsg^.alsoListedIn)) { adrMsg^.alsoListedIn = {}}; adrMsg^.alsoListedIn = adrMsg^.alsoListedIn - {oldAlsoListedIn}; adrMsg^.alsoListedIn = adrMsg^.alsoListedIn + {newAlsoListedIn}}; return (f)} \ No newline at end of file |
|
From: creedon <icr...@us...> - 2006-02-10 03:19:46
|
Update of /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/menuCommands In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv947 Modified Files: installMainResponderSite Log Message: factored the installation part of the script into mainResponder.utilities.installWebsite Index: installMainResponderSite =================================================================== RCS file: /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/menuCommands/installMainResponderSite,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** installMainResponderSite 9 Feb 2006 02:52:39 -0000 1.1 --- installMainResponderSite 10 Feb 2006 03:19:39 -0000 1.2 *************** *** 1,3 **** FrontierVcsFile:1:scpt:mainResponder.menuCommands.installMainResponderSite ! ÇChanges Ç1/17/06; 11:30:26 AM by TAC Çcreated, cribbed from mainResponder.menuCommands.installSite local (adrSite = table.getCursorAddress ()); while (sizeOf (string.parseAddress (adrSite)) > 2) { adrSite = parentOf (adrSite^)}; local (flIsMainResponderSite = false, siteName = nameOf (adrSite^)); if string.lower (siteName) endsWith "mrws" { flIsMainResponderSite = true; siteName = string.delete (siteName, sizeOf (siteName) - 3, infinity)}; if flIsMainResponderSite { local (oldUrl = adrSite^.["#ftpSite"].url); local (newUrl = oldUrl); if dialog.ask ("New site URL for " + siteName + ":", @newUrl) { config.mainresponder.sites.[siteName] = adrSite; [system.temp.mainResponder.discussRootFile].[adrSite^.["#prefs"].discussionRoot] = @adrSite^.["#discussionGroup"]; [system.temp.mainResponder.membersRootFile].[adrSite^.["#prefs"].defaultMembershipGroup] = @adrSite^.["#membershipGroup"]; if not (newUrl endsWith "/") { newUrl = newUrl + "/"}; if not (string.lower (newUrl) beginsWith "http://") { newUrl = "http://" + newUrl}; adrSite^.["#discussionGroup"].prefs.adrMsgReader = @adrSite^.discussionGroup.messageReader; if string.lower (oldUrl) != string.lower (newUrl) { // change url adrSite^.["#ftpSite"].url = string.replace (adrSite^.["#ftpSite"].url, oldUrl, newUrl); adrSite^.["#discussionGroup"].prefs.msgReaderUrl = string.replace (adrSite^.["#discussionGroup"].prefs.msgReaderUrl, oldUrl, newUrl); adrSite^.["#prefs"].search.siteUrl = string.replace (adrSite^.["#prefs"].search.siteUrl, oldUrl, newUrl); local (adr, s); for adr in @adrSite^.["#urls"] { s = string.lower (nameOf (adr^)); if adr^ == nil { continue}; case s { "discusseditinfrontier"; "memberhome" { continue}}; adr^ = string.replace (adr^, oldUrl, newUrl)}}; try { // config.mainResponder.domains local (url = adrSite^.["#ftpSite"].url); local (urlParts = string.urlSplit (url)); local (path = urlParts [3]); local (domain = string.lower (urlParts [2])); if sizeOf (path) > 0 { if not defined (config.mainResponder.domains.[domain]) { // use default domain domain = "default"}; mainResponder.siteTree.addSiteToTree (domain, path, adrSite, false, true)} else { // top-level site if not defined (config.mainResponder.domains.[domain]) { config.mainResponder.domains.[domain] = adrSite}}}; dialog.notify ("The mainResponder website \"" + siteName + "\" has been installed.")}} else { dialog.alert ("Can't install \"" + siteName + "\" because it isn't a mainResponder website.")} \ No newline at end of file --- 1,3 ---- FrontierVcsFile:1:scpt:mainResponder.menuCommands.installMainResponderSite ! ÇChanges Ç2/9/06; 1:59:07 PM by TAC Çfactored the installation part of the script into mainResponder.utilities.installWebsite Ç1/17/06; 11:30:26 AM by TAC Çcreated, cribbed from mainResponder.menuCommands.installSite local (adrSite = table.getCursorAddress ()); while (sizeOf (string.parseAddress (adrSite)) > 2) { adrSite = parentOf (adrSite^)}; local (flIsMainResponderSite = false, siteName = nameOf (adrSite^)); if string.lower (siteName) endsWith "mrws" { flIsMainResponderSite = true; siteName = string.delete (siteName, sizeOf (siteName) - 3, infinity)}; if flIsMainResponderSite { local (oldUrl = adrSite^.["#ftpSite"].url); local (newUrl = oldUrl); if dialog.ask ("New site URL for " + siteName + ":", @newUrl) { mainResponder.utilities.installSite (adrSite, siteName, oldUrl, newUrl)}} else { dialog.alert ("Can't install \"" + siteName + "\" because it isn't a mainResponder website.")} \ No newline at end of file |
|
From: creedon <icr...@us...> - 2006-02-10 03:19:29
|
Update of /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv836 Modified Files: startup Log Message: set up 127.0.0.2 in domains for serving attachments add sampleMrWs to domains table and install sampleMrWs Index: startup =================================================================== RCS file: /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/startup,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** startup 9 Feb 2006 02:52:29 -0000 1.4 --- startup 10 Feb 2006 03:19:17 -0000 1.5 *************** *** 1,3 **** FrontierVcsFile:1:scpt:mainResponder.startup ! ÇChanges Ç2/8/06; 11:10:24 AM by TAC Çadded support for mainResponderWebsites.root Çtweaked script formatting Çnews.root code disabled Ç2/1/06; 12:59:03 PM by TAC Çchange root update last update time from hard coded date to Frontier.data.initialLastUpdateTime Ç12/23/05; 9:31:12 PM by TAC ÇnirvanaServer is not a supported name for betty Çupdated root update server information for frontier open source Ç07/29/00; 10:12:31 AM by PBS ÇEnsure that the everyMinute task, if it already exists, is valid. It's crucial to save databases every minute. Ç05/15/00; 9:33:03 PM by PBS ÇMake sure the nightlyUpdates task has been created. This scheduler task handles updating the various Frontier gdbs. It was uncoupled from mainResponder.background.everyNight, as machines were competing on the hour to get updates. Now the times are more dispersed. Ç1999 Ç12/30/99; 12:16:25 PM by PBS ÇWhen creating a new default membership group, set the cookie expiration date to Mon, 01 Apr 2030 07:00:00 GMT. Ç12/11/99; 5:29:27 AM by AR ÇUpdated the code for hooking into the scheduler: Only create entries in user.scheduler if they don't already exist. Also, use scripts instead of addresses for better portability. Ç11/15/99; 10:57:16 PM by PBS ÇOn some systems, if any or all of config.root, discuss.root, members.root, and news.root are open before mainResponder's startup script runs, this would cause the startup script to abort with an error. Now the startup script checks to see if a database is open before trying to open it -- if it's already open, it doesn't try to open it. Ç10/25/99; 2:55:22 PM by PBS ÇCreate callbacks in user.webEditServer.callbacks as scripts, not addresses, since addresses break when Frontier is moved to another machine or folder or the hard drive is renamed. This removes the leading cause of problems with WebEditServer. ÇChanged default root updates prefs. Server is updates.userland.com, URL is http://frontier.userland.com/updates/mainResponder ÇThu, Mar 25, 1999 at 3:11:02 PM by PBS ÇDon't create an empty news.root if none exists. ÇTue, Mar 9, 1999 at 4:14:33 PM by PBS ÇCall Frontier.getSubFolder rather than mainResponder.getFolder. ÇThis script is called when Frontier starts up, to get mainResponder ready for another session. on startupMsg (s) { msg ("mainResponder.startup: " + s)}; new (tableType, @system.temp.mainResponder); local (alist = string.parseAddress (this)); system.temp.mainResponder.mainResponderRootFile = alist [1]; bundle { //get the path to Index.root ÇTuesday, January 19, 1999 at 3:52:27 PM by PBS system.temp.mainResponder.indexRootFile = Frontier.getSubFolder ("ops/") + "Index.root"}; bundle { //system.temp.mainResponder.search ÇTuesday, January 19, 1999 at 3:44:11 PM by PBS new (tableType, @system.temp.mainResponder.search)}; bundle { //open config.root startupMsg ("Opening config.root" ); local (f = Frontier.getSubFolder ("apps") + "config.root"); system.temp.mainResponder.configRootFile = f; if not defined ([f]) { //PBS 11/15/99: open config.root only if it's not already open mainResponder.openFile ("apps", "config.root")}; local (adrconfig = @[system.temp.mainResponder.configRootFile].config); if not defined (adrconfig^) { new (tabletype, adrconfig)}}; mainResponder.init (); bundle { // init Frontier.root stuff Çuser.menus.nirvanaServer = @mainResponder.menu // Sun, 07 Mar 1999 15:06:26 GMT by AR ÇAdd XML-RPC handlers. Çif not defined (user.betty.rpcHandlers.nirvanaServer) Çuser.betty.rpcHandlers.nirvanaServer = @mainResponder.rpcHandlers if not defined (user.betty.rpcHandlers.mainResponder) { //PBS 3/16/99: both names are supported user.betty.rpcHandlers.mainResponder = @mainResponder.rpcHandlers}; ÇAdd WebEditServer callbacks needed to support #changes table and search engine indexing. webEditServer.init (); local (scriptCode = "on nirvanaServer (adrObject, username, now, description)\r\treturn (mainResponder.subscriptions.checkInCallback (adrObject, username, now, description))"); if not defined (user.webeditserver.callbacks.checkin.nirvanaServer) { script.newScriptObject (scriptCode, @user.webeditserver.callbacks.checkin.nirvanaServer)}; if not defined (user.webeditserver.callbacks.sendToServer.nirvanaServer) { if defined (user.webEditServer.callbacks.sendToServer) { script.newScriptObject (scriptCode, @user.webeditserver.callbacks.sendToServer.nirvanaServer)}}; scriptCode = "on searchEngineClient (adrObject, username=nil, now=nil, description=nil)\r\treturn (mainResponder.search.client.webEditCallback (adrObject, username, now, description))"; if not defined (user.webeditserver.callbacks.checkIn.searchEngineClient) { script.newScriptObject (scriptCode, @user.webeditserver.callbacks.checkIn.searchEngineClient)}; if not defined (user.webEditServer.callbacks.sendToServer.searchEngineClient) { if defined (user.webEditServer.callbacks.sendToServer) { script.newScriptObject (scriptCode, @user.webEditServer.callbacks.sendToServer.searchEngineClient)}}; ÇScheduler. scheduler.init (); //upgrades user.scheduler if it needs it if not defined (user.scheduler.everyMinute.nirvanaServer) { local (scriptCode = "mainresponder.background.everyminute ()"); script.newScriptObject (scriptCode, @user.scheduler.everyMinute.nirvanaServer)} else { //PBS 07/29/00: ensure that the everyMinute task is actually valid: it's crucial to save databases every minute if typeOf (user.scheduler.everyMinute.nirvanaServer) == addressType { if not defined (user.scheduler.everyMinute.nirvanaServer^) { local (scriptCode = "mainresponder.background.everyminute ()"); script.newScriptObject (scriptCode, @user.scheduler.everyMinute.nirvanaServer)}}}; if not defined (user.scheduler.hourly.nirvanaServer) { local (scriptCode = "mainresponder.background.everyHour ()"); script.newScriptObject (scriptCode, @user.scheduler.hourly.nirvanaServer)}; if not defined (user.scheduler.hourly.searchEngine) { local (scriptCode = "mainResponder.search.server.indexStoredPages ()"); script.newScriptObject (scriptCode, @user.scheduler.hourly.searchEngine)}; if not defined (user.scheduler.overnight.nirvanaServer) { local (scriptCode = "mainresponder.background.everynight ()"); script.newScriptObject (scriptCode, @user.scheduler.overnight.nirvanaServer)}; if not defined (user.scheduler.tasks.nightlyUpdates) { local (adrTable = @user.scheduler.tasks.nightlyUpdates); startupMsg ("Creating nightly updates task."); new (tableType, adrTable); local (scriptCode = "mainResponder.background.nightlyUpdates ()"); script.newScriptObject (scriptCode, @adrTable^.script); adrTable^.ctRuns = 0; adrTable^.error = ""; adrTable^.minutesBetweenRuns = 1440; ÇGet a task time that's a random 5 to 55 minutes in the hour after the overnight script runs. local (overnightTaskTime = user.scheduler.tasks.overnight.taskTime); local (minutesPastTime = random (5, 55)); local (updatesTaskTime = overnightTaskTime + (minutesPastTime * 60)); adrTable^.taskTime = updatesTaskTime}}; bundle { // init rootUpdates prefs for mainResponder.root. ÇWednesday, March 03, 1999 at 11:40:43 AM by PBS local (adrTable = @user.rootUpdates.servers.mainResponder); if not defined (adrTable^) { new (tableType, adrTable)}; if not defined (adrTable^.autobackup) { adrTable^.autobackup = true}; if not defined (adrTable^.dbname) { adrTable^.dbname = "mainResponder.root"}; if not defined (adrTable^.dialogs) { adrTable^.dialogs = true}; if not defined (adrTable^.lastUpdate) { adrTable^.lastUpdate = Frontier.data.initialLastUpdateTime}; if not defined (adrTable^.method) { adrTable^.method = "mainResponder.subscriptions.update"}; if not defined (adrTable^.port) { adrTable^.port = 8081}; if not defined (adrTable^.serialNum) { adrTable^.serialNum = 0}; if not defined (adrTable^.server) { adrTable^.server = "rootUpdates.frontierOpenSource.editHere.com"}; if not defined (adrTable^.URL) { adrTable^.URL = "http://www.frontierOpenSource.editHere.com/rootUpdates/mainResponder"}}; bundle { // open discuss.root startupMsg ("Opening discuss.root" ); local (f = Frontier.getSubFolder ("ops") + "discuss.root"); system.temp.mainResponder.discussRootFile = f; if not defined ([f]) { //PBS 11/15/99: open discuss.root only if it's not already open mainResponder.openFile ("ops", "discuss.root")}; local (adrdata = @[f].["discuss"]); if not defined (adrdata^) { new (tabletype, adrdata)}; if not defined (adrdata^.calendar) { new (tabletype, @adrdata^.calendar)}; if not defined (adrdata^.messages) { new (tabletype, @adrdata^.messages)}; bundle { //prefs local (adrprefs = @adrdata^.prefs); if not defined (adrprefs^) { new (tabletype, adrprefs)}; Çif not defined (adrprefs^.auditTrail) //Fri, 12 Mar 1999 17:43:10 GMT by AR Çadrprefs^.auditTrail = true Çif not defined (adrprefs^.auditTrailFolder) Çlocal (pc = file.getpathchar ()) Çadrprefs^.auditTrailFolder = Frontier.getSubFolder ("/ops/discuss/") //PBS 3/9/99 if not defined (adrprefs^.nextMsgNum) { adrprefs^.nextMsgNum = 1}; if not defined (adrprefs^.url) { //PBS 3/16/99 adrprefs^.url = config.mainResponder.urls.discussMsgReader}; if not defined (adrprefs^.adrMsgReader) { //PBS 3/16/99 local (f = Frontier.getSubFolder ("/www/") + "htmlInterfaces.root"); if defined ([f].discussionGroup.msgReader) { adrprefs^.adrMsgReader = @[f].discussionGroup.msgReader} else { adrprefs^.adrMsgReader = nil}}}; //it can be set later: it should exist, at least try {delete (@[f].["item #1"])}; filemenu.save (f)}; bundle { // open members.root startupMsg ("Opening members.root" ); local (f = Frontier.getSubFolder ("ops") + "members.root"); system.temp.mainResponder.membersRootFile = f; if not defined ([f]) { //PBS 11/15/99: open members.root only if it's not already open mainResponder.openFile ("ops", "members.root")}; local (adrtable = @[f].["default"]); if not defined (adrtable^) { new (tabletype, adrtable)}; if not defined (adrtable^.callbacks) { new (tabletype, @adrtable^.callbacks)}; if not defined (adrtable^.cookieDomain) { adrtable^.cookieDomain = ""}; if not defined (adrtable^.cookieExpires) { Çadrtable^.cookieExpires = "Friday, 31-Dec-99 23:59:59 GMT" adrtable^.cookieExpires = "Mon, 01 Apr 2030 07:00:00 GMT"}; //PBS 12/30/99: set the cookie expiration date farther in the future if not defined (adrtable^.cookieName) { adrtable^.cookieName = "Nirvana Server"}; if not defined (adrtable^.mailReturnAddress) { adrtable^.mailReturnAddress = user.prefs.mailAddress}; if not defined (adrtable^.mailSubject) { adrtable^.mailSubject = "Welcome!"}; if not defined (adrtable^.mailTemplate) { adrtable^.mailTemplate = mainResponder.data.mailTemplate}; if not defined (adrtable^.openToPublic) { adrtable^.openToPublic = true}; if not defined (adrtable^.users) { new (tabletype, @adrtable^.users)}; try {delete (@[f].["item #1"])}}; Çbundle // open news.root Çlocal (folder = Frontier.getSubFolder ("/www/")) Çlocal (f = folder + "news.root") Çif file.exists (f) ÇstartupMsg ("Opening news.root" ) Çif not defined ([f]) //PBS 11/15/99: open news.root only if it's not already open ÇmainResponder.openFile ("www", "news.root") Çsystem.temp.mainResponder.newsRootFile = f bundle { // set up mainResponderWebsites.root bundle { // open local (folder = Frontier.getSubFolder ("/www/")); local (f = folder + "mainResponderWebsites.root"); if file.exists (f) { startupMsg ("Opening mainResponderWebsites.root" ); if not defined ([f]) { mainResponder.openFile ("www", "mainResponderWebsites.root")}; system.temp.mainResponder.mainResponderWebsitesRootFile = f}}; bundle { // add a "fake" entry to user.databases to that this database can be indexed local (adrTable = @user.databases.["mainResponderWebsites.root"]); if not (defined (adrTable^)) { new (tableType, adrTable); adrTable^.supportsIndexing = true; adrTable^.openOnStartup = false}}; bundle { // init rootUpdates prefs local (adrTable = @user.rootUpdates.servers.mainResponderWebsites); if not defined (adrTable^) { new (tableType, adrTable)}; if not defined (adrTable^.autobackup) { adrTable^.autobackup = true}; if not defined (adrTable^.dbname) { adrTable^.dbname = "mainResponderWebsites.root"}; if not defined (adrTable^.dialogs) { adrTable^.dialogs = true}; if not defined (adrTable^.lastUpdate) { adrTable^.lastUpdate = Frontier.data.initialLastUpdateTime}; if not defined (adrTable^.method) { adrTable^.method = "mainResponder.subscriptions.update"}; if not defined (adrTable^.port) { adrTable^.port = 8081}; if not defined (adrTable^.serialNum) { adrTable^.serialNum = 0}; if not defined (adrTable^.server) { adrTable^.server = "rootUpdates.frontierOpenSource.editHere.com"}; if not defined (adrTable^.URL) { adrTable^.URL = "http://www.frontierOpenSource.editHere.com/rootUpdates/mainResponderWebsites"}}}; msg ("") // wipe out any msg we left behind \ No newline at end of file --- 1,3 ---- FrontierVcsFile:1:scpt:mainResponder.startup ! ÇChanges Ç2/9/06; 2:31:15 PM by TAC Çset up 127.0.0.2 in domains for serving attachments Çadd sampleMrWs to domains table and install sampleMrWs Ç2/8/06; 11:10:24 AM by TAC Çadded support for mainResponderWebsites.root Çtweaked script formatting Çnews.root code disabled Ç2/1/06; 12:59:03 PM by TAC Çchange root update last update time from hard coded date to Frontier.data.initialLastUpdateTime Ç12/23/05; 9:31:12 PM by TAC ÇnirvanaServer is not a supported name for betty Çupdated root update server information for frontier open source Ç07/29/00; 10:12:31 AM by PBS ÇEnsure that the everyMinute task, if it already exists, is valid. It's crucial to save databases every minute. Ç05/15/00; 9:33:03 PM by PBS ÇMake sure the nightlyUpdates task has been created. This scheduler task handles updating the various Frontier gdbs. It was uncoupled from mainResponder.background.everyNight, as machines were competing on the hour to get updates. Now the times are more dispersed. Ç1999 Ç12/30/99; 12:16:25 PM by PBS ÇWhen creating a new default membership group, set the cookie expiration date to Mon, 01 Apr 2030 07:00:00 GMT. Ç12/11/99; 5:29:27 AM by AR ÇUpdated the code for hooking into the scheduler: Only create entries in user.scheduler if they don't already exist. Also, use scripts instead of addresses for better portability. Ç11/15/99; 10:57:16 PM by PBS ÇOn some systems, if any or all of config.root, discuss.root, members.root, and news.root are open before mainResponder's startup script runs, this would cause the startup script to abort with an error. Now the startup script checks to see if a database is open before trying to open it -- if it's already open, it doesn't try to open it. Ç10/25/99; 2:55:22 PM by PBS ÇCreate callbacks in user.webEditServer.callbacks as scripts, not addresses, since addresses break when Frontier is moved to another machine or folder or the hard drive is renamed. This removes the leading cause of problems with WebEditServer. ÇChanged default root updates prefs. Server is updates.userland.com, URL is http://frontier.userland.com/updates/mainResponder ÇThu, Mar 25, 1999 at 3:11:02 PM by PBS ÇDon't create an empty news.root if none exists. ÇTue, Mar 9, 1999 at 4:14:33 PM by PBS ÇCall Frontier.getSubFolder rather than mainResponder.getFolder. ÇThis script is called when Frontier starts up, to get mainResponder ready for another session. on startupMsg (s) { msg ("mainResponder.startup: " + s)}; new (tableType, @system.temp.mainResponder); local (alist = string.parseAddress (this)); system.temp.mainResponder.mainResponderRootFile = alist [1]; bundle { //get the path to Index.root ÇTuesday, January 19, 1999 at 3:52:27 PM by PBS system.temp.mainResponder.indexRootFile = Frontier.getSubFolder ("ops/") + "Index.root"}; bundle { //system.temp.mainResponder.search ÇTuesday, January 19, 1999 at 3:44:11 PM by PBS new (tableType, @system.temp.mainResponder.search)}; bundle { //open config.root startupMsg ("Opening config.root" ); local (f = Frontier.getSubFolder ("apps") + "config.root"); system.temp.mainResponder.configRootFile = f; if not defined ([f]) { //PBS 11/15/99: open config.root only if it's not already open mainResponder.openFile ("apps", "config.root")}; local (adrconfig = @[system.temp.mainResponder.configRootFile].config); if not defined (adrconfig^) { new (tabletype, adrconfig)}}; mainResponder.init (); bundle { // init Frontier.root stuff Çuser.menus.nirvanaServer = @mainResponder.menu // Sun, 07 Mar 1999 15:06:26 GMT by AR ÇAdd XML-RPC handlers. Çif not defined (user.betty.rpcHandlers.nirvanaServer) Çuser.betty.rpcHandlers.nirvanaServer = @mainResponder.rpcHandlers if not defined (user.betty.rpcHandlers.mainResponder) { //PBS 3/16/99: both names are supported user.betty.rpcHandlers.mainResponder = @mainResponder.rpcHandlers}; ÇAdd WebEditServer callbacks needed to support #changes table and search engine indexing. webEditServer.init (); local (scriptCode = "on nirvanaServer (adrObject, username, now, description)\r\treturn (mainResponder.subscriptions.checkInCallback (adrObject, username, now, description))"); if not defined (user.webeditserver.callbacks.checkin.nirvanaServer) { script.newScriptObject (scriptCode, @user.webeditserver.callbacks.checkin.nirvanaServer)}; if not defined (user.webeditserver.callbacks.sendToServer.nirvanaServer) { if defined (user.webEditServer.callbacks.sendToServer) { script.newScriptObject (scriptCode, @user.webeditserver.callbacks.sendToServer.nirvanaServer)}}; scriptCode = "on searchEngineClient (adrObject, username=nil, now=nil, description=nil)\r\treturn (mainResponder.search.client.webEditCallback (adrObject, username, now, description))"; if not defined (user.webeditserver.callbacks.checkIn.searchEngineClient) { script.newScriptObject (scriptCode, @user.webeditserver.callbacks.checkIn.searchEngineClient)}; if not defined (user.webEditServer.callbacks.sendToServer.searchEngineClient) { if defined (user.webEditServer.callbacks.sendToServer) { script.newScriptObject (scriptCode, @user.webEditServer.callbacks.sendToServer.searchEngineClient)}}; ÇScheduler. scheduler.init (); //upgrades user.scheduler if it needs it if not defined (user.scheduler.everyMinute.nirvanaServer) { local (scriptCode = "mainresponder.background.everyminute ()"); script.newScriptObject (scriptCode, @user.scheduler.everyMinute.nirvanaServer)} else { //PBS 07/29/00: ensure that the everyMinute task is actually valid: it's crucial to save databases every minute if typeOf (user.scheduler.everyMinute.nirvanaServer) == addressType { if not defined (user.scheduler.everyMinute.nirvanaServer^) { local (scriptCode = "mainresponder.background.everyminute ()"); script.newScriptObject (scriptCode, @user.scheduler.everyMinute.nirvanaServer)}}}; if not defined (user.scheduler.hourly.nirvanaServer) { local (scriptCode = "mainresponder.background.everyHour ()"); script.newScriptObject (scriptCode, @user.scheduler.hourly.nirvanaServer)}; if not defined (user.scheduler.hourly.searchEngine) { local (scriptCode = "mainResponder.search.server.indexStoredPages ()"); script.newScriptObject (scriptCode, @user.scheduler.hourly.searchEngine)}; if not defined (user.scheduler.overnight.nirvanaServer) { local (scriptCode = "mainresponder.background.everynight ()"); script.newScriptObject (scriptCode, @user.scheduler.overnight.nirvanaServer)}; if not defined (user.scheduler.tasks.nightlyUpdates) { local (adrTable = @user.scheduler.tasks.nightlyUpdates); startupMsg ("Creating nightly updates task."); new (tableType, adrTable); local (scriptCode = "mainResponder.background.nightlyUpdates ()"); script.newScriptObject (scriptCode, @adrTable^.script); adrTable^.ctRuns = 0; adrTable^.error = ""; adrTable^.minutesBetweenRuns = 1440; ÇGet a task time that's a random 5 to 55 minutes in the hour after the overnight script runs. local (overnightTaskTime = user.scheduler.tasks.overnight.taskTime); local (minutesPastTime = random (5, 55)); local (updatesTaskTime = overnightTaskTime + (minutesPastTime * 60)); adrTable^.taskTime = updatesTaskTime}}; bundle { // init rootUpdates prefs for mainResponder.root. ÇWednesday, March 03, 1999 at 11:40:43 AM by PBS local (adrTable = @user.rootUpdates.servers.mainResponder); if not defined (adrTable^) { new (tableType, adrTable)}; if not defined (adrTable^.autobackup) { adrTable^.autobackup = true}; if not defined (adrTable^.dbname) { adrTable^.dbname = "mainResponder.root"}; if not defined (adrTable^.dialogs) { adrTable^.dialogs = true}; if not defined (adrTable^.lastUpdate) { adrTable^.lastUpdate = Frontier.data.initialLastUpdateTime}; if not defined (adrTable^.method) { adrTable^.method = "mainResponder.subscriptions.update"}; if not defined (adrTable^.port) { adrTable^.port = 8081}; if not defined (adrTable^.serialNum) { adrTable^.serialNum = 0}; if not defined (adrTable^.server) { adrTable^.server = "rootUpdates.frontierOpenSource.editHere.com"}; if not defined (adrTable^.URL) { adrTable^.URL = "http://www.frontierOpenSource.editHere.com/rootUpdates/mainResponder"}}; bundle { // open discuss.root startupMsg ("Opening discuss.root" ); local (f = Frontier.getSubFolder ("ops") + "discuss.root"); system.temp.mainResponder.discussRootFile = f; if not defined ([f]) { //PBS 11/15/99: open discuss.root only if it's not already open mainResponder.openFile ("ops", "discuss.root")}; local (adrdata = @[f].["discuss"]); if not defined (adrdata^) { new (tabletype, adrdata)}; if not defined (adrdata^.calendar) { new (tabletype, @adrdata^.calendar)}; if not defined (adrdata^.messages) { new (tabletype, @adrdata^.messages)}; bundle { //prefs local (adrprefs = @adrdata^.prefs); if not defined (adrprefs^) { new (tabletype, adrprefs)}; Çif not defined (adrprefs^.auditTrail) //Fri, 12 Mar 1999 17:43:10 GMT by AR Çadrprefs^.auditTrail = true Çif not defined (adrprefs^.auditTrailFolder) Çlocal (pc = file.getpathchar ()) Çadrprefs^.auditTrailFolder = Frontier.getSubFolder ("/ops/discuss/") //PBS 3/9/99 if not defined (adrprefs^.nextMsgNum) { adrprefs^.nextMsgNum = 1}; if not defined (adrprefs^.url) { //PBS 3/16/99 adrprefs^.url = config.mainResponder.urls.discussMsgReader}; if not defined (adrprefs^.adrMsgReader) { //PBS 3/16/99 local (f = Frontier.getSubFolder ("/www/") + "htmlInterfaces.root"); if defined ([f].discussionGroup.msgReader) { adrprefs^.adrMsgReader = @[f].discussionGroup.msgReader} else { adrprefs^.adrMsgReader = nil}}}; //it can be set later: it should exist, at least try {delete (@[f].["item #1"])}; filemenu.save (f)}; bundle { // open members.root startupMsg ("Opening members.root" ); local (f = Frontier.getSubFolder ("ops") + "members.root"); system.temp.mainResponder.membersRootFile = f; if not defined ([f]) { //PBS 11/15/99: open members.root only if it's not already open mainResponder.openFile ("ops", "members.root")}; local (adrtable = @[f].["default"]); if not defined (adrtable^) { new (tabletype, adrtable)}; if not defined (adrtable^.callbacks) { new (tabletype, @adrtable^.callbacks)}; if not defined (adrtable^.cookieDomain) { adrtable^.cookieDomain = ""}; if not defined (adrtable^.cookieExpires) { Çadrtable^.cookieExpires = "Friday, 31-Dec-99 23:59:59 GMT" adrtable^.cookieExpires = "Mon, 01 Apr 2030 07:00:00 GMT"}; //PBS 12/30/99: set the cookie expiration date farther in the future if not defined (adrtable^.cookieName) { adrtable^.cookieName = "Nirvana Server"}; if not defined (adrtable^.mailReturnAddress) { adrtable^.mailReturnAddress = user.prefs.mailAddress}; if not defined (adrtable^.mailSubject) { adrtable^.mailSubject = "Welcome!"}; if not defined (adrtable^.mailTemplate) { adrtable^.mailTemplate = mainResponder.data.mailTemplate}; if not defined (adrtable^.openToPublic) { adrtable^.openToPublic = true}; if not defined (adrtable^.users) { new (tabletype, @adrtable^.users)}; try {delete (@[f].["item #1"])}}; Çbundle // open news.root Çlocal (folder = Frontier.getSubFolder ("/www/")) Çlocal (f = folder + "news.root") Çif file.exists (f) ÇstartupMsg ("Opening news.root" ) Çif not defined ([f]) //PBS 11/15/99: open news.root only if it's not already open ÇmainResponder.openFile ("www", "news.root") Çsystem.temp.mainResponder.newsRootFile = f bundle { // set up mainResponderWebsites.root bundle { // open local (folder = Frontier.getSubFolder ("/www/")); local (f = folder + "mainResponderWebsites.root"); if file.exists (f) { startupMsg ("Opening mainResponderWebsites.root" ); if not defined ([f]) { mainResponder.openFile ("www", "mainResponderWebsites.root")}; system.temp.mainResponder.mainResponderWebsitesRootFile = f}}; bundle { // add a "fake" entry to user.databases to that this database can be indexed local (adrTable = @user.databases.["mainResponderWebsites.root"]); if not (defined (adrTable^)) { new (tableType, adrTable); adrTable^.supportsIndexing = true; adrTable^.openOnStartup = false}}; bundle { // init rootUpdates prefs local (adrTable = @user.rootUpdates.servers.mainResponderWebsites); if not defined (adrTable^) { new (tableType, adrTable)}; if not defined (adrTable^.autobackup) { adrTable^.autobackup = true}; if not defined (adrTable^.dbname) { adrTable^.dbname = "mainResponderWebsites.root"}; if not defined (adrTable^.dialogs) { adrTable^.dialogs = true}; if not defined (adrTable^.lastUpdate) { adrTable^.lastUpdate = Frontier.data.initialLastUpdateTime}; if not defined (adrTable^.method) { adrTable^.method = "mainResponder.subscriptions.update"}; if not defined (adrTable^.port) { adrTable^.port = 8081}; if not defined (adrTable^.serialNum) { adrTable^.serialNum = 0}; if not defined (adrTable^.server) { adrTable^.server = "rootUpdates.frontierOpenSource.editHere.com"}; if not defined (adrTable^.URL) { adrTable^.URL = "http://www.frontierOpenSource.editHere.com/rootUpdates/mainResponderWebsites"}}; if sizeof (config.mainresponder.domains) == 0 { local (adrSite = @sampleMrWs, pc = file.getPathChar ()); mainResponder.siteTree.addSiteToTree ("default", "", adrSite, true, false); mainResponder.utilities.installSite (adrSite, "sample", "http://127.0.0.1/", "http://127.0.0.1/", false, true); config.mainresponder.domains.["127.0.0.2"] = pc + ((Frontier.getSubFolder ("/www/") + "attachments" + pc) - Frontier.pathString)}}; msg ("") // wipe out any msg we left behind \ No newline at end of file |
|
From: creedon <icr...@us...> - 2006-02-10 03:18:23
|
Update of /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/utilities In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv542 Added Files: installSite Log Message: created --- NEW FILE: installSite --- (This appears to be a binary file; contents omitted.) |
|
From: creedon <icr...@us...> - 2006-02-10 03:13:24
|
Update of /cvsroot/frontierkernel/odbs/prefsRoot/prefsSuite In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31129 Modified Files: browser Log Message: for picture display look for prefsPictureDisplay in the urls table, use it if there Index: browser =================================================================== RCS file: /cvsroot/frontierkernel/odbs/prefsRoot/prefsSuite/browser,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** browser 25 Nov 2005 22:45:49 -0000 1.3 --- browser 10 Feb 2006 03:13:16 -0000 1.4 *************** *** 1,3 **** FrontierVcsFile:1:scpt:prefsSuite.browser ! on browser (flSignupForm=false, flIncludeTitle=true, adrSignupCallback=nil, inputPanel=nil, action=nil, adrError=nil, flHandleRequiredFields=true, pta=nil, flRequiresRedo=false, flSetTitle=true, separatorColor=nil, separatorTextColor=nil) { ÇChanges Ç2005 Ç11/25/05; 10:24:11 AM by TAC Çchange method post check to use flPost, lowercase form method post Çchanged checked to checked=\"checked\" for XHTML compatibility Çclose p and input tags Çadded support for optional wizard outline formname attribute, if defined the HTML form generated will use this attribute for the name, if not defined then use panelTitle Ç7/27/05; 7:03:00 PM by TAC Çreworked 4/18/04; 7:58:37 PM code for upload a picture or any kind of file ÇPNG support Çstore height and width of pictures we recognize Ç2004 Ç4/18/04; 7:58:37 PM by TAC Çupload any kind of file, need to add interface to link to file Ç2003 Ç7/14/03; 5:24:12 PM by JES ÇAdded support for includeItem callback. Called with the value of the adr attribute of a prefs item, if the callback returns false, the item is skipped. Ç7/10/03; 11:26:22 PM by TAC Çdisplay picture, code looks for displayPicture attribute; if false don't display; default is true, contructs url that points into pta^.responderAttributes.urls^.prefsHome + "picture"; expects script to be there to deal with picture request Ç2002 Ç1/25/02; 6:11:51 PM by PBS ÇPerformance enhancements in the local "add" routine -- add a trailing semicolon; use parentheses to get the expression in x = x + y form (which is optimized by the kernel). Ç1/21/02; 9:00:32 PM by PBS ÇBug fix -- if a title is empty, the item is supposed to span both columns. This feature had been broken. Ç2000 Ç11/25/00; 8:23:57 PM by PBS ÇIf the title of an item is "", don't add a colon. This way we don't get colons before edit-in-Pike buttons. Ç03/31/00; 5:08:00 PM by PBS ÇWhen a sign-up form includes a picture, sometimes the browser would send empty data which got interpreted as a Frontier table. Then when building the form an implicit attempt was made to coerce the table to a string, which failed. Ç1999 Ç11/16/1999; 10:09:08 AM by AR ÇPurged all instances of xml.getAddressList in favor of our own looping code so that this script will work with arbitrarily deeply nested table structures. Ç10/30/99; 12:10:59 PM by PBS ÇImplemented workaround for 302 FOUND browser bug when redirecting to the same page you just posted to. Now the redirect happens to a different URL. If you were on a $panelName URL, you're redirected to a $panelNum URL, and vice versa. Ç10/30/99; 12:02:48 AM by PBS ÇManila sites need to be able to specify the color of separators and the text inside. If colors are not specified, the default is black for the separator and pta^.bgcolor for the text inside. Ç9/22/99; 8:39:27 PM by DW ÇWe used to always generate a form with an enctype="multipart/form-data" in its header. Now we only do so if the form contains a picture, or if there is a panel attribute named multiPart with a value of true. So in most circumstances we will not have a multipart form, in the past we would *always* have a multipart form. Ç9/16/99; 9:47:26 AM by DW ÇAdded link attribute on items, if present, the whole item links to the URL provided in the attribute. Search for "linkattribute" for implementation. Ç9/13/99; 12:37:43 PM by PBS ÇSign-ups and changed passwords weren't getting propagated. Now they are. Ç9/8/99; 12:40:57 AM by PBS ÇIf this is a sign up form, check that the two passwords match before creating the membership record. There was a bug -- the passwords might not match, but a membership record that didn't include a password would be created. Then the person signing up has no password -- but they can't sign up again because they're now a member. Ç8/19/99; 2:23:47 PM by PBS ÇNew optional parameter flSetTitle. If false, prefsSuite.browser does not set pta^.title, so the calling page can use a different title than the title of the panel. This was needed for the store -- which uses one panel for all order forms, but the titles are different depending on whether you're at the standard page or the Academic page. ÇDefault is standard behavior -- prefsSuite.browser sets pta^.title automatically. Ç8/18/99; 7:59:48 PM by PBS ÇIf you place a | character in a title, it will be replaced by a <br> tag so the title will wrap to the next line. Ç8/17/99; 11:24:53 AM by PBS ÇThe sendRpcMessages routine was moved to the top level of prefsSuite. The routine in this script now calls prefsSuite.sendRpcMessages. ÇThis was done so prefs broadcasting could happen outside of the context of this script or the page rendering process, so other scripts could broadcast prefs at will. Ç8/15/99; 3:59:30 PM by PBS ÇflRequiresRedo is no an optional parameter: if true, then the values will be taked from the post args. Ç8/14/99; 9:12:40 PM by PBS ÇMake sure content-type is defined before checking its value. This was causing errors with some browser on the main prefs page. Ç8/13/99; 3:53:13 PM by PBS ÇNew optional parameter pta. (Useful when debugging, also a small optimization.) Ç8/10/99; 10:24:06 PM by PBS ÇIf the person signing up uses an email address of an existing member, the error is reported in red text, and the user has a chance to re-fill out the form or go to the sign up page. ÇCheck that config.prefsServer.prefsDistributorFolder exists, so machines that aren't prefs distributors can run this script without generating errors. Ç8/10/99; 6:27:53 PM by PBS ÇNew parameter, flHandleRequiredFields, allows one to disable the automatic handling of required fields. Ç7/28/99; 9:05:00 by RAB Çadded action parameter Çadded adrError parameter Ç7/27/99; 17:35:00 by RAB ÇIf you specify a null title, then the field spans 2 columns. ÇAdded new pref alignNonRequired which keeps the titles better aligned Ç7/12/99; 2:59:44 by PBS ÇSupport for default values. An item can have a default attribute. If the item is not already in the user's member record, or it's a sign up form, then the item will get this default value. ÇAs in: <item title="Formatted in HTML?" type="boolean" adr="bulletins.inHtml" default="true"> Ç7/8/99; 10:03:09 AM by DW ÇImplement the XML-RPC-based prefs distribution system. Ç7/6/99; 8:41:39 AM by DW ÇAllow the pathargs to be a non-numeric string, it can contain the name of the panel, we'll transition to this form of pointing because it allows us to move things around. Ç6/27/99; 7:05:00 PM by RAB ÇSupport for static fields. ÇSupport for hidden fields. ÇSupport for checkbox fields. ÇOptional parameter for inputPanel number (rather then pathArgs) Ç6/12/99; 3:35:03 PM by PBS ÇSupport for required fields. ÇIf an item in the XML outline has a required="true" attribute, then it's a required field. ÇThe system will prompt you to enter any required fields you didn't enter. Ç6/5/99; 1:51:25 AM by PBS ÇadrSignupCallback is the address of a callback to be used when handling the POST request from a signup form. ÇThe callback is called after the POST args are processed, but before the form is built. ÇIf the callback returns anything but "", then the results of the callback are displayed in the page rather than the form. ÇThe callback thus has the chance to send email, for instance, when adding a member. And it has the chance to build a welcome page. Ç6/4/99; 4:15:27 PM by PBS ÇIf it's a signup form, and the member already exists, it's an error. ÇText in separators is now bold. Ç6/3/99; 12:37:55 PM by DW ÇAdded optional boolean parameter, flSignupForm, defaults false. If true, we don't require that pta^.adrmemberinfo be defined. ÇAdded optional boolean parameter, flIncludeTitle, defaults true. If false, we don't include the title, assume the page already has a title. Ç6/4/99; 10:38:22 AM by DW ÇAdd separator <item>s, that allow the author to separate items into groups. ÇAllow <item>s to be required, if the value has not been set, reject the submission. if pta == nil { pta = html.getPageTableAddress ()}; local (adrWizard = pta^.wizard); local (adrCallbacks = @adrwizard^.callbacks, flCallbacks = defined (adrCallbacks^)); local (pathArgs = pta^.pathArgs); local (pageName = nameOf (pta^.adrobject^)); Çlocal (flRequiresRedo = false) //it becomes true if required fields were missing local (emptyList = {}); local (flOneRequired = false); local (flPost = string.lower (pta^.method) == "post"); if adrError != nil { adrError^ = false}; local (rpcParamTable); new (tabletype, @rpcParamTable); on addPrefToRpcParamTable (partialaddress, adrval) { //7/8/99; 10:03:09 AM by DW if typeof (adrval^) == tabletype { local (i, adrItem); for i = 1 to sizeof (adrval^) { adrItem = @adrval^ [i]; if typeof (adrItem^) == binarytype { adrItem^ = base64.encode (adrItem^, infinity)}}}; rpcParamTable.[partialaddress] = adrval^}; on sendRpcMessages () { if defined (pta^.adrMemberInfo) { //PBS 9/2/99: this person may not be a member prefsSuite.sendRpcMessages (@rpcParamTable, pta^.adrMemberInfo)}; //PBS 8/17/99: routine moved to top level of prefsSuite Çlocal (xmltext) Çbundle //build the XML representation Çon add (s) Çxmltext = xmltext + s + "\r" Çadd ("<?xml version=\"1.0\"?>") Çadd ("<prefsUpdate>") Çadd ("<group>" + "default" + "</group>") Çadd ("<memberKey>" + nameof (pta^.adrmemberinfo^) + "</memberKey>") Çadd ("<value>" + xml.coercions.frontierValueToTaggedText (@rpcParamTable, 0) + "</value>") Çadd ("</prefsUpdate>") Çbundle //write the file Çif defined (config.prefsServer.prefsDistributorFolder) //PBS 8/10/99: make sure this machine is a prefs distributor Çlocal (folder = config.prefsServer.prefsDistributorFolder) Çloop //get a unique name, write the file Çlocal (f = folder + clock.ticks () + ".xml") Çfile.surefilepath (f) Çif not file.exists (f) Çfile.writewholefile (f, xmltext) Çbreak ÇprefsSuite.init () Çlocal (i, ct = sizeof (config.prefsServer.subscribers), adrsubscriber) Çlocal (params = {"default", nameof (pta^.adrmemberinfo^), rpcParamTable}) Çfor i = 1 to ct Çadrsubscriber = @config.prefsServer.subscribers [i] Çbetty.rpc.client (nameof (adrsubscriber^), adrsubscriber^.port, adrsubscriber^.procedureName, @params, rpcpath:adrsubscriber^.rpcPath, flAsynch:true) Ç<panel title="Register"> Ç<description>This is an experimental feature. If you have a server that can do something interesting with preferences, and if your server can receive XML-RPC messages, you can hook into the preference system at UserLand.Com. We need three pieces of information: a domain name for your server (an IP address will also work), the port that server is running on, and the name of the XML-RPC procedure you want us to call. This routine will be called every time every user updates, so please don't register unless you're serious.</description> Ç<item title="Domain" type="string" adr="prefsRpcHandler.domain"/> Ç<item title="Port" type="string" adr="prefsRpcHandler.port"/> Ç<item title="Procedure name" type="string" adr="prefsRpcHandler.procedureName"/> Ç</panel> return (true)}; local (htmlText = "", indentLevel = 0); on add (s) { htmlText = htmlText + (string.filledString ("\t", indentLevel) + s + "\r");}; prefsSuite.compileIfDirty (); //compile the XML if needed local (panelNum, adrPanel); bundle { //get the number of the panel, the address of its descriptor in the XML structure, set flPrivate page attribute if inputPanel != nil { //caller supplied the panel num panelNum = number (inputPanel); local (i, ctpanels = 0, adrItem, adrtable = @adrWizard^.structure [1]); for i = 1 to sizeOf (adrtable^) { adrItem = @adrtable^[i]; if xml.convertToDisplayName (nameOf (adrItem^)) == "panel" { ++ctpanels; if ctpanels == panelNum { //found it! adrPanel = adrItem; break}}}; if ctpanels < panelNum { scripterror ("Can't display the panel because the wizard doesn't have a panel #" + panelNum + ".")}} else { panelNum = prefsSuite.pathArgsToPanelNum (pathargs, @adrpanel)}; local (flPrivate = false); try { flPrivate = boolean (xml.getAttribute (adrPanel, "private")^)}; pta^.flPrivate = flPrivate}; local (panelTitle, description, formName); bundle { //get the title and description panelTitle = xml.getAttribute (adrPanel, "title")^; if flSetTitle { //PBS 8/19/99: if flSetTitle is false, then the calling page is responsible for setting pta^.title pta^.title = panelTitle}; description = xml.getValue (adrPanel, "description"); description = string.replaceAll (description, "\t", ""); description = string.replaceAll (description, "\r", "<p />"); bundle { // 11/25/05; 11:09:01 AM by TAC - formName try { formName = xml.getValue (adrPanel, "formname")} else { formName = string.innerCaseName (panelTitle)}}}; on getPrefAddress (partialAddress) { //takes a partial address, returns an address into user's member table local (nomad = pta^.adrMemberInfo, s); loop { if not (partialAddress contains ".") { nomad = @nomad^.[partialAddress]; break}; s = string.nthField (partialAddress, '.', 1); nomad = @nomad^.[s]; if not defined (nomad^) { new (tableType, nomad)}; partialAddress = string.delete (partialAddress, 1, sizeOf (s) + 1)}; return (nomad)}; if flPost { //PBS 6/12/99: check that required fields are non-empty if flHandleRequiredFields { //PBS 8/10/99: required fields handling can be turned off local (i, adrOneItem, emptyFieldNames = {}); for i = 1 to sizeOf (adrPanel^) { //check whether there are required fields that have not been filled out adrOneItem = @adrPanel^ [i]; if xml.convertToDisplayName (nameOf (adrOneItem^)) == "item" { local (flRequired = false); try { flRequired = boolean (xml.getAttributeValue (adrOneItem, "required"))}; if flRequired { //make sure it exists and is non-empty local (adr = xml.getAttributeValue (adrOneItem, "adr"), flEmpty = false); if not defined (pta^.postArgs.[adr]) { flEmpty = true} else { if sizeOf (pta^.postArgs.[adr]) == 0 { flEmpty = true}}; if flEmpty { emptyFieldNames = emptyFieldNames + xml.getAttributeValue (adrOneItem, "title")}}}}; if emptyFieldNames != {} { //if the emptyFieldNames list contains items, then display errors local (errorMessage = "Please enter the required field"); local (i, ctEmpties); bundle { //build the top error message ctEmpties = sizeOf (emptyFieldNames); if sizeOf (emptyFieldNames) > 1 { errorMessage = errorMessage + "s"}; errorMessage = errorMessage + " "; for i = 1 to sizeOf (emptyFieldNames) { errorMessage = errorMessage + "<b>" + emptyFieldNames [i] + "</b>"; if i < ctEmpties { if ctEmpties > 2 { errorMessage = errorMessage + ", "} else { errorMessage = errorMessage + " "}; if ctEmpties == 2 or i == ctEmpties - 1 { errorMessage = errorMessage + "and "}}}; if ctEmpties < 2 { errorMessage = errorMessage + "."} //" is required." else { errorMessage = errorMessage + "."}; //" are required." add ("<font color=\"red\">" + errorMessage + "</font>")}; flRequiresRedo = true; if adrError != nil { //PBS 8/9/99 -- adrError is optional: make sure it's not nil before trying to deference it. adrError^ = true}}}}; if flPost and not flRequiresRedo { //process the POSTed data Çscratchpad.postargs = pta^.postargs; edit (@scratchpad.postargs) ÇCreate a new membership table if needed. if not defined (pta^.adrMemberInfo) and flSignupForm { if defined (pta^.postArgs.["personalInfo.email"]) { local (memberKey = pta^.postArgs.["personalInfo.email"]); try { //validate the email address mainResponder.members.validMailAddress (memberKey)} else { scriptError ("Can't create a membership record because the email address is invalid.")}; local (adrMember = mainResponder.members.getMemberTable (pta^.defaultMembershipGroup, memberKey)); if not defined (adrMember^) { ÇFirst check the password. PBS 9/7/99 if defined (pta^.postArgs.["scratchpassword1"]) { if defined (pta^.postArgs.["scratchpassword2"]) { if pta^.postArgs.["scratchpassword1"] != pta^.postArgs.["scratchpassword2"] { add ("<p /><font color=\"red\">Can't sign you up because the two passwords you entered do not match.</font>"); flRequiresRedo = true}}}; if not flRequiresRedo { new (tableType, adrMember); pta^.adrMemberInfo = adrMember; pta^.memberGroupName = pta^.defaultMembershipGroup}} else { //PBS 6/4/99: member already exists, it's an error flRequiresRedo = true; add ("<font color=\"red\">Can't sign up \"" + memberKey + "\" because \"" + memberKey + "\" is already a member.</font>"); if defined (pta^.urls^.memberLogon) { add ("<p /><font color=\"red\">If you want to login, even if you forgot your password, go to the " + html.getLink ("Login", pta^.urls^.memberLogon) + " page.</font>")}}}}; if not flRequiresRedo { //PBS 8/10/99: it may have been set false, even though it was false when entering this block local (refreshAfterPost = false); if defined (pta^.postargs.refreshAfterPost) { refreshAfterPost = true; delete (@pta^.postargs.refreshAfterPost)}; local (adrtable = @pta^.postargs, ct = sizeof (adrtable^), i, adrItem, val); for i = 1 to ct { adrItem = @adrtable^ [i]; local (nomad); if defined (pta^.adrMemberInfo) { nomad = pta^.adrMemberInfo}; local (partialaddress = nameof (adrItem^), s); if partialaddress beginswith "scratchpassword" { if partialaddress == "scratchpassword1" { local (otherpassword = adrtable^.["scratchpassword2"]); if adrtable^.["scratchpassword1"] != otherpassword { scriptError ("Can't set the password because the two passwords you entered are not equal.")}; if not (otherpassword == "") { pta^.adrmemberinfo^.password = otherpassword; addPrefToRpcParamTable ("password", @pta^.adrmemberinfo^.password ); //PBS 9/13/99: propagate passwords local (mailaddress = nameof (pta^.adrmemberinfo^)); mainresponder.members.setcookie (mailaddress, otherpassword)}}} else { on setValueCallback (adrval) { //5/22/99; 8:46:15 AM by DW if flcallbacks { local (adrcallback = @adrcallbacks^.setValue); if defined (adrcallback^) { adrcallback^ (partialaddress, adrval)}}; addPrefToRpcParamTable (partialaddress, adrval)}; //7/8/99; 10:03:09 AM by DW //PBS 9/13/99: promoted this line if defined (pta^.adrMemberInfo) { nomad = getPrefAddress (partialaddress); if typeof (adrItem^) == tabletype { //it's a multi-part object local (datasize = sizeof (adrItem^.data)); local (contentType); if defined (adrItem^.["Content-Type"]) { //PBS 8/14/99: make sure Content-Type is defined before checking its value contentType = string.lower (adrItem^.["Content-Type"])}; if datasize > 0 { //this is what you get if you don't specify a file bundle { // 7/27/05; 7:01:15 PM by TAC - upload a picture or any kind of file; GIF, JPEG, and PNG pictures are recognized local (bt = "data"); // binary type, default if contentType beginswith "image" { local (maxbytes = pta^.wizard^.prefs.maxPictureBytes); if datasize > maxbytes { scriptError ("Can't accept the file because it is too large. Maximum is " + string.kBytes (maxbytes) + ".")}; bundle { // get and set height and width of the image local (hwList); if contentType == "image/gif" { hwList = html.getGifHeightWidth (@adrItem^.data)}; if contentType == "image/jpeg" { hwList = html.getJpegHeightWidth (@adrItem^.data)}; if contentType == "image/png" { hwList = html.getPngHeightWidth (@adrItem^.data)}; if hwList != nil { adrItem^.height = hwList [1]; adrItem^.width = hwList [2]}}} else { if defined (pta^.wizard^.prefs.maxFileBytes) { local { maxBytes = pta^.wizard^.prefs.maxFileBytes}; if dataSize > maxBytes { scriptError ("Can't accept the file because it is too large. Maximum is " + string.kBytes (maxBytes) + ".")}}}; adrItem^.data = binary (adrItem^.data); try { // set the binary type bt = user.webserver.prefs.MIME2Binary.[contentType]}; setBinaryType (@adrItem^.data, bt); nomad^ = adrItem^; //copy the table into storage setValueCallback (adrItem)}; Çbundle // old code Çif not contentType beginswith "image" ÇscriptError ("Can't accept the file because it is not an image.") Çlocal (maxbytes = pta^.wizard^.prefs.maxPictureBytes) Çif datasize > maxbytes ÇscriptError ("Can't accept the file because it is too large. Maximum is " + string.kBytes (maxbytes) + ".") Çbundle //set the type attribute of the data Çlocal (bt = nil) Çif contentType == "image/gif" Çbt = "GIFf" Çif contentType == "image/jpeg" Çbt = "JPEG" Çif bt != nil ÇadrItem^.data = binary (adrItem^.data) ÇsetBinaryType (@adrItem^.data, bt) Çnomad^ = adrItem^ //copy the table into storage ÇsetValueCallback (adrItem)}}}}}} else { val = adrItem^; if (val == "true") or (val == "false") { val = boolean (val)}; nomad^ = val; setValueCallback (@val)}}}}; sendRpcMessages (); //7/8/99; 10:03:09 AM by DW if refreshAfterPost { ÇPBS 10/30/99: redirect to a different URL by choosing an alternate pathArgs form. ÇIf number, use title; if title, use number. ÇThis works around the 302 FOUND Netscape browser bug. local (panelIdentifier, newPathArgs); try { panelIdentifier = number (pta^.pathArgs); newPathArgs = string.innerCaseName (panelTitle)} else { newPathArgs = panelNum}; Çmainresponder.redirect (pta^.uri + "$" + pta^.pathargs) mainresponder.redirect (pta^.uri + "$" + newPathArgs)}; ÇCall the signup callback, if applicable. PBS 6/5/99 ÇThe signup callback can send email and do similar operations. ÇIf it returns an empty string, then build the form as normal. ÇIf it returns text, then return that text -- the signup callback can control what gets displayed on the page. if flSignupForm and adrSignupCallback != nil { htmlText = adrSignupCallback^ (); if htmlText != "" { return (htmlText)}}}}; bundle { //add the form with the items local (flRequiresMultiPart = false); try {flRequiresMultiPart = boolean (xml.getattribute (adrpanel, "multiPart"))^}; //multiPart attribute is optional if action == nil { action = pagename + "$" + panelnum}; add ("<form name=\"" + formName + "\" action=\"" + action + "\" method=\"post\"<<xxx>>>"); indentlevel++; bundle { //add hidden item if it has refreshAfterPost attribute try { local (refreshAfterPost = boolean (xml.getattribute (adrpanel, "refreshAfterPost")^)); if refreshAfterPost { add ("<input type=\"hidden\" name=\"refreshAfterPost\" value=\"1\" />")}}}; if flIncludeTitle { add ("<h2>" + panelTitle + "</h2>")}; add (description + "<p />"); add ("<table cellpadding=\"7\" cellspacing=\"0\" border=\"0\">"); indentlevel++; local (flShowSubmitButton = false); local (i, adrItem, adr, title, type, popuptext, linkattribute, defaultvalue, flspan, ixitem = 0); for i = 1 to sizeOf (adrPanel^) { adrItem = @adrPanel^ [i]; adr = ""; if xml.convertToDisplayName (nameOf (adrItem^)) == "item" { ixitem++; flShowSubmitButton = true; defaultValue = ""; //PBS 7/12/99: clear out previous default value bundle { //set title title = xml.getattribute (adrItem, "title")^; local (flAddColon = true); if title endswith "?" { flAddColon = false}; if string.trimWhiteSpace (title) == "" { flAddColon = false}; if flAddColon { title = title + ":"}}; type = string.lower (xml.getattribute (adrItem, "type")^); //types are unicase try {adr = xml.getattribute (adrItem, "adr")^}; //adr attribute is optional, for example separators don't have adrs if adr != "" { //JES 7/14/: call callbacks if they exist -- determine if this item should be included if flCallbacks { if defined (adrCallbacks^.includeItem) { try { if not adrCallbacks^.includeItem (adr) { continue}}}}}; if type == "separator" { //very special case if separatorColor == nil { //PBS 10/30/99: Manila sites need to be able to specify separator and separator text color separatorColor = "black"}; if separatorTextColor == nil { separatorTextColor = pta^.bgcolor}; add ("<tr><td colspan=\"2\"><table cellpadding=\"2\" cellspacing=\"0\" width=\"100%\"><tr>"); indentlevel++; add ("<td bgcolor=\"" + separatorColor + "\"><font color=\"" + separatorTextColor + "\"><b>" + title + "</b></font></td>"); //PBS 6/4/99: text in separators is bold add ("</tr></table></td></tr>"); indentlevel--; continue}; bundle { //get popuptext if it's present try { popuptext = xml.getvalue (adrItem, "popuptext")} else { popuptext = ""}}; bundle { //get link attribute if it's present try { linkattribute = xml.getattribute (adrItem, "link")^} else { linkattribute = ""}}; add ("<tr>"); indentlevel++; ÇIf this is a re-do, and this is an empty required field, then ask the user to fill it in. Çif flRequiresRedo and emptyList contains adrItem Çlocal (fieldName = xml.getAttribute (adrItem, "title")^) Çadd ("<td colspan=\"2\"><font color=\"red\"><b>" + fieldName + "</b> is empty. Please fill it in.</font></td></tr>") Çadd ("<tr>") bundle { //set defaultvalue if flRequiresRedo { //PBS 6/12/99: get the value from the POST args if it's a redo defaultValue = pta^.postArgs.[adr]} else { ÇHandle default values. PBS 7/12/99 try { defaultValue = xml.getAttributeValue (adrItem, "default")}; //PBS 7/12/99: get default value from outline if not flSignupForm { if defined (pta^.adrMemberInfo) { with pta^.adrmemberinfo^ { Çdefaultvalue = "" try { local (adrobject = getPrefAddress (adr)); if typeof (adrobject^) == tabletype { //it's a multi-part object defaultvalue = adrobject^.filename} else { defaultvalue = adrobject^}}; bundle { //5/22/99; 7:31:16 AM by DW, call the callback if one is present if flcallbacks { local (adrcallback = @adrcallbacks^.getValue); if defined (adrcallback^) { defaultvalue = adrcallback^ (adr, defaultvalue)}}}}}}}}; //adr is the partial address, the callback should be a big case statement, based on which value is being asked for bundle { //add title local (s); if popuptext != "" { local (shortaddress = panelnum + "," + ixitem); local (href = "href=\"JavaScript: newWindow=openWin( '" + adrwizard^.prefs.popupPageName + "$" + shortaddress + "', 'prefsPopup', '" + string (adrwizard^.prefs.popupWindowAttributes) + "' );newWindow.focus()\""); s = "<a " + href + " title=\"" + string.firstsentence (popuptext) + "..\">" + title + "</a>"} else { Çif string.lower (type) == "picture" Çlocal (s = "<a href=\"" + adrwizard^.prefs.picturePageName + "$" + adr + "\">" + title + "</a>") Çadd ("<td valign=\"top\">" + s + "</td>") if linkattribute != "" { s = "<a href=\"" + linkattribute + "\">" + title + "</a>"} else { s = title}}; s = string.replaceAll (s, "|", "<br><font color=\"" + pta^.bgcolor + "\">*</font> "); //PBS 8/18/99: replace | with <br> local (flRequired = false); try { flRequired = boolean (xml.getAttributeValue (adrItem, "required"))}; if flRequired and not (flRequiresRedo and not (emptyList contains adrItem)) and flHandleRequiredFields { //PBS 8/10/99: required fields handling can be turned off s = "<b><font color=\"red\">*</font></b> " + s; flOneRequired = true} else { if defined (adrwizard^.prefs.alignNonRequired) and adrwizard^.prefs.alignNonRequired { s = "<b><font color=\"" + pta^.bgColor + "\">*</font></b> " + s}}; if title == "" { //PBS 01/21/02: no title wanted? (the bug was -- it was checking if title == ":") flspan = true} else { add ("<td valign=\"top\">" + s + "</td>"); flspan=false}}; if flspan { add ("<td colspan=\"2\">"); indentlevel++} else { add ("<td>"); indentlevel++}; case type { "string" { local (size = adrwizard^.prefs.stringDefaultSize, maxlength = adrwizard^.prefs.stringDefaultMaxLength); try {size = xml.getattribute (adrItem, "size")^}; try {maxlength = xml.getattribute (adrItem, "maxlength")^}; add ("<input type=\"text\" name=\"" + adr + "\" size=\"" + size + "\" maxlength=\"" + maxlength + "\" value=\"" + defaultvalue + "\" />")}; "static" { ÇAdd the hidden field so the value is processed with the form, add just the defualt value as the static display. add (defaultvalue); add ("<input type=\"hidden\" name=\"" + adr + "\" value=\"" + defaultvalue + "\" />")}; "hidden" { ÇAdd the hidden field so the value is processed with the form. add ("<input type=\"hidden\" name=\"" + adr + "\" value=\"" + defaultvalue + "\" />")}; "popup" { Ç<SELECT name="state"> Ç<OPTION>Select a state Ç<OPTION VALUE="AL">Alabama Ç<OPTION VALUE="AK">Alaska Ç<OPTION VALUE="AZ">Arizona Ç<OPTION VALUE="AR">Arkansas Ç</SELECT> add ("<select name=\"" + adr + "\">"); indentlevel++; local (i, adroption, title, value, s); for i = 1 to sizeOf (adrItem^) { adroption = @adrItem^ [i]; if xml.convertToDisplayName (nameOf (adroption^)) == "option" { title = xml.getattribute (adroption, "title")^; value = xml.getattribute (adroption, "value")^; s = ""; if defaultvalue == value { s = " selected"}; add ("<option value=\"" + value + "\"" + s + ">" + title + "</option>")}}; add ("</select>"); indentlevel--}; "color" { //7/13/99; 11:34:37 PM by DW add ("<select name=\"" + adr + "\">"); indentlevel++; local (adrtable = @system.verbs.colors, i, ct = sizeof (adrtable^)); for i = 1 to ct { onecolor = nameof (adrtable^ [i]); s = ""; if defaultvalue == onecolor { s = " selected"}; add ("<option value=\"" + onecolor + "\"" + s + ">" + onecolor + "</option>")}; add ("</select>"); indentlevel--}; "password" { local (size = adrwizard^.prefs.passwordDefaultSize, maxlength = adrwizard^.prefs.passwordDefaultMaxLength); try {size = xml.getattribute (adrItem, "size")^}; try {maxlength = xml.getattribute (adrItem, "maxlength")^}; add ("<input type=\"password\" name=\"" + adr + "\" size=\"" + size + "\" maxlength=\"" + maxlength + "\" value=\"" + defaultvalue + "\" />")}; "text" { local (rows = adrwizard^.prefs.textDefaultRows, cols = adrwizard^.prefs.textDefaultCols); try {rows = xml.getattribute (adrItem, "rows")^}; try {cols = xml.getattribute (adrItem, "cols")^}; add ("<textarea name=\"" + adr + "\" rows=\"" + rows + "\" cols=\"" + cols + "\" wrap=\"soft\">" + defaultvalue + "</textarea>")}; "boolean" { Çtemp.ddx2 = boolean (defaultvalue) Çtemp.ddxstring = defaultvalue on addradio (val, flchecked, linetext) { local (s = "<input type=\"radio\" name=\"" + adr + "\" value=\"" + val + "\""); if flchecked { s = s + " checked=\"checked\""}; add (s + " />" + linetext)}; addradio ("true", boolean (defaultvalue), "Yes"); addradio ("false", !boolean (defaultvalue), "No"); Çadd ("<input type=\"radio\" name=\"" + adr + "\" value=" + "1 checked" + ">" + "Yes") };Çadd ("<input type=\"radio\" name=\"" + adr + "\" value=\"" + "0" + "\">" + "No") "checkbox" { add ("<input type=\"checkbox\" name=\"" + adr + "\" value=\"" + defaultvalue + "\" />")}; "picture" { flRequiresMultiPart = true; if typeOf (defaultValue) == tableType { //PBS 03/30/00: if defaultvalue is a table, set it to "", fixes an error message on sign-up table.assign (@defaultValue, "")}; if defined (pta^.adrMemberInfo) and not (flSignUpForm) { // Thu, Jul 10, 2003 at 11:26:22 PM by TAC - display picture local (adrObject = getPrefAddress (adr)); if defined (adrObject^) { local { flDisplayPicture = true}; try { flDisplayPicture = xml.getAttribute (adrItem, "displayPicture")^}; if flDisplayPicture { local (imgTag = "<img src=\""); local (url = pta^.responderAttributes.urls^.prefsHome + "picture$" + adr); imgTag = imgTag + url + "\" "; try { // defensive imgTag = imgTag + "height=\"" + adrObject^.height + "\" "}; try { // defensive imgTag = imgTag + "width=\"" + adrObject^.width + "\" "}; imgTag = imgTag + "border=\"0\" "; imgTag = imgTag + "alt=\"" + adrObject^.filename + "\">"; add (imgTag + "\r<br/>\r<br/>")}}}; add ("<input name=\"" + adr + "\" type=\"file\" size=\"40\" value=\"" + defaultvalue + "\" />")}; "file" { // 4/18/04; 7:58:37 PM by TAC - upload any kind of file flRequiresMultiPart = true; Çif typeOf (defaultValue) == tableType //PBS 03/30/00: if defaultvalue is a table, set it to "", fixes an error message on sign-up Çtable.assign (@defaultValue, "") add ("<input name=\"" + adr + "\" type=\"file\" size=\"40\" value=\"" + defaultvalue + "\" />")}; "custom" { if flcallbacks { //allow application to do object rendering local (adrcallback = @adrcallbacks^.customRenderer); if defined (adrcallback^) { add (adrcallback^ (adr, defaultvalue, adrItem))}} //send the partial address, the default value, and the address of the XML table of the object being rendered else { add (" ")}}} else { add (" ")}; add ("</td>"); indentlevel--; add ("</tr>"); indentlevel--}}; add ("<tr>"); indentlevel++; add ("<td> </td>"); bundle { //add Submit button local (s = " "); if flShowSubmitButton { //if all there is is text on the page, no need to put a submit item on the page s = "<input type=\"submit\" value=\" " + "Submit" + " \" />"}; add ("<td align=\"right\">" + s + "</td>")}; add ("</tr>"); indentlevel--; add ("</table>"); indentlevel--; add ("</form>"); indentlevel--; if flOneRequired and not flRequiresRedo { //add note about required fields if flHandleRequiredFields { //PBS 8/10/99: required fields handling can be turned off Çadd ("Required fields are marked with <b><font color=\"red\">*</font></b>") htmlText = "Required fields are marked with <b><font color=\"red\">*</font></b>" + htmlText}}; bundle { //do the enctype substitution local (pattern = "<<xxx>>"); if flRequiresMultiPart { htmltext = string.replace (htmltext, pattern, "enctype=\"multipart/form-data\"")} else { htmltext = string.replace (htmltext, pattern, "")}}}; return (htmlText)} \ No newline at end of file --- 1,3 ---- FrontierVcsFile:1:scpt:prefsSuite.browser ! on browser (flSignupForm=false, flIncludeTitle=true, adrSignupCallback=nil, inputPanel=nil, action=nil, adrError=nil, flHandleRequiredFields=true, pta=nil, flRequiresRedo=false, flSetTitle=true, separatorColor=nil, separatorTextColor=nil) { ÇChanges Ç1/4/06; 1:56:28 PM by TAC Çfor picture display look for prefsPictureDisplay in the urls table, use it if there Ç2005 Ç11/25/05; 10:24:11 AM by TAC Çchange method post check to use flPost, lowercase form method post Çchanged checked to checked=\"checked\" for XHTML compatibility Çclose p and input tags Çadded support for optional wizard outline formname attribute, if defined the HTML form generated will use this attribute for the name, if not defined then use panelTitle Ç7/27/05; 7:03:00 PM by TAC Çreworked 4/18/04; 7:58:37 PM code for upload a picture or any kind of file ÇPNG support Çstore height and width of pictures we recognize Ç2004 Ç4/18/04; 7:58:37 PM by TAC Çupload any kind of file, need to add interface to link to file Ç2003 Ç7/14/03; 5:24:12 PM by JES ÇAdded support for includeItem callback. Called with the value of the adr attribute of a prefs item, if the callback returns false, the item is skipped. Ç7/10/03; 11:26:22 PM by TAC Çdisplay picture, code looks for displayPicture attribute; if false don't display; default is true, contructs url that points into pta^.responderAttributes.urls^.prefsHome + "picture"; expects script to be there to deal with picture request Ç2002 Ç1/25/02; 6:11:51 PM by PBS ÇPerformance enhancements in the local "add" routine -- add a trailing semicolon; use parentheses to get the expression in x = x + y form (which is optimized by the kernel). Ç1/21/02; 9:00:32 PM by PBS ÇBug fix -- if a title is empty, the item is supposed to span both columns. This feature had been broken. Ç2000 Ç11/25/00; 8:23:57 PM by PBS ÇIf the title of an item is "", don't add a colon. This way we don't get colons before edit-in-Pike buttons. Ç03/31/00; 5:08:00 PM by PBS ÇWhen a sign-up form includes a picture, sometimes the browser would send empty data which got interpreted as a Frontier table. Then when building the form an implicit attempt was made to coerce the table to a string, which failed. Ç1999 Ç11/16/1999; 10:09:08 AM by AR ÇPurged all instances of xml.getAddressList in favor of our own looping code so that this script will work with arbitrarily deeply nested table structures. Ç10/30/99; 12:10:59 PM by PBS ÇImplemented workaround for 302 FOUND browser bug when redirecting to the same page you just posted to. Now the redirect happens to a different URL. If you were on a $panelName URL, you're redirected to a $panelNum URL, and vice versa. Ç10/30/99; 12:02:48 AM by PBS ÇManila sites need to be able to specify the color of separators and the text inside. If colors are not specified, the default is black for the separator and pta^.bgcolor for the text inside. Ç9/22/99; 8:39:27 PM by DW ÇWe used to always generate a form with an enctype="multipart/form-data" in its header. Now we only do so if the form contains a picture, or if there is a panel attribute named multiPart with a value of true. So in most circumstances we will not have a multipart form, in the past we would *always* have a multipart form. Ç9/16/99; 9:47:26 AM by DW ÇAdded link attribute on items, if present, the whole item links to the URL provided in the attribute. Search for "linkattribute" for implementation. Ç9/13/99; 12:37:43 PM by PBS ÇSign-ups and changed passwords weren't getting propagated. Now they are. Ç9/8/99; 12:40:57 AM by PBS ÇIf this is a sign up form, check that the two passwords match before creating the membership record. There was a bug -- the passwords might not match, but a membership record that didn't include a password would be created. Then the person signing up has no password -- but they can't sign up again because they're now a member. Ç8/19/99; 2:23:47 PM by PBS ÇNew optional parameter flSetTitle. If false, prefsSuite.browser does not set pta^.title, so the calling page can use a different title than the title of the panel. This was needed for the store -- which uses one panel for all order forms, but the titles are different depending on whether you're at the standard page or the Academic page. ÇDefault is standard behavior -- prefsSuite.browser sets pta^.title automatically. Ç8/18/99; 7:59:48 PM by PBS ÇIf you place a | character in a title, it will be replaced by a <br> tag so the title will wrap to the next line. Ç8/17/99; 11:24:53 AM by PBS ÇThe sendRpcMessages routine was moved to the top level of prefsSuite. The routine in this script now calls prefsSuite.sendRpcMessages. ÇThis was done so prefs broadcasting could happen outside of the context of this script or the page rendering process, so other scripts could broadcast prefs at will. Ç8/15/99; 3:59:30 PM by PBS ÇflRequiresRedo is no an optional parameter: if true, then the values will be taked from the post args. Ç8/14/99; 9:12:40 PM by PBS ÇMake sure content-type is defined before checking its value. This was causing errors with some browser on the main prefs page. Ç8/13/99; 3:53:13 PM by PBS ÇNew optional parameter pta. (Useful when debugging, also a small optimization.) Ç8/10/99; 10:24:06 PM by PBS ÇIf the person signing up uses an email address of an existing member, the error is reported in red text, and the user has a chance to re-fill out the form or go to the sign up page. ÇCheck that config.prefsServer.prefsDistributorFolder exists, so machines that aren't prefs distributors can run this script without generating errors. Ç8/10/99; 6:27:53 PM by PBS ÇNew parameter, flHandleRequiredFields, allows one to disable the automatic handling of required fields. Ç7/28/99; 9:05:00 by RAB Çadded action parameter Çadded adrError parameter Ç7/27/99; 17:35:00 by RAB ÇIf you specify a null title, then the field spans 2 columns. ÇAdded new pref alignNonRequired which keeps the titles better aligned Ç7/12/99; 2:59:44 by PBS ÇSupport for default values. An item can have a default attribute. If the item is not already in the user's member record, or it's a sign up form, then the item will get this default value. ÇAs in: <item title="Formatted in HTML?" type="boolean" adr="bulletins.inHtml" default="true"> Ç7/8/99; 10:03:09 AM by DW ÇImplement the XML-RPC-based prefs distribution system. Ç7/6/99; 8:41:39 AM by DW ÇAllow the pathargs to be a non-numeric string, it can contain the name of the panel, we'll transition to this form of pointing because it allows us to move things around. Ç6/27/99; 7:05:00 PM by RAB ÇSupport for static fields. ÇSupport for hidden fields. ÇSupport for checkbox fields. ÇOptional parameter for inputPanel number (rather then pathArgs) Ç6/12/99; 3:35:03 PM by PBS ÇSupport for required fields. ÇIf an item in the XML outline has a required="true" attribute, then it's a required field. ÇThe system will prompt you to enter any required fields you didn't enter. Ç6/5/99; 1:51:25 AM by PBS ÇadrSignupCallback is the address of a callback to be used when handling the POST request from a signup form. ÇThe callback is called after the POST args are processed, but before the form is built. ÇIf the callback returns anything but "", then the results of the callback are displayed in the page rather than the form. ÇThe callback thus has the chance to send email, for instance, when adding a member. And it has the chance to build a welcome page. Ç6/4/99; 4:15:27 PM by PBS ÇIf it's a signup form, and the member already exists, it's an error. ÇText in separators is now bold. Ç6/3/99; 12:37:55 PM by DW ÇAdded optional boolean parameter, flSignupForm, defaults false. If true, we don't require that pta^.adrmemberinfo be defined. ÇAdded optional boolean parameter, flIncludeTitle, defaults true. If false, we don't include the title, assume the page already has a title. Ç6/4/99; 10:38:22 AM by DW ÇAdd separator <item>s, that allow the author to separate items into groups. ÇAllow <item>s to be required, if the value has not been set, reject the submission. if pta == nil { pta = html.getPageTableAddress ()}; local (adrWizard = pta^.wizard); local (adrCallbacks = @adrwizard^.callbacks, flCallbacks = defined (adrCallbacks^)); local (pathArgs = pta^.pathArgs); local (pageName = nameOf (pta^.adrobject^)); Çlocal (flRequiresRedo = false) //it becomes true if required fields were missing local (emptyList = {}); local (flOneRequired = false); local (flPost = string.lower (pta^.method) == "post"); if adrError != nil { adrError^ = false}; local (rpcParamTable); new (tabletype, @rpcParamTable); on addPrefToRpcParamTable (partialaddress, adrval) { //7/8/99; 10:03:09 AM by DW if typeof (adrval^) == tabletype { local (i, adrItem); for i = 1 to sizeof (adrval^) { adrItem = @adrval^ [i]; if typeof (adrItem^) == binarytype { adrItem^ = base64.encode (adrItem^, infinity)}}}; rpcParamTable.[partialaddress] = adrval^}; on sendRpcMessages () { if defined (pta^.adrMemberInfo) { //PBS 9/2/99: this person may not be a member prefsSuite.sendRpcMessages (@rpcParamTable, pta^.adrMemberInfo)}; //PBS 8/17/99: routine moved to top level of prefsSuite Çlocal (xmltext) Çbundle //build the XML representation Çon add (s) Çxmltext = xmltext + s + "\r" Çadd ("<?xml version=\"1.0\"?>") Çadd ("<prefsUpdate>") Çadd ("<group>" + "default" + "</group>") Çadd ("<memberKey>" + nameof (pta^.adrmemberinfo^) + "</memberKey>") Çadd ("<value>" + xml.coercions.frontierValueToTaggedText (@rpcParamTable, 0) + "</value>") Çadd ("</prefsUpdate>") Çbundle //write the file Çif defined (config.prefsServer.prefsDistributorFolder) //PBS 8/10/99: make sure this machine is a prefs distributor Çlocal (folder = config.prefsServer.prefsDistributorFolder) Çloop //get a unique name, write the file Çlocal (f = folder + clock.ticks () + ".xml") Çfile.surefilepath (f) Çif not file.exists (f) Çfile.writewholefile (f, xmltext) Çbreak ÇprefsSuite.init () Çlocal (i, ct = sizeof (config.prefsServer.subscribers), adrsubscriber) Çlocal (params = {"default", nameof (pta^.adrmemberinfo^), rpcParamTable}) Çfor i = 1 to ct Çadrsubscriber = @config.prefsServer.subscribers [i] Çbetty.rpc.client (nameof (adrsubscriber^), adrsubscriber^.port, adrsubscriber^.procedureName, @params, rpcpath:adrsubscriber^.rpcPath, flAsynch:true) Ç<panel title="Register"> Ç<description>This is an experimental feature. If you have a server that can do something interesting with preferences, and if your server can receive XML-RPC messages, you can hook into the preference system at UserLand.Com. We need three pieces of information: a domain name for your server (an IP address will also work), the port that server is running on, and the name of the XML-RPC procedure you want us to call. This routine will be called every time every user updates, so please don't register unless you're serious.</description> Ç<item title="Domain" type="string" adr="prefsRpcHandler.domain"/> Ç<item title="Port" type="string" adr="prefsRpcHandler.port"/> Ç<item title="Procedure name" type="string" adr="prefsRpcHandler.procedureName"/> Ç</panel> return (true)}; local (htmlText = "", indentLevel = 0); on add (s) { htmlText = htmlText + (string.filledString ("\t", indentLevel) + s + "\r");}; prefsSuite.compileIfDirty (); //compile the XML if needed local (panelNum, adrPanel); bundle { //get the number of the panel, the address of its descriptor in the XML structure, set flPrivate page attribute if inputPanel != nil { //caller supplied the panel num panelNum = number (inputPanel); local (i, ctpanels = 0, adrItem, adrtable = @adrWizard^.structure [1]); for i = 1 to sizeOf (adrtable^) { adrItem = @adrtable^[i]; if xml.convertToDisplayName (nameOf (adrItem^)) == "panel" { ++ctpanels; if ctpanels == panelNum { //found it! adrPanel = adrItem; break}}}; if ctpanels < panelNum { scripterror ("Can't display the panel because the wizard doesn't have a panel #" + panelNum + ".")}} else { panelNum = prefsSuite.pathArgsToPanelNum (pathargs, @adrpanel)}; local (flPrivate = false); try { flPrivate = boolean (xml.getAttribute (adrPanel, "private")^)}; pta^.flPrivate = flPrivate}; local (panelTitle, description, formName); bundle { //get the title and description panelTitle = xml.getAttribute (adrPanel, "title")^; if flSetTitle { //PBS 8/19/99: if flSetTitle is false, then the calling page is responsible for setting pta^.title pta^.title = panelTitle}; description = xml.getValue (adrPanel, "description"); description = string.replaceAll (description, "\t", ""); description = string.replaceAll (description, "\r", "<p />"); bundle { // 11/25/05; 11:09:01 AM by TAC - formName try { formName = xml.getValue (adrPanel, "formname")} else { formName = string.innerCaseName (panelTitle)}}}; on getPrefAddress (partialAddress) { //takes a partial address, returns an address into user's member table local (nomad = pta^.adrMemberInfo, s); loop { if not (partialAddress contains ".") { nomad = @nomad^.[partialAddress]; break}; s = string.nthField (partialAddress, '.', 1); nomad = @nomad^.[s]; if not defined (nomad^) { new (tableType, nomad)}; partialAddress = string.delete (partialAddress, 1, sizeOf (s) + 1)}; return (nomad)}; if flPost { //PBS 6/12/99: check that required fields are non-empty if flHandleRequiredFields { //PBS 8/10/99: required fields handling can be turned off local (i, adrOneItem, emptyFieldNames = {}); for i = 1 to sizeOf (adrPanel^) { //check whether there are required fields that have not been filled out adrOneItem = @adrPanel^ [i]; if xml.convertToDisplayName (nameOf (adrOneItem^)) == "item" { local (flRequired = false); try { flRequired = boolean (xml.getAttributeValue (adrOneItem, "required"))}; if flRequired { //make sure it exists and is non-empty local (adr = xml.getAttributeValue (adrOneItem, "adr"), flEmpty = false); if not defined (pta^.postArgs.[adr]) { flEmpty = true} else { if sizeOf (pta^.postArgs.[adr]) == 0 { flEmpty = true}}; if flEmpty { emptyFieldNames = emptyFieldNames + xml.getAttributeValue (adrOneItem, "title")}}}}; if emptyFieldNames != {} { //if the emptyFieldNames list contains items, then display errors local (errorMessage = "Please enter the required field"); local (i, ctEmpties); bundle { //build the top error message ctEmpties = sizeOf (emptyFieldNames); if sizeOf (emptyFieldNames) > 1 { errorMessage = errorMessage + "s"}; errorMessage = errorMessage + " "; for i = 1 to sizeOf (emptyFieldNames) { errorMessage = errorMessage + "<b>" + emptyFieldNames [i] + "</b>"; if i < ctEmpties { if ctEmpties > 2 { errorMessage = errorMessage + ", "} else { errorMessage = errorMessage + " "}; if ctEmpties == 2 or i == ctEmpties - 1 { errorMessage = errorMessage + "and "}}}; if ctEmpties < 2 { errorMessage = errorMessage + "."} //" is required." else { errorMessage = errorMessage + "."}; //" are required." add ("<font color=\"red\">" + errorMessage + "</font>")}; flRequiresRedo = true; if adrError != nil { //PBS 8/9/99 -- adrError is optional: make sure it's not nil before trying to deference it. adrError^ = true}}}}; if flPost and not flRequiresRedo { //process the POSTed data Çscratchpad.postargs = pta^.postargs; edit (@scratchpad.postargs) ÇCreate a new membership table if needed. if not defined (pta^.adrMemberInfo) and flSignupForm { if defined (pta^.postArgs.["personalInfo.email"]) { local (memberKey = pta^.postArgs.["personalInfo.email"]); try { //validate the email address mainResponder.members.validMailAddress (memberKey)} else { scriptError ("Can't create a membership record because the email address is invalid.")}; local (adrMember = mainResponder.members.getMemberTable (pta^.defaultMembershipGroup, memberKey)); if not defined (adrMember^) { ÇFirst check the password. PBS 9/7/99 if defined (pta^.postArgs.["scratchpassword1"]) { if defined (pta^.postArgs.["scratchpassword2"]) { if pta^.postArgs.["scratchpassword1"] != pta^.postArgs.["scratchpassword2"] { add ("<p /><font color=\"red\">Can't sign you up because the two passwords you entered do not match.</font>"); flRequiresRedo = true}}}; if not flRequiresRedo { new (tableType, adrMember); pta^.adrMemberInfo = adrMember; pta^.memberGroupName = pta^.defaultMembershipGroup}} else { //PBS 6/4/99: member already exists, it's an error flRequiresRedo = true; add ("<font color=\"red\">Can't sign up \"" + memberKey + "\" because \"" + memberKey + "\" is already a member.</font>"); if defined (pta^.urls^.memberLogon) { add ("<p /><font color=\"red\">If you want to login, even if you forgot your password, go to the " + html.getLink ("Login", pta^.urls^.memberLogon) + " page.</font>")}}}}; if not flRequiresRedo { //PBS 8/10/99: it may have been set false, even though it was false when entering this block local (refreshAfterPost = false); if defined (pta^.postargs.refreshAfterPost) { refreshAfterPost = true; delete (@pta^.postargs.refreshAfterPost)}; local (adrtable = @pta^.postargs, ct = sizeof (adrtable^), i, adrItem, val); for i = 1 to ct { adrItem = @adrtable^ [i]; local (nomad); if defined (pta^.adrMemberInfo) { nomad = pta^.adrMemberInfo}; local (partialaddress = nameof (adrItem^), s); if partialaddress beginswith "scratchpassword" { if partialaddress == "scratchpassword1" { local (otherpassword = adrtable^.["scratchpassword2"]); if adrtable^.["scratchpassword1"] != otherpassword { scriptError ("Can't set the password because the two passwords you entered are not equal.")}; if not (otherpassword == "") { pta^.adrmemberinfo^.password = otherpassword; addPrefToRpcParamTable ("password", @pta^.adrmemberinfo^.password ); //PBS 9/13/99: propagate passwords local (mailaddress = nameof (pta^.adrmemberinfo^)); mainresponder.members.setcookie (mailaddress, otherpassword)}}} else { on setValueCallback (adrval) { //5/22/99; 8:46:15 AM by DW if flcallbacks { local (adrcallback = @adrcallbacks^.setValue); if defined (adrcallback^) { adrcallback^ (partialaddress, adrval)}}; addPrefToRpcParamTable (partialaddress, adrval)}; //7/8/99; 10:03:09 AM by DW //PBS 9/13/99: promoted this line if defined (pta^.adrMemberInfo) { nomad = getPrefAddress (partialaddress); if typeof (adrItem^) == tabletype { //it's a multi-part object local (datasize = sizeof (adrItem^.data)); local (contentType); if defined (adrItem^.["Content-Type"]) { //PBS 8/14/99: make sure Content-Type is defined before checking its value contentType = string.lower (adrItem^.["Content-Type"])}; if datasize > 0 { //this is what you get if you don't specify a file bundle { // 7/27/05; 7:01:15 PM by TAC - upload a picture or any kind of file; GIF, JPEG, and PNG pictures are recognized local (bt = "data"); // binary type, default if contentType beginswith "image" { local (maxbytes = pta^.wizard^.prefs.maxPictureBytes); if datasize > maxbytes { scriptError ("Can't accept the file because it is too large. Maximum is " + string.kBytes (maxbytes) + ".")}; bundle { // get and set height and width of the image local (hwList); if contentType == "image/gif" { hwList = html.getGifHeightWidth (@adrItem^.data)}; if contentType == "image/jpeg" { hwList = html.getJpegHeightWidth (@adrItem^.data)}; if contentType == "image/png" { hwList = html.getPngHeightWidth (@adrItem^.data)}; if hwList != nil { adrItem^.height = hwList [1]; adrItem^.width = hwList [2]}}} else { if defined (pta^.wizard^.prefs.maxFileBytes) { local { maxBytes = pta^.wizard^.prefs.maxFileBytes}; if dataSize > maxBytes { scriptError ("Can't accept the file because it is too large. Maximum is " + string.kBytes (maxBytes) + ".")}}}; adrItem^.data = binary (adrItem^.data); try { // set the binary type bt = user.webserver.prefs.MIME2Binary.[contentType]}; setBinaryType (@adrItem^.data, bt); nomad^ = adrItem^; //copy the table into storage setValueCallback (adrItem)}}} Çbundle // old code Çif not contentType beginswith "image" ÇscriptError ("Can't accept the file because it is not an image.") Çlocal (maxbytes = pta^.wizard^.prefs.maxPictureBytes) Çif datasize > maxbytes ÇscriptError ("Can't accept the file because it is too large. Maximum is " + string.kBytes (maxbytes) + ".") Çbundle //set the type attribute of the data Çlocal (bt = nil) Çif contentType == "image/gif" Çbt = "GIFf" Çif contentType == "image/jpeg" Çbt = "JPEG" Çif bt != nil ÇadrItem^.data = binary (adrItem^.data) ÇsetBinaryType (@adrItem^.data, bt) Çnomad^ = adrItem^ //copy the table into storage ÇsetValueCallback (adrItem)}}}} else { val = adrItem^; if (val == "true") or (val == "false") { val = boolean (val)}; nomad^ = val; setValueCallback (@val)}}}}; sendRpcMessages (); //7/8/99; 10:03:09 AM by DW if refreshAfterPost { ÇPBS 10/30/99: redirect to a different URL by choosing an alternate pathArgs form. ÇIf number, use title; if title, use number. ÇThis works around the 302 FOUND Netscape browser bug. local (panelIdentifier, newPathArgs); try { panelIdentifier = number (pta^.pathArgs); newPathArgs = string.innerCaseName (panelTitle)} else { newPathArgs = panelNum}; Çmainresponder.redirect (pta^.uri + "$" + pta^.pathargs) mainresponder.redirect (pta^.uri + "$" + newPathArgs)}; ÇCall the signup callback, if applicable. PBS 6/5/99 ÇThe signup callback can send email and do similar operations. ÇIf it returns an empty string, then build the form as normal. ÇIf it returns text, then return that text -- the signup callback can control what gets displayed on the page. if flSignupForm and adrSignupCallback != nil { htmlText = adrSignupCallback^ (); if htmlText != "" { return (htmlText)}}}}; bundle { //add the form with the items local (flRequiresMultiPart = false); try {flRequiresMultiPart = boolean (xml.getattribute (adrpanel, "multiPart"))^}; //multiPart attribute is optional if action == nil { action = pagename + "$" + panelnum}; add ("<form name=\"" + formName + "\" action=\"" + action + "\" method=\"post\"<<xxx>>>"); indentlevel++; bundle { //add hidden item if it has refreshAfterPost attribute try { local (refreshAfterPost = boolean (xml.getattribute (adrpanel, "refreshAfterPost")^)); if refreshAfterPost { add ("<input type=\"hidden\" name=\"refreshAfterPost\" value=\"1\"... [truncated message content] |
|
From: creedon <icr...@us...> - 2006-02-10 03:12:35
|
Update of /cvsroot/frontierkernel/odbs/prefsRoot/prefsSuite In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30855 Modified Files: drawNavigator Log Message: added separator parameter Index: drawNavigator =================================================================== RCS file: /cvsroot/frontierkernel/odbs/prefsRoot/prefsSuite/drawNavigator,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** drawNavigator 2 Apr 2005 23:09:51 -0000 1.1.1.1 --- drawNavigator 10 Feb 2006 03:12:27 -0000 1.2 *************** *** 1,3 **** FrontierVcsFile:1:scpt:prefsSuite.drawNavigator ! on drawNavigator (flbolditems = true) { Ç10/21/99; 2:13:03 PM by DW Çadded optional param, flbolditems, determines if the items are drawn in bold local (htmltext = "", indentlevel = 0); on add (s) { htmltext = htmltext + string.filledString ("\t", indentlevel) + s + "\r"}; local (pta = html.getpagetableaddress ()); Çscratchpad.params = pta^; edit (@scratchpad.params) local (thispagename = nameof (pta^.adrobject^)); local (baseurl = pta^.ftpsite^.url); local (adrnavigator = pta^.navigator); with adrnavigator^ { //compile the xml text if it's been modified local (flcompile = true); if defined (structure) { if timemodified (@outline) <= timemodified (@structure) { flcompile = false}}; if flcompile { xml.compile (string (adrnavigator^.outline), @adrnavigator^.structure)}}; local (itemlist = xml.getaddresslist (@adrnavigator^.structure [1], "item")); local (ct = sizeof (itemlist), i, adritem, name, pagename, linetext); for i = 1 to ct { adritem = itemlist [i]; name = xml.getattribute (adritem, "name")^; try { pagename = xml.getattribute (adritem, "pagename")^; local (strippedPageName = string.lower (pagename)); if strippedPageName endsWith "/default" { strippedPageName = string.mid (strippedPageName, 1, sizeOf (strippedPageName) - 7)}; local (strippedUri = string.lower (pta^.uri)); if defined (pta^.pathArgs) { if pta^.pathArgs != "" { strippedUri = strippedUri + "$" + pta^.pathArgs}}; if strippedUri endsWith "/default" { strippedUri = string.mid (strippedUri, 1, sizeOf (strippedUri) - 7)}; if flbolditems { linetext = "<b>" + name + "</b>"} else { linetext = name}; if strippedUri == strippedPageName { // was: if pta^.uri == pagename: PBS 5/21/99 add (linetext + "<p>")} else { add ("<a href=\"" + pagename + "\">" + linetext + "</a><p>")}} else { //instead of a pagename there may be a msgNum: PBS 5/21/99 local (msgNum = xml.getAttribute (adritem, "msgNum")^); if pta^.pathArgs == msgNum { add (linetext + "<p>")} else { local (msgUrl = pta^.responderAttributes.urls^.storyReader + msgNum); add ("<a href=\"" + msgUrl + "\">" + linetext + "</a><p>")}}}; return (htmltext)} \ No newline at end of file --- 1,3 ---- FrontierVcsFile:1:scpt:prefsSuite.drawNavigator ! on drawNavigator (flBoldItems = true, separator = "<p />") { ÇChanges Ç7/27/05; 1:56:14 PM by TAC Çadded separator parameter Ç10/21/99; 2:13:03 PM by DW Çadded optional param, flBoldItems, determines if the items are drawn in bold local (htmlText = "", indentLevel = 0); on add (s) { htmlText = htmlText + (string.filledString ('\t', indentLevel) + s + "\r\n");}; local (pta = html.getpagetableaddress ()); Çscratchpad.params = pta^; edit (@scratchpad.params) local (thisPageName = nameof (pta^.adrObject^)); local (baseUrl = pta^.ftpSite^.url); local (adrNavigator = pta^.navigator); with adrNavigator^ { //compile the xml text if it's been modified local (flcompile = true); if defined (structure) { if timeModified (@outline) <= timeModified (@structure) { flcompile = false}}; if flcompile { xml.compile (string (adrNavigator^.outline), @adrNavigator^.structure)}}; local (itemList = xml.getAddressList (@adrNavigator^.structure [1], "item")); local (ct = sizeof (itemList), i, adrItem, name, pageName, lineText); for i = 1 to ct { adrItem = itemList [i]; name = xml.getattribute (adrItem, "name")^; try { pageName = xml.getattribute (adrItem, "pageName")^; local (strippedPageName = string.lower (pageName)); if strippedPageName endsWith "/default" { strippedPageName = string.mid (strippedPageName, 1, sizeOf (strippedPageName) - 7)}; local (strippedUri = string.lower (pta^.uri)); if defined (pta^.pathArgs) { if pta^.pathArgs != "" { strippedUri = strippedUri + "$" + pta^.pathArgs}}; if strippedUri endsWith "/default" { strippedUri = string.mid (strippedUri, 1, sizeOf (strippedUri) - 7)}; if flBoldItems { lineText = "<b>" + name + "</b>"} else { lineText = name}; if strippedUri == strippedPageName { // was: if pta^.uri == pageName: PBS 5/21/99 add (lineText + separator)} else { add ("<a href=\"" + pageName + "\">" + lineText + "</a>" + separator)}} else { //instead of a pageName there may be a msgNum: PBS 5/21/99 local (msgNum = xml.getAttribute (adrItem, "msgNum")^); if pta^.pathArgs == msgNum { add (lineText + separator)} else { local (msgUrl = pta^.responderAttributes.urls^.storyReader + msgNum); add ("<a href=\"" + msgUrl + "\">" + lineText + "</a>" + separator)}}}; return (htmlText)} \ No newline at end of file |
|
From: creedon <icr...@us...> - 2006-02-10 03:10:49
|
Update of /cvsroot/frontierkernel/odbs/mainResponderWebsitesRoot/sampleMrWs/23discussionGroup/prefs In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30291 Modified Files: binaryServerFolder binaryServerURL Log Message: assigned some value for these items Index: binaryServerFolder =================================================================== RCS file: /cvsroot/frontierkernel/odbs/mainResponderWebsitesRoot/sampleMrWs/23discussionGroup/prefs/binaryServerFolder,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** binaryServerFolder 9 Feb 2006 00:09:14 -0000 1.1 --- binaryServerFolder 10 Feb 2006 03:10:38 -0000 1.2 *************** *** 1,2 **** ! FrontierVcsFile:1:fss :sampleMrWs.["#discussionGroup"].prefs.binaryServerFolder --- 1,3 ---- ! FrontierVcsFile:1:TEXT:sampleMrWs.["#discussionGroup"].prefs.binaryServerFolder + :Guest Databases:www:attachments: \ No newline at end of file Index: binaryServerURL =================================================================== RCS file: /cvsroot/frontierkernel/odbs/mainResponderWebsitesRoot/sampleMrWs/23discussionGroup/prefs/binaryServerURL,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** binaryServerURL 9 Feb 2006 00:09:14 -0000 1.1 --- binaryServerURL 10 Feb 2006 03:10:38 -0000 1.2 *************** *** 1,2 **** --- 1,3 ---- FrontierVcsFile:1:TEXT:sampleMrWs.["#discussionGroup"].prefs.binaryServerURL + http://127.0.0.2/ \ No newline at end of file |
|
From: creedon <icr...@us...> - 2006-02-10 03:08:15
|
Update of /cvsroot/frontierkernel/odbs/mainResponderWebsitesRoot/sampleMrWs/23tools In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29502 Modified Files: drawNavigator Log Message: tweaked formatting, no functional change Index: drawNavigator =================================================================== RCS file: /cvsroot/frontierkernel/odbs/mainResponderWebsitesRoot/sampleMrWs/23tools/drawNavigator,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** drawNavigator 9 Feb 2006 00:09:15 -0000 1.1 --- drawNavigator 10 Feb 2006 03:08:07 -0000 1.2 *************** *** 1,3 **** FrontierVcsFile:1:scpt:sampleMrWs.["#tools"].drawNavigator ! ÇChanges Ç1/4/06; 3:14:13 PM by TAC Çcreated on drawNavigator () { return (prefsSuite.drawNavigator (false, "<br />"))} \ No newline at end of file --- 1,3 ---- FrontierVcsFile:1:scpt:sampleMrWs.["#tools"].drawNavigator ! on drawNavigator () { ÇChanges Ç1/4/06; 3:14:13 PM by TAC Çcreated return (prefsSuite.drawNavigator (false, "<br />"))} \ No newline at end of file |
|
From: creedon <icr...@us...> - 2006-02-10 03:06:00
|
Update of /cvsroot/frontierkernel/odbs/mainResponderWebsitesRoot/sampleMrWs/discussionGroup/edit In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28510 Modified Files: newMessage Log Message: tweaked formatting, no functional change Index: newMessage =================================================================== RCS file: /cvsroot/frontierkernel/odbs/mainResponderWebsitesRoot/sampleMrWs/discussionGroup/edit/newMessage,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** newMessage 9 Feb 2006 00:09:15 -0000 1.1 --- newMessage 10 Feb 2006 03:05:50 -0000 1.2 *************** *** 1,3 **** FrontierVcsFile:1:optx:sampleMrWs.discussionGroup.edit.newMessage ! #title mainResponder.getString ("discuss.createNewMessageTitleText") {mainResponder.discuss.newMessageForm (subjectPrompt: mainResponder.getString ("discuss.editMessageDefaultSubjectPrompt"), bodyprompt: mainResponder.getString ("discuss.messageTextPrompt"), buttontext: mainResponder.getString ("discuss.postNewMessageButtonText"), flShowFileUpload: true)} \ No newline at end of file --- 1,3 ---- FrontierVcsFile:1:optx:sampleMrWs.discussionGroup.edit.newMessage ! #title mainResponder.getString ("discuss.createNewMessageTitleText") {mainResponder.discuss.newMessageForm (subjectPrompt: mainResponder.getString ("discuss.editMessageDefaultSubjectPrompt"), bodyprompt: mainResponder.getString ("discuss.messageTextPrompt"), buttontext: mainResponder.getString ("discuss.postNewMessageButtonText"), flShowFileUpload: true)} \ No newline at end of file |
|
From: creedon <icr...@us...> - 2006-02-10 03:05:10
|
Update of /cvsroot/frontierkernel/odbs/mainResponderWebsitesRoot/sampleMrWs/discussionGroup In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28114 Modified Files: default Log Message: return more user friendly error when the calendar contains no data Index: default =================================================================== RCS file: /cvsroot/frontierkernel/odbs/mainResponderWebsitesRoot/sampleMrWs/discussionGroup/default,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** default 9 Feb 2006 00:09:15 -0000 1.1 --- default 10 Feb 2006 03:05:00 -0000 1.2 *************** *** 1,3 **** FrontierVcsFile:1:scpt:sampleMrWs.discussionGroup.default ! ÇChanges Ç1/4/06; 3:12:54 PM by TAC Çcreated local (pta = html.getPageTableAddress ()); pta^.title = "Discussion Group"; local (adrCalendar = @mainResponder.discuss.openRoot ()^.calendar, d); bundle { // get day if pta^.pathArgs != "" { try { d = mainResponder.calendar.pathArgsToDate (pta^.pathArgs)}}; // do in try this could error if d == nil { d = mainResponder.calendar.getMostRecentDay (adrCalendar)}}; local (htmlText = "", indentLevel = 0); on add (s) { htmlText = htmlText + string.filledString ("\t", indentLevel) + s + "\r"}; bundle { // add create new discussion group message link local (t); new (tabletype, @t); bundle { // replacement table t.url = pta^.responderattributes.urls^.discussNewThread}; add ("<p>"); indentLevel++; add (mainResponder.getString ("discuss.createNewMessage", @t)); add ("</p>"); indentLevel--}; add (mainResponder.discuss.listDay (d, otherColor: pta^.appearance^.discussListings, pta: pta, headerColor: pta^.appearance^.separator, headerTextColor: pta^.appearance^.separatorText, cssPrefix: "dl")); bundle { // add calendar navigation local (url = pta^.path + "$"); pta^.calendar = mainResponder.calendar.draw (adrCalendar, url, 0, 0, monthYearTemplate: "<div align=\"center\">***</div>", dayNameTemplate: "<div align=\"center\">***</div>", dayTemplate: "<div align=\"center\">***</div>", curdate: d, cssPrefix: "dCalendar"); pta^.calendar = pta^.calendar + mainresponder.calendar.getLinks (adrCalendar, d, url); bundle { // auto place calendar local (flAutoPlaceCalendar = true); if string (pta^.template) contains "{calendar}" { flAutoPlaceCalendar = false}; if flAutoPlaceCalendar { add ("{calendar}")}}}; return (htmlText) \ No newline at end of file --- 1,3 ---- FrontierVcsFile:1:scpt:sampleMrWs.discussionGroup.default ! ÇChanges Ç2/9/06; 2:53:55 PM by TAC Çreturn more user friendly error when the calendar contains no data Ç1/4/06; 3:12:54 PM by TAC Çcreated local (pta = html.getPageTableAddress ()); pta^.title = "Discussion Group"; local (adrCalendar = @mainResponder.discuss.openRoot (pta)^.calendar, d); bundle { // get day if pta^.pathArgs != "" { try { d = mainResponder.calendar.pathArgsToDate (pta^.pathArgs)}}; // do in try this could error if d == nil { try { d = mainResponder.calendar.getMostRecentDay (adrCalendar)}}; if d == nil { return ("No messages to display.")}}; local (htmlText = "", indentLevel = 0); on add (s) { htmlText = htmlText + (string.filledString ("\t", indentLevel) + s + "\r\n");}; bundle { // add create new discussion group message link local (t); new (tabletype, @t); bundle { // replacement table t.url = pta^.responderattributes.urls^.discussNewThread}; add ("<p>"); indentLevel++; add (mainResponder.getString ("discuss.createNewMessage", @t)); add ("</p>"); indentLevel--}; add (mainResponder.discuss.listDay (d, otherColor: pta^.appearance^.discussListings, pta: pta, headerColor: pta^.appearance^.separator, headerTextColor: pta^.appearance^.separatorText, cssPrefix: "dl")); bundle { // add calendar navigation local (url = pta^.path + "$"); pta^.calendar = mainResponder.calendar.draw (adrCalendar, url, 0, 0, monthYearTemplate: "<div align=\"center\">***</div>", dayNameTemplate: "<div align=\"center\">***</div>", dayTemplate: "<div align=\"center\">***</div>", curdate: d, cssPrefix: "dCalendar"); pta^.calendar = pta^.calendar + mainresponder.calendar.getLinks (adrCalendar, d, url); bundle { // auto place calendar local (flAutoPlaceCalendar = true); if string (pta^.template) contains "{calendar}" { flAutoPlaceCalendar = false}; if flAutoPlaceCalendar { add ("{calendar}")}}}; return (htmlText) \ No newline at end of file |
|
From: creedon <icr...@us...> - 2006-02-09 04:35:22
|
Update of /cvsroot/frontierkernel/odbs/frontierRoot/system/verbs/builtins/webserver/data/prefs/type2MIME In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5991 Added Files: ico20 optx Log Message: additional mime types etc --- NEW FILE: ico20 --- FrontierVcsFile:1:TEXT:system.verbs.builtins.webserver.data.prefs.type2MIME.["ico "] image/x-icon --- NEW FILE: optx --- FrontierVcsFile:1:TEXT:system.verbs.builtins.webserver.data.prefs.type2MIME.optx text/x-opml |
|
From: creedon <icr...@us...> - 2006-02-09 04:35:15
|
Update of /cvsroot/frontierkernel/odbs/frontierRoot/system/verbs/builtins/webserver/data/prefs/ext2MIME In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5969 Added Files: ico Log Message: additional mime types etc --- NEW FILE: ico --- FrontierVcsFile:1:TEXT:system.verbs.builtins.webserver.data.prefs.ext2MIME.ico image/x-icon |
|
From: creedon <icr...@us...> - 2006-02-09 03:13:13
|
Update of /cvsroot/frontierkernel/odbs/frontierRoot/system/verbs/builtins/Frontier/tools/windowTypes/commands In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9997 Modified Files: open Log Message: added some initialization for open recent menu related scripts Index: open =================================================================== RCS file: /cvsroot/frontierkernel/odbs/frontierRoot/system/verbs/builtins/Frontier/tools/windowTypes/commands/open,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** open 6 Feb 2006 00:20:38 -0000 1.3 --- open 9 Feb 2006 03:13:02 -0000 1.4 *************** *** 1,3 **** FrontierVcsFile:1:scpt:system.verbs.builtins.Frontier.tools.windowTypes.commands.open ! on open (f = nil) { ÇChanges Ç2/5/06; 11:14:02 AM by TAC Çupdate run callbacks to deal with the callback table not being there Ç9/24/05; 7:52:23 AM by TAC Çadded support for open recent menu Çreplicate what the kernel used to do for Frontier which was to scan the Frontier.clickers table getting the types of files that could be opened Çthe kernel now calls this script for Frontier when the Open menu item of the File menu is selected Ç2001 Ç12/2/01; 7:05:42 PM by JES Çif user.radio.settings.flExpired is defined, and true, open the serial number page. Ç07/03/01; 8:09:16 PM by JES ÇMigrated from builtins.pike.commands.open. Split out opml/outline file functionality into Frontier.tools.data.windowTypes.outlinerFile.open. Ç05/15/01; 1:33:09 AM by JES ÇFixed a bug where irrelevant whitespace would be preserved between the <?xml?> tag and the <opml> tag. If opening a .opml file, which has no contents, treat it as an empty OPML document, instead of as an empty text file. Fixed a bug where minimally represented OPML files (files with fewer than 200 characters) could not be opened. Ç03/5/01; 2:15:19 PM by JES ÇWhen opening OPML documents, set the window's timeCreated, so that it will be preserved in the dateCreated head element of the saved OPML. Ç02/21/01; 2:13:59 AM by JES ÇRecord the type and creator code when opening files on Macs. Record the line-ending format. Ç02/16/01; 1:36:30 PM by JES ÇMake sure that the window's modification time is the same as its table's lastOpened time. Prevents extraneous save-confirmation dialogs. Ç01/23/01; 7:40:05 PM by JES ÇSupport opml documents with unix line endings. Changed logic for determining if a file is an opml document so that Radio can open files that have xml headers, style sheet declarations, or comments before the <outlineDocument> element. Store the headers and comments so they can be included when the file is saved. Ç2000 Ç12/31/00; 5:30:33 PM by JES ÇOn Macs, convert opml to Mac text before converting to an outline. Ç12/19/00; 10:36:41 PM by JES ÇOn Macs, for text files whose extension corresponds to the type of an object database object, don't open the file in an outline. Makes it possible to import objects downloaded from apache servers which aren't configured to serve Frontier files with the correct mime type, or files copied from Windows computers. Ç12/15/00; 7:29:24 PM by PBS ÇOpen plain text files in an outline. Ç11/30/00; 12:14:58 AM by JES ÇDereference callback addresses in a try block in case a tool's odb is not opened Ç09/30/00; 12:47:45 PM by PBS ÇCall callbacks. Ç09/26/00; 3:46:09 PM by PBS ÇAdded explicit file type check for OPML in case the path is an 8.3 path or has a random suffix. Ç09/16/00; 3:35:19 PM by PBS ÇHandle .opml as well as .xml. Ç09/15/00; 1:56:44 PM by PBS ÇAllow an XML file of any type to be opened in the outliner. When it gets saved later, it's saved as raw XML, not as an outlineDocument. Ç07/23/00; 8:32:39 PM by PBS ÇCreated. Open a file. local (flOptionKey = kb.optionKey ()); if defined (user.radio.settings.flExpired) { if user.radio.settings.flExpired { radio.menuCommands.openPage (radio.data.systemurls.serialnumber); return (true)}}; if f == nil { local (typeList = 0); if not (system.environment.isRadio) { if not (flOptionKey) { local (adr); typeList = {'TABL'}; for adr in @Frontier.clickers { typeList = typeList + string.mid (nameOf (adr^), 5, 4)}}}; if not (file.getFileDialog ("Open a file:", @f, typeList)) { return (false)}}; //nothing was opened bundle { // user.prefs.openRecentMenu local (adr, adrFileNameTable, i, fileNamesList = {}, newFileName); if sizeOf (user.prefs.openRecentMenu.items) == user.prefs.openRecentMenu.maxNumberOfItems { delete (@user.prefs.openRecentMenu.items [1])}; for i = sizeOf (user.prefs.openRecentMenu.items) downTo 1 { adr = @user.prefs.openRecentMenu.items [i]; if adr^ == f { delete (@user.prefs.openRecentMenu.items [i]); break}}; xml.addValue (@user.prefs.openRecentMenu.items, file.fileFromPath (f), f); bundle { // duplicate file names local (adr, adrFileNameTable, duplicateFileNameTable, s); new (tableType, @duplicateFileNameTable); for i = 1 to sizeOf (user.prefs.openRecentMenu.items) { adr = @user.prefs.openRecentMenu.items [i]; s = file.fileFromPath (adr^); if not (defined (duplicateFileNameTable.[s])) { new (tableType, @duplicateFileNameTable.[s])}; duplicateFileNameTable.[s].[adr] = nil}; for adrFileNameTable in @duplicateFileNameTable { if sizeOf (adrFileNameTable^) == 1 { continue}; for adr in adrFileNameTable { s = nameOf (adr^); adr = address (s); s = string.nthField (nameOf (adr^), '\t', 1) + "\t" + file.fileFromPath (adr^) + " Ñ " + string.popTrailing (file.fileFromPath (file.folderFromPath (adr^)), file.getPathChar ()); table.rename (adr, s)}}}; fileMenu.save ()}; on runCallbacks (stringAddress) { //call callbacks if defined (stringAddress^) { local (flConsumed = false); local (adrScript); for adrScript in @stringAddress^ { try { //11/30/00 JES while typeOf (adrScript^) == addressType { //follow addresses adrScript = adrScript^}; flConsumed = adrScript^ (f)}; //file is parameter if flConsumed { return (true)}}}; return (false)}; if runCallbacks ("user.tools.commandCallbacks.open") { return (true)}; if system.environment.isRadio { if runCallbacks ("user.pike.commandCallbacks.open") { return (true)}}; bundle { //look for a windowType that handles this command on runTypes (adrTypes) { local (adrType, flConsumed=false); for adrType in adrTypes { try { while typeOf (adrType^) == addressType { adrType = adrType^}; if defined (adrType^.open) { try { flConsumed = adrType^.open (f)}; if flConsumed { return (true)}}}}; return (false)}; if runTypes (@user.tools.windowTypes) { return (true)}; if runTypes (@Frontier.tools.data.windowTypes) { return (true)}}; fileMenu.open (f); return (true)}; Çbundle // testing Çopen () \ No newline at end of file --- 1,3 ---- FrontierVcsFile:1:scpt:system.verbs.builtins.Frontier.tools.windowTypes.commands.open ! on open (f = nil) { ÇChanges Ç2/8/06; 5:18:31 PM by TAC Çadded some initialization for open recent menu Ç2/5/06; 11:14:02 AM by TAC Çupdate run callbacks to deal with the callback table not being there Ç9/24/05; 7:52:23 AM by TAC Çadded support for open recent menu Çreplicate what the kernel used to do for Frontier which was to scan the Frontier.clickers table getting the types of files that could be opened Çthe kernel now calls this script for Frontier when the Open menu item of the File menu is selected Ç2001 Ç12/2/01; 7:05:42 PM by JES Çif user.radio.settings.flExpired is defined, and true, open the serial number page. Ç07/03/01; 8:09:16 PM by JES ÇMigrated from builtins.pike.commands.open. Split out opml/outline file functionality into Frontier.tools.data.windowTypes.outlinerFile.open. Ç05/15/01; 1:33:09 AM by JES ÇFixed a bug where irrelevant whitespace would be preserved between the <?xml?> tag and the <opml> tag. If opening a .opml file, which has no contents, treat it as an empty OPML document, instead of as an empty text file. Fixed a bug where minimally represented OPML files (files with fewer than 200 characters) could not be opened. Ç03/5/01; 2:15:19 PM by JES ÇWhen opening OPML documents, set the window's timeCreated, so that it will be preserved in the dateCreated head element of the saved OPML. Ç02/21/01; 2:13:59 AM by JES ÇRecord the type and creator code when opening files on Macs. Record the line-ending format. Ç02/16/01; 1:36:30 PM by JES ÇMake sure that the window's modification time is the same as its table's lastOpened time. Prevents extraneous save-confirmation dialogs. Ç01/23/01; 7:40:05 PM by JES ÇSupport opml documents with unix line endings. Changed logic for determining if a file is an opml document so that Radio can open files that have xml headers, style sheet declarations, or comments before the <outlineDocument> element. Store the headers and comments so they can be included when the file is saved. Ç2000 Ç12/31/00; 5:30:33 PM by JES ÇOn Macs, convert opml to Mac text before converting to an outline. Ç12/19/00; 10:36:41 PM by JES ÇOn Macs, for text files whose extension corresponds to the type of an object database object, don't open the file in an outline. Makes it possible to import objects downloaded from apache servers which aren't configured to serve Frontier files with the correct mime type, or files copied from Windows computers. Ç12/15/00; 7:29:24 PM by PBS ÇOpen plain text files in an outline. Ç11/30/00; 12:14:58 AM by JES ÇDereference callback addresses in a try block in case a tool's odb is not opened Ç09/30/00; 12:47:45 PM by PBS ÇCall callbacks. Ç09/26/00; 3:46:09 PM by PBS ÇAdded explicit file type check for OPML in case the path is an 8.3 path or has a random suffix. Ç09/16/00; 3:35:19 PM by PBS ÇHandle .opml as well as .xml. Ç09/15/00; 1:56:44 PM by PBS ÇAllow an XML file of any type to be opened in the outliner. When it gets saved later, it's saved as raw XML, not as an outlineDocument. Ç07/23/00; 8:32:39 PM by PBS ÇCreated. Open a file. local (flOptionKey = kb.optionKey ()); if defined (user.radio.settings.flExpired) { if user.radio.settings.flExpired { radio.menuCommands.openPage (radio.data.systemurls.serialnumber); return (true)}}; if f == nil { local (typeList = 0); if not (system.environment.isRadio) { if not (flOptionKey) { local (adr); typeList = {'TABL'}; for adr in @Frontier.clickers { typeList = typeList + string.mid (nameOf (adr^), 5, 4)}}}; if not (file.getFileDialog ("Open a file:", @f, typeList)) { return (false)}}; //nothing was opened bundle { // user.prefs.openRecentMenu bundle { // init if not (defined (user.prefs.openRecentMenu)) { new (tableType, @user.prefs.openRecentMenu)}; if not (defined (user.prefs.openRecentMenu.items)) { new (tableType, @user.prefs.openRecentMenu.items)}; if not (defined (user.prefs.openRecentMenu.maxNumberOfItems)) { user.prefs.openRecentMenu.maxNumberOfItems = 20}}; local (adr, adrFileNameTable, i, fileNamesList = {}, newFileName); if sizeOf (user.prefs.openRecentMenu.items) == user.prefs.openRecentMenu.maxNumberOfItems { delete (@user.prefs.openRecentMenu.items [1])}; for i = sizeOf (user.prefs.openRecentMenu.items) downTo 1 { adr = @user.prefs.openRecentMenu.items [i]; if adr^ == f { delete (@user.prefs.openRecentMenu.items [i]); break}}; xml.addValue (@user.prefs.openRecentMenu.items, file.fileFromPath (f), f); bundle { // duplicate file names local (adr, adrFileNameTable, duplicateFileNameTable, s); new (tableType, @duplicateFileNameTable); for i = 1 to sizeOf (user.prefs.openRecentMenu.items) { adr = @user.prefs.openRecentMenu.items [i]; s = file.fileFromPath (adr^); if not (defined (duplicateFileNameTable.[s])) { new (tableType, @duplicateFileNameTable.[s])}; duplicateFileNameTable.[s].[adr] = nil}; for adrFileNameTable in @duplicateFileNameTable { if sizeOf (adrFileNameTable^) == 1 { continue}; for adr in adrFileNameTable { s = nameOf (adr^); adr = address (s); s = string.nthField (nameOf (adr^), '\t', 1) + "\t" + file.fileFromPath (adr^) + " Ñ " + string.popTrailing (file.fileFromPath (file.folderFromPath (adr^)), file.getPathChar ()); table.rename (adr, s)}}}; fileMenu.save ()}; on runCallbacks (stringAddress) { //call callbacks if defined (stringAddress^) { local (flConsumed = false); local (adrScript); for adrScript in @stringAddress^ { try { //11/30/00 JES while typeOf (adrScript^) == addressType { //follow addresses adrScript = adrScript^}; flConsumed = adrScript^ (f)}; //file is parameter if flConsumed { return (true)}}}; return (false)}; if runCallbacks ("user.tools.commandCallbacks.open") { return (true)}; if system.environment.isRadio { if runCallbacks ("user.pike.commandCallbacks.open") { return (true)}}; bundle { //look for a windowType that handles this command on runTypes (adrTypes) { local (adrType, flConsumed=false); for adrType in adrTypes { try { while typeOf (adrType^) == addressType { adrType = adrType^}; if defined (adrType^.open) { try { flConsumed = adrType^.open (f)}; if flConsumed { return (true)}}}}; return (false)}; if runTypes (@user.tools.windowTypes) { return (true)}; if runTypes (@Frontier.tools.data.windowTypes) { return (true)}}; fileMenu.open (f); return (true)}; Çbundle // testing Çopen () \ No newline at end of file |
|
From: creedon <icr...@us...> - 2006-02-09 03:13:12
|
Update of /cvsroot/frontierkernel/odbs/frontierRoot/system/verbs/builtins/Frontier/tools/windowTypes In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9938 Modified Files: runOpenRecentMenuScript Log Message: added some initialization for open recent menu related scripts Index: runOpenRecentMenuScript =================================================================== RCS file: /cvsroot/frontierkernel/odbs/frontierRoot/system/verbs/builtins/Frontier/tools/windowTypes/runOpenRecentMenuScript,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** runOpenRecentMenuScript 1 Nov 2005 19:15:55 -0000 1.2 --- runOpenRecentMenuScript 9 Feb 2006 03:12:57 -0000 1.3 *************** *** 1,3 **** FrontierVcsFile:1:scpt:system.verbs.builtins.Frontier.tools.windowTypes.runOpenRecentMenuScript ! on runOpenRecentMenuScript (ix) { ÇChanges Ç11/1/05; 8:51:49 AM by TAC Çadded check for missing files and way deal with them Ç9/24/05; 8:45:56 PM by TAC Çcreated local (count = sizeOf (user.prefs.openRecentMenu.items)); ix = number (ix); if ix > count { // clear menu table.emptyTable (@user.prefs.openRecentMenu.items)} else { local (f); ix = count + 1 - ix; // translate from position in menu to position in items table f = user.prefs.openRecentMenu.items [ix]; if not (file.exists (f)) { local (s = file.fileFromPath (f)); case dialog.threeWay ("File \"" + s + "\" is missing.", "Find", "Clear", "Cancel") { 1 { if file.getFileDialog ("Find file \"" + s + "\"...", @f, 0) { user.prefs.openRecentMenu.items [ix] = f} else { return (false)}}; 2 { delete (user.prefs.openRecentMenu.items [ix]); return (false)}; 3 { return (false)}}}; Frontier.tools.windowTypes.commands.open (f)}; return (true)}; Çbundle // testing ÇrunOpenRecentMenuScript ("1") \ No newline at end of file --- 1,3 ---- FrontierVcsFile:1:scpt:system.verbs.builtins.Frontier.tools.windowTypes.runOpenRecentMenuScript ! on runOpenRecentMenuScript (ix) { ÇChanges Ç2/8/06; 5:18:31 PM by TAC Çadded some initialization Ç11/1/05; 8:51:49 AM by TAC Çadded check for missing files and way deal with them Ç9/24/05; 8:45:56 PM by TAC Çcreated bundle { // init if not (defined (user.prefs.openRecentMenu)) { new (tableType, @user.prefs.openRecentMenu)}; if not (defined (user.prefs.openRecentMenu.items)) { new (tableType, @user.prefs.openRecentMenu.items)}; if not (defined (user.prefs.openRecentMenu.maxNumberOfItems)) { user.prefs.openRecentMenu.maxNumberOfItems = 20}}; local (count = sizeOf (user.prefs.openRecentMenu.items)); ix = number (ix); if ix > count { // clear menu table.emptyTable (@user.prefs.openRecentMenu.items)} else { local (f); ix = count + 1 - ix; // translate from position in menu to position in items table f = user.prefs.openRecentMenu.items [ix]; if not (file.exists (f)) { local (s = file.fileFromPath (f)); case dialog.threeWay ("File \"" + s + "\" is missing.", "Find", "Clear", "Cancel") { 1 { if file.getFileDialog ("Find file \"" + s + "\"...", @f, 0) { user.prefs.openRecentMenu.items [ix] = f} else { return (false)}}; 2 { delete (user.prefs.openRecentMenu.items [ix]); return (false)}; 3 { return (false)}}}; Frontier.tools.windowTypes.commands.open (f)}; return (true)}; Çbundle // testing ÇrunOpenRecentMenuScript ("1") \ No newline at end of file |
|
From: creedon <icr...@us...> - 2006-02-09 03:12:03
|
Update of /cvsroot/frontierkernel/odbs/frontierRoot/system/verbs/builtins/Frontier In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9524 Modified Files: requestToFront Log Message: added message parameter to glue Index: requestToFront =================================================================== RCS file: /cvsroot/frontierkernel/odbs/frontierRoot/system/verbs/builtins/Frontier/requestToFront,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** requestToFront 26 Mar 2005 19:42:47 -0000 1.1.1.1 --- requestToFront 9 Feb 2006 03:11:54 -0000 1.2 *************** *** 1,3 **** FrontierVcsFile:1:scpt:system.verbs.builtins.Frontier.requestToFront ! on requestToFront () { kernel (Frontier.requestToFront)} \ No newline at end of file --- 1,3 ---- FrontierVcsFile:1:scpt:system.verbs.builtins.Frontier.requestToFront ! on requestToFront (message) { kernel (Frontier.requestToFront)} \ No newline at end of file |
|
From: creedon <icr...@us...> - 2006-02-09 03:11:29
|
Update of /cvsroot/frontierkernel/odbs/frontierRoot/system/menus In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9411 Modified Files: helpMenu Log Message: updates help menu Index: helpMenu =================================================================== RCS file: /cvsroot/frontierkernel/odbs/frontierRoot/system/menus/helpMenu,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** helpMenu 2 Feb 2006 01:36:44 -0000 1.2 --- helpMenu 9 Feb 2006 03:11:20 -0000 1.3 *************** *** 1,3 **** FrontierVcsFile:1:mbar:system.menus.helpMenu ! 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 \ No newline at end of file --- 1,3 ---- FrontierVcsFile:1:mbar:system.menus.helpMenu ! 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 \ No newline at end of file |
|
From: creedon <icr...@us...> - 2006-02-09 02:52:52
|
Update of /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/localization/languages/english/strings/members In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3123 Added Files: nextMember previousMember Log Message: changes to support mainResponderWebsites.root and sampleMrWs style mainResponder websites --- NEW FILE: nextMember --- FrontierVcsFile:1:TEXT:mainResponder.localization.languages.english.strings.members.nextMember Next Member --- NEW FILE: previousMember --- FrontierVcsFile:1:TEXT:mainResponder.localization.languages.english.strings.members.previousMember Previous Member |
|
From: creedon <icr...@us...> - 2006-02-09 02:52:47
|
Update of /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/menuCommands In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3104 Added Files: installMainResponderSite unInstallMainResponderSite Log Message: changes to support mainResponderWebsites.root and sampleMrWs style mainResponder websites --- NEW FILE: installMainResponderSite --- (This appears to be a binary file; contents omitted.) --- NEW FILE: unInstallMainResponderSite --- (This appears to be a binary file; contents omitted.) |
Update of /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/localization/languages/english/strings/discuss In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3081 Added Files: createNewMessageTitleText postNewMessageButtonText createNewMessage Log Message: changes to support mainResponderWebsites.root and sampleMrWs style mainResponder websites --- NEW FILE: createNewMessageTitleText --- FrontierVcsFile:1:TEXT:mainResponder.localization.languages.english.strings.discuss.createNewMessageTitleText Create New Message --- NEW FILE: createNewMessage --- FrontierVcsFile:1:TEXT:mainResponder.localization.languages.english.strings.discuss.createNewMessage <b><a href="[[url]]">Create new message</a></b> in discussion group. --- NEW FILE: postNewMessageButtonText --- FrontierVcsFile:1:TEXT:mainResponder.localization.languages.english.strings.discuss.postNewMessageButtonText Post New Message |
|
From: creedon <icr...@us...> - 2006-02-09 02:52:38
|
Update of /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3044 Modified Files: init startup menu Log Message: changes to support mainResponderWebsites.root and sampleMrWs style mainResponder websites Index: menu =================================================================== RCS file: /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/menu,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** menu 8 Sep 2005 06:00:51 -0000 1.3 --- menu 9 Feb 2006 02:52:29 -0000 1.4 *************** *** 1,3 **** FrontierVcsFile:1:mbar:mainResponder.menu ! AAEFAQAABLIAAQAAAAAAAAAAAAAAKwADA/0E/QAAAAAAAAZHZW5ldmEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgArAAMC8QH8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAGaAAACMAAAAAAADwZHZW5ldmEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAsjO6178VDF0AADMQAAAA4gEjAaoCpExBTkT///////8AAAAAAABtYWMgAAAAAAAAAAAAAAAAU2VydmVyDQlTZXQgQWRtaW4gUGFzc3dvcmQuLi4NCU9wZW4gQWRtaW4gU2l0ZQ0JPW1haW5SZXNwb25kZXIubWVudUNvbW1hbmRzLmVuYWJsZURpc2FibGVNZW51SXRlbSAoKQ0JLQ0JT3Blbg0JCWNvbmZpZy5yb290DQkJZGlzY3Vzcy5yb290DQkJaW5kZXgucm9vdA0JCW1haW5SZXNwb25kZXIucm9vdA0JCW1lbWJlcnMucm9vdA0JCXRlbXAubWFpblJlc3BvbmRlcg0JCXVzZXIuZGF0YWJhc2VzDQkJdXNlci5iZXR0eS5ycGNIYW5kbGVycw0JCXVzZXIuYmV0dHkucXVldWVPdXRnb2luZw0JLQ0JTWFrZSBhbiBIVFRQIFJlcXVlc3QuLi4NCUNsb3NlL0hpZGUgV2luZG93cw0JV2FrZSBhbGwgVGhyZWFkcw0JTWFwIHRvIERvbWFpbi4uLg0JTG9va3VwIERvbWFpbi4uLg0JUmV2ZXJzZSBEb21haW4gTG9va3VwLi4uDQktDQlJbnN0YWxsIG1haW5SZXNwb25kZXIgU2l0ZS4uLg0JVW5pbnN0YWxsIG1haW5SZXNwb25kZXIgU2l0ZS4uLg0JLQ0JU2VhcmNoIEVuZ2luZQ0JCUluZGV4IFN0b3JlZCBQYWdlcw0JCURlbGV0ZSBQYWdlIEZyb20gSW5kZXguLi4NCQlFZGl0IFBhZ2UgSW5mby4uLg2AAAAAAAAAAAAAAAoAAAAAAAAFa06QAAAAAAAKAAAAAAAABWtOlAAAAAAACgAAAAAAAAVrKawAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAAAFay1kAAAAAAAKAAAAAAAABWsulAAAAAAACgAAAAAAAAVu/DQAAAAAAAoAAAAAAAAFbv74AAAAAAAKAAAAAAAABW7/NAAAAAAACgAAAAAAAAVrLuwAAAAAAAoAAAAAAAAFbq4sAAAAAAAKAAAAAAAABYL/aAAAAAAACgAAAAAAAAEP92QAAAAAAAAAAAAAAAoAAAAAAAABD/mkAAAAAAAKAAAAAAAABW54UAAAAAAACgAAAAAAAAVuPSgAAAAAAAoAAAAAAAAFbEYUAAAAAAAKAAAAAAAABWusDAAAAAAACgAAAAAAAAVrgPgAAAAAAAAAAAAAAAoAAAAAAAAFa4FMAAAAAAAKAAAAAAAABWuBXAAAAAAAAAAAAAAAAAAAAAAACgAAAAAAAAVrgsgAAAAAAAoAAAAAAAAFa4LgAAAAAAAKAAAAAAAABWtqNAACAAAA9gAABnAAAgAAAA8FQXJpYWwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAAAAAAAAAAAAALQ58nW8oO14AAAALQAAAWYBWAIuAtlMQU5E////////AAAAAAAAbWFjIAAAAAAAAAAAAAAAAENoYW5nZXMNCTQvMTMvMDQ7IDE6MDU6NDggQU0gYnkgSkVTDQkJVXBkYXRlZCBwYXNzd29yZCBwcm9tcHQuDQk5LzMwLzAzOyAxOjAyOjUzIFBNIGJ5IEpFUw0JCVN0b3JlIHRoZSBhZG1pbiBwYXNzd29yZCBhcyBhIGJpbmFyeSB2YWx1ZS4NaWYgbm90IChtYWluUmVzcG9uZGVyLm1lbnVDb21tYW5kcy5tdXN0QmVTaXhQb2ludE9uZSAoKSkNCXJldHVybiAoZmFsc2UpDWxvY2FsIChwYXNzd29yZCkNaWYgZGlhbG9nLmdldFBhc3N3b3JkICgiU2V0IHBhc3N3b3JkIGZvciB0aGUgRnJvbnRpZXIgQWRtaW4gd2Vic2l0ZToiLCBAcGFzc3dvcmQpDQlidW5kbGUgLy9jcmVhdGUgdGhlIEFkbWluIG1lbWJlcnNoaXAgZ3JvdXAgaWYgbmVlZGVkDQkJbG9jYWwgKGFkclJvb3QgPSBAW3N5c3RlbS50ZW1wLm1haW5SZXNwb25kZXIubWVtYmVyc1Jvb3RGaWxlXSkNCQlsb2NhbCAoYWRyR3JvdXAgPSBAYWRyUm9vdF4uYWRtaW4pDQkJaWYgbm90IGRlZmluZWQgKGFkckdyb3VwXikNCQkJbmV3ICh0YWJsZVR5cGUsIGFkckdyb3VwKQ0JCWlmIG5vdCBkZWZpbmVkIChhZHJHcm91cF4uY2FsbGJhY2tzKQ0JCQluZXcgKHRhYmxlVHlwZSwgQGFkckdyb3VwXi5jYWxsYmFja3MpDQkJaWYgbm90IGRlZmluZWQgKGFkckdyb3VwXi5jb29raWVEb21haW4pDQkJCWFkckdyb3VwXi5jb29raWVEb21haW4gPSAiIg0JCWlmIG5vdCBkZWZpbmVkIChhZHJHcm91cF4uY29va2llRXhwaXJlcykNCQkJYWRyR3JvdXBeLmNvb2tpZUV4cGlyZXMgPSAiTW9uLCAwMSBBcHIgMjAzMCAwNzowMDowMCBHTVQiDQkJaWYgbm90IGRlZmluZWQgKGFkckdyb3VwXi5jb29raWVOYW1lKQ0JCQlhZHJHcm91cF4uY29va2llTmFtZSA9ICJBZG1pbiINCQlpZiBub3QgZGVmaW5lZCAoYWRyR3JvdXBeLm1haWxSZXR1cm5BZGRyZXNzKQ0JCQlhZHJHcm91cF4ubWFpbFJldHVybkFkZHJlc3MgPSB1c2VyLnByZWZzLm1haWxBZGRyZXNzDQkJaWYgbm90IGRlZmluZWQgKGFkckdyb3VwXi5tYWlsU3ViamVjdCkNCQkJYWRyR3JvdXBeLm1haWxTdWJqZWN0ID0gIkFkbWluIg0JCWlmIG5vdCBkZWZpbmVkIChhZHJHcm91cF4ubWFpbFRlbXBsYXRlKQ0JCQl3cC5uZXdUZXh0T2JqZWN0ICgiIiwgQGFkckdyb3VwXi5tYWlsVGVtcGxhdGUpDQkJaWYgbm90IGRlZmluZWQgKGFkckdyb3VwXi5vcGVuVG9QdWJsaWMpDQkJCWFkckdyb3VwXi5vcGVuVG9QdWJsaWMgPSBmYWxzZQ0JCWlmIG5vdCBkZWZpbmVkIChhZHJHcm91cF4udXNlcnMpDQkJCW5ldyAodGFibGVUeXBlLCBAYWRyR3JvdXBeLnVzZXJzKQ0JDQlsb2NhbCAoYWRyTWVtYmVyID0gbWFpblJlc3BvbmRlci5tZW1iZXJzLmdldE1lbWJlclRhYmxlICgiQWRtaW4iLCB1c2VyLnByZWZzLm1haWxBZGRyZXNzKSkNCWlm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AAAAaWYgbm90IChjb25maWcubWFpblJlc3BvbmRlci5wcmVmcy5mbFNlYXJjaEVuZ2luZSkNCWRpYWxvZy5hbGVydCAoIkNhbid0IEVkaXQgUGFnZSBJbmZvIGJlY2F1c2UgdGhpcyBtYWNoaW5lIGlzIG5vdCBhIHNlYXJjaCBlbmdpbmUgc2VydmVyLiIpDQlyZXR1cm4gKGZhbHNlKQ1sb2NhbCAodXJsKQ1pZiBkaWFsb2cuYXNrICgiVVJMIG9mIHBhZ2U/IiwgQHVybCkNCWxvY2FsIChpbmRleFBhdGggPSBtYWluUmVzcG9uZGVyLnNlYXJjaC51dGlsaXRpZXMuZ2V0SW5kZXhQYXRoICgpKQ0JbWFpblJlc3BvbmRlci5zZWFyY2gudXRpbGl0aWVzLmFzc3VyZUluZGV4ICgpDQlsb2NhbCAoYWRyUGFnZUluZm9UYWJsZSA9IEBbaW5kZXhQYXRoXS5wYWdlSW5mbykNCWxvY2FsIChhZHJQYWdlSW5mbyA9IEBhZHJQYWdlSW5mb1RhYmxlXi5bdXJsXSkNCWlmIG5vdCBkZWZpbmVkIChhZHJQYWdlSW5mb14pDQkJZGlhbG9nLmFsZXJ0ICgiQ2FuJ3QgZWRpdCBpbmZvIGZvciAiICsgdXJsICsgIiBiZWNhdXNlIHRoZSBwYWdlIGlzbid0IGluIHRoZSBpbmRleC4iKQ0JCXJldHVybiAoZmFsc2UpDQllZGl0IChhZHJQYWdlSW5mbykNgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAA \ No newline at end of file --- 1,3 ---- FrontierVcsFile:1:mbar:mainResponder.menu ! AAEFAQAABTMAAQAAAAAAAAAAAAAAKwADA/0E/QAAAAAAAAZHZW5ldmEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgArAAMDBwNkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAGqAAACoQAAAAAADwZHZW5ldmEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAsjO617/ydPcAADdNAAAA4gEjAaoCpExBTkT///////8AAAAAAABtYWMgAAAAAAAAAAAAAAAAU2VydmVyDQlTZXQgQWRtaW4gUGFzc3dvcmQuLi4NCU9wZW4gQWRtaW4gU2l0ZQ0JPSBtYWluUmVzcG9uZGVyLm1lbnVDb21tYW5kcy5lbmFibGVEaXNhYmxlTWVudUl0ZW0gKCkNCS0NCU9wZW4NCQljb25maWcucm9vdA0JCWRpc2N1c3Mucm9vdA0JCWluZGV4LnJvb3QNCQltYWluUmVzcG9uZGVyLnJvb3QNCQltZW1iZXJzLnJvb3QNCQl0ZW1wLm1haW5SZXNwb25kZXINCQl1c2VyLmRhdGFiYXNlcw0JCXVzZXIuYmV0dHkucnBjSGFuZGxlcnMNCQl1c2VyLmJldHR5LnF1ZXVlT3V0Z29pbmcNCS0NCU1ha2UgYW4gSFRUUCBSZXF1ZXN0Li4uDQlDbG9zZS9IaWRlIFdpbmRvd3MNCVdha2UgYWxsIFRocmVhZHMNCU1hcCB0byBEb21haW4uLi4NCUxvb2t1cCBEb21haW4uLi4NCVJldmVyc2UgRG9tYWluIExvb2t1cC4uLg0JLQ0JSW5zdGFsbCBtYWluUmVzcG9uZGVyIFNpdGUuLi4NCVVuaW5zdGFsbCBtYWluUmVzcG9uZGVyIFNpdGUuLi4NCT0gbG9jYWwgKHMgPSAiQ29weSBTYW1wbGUgbWFpblJlc3BvbmRlciBTaXRlIik7IGlmIHRhYmxlLmdldEN1cnNvciAoKSAhPSBAc2FtcGxlTXJXcyB7cyA9ICIoIiArIHN9OyByZXR1cm4gKHMpDQktDQlTZWFyY2ggRW5naW5lDQkJSW5kZXggU3RvcmVkIFBhZ2VzDQkJRGVsZXRlIFBhZ2UgRnJvbSBJbmRleC4uLg0JCUVkaXQgUGFnZSBJbmZvLi4uDYAAAAAAAAAAAAAACgAAAAAAAAZkEtQAAAAAAAoAAAAAAAAGZBLYAAAAAAAKAAAAAAAABmQS3AAAAAAAAAAAAAAAAAAAAAAACgAAAAAAAAZkFCgAAAAAAAoAAAAAAAAGZBSUAAAAAAAKAAAAAAAABmQUsAAAAAAACgAAAAAAAAZkFLwAAAAAAAoAAAAAAAAGZBTIAAAAAAAKAAAAAAAABmQU1AAAAAAACgAAAAAAAAZkFOAAAAAAAAoAAAAAAAAGZBTsAAAAAAAKAAAAAAAABmQU+AAAAAAAAAAAAAAACgAAAAAAAAZkFQQAAAAAAAoAAAAAAAAGZBUQAAAAAAAKAAAAAAAABmQVHAAAAAAACgAAAAAAAAZkFSgAAAAAAAoAAAAAAAAGZBU0AAAAAAAKAAAAAAAABmQVWAAAAAAAAAAAAAAACgAAAAAAAAZkFWQAAAAAAAoAAAAAAAAGZBVwAAAAAAAKAAAAAAAABmQVfAAAAAAAAAAAAAAAAAAAAAAACgAAAAAAAAZkFYgAAAAAAAoAAAAAAAAGZBWUAAAAAAAKAAAAAAAABmQW8AACAAAA9gAABnAAAgAAAA8FQXJpYWwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAAAAAAAAAAAAALQ58nW8oO14AAAALQAAAWYBWAIuAtlMQU5E////////AAAAAAAAbWFjIAAAAAAAAAAAAAAAAENoYW5nZXMNCTQvMTMvMDQ7IDE6MDU6NDggQU0gYnkgSkVTDQkJVXBkYXRlZCBwYXNzd29yZCBwcm9tcHQuDQk5LzMwLzAzOyAxOjAyOjUzIFBNIGJ5IEpFUw0JCVN0b3JlIHRoZSBhZG1pbiBwYXNzd29yZCBhcyBhIGJpbmFyeSB2YWx1ZS4NaWYgbm90IChtYWluUmVzcG9uZGVyLm1lbnVDb21tYW5kcy5tdXN0QmVTaXhQb2ludE9uZSAoKSkNCXJldHVybiAoZmFsc2UpDWxvY2FsIChwYXNzd29yZCkNaWYgZGlhbG9nLmdldFBhc3N3b3JkICgiU2V0IHBhc3N3b3JkIGZvciB0aGUgRnJvbnRpZXIgQWRtaW4gd2Vic2l0ZToiLCBAcGFzc3dvcmQpDQlidW5kbGUgLy9jcmVhdGUgdGhlIEFkbWluIG1lbWJlcnNoaXAgZ3JvdXAgaWYgbmVlZGVkDQkJbG9jYWwgKGFkclJvb3QgPSBAW3N5c3RlbS50ZW1wLm1haW5SZXNwb25kZXIubWVtYmVyc1Jvb3RGaWxlXSkNCQlsb2NhbCAoYWRyR3JvdXAgPSBAYWRyUm9vdF4uYWRtaW4pDQkJaWYgbm90IGRlZmluZWQgKGFkckdyb3VwXikNCQkJbmV3ICh0YWJsZVR5cGUsIGFkckdyb3VwKQ0JCWlmIG5vdCBkZWZpbmVkIChhZHJHcm91cF4uY2FsbGJhY2tzKQ0JCQluZXcgKHRhYmxlVHlwZSwgQGFkckdyb3VwXi5jYWxsYmFja3MpDQkJaWYgbm90IGRlZmluZWQgKGFkckdyb3VwXi5jb29raWVEb21haW4pDQkJCWFkckdyb3VwXi5jb29raWVEb21haW4gPSAiIg0JCWlmIG5vdCBkZWZpbmVkIChhZHJHcm91cF4uY29va2llRXhwaXJlcykNCQkJYWRyR3JvdXBeLmNvb2tpZUV4cGlyZXMgPSAiTW9uLCAwMSBBcHIgMjAzMCAwNzowMDowMCBHTVQiDQkJaWYgbm90IGRlZmluZWQgKGFkckdyb3VwXi5jb29raWVOYW1lKQ0JCQlhZHJHcm91cF4uY29va2llTmFtZSA9ICJBZG1pbiINCQlpZiBub3QgZGVmaW5lZCAoYWRyR3JvdXBeLm1haWxSZXR1cm5BZGRyZXNzKQ0JCQlhZHJHcm91cF4ubWFpbFJldHVybkFkZHJlc3MgPSB1c2VyLnByZWZzLm1haWxBZGRyZXNzDQkJaWYgbm90IGRlZmluZWQgKGFkckdyb3VwXi5tYWlsU3ViamVjdCkNCQkJYWRyR3JvdXBeLm1haWxTdWJqZWN0ID0gIkFkbWluIg0JCWlmIG5vdCBkZWZpbmVkIChhZHJHcm91cF4ubWFpbFRlbXBsYXRlKQ0JCQl3cC5uZXdUZXh0T2JqZWN0ICgiIiwgQGFkckdyb3VwXi5tYWlsVGVtcGxhdGUpDQkJaWYgbm90IGRlZmluZWQgKGFkckdyb3VwXi5vcGVuVG9QdWJsaWMpDQkJCWFkckdyb3VwXi5vcGVuVG9QdWJsaWMgPSBmYWxzZQ0JCWlmIG5vdCBkZWZpbmVkIChhZHJHcm91cF4udXNlcnMpDQkJCW5l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FSQ6vxUkQQAAAAMAAAGnAb8CbwNATEFORP///////wAAAAAAAG1hYyAAAAAAAAAAAAAAAABtYWluUmVzcG9uZGVyLm1lbnVDb21tYW5kcy51bkluc3RhbGxNYWluUmVzcG9uZGVyU2l0ZSAoKQ2AAAAAAAAAAgAAAQIAAAW4AAQCAAAPBkdlbmV2YQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAC/8nPPv/KSVAAAACQBAAGnAb8CbwNATEFORP///////wAAAAAAAG1hYyAAAAAAAAAAAAAAAABDaGFuZ2VzDQkxLzE3LzA2OyAxMDoxNDowMSBBTSBieSBUQUMNCQljcmVhdGVkDQ1sb2NhbCAod2Vic2l0ZU5hbWUpDQ1pZiBkaWFsb2cuYXNrICgiU2l0ZSBuYW1lPyIsIEB3ZWJzaXRlTmFtZSkNCWlmIHN0cmluZy5sb3dlciAod2Vic2l0ZU5hbWUpIGVuZHNXaXRoICJtcndzIg0JCXdlYnNpdGVOYW1lID0gc3RyaW5nLmRlbGV0ZSAod2Vic2l0ZU5hbWUsIHN0cmluZy5sZW5ndGggKHdlYnNpdGVOYW1lKSAtIDMsIDQpDQkNCWxvY2FsIChjYW5vbmljYWwpDQkNCWNhbm9uaWNhbCA9IHN0cmluZy5pbm5lckNhc2VOYW1lICh3ZWJzaXRlTmFtZSkNCWNhbm9uaWNhbCA9IHN0cmluZy5taWQgKGNhbm9uaWNhbCwgMSwgMjcpDQkNCWxvY2FsIChhZHJTaXRlID0gQHRhYmxlLmdldFJvb3RBZGRyZXNzIChAc2FtcGxlTXJXcyleLltjYW5vbmljYWwgKyAiTXJXcyJdKQ0JDQlpZiBkZWZpbmVkIChhZHJTaXRlXikNCQlkaWFsb2cuYWxlcnQgKCJUaGUgbWFpblJlc3BvbmRlciB3ZWJzaXRlIFwiIiArIGNhbm9uaWNhbCArICJNcldzIiArICJcIiBhbHJlYWR5IGV4aXN0cy4iKQ0JCQ0JCXJldHVybiAoZmFsc2UpDQkNCWFkclNpdGVeID0gc2FtcGxlTXJXcw0JDQlhZHJTaXRlXi5bIiNmdHBTaXRlIl0udXJsID0gY29uZmlnLm1haW5yZXNwb25kZXIucHJlZnMuYmFzZVVybCArIGNhbm9uaWNhbCArICIvIg0JYWRyU2l0ZV4uWyIjc2l0ZU5hbWUiXSA9IHdlYnNpdGVOYW1lDQkNCW9wLm5ld091dGxpbmVPYmplY3QgKCIjdGl0bGUgXCJJdCBXb3JrZWQhXCJcclxyQ29uZ3JhdHVsYXRpb25zIHlvdSBoYXZlIGNvcGllZCB0aGUgU2FtcGxlIG1haW5SZXNwb25kZXIgV2Vic2l0ZSBhbmQgaW5zdGFsbGVkIHRoZSBjb3B5ISIsIEBhZHJTaXRlXi5kZWZhdWx0KQ0JDQlidW5kbGUgLy8gY2hhbmdlIGNhbm9uaWNhbCBzaXRlIHJlZmVyZW5jZXMNCQlidW5kbGUgLy8gc2ltcGxlIGFzc2lnbm1lbnQNCQkJYWRyU2l0ZV4uWyIjcHJlZnMiXS5zZWFyY2guc2l0ZU5hbWUgPSBjYW5vbmljYWwNCQkNCQlidW5kbGUgLy8gc3RyaW5nIHJlcGxhY2VtZW50cw0JCQlvbiByZXBsYWNlIChhZHIpDQkJCQlhZHJeID0gc3RyaW5nLnJlcGxhY2UgKGFkcl4sICJzYW1wbGUiLCBjYW5vbmljYWwpDQkJCQ0JCQlyZXBsYWNlIChAYWRyU2l0ZV4uWyIjZGlzY3Vzc2lvbkdyb3VwIl0uZWRpdG9yaWFsUHJlZnMubWVtYmVyc2hpcEdyb3VwKQ0JCQlyZXBsYWNlIChAYWRyU2l0ZV4uWyIjbWVtYmVyc2hpcEdyb3VwIl0uY29va2llTmFtZSkNCQkJcmVwbGFjZSAoQGFkclNpdGVeLlsiI3ByZWZzIl0uZGVmYXVsdE1lbWJlcnNoaXBHcm91cCkNCQkJcmVwbGFjZSAoQGFkclNpdGVeLlsiI3ByZWZzIl0uZGlzY3Vzc2lvblJvb3QpDQkJCXJlcGxhY2UgKEBhZHJTaXRlXi5kaXNjdXNzaW9uR3JvdXAuZWRpdC5bIiNtZW1iZXJzIl0pDQkJCXJlcGxhY2UgKEBhZHJTaXRlXi5tZW1iZXIucHJlZmVyZW5jZXMuWyIjbWVtYmVycyJdKQ2EAAAAAAAAAAAAAAAAAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAAAACAAAAA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 \ No newline at end of file Index: init =================================================================== RCS file: /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/init,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** init 21 Dec 2005 23:23:37 -0000 1.8 --- init 9 Feb 2006 02:52:29 -0000 1.9 *************** *** 1,3 **** FrontierVcsFile:1:scpt:mainResponder.init ! on init () { ÇChanges Ç12/21/05; 1:43:35 PM by TAC Çadded init for config.mainresponder.sites Ç9/7/05; 10:53:18 PM by TAC Çchanged userlandIcons to frontierIcons Çchanged /mainResponderResources/ to /resources/ Ç8/6/05; 10:30:54 AM by TAC Çpartial path support for config.mainresponder.prefs.logFolder; config.mainresponder.prefs.discussArchiveFolder; config.mainresponder.prefs.backupFolder, more portable Ç6/19/05; 10:47:10 AM by TAC Çchanged localhost value to 127.0.0.1 Çadded config.mainResponder.callbacks.subscriptionsServer Çadded config.mainresponder.prefs.legalMacros Çadded config.mainresponder.prefs.baseUrl for adminSite setupFrontier Ç3/10/03; 5:53:51 PM by JES ÇMake sure that system.environment.isRadio is defined (and false). Ç3/4/03; 3:19:15 PM by JES ÇReturn @config.mainResponder. Ç9/3/02; 1:26:05 AM by JES ÇFixed a bonehead bug -- we were calling user.rootUpdates.init to initialize the user.rootUpdates.callbacks table. We should have called rootUpdates.init instead. Ç8/28/02; 11:18:11 PM by JES ÇRegister admin site callbacks, and config.mainResponder.prefs.flLogRootUpdates. Ç8/20/02; 12:38:52 AM by JES ÇIf the port 5335 listen configured at user.inetd.config.http2 is not installed, install it, based on the default http listen. Ç8/18/02; 5:21:19 PM by JES ÇInstall the admin site pathEvaluation callback at config.mainresponder.callbacks.pathEvaluation.frontierAdminSite. Ç8/1/02; 6:59:56 PM by JES ÇInitialize new search engine prefs at config.mainResponder.search.prefs. No longer create config.mainresponder.data.searchQueue. Ç06/22/00; 3:57:55 PM by PBS ÇSet hashed cookies to true by default. Ç06/17/00; 5:29:29 PM by PBS ÇNow false by default: flKeepParamTable, flLog, flDiscussStatsNightly Ç12/11/1999 at 5:29:32 AM by AR ÇCommented out the code for hooking into the scheduler. This is now handled in mainResponder.startup. Ç11/23/99; 4:10:06 PM by PBS ÇBackups and discuss archiving now false by default. Ç11/20/99; 4:29:29 PM by PBS ÇChanged some defaults. Discuss archiving is true by default. Nightly updates are on by default; the default nightly update list contains Frontier, mainResponder, manila, and prefs.root. Save databases every minute is true by default. Logging database opens to the temp table is now false by default. Ç11/16/99; 11:48:17 PM by PBS ÇSet up prefs for flUpdateNightly, updateNightlyList, and securityLevel. The first two are prefs for automated nightly updates, the third is the security level for the Control Panel. Ç10/25/99; 4:04:59 PM by PBS Çconfig.mainResponder.prefs.flControlPanel: if true, then the /controlPanel/ system website can be accessed. It's true by default. Ç8/15/99; 9:53:42 AM by DW Çconfig.mainresponder.prefs.flLogReopenHourly, if true, we close the log file every hour. It will be re-opened by the next log.add call. In our work with the 6.1 kernel, we've determined that for busy servers this helps Frontier's memory utilization significantly, and the cost of re-opening the file once an hour is relatively small. Ç8/15/99; 9:34:07 AM by DW ÇMake sure that scheduler tasks are installed. This is also handled in mainResponder.install, but I don't want to ask people to run this script to go to 6.1, so we check to see if they're defined and if they're not we link them in. Ç8/15/99; 8:26:14 AM by DW Çinitialize config.mainresponder.prefs.flArchiveDiscuss and discussArchiveFolder. ÇWed, Mar 10, 1999 at 2:34:19 PM by PBS ÇInitialize config.mainResponder.data. ÇInitialize config.mainResponder.data.searchQueue. ÇWed, Mar 10, 1999 at 2:19:48 PM by PBS ÇInitialize the config.mainresponder.search table. ÇSet config.mainResponder.prefs.flSearchEngine to false by default. ÇThis means that this machine is not, by default, a search engine server. ÇSet config.mainResponder.prefs.flLogMemAvail to false by default. ÇTue, Mar 9, 1999 at 4:12:13 PM by PBS ÇUse Frontier.getSubFolder rather than mainResponder.getFolder. ÇSat, Mar 20, 1999 at 4:48:37 PM by PBS ÇAdded flConvertToMacText pref. ÇOn Macs, convert incoming latin text to Mac. ÇOn Windows the pref has no effect. ÇInitialize mainResponder local (ps = string.popTrailing (system.verbs.builtins.Frontier.pathstring, file.getPathChar ())); // path string minus the trailing path character on suretable (adrtable) { if not defined (adrtable^) { new (tabletype, adrtable)}}; suretable (@config.mainresponder); bundle { //config.mainresponder.prefs suretable (@config.mainresponder.prefs); if not defined (config.mainresponder.prefs.baseUrl) { config.mainresponder.prefs.baseUrl = "http://127.0.0.1/"}; if not defined (config.mainresponder.prefs.backupFolder) { config.mainresponder.prefs.backupFolder = Frontier.getSubFolder ("/ops/backups/") - ps}; // 8/6/05; 10:30:54 AM by TAC if not defined (config.mainresponder.prefs.defaultDiscussRoot) { config.mainresponder.prefs.defaultDiscussRoot = "discuss"}; if not defined (config.mainresponder.prefs.defaultNewsRoot) { config.mainresponder.prefs.defaultNewsRoot = "default"}; if not defined (config.mainresponder.prefs.flAllowPublicSearchSubmissions) { //PBS 3/9/99 config.mainresponder.prefs.flAllowPublicSearchSubmissions = false}; if not defined (config.mainresponder.prefs.flBackupNightly) { config.mainresponder.prefs.flBackupNightly = false}; //PBS 11/23/99: now false by default if not defined (config.mainresponder.prefs.flDiscussStatsNightly) { Çconfig.mainresponder.prefs.flDiscussStatsNightly = true config.mainresponder.prefs.flDiscussStatsNightly = false}; //PBS 06/17/00: Now false by default for 6.2. if not defined (config.mainresponder.prefs.flArchiveDiscuss) { config.mainresponder.prefs.flArchiveDiscuss = false}; //PBS 11/23/99: now false by default if not defined (config.mainresponder.prefs.discussArchiveFolder) { config.mainresponder.prefs.discussArchiveFolder = Frontier.getSubFolder ("/ops/discussArchive/") - ps}; // 8/6/05; 10:30:54 AM by TAC if not defined (config.mainresponder.prefs.flControlPanel) { //PBS 10/25/99: pref for the /controlPanel/ site config.mainresponder.prefs.flControlPanel = true}; if not defined (config.mainresponder.prefs.flDebug) { config.mainresponder.prefs.flDebug = false}; if not defined (config.mainresponder.prefs.flKeepParamTable) { Çconfig.mainresponder.prefs.flKeepParamTable = true config.mainresponder.prefs.flKeepParamTable = false}; //PBS 06/17/00: Now false by default in 6.2. if not defined (config.mainresponder.prefs.flLog) { Çconfig.mainresponder.prefs.flLog = true config.mainresponder.prefs.flLog = false}; //PBS 06/17/00: HTTP logging now off by default in 6.2. if not defined (config.mainresponder.prefs.flLogMemavail) { config.mainresponder.prefs.flLogMemavail = false}; if not defined (config.mainresponder.prefs.flLogDatabaseOpens) { config.mainresponder.prefs.flLogDatabaseOpens = false}; //PBS 11/20/99: now false by default, no to logging database opens to the temp table if not defined (config.mainresponder.prefs.flLogReopenHourly) { config.mainresponder.prefs.flLogReopenHourly = false}; if not defined (config.mainresponder.prefs.flOpenAboutWindow) { config.mainresponder.prefs.flOpenAboutWindow = true}; if not defined (config.mainresponder.prefs.flBuildPagesInBackground) { config.mainresponder.prefs.flBuildPagesInBackground = false}; //PBS 11/20/99: now false by default, no to building pages in the background if not defined (config.mainresponder.prefs.flProfiling) { config.mainresponder.prefs.flProfiling = false}; if not defined (config.mainresponder.prefs.flSaveDatabasesEveryMinute) { config.mainresponder.prefs.flSaveDatabasesEveryMinute = true}; //PBS 11/20/99: save databases every minute is now true by default if not defined (config.mainResponder.prefs.flMembershipHashedCookies) { //PBS 06/22/00: true by default config.mainResponder.prefs.flMembershipHashedCookies = true}; if not defined (config.mainresponder.prefs.flSearchEngine) { config.mainresponder.prefs.flSearchEngine = false}; if not defined (config.mainresponder.prefs.flStats) { config.mainresponder.prefs.flStats = true}; if not defined (config.mainresponder.prefs.flSubscriptions) { config.mainresponder.prefs.flSubscriptions = false}; if not defined (config.mainresponder.prefs.hitsBetweenLogSaves) { config.mainresponder.prefs.hitsBetweenLogSaves = 100}; if not defined (config.mainresponder.prefs.flConvertToMacText) { //PBS 3/20/99 config.mainresponder.prefs.flConvertToMacText = true}; if not defined (config.mainresponder.prefs.logFolder) { config.mainresponder.prefs.logFolder = Frontier.getSubFolder ("/ops/logs/") - ps}; // 8/6/05; 10:30:54 AM by TAC if not defined (config.mainresponder.prefs.legalMacros) { new (tabletype, @config.mainresponder.prefs.legalMacros)}; if not defined (config.mainresponder.prefs.legalTags) { new (tabletype, @config.mainresponder.prefs.legalTags); config.mainresponder.prefs.legalTags.i = true; config.mainresponder.prefs.legalTags.pre = true}; if not defined (config.mainresponder.prefs.flAllowByIpOnly) { //AR 11/04/1999 config.mainresponder.prefs.flAllowByIpOnly = false}; if not defined (config.mainresponder.prefs.allowedIpAddresses) { //AR 11/04/1999 config.mainresponder.prefs.allowedIpAddresses = "127.0.0.1"}; if not defined (config.mainResponder.prefs.flUpdateNightly) { //PBS 11/16/99: update various gdbs every night config.mainResponder.prefs.flUpdateNightly = true}; //PBS 11/20/99: nightly updates now true by default if not defined (config.mainResponder.prefs.updateNightlyList) { //PBS 11/16/99: list of gdbs to update nightly config.mainResponder.prefs.updateNightlyList = {"Frontier.root", "mainResponder.root", "prefs.root"}}; // 6/16/05; 1:52:08 PM by TAC - removed manila.root if not defined (config.mainResponder.prefs.securityLevel) { //PBS 11/16/99: set up security level pref config.mainResponder.prefs.securityLevel = 0}; if not defined (config.mainResponder.prefs.flLogRootUpdates) { config.mainResponder.prefs.flLogRootUpdates = true}}; bundle { //config.mainresponder.urls local (localhost = "127.0.0.1"); suretable (@config.mainresponder.urls); bundle { //discuss urls local (basediscussurl = "http://" + localhost + "/htmlInterfaces/discussionGroup/"); if not defined (config.mainResponder.urls.discussEditInBrowser) { config.mainResponder.urls.discussEditInBrowser = basediscussurl + "edit/editInBrowser$"}; if not defined (config.mainResponder.urls.discussEditInFrontier) { config.mainResponder.urls.discussEditInFrontier = basediscussurl + "edit/editInFrontier$"}; if not defined (config.mainResponder.urls.discussEnclosureDownloader) { config.mainResponder.urls.discussEnclosureDownloader = basediscussurl + "enclosureDownloader$"}; if not defined (config.mainResponder.urls.discussEnclosureRPCer) { config.mainResponder.urls.discussEnclosureRPCer = basediscussurl + "enclosureRPCer$"}; if not defined (config.mainResponder.urls.discussEnclosureViewer) { config.mainResponder.urls.discussEnclosureViewer = basediscussurl + "raw/messages/"}; if not defined (config.mainResponder.urls.discussGetChangesFromWorkstation) { config.mainResponder.urls.discussGetChangesFromWorkstation = basediscussurl + "edit/getChangesFromWorkstation"}; if not defined (config.mainResponder.urls.discussHomePage) { config.mainResponder.urls.discussHomePage = basediscussurl}; if not defined (config.mainResponder.urls.discussMsgReader) { config.mainResponder.urls.discussMsgReader = basediscussurl + "msgReader$"}; if not defined (config.mainResponder.urls.discussNewThread) { config.mainResponder.urls.discussNewThread = basediscussurl + "edit/newThread$"}; if not defined (config.mainResponder.urls.discussPostEditedMessage) { config.mainResponder.urls.discussPostEditedMessage = basediscussurl + "edit/postEditedMsg"}; if not defined (config.mainResponder.urls.discussPostMessage) { config.mainResponder.urls.discussPostMessage = basediscussurl + "edit/postMsg"}; if not defined (config.mainResponder.urls.discussTopics) { config.mainResponder.urls.discussTopics = basediscussurl + "topics"}}; bundle { //resources urls local (baseresourcesurl = "http://" + localhost + "/resources/"); if not defined (config.mainresponder.urls.frontierLogo) { config.mainresponder.urls.frontierLogo = baseresourcesurl + "logos/logoWinNT.gif"}; if not defined (config.mainresponder.urls.icons) { config.mainresponder.urls.icons = baseresourcesurl + "icons/"}; if not defined (config.mainresponder.urls.imageCowSkull) { config.mainresponder.urls.imageCowSkull = baseresourcesurl + "frontierIcons/skull"}}; bundle { //member urls local (basememberurl = "http://" + localhost + "/htmlInterfaces/logon/"); if not defined (config.mainResponder.urls.memberCheckMail) { config.mainResponder.urls.memberCheckMail = basememberurl + "checkYourMail"}; if not defined (config.mainResponder.urls.memberHome) { config.mainResponder.urls.memberHome = basememberurl + "welcome"}; if not defined (config.mainResponder.urls.memberLogoff) { config.mainResponder.urls.memberLogoff = basememberurl + "logoffConfirm"}; if not defined (config.mainResponder.urls.memberLogon) { config.mainResponder.urls.memberLogon = basememberurl}}; bundle { //misc urls if not defined (config.mainResponder.urls.newsHome) { config.mainResponder.urls.newsHome = "http://" + localhost + "/"}; if not defined (config.mainResponder.urls.searchHome) { config.mainResponder.urls.searchHome = "http://" + localhost + "/search/"}; local (basepeopleurl = "http://" + localhost + "/htmlInterfaces/people/"); if not defined (config.mainResponder.urls.prefsHome) { config.mainResponder.urls.prefsHome = basepeopleurl + "prefs/"}; if not defined (config.mainResponder.urls.profilesHome) { config.mainResponder.urls.profilesHome = basepeopleurl + "profiles/"}}}; bundle { //config.mainresponder.callbacks suretable (@config.mainresponder.callbacks); suretable (@config.mainresponder.callbacks.addMessage); suretable (@config.mainresponder.callbacks.controlAccess); suretable (@config.mainresponder.callbacks.editMessage); suretable (@config.mainresponder.callbacks.lightweightMacros); suretable (@config.mainresponder.callbacks.nightlyBackup); suretable (@config.mainResponder.callbacks.searchEngineSecurity); //PBS 3/9/99 suretable (@config.mainResponder.callbacks.subscriptionsServer); ÇAdd search engine callbacks. if not defined (config.mainResponder.callbacks.addMessage.index) { script.newScriptObject ("mainResponder.search.client.addMessageCallback (adrNewMsg)", @config.mainResponder.callbacks.addMessage.index); script.compile (@config.mainResponder.callbacks.addMessage.index)}; if not defined (config.mainResponder.callbacks.editMessage.index) { script.newScriptObject ("mainResponder.search.client.addMessageCallback (adrEditedMsg)", @config.mainResponder.callbacks.editMessage.index); script.compile (@config.mainResponder.callbacks.editMessage.index)}; ÇAdd security callback if not defined (config.mainResponder.callbacks.controlAccess.blockByIP) { //AR 11/04/1999 script.newScriptObject ("mainResponder.security.blockHttpByIP ()", @config.mainResponder.callbacks.controlAccess.blockByIP)}; ÇAdd pathEvaluation callback for the Admin site if not defined (config.mainresponder.callbacks.pathEvaluation) { //JES 8/18/02 new (tableType, @config.mainresponder.callbacks.pathEvaluation)}; if not defined (config.mainresponder.callbacks.pathEvaluation.frontierAdminSite) { //JES 8/18/02 config.mainresponder.callbacks.pathEvaluation.frontierAdminSite = @mainResponder.adminSite.callbacks.pathEvaluation}}; bundle { //config.mainresponder.data suretable (@config.mainresponder.data); };Çsuretable (@config.mainresponder.data.searchQueue) bundle { //config.mainresponder.domains suretable (@config.mainresponder.domains); if sizeof (config.mainresponder.domains) == 0 { config.mainresponder.domains.default = Frontier.getSubFolder ("/www/")}}; bundle { //config.mainresponder.globals suretable (@config.mainresponder.globals); if not defined (config.mainresponder.globals.allowDirectoryListings) { //PBS 11/19/99: default is now false config.mainresponder.globals.allowDirectoryListings = false}; if not defined (config.mainresponder.globals.allowScriptListings) { config.mainresponder.globals.allowScriptListings = false}; if not defined (config.mainresponder.globals.allowScriptsToRun) { config.mainresponder.globals.allowScriptsToRun = false}; if not defined (config.mainresponder.globals.defaultDirectoryItems) { config.mainresponder.globals.defaultDirectoryItems = {"default.html", "default", "index.html", "index"}}; if not defined (config.mainresponder.globals.defaultMembershipGroup) { config.mainresponder.globals.defaultMembershipGroup = "default"}; if not defined (config.mainresponder.globals.flRender) { config.mainresponder.globals.flRender = false}; if not defined (config.mainresponder.globals.flRenderingCache) { config.mainresponder.globals.flRenderingCache = false}}; bundle { //config.mainresponder.search suretable (@config.mainresponder.search); if not defined (config.mainresponder.search.domain) { config.mainresponder.search.domain = "127.0.0.1"}; if not defined (config.mainresponder.search.port) { config.mainresponder.search.port = 80}; if not defined (config.mainresponder.search.addToIndex) { config.mainresponder.search.addToIndex = "mainResponder.search.index"}; if not defined (config.mainresponder.search.restartIndex) { config.mainresponder.search.restartIndex = "mainResponder.search.restartIndex"}; if not defined (config.mainresponder.search.sites) { suretable (@config.mainresponder.search.sites)}; if not defined (config.mainResponder.search.prefs) { new (tableType, @config.mainResponder.search.prefs)}; if not defined (config.mainResponder.search.prefs.flLogEnabled) { config.mainResponder.search.prefs.flLogEnabled = false}; if not defined (config.mainResponder.search.prefs.flLogSearches) { config.mainResponder.search.prefs.flLogSearches = true}; if not defined (config.mainResponder.search.prefs.flLogIndex) { config.mainResponder.search.prefs.flLogIndex = true}; if not defined (config.mainResponder.search.prefs.flLogNoIndex) { config.mainResponder.search.prefs.flLogNoIndex = true}; if not defined (config.mainResponder.search.prefs.flStoreFullText) { config.mainResponder.search.prefs.flStoreFullText = false}; if not defined (config.mainResponder.search.prefs.minutesBetweenIndexes) { config.mainResponder.search.prefs.minutesBetweenIndexes = 60}; if not defined (config.mainResponder.search.prefs.hoursToCacheSearchResults) { config.mainResponder.search.prefs.hoursToCacheSearchResults = 24}}; bundle { //config.mainresponder.stats if not defined (config.mainResponder.stats) { new (tabletype, @config.mainResponder.stats)}; if not defined (config.mainResponder.stats.ctDiscussionGroupReads) { config.mainResponder.stats.ctDiscussionGroupReads = 0}}; bundle { // config.mainresponder.sites suretable (@config.mainresponder.sites); if not (defined (config.mainresponder.sites.resources)) { config.mainresponder.sites.resources = @mainResponder.resources}}; bundle { //port 5335 listener if not defined (user.inetd.config.http2) { user.inetd.config.http2 = user.inetd.config.http; user.inetd.config.http2.port = 5336; if user.inetd.config.http2.startup { try { inetd.startOne (@user.inetd.config.http2)}}}}; try { //register admin site callbacks if not defined (user.rootUpdates.callbacks) { rootUpdates.init ()}; if not defined (user.rootUpdates.callbacks.afterInstallPart.mainResponder) { user.rootUpdates.callbacks.afterInstallPart.mainResponder = @mainResponder.adminSite.callbacks.logRootUpdate}}; bundle { //miscellaneous clean-up if not defined (system.environment.isRadio) { system.environment.isRadio = false}}; Çbundle //hook in to user.scheduler Çif not defined (user.scheduler.everyMinute.nirvanaServer) Çuser.scheduler.everyMinute.nirvanaServer = @mainresponder.background.everyminute Çif not defined (user.scheduler.hourly.nirvanaServer) Çuser.scheduler.hourly.nirvanaServer = @mainresponder.background.everyHour Çif not defined (user.scheduler.overnight.nirvanaServer) Çuser.scheduler.overnight.nirvanaServer = @mainresponder.background.everynight return (@config.mainResponder)}; Çbundle //test code Çlocal (ticks = clock.ticks ()) Çfor i = 1 to 100 Çinit () Çdialog.notify ((double (clock.ticks ()) - ticks) / 60 + " secs.") \ No newline at end of file --- 1,3 ---- FrontierVcsFile:1:scpt:mainResponder.init ! on init () { ÇChanges Ç2/8/06; 11:07:06 AM by TAC Çadded mainResponderWebsites.root to nightly updates Çdefault website is sampleMrWs Çtweaked script formatting Ç2005 Ç12/21/05; 1:43:35 PM by TAC Çadded init for config.mainresponder.sites Ç9/7/05; 10:53:18 PM by TAC Çchanged userlandIcons to frontierIcons Çchanged /mainResponderResources/ to /resources/ Ç8/6/05; 10:30:54 AM by TAC Çpartial path support for config.mainresponder.prefs.logFolder; config.mainresponder.prefs.discussArchiveFolder; config.mainresponder.prefs.backupFolder, more portable Ç6/19/05; 10:47:10 AM by TAC Çchanged localhost value to 127.0.0.1 Çadded config.mainResponder.callbacks.subscriptionsServer Çadded config.mainresponder.prefs.legalMacros Çadded config.mainresponder.prefs.baseUrl for adminSite setupFrontier Ç6/16/05; 1:52:08 PM by TAC Çremoved manila.root from nightly root update init Ç3/10/03; 5:53:51 PM by JES ÇMake sure that system.environment.isRadio is defined (and false). Ç3/4/03; 3:19:15 PM by JES ÇReturn @config.mainResponder. Ç2002 Ç9/3/02; 1:26:05 AM by JES ÇFixed a bonehead bug -- we were calling user.rootUpdates.init to initialize the user.rootUpdates.callbacks table. We should have called rootUpdates.init instead. Ç8/28/02; 11:18:11 PM by JES ÇRegister admin site callbacks, and config.mainResponder.prefs.flLogRootUpdates. Ç8/20/02; 12:38:52 AM by JES ÇIf the port 5335 listen configured at user.inetd.config.http2 is not installed, install it, based on the default http listen. Ç8/18/02; 5:21:19 PM by JES ÇInstall the admin site pathEvaluation callback at config.mainresponder.callbacks.pathEvaluation.frontierAdminSite. Ç8/1/02; 6:59:56 PM by JES ÇInitialize new search engine prefs at config.mainResponder.search.prefs. No longer create config.mainresponder.data.searchQueue. Ç06/22/00; 3:57:55 PM by PBS ÇSet hashed cookies to true by default. Ç06/17/00; 5:29:29 PM by PBS ÇNow false by default: flKeepParamTable, flLog, flDiscussStatsNightly Ç1999 Ç12/11/1999 at 5:29:32 AM by AR ÇCommented out the code for hooking into the scheduler. This is now handled in mainResponder.startup. Ç11/23/99; 4:10:06 PM by PBS ÇBackups and discuss archiving now false by default. Ç11/20/99; 4:29:29 PM by PBS ÇChanged some defaults. Discuss archiving is true by default. Nightly updates are on by default; the default nightly update list contains Frontier, mainResponder, manila, and prefs.root. Save databases every minute is true by default. Logging database opens to the temp table is now false by default. Ç11/16/99; 11:48:17 PM by PBS ÇSet up prefs for flUpdateNightly, updateNightlyList, and securityLevel. The first two are prefs for automated nightly updates, the third is the security level for the Control Panel. Ç10/25/99; 4:04:59 PM by PBS Çconfig.mainResponder.prefs.flControlPanel: if true, then the /controlPanel/ system website can be accessed. It's true by default. Ç8/15/99; 9:53:42 AM by DW Çconfig.mainresponder.prefs.flLogReopenHourly, if true, we close the log file every hour. It will be re-opened by the next log.add call. In our work with the 6.1 kernel, we've determined that for busy servers this helps Frontier's memory utilization significantly, and the cost of re-opening the file once an hour is relatively small. Ç8/15/99; 9:34:07 AM by DW ÇMake sure that scheduler tasks are installed. This is also handled in mainResponder.install, but I don't want to ask people to run this script to go to 6.1, so we check to see if they're defined and if they're not we link them in. Ç8/15/99; 8:26:14 AM by DW Çinitialize config.mainresponder.prefs.flArchiveDiscuss and discussArchiveFolder. ÇWed, Mar 10, 1999 at 2:34:19 PM by PBS ÇInitialize config.mainResponder.data. ÇInitialize config.mainResponder.data.searchQueue. ÇWed, Mar 10, 1999 at 2:19:48 PM by PBS ÇInitialize the config.mainresponder.search table. ÇSet config.mainResponder.prefs.flSearchEngine to false by default. ÇThis means that this machine is not, by default, a search engine server. ÇSet config.mainResponder.prefs.flLogMemAvail to false by default. ÇTue, Mar 9, 1999 at 4:12:13 PM by PBS ÇUse Frontier.getSubFolder rather than mainResponder.getFolder. ÇSat, Mar 20, 1999 at 4:48:37 PM by PBS ÇAdded flConvertToMacText pref. ÇOn Macs, convert incoming latin text to Mac. ÇOn Windows the pref has no effect. ÇInitialize mainResponder local (ps = string.popTrailing (system.verbs.builtins.Frontier.pathstring, file.getPathChar ())); // path string minus the trailing path character on sureTable (adrtable) { if not defined (adrtable^) { new (tabletype, adrtable)}}; sureTable (@config.mainresponder); bundle { //config.mainresponder.prefs sureTable (@config.mainresponder.prefs); if not defined (config.mainresponder.prefs.baseUrl) { config.mainresponder.prefs.baseUrl = "http://127.0.0.1/"}; if not defined (config.mainresponder.prefs.backupFolder) { config.mainresponder.prefs.backupFolder = Frontier.getSubFolder ("/ops/backups/") - ps}; // 8/6/05; 10:30:54 AM by TAC if not defined (config.mainresponder.prefs.defaultDiscussRoot) { config.mainresponder.prefs.defaultDiscussRoot = "discuss"}; if not defined (config.mainresponder.prefs.defaultNewsRoot) { config.mainresponder.prefs.defaultNewsRoot = "default"}; if not defined (config.mainresponder.prefs.flAllowPublicSearchSubmissions) { //PBS 3/9/99 config.mainresponder.prefs.flAllowPublicSearchSubmissions = false}; if not defined (config.mainresponder.prefs.flBackupNightly) { config.mainresponder.prefs.flBackupNightly = false}; //PBS 11/23/99: now false by default if not defined (config.mainresponder.prefs.flDiscussStatsNightly) { Çconfig.mainresponder.prefs.flDiscussStatsNightly = true config.mainresponder.prefs.flDiscussStatsNightly = false}; //PBS 06/17/00: Now false by default for 6.2. if not defined (config.mainresponder.prefs.flArchiveDiscuss) { config.mainresponder.prefs.flArchiveDiscuss = false}; //PBS 11/23/99: now false by default if not defined (config.mainresponder.prefs.discussArchiveFolder) { config.mainresponder.prefs.discussArchiveFolder = Frontier.getSubFolder ("/ops/discussArchive/") - ps}; // 8/6/05; 10:30:54 AM by TAC if not defined (config.mainresponder.prefs.flControlPanel) { //PBS 10/25/99: pref for the /controlPanel/ site config.mainresponder.prefs.flControlPanel = true}; if not defined (config.mainresponder.prefs.flDebug) { config.mainresponder.prefs.flDebug = false}; if not defined (config.mainresponder.prefs.flKeepParamTable) { Çconfig.mainresponder.prefs.flKeepParamTable = true config.mainresponder.prefs.flKeepParamTable = false}; //PBS 06/17/00: Now false by default in 6.2. if not defined (config.mainresponder.prefs.flLog) { Çconfig.mainresponder.prefs.flLog = true config.mainresponder.prefs.flLog = false}; //PBS 06/17/00: HTTP logging now off by default in 6.2. if not defined (config.mainresponder.prefs.flLogMemavail) { config.mainresponder.prefs.flLogMemavail = false}; if not defined (config.mainresponder.prefs.flLogDatabaseOpens) { config.mainresponder.prefs.flLogDatabaseOpens = false}; //PBS 11/20/99: now false by default, no to logging database opens to the temp table if not defined (config.mainresponder.prefs.flLogReopenHourly) { config.mainresponder.prefs.flLogReopenHourly = false}; if not defined (config.mainresponder.prefs.flOpenAboutWindow) { config.mainresponder.prefs.flOpenAboutWindow = true}; if not defined (config.mainresponder.prefs.flBuildPagesInBackground) { config.mainresponder.prefs.flBuildPagesInBackground = false}; //PBS 11/20/99: now false by default, no to building pages in the background if not defined (config.mainresponder.prefs.flProfiling) { config.mainresponder.prefs.flProfiling = false}; if not defined (config.mainresponder.prefs.flSaveDatabasesEveryMinute) { config.mainresponder.prefs.flSaveDatabasesEveryMinute = true}; //PBS 11/20/99: save databases every minute is now true by default if not defined (config.mainResponder.prefs.flMembershipHashedCookies) { //PBS 06/22/00: true by default config.mainResponder.prefs.flMembershipHashedCookies = true}; if not defined (config.mainresponder.prefs.flSearchEngine) { config.mainresponder.prefs.flSearchEngine = false}; if not defined (config.mainresponder.prefs.flStats) { config.mainresponder.prefs.flStats = true}; if not defined (config.mainresponder.prefs.flSubscriptions) { config.mainresponder.prefs.flSubscriptions = false}; if not defined (config.mainresponder.prefs.hitsBetweenLogSaves) { config.mainresponder.prefs.hitsBetweenLogSaves = 100}; if not defined (config.mainresponder.prefs.flConvertToMacText) { //PBS 3/20/99 config.mainresponder.prefs.flConvertToMacText = true}; if not defined (config.mainresponder.prefs.logFolder) { config.mainresponder.prefs.logFolder = Frontier.getSubFolder ("/ops/logs/") - ps}; // 8/6/05; 10:30:54 AM by TAC if not defined (config.mainresponder.prefs.legalMacros) { new (tabletype, @config.mainresponder.prefs.legalMacros)}; if not defined (config.mainresponder.prefs.legalTags) { new (tabletype, @config.mainresponder.prefs.legalTags); config.mainresponder.prefs.legalTags.i = true; config.mainresponder.prefs.legalTags.pre = true}; if not defined (config.mainresponder.prefs.flAllowByIpOnly) { //AR 11/04/1999 config.mainresponder.prefs.flAllowByIpOnly = false}; if not defined (config.mainresponder.prefs.allowedIpAddresses) { //AR 11/04/1999 config.mainresponder.prefs.allowedIpAddresses = "127.0.0.1"}; if not defined (config.mainResponder.prefs.flUpdateNightly) { //PBS 11/16/99: update various gdbs every night config.mainResponder.prefs.flUpdateNightly = true}; //PBS 11/20/99: nightly updates now true by default if not defined (config.mainResponder.prefs.updateNightlyList) { //PBS 11/16/99: list of gdbs to update nightly config.mainResponder.prefs.updateNightlyList = {"Frontier.root", "mainResponder.root", "prefs.root", "mainResponderWebsites.root"}}; if not defined (config.mainResponder.prefs.securityLevel) { //PBS 11/16/99: set up security level pref config.mainResponder.prefs.securityLevel = 0}; if not defined (config.mainResponder.prefs.flLogRootUpdates) { config.mainResponder.prefs.flLogRootUpdates = true}}; bundle { //config.mainresponder.urls local (localhost = "127.0.0.1"); sureTable (@config.mainresponder.urls); bundle { //discuss urls local (basediscussurl = "http://" + localhost + "/htmlInterfaces/discussionGroup/"); if not defined (config.mainResponder.urls.discussEditInBrowser) { config.mainResponder.urls.discussEditInBrowser = basediscussurl + "edit/editInBrowser$"}; if not defined (config.mainResponder.urls.discussEditInFrontier) { config.mainResponder.urls.discussEditInFrontier = basediscussurl + "edit/editInFrontier$"}; if not defined (config.mainResponder.urls.discussEnclosureDownloader) { config.mainResponder.urls.discussEnclosureDownloader = basediscussurl + "enclosureDownloader$"}; if not defined (config.mainResponder.urls.discussEnclosureRPCer) { config.mainResponder.urls.discussEnclosureRPCer = basediscussurl + "enclosureRPCer$"}; if not defined (config.mainResponder.urls.discussEnclosureViewer) { config.mainResponder.urls.discussEnclosureViewer = basediscussurl + "raw/messages/"}; if not defined (config.mainResponder.urls.discussGetChangesFromWorkstation) { config.mainResponder.urls.discussGetChangesFromWorkstation = basediscussurl + "edit/getChangesFromWorkstation"}; if not defined (config.mainResponder.urls.discussHomePage) { config.mainResponder.urls.discussHomePage = basediscussurl}; if not defined (config.mainResponder.urls.discussMsgReader) { config.mainResponder.urls.discussMsgReader = basediscussurl + "msgReader$"}; if not defined (config.mainResponder.urls.discussNewThread) { config.mainResponder.urls.discussNewThread = basediscussurl + "edit/newThread$"}; if not defined (config.mainResponder.urls.discussPostEditedMessage) { config.mainResponder.urls.discussPostEditedMessage = basediscussurl + "edit/postEditedMsg"}; if not defined (config.mainResponder.urls.discussPostMessage) { config.mainResponder.urls.discussPostMessage = basediscussurl + "edit/post... [truncated message content] |
|
From: creedon <icr...@us...> - 2006-02-09 02:52:33
|
Update of /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/adminSite/website In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3014 Modified Files: updates Log Message: changes to support mainResponderWebsites.root and sampleMrWs style mainResponder websites Index: updates =================================================================== RCS file: /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/adminSite/website/updates,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** updates 2 Feb 2006 07:43:17 -0000 1.4 --- updates 9 Feb 2006 02:52:23 -0000 1.5 *************** *** 1,3 **** FrontierVcsFile:1:scpt:mainResponder.adminSite.website.updates ! on updates () { ÇChanges Ç2/1/06; 12:43:15 PM by TAC Çattribute values must be quoted, towards XHTML compliance Ç1/28/06; 7:24:10 PM by TAC Çtweaked script formatting Çadded categories for rootUpdates.getPendingUpdatesList call Ç12/24/05; 11:50:35 AM by TAC Çremoved UserLand and Manila references Ç12/16/03; 3:33:02 AM by JES ÇCreated. Display the pending feature updates and bug fixes which have yet to be downloaded. local (pta = html.getPageTableAddress ()); Çscratchpad.pt = pta^ pta^.title = "Pending Updates"; local (htmlText = ""); on add (s) { htmlText = htmlText + (s + "\r");}; bundle { //explanatory text add ("<p>The pending updates page displays features and bug fixes available, which have not yet been installed on this server. To download the recent updates, click the Update Now button.</p>")}; bundle { //update now button and processing add ("<form method=\"post\">"); add ("<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\">" + mainResponder.adminSite.prefs.updateNowButton (false) + "</table><br /><br />"); add ("</form>")}; local (dbsToUpdate = {"Frontier", "mainResponder", "prefs"}); try {rootUpdates.getPendingUpdatesList (@config.mainResponder.stats, mainResponder.data.featureListRssUrl, dbsToUpdate, {"Frontier.root Updates", "mainResponder.root Updates", "prefs.root Updates"})}; add (rootUpdates.listPendingUpdates (@config.mainResponder.stats)); return (htmlText)}; Çbundle // testing Çhtml.setPageTableAddress (@scratchpad.pt) Ç Çupdates () Ç Çhtml.deletePageTableAddress () \ No newline at end of file --- 1,3 ---- FrontierVcsFile:1:scpt:mainResponder.adminSite.website.updates ! on updates () { ÇChanges Ç2/8/06; 6:32:28 PM by TAC Çadded mainResponderWebsites Ç2/1/06; 12:43:15 PM by TAC Çattribute values must be quoted, towards XHTML compliance Ç1/28/06; 7:24:10 PM by TAC Çtweaked script formatting Çadded categories for rootUpdates.getPendingUpdatesList call Ç12/24/05; 11:50:35 AM by TAC Çremoved UserLand and Manila references Ç12/16/03; 3:33:02 AM by JES ÇCreated. Display the pending feature updates and bug fixes which have yet to be downloaded. local (pta = html.getPageTableAddress ()); Çscratchpad.pt = pta^ pta^.title = "Pending Updates"; local (htmlText = ""); on add (s) { htmlText = htmlText + (s + "\r");}; bundle { //explanatory text add ("<p>The pending updates page displays features and bug fixes available, which have not yet been installed on this server. To download the recent updates, click the Update Now button.</p>")}; bundle { //update now button and processing add ("<form method=\"post\">"); add ("<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\">" + mainResponder.adminSite.prefs.updateNowButton (false) + "</table><br /><br />"); add ("</form>")}; local (dbsToUpdate = {"Frontier", "mainResponder", "prefs", "mainResponderWebsites"}); try {rootUpdates.getPendingUpdatesList (@config.mainResponder.stats, mainResponder.data.featureListRssUrl, dbsToUpdate, {"Frontier.root Updates", "mainResponder.root Updates", "prefs.root Updates", "mainResponderWebsites.root Updates"})}; add (rootUpdates.listPendingUpdates (@config.mainResponder.stats)); return (htmlText)}; Çbundle // testing Çhtml.setPageTableAddress (@scratchpad.pt) Ç Çupdates () Ç Çhtml.deletePageTableAddress () \ No newline at end of file |