You can subscribe to this list here.
2003 |
Jan
|
Feb
(160) |
Mar
(119) |
Apr
(111) |
May
(118) |
Jun
(101) |
Jul
(304) |
Aug
(113) |
Sep
(140) |
Oct
(137) |
Nov
(87) |
Dec
(122) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2004 |
Jan
(78) |
Feb
(125) |
Mar
(131) |
Apr
(59) |
May
(121) |
Jun
(166) |
Jul
(150) |
Aug
(137) |
Sep
(73) |
Oct
(58) |
Nov
(27) |
Dec
(60) |
2005 |
Jan
(131) |
Feb
(84) |
Mar
(36) |
Apr
(8) |
May
(28) |
Jun
(20) |
Jul
(10) |
Aug
(72) |
Sep
(76) |
Oct
(34) |
Nov
(3) |
Dec
(29) |
2006 |
Jan
(13) |
Feb
(92) |
Mar
(7) |
Apr
(1) |
May
(1) |
Jun
(2) |
Jul
(4) |
Aug
(17) |
Sep
(5) |
Oct
(2) |
Nov
(8) |
Dec
(12) |
2007 |
Jan
(28) |
Feb
(15) |
Mar
|
Apr
|
May
(8) |
Jun
(4) |
Jul
(5) |
Aug
(8) |
Sep
(20) |
Oct
(38) |
Nov
(65) |
Dec
(92) |
2008 |
Jan
(21) |
Feb
(56) |
Mar
(27) |
Apr
(174) |
May
(25) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Manni H. <man...@us...> - 2005-05-22 11:26:12
|
Update of /cvsroot/popfile/engine/skins/default In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29451/skins/default Modified Files: common-before-configuration.thtml style.css Log Message: Move inline styles of configuration bar title to the style sheet and give title tags to the show/hide config bar links. Index: common-before-configuration.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/common-before-configuration.thtml,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** common-before-configuration.thtml 22 May 2005 10:45:43 -0000 1.5 --- common-before-configuration.thtml 22 May 2005 11:26:03 -0000 1.6 *************** *** 1,15 **** <br /> <TMPL_IF NAME="If_Show_Config_Bars"> ! <span style="border:2px #CCCC99 solid; padding:0.3em; padding-bottom:0; margin-left:0.3em; background:#CCCC99;"> ! <a name="configBar" href="<TMPL_VAR NAME="Configuration_Action">?hide_configbar=1"><b>Config Bar</b></a> ! </span> <TMPL_ELSE> ! <span style="border:2px #CCCC99 solid; padding:0.3em; margin:0.3em; background:#CCCC99;"> ! <a href="<TMPL_VAR NAME="Configuration_Action">?show_configbar=1#configBar"><b>Config Bar</b></a> ! </span> ! <br /> </TMPL_IF> --- 1,14 ---- <br /> + <span class="configBarTitle"> + <TMPL_IF NAME="If_Show_Config_Bars"> ! <a name="configBar" title="<TMPL_VAR NAME="Localize_Configuration_Hide_Bar">" href="<TMPL_VAR NAME="Configuration_Action">?hide_configbar=1"><b>Config Bar</b></a> <TMPL_ELSE> ! <a title="<TMPL_VAR NAME="Localize_Configuration_Show_Bar">" href="<TMPL_VAR NAME="Configuration_Action">?show_configbar=1#configBar"><b>Config Bar</b></a> </TMPL_IF> + + </span> Index: style.css =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/style.css,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** style.css 19 May 2005 22:51:28 -0000 1.16 --- style.css 22 May 2005 11:26:03 -0000 1.17 *************** *** 244,247 **** --- 244,255 ---- /* Config Bars */ + .configBarTitle { + border:2px #CCCC99 solid; + padding:0.3em; + padding-bottom:0; + margin-left:0.3em; + background:#CCCC99; + } + .configBar { background-color: #DFDFAF; |
From: Manni H. <man...@us...> - 2005-05-22 11:19:09
|
Update of /cvsroot/popfile/engine/skins/default In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21004/skins/default Modified Files: advanced-page.thtml Log Message: More accessibility: Use label for the configuration variables. Index: advanced-page.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/advanced-page.thtml,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** advanced-page.thtml 22 May 2005 10:45:43 -0000 1.14 --- advanced-page.thtml 22 May 2005 11:18:49 -0000 1.15 *************** *** 83,86 **** --- 83,87 ---- <tr> <td> + <label for="<TMPL_VAR NAME="Advanced_Parameter">"> <TMPL_IF NAME="Advanced_If_Changed"> <b> *************** *** 90,99 **** </b> </TMPL_IF> </td> <td> <TMPL_IF NAME="Advanced_If_Password"> ! <input type="password" name="parameter_<TMPL_VAR NAME="Advanced_Parameter">" value="<TMPL_VAR NAME="Advanced_Value">"> <TMPL_ELSE> ! <input type="text" name="parameter_<TMPL_VAR NAME="Advanced_Parameter">" value="<TMPL_VAR NAME="Advanced_Value">"> </TMPL_IF> </td> --- 91,101 ---- </b> </TMPL_IF> + </label> </td> <td> <TMPL_IF NAME="Advanced_If_Password"> ! <input type="password" name="parameter_<TMPL_VAR NAME="Advanced_Parameter">" value="<TMPL_VAR NAME="Advanced_Value">" id="<TMPL_VAR NAME="Advanced_Parameter">"> <TMPL_ELSE> ! <input type="text" name="parameter_<TMPL_VAR NAME="Advanced_Parameter">" value="<TMPL_VAR NAME="Advanced_Value">" id="<TMPL_VAR NAME="Advanced_Parameter">"> </TMPL_IF> </td> |
From: Manni H. <man...@us...> - 2005-05-22 11:14:00
|
Update of /cvsroot/popfile/engine/skins/default In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20089/skins/default Modified Files: nntp-force-fork.thtml nntp-port.thtml nntp-separator.thtml pop3-chain-panel.thtml pop3-configuration-panel.thtml smtp-chain-server-port.thtml smtp-chain-server.thtml smtp-configuration.thtml socks-widget.thtml windows-configuration.thtml xmlrpc-port.thtml Log Message: Accessibility: use labels and corresponding ids for widgets. ids are now unique. Index: pop3-configuration-panel.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/pop3-configuration-panel.thtml,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** pop3-configuration-panel.thtml 20 Feb 2005 10:05:57 -0000 1.9 --- pop3-configuration-panel.thtml 22 May 2005 11:13:50 -0000 1.10 *************** *** 9,23 **** <form action="<TMPL_VAR NAME="Configuration_Action">" method="post"> ! <label class="configurationLabel" for="configSeparator"> <TMPL_VAR NAME="Localize_Configuration_POP3Separator">: </label> <br /> ! <input name="pop3_separator" id="configSeparator" type="text" value="<TMPL_VAR NAME="POP3_Configuration_Separator">" /> <input type="submit" class="submit" name="update_pop3_separator" value="<TMPL_VAR NAME="Localize_Apply">" /> </form> ! <span class="configurationLabel"> <TMPL_VAR NAME="Localize_Configuration_POPFork">: ! </span> <br /> <table border="0" cellpadding="0" cellspacing="0" summary=""> --- 9,23 ---- <form action="<TMPL_VAR NAME="Configuration_Action">" method="post"> ! <label class="configurationLabel" for="configPopSeparator"> <TMPL_VAR NAME="Localize_Configuration_POP3Separator">: </label> <br /> ! <input name="pop3_separator" id="configPopSeparator" type="text" value="<TMPL_VAR NAME="POP3_Configuration_Separator">" /> <input type="submit" class="submit" name="update_pop3_separator" value="<TMPL_VAR NAME="Localize_Apply">" /> </form> ! <label class="configurationLabel" for="pop3forceFork"> <TMPL_VAR NAME="Localize_Configuration_POPFork">: ! </label> <br /> <table border="0" cellpadding="0" cellspacing="0" summary=""> *************** *** 31,35 **** <TMPL_VAR NAME="Localize_No"> </span> ! <input type="submit" class="submit toggleOn" id="windowTrayIconOn" name="toggle" value="<TMPL_VAR NAME="Localize_ChangeToYes">" /> <input type="hidden" name="pop3_force_fork" value="1" /> </form> --- 31,35 ---- <TMPL_VAR NAME="Localize_No"> </span> ! <input type="submit" class="submit toggleOn" id="pop3forceFork" name="toggle" value="<TMPL_VAR NAME="Localize_ChangeToYes">" /> <input type="hidden" name="pop3_force_fork" value="1" /> </form> *************** *** 41,45 **** <TMPL_VAR NAME="Localize_Yes"> </span> ! <input type="submit" class="submit toggleOff" id="windowTrayIconOff" name="toggle" value="<TMPL_VAR NAME="Localize_ChangeToNo">" /> <input type="hidden" name="pop3_force_fork" value="0" /> </form> --- 41,45 ---- <TMPL_VAR NAME="Localize_Yes"> </span> ! <input type="submit" class="submit toggleOff" id="pop3forceFork" name="toggle" value="<TMPL_VAR NAME="Localize_ChangeToNo">" /> <input type="hidden" name="pop3_force_fork" value="0" /> </form> Index: socks-widget.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/socks-widget.thtml,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** socks-widget.thtml 20 Feb 2005 10:05:57 -0000 1.7 --- socks-widget.thtml 22 May 2005 11:13:50 -0000 1.8 *************** *** 1,17 **** <form action="<TMPL_VAR NAME="Configuration_Action">" method="post"> ! <label class="configurationLabel" for="SOCKSServer"> <TMPL_VAR NAME="Localize_Configuration_SOCKSServer">: </label> <br /> ! <input type="text" name="<TMPL_VAR NAME="Socks_Widget_Name">_socks_server" id="SOCKSServer" value="<TMPL_VAR NAME="Socks_Server">" /> <input type="submit" class="submit" name="update_<TMPL_VAR NAME="Socks_Widget_Name">_socks_server" value="<TMPL_VAR NAME="Localize_Apply">" /> </form> <form action="<TMPL_VAR NAME="Configuration_Action">" method="post"> ! <label class="configurationLabel" for="configSOCKSPort"> <TMPL_VAR NAME="Localize_Configuration_SOCKSPort">: </label> <br /> ! <input name="<TMPL_VAR NAME="Socks_Widget_Name">_socks_port" type="text" id="configSOCKSPort" value="<TMPL_VAR NAME="Socks_Port">" /> <input type="submit" class="submit" name="update_<TMPL_VAR NAME="Socks_Widget_Name">_socks_port" value="<TMPL_VAR NAME="Localize_Apply">" /> </form> --- 1,17 ---- <form action="<TMPL_VAR NAME="Configuration_Action">" method="post"> ! <label class="configurationLabel" for="<TMPL_VAR NAME="Socks_Widget_Name">SOCKSServer"> <TMPL_VAR NAME="Localize_Configuration_SOCKSServer">: </label> <br /> ! <input type="text" name="<TMPL_VAR NAME="Socks_Widget_Name">_socks_server" id="<TMPL_VAR NAME="Socks_Widget_Name">SOCKSServer" value="<TMPL_VAR NAME="Socks_Server">" /> <input type="submit" class="submit" name="update_<TMPL_VAR NAME="Socks_Widget_Name">_socks_server" value="<TMPL_VAR NAME="Localize_Apply">" /> </form> <form action="<TMPL_VAR NAME="Configuration_Action">" method="post"> ! <label class="configurationLabel" for="<TMPL_VAR NAME="Socks_Widget_Name">configSOCKSPort"> <TMPL_VAR NAME="Localize_Configuration_SOCKSPort">: </label> <br /> ! <input name="<TMPL_VAR NAME="Socks_Widget_Name">_socks_port" type="text" id="<TMPL_VAR NAME="Socks_Widget_Name">configSOCKSPort" value="<TMPL_VAR NAME="Socks_Port">" /> <input type="submit" class="submit" name="update_<TMPL_VAR NAME="Socks_Widget_Name">_socks_port" value="<TMPL_VAR NAME="Localize_Apply">" /> </form> Index: nntp-port.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/nntp-port.thtml,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** nntp-port.thtml 25 Feb 2005 21:53:51 -0000 1.3 --- nntp-port.thtml 22 May 2005 11:13:50 -0000 1.4 *************** *** 1,8 **** <form action="/administration" method="post"> ! <label class="configurationLabel" for="configPopPort"> <TMPL_VAR NAME="Localize_Configuration_NNTPPort">: </label> <br /> ! <input name="nntp_port" type="text" id="configPopPort" value="<TMPL_VAR NAME="nntp_port">" /> <input type="submit" class="submit" name="update_nntp_port" value="<TMPL_VAR NAME="Localize_Apply">" /> </form> --- 1,8 ---- <form action="/administration" method="post"> ! <label class="configurationLabel" for="configNNTPPort"> <TMPL_VAR NAME="Localize_Configuration_NNTPPort">: </label> <br /> ! <input name="nntp_port" type="text" id="configNNTPPort" value="<TMPL_VAR NAME="nntp_port">" /> <input type="submit" class="submit" name="update_nntp_port" value="<TMPL_VAR NAME="Localize_Apply">" /> </form> Index: nntp-separator.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/nntp-separator.thtml,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** nntp-separator.thtml 25 Feb 2005 21:53:51 -0000 1.4 --- nntp-separator.thtml 22 May 2005 11:13:50 -0000 1.5 *************** *** 1,8 **** <form action="<TMPL_VAR NAME="Configuration_Action">" method="post"> ! <label class="configurationLabel" for="configSeparator"> <TMPL_VAR NAME="Localize_Configuration_NNTPSeparator">: </label> <br /> ! <input name="nntp_separator" id="configSeparator" type="text" value="<TMPL_VAR NAME="nntp_separator">" /> <input type="submit" class="submit" name="update_nntp_separator" value="<TMPL_VAR NAME="Localize_Apply">" /> </form> --- 1,8 ---- <form action="<TMPL_VAR NAME="Configuration_Action">" method="post"> ! <label class="configurationLabel" for="configNntpSeparator"> <TMPL_VAR NAME="Localize_Configuration_NNTPSeparator">: </label> <br /> ! <input name="nntp_separator" id="configNntpSeparator" type="text" value="<TMPL_VAR NAME="nntp_separator">" /> <input type="submit" class="submit" name="update_nntp_separator" value="<TMPL_VAR NAME="Localize_Apply">" /> </form> Index: xmlrpc-port.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/xmlrpc-port.thtml,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** xmlrpc-port.thtml 25 Feb 2005 21:53:51 -0000 1.6 --- xmlrpc-port.thtml 22 May 2005 11:13:50 -0000 1.7 *************** *** 1,8 **** <form action="<TMPL_VAR NAME="Configuration_Action">" method="post"> ! <label class="configurationLabel" for="configPopPort"> <TMPL_VAR NAME="Localize_Configuration_XMLRPCPort">: </label> <br /> ! <input name="xmlrpc_port" type="text" id="configPopPort" value="<TMPL_VAR NAME="XMLRPC_Port">" /> <input type="submit" class="submit" name="update_xmlrpc_port" value="<TMPL_VAR NAME="Localize_Apply">" /> </form> --- 1,8 ---- <form action="<TMPL_VAR NAME="Configuration_Action">" method="post"> ! <label class="configurationLabel" for="configXMLRPCPort"> <TMPL_VAR NAME="Localize_Configuration_XMLRPCPort">: </label> <br /> ! <input name="xmlrpc_port" type="text" id="configXMLRPCPort" value="<TMPL_VAR NAME="XMLRPC_Port">" /> <input type="submit" class="submit" name="update_xmlrpc_port" value="<TMPL_VAR NAME="Localize_Apply">" /> </form> Index: pop3-chain-panel.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/pop3-chain-panel.thtml,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** pop3-chain-panel.thtml 20 Feb 2005 10:05:57 -0000 1.7 --- pop3-chain-panel.thtml 22 May 2005 11:13:50 -0000 1.8 *************** *** 1,17 **** <form action="<TMPL_VAR NAME="Configuration_Action">" method="post"> ! <label class="securityLabel" for="securitySecureServer"> <TMPL_VAR NAME="Localize_Security_SecureServer">: </label> <br /> ! <input type="text" name="server" id="securitySecureServer" value="<TMPL_VAR NAME="POP3_Chain_Secure_Server">" /> <input type="submit" class="submit" name="update_server" value="<TMPL_VAR NAME="Localize_Apply">" /> </form> <form action="<TMPL_VAR NAME="Configuration_Action">" method="post"> ! <label class="securityLabel" for="securitySecurePort"> <TMPL_VAR NAME="Localize_Security_SecurePort">: </label> <br /> ! <input type="text" name="sport" id="securitySecurePort" value="<TMPL_VAR NAME="POP3_Chain_Secure_Port">" /> <input type="submit" class="submit" name="update_sport" value="<TMPL_VAR NAME="Localize_Apply">" /> </form> \ No newline at end of file --- 1,17 ---- <form action="<TMPL_VAR NAME="Configuration_Action">" method="post"> ! <label class="securityLabel" for="securitySecurePOP3Server"> <TMPL_VAR NAME="Localize_Security_SecureServer">: </label> <br /> ! <input type="text" name="server" id="securitySecurePOP3Server" value="<TMPL_VAR NAME="POP3_Chain_Secure_Server">" /> <input type="submit" class="submit" name="update_server" value="<TMPL_VAR NAME="Localize_Apply">" /> </form> <form action="<TMPL_VAR NAME="Configuration_Action">" method="post"> ! <label class="securityLabel" for="securitySecurePOP3Port"> <TMPL_VAR NAME="Localize_Security_SecurePort">: </label> <br /> ! <input type="text" name="sport" id="securitySecurePOP3Port" value="<TMPL_VAR NAME="POP3_Chain_Secure_Port">" /> <input type="submit" class="submit" name="update_sport" value="<TMPL_VAR NAME="Localize_Apply">" /> </form> \ No newline at end of file Index: smtp-chain-server.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/smtp-chain-server.thtml,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** smtp-chain-server.thtml 25 Feb 2005 21:53:51 -0000 1.4 --- smtp-chain-server.thtml 22 May 2005 11:13:50 -0000 1.5 *************** *** 1,8 **** <form action="<TMPL_VAR NAME="Configuration_Action">" method="post"> ! <label class="securityLabel" for="securitySecureServer"> <TMPL_VAR NAME="Localize_Security_SMTPServer">: </label> <br /> ! <input type="text" name="smtp_chain_server" id="securitySecureServer" value="<TMPL_VAR NAME="smtp_chain_server">" /> <input type="submit" class="submit" name="update_smtp_server" value="<TMPL_VAR NAME="Localize_Apply">" /> </form> --- 1,8 ---- <form action="<TMPL_VAR NAME="Configuration_Action">" method="post"> ! <label class="securityLabel" for="securitySecureSMTPServer"> <TMPL_VAR NAME="Localize_Security_SMTPServer">: </label> <br /> ! <input type="text" name="smtp_chain_server" id="securitySecureSMTPServer" value="<TMPL_VAR NAME="smtp_chain_server">" /> <input type="submit" class="submit" name="update_smtp_server" value="<TMPL_VAR NAME="Localize_Apply">" /> </form> Index: nntp-force-fork.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/nntp-force-fork.thtml,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** nntp-force-fork.thtml 15 Feb 2005 04:23:54 -0000 1.4 --- nntp-force-fork.thtml 22 May 2005 11:13:50 -0000 1.5 *************** *** 1,5 **** ! <span class="configurationLabel"> <TMPL_VAR NAME="Localize_Configuration_NNTPFork">: ! </span> <br /> <table border="0" cellpadding="0" cellspacing="0" summary=""> --- 1,5 ---- ! <label class="configurationLabel" for="nntpForceFork"> <TMPL_VAR NAME="Localize_Configuration_NNTPFork">: ! </label> <br /> <table border="0" cellpadding="0" cellspacing="0" summary=""> *************** *** 13,17 **** <TMPL_VAR NAME="Localize_Yes"> </span> ! <input type="submit" class="toggleOff" id="windowTrayIconOff" name="toggle" value="<TMPL_VAR NAME="Localize_ChangeToNo">" /> <input type="hidden" name="nntp_force_fork" value="0" /> --- 13,17 ---- <TMPL_VAR NAME="Localize_Yes"> </span> ! <input type="submit" class="toggleOff" id="nntpForceFork" name="toggle" value="<TMPL_VAR NAME="Localize_ChangeToNo">" /> <input type="hidden" name="nntp_force_fork" value="0" /> *************** *** 21,25 **** <TMPL_VAR NAME="Localize_No"> </span> ! <input type="submit" class="toggleOn" id="windowTrayIconOn" name="toggle" value="<TMPL_VAR NAME="Localize_ChangeToYes">" /> <input type="hidden" name="nntp_force_fork" value="1" /> --- 21,25 ---- <TMPL_VAR NAME="Localize_No"> </span> ! <input type="submit" class="toggleOn" id="nntpForceFork" name="toggle" value="<TMPL_VAR NAME="Localize_ChangeToYes">" /> <input type="hidden" name="nntp_force_fork" value="1" /> Index: smtp-configuration.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/smtp-configuration.thtml,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** smtp-configuration.thtml 25 Feb 2005 21:53:51 -0000 1.6 --- smtp-configuration.thtml 22 May 2005 11:13:50 -0000 1.7 *************** *** 1,5 **** ! <span class="configurationLabel"> <TMPL_VAR NAME="Localize_Configuration_SMTPFork">: ! </span> <br /> <table border="0" cellpadding="0" cellspacing="0" summary=""> --- 1,5 ---- ! <label class="configurationLabel" for="smtpForceFork"> <TMPL_VAR NAME="Localize_Configuration_SMTPFork">: ! </label> <br /> <table border="0" cellpadding="0" cellspacing="0" summary=""> *************** *** 12,16 **** <TMPL_VAR NAME="Localize_Yes"> </span> ! <input type="submit" class="toggleOff" id="windowTrayIconOff" name="toggle" value="<TMPL_VAR NAME="Localize_ChangeToNo">" /> <input type="hidden" name="smtp_force_fork" value="0" /> --- 12,16 ---- <TMPL_VAR NAME="Localize_Yes"> </span> ! <input type="submit" class="toggleOff" id="smtpForceFork" name="toggle" value="<TMPL_VAR NAME="Localize_ChangeToNo">" /> <input type="hidden" name="smtp_force_fork" value="0" /> *************** *** 20,24 **** <TMPL_VAR NAME="Localize_No"> </span> ! <input type="submit" class="toggleOn" id="windowTrayIconOn" name="toggle" value="<TMPL_VAR NAME="Localize_ChangeToYes">" /> <input type="hidden" name="smtp_force_fork" value="1" /> --- 20,24 ---- <TMPL_VAR NAME="Localize_No"> </span> ! <input type="submit" class="toggleOn" id="smtpForceFork" name="toggle" value="<TMPL_VAR NAME="Localize_ChangeToYes">" /> <input type="hidden" name="smtp_force_fork" value="1" /> *************** *** 30,43 **** </table> <br /> ! <span class="configurationLabel"> <TMPL_VAR NAME="Localize_Configuration_SMTPPort">: ! </span> <table border="0" cellpadding="0" cellspacing="0" summary=""> <tr> <td> <form action="<TMPL_VAR NAME="Configuration_Action">" method="post"> ! <input name="smtp_port" type="text" id="configPopPort" value="<TMPL_VAR NAME="smtp_port">" /> <input type="submit" class="submit" name="update_smtp_port" value="<TMPL_VAR NAME="Localize_Apply">" /> - </form> </td> --- 30,42 ---- </table> <br /> ! <label class="configurationLabel" for="configSMTPPort"> <TMPL_VAR NAME="Localize_Configuration_SMTPPort">: ! </label> <table border="0" cellpadding="0" cellspacing="0" summary=""> <tr> <td> <form action="<TMPL_VAR NAME="Configuration_Action">" method="post"> ! <input name="smtp_port" type="text" id="configSMTPPort" value="<TMPL_VAR NAME="smtp_port">" /> <input type="submit" class="submit" name="update_smtp_port" value="<TMPL_VAR NAME="Localize_Apply">" /> </form> </td> Index: smtp-chain-server-port.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/smtp-chain-server-port.thtml,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** smtp-chain-server-port.thtml 25 Feb 2005 21:53:51 -0000 1.4 --- smtp-chain-server-port.thtml 22 May 2005 11:13:50 -0000 1.5 *************** *** 1,8 **** <form action="<TMPL_VAR NAME="Configuration_Action">" method="post"> ! <label class="securityLabel" for="securitySecurePort"> <TMPL_VAR NAME="Localize_Security_SMTPPort">: </label> <br /> ! <input type="text" name="smtp_chain_server_port" id="securitySecurePort" value="<TMPL_VAR NAME="smtp_chain_port">" /> <input type="submit" class="submit" name="update_smtp_server_port" value="<TMPL_VAR NAME="Localize_Apply">" /> </form> --- 1,8 ---- <form action="<TMPL_VAR NAME="Configuration_Action">" method="post"> ! <label class="securityLabel" for="securitySecureSMTPPort"> <TMPL_VAR NAME="Localize_Security_SMTPPort">: </label> <br /> ! <input type="text" name="smtp_chain_server_port" id="securitySecureSMTPPort" value="<TMPL_VAR NAME="smtp_chain_port">" /> <input type="submit" class="submit" name="update_smtp_server_port" value="<TMPL_VAR NAME="Localize_Apply">" /> </form> Index: windows-configuration.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/windows-configuration.thtml,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** windows-configuration.thtml 16 Mar 2005 21:57:57 -0000 1.5 --- windows-configuration.thtml 22 May 2005 11:13:50 -0000 1.6 *************** *** 12,16 **** <TMPL_VAR NAME="Localize_Yes"> </span> ! <input id="windows_console" type="submit" class="submit toggleOff" id="windowConsoleOff" name="toggle" value="<TMPL_VAR NAME="Localize_ChangeToNo">" /> <input type="hidden" name="windows_console" value="0" /> --- 12,16 ---- <TMPL_VAR NAME="Localize_Yes"> </span> ! <input id="windows_console" type="submit" class="submit toggleOff" name="toggle" value="<TMPL_VAR NAME="Localize_ChangeToNo">" /> <input type="hidden" name="windows_console" value="0" /> *************** *** 20,24 **** <TMPL_VAR NAME="Localize_No"> </span> ! <input id="windows_console" type="submit" class="submit toggleOn" id="windowConsoleOn" name="toggle" value="<TMPL_VAR NAME="Localize_ChangeToYes">" /> <input type="hidden" name="windows_console" value="1" /> --- 20,24 ---- <TMPL_VAR NAME="Localize_No"> </span> ! <input id="windows_console" type="submit" class="submit toggleOn" name="toggle" value="<TMPL_VAR NAME="Localize_ChangeToYes">" /> <input type="hidden" name="windows_console" value="1" /> *************** *** 44,48 **** <TMPL_VAR NAME="Localize_Yes"> </span> ! <input id="windows_trayicon" type="submit" class="submit toggleOff" id="windowTrayIconOff" name="toggle" value="<TMPL_VAR NAME="Localize_ChangeToNo">" /> <input type="hidden" name="windows_trayicon" value="0" /> --- 44,48 ---- <TMPL_VAR NAME="Localize_Yes"> </span> ! <input id="windows_trayicon" type="submit" class="submit toggleOff" name="toggle" value="<TMPL_VAR NAME="Localize_ChangeToNo">" /> <input type="hidden" name="windows_trayicon" value="0" /> *************** *** 52,56 **** <TMPL_VAR NAME="Localize_No"> </span> ! <input id="windows_trayicon" type="submit" class="submit toggleOn" id="windowTrayIconOn" name="toggle" value="<TMPL_VAR NAME="Localize_ChangeToYes">" /> <input type="hidden" name="windows_trayicon" value="1" /> --- 52,56 ---- <TMPL_VAR NAME="Localize_No"> </span> ! <input id="windows_trayicon" type="submit" class="submit toggleOn" name="toggle" value="<TMPL_VAR NAME="Localize_ChangeToYes">" /> <input type="hidden" name="windows_trayicon" value="1" /> |
Update of /cvsroot/popfile/engine/skins/default In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15367/skins/default Modified Files: administration-page.thtml advanced-page.thtml bucket-page.thtml common-after-configuration.thtml common-before-configuration.thtml common-bottom.thtml configuration-bar.thtml corpus-page.thtml history-page.thtml magnet-page.thtml password-page.thtml session-page.thtml shutdown-page.thtml users-page.thtml Log Message: * HTML.pm: make handling of the config bar a little smarter. It now sets a template variable that decides whether the history bar also gets included. Should any other tabs also get a dedicated bar, config-bar.thtml must be changed to include another if statement and the new template; HTML::handle_configuration_bar() must be changed to set the new if variable. * HTML.pm: remove some tab characters * configuration-bar.thtml: Include the opening and closing form tag * configuration-bar.thtml: Include common-before-configuration.thtml and common-after-configuration.html directly from here. * common-after-configuration.thml and common-bottom.html: move the closing table tags to the latter because the table tags were opened in common-middle.thtml and thus should be closed in common-bottom. * xy-page.thml: adapt to the changes in the config bar template and simply include the that template from here. Next step (possibly): Get rid of common-before-configuration and common-after-configuration. Index: common-before-configuration.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/common-before-configuration.thtml,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** common-before-configuration.thtml 19 May 2005 22:51:28 -0000 1.4 --- common-before-configuration.thtml 22 May 2005 10:45:43 -0000 1.5 *************** *** 1 **** --- 1,15 ---- + <br /> + <TMPL_IF NAME="If_Show_Config_Bars"> + + <span style="border:2px #CCCC99 solid; padding:0.3em; padding-bottom:0; margin-left:0.3em; background:#CCCC99;"> + <a name="configBar" href="<TMPL_VAR NAME="Configuration_Action">?hide_configbar=1"><b>Config Bar</b></a> + </span> + + <TMPL_ELSE> + <span style="border:2px #CCCC99 solid; padding:0.3em; margin:0.3em; background:#CCCC99;"> + <a href="<TMPL_VAR NAME="Configuration_Action">?show_configbar=1#configBar"><b>Config Bar</b></a> + </span> + <br /> + + </TMPL_IF> Index: history-page.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/history-page.thtml,v retrieving revision 1.59 retrieving revision 1.60 diff -C2 -d -r1.59 -r1.60 *** history-page.thtml 22 May 2005 09:12:12 -0000 1.59 --- history-page.thtml 22 May 2005 10:45:43 -0000 1.60 *************** *** 296,337 **** </tr> </table> ! <br /> </TMPL_IF> <!-- if some messages --> <TMPL_INCLUDE NAME="history-javascript.thtml"> ! ! <!--<TMPL_INCLUDE NAME="common-before-configuration.thtml">--> ! ! <TMPL_IF NAME="If_Show_Config_Bars"> ! ! <span style="border:2px #CCCC99 solid; padding:0.3em; padding-bottom:0; margin-left:0.3em; background:#CCCC99;"> ! <a name="configBar" href="<TMPL_VAR NAME="Configuration_Action">?hide_configbar=1"><b>Config Bar</b></a> ! </span> ! ! <table class="configBar" cellspacing="0" width="100%"> ! <tr> ! <td> ! <form action="<TMPL_VAR NAME="Configuration_Action">" method="post"> ! <TMPL_INCLUDE NAME="history-bar.thtml"> ! </form> ! </td> ! </tr> ! <tr> ! <td> ! <form action="<TMPL_VAR NAME="Configuration_Action">" method="post"> ! <TMPL_INCLUDE NAME="configuration-bar.thtml"> ! </form> ! </td> ! </tr> ! </table> ! ! <TMPL_ELSE> ! ! <span style="border:2px #CCCC99 solid; padding:0.3em; margin:0.3em; background:#CCCC99;"> ! <a href="<TMPL_VAR NAME="Configuration_Action">?show_configbar=1#configBar"><b>Config Bar</b></a> ! </span> ! <br /> ! </TMPL_IF> ! ! <TMPL_INCLUDE NAME="common-after-configuration.thtml"> <TMPL_INCLUDE NAME="common-bottom.thtml"> --- 296,303 ---- </tr> </table> ! </TMPL_IF> <!-- if some messages --> <TMPL_INCLUDE NAME="history-javascript.thtml"> ! <TMPL_INCLUDE NAME="configuration-bar.thtml"> <TMPL_INCLUDE NAME="common-bottom.thtml"> Index: users-page.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/users-page.thtml,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** users-page.thtml 7 Apr 2005 19:55:09 -0000 1.3 --- users-page.thtml 22 May 2005 10:45:43 -0000 1.4 *************** *** 178,183 **** </TMPL_IF> - <TMPL_INCLUDE NAME="common-before-configuration.thtml"> <TMPL_INCLUDE NAME="configuration-bar.thtml"> - <TMPL_INCLUDE NAME="common-after-configuration.thtml"> <TMPL_INCLUDE NAME="common-bottom.thtml"> --- 178,181 ---- Index: administration-page.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/administration-page.thtml,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** administration-page.thtml 20 Feb 2005 10:05:57 -0000 1.6 --- administration-page.thtml 22 May 2005 10:45:43 -0000 1.7 *************** *** 167,172 **** </tr> </table> - <TMPL_INCLUDE NAME="common-before-configuration.thtml"> <TMPL_INCLUDE NAME="configuration-bar.thtml"> - <TMPL_INCLUDE NAME="common-after-configuration.thtml"> <TMPL_INCLUDE NAME="common-bottom.thtml"> --- 167,170 ---- Index: common-bottom.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/common-bottom.thtml,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** common-bottom.thtml 15 Feb 2005 04:23:54 -0000 1.12 --- common-bottom.thtml 22 May 2005 10:45:43 -0000 1.13 *************** *** 1,2 **** --- 1,12 ---- + </td> + <td class="shellRight"></td> + </tr> + <tr class="shellBottomRow"> + <td class="shellBottomLeft"></td> + <td class="shellBottomCenter"></td> + <td class="shellBottomRight"></td> + </tr> + </table> + <TMPL_IF NAME="Header_If_Password"> <TMPL_ELSE> Index: advanced-page.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/advanced-page.thtml,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** advanced-page.thtml 15 Feb 2005 04:23:54 -0000 1.13 --- advanced-page.thtml 22 May 2005 10:45:43 -0000 1.14 *************** *** 111,116 **** </table> - <TMPL_INCLUDE NAME="common-before-configuration.thtml"> <TMPL_INCLUDE NAME="configuration-bar.thtml"> - <TMPL_INCLUDE NAME="common-after-configuration.thtml"> <TMPL_INCLUDE NAME="common-bottom.thtml"> --- 111,114 ---- Index: configuration-bar.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/configuration-bar.thtml,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** configuration-bar.thtml 19 May 2005 22:51:28 -0000 1.11 --- configuration-bar.thtml 22 May 2005 10:45:43 -0000 1.12 *************** *** 1,2 **** --- 1,23 ---- + <TMPL_INCLUDE NAME="common-before-configuration.thtml"> + + <TMPL_IF NAME="If_Show_Config_Bars"> + + <table class="configBar" cellspacing="0" width="100%"> + + <TMPL_IF NAME="Is_history_page"> + + <tr> + <td> + <form action="<TMPL_VAR NAME="Configuration_Action">" method="post"> + <TMPL_INCLUDE NAME="history-bar.thtml"> + </form> + </td> + </tr> + + </TMPL_IF> + + <tr> + <td> + <form action="<TMPL_VAR NAME="Configuration_Action">" method="post"> <div class="configBarOption"> <label class="configurationLabel" for="configSkin"> *************** *** 63,64 **** --- 84,94 ---- <input type="submit" class="submit" name="change_language" value="<TMPL_VAR NAME="Localize_Apply">" /> </div> + + </form> + </td> + </tr> + </table> + + </TMPL_IF> + + <TMPL_INCLUDE NAME="common-after-configuration.thtml"> Index: magnet-page.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/magnet-page.thtml,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** magnet-page.thtml 15 Feb 2005 04:23:54 -0000 1.10 --- magnet-page.thtml 22 May 2005 10:45:43 -0000 1.11 *************** *** 160,165 **** </div> - <TMPL_INCLUDE NAME="common-before-configuration.thtml"> <TMPL_INCLUDE NAME="configuration-bar.thtml"> - <TMPL_INCLUDE NAME="common-after-configuration.thtml"> <TMPL_INCLUDE NAME="common-bottom.thtml"> --- 160,163 ---- Index: bucket-page.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/bucket-page.thtml,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** bucket-page.thtml 15 Feb 2005 04:23:54 -0000 1.10 --- bucket-page.thtml 22 May 2005 10:45:43 -0000 1.11 *************** *** 145,150 **** </TMPL_IF> - <TMPL_INCLUDE NAME="common-before-configuration.thtml"> <TMPL_INCLUDE NAME="configuration-bar.thtml"> - <TMPL_INCLUDE NAME="common-after-configuration.thtml"> <TMPL_INCLUDE NAME="common-bottom.thtml"> --- 145,148 ---- Index: session-page.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/session-page.thtml,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** session-page.thtml 14 Jan 2005 20:43:19 -0000 1.3 --- session-page.thtml 22 May 2005 10:45:43 -0000 1.4 *************** *** 4,8 **** <h2 class="session"><TMPL_VAR NAME="Localize_Session_Title"></h2><br /><br /><TMPL_VAR NAME="Localize_Session_Error"> - <TMPL_INCLUDE NAME="common-before-configuration.thtml"> - <TMPL_INCLUDE NAME="common-after-configuration.thtml"> <TMPL_INCLUDE NAME="common-bottom.thtml"> --- 4,6 ---- Index: shutdown-page.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/shutdown-page.thtml,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** shutdown-page.thtml 14 Jan 2005 20:43:19 -0000 1.2 --- shutdown-page.thtml 22 May 2005 10:45:43 -0000 1.3 *************** *** 4,8 **** <h2><TMPL_VAR NAME="Localize_Shutdown_Message"></h2> - <TMPL_INCLUDE NAME="common-before-configuration.thtml"> - <TMPL_INCLUDE NAME="common-after-configuration.thtml"> - <TMPL_INCLUDE NAME="common-bottom.thtml"> --- 4,5 ---- Index: password-page.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/password-page.thtml,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** password-page.thtml 22 May 2005 09:37:06 -0000 1.9 --- password-page.thtml 22 May 2005 10:45:43 -0000 1.10 *************** *** 30,33 **** </script> - <TMPL_INCLUDE NAME="common-after-configuration.thtml"> <TMPL_INCLUDE NAME="common-bottom.thtml"> --- 30,32 ---- Index: corpus-page.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/corpus-page.thtml,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** corpus-page.thtml 15 Feb 2005 04:23:54 -0000 1.18 --- corpus-page.thtml 22 May 2005 10:45:43 -0000 1.19 *************** *** 544,549 **** </table> - <TMPL_INCLUDE NAME="common-before-configuration.thtml"> <TMPL_INCLUDE NAME="configuration-bar.thtml"> - <TMPL_INCLUDE NAME="common-after-configuration.thtml"> <TMPL_INCLUDE NAME="common-bottom.thtml"> --- 544,547 ---- Index: common-after-configuration.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/common-after-configuration.thtml,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** common-after-configuration.thtml 19 May 2005 22:51:28 -0000 1.3 --- common-after-configuration.thtml 22 May 2005 10:45:43 -0000 1.4 *************** *** 1,9 **** - </td> - <td class="shellRight"></td> - </tr> - <tr class="shellBottomRow"> - <td class="shellBottomLeft"></td> - <td class="shellBottomCenter"></td> - <td class="shellBottomRight"></td> - </tr> - </table> --- 0 ---- |
From: Manni H. <man...@us...> - 2005-05-22 10:45:52
|
Update of /cvsroot/popfile/engine/UI In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15367/UI Modified Files: HTML.pm Log Message: * HTML.pm: make handling of the config bar a little smarter. It now sets a template variable that decides whether the history bar also gets included. Should any other tabs also get a dedicated bar, config-bar.thtml must be changed to include another if statement and the new template; HTML::handle_configuration_bar() must be changed to set the new if variable. * HTML.pm: remove some tab characters * configuration-bar.thtml: Include the opening and closing form tag * configuration-bar.thtml: Include common-before-configuration.thtml and common-after-configuration.html directly from here. * common-after-configuration.thml and common-bottom.html: move the closing table tags to the latter because the table tags were opened in common-middle.thtml and thus should be closed in common-bottom. * xy-page.thml: adapt to the changes in the config bar template and simply include the that template from here. Next step (possibly): Get rid of common-before-configuration and common-after-configuration. Index: HTML.pm =================================================================== RCS file: /cvsroot/popfile/engine/UI/HTML.pm,v retrieving revision 1.350 retrieving revision 1.351 diff -C2 -d -r1.350 -r1.351 *** HTML.pm 20 May 2005 23:25:36 -0000 1.350 --- HTML.pm 22 May 2005 10:45:35 -0000 1.351 *************** *** 620,626 **** if ( !defined( $session ) ) { ! my $continue; ($session, $continue) = $self->password_page( $client, $url ); ! $continue = '/' unless defined( $continue ); if ( defined( $session ) ) { $self->http_redirect_( $client, $continue , $session ); --- 620,626 ---- if ( !defined( $session ) ) { ! my $continue; ($session, $continue) = $self->password_page( $client, $url ); ! $continue = '/' unless defined( $continue ); if ( defined( $session ) ) { $self->http_redirect_( $client, $continue , $session ); *************** *** 1073,1076 **** --- 1073,1081 ---- } $templ->param( 'Configuration_Loop_Languages' => \@language_loop ); + + # If the configuration bar was included by the history page, let it also include the + # history bar + + $templ->param( 'Is_history_page' => ( $template eq 'history-page.thtml' ? 1 : 0 ) ); if ( defined($self->{form_}{hide_configbar}) ) { *************** *** 3274,3278 **** # # $client The web browser to send the results to ! # $url The higher level page the password prompt is to be embedded in # # Returns undef if login failed, or a session key value if it succeeded --- 3279,3283 ---- # # $client The web browser to send the results to ! # $url The higher level page the password prompt is to be embedded in # # Returns undef if login failed, or a session key value if it succeeded |
From: Manni H. <man...@us...> - 2005-05-22 09:37:15
|
Update of /cvsroot/popfile/engine/skins/default In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2669/skins/default Modified Files: common-javascript.thtml history-javascript.thtml password-page.thtml Log Message: Remove deprecated 'language' attribute from script tags in favor of the 'type' attribute. Index: password-page.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/password-page.thtml,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** password-page.thtml 21 May 2005 01:20:13 -0000 1.8 --- password-page.thtml 22 May 2005 09:37:06 -0000 1.9 *************** *** 22,26 **** </form> ! <script type="text/javascript" language="javascript"> <!-- function OnLoadHandler() { // redefine default OnLoadHandler --- 22,26 ---- </form> ! <script type="text/javascript"> <!-- function OnLoadHandler() { // redefine default OnLoadHandler Index: history-javascript.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/history-javascript.thtml,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** history-javascript.thtml 22 May 2005 09:12:12 -0000 1.5 --- history-javascript.thtml 22 May 2005 09:37:06 -0000 1.6 *************** *** 1,3 **** ! <script type="text/javascript" language="javascript"> <!-- function OnLoadHandler() { // redefine default OnLoadHandler --- 1,3 ---- ! <script type="text/javascript"> <!-- function OnLoadHandler() { // redefine default OnLoadHandler Index: common-javascript.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/common-javascript.thtml,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** common-javascript.thtml 22 May 2005 09:12:12 -0000 1.3 --- common-javascript.thtml 22 May 2005 09:37:06 -0000 1.4 *************** *** 1,3 **** ! <script type="text/javascript" language="javascript"> warnings = 1; // this will be replaced with an Advanced variable that the Template will insert here --- 1,3 ---- ! <script type="text/javascript"> warnings = 1; // this will be replaced with an Advanced variable that the Template will insert here |
From: Manni H. <man...@us...> - 2005-05-22 09:12:21
|
Update of /cvsroot/popfile/engine/skins/default In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28515/skins/default Modified Files: common-javascript.thtml history-javascript.thtml history-page.thtml Log Message: Minor cleanup on the skins: * Add newlines at end of file * remove stray </p> tags Index: history-page.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/history-page.thtml,v retrieving revision 1.58 retrieving revision 1.59 diff -C2 -d -r1.58 -r1.59 *** history-page.thtml 19 May 2005 22:51:28 -0000 1.58 --- history-page.thtml 22 May 2005 09:12:12 -0000 1.59 *************** *** 47,51 **** <!-- end of history-navigator-widget.thtml content --> </TMPL_IF> ! <p /> (<a class="history" href="/history"><TMPL_VAR NAME="Localize_Refresh"></a>) --- 47,51 ---- <!-- end of history-navigator-widget.thtml content --> </TMPL_IF> ! (<a class="history" href="/history"><TMPL_VAR NAME="Localize_Refresh"></a>) *************** *** 57,61 **** <input type="submit" class="submit removeButton" name="clearpage" onClick="return confirmClick(this)" value="<TMPL_VAR NAME="Localize_History_RemovePage">" /> <input type="submit" class="submit removeButton" name="clearall" onClick="return confirmClick(this)" value="<TMPL_VAR NAME="Localize_History_RemoveAll"> (<TMPL_VAR NAME="History_Count">)" /> - <p /> </td> </tr> --- 57,60 ---- Index: history-javascript.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/history-javascript.thtml,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** history-javascript.thtml 19 May 2005 22:51:28 -0000 1.4 --- history-javascript.thtml 22 May 2005 09:12:12 -0000 1.5 *************** *** 20,22 **** } --> ! </script> \ No newline at end of file --- 20,22 ---- } --> ! </script> Index: common-javascript.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/common-javascript.thtml,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** common-javascript.thtml 19 May 2005 22:51:28 -0000 1.2 --- common-javascript.thtml 22 May 2005 09:12:12 -0000 1.3 *************** *** 13,15 **** } ! </script> \ No newline at end of file --- 13,15 ---- } ! </script> |
From: Sam S. <ssc...@us...> - 2005-05-21 01:20:27
|
Update of /cvsroot/popfile/engine/skins/default In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14170 Modified Files: password-page.thtml Log Message: Escape the URL before including it as the next page parameter. Index: password-page.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/password-page.thtml,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** password-page.thtml 20 May 2005 23:06:01 -0000 1.7 --- password-page.thtml 21 May 2005 01:20:13 -0000 1.8 *************** *** 17,21 **** <input type="password" id="thePassword" name="password" /> </td></tr></table> ! <input type="hidden" id="next" name="next" value="<TMPL_VAR NAME="Next_Url">" /> <br /> <input type="submit" class="submit" name="submit" value="<TMPL_VAR NAME="Localize_Password_Go">" /> --- 17,21 ---- <input type="password" id="thePassword" name="password" /> </td></tr></table> ! <input type="hidden" id="next" name="next" value="<TMPL_VAR NAME="Next_Url" ESCAPE=URL>" /> <br /> <input type="submit" class="submit" name="submit" value="<TMPL_VAR NAME="Localize_Password_Go">" /> |
From: Sam S. <ssc...@us...> - 2005-05-20 23:25:46
|
Update of /cvsroot/popfile/engine/UI In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26452 Modified Files: HTML.pm Log Message: Back-out inadvertent commit of one of jelang's in-progress patches Index: HTML.pm =================================================================== RCS file: /cvsroot/popfile/engine/UI/HTML.pm,v retrieving revision 1.349 retrieving revision 1.350 diff -C2 -d -r1.349 -r1.350 *** HTML.pm 20 May 2005 23:05:58 -0000 1.349 --- HTML.pm 20 May 2005 23:25:36 -0000 1.350 *************** *** 2235,2256 **** my @corpus_data; ! my $total_messages = $self->mcount__( $session ); ! if ( $total_messages != 0 ) { ! $templ->param( 'Corpus_If_Message_Count' => 1 ); ! } ! else { ! $templ->param( 'Corpus_If_Message_Count' => 0 ); ! } ! my $total_words = 0; ! for my $bucket (@buckets) { ! $total_words += $self->classifier_()->get_bucket_word_count( $session, $bucket ); ! } ! $templ->param( 'Corpus_Word_Count' => $self->pretty_number( $total_words ) ); ! if ( $total_words != 0 ) { ! $templ->param( 'Corpus_If_Word_Count' => 1 ); ! } ! else { ! $templ->param( 'Corpus_If_Word_Count' => 0 ); ! } foreach my $bucket ( @buckets ) { my %row_data; --- 2235,2239 ---- my @corpus_data; ! foreach my $bucket ( @buckets ) { my %row_data; *************** *** 2272,2318 **** $row_data{Localize_Apply} = $self->{language__}{Apply}; $row_data{Corpus_Loop_Loop_Colors} = \@color_data; - my $messages = $self->get_bucket_parameter__( $session, $bucket, 'count' ); - if ( $total_messages != 0 ) { - $row_data{Bucket_Message_Percent} = sprintf( "%.2f", ( 100 * ( $messages / $total_messages ) ) ); - } - else { - $row_data{Bucket_Message_Percent} = " "; - } - my $positives = $self->get_bucket_parameter__($session, $bucket, 'fpcount' ); - $row_data{Bucket_False_Positive} = $self->pretty_number( $positives ); - if ( ( $total_messages - $messages ) == 0 ) { - $row_data{Bucket_Strike_Rate} = "n/a"; - } - else { - $row_data{Bucket_Strike_Rate} = sprintf( "%.2f%%", ( 100 * ( $positives ) / ( $total_messages - $messages ) ) ); - } - my $negatives = $self->get_bucket_parameter__( $session, $bucket, 'fncount' ); - $row_data{Bucket_False_Negative} = $self->pretty_number( $negatives ); - if ( ( $messages + $negatives ) == 0 ) { - $row_data{Bucket_Hit_Rate} = "n/a"; - } - else { - $row_data{Bucket_Hit_Rate} = sprintf( "%.2f%%", ( 100 * ( $messages ) / ( $messages + $negatives ) ) ); - } - my $words = $self->classifier_()->get_bucket_word_count( $session, $bucket ); - $row_data{Bucket_Word_Count} = $self->pretty_number( $words ); - if ( $total_words != 0 ) { - $row_data{Bucket_Word_Percent} = sprintf( "%.2f", ( 100 * ( $words / $total_words ) ) ); - } - else { - $row_data{Bucket_Word_Percent} = " "; - } - if ( $messages != 0 ) { - $row_data{Bar_If_Message_Count} = 1; - } - else { - $row_data{Bar_If_Message_Count} = 0; - } - if ( $words != 0 ) { - $row_data{Bar_If_Word_Count} = 1; - } - else { - $row_data{Bar_If_Word_Count} = 0; - } push ( @corpus_data, \%row_data ); } --- 2255,2258 ---- |
From: Sam S. <ssc...@us...> - 2005-05-20 23:06:10
|
Update of /cvsroot/popfile/engine/UI In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22831/UI Modified Files: HTML.pm Log Message: Logins now forward to the original page that resulted in the password prompt. XPL reclassification should be nicer, and links directly to a page should work. Index: HTML.pm =================================================================== RCS file: /cvsroot/popfile/engine/UI/HTML.pm,v retrieving revision 1.348 retrieving revision 1.349 diff -C2 -d -r1.348 -r1.349 *** HTML.pm 7 Apr 2005 19:54:49 -0000 1.348 --- HTML.pm 20 May 2005 23:05:58 -0000 1.349 *************** *** 620,626 **** if ( !defined( $session ) ) { ! $session = $self->password_page( $client ); if ( defined( $session ) ) { ! $self->http_redirect_( $client, '/', $session ); } --- 620,628 ---- if ( !defined( $session ) ) { ! my $continue; ! ($session, $continue) = $self->password_page( $client, $url ); ! $continue = '/' unless defined( $continue ); if ( defined( $session ) ) { ! $self->http_redirect_( $client, $continue , $session ); } *************** *** 2233,2236 **** --- 2235,2256 ---- my @corpus_data; + my $total_messages = $self->mcount__( $session ); + if ( $total_messages != 0 ) { + $templ->param( 'Corpus_If_Message_Count' => 1 ); + } + else { + $templ->param( 'Corpus_If_Message_Count' => 0 ); + } + my $total_words = 0; + for my $bucket (@buckets) { + $total_words += $self->classifier_()->get_bucket_word_count( $session, $bucket ); + } + $templ->param( 'Corpus_Word_Count' => $self->pretty_number( $total_words ) ); + if ( $total_words != 0 ) { + $templ->param( 'Corpus_If_Word_Count' => 1 ); + } + else { + $templ->param( 'Corpus_If_Word_Count' => 0 ); + } foreach my $bucket ( @buckets ) { my %row_data; *************** *** 2252,2255 **** --- 2272,2318 ---- $row_data{Localize_Apply} = $self->{language__}{Apply}; $row_data{Corpus_Loop_Loop_Colors} = \@color_data; + my $messages = $self->get_bucket_parameter__( $session, $bucket, 'count' ); + if ( $total_messages != 0 ) { + $row_data{Bucket_Message_Percent} = sprintf( "%.2f", ( 100 * ( $messages / $total_messages ) ) ); + } + else { + $row_data{Bucket_Message_Percent} = " "; + } + my $positives = $self->get_bucket_parameter__($session, $bucket, 'fpcount' ); + $row_data{Bucket_False_Positive} = $self->pretty_number( $positives ); + if ( ( $total_messages - $messages ) == 0 ) { + $row_data{Bucket_Strike_Rate} = "n/a"; + } + else { + $row_data{Bucket_Strike_Rate} = sprintf( "%.2f%%", ( 100 * ( $positives ) / ( $total_messages - $messages ) ) ); + } + my $negatives = $self->get_bucket_parameter__( $session, $bucket, 'fncount' ); + $row_data{Bucket_False_Negative} = $self->pretty_number( $negatives ); + if ( ( $messages + $negatives ) == 0 ) { + $row_data{Bucket_Hit_Rate} = "n/a"; + } + else { + $row_data{Bucket_Hit_Rate} = sprintf( "%.2f%%", ( 100 * ( $messages ) / ( $messages + $negatives ) ) ); + } + my $words = $self->classifier_()->get_bucket_word_count( $session, $bucket ); + $row_data{Bucket_Word_Count} = $self->pretty_number( $words ); + if ( $total_words != 0 ) { + $row_data{Bucket_Word_Percent} = sprintf( "%.2f", ( 100 * ( $words / $total_words ) ) ); + } + else { + $row_data{Bucket_Word_Percent} = " "; + } + if ( $messages != 0 ) { + $row_data{Bar_If_Message_Count} = 1; + } + else { + $row_data{Bar_If_Message_Count} = 0; + } + if ( $words != 0 ) { + $row_data{Bar_If_Word_Count} = 1; + } + else { + $row_data{Bar_If_Word_Count} = 0; + } push ( @corpus_data, \%row_data ); } *************** *** 3271,3274 **** --- 3334,3338 ---- # # $client The web browser to send the results to + # $url The higher level page the password prompt is to be embedded in # # Returns undef if login failed, or a session key value if it succeeded *************** *** 3277,3281 **** sub password_page { ! my ( $self, $client ) = @_; my $session; --- 3341,3345 ---- sub password_page { ! my ( $self, $client, $url ) = @_; my $session; *************** *** 3283,3286 **** --- 3347,3351 ---- $templ->param( 'Header_If_Password' => 1 ); + $templ->param( 'Next_Url' => $url ); if ( exists( $self->{form_}{username} ) && *************** *** 3291,3295 **** if ( defined( $session ) ) { ! return $session; } else { $self->error_message__( $templ, --- 3356,3360 ---- if ( defined( $session ) ) { ! return ($session, $self->{form_}{next}); } else { $self->error_message__( $templ, |
From: Sam S. <ssc...@us...> - 2005-05-20 23:06:10
|
Update of /cvsroot/popfile/engine/skins/default In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22831/skins/default Modified Files: password-page.thtml Log Message: Logins now forward to the original page that resulted in the password prompt. XPL reclassification should be nicer, and links directly to a page should work. Index: password-page.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/password-page.thtml,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** password-page.thtml 19 May 2005 22:51:28 -0000 1.6 --- password-page.thtml 20 May 2005 23:06:01 -0000 1.7 *************** *** 17,20 **** --- 17,21 ---- <input type="password" id="thePassword" name="password" /> </td></tr></table> + <input type="hidden" id="next" name="next" value="<TMPL_VAR NAME="Next_Url">" /> <br /> <input type="submit" class="submit" name="submit" value="<TMPL_VAR NAME="Localize_Password_Go">" /> |
From: Joseph C. <tex...@us...> - 2005-05-20 01:56:28
|
Update of /cvsroot/popfile/engine/skins/default In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12098/skins/default Modified Files: history-bar.thtml Log Message: Add label tags to check box labels so the text can be clicked on to check the box. Index: history-bar.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/history-bar.thtml,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** history-bar.thtml 19 May 2005 22:51:28 -0000 1.14 --- history-bar.thtml 20 May 2005 01:56:16 -0000 1.15 *************** *** 17,21 **** <TMPL_IF NAME="Configuration_Field_Visible"> ! <span class="checkLabel"><input type="checkbox" id="<TMPL_VAR NAME="Configuration_Field_Name">" class="checkbox" name="<TMPL_VAR NAME="Configuration_Field_Name">"> <TMPL_VAR NAME="Configuration_Localized_Field_Name"> </span> <TMPL_ELSE> --- 17,21 ---- <TMPL_IF NAME="Configuration_Field_Visible"> ! <span class="checkLabel"><input type="checkbox" id="<TMPL_VAR NAME="Configuration_Field_Name">" class="checkbox" name="<TMPL_VAR NAME="Configuration_Field_Name">"> <label for="<TMPL_VAR NAME="Configuration_Field_Name">"><TMPL_VAR NAME="Configuration_Localized_Field_Name"></label> </span> <TMPL_ELSE> *************** *** 38,42 **** </div> <div class="configBarOption"> - <label class="configurationLabel" for="configHistoryDays"> <TMPL_VAR NAME="Localize_Configuration_Days">: --- 38,41 ---- *************** *** 45,51 **** <input name="history_days" id="configHistoryDays" type="text" size="3" maxlength="3" value="<TMPL_VAR NAME="Configuration_History_Days">" /> ! <span class="checkLabel"><input type="checkbox" class="checkbox" name="purge_history" value="<TMPL_VAR NAME="Localize_History_Purge">" /> ! <TMPL_VAR NAME="Localize_History_Purge"></span> <input type="submit" class="submit" name="update_history_days" value="<TMPL_VAR NAME="Localize_Apply">" /> - </div> --- 44,49 ---- <input name="history_days" id="configHistoryDays" type="text" size="3" maxlength="3" value="<TMPL_VAR NAME="Configuration_History_Days">" /> ! <span class="checkLabel"><input type="checkbox" class="checkbox" name="purge_history" id="purge_history" value="<TMPL_VAR NAME="Localize_History_Purge">" /> ! <label for="purge_history"><TMPL_VAR NAME="Localize_History_Purge"></label></span> <input type="submit" class="submit" name="update_history_days" value="<TMPL_VAR NAME="Localize_Apply">" /> </div> |
From: Joseph C. <tex...@us...> - 2005-05-19 22:51:41
|
Update of /cvsroot/popfile/engine/skins/default In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9187/skins/default Modified Files: common-after-configuration.thtml common-before-configuration.thtml common-javascript.thtml common-middle.thtml common-top.thtml configuration-bar.thtml history-bar.thtml history-javascript.thtml history-navigator-widget.thtml history-page.thtml history-search-filter-widget.thtml password-page.thtml style.css Log Message: Lots of default skin changes. Config bar hiding now works (for history page only). Upper Remove buttons do not work but I wanted to commit this before I broke anything else. Some styles are still spread between the inline and the style sheet. Index: common-top.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/common-top.thtml,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** common-top.thtml 25 Feb 2005 04:14:04 -0000 1.5 --- common-top.thtml 19 May 2005 22:51:28 -0000 1.6 *************** *** 2,8 **** <html lang="<TMPL_VAR NAME="Localize_LanguageCode">"> <head> ! <title><TMPL_VAR NAME="Localize_Header_Title"></title> ! <link rel="icon" href="favicon.ico"> ! <link rel="stylesheet" type="text/css" href="<TMPL_VAR NAME="Skin_Root">style.css" title="POPFile-Style"> ! <script language="javascript">function OnLoadHandler(){}</script> </head> --- 2,8 ---- <html lang="<TMPL_VAR NAME="Localize_LanguageCode">"> <head> ! <title><TMPL_VAR NAME="Localize_Header_Title"></title> ! <link rel="icon" href="favicon.ico"> ! <link rel="stylesheet" type="text/css" href="<TMPL_VAR NAME="Skin_Root">style.css" title="POPFile-Style"> ! <TMPL_INCLUDE NAME="common-javascript.thtml"> </head> Index: history-search-filter-widget.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/history-search-filter-widget.thtml,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** history-search-filter-widget.thtml 15 Feb 2005 04:23:54 -0000 1.9 --- history-search-filter-widget.thtml 19 May 2005 22:51:28 -0000 1.10 *************** *** 1,41 **** ! <form action="/history" method="post"> ! <label class="historyLabel" for="historySearch"> ! <TMPL_VAR NAME="Localize_History_SearchMessage">: ! </label> ! ! <TMPL_IF NAME="History_If_Search"> ! ! <input type="text" id="historySearch" name="search" value="<TMPL_VAR ESCAPE=HTML NAME="History_Field_Search">" /> ! ! </TMPL_IF> ! ! <input type="submit" class="submit" name="setsearch" value="<TMPL_VAR NAME="Localize_Find">" /> ! ! <label class="historyLabel" for="historyFilter"> ! <TMPL_VAR NAME="Localize_History_FilterBy">: ! </label> ! <input type="hidden" name="sort" value="<TMPL_VAR NAME="History_Field_Sort">" /> ! <select name="filter" id="historyFilter"> ! <option value=""></option> ! ! <TMPL_LOOP NAME="History_Loop_SF_Buckets"> ! ! <option value="<TMPL_VAR NAME="History_Bucket">" <TMPL_VAR NAME="History_Selected"> style="color: <TMPL_VAR NAME="History_Bucket_Color">"> ! <TMPL_VAR NAME="History_Bucket"> ! </option> ! ! </TMPL_LOOP> ! ! <option value="__filter__magnet" <TMPL_VAR NAME="History_Filter_Magnet">> ! <<TMPL_VAR NAME="Localize_History_ShowMagnet">> ! </option> ! <option value="unclassified" <TMPL_VAR NAME="History_Filter_Unclassified">> ! <unclassified> ! </option> ! </select> ! <input type="submit" class="submit" name="setfilter" value="<TMPL_VAR NAME="Localize_Filter">" /> ! <input type="hidden" name="negate" value="" /> ! <input type="checkbox" name="negate" class="checkbox" <TMPL_VAR NAME="History_Field_Not"> /> ! <TMPL_VAR NAME="Localize_History_Negate_Search"> ! <input type="submit" class="submit" name="reset_filter_search" value="<TMPL_VAR NAME="Localize_History_ResetSearch">" /> ! </form> --- 1,48 ---- ! <form action="/history" method="post"> ! <div style="display:inline; float: left; padding-right:1em;"> ! <label class="historyLabel" for="historySearch"> ! <TMPL_VAR NAME="Localize_History_SearchMessage"> ! </label> ! <br> ! <TMPL_IF NAME="History_If_Search"> ! <input type="text" id="historySearch" name="search" value="<TMPL_VAR ESCAPE=HTML NAME="History_Field_Search">" /> ! </TMPL_IF> ! ! </div> ! ! <div style="display:inline;"> ! <label class="historyLabel" for="historyFilter"> ! <TMPL_VAR NAME="Localize_History_FilterBy"> ! </label> ! <br> ! <input type="hidden" name="sort" value="<TMPL_VAR NAME="History_Field_Sort">" /> ! <select name="filter" id="historyFilter"> ! <option value=""></option> ! ! <TMPL_LOOP NAME="History_Loop_SF_Buckets"> ! ! <option value="<TMPL_VAR NAME="History_Bucket">" <TMPL_VAR NAME="History_Selected"> style="color: <TMPL_VAR NAME="History_Bucket_Color">"> ! <TMPL_VAR NAME="History_Bucket"> ! </option> ! ! </TMPL_LOOP> ! ! <option value="__filter__magnet" <TMPL_VAR NAME="History_Filter_Magnet">> ! <<TMPL_VAR NAME="Localize_History_ShowMagnet">> ! </option> ! <option value="unclassified" <TMPL_VAR NAME="History_Filter_Unclassified">> ! <unclassified> ! </option> ! </select> ! <input type="submit" class="submit" name="setfilter" value="<TMPL_VAR NAME="Localize_Find">" /> ! <input type="submit" class="submit" name="reset_filter_search" value="<TMPL_VAR NAME="Localize_History_ResetSearch">" /> ! </div> ! ! <div> ! <input type="hidden" name="negate" value="" /> ! <input type="checkbox" name="negate" id="negate" class="checkbox" <TMPL_VAR NAME="History_Field_Not"> /> ! <label for="negate"> ! <TMPL_VAR NAME="Localize_History_Negate_Search"> ! </label> ! </div> ! </form> Index: history-page.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/history-page.thtml,v retrieving revision 1.57 retrieving revision 1.58 diff -C2 -d -r1.57 -r1.58 *** history-page.thtml 4 Mar 2005 23:40:38 -0000 1.57 --- history-page.thtml 19 May 2005 22:51:28 -0000 1.58 *************** *** 26,29 **** --- 26,36 ---- </TMPL_IF> + <form action="/history" method="post"> + <input type="hidden" name="search" value="<TMPL_VAR NAME="History_Field_Search">" /> + <input type="hidden" name="sort" value="<TMPL_VAR NAME="History_Field_Sort">" /> + <input type="hidden" name="negate" value="<TMPL_VAR NAME="History_Field_Not">" /> + <input type="hidden" name="start_message" value="<TMPL_VAR NAME="History_Start_Message">" /> + <input type="hidden" name="filter" value="<TMPL_VAR NAME="History_Field_Filter">" /> + </form> <TMPL_IF NAME="History_If_Some_Messages"> *************** *** 31,37 **** <tr> <td align="left"> ! <h2 class="history"><TMPL_VAR NAME="Localize_History_Title"> (<TMPL_VAR NAME="History_Count">)</h2> ! </td> ! <td class="historyNavigatorTop" align="right"> <TMPL_IF "History_If_MultiPage"> --- 38,44 ---- <tr> <td align="left"> ! <h2 class="history" style="margin:0;"><TMPL_VAR NAME="Localize_History_Title"> (<TMPL_VAR NAME="History_Count">)</h2> ! ! <td class="historyNavigatorTop" align="right" valign="top" rowspan="2"> <TMPL_IF "History_If_MultiPage"> *************** *** 40,49 **** <!-- end of history-navigator-widget.thtml content --> </TMPL_IF> ! (<a class="history" href="/history"><TMPL_VAR NAME="Localize_Refresh"></a>) </td> </tr> ! <tr> <td colspan="2"> <!-- the following html was history-search-filter-widget.thtml --> --- 47,64 ---- <!-- end of history-navigator-widget.thtml content --> </TMPL_IF> ! <p /> (<a class="history" href="/history"><TMPL_VAR NAME="Localize_Refresh"></a>) </td> </tr> ! ! <tr> ! <td colspan="<TMPL_VAR NAME="History_Colspan">"> ! <input type="submit" class="submit removeButton" name="clearpage" onClick="return confirmClick(this)" value="<TMPL_VAR NAME="Localize_History_RemovePage">" /> ! <input type="submit" class="submit removeButton" name="clearall" onClick="return confirmClick(this)" value="<TMPL_VAR NAME="Localize_History_RemoveAll"> (<TMPL_VAR NAME="History_Count">)" /> ! <p /> ! </td> ! </tr> ! <tr> <td colspan="2"> <!-- the following html was history-search-filter-widget.thtml --> *************** *** 53,64 **** </tr> </table> ! ! <form class="HistoryMainForm" action="/history" method="post"> ! <input type="hidden" name="search" value="<TMPL_VAR ESCAPE=HTML NAME="History_Field_Search">" /> ! <input type="hidden" name="sort" value="<TMPL_VAR NAME="History_Field_Sort">" /> ! <input type="hidden" name="negate" value="<TMPL_VAR NAME="History_Field_Not">" /> ! <input type="hidden" name="start_message" value="<TMPL_VAR NAME="History_Start_Message">" /> ! <input type="hidden" name="filter" value="<TMPL_VAR NAME="History_Field_Filter">" /> ! <table class="historyTable" width="100%" summary="<TMPL_VAR NAME="Localize_History_MainTableSummary">"> --- 68,72 ---- </tr> </table> ! <form action="/history" method="post"> <table class="historyTable" width="100%" summary="<TMPL_VAR NAME="Localize_History_MainTableSummary">"> *************** *** 175,178 **** --- 183,187 ---- <a class="messageLink" title="<TMPL_VAR NAME="History_Cell_Title" ESCAPE=HTML>" href="/view?view=<TMPL_VAR NAME="History_Mail_File"><TMPL_VAR NAME="History_Fields">"> <span title="<TMPL_VAR NAME="History_Cell_Title" ESCAPE=HTML>"><TMPL_VAR NAME="History_Cell_Value" ESCAPE=HTML></span></a> + </td> <TMPL_ELSE> *************** *** 244,247 **** --- 253,257 ---- </tr> </table> + </form> <TMPL_IF "History_If_MultiPage"> *************** *** 251,256 **** <td class="historyNavigatorBottom"> <TMPL_INCLUDE NAME="history-navigator-widget.thtml"> - <input type="text" name="jumptopage" value="" size="3"> - <input type="submit" class="submit" name="gopage" value="<TMPL_VAR NAME="Localize_Go">" /> </td> </tr> --- 261,264 ---- *************** *** 259,263 **** </TMPL_IF> - </form> <TMPL_ELSE> <!-- if some messages --> --- 267,270 ---- *************** *** 270,281 **** </td> <td class="historyNavigatorTop" align="right"> ! ! <TMPL_IF "History_If_MultiPage"> ! <!-- the following html was generated by history-navigator-widget.thtml --> ! <TMPL_INCLUDE NAME="history-navigator-widget.thtml"> ! <!-- end of history-navigator-widget.thtml content --> ! </TMPL_IF> ! ! (<a class="history" href="/history"><TMPL_VAR NAME="Localize_Refresh"></a>) </td> --- 277,281 ---- </td> <td class="historyNavigatorTop" align="right"> ! (<a class="history" href="/history"><TMPL_VAR NAME="Localize_Refresh"></a>) </td> *************** *** 294,321 **** <TMPL_VAR NAME="Localize_History_NoMessages">. </span> - <p> </td> </tr> </table> ! ! </TMPL_IF> <!-- if some messages --> <TMPL_INCLUDE NAME="history-javascript.thtml"> ! <TMPL_INCLUDE NAME="common-before-configuration.thtml"> <TMPL_IF NAME="If_Show_Config_Bars"> ! <TMPL_INCLUDE NAME="history-bar.thtml"> ! <TMPL_INCLUDE NAME="configuration-bar.thtml"> <TMPL_ELSE> ! <tr><td> ! <form action="<TMPL_VAR NAME="Configuration_Action">" method="post"> ! <div class="toggleConfigBar"> ! <input type="submit" class="submit" name="show_configbar" value="<TMPL_VAR NAME="Localize_Configuration_Show_Bar">" /> ! <input type="hidden" name="start_message" value="<TMPL_VAR NAME="History_Start_Message">" /> ! </div> ! </form> ! </td></tr> </TMPL_IF> <TMPL_INCLUDE NAME="common-after-configuration.thtml"> <TMPL_INCLUDE NAME="common-bottom.thtml"> --- 294,338 ---- <TMPL_VAR NAME="Localize_History_NoMessages">. </span> </td> </tr> </table> ! <br /> </TMPL_IF> <!-- if some messages --> <TMPL_INCLUDE NAME="history-javascript.thtml"> ! <!--<TMPL_INCLUDE NAME="common-before-configuration.thtml">--> ! <TMPL_IF NAME="If_Show_Config_Bars"> ! ! <span style="border:2px #CCCC99 solid; padding:0.3em; padding-bottom:0; margin-left:0.3em; background:#CCCC99;"> ! <a name="configBar" href="<TMPL_VAR NAME="Configuration_Action">?hide_configbar=1"><b>Config Bar</b></a> ! </span> ! ! <table class="configBar" cellspacing="0" width="100%"> ! <tr> ! <td> ! <form action="<TMPL_VAR NAME="Configuration_Action">" method="post"> ! <TMPL_INCLUDE NAME="history-bar.thtml"> ! </form> ! </td> ! </tr> ! <tr> ! <td> ! <form action="<TMPL_VAR NAME="Configuration_Action">" method="post"> ! <TMPL_INCLUDE NAME="configuration-bar.thtml"> ! </form> ! </td> ! </tr> ! </table> ! <TMPL_ELSE> ! ! <span style="border:2px #CCCC99 solid; padding:0.3em; margin:0.3em; background:#CCCC99;"> ! <a href="<TMPL_VAR NAME="Configuration_Action">?show_configbar=1#configBar"><b>Config Bar</b></a> ! </span> ! <br /> </TMPL_IF> + <TMPL_INCLUDE NAME="common-after-configuration.thtml"> <TMPL_INCLUDE NAME="common-bottom.thtml"> Index: common-javascript.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/common-javascript.thtml,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** common-javascript.thtml 4 Mar 2005 23:40:38 -0000 1.1 --- common-javascript.thtml 19 May 2005 22:51:28 -0000 1.2 *************** *** 1,4 **** ! <script language="JavaScript"> ! <!-- warnings = 1; // this will be replaced with an Advanced variable that the Template will insert here --- 1,4 ---- ! <script type="text/javascript" language="javascript"> ! warnings = 1; // this will be replaced with an Advanced variable that the Template will insert here *************** *** 8,11 **** else return 0; } ! --> </script> \ No newline at end of file --- 8,15 ---- else return 0; } ! ! function OnLoadHandler(){ ! return 0; ! } ! </script> \ No newline at end of file Index: common-middle.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/common-middle.thtml,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** common-middle.thtml 15 May 2005 16:25:39 -0000 1.14 --- common-middle.thtml 19 May 2005 22:51:28 -0000 1.15 *************** *** 1,4 **** - <TMPL_INCLUDE NAME="common-javascript.thtml"> - <body dir="<TMPL_VAR NAME="Localize_LanguageDirection">" onLoad="OnLoadHandler()"> <table class="shellTop" align="center" width="100%" summary=""> --- 1,2 ---- Index: common-before-configuration.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/common-before-configuration.thtml,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** common-before-configuration.thtml 7 Feb 2005 03:44:59 -0000 1.3 --- common-before-configuration.thtml 19 May 2005 22:51:28 -0000 1.4 *************** *** 1 **** ! <table class="configBar" cellspacing="0" width="100%"> --- 1 ---- ! Index: configuration-bar.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/configuration-bar.thtml,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** configuration-bar.thtml 15 Feb 2005 04:23:54 -0000 1.10 --- configuration-bar.thtml 19 May 2005 22:51:28 -0000 1.11 *************** *** 1,74 **** ! <tr> ! <td> ! <form action="<TMPL_VAR NAME="Configuration_Action">" method="post"> ! <div class="configBarOption"> ! <label class="configurationLabel" for="configSkin"> ! <TMPL_VAR NAME="Localize_Configuration_SkinsChoose">: ! </label> ! ! <input type="hidden" name="start_message" value="<TMPL_VAR NAME="History_Start_Message">" /> ! <select name="skin" id="configSkin"> ! <optgroup label="<TMPL_VAR NAME="Localize_Configuration_GeneralSkins">"> ! ! <TMPL_LOOP NAME="Configuration_Loop_General_Skins"> ! ! <option value="<TMPL_VAR NAME="Configuration_General_Skin">" <TMPL_VAR NAME="Configuration_General_Selected">> ! <TMPL_VAR NAME="Configuration_General_Skin"> ! </option> ! ! </TMPL_LOOP> ! ! </optgroup> ! ! <optgroup label="<TMPL_VAR NAME="Localize_Configuration_SmallSkins">"> ! ! <TMPL_LOOP NAME="Configuration_Loop_Small_Skins"> ! ! <option value="<TMPL_VAR NAME="Configuration_Small_Skin">" <TMPL_VAR NAME="Configuration_Small_Selected">> ! <TMPL_VAR NAME="Configuration_Small_Skin"> ! </option> ! ! </TMPL_LOOP> ! ! </optgroup> ! <optgroup label="<TMPL_VAR NAME="Localize_Configuration_TinySkins">"> ! ! <TMPL_LOOP NAME="Configuration_Loop_Tiny_Skins"> ! ! <option value="<TMPL_VAR NAME="Configuration_Tiny_Skin">" <TMPL_VAR NAME="Configuration_Tiny_Selected">> ! <TMPL_VAR NAME="Configuration_Tiny_Skin"> ! </option> ! ! </TMPL_LOOP> ! ! </optgroup> ! </select> ! <input type="submit" class="submit" name="change_skin" value="<TMPL_VAR NAME="Localize_Apply">" /> ! </div> ! ! <div class="configBarOption"> ! ! <label class="configurationLabel" for="configLanguage"> ! <TMPL_VAR NAME="Localize_Configuration_LanguageChoose">: ! </label> ! ! <select name="language" id="configLanguage"> ! ! <TMPL_LOOP NAME="Configuration_Loop_Languages"> ! ! <option value="<TMPL_VAR NAME="Configuration_Language">" <TMPL_VAR NAME="Configuration_Selected_Language">> ! <TMPL_VAR NAME="Configuration_Language"> ! </option> ! ! </TMPL_LOOP> ! ! </select> ! <input type="submit" class="submit" name="change_language" value="<TMPL_VAR NAME="Localize_Apply">" /> ! </div> ! ! <div class="configBarOption toggleConfigBar"> ! <input type="submit" class="submit" name="hide_configbar" value="<TMPL_VAR NAME="Localize_Configuration_Hide_Bar">" /> ! </div> ! </form> ! </td> ! </tr> --- 1,64 ---- ! <div class="configBarOption"> ! <label class="configurationLabel" for="configSkin"> ! <TMPL_VAR NAME="Localize_Configuration_SkinsChoose">: ! </label> ! ! <input type="hidden" name="start_message" value="<TMPL_VAR NAME="History_Start_Message">" /> ! <select name="skin" id="configSkin"> ! <optgroup label="<TMPL_VAR NAME="Localize_Configuration_GeneralSkins">"> ! ! <TMPL_LOOP NAME="Configuration_Loop_General_Skins"> ! ! <option value="<TMPL_VAR NAME="Configuration_General_Skin">" <TMPL_VAR NAME="Configuration_General_Selected">> ! <TMPL_VAR NAME="Configuration_General_Skin"> ! </option> ! ! </TMPL_LOOP> ! ! </optgroup> ! ! <optgroup label="<TMPL_VAR NAME="Localize_Configuration_SmallSkins">"> ! ! <TMPL_LOOP NAME="Configuration_Loop_Small_Skins"> ! ! <option value="<TMPL_VAR NAME="Configuration_Small_Skin">" <TMPL_VAR NAME="Configuration_Small_Selected">> ! <TMPL_VAR NAME="Configuration_Small_Skin"> ! </option> ! ! </TMPL_LOOP> ! ! </optgroup> ! <optgroup label="<TMPL_VAR NAME="Localize_Configuration_TinySkins">"> ! ! <TMPL_LOOP NAME="Configuration_Loop_Tiny_Skins"> ! ! <option value="<TMPL_VAR NAME="Configuration_Tiny_Skin">" <TMPL_VAR NAME="Configuration_Tiny_Selected">> ! <TMPL_VAR NAME="Configuration_Tiny_Skin"> ! </option> ! ! </TMPL_LOOP> ! ! </optgroup> ! </select> ! <input type="submit" class="submit" name="change_skin" value="<TMPL_VAR NAME="Localize_Apply">" /> ! </div> ! ! <div class="configBarOption"> ! ! <label class="configurationLabel" for="configLanguage"> ! <TMPL_VAR NAME="Localize_Configuration_LanguageChoose">: ! </label> ! ! <select name="language" id="configLanguage"> ! ! <TMPL_LOOP NAME="Configuration_Loop_Languages"> ! ! <option value="<TMPL_VAR NAME="Configuration_Language">" <TMPL_VAR NAME="Configuration_Selected_Language">> ! <TMPL_VAR NAME="Configuration_Language"> ! </option> ! ! </TMPL_LOOP> ! ! </select> ! <input type="submit" class="submit" name="change_language" value="<TMPL_VAR NAME="Localize_Apply">" /> ! </div> Index: style.css =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/style.css,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** style.css 16 Feb 2005 23:15:56 -0000 1.15 --- style.css 19 May 2005 22:51:28 -0000 1.16 *************** *** 247,251 **** background-color: #DFDFAF; border: 1px solid #CCCC99; - margin-top: 0.5em; } --- 247,250 ---- *************** *** 265,268 **** --- 264,268 ---- float: left; min-height: 3em; + background-color: #EDEDCA; } *************** *** 270,273 **** --- 270,274 ---- float: right; border: 0; + margin-top: 2.5em; } Index: history-navigator-widget.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/history-navigator-widget.thtml,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** history-navigator-widget.thtml 29 Jul 2004 13:01:19 -0000 1.3 --- history-navigator-widget.thtml 19 May 2005 22:51:28 -0000 1.4 *************** *** 1,22 **** ! <TMPL_VAR NAME="Localize_History_Jump">: ! <TMPL_IF NAME="History_Navigator_If_Previous"> ! [<a href="/history?start_message=<TMPL_VAR NAME="History_Navigator_Previous"><TMPL_VAR NAME="History_Navigator_Fields">">< <TMPL_VAR NAME="Localize_Previous"></a>] ! </TMPL_IF> ! ! <TMPL_LOOP NAME="History_Navigator_Loop"> ! <TMPL_IF NAME="History_Navigator_If_Spacer"> ! <TMPL_IF NAME="History_Navigator_If_Dots"> ! ... ! </TMPL_IF> ! <TMPL_ELSE> ! <TMPL_IF NAME="History_Navigator_If_This_Page"> ! <b><TMPL_VAR NAME="History_Navigator_Page"></b> ! <TMPL_ELSE> ! [<a href="/history?start_message=<TMPL_VAR NAME="History_Navigator_I"><TMPL_VAR NAME="History_Navigator_Fields">"><TMPL_VAR NAME="History_Navigator_Page"></a>] ! </TMPL_IF> ! </TMPL_IF> ! </TMPL_LOOP> ! ! <TMPL_IF NAME="History_Navigator_If_Next"> ! [<a href="/history?start_message=<TMPL_VAR NAME="History_Navigator_Next"><TMPL_VAR NAME="History_Navigator_Fields">"><TMPL_VAR NAME="Localize_Next"> ></a>] ! </TMPL_IF> --- 1,26 ---- ! <TMPL_VAR NAME="Localize_History_Jump">: ! <TMPL_IF NAME="History_Navigator_If_Previous"> ! [<a href="/history?start_message=<TMPL_VAR NAME="History_Navigator_Previous"><TMPL_VAR NAME="History_Navigator_Fields">">< <TMPL_VAR NAME="Localize_Previous"></a>] ! </TMPL_IF> ! ! <TMPL_LOOP NAME="History_Navigator_Loop"> ! <TMPL_IF NAME="History_Navigator_If_Spacer"> ! <TMPL_IF NAME="History_Navigator_If_Dots"> ! ... ! </TMPL_IF> ! <TMPL_ELSE> ! <TMPL_IF NAME="History_Navigator_If_This_Page"> ! <b><TMPL_VAR NAME="History_Navigator_Page"></b> ! <TMPL_ELSE> ! [<a href="/history?start_message=<TMPL_VAR NAME="History_Navigator_I"><TMPL_VAR NAME="History_Navigator_Fields">"><TMPL_VAR NAME="History_Navigator_Page"></a>] ! </TMPL_IF> ! </TMPL_IF> ! </TMPL_LOOP> ! ! <TMPL_IF NAME="History_Navigator_If_Next"> ! [<a href="/history?start_message=<TMPL_VAR NAME="History_Navigator_Next"><TMPL_VAR NAME="History_Navigator_Fields">"><TMPL_VAR NAME="Localize_Next"> ></a>] ! </TMPL_IF> ! <form action="/history" method="post" style="display:inline;"> ! <input type="text" name="jumptopage" value="" size="3" /> ! <input type="submit" class="submit" name="gopage" value="<TMPL_VAR NAME="Localize_Go">" /> ! </form> Index: password-page.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/password-page.thtml,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** password-page.thtml 25 Feb 2005 04:14:04 -0000 1.5 --- password-page.thtml 19 May 2005 22:51:28 -0000 1.6 *************** *** 21,25 **** </form> ! <script language="Javascript"> <!-- function OnLoadHandler() { // redefine default OnLoadHandler --- 21,25 ---- </form> ! <script type="text/javascript" language="javascript"> <!-- function OnLoadHandler() { // redefine default OnLoadHandler Index: history-bar.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/history-bar.thtml,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** history-bar.thtml 15 Feb 2005 04:23:54 -0000 1.13 --- history-bar.thtml 19 May 2005 22:51:28 -0000 1.14 *************** *** 1,59 **** ! <tr> ! <td> ! <form action="<TMPL_VAR NAME="Configuration_Action">" method="post"> ! ! <div class="configBarOption"> ! <label class="configurationLabel"> ! <TMPL_VAR NAME="Localize_History_Column_Characters">: ! </label> ! <input type="submit" class="submit" name="increase" value="<TMPL_VAR NAME="Localize_History_Increase">" /> ! <input type="submit" class="submit" name="decrease" value="<TMPL_VAR NAME="Localize_History_Decrease">" /> ! <input type="submit" class="submit" name="automatic" value="<TMPL_VAR NAME="Localize_History_Automatic">" /> ! </div> ! ! <div class="configBarOption"> ! <label class="configurationLabel"> ! <TMPL_VAR NAME="Localize_Configuration_Fields">: ! </label> ! ! <TMPL_LOOP NAME="Configuration_Loop_History_Columns"> ! ! <TMPL_IF NAME="Configuration_Field_Visible"> ! ! <span class="checkLabel"><input type="checkbox" id="<TMPL_VAR NAME="Configuration_Field_Name">" class="checkbox" name="<TMPL_VAR NAME="Configuration_Field_Name">"> <TMPL_VAR NAME="Configuration_Localized_Field_Name"> </span> ! ! <TMPL_ELSE> ! ! <input type="hidden" id="<TMPL_VAR NAME="Configuration_Field_Name">" name="<TMPL_VAR NAME="Configuration_Field_Name">"> ! ! </TMPL_IF> ! ! </TMPL_LOOP> ! <input type="submit" class="submit" name="update_fields" value="<TMPL_VAR NAME="Localize_Apply">" /> ! <input type="hidden" name="start_message" value="<TMPL_VAR NAME="History_Start_Message">" /> ! </div> ! ! <div class="configBarOption"> ! <label class="configurationLabel" for="configPageSize"> ! <TMPL_VAR NAME="Localize_Configuration_History">: ! </label> ! <input name="page_size" id="configPageSize" type="text" size="4" maxlength="4" value="<TMPL_VAR NAME="Configuration_Page_Size">" /> ! <input type="submit" class="submit" name="update_page_size" value="<TMPL_VAR NAME="Localize_Apply">" /> ! ! </div> ! <div class="configBarOption"> ! ! <label class="configurationLabel" for="configHistoryDays"> ! <TMPL_VAR NAME="Localize_Configuration_Days">: ! </label> ! ! <input name="history_days" id="configHistoryDays" type="text" size="3" maxlength="3" value="<TMPL_VAR NAME="Configuration_History_Days">" /> ! ! <span class="checkLabel"><input type="checkbox" class="checkbox" name="purge_history" value="<TMPL_VAR NAME="Localize_History_Purge">" /> ! <TMPL_VAR NAME="Localize_History_Purge"></span> ! <input type="submit" class="submit" name="update_history_days" value="<TMPL_VAR NAME="Localize_Apply">" /> ! ! </div> ! </form> ! </td> ! </tr> --- 1,51 ---- ! <div class="configBarOption"> ! <label class="configurationLabel"> ! <TMPL_VAR NAME="Localize_History_Column_Characters">: ! </label> ! <input type="submit" class="submit" name="increase" value="<TMPL_VAR NAME="Localize_History_Increase">" /> ! <input type="submit" class="submit" name="decrease" value="<TMPL_VAR NAME="Localize_History_Decrease">" /> ! <input type="submit" class="submit" name="automatic" value="<TMPL_VAR NAME="Localize_History_Automatic">" /> ! </div> ! ! <div class="configBarOption"> ! <label class="configurationLabel"> ! <TMPL_VAR NAME="Localize_Configuration_Fields">: ! </label> ! ! <TMPL_LOOP NAME="Configuration_Loop_History_Columns"> ! ! <TMPL_IF NAME="Configuration_Field_Visible"> ! ! <span class="checkLabel"><input type="checkbox" id="<TMPL_VAR NAME="Configuration_Field_Name">" class="checkbox" name="<TMPL_VAR NAME="Configuration_Field_Name">"> <TMPL_VAR NAME="Configuration_Localized_Field_Name"> </span> ! ! <TMPL_ELSE> ! ! <input type="hidden" id="<TMPL_VAR NAME="Configuration_Field_Name">" name="<TMPL_VAR NAME="Configuration_Field_Name">"> ! ! </TMPL_IF> ! ! </TMPL_LOOP> ! <input type="submit" class="submit" name="update_fields" value="<TMPL_VAR NAME="Localize_Apply">" /> ! <input type="hidden" name="start_message" value="<TMPL_VAR NAME="History_Start_Message">" /> ! </div> ! ! <div class="configBarOption"> ! <label class="configurationLabel" for="configPageSize"> ! <TMPL_VAR NAME="Localize_Configuration_History">: ! </label> ! <input name="page_size" id="configPageSize" type="text" size="4" maxlength="4" value="<TMPL_VAR NAME="Configuration_Page_Size">" /> ! <input type="submit" class="submit" name="update_page_size" onClick="return confirmClick(this)" value="<TMPL_VAR NAME="Localize_Apply">" /> ! </div> ! <div class="configBarOption"> ! ! <label class="configurationLabel" for="configHistoryDays"> ! <TMPL_VAR NAME="Localize_Configuration_Days">: ! </label> ! ! <input name="history_days" id="configHistoryDays" type="text" size="3" maxlength="3" value="<TMPL_VAR NAME="Configuration_History_Days">" /> ! ! <span class="checkLabel"><input type="checkbox" class="checkbox" name="purge_history" value="<TMPL_VAR NAME="Localize_History_Purge">" /> ! <TMPL_VAR NAME="Localize_History_Purge"></span> ! <input type="submit" class="submit" name="update_history_days" value="<TMPL_VAR NAME="Localize_Apply">" /> ! ! </div> Index: history-javascript.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/history-javascript.thtml,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** history-javascript.thtml 4 Mar 2005 23:40:38 -0000 1.3 --- history-javascript.thtml 19 May 2005 22:51:28 -0000 1.4 *************** *** 1,21 **** ! <script language="JavaScript"> ! <!-- ! function OnLoadHandler() { // redefine default OnLoadHandler ! if (document.getElementById("removeChecks")) ! document.getElementById("removeChecks").innerHTML = "<input type='checkbox' class='checkbox' onclick='javascript:toggleChecks(this);' title='Select All' />" ! ! document.getElementById("historySearch").focus(); ! } ! ! function toggleChecks(x) { ! d = document.forms; ! for (var i=0; i < d.length; i++) ! { ! for (var j=0; j < d[i].elements.length; j++) ! if (d[i].elements[j].name.substr(0,7) == "remove_") ! d[i].elements[j].checked = x.checked; ! } ! return 0; ! } ! --> </script> \ No newline at end of file --- 1,22 ---- ! <script type="text/javascript" language="javascript"> ! <!-- ! function OnLoadHandler() { // redefine default OnLoadHandler ! if (document.getElementById("removeChecks")) ! document.getElementById("removeChecks").innerHTML = "<input type='checkbox' class='checkbox' onclick='javascript:toggleChecks(this);' title='Select All' />"; ! } ! ! function toggleChecks(x) { ! d = document.forms; ! for (var i=0; i < d.length; i++) { ! for (var j=0; j < d[i].elements.length; j++) ! if (d[i].elements[j].name.substr(0,7) == "remove_") ! d[i].elements[j].checked = x.checked; ! } ! return 0; ! } ! ! function confirmClick(x) { ! return confirm ("Are you sure you want to do this?"); ! } ! --> </script> \ No newline at end of file Index: common-after-configuration.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/common-after-configuration.thtml,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** common-after-configuration.thtml 7 Feb 2005 03:44:59 -0000 1.2 --- common-after-configuration.thtml 19 May 2005 22:51:28 -0000 1.3 *************** *** 1,5 **** - </td> - </tr> - </table> </td> <td class="shellRight"></td> --- 1,2 ---- |
From: Joseph C. <tex...@us...> - 2005-05-15 16:25:49
|
Update of /cvsroot/popfile/engine/skins/default In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14853/skins/default Modified Files: common-middle.thtml Log Message: Fix based on Jim's patch 1202316 - Correction of syntax error. Index: common-middle.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/common-middle.thtml,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** common-middle.thtml 7 Apr 2005 19:55:09 -0000 1.13 --- common-middle.thtml 15 May 2005 16:25:39 -0000 1.14 *************** *** 37,41 **** <TMPL_IF NAME="Header_If_Password"> <TMPL_ELSE> ! <table class="menu" cellspacing="0" summary="<TMPL_VAR NAME="Localize_Header_MenuSummary>"> <tr> <td class="menuIndent"> </td> --- 37,41 ---- <TMPL_IF NAME="Header_If_Password"> <TMPL_ELSE> ! <table class="menu" cellspacing="0" summary="<TMPL_VAR NAME="Localize_Header_MenuSummary">"> <tr> <td class="menuIndent"> </td> |
From: Manni H. <man...@us...> - 2005-04-26 16:38:50
|
Update of /cvsroot/popfile/engine/Services In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27387/Services Modified Files: IMAP.pm Log Message: Adjust logging level when a duplicate hash value is encountered. Index: IMAP.pm =================================================================== RCS file: /cvsroot/popfile/engine/Services/IMAP.pm,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** IMAP.pm 7 Apr 2005 19:54:48 -0000 1.18 --- IMAP.pm 26 Apr 2005 16:38:27 -0000 1.19 *************** *** 539,543 **** } else { ! $self->log_( 0, "Found duplicate hash value: $hash. Ignoring duplicate in folder $folder." ); } --- 539,543 ---- } else { ! $self->log_( 1, "Found duplicate hash value: $hash. Ignoring duplicate in folder $folder." ); } |
From: John Graham-C. <jgr...@us...> - 2005-04-07 19:55:36
|
Update of /cvsroot/popfile/engine/Proxy In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21537/Proxy Modified Files: POP3.pm Proxy.pm SMTP.pm Log Message: More work on v0.23.0 (Multi-user Support) Add account association and allow different users to log in. Users can be associated with specific accounts when POPFile is in multi-user mode. Currently every user has a blank password. Also cloning of per-bucket parameters is not working. Would love to have volunteers to do the following: 1. Test out the new functionality for account association 2. Write code to do per-bucket parameter cloning (see Bayes.pm TODO) 3. Write code to set/reset user passwords. --- Classifer/Bayes.pm: Add functions for handling account creation and deletion and mapping of accounts to users. Add new message called CREAT used to pass a child generated session to the parent. Proxy/Proxy.pm Proxy/POP3.pm: Add code for handling users associated with accounts and use it in the POP3 module to lookup users dynamically when they are logged in. UI/HTML.pm: Update UI to be able to handle different users using the cookie and changes to the History API. Add code to the users_page to handle account association on a per user basis. UI/HTTP.pm: Add url_decode_ and decode form parameters. POPFile/MQ.pm: Comment the CREAT message. POPFile/History.pm: Make history mechanism aware of different users so that different users get a different view of the history. skins/default/user_page.thtml: Add code for handling account association. languages/English.msg: Additional strings needed for the account handling. --- Once this is all working we can start to fix the test suite and nail down the v0.23.0 release. Index: POP3.pm =================================================================== RCS file: /cvsroot/popfile/engine/Proxy/POP3.pm,v retrieving revision 1.109 retrieving revision 1.110 diff -C2 -d -r1.109 -r1.110 *** POP3.pm 22 Mar 2005 19:29:10 -0000 1.109 --- POP3.pm 7 Apr 2005 19:54:46 -0000 1.110 *************** *** 10,14 **** # This module handles proxying the POP3 protocol for POPFile. # ! # Copyright (c) 2001-2004 John Graham-Cumming # # This file is part of POPFile --- 10,14 ---- # This module handles proxying the POP3 protocol for POPFile. # ! # Copyright (c) 2001-2005 John Graham-Cumming # # This file is part of POPFile *************** *** 156,168 **** # child__ # ! # The worker method that is called when we get a good connection from a client # # $client - an open stream to a POP3 client ! # $session - API session key # # ---------------------------------------------------------------------------- sub child__ { ! my ( $self, $client, $session ) = @_; # Hash of indexes of downloaded messages mapped to their --- 156,169 ---- # child__ # ! # The worker method that is called when we get a good connection from ! # a client # # $client - an open stream to a POP3 client ! # $admin_session - administrator session # # ---------------------------------------------------------------------------- sub child__ { ! my ( $self, $client, $admin_session ) = @_; # Hash of indexes of downloaded messages mapped to their *************** *** 175,178 **** --- 176,185 ---- my $mail; + # Will hold the session key for the API, $token contains the + # string for the USER/APOP command that is used to get the key + + my $session = undef; + my $token; + $self->{apop_banner__} = undef; $self->{use_apop__} = 0; *************** *** 231,234 **** --- 238,242 ---- if ( $command =~ /$transparent/ ) { if ( $self->config_( 'secure_server' ) ne '' ) { + $token = $self->config_( 'secure_server' ). ":$1"; if ( $mail = $self->verify_connected_( $mail, $client, $self->config_( 'secure_server' ), $self->config_( 'secure_port' ) ) ) { last if ($self->echo_response_($mail, $client, $command) == 2 ); *************** *** 246,249 **** --- 254,258 ---- if ( $1 ne '' ) { my ( $host, $port, $user, $options ) = ($1, $3, $4, $6); + $token = "$host:$user"; $self->mq_post_( 'LOGIN', $user ); *************** *** 312,317 **** } ! # User is issuing the APOP command to start a session with the ! # remote server if ( ( $command =~ /PASS (.*)/i ) ) { --- 321,326 ---- } ! # The PASS command. Note how we only obtain a session key for ! # the user if the authentication is successful. if ( ( $command =~ /PASS (.*)/i ) ) { *************** *** 336,344 **** $self->tee_( $client, "+OK password ok$eol" ); } else { ! $self->tee_( $client, "$response" ); } } else { ! last if ($self->echo_response_($mail, $client, $command) == 2 ); } next; --- 345,362 ---- $self->tee_( $client, "+OK password ok$eol" ); + $session = $self->get_session_key_( $token ); + if ( !defined( $session ) ) { + last; + } } else { ! $self->tee_( $client, $response ); } } else { ! last if ($self->echo_response_($mail, $client, ! $command) == 2 ); ! $session = $self->get_session_key_( $token ); ! if ( !defined( $session ) ) { ! last; ! } } next; *************** *** 346,350 **** # User is issuing the APOP command to start a session with the ! # remote server We'd need a copy of the plaintext password to # support this. --- 364,368 ---- # User is issuing the APOP command to start a session with the ! # remote server. We'd need a copy of the plaintext password to # support this. *************** *** 496,500 **** $self->classifier_()->classify_and_modify( ! $session, $mail, $client, 1, $class, $slot, 1 ); } } --- 514,518 ---- $self->classifier_()->classify_and_modify( ! $session, $mail, $client, 1, $class, $slot, 1 ); } } *************** *** 665,668 **** --- 683,690 ---- } + if ( defined( $session ) ) { + $self->release_session_key_( $session ); + } + close $client; $self->mq_post_( 'CMPLT', $$ ); Index: Proxy.pm =================================================================== RCS file: /cvsroot/popfile/engine/Proxy/Proxy.pm,v retrieving revision 1.58 retrieving revision 1.59 diff -C2 -d -r1.58 -r1.59 *** Proxy.pm 28 Feb 2005 12:36:06 -0000 1.58 --- Proxy.pm 7 Apr 2005 19:54:47 -0000 1.59 *************** *** 5,9 **** # This module implements the base class for all POPFile proxy Modules # ! # Copyright (c) 2001-2004 John Graham-Cumming # # This file is part of POPFile --- 5,9 ---- # This module implements the base class for all POPFile proxy Modules # ! # Copyright (c) 2001-2005 John Graham-Cumming # # This file is part of POPFile *************** *** 59,66 **** $self->{pipe_cache__} = {}; ! # This is where we keep the session with the Classifier::Bayes ! # module ! $self->{api_session__} = ''; # This is the error message returned if the connection at any --- 59,65 ---- $self->{pipe_cache__} = {}; ! # Holds an administrator session ! $self->{api_session__} = undef; # This is the error message returned if the connection at any *************** *** 218,228 **** if ( my $client = $self->{server__}->accept() ) { - # Check to see if we have obtained a session key yet - - if ( $self->{api_session__} eq '' ) { - $self->{api_session__} = # PROFILE BLOCK START - $self->classifier_()->get_session_key( 'admin', '' ); # PROFILE BLOCK STOP - } - # Check that this is a connection from the local machine, # if it's not then we drop it immediately without any --- 217,220 ---- *************** *** 243,246 **** --- 235,242 ---- binmode( $client ); + if ( !defined( $self->{api_session__} ) ) { + $self->{api_session__} = $self->classifier_()->get_administrator_session_key(); + } + if ( $self->config_( 'force_fork' ) ) { my ( $pid, $pipe ) = &{$self->{forker_}}; *************** *** 468,471 **** --- 464,502 ---- # ---------------------------------------------------------------------------- # + # get_session_key_ + # + # Used by a proxy module to get a session key based on a token (usually an + # account name) + # + # $token The magic token + # + # Returns a session key if the token is associated with a user or undef + # + # ---------------------------------------------------------------------------- + sub get_session_key_ + { + my ( $self, $token ) = @_; + + return $self->classifier_()->get_session_key_from_token( $self->{api_session__}, $self->name(), $token ); + } + + # ---------------------------------------------------------------------------- + # + # release_session_key_ + # + # Release a session key obtained with get_session_key_ + # + # $session The session key to release + # + # ---------------------------------------------------------------------------- + sub release_session_key_ + { + my ( $self, $session ) = @_; + + $self->classifier_()->release_session_key( $session ); + } + + # ---------------------------------------------------------------------------- + # # verify_connected_ # *************** *** 474,481 **** # $hostname The host name of the remote server # $port The port ! # $ssl If set to 1 then the connection to the remote is established using SSL # ! # Check that we are connected to $hostname on port $port putting the open handle in $mail. ! # Any messages need to be sent to $client # # ---------------------------------------------------------------------------- --- 505,513 ---- # $hostname The host name of the remote server # $port The port ! # $ssl If set to 1 then the connection to the remote is established ! # using SSL # ! # Check that we are connected to $hostname on port $port putting the ! # open handle in $mail. Any messages need to be sent to $client # # ---------------------------------------------------------------------------- *************** *** 580,584 **** # configure_item # ! # $name The name of the item being configured, was passed in by the call # to register_configuration_item # $templ The loaded template --- 612,617 ---- # configure_item # ! # $name The name of the item being configured, was passed in by ! # the call # to register_configuration_item # $templ The loaded template Index: SMTP.pm =================================================================== RCS file: /cvsroot/popfile/engine/Proxy/SMTP.pm,v retrieving revision 1.40 retrieving revision 1.41 diff -C2 -d -r1.40 -r1.41 *** SMTP.pm 25 Feb 2005 21:53:54 -0000 1.40 --- SMTP.pm 7 Apr 2005 19:54:47 -0000 1.41 *************** *** 9,13 **** # This module handles proxying the SMTP protocol for POPFile. # ! # Copyright (c) 2001-2004 John Graham-Cumming # # This file is part of POPFile --- 9,13 ---- # This module handles proxying the SMTP protocol for POPFile. # ! # Copyright (c) 2001-2005 John Graham-Cumming # # This file is part of POPFile *************** *** 147,154 **** # child__ # ! # The worker method that is called when we get a good connection from a client # # $client - an open stream to a SMTP client ! # $session - API session key # # ---------------------------------------------------------------------------- --- 147,155 ---- # child__ # ! # The worker method that is called when we get a good connection from ! # a client # # $client - an open stream to a SMTP client ! # $session - administrator session # # ---------------------------------------------------------------------------- *************** *** 158,171 **** # Number of messages downloaded in this session my $count = 0; # The handle to the real mail server gets stored here my $mail; ! # Tell the client that we are ready for commands and identify our version number $self->tee_( $client, "220 " . $self->config_( 'welcome_string' ) . "$eol" ); ! # Retrieve commands from the client and process them until the client disconnects or ! # we get a specific QUIT command while ( <$client> ) { my $command; --- 159,177 ---- # Number of messages downloaded in this session + my $count = 0; # The handle to the real mail server gets stored here + my $mail; ! # Tell the client that we are ready for commands and identify our ! # version number ! $self->tee_( $client, "220 " . $self->config_( 'welcome_string' ) . "$eol" ); ! # Retrieve commands from the client and process them until the ! # client disconnects or we get a specific QUIT command ! while ( <$client> ) { my $command; |
From: John Graham-C. <jgr...@us...> - 2005-04-07 19:55:36
|
Update of /cvsroot/popfile/engine/Classifier In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21537/Classifier Modified Files: Bayes.pm popfile.sql Log Message: More work on v0.23.0 (Multi-user Support) Add account association and allow different users to log in. Users can be associated with specific accounts when POPFile is in multi-user mode. Currently every user has a blank password. Also cloning of per-bucket parameters is not working. Would love to have volunteers to do the following: 1. Test out the new functionality for account association 2. Write code to do per-bucket parameter cloning (see Bayes.pm TODO) 3. Write code to set/reset user passwords. --- Classifer/Bayes.pm: Add functions for handling account creation and deletion and mapping of accounts to users. Add new message called CREAT used to pass a child generated session to the parent. Proxy/Proxy.pm Proxy/POP3.pm: Add code for handling users associated with accounts and use it in the POP3 module to lookup users dynamically when they are logged in. UI/HTML.pm: Update UI to be able to handle different users using the cookie and changes to the History API. Add code to the users_page to handle account association on a per user basis. UI/HTTP.pm: Add url_decode_ and decode form parameters. POPFile/MQ.pm: Comment the CREAT message. POPFile/History.pm: Make history mechanism aware of different users so that different users get a different view of the history. skins/default/user_page.thtml: Add code for handling account association. languages/English.msg: Additional strings needed for the account handling. --- Once this is all working we can start to fix the test suite and nail down the v0.23.0 release. Index: Bayes.pm =================================================================== RCS file: /cvsroot/popfile/engine/Classifier/Bayes.pm,v retrieving revision 1.343 retrieving revision 1.344 diff -C2 -d -r1.343 -r1.344 *** Bayes.pm 24 Feb 2005 01:39:15 -0000 1.343 --- Bayes.pm 7 Apr 2005 19:54:41 -0000 1.344 *************** *** 9,13 **** # Bayes.pm --- Naive Bayes text classifier # ! # Copyright (c) 2001-2004 John Graham-Cumming # # This file is part of POPFile --- 9,13 ---- # Bayes.pm --- Naive Bayes text classifier # ! # Copyright (c) 2001-2005 John Graham-Cumming # # This file is part of POPFile *************** *** 104,107 **** --- 104,108 ---- $self->{db_delete_zero_words__} = 0; $self->{db_get_user_list__} = 0; + $self->{db_get_user_from_account__} = 0; # Caches the name of each bucket and relates it to both the bucket *************** *** 225,228 **** --- 226,230 ---- $self->mq_register_( 'COMIT', $self ); $self->mq_register_( 'RELSE', $self ); + $self->mq_register_( 'CREAT', $self ); $self->mq_register_( 'TICKD', $self ); *************** *** 253,256 **** --- 255,265 ---- } + if ( $type eq 'CREAT' ) { + my ( $session, $user ) = ( $message[0], $message[1] ); + $self->{api_sessions__}{$session} = $user; + $self->db_update_cache__( $session ); + $self->log_( 1, "CREAT message on $session for $user" ); + } + if ( $type eq 'TICKD' ) { $self->cleanup_orphan_words__(); *************** *** 702,705 **** --- 711,717 ---- 'select id, name from users order by name;' ); + $self->{db_get_user_from_account__} = $self->db_()->prepare( + 'select userid from accounts where account = ?' ); + # Get the mapping from parameter names to ids into a local hash *************** *** 752,755 **** --- 764,768 ---- $self->{db_delete_zero_words__}->finish; $self->{db_get_user_list__}->finish; + $self->{db_get_user_from_account__}->finish; } *************** *** 895,899 **** # assuming that the user name is admin with password '' ! my $session = $self->get_session_key( 'admin', '' ); if ( !defined( $session ) ) { --- 908,912 ---- # assuming that the user name is admin with password '' ! my $session = $self->get_administrator_session_key(); if ( !defined( $session ) ) { *************** *** 1446,1450 **** my $random = Crypt::Random::makerandom_octet( Length => 128, Strength => 1 ); my $now = time; ! return sha256_hex( "$random$now" ); } --- 1459,1463 ---- my $random = Crypt::Random::makerandom_octet( Length => 128, Strength => 1 ); my $now = time; ! return sha256_hex( "$$" . "$random$now" ); } *************** *** 1570,1574 **** #---------------------------------------------------------------------------- # ! # release_sessionss_key # # $session A session key previously returned by get_session_key --- 1583,1603 ---- #---------------------------------------------------------------------------- # ! # get_user_id_from_session ! # ! # $session A session key previously returned by get_session_key ! # ! # Returns the user ID associated with a session ! # ! #---------------------------------------------------------------------------- ! sub get_user_id_from_session ! { ! my ( $self, $session ) = @_; ! ! return $self->valid_session_key__( $session ); ! } ! ! #---------------------------------------------------------------------------- ! # ! # release_sessions_key # # $session A session key previously returned by get_session_key *************** *** 1586,1589 **** --- 1615,1701 ---- } + #---------------------------------------------------------------------------- + # + # get_administrator_session_key + # + # Returns a string based session key for the administrator. WARNING + # this is not for external use. This function bypasses all + # authentication checks and gives admin access. Should only be called + # in the top-level POPFile process. + # + #---------------------------------------------------------------------------- + sub get_administrator_session_key + { + my ( $self ) = @_; + + my $session = $self->generate_unique_session_key__(); + $self->{api_sessions__}{$session} = 1; + $self->db_update_cache__( $session ); + $self->log_( 1, "get_administrator_session_key returning key $session" ); + return $session; + } + + #---------------------------------------------------------------------------- + # + # get_session_key_from_token + # + # Gets a session key from a account token + # + # $session Valid administrator session + # $module Name of the module that is passing the token + # $token The token (usually an account name) + # + # Returns undef on failure or a session key + # + #---------------------------------------------------------------------------- + + sub get_session_key_from_token + { + my ( $self, $session, $module, $token ) = @_; + + # Verify that the user has an administrator session set up + + if ( $self->get_user_parameter( $session, 'GLOBAL_can_admin' ) != 1 ) { + return undef; + } + + # If we are in single user mode then simply return the + # administrator session for compatibility with old versions of + # POPFile. + + if ( $self->global_config_( 'single_user' ) == 1 ) { + return $session; + } + + # If the this is not the pop3 module then return the administrator + # session since there is currently no token matching for non-POP3 + # accounts. + + if ( $module ne 'pop3' ) { + return $session; + } + + # Check the token against the associations in the database and + # figure out which user is being talked about + + my $result = $self->{db_get_user_from_account__}->execute( "$module:$token" ); + if ( !defined( $result ) ) { + $self->log_( 1, "Unknown account $module:$token" ); + return undef; + } + my $user = $self->{db_get_user_from_account__}->fetchrow_arrayref->[0]; + + my $user_session = $self->generate_unique_session_key__(); + $self->{api_sessions__}{$user_session} = $user; + $self->db_update_cache__( $user_session ); + $self->log_( 1, "get_session_key_from_token returning key $user_session for user $self->{api_sessions__}{$user_session}" ); + + # Send the session to the parent so that it is recorded and can + # be correctly shutdown + + $self->mq_post_( 'CREAT', $user_session, $user ); + + return $user_session; + } #---------------------------------------------------------------------------- *************** *** 2592,2595 **** --- 2704,2813 ---- #---------------------------------------------------------------------------- # + # get_accounts (ADMIN ONLY) + # + # Returns a list of accounts associatd with the passed in user ID. This + # function is ADMIN ONLY. + # + # $session A valid session key returned by a call to get_session_key + # $id A user id + # + #---------------------------------------------------------------------------- + sub get_accounts + { + my ( $self, $session, $id ) = @_; + + # Check that this user is an administrator + + my $can_admin = $self->get_user_parameter( $session, 'GLOBAL_can_admin' ); + + if ( $can_admin != 1 ) { + return undef; + } + + # If user is an admin then grab the accounts for the user requested + + my $h = $self->db_()->prepare( "select account from accounts where userid = $id;" ); + $h->execute; + my @accounts; + while ( my $row = $h->fetchrow_arrayref ) { + push ( @accounts, $row->[0] ); + } + $h->finish; + + return @accounts; + } + + #---------------------------------------------------------------------------- + # + # add_account (ADMIN ONLY) + # + # Add an account associated with a user + # + # $session A valid session key returned by a call to get_session_key + # $id A user id + # $module The module adding the account + # $account The account to add + # + #---------------------------------------------------------------------------- + sub add_account + { + my ( $self, $session, $id, $module, $account ) = @_; + + # Check that this user is an administrator + + my $can_admin = $self->get_user_parameter( $session, 'GLOBAL_can_admin' ); + + if ( $can_admin != 1 ) { + return 0; + } + + # User is admin so try to insert the new account after checking to see + # if someone already has this account + + my $result = $self->{db_get_user_from_account__}->execute( "$module:$account" ); + if ( !defined( $result ) ) { + return 0; + } + if ( defined( $self->{db_get_user_from_account__}->fetchrow_arrayref ) ) { + return -1; + } + + $account = $self->db_()->quote( "$module:$account" ); + my $h = $self->db_()->prepare( "insert into accounts ( userid, account ) values ( $id, $account );" ); + if ( !defined( $h->execute ) ) { + return 0; + } + + return 1; + } + + #---------------------------------------------------------------------------- + # + # remove_account (ADMIN ONLY) + # + # Remove an account associated with a user + # + # $session A valid session key returned by a call to get_session_key + # $module The module removing the account + # $account The account to remove + # + #---------------------------------------------------------------------------- + sub remove_account + { + my ( $self, $session, $module, $account ) = @_; + + # Check that this user is an administrator + + my $can_admin = $self->get_user_parameter( $session, 'GLOBAL_can_admin' ); + + if ( $can_admin != 1 ) { + return 0; + } + + return $self->db_()->do( "delete from accounts where account = '$module:$account';" ); + } + + #---------------------------------------------------------------------------- + # # get_buckets # *************** *** 3064,3068 **** } ! $self->db_()->do( "insert into users ( name ) values ( '$new_user' );" ); my $id = $self->get_user_id( $session, $new_user ); --- 3282,3288 ---- } ! my $password = md5_hex( $new_user . '__popfile__' ); ! ! $self->db_()->do( "insert into users ( name, password ) values ( '$new_user', '$password' );" ); my $id = $self->get_user_id( $session, $new_user ); *************** *** 3090,3093 **** --- 3310,3331 ---- $self->db_()->do( "insert into user_params ( userid, utid, val ) values ( $id, $utid, '$add{$utid}' );" ); } + + # Clone buckets + + $h = $self->db_()->prepare( "select name, pseudo from buckets where userid = $clid;" ); + $h->execute; + my %buckets; + while ( my $row = $h->fetchrow_arrayref ) { + $buckets{$row->[0]} = $row->[1]; + } + $h->finish; + foreach my $name (keys %buckets) { + $self->db_()->do( "insert into buckets ( userid, name, pseudo ) values ( $id, '$name', $buckets{$name} );" ); + } + + # TODO clone bucket parameters + + # TODO assign a password + } Index: popfile.sql =================================================================== RCS file: /cvsroot/popfile/engine/Classifier/popfile.sql,v retrieving revision 1.24 retrieving revision 1.25 diff -C2 -d -r1.24 -r1.25 *** popfile.sql 26 Jan 2005 11:50:56 -0000 1.24 --- popfile.sql 7 Apr 2005 19:54:44 -0000 1.25 *************** *** 1,3 **** ! -- POPFILE SCHEMA 6 -- --------------------------------------------------------------------------- -- --- 1,3 ---- ! -- POPFILE SCHEMA 7 -- --------------------------------------------------------------------------- -- *************** *** 27,54 **** -- from there) -- ! -- +---------------+ +-----------------+ ! -- | user_template | | bucket_template | ! -- +---------------+ +-----------------+ ! -- | id |-----+ | id |---+ ! -- | name | | | name | | ! -- | def | | | def | | ! -- | form | | +-----------------+ | ! -- +---------------+ | | ! -- | | ! -- +---------------+ | +---------------+ | ! -- | user_params | | | bucket_params | | ! -- +---------------+ | +---------------+ | ! -- | id | | | id | | ! -- +---| userid | | +---| bucketid | | ! -- | | utid |-----+ | | btid |---+ ! -- | | val | | | val | ! -- | +---------------+ | +---------------+ ! -- | | +----------+ ! -- | | | matrix | +-------+ ! -- | | +---------+ +----------+ | words | ! -- | +----------+ | | buckets | | id | +-------+ ! -- | | users | | +---------+ | wordid |---| id | ! -- | +----------+ /--+---| id |=====---| bucketid | | word | ! -- +----==| id |-----(-------| userid | \ | times | +-------+ -- / | name | | | name | | | lastseen | -- | | password | | | pseudo | | +----------+ --- 27,55 ---- -- from there) -- ! -- +---------------+ +-----------------+ ! -- | user_template | | bucket_template | ! -- +---------------+ +-----------------+ ! -- | id |-----\ | id |---\ ! -- | name | | | name | | ! -- | def | | | def | | ! -- | form | | +----------+ +-----------------+ | ! -- +---------------+ | | accounts | | ! -- | +----------+ | ! -- +---------------+ | | id | +---------------+ | ! -- | user_params | | | userid |-\ | bucket_params | | ! -- +---------------+ | | account | | +---------------+ | ! -- | id | | +----------+ | | id | | ! -- /---| userid | | | /---| bucketid | | ! -- | | utid |-----/ | | | btid |-----/ ! -- | | val | | | | val | ! -- | +---------------+ /-------------------/ | +---------------+ ! -- | | | ! -- | | /-----------------/ +----------+ ! -- | | | | matrix | +-------+ ! -- | | | +---------+ +----------+ | words | ! -- | +----------+ | | | buckets | | id | +-------+ ! -- | | users | | | +---------+ | wordid |---| id | ! -- | +----------+ | /--+---| id |=====---| bucketid | | word | ! -- \----==| id |---+-(-------| userid | \ | times | +-------+ -- / | name | | | name | | | lastseen | -- | | password | | | pseudo | | +----------+ *************** *** 58,65 **** -- | | | magnets | | -- | +------------+ | +-----------+ | +--------------+ ! -- | | history | | +--| id | | | magnet_types | ! -- | +------------+ | | | bucketid |--+ +--------------+ -- | | id | | | | mtid |--------| id | ! -- +---| userid | | | | val | | mtype | -- | hdr_from | | | | seq | | header | -- | hdr_to | | | +-----------+ +--------------+ --- 59,66 ---- -- | | | magnets | | -- | +------------+ | +-----------+ | +--------------+ ! -- | | history | | /--| id | | | magnet_types | ! -- | +------------+ | | | bucketid |--/ +--------------+ -- | | id | | | | mtid |--------| id | ! -- \---| userid | | | | val | | mtype | -- | hdr_from | | | | seq | | header | -- | hdr_to | | | +-----------+ +--------------+ *************** *** 68,72 **** -- | bucketid |--+ | -- | usedtobe |--/ | ! -- | magnetid |--------+ -- | hdr_date | -- | inserted | --- 69,73 ---- -- | bucketid |--+ | -- | usedtobe |--/ | ! -- | magnetid |--------/ -- | hdr_date | -- | inserted | *************** *** 159,163 **** lastseen date, -- last time the record was read -- or written ! unique (wordid, bucketid) -- each word appears once in a bucket ); --- 160,165 ---- lastseen date, -- last time the record was read -- or written ! unique (wordid, bucketid) -- each word appears once in a ! -- bucket ); *************** *** 223,226 **** --- 225,244 ---- -- --------------------------------------------------------------------------- -- + -- accounts - the table of accounts (e.g. pop3:host:user) associated with + -- each user that is used by POPFile's multi-user mode + -- + -- --------------------------------------------------------------------------- + + create table accounts( id integer primary key, -- unique ID for this + -- entry + userid integer, -- User associated with + -- this account + account varchar(255), -- Account token + unique (account) -- Each account appears + -- once + ); + + -- --------------------------------------------------------------------------- + -- -- bucket_params - the table that relates buckets with bucket parameters -- (as defined in bucket_template) and specific values. *************** *** 549,554 **** insert into user_template ( name, def, form ) values ( 'html_show_configbars', 1, '%d' ); - - -- The adminisrator (user 1) can_admin --- 567,570 ---- |
From: John Graham-C. <jgr...@us...> - 2005-04-07 19:55:35
|
Update of /cvsroot/popfile/engine/POPFile In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21537/POPFile Modified Files: Configuration.pm History.pm MQ.pm Log Message: More work on v0.23.0 (Multi-user Support) Add account association and allow different users to log in. Users can be associated with specific accounts when POPFile is in multi-user mode. Currently every user has a blank password. Also cloning of per-bucket parameters is not working. Would love to have volunteers to do the following: 1. Test out the new functionality for account association 2. Write code to do per-bucket parameter cloning (see Bayes.pm TODO) 3. Write code to set/reset user passwords. --- Classifer/Bayes.pm: Add functions for handling account creation and deletion and mapping of accounts to users. Add new message called CREAT used to pass a child generated session to the parent. Proxy/Proxy.pm Proxy/POP3.pm: Add code for handling users associated with accounts and use it in the POP3 module to lookup users dynamically when they are logged in. UI/HTML.pm: Update UI to be able to handle different users using the cookie and changes to the History API. Add code to the users_page to handle account association on a per user basis. UI/HTTP.pm: Add url_decode_ and decode form parameters. POPFile/MQ.pm: Comment the CREAT message. POPFile/History.pm: Make history mechanism aware of different users so that different users get a different view of the history. skins/default/user_page.thtml: Add code for handling account association. languages/English.msg: Additional strings needed for the account handling. --- Once this is all working we can start to fix the test suite and nail down the v0.23.0 release. Index: History.pm =================================================================== RCS file: /cvsroot/popfile/engine/POPFile/History.pm,v retrieving revision 1.35 retrieving revision 1.36 diff -C2 -d -r1.35 -r1.36 *** History.pm 11 Jan 2005 07:53:06 -0000 1.35 --- History.pm 7 Apr 2005 19:54:45 -0000 1.36 *************** *** 124,127 **** --- 124,133 ---- my ( $self ) = @_; + # Clean up any remaining queries + + foreach my $id (keys %{$self->{queries__}}) { + $self->stop_query( $id ); + } + # Commit any remaining history items. This is needed because it's # possible that we get called with a stop after things have been *************** *** 826,833 **** # stop_query. # #---------------------------------------------------------------------------- sub start_query { ! my ( $self ) = @_; # Think of a large random number, make sure that it hasn't --- 832,841 ---- # stop_query. # + # session API session + # #---------------------------------------------------------------------------- sub start_query { ! my ( $self, $session ) = @_; # Think of a large random number, make sure that it hasn't *************** *** 838,841 **** --- 846,851 ---- if ( !defined( $self->{queries__}{$id} ) ) { + $self->{queries__}{$id}{session} = $session; + $self->{queries__}{$id}{userid} = $self->classifier_()->get_user_id_from_session( $session ); $self->{queries__}{$id}{query} = 0; $self->{queries__}{$id}{count} = 0; *************** *** 863,870 **** # we fill call finish to clean up ! my $q = $self->{queries__}{$id}{query}; ! if ( ( defined $q ) && ( $q != 0 ) && ( $q->{Active} ) ) { ! $q->finish; } --- 873,882 ---- # we fill call finish to clean up ! if ( exists( $self->{queries__}{$id} ) ) { ! my $q = $self->{queries__}{$id}{query}; ! if ( ( defined $q ) && ( $q != 0 ) && ( $q->{Active} ) ) { ! $q->finish; ! } } *************** *** 906,911 **** # to retrieve it all ! $self->{queries__}{$id}{base} = 'select XXX from ! history, buckets, magnets where history.userid = 1 and committed = 1'; $self->{queries__}{$id}{base} .= ' and history.bucketid = buckets.id'; --- 918,925 ---- # to retrieve it all ! my $userid = $self->{queries__}{$id}{userid}; ! ! $self->{queries__}{$id}{base} = "select XXX from history, buckets, ! magnets where history.userid = $userid and committed = 1"; $self->{queries__}{$id}{base} .= ' and history.bucketid = buckets.id'; *************** *** 932,940 **** " and history.magnetid $equal 0"; } else { - my $session = $self->classifier_()->get_session_key( - 'admin', '' ); my $bucketid = $self->classifier_()->get_bucket_id( ! $session, $filter ); ! $self->classifier_()->release_session_key( $session ); $self->{queries__}{$id}{base} .= " and history.bucketid $not_equal $bucketid"; --- 946,951 ---- " and history.magnetid $equal 0"; } else { my $bucketid = $self->classifier_()->get_bucket_id( ! $self->{queries__}{$id}{session}, $filter ); $self->{queries__}{$id}{base} .= " and history.bucketid $not_equal $bucketid"; *************** *** 1137,1141 **** if ( $#msgs != -1 ) { ! my $session = $self->classifier_()->get_session_key( 'admin', '' ); print "\nFound old history files, moving them into database\n "; --- 1148,1152 ---- if ( $#msgs != -1 ) { ! my $session = $self->classifier_()->get_administrator_session_key(); print "\nFound old history files, moving them into database\n "; Index: MQ.pm =================================================================== RCS file: /cvsroot/popfile/engine/POPFile/MQ.pm,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -d -r1.20 -r1.21 *** MQ.pm 28 Feb 2005 12:36:04 -0000 1.20 --- MQ.pm 7 Apr 2005 19:54:45 -0000 1.21 *************** *** 40,44 **** # RELSE Sent when a session key is being released by a client # ! # Copyright (c) 2001-2004 John Graham-Cumming # # This file is part of POPFile --- 40,48 ---- # RELSE Sent when a session key is being released by a client # ! # CREAT A sub-process has created a session key so send the session ! # to the parent so that it can be released by the parent ! # process at the right moment and used for API access ! # ! # Copyright (c) 2001-2005 John Graham-Cumming # # This file is part of POPFile Index: Configuration.pm =================================================================== RCS file: /cvsroot/popfile/engine/POPFile/Configuration.pm,v retrieving revision 1.54 retrieving revision 1.55 diff -C2 -d -r1.54 -r1.55 *** Configuration.pm 4 Jan 2005 22:50:37 -0000 1.54 --- Configuration.pm 7 Apr 2005 19:54:44 -0000 1.55 *************** *** 118,121 **** --- 118,128 ---- $self->global_config_( 'message_cutoff', 100000 ); + # Set to 1 if POPFile only supports a single user (the + # administrator) This is the default setting and mirrors the up + # until v0.23.0 operation of POPFile as a single user program. If + # set to 0 then multiple users are supported. + + $self->global_config_( 'single_user', 1 ); + # Register for the TICKD message which is sent hourly by the # Logger module. We use this to hourly save the configuration file |
From: John Graham-C. <jgr...@us...> - 2005-04-07 19:55:35
|
Update of /cvsroot/popfile/engine/UI In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21537/UI Modified Files: HTML.pm HTTP.pm Log Message: More work on v0.23.0 (Multi-user Support) Add account association and allow different users to log in. Users can be associated with specific accounts when POPFile is in multi-user mode. Currently every user has a blank password. Also cloning of per-bucket parameters is not working. Would love to have volunteers to do the following: 1. Test out the new functionality for account association 2. Write code to do per-bucket parameter cloning (see Bayes.pm TODO) 3. Write code to set/reset user passwords. --- Classifer/Bayes.pm: Add functions for handling account creation and deletion and mapping of accounts to users. Add new message called CREAT used to pass a child generated session to the parent. Proxy/Proxy.pm Proxy/POP3.pm: Add code for handling users associated with accounts and use it in the POP3 module to lookup users dynamically when they are logged in. UI/HTML.pm: Update UI to be able to handle different users using the cookie and changes to the History API. Add code to the users_page to handle account association on a per user basis. UI/HTTP.pm: Add url_decode_ and decode form parameters. POPFile/MQ.pm: Comment the CREAT message. POPFile/History.pm: Make history mechanism aware of different users so that different users get a different view of the history. skins/default/user_page.thtml: Add code for handling account association. languages/English.msg: Additional strings needed for the account handling. --- Once this is all working we can start to fix the test suite and nail down the v0.23.0 release. Index: HTML.pm =================================================================== RCS file: /cvsroot/popfile/engine/UI/HTML.pm,v retrieving revision 1.347 retrieving revision 1.348 diff -C2 -d -r1.347 -r1.348 *** HTML.pm 16 Mar 2005 20:52:31 -0000 1.347 --- HTML.pm 7 Apr 2005 19:54:49 -0000 1.348 *************** *** 200,207 **** my ( $self ) = @_; - # Get a query session with the History object - - $self->{q__} = $self->history_()->start_query(); - # Ensure that the messages subdirectory exists --- 200,203 ---- *************** *** 244,251 **** foreach my $session (keys %{$self->{sessions__}}) { $self->classifier_()->release_session_key( $session ); } - $self->history_()->stop_query( $self->{q__} ); - $self->SUPER::stop(); } --- 240,246 ---- foreach my $session (keys %{$self->{sessions__}}) { $self->classifier_()->release_session_key( $session ); + $self->history_()->stop_query( $self->{sessions__}{$session}{q} ); } $self->SUPER::stop(); } *************** *** 359,362 **** --- 354,358 ---- $self->{sessions__}{$session}{search} = ''; $self->{sessions__}{$session}{negate} = ''; + $self->{sessions__}{$session}{q} = $self->history_()->start_query( $session ); return $session; *************** *** 453,456 **** --- 449,466 ---- } + # In single user mode get the administrator key + + if ( !defined( $session ) && + $self->global_config_( 'single_user' ) ) { + $session = $self->classifier_()->get_administrator_session_key(); + $self->{sessions__}{$session}{lastused} = time; + $self->{sessions__}{$session}{user} = 1; + $self->{sessions__}{$session}{sort} = ''; + $self->{sessions__}{$session}{filter} = ''; + $self->{sessions__}{$session}{search} = ''; + $self->{sessions__}{$session}{negate} = ''; + $self->{sessions__}{$session}{q} = $self->history_()->start_query( $session ); + } + # See if there are any form parameters and if there are parse them # into the %form hash *************** *** 606,610 **** # If we don't have a valid session key, then insist that the user # log in, or check the username and password for validity, if they ! # are valid then create the session now if ( !defined( $session ) ) { --- 616,621 ---- # If we don't have a valid session key, then insist that the user # log in, or check the username and password for validity, if they ! # are valid then create the session now. In single user mode get ! # the key if ( !defined( $session ) ) { *************** *** 613,616 **** --- 624,628 ---- $self->http_redirect_( $client, '/', $session ); } + return 1; } *************** *** 716,721 **** } ! &{$method}( $self, $client, ! $self->load_template__( $template, $url, $session ), $template, $url, $session ); return 1; --- 728,739 ---- } ! # No logout button in single user mode ! ! my $templ = $self->load_template__( $template, $url, $session ); ! if ( $self->global_config_( 'single_user' ) ) { ! $templ->param( 'Header_If_SingleUser' => 1 ); ! } ! ! &{$method}( $self, $client, $templ, $template, $url, $session ); return 1; *************** *** 1319,1322 **** --- 1337,1347 ---- $page, $session ); + # Handle single user mode + + if ( defined( $self->{form_}{usermode} ) ) { + $self->global_config_( 'single_user', $self->{form_}{singleuser} ); + } + $templ->param( 'Users_If_Single' => $self->global_config_( 'single_user' ) ); + # Handle user creation *************** *** 1368,1371 **** --- 1393,1425 ---- } + # Handle adding an account to a user + + if ( defined( $self->{form_}{addaccount} ) ) { + if ( ( $self->{form_}{newaccount} ne '' ) && + ( $self->{form_}{newaccount} =~ /^.+:.+$/ ) ) { + my $id = $self->classifier_()->get_user_id( $session, $self->{form_}{editname} ); + my $result = $self->classifier_()->add_account( $session, $id, 'pop3', $self->{form_}{newaccount} ); + if ( $result == -1 ) { + $self->error_message__( $templ, $self->{language__}{Users_Duplicate_Account} ); + } else { + if ( $result == 0 ) { + $self->error_message__( $templ, $self->{language__}{Users_Failed_Account} ); + } + } + } else { + $self->error_message__( $templ, $self->{language__}{Users_Bad_Account} ); + } + } + + # Handle removing accounts for a user + + if ( defined( $self->{form_}{delete} ) ) { + foreach my $key (keys %{$self->{form_}}) { + if ( $key =~ /^remove_(.+)/ ) { + $self->classifier_()->remove_account( $session, 'pop3', $1 ); + } + } + } + my $users = $self->classifier_()->get_user_list( $session ); *************** *** 1411,1414 **** --- 1465,1484 ---- $templ->param( 'Users_If_Editing_User' => 1 ); $templ->param( 'Users_Edit_User_Name' => $self->{form_}{editname} ); + + # Handle POP3 account association + + my @accounts = $self->classifier_()->get_accounts( $session, $id ); + + $templ->param( 'Users_If_Accounts' => ( $#accounts > -1 ) ); + if ( $#accounts > -1 ) { + my @account_data; + for my $account (@accounts) { + my %row_data; + $account =~ s/[^:]+://; + $row_data{Account} = $account; + push( @account_data, \%row_data ); + } + $templ->param( 'Users_Loop_Accounts' => \@account_data ); + } } *************** *** 2361,2368 **** my $dots = 0; my @nav_data; ! while ( $i < $self->history_()->get_query_size( $self->{q__} ) ) { my %row_data; if ( ( $i == 0 ) || ! ( ( $i + $self->user_config_( $self->{sessions__}{$session}{user}, 'page_size' ) ) >= $self->history_()->get_query_size( $self->{q__} ) ) || ( ( ( $i - 2 * $self->user_config_( $self->{sessions__}{$session}{user}, 'page_size' ) ) <= $start_message ) && ( ( $i + 2 * $self->user_config_( $self->{sessions__}{$session}{user}, 'page_size' ) ) >= $start_message ) ) ) { --- 2431,2439 ---- my $dots = 0; my @nav_data; ! my $q = $self->{sessions__}{$session}{q}; ! while ( $i < $self->history_()->get_query_size( $q ) ) { my %row_data; if ( ( $i == 0 ) || ! ( ( $i + $self->user_config_( $self->{sessions__}{$session}{user}, 'page_size' ) ) >= $self->history_()->get_query_size( $q ) ) || ( ( ( $i - 2 * $self->user_config_( $self->{sessions__}{$session}{user}, 'page_size' ) ) <= $start_message ) && ( ( $i + 2 * $self->user_config_( $self->{sessions__}{$session}{user}, 'page_size' ) ) >= $start_message ) ) ) { *************** *** 2390,2394 **** $templ->param( 'History_Navigator_Loop' => \@nav_data ); ! if ( $start_message < ( $self->history_()->get_query_size( $self->{q__} ) - $self->user_config_( $self->{sessions__}{$session}{user}, 'page_size' ) ) ) { $templ->param( 'History_Navigator_If_Next' => 1 ); $templ->param( 'History_Navigator_Next' => $start_message + $self->user_config_( $self->{sessions__}{$session}{user}, 'page_size' ) ); --- 2461,2465 ---- $templ->param( 'History_Navigator_Loop' => \@nav_data ); ! if ( $start_message < ( $self->history_()->get_query_size( $q ) - $self->user_config_( $self->{sessions__}{$session}{user}, 'page_size' ) ) ) { $templ->param( 'History_Navigator_If_Next' => 1 ); $templ->param( 'History_Navigator_Next' => $start_message + $self->user_config_( $self->{sessions__}{$session}{user}, 'page_size' ) ); *************** *** 2538,2542 **** my $destination = ( $self->{form_}{jumptopage} - 1 ) * $self->user_config_( $self->{sessions__}{$session}{user}, 'page_size' ); ! my $maximum = $self->history_()->get_query_size( $self->{q__} ); if ( $destination <= $maximum && $destination > 0 ) { --- 2609,2614 ---- my $destination = ( $self->{form_}{jumptopage} - 1 ) * $self->user_config_( $self->{sessions__}{$session}{user}, 'page_size' ); ! my $q = $self->{sessions__}{$session}{q}; ! my $maximum = $self->history_()->get_query_size( $q ); if ( $destination <= $maximum && $destination > 0 ) { *************** *** 2682,2693 **** } # Handle clearing the history files, there are two options here, # clear the current page or clear all the files in the cache if ( defined( $self->{form_}{clearall} ) ) { ! $self->history_()->delete_query( $self->{q__} ); } ! $self->history_()->set_query( $self->{q__}, $self->{form_}{filter}, $self->{form_}{search}, --- 2754,2767 ---- } + my $q = $self->{sessions__}{$session}{q}; + # Handle clearing the history files, there are two options here, # clear the current page or clear all the files in the cache if ( defined( $self->{form_}{clearall} ) ) { ! $self->history_()->delete_query( $q ); } ! $self->history_()->set_query( $q, $self->{form_}{filter}, $self->{form_}{search}, *************** *** 2709,2713 **** $templ->param( 'History_Field_Sort' => $self->{form_}{sort} ); $templ->param( 'History_Field_Filter' => $self->{form_}{filter} ); ! $templ->param( 'History_If_MultiPage' => $self->user_config_( $self->{sessions__}{$session}{user}, 'page_size' ) <= $self->history_()->get_query_size( $self->{q__} ) ); my @buckets = $self->classifier_()->get_buckets( $session ); --- 2783,2787 ---- $templ->param( 'History_Field_Sort' => $self->{form_}{sort} ); $templ->param( 'History_Field_Filter' => $self->{form_}{filter} ); ! $templ->param( 'History_If_MultiPage' => $self->user_config_( $self->{sessions__}{$session}{user}, 'page_size' ) <= $self->history_()->get_query_size( $q ) ); my @buckets = $self->classifier_()->get_buckets( $session ); *************** *** 2739,2743 **** $templ->param( 'History_Field_Not' => ($self->{form_}{negate} ne '')?'checked':'' ); ! my $c = $self->history_()->get_query_size( $self->{q__} ); if ( $c > 0 ) { $templ->param( 'History_If_Some_Messages' => 1 ); --- 2813,2817 ---- $templ->param( 'History_Field_Not' => ($self->{form_}{negate} ne '')?'checked':'' ); ! my $c = $self->history_()->get_query_size( $q ); if ( $c > 0 ) { $templ->param( 'History_If_Some_Messages' => 1 ); *************** *** 2756,2760 **** my $stop_message = $start_message + $self->user_config_( $self->{sessions__}{$session}{user}, 'page_size' ) - 1; ! $stop_message = $self->history_()->get_query_size( $self->{q__} ) - 1 if ( $stop_message >= $self->history_()->get_query_size( $self->{q__} ) ); $self->set_history_navigator__( $templ, $start_message, $stop_message, $session ); --- 2830,2834 ---- my $stop_message = $start_message + $self->user_config_( $self->{sessions__}{$session}{user}, 'page_size' ) - 1; ! $stop_message = $self->history_()->get_query_size( $q ) - 1 if ( $stop_message >= $self->history_()->get_query_size( $q ) ); $self->set_history_navigator__( $templ, $start_message, $stop_message, $session ); *************** *** 2807,2811 **** my @rows = $self->history_()->get_query_rows( ! $self->{q__}, $start_message+1, $stop_message - $start_message + 1 ); --- 2881,2885 ---- my @rows = $self->history_()->get_query_rows( ! $q, $start_message+1, $stop_message - $start_message + 1 ); Index: HTTP.pm =================================================================== RCS file: /cvsroot/popfile/engine/UI/HTTP.pm,v retrieving revision 1.29 retrieving revision 1.30 diff -C2 -d -r1.29 -r1.30 *** HTTP.pm 15 Feb 2005 04:23:53 -0000 1.29 --- HTTP.pm 7 Apr 2005 19:54:53 -0000 1.30 *************** *** 316,320 **** while ( $arguments =~ m/\G(.*?)=(.*?)(&|\r|\n|$)/g ) { ! my $arg = $1; my $need_array = defined( $self->{form_}{$arg} ); --- 316,320 ---- while ( $arguments =~ m/\G(.*?)=(.*?)(&|\r|\n|$)/g ) { ! my $arg = $self->url_decode_( $1 ); my $need_array = defined( $self->{form_}{$arg} ); *************** *** 363,366 **** --- 363,385 ---- # ---------------------------------------------------------------------------- # + # url_decode_ + # + # $text Text to decode from URL safety + # + # Decode text in a URL + # + # ---------------------------------------------------------------------------- + sub url_decode_ + { + my ( $self, $text ) = @_; + + $text =~ s/\+/ /; + $text =~ s/(%([A-F0-9][A-F0-9]))/chr(hex($2))/eg; + + return $text; + } + + # ---------------------------------------------------------------------------- + # # http_error_ - Output a standard HTTP error message # |
From: John Graham-C. <jgr...@us...> - 2005-04-07 19:55:35
|
Update of /cvsroot/popfile/engine/Services In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21537/Services Modified Files: IMAP.pm Log Message: More work on v0.23.0 (Multi-user Support) Add account association and allow different users to log in. Users can be associated with specific accounts when POPFile is in multi-user mode. Currently every user has a blank password. Also cloning of per-bucket parameters is not working. Would love to have volunteers to do the following: 1. Test out the new functionality for account association 2. Write code to do per-bucket parameter cloning (see Bayes.pm TODO) 3. Write code to set/reset user passwords. --- Classifer/Bayes.pm: Add functions for handling account creation and deletion and mapping of accounts to users. Add new message called CREAT used to pass a child generated session to the parent. Proxy/Proxy.pm Proxy/POP3.pm: Add code for handling users associated with accounts and use it in the POP3 module to lookup users dynamically when they are logged in. UI/HTML.pm: Update UI to be able to handle different users using the cookie and changes to the History API. Add code to the users_page to handle account association on a per user basis. UI/HTTP.pm: Add url_decode_ and decode form parameters. POPFile/MQ.pm: Comment the CREAT message. POPFile/History.pm: Make history mechanism aware of different users so that different users get a different view of the history. skins/default/user_page.thtml: Add code for handling account association. languages/English.msg: Additional strings needed for the account handling. --- Once this is all working we can start to fix the test suite and nail down the v0.23.0 release. Index: IMAP.pm =================================================================== RCS file: /cvsroot/popfile/engine/Services/IMAP.pm,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** IMAP.pm 16 Mar 2005 22:03:48 -0000 1.17 --- IMAP.pm 7 Apr 2005 19:54:48 -0000 1.18 *************** *** 9,13 **** # IMAP.pm --- a module to use POPFile for an IMAP connection. # ! # Copyright (c) 2001-2004 John Graham-Cumming # # This file is part of POPFile --- 9,13 ---- # IMAP.pm --- a module to use POPFile for an IMAP connection. # ! # Copyright (c) 2001-2005 John Graham-Cumming # # This file is part of POPFile *************** *** 225,235 **** # Check to see if we have obtained a session key yet if ( $self->{api_session__} eq '' ) { ! $self->{api_session__} = $self->classifier_()->get_session_key( 'admin', '' ); } ! # Since say__() as well as get_response__() can throw an exception, i.e. die if ! # they detect a lost connection, we eval the following code to be able ! # to catch the exception. We also tell Perl to ignore broken pipes. eval { --- 225,237 ---- # Check to see if we have obtained a session key yet + if ( $self->{api_session__} eq '' ) { ! $self->{api_session__} = $self->classifier_()->get_administrator_session_key(); } ! # Since say__() as well as get_response__() can throw an ! # exception, i.e. die if they detect a lost connection, we ! # eval the following code to be able to catch the ! # exception. We also tell Perl to ignore broken pipes. eval { *************** *** 268,282 **** --- 270,291 ---- # Reset the hash containing the hash values we have just seen. + $self->{hash_values__} = (); } }; + # if an exception occurred, we try to catch it here + if ( $@ ) { + # say__() and get_response__() will die with this message: + if ( $@ =~ /The connection to the IMAP server was lost/ ) { $self->log_( 0, $@ ); } + # If we didn't die but somebody else did, we have empathy. + else { die $@; *************** *** 318,325 **** $self->log_( 1, "Building list of serviced folders." ); ! # At this point, we simply reset the folders hash. ! # This isn't really elegant because it will leave dangling connections ! # if we have already been connected. But I trust in Perl's garbage collection ! # and keep my fingers crossed. %{$self->{folders__}} = (); --- 327,334 ---- $self->log_( 1, "Building list of serviced folders." ); ! # At this point, we simply reset the folders hash. This isn't ! # really elegant because it will leave dangling connections if we ! # have already been connected. But I trust in Perl's garbage ! # collection and keep my fingers crossed. %{$self->{folders__}} = (); *************** *** 340,347 **** } ! # If this is a new POPFile installation that isn't yet ! # configured, our hash will have exactly one key now ! # which will point to the INBOX. Since this isn't enough ! # to do anything meaningful, we simply reset the hash: if ( ( keys %{$self->{folders__}} ) == 1 ) { --- 349,356 ---- } ! # If this is a new POPFile installation that isn't yet configured, ! # our hash will have exactly one key now which will point to the ! # INBOX. Since this isn't enough to do anything meaningful, we ! # simply reset the hash: if ( ( keys %{$self->{folders__}} ) == 1 ) { *************** *** 358,365 **** # connect_folders__ # ! # This function will iterate over each folder found in the %{$self->{folders__}} ! # hash. For each folder it will try to establish a connection, log in, and select ! # the folder. ! # The corresponding socket object, will be stored in # $self->{folders__}{$folder}{imap} # --- 367,374 ---- # connect_folders__ # ! # This function will iterate over each folder found in the ! # %{$self->{folders__}} hash. For each folder it will try to ! # establish a connection, log in, and select the folder. The ! # corresponding socket object, will be stored in # $self->{folders__}{$folder}{imap} # *************** *** 471,478 **** # scan_folder # ! # This function scans a folder on the IMAP server. ! # According to the attributes of a folder (watched, output), and the attributes ! # of the message (new, classified, etc) it then decides what to do with the ! # messages. # There are currently three possible actions: # 1. Classify the message and move to output folder --- 480,487 ---- # scan_folder # ! # This function scans a folder on the IMAP server. According to the ! # attributes of a folder (watched, output), and the attributes of ! # the message (new, classified, etc) it then decides what to do with ! # the messages. # There are currently three possible actions: # 1. Classify the message and move to output folder *************** *** 584,591 **** # classify_message # ! # This function takes a message UID and then tries to classify the corresponding ! # message to a POPFile bucket. It delegates all the house-keeping that keeps ! # the POPFile statistics up to date to helper functions, but the house-keeping ! # is done. The caller need not worry about this. # # Arguments: --- 593,601 ---- # classify_message # ! # This function takes a message UID and then tries to classify the ! # corresponding message to a POPFile bucket. It delegates all the ! # house-keeping that keeps the POPFile statistics up to date to ! # helper functions, but the house-keeping is done. The caller need ! # not worry about this. # # Arguments: *************** *** 702,709 **** # reclassify_message # ! # This function takes a message UID and then tries to reclassify the corresponding ! # message from one POPFile bucket to another POPFile bucket. It delegates all the ! # house-keeping that keeps the POPFile statistics up to date to helper functions, ! # but the house-keeping # is done. The caller need not worry about this. # --- 712,719 ---- # reclassify_message # ! # This function takes a message UID and then tries to reclassify the ! # corresponding message from one POPFile bucket to another POPFile ! # bucket. It delegates all the house-keeping that keeps the POPFile ! # statistics up to date to helper functions, but the house-keeping # is done. The caller need not worry about this. # *************** *** 1103,1108 **** # raw_get_response # ! # Get a response from our server. You should normally not need to call this function ! # directly. Use get_response__ instead. # # Arguments: --- 1113,1118 ---- # raw_get_response # ! # Get a response from our server. You should normally not need to ! # call this function directly. Use get_response__ instead. # # Arguments: *************** *** 1161,1166 **** $octet_count += length $buf; ! # There doesn't seem to be a requirement for the message to end with ! # a newline. So we cannot go for equality if ( $octet_count >= $count_octets ) { --- 1171,1176 ---- $octet_count += length $buf; ! # There doesn't seem to be a requirement for the message ! # to end with a newline. So we cannot go for equality if ( $octet_count >= $count_octets ) { *************** *** 1202,1207 **** } ! # This could happen, but will be caught by the eval in service(). ! # Nevertheless, we look out for unsolicited bye-byes here. if ( $untagged_response =~ /^BYE/ && $last_command !~ /^LOGOUT/ ) { --- 1212,1218 ---- } ! # This could happen, but will be caught by the eval in ! # service(). Nevertheless, we look out for ! # unsolicited bye-byes here. if ( $untagged_response =~ /^BYE/ && $last_command !~ /^LOGOUT/ ) { *************** *** 1252,1258 **** # get_response__ # ! # Use this function to get a response from the server. The response will be stored in ! # $self->{last_response__} if you pass in a socket object or in ! # $self->{folders}{$folder}{last_response} if you pass in a folder name # # Arguments: --- 1263,1270 ---- # get_response__ # ! # Use this function to get a response from the server. The response ! # will be stored in $self->{last_response__} if you pass in a socket ! # object or in $self->{folders}{$folder}{last_response} if you pass in ! # a folder name # # Arguments: *************** *** 1318,1323 **** # get_mailbox_list # ! # Request a list of mailboxes from the server behind the passed in socket object. ! # The list is stored away in @{$self->{mailboxes__}} and returned. # # Arguments: --- 1330,1336 ---- # get_mailbox_list # ! # Request a list of mailboxes from the server behind the passed in ! # socket object. The list is stored away in @{$self->{mailboxes__}} ! # and returned. # # Arguments: |
From: John Graham-C. <jgr...@us...> - 2005-04-07 19:55:24
|
Update of /cvsroot/popfile/engine/skins/default In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21537/skins/default Modified Files: common-middle.thtml users-page.thtml Log Message: More work on v0.23.0 (Multi-user Support) Add account association and allow different users to log in. Users can be associated with specific accounts when POPFile is in multi-user mode. Currently every user has a blank password. Also cloning of per-bucket parameters is not working. Would love to have volunteers to do the following: 1. Test out the new functionality for account association 2. Write code to do per-bucket parameter cloning (see Bayes.pm TODO) 3. Write code to set/reset user passwords. --- Classifer/Bayes.pm: Add functions for handling account creation and deletion and mapping of accounts to users. Add new message called CREAT used to pass a child generated session to the parent. Proxy/Proxy.pm Proxy/POP3.pm: Add code for handling users associated with accounts and use it in the POP3 module to lookup users dynamically when they are logged in. UI/HTML.pm: Update UI to be able to handle different users using the cookie and changes to the History API. Add code to the users_page to handle account association on a per user basis. UI/HTTP.pm: Add url_decode_ and decode form parameters. POPFile/MQ.pm: Comment the CREAT message. POPFile/History.pm: Make history mechanism aware of different users so that different users get a different view of the history. skins/default/user_page.thtml: Add code for handling account association. languages/English.msg: Additional strings needed for the account handling. --- Once this is all working we can start to fix the test suite and nail down the v0.23.0 release. Index: users-page.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/users-page.thtml,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** users-page.thtml 15 Feb 2005 04:23:55 -0000 1.2 --- users-page.thtml 7 Apr 2005 19:55:09 -0000 1.3 *************** *** 2,5 **** --- 2,21 ---- <TMPL_INCLUDE NAME="common-middle.thtml"> + <form action="/users" method="post"> + <table cellpadding="10%" cellspacing="0" class="settingsTable" width="100%"> + <tr> + <td class="settingsPanel" valign="top"> + + <TMPL_IF NAME="Users_If_Single"> + <span class="securityWidgetStateOn"><TMPL_VAR NAME="Localize_Users_SingleUserMode"><br /><TMPL_VAR NAME="Localize_Yes"></span> + <input type="submit" class="submit toggleOn" name="usermode" value="<TMPL_VAR NAME="Localize_ChangeToNo">" /> + <input type="hidden" name="singleuser" value="0"> + </td></tr></table></form> + <TMPL_ELSE> + <span class="securityWidgetStateOff"><TMPL_VAR NAME="Localize_Users_SingleUserMode"><br /><TMPL_VAR NAME="Localize_No"></span> + <input type="submit" class="submit toggleOn" name="usermode" value="<TMPL_VAR NAME="Localize_ChangeToYes">" /> + <input type="hidden" name="singleuser" value="1"> + </td></tr></table></form> + <table cellpadding="10%" cellspacing="0" class="settingsTable" width="100%"> <tr> *************** *** 52,61 **** <input type="submit" class="submit" name="edituser" value="<TMPL_VAR NAME="Localize_Edit">" /> - <br /> <TMPL_IF NAME="Users_If_Editing_User"> <br /><hr /> <h3><TMPL_VAR NAME="Localize_Users_Parameters"> (<TMPL_VAR NAME="Users_Edit_User_Name">)</h3> <table width="100%"> <tr> --- 68,131 ---- <input type="submit" class="submit" name="edituser" value="<TMPL_VAR NAME="Localize_Edit">" /> + </form> <TMPL_IF NAME="Users_If_Editing_User"> <br /><hr /> + <h3><TMPL_VAR NAME="Localize_Users_Accounts"> (<TMPL_VAR NAME="Users_Edit_User_Name">)</h3> + + <form action="/users" method="post"> + <TMPL_IF NAME="Users_If_Accounts"> + <table width="75%" class="accountsTable" summary="<TMPL_VAR NAME="Localize_Users_AccountTableSummary">"> + <tr> + <th class="usersLabel" scope="col" align="left"> + <TMPL_VAR NAME="Localize_Account"> + </th> + <th class="usersLabel" scope="col"> + <TMPL_VAR NAME="Localize_Remove"> + </th> + </tr> + + <TMPL_LOOP NAME="Users_Loop_Accounts"> + + <TMPL_IF NAME="__odd__"> + <tr class="rowOdd"> + <TMPL_ELSE> + <tr class="rowEven"> + </TMPL_IF> + + <td> + <TMPL_VAR NAME="Account"> + </td> + <td align="center"> + <input type="checkbox" class="checkbox" name="remove_<TMPL_VAR NAME="Account">" /> + <TMPL_VAR NAME="Localize_Remove"> + </td> + </tr> + + </TMPL_LOOP> <!-- Loop Accounts --> + + <tr> + <td> + </td> + <td align="center"> + <input type="submit" class="submit deleteButton" name="delete" value="<TMPL_VAR NAME="Localize_Remove">" /> + </td> + </tr> + </table> + <br /> + </TMPL_IF> + + <TMPL_VAR NAME="Localize_Users_AddAccount">: + <input type="text" value="" name="newaccount"> + <input type="submit" name="addaccount" value="<TMPL_VAR NAME="Localize_Add">"> + + <input type="hidden" name="editname" value="<TMPL_VAR NAME="Users_Edit_User_Name">" /> + <input type="hidden" name="edituser" value="<TMPL_VAR NAME="Users_Edit_User_Name">" /> + </form> + + <hr /> <h3><TMPL_VAR NAME="Localize_Users_Parameters"> (<TMPL_VAR NAME="Users_Edit_User_Name">)</h3> + <form action="/users" method="post"> <table width="100%"> <tr> *************** *** 106,109 **** --- 176,181 ---- </table> + </TMPL_IF> + <TMPL_INCLUDE NAME="common-before-configuration.thtml"> <TMPL_INCLUDE NAME="configuration-bar.thtml"> Index: common-middle.thtml =================================================================== RCS file: /cvsroot/popfile/engine/skins/default/common-middle.thtml,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** common-middle.thtml 4 Mar 2005 23:40:38 -0000 1.12 --- common-middle.thtml 7 Apr 2005 19:55:09 -0000 1.13 *************** *** 14,18 **** <tr> <td class="head"><TMPL_VAR NAME="Localize_Header_Title"></td> ! <td class="headShutdown" align="right" valign="bottom"><TMPL_IF NAME="Header_If_Password"><TMPL_ELSE><a class="logoutLink" href="/logout"><TMPL_VAR NAME="Localize_Logout"></a> <TMPL_IF NAME="Common_Middle_If_CanAdmin"><a class="shutdownLink" href="/shutdown"><TMPL_VAR NAME="Localize_Header_Shutdown"></a></TMPL_IF></TMPL_IF> </td> </tr> </table> --- 14,18 ---- <tr> <td class="head"><TMPL_VAR NAME="Localize_Header_Title"></td> ! <td class="headShutdown" align="right" valign="bottom"><TMPL_IF NAME="Header_If_Password"><TMPL_ELSE><TMPL_IF NAME="Header_If_SingleUser"><TMPL_ELSE><a class="logoutLink" href="/logout"><TMPL_VAR NAME="Localize_Logout"></a> <TMPL_IF NAME="Common_Middle_If_CanAdmin"><a class="shutdownLink" href="/shutdown"><TMPL_VAR NAME="Localize_Header_Shutdown"></a></TMPL_IF></TMPL_IF></TMPL_IF> </td> </tr> </table> |
From: John Graham-C. <jgr...@us...> - 2005-04-07 19:55:24
|
Update of /cvsroot/popfile/engine/languages In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21537/languages Modified Files: English.msg Log Message: More work on v0.23.0 (Multi-user Support) Add account association and allow different users to log in. Users can be associated with specific accounts when POPFile is in multi-user mode. Currently every user has a blank password. Also cloning of per-bucket parameters is not working. Would love to have volunteers to do the following: 1. Test out the new functionality for account association 2. Write code to do per-bucket parameter cloning (see Bayes.pm TODO) 3. Write code to set/reset user passwords. --- Classifer/Bayes.pm: Add functions for handling account creation and deletion and mapping of accounts to users. Add new message called CREAT used to pass a child generated session to the parent. Proxy/Proxy.pm Proxy/POP3.pm: Add code for handling users associated with accounts and use it in the POP3 module to lookup users dynamically when they are logged in. UI/HTML.pm: Update UI to be able to handle different users using the cookie and changes to the History API. Add code to the users_page to handle account association on a per user basis. UI/HTTP.pm: Add url_decode_ and decode form parameters. POPFile/MQ.pm: Comment the CREAT message. POPFile/History.pm: Make history mechanism aware of different users so that different users get a different view of the history. skins/default/user_page.thtml: Add code for handling account association. languages/English.msg: Additional strings needed for the account handling. --- Once this is all working we can start to fix the test suite and nail down the v0.23.0 release. Index: English.msg =================================================================== RCS file: /cvsroot/popfile/engine/languages/English.msg,v retrieving revision 1.91 retrieving revision 1.92 diff -C2 -d -r1.91 -r1.92 *** English.msg 17 Mar 2005 11:25:38 -0000 1.91 --- English.msg 7 Apr 2005 19:54:53 -0000 1.92 *************** *** 30,33 **** --- 30,34 ---- # Common words that are used on their own all over the interface + Account POP3 Account Apply Apply ApplyChanges Apply Changes *************** *** 209,212 **** --- 210,219 ---- Users_Removed_Failed Failed to remove user '%s' Users_Removed_Failed_Admin Failed to remove user '%s': disable admin rights first + Users_SingleUserMode Single user mode (POPFile Classic) + Users_Accounts Associated POP3 Accounts + Users_AddAccount Add POP3 account (host:user) + Users_Bad_Account The new account name must be in the form host:user + Users_Duplicate_Account Failed to add the account because it is assigned to another user + Users_Failed_Account Failed to add the account History_Filter (just showing bucket <font color="%s">%s</font>) *************** *** 377,380 **** --- 384,388 ---- Security_MainTableSummary This table provides sets of controls that affect the security of the overall configuration of POPFile, whether it should automatically check for updates to the program, and whether statistics about POPFile's performance should be sent to the central datastore of the program's author for general information. Advanced_MainTableSummary This table provides a list of words that POPFile ignores when classifying message due to their relative frequency in message in general. They are organized per row according to the first letter of the words. + Users_AccountTableSummary This table provides a list of POP3 accounts that are associated with the user being edited. Imap_Bucket2Folder Mail for bucket '<b>%s</b>' goes to folder |
From: Brian S. <xue...@us...> - 2005-03-23 14:20:23
|
Update of /cvsroot/popfile/windows In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5123 Modified Files: adduser-Version.nsh adduser.nsi Log Message: Remove references to the QuickStart guide (it has been superseded by the wiki). Make a backup copy of pfi-run.bat (for reference). Index: adduser-Version.nsh =================================================================== RCS file: /cvsroot/popfile/windows/adduser-Version.nsh,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** adduser-Version.nsh 5 Mar 2005 14:48:24 -0000 1.3 --- adduser-Version.nsh 23 Mar 2005 14:20:13 -0000 1.4 *************** *** 7,11 **** #-------------------------------------------------------------------------- ! !define C_PFI_VERSION "0.2.71" #-------------------------------------------------------------------------- --- 7,11 ---- #-------------------------------------------------------------------------- ! !define C_PFI_VERSION "0.2.72" #-------------------------------------------------------------------------- Index: adduser.nsi =================================================================== RCS file: /cvsroot/popfile/windows/adduser.nsi,v retrieving revision 1.75 retrieving revision 1.76 diff -C2 -d -r1.75 -r1.76 *** adduser.nsi 5 Mar 2005 14:48:25 -0000 1.75 --- adduser.nsi 23 Mar 2005 14:20:14 -0000 1.76 *************** *** 1116,1119 **** --- 1116,1125 ---- WriteUninstaller "$G_USERDIR\uninstalluser.exe" + ; Delete obsolete START MENU entries + + Delete "$SMPROGRAMS\${C_PFI_PRODUCT}\Manual.url" + Delete "$SMPROGRAMS\${C_PFI_PRODUCT}\Support\POPFile Manual.url" + Delete "$SMPROGRAMS\${C_PFI_PRODUCT}\QuickStart Guide.url" + ; Create the START MENU entries *************** *** 1173,1180 **** "InternetShortcut" "URL" "http://${C_UI_URL}:$G_GUI/shutdown" - SetFileAttributes "$SMPROGRAMS\${C_PFI_PRODUCT}\QuickStart Guide.url" NORMAL - WriteINIStr "$SMPROGRAMS\${C_PFI_PRODUCT}\QuickStart Guide.url" \ - "InternetShortcut" "URL" "file://$G_ROOTDIR/manual/en/manual.html" - SetFileAttributes "$SMPROGRAMS\${C_PFI_PRODUCT}\FAQ.url" NORMAL --- 1179,1182 ---- *************** *** 1740,1743 **** --- 1742,1750 ---- SetDetailsPrint listonly + ; Make a backup copy in case the user has customised the one we made earlier + ; (or in case we have now changed to a different POPFile installation) + + !insertmacro PFI_BACKUP_123_DP "$G_USERDIR" "pfi-run.bat" + Call PFI_GetDateTimeStamp Pop ${L_TIMESTAMP} |
From: Brian S. <xue...@us...> - 2005-03-23 14:16:01
|
Update of /cvsroot/popfile/windows In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4246 Modified Files: installer-SecPOPFile-body.nsh Log Message: Remove the QuickStart guide (it has been superseded by the wiki). This reduces the size of the installer by around 18% (just over 1 MB). Index: installer-SecPOPFile-body.nsh =================================================================== RCS file: /cvsroot/popfile/windows/installer-SecPOPFile-body.nsh,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** installer-SecPOPFile-body.nsh 2 Mar 2005 19:53:41 -0000 1.1 --- installer-SecPOPFile-body.nsh 23 Mar 2005 14:15:44 -0000 1.2 *************** *** 287,300 **** ;----------------------------------------------------------------------- - ; 'English' version of the QuickStart Guide - - SetOutPath "$G_ROOTDIR\manual" - File "..\engine\manual\*.gif" - - SetOutPath "$G_ROOTDIR\manual\en" - File "..\engine\manual\en\*.html" - - ;----------------------------------------------------------------------- - ; Default UI language --- 287,290 ---- *************** *** 326,329 **** --- 316,320 ---- Delete "$SMPROGRAMS\${C_PFI_PRODUCT}\Manual.url" Delete "$SMPROGRAMS\${C_PFI_PRODUCT}\Support\POPFile Manual.url" + Delete "$SMPROGRAMS\${C_PFI_PRODUCT}\QuickStart Guide.url" SetShellVarContext current *************** *** 333,336 **** --- 324,328 ---- Delete "$SMPROGRAMS\${C_PFI_PRODUCT}\Manual.url" Delete "$SMPROGRAMS\${C_PFI_PRODUCT}\Support\POPFile Manual.url" + Delete "$SMPROGRAMS\${C_PFI_PRODUCT}\QuickStart Guide.url" ; Create the START MENU entries *************** *** 383,390 **** "InternetShortcut" "URL" "http://${C_UI_URL}:$G_GUI/shutdown" - SetFileAttributes "$SMPROGRAMS\${C_PFI_PRODUCT}\QuickStart Guide.url" NORMAL - WriteINIStr "$SMPROGRAMS\${C_PFI_PRODUCT}\QuickStart Guide.url" \ - "InternetShortcut" "URL" "file://$G_ROOTDIR/manual/en/manual.html" - SetFileAttributes "$SMPROGRAMS\${C_PFI_PRODUCT}\FAQ.url" NORMAL --- 375,378 ---- |
From: Sam S. <ssc...@us...> - 2005-03-22 19:30:02
|
Update of /cvsroot/popfile/engine/tests In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2438/tests Modified Files: TestPOP3.tst Log Message: POP3 tests updated for dynamic loading and validate/configure_item interfaces. POP3 test isn't classifying yet (31 errors) but test runs to completion. Some warnings still need ironing out in validate_item Index: TestPOP3.tst =================================================================== RCS file: /cvsroot/popfile/engine/tests/TestPOP3.tst,v retrieving revision 1.32 retrieving revision 1.33 diff -C2 -d -r1.32 -r1.33 *** TestPOP3.tst 10 Sep 2004 16:50:08 -0000 1.32 --- TestPOP3.tst 22 Mar 2005 19:29:09 -0000 1.33 *************** *** 25,35 **** # ---------------------------------------------------------------------------- ! use POPFile::Configuration; ! use POPFile::MQ; ! use POPFile::Logger; ! use POPFile::History; use Proxy::POP3; - use Classifier::Bayes; - use Classifier::WordMangle; use IO::Handle; use IO::Socket; --- 25,54 ---- # ---------------------------------------------------------------------------- ! ! use POPFile::Loader; ! my $POPFile = POPFile::Loader->new(); ! $POPFile->CORE_loader_init(); ! $POPFile->CORE_signals(); ! ! my %valid = ( 'POPFile/Logger' => 1, ! 'POPFile/MQ' => 1, ! 'POPFile/Configuration' => 1, ! 'POPFile/Database' => 1, ! 'POPFile/History' => 1, ! 'Classifier/Bayes' => 1, ! 'Classifier/WordMangle' => 1 ); ! ! $POPFile->CORE_load( 0, \%valid ); ! $POPFile->CORE_initialize(); ! $POPFile->CORE_config( 1 ); ! $POPFile->CORE_start(); ! ! my $mq = $POPFile->get_module('POPFile::MQ'); ! my $l = $POPFile->get_module('POPFile::Logger'); ! my $b = $POPFile->get_module('Classifier::Bayes'); ! my $h = $POPFile->get_module('POPFile::History'); ! my $db = $POPFile->get_module('POPFile::Database'); ! use Proxy::POP3; use IO::Handle; use IO::Socket; *************** *** 45,66 **** my $eol = "$cr$lf"; - sub pipeready - { - my ( $pipe ) = @_; - - if ( !defined( $pipe ) ) { - return 0; - } - - if ( $^O eq 'MSWin32' ) { - return ( defined( fileno( $pipe ) ) && ( ( -s $pipe ) > 0 ) ); - } else { - my $rin = ''; - vec( $rin, fileno( $pipe ), 1 ) = 1; - my $ready = select( $rin, undef, undef, 0.01 ); - return ( $ready > 0 ); - } - } - sub server { --- 64,67 ---- *************** *** 196,200 **** if ( $command =~ /DELE (.*)/i ) { my $index = $1 - 1; ! if ( defined( $messages[$index] ) && ( $messages[$index] ne '' ) ) { $messages[$index] = ''; --- 197,201 ---- if ( $command =~ /DELE (.*)/i ) { my $index = $1 - 1; ! if ( defined( $messages[$index] ) && ( $messages[$index] ne '' ) ) { $messages[$index] = ''; *************** *** 208,212 **** if ( $command =~ /RETR (\d+)/i ) { my $index = $1 - 1; ! if ( defined( $messages[$index] ) && ( $messages[$index] ne '' ) ) { print $client "+OK " . ( -s $messages[$index] ) . "$eol"; --- 209,213 ---- if ( $command =~ /RETR (\d+)/i ) { my $index = $1 - 1; ! if ( defined( $messages[$index] ) && ( $messages[$index] ne '' ) ) { print $client "+OK " . ( -s $messages[$index] ) . "$eol"; *************** *** 291,295 **** if ( $command =~ /CAPA|AUTH/i ) { ! print $client "+OK I can handle$eol" . "AUTH$eol" . "USER$eol" . "APOP$eol.$eol"; next; --- 292,296 ---- if ( $command =~ /CAPA|AUTH/i ) { ! print $client "+OK I can handle$eol" . "AUTH$eol" . "USER$eol" . "APOP$eol.$eol"; next; *************** *** 312,321 **** test_assert( scalar(`rm -rf messages/*`) == 0 ); ! my $c = new POPFile::Configuration; ! my $mq = new POPFile::MQ; ! my $l = new POPFile::Logger; ! my $b = new Classifier::Bayes; ! my $w = new Classifier::WordMangle; ! my $h = new POPFile::History; sub forker --- 313,333 ---- test_assert( scalar(`rm -rf messages/*`) == 0 ); ! # $l->config_( 'level', 1 ); ! # $l->global_config_( 'debug', 3 ); # uncomment to debug to console ! ! $b->module_config_( 'html', 'port', 8080 ); ! $b->module_config_( 'html', 'language', 'English' ); ! $b->config_( 'hostname', '127.0.0.1' ); ! ! # To test POP3's use of MQ, we need to receive messages ! use Test::MQReceiver; ! ! my $rmq = new Test::MQReceiver; ! ! $mq->register( 'UIREG', $rmq ); ! ! my $p = new Proxy::POP3; ! ! $p->loader( $POPFile ); sub forker *************** *** 326,329 **** --- 338,343 ---- $mq->prefork(); $h->prefork(); + $db->prefork(); + $p->prefork(); my $pid = fork(); *************** *** 338,341 **** --- 352,357 ---- $mq->forked( $writer ); $h->forked( $writer ); + $db->forked( $writer ); + # $p->forked( $writer ); close $reader; *************** *** 351,429 **** $mq->postfork( $pid, $reader ); $h->postfork( $pid, $reader ); close $writer; return ($pid, $reader); } ! $c->configuration( $c ); ! $c->mq( $mq ); ! $c->logger( $l ); ! $c->initialize(); ! $l->configuration( $c ); ! $l->mq( $mq ); ! $l->logger( $l ); ! $l->initialize(); ! $l->config_( 'level', 2 ); ! $w->configuration( $c ); ! $w->mq( $mq ); ! $w->logger( $l ); - $w->start(); - $mq->configuration( $c ); - $mq->mq( $mq ); - $mq->logger( $l ); - $mq->pipeready( \&pipeready ); ! $b->configuration( $c ); ! $b->mq( $mq ); ! $b->logger( $l ); ! $h->configuration( $c ); ! $h->mq( $mq ); ! $h->logger( $l ); ! $b->history( $h ); ! $h->classifier( $b ); ! $h->initialize(); ! $b->initialize(); ! $b->module_config_( 'html', 'port', 8080 ); ! $b->module_config_( 'html', 'language', 'English' ); ! $b->config_( 'hostname', '127.0.0.1' ); ! $b->{parser__}->mangle( $w ); ! $b->start(); ! $h->start(); ! $l->start(); ! my $p = new Proxy::POP3; ! $p->configuration( $c ); ! $p->mq( $mq ); ! $p->logger( $l ); ! $p->classifier( $b ); ! $p->forker( \&forker ); ! $p->pipeready( \&pipeready ); - $p->{version_} = 'test suite'; - $p->initialize(); ! my $port = 9000 + int(rand(1000)); ! $p->config_( 'port', $port ); ! $p->config_( 'force_fork', 0 ); ! $p->global_config_( 'timeout', 1 ); ! $p->config_( 'enabled', 0 ); ! test_assert_equal( $p->start(), 2 ); ! $p->config_( 'enabled', 1 ); ! test_assert_equal( $p->start(), 1 ); ! $p->{api_session__} = $b->get_session_key( 'admin', '' ); ! $p->history( $h ); # some tests require this directory to be present --- 367,645 ---- $mq->postfork( $pid, $reader ); $h->postfork( $pid, $reader ); + $db->postfork( $pid, $reader ); + $p->postfork( $pid, $reader ); close $writer; return ($pid, $reader); } ! $p->forker( \&forker ); ! $p->pipeready( $POPFile->{pipeready__} ); ! $p->setchildexit( $POPFile->{childexit__} ); ! $p->{version_} = 'test suite'; ! $p->initialize(); ! my $port = 9000 + int(rand(1000)); ! $p->config_( 'port', $port ); ! $p->config_( 'force_fork', 0 ); ! $p->global_config_( 'timeout', 1 ); ! $p->config_( 'enabled', 0 ); ! test_assert_equal( $p->start(), 2 ); ! $p->config_( 'enabled', 1 ); ! test_assert_equal( $p->start(), 1 ); ! test_assert_equal( $p->{server__}, $p->{selector__}->exists( $p->{server__} ) ); ! # Test dynamic UI ! # $p->start() should send UIREG messages: ! $mq->service(); ! my @messages = $rmq->read(); ! test_assert_equal( $#messages, 3 ); ! test_assert_equal( $messages[0][0], 'UIREG' ); ! test_assert_equal( $#{$messages[0][1]}, 3 ); ! test_assert_equal( $messages[0][1][0], 'configuration' ); ! test_assert_equal( $messages[0][1][1], 'pop3_configuration' ); ! test_assert_equal( $messages[0][1][2], 'pop3-configuration-panel.thtml' ); ! test_assert_equal( ref $messages[0][1][3], 'Proxy::POP3' ); ! test_assert_equal( $messages[1][0], 'UIREG' ); ! test_assert_equal( $#{$messages[1][1]}, 3 ); ! test_assert_equal( $messages[1][1][0], 'security' ); ! test_assert_equal( $messages[1][1][1], 'pop3_security' ); ! test_assert_equal( $messages[1][1][2], 'pop3-security-panel.thtml' ); ! test_assert_equal( ref $messages[1][1][3], 'Proxy::POP3' ); ! test_assert_equal( $messages[2][0], 'UIREG' ); ! test_assert_equal( $#{$messages[2][1]}, 3 ); ! test_assert_equal( $messages[2][1][0], 'chain' ); ! test_assert_equal( $messages[2][1][1], 'pop3_chain' ); ! test_assert_equal( $messages[2][1][2], 'pop3-chain-panel.thtml' ); ! test_assert_equal( ref $messages[2][1][3], 'Proxy::POP3' ); ! test_assert_equal( $messages[3][0], 'UIREG' ); ! test_assert_equal( $#{$messages[3][1]}, 3 ); ! test_assert_equal( $messages[3][1][0], 'configuration' ); ! test_assert_equal( $messages[3][1][1], 'pop3_socks_configuration' ); ! test_assert_equal( $messages[3][1][2], 'socks-widget.thtml' ); ! test_assert_equal( ref $messages[3][1][3], 'Proxy::POP3' ); ! # Test configure_item ! use Test::SimpleTemplate; ! my $templ = new Test::SimpleTemplate; ! ! # nothing happens for unknown configuration item names ! ! $p->configure_item('foo', $templ); ! my $params = $templ->{params__}; ! test_assert_equal( scalar( keys(%{$params}) ), 0); ! ! # the right things have to happen for known configuration item names ! ! $p->configure_item('pop3_socks_configuration', $templ); ! $params = $templ->{params__}; ! test_assert_equal( scalar( keys( %{$params} ) ), 3); ! test_assert_equal( $templ->param( 'Socks_Widget_Name' ), 'pop3' ); ! test_assert_equal( $templ->param( 'Socks_Server' ), $p->config_( 'socks_server' ) ); ! test_assert_equal( $templ->param( 'Socks_Port' ), $p->config_( 'socks_port' ) ); ! $templ->{params__} = {}; ! ! $p->configure_item('pop3_configuration', $templ); ! $params = $templ->{params__}; ! test_assert_equal( scalar( keys( %{$params} ) ), 3); ! test_assert_equal( $templ->param( 'POP3_Configuration_If_Force_Fork' ), !$p->config_( 'force_fork' ) ); ! test_assert_equal( $templ->param( 'POP3_Configuration_Port' ), $p->config_( 'port' ) ); ! test_assert_equal( $templ->param( 'POP3_Configuration_Separator' ), $p->config_( 'separator' ) ); ! ! delete $templ->{params__}; ! ! $p->configure_item('pop3_security', $templ); ! $params = $templ->{params__}; ! test_assert_equal( scalar( keys( %{$params} ) ), 1); ! test_assert_equal( $templ->param( 'POP3_Security_Local' ), $p->config_( 'local' ) ); ! ! delete $templ->{params__}; ! ! $p->configure_item('pop3_chain', $templ); ! $params = $templ->{params__}; ! test_assert_equal( scalar( keys( %{$params} ) ), 2); ! test_assert_equal( $templ->param( 'POP3_Chain_Secure_Server' ), $p->config_( 'secure_server' ) ); ! test_assert_equal( $templ->param( 'POP3_Chain_Secure_Port' ), $p->config_( 'secure_port' ) ); ! ! delete $templ->{params__}; ! ! ! # test changing/validating of configuration values ! ! my $form = {}; ! my $language= {}; ! ! my ($status, $error); ! ! test_assert_equal( $p->config_( 'socks_port' ), 1080 ); ! ! $form->{pop3_socks_port} = 10080; ! $language->{Configuration_SOCKSPortUpdate} = "socks port update %s"; ! ! ($status, $error) = $p->validate_item( 'pop3_socks_configuration', $templ, $language, $form ); ! ! test_assert_equal( $status, "socks port update 10080"); ! test_assert_equal( defined( $error), defined(undef) ); ! test_assert_equal( $p->config_( 'socks_port' ), 10080 ); ! ! $p->config_( 'socks_port', 1080 ); ! ! $form->{pop3_socks_port} = 'aaa'; ! $language->{Configuration_Error8} = "configuration error 8"; ! ! ($status, $error) = $p->validate_item( 'pop3_socks_configuration', $templ, $language, $form ); ! ! test_assert_equal( $error, "configuration error 8"); ! test_assert_equal( defined( $status), defined(undef) ); ! test_assert_equal( $p->config_( 'socks_port' ), 1080 ); ! ! $form->{pop3_socks_server} = 'example.com'; ! $language->{Configuration_SOCKSServerUpdate} = 'socks server update %s'; ! delete $form->{pop3_socks_port}; ! ! ($status, $error) = $p->validate_item( 'pop3_socks_configuration', $templ, $language, $form ); ! ! test_assert_equal( $status, "socks server update example.com"); ! test_assert_equal( defined( $error ), defined(undef) ); ! test_assert_equal( $p->config_( 'socks_server' ), 'example.com' ); ! ! $form->{pop3_socks_port} = '10081'; ! $form->{pop3_socks_server} = 'subdomain.example.com'; ! ! ($status, $error) = $p->validate_item( 'pop3_socks_configuration', $templ, $language, $form ); ! ! test_assert_equal( $status, "socks port update 10081\nsocks server update subdomain.example.com"); ! test_assert_equal( defined( $error ), defined(undef) ); ! test_assert_equal( $p->config_( 'socks_server' ), 'subdomain.example.com' ); ! test_assert_equal( $p->config_( 'socks_port' ), 10081 ); ! ! $p->config_( 'socks_server', '' ); ! ! ! test_assert_equal( $p->config_( 'port' ), $port ); ! ! $language->{Configuration_POP3Update} = "pop3 port update %s"; ! $form->{pop3_port} = $port + 1; ! ! ($status, $error) = $p->validate_item( 'pop3_configuration', $templ, $language, $form ); ! ! test_assert_equal( $status, "pop3 port update " . ($port + 1) ); ! test_assert_equal( defined($error), defined(undef) ); ! test_assert_equal( $p->config_('port'), $port + 1); ! ! $p->config_('port', $port); ! ! $form->{pop3_port} = 'aaa'; ! $language->{Configuration_Error3} = "configuration error 3"; ! ! ($status, $error) = $p->validate_item( 'pop3_configuration', $templ, $language, $form ); ! ! test_assert_equal( $error, "configuration error 3"); ! test_assert_equal( defined( $status), defined(undef) ); ! test_assert_equal( $p->config_( 'port' ), $port ); ! ! delete $form->{pop3_port}; ! ! test_assert_equal( $p->config_("separator"), ':'); ! ! $language->{ 'Configuration_POP3SepUpdate'} = "pop3 separator update %s"; ! $form->{pop3_separator} = "'"; ! ! ($status, $error) = $p->validate_item( 'pop3_configuration', $templ, $language, $form ); ! test_assert_equal( $status, "pop3 separator update '"); ! test_assert_equal( defined( $error), defined(undef) ); ! test_assert_equal( $p->config_( 'separator' ), "'" ); ! ! $p->config_( 'separator', ':' ); ! ! $form->{pop3_separator} = "aaaaa"; ! $language->{'Configuration_Error1'} = "configuration error 1"; ! ! ($status, $error) = $p->validate_item( 'pop3_configuration', $templ, $language, $form ); ! ! test_assert_equal( $error, "configuration error 1"); ! test_assert_equal( defined( $status), defined(undef) ); ! test_assert_equal( $p->config_( 'separator' ), ':' ); ! ! delete $form->{pop3_separator}; ! ! test_assert_equal( $p->config_('force_fork'), 0); ! $form->{pop3_force_fork} = 1; ! ! ($status, $error) = $p->validate_item( 'pop3_configuration', $templ, $language, $form ); ! test_assert_equal( defined( $status ), defined( undef )); ! test_assert_equal( defined( $error ), defined( undef ) ); ! test_assert_equal( $p->config_( 'force_fork' ), 1 ); ! ! $form->{pop3_force_fork} = 'aaaaa'; ! ! ($status, $error) = $p->validate_item( 'pop3_configuration', $templ, $language, $form ); ! test_assert_equal( defined( $status ), defined( undef )); ! test_assert_equal( defined( $error ), defined( undef ) ); ! test_assert_equal( $p->config_( 'force_fork' ), 1 ); ! ! delete $form->{pop3_force_fork}; ! $p->config_('force_fork', 0); ! ! test_assert_equal( $p->config_( 'local' ), 1 ); ! ! $form->{pop3_local} = 1; ! ($status, $error) = $p->validate_item( 'pop3_security', $templ, $language, $form ); ! test_assert_equal( defined( $status ), defined( undef )); ! test_assert_equal( defined( $error ), defined( undef ) ); ! test_assert_equal( $p->config_( 'local' ), 0 ); ! ! $p->config_( 'local', 1 ); ! ! my $old_config_value = $p->config_('secure_server'); ! ! $form->{server} = "www.example.com"; ! $language->{Security_SecureServerUpdate} = "secure server update %s"; ! ! ($status, $error) = $p->validate_item( 'pop3_chain', $templ, $language, $form ); ! test_assert_equal( $status, "secure server update www.example.com"); ! test_assert_equal( defined( $error ), defined( undef ) ); ! test_assert_equal( $p->config_( 'secure_server' ), 'www.example.com' ); ! ! delete $form->{server}; ! $p->config_('secure_server', $old_config_value ); ! ! $old_config_value = $p->config_('secure_port'); ! ! $form->{sport} = "10110"; ! $language->{Security_SecurePortUpdate} = "secure port update %s"; ! ! ($status, $error) = $p->validate_item( 'pop3_chain', $templ, $language, $form ); ! test_assert_equal( $status, "secure port update 10110"); ! test_assert_equal( defined( $error ), defined( undef ) ); ! test_assert_equal( $p->config_( 'secure_port' ), 10110 ); ! ! $form->{sport} = 'aaaaaaa'; ! ! $language->{Security_Error1} = "security error 1"; ! ($status, $error) = $p->validate_item( 'pop3_chain', $templ, $language, $form ); ! test_assert_equal( defined( $status ), defined( undef ) ); ! test_assert_equal( $error, "security error 1"); ! test_assert_equal( $p->config_( 'secure_port' ), 10110 ); ! ! delete $form->{server}; ! $p->config_('secure_port', $old_config_value ); ! ! ! $p->{api_session__} = $b->get_session_key( 'admin', '' ); # some tests require this directory to be present *************** *** 458,462 **** my $selector = new IO::Select( $server ); ! my $apop_server = 0; --- 674,678 ---- my $selector = new IO::Select( $server ); ! my $apop_server = 0; *************** *** 468,473 **** } } ! ! if ( pipeready( $dserverreader ) ) { my $command = <$dserverreader>; --- 684,689 ---- } } ! ! if ( &{$POPFile->{pipeready__}}( $dserverreader ) ) { my $command = <$dserverreader>; *************** *** 515,518 **** --- 731,736 ---- # CHILD THAT WILL RUN THE POP3 PROXY + $p->log_(0, "I am the POP3 proxy on port " . $p->config_('port') ); + close $dwriter; close $ureader; *************** *** 522,527 **** while ( 1 ) { last if !$p->service(); ! if ( pipeready( $dreader ) ) { my $command = <$dreader>; --- 740,746 ---- while ( 1 ) { last if !$p->service(); + # $p->log_(2, "POP3 proxy loop instance"); ! if ( &{$POPFile->{pipeready__}}( $dreader ) ) { my $command = <$dreader>; *************** *** 573,577 **** close $uwriter; $dwriter->autoflush(1); ! close $dserverreader; close $userverwriter; --- 792,796 ---- close $uwriter; $dwriter->autoflush(1); ! close $dserverreader; close $userverwriter; *************** *** 615,619 **** "-ERR Transparent proxying not configured: set secure server/port$eol" ); ! # Check that we can connect to the remote POP3 server # (should still be waiting for us) --- 834,838 ---- "-ERR Transparent proxying not configured: set secure server/port$eol" ); ! # Check that we can connect to the remote POP3 server # (should still be waiting for us) *************** *** 634,638 **** test_assert_equal( $result, "+OK Now logged in$eol" ); ! my $cd = 10; while ( $cd-- ) { select( undef, undef, undef, 0.1 ); --- 853,857 ---- test_assert_equal( $result, "+OK Now logged in$eol" ); ! $cd = 10; while ( $cd-- ) { select( undef, undef, undef, 0.1 ); *************** *** 735,739 **** my $slot_file = $h->get_slot_file( 1 ); ! my $cd = 10; while ( $cd-- ) { select( undef, undef, undef, 0.1 ); --- 954,958 ---- my $slot_file = $h->get_slot_file( 1 ); ! $cd = 10; while ( $cd-- ) { select( undef, undef, undef, 0.1 ); *************** *** 796,801 **** select( undef, undef, undef, 0.1 ); ! my $slot_file = $h->get_slot_file( 2 ); ! my $cd = 10; while ( $cd-- ) { select( undef, undef, undef, 0.1 ); --- 1015,1020 ---- select( undef, undef, undef, 0.1 ); ! $slot_file = $h->get_slot_file( 2 ); ! $cd = 10; while ( $cd-- ) { select( undef, undef, undef, 0.1 ); *************** *** 810,814 **** test_assert( open HIST, "<$slot_file" ); binmode HIST; ! while ( ( my $fl = <FILE> ) && ( my $ml = <HIST> ) ) { $fl =~ s/[\r\n]//g; $ml =~ s/[\r\n]//g; --- 1029,1034 ---- test_assert( open HIST, "<$slot_file" ); binmode HIST; ! my $fl; ! while ( ( $fl = <FILE> ) && ( my $ml = <HIST> ) ) { $fl =~ s/[\r\n]//g; $ml =~ s/[\r\n]//g; *************** *** 820,824 **** close HIST; ! my ( $id, $hdr_from, $hdr_to, $hdr_cc, $hdr_subject, $hdr_date, $hash, $inserted, $bucket, $usedtobe, $bucketid, $magnet ) = $h->get_slot_fields( 2 ); test_assert_equal( $bucket, 'spam' ); test_assert_equal( $usedtobe, 0 ); --- 1040,1044 ---- close HIST; ! ( $id, $hdr_from, $hdr_to, $hdr_cc, $hdr_subject, $hdr_date, $hash, $inserted, $bucket, $usedtobe, $bucketid, $magnet ) = $h->get_slot_fields( 2 ); test_assert_equal( $bucket, 'spam' ); test_assert_equal( $usedtobe, 0 ); *************** *** 922,927 **** select( undef, undef, undef, 0.1 ); ! my $slot_file = $h->get_slot_file( 3 ); ! my $cd = 10; while ( $cd-- ) { select( undef, undef, undef, 0.1 ); --- 1142,1147 ---- select( undef, undef, undef, 0.1 ); ! $slot_file = $h->get_slot_file( 3 ); ! $cd = 10; while ( $cd-- ) { select( undef, undef, undef, 0.1 ); *************** *** 946,950 **** close HIST; ! my ( $id, $hdr_from, $hdr_to, $hdr_cc, $hdr_subject, $hdr_date, $hash, $inserted, $bucket, $usedtobe, $bucketid, $magnet ) = $h->get_slot_fields( 3 ); test_assert_equal( $bucket, 'spam' ); test_assert_equal( $usedtobe, 0 ); --- 1166,1170 ---- close HIST; ! ( $id, $hdr_from, $hdr_to, $hdr_cc, $hdr_subject, $hdr_date, $hash, $inserted, $bucket, $usedtobe, $bucketid, $magnet ) = $h->get_slot_fields( 3 ); test_assert_equal( $bucket, 'spam' ); test_assert_equal( $usedtobe, 0 ); *************** *** 972,976 **** test_assert_equal( $line, "OK\n" ); ! my $client = IO::Socket::INET->new( Proto => "tcp", PeerAddr => 'localhost', --- 1192,1196 ---- test_assert_equal( $line, "OK\n" ); ! $client = IO::Socket::INET->new( Proto => "tcp", PeerAddr => 'localhost', *************** *** 988,992 **** test_assert_equal( $result, "+OK Welcome gooduser$eol" ); ! my $cd = 10; while ( $cd-- ) { select( undef, undef, undef, 0.1 ); --- 1208,1212 ---- test_assert_equal( $result, "+OK Welcome gooduser$eol" ); ! $cd = 10; while ( $cd-- ) { select( undef, undef, undef, 0.1 ); *************** *** 1476,1485 **** "-ERR APOP not supported between mail client and POPFile.$eol" ); ! # Check that we can connect to the remote POP3 server # (should still be waiting for us) print $client "APOP 127.0.0.1:8110:gooduser md5$eol"; $result = <$client>; ! test_assert_equal( $result, "-ERR APOP not supported between mail client and POPFile.$eol" ); --- 1696,1705 ---- "-ERR APOP not supported between mail client and POPFile.$eol" ); ! # Check that we can connect to the remote POP3 server # (should still be waiting for us) print $client "APOP 127.0.0.1:8110:gooduser md5$eol"; $result = <$client>; ! test_assert_equal( $result, "-ERR APOP not supported between mail client and POPFile.$eol" ); *************** *** 1513,1525 **** print $client "APOP 127.0.0.1:8111:gooduser md5$eol"; $result = <$client>; ! test_assert_equal( $result, "-ERR APOP not supported between mail client and POPFile.$eol" ); ! # Check that we can connect to the remote POP3 server # (should still be waiting for us) print $client "APOP 127.0.0.1:8110:gooduser md5$eol"; $result = <$client>; ! test_assert_equal( $result, "-ERR APOP not supported between mail client and POPFile.$eol" ); --- 1733,1745 ---- print $client "APOP 127.0.0.1:8111:gooduser md5$eol"; $result = <$client>; ! test_assert_equal( $result, "-ERR APOP not supported between mail client and POPFile.$eol" ); ! # Check that we can connect to the remote POP3 server # (should still be waiting for us) print $client "APOP 127.0.0.1:8110:gooduser md5$eol"; $result = <$client>; ! test_assert_equal( $result, "-ERR APOP not supported between mail client and POPFile.$eol" ); *************** *** 1538,1549 **** # Test POPFile->server APOP ! # Server that doesn't do APOP at all ! print $dserverwriter "__APOPOFF\n"; $line = <$userverreader>; test_assert_equal( $line, "OK\n" ); ! $client = IO::Socket::INET->new( Proto => "tcp", --- 1758,1769 ---- # Test POPFile->server APOP ! # Server that doesn't do APOP at all ! print $dserverwriter "__APOPOFF\n"; $line = <$userverreader>; test_assert_equal( $line, "OK\n" ); ! $client = IO::Socket::INET->new( Proto => "tcp", *************** *** 1622,1626 **** close $client; ! # Bad user --- 1842,1846 ---- close $client; ! # Bad user *************** *** 1638,1642 **** print $client "USER 127.0.0.1:8110:baduser:apop$eol"; ! $result = <$client>; test_assert_equal( $result, "+OK hello baduser$eol" ); --- 1858,1862 ---- print $client "USER 127.0.0.1:8110:baduser:apop$eol"; ! $result = <$client>; test_assert_equal( $result, "+OK hello baduser$eol" ); *************** *** 1659,1663 **** close $client; ! # Good user, bad pass --- 1879,1883 ---- close $client; ! # Good user, bad pass *************** *** 1675,1679 **** print $client "USER 127.0.0.1:8110:gooduser:apop$eol"; ! $result = <$client>; test_assert_equal( $result, "+OK hello gooduser$eol" ); --- 1895,1899 ---- print $client "USER 127.0.0.1:8110:gooduser:apop$eol"; ! $result = <$client>; test_assert_equal( $result, "+OK hello gooduser$eol" ); *************** *** 1735,1743 **** close $client; ! # re-disable APOP on the server so we don't mess with anything else print $dserverwriter "__APOPOFF\n"; ! $line = <$userverreader>; test_assert_equal( $line, "OK\n" ); --- 1955,1963 ---- close $client; ! # re-disable APOP on the server so we don't mess with anything else print $dserverwriter "__APOPOFF\n"; ! $line = <$userverreader>; test_assert_equal( $line, "OK\n" ); *************** *** 2039,2046 **** close $ureader; ! while ( waitpid( $pid, &WNOHANG ) != $pid ) { ! } ! while ( waitpid( $pid2, &WNOHANG ) != $pid2 ) { ! } $b->stop(); --- 2259,2266 ---- close $ureader; ! # while ( waitpid( $pid, &WNOHANG ) != $pid ) { ! # } ! # while ( waitpid( $pid2, &WNOHANG ) != $pid2 ) { ! # } $b->stop(); |