From 132660a93630336e3c6f9043407d382584ea8d43 Mon Sep 17 00:00:00 2001
From: Elmar Ludwig <elmar.ludwig@uni-osnabrueck.de>
Date: Tue, 22 Mar 2022 14:14:13 +0000
Subject: [PATCH] use ABSOLUTE_URI_STUDIP as URL for core plugins and move
 assets, re #796

---
 lib/classes/ModulesNotification.class.php        |   3 ++-
 .../Forum/img => assets/images}/anfasser_48.png  | Bin
 .../core/Blubber/Blubber.class.php               |   8 ++++++++
 .../core/Forum/CoreForum.class.php               |  12 +++---------
 .../core/Forum/controllers/forum_controller.php  |   7 -------
 .../plugins_packages/core/Forum/img/accept.png   | Bin 170 -> 0 bytes
 .../core/Forum/img/anfasser_24.png               | Bin 1856 -> 0 bytes
 .../core/Forum/img/community.png                 | Bin 364 -> 0 bytes
 .../core/Forum/img/corners_left.png              | Bin 195 -> 0 bytes
 .../core/Forum/img/corners_left_red.png          | Bin 177 -> 0 bytes
 .../core/Forum/img/corners_right.png             | Bin 201 -> 0 bytes
 .../core/Forum/img/corners_right_red.png         | Bin 181 -> 0 bytes
 .../plugins_packages/core/Forum/img/decline.png  | Bin 165 -> 0 bytes
 public/plugins_packages/core/Forum/img/move.png  | Bin 2882 -> 0 bytes
 .../core/Forum/views/area/add.php                |   2 +-
 .../core/Forum/views/index/_post.php             |  12 ++++++------
 resources/assets/javascripts/init.js             |   2 ++
 .../assets/javascripts/lib}/forum.js             |  10 +++-------
 .../assets/stylesheets/scss}/forum.scss          |   0
 resources/assets/stylesheets/studip.scss         |   1 +
 20 files changed, 26 insertions(+), 31 deletions(-)
 rename public/{plugins_packages/core/Forum/img => assets/images}/anfasser_48.png (100%)
 delete mode 100644 public/plugins_packages/core/Forum/img/accept.png
 delete mode 100644 public/plugins_packages/core/Forum/img/anfasser_24.png
 delete mode 100644 public/plugins_packages/core/Forum/img/community.png
 delete mode 100644 public/plugins_packages/core/Forum/img/corners_left.png
 delete mode 100644 public/plugins_packages/core/Forum/img/corners_left_red.png
 delete mode 100644 public/plugins_packages/core/Forum/img/corners_right.png
 delete mode 100644 public/plugins_packages/core/Forum/img/corners_right_red.png
 delete mode 100644 public/plugins_packages/core/Forum/img/decline.png
 delete mode 100644 public/plugins_packages/core/Forum/img/move.png
 rename {public/plugins_packages/core/Forum/javascript => resources/assets/javascripts/lib}/forum.js (99%)
 rename {public/plugins_packages/core/Forum/stylesheets => resources/assets/stylesheets/scss}/forum.scss (100%)

diff --git a/lib/classes/ModulesNotification.class.php b/lib/classes/ModulesNotification.class.php
index a4d81aaa878..f2f4ddccd70 100644
--- a/lib/classes/ModulesNotification.class.php
+++ b/lib/classes/ModulesNotification.class.php
@@ -55,7 +55,8 @@ class ModulesNotification
                 $this->registered_notification_modules[$id]['icon'] = Icon::create('news');
             }
             if (!is_object($this->registered_notification_modules[$id]['icon'])) {
-                $this->registered_notification_modules[$id]['icon'] = Icon::create($this->registered_notification_modules[$id]['icon']);
+                $icon = $module->getPluginURL() . '/' . $this->registered_notification_modules[$id]['icon'];
+                $this->registered_notification_modules[$id]['icon'] = Icon::create($icon);
             }
         }
         $this->registered_notification_modules[-1] =
diff --git a/public/plugins_packages/core/Forum/img/anfasser_48.png b/public/assets/images/anfasser_48.png
similarity index 100%
rename from public/plugins_packages/core/Forum/img/anfasser_48.png
rename to public/assets/images/anfasser_48.png
diff --git a/public/plugins_packages/core/Blubber/Blubber.class.php b/public/plugins_packages/core/Blubber/Blubber.class.php
index a6f0443de35..ce317ad24ba 100644
--- a/public/plugins_packages/core/Blubber/Blubber.class.php
+++ b/public/plugins_packages/core/Blubber/Blubber.class.php
@@ -14,6 +14,14 @@
  */
 class Blubber extends StudIPPlugin implements StandardPlugin
 {
+    /**
+     * Plugin URL for CorePlugins is ABSOLUTE_URI_STUDIP.
+     */
+    public function getPluginURL()
+    {
+        return $GLOBALS['ABSOLUTE_URI_STUDIP'];
+    }
+
     /**
      * Returns a navigation for the tab displayed in the course.
      * @param string $course_id of the course
diff --git a/public/plugins_packages/core/Forum/CoreForum.class.php b/public/plugins_packages/core/Forum/CoreForum.class.php
index 520da03d9df..9ab7b4f05d1 100644
--- a/public/plugins_packages/core/Forum/CoreForum.class.php
+++ b/public/plugins_packages/core/Forum/CoreForum.class.php
@@ -31,17 +31,11 @@ NotificationCenter::addObserver('ForumActivity', 'deleteEntry', 'ForumBeforeDele
 class CoreForum extends StudipPlugin implements ForumModule
 {
     /**
-     * This method dispatches all actions.
-     *
-     * @param string $unconsumed_path  part of the dispatch path that was not consumed
+     * Plugin URL for CorePlugins is ABSOLUTE_URI_STUDIP.
      */
-    public function perform($unconsumed_path)
+    public function getPluginURL()
     {
-        // Add JS and StyleSheet to header
-        $this->addScript('javascript/forum.js');
-        $this->addStylesheet('stylesheets/forum.scss');
-
-        parent::perform($unconsumed_path);
+        return $GLOBALS['ABSOLUTE_URI_STUDIP'];
     }
 
     /* interface method */
diff --git a/public/plugins_packages/core/Forum/controllers/forum_controller.php b/public/plugins_packages/core/Forum/controllers/forum_controller.php
index ee482ccefd6..d25aa554c60 100644
--- a/public/plugins_packages/core/Forum/controllers/forum_controller.php
+++ b/public/plugins_packages/core/Forum/controllers/forum_controller.php
@@ -46,13 +46,6 @@ class ForumController extends StudipController {
         PageLayout::setHelpKeyword('Basis.Forum');
         PageLayout::setTitle(Context::getHeaderLine() .' - '. _('Forum'));
 
-        $this->AVAILABLE_DESIGNS = ['web20', 'studip'];
-        if ($GLOBALS['CANONICAL_RELATIVE_PATH_STUDIP'] && $GLOBALS['CANONICAL_RELATIVE_PATH_STUDIP'] != '/') {
-            $this->picturepath = $GLOBALS['CANONICAL_RELATIVE_PATH_STUDIP'] .'/'. $this->dispatcher->trails_root . '/img';
-        } else {
-            $this->picturepath = '/'. $this->dispatcher->trails_root . '/img';
-        }
-
         // the default for displaying timestamps
         $this->time_format_string = "%a %d. %B %Y, %H:%M";
         $this->time_format_string_short = "%d.%m.%Y, %H:%M";
diff --git a/public/plugins_packages/core/Forum/img/accept.png b/public/plugins_packages/core/Forum/img/accept.png
deleted file mode 100644
index 78b7d42665b5c29e839faad9bdbfc814f5fb84e7..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 170
zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`g`O^sAr-fdPCm(bz<`G(xXHWF
z^VJE}B~zwM2nuO>)NsbmsZEAo|IFz#w>T<0JK}vbBdn{JJ20M@sk8Ea%F*MAC*7QX
zN=;sKBe?R6!=_7{DwKb=<P}U2u2Va$<ssFfH&gs%-jiQx!o4Ya0>?JZ_%F?Wa;o?H
ULsLt0ftE9Py85}Sb4q9e0HgFmkN^Mx

diff --git a/public/plugins_packages/core/Forum/img/anfasser_24.png b/public/plugins_packages/core/Forum/img/anfasser_24.png
deleted file mode 100644
index 2332e02ba430f11fbdd811b332da84f7619ce10b..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 1856
zcmbVNO^6#+98VWr%hoL_1zSa&PK&Z^GxOdgGs!$QU6M?8H(++xBw$3ezRbK$hRu9*
z=Itigi?|5dMK2yKDlNPAq8HJFXsMvIxKzc1Ql#i@J$Mk6s#Pi;e3ML4KT=a1n3?w;
zzyIg&H~%@YI6pf+cF$NO5*g3WX+`$FjotfqkFuxo#kZ%}>j2GFXvtZkP3)0K+Hk6b
z%UifciUb?&;~$f$NM!T@vs|H-!b3=RECB}?p=G(uIue<hZn;=rCX}m^nrWx_AJ2Wj
zbEc8vACU{7;ATnPoLloqX>Go&uPy7U!A~FMrdo(Oun5Im%WBv@YNhy&U&PkIvB+~B
z2whI`-J~joMK0@jgp&mj)qw&zB`&}?P~++mP67~!P!d5R3IUQ62tY2pcoxkwmQYcf
z31hKcimy}ZB2jEMn?f@tI9^SJs;Y`W5+y0h5K+HvQ{0N${-K@+jrh7}y3}-RF7Sw}
z&I(QOEYofYmfLr0`(c|{!^9SLMJRxvqz=%~`#5*SYjlDex=0$tA~y9I7WT2MONBxo
zKG3aY_0c}ft+I^5+6JQia@!?hk@(Jvr<2?&i+HG)m`{u3dTVaNoWVQBF3NfYQ^zYi
zPNPTIV%?#RUw2$CTapFH6|ipF!ATG<v>+O$B*ioOq$o&6CAlmy`eG;^n*<U9pbITH
zhPl-K7Zj?DW)y>egEH+HnBt*eLq|)FXJOVZGmyLJ+O<x!LILG%pJH1lc`e1WR0Y#C
zkUBFX%MfI936Oy>2Q#WHtBL~CaV4XuGVIxEj=mDm*t0dR+iJsX7d(@FLbx%=2Z$#D
zgo!vvNI*$Km`p2L8fqD+sj)PSDS=2kVnK7J&zNY3vM-V2;i_SB9ep6I2NF*4dcYYm
z`0&^qQ1#HLp>4BHn8W{|u^ZVB=S;fBIy77-;*B!*@#>Jg<ssd=Vcw9b4oQ9a{ja=3
z=XxF6HNqyL$On~(!OZB=A^wx8?p`CF$qJkC9E-VN9~T<P$xYN2*ct<rIF!$RqJJ57
zz1-OZ4VL}U%{KkvPi$7F$3}aZe+RSQ!drPQU2c8#%!`kXod^3zzg}PG-@DYjGGf2`
z{nn)iukICACU)oc{CeTq)*rjZ4_`2Tx+Al5<kRhk_nrFg0C?l%{4e)CzVOkl(zCHM
zJ9oXEojkL1%gdRcPgFOa-)#S$*n8(UAHIJ1w^u*AoE=f_Ke$=F_ex`8`?=a{m4i<G
ziHVmk?s?_p#=_yv>eEx3?XA|VeR@Onu9n~D&eqO9^?4GV-q*ai>xUOM9y7)h+sE$y
cWP0TG$d@H}?Aq+n$>5)s&&_LZW}aOC6VYf-z5oCK

diff --git a/public/plugins_packages/core/Forum/img/community.png b/public/plugins_packages/core/Forum/img/community.png
deleted file mode 100644
index e7e1ae0263416df144ed0d6761116500243586a6..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 364
zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6T^Rm@
z;DWu&Cj&(|3p^r=85p>QL70(Y)*K0-AbW|YuPgf<CUJH)24Caf8-YS^JY5_^EKXmY
zY}j|mK)^M=fq99;qEzkjus(<5hECq%HI2SrQinyqv3ax0nky7N=eq3J=;Ap&cTQ+Z
zQ-tQC8~VK_pZ}l9NYil-4ZX-}YqhAjd4(j0Zn^`P#exl|EY9~g`X}(@tTB4s&gOLb
zj{4OdjPm#FnF^h?*BDjqaFX&7XYSl?apBT-nUC5RWCE&+8^6uIy?*ZNcbnw>+|}jt
z8h3_1tGOHd?(oZu$3KlX)L1OKV8p0)Hg>Ji&I?B0YAzZ5-5$EEr)8S90=H`dqf8Xv
zjU&6R2gSU%s1D?rU|ZdK`~OdF<^>rKWjFlyZkAv6(4Jv!&yy8Ee=~Tx`njxgN@xNA
Dfa;1W

diff --git a/public/plugins_packages/core/Forum/img/corners_left.png b/public/plugins_packages/core/Forum/img/corners_left.png
deleted file mode 100644
index 256bde3daa62be78f5ba32f324fda6090183a2ce..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 195
zcmeAS@N?(olHy`uVBq!ia0vp^Y(UJz0U{m4&*%XumUKs7M+Sy#H?H_c7y<c`C9V-A
z!TD(=<%vb942~)JNvR5+xryniL8*x;m4zo$ZGehGJzX3_DsCnH=x4BRtS}O|&1@*m
z9P)uvK$^jjna9{6^pz6#Ar-a7Kq6;@r$Li$Qo@g;4Qw+c3K%A|80vKvtcm(yDgMkc
mHb-cK!b}EUA+`nvW`^vdMVItXEnEq-fWgz%&t;ucLK6VA^Ev<k

diff --git a/public/plugins_packages/core/Forum/img/corners_left_red.png b/public/plugins_packages/core/Forum/img/corners_left_red.png
deleted file mode 100644
index d3714b538f52b7de6eb6e2dd3c1fdeeeaa29c7c4..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 177
zcmeAS@N?(olHy`uVBq!ia0vp^Y(UJz0U{m4&*%Xu#^NA%Cx&(BWL|<~lf2zs82*Fc
zg1yTp14TFsJR*x37`TN&n2}-D90{Nxdx@v7EBg&57H(7Fw+H9M0EG-aT^vIsE+_vv
zf8fJ>M(za1hkyT{=SVh66n61gz`5v^gaN19vHv?t7kC;a@lN{xUy^b9O+I1aWs5<M
OV(@hJb6Mw<&;$TFK{QeT

diff --git a/public/plugins_packages/core/Forum/img/corners_right.png b/public/plugins_packages/core/Forum/img/corners_right.png
deleted file mode 100644
index df41823b4cb013ebcefd2ee446efa9a6f3a48a10..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 201
zcmeAS@N?(olHy`uVBq!ia0vp^Y(UJz0U{m4&*%XumUKs7M+Sy#H?H_c7y<c`C9V-A
z!TD(=<%vb942~)JNvR5+xryniL8*x;m4zo$ZGeiRJzX3_DsCnH`v2cvTHrSG#}tKs
zKjpb3E^J^FuxIo%FkH~Y?eK>4$o>ne4iAh3&L2`^WYRA5oO4L^V4Js-_;eQwGtO9r
vb18?EcF5l3lUA6=a3sAULP~`}Ac4V8+^F^0SN$nKYZyFT{an^LB{Ts5ju$_5

diff --git a/public/plugins_packages/core/Forum/img/corners_right_red.png b/public/plugins_packages/core/Forum/img/corners_right_red.png
deleted file mode 100644
index a479ee2dffe4d5a4c08b15b872a2b39029e616c3..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 181
zcmeAS@N?(olHy`uVBq!ia0vp^Y(UJz0U{m4&*%Xu#^NA%Cx&(BWL|<~lf2zs82*Fc
zg1yTp14TFsJR*x37`TN&n2}-D90{Nxdx@v7EBg&57H(64k`rg20fkIGT^vIsE+6eT
z<YQ3aI8t@wfBnyxBMT1R%-gbEp*eFx?4B+C7HQjl1tfiV;2*KyMV;}O?j+6vbzZSQ
T0$c6?4Pfwe^>bP0l+XkKSVlM9

diff --git a/public/plugins_packages/core/Forum/img/decline.png b/public/plugins_packages/core/Forum/img/decline.png
deleted file mode 100644
index 768cc36be6c049fab09428dda28468b1118f4e04..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 165
zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ii4<#Ar-flPCm%VV93F;Ud7v!
z^V|QOLf_;Bc@9lz7X7p1oj{M>q&0I|r-)pMi4s!S`k2*Y$}(Z2vrHbdtv4~MGO0x9
zA6VM?kadT{jXMl28zdP_1N!Ft{m1=B^2h!M?;H1b{?jd4Cx3m%xm)b5Kg(sh|JBz5
P?Pc(E^>bP0l+XkKU0gpE

diff --git a/public/plugins_packages/core/Forum/img/move.png b/public/plugins_packages/core/Forum/img/move.png
deleted file mode 100644
index 7f74aa5555ede5e445e776a0c13fc8832195919a..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 2882
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

diff --git a/public/plugins_packages/core/Forum/views/area/add.php b/public/plugins_packages/core/Forum/views/area/add.php
index d00db13f646..ba777fb0534 100644
--- a/public/plugins_packages/core/Forum/views/area/add.php
+++ b/public/plugins_packages/core/Forum/views/area/add.php
@@ -1,7 +1,7 @@
 <tr data-area-id="<?= $entry['topic_id'] ?>" <?= (ForumPerm::has('sort_area', $seminar_id)) ? 'class="movable"' : '' ?>>
     <td class="icon">
     <? if (ForumPerm::has('sort_area', $seminar_id)) : ?>
-        <img src="<?= $picturepath ?>/anfasser_48.png" class="handle js">
+        <?= Assets::img('anfasser_48.png', ['class' => 'handle js']) ?>
     <? endif ?>
 
         <a href="<?= $controller->link_for("index/index/{$entry['topic_id']}#{$entry['topic_id']}") ?>">
diff --git a/public/plugins_packages/core/Forum/views/index/_post.php b/public/plugins_packages/core/Forum/views/index/_post.php
index 26b971031f8..21a2dc3e854 100644
--- a/public/plugins_packages/core/Forum/views/index/_post.php
+++ b/public/plugins_packages/core/Forum/views/index/_post.php
@@ -195,12 +195,12 @@
 
                     <!-- Online-Status -->
                     <? $status = ForumHelpers::getOnlineStatus($post['user_id']) ?>
-                    <? if ($status == 'available') : ?>
-                        <img src="<?= $picturepath ?>/community.png" title="<?= _('Online') ?>">
-                    <? elseif ($status == 'away') : ?>
-                        <?= Icon::create('community', 'inactive', ['title' => _('Abwesend')])->asImg() ?>
-                    <? elseif ($status == 'offline') : ?>
-                        <?= Icon::create('community', 'info', ['title' => _('Offline')])->asImg() ?>
+                    <? if ($status === 'available') : ?>
+                        <?= Icon::create('community', Icon::ROLE_STATUS_GREEN, ['title' => _('Online')]) ?>
+                    <? elseif ($status === 'away') : ?>
+                        <?= Icon::create('community', Icon::ROLE_INACTIVE, ['title' => _('Abwesend')]) ?>
+                    <? elseif ($status === 'offline') : ?>
+                        <?= Icon::create('community', Icon::ROLE_INFO, ['title' => _('Offline')]) ?>
                     <? endif ?>
 
                     <a href="<?= URLHelper::getLink('dispatch.php/profile', ['username' => get_username($post['user_id'])])?>">
diff --git a/resources/assets/javascripts/init.js b/resources/assets/javascripts/init.js
index caf944e4bd7..07512c8c8bc 100644
--- a/resources/assets/javascripts/init.js
+++ b/resources/assets/javascripts/init.js
@@ -29,6 +29,7 @@ import Files from './lib/files.js';
 import FilesDashboard from './lib/files_dashboard.js';
 import Folders from './lib/folders.js';
 import Forms from './lib/forms.js';
+import Forum from './lib/forum.js';
 import Fullscreen from './lib/fullscreen.js';
 import GlobalSearch from './lib/global_search.js';
 import HeaderMagic from './lib/header_magic.js';
@@ -114,6 +115,7 @@ window.STUDIP = _.assign(window.STUDIP || {}, {
     FilesDashboard,
     Folders,
     Forms,
+    Forum,
     Fullscreen,
     Gettext,
     GlobalSearch,
diff --git a/public/plugins_packages/core/Forum/javascript/forum.js b/resources/assets/javascripts/lib/forum.js
similarity index 99%
rename from public/plugins_packages/core/Forum/javascript/forum.js
rename to resources/assets/javascripts/lib/forum.js
index 636ca474cd0..7626d2405a6 100644
--- a/public/plugins_packages/core/Forum/javascript/forum.js
+++ b/resources/assets/javascripts/lib/forum.js
@@ -1,10 +1,4 @@
-/*global window, $, jQuery, document, _ */
-/* ------------------------------------------------------------------------
- * the global STUDIP namespace
- * ------------------------------------------------------------------------ */
-var STUDIP = STUDIP || {};
-
-STUDIP.Forum = {
+const Forum = {
     confirmDialog: null,
     current_area_id: null,
     current_category_id: null,
@@ -890,3 +884,5 @@ jQuery.fn.serializeObject = function() {
     });
     return o;
 };
+
+export default Forum;
diff --git a/public/plugins_packages/core/Forum/stylesheets/forum.scss b/resources/assets/stylesheets/scss/forum.scss
similarity index 100%
rename from public/plugins_packages/core/Forum/stylesheets/forum.scss
rename to resources/assets/stylesheets/scss/forum.scss
diff --git a/resources/assets/stylesheets/studip.scss b/resources/assets/stylesheets/studip.scss
index 1c92ea605a7..83bd85372ea 100644
--- a/resources/assets/stylesheets/studip.scss
+++ b/resources/assets/stylesheets/studip.scss
@@ -18,6 +18,7 @@
 @import "scss/courseware";
 @import "scss/dates";
 @import "scss/files";
+@import "scss/forum";
 @import "scss/fullscreen";
 @import "scss/progress_indicator.scss";
 @import "scss/my_courses";
-- 
GitLab