Changeset 6059 in subversion


Ignore:
Timestamp:
Apr 11, 2012 8:52:51 AM (13 months ago)
Author:
thomasb
Message:

Allow mass-removal of addresses from a group (#1487748)

Location:
trunk/roundcubemail
Files:
14 edited

Legend:

Unmodified
Added
Removed
  • trunk/roundcubemail/CHANGELOG

    r6055 r6059  
    22=========================== 
    33 
    4 - Fix removing all folders on import to LDAP addressbook 
     4- Allow mass-removal of addresses from a group (#1487748) 
     5- Fix removing all contacts on import to LDAP addressbook 
    56- Fix so "Back" from compose/show doesn't reset search request (#1488238) 
    67- Add option to delete messages instead of moving to Trash when in Junk folder (#1486686) 
  • trunk/roundcubemail/program/js/app.js

    r6054 r6059  
    40174017    } 
    40184018 
     4019    // if a group is currently selected, and there is at least one contact selected 
     4020    // thend we can enable the group-remove-selected command 
     4021    this.enable_command('group-remove-selected', typeof this.env.group != 'undefined' && list.selection.length > 0); 
     4022 
    40194023    this.enable_command('compose', this.env.group || list.selection.length > 0); 
    40204024    this.enable_command('edit', id && writable); 
     
    43754379    this.name_input.select().focus(); 
    43764380  }; 
     4381 
     4382  //remove selected contacts from current active group 
     4383  this.group_remove_selected = function() 
     4384  { 
     4385    ref.http_post('group-delmembers','_cid='+urlencode(this.contact_list.selection) 
     4386                  + '&_source='+urlencode(this.env.source) 
     4387                  + '&_gid='+urlencode(this.env.group)); 
     4388  }; 
     4389 
     4390  //callback after deleting contact(s) from current group 
     4391  this.remove_group_contacts = function(props) 
     4392  { 
     4393    if('undefined' != typeof this.env.group && (this.env.group === props.gid)){ 
     4394      var selection = this.contact_list.get_selection(); 
     4395      for (var n=0; n<selection.length; n++) { 
     4396        id = selection[n]; 
     4397        this.contact_list.remove_row(id, (n == selection.length-1)); 
     4398      } 
     4399    } 
     4400  } 
     4401 
     4402 
    43774403 
    43784404  // handler for keyboard events on the input field 
  • trunk/roundcubemail/program/localization/de_CH/labels.inc

    r5950 r6059  
    285285$labels['grouprename'] = 'Gruppe umbenennen'; 
    286286$labels['groupdelete'] = 'Gruppe löschen'; 
     287$labels['groupremoveselected'] = 'GewÀhlte Kontakte aus Gruppe entfernen'; 
    287288$labels['previouspage'] = 'Eine Seite zurÃŒck'; 
    288289$labels['firstpage'] = 'Erste Seite'; 
  • trunk/roundcubemail/program/localization/de_DE/labels.inc

    r5950 r6059  
    285285$labels['grouprename'] = 'Gruppe umbenennen'; 
    286286$labels['groupdelete'] = 'Gruppe löschen'; 
     287$labels['groupremoveselected'] = 'GewÀhlte Kontakte aus Gruppe entfernen'; 
    287288$labels['previouspage'] = 'Seite zurÃŒck'; 
    288289$labels['firstpage'] = 'Erste Seite'; 
  • trunk/roundcubemail/program/localization/en_US/labels.inc

    r6052 r6059  
    335335$labels['grouprename']    = 'Rename group'; 
    336336$labels['groupdelete']    = 'Delete group'; 
     337$labels['groupremoveselected'] = 'Remove selected contacts from group'; 
    337338 
    338339$labels['previouspage']   = 'Show previous page'; 
  • trunk/roundcubemail/program/steps/addressbook/groups.inc

    r5787 r6059  
    6565      $result = $plugin['result']; 
    6666 
    67     if ($result) 
     67    if ($result){ 
    6868      $OUTPUT->show_message('contactremovedfromgroup'); 
    69     else 
     69      $OUTPUT->command('remove_group_contacts',array('source' => $source, 'gid' => $gid)); 
     70    }else{ 
    7071      $OUTPUT->show_message($plugin['message'] ? $plugin['message'] : 'errorsaving', 'error'); 
     72    } 
    7173  } 
    7274} 
  • trunk/roundcubemail/skins/default/templates/addressbook.html

    r5981 r6059  
    100100    <li><roundcube:button command="group-rename" label="grouprename" classAct="active" /></li> 
    101101    <li><roundcube:button command="group-delete" label="groupdelete" classAct="active" /></li> 
     102    <li><roundcube:button command="group-remove-selected" label="group-remove-selected" classAct="active" /></li> 
    102103    <li class="separator_above"><roundcube:button command="search-create" label="searchsave" classAct="active" /></li> 
    103104    <li><roundcube:button command="search-delete" label="searchdelete" classAct="active" /></li> 
  • trunk/roundcubemail/skins/larry/addressbook.css

    r6023 r6059  
    5050        top: 42px; 
    5151        left: 0; 
    52         width: 260px; 
     52        width: 280px; 
    5353        bottom: 0; 
    5454} 
     
    5757        position: absolute; 
    5858        top: 42px; 
    59         left: 272px; 
     59        left: 292px; 
    6060        right: 0; 
    6161        bottom: 0; 
  • trunk/roundcubemail/skins/larry/mail.css

    r6040 r6059  
    749749        cursor: pointer; 
    750750        height: 10px; 
    751         background: url(images/buttons.png) center -1539px no-repeat; 
     751        background: url(images/buttons.png) center -1579px no-repeat; 
    752752} 
    753753 
    754754div.hide-headers { 
    755         background-position: center -1549px; 
     755        background-position: center -1589px; 
    756756} 
    757757 
  • trunk/roundcubemail/skins/larry/styles.css

    r6044 r6059  
    861861} 
    862862 
     863.boxfooter .listbutton.removegroup .inner { 
     864        background-position: 5px -1540px; 
     865} 
     866 
    863867.boxfooter .listbutton.disabled .inner { 
    864868        opacity: 0.4; 
     
    14121416 
    14131417.toolbar a.button.spellcheck.selected { 
    1414         background-position: left -1570px; 
     1418        background-position: left -1610px; 
    14151419        color: #1978a1; 
    14161420} 
  • trunk/roundcubemail/skins/larry/templates/addressbook.html

    r5986 r6059  
    5151</div> 
    5252<div class="boxfooter"> 
    53         <roundcube:button command="add" type="link" title="newcontact" class="listbutton add disabled" classAct="listbutton add" innerClass="inner" content="+" /><roundcube:button command="delete" type="link" title="deletecontact" class="listbutton delete disabled" classAct="listbutton delete" innerClass="inner" content="x" /> 
     53        <roundcube:button command="add" type="link" title="newcontact" class="listbutton add disabled" classAct="listbutton add" innerClass="inner" content="+" /><roundcube:button command="delete" type="link" title="deletecontact" class="listbutton delete disabled" classAct="listbutton delete" innerClass="inner" content="x" /><roundcube:button command="group-remove-selected" type="link" title="groupremoveselected"  class="listbutton removegroup disabled" classAct="listbutton removegroup" innerClass="inner" content="-" /> 
    5454        <roundcube:object name="recordsCountDisplay" class="countdisplay" label="fromtoshort" /> 
    5555</div> 
  • trunk/roundcubemail/skins/larry/ui.js

    r6017 r6059  
    156156          orientation:'v', relative:true, start:226, min:150, size:12, render:resize_leftcol }).init(); 
    157157        new rcube_splitter({ id:'addressviewsplitter', p1:'#addresslist', p2:'#contacts-box', 
    158           orientation:'v', relative:true, start:266, min:220, size:12 }).init(); 
     158          orientation:'v', relative:true, start:286, min:270, size:12 }).init(); 
    159159 
    160160        new rcube_scroller('#directorylist-content', '#directorylist-header', '#directorylist-footer'); 
Note: See TracChangeset for help on using the changeset viewer.