Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Change: refactored logs back-end view into J5 #9628

Merged
merged 2 commits into from
Feb 27, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
125 changes: 125 additions & 0 deletions src/admin/forms/filter_logs.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
<?xml version="1.0" encoding="utf-8"?>
<form addfieldprefix="Kunena\Forum\Administrator\Field">
<fields name="filter">
<field
name="search"
type="text"
inputmode="search"
label="COM_USERS_SEARCH_USERS"
description=""
hint="JSEARCH_FILTER" />
<field
name="time_start"
type="calendar"
label="COM_KUNENA_LOG_CALENDAR_PLACEHOLDER_START_DATE"
class="js-select-submit-on-change"
hint="COM_KUNENA_LOG_CALENDAR_PLACEHOLDER_START_DATE"
default="" />
<field
name="time_stop"
type="calendar"
label="COM_KUNENA_LOG_CALENDAR_PLACEHOLDER_STOP_DATE"
class="js-select-submit-on-change"
hint="COM_KUNENA_LOG_CALENDAR_PLACEHOLDER_STOP_DATE"
default="" />
<field
name="type"
type="list"
label="COM_KUNENA_LOG_TYPE_SORT_LABEL"
class="js-select-submit-on-change"
default=""
validate="options">
<option value="">COM_KUNENA_FILTER_SELECT_TYPE</option>
<option value="1">MOD</option>
<option value="2">ACT</option>
<option value="3">ERR</option>
<option value="4">REP</option>
</field>
<field
name="operation"
type="kunenaoperationlist"
default=""
class="js-select-submit-on-change" />
<field
name="user"
type="user"
label="COM_KUNENA_LOG_USER_SORT_LABEL"
hint="COM_KUNENA_FILTER_SELECT_USER"
class="js-select-submit-on-change"
default="" />
<field
name="category"
type="sql"
sql_select="a.category_id, c.id, c.name"
sql_from="#__kunena_logs AS a"
sql_join="#__kunena_categories AS c ON a.category_id = c.id"
sql_where="c.name != ''"
sql_group="a.category_id"
sql_order="c.name ASC"
key_field="id"
value_field="name"
default=""
class="js-select-submit-on-change">
<option value="">COM_KUNENA_FILTER_SELECT_CATEGORY</option>
</field>
<field
name="topic"
type="sql"
sql_select="a.topic_id, t.id, t.subject"
sql_from="#__kunena_logs AS a"
sql_join="#__kunena_topics AS t ON a.topic_id = t.id"
sql_where="t.subject != ''"
sql_group="a.topic_id"
sql_order="t.subject ASC"
key_field="id"
value_field="subject"
default=""
class="js-select-submit-on-change">
<option value="">COM_KUNENA_FILTER_SELECT_TOPIC</option>
</field>
<field
name="target_user"
type="user"
label="COM_KUNENA_LOG_TARGET_USER_SORT_LABEL"
class="js-select-submit-on-change"
default=""
validate="options">
<option value="">COM_KUNENA_FILTER_SELECT_TARGETUSER</option>
</field>
</fields>
<fields name="list">
<field
name="fullordering"
type="list"
label="JGLOBAL_SORT_BY"
class="js-select-submit-on-change"
default="username ASC"
validate="options">
<option value="">JGLOBAL_SORT_BY</option>
<option value="time ASC">COM_KUNENA_FILTER_FIELD_TIME_ASC</option>
<option value="time DESC">COM_KUNENA_FILTER_FIELD_TIME_DESC</option>
<option value="type ASC">COM_KUNENA_FILTER_FIELD_TYPE_ASC</option>
<option value="type DESC">COM_KUNENA_FILTER_FIELD_TYPE_DESC</option>
<option value="operation ASC">COM_KUNENA_FILTER_FIELD_OPERATION_ASC</option>
<option value="operation DESC">COM_KUNENA_FILTER_FIELD_OPERATION_DESC</option>
<option value="user ASC">COM_KUNENA_FILTER_FIELD_USER_ASC</option>
<option value="user DESC">COM_KUNENA_FILTER_FIELD_USER_DESC</option>
<option value="category ASC">COM_KUNENA_FILTER_FIELD_CATEGORY_ASC</option>
<option value="category DESC">COM_KUNENA_FILTER_FIELD_CATEGORY_DESC</option>
<option value="topic ASC">COM_KUNENA_FILTER_FIELD_TOPIC_ASC</option>
<option value="topic DESC">COM_KUNENA_FILTER_FIELD_TOPIC_DESC</option>
<option value="ip ASC">COM_KUNENA_FILTER_FIELD_IP_ASC</option>
<option value="ip DESC">COM_KUNENA_FILTER_FIELD_IP_DESC</option>
<option value="target_user ASC">COM_KUNENA_FILTER_FIELD_TARGETUSER_ASC</option>
<option value="target_user DESC">COM_KUNENA_FILTER_FIELD_TARGETUSER_DESC</option>
<option value="id ASC">JGRID_HEADING_ID_ASC</option>
<option value="id DESC">JGRID_HEADING_ID_DESC</option>
</field>
<field
name="limit"
type="limitbox"
label="JGLOBAL_LIST_LIMIT"
default="25"
class="js-select-submit-on-change" />
</fields>
</form>
83 changes: 52 additions & 31 deletions src/admin/language/en-GB/en-GB.com_kunena.views.ini
Original file line number Diff line number Diff line change
Expand Up @@ -1292,7 +1292,7 @@ COM_KUNENA_LOG_USER_UNBAN = "User Unbanned"
COM_KUNENA_LOG_USER_UNBLOCK = "User Unblocked"
COM_KUNENA_LOG_USER_WARNING = "User Warning"
COM_KUNENA_LOG_CALENDAR_PLACEHOLDER_START_DATE = "Enter the start date"
COM_KUNENA_LOG_CALENDAR_PLACEHOLDER_END_DATE = "Enter the end date"
COM_KUNENA_LOG_CALENDAR_PLACEHOLDER_STOP_DATE = "Enter the stop date"
COM_KUNENA_LOG_CLEAN_ENTRIES = "Clean entries"
COM_KUNENA_CLEAN_LOGS_ENTRIES = "Clean"
COM_KUNENA_LOG_CLEAN_DESC = "The clean log entries allow you to remove entries which are old from a specific days"
Expand All @@ -1303,6 +1303,7 @@ COM_KUNENA_LOG_USER_REPORT_STOPFORUMSPAM = "Report to stop forum spam"
COM_KUNENA_LOG_TOPIC_FAVORITE = "Favorite topic"
COM_KUNENA_LOG_TOPIC_UNFAVORITE = "Unfavorite topic"
COM_KUNENA_LOG_TIME_SORT_LABEL = "Time"
COM_KUNENA_LOG_OPERATION_SORT_LABEL = "Operation"
COM_KUNENA_LOG_TYPE_SORT_LABEL = "Type"
COM_KUNENA_LOG_USER_SORT_LABEL = "User"
COM_KUNENA_LOG_CATEGORY_SORT_LABEL = "Category"
Expand Down Expand Up @@ -1367,47 +1368,67 @@ COM_KUNENA_A_SMARTAUTOLINK = "Smart Auto Linking"
COM_KUNENA_A_SMARTAUTOLINK_DESC = "Shows the real titles on the urls. (Can result a high cpu usage)"

; Back-end Filter strings
COM_KUNENA_FILTER_FIELD_USERNAME_ASC="Username Ascending"
COM_KUNENA_FILTER_FIELD_USERNAME_DESC="Username Descending"
COM_KUNENA_FILTER_FIELD_BANNED_ASC="Banned Ascending"
COM_KUNENA_FILTER_FIELD_BANNED_DESC="Banned Descending"
COM_KUNENA_FILTER_FIELD_CATEGORY_ASC="Category Ascending"
COM_KUNENA_FILTER_FIELD_CATEGORY_DESC="Category Descending"
COM_KUNENA_FILTER_FIELD_CODE_ASC="Code Ascending"
COM_KUNENA_FILTER_FIELD_CODE_DESC="Code Descending"
COM_KUNENA_FILTER_FIELD_EMAIL_ASC="Email Ascending"
COM_KUNENA_FILTER_FIELD_EMAIL_DESC="Email Descending"
COM_KUNENA_FILTER_FIELD_IP_ASC="IP Ascending"
COM_KUNENA_FILTER_FIELD_IP_DESC="IP Descending"
COM_KUNENA_FILTER_FIELD_RANK_ASC="Rank Ascending"
COM_KUNENA_FILTER_FIELD_RANK_DESC="Rank Descending"
COM_KUNENA_FILTER_FIELD_SIGNATURE_ASC="Signature Ascending"
COM_KUNENA_FILTER_FIELD_SIGNATURE_DESC="Signature Descending"
COM_KUNENA_FILTER_FIELD_ENABLED_ASC="Enabled Ascending"
COM_KUNENA_FILTER_FIELD_ENABLED_DESC="Enabled Descending"
COM_KUNENA_FILTER_FIELD_BANNED_ASC="Banned Ascending"
COM_KUNENA_FILTER_FIELD_BANNED_DESC="Banned Descending"
COM_KUNENA_FILTER_FIELD_MODERATOR_ASC="Moderator Ascending"
COM_KUNENA_FILTER_FIELD_MODERATOR_DESC="Moderator Descending"
COM_KUNENA_FILTER_SELECT_SIGNATURE="- Select Signature -"
COM_KUNENA_FILTER_SELECT_ENABLED="- Select Enabled -"
COM_KUNENA_FILTER_SELECT_BANNED="- Select Banned -"
COM_KUNENA_FILTER_SELECT_SPECIAL="- Select Special -"
COM_KUNENA_FILTER_SELECT_RANKSMIN="- Select Minimum Post Count -"
COM_KUNENA_FILTER_SELECT_MODERATOR="- Select Moderator -"
COM_KUNENA_TASK_BAN_USER="Ban User"
COM_KUNENA_TASK_UNBAN_USER="Unban User"
COM_KUNENA_TASK_UNBLOCK_USER="Enable User"
COM_KUNENA_TASK_BLOCK_USER="Block User"
COM_KUNENA_FILTER_FIELD_FILENAME_ASC="Filename Ascending"
COM_KUNENA_FILTER_FIELD_FILENAME_DESC="Filename Descending"
COM_KUNENA_FILTER_FIELD_FILETYPE_ASC="Filetype Ascending"
COM_KUNENA_FILTER_FIELD_FILETYPE_DESC="Filetype Descending"
COM_KUNENA_FILTER_FIELD_FILESIZE_ASC="Filesize Ascending"
COM_KUNENA_FILTER_FIELD_FILESIZE_DESC="Filesize Descending"
COM_KUNENA_FILTER_FIELD_FILETYPE_ASC="Filetype Ascending"
COM_KUNENA_FILTER_FIELD_FILETYPE_DESC="Filetype Descending"
COM_KUNENA_FILTER_FIELD_IP_ASC="IP Ascending"
COM_KUNENA_FILTER_FIELD_IP_DESC="IP Descending"
COM_KUNENA_FILTER_FIELD_MODERATOR_ASC="Moderator Ascending"
COM_KUNENA_FILTER_FIELD_MODERATOR_DESC="Moderator Descending"
COM_KUNENA_FILTER_FIELD_OPERATION_ASC="Operation Ascending"
COM_KUNENA_FILTER_FIELD_OPERATION_DESC="Operation Descending"
COM_KUNENA_FILTER_FIELD_POST_ASC="Message Ascending"
COM_KUNENA_FILTER_FIELD_POST_DESC="Message Descending"
COM_KUNENA_FILTER_FIELD_RANKTITLE_ASC="Title Ascending"
COM_KUNENA_FILTER_FIELD_RANKTITLE_DESC="Title Descending"
COM_KUNENA_FILTER_FIELD_RANKSPECIAL_ASC="Special Ascending"
COM_KUNENA_FILTER_FIELD_RANKSPECIAL_DESC="Special Descending"
COM_KUNENA_FILTER_FIELD_RANKSMIN_ASC="Minimum Post Count Ascending"
COM_KUNENA_FILTER_FIELD_RANKSMIN_DESC="Minimum Post Count Descending"
COM_KUNENA_FILTER_FIELD_CODE_ASC="Code Ascending"
COM_KUNENA_FILTER_FIELD_CODE_DESC="Code Descending"
COM_KUNENA_FILTER_FIELD_RANKSPECIAL_ASC="Special Ascending"
COM_KUNENA_FILTER_FIELD_RANKSPECIAL_DESC="Special Descending"
COM_KUNENA_FILTER_FIELD_RANKTITLE_ASC="Title Ascending"
COM_KUNENA_FILTER_FIELD_RANKTITLE_DESC="Title Descending"
COM_KUNENA_FILTER_FIELD_RANK_ASC="Rank Ascending"
COM_KUNENA_FILTER_FIELD_RANK_DESC="Rank Descending"
COM_KUNENA_FILTER_FIELD_SIGNATURE_ASC="Signature Ascending"
COM_KUNENA_FILTER_FIELD_SIGNATURE_DESC="Signature Descending"
COM_KUNENA_FILTER_FIELD_TARGETUSER_ASC="Target User Ascending"
COM_KUNENA_FILTER_FIELD_TARGETUSER_DESC="Target User Descending"
COM_KUNENA_FILTER_FIELD_TIME_ASC="Time Ascending"
COM_KUNENA_FILTER_FIELD_TIME_DESC="Time Descending"
COM_KUNENA_FILTER_FIELD_TOPIC_ASC="Topic Ascending"
COM_KUNENA_FILTER_FIELD_TOPIC_DESC="Topic Descending"
COM_KUNENA_FILTER_FIELD_TYPE_ASC="Type Ascending"
COM_KUNENA_FILTER_FIELD_TYPE_DESC="Type Descending"
COM_KUNENA_FILTER_FIELD_URL_ASC="URL Ascending"
COM_KUNENA_FILTER_FIELD_URL_DESC="URL Descending"
COM_KUNENA_FILTER_FIELD_USERNAME_ASC="Username Ascending"
COM_KUNENA_FILTER_FIELD_USERNAME_DESC="Username Descending"
COM_KUNENA_FILTER_FIELD_USER_ASC="User Ascending"
COM_KUNENA_FILTER_FIELD_USER_DESC="User Descending"
COM_KUNENA_FILTER_SELECT_BANNED="- Select Banned -"
COM_KUNENA_FILTER_SELECT_CATEGORY="- Select Category -"
COM_KUNENA_FILTER_SELECT_ENABLED="- Select Enabled -"
COM_KUNENA_FILTER_SELECT_MODERATOR="- Select Moderator -"
COM_KUNENA_FILTER_SELECT_OPERATION="- Select Operation -"
COM_KUNENA_FILTER_SELECT_RANKSMIN="- Select Minimum Post Count -"
COM_KUNENA_FILTER_SELECT_SIGNATURE="- Select Signature -"
COM_KUNENA_FILTER_SELECT_SPECIAL="- Select Special -"
COM_KUNENA_FILTER_SELECT_TARGETUSER="- Select Target User -"
COM_KUNENA_FILTER_SELECT_TOPIC="- Select Topic -"
COM_KUNENA_FILTER_SELECT_TYPE="- Select Type -"
COM_KUNENA_FILTER_SELECT_USER="- Select User -"
COM_KUNENA_TASK_BAN_USER="Ban User"
COM_KUNENA_TASK_BLOCK_USER="Block User"
COM_KUNENA_TASK_UNBAN_USER="Unban User"
COM_KUNENA_TASK_UNBLOCK_USER="Enable User"
10 changes: 10 additions & 0 deletions src/admin/media/css/theme.min.css
Original file line number Diff line number Diff line change
Expand Up @@ -8810,4 +8810,14 @@ select.form-control {
.kwho-blocked,
.kwho-banned {
color: #A39D49;
}
.wrapword {
white-space: pre-wrap;
/* Modern browsers */
word-wrap: break-word;
/* Additional support for older browsers */
}

p.select_to_clipboard {
cursor: pointer;
}
82 changes: 82 additions & 0 deletions src/admin/src/Field/KunenaoperationlistField.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
<?php

/**
* Kunena Component
*
* @package Kunena.Administrator
* @subpackage Field
*
* @copyright Copyright (C) 2008 - 2024 Kunena Team. All rights reserved.
* @license https://www.gnu.org/copyleft/gpl.html GNU/GPL
* @link https://www.kunena.org
**/

namespace Kunena\Forum\Administrator\Field;

\defined('_JEXEC') or die;

use Joomla\CMS\Factory;
use Joomla\CMS\Form\Field\ListField;
use Joomla\CMS\HTML\HTMLHelper;
use Joomla\CMS\Language\Text;
use Joomla\CMS\Router\Route;
use Kunena\Forum\Libraries\Factory\KunenaFactory;
use Kunena\Forum\Libraries\Forum\KunenaForum;
use ReflectionClass;

/**
* Kunenacategorylist field.
*
* @since Kunena 6.0
*/
class KunenaoperationlistField extends ListField
{
/**
* The form field type.
*
* @var string
* @since Kunena 6.0
*/
protected $type = 'KunenaoperationList';

/**
* Method to get the field options.
*
* @since Kunena 6.3.0-BETA3
* @return array The field option objects.
*/
protected function getOptions()
{
if (!class_exists('Kunena\Forum\Libraries\Forum\KunenaForum') || !KunenaForum::installed()) {
echo '<a href="' . Route::_('index.php?option=com_kunena') . '">PLEASE COMPLETE KUNENA INSTALLATION</a>';

return '';
}

Factory::getApplication()->bootComponent('com_kunena');
KunenaFactory::loadLanguage('com_kunena');

$reflection = new ReflectionClass('Kunena\Forum\Libraries\Log\KunenaLog');

$constants = $reflection->getConstants();
ksort($constants);
$operationOptions = [];

foreach ($constants as $key => $value) {
if (strpos($key, 'LOG_') === 0) {
$operationOptions[] = (object) [
'text' => $key,
'value' => Text::_("COM_KUNENA_{$value}"),
];
}
}

$options = parent::getOptions();

if (empty($options)) {
$options[] = HTMLHelper::_('select.option', '', Text::_('COM_KUNENA_FILTER_SELECT_OPERATION'));
}

return array_merge($options, $operationOptions);
}
}
Loading
Loading