Code Monkey home page Code Monkey logo

niftygrid's Issues

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?

Unset order possibility

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

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;
    }

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?

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.

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á.

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

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.

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("*");
}

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?

Dlouhý text

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

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.