Files
@ 90e06f53af8c
Branch filter:
Location: kallithea/rhodecode/templates/admin/settings/hooks.html - annotation
90e06f53af8c
2.9 KiB
text/html
Implemented cache-map on main page to save executing select
statements that checks if cache should be invalidated.
It reduces number of executed queries from N which is number of
repos to 1 which is needed to fetch all keys from database.
On pages with large number of repos this could reduce load time by half
statements that checks if cache should be invalidated.
It reduces number of executed queries from N which is number of
repos to 1 which is needed to fetch all keys from database.
On pages with large number of repos this could reduce load time by half
b50348816a80 b50348816a80 b50348816a80 b50348816a80 b50348816a80 b50348816a80 b50348816a80 b50348816a80 b50348816a80 b50348816a80 b50348816a80 b50348816a80 b50348816a80 b50348816a80 b50348816a80 b50348816a80 b50348816a80 b50348816a80 b50348816a80 f91d3f9b7230 b50348816a80 b50348816a80 f91d3f9b7230 b50348816a80 b50348816a80 b50348816a80 b50348816a80 b50348816a80 b50348816a80 b50348816a80 b50348816a80 b50348816a80 b50348816a80 b50348816a80 b50348816a80 b50348816a80 b50348816a80 b50348816a80 f91d3f9b7230 b50348816a80 b50348816a80 b50348816a80 b50348816a80 f91d3f9b7230 b50348816a80 b50348816a80 b50348816a80 b50348816a80 b50348816a80 f91d3f9b7230 b50348816a80 b50348816a80 b50348816a80 f91d3f9b7230 b50348816a80 b50348816a80 b50348816a80 b50348816a80 b50348816a80 f91d3f9b7230 f91d3f9b7230 b50348816a80 b50348816a80 b50348816a80 b50348816a80 b50348816a80 b50348816a80 b50348816a80 b50348816a80 b50348816a80 b50348816a80 b50348816a80 aaec08ad9daf f91d3f9b7230 b50348816a80 b50348816a80 b50348816a80 b50348816a80 b50348816a80 b50348816a80 b50348816a80 b50348816a80 b50348816a80 b50348816a80 b50348816a80 b50348816a80 b50348816a80 b50348816a80 b50348816a80 b50348816a80 b50348816a80 b50348816a80 b50348816a80 b50348816a80 f91d3f9b7230 f91d3f9b7230 | ## -*- coding: utf-8 -*-
<%inherit file="/base/base.html"/>
<%def name="title()">
${_('Settings administration')} - ${c.rhodecode_name}
</%def>
<%def name="breadcrumbs_links()">
${h.link_to(_('Admin'),h.url('admin_home'))} » ${_('Settings')}
</%def>
<%def name="page_nav()">
${self.menu('admin')}
</%def>
<%def name="main()">
<div class="box">
<!-- box / title -->
<div class="title">
${self.breadcrumbs()}
</div>
<!-- end box / title -->
<h3>${_('Built in hooks - read only')}</h3>
<div class="form">
<div class="fields">
% for hook in c.hooks:
<div class="field">
<div class="label label">
<label for="${hook.ui_key}">${hook.ui_key}</label>
</div>
<div class="input" style="margin-left:280px">
${h.text(hook.ui_key,hook.ui_value,size=60,readonly="readonly")}
</div>
</div>
% endfor
</div>
</div>
<h3>${_('Custom hooks')}</h3>
${h.form(url('admin_setting', setting_id='hooks'),method='put')}
<div class="form">
<div class="fields">
% for hook in c.custom_hooks:
<div class="field" id="${'id%s' % hook.ui_id }">
<div class="label label">
<label for="${hook.ui_key}">${hook.ui_key}</label>
</div>
<div class="input" style="margin-left:280px">
${h.hidden('hook_ui_key',hook.ui_key)}
${h.hidden('hook_ui_value',hook.ui_value)}
${h.text('hook_ui_value_new',hook.ui_value,size=60)}
<span class="delete_icon action_button"
onclick="ajaxActionHook(${hook.ui_id},'${'id%s' % hook.ui_id }')">
${_('remove')}
</span>
</div>
</div>
% endfor
<div class="field">
<div class="input" style="margin-left:-180px;position: absolute;">
<div class="input">
${h.text('new_hook_ui_key',size=30)}
</div>
</div>
<div class="input" style="margin-left:280px">
${h.text('new_hook_ui_value',size=60)}
</div>
</div>
<div class="buttons" style="margin-left:280px">
${h.submit('save',_('Save'),class_="ui-button")}
</div>
</div>
</div>
${h.end_form()}
</div>
<script type="text/javascript">
function ajaxActionHook(hook_id,field_id) {
var sUrl = "${h.url('admin_setting', setting_id='hooks')}";
var callback = {
success: function (o) {
var elem = YUD.get(""+field_id);
elem.parentNode.removeChild(elem);
},
failure: function (o) {
alert("${_('Failed to remove hook')}");
},
};
var postData = '_method=delete&hook_id=' + hook_id;
var request = YAHOO.util.Connect.asyncRequest('POST', sUrl, callback, postData);
};
</script>
</%def>
|