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="⚙" /> </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="⚙" /> </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>