Mercurial > kallithea
diff rhodecode/templates/admin/users/user_edit.html @ 895:62c04c5cc971 beta
Added some more details into user edit permissions view
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Wed, 29 Dec 2010 17:50:47 +0100 |
parents | 79f42866bcbb |
children | b232a36cc51f |
line wrap: on
line diff
--- a/rhodecode/templates/admin/users/user_edit.html Wed Dec 29 13:54:03 2010 +0100 +++ b/rhodecode/templates/admin/users/user_edit.html Wed Dec 29 17:50:47 2010 +0100 @@ -113,8 +113,122 @@ <div class="title"> <h5>${_('Permissions')}</h5> </div> - <div class="table"> - Permissions settings goes here ! - </div> + <form id="map_form" method="post" action="{%url update_permissions %}"> + <div class="form"> + <div class="fields"> + + + + <table> + <tr> + <td class="label">${_('Permissions')}:</td> + <td> + <div> + <div style="float:left"> + <div class="text">${_('Granted permissions')}</div> + ${h.select('granted_permissions',[],c.granted_permissions,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 permissions')}</div> + ${h.select('available_permissions',[],c.available_permissions,multiple=True,size=8,style="min-width:210px")} + </div> + </div> + </td> + </tr> + + </table> + <div class="buttons"> + ${h.submit('Save','Save',class_="ui-button")} + </div> + </div> + </div> + </form> + + +<script type="text/javascript"> + YAHOO.util.Event.onDOMReady(function(){ + + var D = YAHOO.util.Dom; + var E = YAHOO.util.Event; + + //temp container for storage. + var cache = new Array(); + var c = D.get('id_granted_permissions'); + + //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 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 target_callback(e){ + window.location='/admin/t4?g='+e.target.value; + } + + function prompts_action_callback(e){ + + var choosen = D.get('id_granted_permissions'); + var availible = D.get('id_available_permissions'); + + 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('id_groups','change',target_callback); + + E.addListener(['add_element','remove_element'],'click',prompts_action_callback) + + E.addListener('map_form','submit',function(){ + var choosen = D.get('id_granted_permissions'); + for (var i = 0; i < choosen.options.length; i++) { + choosen.options[i].selected = 'selected'; + } + }) + }); +</script> </div> </%def> \ No newline at end of file