Redraw control nepřekreslí snippet
- mobcz
- Člen | 9
Zdravím,
V presenteru mám handler, do kterého vstupuje signál ze šablony
default.latte
, která je skrz {block content}
klasicky
součástí @layout.latte
. V @layout.latte
je pak
také @header.latte
a @navigation.latte
. A právě
v těchto dvou šablonách se snažím překreslit snippety. Jenže se
nepřekreslí, ani v odpovědi serveru nechodí. Ale například snippet
v layoutu se v pořádku překreslí.
Netušíte prosím někdo, čím by to mohlo být? Kód přikládám:
Presenter:
public function handleDeleteMessage($id, $set, $view, $page)
{
if ($set == 'to') {
$delete = $this->database->table('messages')->where('related', $id)->update([
'deletedTo' => 1
]);
} else if ($set == 'from') {
$delete = $this->database->table('messages')->where('related', $id)->update([
'deletedFrom' => 1
]);
}
$this->presenter->redrawControl('unreadNav'); // ma prekreslovat snippet v @navigation.latte
$this->presenter->redrawControl('unreadHeader'); // ma prekreslovat snippet v @header.latte
$this->redrawControl('alertBox'); // uspesne prekresli snippet v @layout.latte
$this->redrawControl('messagesTable'); // uspesne prekresli snippet v default.latte
}
@header.latte
<li class="dropdown list-notifications__item" n:snippet="unreadHeader">
<a md-ink-ripple="#8C8C8C" href="javascript:;" class="dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
<md-icon class="color-primary" md-svg-src="/dist/img/icons/ic_mail_24px.svg"></md-icon>
{var $countUnread = $presenter->getCountUnread()}
{if $countUnread > 0}<span class="alert-badge"></span>{/if}
<md-tooltip>
Zprávy
</md-tooltip>
</a>
<div class="dropdown-menu pull-left with-arrow panel panel-default">
<ul class="list-group" style="max-height: 400px; overflow-y: auto;">
{if $countUnread > 0}
{foreach $presenter->getUnreadMessages() as $key => $message}
{var $sender = $presenter->getUserInfo($message['from'])}
<li class="list-group-item">
<a n:href="Messages:detail id => $message['id']" class="media">
<span class="pull-left media-icon">
<img ng-src="/images/profiles/{$sender['photo']}" alt="{$sender['email']}" style="width: 40px; border-radius: 30px" class="face">
</span>
<div class="media-body">
<span class="block">{$sender['firstname']} {$sender['lastname']} Vám odeslal(a) zprávu</span>
<span class="block"><strong>{$message['subject']}</strong></span>
<span class="text-muted">{$presenter->getTimeDifference($message['system_created'])}</span>
</div>
</a>
</li>
{/foreach}
{/if}
</ul>
</div>
</li>
@navigation.latte
<li class="nav-task" n:snippet="unreadNav">
<a md-ink-ripple="#bbb" n:href="Messages:default">
<md-icon md-svg-src="/dist/img/icons/message-text.svg"></md-icon>
<span>Zprávy</span>
{var $countUnread = $presenter->getCountUnread()}
{if $countUnread > 0}<span class="badge badge-danger main-badge">{$countUnread}</span>{/if}
</a>
</li>
- David Matějka
- Moderator | 6445
to inkludovani @navigation
apod je nutne obalit snippetArea
makrem o tom, jak detailne funguji snippety, se muzes dozvedet v jedne me
prednasce
- Felix
- Nette Core | 1196
@mobcz Jeste tady hodim odkaz na repo s Webpack 4, treba se bude hodit, i jako inspirace.