Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • Nov 30 2021 08:29
    Lumeriol opened #17
  • Feb 15 2021 09:45

    paveljanda on v1.2.1

    (compare)

  • Feb 15 2021 09:45

    paveljanda on master

    MailLogger: set more_entropy to… Merge pull request #17 from mar… (compare)

  • Feb 15 2021 09:45
    paveljanda closed #17
  • Feb 15 2021 09:44
    paveljanda commented #17
  • Feb 15 2021 08:38
    martenb synchronize #17
  • Feb 15 2021 08:36
    martenb synchronize #17
  • Feb 15 2021 08:34
    martenb opened #17
  • May 29 2020 11:29
    tombit-sro opened #16
  • May 14 2020 06:51
    petrgala closed #10
  • May 14 2020 06:50
    petrgala opened #10
  • Apr 21 2020 19:19
    paveljanda closed #16
  • Apr 21 2020 19:19
    paveljanda commented #16
  • Apr 21 2020 19:19

    paveljanda on master

    README.md (compare)

  • Apr 21 2020 19:10

    paveljanda on master

    package.json (compare)

  • Apr 21 2020 19:09

    paveljanda on v2.1.0

    (compare)

  • Apr 21 2020 12:55

    paveljanda on master

    src/nomodule-es5-fallback.js (compare)

  • Apr 21 2020 12:47

    paveljanda on master

    src/nomodule-fallback.js (compare)

  • Apr 21 2020 12:16
    paveljanda commented #16
  • Apr 21 2020 11:10

    paveljanda on master

    src/nomodule-fallback.js (compare)

David Skála
@Griston2524_twitter
a co dělá fetchInvoiceDetail
Petr Parolek
@petrparolek
vrátí entitu:
array (1)
0 => App\Model\Entities\InvoiceItem #683b
title protected => "IT" (82)
invoice protected => Kdyby\GeneratedProxy\__CG__\App\Model\Entities\Invoice #d208
quantity protected => "1.00" (4)
unit protected => "ks" (2)
unitPrice protected => "200.00" (6)
price protected => NULL
id private => 6
David Skála
@Griston2524_twitter
když si dáš na konec fuknce createComponentInvoiceDetailGrid exit tak se stane co? přesměruje Tě to ?
Petr Parolek
@petrparolek
nepřesměruje mě to
David Skála
@Griston2524_twitter
tak není problém v gridu
Petr Parolek
@petrparolek
a nezobrazí se
David Skála
@Griston2524_twitter
to je pochopitlené že se nezobrazí, jelikož se ukončí běh aplikace před vykreslením. Odkud voláš createComponentInvoiceDetailGrid... ze šablony že? pošli sem šablonu nebo do SZ
Petr Parolek
@petrparolek
{block content}
<div class="row">
                <div class="col-lg-12">
                    <h1 class="page-header">Faktura č. {$invoice->no}</h1>
                </div>
                <!-- /.col-lg-12 -->
            </div>
            <!-- /.row -->
            <div class="row">
                <div class="col-lg-12">
                    <div class="panel panel-default">
                        <div class="panel-heading">
                            Detail
                        </div>
                        <!-- /.panel-heading -->
                        <div class="panel-body">
                            {if $invoice->type == "issued"}
                                {var $type = "Odběratel"}
                            {elseif $invoice->type == "accepted"}
                                {var $type = "Dodavatel"}
                            {/if}
                            <p><strong>{$type}:</strong></p>
                            <p>{$invoice->subject}</p>
                            <p><strong>Datum vystavení:</strong></p>
                            <p>{$invoice->issuedDate|date:'j. n. Y'}</p>
                            <p><strong>Datum splatnosti:</strong></p>
                            <p>{$invoice->dueDate|date:'j. n. Y'}</p>
                            <p><strong>Datum zaplacení:</strong></p>
                            <p>{$invoice->paymentDate|date:'j. n. Y'}</p>
                            <p><strong>Celková částka::</strong></p>
                            <p>{$invoice->price} Kč</p> 

                            <a n:href="Invoice:edit $invoice->id" class="btn btn-primary">Upravit</a>
                        </div>
                        <!-- /.panel-body -->
                    </div>
                </div>
                <!-- /.col-lg-6 -->
                {control invoiceDetailGrid}
            </div>
            <!-- /.row -->
David Skála
@Griston2524_twitter
a to se nevypíše ani ty data předgridem?
Petr Parolek
@petrparolek
vypíšou
poslu cely presenter
<?php

namespace App\Presenters;

use Nette;
use Nette\Application\UI;
use Ublaboo\DataGrid\DataGrid;

class InvoicePresenter extends BasePresenter
{
    /**
    * @var \App\Components\IIssuedInvoiceGridControlFactory
    * @inject
    */
    public $issuedInvoiceGridControlFactory;

    /**
    * @var \App\Components\IAcceptedInvoiceGridControlFactory
    * @inject
    */
    public $acceptedInvoiceGridControlFactory;


    public function createComponentIssuedInvoiceControl()
    {
        return $this->issuedInvoiceGridControlFactory->create(10);
    }

    public function createComponentAcceptedInvoiceControl()
    {
        return $this->acceptedInvoiceGridControlFactory->create(10);
    }

    public function renderShowDetail($id) {
        $invoice = $this->invoicesRepository->getInvoice($id);

        if (!$invoice) {
            throw new \Nette\Application\BadRequestException(404);
        }

        $this->template->invoice = $invoice;
    }

    public function renderEdit($id) {
        $this->template->id = $id;
    }

    protected function createComponentEditInvoiceForm()
    {
        $invoice = $this->invoicesRepository->getInvoiceArray($this->getParameter("id"));

        if (!$invoice) {
            throw new \Nette\Application\BadRequestException(404);
        }

        $form = new UI\Form;

        $form->addText("subject","Dodavatel")->setDefaultValue($invoice['subject']);
        $form->addText("price","Cena")->setDefaultValue($invoice['price']);
        $form->addText("issuedDate","Datum vystavení")
                ->setRequired("Datum je povinný údaj!")
                ->setDefaultValue($invoice['issuedDate']
                ->format('Y-m-d'))
                ->setAttribute("class", "datepicker")
                ->addRule($form::PATTERN, "Datum musí být ve formátu dd.mm.rrrr", "(0[1-9]|[12][0-9]|3[01])\.(0[1-9]|1[012])\.(19|20)\d\d");
        $form->addText("dueDate","Datum splatnosti")
                ->setRequired("Datum je povinný údaj!")
                ->setDefaultValue($invoice['dueDate']
                ->format('Y-m-d'))
                ->setAttribute("class", "datepicker")
                ->addRule($form::PATTERN, "Datum musí být ve formátu dd.mm.rrrr", "(0[1-9]|[12][0-9]|3[01])\.(0[1-9]|1[012])\.(19|20)\d\d");

        $form->addHidden("invoice_id", $this->getParameter("id"));

        $form->addSubmit('login', 'Upravit');

        $form->onSuccess[] = [$this, 'editInvoiceFormSucceeded'];
        return $form;
    }

    // volá se po úspěšném odeslání formuláře
    public function editInvoiceFormSucceeded(UI\Form $form, $values)
    {
        \Tracy\Debugger::barDump($values);
        $this->invoicesRepository->updateInvoice($values);
        $this->flashMessage('Úprava byla úspěšně uložena');
        //$this->redirect('Homepage:');
    }


    public function createComponentInvoiceDetailGrid($name) {
        $data = $this->invoicesRepository->fetchInvoiceDetail($this->getParameter("id"));
        \Tracy\Debugger::barDump($data);
        $grid = new DataGrid($this, $name);

        $grid->setDataSource($data);

        $grid->addColumnNumber('id', 'Id');

        $grid->addColumnText('title', 'Název položky');

        $grid->addColumnNumber('quantity', 'Počet');

        $grid->addColumnText('unit', 'Jednotka');

        $currency = ['Kč'];

        $grid->addColumnNumber('unitPrice', 'Cena za jednotku')
            ->setRenderer(function ($row) use ($currency) {
                return $row->unitPrice . ' ' . $currency[0];
            });

        $grid->addColumnNumber('price', 'Cena celkem')
            ->setRenderer(function ($row) use ($currency) {
                return $row->price . ' ' . $currency[0];
            });

        $grid->addInlineAdd()
            ->setPositionTop()
            ->onControlAdd[] = function($container) {
        $container->addText('id', '')->setAttribute('readonly');
David Skála
@Griston2524_twitter
dej si pod control invoice ... {debugbreak} to zastaví běh po vykreslení grida
Petr Parolek
@petrparolek
$container->addText('title', '');
        $container->addText('quantit', '');
        $container->addText('unit', '');
                $container->addText('unitPrice', '');
                $container->addText('price', '');
            };

        $p = $this;

        $grid->getInlineAdd()->onSubmit[] = function($values) use ($p) {
                /**
                 * Save new values
                 */
                $v = '';
                foreach($values as $key=>$value) {
                    $v.="$key: $value, ";
                }
                $v = trim($v,', ');

                $p->flashMessage("Record with values [$v] was added! (not really)", 'success');

                $p->redrawControl('flashes');
        };
    }
}
ok
nic mi to neyastavilo
aha, to zastavi kdyz bezi xdebug
David Skála
@Griston2524_twitter
tak problém si myslím nebude v gridu ale někde jinde...
Petr Parolek
@petrparolek
a kde?
David Skála
@Griston2524_twitter
si to postupně odkrokuj pomocí exit například. Jakmile Tě to přesměruje, tak bylo špatně něco před
Petr Parolek
@petrparolek
díky
Petr Parolek
@petrparolek
ahoj
jak mám překreslit datagrid po vložení položky prosím?
Petr Parolek
@petrparolek
$grid->getInlineAdd()->onSubmit[] = function($values) use ($p) {
            /**
             * Save new values
             */
            $values->invoiceId = (int)$this->getParameter("id");

            $this->invoicesRepository->insertInvoiceItem($values);
            $p->flashMessage("Položka byla uložena", 'success');

            if ($this->isAjax()) {
                $p->redrawControl('flashes');
                $p->redrawControl('grid');
            }
            else {
        $this->redirect('this');
            }
        };
David Skála
@Griston2524_twitter
@petrparolek už jsi to zjistil nebo stále pátráš?
Petr Parolek
@petrparolek
ahoj, mám takový problém s znovupoužití komponenty s ublaboo datagrid.
    public function render($pagination)
    {
        $this->template->render(__DIR__ . '/invoiceControl.latte');
    }
hlasi mi Warning
Missing argument 1 for App\Components\AcceptedInvoiceControl::render(), called in /vendor/nette/application/src/Bridges/ApplicationLatte/SnippetBridge.php on line 85 and defined
Poradil by mi nekdo prosim?
Vladimír Hůla
@xhulav
@petrparolek Máš to tam přímo napsaný. Chybí ti tam argument $pagination, tj. pokud ho potřebuješ, tak ho tam pošli ze šablony
{control myComponent $pagination} nebo ho vymaž z metody render - není tam nikde použitý.
jasir
@jasir
Zdravím pánové, setkal jste se někdo ve firefoxu s tímto? Prakticky každý click hodí error. Zde můj návrh jasir/datagrid@6c239f5
ublaboo/datagrid#497
Petr Parolek
@petrparolek
ahoj @paveljanda je prosím v datagidu funkce, po dvojkliku na řádek se zobrazí inline editace?
Pavel Janda
@paveljanda
@petrparolek Malá inline editace se zorbazí po jednom kliknutí, velká po kliknutí na tlačítko editovat. Nevím, o jaké editaci mluvíš. Pokud o velké, napiš si JS handler, který triggeruje ten submit button..
Petr Parolek
@petrparolek
díky
Radek Palát
@hurycz

Cau,
https://ublaboo.org/api-router/direct-routing

nefunguje mi routovani
new ApiRoute('api/dashboard/stats',...)

musel bych zapsat new ApiRoute('/cela_cesta_k_projektu/api/dashboard/stats',...)

delam neco spatne, nebo je to chyba ApiRouteru? a pocita se JEN s vhostama...
diky

Zuzana Kreizlova
@chikeet
Ahoj, dá se nějak v datagridu přidat podmíněně akce? Jde mi o to, že některé entity lze smazat a jiné ne, a chci uživateli zobrazit tlačítko na smazání jen tam, kde to jde. Nějak nemůžu zjistit, jak na to.
David Skála
@Griston2524_twitter
@chikeet tohle by mělo pomoct :)
$grid->allowRowsAction('delete', function($item) {
    return $item->id != 3;
});
Zuzana Kreizlova
@chikeet

Díky moc, funguje!

Ještě řeším jednu podobnou věc - chci přidat akci, která odkazuje na navázanou entitu. Ale nevím, jak jí předat správně id té entity - potřebovala bych se dostat k aktuální entitě a nějak to z ní vytáhnout, třeba místo parametrů předat callback, který parametry vrátí.

Nějak takhle:

$this->addAction('placeDetail', "app.dial.detailBtn", function(Rental $item){
                return ['id' => $item->place->id];
            })
            ->setIcon('search')
            ->setClass('btn btn-xs btn-primary');

Jde to nějak provést? Nebo se tam musí natvrdo poskládat html?

David Skála
@Griston2524_twitter
@chikeet zkus ->setDataAttribute($key, $value) případně to lze obejít přes
->setRenderer(function ($row) {
  $href = \Nette\Utils\Html::el('a', [
    'class' => 'btn btn-xs btn-primary glyphicon glyphicon-search'
    ])->href($this->presenter->link('xy', []))
    ->setAttribute('title', 'xy');
  return $href;
});
xpackal5
@xpackal5
Hi your webpage https://ublaboo.org/datagrid/ cause Server Error
Pavel Janda
@paveljanda
Fixed. Thanks for the report though.
pzdesign
@pzdesign
Zdravím. mohu se optat ma nekdo zkusenosti s pridanim DataSource pro ElasticSearch? je to narocne? popripade nejaky strucny navod o co jde. dekuji moc
Pavel Janda
@paveljanda
@pzdesign Aoj. Myslím, že někdo již něco takového dělal, nic však oficiálně pod ublaboo. Já sám jsem to zatím nepsal. Ale pokud něco napíšeš, určitě bychom se na to mohli potom kouknout a přidat to do oficiálního balíčku. : )
David Skála
@Griston2524_twitter

Ahoj, začal jsem používat doctrine a když chci použít doctrine i pro ublaboo, tak si říkám jestli na to jdu správně. Tohle je ze stránek $grid->setDataSource($exampleRepository->createQueryBuilder('er')); a já musím mít pro entitu er nastaveno getName, getId, atd nebo je mít jako public.

Nelíbí se mi na to, že bych musel všechno mít public nebo pro všechno gety. Pro settery používám např saveArticle($name, $author, $pubDate, ...), takže obyčejný setXy nepotřebuji. A moje otázka je, zda-li uvažuji správně, že bych musel mít pro všechno gety nebo jestli to jde jinak bez nich? Momentálně místo toto mám $nette->db->table('x') a v případné inline editaci použiji facadeArticle

mchromic
@mchromic
Ahoj, narazil jsem asi na chybu. Tree view sort při přesunu children do parent a naopak je zdvojený Ajax. Je to vidět i na demu. Předem díky.
Pavel Janda
@paveljanda
@Griston2524_twitter No nějak se k tomu dostat musíš... Doctrine entita je třída jako každá jiná. Být tebou, použijí gettery
@mchromic Mrknu
David Skála
@Griston2524_twitter
@paveljanda děkuji za upřesnění, myslel jsem si to, ale nebyl jsem si tím jist, jestli tam není něco na pozadí. Gettry bych použil určitě a na settry lze použít facade kde je např saveGridRow či saveArticle($id, $name, $author, $pubDate, ...)
Pavel Janda
@paveljanda
@mchromic Hmm. To se děje v tom jQuery UI Sortable. Bohužel zatím nevím, jak to fixnout. Ničemu to nevadí, ten předchozí event se zruší, ale hezké to samozřejmě není. Dokázal bys to fixnout?
mchromic
@mchromic
@paveljanda Nejsem zrovna expert. Trápil jsem se s tím dlouho než jsem přišel na to že ten signál se provede občas dvakrát.
Pavel Janda
@paveljanda
@mchromic On se neprovede dvakrát, ten první se zruší. Ale mělo by se tomu samozřejmě předejít. Taky nejsem expert na jquery sortable ui. Zkus někoho najít, ať pošle PR. :)