Files @ f3417f0d54b5
Branch filter:

Location: kallithea/rhodecode/templates/admin/users_groups/users_group_edit.html - annotation

Marcin Kuzminski
fixed default sorting on main page with sorting using wrapped lower() call on database level
2c8fd84935a4
2c8fd84935a4
2c8fd84935a4
2c8fd84935a4
2c8fd84935a4
2c8fd84935a4
2c8fd84935a4
2c8fd84935a4
f91d3f9b7230
f91d3f9b7230
f91d3f9b7230
2c8fd84935a4
2c8fd84935a4
2c8fd84935a4
2c8fd84935a4
2c8fd84935a4
2c8fd84935a4
2c8fd84935a4
2c8fd84935a4
2c8fd84935a4
c52de8aa10e0
2c8fd84935a4
2c8fd84935a4
f91d3f9b7230
2c8fd84935a4
2c8fd84935a4
2c8fd84935a4
2c8fd84935a4
2c8fd84935a4
2c8fd84935a4
2c8fd84935a4
2c8fd84935a4
2c8fd84935a4
2c8fd84935a4
2c8fd84935a4
2c8fd84935a4
2c8fd84935a4
2c8fd84935a4
f91d3f9b7230
2c8fd84935a4
2c8fd84935a4
2c8fd84935a4
2c8fd84935a4
2c8fd84935a4
2c8fd84935a4
2c8fd84935a4
2c8fd84935a4
2c8fd84935a4
4e38b2bc8835
2c8fd84935a4
2c8fd84935a4
4e38b2bc8835
f91d3f9b7230
2c8fd84935a4
2c8fd84935a4
2c8fd84935a4
2c8fd84935a4
4e38b2bc8835
2c8fd84935a4
4e38b2bc8835
4e38b2bc8835
b702d0d4b030
4e38b2bc8835
2c8fd84935a4
2c8fd84935a4
f91d3f9b7230
f91d3f9b7230
b702d0d4b030
2c8fd84935a4
f91d3f9b7230
f91d3f9b7230
b702d0d4b030
2c8fd84935a4
2c8fd84935a4
4e38b2bc8835
2c8fd84935a4
4e38b2bc8835
b702d0d4b030
4e38b2bc8835
f91d3f9b7230
2c8fd84935a4
2c8fd84935a4
f91d3f9b7230
f91d3f9b7230
f91d3f9b7230
f91d3f9b7230
2c8fd84935a4
f91d3f9b7230
2c8fd84935a4
aaec08ad9daf
f91d3f9b7230
f91d3f9b7230
f91d3f9b7230
f91d3f9b7230
2c8fd84935a4
f91d3f9b7230
4a7de41dc22a
4a7de41dc22a
4a7de41dc22a
4a7de41dc22a
4a7de41dc22a
4a7de41dc22a
4a7de41dc22a
4a7de41dc22a
4a7de41dc22a
4a7de41dc22a
4a7de41dc22a
4a7de41dc22a
4a7de41dc22a
4a7de41dc22a
4a7de41dc22a
4a7de41dc22a
4a7de41dc22a
4a7de41dc22a
4a7de41dc22a
4a7de41dc22a
4a7de41dc22a
4a7de41dc22a
4a7de41dc22a
4a7de41dc22a
4a7de41dc22a
4a7de41dc22a
4a7de41dc22a
4a7de41dc22a
4a7de41dc22a
4a7de41dc22a
4a7de41dc22a
4a7de41dc22a
4a7de41dc22a
4a7de41dc22a
4a7de41dc22a
4a7de41dc22a
4a7de41dc22a
4a7de41dc22a
4a7de41dc22a
4a7de41dc22a
4a7de41dc22a
4a7de41dc22a
4a7de41dc22a
4a7de41dc22a
4a7de41dc22a
2c8fd84935a4
f48bce87475b
f48bce87475b
f48bce87475b
f91d3f9b7230
f48bce87475b
f48bce87475b
f48bce87475b
f91d3f9b7230
f48bce87475b
f48bce87475b
f91d3f9b7230
f48bce87475b
f48bce87475b
f48bce87475b
f48bce87475b
f48bce87475b
f91d3f9b7230
f48bce87475b
f48bce87475b
f48bce87475b
f48bce87475b
f48bce87475b
f48bce87475b
f48bce87475b
2c8fd84935a4
f48bce87475b
f48bce87475b
f48bce87475b
f48bce87475b
f48bce87475b
f91d3f9b7230
f48bce87475b
f48bce87475b
f48bce87475b
f91d3f9b7230
f48bce87475b
f48bce87475b
f48bce87475b
f48bce87475b
f48bce87475b
f48bce87475b
f48bce87475b
f48bce87475b
f48bce87475b
f48bce87475b
f48bce87475b
f48bce87475b
f91d3f9b7230
f48bce87475b
f48bce87475b
f48bce87475b
f91d3f9b7230
f48bce87475b
f91d3f9b7230
f48bce87475b
f48bce87475b
f91d3f9b7230
f48bce87475b
f48bce87475b
f48bce87475b
f48bce87475b
f48bce87475b
f91d3f9b7230
f48bce87475b
f48bce87475b
f48bce87475b
f48bce87475b
f48bce87475b
f48bce87475b
f48bce87475b
f48bce87475b
f48bce87475b
f91d3f9b7230
f48bce87475b
f48bce87475b
f91d3f9b7230
f48bce87475b
f48bce87475b
f48bce87475b
f48bce87475b
f48bce87475b
f48bce87475b
f48bce87475b
f48bce87475b
f91d3f9b7230
f48bce87475b
f48bce87475b
f48bce87475b
f48bce87475b
f48bce87475b
f48bce87475b
f48bce87475b
f48bce87475b
f91d3f9b7230
f48bce87475b
f48bce87475b
f48bce87475b
f48bce87475b
f48bce87475b
f48bce87475b
f48bce87475b
f48bce87475b
f48bce87475b
f48bce87475b
f48bce87475b
f48bce87475b
f48bce87475b
f48bce87475b
f48bce87475b
f48bce87475b
f48bce87475b
f48bce87475b
f48bce87475b
f48bce87475b
f48bce87475b
f48bce87475b
f48bce87475b
f48bce87475b
f48bce87475b
f48bce87475b
f48bce87475b
f48bce87475b
f91d3f9b7230
f48bce87475b
f91d3f9b7230
f48bce87475b
f48bce87475b
f48bce87475b
2c8fd84935a4
f48bce87475b
f48bce87475b
f48bce87475b
f48bce87475b
f48bce87475b
f48bce87475b
f48bce87475b
f91d3f9b7230
f91d3f9b7230
## -*- coding: utf-8 -*-
<%inherit file="/base/base.html"/>

<%def name="title()">
    ${_('Edit users group')} ${c.users_group.users_group_name} - ${c.rhodecode_name}
</%def>

<%def name="breadcrumbs_links()">
    ${h.link_to(_('Admin'),h.url('admin_home'))}
    &raquo;
    ${h.link_to(_('UsersGroups'),h.url('users_groups'))}
    &raquo;
    ${_('edit')} "${c.users_group.users_group_name}"
</%def>

<%def name="page_nav()">
    ${self.menu('admin')}
</%def>

<%def name="main()">
<div class="box box-left">
    <!-- box / title -->
    <div class="title">
        ${self.breadcrumbs()}
    </div>
    <!-- end box / title -->
    ${h.form(url('users_group', id=c.users_group.users_group_id),method='put', id='edit_users_group')}
    <div class="form">
        <!-- fields -->
	        <div class="fields">
	             <div class="field">
	                <div class="label">
	                    <label for="users_group_name">${_('Group name')}:</label>
	                </div>
	                <div class="input">
	                    ${h.text('users_group_name',class_='small')}
	                </div>
	             </div>

	             <div class="field">
	                <div class="label label-checkbox">
	                    <label for="users_group_active">${_('Active')}:</label>
	                </div>
	                <div class="checkboxes">
	                    ${h.checkbox('users_group_active',value=True)}
	                </div>
	             </div>
	            <div class="field">
                    <div class="label">
                        <label for="users_group_active">${_('Members')}:</label>
                    </div>
                    <div class="select">
	                    <table>
	                            <tr>
	                                <td>
	                                    <div>
	                                        <div style="float:left">
	                                            <div class="text" style="padding: 0px 0px 6px;">${_('Choosen group members')}</div>
	                                            ${h.select('users_group_members',[x[0] for x in c.group_members],c.group_members,multiple=True,size=8,style="min-width:210px")}
	                                           <div  id="remove_all_elements" style="cursor:pointer;text-align:center">
	                                               ${_('Remove all elements')}
	                                               <img alt="remove" style="vertical-align:text-bottom" src="${h.url('/images/icons/arrow_right.png')}"/>
	                                           </div>
	                                        </div>
	                                        <div style="float:left;width:20px;padding-top:50px">
	                                            <img alt="add" id="add_element"
	                                                style="padding:2px;cursor:pointer"
	                                                src="${h.url('/images/icons/arrow_left.png')}"/>
	                                            <br />
	                                            <img alt="remove" id="remove_element"
	                                                style="padding:2px;cursor:pointer"
	                                                src="${h.url('/images/icons/arrow_right.png')}"/>
	                                        </div>
	                                        <div style="float:left">
	                                             <div class="text" style="padding: 0px 0px 6px;">${_('Available members')}</div>
	                                             ${h.select('available_members',[],c.available_members,multiple=True,size=8,style="min-width:210px")}
	                                             <div id="add_all_elements" style="cursor:pointer;text-align:center">
	                                                   <img alt="add" style="vertical-align:text-bottom" src="${h.url('/images/icons/arrow_left.png')}"/>
	                                                    ${_('Add all elements')}
	                                             </div>
	                                        </div>
	                                    </div>
	                                </td>
	                            </tr>
	                    </table>
                    </div>

                </div>
                <div class="buttons">
                  ${h.submit('save',_('save'),class_="ui-button")}
                </div>
            </div>
    </div>
${h.end_form()}
</div>

<div class="box box-right">
    <!-- box / title -->
    <div class="title">
        <h5>${_('Permissions')}</h5>
    </div>
    ${h.form(url('users_group_perm', id=c.users_group.users_group_id), method='put')}
    <div class="form">
        <!-- fields -->
        <div class="fields">
             <div class="field">
                <div class="label label-checkbox">
                    <label for="create_repo_perm">${_('Create repositories')}:</label>
                </div>
                <div class="checkboxes">
                    ${h.checkbox('create_repo_perm',value=True)}
                </div>
             </div>
            <div class="buttons">
              ${h.submit('save',_('Save'),class_="ui-button")}
              ${h.reset('reset',_('Reset'),class_="ui-button")}
            </div>
        </div>
    </div>
    ${h.end_form()}
</div>

<div class="box box-right">
    <!-- box / title -->
    <div class="title">
        <h5>${_('Group members')}</h5>
    </div>
    <div class="group_members_wrap">
      <ul class="group_members">
      %for user in c.group_members_obj:
        <li>
          <div class="group_member">
            <div class="gravatar"><img alt="gravatar" src="${h.gravatar_url(user.email,24)}"/> </div>
            <div>${user.username}</div>
            <div>${user.full_name}</div>
          </div>
        </li>
      %endfor
      </ul>
    </div>
</div>
<script type="text/javascript">
YAHOO.util.Event.onDOMReady(function(){
  var D = YAHOO.util.Dom;
  var E = YAHOO.util.Event;

  //definition of containers ID's
  var available_container = 'available_members';
  var selected_container = 'users_group_members';

  //form containing containers id
  var form_id = 'edit_users_group';

  //temp container for selected storage.
  var cache = new Array();
  var av_cache = new Array();
  var c =  D.get(selected_container);
  var ac = D.get(available_container);

  //get only selected options for further fullfilment
  for(var i = 0;node =c.options[i];i++){
      if(node.selected){
          //push selected to my temp storage left overs :)
          cache.push(node);
      }
  }

  //get all available options to cache
  for(var i = 0;node =ac.options[i];i++){
          //push selected to my temp storage left overs :)
          av_cache.push(node);
  }

  //fill available only with those not in choosen
  ac.options.length=0;
  tmp_cache = new Array();

  for(var i = 0;node = av_cache[i];i++){
      var add = true;
      for(var i2 = 0;node_2 = cache[i2];i2++){
          if(node.value == node_2.value){
              add=false;
              break;
          }
      }
      if(add){
          tmp_cache.push(new Option(node.text, node.value, false, false));
      }
  }

  for(var i = 0;node = tmp_cache[i];i++){
      ac.options[i] = node;
  }

  function prompts_action_callback(e){

      var choosen = D.get(selected_container);
      var available = D.get(available_container);

      //get checked and unchecked options from field
      function get_checked(from_field){
          //temp container for storage.
          var sel_cache = new Array();
          var oth_cache = new Array();

          for(var i = 0;node = from_field.options[i];i++){
              if(node.selected){
                  //push selected fields :)
                  sel_cache.push(node);
              }
              else{
                  oth_cache.push(node)
              }
          }

          return [sel_cache,oth_cache]
      }

      //fill the field with given options
      function fill_with(field,options){
          //clear firtst
          field.options.length=0;
          for(var i = 0;node = options[i];i++){
                  field.options[i]=new Option(node.text, node.value,
                          false, false);
          }

      }
      //adds to current field
      function add_to(field,options){
          for(var i = 0;node = options[i];i++){
                  field.appendChild(new Option(node.text, node.value,
                          false, false));
          }
      }

      // add action
      if (this.id=='add_element'){
          var c = get_checked(available);
          add_to(choosen,c[0]);
          fill_with(available,c[1]);
      }
      // remove action
      if (this.id=='remove_element'){
          var c = get_checked(choosen);
          add_to(available,c[0]);
          fill_with(choosen,c[1]);
      }
      // add all elements
      if(this.id=='add_all_elements'){
          for(var i=0; node = available.options[i];i++){
                  choosen.appendChild(new Option(node.text,
                          node.value, false, false));
          }
          available.options.length = 0;
      }
      //remove all elements
      if(this.id=='remove_all_elements'){
          for(var i=0; node = choosen.options[i];i++){
              available.appendChild(new Option(node.text,
                      node.value, false, false));
          }
          choosen.options.length = 0;
      }

  }

  E.addListener(['add_element','remove_element',
                 'add_all_elements','remove_all_elements'],'click',
                 prompts_action_callback)

  E.addListener(form_id,'submit',function(){
      var choosen = D.get(selected_container);
      for (var i = 0; i < choosen.options.length; i++) {
          choosen.options[i].selected = 'selected';
      }
  });
});
</script>
</%def>