thomascube
2011-12-14 b540ed15a30cd9379df7feb62b0ae81a8a111e9c
Larry is growing up

4 files added
7 files modified
303 ■■■■ changed files
program/steps/settings/edit_identity.inc 2 ●●● patch | view | raw | blame | history
skins/larry/images/splitter.png patch | view | raw | blame | history
skins/larry/mail.css 59 ●●●● patch | view | raw | blame | history
skins/larry/settings.css 13 ●●●●● patch | view | raw | blame | history
skins/larry/styles.css 66 ●●●● patch | view | raw | blame | history
skins/larry/templates/folderedit.html 27 ●●●●● patch | view | raw | blame | history
skins/larry/templates/folders.html 43 ●●●●● patch | view | raw | blame | history
skins/larry/templates/identityedit.html 2 ●●● patch | view | raw | blame | history
skins/larry/templates/mail.html 13 ●●●● patch | view | raw | blame | history
skins/larry/templates/messagepreview.html 40 ●●●●● patch | view | raw | blame | history
skins/larry/ui.js 38 ●●●● patch | view | raw | blame | history
program/steps/settings/edit_identity.inc
@@ -111,7 +111,7 @@
    array('name' => '_iid', 'value' => $IDENTITY_RECORD['identity_id']));
  unset($plugin);
  unset($attrib['form']);
  unset($attrib['form'], $attrib['id']);
  // return the complete edit form as table
  $out = "$form_start\n";
skins/larry/images/splitter.png
skins/larry/mail.css
@@ -624,6 +624,20 @@
/**** message view ****/
#mailpreviewframe {
    display: none;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    bottom: 28px;
}
#messagecontframe {
    border: 0;
    border-radius: 4px 4px 0 0;
}
#messagecontent {
    position: absolute;
    top: 140px;
@@ -636,6 +650,7 @@
#messageheader,
#partheader {
    position: relative;
    padding: 3px 0;
    background: #fff;
    background: -moz-linear-gradient(top, #fff 0%, #e9e9e9 100%);
@@ -649,6 +664,15 @@
    font-size: 15px;
    margin: 0 15em 0 0;
    padding: 4px 8px 2px 8px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
h3.subject {
    font-size: 14px;
    margin: 0 8em 0 0;
    padding: 8px 8px 4px 8px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
@@ -694,6 +718,21 @@
    height: 13px;
}
#messagepreviewheader {
    margin: 0 8px;
    padding-bottom: 8px;
    border-bottom: 2px solid #f0f0f0;
}
#messagepreviewheader .headers-table {
    margin: 0 -8px;
}
#messagepreviewheader h3.subject {
    padding-left: 0;
}
#messagepreviewheader #countcontrols,
#messageheader #countcontrols {
    position: absolute;
    top: 8px;
@@ -709,11 +748,13 @@
    white-space: nowrap;
}
#messagecontent .leftcol {
#messagecontent .leftcol,
#messagepreview .leftcol {
    margin-right: 250px;
}
#messagecontent .rightcol {
#messagecontent .rightcol,
#messagepreview .rightcol {
    float: right;
/*
    position: absolute;
@@ -728,7 +769,6 @@
    padding: 8px;
}
#messagebody {
    margin: 8px;
}
@@ -738,7 +778,9 @@
    margin: 8px;
}
#message-objects div.notice {
#message-objects div.notice,
#message-buttons div.notice {
    display: block;
    color: #960;
    border: 1px solid #ffdf0e;
    background-color: #fef893;
@@ -760,16 +802,11 @@
div.message-part,
div.message-htmlpart {
    padding: 10px 2px;
    border-top: 1px solid #ccc;
    border-top: 2px solid #f0f0f0;
}
#messagebody div:first-child {
    border-top: 0;
}
div.message-part a,
div.message-htmlpart a {
    color: #0000CC;
}
div.message-part pre,
@@ -812,7 +849,7 @@
    color: #fff;
    background: #fff;
    border: 0;
    border-bottom: 2px dotted #ccc;
    border-bottom: 2px solid #f0f0f0;
}
#messagebody > p > img {
skins/larry/settings.css
@@ -145,6 +145,7 @@
    background-position: 6px -550px;
}
#folderslist,
#identitieslist {
    position: absolute;
    top: 0;
@@ -153,6 +154,7 @@
    bottom: 0;
}
#folder-details,
#identity-details {
    position: absolute;
    top: 0;
@@ -161,3 +163,14 @@
    bottom: 0;
}
#subscription-table tr.root td {
    font-size: 5%;
    height: 5px;
    padding: 2px;
}
#subscription-table td.subscribed {
    padding: 3px 12px 3px 3px;
    text-align: right;
}
skins/larry/styles.css
@@ -213,25 +213,45 @@
    background: linear-gradient(top, #bababa 0%, #d8d8d8 100%);
}
.pagenav a.button {
    padding: 1px 3px;
}
.pagenav a.button span.inner {
    display: inline-block;
    width: 12px;
    height: 12px;
    width: 16px;
    height: 13px;
    text-indent: 1000px;
    overflow: hidden;
    background: url(images/buttons.png) -8px -211px no-repeat;
    background: url(images/buttons.png) -6px -211px no-repeat;
}
.pagenav a.prevpage span.inner {
    background-position: -8px -226px;
    background-position: -7px -226px;
}
.pagenav a.nextpage span.inner {
    background-position: -30px -226px;
    background-position: -28px -226px;
}
.pagenav a.lastpage span.inner {
    background-position: -30px -211px;
    background-position: -28px -211px;
}
.pagenav a.pageup span.inner {
    background-position: -7px -256px;
}
.pagenav a.pagedown span.inner {
    background-position: -29px -256px;
}
.pagenav a.viewsource span.inner {
    background-position: -7px -271px;
}
.pagenav a.extwin span.inner {
    background-position: -29px -271px;
}
.pagenav .countdisplay {
@@ -270,7 +290,7 @@
#message-objects div.notice {
    color: #555;
    font-weight: bold;
    padding: 6px 40px 6px 25px;
    padding: 6px 30px 6px 25px;
    display: inline-block;
    white-space: nowrap;
    background: url(images/messages.png) 0 5px no-repeat;
@@ -311,6 +331,9 @@
    background: -o-linear-gradient(top, #eaeaea 0%, #c8c8c8 100%);
    background: -ms-linear-gradient(top, #eaeaea 0%, #c8c8c8 100%);
    background: linear-gradient(top, #eaeaea 0%, #c8c8c8 100%);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
@@ -530,8 +553,8 @@
.listbox .tablink,
.listing tbody td,
.listing li {
    font-size: 11px;
    display: block;
    font-size: 11px;
    border-top: 1px solid #fff;
    border-bottom: 1px solid #bbd3da;
    cursor: default;
@@ -549,6 +572,10 @@
    cursor: default;
    padding: 7px 8px 5px 8px;
    white-space: nowrap;
}
.listing tbody td {
    display: table-cell;
}
.listbox .listitem.selected,
@@ -570,7 +597,8 @@
    background-color: #d9ecf4;
}
ul.listing li.droptarget {
ul.listing li.droptarget,
table.listing tr.droptarget td {
    background-color: #c7e3ef;
}
@@ -611,11 +639,11 @@
}
.boxfooter .listbutton.add .inner {
    background-position: 8px -1210px;
    background-position: 10px -1210px;
}
.boxfooter .listbutton.groupactions .inner {
    background-position: 4px -1292px;
    background-position: 5px -1292px;
}
.centerbox {
@@ -639,6 +667,10 @@
body.iframe {
    background: #fff;
    margin: 38px 0 20px 0;
}
body.iframe.fullheight {
    margin: 0;
}
.contentbox .boxtitle,
@@ -687,7 +719,13 @@
    display: block;
    font-size: 14px;
    font-weight: bold;
    margin-bottom: 10px;
    padding-bottom: 10px;
    margin-bottom: 0;
}
.propform fieldset fieldset legend {
    color: #666;
    font-size: 12px;
}
table.propform {
@@ -1004,9 +1042,9 @@
#rcmdraglayer {
    min-width: 300px;
    min-width: 260px;
    width: auto !important;
    width: 300px;
    width: 260px;
    padding: 6px 8px;
    background: #444;
    border: 1px solid #555;
skins/larry/templates/folderedit.html
New file
@@ -0,0 +1,27 @@
<roundcube:object name="doctype" value="html5" />
<html>
<head>
<title><roundcube:object name="pagetitle" /></title>
<roundcube:include file="/includes/links.html" />
</head>
<body class="iframe">
<h1 class="boxtitle"><roundcube:label name="folderproperties" /></h1>
<div class="boxcontent">
<roundcube:object name="folderdetails" class="propform" />
</div>
<div id="formfooter">
<div class="footerleft formbuttons">
    <roundcube:button command="save" type="input" class="button mainaction" label="save" />
    <roundcube:if condition="!strlen(request:_mbox)" />
    <input type="button" value="<roundcube:label name="cancel" />" class="button" onclick="history.back()" />&nbsp;
    <roundcube:endif />
</div>
</div>
<roundcube:include file="/includes/footer.html" />
</body>
</html>
skins/larry/templates/folders.html
New file
@@ -0,0 +1,43 @@
<roundcube:object name="doctype" value="html5" />
<html>
<head>
<title><roundcube:object name="pagetitle" /></title>
<roundcube:include file="/includes/links.html" />
</head>
<body>
<roundcube:include file="/includes/header.html" />
<div id="mainscreen" class="offset">
<roundcube:include file="/includes/settingstabs.html" />
<div id="folderslist" class="uibox listbox">
<h2 class="boxtitle"><span style="float:right"><roundcube:label name="subscribed" /></span><roundcube:label name="folders" /></h2>
<div class="scroller withfooter">
<roundcube:object name="foldersubscription" form="subscriptionform" id="subscription-table" class="listing" noheader="true" />
</div>
<div class="boxfooter">
    <roundcube:button command="create-folder" type="link" title="createfolder" class="listbutton add disabled" classAct="listbutton add" innerClass="inner" content="+" /><roundcube:button name="mailboxmenulink" id="mailboxmenulink" type="link" title="folderactions" class="listbutton groupactions" onclick="UI.show_popup('mailboxmenu');return false" innerClass="inner" content="&#9881;" />
</div>
</div>
<div id="folder-details" class="uibox contentbox">
    <roundcube:object name="folderframe" id="preferences-frame" style="width:100%; height:96%" src="/watermark.html" />
    <roundcube:object name="message" id="message" class="statusbar" />
</div>
</div>
<div id="mailboxmenu" class="popupmenu">
    <ul class="toolbarmenu" id="mailboxoptionsmenu">
        <li><roundcube:button command="delete-folder" label="delete" classAct="active" /></li>
        <li><roundcube:button command="purge" type="link" label="empty" classAct="active" /></li>
        <roundcube:container name="mailboxoptions" id="mailboxoptionsmenu" />
    </ul>
</div>
<roundcube:include file="/includes/footer.html" />
</body>
</html>
skins/larry/templates/identityedit.html
@@ -30,7 +30,7 @@
<p class="formbuttons">
    <roundcube:button command="save" type="input" class="button mainaction" label="save" />
    <roundcube:button command="delete" type="input" class="button" label="delete" condition="env:action=='edit-identity'" style="margin-left:0.5em" />
    <roundcube:button command="delete" type="input" class="button" label="delete" condition="env:action=='edit-identity'" />
</p>
</div>
skins/larry/templates/mail.html
@@ -3,6 +3,14 @@
<head>
<title><roundcube:object name="pagetitle" /></title>
<roundcube:include file="/includes/links.html" />
<style type="text/css">
<roundcube:if condition="config:preview_pane == true" />
    #mailview-top { height: <roundcube:exp expression="!empty(cookie:mailviewsplitter) ? cookie:mailviewsplitter-38 : 300" />px; }
    #mailview-bottom { top: <roundcube:exp expression="!empty(cookie:mailviewsplitter) ? cookie:mailviewsplitter+5 : 320" />px; height: auto; }
    #mailpreviewframe { display: block; }
<roundcube:endif />
</style>
</head>
<body>
@@ -74,8 +82,9 @@
</div><!-- end mailview-top -->
<div id="mailview-bottom" class="uibox">
<div id="mailpreviewframe">
<div id="mailpreviewframe">
<roundcube:object name="messagecontentframe" id="messagecontframe" style="width:100%; height:100%" src="/watermark.html" />
</div>
<roundcube:object name="message" id="message" class="statusbar" />
@@ -105,7 +114,7 @@
</div>
<div id="mailboxmenu" class="popupmenu">
    <ul class="toolbarmenu">
    <ul class="toolbarmenu" id="mailboxoptionsmenu">
        <li><roundcube:button command="expunge" type="link" label="compact" classAct="active" /></li>
        <li class="separator_below"><roundcube:button command="purge" type="link" label="empty" classAct="active" /></li>
        <li><roundcube:button command="folders" task="settings" type="link" label="managefolders" classAct="active" /></li>
skins/larry/templates/messagepreview.html
New file
@@ -0,0 +1,40 @@
<roundcube:object name="doctype" value="html5" />
<html>
<head>
<title><roundcube:object name="pagetitle" /></title>
<roundcube:include file="/includes/links.html" />
</head>
<body class="iframe fullheight">
<div id="messagepreviewheader">
<h3 class="subject"><roundcube:object name="messageHeaders" valueOf="subject" /></h3>
<roundcube:object name="messageHeaders" class="headers-table" addicon="/images/addcontact.png" exclude="subject,replyto" />
<roundcube:object name="messageFullHeaders" id="full-headers" />
<!-- record navigation -->
<div id="countcontrols" class="pagenav">
    <roundcube:button command="permaurl" type="link" class="button extwin" classSel="button extwin pressed" innerClass="inner" title="openinextwin" content="[]" target="_blank" />
    <roundcube:button command="viewsource" type="link" class="button viewsource" classSel="button extwin pressed" innerClass="inner" title="viewsource" content="&lt;&gt;" />
<!--
    &nbsp;
    <roundcube:button command="previousmessage" type="link" class="button pageup disabled" classAct="button pageup" classSel="button pageup pressed" innerClass="inner" title="previousmessage" content="&amp;lt;" />
    <roundcube:button command="nextmessage" type="link" class="button pagedown disabled" classAct="button pagedown" classSel="button pagedown pressed" innerClass="inner" title="nextmessage" content="&amp;gt;" />
-->
</div>
</div>
<div id="messagepreview">
<div class="rightcol">
<roundcube:object name="messageAttachments" id="attachment-list" />
</div>
<div class="leftcol">
<roundcube:object name="messageObjects" id="message-objects" />
<roundcube:object name="messageBody" id="messagebody" />
</div>
</div>
<roundcube:include file="/includes/footer.html" />
</body>
</html>
skins/larry/ui.js
@@ -37,7 +37,7 @@
//      rcmail.addEventListener('aftersend-attachment', 'uploadmenu', rcmail_ui);
//      rcmail.addEventListener('aftertoggle-editor', 'resize_compose_body_ev', rcmail_ui);
      rcmail.gui_object('message_dragmenu', 'dragmessagemenu');
      $('#mailpreviewtoggle').click(function(e){ toggle_preview_pane(e); return false });
      $('#mailpreviewtoggle').addClass($('#mailpreviewframe').is(':visible') ? 'enabled' : 'closed').click(function(e){ toggle_preview_pane(e); return false });
      $('#maillistmode').addClass(rcmail.env.threading ? '' : 'selected').click(function(e){ switch_view_mode('list'); return false });
      $('#mailthreadmode').addClass(rcmail.env.threading ? 'selected' : '').click(function(e){ switch_view_mode('thread'); return false });
      
@@ -101,8 +101,8 @@
    $('#message-objects div a').addClass('button');
    
    if (!$('#attachment-list li').length) {
      $('#messagecontent div.rightcol').hide();
      $('#messagecontent .leftcol').css('margin-right', '0');
      $('div.rightcol').hide();
      $('div.leftcol').css('margin-right', '0');
    }
  }
@@ -189,12 +189,36 @@
  function toggle_preview_pane(e)
  {
    var button = $(e.target);
    var visible = !button.hasClass('enabled');
    var button = $(e.target),
      frame = $('#mailpreviewframe'),
      visible = !frame.is(':visible'),
      splitter = parseInt(bw.get_cookie('mailviewsplitter') || 320),
      topstyles, bottomstyles, uid;
    frame.toggle();
    button.removeClass().addClass(visible ? 'enabled' : 'closed');
//    rcmail.command('save-pref', { name:'preview_pane', value:(visible?1:0) });
    if (visible) {
      topstyles = { height:(splitter-38)+'px', bottom:'auto' };
      bottomstyles = { top:(splitter+5)+'px', height:'auto' };
      rcmail.env.contentframe = 'messagecontframe';
      if (uid = rcmail.message_list.get_single_selection())
        rcmail.show_message(uid, false, true);
    }
    else {
      topstyles = { height:'auto', bottom:'28px' };
      bottomstyles = { top:'auto', height:'26px' };
      rcmail.env.contentframe = null;
      rcmail.show_contentframe(false);
    }
    $('#mailview-top').css(topstyles);
    $('#mailview-bottom').css(bottomstyles);
    if (visible && uid && rcmail.message_list)
      rcmail.message_list.scrollto(uid);
    rcmail.command('save-pref', { name:'preview_pane', value:(visible?1:0) });
  }