Changeset 1dfbe73


Ignore:
Timestamp:
Apr 29, 2014 7:50:28 PM (6 years ago)
Author:
zzz <zzz@…>
Branches:
master
Children:
04a3673
Parents:
87889bb
Message:
  • SusiMail?:
    • Add print css
    • Add some divs
    • Hide header and footer in mobile css
    • Fix 'from' address in compose
    • Boolean config parse cleanup
    • Config textarea row count
Files:
1 added
6 edited

Legend:

Unmodified
Added
Removed
  • apps/susimail/build.xml

    r87889bb r1dfbe73  
    6666        <copy todir="src/WEB-INF/classes/icons" >
    6767            <fileset dir="src/icons" />
     68        </copy>
     69        <mkdir dir="src/WEB-INF/classes/css" />
     70        <copy todir="src/WEB-INF/classes/css" >
     71            <fileset dir="src/css" />
    6872        </copy>
    6973        <war destfile="susimail.war" webxml="src/WEB-INF/web.xml"
  • apps/susimail/src/src/i2p/susi/webmail/WebMail.java

    r87889bb r1dfbe73  
    507507                buf.append(label).append("&nbsp;&nbsp;");
    508508                if (name.equals(currentName) && currentOrder == Folder.SortOrder.UP) {
    509                         buf.append("<img src=\"").append(imgPath).append("3up.png\" border=\"0\" alt=\"^\">\n");
     509                        buf.append("<img class=\"sort\" src=\"").append(imgPath).append("3up.png\" border=\"0\" alt=\"^\">\n");
    510510                } else {
    511                         buf.append("<a href=\"").append(myself).append('?').append(name).append("=up\">");
    512                         buf.append("<img src=\"").append(imgPath).append("3up.png\" border=\"0\" alt=\"^\" style=\"opacity: 0.4;\">");
     511                        buf.append("<a class=\"sort\" href=\"").append(myself).append('?').append(name).append("=up\">");
     512                        buf.append("<img class=\"sort\" src=\"").append(imgPath).append("3up.png\" border=\"0\" alt=\"^\" style=\"opacity: 0.4;\">");
    513513                        buf.append("</a>\n");
    514514                }
    515515                if (name.equals(currentName) && currentOrder == Folder.SortOrder.DOWN) {
    516                         buf.append("<img src=\"").append(imgPath).append("3down.png\" border=\"0\" alt=\"v\">");
     516                        buf.append("<img class=\"sort\" src=\"").append(imgPath).append("3down.png\" border=\"0\" alt=\"v\">");
    517517                } else {
    518                         buf.append("<a href=\"").append(myself).append('?').append(name).append("=down\">");
    519                         buf.append("<img src=\"").append(imgPath).append("3down.png\" border=\"0\" alt=\"v\" style=\"opacity: 0.4;\">");
     518                        buf.append("<a class=\"sort\" href=\"").append(myself).append('?').append(name).append("=down\">");
     519                        buf.append("<img class=\"sort\" src=\"").append(imgPath).append("3down.png\" border=\"0\" alt=\"v\" style=\"opacity: 0.4;\">");
    520520                        buf.append("</a>");
    521521                }
     
    712712                        String pop3Port = request.getParameter( POP3 );
    713713                        String smtpPort = request.getParameter( SMTP );
    714                         String fixedPorts = Config.getProperty( CONFIG_PORTS_FIXED, "true" );
    715                         if( !fixedPorts.equalsIgnoreCase("false")) {
     714                        boolean fixedPorts = Boolean.parseBoolean(Config.getProperty( CONFIG_PORTS_FIXED, "true" ));
     715                        if (fixedPorts) {
    716716                                host = Config.getProperty( CONFIG_HOST, DEFAULT_HOST );
    717717                                pop3Port = Config.getProperty( CONFIG_PORTS_POP3, "" + DEFAULT_POP3PORT );
     
    17031703                                                "<link rel=\"stylesheet\" type=\"text/css\" href=\"" + sessionObject.themePath + "mobile.css\" />\n" );
    17041704                                }
     1705                                if(sessionObject.state != STATE_AUTH)
     1706                                        out.println("<link rel=\"stylesheet\" href=\"/susimail/css/print.css\" type=\"text/css\" media=\"print\" />");
    17051707                                if (sessionObject.state == STATE_NEW) {
    17061708                                        // TODO cancel if to and body are empty
    17071709                                        out.println(
    1708                                                 "<script type = \"text/javascript\">" +
     1710                                                "<script type = \"text/javascript\">\n" +
    17091711                                                        "window.onbeforeunload = function () {" +
    17101712                                                                "return \"" + _("Message has not been sent. Do you want to discard it?") + "\";" +
    1711                                                         "};" +
     1713                                                        "};\n" +
    17121714                                                        "function cancelPopup() {" +
    17131715                                                                "window.onbeforeunload = null;" +
    1714                                                         "};" +
     1716                                                        "};\n" +
    17151717                                                "</script>"
    17161718                                        );
    17171719                                }
    17181720                                out.println( "</head>\n<body>\n" +
    1719                                         "<div class=\"page\"><p><img src=\"" + sessionObject.imgPath + "susimail.png\" alt=\"Susimail\"></p>\n" +
     1721                                        "<div class=\"page\"><div class=\"header\"><img class=\"header\" src=\"" + sessionObject.imgPath + "susimail.png\" alt=\"Susimail\"></div>\n" +
    17201722                                        "<form method=\"POST\" enctype=\"multipart/form-data\" action=\"" + myself + "\" accept-charset=\"UTF-8\">" );
    17211723
     
    17451747                               
    17461748                                //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>");                               
    1747                                 out.println( "</form><div id=\"footer\"><hr><p class=\"footer\">susimail &copy; 2004-2005 susi</div></div></body>\n</html>");                           
     1749                                out.println( "</form><div class=\"footer\"><hr><p class=\"footer\">susimail &copy; 2004-2005 susi</p></div></div></body>\n</html>");                           
    17481750                                out.flush();
    17491751                }
     
    18321834                String text = request.getParameter( NEW_TEXT, "" );
    18331835
    1834                 String prop = Config.getProperty( CONFIG_SENDER_FIXED, "true" );
    1835                 String domain = Config.getProperty( CONFIG_SENDER_DOMAIN, "mail.i2p" );
    1836                 if( !prop.equalsIgnoreCase("false")) {
     1836                boolean fixed = Boolean.parseBoolean(Config.getProperty( CONFIG_SENDER_FIXED, "true" ));
     1837                if (fixed) {
     1838                        String domain = Config.getProperty( CONFIG_SENDER_DOMAIN, "mail.i2p" );
    18371839                        from = "<" + sessionObject.user + "@" + domain + ">";
    18381840                }
     
    19801982        private static void showCompose( PrintWriter out, SessionObject sessionObject, RequestWrapper request )
    19811983        {
     1984                out.println("<div class=\"topbuttons\">");
    19821985                out.println( button( SEND, _("Send") ) + spacer +
    19831986                                button( CANCEL, _("Cancel") ));
     1987                out.println("</div>");
    19841988                //if (Config.hasConfigFile())
    19851989                //      out.println(button( RELOAD, _("Reload Config") ) + spacer);
     
    19871991
    19881992                String from = request.getParameter( NEW_FROM );
    1989                 String fixed = Config.getProperty( CONFIG_SENDER_FIXED, "true" );
    1990                
    1991                 if( from == null || !fixed.equalsIgnoreCase("false")) {
     1993                boolean fixed = Boolean.parseBoolean(Config.getProperty( CONFIG_SENDER_FIXED, "true" ));
     1994               
     1995                if (from == null || !fixed) {
    19921996                        String user = sessionObject.user;
    19931997                        String name = Config.getProperty(CONFIG_SENDER_NAME);
     
    20022006                        }
    20032007                        if (user.contains("@")) {
     2008                                from += '<' + user + '>';
     2009                        } else {
    20042010                                String domain = Config.getProperty( CONFIG_SENDER_DOMAIN, "mail.i2p" );
     2011                                if (from.length() == 0)
     2012                                        from = user + ' ';
    20052013                                from += '<' + user + '@' + domain + '>';
    2006                         } else {
    2007                                 from += '<' + user + '>';
    20082014                        }
    20092015                }
     
    20212027                out.println( "<table cellspacing=\"0\" cellpadding=\"5\">\n" +
    20222028                                "<tr><td colspan=\"2\" align=\"center\"><hr></td></tr>\n" +
    2023                                 "<tr><td align=\"right\">" + _("From") + ":</td><td align=\"left\"><input type=\"text\" size=\"80\" name=\"" + NEW_FROM + "\" value=\"" + from + "\" " + ( !fixed.equalsIgnoreCase("false") ? "disabled" : "" ) +"></td></tr>\n" +
     2029                                "<tr><td align=\"right\">" + _("From") + ":</td><td align=\"left\"><input type=\"text\" size=\"80\" name=\"" + NEW_FROM + "\" value=\"" + from + "\" " + ( fixed ? "disabled" : "" ) +"></td></tr>\n" +
    20242030                                "<tr><td align=\"right\">" + _("To") + ":</td><td align=\"left\"><input type=\"text\" size=\"80\" name=\"" + NEW_TO + "\" value=\"" + to + "\"></td></tr>\n" +
    20252031                                "<tr><td align=\"right\">" + _("Cc") + ":</td><td align=\"left\"><input type=\"text\" size=\"80\" name=\"" + NEW_CC + "\" value=\"" + cc + "\"></td></tr>\n" +
     
    20282034                                "<tr><td align=\"right\">" + _("Subject") + ":</td><td align=\"left\"><input type=\"text\" size=\"80\" name=\"" + NEW_SUBJECT + "\" value=\"" + subject + "\"></td></tr>\n" +
    20292035                                "<tr><td colspan=\"2\" align=\"center\"><textarea cols=\"" + Config.getProperty( CONFIG_COMPOSER_COLS, 80 )+ "\" rows=\"" + Config.getProperty( CONFIG_COMPOSER_ROWS, 10 )+ "\" name=\"" + NEW_TEXT + "\">" + text + "</textarea>" +
    2030                                 "<tr><td colspan=\"2\" align=\"center\"><hr></td></tr>\n" +
    2031                                 "<tr><td align=\"right\">" + _("Add Attachment") + ":</td><td align=\"left\"><input type=\"file\" size=\"50%\" name=\"" + NEW_FILENAME + "\" value=\"\"></td></tr>" +
     2036                                "<tr class=\"bottombuttons\"><td colspan=\"2\" align=\"center\"><hr></td></tr>\n" +
     2037                                "<tr class=\"bottombuttons\"><td align=\"right\">" + _("Add Attachment") + ":</td><td align=\"left\"><input type=\"file\" size=\"50%\" name=\"" + NEW_FILENAME + "\" value=\"\"></td></tr>" +
    20322038                                // TODO disable/hide in JS if no file selected
    2033                                 "<tr><td>&nbsp;</td><td align=\"left\">" + button(NEW_UPLOAD, _("Add another attachment")) + "</td></tr>");
     2039                                "<tr class=\"bottombuttons\"><td>&nbsp;</td><td align=\"left\">" + button(NEW_UPLOAD, _("Add another attachment")) + "</td></tr>");
    20342040               
    20352041                if( sessionObject.attachments != null && !sessionObject.attachments.isEmpty() ) {
     
    20452051                        }
    20462052                        // TODO disable in JS if none selected
    2047                         out.println("<tr><td>&nbsp;</td><td align=\"left\">" +
     2053                        out.println("<tr class=\"bottombuttons\"><td>&nbsp;</td><td align=\"left\">" +
    20482054                                    button( DELETE_ATTACHMENT, _("Delete selected attachments") ) +
    20492055                                    "</td></tr>");
     
    20582064        private static void showLogin( PrintWriter out )
    20592065        {
    2060                 String fixedPorts = Config.getProperty( CONFIG_PORTS_FIXED, "true" );
    2061                 boolean fixed = !fixedPorts.equalsIgnoreCase("false");
     2066                boolean fixed = Boolean.parseBoolean(Config.getProperty( CONFIG_PORTS_FIXED, "true" ));
    20622067                String host = Config.getProperty( CONFIG_HOST, DEFAULT_HOST );
    20632068                String pop3 = Config.getProperty( CONFIG_PORTS_POP3, "" + DEFAULT_POP3PORT );
     
    20992104        private static void showFolder( PrintWriter out, SessionObject sessionObject, RequestWrapper request )
    21002105        {
     2106                out.println("<div class=\"topbuttons\">");
    21012107                out.println( button( NEW, _("New") ) + spacer);
    21022108                        // In theory, these are valid and will apply to the first checked message,
     
    21102116                //      out.println(button( RELOAD, _("Reload Config") ) + spacer);
    21112117                out.println(button( LOGOUT, _("Logout") ));
    2112 
    21132118                if (sessionObject.folder.getPages() > 1)
    21142119                        showPageButtons(out, sessionObject.folder);
     2120                out.println("</div>");
     2121
    21152122
    21162123                String curSort = sessionObject.folder.getCurrentSortBy();
     
    21782185                        out.println("<tr><td colspan=\"9\" align=\"center\"><i>" + _("No messages") + "</i></td></tr>\n</table>");
    21792186                if (i > 0) {
    2180                         out.println( "<tr><td colspan=\"9\"><hr></td></tr>");
     2187                        out.println( "<tr class=\"bottombuttons\"><td colspan=\"9\"><hr></td></tr>");
    21812188                        if (sessionObject.folder.getPages() > 1 && i > 30) {
    21822189                                // show the buttons again if page is big
    2183                                 out.println("<tr><td colspan=\"9\" align=\"center\">");
     2190                                out.println("<tr class=\"bottombuttons\"><td colspan=\"9\" align=\"center\">");
    21842191                                showPageButtons(out, sessionObject.folder);
    21852192                                out.println("</td></tr>");
    21862193                        }
    2187                         out.println("<tr><td colspan=\"5\" align=\"left\">");
     2194                        out.println("<tr class=\"bottombuttons\"><td colspan=\"5\" align=\"left\">");
    21882195                        if( sessionObject.reallyDelete ) {
    21892196                                // TODO ngettext
     
    22102217                        out.print("<br>");
    22112218                        out.print(button(CONFIGURE, _("Settings")));
    2212                         out.println("</td>");
     2219                        out.println("</td></tr>");
    22132220                }
    22142221                out.println( "</table>");
     
    22522259                        out.println( "-->" );
    22532260                }
     2261                out.println("<div class=\"topbuttons\">");
    22542262                out.println( button( NEW, _("New") ) + spacer +
    22552263                        button( REPLY, _("Reply") ) +
     
    22612269                        button( LIST, _("Back to Folder") ) + spacer +
    22622270                        ( sessionObject.folder.isLastElement( sessionObject.showUIDL ) ? button2( NEXT, _("Next") ) : button( NEXT, _("Next") ) ));
     2271                out.println("</div>");
    22632272                //if (Config.hasConfigFile())
    22642273                //      out.println(button( RELOAD, _("Reload Config") ) + spacer);
     
    22992308                else
    23002309                        sz = Config.getProperty(Folder.PAGESIZE, Folder.DEFAULT_PAGESIZE);
     2310                out.println("<div class=\"topbuttons\">");
    23012311                out.println(
    23022312                        _("Folder Page Size") + ":&nbsp;<input type=\"text\" style=\"text-align: right;\" name=\"" + PAGESIZE +
     
    23052315                        button( SETPAGESIZE, _("Set") ) );
    23062316                out.println("<p>");
     2317                out.println("</div>");
    23072318                out.print(_("Advanced Configuration"));
    2308                 out.print(":</p><textarea cols=\"80\" rows=\"20\" spellcheck=\"false\" name=\"" + CONFIG_TEXT + "\">");
    23092319                Properties config = Config.getProperties();
     2320                out.print(":</p><textarea cols=\"80\" rows=\"" + Math.max(8, config.size() + 2) + "\" spellcheck=\"false\" name=\"" + CONFIG_TEXT + "\">");
    23102321                for (Map.Entry<Object, Object> e : config.entrySet()) {
    23112322                        out.print(e.getKey());
     
    23142325                }
    23152326                out.println("</textarea>");
    2316                 out.println("</br>");
     2327                out.println("<div id=\"bottombuttons\">");
     2328                out.println("<br>");
    23172329                out.println(button(SAVE, _("Save Configuration")));
    23182330                out.println(button(CANCEL, _("Cancel")));
     2331                out.println("</div>");
    23192332        }
    23202333
  • installer/resources/themes/susimail/dark/mobile.css

    r87889bb r1dfbe73  
    1212     float: left;
    1313}
     14
     15div.header, div.footer {
     16     display: none;
     17}
  • installer/resources/themes/susimail/dark/susimail.css

    r87889bb r1dfbe73  
    8888     text-align: left;
    8989}
     90
     91.iframed .header {
     92     display: none;
     93}
     94
    9095
    9196.mailbody {
  • installer/resources/themes/susimail/light/mobile.css

    r87889bb r1dfbe73  
    1212     float: left;
    1313}
     14
     15div.header, div.footer {
     16     display: none;
     17}
  • installer/resources/themes/susimail/light/susimail.css

    r87889bb r1dfbe73  
    5757}
    5858
    59 .iframed #footer {
     59.iframed .footer {
    6060     display: none;
    6161}
     
    6868}
    6969
    70 .iframed p img {
     70.iframed .header {
    7171     display: none;
    7272}
Note: See TracChangeset for help on using the changeset viewer.