/**
  * 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);
 }