paveljanda on v1.2.1
paveljanda on master
MailLogger: set more_entropy to… Merge pull request #17 from mar… (compare)
paveljanda on master
README.md (compare)
paveljanda on master
package.json (compare)
paveljanda on v2.1.0
paveljanda on master
src/nomodule-es5-fallback.js (compare)
paveljanda on master
src/nomodule-fallback.js (compare)
paveljanda on master
src/nomodule-fallback.js (compare)
public function createComponentInvoiceDetailGrid($name) {
$data = $this->invoicesRepository->fetchInvoiceDetail($this->getParameter("id"));
$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');
$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');
};
}
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
{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 -->
<?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');
$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');
};
}
}
$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');
}
};
Cau,
https://ublaboo.org/api-router/direct-routing
nefunguje mi routovaninew 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
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?