Browse Source

Fix link to edit session when grid view is enabled - refs BT#14345

Angel Fernando Quiroz Campos 6 years ago
parent
commit
760c6c6b4c

+ 28 - 13
main/inc/lib/sessionmanager.lib.php

@@ -4582,6 +4582,33 @@ SQL;
         return $count;
     }
 
+    /**
+     * @param int  $id
+     * @param bool $checkSession
+     *
+     * @return bool
+     */
+    public static function cantEditSession($id, $checkSession = true)
+    {
+        if (!self::allowToManageSessions()) {
+            return false;
+        }
+
+        if (api_is_platform_admin() && self::allowed($id)) {
+            return true;
+        }
+
+        if ($checkSession) {
+            if (self::allowed($id)) {
+                return true;
+            }
+
+            return false;
+        }
+
+        return true;
+    }
+
     /**
      * Protect a session to be edited.
      *
@@ -4592,19 +4619,7 @@ SQL;
      */
     public static function protectSession($id, $checkSession = true)
     {
-        if (self::allowToManageSessions()) {
-            if (api_is_platform_admin() && self::allowed($id)) {
-                return true;
-            }
-
-            if ($checkSession) {
-                if (self::allowed($id)) {
-                    return true;
-                } else {
-                    api_not_allowed(true);
-                }
-            }
-        } else {
+        if (!self::cantEditSession($id, $checkSession)) {
             api_not_allowed(true);
         }
     }

+ 2 - 4
main/inc/lib/userportal.lib.php

@@ -1529,8 +1529,6 @@ class IndexManager
                                     'id' => $session_id,
                                 ];
                                 $session_box = Display::getSessionTitleBox($session_id);
-                                $actions = api_get_path(WEB_CODE_PATH).
-                                    'session/resume_session.php?id_session='.$session_id;
                                 $coachId = $session_box['id_coach'];
                                 $extraFieldValue = new ExtraFieldValue('session');
                                 $imageField = $extraFieldValue->get_values_by_handler_and_field_variable(
@@ -1552,7 +1550,7 @@ class IndexManager
                                 $params['date'] = $session_box['dates'];
                                 $params['image'] = isset($imageField['value']) ? $imageField['value'] : null;
                                 $params['duration'] = isset($session_box['duration']) ? ' '.$session_box['duration'] : null;
-                                $params['edit_actions'] = $actions;
+                                $params['show_actions'] = SessionManager::cantEditSession($session_id);
                                 $params['show_description'] = $session_box['show_description'] == 1 && $portalShowDescription;
                                 $params['description'] = $session_box['description'];
                                 $params['visibility'] = $session_box['visibility'];
@@ -1687,7 +1685,7 @@ class IndexManager
                                     $sessionParams[0]['course_list_session_style'] = $coursesListSessionStyle;
                                     $sessionParams[0]['title'] = $session_box['title'];
                                     $sessionParams[0]['subtitle'] = (!empty($session_box['coach']) ? $session_box['coach'].' | ' : '').$session_box['dates'];
-                                    $sessionParams[0]['show_actions'] = api_is_platform_admin();
+                                    $sessionParams[0]['show_actions'] = SessionManager::cantEditSession($session_id);
                                     $sessionParams[0]['courses'] = $html_courses_session;
                                     $sessionParams[0]['show_simple_session_info'] = $showSimpleSessionInfo;
                                     $sessionParams[0]['coach_name'] = !empty($session_box['coach']) ? $session_box['coach'] : null;

+ 5 - 4
main/template/default/user_portal/grid_session.tpl

@@ -9,7 +9,7 @@
                     <span class="category">{{ course.category }}</span>
                     <div class="cribbon"></div>
                 {% endif %}
-                {% if course.edit_actions != '' %}
+                {% if course.edit_actions %}
                     <div class="admin-actions">
                         {% if course.document == '' %}
                             <a class="btn btn-default btn-sm" href="{{ course.edit_actions }}">
@@ -145,10 +145,11 @@
                     </a>
                     {% set collapsable = 'collapse' %}
                 {% endif %}
-                {% if row.edit_actions != '' %}
+                {% if row.show_actions %}
                     <div class="pull-right">
-                        <a class="btn btn-default btn-sm" href="{{ row.edit_actions }}">
-                            <i class="fa fa-pencil" aria-hidden="true"></i>
+                        <a href="{{ _p.web_main ~ "session/resume_session.php?id_session=" ~ row.id }}">
+                            <img src="{{ "edit.png"|icon(22) }}" width="22" height="22" alt="{{ "Edit"|get_lang }}"
+                                 title="{{ "Edit"|get_lang }}">
                         </a>
                     </div>
                 {% endif %}