Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pfeil als Indikator für Sortierspalte und -richtung in Tabellen-Köpfen ergänzen #1447

Open
bitshiftersgmbh opened this issue Aug 11, 2023 · 0 comments

Comments

@bitshiftersgmbh
Copy link
Contributor

Das fehlt schon lange finde ich ... Man kann in den rex_lists der Table Manager Tables zwar sortieren aber man sieht die Richtung nicht (bestenfalls kontextuell, aber je nach Daten in der Table oder Nutzer hinterm Bildschirm auch mal gar nicht!).

Ich habe per EP einen Sortierpfeil nachgetragen. Ich glaube aber dass gehört eigentlich in die Basics der Ausgabe von rex_list rein. Hier mein Code für den EP:

    // add sorting indicators (arrows) to yform table headers
    rex_extension::register('YFORM_DATA_LIST', function(rex_extension_point $ep) {
        /** @var $list rex_list */
        $list = $ep->getSubject();

        /** @var $ep->getParam('table') rex_yform_manager_table */
        $yformTableColumns = $ep->getParam('table')->getColumns();

        $sortCol = rex_request("sort", "string");
        $sortDir = rex_request('sorttype', 'string', 'ASC');

        $specialCols = $list->getColumnLayouts();
        $specialColsKeys = array_keys($specialCols);

        foreach($yformTableColumns as $colNameDef => $colDataDef) {
            if(!is_null($list->getColumnFormat($colNameDef)) && $sortCol == $colNameDef) {
                $layout = $list->getColumnLayout($colNameDef);
                $list->setColumnLayout($colNameDef, [
                    str_replace(
                        '</th>',
                        ' <i class="fa fa-arrow-'.($sortDir == 'asc' ? 'up' : 'down').'"></i></th>',
                        $layout[0]
                    ),
                    $layout[1]]
                );
            }
        }

        if($sortCol == 'id') {
            $list->setColumnLayout('id', [
                str_replace(
                    '</th>',
                    ' <i class="fa fa-arrow-'.($sortDir == 'asc' ? 'up' : 'down').'"></i></th>',
                    $specialCols[$specialColsKeys[0]][0]
                ),
                $specialCols[$specialColsKeys[0]][1]
            ]);
        }

        return $list;
    });
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant