From cc54019c24afc324473ba4a5295423b2d848e8e4 Mon Sep 17 00:00:00 2001
From: David Siegfried <david.siegfried@uni-vechta.de>
Date: Wed, 11 May 2022 20:03:02 +0000
Subject: [PATCH] fix icons und html-structure, closes #1036

Closes #1036

Merge request studip/studip!608
---
 app/views/course/statusgroups/_group.php      | 188 +++++++++---------
 .../assets/stylesheets/less/content_box.less  |   4 +-
 2 files changed, 95 insertions(+), 97 deletions(-)

diff --git a/app/views/course/statusgroups/_group.php b/app/views/course/statusgroups/_group.php
index 1110e7caabf..aa0ebb2b111 100644
--- a/app/views/course/statusgroups/_group.php
+++ b/app/views/course/statusgroups/_group.php
@@ -26,124 +26,122 @@
                 </a>
             <?php endif ?>
         </h1>
-        <nav>
-            <?php if ($is_autor && !$is_tutor && $group->id != 'nogroup' && $group->isMember($GLOBALS['user']->id)) : ?>
-                <a href="<?= $controller->link_for('messages/write', [
-                            'group_id' => $group->id,
-                            'default_subject' => htmlReady($course_title . ' (' . $group->name . ')'),
-                        ]) ?>" data-dialog="size=auto">
-                    <?= Icon::create('mail', 'clickable', ['title' => sprintf(
-                            _('Nachricht an alle Mitglieder der Gruppe %s schicken'),
-                            $group->name
-                        ),
-                    ]) ?>
-                </a>
-            <?php endif ?>
-            <?php if (!$GLOBALS['perm']->have_perm('admin')) : ?>
+        <?php if ($is_autor && !$is_tutor && $group->id != 'nogroup' && $group->isMember($GLOBALS['user']->id)) : ?>
+            <a href="<?= $controller->link_for('messages/write', [
+                        'group_id' => $group->id,
+                        'default_subject' => htmlReady($course_title . ' (' . $group->name . ')'),
+                    ]) ?>" data-dialog="size=auto">
+                <?= Icon::create('mail', Icon::ROLE_CLICKABLE, ['title' => sprintf(
+                        _('Nachricht an alle Mitglieder der Gruppe %s schicken'),
+                        $group->name
+                    ),
+                ]) ?>
+            </a>
+        <?php endif ?>
+        <?php if (!$GLOBALS['perm']->have_perm('admin')) : ?>
+            <nav>
                 <?php if ($group->id != 'nogroup' && $joinable) : ?>
                     <a href="<?= $controller->url_for('course/statusgroups/join', $group->id) ?>">
-                        <?= Icon::create('door-enter', 'clickable',
+                        <?= Icon::create('door-enter', Icon::ROLE_CLICKABLE,
                             ['title' => sprintf(_('Mitglied von Gruppe %s werden'),
                                 htmlReady($group->name))]) ?></a>
                 <?php elseif ($group->id != 'nogroup' && $group->selfassign &&
                     $group->selfassign_start > time()) : ?>
-                    <?= Icon::create('door-enter', 'inactive',
+                    <?= Icon::create('door-enter', Icon::ROLE_INACTIVE,
                         ['title' => sprintf(_('Der Eintrag in diese Gruppe ist möglich ab %s.'),
                             date('d.m.Y H:i', $group->selfassign_start))]) ?>
                 <?php elseif ($group->id != 'nogroup' && $group->selfassign &&
                     $group->selfassign_end && $group->selfassign_end < time()) : ?>
-                    <?= Icon::create('door-enter', 'inactive',
+                    <?= Icon::create('door-enter', Icon::ROLE_INACTIVE,
                         ['title' => sprintf(_('Der Eintrag in diese Gruppe war möglich bis %s.'),
                             date('d.m.Y H:i', $group->selfassign_end))]) ?>
                 <?php elseif ($group->id != 'nogroup' && $group->userMayLeave($GLOBALS['user']->id)) : ?>
                     <a href="<?= $controller->url_for('course/statusgroups/leave', $group->id) ?>" data-confirm="<?= sprintf(_('Aus Gruppe %s austragen'),htmlReady($group->name)) . '?' ?>">
-                        <?= Icon::create('door-leave', 'attention',
+                        <?= Icon::create('door-leave', Icon::ROLE_ATTENTION,
                             ['title' => sprintf(_('Aus Gruppe %s austragen'),
                                 htmlReady($group->name))]) ?></a>
                 <?php endif ?>
-            <?php endif ?>
-            <?php if ($is_tutor) : ?>
-                <?php if ($group->id != 'nogroup') : ?>
-                    <?= ActionMenu::get()->setContext($group->name)
-                          ->addLink(
-                              $controller->url_for('messages/write', [
-                                  'group_id' => $group->id,
-                                  'default_subject' => htmlReady($course_title . ' (' . $group->name . ')'),
-                              ]),
-                              _('Nachricht schicken'),
-                              Icon::create('mail', 'clickable', [
-                                  'title' => sprintf(
-                                      _('Nachricht an alle Mitglieder der Gruppe %s schicken'),
-                                      $group->name
-                                  ),
-                              ]),
-                              ['data-dialog' => 'size=auto']
-                          )
-                          ->condition(!($is_participants_locked || $is_locked) && count($allmembers) < 500)
-                          ->addMultiPersonSearch(
-                              MultiPersonSearch::get('add_statusgroup_member' . $group->id)
-                                  ->setTitle(sprintf(_('Personen zu Gruppe %s hinzufügen'), $group->name))
-                                  ->setLinkText(_('Personen hinzufügen'))
-                                  ->setSearchObject($memberSearch)
-                                  ->setDefaultSelectedUser($group->members->pluck('user_id'))
-                                  ->setDataDialogStatus(Request::isXhr())
-                                  ->setJSFunctionOnSubmit(Request::isXhr() ?
-                                                'STUDIP.Dialog.close();' : false)
-                                  ->setExecuteURL($controller->url_for('course/statusgroups/add_member/' .
-                                                $group->id))
-                                  ->addQuickfilter(_('Veranstaltungsteilnehmende'),
-                                                $allmembers ? $allmembers->pluck('user_id') : [])
-                                  ->addQuickfilter(_('Teilnehmende ohne Gruppenzuordnung'),
-                                      $nogroupmembers)
-                          )
-                          ->condition(!($is_participants_locked || $is_locked) && count($allmembers) >= 500)
-                          ->addMultiPersonSearch(
-                              MultiPersonSearch::get('add_statusgroup_member' . $group->id)
-                                  ->setTitle(sprintf(_('Personen zu Gruppe %s hinzufügen'), $group->name))
-                                  ->setLinkText(_('Personen hinzufügen'))
-                                  ->setSearchObject($memberSearch)
-                                  ->setDefaultSelectedUser($group->members->pluck('user_id'))
-                                  ->setDataDialogStatus(Request::isXhr())
-                                  ->setJSFunctionOnSubmit(Request::isXhr() ?
-                                                'STUDIP.Dialog.close();' : false)
-                                  ->setExecuteURL($controller->url_for('course/statusgroups/add_member/' .
-                                                $group->id))
-                          )
-                          ->conditionAll(!$is_locked)
-                          ->addLink(
-                              $controller->url_for('course/statusgroups/edit', $group->id),
-                              _('Bearbeiten'),
-                              Icon::create('edit', 'clickable', [
-                                  'title' => sprintf(
-                                      _('Gruppe %s bearbeiten'),
-                                      $group->name
-                                   )
-                              ]),
-                              ['data-dialog' => '']
-                          )
-                          ->addLink(
-                              $controller->url_for('course/statusgroups/delete', $group->id),
-                              _('Löschen'),
-                              Icon::create('trash', 'clickable', [
-                                  'title' => sprintf(
-                                      _('Gruppe %s löschen'),
-                                      $group->name
-                                   )
-                              ]),
-                              ['data-confirm' => _('Soll die Gruppe wirklich gelöscht werden?')]
-                          ) ?>
-                <?php else : ?>
+            </nav>
+        <?php endif ?>
+        <?php if ($is_tutor) : ?>
+            <?php if ($group->id != 'nogroup') : ?>
+                <?= ActionMenu::get()->setContext($group->name)
+                      ->addLink(
+                          $controller->url_for('messages/write', [
+                              'group_id' => $group->id,
+                              'default_subject' => htmlReady($course_title . ' (' . $group->name . ')'),
+                          ]),
+                          _('Nachricht schicken'),
+                          Icon::create('mail', Icon::ROLE_CLICKABLE, [
+                              'title' => sprintf(
+                                  _('Nachricht an alle Mitglieder der Gruppe %s schicken'),
+                                  $group->name
+                              ),
+                          ]),
+                          ['data-dialog' => 'size=auto']
+                      )
+                      ->condition(!($is_participants_locked || $is_locked) && count($allmembers) < 500)
+                      ->addMultiPersonSearch(
+                          MultiPersonSearch::get('add_statusgroup_member' . $group->id)
+                              ->setTitle(sprintf(_('Personen zu Gruppe %s hinzufügen'), $group->name))
+                              ->setLinkText(_('Personen hinzufügen'))
+                              ->setSearchObject($memberSearch)
+                              ->setDefaultSelectedUser($group->members->pluck('user_id'))
+                              ->setDataDialogStatus(Request::isXhr())
+                              ->setJSFunctionOnSubmit(Request::isXhr() ? 'STUDIP.Dialog.close();' : false)
+                              ->setExecuteURL($controller->url_for('course/statusgroups/add_member/' .
+                                            $group->id))
+                              ->addQuickfilter(_('Veranstaltungsteilnehmende'),
+                                            $allmembers ? $allmembers->pluck('user_id') : [])
+                              ->addQuickfilter(_('Teilnehmende ohne Gruppenzuordnung'),
+                                  $nogroupmembers)
+                      )
+                      ->condition(!($is_participants_locked || $is_locked) && count($allmembers) >= 500)
+                      ->addMultiPersonSearch(
+                          MultiPersonSearch::get('add_statusgroup_member' . $group->id)
+                              ->setTitle(sprintf(_('Personen zu Gruppe %s hinzufügen'), $group->name))
+                              ->setLinkText(_('Personen hinzufügen'))
+                              ->setSearchObject($memberSearch)
+                              ->setDefaultSelectedUser($group->members->pluck('user_id'))
+                              ->setDataDialogStatus(Request::isXhr())
+                              ->setJSFunctionOnSubmit(Request::isXhr() ? 'STUDIP.Dialog.close();' : false)
+                              ->setExecuteURL($controller->url_for('course/statusgroups/add_member/' . $group->id))
+                      )
+                      ->conditionAll(!$is_locked)
+                      ->addLink(
+                          $controller->url_for('course/statusgroups/edit', $group->id),
+                          _('Bearbeiten'),
+                          Icon::create('edit', Icon::ROLE_CLICKABLE, [
+                              'title' => sprintf(
+                                  _('Gruppe %s bearbeiten'),
+                                  $group->name
+                               )
+                          ]),
+                          ['data-dialog' => '']
+                      )
+                      ->addLink(
+                          $controller->url_for('course/statusgroups/delete', $group->id),
+                          _('Löschen'),
+                          Icon::create('trash', Icon::ROLE_CLICKABLE, [
+                              'title' => sprintf(
+                                  _('Gruppe %s löschen'),
+                                  $group->name
+                               )
+                          ]),
+                          ['data-confirm' => _('Soll die Gruppe wirklich gelöscht werden?')]
+                      ) ?>
+            <?php else : ?>
+                <nav>
                     <a href="<?= $controller->url_for('messages/write', [
                         'filter' => 'not_grouped',
                         'course_id' => $course_id,
                         'default_subject' => htmlReady($course_title).' ('.htmlReady($group->name).')'
                     ]) ?>" data-dialog="size=auto;">
-                        <?= Icon::create('mail', 'clickable', [
-                                'title' => _('Nachricht an alle nicht zugeordneten Personen schicken')
-                        ])->asImg(20) ?></a>
-                <?php endif ?>
+                        <?= Icon::create('mail')->asImg(['title' => _('Nachricht an alle nicht zugeordneten Personen schicken')]) ?>
+                    </a>
+                </nav>
             <?php endif ?>
-        </nav>
+        <?php endif ?>
     </header>
     <section>
         <article id="group-members-<?= $group->id ?>"<?= $load ? ' class="open"' : ''?>>
diff --git a/resources/assets/stylesheets/less/content_box.less b/resources/assets/stylesheets/less/content_box.less
index 9485c9a2457..2d3482fafe8 100644
--- a/resources/assets/stylesheets/less/content_box.less
+++ b/resources/assets/stylesheets/less/content_box.less
@@ -150,12 +150,12 @@ section.contentbox {
                 align-items: center;
             }
             nav {
-                a, span {
+                a, > span {
                     display: inline-block;
                     vertical-align: middle;
                 }
 
-                span {
+                > span {
                     &:last-child {
                         border-right: none;
                         padding-right: 0px;
-- 
GitLab