diff options
author | Thomas Bruederli <thomas@roundcube.net> | 2013-06-18 13:49:19 +0200 |
---|---|---|
committer | Thomas Bruederli <thomas@roundcube.net> | 2013-06-18 13:49:19 +0200 |
commit | dd54725b21bf1a5a2c617b70c05ef6fb1681505d (patch) | |
tree | 2dc5c88aefc0db0cc8da0431896bb520e9bbdb6e /skins/larry | |
parent | b531277d039c0649736310c9b84efe4758b39537 (diff) | |
parent | 03c73fa1c59812d95c843ff63aa692a54521f264 (diff) |
Merge branch 'dev-advanced-ldap-groups':
- Refactoring: separated address book implementation from generic LDAP wrapper class
- Auto-detect and use VLV indices for all search operations
- Additional group configuration options for LDAP address books
- Allow address books to display a multi-level group hierarchy in the contacts list
Diffstat (limited to 'skins/larry')
-rw-r--r-- | skins/larry/addressbook.css | 49 | ||||
-rw-r--r-- | skins/larry/ie7hacks.css | 1 | ||||
-rw-r--r-- | skins/larry/images/contactgroup.png | bin | 0 -> 2104 bytes | |||
-rw-r--r-- | skins/larry/images/listicons.png | bin | 25486 -> 26384 bytes | |||
-rw-r--r-- | skins/larry/mail.css | 13 | ||||
-rw-r--r-- | skins/larry/styles.css | 4 | ||||
-rw-r--r-- | skins/larry/templates/addressbook.html | 2 | ||||
-rw-r--r-- | skins/larry/templates/contact.html | 2 | ||||
-rw-r--r-- | skins/larry/ui.js | 33 |
9 files changed, 97 insertions, 7 deletions
diff --git a/skins/larry/addressbook.css b/skins/larry/addressbook.css index ff3951497..090e54c7b 100644 --- a/skins/larry/addressbook.css +++ b/skins/larry/addressbook.css @@ -75,10 +75,6 @@ text-overflow: ellipsis; } -#contacts-table .contact.readonly td { - font-style: italic; -} - #directorylist li.addressbook a { background-position: 6px -766px; } @@ -131,6 +127,28 @@ left: 20px; } +#contacts-table .contact.readonly td { + font-style: italic; +} + +#contacts-table td.name { + width: 95%; +} + +#contacts-table td.action { + width: 24px; + padding: 4px; +} + +#contacts-table td.action a { + display: block; + width: 16px; + height: 14px; + text-indent: -5000px; + overflow: hidden; + background: url(images/listicons.png) -2px -1180px no-repeat; +} + #contacts-table .contact td.name { background-position: 6px -1603px; } @@ -141,6 +159,29 @@ font-weight: bold; } +#contacts-table .group td.name { + background-position: 6px -1555px; +} + +#contacts-table .group.selected td.name, +#contacts-table .group.unfocused td.name { + background-position: 6px -1579px; + font-weight: bold; +} + +#addresslist .boxtitle { + padding-right: 95px; + overflow: hidden; + text-overflow: ellipsis; +} + +#addresslist .boxtitle a.poplink { + color: #004458; + font-size: 14px; + line-height: 12px; + text-decoration: none; +} + #contact-frame { position: absolute; top: 0; diff --git a/skins/larry/ie7hacks.css b/skins/larry/ie7hacks.css index 6d7af4787..fc4713361 100644 --- a/skins/larry/ie7hacks.css +++ b/skins/larry/ie7hacks.css @@ -41,6 +41,7 @@ a.deletebutton, .boxfooter .listbutton .inner, .attachmentslist li a.delete, .attachmentslist li a.cancelupload, +#contacts-table td.action a, .previewheader .iconlink, .minimal #taskbar .button-inner { /* workaround for text-indent which also offsets the background image */ diff --git a/skins/larry/images/contactgroup.png b/skins/larry/images/contactgroup.png Binary files differnew file mode 100644 index 000000000..8303cf02f --- /dev/null +++ b/skins/larry/images/contactgroup.png diff --git a/skins/larry/images/listicons.png b/skins/larry/images/listicons.png Binary files differindex f4505d4fa..e4ffef660 100644 --- a/skins/larry/images/listicons.png +++ b/skins/larry/images/listicons.png diff --git a/skins/larry/mail.css b/skins/larry/mail.css index fe9e56ea3..d653c7804 100644 --- a/skins/larry/mail.css +++ b/skins/larry/mail.css @@ -1238,6 +1238,19 @@ div.message-partheaders .headers-table td.header { text-overflow: ellipsis; } +#contacts-table td.contactgroup a { + color: #376572; + text-decoration: none; +} + +#contacts-table td.contactgroup a span { + display: inline-block; + font-size: 16px; + font-weight: bold; + line-height: 11px; + margin-left: 0.3em; +} + #contacts-table tr:first-child td { border-top: 0; } diff --git a/skins/larry/styles.css b/skins/larry/styles.css index cfbf9ac5f..8ddbb5960 100644 --- a/skins/larry/styles.css +++ b/skins/larry/styles.css @@ -1059,6 +1059,10 @@ table.listing tr.droptarget td { background-color: #e8e798; } +.listbox table.listing { + background-color: #d9ecf4; +} + table.listing, table.layout { border: 0; diff --git a/skins/larry/templates/addressbook.html b/skins/larry/templates/addressbook.html index 401640f1f..d9e491f99 100644 --- a/skins/larry/templates/addressbook.html +++ b/skins/larry/templates/addressbook.html @@ -50,7 +50,7 @@ <!-- contacts list --> <div id="addresslist" class="uibox listbox"> -<h2 class="boxtitle"><roundcube:label name="contacts" /></h2> +<roundcube:object name="addresslisttitle" label="contacts" tag="h2" class="boxtitle" /> <div class="scroller withfooter"> <roundcube:object name="addresslist" id="contacts-table" class="listing" noheader="true" /> </div> diff --git a/skins/larry/templates/contact.html b/skins/larry/templates/contact.html index d252049cd..59fe6f79f 100644 --- a/skins/larry/templates/contact.html +++ b/skins/larry/templates/contact.html @@ -13,7 +13,7 @@ <div id="sourcename"><roundcube:label name="addressbook" />: <roundcube:var name="env:sourcename" /></div> <roundcube:endif /> - <div id="contactphoto"><roundcube:object name="contactphoto" id="contactpic" placeholder="/images/contactpic.png" /></div> + <div id="contactphoto"><roundcube:object name="contactphoto" id="contactpic" placeholder="/images/contactpic.png" placeholderGroup="/images/contactgroup.png" /></div> <roundcube:object name="contacthead" id="contacthead" /> <br style="clear:both" /> diff --git a/skins/larry/ui.js b/skins/larry/ui.js index ec4d03d00..38d8539c7 100644 --- a/skins/larry/ui.js +++ b/skins/larry/ui.js @@ -191,6 +191,8 @@ function rcube_mail_ui() /*** addressbook task ***/ else if (rcmail.env.task == 'addressbook') { rcmail.addEventListener('afterupload-photo', show_uploadform); + rcmail.addEventListener('beforepushgroup', push_contactgroup); + rcmail.addEventListener('beforepopgroup', pop_contactgroup); if (rcmail.env.action == '') { new rcube_splitter({ id:'addressviewsplitterd', p1:'#addressview-left', p2:'#addressview-right', @@ -825,6 +827,35 @@ function rcube_mail_ui() }); } + function push_contactgroup(p) + { + // lets the contacts list swipe to the left, nice! + var table = $('#contacts-table'), + scroller = table.parent().css('overflow', 'hidden'); + + table.clone() + .css({ position:'absolute', top:'0', left:'0', width:table.width()+'px', 'z-index':10 }) + .appendTo(scroller) + .animate({ left: -(table.width()+5) + 'px' }, 300, 'swing', function(){ + $(this).remove(); + scroller.css('overflow', 'auto') + }); + } + + function pop_contactgroup(p) + { + // lets the contacts list swipe to the left, nice! + var table = $('#contacts-table'), + scroller = table.parent().css('overflow', 'hidden'), + clone = table.clone().appendTo(scroller); + + table.css({ position:'absolute', top:'0', left:-(table.width()+5) + 'px', width:table.width()+'px', height:table.height()+'px', 'z-index':10 }) + .animate({ left:'0' }, 300, 'linear', function(){ + clone.remove(); + $(this).css({ position:'relative', left:'0', width:'100%', height:'auto', 'z-index':1 }); + scroller.css('overflow', 'auto') + }); + } function show_uploadform() { @@ -835,7 +866,7 @@ function rcube_mail_ui() $dialog.dialog('close'); return; } - + // add icons to clone file input field if (rcmail.env.action == 'compose' && !$dialog.data('extended')) { $('<a>') |