Feature #7284
closedtablesorter: save sort order / column selection on server
100%
Description
- Es waere gut wenn der User seine Einstellung zu einer tablesorter Tabelle speichern koennte, so dass beim naechsten Aufruf wieder die gleiche Einstellung da waere.
- Soll ein Excel Export der Tabelle, mit Beruecksichtigung der aktuellen Einstellungen, erfolgen, muessen diese Settings zwingend auf dem Server gespeichert werden. Mit dieser Anforderung, koennten die Tablesettings dann gleich durch den Server vorbelegt werden.
- Idee: Gut waere ein API CallBack (bei jeder Aenderung), der die Settings auf dem Server speichert. Dazu wird beim ausliefern der Tabelle eine SIP zur Authorisierung mitgeliefert.
Requirement 2: Auf einer Seite gibt es mehrere Filtersettings (#6936) die definiert und abgerufen werden koennen. Eine Moeglichhkeit waere das aktuelle Setting der Spalten (Anzeige/Sortierung) beim speichern des Filters mit abzulegen.
Related issues
Updated by Carsten Rose about 5 years ago
- Description updated (diff)
- Priority changed from Normal to High
- Target version changed from 55 to 146
Updated by Carsten Rose about 5 years ago
- Status changed from New to In Progress
Updated by Carsten Rose about 5 years ago
- Status changed from In Progress to New
Updated by Marc Egger almost 5 years ago
current workaround with buttons above report:
<span onClick="$(this).siblings('.tablesorter-column-selector').trigger('refreshColumnSelector', [ [0,1,2,3,4,5,6] ]);" class="btn btn-default">show main columns</span>
<span onClick="$(this).siblings('.tablesorter-column-selector').trigger('refreshColumnSelector', [ [...Array(100).keys()] ]);" class="btn btn-default">show all columns</span>
Updated by Marc Egger almost 5 years ago
Add css class class="columnSelector-false" to <th> to disable a column by default. Gets overwritten by saved user selection.
Updated by Marc Egger almost 5 years ago
set and get the state of the tablesorter with javascript. Use JSON.parse() and JSON.stringify() to save in database.
function setTablesorterState(table, newState) {
if(newState.hasOwnProperty('columnSelection') && $.tablesorter.hasWidget( table, 'columnSelector')) {
table.trigger('refreshColumnSelector', [ newState.columnSelection ]);
}
if(newState.hasOwnProperty('filters') && $.tablesorter.hasWidget( table, 'filter')) {
$.tablesorter.setFilters(table, newState.filters);
}
if(newState.hasOwnProperty('sortList')) {
table.trigger( 'sorton', [ newState.sortList ] );
}
}
function getTablesorterState(table, columnSelection=true, filters=true, sortList=true) {
var state = {}
var config = table[0].config;
if(columnSelection && $.tablesorter.hasWidget( table, 'columnSelector')) {
state.columnSelection = config.selector.states.map((e,i) => e ? i : false).filter(e => e !== false);
}
if(filters && $.tablesorter.hasWidget( table, 'filter')) {
state.filters = $.tablesorter.getFilters(table);
}
if(sortList) {
state.sortList = config.sortList;
}
return state
}
Updated by Marc Egger almost 5 years ago
Todo: Implement backend in qfq/extension/Source/api/tablesorter.php
"qfq/extension/Source/api/tablesorter.php" ist schon erstellt
Mockup Frontend: qfq/mockup/tablesorter.php (zeilen 50-53 wichtig!)
Mockup Backend: qfq/mockup/api/tablesorter.php
Updated by Marc Egger almost 5 years ago
- Due date changed from 09.05.2019 to 23.05.2019
Updated by Marc Egger almost 5 years ago
- Assignee changed from Marc Egger to Carsten Rose
Updated by Carsten Rose almost 5 years ago
- Target version changed from 146 to CodingDays2019
Updated by Carsten Rose almost 5 years ago
- Target version changed from CodingDays2019 to next6
Updated by Carsten Rose almost 5 years ago
- Has duplicate Feature #8172: Report: Spalten dynamisch ein/ausblenden und filterbar machen added
Updated by Carsten Rose almost 5 years ago
- Status changed from New to In Progress
Updated by Carsten Rose almost 5 years ago
- Status changed from In Progress to Closed
- Target version changed from next6 to 146
Updated by Carsten Rose over 4 years ago
- Target version changed from 146 to 19.7.0