Code Monkey home page Code Monkey logo

niftygrid's People

Contributors

andrasin avatar echo511 avatar holubj avatar kryspin avatar milo avatar pinguspepan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

niftygrid's Issues

Když je vypnutý paginator, někdy nefunguje ajax u buttonu

//píšu si to pro sebe, abych na to nezapomněl - komentovat můžete

Když je paginator zapnutej, tak v adrese je vždycky parametr s defaultním počtem záznamů na stranu. Tim pádem komponenta(grid) má parametr a je důvod jí automaticky invalidovat. Bez paginatoru tam žádný parametr neni, tak se komponenta automaticky neinvaliduje. Kód a redirect z vlastního callbacku buttonu proběhne, protože volání signálu je parametr. Ale po redirectu už tam parametr není, takže se komponenta neinvaliduje a v AJAXu se nevrátí překreslenej grid.

Jedno řešení je invalidovat to vždy z presenteru - což je pro každej grid kód navíc a je to zbytečnost.
Pak by ještě šlo tam dát nějakej dumb persistentní parametr, aby se to automaticky invalidovalo a překreslilo.
Nic jinýho mě zatim nenapadá.

Chyba při vytváření komponenty

Zdravím. Narazil jsem na problém při vytváření komponenty resp. jejím připojování k presenteru.
Ke konfiguraci komponenty se používá metoda attached, která volá metodu configure, jež je překrytá v poděděné komponentě. Problém však je, když si do odděděné komponenty předávám instanci databáze.
Musím volat konstruktor takto:

use NiftyGrid\NDataSource;
use NiftyGrid\Grid;

class GridControl extends Grid {

    /** @var Nette\Database\Table\Selection */
    private $table; 

    public function __construct(Nette\ComponentModel\IContainer $parent = NULL, $name = NULL, Nette\Database\Table\Selection $table)
    {
        $this->table = $table;
        parent::__construct($parent, $name);
    }

    protected function configure($presenter)
    {
        $dataSource = new NDataSource($this->table);

        .....


    }   

}

Instanci databáze musím přiřadit před voláním rodičovského konstruktoru, protože jinak dojde po zavolání parent::__construct($parent, $name); k zavolání attached a následném volání configure a zde ještě databáze není nastavena (nevrátil jsem se ještě z konstruktoru).

Této varianty konstruktoru využít musím, protože jinak je v metodě render vyhozena

Nette\InvalidArgumentException

Component with name 'columns' does not exist.

protože se ještě nezavolal attached.

Továrnička:

protected function createComponentGrid($name)
    {
        $table = $this->database->table('wm_licenses');

        $control = new GridControl($this, $name, $table);
        return $control;
    }

NiftyGrid\NDataSource

// Pokud je zadán pouze count berou se všechny sloupce, zkoušel jsem nette na 2.1-dev

   public function getSelectedRowsCount()
{
    return $this->data->count("*");
}

vylepseni setDateFilter

Cau, napadlo me prevest hodnotu v setDateFilter() nejdrive na PHP DateTime objekt a teprve pak ho poslat ve formatu Y-m-d do SQL dotazu... aby clovek mohl vyhledavat datum v libovolnem formatu. Co si o tom myslis?

Podpora pre pisanie vlastnych joinov

Ahoj,

Chcel by som sa opytat, je mozne aby som si pisal vlastne joiny do NiftyGrid-u ?
lebo struktura DB nevyhovuje poziadavkam NiftyGrid-u na joiny tabuliek. Dakujem

Dlouhý text

Nefunguje mi inline editace, předpokládám že nastala chyba při přechodu na novější nette.

Unset order possibility

I prefere 3 state oredering (ASC,DESC,NO).
Sometimes could be usefull to have posibility of removing order.

Redirect problem with ajax editation

When I submit row add, it works, but doesnt appear - I must refresh page.

First HTTP request and reponse:

POST /crm/www/zakaznik/detail?id_zakaznik=106&do=skupinaZakaznikGrid-gridForm-submit
{"redirect":"http:\/\/localhost\/crm\/www\/zakaznik\/detail?id_zakaznik=106&_fid=ftz1"}

Second HTTP request and reponse:

GET http://localhost/crm/www/zakaznik/detail?id_zakaznik=106&_fid=ftz1
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8" />
...

Server evidently sends HTML instead of JSON.

I resolve it by commenting out redirect() in Grid::rowFormSubmitted():

    public function rowFormSubmitted($values, $gridName)
    {
        ...
        //$this->redirect("this"); // JK: cause problems with ajax editation
    }

Better idea?

setPerPageValues nefunguje v jistém případě

V případě, že přidám sloupec a nastavím mu filter:

$this->addColumn('version', 'Version')
                    ->setTableName("...")
                    ->setSelectFilter(...);

a poté nastavím hodnoty:

$this->setPerPageValues(array(5, 10, 20, 50, 100));

tak se hodnoty položek na stránku neaplikují a zůstanou výchozí hodnoty proměnné. Řešením je nastavit hodnoty před přidáním sloupce, ale to někoho nemusí napadnout resp. to je podle mě chyba, která by s tím filtrem asi neměla být spojena.

DibiFluentDataSource - groupBy

Když použiji groupBy, tak je špatně zobrazen počet položek v záhlaví (grid-results). Může to někdo potvrdit?

Default value of select editable

I founded bug in Grid::render, in this part:

    if($input instanceof \Nette\Forms\Controls\SelectBox){
        $items = $this['gridForm'][$this->name]['rowForm'][$name]->getItems();
        // $items is array( "high"=21, "low"=15, "none"=0 )
        // $row[$name] is "low"
        if(in_array($row[$name], $items)){ // returns true
            // replace "low" with "none"
            $row[$name] = array_search($row[$name], $items);
        }
        // $row[$name] is now "none"
    }

https://github.com/Niftyx/NiftyGrid/blob/master/libs/NiftyGrid/Grid.php#L936

I suggest replace in_array() with !array_key_exists():

        if(!array_key_exists($row[$name], $items)){

It should resolve it to the satisfaction of all.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.