##// END OF EJS Templates
fixes #172
fixes #172

File last commit:

r1266:a1bcfe58 beta
r1268:0a812223 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>