mirror of
https://github.com/Kovah/LinkAce.git
synced 2025-04-21 07:22:20 +02:00
Fix several issues where categories references were not migrated to the new list model
This commit is contained in:
parent
ffe0bcd116
commit
394b03a9e5
@ -3,8 +3,9 @@
|
||||
namespace App\Http\Controllers\App;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\Category;
|
||||
use App\Models\LinkList;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\Response;
|
||||
|
||||
class BookmarkletController extends Controller
|
||||
{
|
||||
@ -12,7 +13,7 @@ class BookmarkletController extends Controller
|
||||
* Show the application dashboard.
|
||||
*
|
||||
* @param Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
* @return Response
|
||||
*/
|
||||
public function getLinkAddForm(Request $request)
|
||||
{
|
||||
@ -42,18 +43,13 @@ class BookmarkletController extends Controller
|
||||
|
||||
return view('actions.bookmarklet.create')
|
||||
->with('bookmark_url', $new_url)
|
||||
->with('bookmark_title', $new_title)
|
||||
->with('categories', Category::parentOnly()
|
||||
->byUser(auth()->user()->id)
|
||||
->orderBy('name', 'asc')
|
||||
->get()
|
||||
);
|
||||
->with('bookmark_title', $new_title);
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the application dashboard.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
* @return Response
|
||||
*/
|
||||
public function getCompleteView()
|
||||
{
|
||||
@ -63,7 +59,7 @@ class BookmarkletController extends Controller
|
||||
/**
|
||||
* Show the application dashboard.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
* @return Response
|
||||
*/
|
||||
public function getLoginForm()
|
||||
{
|
||||
|
@ -3,18 +3,18 @@
|
||||
namespace App\Http\Controllers\App;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\Category;
|
||||
use App\Models\Link;
|
||||
use App\Models\LinkList;
|
||||
use App\Models\Note;
|
||||
use App\Models\Tag;
|
||||
use Illuminate\Http\Response;
|
||||
|
||||
class DashboardController extends Controller
|
||||
{
|
||||
/**
|
||||
* Show the application dashboard.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
* @return Response
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
|
@ -5,13 +5,14 @@ namespace App\Http\Controllers\App;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\Link;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\Response;
|
||||
|
||||
class ExportController extends Controller
|
||||
{
|
||||
/**
|
||||
* Show the application dashboard.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
* @return Response
|
||||
*/
|
||||
public function getExport()
|
||||
{
|
||||
@ -22,7 +23,7 @@ class ExportController extends Controller
|
||||
* Permanently delete entries for a model from the trash
|
||||
*
|
||||
* @param Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
* @return Response
|
||||
*/
|
||||
public function doExport(Request $request)
|
||||
{
|
||||
|
@ -9,6 +9,8 @@ use App\Http\Requests\DoImportRequest;
|
||||
use App\Models\Link;
|
||||
use App\Models\Tag;
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Contracts\Filesystem\FileNotFoundException;
|
||||
use Illuminate\Http\Response;
|
||||
use Shaarli\NetscapeBookmarkParser\NetscapeBookmarkParser;
|
||||
|
||||
class ImportController extends Controller
|
||||
@ -16,7 +18,7 @@ class ImportController extends Controller
|
||||
/**
|
||||
* Show the application dashboard.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
* @return Response
|
||||
*/
|
||||
public function getImport()
|
||||
{
|
||||
@ -27,8 +29,8 @@ class ImportController extends Controller
|
||||
* Permanently delete entries for a model from the trash
|
||||
*
|
||||
* @param DoImportRequest $request
|
||||
* @return \Illuminate\Http\Response
|
||||
* @throws \Illuminate\Contracts\Filesystem\FileNotFoundException
|
||||
* @return Response
|
||||
* @throws FileNotFoundException
|
||||
*/
|
||||
public function doImport(DoImportRequest $request)
|
||||
{
|
||||
@ -58,7 +60,6 @@ class ImportController extends Controller
|
||||
|
||||
$new_link = Link::create([
|
||||
'user_id' => $user_id,
|
||||
'category_id' => null,
|
||||
'url' => $link['uri'],
|
||||
'title' => $title,
|
||||
'description' => $link['note'] ?: $link_meta['description'],
|
||||
|
@ -4,9 +4,10 @@ namespace App\Http\Controllers\App;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Requests\SearchRequest;
|
||||
use App\Models\Category;
|
||||
use App\Models\Link;
|
||||
use App\Models\Tag;
|
||||
use App\Models\LinkList;
|
||||
use Illuminate\Contracts\View\Factory;
|
||||
use Illuminate\View\View;
|
||||
|
||||
/**
|
||||
* Class SearchController
|
||||
@ -26,7 +27,7 @@ class SearchController extends Controller
|
||||
];
|
||||
|
||||
/**
|
||||
* @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
|
||||
* @return Factory|View
|
||||
*/
|
||||
public function getSearch()
|
||||
{
|
||||
@ -38,17 +39,15 @@ class SearchController extends Controller
|
||||
'search_title' => false,
|
||||
'search_description' => false,
|
||||
'private_only' => false,
|
||||
'only_category' => 0,
|
||||
'only_lists' => '',
|
||||
'only_tags' => '',
|
||||
'order_by' => $this->order_by_options[0],
|
||||
])
|
||||
->with('categories', Category::byUser(auth()->user()->id)
|
||||
->orderBy('name', 'asc')->get());
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param SearchRequest $request
|
||||
* @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
|
||||
* @return Factory|View
|
||||
*/
|
||||
public function doSearch(SearchRequest $request)
|
||||
{
|
||||
@ -79,10 +78,10 @@ class SearchController extends Controller
|
||||
$search->where('is_private', true);
|
||||
}
|
||||
|
||||
// Show by specific category only if applicable
|
||||
if ($category_id = $request->get('only_category', false)) {
|
||||
$search->whereHas('category', function ($query) use ($category_id) {
|
||||
$query->where('id', $category_id);
|
||||
// Show by specific list only if applicable
|
||||
if ($list_names = $request->get('only_lists', false)) {
|
||||
$search->whereHas('lists', function ($query) use ($list_names) {
|
||||
$query->whereIn('name', explode(',', $list_names));
|
||||
});
|
||||
}
|
||||
|
||||
@ -110,11 +109,9 @@ class SearchController extends Controller
|
||||
'search_title' => $search_title,
|
||||
'search_description' => $search_description,
|
||||
'private_only' => $private_only,
|
||||
'only_category' => $category_id,
|
||||
'only_lists' => $list_names,
|
||||
'only_tags' => $tag_names,
|
||||
'order_by' => $orderby,
|
||||
])
|
||||
->with('categories', Category::byUser(auth()->user()->id)
|
||||
->orderBy('name', 'asc')->get());
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
@ -4,8 +4,12 @@ namespace App\Http\Controllers\App;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\Setting;
|
||||
use Illuminate\Contracts\View\Factory;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Str;
|
||||
use Illuminate\View\View;
|
||||
|
||||
/**
|
||||
* Class SystemSettingsController
|
||||
@ -15,7 +19,7 @@ use Illuminate\Support\Str;
|
||||
class SystemSettingsController extends Controller
|
||||
{
|
||||
/**
|
||||
* @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
|
||||
* @return Factory|View
|
||||
*/
|
||||
public function getSystemSettings()
|
||||
{
|
||||
@ -26,7 +30,7 @@ class SystemSettingsController extends Controller
|
||||
* Syve the new system settings to the database
|
||||
*
|
||||
* @param Request $request
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
* @return RedirectResponse
|
||||
*/
|
||||
public function saveSystemSettings(Request $request)
|
||||
{
|
||||
@ -56,7 +60,7 @@ class SystemSettingsController extends Controller
|
||||
* Generate a new API token for the current user
|
||||
*
|
||||
* @param Request $request
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function generateCronToken(Request $request)
|
||||
{
|
||||
|
@ -7,14 +7,17 @@ use App\Models\Link;
|
||||
use App\Models\LinkList;
|
||||
use App\Models\Note;
|
||||
use App\Models\Tag;
|
||||
use Illuminate\Contracts\View\Factory;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\Response;
|
||||
use Illuminate\View\View;
|
||||
|
||||
class TrashController extends Controller
|
||||
{
|
||||
/**
|
||||
* Show the application dashboard.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
* @return Response
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
@ -46,8 +49,8 @@ class TrashController extends Controller
|
||||
* Permanently delete entries for a model from the trash
|
||||
*
|
||||
* @param Request $reques
|
||||
* @param $model
|
||||
* @return \Illuminate\Http\Response
|
||||
* @param string $model
|
||||
* @return Response
|
||||
*/
|
||||
public function clearTrash(Request $reques, $model)
|
||||
{
|
||||
@ -94,9 +97,9 @@ class TrashController extends Controller
|
||||
* Restore an entry from the trash
|
||||
*
|
||||
* @param Request $request
|
||||
* @param $model
|
||||
* @param $id
|
||||
* @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
|
||||
* @param string $model
|
||||
* @param string $id
|
||||
* @return Factory|View
|
||||
*/
|
||||
public function restoreEntry(Request $request, $model, $id)
|
||||
{
|
||||
|
@ -7,11 +7,15 @@ use App\Http\Controllers\Controller;
|
||||
use App\Http\Requests\UserAccountUpdateRequest;
|
||||
use App\Http\Requests\UserSettingsUpdateRequest;
|
||||
use App\Models\Setting;
|
||||
use Illuminate\Contracts\View\Factory;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Facades\Hash;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
use Illuminate\Support\Str;
|
||||
use Illuminate\View\View;
|
||||
|
||||
/**
|
||||
* Class UserSettingsController
|
||||
@ -21,7 +25,7 @@ use Illuminate\Support\Str;
|
||||
class UserSettingsController extends Controller
|
||||
{
|
||||
/**
|
||||
* @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
|
||||
* @return Factory|View
|
||||
*/
|
||||
public function getUserSettings()
|
||||
{
|
||||
@ -35,7 +39,7 @@ class UserSettingsController extends Controller
|
||||
|
||||
/**
|
||||
* @param UserAccountUpdateRequest $request
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
* @return RedirectResponse
|
||||
*/
|
||||
public function saveAccountSettings(UserAccountUpdateRequest $request)
|
||||
{
|
||||
@ -52,7 +56,7 @@ class UserSettingsController extends Controller
|
||||
|
||||
/**
|
||||
* @param UserSettingsUpdateRequest $request
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
* @return RedirectResponse
|
||||
*/
|
||||
public function saveAppSettings(UserSettingsUpdateRequest $request)
|
||||
{
|
||||
@ -90,7 +94,7 @@ class UserSettingsController extends Controller
|
||||
|
||||
/**
|
||||
* @param Request $request
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
* @return RedirectResponse
|
||||
*/
|
||||
public function changeUserPassword(Request $request)
|
||||
{
|
||||
@ -125,7 +129,7 @@ class UserSettingsController extends Controller
|
||||
* Generate a new API token for the current user
|
||||
*
|
||||
* @param Request $request
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function generateApiToken(Request $request)
|
||||
{
|
||||
|
@ -23,7 +23,6 @@ class ListController extends Controller
|
||||
abort(404);
|
||||
}
|
||||
|
||||
// Get links of the category
|
||||
$links = $list->links()->privateOnly(false);
|
||||
|
||||
if ($request->has('orderBy') && $request->has('orderDir')) {
|
||||
|
@ -23,7 +23,6 @@ class TagController extends Controller
|
||||
abort(404);
|
||||
}
|
||||
|
||||
// Get links of the category
|
||||
$links = $tag->links()->privateOnly(false);
|
||||
|
||||
if ($request->has('orderBy') && $request->has('orderDir')) {
|
||||
|
@ -2,18 +2,17 @@
|
||||
|
||||
namespace App\Http\Controllers\Models;
|
||||
|
||||
use App\Helper\LinkAce;
|
||||
use App\Helper\LinkIconMapper;
|
||||
use App\Helper\WaybackMachine;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Requests\LinkDeleteRequest;
|
||||
use App\Http\Requests\LinkStoreRequest;
|
||||
use App\Http\Requests\LinkUpdateRequest;
|
||||
use App\Models\Category;
|
||||
use App\Models\Link;
|
||||
use App\Models\Tag;
|
||||
use App\Repositories\LinkRepository;
|
||||
use Exception;
|
||||
use Illuminate\Contracts\View\Factory;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\View\View;
|
||||
|
||||
class LinkController extends Controller
|
||||
{
|
||||
@ -21,7 +20,7 @@ class LinkController extends Controller
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @param Request $request
|
||||
* @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
|
||||
* @return Factory|View
|
||||
*/
|
||||
public function index(Request $request)
|
||||
{
|
||||
@ -46,7 +45,7 @@ class LinkController extends Controller
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
|
||||
* @return Factory|View
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
@ -60,7 +59,7 @@ class LinkController extends Controller
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param LinkStoreRequest $request
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
* @return RedirectResponse
|
||||
*/
|
||||
public function store(LinkStoreRequest $request)
|
||||
{
|
||||
@ -92,8 +91,8 @@ class LinkController extends Controller
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
|
||||
* @param int $id
|
||||
* @return Factory|View
|
||||
*/
|
||||
public function show($id)
|
||||
{
|
||||
@ -114,8 +113,8 @@ class LinkController extends Controller
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
|
||||
* @param int $id
|
||||
* @return Factory|View
|
||||
*/
|
||||
public function edit($id)
|
||||
{
|
||||
@ -137,8 +136,8 @@ class LinkController extends Controller
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param LinkUpdateRequest $request
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
* @param int $id
|
||||
* @return RedirectResponse
|
||||
*/
|
||||
public function update(LinkUpdateRequest $request, $id)
|
||||
{
|
||||
@ -163,9 +162,9 @@ class LinkController extends Controller
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param LinkDeleteRequest $request
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
* @throws \Exception
|
||||
* @param int $id
|
||||
* @return RedirectResponse
|
||||
* @throws Exception
|
||||
*/
|
||||
public function destroy(LinkDeleteRequest $request, $id)
|
||||
{
|
||||
|
@ -2,7 +2,6 @@
|
||||
|
||||
namespace App\Http\Requests;
|
||||
|
||||
use App\Models\Category;
|
||||
use App\Models\LinkList;
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
use Illuminate\Http\Request;
|
||||
@ -17,14 +16,14 @@ class ListDeleteRequest extends FormRequest
|
||||
*/
|
||||
public function authorize(Request $request)
|
||||
{
|
||||
// Check if the category ID was provided
|
||||
// Check if the list ID was provided
|
||||
if (!$request->get('list_id')) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$list = LinkList::find($request->get('list_id'));
|
||||
|
||||
// Check if the category belongs to the user
|
||||
// Check if the list belongs to the user
|
||||
if ($list->user_id !== auth()->user()->id) {
|
||||
return false;
|
||||
}
|
||||
|
@ -2,7 +2,6 @@
|
||||
|
||||
namespace App\Http\Requests;
|
||||
|
||||
use App\Models\Category;
|
||||
use App\Models\LinkList;
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
use Illuminate\Http\Request;
|
||||
@ -17,14 +16,14 @@ class ListUpdateRequest extends FormRequest
|
||||
*/
|
||||
public function authorize(Request $request)
|
||||
{
|
||||
// Check if the category ID was provided
|
||||
// Check if the list ID was provided
|
||||
if (!$request->get('list_id')) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$list = LinkList::find($request->get('list_id'));
|
||||
|
||||
// Check if the category belongs to the user
|
||||
// Check if the list belongs to the user
|
||||
if ($list->user_id !== auth()->user()->id) {
|
||||
return false;
|
||||
}
|
||||
|
@ -3,9 +3,12 @@
|
||||
namespace App\Models;
|
||||
|
||||
use App\Scopes\OrderNameScope;
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Database\Eloquent\Collection;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
|
||||
/**
|
||||
@ -17,8 +20,8 @@ use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
* @property string $name
|
||||
* @property ?string $description
|
||||
* @property int $is_private
|
||||
* @property \Carbon\Carbon|null $created_at
|
||||
* @property \Carbon\Carbon|null $updated_at
|
||||
* @property Carbon|null $created_at
|
||||
* @property Carbon|null $updated_at
|
||||
* @property string|null $deleted_at
|
||||
* @property-read Collection|Link[] $links
|
||||
* @property-read User $user
|
||||
@ -70,7 +73,7 @@ class LinkList extends Model
|
||||
*/
|
||||
|
||||
/**
|
||||
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
|
||||
* @return BelongsTo
|
||||
*/
|
||||
public function user()
|
||||
{
|
||||
@ -78,10 +81,27 @@ class LinkList extends Model
|
||||
}
|
||||
|
||||
/**
|
||||
* @return \Illuminate\Database\Eloquent\Relations\BelongsToMany
|
||||
* @return BelongsToMany
|
||||
*/
|
||||
public function links()
|
||||
{
|
||||
return $this->belongsToMany('App\Models\Link', 'link_lists', 'list_id', 'link_id');
|
||||
}
|
||||
|
||||
/*
|
||||
| ========================================================================
|
||||
| METHODS
|
||||
*/
|
||||
|
||||
/**
|
||||
* Get a collection of all lists for the current user, ordered by name
|
||||
*
|
||||
* @return Builder[]|Collection
|
||||
*/
|
||||
public static function getAllForCurrentUser()
|
||||
{
|
||||
return self::byUser(auth()->id())
|
||||
->orderBy('name')
|
||||
->get();
|
||||
}
|
||||
}
|
||||
|
@ -3,7 +3,7 @@ return [
|
||||
'search' => 'Search',
|
||||
'results' => 'results',
|
||||
|
||||
'filter_by_category' => 'Filter by Category',
|
||||
'filter_by_list' => 'Filter by List(s)',
|
||||
'filter_by_tag' => 'Filter by Tag(s)',
|
||||
'query' => 'Search for...',
|
||||
'search_title' => 'Search Title',
|
||||
|
@ -62,31 +62,24 @@
|
||||
<div class="row mt-3">
|
||||
|
||||
<div class="col-md mb-2 mb-md-0">
|
||||
<label for="only_category" class="d-none" aria-hidden="true">
|
||||
@lang('search.filter_by_category')
|
||||
<label for="only_lists" class="d-none" aria-hidden="true">
|
||||
@lang('search.filter_by_list')
|
||||
</label>
|
||||
<select id="only_category" name="only_category" class="custom-select">
|
||||
<option value="0">@lang('search.filter_by_category')</option>
|
||||
@foreach($categories as $category)
|
||||
<option value="{{ $category->id }}"
|
||||
@if($query_settings['only_category'] == $category->id) selected="selected" @endif>
|
||||
{{ $category->name }}
|
||||
</option>
|
||||
@endforeach
|
||||
</select>
|
||||
<input name="only_lists" id="only_lists" type="text" class="tags-select" data-tag-search="lists"
|
||||
placeholder="@lang('search.filter_by_list')" value="{{ $query_settings['only_lists'] }}">
|
||||
</div>
|
||||
|
||||
<div class="col-md mb-2 mb-md-0">
|
||||
<label for="only_tags" class="d-none" aria-hidden="true">
|
||||
@lang('search.filter_by_tag')
|
||||
</label>
|
||||
<input name="only_tags" id="only_tags" type="text" class="tags-select"
|
||||
<input name="only_tags" id="only_tags" type="text" class="tags-select" data-tag-search="tags"
|
||||
placeholder="@lang('search.filter_by_tag')" value="{{ $query_settings['only_tags'] }}">
|
||||
</div>
|
||||
|
||||
<div class="col-md">
|
||||
<label for="order_by" class="d-none" aria-hidden="true">
|
||||
@lang('search.filter_by_tag')
|
||||
@lang('search.order_by')
|
||||
</label>
|
||||
<select id="order_by" name="order_by" class="custom-select">
|
||||
<option value="0">@lang('search.order_by')</option>
|
||||
|
Loading…
x
Reference in New Issue
Block a user