コード例 #1
0
 public function getIndex()
 {
     Auth::getUser()->hasPermissionOr401(Config::get("permissions.mediaItems"), 0);
     $view = View::make('home.admin.media.index');
     $tableData = array();
     $pageNo = FormHelpers::getPageNo();
     $searchTerm = FormHelpers::getValue("search", "", false, true);
     // get shared lock on records so that they can't be deleted before query runs to get specific range
     // (this doesn't prevent new ones getting added but that doesn't really matter too much)
     $noMediaItems = MediaItem::search($searchTerm)->sharedLock()->count();
     $noPages = FormHelpers::getNoPages($noMediaItems);
     if ($pageNo > 0 && FormHelpers::getPageStartIndex() > $noMediaItems - 1) {
         App::abort(404);
         return;
     }
     $mediaItems = MediaItem::with("playlists", "liveStreamItem", "liveStreamItem.liveStream", "liveStreamItem.stateDefinition", "videoItem", "videoItem.sourceFile")->search($searchTerm)->usePagination()->orderBy("created_at", "desc")->orderBy("name", "asc")->orderBy("description", "asc")->sharedLock()->get();
     foreach ($mediaItems as $a) {
         $enabled = (bool) $a->enabled;
         $enabledStr = $enabled ? "Yes" : "No";
         $hasVod = !is_null($a->videoItem);
         $vodEnabled = $hasVod ? (bool) $a->videoItem->enabled : null;
         $hasStream = !is_null($a->liveStreamItem);
         $streamEnabled = $hasStream ? (bool) $a->liveStreamItem->enabled : null;
         $hasVodStr = $hasVod ? "Yes (" : "No";
         if ($hasVod) {
             $hasVodStr .= $vodEnabled ? "Enabled" : "Disabled";
             $hasVodStr .= ")";
             if ($a->videoItem->getIsLive()) {
                 $hasVodStr .= " (LIVE!)";
             }
         }
         $streamState = null;
         $hasStreamStr = $hasStream ? "Yes (" : "No";
         if ($hasStream) {
             $hasStreamStr .= $streamEnabled ? "Enabled" : "Disabled";
             $hasStreamStr .= ")";
             if ($a->liveStreamItem->getIsAccessible() && intval($a->liveStreamItem->getResolvedStateDefinition()->id) === 2) {
                 $hasStreamStr .= " (LIVE!)";
             }
             $streamState = $a->liveStreamItem->stateDefinition->name;
         } else {
             $streamState = "[N/A]";
         }
         $playlists = $a->playlists;
         $names = array();
         foreach ($playlists as $playlist) {
             $names[] = $playlist->generateName();
         }
         $playlistsStr = count($names) > 0 ? '"' . implode('", "', $names) . '"' : "[Not In A Playlist]";
         $viewUri = null;
         if ($a->getIsAccessible()) {
             $defaultPlaylist = $a->getDefaultPlaylist();
             if (!is_null($defaultPlaylist)) {
                 $viewUri = $defaultPlaylist->getMediaItemUri($a);
             }
         }
         $tableData[] = array("enabled" => $enabledStr, "enabledCss" => $enabled ? "text-success" : "text-danger", "name" => $a->name, "description" => !is_null($a->description) ? $a->description : "[No Description]", "playlists" => $playlistsStr, "hasVod" => $hasVodStr, "hasVodCss" => $vodEnabled ? "text-success" : "text-danger", "hasStream" => $hasStreamStr, "hasStreamCss" => $streamEnabled ? "text-success" : "text-danger", "streamState" => $streamState, "timeCreated" => $a->created_at->toDateTimeString(), "viewUri" => $viewUri, "editUri" => Config::get("custom.admin_base_url") . "/media/edit/" . $a->id, "id" => $a->id);
     }
     $view->tableData = $tableData;
     $view->editEnabled = Auth::getUser()->hasPermission(Config::get("permissions.mediaItems"), 1);
     $view->pageNo = $pageNo;
     $view->noPages = $noPages;
     $view->createUri = Config::get("custom.admin_base_url") . "/media/edit";
     $view->deleteUri = Config::get("custom.admin_base_url") . "/media/delete";
     $this->setContent($view, "media", "media");
 }