Added category column to activities table
This commit is contained in:
@@ -15,6 +15,7 @@ use Monolog\Logger;
|
||||
use Psr\Container\ContainerInterface;
|
||||
use Psr\Http\Message\ResponseInterface as Response;
|
||||
use Psr\Http\Message\ServerRequestInterface as Request;
|
||||
use UserFrosting\Sprinkle\Core\Log\MixedFormatter;
|
||||
use UserFrosting\Sprinkle\UFTweaks\Twig\HasRoleExtension;
|
||||
|
||||
|
||||
@@ -32,6 +33,19 @@ class ServicesProvider
|
||||
*/
|
||||
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.
|
||||
*
|
||||
|
||||
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 %}
|
||||
<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 %}
|
||||
<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>
|
||||
</tr>
|
||||
</thead>
|
||||
@@ -38,6 +39,10 @@
|
||||
{% include "tables/columns/activities-user.html.twig" %}
|
||||
{% endblock %}
|
||||
|
||||
{% block table_activities_column_category %}
|
||||
{% include "tables/columns/activities-category.html.twig" %}
|
||||
{% endblock %}
|
||||
|
||||
{% block table_activities_column_description %}
|
||||
{% include "tables/columns/activities-description.html.twig" %}
|
||||
{% 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