public function reorder() { $this->addJs('/plugins/cosmicradiotv/podcast/assets/javascript/jquery.sortable.min.js'); $this->addJs('/plugins/cosmicradiotv/podcast/assets/javascript/release_type_sort.js'); $this->addCss('/plugins/cosmicradiotv/podcast/assets/stylesheet/release_type_sort.css'); $this->pageTitle = e(trans('cosmicradiotv.podcast::lang.release_type.reorder')); $this->vars['records'] = ReleaseType::query()->orderBy('sort_order', 'asc')->get(); }
/** * Set components state based on parameters * * @throws ModelNotFoundException */ public function setState() { $this->show = $show = Show::query()->where('slug', $this->property('showSlug'))->firstOrFail(); $this->releaseType = $releaseType = ReleaseType::query()->where('slug', $this->property('releaseTypeSlug'))->firstOrFail(); $this->episodes = $this->show->episodes()->with(['releases' => function (Relation $query) use($releaseType) { /** @var Relation|Builder $query */ $query->where('release_type_id', $releaseType->id); }])->where('published', true)->whereHas('releases', function (Builder $query) use($releaseType) { $query->where('release_type_id', $releaseType->id); })->orderBy('release', 'desc')->take(intval($this->property('itemLimit')))->get(); $this->episodes->map(function (Episode $episode) use($show) { $episode->setRelation('show', $show); }); }