/** * Registers the needed assets */ public function registerAssets() { $view = $this->getView(); NotificationsAsset::register($view); if (in_array($this->theme, self::$_builtinThemes)) { /** @var AssetBundle $bundleClass */ $bundleClass = __NAMESPACE__ . '\\Theme' . ucfirst($this->theme) . 'Asset'; $bundleClass::register($view); } $js = 'Notifications({' . 'url:"' . Url::to(['/notifications/notifications/poll']) . '",' . 'theme:"' . Html::encode($this->theme) . '",' . 'timeout:"' . Html::encode($this->timeout) . '",' . 'delay:"' . $this->delay . '"' . '});'; $view->registerJs($js); }
/** * 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); }