diff --git a/app/Http/Controllers/Api/CategoriesController.php b/app/Http/Controllers/Api/CategoriesController.php
index 046b29b207..4be6eb4ed1 100644
--- a/app/Http/Controllers/Api/CategoriesController.php
+++ b/app/Http/Controllers/Api/CategoriesController.php
@@ -6,7 +6,7 @@ use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Helpers\Helper;
use App\Models\Category;
-use App\Http\Transformers\DatatablesTransformer;
+use App\Http\Transformers\CategoriesTransformer;
class CategoriesController extends Controller
{
@@ -37,7 +37,7 @@ class CategoriesController extends Controller
$total = $categories->count();
$categories = $categories->skip($offset)->take($limit)->get();
- return (new DatatablesTransformer)->transformDatatables($categories, $total);
+ return (new CategoriesTransformer)->transformCategories($categories, $total);
}
diff --git a/app/Http/Controllers/CategoriesController.php b/app/Http/Controllers/CategoriesController.php
index d05d4e9478..f13520353b 100755
--- a/app/Http/Controllers/CategoriesController.php
+++ b/app/Http/Controllers/CategoriesController.php
@@ -187,12 +187,26 @@ class CategoriesController extends Controller
* @since [v1.8]
* @return \Illuminate\Contracts\View\View
*/
- public function show($categoryId = null)
+ public function show($id)
{
- $category = Category::find($categoryId);
+ $category = Category::find($id);
+
if (isset($category->id)) {
- return View::make('categories/view', compact('category'));
+
+ if ($category->category_type=='asset') {
+ $category_type = 'hardware';
+ $category_type_route = 'assets';
+ } elseif ($category->category_type=='accessory') {
+ $category_type = 'accessories';
+ $category_type_route = 'accessories';
+ } else {
+ $category_type = $category->category_type;
+ $category_type_route = $category->category_type.'s';
+ }
+ return View::make('categories/view', compact('category'))
+ ->with('category_type',$category_type)
+ ->with('category_type_route',$category_type_route);
}
// Prepare the error message
diff --git a/app/Http/Transformers/CategoriesTransformer.php b/app/Http/Transformers/CategoriesTransformer.php
new file mode 100644
index 0000000000..f736a9aa36
--- /dev/null
+++ b/app/Http/Transformers/CategoriesTransformer.php
@@ -0,0 +1,51 @@
+transformDatatables($array, $total);
+ }
+
+ public function transformCategory (Category $category = null)
+ {
+ if ($category) {
+
+ $array = [
+ 'id' => e($category->id),
+ 'name' => e($category->name),
+ 'type' => e($category->category_type),
+ 'use_default_eula' => ($category->use_default_eula =='1') ? true : false,
+ 'require_acceptance' => ($category->require_acceptance =='1') ? true : false,
+ 'assets_count' => $category->assets_count,
+ 'accessories_count' => $category->accessories_count,
+ 'consumables_count' => $category->consumables_count,
+ 'components_count' => $category->components_count,
+ ];
+
+ $permissions_array['available_actions'] = [
+ 'update' => Gate::allows('admin') ? true : false,
+ 'delete' => Gate::allows('admin') ? true : false,
+ ];
+
+ $array += $permissions_array;
+
+ return $array;
+ }
+
+
+ }
+
+
+
+}
diff --git a/app/Presenters/CategoryPresenter.php b/app/Presenters/CategoryPresenter.php
index fa93d525e8..0d7a7d46b6 100644
--- a/app/Presenters/CategoryPresenter.php
+++ b/app/Presenters/CategoryPresenter.php
@@ -11,6 +11,85 @@ use App\Helpers\Helper;
class CategoryPresenter extends Presenter
{
+ /**
+ * Json Column Layout for bootstrap table
+ * @return string
+ */
+ public static function dataTableLayout()
+ {
+ $layout = [
+ [
+ "field" => "id",
+ "searchable" => false,
+ "sortable" => true,
+ "switchable" => true,
+ "title" => trans('general.id'),
+ "visible" => false
+ ], [
+ "field" => "name",
+ "searchable" => true,
+ "sortable" => true,
+ "title" => trans('general.name'),
+ "visible" => false,
+ "formatter" => 'categoriesLinkFormatter',
+ ],[
+ "field" => "type",
+ "searchable" => true,
+ "sortable" => true,
+ "title" => trans('general.type'),
+ "visible" => true
+ ], [
+ "field" => "assets_count",
+ "searchable" => false,
+ "sortable" => false,
+ "title" => trans('general.assets'),
+ "visible" => false
+ ], [
+ "field" => "accessories_count",
+ "searchable" => false,
+ "sortable" => false,
+ "title" => trans('general.accessories'),
+ "visible" => false
+ ], [
+ "field" => "consumables_count",
+ "searchable" => false,
+ "sortable" => false,
+ "title" => trans('general.consumables'),
+ "visible" => true
+ ], [
+ "field" => "components_count",
+ "searchable" => false,
+ "sortable" => false,
+ "title" => trans('general.components'),
+ "visible" => true
+ ], [
+ "field" => "use_default_eula",
+ "searchable" => false,
+ "sortable" => false,
+ "title" => trans('admin/categories/table.eula_text'),
+ "visible" => false,
+ "formatter" => 'trueFalseFormatter',
+ ], [
+ "field" => "require_acceptance",
+ "searchable" => false,
+ "sortable" => false,
+ "title" => trans('admin/categories/table.require_acceptance'),
+ "visible" => false,
+ "formatter" => 'trueFalseFormatter',
+ ], [
+ "field" => "actions",
+ "searchable" => false,
+ "sortable" => false,
+ "switchable" => false,
+ "title" => trans('table.actions'),
+ "formatter" => "categoriesActionsFormatter",
+ ]
+ ];
+
+ return json_encode($layout);
+ }
+
+
/**
* Link to this categories name
* @return string
diff --git a/resources/views/categories/index.blade.php b/resources/views/categories/index.blade.php
index bcfc2eb3df..9302cf172f 100755
--- a/resources/views/categories/index.blade.php
+++ b/resources/views/categories/index.blade.php
@@ -28,17 +28,7 @@
data-cookie="true"
data-click-to-select="true"
data-cookie-id-table="categoriesTable-{{ config('version.hash_version') }}">
-
-
- {{ trans('general.id') }} |
- {{ trans('admin/categories/table.title') }} |
- {{ trans('general.type') }} |
- {{ trans('general.assets') }} |
- {{ trans('admin/categories/table.require_acceptance') }} |
- {{ trans('admin/categories/table.eula_text') }} |
- {{ trans('table.actions') }} |
-
-
+
@@ -49,6 +39,10 @@
@stop
@section('moar_scripts')
-@include ('partials.bootstrap-table', ['exportFile' => 'categories-export', 'search' => true])
+ @include ('partials.bootstrap-table',
+ ['exportFile' => 'category-export',
+ 'search' => true,
+ 'columns' => \App\Presenters\CategoryPresenter::dataTableLayout()
+ ])
@stop
diff --git a/resources/views/categories/view.blade.php b/resources/views/categories/view.blade.php
index f8582602d9..0ea9f7a6e1 100644
--- a/resources/views/categories/view.blade.php
+++ b/resources/views/categories/view.blade.php
@@ -4,7 +4,8 @@
@section('title')
{{ $category->name }}
- {{ trans('general.assets') }}
+ {{ ucwords($category_type_route) }}
+
@parent
@stop
@@ -30,27 +31,22 @@
name="category_assets"
class="snipe-table"
id="table"
- data-url="{{ ($category->category_type=='asset') ? route('api.assets.index',['category_id'=> $category->id]) : route('api.'.$category->category_type.'s.index', ['category_id'=> $category->id]) }}
+ data-url="{{ route('api.'.$category_type_route.'.index',['category_id'=> $category->id]) }}
data-cookie="true"
data-click-to-select="true"
- data-cookie-id-table="categoryAssetsTable">
+ data-cookie-id-table="category{{ $category_type_route }}Table">
+ @if ($category->category_type!='asset')
-
- {{ trans('admin/companies/table.title') }}
- |
{{ trans('general.id') }} |
- {{ trans('general.name') }} |
- @if ($category->category_type=='asset')
- {{ trans('admin/hardware/form.model') }} |
- {{ trans('general.asset_tag') }} |
- {{ trans('admin/hardware/form.serial') }} |
- {{ trans('general.user') }} |
- {{ trans('admin/hardware/table.change') }} |
- @endif
- {{ trans('table.actions') }} |
+
+ {{ trans('admin/companies/table.title') }}
+ |
+ {{ trans('general.name') }} |
+ {{ trans('table.actions') }} |
+ @endif
@@ -59,5 +55,20 @@
@stop
@section('moar_scripts')
-@include ('partials.bootstrap-table', ['exportFile' => 'category-' . $category->name . '-export', 'search' => false])
+
+ @if ($category->category_type=='asset')
+ @include ('partials.bootstrap-table',
+ [
+ 'exportFile' => 'category-' . $category->name . '-export',
+ 'search' => true,
+ 'columns' => \App\Presenters\AssetPresenter::dataTableLayout()])
+ @else
+ @include ('partials.bootstrap-table',
+ [
+ 'exportFile' => 'category-' . $category->name . '-export',
+ 'search' => false])
+
+ @endif
+
+
@stop