## -*- coding: utf-8; -*-
## ##############################################################################
##
## Default master 'index' template. Features a prominent data table and
## exposes a way to filter and sort the data, etc. Some index pages also
## include a "tools" section, just above the grid on the right.
##
## ##############################################################################
<%inherit file="/base.mako" />
<%def name="title()">${index_title}%def>
<%def name="content_title()">%def>
<%def name="extra_javascript()">
${parent.extra_javascript()}
% if use_buefy:
${h.javascript_link(request.static_url('tailbone:static/js/tailbone.buefy.grid.js') + '?ver={}'.format(tailbone.__version__))}
% endif
%def>
<%def name="context_menu_items()">
% if master.results_downloadable_csv and request.has_perm('{}.results_csv'.format(permission_prefix)):
${h.link_to("Download results as CSV", url('{}.results_csv'.format(route_prefix)))}
% endif
% if master.results_downloadable_xlsx and request.has_perm('{}.results_xlsx'.format(permission_prefix)):
${h.link_to("Download results as XLSX", url('{}.results_xlsx'.format(route_prefix)))}
% endif
% if master.creatable and master.show_create_link and request.has_perm('{}.create'.format(permission_prefix)):
% if master.creates_multiple:
${h.link_to("Create new {}".format(model_title_plural), url('{}.create'.format(route_prefix)))}
% else:
${h.link_to("Create a new {}".format(model_title), url('{}.create'.format(route_prefix)))}
% endif
% endif
%def>
<%def name="grid_tools()">
## merge 2 objects
% if master.mergeable and request.has_perm('{}.merge'.format(permission_prefix)):
${h.form(url('{}.merge'.format(route_prefix)), name='merge-things', class_='control')}
${h.csrf_token(request)}
% if use_buefy:
Merge 2 ${model_title_plural}
% else:
${h.hidden('uuids')}
% endif
${h.end_form()}
% endif
## enable / disable selected objects
% if master.supports_set_enabled_toggle and request.has_perm('{}.enable_disable_set'.format(permission_prefix)):
${h.form(url('{}.enable_set'.format(route_prefix)), name='enable-set', class_='control')}
${h.csrf_token(request)}
${h.hidden('uuids')}
${h.end_form()}
${h.form(url('{}.disable_set'.format(route_prefix)), name='disable-set', class_='control')}
${h.csrf_token(request)}
${h.hidden('uuids')}
${h.end_form()}
% endif
## delete selected objects
% if master.set_deletable and request.has_perm('{}.delete_set'.format(permission_prefix)):
${h.form(url('{}.delete_set'.format(route_prefix)), name='delete-set', class_='control')}
${h.csrf_token(request)}
${h.hidden('uuids')}
${h.end_form()}
% endif
## delete search results
% if master.bulk_deletable and request.has_perm('{}.bulk_delete'.format(permission_prefix)):
${h.form(url('{}.bulk_delete'.format(route_prefix)), name='bulk-delete', class_='control')}
${h.csrf_token(request)}
% if use_buefy:
Delete Results
% else:
% endif
${h.end_form()}
% endif
%def>
<%def name="modify_tailbone_grid()">
## NOTE: if you override this, must use
%def>
% if use_buefy:
## TODO: stop using |n filter
${grid.render_buefy(tools=capture(self.grid_tools).strip(), context_menu=capture(self.context_menu_items).strip())|n}
${self.make_tailbone_grid_app()}
% else:
## no buefy, so do the traditional thing
${grid.render_complete(tools=capture(self.grid_tools).strip(), context_menu=capture(self.context_menu_items).strip())|n}
% endif