Final grid refactor for all templates and CSS/JS (newgrid -> grid)
This commit is contained in:
parent
c57e2e17cc
commit
292546e44b
26 changed files with 329 additions and 687 deletions
99
tailbone/static/js/jquery.ui.tailbone.js
vendored
99
tailbone/static/js/jquery.ui.tailbone.js
vendored
|
@ -23,7 +23,7 @@
|
|||
this.default_filters = this.filters.find('#default-filters');
|
||||
this.clear_filters = this.filters.find('#clear-filters');
|
||||
this.save_defaults = this.filters.find('#save-defaults');
|
||||
this.grid = this.element.find('.newgrid');
|
||||
this.grid = this.element.find('.grid');
|
||||
|
||||
// Enhance filters etc.
|
||||
this.filters.find('.filter').gridfilter();
|
||||
|
@ -117,31 +117,17 @@
|
|||
});
|
||||
|
||||
// Refresh data when user clicks a sortable column header.
|
||||
if (this.grid.hasClass('grid3')) {
|
||||
this.element.on('click', 'tr.header a', function() {
|
||||
var td = $(this).parent();
|
||||
var data = {
|
||||
sortkey: $(this).data('sortkey'),
|
||||
sortdir: (td.hasClass('asc')) ? 'desc' : 'asc',
|
||||
page: 1,
|
||||
partial: true
|
||||
};
|
||||
that.refresh(data);
|
||||
return false;
|
||||
});
|
||||
} else {
|
||||
this.element.on('click', 'thead th.sortable a', function() {
|
||||
var th = $(this).parent();
|
||||
var data = {
|
||||
sortkey: th.data('sortkey'),
|
||||
sortdir: (th.hasClass('sorted') && th.hasClass('asc')) ? 'desc' : 'asc',
|
||||
page: 1,
|
||||
partial: true
|
||||
};
|
||||
that.refresh(data);
|
||||
return false;
|
||||
});
|
||||
}
|
||||
this.element.on('click', 'tr.header a', function() {
|
||||
var td = $(this).parent();
|
||||
var data = {
|
||||
sortkey: $(this).data('sortkey'),
|
||||
sortdir: (td.hasClass('asc')) ? 'desc' : 'asc',
|
||||
page: 1,
|
||||
partial: true
|
||||
};
|
||||
that.refresh(data);
|
||||
return false;
|
||||
});
|
||||
|
||||
// Refresh data when user chooses a new page size setting.
|
||||
this.element.on('change', '.pager #pagesize', function() {
|
||||
|
@ -167,52 +153,29 @@
|
|||
});
|
||||
|
||||
// do some extra stuff for grids with checkboxes
|
||||
if (this.grid.hasClass('grid3')) {
|
||||
|
||||
// (un-)check all rows when clicking check-all box in header
|
||||
if (this.grid.find('tr.header td.checkbox input').length) {
|
||||
this.element.on('click', 'tr.header td.checkbox input', function() {
|
||||
var checked = $(this).prop('checked');
|
||||
that.grid.find('tr:not(.header) td.checkbox input').prop('checked', checked);
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
// Select current row when clicked, unless clicking checkbox
|
||||
// (since that already does select the row) or a link (since
|
||||
// that does something completely different).
|
||||
this.element.on('click', '.newgrid tr:not(.header) td.checkbox input', function(event) {
|
||||
event.stopPropagation();
|
||||
});
|
||||
this.element.on('click', '.newgrid tr:not(.header) a', function(event) {
|
||||
event.stopPropagation();
|
||||
});
|
||||
this.element.on('click', '.newgrid tr:not(.header)', function() {
|
||||
$(this).find('td.checkbox input').click();
|
||||
});
|
||||
|
||||
} else if (this.grid.hasClass('selectable')) { // pre-v3 newgrid.selectable
|
||||
|
||||
// (Un-)Check all rows when clicking check-all box in header.
|
||||
this.element.on('click', 'thead th.checkbox input', function() {
|
||||
// (un-)check all rows when clicking check-all box in header
|
||||
if (this.grid.find('tr.header td.checkbox input').length) {
|
||||
this.element.on('click', 'tr.header td.checkbox input', function() {
|
||||
var checked = $(this).prop('checked');
|
||||
that.grid.find('tbody td.checkbox input').prop('checked', checked);
|
||||
that.grid.find('tr:not(.header) td.checkbox input').prop('checked', checked);
|
||||
});
|
||||
|
||||
// Select current row when clicked, unless clicking checkbox
|
||||
// (since that already does select the row) or a link (since
|
||||
// that does something completely different).
|
||||
this.element.on('click', 'tbody td.checkbox input', function(event) {
|
||||
event.stopPropagation();
|
||||
});
|
||||
this.element.on('click', 'tbody a', function(event) {
|
||||
event.stopPropagation();
|
||||
});
|
||||
this.element.on('click', 'tbody tr', function() {
|
||||
$(this).find('td.checkbox input').click();
|
||||
});
|
||||
}
|
||||
|
||||
// Select current row when clicked, unless clicking checkbox
|
||||
// (since that already does select the row) or a link (since
|
||||
// that does something completely different).
|
||||
this.element.on('click', '.grid tr:not(.header) td.checkbox input', function(event) {
|
||||
event.stopPropagation();
|
||||
});
|
||||
this.element.on('click', '.grid tr:not(.header) a', function(event) {
|
||||
event.stopPropagation();
|
||||
});
|
||||
this.element.on('click', '.grid tr:not(.header)', function() {
|
||||
$(this).find('td.checkbox input').click();
|
||||
});
|
||||
|
||||
// Show 'more' actions when user hovers over 'more' link.
|
||||
this.element.on('mouseenter', '.actions a.more', function() {
|
||||
that.grid.find('.actions div.more').hide();
|
||||
|
@ -238,7 +201,7 @@
|
|||
this.element.mask("Refreshing data...");
|
||||
$.get(this.grid.data('url'), settings, function(data) {
|
||||
that.grid.replaceWith(data);
|
||||
that.grid = that.element.find('.newgrid');
|
||||
that.grid = that.element.find('.grid');
|
||||
that.element.unmask();
|
||||
});
|
||||
}
|
||||
|
@ -264,7 +227,7 @@
|
|||
this.checkbox = this.element.find('input[name$="-active"]');
|
||||
this.label = this.element.find('label');
|
||||
this.inputs = this.element.find('.inputs');
|
||||
this.add_filter = this.element.parents('.newgrid-wrapper').find('#add-filter');
|
||||
this.add_filter = this.element.parents('.grid-wrapper').find('#add-filter');
|
||||
|
||||
// Hide the checkbox and label, and add button for toggling active status.
|
||||
this.checkbox.addClass('ui-helper-hidden-accessible');
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue