Skip to content

New Core Ext: All Trait Index #1283

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 12 commits into
base: develop
Choose a base branch
from
29 changes: 29 additions & 0 deletions app/Http/Controllers/WorldController.php
Original file line number Diff line number Diff line change
Expand Up @@ -475,6 +475,35 @@ public function getFeatureDetail($id) {
]);
}

/**
* Shows the visual trait list for all traits.
*
* @return \Illuminate\Contracts\Support\Renderable
*/
public function getKitchenSinkFeatures(Request $request) {
$categories = FeatureCategory::orderBy('sort', 'DESC')->get();
$rarities = Rarity::orderBy('sort', 'ASC')->get();

$features = count($categories) ?
$query = Feature::visible(Auth::user() ?? null)->orderByRaw('FIELD(feature_category_id,'.implode(',', $categories->pluck('id')->toArray()).')')
->orderByRaw('FIELD(rarity_id,'.implode(',', $rarities->pluck('id')->toArray()).')')
->orderBy('has_image', 'DESC')
->orderBy('name')
->get()
->groupBy(['feature_category_id', 'id']) :
$query = Feature::visible(Auth::user() ?? null)->orderByRaw('FIELD(rarity_id,'.implode(',', $rarities->pluck('id')->toArray()).')')
->orderBy('has_image', 'DESC')
->orderBy('name')
->get()
->groupBy(['feature_category_id', 'id']);

return view('world.kitchensink_features', [
'categories' => $categories->keyBy('id'),
'rarities' => $rarities->keyBy('id'),
'features' => $features,
]);
}

/**
* Shows the items page.
*
Expand Down
2 changes: 2 additions & 0 deletions config/lorekeeper/extensions.php
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,14 @@
* Species Trait Index - Mercury
* Subtype Trait Index - Speedy
* Universal Trait Index - CHERVB
* All Traits Index (Kitchen Sink Index) - Speedy
* Trait Modals addition - Moif
*/
'visual_trait_index' => [
'enable_species_index' => 0, // Enables the Species Trait Index
'enable_subtype_index' => 0, // Enables the Subtype Trait Index
'enable_universal_index' => 0, // Enables the Universal Trait Index
'enable_all_trait_index' => 0, // Enables the All Traits Index
'trait_modals' => 0, // Enables modals when you click on a trait for more info instead of linking to the traits page
],

Expand Down
2 changes: 1 addition & 1 deletion package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 4 additions & 0 deletions resources/views/pages/credits.blade.php
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,10 @@
<a href="http://wiki.lorekeeper.me/index.php?title=Extensions:Aliases_on_Userpage"><strong>Aliases on Userpage</strong></a> by <a href="https://github.com/SpeedyD">Speedy</a>
({{ config('lorekeeper.extensions.aliases_on_userpage') ? 'Enabled' : 'Disabled' }})
</p>
<p class="mb-0 col-md-4">
<a href="http://wiki.lorekeeper.me/index.php?title=Extensions:Kitchen_Sink_Index"><strong>All Trait Index</strong></a> by <a href="https://github.com/SpeedyD">Speedy</a>
({{ config('lorekeeper.extensions.visual_trait_index.enable_all_trait_index') ? 'Enabled' : 'Disabled' }})
</p>
<p class="mb-0 col-md-4">
<a href="http://wiki.lorekeeper.me/index.php?title=Extensions:Autopopulate_New_Image_Traits"><strong>Auto-populate New Image Traits</strong></a> by <a href="https://github.com/itinerare">itinerare</a>
({{ config('lorekeeper.extensions.autopopulate_image_features') ? 'Enabled' : 'Disabled' }})
Expand Down
3 changes: 3 additions & 0 deletions resources/views/world/_sidebar.blade.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,9 @@
@if (config('lorekeeper.extensions.visual_trait_index.enable_universal_index'))
<div class="sidebar-item"><a href="{{ url('world/universaltraits') }}" class="{{ set_active('world/universaltraits*') }}">Universal Trait Index</a></div>
@endif
@if (config('lorekeeper.extensions.visual_trait_index.enable_all_trait_index'))
<div class="sidebar-item"><a href="{{ url('world/kitchensink') }}" class="{{ set_active('world/kitchensink*') }}">All Traits Index</a></div>
@endif
<div class="sidebar-item"><a href="{{ url('world/character-categories') }}" class="{{ set_active('world/character-categories*') }}">Character Categories</a></div>
</li>
<li class="sidebar-section">
Expand Down
3 changes: 3 additions & 0 deletions resources/views/world/index.blade.php
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,9 @@
@if (config('lorekeeper.extensions.visual_trait_index.enable_universal_index'))
<li class="list-group-item"><a href="{{ url('world/universaltraits') }}">Universal Trait Index</a></li>
@endif
@if (config('lorekeeper.extensions.visual_trait_index.enable_all_trait_index'))
<li class="list-group-item"><a href="{{ url('world/kitchensink') }}">All Traits Index</a></li>
@endif
<li class="list-group-item"><a href="{{ url('world/character-categories') }}">Character Categories</a></li>
</ul>
</div>
Expand Down
20 changes: 20 additions & 0 deletions resources/views/world/kitchensink_features.blade.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
@extends('world.layout')

@section('title')
All Traits Index
@endsection

@section('content')
{!! breadcrumbs(['World' => 'world', 'All Traits Index' => 'world/kitchensink']) !!}
<h1>All Traits Index</h1>

<p>This is a visual index of all traits. Click a trait to view more info on it!</p>

@include('world._features_index', ['features' => $features, 'showSubtype' => true])
@endsection

@section('scripts')
@if (config('lorekeeper.extensions.visual_trait_index.trait_modals'))
@include('world._features_index_modal_js')
@endif
@endsection
1 change: 1 addition & 0 deletions routes/lorekeeper/browse.php
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,7 @@
Route::get('species/{id}/traits', 'WorldController@getSpeciesFeatures');
Route::get('subtypes/{id}/traits', 'WorldController@getSubtypeFeatures');
Route::get('universaltraits', 'WorldController@getUniversalFeatures');
Route::get('kitchensink', 'WorldController@getKitchenSinkFeatures');
Route::get('item-categories', 'WorldController@getItemCategories');
Route::get('items', 'WorldController@getItems');
Route::get('items/{id}', 'WorldController@getItem');
Expand Down