Mercurial > kallithea
diff rhodecode/templates/admin/users_groups/users_group_edit.html @ 972:2c8fd84935a4 beta
#56 implemented users groups editing,
fixed sqlalchemy relation function into relationship (according to 0.6)
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Fri, 28 Jan 2011 18:40:50 +0100 |
parents | 83d35d716a02 |
children | 4e38b2bc8835 |
line wrap: on
line diff
--- a/rhodecode/templates/admin/users_groups/users_group_edit.html Fri Jan 28 14:49:04 2011 +0100 +++ b/rhodecode/templates/admin/users_groups/users_group_edit.html Fri Jan 28 18:40:50 2011 +0100 @@ -0,0 +1,166 @@ +## -*- 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'))} + » + ${h.link_to(_('UsersGroups'),h.url('users_groups'))} + » + ${_('edit')} "${c.users_group.users_group_name}" +</%def> + +<%def name="page_nav()"> + ${self.menu('admin')} +</%def> + +<%def name="main()"> +<div class="box"> + <!-- 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-checkbox"> + <label for="users_group_active">${_('Members')}:</label> + </div> + <div class="checkboxes"> + <table> + <tr> + <td> + <div> + <div style="float:left"> + <div class="text">${_('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> + <div style="float:left;width:20px;padding-top:50px"> + <img alt="add" id="add_element" + style="padding:2px;cursor:pointer" + src="/images/icons/arrow_left.png"> + <br /> + <img alt="remove" id="remove_element" + style="padding:2px;cursor:pointer" + src="/images/icons/arrow_right.png"> + </div> + <div style="float:left"> + <div class="text">${_('Available members')}</div> + ${h.select('available_members',[],c.available_members,multiple=True,size=8,style="min-width:210px")} + </div> + </div> + </td> + </tr> + </table> + </div> + + </div> + <div class="buttons"> + ${h.submit('save','save',class_="ui-button")} + </div> + </div> + </div> +${h.end_form()} +</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 storage. + var cache = new Array(); + var c = D.get(selected_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); + } + } + + //clear 'selected' select + c.options.length = 0; + + //fill it with remembered options + for(var i = 0;node = cache[i];i++){ + c.options[i]=new Option(node.text, node.value, false, false); + } + + function prompts_action_callback(e){ + + var choosen = D.get(selected_container); + var availible = D.get(available_container); + + if (this.id=='add_element'){ + for(var i=0; node = availible.options[i];i++){ + if(node.selected){ + choosen.appendChild(new Option(node.text, node.value, false, false)); + } + } + } + else if (this.id=='remove_element'){ + + //temp container for storage. + cache = new Array(); + + for(var i = 0;node = choosen.options[i];i++){ + if(!node.selected){ + //push left overs :) + cache.push(node); + } + } + //clear select + choosen.options.length = 0; + for(var i = 0;node = cache[i];i++){ + choosen.options[i]=new Option(node.text, node.value, false, false); + } + } + else{ + + } + } + + + E.addListener(['add_element','remove_element'],'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> \ No newline at end of file