Added category column to activities table
This commit is contained in:
@@ -15,6 +15,7 @@ use Monolog\Logger;
|
|||||||
use Psr\Container\ContainerInterface;
|
use Psr\Container\ContainerInterface;
|
||||||
use Psr\Http\Message\ResponseInterface as Response;
|
use Psr\Http\Message\ResponseInterface as Response;
|
||||||
use Psr\Http\Message\ServerRequestInterface as Request;
|
use Psr\Http\Message\ServerRequestInterface as Request;
|
||||||
|
use UserFrosting\Sprinkle\Core\Log\MixedFormatter;
|
||||||
use UserFrosting\Sprinkle\UFTweaks\Twig\HasRoleExtension;
|
use UserFrosting\Sprinkle\UFTweaks\Twig\HasRoleExtension;
|
||||||
|
|
||||||
|
|
||||||
@@ -32,6 +33,19 @@ class ServicesProvider
|
|||||||
*/
|
*/
|
||||||
public function register(ContainerInterface $container)
|
public function register(ContainerInterface $container)
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
|
* Extend the 'classMapper' service to register sprunje classes.
|
||||||
|
*
|
||||||
|
* Mappings added: 'activity_sprunje'
|
||||||
|
*
|
||||||
|
* @return \UserFrosting\Sprinkle\Core\Util\ClassMapper
|
||||||
|
*/
|
||||||
|
$container->extend('classMapper', function ($classMapper, $c) {
|
||||||
|
$classMapper->setClassMapping('activity_sprunje', 'UserFrosting\Sprinkle\UFTweaks\Sprunje\ActivitySprunje');
|
||||||
|
|
||||||
|
return $classMapper;
|
||||||
|
});
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Returns a callback that handles setting the `UF-Redirect` header after a successful login.
|
* Returns a callback that handles setting the `UF-Redirect` header after a successful login.
|
||||||
*
|
*
|
||||||
|
|||||||
77
src/Sprunje/ActivitySprunje.php
Normal file
77
src/Sprunje/ActivitySprunje.php
Normal file
@@ -0,0 +1,77 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/*
|
||||||
|
* AVSDev UF Tweaks (https://avsdev.uk)
|
||||||
|
*
|
||||||
|
* @link https://git.avsdev.uk/avsdev/sprinkle-uf-tweaks
|
||||||
|
* @license https://git.avsdev.uk/avsdev/sprinkle-uf-tweaks/blob/master/LICENSE.md (LGPL-3.0 License)
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace UserFrosting\Sprinkle\UFTweaks\Sprunje;
|
||||||
|
|
||||||
|
use Illuminate\Database\Capsule\Manager as DB;
|
||||||
|
use Illuminate\Database\Schema\Builder;
|
||||||
|
use UserFrosting\Sprinkle\admin\Sprunje\ActivitySprunje as UFActivitySprunje;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ActivitySprunje.
|
||||||
|
*
|
||||||
|
* Implements Sprunje for the activities API.
|
||||||
|
*
|
||||||
|
* @author Alex Weissman (https://alexanderweissman.com)
|
||||||
|
*/
|
||||||
|
class ActivitySprunje extends UFActivitySprunje
|
||||||
|
{
|
||||||
|
protected $sortable = [
|
||||||
|
'occurred_at',
|
||||||
|
'user',
|
||||||
|
'category',
|
||||||
|
'description',
|
||||||
|
];
|
||||||
|
|
||||||
|
protected $filterable = [
|
||||||
|
'occurred_at',
|
||||||
|
'user',
|
||||||
|
'category',
|
||||||
|
'description',
|
||||||
|
];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Filter LIKE the category.
|
||||||
|
*
|
||||||
|
* @param Builder $query
|
||||||
|
* @param mixed $value
|
||||||
|
*
|
||||||
|
* @return self
|
||||||
|
*/
|
||||||
|
protected function filterCategory($query, $value)
|
||||||
|
{
|
||||||
|
// Split value on separator for OR queries
|
||||||
|
$values = explode($this->orSeparator, $value);
|
||||||
|
$query->where(function ($query) use ($values) {
|
||||||
|
foreach ($values as $value) {
|
||||||
|
$query->orLike(
|
||||||
|
DB::raw('lower(activities.type)'),
|
||||||
|
str_replace(" ", "_", strtolower($value))
|
||||||
|
);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sort based on category.
|
||||||
|
*
|
||||||
|
* @param Builder $query
|
||||||
|
* @param string $direction
|
||||||
|
*
|
||||||
|
* @return self
|
||||||
|
*/
|
||||||
|
protected function sortCategory($query, $direction)
|
||||||
|
{
|
||||||
|
$query->orderBy('activities.type', $direction);
|
||||||
|
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -15,6 +15,7 @@
|
|||||||
{% if 'user' in table.columns %}
|
{% if 'user' in table.columns %}
|
||||||
<th class="sorter-metatext" data-column-name="user" data-column-template="#{{table.id}}-column-user" data-priority="1">{{translate('USER')}} <i class="fas fa-sort"></i></th>
|
<th class="sorter-metatext" data-column-name="user" data-column-template="#{{table.id}}-column-user" data-priority="1">{{translate('USER')}} <i class="fas fa-sort"></i></th>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
<th class="sorter-metatext" data-column-name="category" data-column-template="#{{table.id}}-column-category" data-priority="1">{{translate('CATEGORY')}} <i class="fas fa-sort"></i></th>
|
||||||
<th class="sorter-metatext" data-column-name="description" data-column-template="#{{table.id}}-column-description" data-priority="1">{{translate("DESCRIPTION")}} <i class="fas fa-sort"></i></th>
|
<th class="sorter-metatext" data-column-name="description" data-column-template="#{{table.id}}-column-description" data-priority="1">{{translate("DESCRIPTION")}} <i class="fas fa-sort"></i></th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
@@ -38,6 +39,10 @@
|
|||||||
{% include "tables/columns/activities-user.html.twig" %}
|
{% include "tables/columns/activities-user.html.twig" %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block table_activities_column_category %}
|
||||||
|
{% include "tables/columns/activities-category.html.twig" %}
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
{% block table_activities_column_description %}
|
{% block table_activities_column_description %}
|
||||||
{% include "tables/columns/activities-description.html.twig" %}
|
{% include "tables/columns/activities-description.html.twig" %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
7
templates/tables/columns/activities-category.html.twig
Normal file
7
templates/tables/columns/activities-category.html.twig
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
<script id="{{table.id}}-column-category" type="text/x-handlebars-template">
|
||||||
|
{% verbatim %}
|
||||||
|
<td data-text="{{ucwords (splitSnakeCase row.type)}}">
|
||||||
|
{{ucwords (splitSnakeCase row.type)}}
|
||||||
|
</td>
|
||||||
|
{% endverbatim %}
|
||||||
|
</script>
|
||||||
Reference in New Issue
Block a user