diff --git a/hook.php b/hook.php index 747d2ed6c..35ca25343 100644 --- a/hook.php +++ b/hook.php @@ -521,12 +521,34 @@ function plugin_formcreator_redefine_menus($menus) { } if (plugin_formcreator_replaceHelpdesk() !== false) { - if (isset($menus['create_ticket'])) { - unset($menus['create_ticket']); + $newMenu = []; + $newMenu['seek_assistance'] = [ + 'default' => Plugin::getWebDir('formcreator', false) . '/front/wizard.php', + 'title' => __('Seek assistance', 'formcreator'), + 'icon' => 'fa fa-paper-plane', + ]; + $newMenu['my_assistance_requests'] = [ + 'default' => PluginFormcreatorIssue::getSearchURL(false), + 'title' => __('My requests for assistance', 'formcreator'), + 'icon' => 'fa fa-list', + ]; + if (PluginFormcreatorEntityConfig::getUsedConfig('is_kb_separated', Session::getActiveEntity()) == PluginFormcreatorEntityConfig::CONFIG_KB_DISTINCT + && Session::haveRight('knowbase', KnowbaseItem::READFAQ) + ) { + $newMenu['faq'] = $menus['faq']; } - $menus['faq']['default'] = Plugin::getWebDir('formcreator', false) . '/front/knowbaseitem.php'; - - return $menus; + $newMenu['faq']['default'] = Plugin::getWebDir('formcreator', false) . '/front/knowbaseitem.php'; + if (Session::haveRight("reservation", ReservationItem::RESERVEANITEM)) { + $newMenu['reservation'] = $menus['reservation']; + } + if (RSSFeed::canView()) { + $newMenu['feeds'] = [ + 'default' => Plugin::getWebDir('formcreator', false) . '/front/wizardfeeds.php', + 'title' => __('Consult feeds', 'formcreator'), + 'icon' => 'fa fa-rss', + ]; + } + return $newMenu; } // Using GLPI's helpdesk interface; then just modify the menu diff --git a/inc/formlist.class.php b/inc/formlist.class.php index 7d2f666e3..3cfadb184 100644 --- a/inc/formlist.class.php +++ b/inc/formlist.class.php @@ -48,7 +48,7 @@ public static function getTypeName($nb = 0) { public static function getMenuContent() { $menu = parent::getMenuContent(); - $menu['title'] = static::getTypeName(2); + $menu['title'] = static::getTypeName(Session::getPluralNumber()); $menu['page'] = PluginFormcreatorFormList::getSearchURL(false); $menu['icon'] = 'fas fa-edit'; diff --git a/tests/3-unit/PluginFormcreatorFormList.php b/tests/3-unit/PluginFormcreatorFormList.php index bc09c9d40..bbe5975d8 100644 --- a/tests/3-unit/PluginFormcreatorFormList.php +++ b/tests/3-unit/PluginFormcreatorFormList.php @@ -65,14 +65,8 @@ public function testGetTypeName($nb, $expected) { public function testGetMenuContent() { $output = \PluginFormcreatorFormList::getMenuContent(); $plugindir = '/' . basename(dirname(dirname(dirname(__DIR__)))); - $this->string($output['links']['search'])->isEqualTo($plugindir . '/formcreator/front/formlist.php'); - $this->array($output['links'])->notHasKey('add'); - $this->string($output['links']['config'])->isEqualTo($plugindir . '/formcreator/front/form.php'); - - $this->login('glpi', 'glpi'); - $output = \PluginFormcreatorFormList::getMenuContent(); - $this->string($output['links']['search'])->isEqualTo($plugindir . '/formcreator/front/formlist.php'); - $this->string($output['links']['add'])->isEqualTo($plugindir . '/formcreator/front/form.form.php'); - $this->string($output['links']['config'])->isEqualTo($plugindir . '/formcreator/front/form.php'); + $this->string($output['title'])->isEqualTo('Forms'); + $this->string($output['page'])->isEqualTo($plugindir . '/formcreator/front/formlist.php'); + $this->string($output['icon'])->isEqualTo('fas fa-edit'); } }