Add speed bump / confirmation page when deleting records.

Also cleanup the context menu links on various master CRUD pages.
This commit is contained in:
Lance Edgar 2016-01-07 20:55:10 -06:00
parent 94406f84b3
commit 640bb736b2
4 changed files with 84 additions and 20 deletions

View file

@ -0,0 +1,41 @@
## -*- coding: utf-8 -*-
<%inherit file="/base.mako" />
<%def name="title()">Delete ${model_title}: ${unicode(instance)}</%def>
<%def name="context_menu_items()">
<li>${h.link_to("Back to {}".format(model_title_plural), url(route_prefix))}</li>
% if master.viewable and request.has_perm('{}.view'.format(permission_prefix)):
<li>${h.link_to("View this {}".format(model_title), action_url('view', instance))}</li>
% endif
% if master.editable and request.has_perm('{}.edit'.format(permission_prefix)):
<li>${h.link_to("Edit this {}".format(model_title), action_url('edit', instance))}</li>
% endif
% if master.creatable and request.has_perm('{}.create'.format(permission_prefix)):
<li>${h.link_to("Create a new {}".format(model_title), url('{}.create'.format(route_prefix)))}</li>
% endif
</%def>
<%def name="confirmation()">
<br />
<p>Are you sure about this?</p>
${h.form(request.current_route_url())}
<div class="buttons">
<button type="button" onclick="$(this).parents('form').submit();">Yes, please DELETE this record forever!</button>
<a class="button" href="${form.cancel_url}">Whoops, nevermind...</a>
</div>
${h.end_form()}
</%def>
<ul id="context-menu">
${self.context_menu_items()}
</ul>
<p>You are about to delete the following ${model_title} record:</p>
<div class="form-wrapper">
${form.render()|n}
</div><!-- form-wrapper -->
${self.confirmation()}

View file

@ -4,12 +4,15 @@
<%def name="title()">${model_title}: ${unicode(instance)}</%def>
<%def name="context_menu_items()">
<li>${h.link_to("Back to {0}".format(model_title_plural), url(route_prefix))}</li>
% if master.viewable and request.has_perm('{0}.view'.format(permission_prefix)):
<li>${h.link_to("View this {0}".format(model_title), action_url('view', instance))}</li>
<li>${h.link_to("Back to {}".format(model_title_plural), url(route_prefix))}</li>
% if master.viewable and request.has_perm('{}.view'.format(permission_prefix)):
<li>${h.link_to("View this {}".format(model_title), action_url('view', instance))}</li>
% endif
% if master.deletable and request.has_perm('{0}.delete'.format(permission_prefix)):
<li>${h.link_to("Delete this {0}".format(model_title), action_url('delete', instance))}</li>
% if master.deletable and master.deletable_instance(instance) and request.has_perm('{}.delete'.format(permission_prefix)):
<li>${h.link_to("Delete this {}".format(model_title), action_url('delete', instance))}</li>
% endif
% if master.creatable and request.has_perm('{}.create'.format(permission_prefix)):
<li>${h.link_to("Create a new {}".format(model_title), url('{}.create'.format(route_prefix)))}</li>
% endif
</%def>

View file

@ -4,12 +4,15 @@
<%def name="title()">${model_title}: ${instance_title}</%def>
<%def name="context_menu_items()">
<li>${h.link_to("Back to {0}".format(model_title_plural), url(route_prefix))}</li>
% if master.editable and request.has_perm('{0}.edit'.format(permission_prefix)):
<li>${h.link_to("Edit this {0}".format(model_title), action_url('edit', instance))}</li>
<li>${h.link_to("Back to {}".format(model_title_plural), url(route_prefix))}</li>
% if master.editable and request.has_perm('{}.edit'.format(permission_prefix)):
<li>${h.link_to("Edit this {}".format(model_title), action_url('edit', instance))}</li>
% endif
% if master.deletable and master.deletable_instance(instance) and request.has_perm('{0}.delete'.format(permission_prefix)):
<li>${h.link_to("Delete this {0}".format(model_title), action_url('delete', instance))}</li>
% if master.deletable and master.deletable_instance(instance) and request.has_perm('{}.delete'.format(permission_prefix)):
<li>${h.link_to("Delete this {}".format(model_title), action_url('delete', instance))}</li>
% endif
% if master.creatable and request.has_perm('{}.create'.format(permission_prefix)):
<li>${h.link_to("Create a new {}".format(model_title), url('{}.create'.format(route_prefix)))}</li>
% endif
</%def>