Allows ordering of component groups. Closes #573.

This commit is contained in:
James Brooks
2015-05-19 22:52:16 +01:00
parent 879a8a5c69
commit 9337c1a75b
12 changed files with 119 additions and 30 deletions
@@ -15,6 +15,7 @@ namespace CachetHQ\Cachet\Http\Controllers\Admin;
use CachetHQ\Cachet\Http\Controllers\AbstractController;
use CachetHQ\Cachet\Models\Component;
use CachetHQ\Cachet\Models\ComponentGroup;
use CachetHQ\Cachet\Models\IncidentTemplate;
use Exception;
use GrahamCampbell\Binput\Facades\Binput;
@@ -56,6 +57,23 @@ class ApiController extends AbstractController
return $componentData;
}
/**
* Updates the order of component groups.
*
* @return array
*/
public function postUpdateComponentGroupOrder()
{
$groupData = Binput::all();
foreach ($groupData['ids'] as $order => $groupId) {
ComponentGroup::find($groupId)->update([
'order' => $order + 1,
]);
}
return $groupData;
}
/**
* Returns a template by slug.
*
@@ -78,7 +78,7 @@ class ComponentController extends AbstractController
return View::make('dashboard.components.groups.index')->with([
'pageTitle' => trans_choice('dashboard.components.groups.groups', 2).' - '.trans('dashboard.dashboard'),
'groups' => ComponentGroup::all(),
'groups' => ComponentGroup::orderBy('order')->get(),
'subMenu' => $this->subMenu,
]);
}
+1 -1
View File
@@ -107,7 +107,7 @@ class HomeController extends AbstractController
// Component & Component Group lists.
$usedComponentGroups = Component::where('group_id', '>', 0)->groupBy('group_id')->lists('group_id');
$componentGroups = ComponentGroup::whereIn('id', $usedComponentGroups)->get();
$componentGroups = ComponentGroup::whereIn('id', $usedComponentGroups)->orderBy('order')->get();
$ungroupedComponents = Component::where('group_id', 0)->orderBy('order')->orderBy('created_at')->get();
$canPageBackward = Incident::notScheduled()->where('created_at', '<', $startDate->format('Y-m-d'))->count() != 0;
+1
View File
@@ -201,6 +201,7 @@ class AdminRoutes
// This should only be used for making requests within the dashboard.
$router->group(['prefix' => 'api'], function ($router) {
$router->get('incidents/templates', 'ApiController@getIncidentTemplate');
$router->post('components/groups/order', 'ApiController@postUpdateComponentGroupOrder');
$router->post('components/order', 'ApiController@postUpdateComponentOrder');
$router->post('components/{component}', 'ApiController@postUpdateComponent');
});
+2 -1
View File
@@ -19,6 +19,7 @@ use Watson\Validating\ValidatingTrait;
/**
* @property int $id
* @property string $name
* @property int $order
* @property \Carbon\Carbon $created_at
* @property \Carbon\Carbon $updated_at
* @property \Carbon\Carbon $deleted_at
@@ -41,7 +42,7 @@ class ComponentGroup extends Model
*
* @var string[]
*/
protected $fillable = ['name'];
protected $fillable = ['name', 'order'];
/**
* A group can have many components.