alecpl
2012-04-05 8d8f7a7b8e7ea8464aa807611b3db320fab12156
- Larry skin support


9 files added
5 files modified
527 ■■■■■ changed files
plugins/managesieve/Changelog 1 ●●●● patch | view | raw | blame | history
plugins/managesieve/managesieve.js 5 ●●●●● patch | view | raw | blame | history
plugins/managesieve/managesieve.php 5 ●●●●● patch | view | raw | blame | history
plugins/managesieve/skins/default/managesieve.css 5 ●●●●● patch | view | raw | blame | history
plugins/managesieve/skins/default/managesieve_mail.css 1 ●●●● patch | view | raw | blame | history
plugins/managesieve/skins/larry/images/add.png patch | view | raw | blame | history
plugins/managesieve/skins/larry/images/del.png patch | view | raw | blame | history
plugins/managesieve/skins/larry/images/down_small.gif patch | view | raw | blame | history
plugins/managesieve/skins/larry/images/up_small.gif patch | view | raw | blame | history
plugins/managesieve/skins/larry/managesieve.css 319 ●●●●● patch | view | raw | blame | history
plugins/managesieve/skins/larry/managesieve_mail.css 62 ●●●●● patch | view | raw | blame | history
plugins/managesieve/skins/larry/templates/filteredit.html 33 ●●●●● patch | view | raw | blame | history
plugins/managesieve/skins/larry/templates/managesieve.html 73 ●●●●● patch | view | raw | blame | history
plugins/managesieve/skins/larry/templates/setedit.html 23 ●●●●● patch | view | raw | blame | history
plugins/managesieve/Changelog
@@ -1,5 +1,6 @@
- Fixed filter popup width (for non-english localizations)
- Fixed tokenizer infinite loop on invalid script content
- Larry skin support
* version 5.0 [2012-01-05]
-----------------------------------------------------------
plugins/managesieve/managesieve.js
@@ -674,7 +674,8 @@
        function(e) {
          var offset = $(this).offset(),
            left = offset.left,
            top = offset.top - 12;
            top = offset.top - 12,
            minwidth = $(this).width();
          if (framed) {
            offset = $((rcmail.env.task == 'mail'  ? '#sievefilterform > iframe' : '#filter-box'), parent.document).offset();
@@ -685,7 +686,7 @@
          tip.html(e.data.str)
          top -= tip.height();
          tip.css({left: left, top: top}).show();
          tip.css({left: left, top: top, minWidth: (minwidth-2) + 'px'}).show();
        })
      .bind('mouseleave', function(e) { tip.hide(); });
  }
plugins/managesieve/managesieve.php
@@ -128,8 +128,9 @@
                'command'  => 'managesieve-create',
                'label'    => 'managesieve.filtercreate',
                'type'     => 'link',
                'classact' => 'filterlink active',
                'class'    => 'filterlink',
                'classact' => 'icon filterlink active',
                'class'    => 'icon filterlink',
                'innerclass' => 'icon filterlink',
            ))), 'messagemenu');
        // register some labels/messages
plugins/managesieve/skins/default/managesieve.css
@@ -272,11 +272,6 @@
  color: red;
}
#managesieve-tip
{
  width: 200px;
}
a.button.add
{
  background: url(images/add.png) no-repeat;
plugins/managesieve/skins/default/managesieve_mail.css
@@ -53,7 +53,6 @@
#managesieve-tip
{
  width: 200px;
  z-index: 100000;
}
plugins/managesieve/skins/larry/images/add.png
plugins/managesieve/skins/larry/images/del.png
plugins/managesieve/skins/larry/images/down_small.gif
plugins/managesieve/skins/larry/images/up_small.gif
plugins/managesieve/skins/larry/managesieve.css
New file
@@ -0,0 +1,319 @@
#filtersetslistbox
{
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 150px;
}
#filtersscreen
{
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 162px;
}
#filterslistbox
{
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 180px;
}
#filter-box
{
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 192px;
}
#filter-frame
{
  border-radius: 4px;
}
#filterslist,
#filtersetslist
{
  width: 100%;
  table-layout: fixed;
}
#filterslist tbody td,
#filtersetslist tbody td
{
  width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
}
#filterslist tbody tr.disabled td,
#filtersetslist tbody tr.disabled td
{
  color: #87A3AA;
}
#filtersetslist tbody td
{
  font-weight: bold;
}
#filterslist tbody tr.filtermoveup td
{
  border-top: 2px dotted #555;
  padding-top: 5px;
}
#filterslist tbody tr.filtermovedown td
{
  border-bottom: 2px dotted #555;
  padding-bottom: 4px;
}
body.iframe
{
  min-width: 620px;
}
#filter-form
{
  min-width: 550px;
  white-space: nowrap;
  padding: 20px 10px 10px 10px;
}
legend, label
{
  color: #666666;
}
#rules, #actions
{
  margin-top: 5px;
  padding: 0;
  border-collapse: collapse;
}
div.rulerow, div.actionrow
{
  width: auto;
  padding: 2px;
  white-space: nowrap;
  border: 1px solid white;
}
div.rulerow:hover, div.actionrow:hover
{
  padding: 2px;
  white-space: nowrap;
  background-color: #D9ECF4;
  border: 1px solid #BBD3DA;
  border-radius: 4px;
}
div.rulerow table, div.actionrow table
{
  padding: 0px;
  min-width: 600px;
}
td
{
  vertical-align: top;
}
td.advbutton
{
  width: 1%;
}
td.advbutton a
{
  display: block;
  padding-top: 14px;
  height: 6px;
  width: 12px;
  text-decoration: none;
}
td.advbutton a.show
{
  background: url(images/down_small.gif) center no-repeat;
}
td.advbutton a.hide
{
  background: url(images/up_small.gif) center no-repeat;
}
td.rowbuttons
{
  text-align: right;
  white-space: nowrap;
  width: 1%;
}
td.rowactions
{
  white-space: nowrap;
  width: 1%;
  padding-top: 2px;
}
td.rowtargets
{
  white-space: nowrap;
  width: 98%;
  padding-left: 3px;
  padding-top: 2px;
}
td.rowtargets div.adv
{
  padding-top: 3px;
}
input.disabled, input.disabled:hover
{
  color: #999999;
}
input.error, textarea.error
{
  background-color: #FFFFC4;
}
input.box,
input.radio
{
  border: 0;
  margin-top: 0;
}
select.operator_selector
{
  width: 200px;
}
td.rowtargets span,
span.label
{
  color: #666666;
  font-size: 10px;
  white-space: nowrap;
}
#footer
{
  padding-top: 5px;
  width: 100%;
}
#footer .footerleft
{
  padding-left: 2px;
  white-space: nowrap;
  float: left;
}
#footer .footerright
{
  padding-right: 2px;
  white-space: nowrap;
  text-align: right;
  float: right;
}
.itemlist
{
  line-height: 25px;
}
.itemlist input
{
  vertical-align: middle;
}
span.sieve.error
{
  color: red;
  white-space: nowrap;
}
#managesieve-tip
{
  padding: 3px;
  background-color: #eee;
}
a.button
{
  margin: 0;
  padding: 0;
}
a.button.add
{
  background: url(images/add.png) no-repeat;
  width: 30px;
  height: 20px;
  margin-right: 4px;
  display: inline-block;
}
a.button.del
{
  background: url(images/del.png) no-repeat;
  width: 30px;
  height: 20px;
  display: inline-block;
}
a.button.disabled
{
  opacity: 0.35;
  filter: alpha(opacity=35);
  cursor: default;
}
#filter-form select,
#filter-form input,
#filter-form textarea
{
  font-size: 11px;
  padding: 1px;
}
/* revert larry style button */
#filter-form input.button
{
  padding-bottom: 2px;
  padding-left: 5px;
  padding-right: 5px;
  padding-top: 2px;
}
fieldset
{
  border-radius: 4px;
}
/* fixes for popup window */
body.iframe.mail
{
  margin: 0;
  padding: 0;
}
body.iframe.mail #filter-form
{
  padding: 10px 5px 5px 5px;
}
plugins/managesieve/skins/larry/managesieve_mail.css
New file
@@ -0,0 +1,62 @@
ul.toolbarmenu li span.filterlink {
  background-position: 0 -1924px;
}
#sievefilterform {
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 0;
  overflow: hidden;
}
#sievefilterform iframe {
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  width: 100%;
  min-height: 100%; /* Chrome 14 bug */
  border: 0;
  padding: 0;
  margin: 0;
}
#sievefilterform ul {
  list-style: none;
  padding: 0;
  margin: 0;
  margin-top: 5px;
}
#sievefilterform fieldset {
  margin: 5px;
  border-radius: 4px;
}
#sievefilterform ul li {
  margin-bottom: 5px;
  white-space: nowrap;
}
#sievefilterform ul li input {
  margin-right: 5px;
}
#sievefilterform label {
  font-weight: bold;
}
#managesieve-tip
{
  z-index: 100000;
  padding: 3px;
  background-color: #eee;
}
span.sieve.error
{
  color: red;
  white-space: nowrap;
}
plugins/managesieve/skins/larry/templates/filteredit.html
New file
@@ -0,0 +1,33 @@
<roundcube:object name="doctype" value="html5" />
<html>
<head>
<title><roundcube:object name="pagetitle" /></title>
<roundcube:include file="/includes/links.html" />
<link rel="stylesheet" type="text/css" href="/this/managesieve.css" />
</head>
<body class="iframe<roundcube:exp expression="env:task != 'mail' ? '' : ' mail'" />">
<roundcube:if condition="env:task != 'mail'" />
<div id="filter-title" class="boxtitle"><roundcube:label name="managesieve.filterdef" /></div>
<roundcube:endif />
<div id="filter-form" class="boxcontent">
<roundcube:object name="filterform" />
<roundcube:if condition="env:task != 'mail'" />
<div id="footer">
<div class="footerleft">
<roundcube:button command="plugin.managesieve-save" type="input" class="button mainaction" label="save" />
</div>
<div class="footerright">
<label for="disabled"><roundcube:label name="managesieve.filterdisabled" /></label>
<input type="checkbox" id="disabled" name="_disabled" value="1" />
</div>
</div>
<roundcube:endif />
</form>
</div>
</body>
</html>
plugins/managesieve/skins/larry/templates/managesieve.html
New file
@@ -0,0 +1,73 @@
<roundcube:object name="doctype" value="html5" />
<html>
<head>
<title><roundcube:object name="pagetitle" /></title>
<roundcube:include file="/includes/links.html" />
<link rel="stylesheet" type="text/css" href="/this/managesieve.css" />
</head>
<body class="noscroll">
<roundcube:include file="/includes/header.html" />
<div id="mainscreen" class="offset">
<roundcube:include file="/includes/settingstabs.html" />
<div id="settings-right">
<div id="filtersetslistbox" class="uibox listbox">
<h2 class="boxtitle"><roundcube:label name="managesieve.filtersets" /></h2>
<div class="scroller withfooter">
  <roundcube:object name="filtersetslist" id="filtersetslist" class="listing" cellspacing="0" summary="Filters list" type="list" noheader="true" />
</div>
<div class="boxfooter">
  <roundcube:button command="plugin.managesieve-setadd" type="link" title="managesieve.filtersetadd" class="listbutton add disabled" classAct="listbutton add" innerClass="inner" content="+" /><roundcube:button name="filtersetmenulink" id="filtersetmenulink" type="link" title="moreactions" class="listbutton groupactions" onclick="UI.show_popup('filtersetmenu');return false" innerClass="inner" content="&#9881" />
</div>
</div>
<div id="filtersscreen">
<div id="filterslistbox" class="uibox listbox">
<h2 class="boxtitle"><roundcube:label name="managesieve.filters" /></h2>
<div class="scroller withfooter">
  <roundcube:object name="filterslist" id="filterslist" class="listing" cellspacing="0" summary="Filters list" noheader="true" />
</div>
<div class="boxfooter">
  <roundcube:button command="plugin.managesieve-add" type="link" title="managesieve.filteradd" class="listbutton add disabled" classAct="listbutton add" innerClass="inner" content="+" /><roundcube:button name="filtermenulink" id="filtermenulink" type="link" title="moreactions" class="listbutton groupactions" onclick="UI.show_popup('filtermenu');return false" innerClass="inner" content="&#9881" />
</div>
</div>
<div id="filter-box" class="uibox">
  <roundcube:object name="filterframe" id="filter-frame" style="width:100%; height:96%" frameborder="0" src="/watermark.html" />
  <roundcube:object name="message" id="message" class="statusbar" />
</div>
</div>
<div id="filtersetmenu" class="popupmenu">
  <ul class="toolbarmenu">
    <li><roundcube:button command="plugin.managesieve-setact" label="managesieve.enable" classAct="active" /></li>
    <li><roundcube:button command="plugin.managesieve-setdel" label="delete" classAct="active" /></li>
    <li class="separator_above"><roundcube:button command="plugin.managesieve-setget" label="download" classAct="active" /></li>
    <roundcube:container name="filtersetoptions" id="filtersetmenu" />
  </ul>
</div>
<div id="filtermenu" class="popupmenu">
  <ul class="toolbarmenu">
    <li><roundcube:button command="plugin.managesieve-act" label="managesieve.enable" classAct="active" /></li>
    <li><roundcube:button command="plugin.managesieve-del" label="delete" classAct="active" /></li>
    <roundcube:container name="filteroptions" id="filtermenu" />
  </ul>
</div>
<roundcube:include file="/includes/footer.html" />
<script type="text/javascript">
  new rcube_splitter({ id:'managesievesplitter1', p1:'#filtersetslistbox', p2:'#filtersscreen',
          orientation:'v', relative:true, start:156, min:120, size:12 }).init();
  new rcube_splitter({ id:'managesievesplitter2', p1:'#filterslistbox', p2:'#filter-box',
          orientation:'v', relative:true, start:186, min:120, size:12 }).init();
</script>
</body>
</html>
plugins/managesieve/skins/larry/templates/setedit.html
New file
@@ -0,0 +1,23 @@
<roundcube:object name="doctype" value="html5" />
<html>
<head>
<title><roundcube:object name="pagetitle" /></title>
<roundcube:include file="/includes/links.html" />
<link rel="stylesheet" type="text/css" href="/this/managesieve.css" />
</head>
<body class="iframe">
<div id="filter-title" class="boxtitle"><roundcube:label name="managesieve.newfilterset" /></div>
<div id="filter-form" class="boxcontent">
<roundcube:object name="filtersetform" />
<p>
<roundcube:button command="plugin.managesieve-save" type="input" class="button mainaction" label="save" />
</p>
</form>
</div>
</body>
</html>