SlideShare une entreprise Scribd logo
1  sur  12
Autor
Matouš Němec (mesour.com)
mesour/datagrid
Obsah
● Dokumentace (stylem kód → ukázka)
● Mesour DataGrid
● Plány do budoucna
● Otázky
Mesour DataGrid
● Proč vlastně nový grid
– Nevyhovující API
– Chybějící featury
● V čem je tento grid výjimečný
– Styl buttonů a dropdownů
– Sorting (problémy: filtr, stránkování)
– Vlastní filtr form a podmínky
Schéma Gridu
Jak to rozchodit
1. Instalace Composer „mesour/datagrid“
2. Vytvoření componenty Gridu
● createComponentTestGrid($name)
3. Vypsání do templaty
● {control testGrid}
Základní Grid
// v presenteru
use DataGridNetteDbDataSource,
DataGridGrid;
protected function createComponentTestGrid($name) {
$selection = $this->nette_db_context->table('user');
$source = new NetteDbDataSource($selection);
$source->setPrimaryKey('user_id'); // default „id“
$grid = new Grid($this, $name);
$grid->setDataSource($source);
return $grid;
}
// v šabloně
{control testGrid}
Základní Grid
Vlastní sloupce
● Metody začínající „add“
– $grid->addText('name', 'Name');
● Více nastavení
– $grid->addDate('from')
->setHeader('From')
->setFormat('j.n.Y H:i');
Rozšíření a události
● Metody začínající „enable“
– $grid->enablePager(10);
// 10 = limit na stránku
● Metody začínající „on“
– $grid->onSort[] = callback($this, 'sort');
Nejvíce řešené na fóru
● AJAX - Nette Snippety - překreslení
– jquery.nette.js
– $(window).ajaxComplete(...)
● Načítání JS a CSS
– Metody: disableJsDraw a disableCssDraw
– Soubory: src/grid.js a src/grid.css
– Pořadí, vlastní načítání
Plány do budoucna
● SubGridy (SubItemy)
– AJAXové donačtení
– Rekurze
– Itemy: text, formulář...
● Vlastní renderer factory
– Potřeba upravit stávající implementaci
● Inline default filtr
● Permissions (zjednodušit, zpřehlednit, jak?)
Dotazy?
Díky za pozornost.

Contenu connexe

Similaire à Mesour DataGrid

Similaire à Mesour DataGrid (7)

Tag management
Tag managementTag management
Tag management
 
Google Tag Manager pro vývojáře
Google Tag Manager pro vývojářeGoogle Tag Manager pro vývojáře
Google Tag Manager pro vývojáře
 
Rozšiřitelnost ASP.NET MVC
Rozšiřitelnost ASP.NET MVCRozšiřitelnost ASP.NET MVC
Rozšiřitelnost ASP.NET MVC
 
Představení chystané nové verze Mergado 2
Představení chystané nové verze Mergado 2Představení chystané nové verze Mergado 2
Představení chystané nové verze Mergado 2
 
Doctrine - Co dělat když entity nestačí [Filip Procházka] (7. sraz, Praha)
Doctrine - Co dělat když entity nestačí [Filip Procházka] (7. sraz, Praha)Doctrine - Co dělat když entity nestačí [Filip Procházka] (7. sraz, Praha)
Doctrine - Co dělat když entity nestačí [Filip Procházka] (7. sraz, Praha)
 
2 prz
 2 prz 2 prz
2 prz
 
JavaScript v GTM - Measure Camp Brno 2017
JavaScript v GTM - Measure Camp Brno 2017JavaScript v GTM - Measure Camp Brno 2017
JavaScript v GTM - Measure Camp Brno 2017
 

Mesour DataGrid

  • 2. Obsah ● Dokumentace (stylem kód → ukázka) ● Mesour DataGrid ● Plány do budoucna ● Otázky
  • 3. Mesour DataGrid ● Proč vlastně nový grid – Nevyhovující API – Chybějící featury ● V čem je tento grid výjimečný – Styl buttonů a dropdownů – Sorting (problémy: filtr, stránkování) – Vlastní filtr form a podmínky
  • 5. Jak to rozchodit 1. Instalace Composer „mesour/datagrid“ 2. Vytvoření componenty Gridu ● createComponentTestGrid($name) 3. Vypsání do templaty ● {control testGrid}
  • 6. Základní Grid // v presenteru use DataGridNetteDbDataSource, DataGridGrid; protected function createComponentTestGrid($name) { $selection = $this->nette_db_context->table('user'); $source = new NetteDbDataSource($selection); $source->setPrimaryKey('user_id'); // default „id“ $grid = new Grid($this, $name); $grid->setDataSource($source); return $grid; } // v šabloně {control testGrid}
  • 8. Vlastní sloupce ● Metody začínající „add“ – $grid->addText('name', 'Name'); ● Více nastavení – $grid->addDate('from') ->setHeader('From') ->setFormat('j.n.Y H:i');
  • 9. Rozšíření a události ● Metody začínající „enable“ – $grid->enablePager(10); // 10 = limit na stránku ● Metody začínající „on“ – $grid->onSort[] = callback($this, 'sort');
  • 10. Nejvíce řešené na fóru ● AJAX - Nette Snippety - překreslení – jquery.nette.js – $(window).ajaxComplete(...) ● Načítání JS a CSS – Metody: disableJsDraw a disableCssDraw – Soubory: src/grid.js a src/grid.css – Pořadí, vlastní načítání
  • 11. Plány do budoucna ● SubGridy (SubItemy) – AJAXové donačtení – Rekurze – Itemy: text, formulář... ● Vlastní renderer factory – Potřeba upravit stávající implementaci ● Inline default filtr ● Permissions (zjednodušit, zpřehlednit, jak?)