view 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 source

## -*- coding: utf-8 -*-
<%inherit file="/base/base.html"/>

<%def name="title()">
    ${_('Edit user')} ${c.user.username} - ${c.rhodecode_name}
</%def>

<%def name="breadcrumbs_links()">
    ${h.link_to(_('Admin'),h.url('admin_home'))} 
    &raquo; 
    ${h.link_to(_('Users'),h.url('users'))} 
    &raquo;
    ${_('edit')} "${c.user.username}"
</%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('user', id=c.user.user_id),method='put')}
    <div class="form">
        <!-- fields -->
        <div class="fields">
             <div class="field">
                <div class="gravatar_box">
              		<div class="gravatar"><img alt="gravatar" src="${h.gravatar_url(c.user.email)}"/></div>
              		<p>
              		<strong>Change your avatar at <a href="http://gravatar.com">gravatar.com</a></strong><br/> 
              		${_('Using')} ${c.user.email}
              		</p>
            	</div>
             </div>        
        
             <div class="field">
                <div class="label">
                    <label for="username">${_('Username')}:</label>
                </div>
                <div class="input">
                    ${h.text('username',class_='medium')}
                </div>
             </div>
            
             <div class="field">
                <div class="label">
                    <label for="new_password">${_('New password')}:</label>
                </div>
                <div class="input">
                    ${h.password('new_password',class_='medium')}
                </div>
             </div>
            
             <div class="field">
                <div class="label">
                    <label for="name">${_('First Name')}:</label>
                </div>
                <div class="input">
                    ${h.text('name',class_='medium')}
                </div>
             </div>
            
             <div class="field">
                <div class="label">
                    <label for="lastname">${_('Last Name')}:</label>
                </div>
                <div class="input">
                    ${h.text('lastname',class_='medium')}
                </div>
             </div>
            
             <div class="field">
                <div class="label">
                    <label for="email">${_('Email')}:</label>
                </div>
                <div class="input">
                    ${h.text('email',class_='medium')}
                </div>
             </div>
            
             <div class="field">
                <div class="label label-checkbox">
                    <label for="active">${_('Active')}:</label>
                </div>
                <div class="checkboxes">
                    ${h.checkbox('active',value=True)}
                </div>
             </div>
             
             <div class="field">
                <div class="label label-checkbox">
                    <label for="admin">${_('Admin')}:</label>
                </div>
                <div class="checkboxes">
                    ${h.checkbox('admin',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>${_('Permissions')}</h5>       
    </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>