FEATURE: Add language into widgets

This commit is contained in:
Michal Kváček
2016-07-22 15:30:03 +02:00
parent f90aee4108
commit bce98e6eaf
7 changed files with 54 additions and 3 deletions
@@ -11,6 +11,7 @@ use App\Models\WidgetArea;
use App\Models\WidgetInWidgetArea;
use Illuminate\Database\QueryException;
use Illuminate\Support\Facades\Event;
use Mcamara\LaravelLocalization\Facades\LaravelLocalization;
class AssociateWidget extends Controller
{
@@ -18,7 +19,8 @@ class AssociateWidget extends Controller
{
$area = WidgetArea::findOrFail($widgetArea);
$associatedWidgetIds = WidgetInWidgetArea::getWidgetIdsFromArea($area->id);
$widgets = Widget::paginate(25);
$widgets = Widget::where('language', LaravelLocalization::getCurrentLocale())
->paginate(25);
return view('admin.widgets.association', [
'widgetArea' => $area,
@@ -2,12 +2,14 @@
namespace App\Http\Controllers\Admin;
use App\Models\Widget;
use Mcamara\LaravelLocalization\Facades\LaravelLocalization;
class WidgetsOverview extends Controller
{
public function getOverview()
{
$widgets = Widget::paginate(25);
$widgets = Widget::where('language', LaravelLocalization::getCurrentLocale())
->paginate(25);
return view('admin.widgets.overview', ['widgets' => $widgets]);
}
+2
View File
@@ -4,6 +4,7 @@ namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\Event;
use Mcamara\LaravelLocalization\Facades\LaravelLocalization;
/**
* Class Widget
@@ -39,6 +40,7 @@ class Widget extends Model
// create new widget
$widget = new Widget();
$widget->widget_type_handler = $widgetType->handler;
$widget->language = LaravelLocalization::getCurrentLocale();
$widget->user_id = \Auth::user()->id;
$widget->name = $data->name;
+2
View File
@@ -4,6 +4,7 @@ namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\DB;
use Mcamara\LaravelLocalization\Facades\LaravelLocalization;
/**
* Class WidgetArea
@@ -25,6 +26,7 @@ class WidgetArea extends Model
->where('code', $uniqueCode)
->join('widget_in_widget_area', 'widget_in_widget_area.widget_area_id', '=', 'widget_areas.id')
->join('widgets', 'widget_in_widget_area.widget_id', '=', 'widgets.id')
->where('language', LaravelLocalization::getCurrentLocale())
->orderBy('widget_in_widget_area.position');
}
}
+2
View File
@@ -8,12 +8,14 @@ use App\Widgets\Contracts\WidgetRenderer;
use Illuminate\Support\Facades\App;
use Illuminate\Support\Facades\Request;
use Illuminate\Support\Facades\Route;
use Mcamara\LaravelLocalization\Facades\LaravelLocalization;
class Menu implements WidgetRenderer
{
protected static function selectContentPages($ids)
{
$pages = Content::where('status', '!=', Content::STATUS_DELETED)
->where('language', LaravelLocalization::getCurrentLocale())
->whereIn('id', $ids)
->get();
$used = [];
@@ -0,0 +1,41 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class AddLanguageIntoWidgets extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('widgets', function (Blueprint $table) {
$table->string('language', 8)
->after('widget_type_handler')
->default(\App::getLocale());
$table->foreign('language')
->references('code')
->on('languages')
->onDelete('cascade')
->onUpdate('cascade');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('widgets', function (Blueprint $table) {
$table->dropForeign('widgets_language_foreign');
$table->dropColumn('language');
});
}
}
@@ -22,7 +22,7 @@
</div>
@endif
@if (!empty($widgets))
@if (count($widgets))
<table class="full-width">
<tr>
<th>@lang('admin/widgets.widgetType')</th>