Files @ 8173b0cfe9bd
Branch filter:

Location: kallithea/rhodecode/templates/admin/settings/hooks.html

Mads Kiilerich
settings: simplify handling of form values for hooks and extensions

This makes simpler to follow the code path and search for input input field
names. The form field names are hardcoded in the template, so generating them
programmatically in the controller do not really add any flexibility.
## -*- 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'))} &raquo; ${_('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-btn large")}
          </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>