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