Changeset 029198c


Ignore:
Timestamp:
Apr 18, 2014 4:43:07 PM (7 years ago)
Author:
zzz <zzz@…>
Branches:
master
Children:
3930113
Parents:
493788f
Message:
  • SusiMail?:
    • Don't force reconnection on folder view (ticket #1253)
    • Only show logout button on folder view
    • Switch subject and date headers on message view
    • Button theme tweaks
    • Debug logging
    • Fix NPE when RELEASE=false
    • Synch tweaks
    • hellip
    • Footer tweak
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • apps/susimail/src/src/i2p/susi/webmail/Mail.java

    r493788f r029198c  
    204204                                                        shortSender = formattedSender.trim();
    205205                                                        if( shortSender.length() > 40 ) {
    206                                                                 shortSender = shortSender.substring( 0, 37 ).trim() + "...";
     206                                                                shortSender = shortSender.substring( 0, 37 ).trim() + "&hellip;";
    207207                                                        }
    208208                                                        shortSender = html.encode( shortSender );
     
    227227                                                        shortSubject = formattedSubject;
    228228                                                        if( formattedSubject.length() > 60 )
    229                                                                 shortSubject = formattedSubject.substring( 0, 57 ).trim() + "...";
     229                                                                shortSubject = formattedSubject.substring( 0, 57 ).trim() + "&hellip;";
    230230                                                        shortSubject = html.encode( shortSubject );
    231231                                                }
  • apps/susimail/src/src/i2p/susi/webmail/MailCache.java

    r493788f r029198c  
    3838        private final POP3MailBox mailbox;
    3939        private final Hashtable<String, Mail> mails;
    40         private final Object synchronizer;
    4140       
    4241        MailCache( POP3MailBox mailbox ) {
    4342                this.mailbox = mailbox;
    4443                mails = new Hashtable<String, Mail>();
    45                 synchronizer = new Object();
    4644        }
     45
    4746        /**
    4847         * Fetch any needed data from pop3 server.
     
    5049         * @param uidl message id to get
    5150         * @param headerOnly fetch only header lines?
    52          * @return An e-mail
     51         * @return An e-mail or null
    5352         */
    5453        public Mail getMail( String uidl, boolean headerOnly ) {
     
    6059                         * synchronize update to hashtable
    6160                         */
    62                         synchronized( synchronizer ) {
    63 
     61                        synchronized(mails) {
    6462                                mail = mails.get( uidl );
    65                        
    6663                                if( mail == null ) {
    6764                                        newMail = new Mail();
  • apps/susimail/src/src/i2p/susi/webmail/WebMail.java

    r493788f r029198c  
    4848import java.util.ArrayList;
    4949import java.util.Comparator;
     50import java.util.Date;
    5051import java.util.Enumeration;
    5152import java.util.Iterator;
     
    636637                                                sessionObject.folder.setSortingDirection( Folder.DOWN );
    637638                                                sessionObject.reallyDelete = false;
     639                                                Debug.debug(Debug.DEBUG, "CONNECTED, YAY");
    638640                                        }
    639641                                        else {
     
    641643                                                sessionObject.mailbox.close();
    642644                                                sessionObject.mailbox = null;
     645                                                Debug.debug(Debug.DEBUG, "NOT CONNECTED, BOO");
    643646                                        }
    644647                                }
     
    654657        {
    655658                if( buttonPressed( request, LOGOUT ) ) {
     659                        Debug.debug(Debug.DEBUG, "REMOVING SESSION");
    656660                        HttpSession session = request.getSession();
    657661                        session.removeAttribute( "sessionObject" );
     
    11821186                        sessionObject = new SessionObject();
    11831187                        httpSession.setAttribute( "sessionObject", sessionObject );
     1188                        Debug.debug(Debug.DEBUG, "NEW session " + httpSession.getId() + " state = " + sessionObject.state);
     1189                } else {
     1190                        Debug.debug(Debug.DEBUG, "Existing session " + httpSession.getId() + " state = " + sessionObject.state +
     1191                                " created " + new Date(httpSession.getCreationTime()));
    11841192                }
    11851193                return sessionObject;
     
    12681276                        sessionObject.isMobile = isMobile;
    12691277                       
     1278                        int oldState = sessionObject.state;
    12701279                        processStateChangeButtons( sessionObject, request );
     1280                        int newState = sessionObject.state;
     1281                        if (oldState != newState)
     1282                                Debug.debug(Debug.DEBUG, "STATE CHANGE from " + oldState + " to " + newState);
     1283                        if (oldState == STATE_AUTH && newState != STATE_AUTH) {
     1284                                // this isn't working in web.xml, so try setting it here
     1285                                int oldIdle = httpSession.getMaxInactiveInterval();
     1286                                httpSession.setMaxInactiveInterval(60*60*24);  // seconds
     1287                                int newIdle = httpSession.getMaxInactiveInterval();
     1288                                Debug.debug(Debug.DEBUG, "Changed idle from " + oldIdle + " to " + newIdle);
     1289                        }
    12711290                       
    12721291                        if( sessionObject.state != STATE_AUTH )
     
    13161335                                if( sessionObject.state == STATE_AUTH )
    13171336                                        subtitle = _("Login");
    1318                                 else if( sessionObject.state == STATE_LIST )
    1319                                         subtitle = ngettext("1 Message", "{0} Messages", sessionObject.mailbox.getNumMails());
    1320                                 else if( sessionObject.state == STATE_SHOW )
     1337                                else if( sessionObject.state == STATE_LIST ) {
     1338                                        // mailbox.getNumMails() forces a connection, don't use it
     1339                                        // Not only does it slow things down, but a failure causes all our messages to "vanish"
     1340                                        //subtitle = ngettext("1 Message", "{0} Messages", sessionObject.mailbox.getNumMails());
     1341                                        subtitle = ngettext("1 Message", "{0} Messages", sessionObject.folder.getSize());
     1342                                } else if( sessionObject.state == STATE_SHOW )
    13211343                                        subtitle = _("Show Message");
    13221344
     
    13601382                                        showCompose( out, sessionObject, request );
    13611383                               
    1362                                 out.println( "</form><div id=\"footer\"><hr><p class=\"footer\">susimail v0." + version +" " + ( RELEASE ? "release" : "development" ) + " &copy; 2004-2005 <a href=\"mailto:susi23@mail.i2p\">susi</a></div></div></body>\n</html>");                         
     1384                                //out.println( "</form><div id=\"footer\"><hr><p class=\"footer\">susimail v0." + version +" " + ( RELEASE ? "release" : "development" ) + " &copy; 2004-2005 <a href=\"mailto:susi23@mail.i2p\">susi</a></div></div></body>\n</html>");                               
     1385                                out.println( "</form><div id=\"footer\"><hr><p class=\"footer\">susimail &copy; 2004-2005 susi</div></div></body>\n</html>");                           
    13631386                                out.flush();
    13641387                        }
     
    15831606                                button( CANCEL, _("Cancel") ) + spacer +
    15841607                                (sessionObject.attachments != null && (!sessionObject.attachments.isEmpty()) ? button( DELETE_ATTACHMENT, _("Delete Attachment") ) : button2( DELETE_ATTACHMENT, _("Delete Attachment") ) ) + spacer);
    1585                 if (Config.hasConfigFile())
    1586                         out.println(button( RELOAD, _("Reload Config") ) + spacer);
    1587                 out.println(button( LOGOUT, _("Logout") ) );
     1608                //if (Config.hasConfigFile())
     1609                //      out.println(button( RELOAD, _("Reload Config") ) + spacer);
     1610                //out.println(button( LOGOUT, _("Logout") ) );
    15881611
    15891612                String from = request.getParameter( NEW_FROM );
     
    17501773                        mail.part.parse( mail.body );
    17511774                }
    1752                 if( !RELEASE ) {
     1775                if(!RELEASE && mail != null && mail.body != null) {
    17531776                        out.println( "<!--" );
    17541777                        // FIXME encoding, escaping --, etc... but disabled.
     
    17641787                        ( sessionObject.folder.isLastElement( sessionObject.showUIDL ) ? button2( NEXT, _("Next") ) : button( NEXT, _("Next") ) ) + spacer +
    17651788                        button( LIST, _("Back to Folder") ) + spacer);
    1766                 if (Config.hasConfigFile())
    1767                         out.println(button( RELOAD, _("Reload Config") ) + spacer);
    1768                 out.println(button( LOGOUT, _("Logout") ) );
     1789                //if (Config.hasConfigFile())
     1790                //      out.println(button( RELOAD, _("Reload Config") ) + spacer);
     1791                //out.println(button( LOGOUT, _("Logout") ) );
    17691792                if( mail != null ) {
    17701793                        out.println( "<table cellspacing=\"0\" cellpadding=\"5\">\n" +
     
    17721795                                        "<tr class=\"mailhead\"><td align=\"right\" valign=\"top\">" + _("From:") +
    17731796                                        "</td><td align=\"left\">" + quoteHTML( mail.sender ) + "</td></tr>\n" +
     1797                                        "<tr class=\"mailhead\"><td align=\"right\" valign=\"top\">" + _("Subject:") +
     1798                                        "</td><td align=\"left\">" + quoteHTML( mail.formattedSubject ) + "</td></tr>\n" +
    17741799                                        "<tr class=\"mailhead\"><td align=\"right\" valign=\"top\">" + _("Date:") +
    17751800                                        "</td><td align=\"left\">" + mail.quotedDate + "</td></tr>\n" +
    1776                                         "<tr class=\"mailhead\"><td align=\"right\" valign=\"top\">" + _("Subject:") +
    1777                                         "</td><td align=\"left\">" + quoteHTML( mail.formattedSubject ) + "</td></tr>\n" +
    17781801                                        "<tr><td colspan=\"2\" align=\"center\"><hr></td></tr>" );
    17791802                        if( mail.body != null ) {
  • installer/resources/themes/susimail/light/susimail.css

    r493788f r029198c  
    165165input.cancel, input.clearselection, input.logout {
    166166     background: #ddf url('/themes/console/images/cancel.png') no-repeat 4px center;
    167      padding: 2px 3px 2px 21px;
     167     padding: 2px 3px 2px 24px;
    168168     min-height: 22px;
    169169}
     
    171171input.delete, input.delete_attachment, input.really_delete {
    172172     background: #ddf url('/themes/console/images/delete.png') no-repeat 4px center;
    173      padding: 2px 3px 2px 21px;
     173     padding: 2px 3px 2px 24px;
    174174     min-height: 22px;
    175175}
     
    177177input.download, input.lastpage {
    178178     background: #ddf url('/themes/console/images/arrow_down.png') no-repeat 4px center;
    179      padding: 2px 3px 2px 21px;
     179     padding: 2px 3px 2px 24px;
    180180     min-height: 22px;
    181181}
    182182
    183183input.firstpage, input.list {
    184      background: #ddf url('/themes/console/images/arrow_up.png') no-repeat 4px center;
    185      padding: 2px 3px 2px 21px;
     184     background: #ddf url('/themes/console/images/arrow_up.png') no-repeat 1px center;
     185     padding: 2px 3px 2px 19px;
    186186     min-height: 22px;
    187187}
     
    189189input.forward, input.login, input.nextpage, input.send, input.next {
    190190     background: #ddf url('/themes/console/images/arrow_right.png') no-repeat 4px center;
    191      padding: 2px 3px 2px 21px;
     191     padding: 2px 3px 2px 24px;
    192192     min-height: 22px;
    193193}
     
    195195input.invertselection, input.reload, input.refresh {
    196196     background: #ddf url('/themes/console/images/arrow_refresh.png') no-repeat 4px center;
    197      padding: 2px 3px 2px 21px;
     197     padding: 2px 3px 2px 24px;
    198198     min-height: 22px;
    199199}
     
    201201input.markall, input.show {
    202202     background: #ddf url('/themes/console/images/tick.png') no-repeat 4px center;
    203      padding: 2px 3px 2px 21px;
     203     padding: 2px 3px 2px 24px;
    204204     min-height: 22px;
    205205}
    206206
    207207input.new, input.reply, input.replyall {
    208      background: #ddf url('/themes/console/images/email.png') no-repeat 4px center;
    209      padding: 2px 3px 2px 21px;
     208     background: #ddf url('/themes/console/images/email.png') no-repeat 0px center;
     209     padding: 2px 3px 2px 36px;
    210210     min-height: 22px;
    211211}
     
    213213input.prevpage, input.prev {
    214214     background: #ddf url('/themes/console/images/arrow_left.png') no-repeat 4px center;
    215      padding: 2px 3px 2px 21px;
     215     padding: 2px 3px 2px 24px;
    216216     min-height: 22px;
    217217}
     
    219219input.send, input.setpagesize {
    220220     background: #ddf url('/themes/console/images/accept.png') no-repeat 4px center;
    221      padding: 2px 3px 2px 21px;
    222      min-height: 22px;
    223 }
     221     padding: 2px 3px 2px 24px;
     222     min-height: 22px;
     223}
Note: See TracChangeset for help on using the changeset viewer.