Beispiel #1
0
 public static function getList($different_id = 0)
 {
     $polls = PollModel::prepare();
     if ($different_id) {
         $polls = $polls->where(PollModel::getField('id'), '<>', $different_id);
     }
     return $polls->paginate(10);
 }
Beispiel #2
0
 public function language_created($lang_id)
 {
     $list = \PollModel::all();
     foreach ($list as $ent) {
         $item = new PollQuestionModel();
         $item->poll_id = $ent->id;
         $item->lang_id = $lang_id;
         $item->save();
     }
 }
Beispiel #3
0
 function createComponent($name)
 {
     switch ($name) {
         case 'PollTabella':
             $grid = new Tabella(PollModel::getFluent()->toDataSource(), array('sorting' => 'desc', 'order' => 'id_poll', 'id_table' => 'id_poll', 'onSubmit' => function ($values) {
                 PollModel::edit($values, $values['id_poll']);
             }, 'onDelete' => function ($id_poll) {
                 PollModel::delete($id_poll);
             }));
             $grid->addColumn("ID", "id_poll", array("width" => 30, 'editable' => true));
             $grid->addColumn("Nadpis", "title", array("width" => 50, 'editable' => true));
             $grid->addColumn("Otázka", "question", array('editable' => true));
             $grid->addColumn("Popis", "description ", array("width" => 100));
             $grid->addColumn("Od", "from_date", array("width" => 100));
             $grid->addColumn("Do", "to_date", array("width" => 100));
             $grid->addColumn("", "", array("width" => 30, 'filter' => NULL, "renderer" => function ($row) {
                 $el = NHtml::el("td");
                 $el->add(NHtml::el('a')->href(NEnvironment::getApplication()->getPresenter()->link('deletePoll!', array('id' => $row->id_poll)))->addClass('deleteIcon ajax'));
                 $el->add(NHtml::el('a')->href(NEnvironment::getApplication()->getPresenter()->link('edit', array('id' => $row->id_poll)))->addClass('editIcon'));
                 $span = NHtml::el('span');
                 $el->add($span);
                 return $el;
             }));
             $this->addComponent($grid, $name);
             break;
         case 'baseForm':
             $f = new MyForm();
             $f->addText('title', 'Názov')->addRule(NForm::FILLED, 'Názov musí byť vyplnený');
             $f->addText("question", "Otázka");
             $f->addText("description", "Popis");
             $f->addDateTimePicker("from_date", "Od")->addRule(NForm::FILLED, 'Zadajte datum a čas.');
             $f->addDateTimePicker("to_date", "Do")->addRule(NForm::FILLED, 'Zadajte datum a čas.');
             return $f;
             break;
         case 'addForm':
             $f = $this->createComponent('baseForm');
             $f->addSubmit('btn', 'Pridať');
             $f->onSuccess[] = array($this, 'handleAddPoll');
             return $f;
             break;
         case 'editPollForm':
             $f = $this->createComponent('baseForm');
             $f->addHidden('id_poll');
             $f->addSubmit('btn', 'Upraviť');
             $f->onSuccess[] = array($this, 'handleEditPoll');
             $values = PollModel::get($this->getParam('id'));
             $f->setDefaults($values);
             return $f;
             break;
         case 'AnswerTabella':
             $grid = new Tabella(PollModel::getAnswerFluent($this->getParam('id'))->toDataSource(), array('sorting' => 'asc', 'order' => 'sequence', 'id_table' => 'id_poll_answer', 'onSubmit' => function ($values) {
                 PollModel::editAnswer($values, $values['id_poll_answer']);
             }, 'onDelete' => function ($id_poll_answer) {
                 PollModel::deleteAnswer($id_poll_answer);
             }));
             $el = NHtml::el("div");
             $el->add(NHtml::el('a')->href(NEnvironment::getApplication()->getPresenter()->link('addEmptyAnswer!', array('id_poll' => $this->getPresenter()->getParam('id'))))->addClass('addIcon ajax'));
             $grid->addColumn($el, 'sequence', array('width' => 10, 'filter' => NULL, "editable" => true));
             //$grid->addColumn( "ID","id_poll_answer", array( "width" => 30,'editable'=>false,'filter'=>null ) );
             $grid->addColumn("Odpoveď", "answer", array('filter' => null, "width" => 550, 'editable' => true));
             //				$grid->addColumn( "Správna?", "correct", array(
             //
             //                    "options" => array( '0' => 'Nie', '1' => 'Áno' ),
             //                    "width" => 50,
             //                    "editable" => true,
             //					)
             //				);
             $grid->addColumn("", "", array("width" => 30, 'filter' => NULL, "renderer" => function ($row) {
                 $el = NHtml::el("td");
                 $el->add(NHtml::el('a')->href(NEnvironment::getApplication()->getPresenter()->link('deletePollAnswer!', array('id' => NEnvironment::getApplication()->getPresenter()->getParam('id'), 'id_poll_answer' => $row->id_poll_answer)))->addClass('deleteIcon ajax'));
                 $span = NHtml::el('span');
                 $el->add($span);
                 return $el;
             }));
             $this->addComponent($grid, $name);
             break;
         default:
             return parent::createComponent($name);
             break;
     }
 }