Updated order/sort by on index pages

Updated order/sort by on index pages
As using the relationship for price related sorts does not work this method does
This commit is contained in:
cp6 2022-10-20 13:57:04 +11:00
parent eda9d1b945
commit beaf9af041
6 changed files with 44 additions and 23 deletions

View File

@ -6,6 +6,7 @@ use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\Cache; use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Session;
class Domains extends Model class Domains extends Model
{ {
@ -23,7 +24,12 @@ class Domains extends Model
public static function allDomains() public static function allDomains()
{//All domains and relationships (no using joins) {//All domains and relationships (no using joins)
return Cache::remember("all_domains", now()->addMonth(1), function () { return Cache::remember("all_domains", now()->addMonth(1), function () {
return Domains::with(['provider', 'price', 'labels'])->get(); $query = Domains::with(['provider', 'price', 'labels']);
if (in_array(Session::get('sort_on'), [3, 4, 5, 6], true)) {
$options = Settings::orderByProcess(Session::get('sort_on'));
$query->orderBy(Pricing::select("pricings.$options[0]")->whereColumn("pricings.service_id", "domains.id"), $options[1]);
}
return $query->get();
}); });
} }

View File

@ -35,7 +35,12 @@ class Misc extends Model
public static function allMisc() public static function allMisc()
{//All misc and relationships (no using joins) {//All misc and relationships (no using joins)
return Cache::remember("all_misc", now()->addMonth(1), function () { return Cache::remember("all_misc", now()->addMonth(1), function () {
return Misc::with(['price'])->get(); $query = Misc::with(['price']);
if (in_array(Session::get('sort_on'), [3, 4, 5, 6], true)) {
$options = Settings::orderByProcess(Session::get('sort_on'));
$query->orderBy(Pricing::select("pricings.$options[0]")->whereColumn("pricings.service_id", "misc_services.id"), $options[1]);
}
return $query->get();
}); });
} }
@ -49,9 +54,6 @@ class Misc extends Model
public function price() public function price()
{ {
if (in_array(Session::get('sort_on'), [3, 4, 5, 6], true)) {
return $this->hasOne(Pricing::class, 'service_id', 'id')->orderBy(Settings::orderByProcess(Session::get('sort_on'))[0], Settings::orderByProcess(Session::get('sort_on'))[1]);
}
return $this->hasOne(Pricing::class, 'service_id', 'id'); return $this->hasOne(Pricing::class, 'service_id', 'id');
} }

View File

@ -36,7 +36,12 @@ class Reseller extends Model
public static function allResellerHosting() public static function allResellerHosting()
{//All reseller hosting and relationships (no using joins) {//All reseller hosting and relationships (no using joins)
return Cache::remember("all_reseller", now()->addMonth(1), function () { return Cache::remember("all_reseller", now()->addMonth(1), function () {
return Reseller::with(['location', 'provider', 'price', 'ips', 'labels'])->get(); $query = Reseller::with(['location', 'provider', 'price', 'ips', 'labels']);
if (in_array(Session::get('sort_on'), [3, 4, 5, 6], true)) {
$options = Settings::orderByProcess(Session::get('sort_on'));
$query->orderBy(Pricing::select("pricings.$options[0]")->whereColumn("pricings.service_id", "reseller_hosting.id"), $options[1]);
}
return $query->get();
}); });
} }
@ -65,9 +70,6 @@ class Reseller extends Model
public function price() public function price()
{ {
if (in_array(Session::get('sort_on'), [3, 4, 5, 6], true)) {
return $this->hasOne(Pricing::class, 'service_id', 'id')->orderBy(Settings::orderByProcess(Session::get('sort_on'))[0], Settings::orderByProcess(Session::get('sort_on'))[1]);
}
return $this->hasOne(Pricing::class, 'service_id', 'id'); return $this->hasOne(Pricing::class, 'service_id', 'id');
} }

View File

@ -36,7 +36,12 @@ class SeedBoxes extends Model
public static function allSeedboxes() public static function allSeedboxes()
{//All seedboxes and relationships (no using joins) {//All seedboxes and relationships (no using joins)
return Cache::remember("all_seedboxes", now()->addMonth(1), function () { return Cache::remember("all_seedboxes", now()->addMonth(1), function () {
return SeedBoxes::with(['location', 'provider', 'price'])->get(); $query = SeedBoxes::with(['location', 'provider', 'price']);
if (in_array(Session::get('sort_on'), [3, 4, 5, 6], true)) {
$options = Settings::orderByProcess(Session::get('sort_on'));
$query->orderBy(Pricing::select("pricings.$options[0]")->whereColumn("pricings.service_id", "seedboxes.id"), $options[1]);
}
return $query->get();
}); });
} }
@ -60,9 +65,6 @@ class SeedBoxes extends Model
public function price() public function price()
{ {
if (in_array(Session::get('sort_on'), [3, 4, 5, 6], true)) {
return $this->hasOne(Pricing::class, 'service_id', 'id')->orderBy(Settings::orderByProcess(Session::get('sort_on'))[0], Settings::orderByProcess(Session::get('sort_on'))[1]);
}
return $this->hasOne(Pricing::class, 'service_id', 'id'); return $this->hasOne(Pricing::class, 'service_id', 'id');
} }

View File

@ -43,7 +43,12 @@ class Server extends Model
public static function allServers() public static function allServers()
{//All servers and relationships (no using joins) {//All servers and relationships (no using joins)
return Cache::remember("all_servers", now()->addMonth(1), function () { return Cache::remember("all_servers", now()->addMonth(1), function () {
return Server::with(['location', 'provider', 'os', 'price', 'ips', 'yabs', 'yabs.disk_speed', 'yabs.network_speed', 'labels'])->get(); $query = Server::with(['location', 'provider', 'os', 'price', 'ips', 'yabs', 'yabs.disk_speed', 'yabs.network_speed', 'labels']);
if (in_array(Session::get('sort_on'), [3, 4, 5, 6], true)) {
$options = Settings::orderByProcess(Session::get('sort_on'));
$query->orderBy(Pricing::select("pricings.$options[0]")->whereColumn("pricings.service_id", "servers.id"), $options[1]);
}
return $query->get();
}); });
} }
@ -58,8 +63,13 @@ class Server extends Model
public static function allActiveServers() public static function allActiveServers()
{//All ACTIVE servers and relationships replaces activeServersDataIndexPage() {//All ACTIVE servers and relationships replaces activeServersDataIndexPage()
return Cache::remember("all_active_servers", now()->addMonth(1), function () { return Cache::remember("all_active_servers", now()->addMonth(1), function () {
return Server::where('active', '=', 1) $query = Server::where('active', '=', 1)
->with(['location', 'provider', 'os', 'ips', 'yabs', 'yabs.disk_speed', 'yabs.network_speed', 'labels', 'price'])->get(); ->with(['location', 'provider', 'os', 'ips', 'yabs', 'yabs.disk_speed', 'yabs.network_speed', 'labels', 'price']);
if (in_array(Session::get('sort_on'), [3, 4, 5, 6], true)) {
$options = Settings::orderByProcess(Session::get('sort_on'));
$query->orderBy(Pricing::select("pricings.$options[0]")->whereColumn("pricings.service_id", "servers.id"), $options[1]);
}
return $query->get();
}); });
} }
@ -216,9 +226,6 @@ class Server extends Model
public function price() public function price()
{ {
if (in_array(Session::get('sort_on'), [3, 4, 5, 6], true)) {
return $this->hasOne(Pricing::class, 'service_id', 'id')->orderBy(Settings::orderByProcess(Session::get('sort_on'))[0], Settings::orderByProcess(Session::get('sort_on'))[1]);
}
return $this->hasOne(Pricing::class, 'service_id', 'id'); return $this->hasOne(Pricing::class, 'service_id', 'id');
} }

View File

@ -36,7 +36,12 @@ class Shared extends Model
public static function allSharedHosting() public static function allSharedHosting()
{//All shared hosting and relationships (no using joins) {//All shared hosting and relationships (no using joins)
return Cache::remember("all_shared", now()->addMonth(1), function () { return Cache::remember("all_shared", now()->addMonth(1), function () {
return Shared::with(['location', 'provider', 'price', 'ips', 'labels'])->get(); $query = Shared::with(['location', 'provider', 'price', 'ips', 'labels']);
if (in_array(Session::get('sort_on'), [3, 4, 5, 6], true)) {
$options = Settings::orderByProcess(Session::get('sort_on'));
$query->orderBy(Pricing::select("pricings.$options[0]")->whereColumn("pricings.service_id", "shared_hosting.id"), $options[1]);
}
return $query->get();
}); });
} }
@ -65,9 +70,6 @@ class Shared extends Model
public function price() public function price()
{ {
if (in_array(Session::get('sort_on'), [3, 4, 5, 6], true)) {
return $this->hasOne(Pricing::class, 'service_id', 'id')->orderBy(Settings::orderByProcess(Session::get('sort_on'))[0], Settings::orderByProcess(Session::get('sort_on'))[1]);
}
return $this->hasOne(Pricing::class, 'service_id', 'id'); return $this->hasOne(Pricing::class, 'service_id', 'id');
} }