Autor Zpráva
snazimse
Profil
Zdravím všechny,

nemá prosím někdo hlubší zkušenost s používáním knihovny od ublaboo(Datagrid podporující nette).

Uvedu příklad o co mi jde: viz: ublaboo.org/datagrid/action
$grid->addAction('delete', '', 'delete!')
    ->setConfirm(function($item) {
        return 'Do you really want to delete row with id ' . $item->id . ' and name %s?';
    }, 'name');

Nedokážu se dostat k $item->id pro action edit a z dokumentace jsem vůbec nepochopil jak k němu přijít?
Může někdo poradit, jako DataSource mám Doctrine2.

Moje Komponenta vypadá nějak takto:

public function createComponentSimpleGrid($name="SimpleGrid")
  {
    $grid = new DataGrid($this, $name);
    $grid->setItemsDetail();  
    $grid->setDataSource($this->getAdsModel()->doctrine_ORM_getRepositoryFindAll());
    
    $grid->addColumnText('adid', 'Id inzerátu');
    $grid->addColumnText('userid', 'Id uživatele');
    $grid->addColumnText('title', 'Titulek');
    $grid->addColumnText('content', 'Obsah');
    $grid->addColumnDateTime('dateadd', 'Datum přidání');
    $grid->addAction('Administrace:inzeraty', 'Upravit')->setIcon('pencil');

Když se snažím nějak dostat do action $item->id, tak se mi to nedaří, nepoužívám pro vykreslení speciální šablonu,
chtěl bych to nějak takto, viz níže, ale objekt $item není inicializován a nevím jak na to...

Moje nefunkční představa o edit action....
 $grid->addAction('Administrace:inzeraty/'.$item->id, 'Upravit')->setIcon('pencil');

Z dokumentace jsem to nepochopil, možná, že to jde jen přes vykreslení v šabloně(které mi mimochodem nevyhovuje) viz: ublaboo.org/datagrid/action#item-detail-form , ale nemám s tím zkušenosti, bohužel...Hold jsem hlupák...

Děkuji moc všem zkušeným předem za pomoc!
Keeehi
Profil
Tak parametry si to tam předává samo. To ID inzerátu tam přece nemůžeš nacpat na začátku, musí to být pro každý inzerát jiný. V dokumentaci je psáno, že to ID se tam předává samo o sobě. Respektive dává se tam to, co je nastaveno jako primární klíč. Tak snad ho to správně rozpoznává. Pokud ne, tak předané parametry by měly jít vynutit polem jako čtvrtý atribut. Pokud to správně chápu, mělo by to vypadat asi nějak takto:
$grid->addAction('action-edit', 'Upravit', 'Administrace:inzeraty', ['adid'])->setIcon('pencil');
snazimse
Profil
Keeehi:


Děkuji moc za pomoc, jsem ti vděčný, skutečně to funguje, nicméně nechápu kde jsi to vyčetl, já o tom v celé dokumentaci a API nenašel vůbec nic a dokonce ani v API nemohou najit ani addAction....... :(
Keeehi
Profil
snazimse:
a dokonce ani v API nemohou najit ani addAction
No na začátku té stránky co jsi ukázal, je popis metody addAction. U toho je taky napsáno, že parametry jsou stejné jako u metody addColumnLink. U ní je to popsané. A s trochou selského rozumu jsem se dobral k tomu, jak to bude asi u addAction.
snazimse
Profil
Keeehi:

Máš pravdu, jen si představ, že si toho nevšimneš, trochu neetické... Ale fakt díky, hodně mi to pomohlo, hold nepozornost je někdy největší slabina...

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: