aboutsummaryrefslogtreecommitdiff
path: root/lib/modules/ActivityFeed.php
diff options
context:
space:
mode:
authorElmar Ludwig <elmar.ludwig@uni-osnabrueck.de>2022-05-11 07:19:42 +0000
committerElmar Ludwig <elmar.ludwig@uni-osnabrueck.de>2022-05-11 07:19:42 +0000
commit20240b2aacb15ab3264afbfbbc9dae952db4bb63 (patch)
tree597cae73c5ae7ab9eda6d066d45430c3f17a4560 /lib/modules/ActivityFeed.php
parentc054faf90288a75fc3680480434ba93b7f5b287b (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.php77
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;
+ }
+}