/**
  * @inheritdoc
  */
 public function disableContentContainer(ContentContainerActiveRecord $container)
 {
     parent::disableContentContainer($container);
     foreach (CalendarEntry::find()->contentContainer($container)->all() as $entry) {
         $entry->delete();
     }
     foreach (CalendarExternalSource::find()->contentContainer($container)->all() as $entry) {
         $entry->delete();
     }
 }
 public static function onHourlyCron($event)
 {
     $controller = $event->sender;
     $controller->stdout("Sync external events... ");
     $sources = CalendarExternalSource::find()->orderBy('last_update')->limit(20);
     foreach ($sources->each() as $source) {
         $source->updateEvents();
     }
     $controller->stdout('done.' . PHP_EOL, \yii\helpers\Console::FG_GREEN);
 }
 /**
  * Action that deletes a given external source.<br />
  * The request has to provide the id of the external source to delete in the url parameter 'external_source_id'. 
  * @throws HttpException 404, if the logged in User misses the rights to access this view.
  */
 public function actionDelete()
 {
     $external_source_id = (int) Yii::$app->request->get('external_source_id');
     $external_source = CalendarExternalSource::find()->contentContainer($this->contentContainer)->where(array('calendar_external_source.id' => $external_source_id))->one();
     if ($external_source == null) {
         throw new HttpException(404, Yii::t('CalendarModule.base', 'Requested external source could not be found.'));
     }
     $external_source->delete();
     $this->redirect($this->contentContainer->createUrl('/calendar/external-source/index'));
 }
 public function actionIndex()
 {
     // Restore users last selectors
     $lastSelectorsJson = Yii::$app->user->getIdentity()->getSetting('lastSelectors', 'calendar');
     if ($lastSelectorsJson != "") {
         $selectors = Json::decode($lastSelectorsJson);
     } else {
         $selectors = array(ActiveQueryContent::USER_RELATED_SCOPE_OWN, ActiveQueryContent::USER_RELATED_SCOPE_SPACES);
     }
     // Restore users last used filter
     $lastFilterJson = Yii::$app->user->getIdentity()->getSetting('lastFilters', 'calendar');
     if ($lastFilterJson != "") {
         $filters = Json::decode($lastFilterJson);
     } else {
         $filters = array();
     }
     $spaces = Membership::GetUserSpaces();
     $external_sources = CalendarExternalSource::find()->contentContainer(Yii::$app->user->getIdentity())->all();
     return $this->render('index', array('selectors' => $selectors, 'filters' => $filters, 'spaces' => $spaces, 'external_sources' => $external_sources, 'user' => Yii::$app->user->getIdentity()));
 }
    <?php 
}
?>
    <div class="panel-body">

        <?php 
$form = CActiveForm::begin();
$form->errorSummary($external_source);
?>

        <div class="form-group">
            <?php 
echo $form->labelEx($external_source, 'source_type');
?>
            <?php 
echo $form->dropdownList($external_source, 'source_type', CalendarExternalSource::getSourceTypes(), array('class' => 'form-control', 'rows' => '5'));
?>
        </div>

        <div class="form-group">
            <?php 
echo $form->labelEx($external_source, 'name');
?>
            <?php 
echo $form->textField($external_source, 'name', array('class' => 'form-control'));
?>
            <?php 
echo $form->error($external_source, 'name');
?>
        </div>