/** * Registers the needed assets */ public function registerAssets() { $view = $this->getView(); $asset = NotificationsAsset::register($view); foreach (['js' => 'registerJsFile', 'css' => 'registerCssFile'] as $type => $method) { $filename = NotificationsAsset::getFilename($this->theme, $type); if ($filename) { $view->{$method}($asset->baseUrl . '/' . $filename, ['depends' => NotificationsAsset::className()]); } } $params = ['url' => Url::to(['/notifications/notifications/poll']), 'theme' => Html::encode($this->theme), 'xhrTimeout' => Html::encode($this->xhrTimeout), 'delay' => Html::encode($this->delay), 'options' => $this->clientOptions, 'pollSeen' => !!$this->pollSeen, 'pollInterval' => Html::encode($this->pollInterval), 'counters' => $this->counters]; $js = 'Notifications(' . Json::encode($params) . ');'; $view->registerJs($js); }
/** * Registers the needed assets */ public function registerAssets() { $view = $this->getView(); $asset = NotificationsAsset::register($view); // Register the theme assets if (!is_null($this->theme)) { if (!in_array($this->theme, self::$_builtinThemes)) { throw new Exception("Unknown theme: " . $this->theme, 501); } foreach (['js' => 'registerJsFile', 'css' => 'registerCssFile'] as $type => $method) { $filename = NotificationsAsset::getFilename($this->theme, $type); if ($filename) { $view->{$method}($asset->baseUrl . '/' . $filename, ['depends' => NotificationsAsset::className()]); } } } // Register timeago i18n file if ($filename = NotificationsAsset::getTimeAgoI18n($this->timeAgoLocale)) { $view->registerJsFile($asset->baseUrl . '/' . $filename, ['depends' => NotificationsAsset::className()]); } $params = ['url' => Url::to(['/notifications/notifications/poll']), 'xhrTimeout' => Html::encode($this->xhrTimeout), 'delay' => Html::encode($this->delay), 'options' => $this->clientOptions, 'pollSeen' => !!$this->pollSeen, 'pollInterval' => Html::encode($this->pollInterval), 'counters' => $this->counters]; if ($this->theme) { $params['theme'] = Html::encode($this->theme); } if ($this->listSelector) { $params['seenUrl'] = Url::to(['/notifications/notifications/read']); $params['deleteUrl'] = Url::to(['/notifications/notifications/delete']); $params['listSelector'] = $this->listSelector; if ($this->listItemTemplate) { $params['listItemTemplate'] = $this->listItemTemplate; } if ($this->listItemBeforeRender instanceof JsExpression) { $params['listItemBeforeRender'] = $this->listItemBeforeRender; } } $js = 'Notifications(' . Json::encode($params) . ');'; $view->registerJs($js); }