##// END OF EJS Templates
user defined permission will update the global permissions, and overwrite default settings.
user defined permission will update the global permissions, and overwrite default settings.

File last commit:

r1266:a1bcfe58 beta
r1267:d534aff5 beta
Show More
users_group_edit.html
269 lines | 11.0 KiB | text/html | HtmlLexer
#56 implemented users groups editing,...
r972 ## -*- 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()">
template fixes
r1124 <div class="box box-left">
#56 implemented users groups editing,...
r972 <!-- 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">
extended functionality on users groups select box
r985 <div class="label">
#56 implemented users groups editing,...
r972 <label for="users_group_active">${_('Members')}:</label>
</div>
extended functionality on users groups select box
r985 <div class="select">
#56 implemented users groups editing,...
r972 <table>
<tr>
<td>
<div>
<div style="float:left">
extended functionality on users groups select box
r985 <div class="text" style="padding: 0px 0px 6px;">${_('Choosen group members')}</div>
#56 implemented users groups editing,...
r972 ${h.select('users_group_members',[x[0] for x in c.group_members],c.group_members,multiple=True,size=8,style="min-width:210px")}
extended functionality on users groups select box
r985 <div id="remove_all_elements" style="cursor:pointer;text-align:center">
${_('Remove all elements')}
changed all urls for IMAGES files to use pylons url function
r1051 <img alt="remove" style="vertical-align:text-bottom" src="${h.url("/images/icons/arrow_right.png")}"/>
extended functionality on users groups select box
r985 </div>
#56 implemented users groups editing,...
r972 </div>
<div style="float:left;width:20px;padding-top:50px">
<img alt="add" id="add_element"
style="padding:2px;cursor:pointer"
changed all urls for IMAGES files to use pylons url function
r1051 src="${h.url("/images/icons/arrow_left.png")}"/>
#56 implemented users groups editing,...
r972 <br />
<img alt="remove" id="remove_element"
style="padding:2px;cursor:pointer"
changed all urls for IMAGES files to use pylons url function
r1051 src="${h.url("/images/icons/arrow_right.png")}"/>
#56 implemented users groups editing,...
r972 </div>
<div style="float:left">
extended functionality on users groups select box
r985 <div class="text" style="padding: 0px 0px 6px;">${_('Available members')}</div>
#56 implemented users groups editing,...
r972 ${h.select('available_members',[],c.available_members,multiple=True,size=8,style="min-width:210px")}
extended functionality on users groups select box
r985 <div id="add_all_elements" style="cursor:pointer;text-align:center">
changed all urls for IMAGES files to use pylons url function
r1051 <img alt="add" style="vertical-align:text-bottom" src="${h.url("/images/icons/arrow_left.png")}"/>
extended functionality on users groups select box
r985 ${_('Add all elements')}
</div>
#56 implemented users groups editing,...
r972 </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';
#56 available options from users groups are now self avare of choosen options and doesn't display.
r1030
#56 implemented users groups editing,...
r972 //form containing containers id
var form_id = 'edit_users_group';
extended functionality on users groups select box
r985 //temp container for selected storage.
#56 implemented users groups editing,...
r972 var cache = new Array();
#56 available options from users groups are now self avare of choosen options and doesn't display.
r1030 var av_cache = new Array();
#56 implemented users groups editing,...
r972 var c = D.get(selected_container);
#56 available options from users groups are now self avare of choosen options and doesn't display.
r1030 var ac = D.get(available_container);
#56 implemented users groups editing,...
r972
//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);
#56 available options from users groups are now self avare of choosen options and doesn't display.
r1030 }
#56 implemented users groups editing,...
r972 }
//clear 'selected' select
small fix for users groups choose dialog
r1031 //c.options.length = 0;
#56 implemented users groups editing,...
r972
//fill it with remembered options
small fix for users groups choose dialog
r1031 //for(var i = 0;node = cache[i];i++){
// c.options[i]=new Option(node.text, node.value, false, false);
//}
#56 implemented users groups editing,...
r972
#56 available options from users groups are now self avare of choosen options and doesn't display.
r1030
//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;
}
#56 implemented users groups editing,...
r972 function prompts_action_callback(e){
var choosen = D.get(selected_container);
extended functionality on users groups select box
r985 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++){
#56 implemented users groups editing,...
r972 if(node.selected){
extended functionality on users groups select box
r985 //push selected fields :)
sel_cache.push(node);
}
else{
oth_cache.push(node)
#56 implemented users groups editing,...
r972 }
extended functionality on users groups select box
r985 }
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));
#56 implemented users groups editing,...
r972 }
}
extended functionality on users groups select box
r985
// 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));
#56 implemented users groups editing,...
r972 }
extended functionality on users groups select box
r985 available.options.length = 0;
#56 implemented users groups editing,...
r972 }
extended functionality on users groups select box
r985 //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;
}
#56 implemented users groups editing,...
r972 }
extended functionality on users groups select box
r985 E.addListener(['add_element','remove_element',
'add_all_elements','remove_all_elements'],'click',
prompts_action_callback)
#56 implemented users groups editing,...
r972
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>
template fixes
r1124 <div class="box box-right">
<!-- box / title -->
<div class="title">
<h5>${_('Permissions')}</h5>
</div>
Fixed #161 form saves the create repository permission....
r1266 ${h.form(url('xxx', id=''),method='put')}
template fixes
r1124 <div class="form">
<!-- fields -->
<div class="fields">
<div class="field">
<div class="label label-checkbox">
<label for="">${_('Create repositories')}:</label>
</div>
<div class="checkboxes">
${h.checkbox('create',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>
#56 implemented users groups editing,...
r972 </%def>