Gridito (falešný datagrid) – komponenta

#1 před 2 lety

Honza Marek
Moderator
Registrovaný: 31. 3. 2007
Příspěvky: 1632

Gridito (falešný datagrid) – komponenta

Falešný datagrid je budoucí konkurenční produkt k datagridu od Romana Sklenáře. A už se můžu pochlubit demem na http://griddemo.janmarek.net/document_root/.

 

#2 před 2 lety

despiq
Nette guru
Registrovaný: 24. 11. 2009
Příspěvky: 354

Re: Gridito (falešný datagrid) – komponenta

DibiDataSource nebo fluent ?

 

#3 před 2 lety

Honza Marek
Moderator
Registrovaný: 31. 3. 2007
Příspěvky: 1632

Re: Gridito (falešný datagrid) – komponenta

Mělo by to být hodně univerzální, ale zatím OrmionCollection, když se ptáš ;)

 

#4 před 2 lety

despiq
Nette guru
Registrovaný: 24. 11. 2009
Příspěvky: 354

Re: Gridito (falešný datagrid) – komponenta

wunderbar, bring it on!

 

#5 před 2 lety

Jakub Šulák
Nette guru
Registrovaný: 26. 8. 2008
Příspěvky: 253

Re: Gridito (falešný datagrid) – komponenta

velice šikovné. dost se mi líbí, že je to postavené na jquery css

 

#6 před 2 lety

Lopata
Člen
Registrovaný: 4. 7. 2009
Příspěvky: 143

Re: Gridito (falešný datagrid) – komponenta

Honza Marek napsal(a):

Falešný datagrid je budoucí konkurenční produkt k datagridu od Romana Sklenáře. A už se můžu pochlubit demem na http://griddemo.janmarek.net/document_root/.

Proč to vyvíjíš „znova“? Ono je to postavené na PHP 5.3…?

 

#7 před 2 lety

despiq
Nette guru
Registrovaný: 24. 11. 2009
Příspěvky: 354

Re: Gridito (falešný datagrid) – komponenta

co ma php 5.3 tak noveho ze by to bylo tak dulezite?

 

#8 před 2 lety

Honza Marek
Moderator
Registrovaný: 31. 3. 2007
Příspěvky: 1632

Re: Gridito (falešný datagrid) – komponenta

Lopata, despiq:

Můžete kouknout zhruba, jak se ten grid definuje: http://gist.github.com/346294

Oproti „velkému datagridu“ pro vlastní vykreslování buněk nebo vytvoření funkčních tlačítek potřebuju mnohem méně kódu. Nemusim definovat signály nebo zakládat šablony pohledům s formulářema na upravení či založení nového záznamu.

Dalším plusem mého řešení je témovatelnost pomocí jQuery UI a nezávislost na DibiDataSource.

Abych to shrnul, cílem není okopírovat kompletní funkčnost Romanova datagridu, ale abych já měl jednodušší práci, když budu vyrábět nějaké administrační rozhranní.

 

#9 před 2 lety

Honza Kuchař
Moderator
Registrovaný: 12. 8. 2007
Příspěvky: 1588

Re: Gridito (falešný datagrid) – komponenta

Jé, to vypadá fajn. :)

 

#10 před 2 lety

Honza Marek
Moderator
Registrovaný: 31. 3. 2007
Příspěvky: 1632

Re: Gridito (falešný datagrid) – komponenta

 

#11 před 2 lety

jasir
Nette guru
Registrovaný: 4. 12. 2008
Příspěvky: 768

Re: Gridito (falešný datagrid) – komponenta

Tak to vypadá opravdu moc pěkně. Vyzkouším použít místo svého DataGridu. Jinak Ormion je boží. :) Díky.

 

#12 před 2 lety

v6ak
Člen
Registrovaný: 1. 5. 2008
Příspěvky: 194

Re: Gridito (falešný datagrid) – komponenta

A jede to i na PHP 5.2, když se tomu trošku pomůže :)

 

#13 před 2 lety

v6ak
Člen
Registrovaný: 1. 5. 2008
Příspěvky: 194

Re: Gridito (falešný datagrid) – komponenta

Mohl bych se zeptat, jak to vypadá s vývojem Gridita? Jsi již spokojen se současným stavem? Pokud ne, co orientačně plánuješ?

 

#14 před 2 lety

Honza Marek
Moderator
Registrovaný: 31. 3. 2007
Příspěvky: 1632

Re: Gridito (falešný datagrid) – komponenta

Spokojen nejsem, ale teď jsem měsíc nebyl schopen naprogramovat ani čárku. Z velkejch věcí určitě budu potřebovat filtry a pak pár nějakejch detailů. Jinak nejsem moc spokojen s tím „CRUDem“. Když odešlu chybně vyplněný formulář a neodchytí to JS, tak přijdu o data. Ale tohle je bohužel koncepční, nikoliv implementační záležitost, takže řešení se musí vymyslet, nikoliv naklepat.

 

#15 před 2 lety

v6ak
Člen
Registrovaný: 1. 5. 2008
Příspěvky: 194

Re: Gridito (falešný datagrid) – komponenta

Tak to abych generování 5.2 verze plně zautomatizoval nebo se spokojil se starší verzí. Naštěstí ta automatizace nebude takový problém, k nejhorším asi bude kolize třídy Button s formuláři.

 

#16 před 2 lety

v6ak
Člen
Registrovaný: 1. 5. 2008
Příspěvky: 194

Re: Gridito (falešný datagrid) – komponenta

Měl bych ještě jeden dotaz: přidal jsem jeden formulář ke Griditu (předtím jsem používal Gridito jen read only) a celkem jsem se divil adrese: nazevKomponenty-toolbar-1-token=865f…(zbytek toho hausnumera). Co je to za token? Co umožňuje? Je citlivý?

 

#17 před 2 lety

Honza Marek
Moderator
Registrovaný: 31. 3. 2007
Příspěvky: 1632

Re: Gridito (falešný datagrid) – komponenta

Při kliknutí na tlačítko se praktikuje automatická ochrana proti CSRF.

 

#18 před 2 lety

v6ak
Člen
Registrovaný: 1. 5. 2008
Příspěvky: 194

Re: Gridito (falešný datagrid) – komponenta

Aha, takže ve chvíli, kdy se ten token dostane do URL, přestává být citlivý, že? Pokud to dobře chápu, tak tím pádem se nemusím bát potenciálních odkazů ven z cílové stránky.

Ještě bych měl menší kritiku: mezi jednotlivá tlačítka by se hodilo nějaké whitespace, bez stylů to pak může bypadat jako jedno slovo, což není dobře.

 

#19 před 2 lety

v6ak
Člen
Registrovaný: 1. 5. 2008
Příspěvky: 194

Re: Gridito (falešný datagrid) – komponenta

Pokud bych k tomu měl nějaké třídy (zatím DibiModel, ale měly by přibýt další, chtěl bych něco jako EditableGrid, IEditableModel a další), mám je ti spíše poslat, nebo spíše je mám dát k dispozici zvlášť?

 

#20 před 2 lety

Honza Marek
Moderator
Registrovaný: 31. 3. 2007
Příspěvky: 1632

Re: Gridito (falešný datagrid) – komponenta

Buď mi to pošli nebo na githubu vyrob fork.

 

#21 před 2 lety

v6ak
Člen
Registrovaný: 1. 5. 2008
Příspěvky: 194

Re: Gridito (falešný datagrid) – komponenta

Fork you! ;-)

Kromě DibiModelu bych to označil zatím spíše za experimentální. DibiModel ve starší verzi (pro PHP 5.2, neobsahuje create, neumí třídit a má natvrdo primary key ‚id‘) používám už i na ostrém webu a zatím OK.

Měl bych pár dotazů k implementaci:

  • Gridito\IModel::setSorting(…) má počítat jenn s řazením podle jednoho sloupce?
  • Má Gridito\IModel::setupGrid(Gridito\Grid) dělat i něco kromě nastavení primárního klíče?

Chtěl bych, aby se na mě sesypala kritika za Gridito\IEditableModel a použití ArrayAccess včetně návratových hodnot (vizte Gridito\DibiEditableModel). Je to ještě OK, nebo radši k tomu nemám ohýbat ArrayAccess a definovat vlastní metody? Anebo to mám udělat ještě jinak? Variantu použít IModel a k tomu nějaký IEditableRecord jsem zavrhl kvůli vetší volnosti, byl by k tomu potřeba ohýbat např. i Ormion, což nechci.

Měl bych drobnou výhradu k názvu IModel – možná by to mělo být spíše IRepository.

Dále bych měl určitou výhradu k tomu, že IModel je ohledně stránkování apod. brán jako mutable. To znamená, že je vpodstatě potřeba pokažé vrátit novou instanci.

Dále jsem proti generování ID v podobě ++$this->toolbarButtonId. Takto někomu pod rukama přehodím pořadí tlačítek (třeba zveřejnit vs. smazat) a je v háji. Asi by to chtělo explicitní uvádění id.

Pak bych měl i jedno řešení potenciálních problémů: Gridito mi nechtělo stránkovat. Zjistil jsem, že v @layout.phtml (víceméně původní ze skeletonu) je k {include #content} potřeba přidat zavináč.

V příkladu Ti chybí addProtection.

Jo, do názvu tématu PLS přidej i název ‚Gridito‘, třeba i „Gridito – Falešný datagrid – komponenta“.

 

#22 před 2 lety

Honza Marek
Moderator
Registrovaný: 31. 3. 2007
Příspěvky: 1632

Re: Gridito (falešný datagrid) – komponenta

v6ak napsal(a):

Fork you! ;-)

Super,

Měl bych pár dotazů k implementaci:

  • Gridito\IModel::setSorting(…) má počítat jenn s řazením podle jednoho sloupce?

Ano. Pro uživatele je řazení podle jednoho sloupce většinou lepší. Pokud budu implementovat řazení podle více sloupců, asi přidám metodu setMultiSorting nebo něco takového.

  • Má Gridito\IModel::setupGrid(Gridito\Grid) dělat i něco kromě nastavení primárního klíče?

Můžeš si tam dělat co chceš. Slouží to k libovolné inicializaci komponenty.

Chtěl bych, aby se na mě sesypala kritika za Gridito\IEditableModel a použití ArrayAccess včetně návratových hodnot (vizte Gridito\DibiEditableModel). Je to ještě OK, nebo radši k tomu nemám ohýbat ArrayAccess a definovat vlastní metody? Anebo to mám udělat ještě jinak? Variantu použít IModel a k tomu nějaký IEditableRecord jsem zavrhl kvůli vetší volnosti, byl by k tomu potřeba ohýbat např. i Ormion, což nechci.

Neměl jsem čas to zatím prozkoumat, ale jinak bych asi ArrayAccess v tomhle případě nepoužil.

Měl bych drobnou výhradu k názvu IModel – možná by to mělo být spíše IRepository.

Proč?

Dále bych měl určitou výhradu k tomu, že IModel je ohledně stránkování apod. brán jako mutable. To znamená, že je vpodstatě potřeba pokažé vrátit novou instanci.

Asi nerozumím.

Dále jsem proti generování ID v podobě ++$this->toolbarButtonId. Takto někomu pod rukama přehodím pořadí tlačítek (třeba zveřejnit vs. smazat) a je v háji. Asi by to chtělo explicitní uvádění id.

Možná by to šlo nějak volitelně.

Pak bych měl i jedno řešení potenciálních problémů: Gridito mi nechtělo stránkovat. Zjistil jsem, že v @layout.phtml (víceméně původní ze skeletonu) je k {include #content} potřeba přidat zavináč.

Jasně, je to komponenta, která používá ajax.

Jo, do názvu tématu PLS přidej i název ‚Gridito‘, třeba i „Gridito – Falešný datagrid – komponenta“.

ok

 

#23 před 2 lety

v6ak
Člen
Registrovaný: 1. 5. 2008
Příspěvky: 194

Re: Gridito (falešný datagrid) – komponenta

Jé, já odpověď odložil a pak zasklil :-(
K setupGrid(): Jasně, jde mi o nějaké tipy na činnosti, které se zde mohou nacházet. Popravdě řečeno, při implementaci DibiModelu jsem se díval na OrmionModel.
ArrayAccess asi časem nahradím, asi to nebude velká změna. Ono mi to celkem čisté přijde až na návratové hodnoty offsetSet. Jinak klíč null u offsetSet není až takový výmysl, odpovídá to $foo []= bar.
K IRepository: http://www.phpguru.cz/…rstev-modelu – asi to není vyloženě nutné, ale bylo by to asi lepší.
K mutable IModelu: pokud budu mít někde nějakou továrnu na IModel, musí vždy vrátit novou instanci. Pokud by si instanci cacheovala, šlo by ji v rámci kontextu továrny „rozbít“ (nechtěně ovlivnit vše) nějakým setterem. Ale možná to takový problém není.
K id: Možná by bylo lepší za výchozí ID dosadit label, v případě změny tu nejsou nějaké katastrofické následky moc pravděpodobné. V případě přehození pořadí, řekněme, „Smazat“ a „Publikovat“, je to mnohem horší.
Jinak jsem si všiml jedné vlastnosti, kterou nezmiňuješ: specifické vykreslování typů \DateTime a boolean: http://github.com/…r/Column.php#L164 . To je důvod, proč v mém příkladu nefungují dva sloupce („Vytvořeno“ a „Je krásná“) korektně. Řešení mám v hlavě, půjde o nějaký Decorator, aby jej bylo možné použít i mimo DibiModel. V OrmionModelu to potřeba asi nebude, ale kdyby někdo chtěl třeba NotORMModel, tak by se mu to mohlo hodit.
Mimochodem, zatím to skoro vypadá, jako by Gridito používali jen dva programátoři (já a Honza). Můžete to někdo vyvrátit?

 

#24 před 2 lety

pave.kucera
Člen
Registrovaný: 9. 5. 2009
Příspěvky: 101

Re: Gridito (falešný datagrid) – komponenta

Já právě uvažuju o implementaci :)

 

#25 před 2 lety

Matúš Matula
Člen
Registrovaný: 3. 9. 2009
Příspěvky: 167

Re: Gridito (falešný datagrid) – komponenta

Tiez nad tym momentalne uvazujem, ale som odkazany na php 5.2 . V6ak ako si na tom s tou automatizaciou Gridita pre php5.2? :-)

 

#26 před 2 lety

v6ak
Člen
Registrovaný: 1. 5. 2008
Příspěvky: 194

Re: Gridito (falešný datagrid) – komponenta

No, částečně. Napsal jsem http://gist.github.com/430117 (na Windows jede pod Cygwinem), udělal pár ručních úprav (potřeboval jsem honem funkční Gridito) a tím to skončilo. Doma asi napíšu nějaký lepší skript. A pokud se budu nudit, implementuji i překlad anonymních funkcí na třídy, takže půjde přeložit i EditableGrid apod. BTW: On ten trochu lepší nástroj by mohl sloužit i k opačné portaci. A vlastně by se mi to asi taky hodilo.
Jinak, vzpomínám si na tyto ruční úpravy:

  • Přejmenování Button na Gridito_Button (kolize s \Nette\Forms\Button)
  • Názvy tříd s tlačítky byly ve stringu, asi ve třídě Grid. Bylo z nich potřeba odstranit namespace.
  • V nějakých renderovacích metodách tlačítek a asi i třídy Grid bylo potřeba se vyhnout použití method chainingu. Ale to jsem možná jen měl starou verzi Nette.

Pokud to chceš honem udělat, použij ten skript. Co bude potřeba dodělat, o to se PHP brzy přihlásí chybovou hláškou.

 

#27 před 2 lety

Matúš Matula
Člen
Registrovaný: 3. 9. 2009
Příspěvky: 167

Re: Gridito (falešný datagrid) – komponenta

Dik za bleskovu reakciu. Neponahlam sa s tym, teraz mam kopec roboty, len som si to chcel vyskusat :-)

 

#28 před 2 lety

v6ak
Člen
Registrovaný: 1. 5. 2008
Příspěvky: 194

Re: Gridito (falešný datagrid) – komponenta

Tak na vyzkoušení můžeš použít i PHP 5.3.

 

#29 před 2 lety

univerz
Nový člen
Registrovaný: 22. 9. 2010
Příspěvky: 7

Re: Gridito (falešný datagrid) – komponenta

gratulujem k vykonnostne pouzitelnemu rieseniu datagridu. vidim, ze vyvoj na githube ide dopredu, je nejaka moznost, ze fork od v6ak bude zluceny pred tym, nez sa zdrojaky priliz rozidu?

k dokonalosti mi chyba (mozno som jej existenciu prehliadol) moznost nastavit si sirku jednotlivych stlpcov, v zaujme zachovania vykonu v klude pekne jednoucelova, bez vyuzitia Nette\Web\Html. pripadne by sa hodilo nieco na styl PositionColumn stareho datagridu, nech nie je nutne vsetko davat do buttonov. samozrejme, pokial nie su v dohladnej dobe planovane BC breaky, rad prilozim ruku k dielu :).

 

#30 před 2 lety

v6ak
Člen
Registrovaný: 1. 5. 2008
Příspěvky: 194

Re: Gridito (falešný datagrid) – komponenta

Já bych teď asi už začal na autoportaci pro PHP 5.2. Pak bych jednu nezveřejněnou třídu z 5.2 upravil pro 5.3. Pak bych měl asi nějak sloučit svůj fork a upravit všechny modely kvůli jednomu menšímu BC breaku – jak to na GITu udělat co nejčistěji?

Jinak BC breaky – nedávno byl jeden BC break v IModelu, ale nevím, jaké jsou další plány Honzy. Já navrhoval změnu identifikace tlačítek („Dále jsem proti generování ID v podobě ++$this->toolbarButtonId. Takto někomu pod rukama přehodím pořadí tlačítek (třeba zveřejnit vs. smazat) a je v háji. Asi by to chtělo explicitní uvádění id.“), která by sice bez BC breaku šla, ale bylo by to dost kostrbaté. Nechci se do toho pouštět sám, protože řešením bez Honzova souhlasu bych riskoval vývoj dvou vzájemně nekompatibilních větví.

<EDIT n=„1“>Jo, asi časem upravím trošku IEditableModel tak, aby nepoužíval ArrayAccess.</EDIT>

Šířka jednotlivých sloupců – zajímavá poznámka, mělo by jít stejně jako barvení sudých a lichých řádků (vlastní šablonou), ale bylo by možná vhodné mít příjemnější cestu. Nechceš přiložit ruku k dílu zde?

<EDIT n=„2“>Jo, ještě by bylo asi dobré vymyslet nějaký dobrý způsob, jak předávat šablonám parametry tak, aby:

  • šlo využít nápověd IDE
  • šablona mohla mít svoje specifické vlastnosti
  • dědičnost nebyla zneužita

Co říkáte na toto?:

$grid->setTemplate(MyGreatGridTemplate::create()->setFoo(12)->setColumnSize('foo', '64px'));

Další věc je, že by se dalo toto nějak zakomponovat do Honzova návrhu o nastavení Gridita v šablonách . Bylo by to cooler.
</EDIT>

Editoval v6ak (22. 9. 2010 8:37)

 

#31 před 2 lety

univerz
Nový člen
Registrovaný: 22. 9. 2010
Příspěvky: 7

Re: Gridito (falešný datagrid) – komponenta

v6ak napsal(a):
Co říkáte na toto?:

$grid->setTemplate(MyGreatGridTemplate::create()->setFoo(12)->setColumnSize('foo', '64px'));

Další věc je, že by se dalo toto nějak zakomponovat do Honzova návrhu o nastavení Gridita v šablonách . Bylo by to cooler.

zrejme bude prezierave pockat si na vyjadrenie autora, kazdopadne som aj za variantu s quickfixom pomocou sablony – no idelane by som ju rad robil uz pre „spojene zrojaky“. aktualne robim s medziverziou s este vlastnou upravou pre namespaces a par upravami z gitu spred cca tyzdna.

 

#32 před 2 lety

Werkov
Člen
Registrovaný: 30. 8. 2010
Příspěvky: 16

Re: Gridito (falešný datagrid) – komponenta

  1. Bug report: v OrmionModel jsou špatně parametry u metody setLimit (přebývá offset).
  2. Feature request, dotaz: nebylo by lepší ukládat řazení a stránku do fragmentu? Uřivatelsky mi přijde lepší, když jsem se někam dolistoval, dám F5, ale nehodí mě to za defaultní pohled.

Jestli to budu hodně potřebovat, tak to možná někdy v budoucnu udělám. Proto by mě ještě zajímalo – neplánuje se toto řešit nějak centrálně v Nette (uložení/načtení parametrů ve fragmentu)?

 

#33 před 2 lety

v6ak
Člen
Registrovaný: 1. 5. 2008
Příspěvky: 194

Re: Gridito (falešný datagrid) – komponenta

Mám pocit, že se ten #fragment plánuje v Nete 1.0, ale krk za to nedám.

 

#34 před 2 lety

Patrik Votoček
Nette Evangelist
Registrovaný: 8. 3. 2008
Příspěvky: 2122

Re: Gridito (falešný datagrid) – komponenta

Přesněji řečeno Nette 2… :-)


Sorry my bad english.
Vrtak-CZ | Nella Project | Osobní Blog | Twitter | LinkedIn | GitHub
„Nastala chyba která neměla nastat“ aneb „Když se chce všechno jde.“

 

#35 před 2 lety

Honza Marek
Moderator
Registrovaný: 31. 3. 2007
Příspěvky: 1632

Re: Gridito (falešný datagrid) – komponenta

v6ak napsal(a):

Jinak BC breaky – nedávno byl jeden BC break v IModelu, ale nevím, jaké jsou další plány Honzy. Já navrhoval změnu identifikace tlačítek (*"Dále jsem proti generování ID v podobě ++$this->toolbarButtonId. Takto někomu pod rukama přehodím pořadí tlačítek (třeba zveřejnit vs. smazat) a je v háji.

Určitě souhlasím s tím, že by tlačítka měla mít nějaké ID (ne jen číslo jako teď).

Dálě chci celkově předělat přidání sloupců a tlačítek. Zvažuju něco takového:

$column = $grid->addColumn("date", array(
        "sortable" => true,
        "text" => "Datum",
        ...
));

$column->setOption("dateTimeFormat", "j.n.Y");

To je samozřejmě BC break jako prase, ale je potřeba v tom udělat pořádek i s ohledem na to alternativní nastavování v šablonách.

Další moje plány jsou k vidění v issues na githubu – http://github.com/…idito/issues#list

 

#36 před 2 lety

v6ak
Člen
Registrovaný: 1. 5. 2008
Příspěvky: 194

Re: Gridito (falešný datagrid) – komponenta

Někdy je lepší udělat BC break, než vláčet historii. Na druhou stranu, v takovém případě je lepší toho udělat více naráz.

Přiznám se, že:

  • Ten přistup s array se mi nelíbí, snadno se zde dělá chyba a IDE nenapovídá.
  • Byl bych pro více typů sloupců, zpracováni DateTime možná do obecného sloupce nepatří.

 

#37 před 2 lety

Honza Marek
Moderator
Registrovaný: 31. 3. 2007
Příspěvky: 1632

Re: Gridito (falešný datagrid) – komponenta

v6ak napsal(a):

  • Ten přistup s array se mi nelíbí, snadno se zde dělá chyba a IDE nenapovídá.

To by se dalo vylepšit definováním konstant Column::NAME, Column::SORTABLE atd. Jinak to, že se ti to nelíbí znamená, že preferuješ klasické settery nebo se ti nelíbí ani jeden z těchto způsobů? .)

 

#38 před 2 lety

v6ak
Člen
Registrovaný: 1. 5. 2008
Příspěvky: 194

Re: Gridito (falešný datagrid) – komponenta

Dal bych přednost klasickým setterům. Ty mi ostatně znemožní se snažit nastavovat sloupci něco, co mu nepatří.

Teda, ještě lepší je asi JavaFX-like deklarativní přístup, ale ten v PHP s plnou podporou IDE asi jen tak neuděláme.

 

#39 před 2 lety

Quinix
Člen
Registrovaný: 31. 3. 2009
Příspěvky: 33

Re: Gridito (falešný datagrid) – komponenta

Jde nějakým způsobem definovat, aby tlačítko v gridu bylo normální odkaz (tzn. Presenter:akce) a neotevíral se v jquery UI dialogu? form na přidání/úpravu je dost velký a do dialogu se moc nehodí…

 

#40 před 2 lety

Werkov
Člen
Registrovaný: 30. 8. 2010
Příspěvky: 16

Re: Gridito (falešný datagrid) – komponenta

Já to řešil takto (v PHP >= 5.3):

$pres = $this;
$grid->addButton("Upravit", null)->setLink(function ($row) use($pres)
                                  {
                                          return $pres->link("edit", array("id" => $row->id));
                                  })->setIcon("pencil");

 

#41 před 2 lety

Honza Marek
Moderator
Registrovaný: 31. 3. 2007
Příspěvky: 1632

Re: Gridito (falešný datagrid) – komponenta

Na stránku http://griddemo.janmarek.net/document_root/ jsem hodil nové ukázky. Nicméně v tuto chvíli je datagrid kompatibilní pouze s Nette 2.0 dev, což obnáší i nefunkční ajax (kromě jQuery UI oken).

 

#42 před 2 lety

colek
Člen
Registrovaný: 3. 1. 2010
Příspěvky: 63

Re: Gridito (falešný datagrid) – komponenta

Ahoj, chtěl bych se zeptat na asi elementární věc. Gridito mi funguje krásně, ale jen na homepage. Pokud se dostanu hlouběji ve struktuře webu, kde je zobrazení vázáno na nějaké id, toto id se nepředává ve vygenerovaných odkazech.

Pokud navštívím url: text/123, funguje vše v pořádku, id 123 se správně předá a vše se vykreslí.

$router[] = new Route('text/<id>', array(
    'module'    => 'Front',
    'presenter' => 'Text',
    'action'    => 'showText',
    'id' => NULL,
));

...
$id = $this->getParam('id');
$grid->setModel(new Gridito\DibiFluentModel($model->getTextById($id)  ));

ale všechny vygenerované odkazy (stránkování, řazení) tvoří url text/?grid-sort…

můžete mi s tím nějak pomoci, díky.. :)

 

#43 před 2 lety

Honza Marek
Moderator
Registrovaný: 31. 3. 2007
Příspěvky: 1632

Re: Gridito (falešný datagrid) – komponenta

Určitě by pomohl dát id jako persistentní parametr, ale to samozřejmě může dělat nějaký další bordel.

 

#44 před 2 lety

Honza Marek
Moderator
Registrovaný: 31. 3. 2007
Příspěvky: 1632

Re: Gridito (falešný datagrid) – komponenta

Gridito je kompatibilní s Nette 2.0 alfa 2

 

#45 před 2 lety

TeeBee87
Člen
Registrovaný: 17. 12. 2008
Příspěvky: 13

Re: Gridito (falešný datagrid) – komponenta

Lze nějak jednodušeji přidat sloupec, který je z joinuté tabulky?

<?php
$qb->select(array('t', 'o'))
        ->from('Helpdesk\Entities\Ticket', 't')
        ->leftJoin('t.owner', 'o')
;
?>

Potřeboval bych vypsat například sloupec o.login.

Momentálně to dělám takto:

<?php
$grid->addColumn("login", "Vlastník", array(
        'renderer' => function($row) {
                echo $row->owner->login;
        }
));
?>

 

#46 před rokem

blacksun
Člen
Registrovaný: 26. 9. 2008
Příspěvky: 169

Re: Gridito (falešný datagrid) – komponenta

Ahoj,

chtěl bych se zeptat, než si začnu tvořit vlastní úpravu, jestli není někde třeba skryta verze se sloupcem checkboxů, jako používá datagrid pro hromadné akce?

Šel bych na to přes vlastní šablonu a obalení tabulky formulářem..

Díky za info

Michal

 

#47 před rokem

Honza Marek
Moderator
Registrovaný: 31. 3. 2007
Příspěvky: 1632

Re: Gridito (falešný datagrid) – komponenta

Zatím to neexistuje. Když to vyrobíš, bude to fajn.

 

#48 před rokem

lactarius
Člen
Registrovaný: 15. 3. 2009
Příspěvky: 47

Re: Gridito (falešný datagrid) – komponenta

Ahoj,

má gridito vlastní konfirmační mechanismus ?

 

#49 před rokem

Honza Marek
Moderator
Registrovaný: 31. 3. 2007
Příspěvky: 1632

Re: Gridito (falešný datagrid) – komponenta

$grid->addButton('name', 'Popisek')->setConfirmationQuestion('jo?');

// nebo

$grid->addButton('name', 'Popisek')->setConfirmationQuestion(function ($entity) {
        return "Zničit $entity->name?";
});

Pak to vyhodí klasickej JS confirm.

 

#50 před rokem

lactarius
Člen
Registrovaný: 15. 3. 2009
Příspěvky: 47

Re: Gridito (falešný datagrid) – komponenta

To je super – jenom tlačítka bych udělal menší – jenom ikony s nápovědným textem, takhle jsou zbytečně na úkor dat…

 
Stránky: 1 2 3 Next

RSS feed RSS tématu

Zápatí