Project

General

Profile

Actions

Feature #7284

closed

tablesorter: save sort order / column selection on server

Added by Carsten Rose over 5 years ago. Updated over 4 years ago.

Status:
Closed
Priority:
High
Assignee:
Carsten Rose
Target version:
Start date:
18.11.2018
Due date:
23.05.2019
% Done:

100%

Estimated time:
Discuss:
Prio Planung:
Vote:

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

Has duplicate QFQ - Feature #8172: Report: Spalten dynamisch ein/ausblenden und filterbar machenRejectedCarsten Rose03.04.2019

Actions
Actions #1

Updated by Carsten Rose about 5 years ago

  • Description updated (diff)
  • Priority changed from Normal to High
  • Target version changed from 55 to 146
Actions #9

Updated by Carsten Rose about 5 years ago

  • Status changed from New to In Progress
Actions #10

Updated by Carsten Rose about 5 years ago

  • Status changed from In Progress to New
Actions #12

Updated by Marc Egger almost 5 years ago

  • Assignee set to Marc Egger
Actions #13

Updated by Marc Egger almost 5 years ago

  • Due date set to 09.05.2019
Actions #14

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>

Actions #15

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.

Actions #16

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
}

Actions #17

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

Actions #18

Updated by Marc Egger almost 5 years ago

  • Due date changed from 09.05.2019 to 23.05.2019
Actions #19

Updated by Marc Egger almost 5 years ago

  • Assignee changed from Marc Egger to Carsten Rose
Actions #20

Updated by Carsten Rose almost 5 years ago

  • Target version changed from 146 to CodingDays2019
Actions #21

Updated by Carsten Rose almost 5 years ago

  • Target version changed from CodingDays2019 to next6
Actions #22

Updated by Carsten Rose almost 5 years ago

  • Has duplicate Feature #8172: Report: Spalten dynamisch ein/ausblenden und filterbar machen added
Actions #23

Updated by Carsten Rose almost 5 years ago

  • Status changed from New to In Progress
Actions #24

Updated by Carsten Rose almost 5 years ago

  • Status changed from In Progress to Closed
  • Target version changed from next6 to 146
Actions #25

Updated by Carsten Rose over 4 years ago

  • Target version changed from 146 to 19.7.0
Actions

Also available in: Atom PDF