Add 'gridcore' jQuery plugin, for core behavior

also add 'selected' status for checkbox grids, etc.
This commit is contained in:
Lance Edgar 2018-02-09 15:17:29 -06:00
parent a3b2fbadb7
commit e2bfb31cb2
8 changed files with 127 additions and 102 deletions

View file

@ -14,7 +14,6 @@
<%def name="extra_javascript()">
${parent.extra_javascript()}
${h.javascript_link(request.static_url('tailbone:static/js/jquery.ui.tailbone.js'))}
<script type="text/javascript">
$(function() {
@ -22,18 +21,14 @@
% if master.mergeable and request.has_perm('{}.merge'.format(permission_prefix)):
$('form[name="merge-things"] button').button('option', 'disabled', $('.grid tbody td.checkbox input:checked').length != 2);
$('form[name="merge-things"] button').button('option', 'disabled', $('.grid').gridcore('count_selected') != 2);
$('.grid-wrapper').on('click', 'tbody td.checkbox input', function() {
$('form[name="merge-things"] button').button('option', 'disabled', $('.grid tbody td.checkbox input:checked').length != 2);
$('.grid-wrapper').on('gridchecked', '.grid', function(event, count) {
$('form[name="merge-things"] button').button('option', 'disabled', count != 2);
});
$('form[name="merge-things"]').submit(function() {
var uuids = [];
$('.grid tbody td.checkbox input:checked').each(function() {
uuids.push($(this).parents('tr:first').data('uuid'));
});
var uuids = $('.grid').gridcore('selected_uuids');
if (uuids.length != 2) {
return false;
}
@ -100,41 +95,4 @@
% endif
</%def>
## ${grid.render_complete(tools=capture(self.grid_tools).strip(), context_menu=capture(self.context_menu_items).strip())|n}
${grid.render_complete(tools=capture(self.grid_tools).strip(), context_menu=capture(self.context_menu_items).strip())|n}
## <div class="grid-wrapper">
##
## <table class="grid-header">
## <tbody>
## <tr>
##
## <td class="filters" rowspan="2">
## % if grid.filterable:
## ## TODO: should this be variable sometimes?
## ${grid.render_filters(allow_save_defaults=True)|n}
## % endif
## </td>
##
## <td class="menu">
## <ul id="context-menu">
## ${self.context_menu_items()}
## </ul>
## </td>
## </tr>
##
## <tr>
## <td class="tools">
## <div class="grid-tools">
## ${self.grid_tools()}
## </div><!-- grid-tools -->
## </td>
## </tr>
##
## </tbody>
## </table><!-- grid-header -->
##
## ${grid.render_grid()|n}
##
## </div><!-- grid-wrapper -->

View file

@ -10,7 +10,6 @@
<%def name="extra_javascript()">
${parent.extra_javascript()}
${h.javascript_link(request.static_url('tailbone:static/js/jquery.ui.tailbone.js'))}
<script type="text/javascript">
$(function() {
$('.grid-wrapper').gridwrapper();

View file

@ -6,7 +6,6 @@
<%def name="extra_javascript()">
${parent.extra_javascript()}
% if master.has_rows:
${h.javascript_link(request.static_url('tailbone:static/js/jquery.ui.tailbone.js'))}
<script type="text/javascript">
$(function() {
$('.grid-wrapper').gridwrapper();