Overview

Namespaces

  • Budovy
  • Kdyby
    • BootstrapFormRenderer
      • DI
      • Latte
  • Nette
    • Application
      • Diagnostics
      • Responses
      • Routers
      • UI
    • Caching
      • Storages
    • ComponentModel
    • Database
      • Diagnostics
      • Drivers
      • Reflection
      • Table
    • DI
      • Config
        • Adapters
      • Diagnostics
      • Extensions
    • Diagnostics
    • Forms
      • Controls
      • Rendering
    • Http
      • Diagnostics
    • Iterators
    • Latte
      • Macros
    • Loaders
    • Localization
    • Mail
    • PhpGenerator
    • Reflection
    • Security
      • Diagnostics
    • Templating
    • Utils
  • NetteModule
  • Nextras
    • Datagrid
  • None
  • PHP
  • Tester
    • CodeCoverage
    • Runner
      • Output
  • Vodacek
    • Forms
      • Controls
  • WebLoader
    • Filter
    • Nette

Classes

  • AuthorizeScheduledTaskFactory
  • AuthorizeScheduledTaskPresenter
  • BasePresenter
  • BreakdownFactory
  • BreakdownPresenter
  • BreakdownRepository
  • BreakdownStatisticFactory
  • BreakdownStatisticPresenter
  • ContactBindingFactory
  • ContactbindingPresenter
  • ContactBindingRepository
  • ContactFactory
  • ContactPresenter
  • ContactRepository
  • DocumentFactory
  • DocumentPresenter
  • DocumentRepository
  • DocumentsDatagrid
  • DocumenttypeFactory
  • DocumenttypePresenter
  • DocumenttypeRepository
  • DownloadPresenter
  • EmailPresenter
  • ErrorPresenter
  • HomepagePresenter
  • OperationFactory
  • OperationPresenter
  • OperationRepository
  • PeriodicTaskFactory
  • PeriodicTaskPresenter
  • PeriodicTaskRealizationFactory
  • PeriodicTaskRealizationPresenter
  • PeriodicTaskRealizationRepository
  • PeriodicTaskRepository
  • PeriodicTaskStatisticFactory
  • PeriodicTaskStatisticPresenter
  • PlaceFactory
  • PlacePresenter
  • PlaceRepository
  • PriorityFactory
  • PriorityPresenter
  • PriorityRepository
  • Repository
  • RoleRepository
  • RouterFactory
  • ScheduledTaskFactory
  • ScheduledTaskPresenter
  • ScheduledTaskRealizationFactory
  • ScheduledTaskRealizationPresenter
  • ScheduledTaskRealizationRepository
  • ScheduledTaskRepository
  • ScheduledTaskStatisticFactory
  • ScheduledTaskStatisticPresenter
  • SignPresenter
  • UnitFactory
  • UnitPresenter
  • UnitRepository
  • UserFactory
  • UserManager
  • UserPresenter
  • UserRepository
  • Overview
  • Namespace
  • Class
  • Tree
  1: <?php
  2: namespace Budovy;
  3: 
  4: use Nette\Object;
  5: use Nette\Utils\Paginator;
  6: use Nette\Utils\Html;
  7: use Nette\Application\UI;
  8: use Kdyby\BootstrapFormRenderer\BootstrapRenderer;
  9: 
 10: class DocumentFactory extends Object {
 11:     /**
 12:      * @var DocumentRepository
 13:      */
 14:     private $documentRepository;
 15: 
 16:     /**
 17:      * @var DocumenttypeRepository
 18:      */
 19:     private $documenttypeRepository;
 20: 
 21:     function __construct(DocumentRepository $documentRepository, DocumenttypeRepository $documenttypeRepository) {
 22:         $this->documentRepository = $documentRepository;
 23:         $this->documenttypeRepository = $documenttypeRepository;
 24:     }
 25: 
 26:     function createDataGrid() {
 27:         $grid = new \Nextras\Datagrid\Datagrid;
 28: 
 29:         $grid->addColumn('name', 'Název')->enableSort();
 30:         $grid->addColumn('documenttype', 'Typ')->enableSort();
 31: 
 32:         $grid->setRowPrimaryKey('id');
 33: 
 34:         $grid->setDatasourceCallback(function ($filter, $order, Paginator $paginator = null) {
 35:             return $this->documentRepository->getGridSelection($filter, $order, $paginator->page, $paginator->itemsPerPage);
 36:         });
 37: 
 38:         $grid->setFilterFormFactory(function () {
 39:             $form = new \Nette\Forms\Container;
 40: 
 41:             $form->addText('name');
 42:             $form->addSelect('documenttype', 'Typ', array('' => '') + $this->documenttypeRepository->getPairData());
 43: 
 44:             $form->addSubmit('filter', 'Hledej');
 45:             $form->addSubmit('cancel', 'Zrušit');
 46: 
 47:             $pretyp = $form['filter']->getControlPrototype();
 48:             $pretyp->setName("button");
 49:             $pretyp->type = 'submit';
 50:             $pretyp->class = 'ico-btn';
 51:             $pretyp->create('i class="fa fa-search"');
 52: 
 53:             $pretyp = $form['cancel']->getControlPrototype();
 54:             $pretyp->setName("button");
 55:             $pretyp->type = 'submit';
 56:             $pretyp->class = 'ico-btn';
 57:             $pretyp->create('i class="fa fa-times-circle-o"');
 58: 
 59:             return $form;
 60:         });
 61: 
 62:         $grid->setPagination(20, function ($filter, $order) {
 63:             return $this->documentRepository->getGridCount($filter);
 64:         });
 65: 
 66:         $grid->addCellsTemplate(__DIR__ . '/../templates/Document/grid.latte');
 67: 
 68:         return $grid;
 69:     }
 70: 
 71:     function createEditForm($backlink) {
 72:         $form = new UI\Form;
 73: 
 74:         $form->setRenderer(new BootstrapRenderer());
 75: 
 76:         $form->getElementPrototype()->class = 'form-horizontal';
 77: 
 78:         $form->addText('name', 'Název:')
 79:         ->setRequired('Zadejte prosím název')
 80:         ->setAttribute('class', 'form-control');
 81: 
 82:         $form->addSelect('id_documenttype', 'Typ', $this->documenttypeRepository->getPairData());
 83: 
 84:         $form->addUpload('file', 'Soubor:');
 85: 
 86:         $form->addSubmit('saving', 'Uložit a zpět')
 87:         ->setAttribute('class', 'btn btn-primary');
 88: 
 89:         $form->addSubmit('back')
 90:         ->setAttribute('class', 'btn btn-inverse')
 91:         ->getControlPrototype()
 92:         ->setName('a')
 93:         ->href($backlink)
 94:         ->add(Html::el('i')->class('fa fa-reply'))
 95:         ->add(Html::el('span', ' Zpět'));
 96: 
 97:         return $form;
 98:     }
 99: 
100:     function createDocumentsDataGrid() {
101:         $grid = new DocumentsDatagrid;
102: 
103:         $grid->addColumn('name', 'Název')->enableSort();
104:         $grid->addColumn('lastmod', 'Datum')->enableSort();
105:         $grid->addColumn('documenttype', 'Typ')->enableSort();
106:         $grid->addColumn('assigned', 'Zařazeno');
107: 
108:         $grid->setRowPrimaryKey('id');
109: 
110:         $grid->setDatasourceCallback(function ($filter, $order, Paginator $paginator = null) use ($grid) {
111:             return $this->documentRepository->getGridSelection($filter, $order, $paginator->page, $paginator->itemsPerPage, $grid->getAssigned());
112:         });
113: 
114:         $grid->setFilterFormFactory(function () {
115:             $form = new \Nette\Forms\Container;
116: 
117:             $form->addText('name');
118:             $form->addText('lastmod')->setAttribute('data-dateinput-type', 'date');
119:             $form->addSelect('documenttype', 'Typ', array('' => '') + $this->documenttypeRepository->getPairData());
120:             $form->addSelect('assigned', 'Zařazeno', array('' => '', '1' => 'Ano', 0 => 'Ne'));
121: 
122:             $form->addSubmit('filter', 'Hledej');
123:             $form->addSubmit('cancel', 'Zrušit');
124: 
125:             $pretyp = $form['filter']->getControlPrototype();
126:             $pretyp->setName("button");
127:             $pretyp->type = 'submit';
128:             $pretyp->class = 'ico-btn';
129:             $pretyp->create('i class="fa fa-search"');
130: 
131:             $pretyp = $form['cancel']->getControlPrototype();
132:             $pretyp->setName("button");
133:             $pretyp->type = 'submit';
134:             $pretyp->class = 'ico-btn';
135:             $pretyp->create('i class="fa fa-times-circle-o"');
136: 
137:             return $form;
138:         });
139: 
140:         $grid->setPagination(20, function ($filter, $order) use ($grid) {
141:             return $this->documentRepository->getGridCount($filter, $grid->getAssigned());
142:         });
143: 
144:         $grid->addCellsTemplate(__DIR__ . '/../templates/Document/documentsgrid.latte');
145: 
146:         return $grid;
147:     }
148: }
API documentation generated by ApiGen 2.8.0