##// END OF EJS Templates
rhodecode.js: implement YUI_datatable(data, fields, columns, countnode, sortkey) with body from repos.html...
rhodecode.js: implement YUI_datatable(data, fields, columns, countnode, sortkey) with body from repos.html Use datatable_list_wrap for the DataTable and _TM['MSG_X'] for localized strings.

File last commit:

r4116:ffd45b18 rhodecode-2.2.5-gpl
r4163:5046b724 rhodecode-2.2.5-gpl
Show More
auth_settings.html
137 lines | 5.4 KiB | text/html | HtmlLexer
## -*- coding: utf-8 -*-
<%inherit file="/base/base.html"/>
<%def name="title()">
${_('Authentication Settings')}
%if c.rhodecode_name:
&middot; ${c.rhodecode_name}
%endif
</%def>
<%def name="breadcrumbs_links()">
${h.link_to(_('Admin'),h.url('admin_home'))}
&raquo;
${_('Authentication')}
</%def>
<%def name="page_nav()">
${self.menu('admin')}
</%def>
<%def name="main()">
<div class="box">
<!-- box / title -->
<div class="title">
${self.breadcrumbs()}
</div>
${h.form(url('auth_settings'))}
<div class="form">
## enabled auth plugins
<h1>${_('Authentication Plugins')}</h1>
<div class="fields">
<div class="field">
<div class="label"><label for="auth_plugins">${_("Enabled Plugins")}</label></div>
<div class="input">${h.text("auth_plugins", class_='large')}
<span class="help-block">${_('Comma separated list of plugins. Order of plugins is also order in which RhodeCode will try to authenticate user')}</span>
<div style="padding:10px 0px 10px 0px;font-weight: bold">${_('Available built-in plugins')}</div>
<ul>
%for plugin_path in c.available_plugins:
<li>
<div style="padding:3px 0px 3px 0px">
<span style="margin: 0px 10px 0px 0px" plugin_id="${plugin_path}" class="toggle-plugin btn btn-mini ${'btn-success' if plugin_path in c.enabled_plugins else ''}">
${_('enabled') if plugin_path in c.enabled_plugins else _('disabled')}</span>${plugin_path}
</div>
</li>
%endfor
</ul>
</div>
</div>
<div class="buttons">
${h.submit('save',_('Save'),class_="btn")}
</div>
</div>
%for cnt, module in enumerate(c.auth_plugins):
<% pluginName = c.auth_plugins_shortnames[module] %>
<h1>${_('Plugin')}: ${pluginName}</h1>
<div class="fields">
## autoform generation, based on plugin definition from it's settings
%for setting in c.plugin_settings[module]:
<% fullsetting = "auth_%s_%s" % (pluginName, setting["name"]) %>
<% displayname = (setting["formname"] if ("formname" in setting) else setting["name"]) %>
%if setting["type"] == "password":
<div class="field">
<div class="label"><label for="${fullsetting}">${_(displayname)}</label></div>
<div class="input">
${h.password(fullsetting,class_='small')}
<span class="help-block">${setting["description"]}</span>
</div>
</div>
%elif setting["type"] in ["string", "int"]:
<div class="field">
<div class="label"><label for="${fullsetting}">${_(displayname)}</label></div>
<div class="input">
${h.text(fullsetting,class_='small')}
<span class="help-block">${setting["description"]}</span>
</div>
</div>
%elif setting["type"] == "bool":
<div class="field">
<div class="label label-checkbox"><label for="${fullsetting}">${_(displayname)}</label></div>
<div class="checkboxes">
<div class="checkbox">${h.checkbox(fullsetting,True,class_='small')}</div>
<span class="help-block">${setting["description"]}</span>
</div>
</div>
%elif setting["type"] == "select":
<div class="field">
<div class="label"><label for="${fullsetting}">${_(displayname)}</label></div>
<div class="select">
${h.select(fullsetting,setting['values'][0],setting['values'],class_='small')}
<span class="help-block">${setting["description"]}</span>
</div>
</div>
%else:
<div class="field">
<div class="label"><label for="${fullsetting}">${_(displayname)}</label></div>
<div class="input">This field is of type ${setting['type']}, which cannot be displayed. Must be one of [string|int|bool|select].</div>
<span class="help-block">${setting["description"]}</span>
</div>
%endif
%endfor
</div>
%endfor
</div>
${h.end_form()}
</div>
<script>
YUE.on(YUQ('.toggle-plugin'),'click', function(e){
var auth_plugins_input = YUD.get('auth_plugins');
var notEmpty = function(element, index, array) {
return (element != "");
}
var elems = auth_plugins_input.value.split(',').filter(notEmpty);
var cur_button = e.currentTarget;
var plugin_id = YUD.getAttribute(cur_button, 'plugin_id');
if(YUD.hasClass(cur_button, 'btn-success')){
elems.splice(elems.indexOf(plugin_id), 1);
auth_plugins_input.value = elems.join(',');
YUD.removeClass(cur_button, 'btn-success');
cur_button.innerHTML = _TM['disabled'];
}
else{
console.log(elems)
if(elems.indexOf(plugin_id) == -1){
elems.push(plugin_id);
}
auth_plugins_input.value = elems.join(',');
YUD.addClass(cur_button, 'btn-success');
cur_button.innerHTML = _TM['enabled'];
}
})
</script>
</%def>