Ublaboo\DataGrid inLineEdit – onSubmit dodava navic hidden sloupce s prazdnymi hodnotami
- Honza.Mottl
- Člen | 104
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');
};