Browse Source

Minor: Ticket: Improve tickets tool display - refs BT#13787

Yannick Warnier 7 years ago
parent
commit
527959e5b2

+ 36 - 16
main/inc/lib/TicketManager.php

@@ -5,6 +5,7 @@ use Chamilo\TicketBundle\Entity\Project;
 use Chamilo\TicketBundle\Entity\Status;
 use Chamilo\TicketBundle\Entity\Priority;
 use Chamilo\TicketBundle\Entity\Ticket;
+use \Database;
 
 /**
  * Class TicketManager
@@ -2172,29 +2173,48 @@ class TicketManager
     }
 
     /**
-     * @return string
+     * Returns a list of menu elements for the tickets system's configuration
+     * @param string $exclude The element to exclude from the list
+     * @return array
      */
-    public static function getSettingsMenu()
+    public static function getSettingsMenuItems($exclude = null)
     {
-        $items = [
-            [
-                'url' => 'projects.php',
-                'content' => get_lang('Projects')
-            ],
-            [
-                'url' => 'status.php',
-                'content' => get_lang('Status')
-            ],
-            [
-                'url' => 'priorities.php',
-                'content' => get_lang('Priority')
-            ]
+        $items = [];
+        $project = [
+            'icon' => 'career.png',
+            'url' => 'projects.php',
+            'content' => get_lang('Projects')
+        ];
+        $status = [
+            'icon' => 'check-circle.png',
+            'url' => 'status.php',
+            'content' => get_lang('Status')
+        ];
+        $priority = [
+            'icon' => 'order-course.png',
+            'url' => 'priorities.php',
+            'content' => get_lang('Priority')
         ];
+        switch ($exclude) {
+            case 'project':
+                $items = [$status, $priority];
+                break;
+            case 'status':
+                $items = [$project, $priority];
+                break;
+            case 'priority':
+                $items = [$project, $status];
+                break;
+            default:
+                $items = [$project, $status, $priority];
+                break;
+        }
 
-        echo Display::actions($items);
+        return $items;
     }
 
     /**
+     * Returns a list of strings representing the default statuses
      * @return array
      */
     public static function getDefaultStatusList()

+ 17 - 6
main/ticket/priorities.php

@@ -150,13 +150,24 @@ $table->set_column_filter('3', 'modify_filter');
 Display::display_header($toolName);
 
 $items = [
-    [
-        'url' => 'priorities.php?action=add',
-        'content' => Display::return_icon('new_folder.png', null, null, ICON_SIZE_MEDIUM)
-    ]
+    'icon' => 'new_folder.png',
+    'url' => 'priorities.php?action=add',
+    'content' => get_lang('AddPriority')
 ];
-
-echo Display::actions($items);
+echo '<div class="actions">';
+echo Display::url(
+    Display::return_icon('back.png', get_lang('Tickets'), [], ICON_SIZE_MEDIUM),
+    api_get_path(WEB_CODE_PATH).'ticket/tickets.php'
+);
+$sections = TicketManager::getSettingsMenuItems('priority');
+array_unshift($sections, $items);
+foreach ($sections as $item) {
+    echo Display::url(
+        Display::return_icon($item['icon'], $item['content'], [], ICON_SIZE_MEDIUM),
+        $item['url']
+    );
+}
+echo '</div>';
 echo $formToString;
 echo $table->return_table();
 

+ 18 - 5
main/ticket/projects.php

@@ -161,13 +161,26 @@ $table->set_column_filter('3', 'modify_filter');
 Display::display_header('');
 
 $items = [
-    [
-        'url' => 'projects.php?action=add',
-        'content' => Display::return_icon('new_folder.png', null, null, ICON_SIZE_MEDIUM)
-    ]
+    'icon' => 'new_folder.png',
+    'url' => 'projects.php?action=add',
+    'content' => get_lang('AddProject')
 ];
 
-echo Display::actions($items);
+echo '<div class="actions">';
+echo Display::url(
+    Display::return_icon('back.png', get_lang('Tickets'), [], ICON_SIZE_MEDIUM),
+    api_get_path(WEB_CODE_PATH).'ticket/tickets.php'
+);
+$sections = TicketManager::getSettingsMenuItems('project');
+array_unshift($sections, $items);
+foreach ($sections as $item) {
+    echo Display::url(
+        Display::return_icon($item['icon'], $item['content'], [], ICON_SIZE_MEDIUM),
+        $item['url']
+    );
+}
+echo '</div>';
+
 echo $formToString;
 echo $table->return_table();
 

+ 8 - 1
main/ticket/settings.php

@@ -21,8 +21,15 @@ echo Display::url(
     Display::return_icon('back.png', get_lang('Tickets'), [], ICON_SIZE_MEDIUM),
     api_get_path(WEB_CODE_PATH).'ticket/tickets.php'
 );
+$sections = TicketManager::getSettingsMenuItems();
+foreach ($sections as $item) {
+    echo Display::url(
+        Display::return_icon($item['icon'], $item['content'], [], ICON_SIZE_MEDIUM),
+        $item['url']
+    );
+}
 echo '</div>';
 
-echo TicketManager::getSettingsMenu();
+
 
 Display::display_footer();

+ 17 - 6
main/ticket/status.php

@@ -151,13 +151,24 @@ $table->set_column_filter('3', 'modify_filter');
 Display::display_header($toolName);
 
 $items = [
-    [
-        'url' => 'status.php?action=add',
-        'content' => Display::return_icon('new_folder.png', null, null, ICON_SIZE_MEDIUM)
-    ]
+    'icon' => 'new_folder.png',
+    'url' => 'status.php?action=add',
+    'content' => get_lang('AddStatus')
 ];
-
-echo Display::actions($items);
+echo '<div class="actions">';
+echo Display::url(
+    Display::return_icon('back.png', get_lang('Tickets'), [], ICON_SIZE_MEDIUM),
+    api_get_path(WEB_CODE_PATH).'ticket/tickets.php'
+);
+$sections = TicketManager::getSettingsMenuItems('status');
+array_unshift($sections, $items);
+foreach ($sections as $item) {
+    echo Display::url(
+        Display::return_icon($item['icon'], $item['content'], [], ICON_SIZE_MEDIUM),
+        $item['url']
+    );
+}
+echo '</div>';
 echo $formToString;
 echo $table->return_table();
 

+ 1 - 1
main/ticket/tickets.php

@@ -256,7 +256,7 @@ if (!empty($projectId)) {
         $actionRight .= Display::url(
             Display::return_icon(
                 'settings.png',
-                get_lang('Categories'),
+                get_lang('Settings'),
                 null,
                 ICON_SIZE_MEDIUM
             ),