mirror of
https://git.yylx.win/https://github.com/deepmentation/OllamaPriority.git
synced 2025-10-04 05:28:05 +08:00
75 lines
2.3 KiB
PHP
75 lines
2.3 KiB
PHP
<?php
|
|
|
|
namespace Modules\OllamaPriority;
|
|
|
|
use App\Providers\Extension;
|
|
|
|
class Module extends Extension
|
|
{
|
|
/**
|
|
* Modulname.
|
|
*/
|
|
public const NAME = 'ollama-priority';
|
|
|
|
/**
|
|
* Registriere die Modulkonfiguration.
|
|
*/
|
|
public function init()
|
|
{
|
|
// Konfigurationsdatei laden
|
|
\Config::set('ollama_priority', include(__DIR__.'/config.php'));
|
|
|
|
// Middleware für die Priorisierung registrieren
|
|
$this->app['router']->pushMiddlewareToGroup('web',
|
|
\Modules\OllamaPriority\Http\Middleware\ProcessIncomingMail::class
|
|
);
|
|
|
|
// Menüpunkt für die Konfiguration hinzufügen
|
|
\Eventy::addFilter('menu.manage', function($menu) {
|
|
$menu[] = [
|
|
'key' => 'ollamapriority',
|
|
'name' => __('Ollama Priority'),
|
|
'url' => route('ollamapriority.config'),
|
|
'icon' => 'flag',
|
|
'position' => 900,
|
|
];
|
|
return $menu;
|
|
}, 20, 1);
|
|
|
|
// CSS für die Prioritätsanzeige laden
|
|
\Eventy::addFilter('stylesheets', function($styles) {
|
|
$styles[] = \Module::getPublicPath(self::NAME).'/css/priority.css';
|
|
return $styles;
|
|
});
|
|
|
|
// Event Listener für die Mail-Übersicht registrieren
|
|
\Eventy::addFilter('conversations.table_header', [$this, 'addPriorityColumn'], 20, 1);
|
|
\Eventy::addFilter('conversations.table_row', [$this, 'addPriorityData'], 20, 2);
|
|
}
|
|
|
|
/**
|
|
* Fügt die Prioritätsspalte zum Header der Mail-Übersicht hinzu.
|
|
*/
|
|
public function addPriorityColumn($headers)
|
|
{
|
|
$headers['priority'] = __('Priority');
|
|
return $headers;
|
|
}
|
|
|
|
/**
|
|
* Fügt die Prioritätsdaten zu jeder Zeile hinzu.
|
|
*/
|
|
public function addPriorityData($html, $conversation)
|
|
{
|
|
// Priorität aus den Metadaten holen
|
|
$priority = $conversation->getMeta('ollama_priority');
|
|
if (!$priority) {
|
|
$priority = '-';
|
|
}
|
|
|
|
// HTML für die Prioritätsspalte mit Prioritätsklasse
|
|
$priorityClass = is_numeric($priority) ? 'priority-' . $priority : '';
|
|
$html['priority'] = '<td class="conversation-priority ' . $priorityClass . '">'.$priority.'</td>';
|
|
return $html;
|
|
}
|
|
}
|