Ublaboo\DataGrid inLineEdit – onSubmit dodava navic hidden sloupce s prazdnymi hodnotami

Honza.Mottl
Člen | 104
+
0
-

Narazil jsem na problem v Ublaboo\DataGrid velkem inLineEditingu. onSubmit dodava chybne take hidden sloupce s prazdnymi hodnotami. To je prusvih, protoze uzivatel tak nevedomky vymaze hodnoty sloupcu, ktere nevidi. Resili jste nekdo tento problem?

Obesel jsem tak, ze jsem po boji prisel na to, jak zjistit ze session data ktere sloupce jsou hidden a pak jsem vynechal pri update tabulky:

$this->hiddenColumns = $grid->getSessionData('_grid_hidden_columns');

$grid->getInlineEdit()->onSubmit[] = function($id, $values) {
    $notHiddenValues = [];
    foreach ($values as $key => $value) {
        // zjistit ze je column hidden a vynechat ho
        if (empty($this->hiddenColumns) || (!in_array($key, $this->hiddenColumns, true))) {
            $notHiddenValues[$key] = $value;
        }
    }

    if ($this->db->table('cenik')->where('cenik_kod=?', $id)->update($notHiddenValues) !== false) {
        $this->logManager->recordTableUpdate('cenik', $notHiddenValues, $notHiddenValues,
            'cenik_kod', $id);
        $this->flashMessage('Ceníková položka byla uložena', self::MSG_SUCCESS);
    } else {
        $this->flashMessage('Chyba při uložení ceníkové položky', self::MSG_ERROR);
    }

    $this->redrawControl('headerSnippet');
};