Tutorial: s AJAXem – taskList se neprekresli po zadani noveho ukolu

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
martin-army
Člen | 6
+
0
-

Začínám s nette, prošel jsem si tutoriál az dokonce. Nejak nedokazu zprovoznit to, aby po vlozeni noveho ukolu se automaticky prekreslil taskList a vymazal formular.

kod, ktery tam mam:

Task/default.latte

{block content}

<h1 n:block="title">{$list->title}</h1>

{snippet form}
    <fieldset>
        <legend>Pridat ukol</legend>

        {form taskForm class => ajax}
            <div class="task-form">
                {control $form errors}

                {label text /} {input text size => 30, autofocus => true} {label userId /} {input userId} {input create}
            </div>
        {/form}

    </fieldset>
{/snippet}

{control taskList}

{/block}

TaskPresenter.php (cast)

protected function createComponentTaskForm() {
    $userPairs = $this->userRepository->findAll()->fetchPairs('id', 'name');

    $form = new Form();
    $form->addText('text', 'Úkol:', 40, 100)
            ->addRule(Form::FILLED, 'Je nutné zadat text úkolu.');
    $form->addSelect('userId', 'Pro:', $userPairs)
            ->setPrompt('- Vyberte -')
            ->addRule(Form::FILLED, 'Je nutné vybrat, komu je úkol přiřazen.')
            ->setDefaultValue($this->getUser()->getId());
    $form->addSubmit('create', 'Vytvořit');
    $form->onSuccess[] = $this->taskFormSubmitted;

    return $form;
}

public function taskFormSubmitted(Form $form) {
    $this->taskRepository->createTask($this->list->id, $form->values->text, $form->values->userId);
    $this->flashMessage('Ukol pridan.', 'success');
    if (!$this->isAjax()) {
        $this->redirect('this');
    }
    $form->setValues(array(), TRUE);
    $this->invalidateControl('form');
    $this['taskList']->invalidateControl();
}

Pokud kliknu na nazev seznamu tasku (napr Home), tak se pak prekresli a ukol je videt.
Stejne tak nefunguje prekresleni u oznaceni „hotovo“.

Poradite, co mam spatne?
Diky.

Oli
Člen | 1215
+
0
-

Mas v taskListu taky snippet?

martin-army
Člen | 6
+
0
-

mam: TaskList.latte:

{snippet}
    <table class="tasks">
        <thead>
            <tr>
                <th class="created">&nbsp;</th>
                <th class="list" n:if="$displayList">Seznam</th>
                <th class="text">Úkol</th>
                <th class="user" n:if="$displayUser">Přiřazeno</th>
                <th class="action">&nbsp;</th>
            </tr>
        </thead>
        <tbody>
            {foreach $tasks as $task}
                <tr n:class="$iterator->isOdd() ? odd : even, $task->done ? done">
                    <td class="created">{$task->created|date:'j. n. Y'}</td>
                    <td class="list" n:if="$displayList">{$task->list->title}</td>
                    <td class="text">{$task->text}</td>
                    <td class="user" n:if="$displayUser">{$task->user->name}</td>
                    <td class="action"><a n:if="!$task->done" n:href="markDone! $task->id" class="icon tick ajax">hotovo</a></td>
                </tr>
            {/foreach}
        </tbody>
    </table>
{/snippet}