diff options
| author | Elmar Ludwig <elmar.ludwig@uni-osnabrueck.de> | 2022-05-11 07:19:42 +0000 |
|---|---|---|
| committer | Elmar Ludwig <elmar.ludwig@uni-osnabrueck.de> | 2022-05-11 07:19:42 +0000 |
| commit | 20240b2aacb15ab3264afbfbbc9dae952db4bb63 (patch) | |
| tree | 597cae73c5ae7ab9eda6d066d45430c3f17a4560 /lib/modules/ActivityFeed.php | |
| parent | c054faf90288a75fc3680480434ba93b7f5b287b (diff) | |
convert old core plugins to new model, re #814
Merge request studip/studip!440
Diffstat (limited to 'lib/modules/ActivityFeed.php')
| -rw-r--r-- | lib/modules/ActivityFeed.php | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/lib/modules/ActivityFeed.php b/lib/modules/ActivityFeed.php new file mode 100644 index 0000000..6fa9ce3 --- /dev/null +++ b/lib/modules/ActivityFeed.php @@ -0,0 +1,77 @@ +<?php +/** + * @author André Klaßen <klassen@elan-ev.de> + * @author Till Glöggler <tgloeggl@uos.de> + * @license GPL 2 or later + */ +class ActivityFeed extends CorePlugin implements PortalPlugin +{ + public function getPluginName() + { + return _('Aktivitäten'); + } + + public function getMetadata() + { + return [ + 'description' => _('Mit diesem Widget haben Sie alle Aktivitäten im Überblick.') + ]; + } + + public function getPortalTemplate() + { + $template = $GLOBALS['template_factory']->open('start/activityfeed'); + + $template->user_id = $GLOBALS['user']->id; + $template->scrolledfrom = strtotime('+1 day'); + $template->config = WidgetHelper::getWidgetUserConfig($GLOBALS['user']->id, 'ACTIVITY_FEED'); + + $navigation = new Navigation('', 'dispatch.php/activityfeed/configuration'); + $navigation->setImage(Icon::create('edit', 'clickable', ["title" => _('Konfigurieren')]), ['data-dialog'=>'size=auto']); + $icons[] = $navigation; + + $navigation = new Navigation('', '#', ['cid' => null]); + $navigation->setImage(Icon::create('headache+visibility-visible', 'clickable')); + $navigation->setLinkAttributes([ + 'id' => 'toggle-user-activities', + 'title' => _('Eigene Aktivitäten ein-/ausblenden'), + ]); + $icons[] = $navigation; + + $navigation = new Navigation('', '#', ['cid' => null]); + $navigation->setImage(Icon::create('no-activity', 'clickable')); + $navigation->setLinkAttributes([ + 'id' => 'toggle-all-activities', + 'title' => _('Aktivitätsdetails ein-/ausblenden'), + ]); + $icons[] = $navigation; + + $template->icons = $icons; + + return $template; + } + + public static function onEnable($pluginId) + { + $errors = []; + if (!Config::get()->API_ENABLED) { + $errors[] = sprintf( + _('Die REST-API ist nicht aktiviert (%s "API_ENABLED")'), + formatReady(sprintf('[%s]%s', + _('Konfiguration'), + URLHelper::getLink('dispatch.php/admin/configuration/configuration') + )) + ); + } elseif (!RESTAPI\ConsumerPermissions::get('global')->check('/user/:user_id/activitystream', 'get')) { + $errors[] = sprintf( + _('Die REST-API-Route ist nicht aktiviert (%s "/user/:user_id/activitystream"")'), + formatReady(sprintf('[%s]%s', + _('Konfiguration'), + URLHelper::getLink('dispatch.php/admin/api/permissions') + )) + ); + } + + return count($errors) === 0; + } +} |
