From 0942470fbba07c3fa5e5cadb6ced3fc22218f2f5 Mon Sep 17 00:00:00 2001
From: Romain Lecouvreur <102067890+RomainLvr@users.noreply.github.com>
Date: Thu, 6 Nov 2025 10:31:38 +0100
Subject: [PATCH 1/8] Fix (Uninstall) - Restore mini-dashboard delete function
(#3621)
* Fix (Uninstall) - Restore mini-dashboard delete function
* Fix phpstan
* Fix phpstan
* Update src/Install.php
Co-authored-by: Romain B. <8530352+Rom1-B@users.noreply.github.com>
* Delete phpunit.xml to avoid CI errors
---------
Co-authored-by: Romain B. <8530352+Rom1-B@users.noreply.github.com>
---
phpunit.xml | 8 --------
src/Install.php | 9 +++++++++
2 files changed, 9 insertions(+), 8 deletions(-)
delete mode 100644 phpunit.xml
diff --git a/phpunit.xml b/phpunit.xml
deleted file mode 100644
index 44332c9cf..000000000
--- a/phpunit.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
- tests/units
-
-
-
\ No newline at end of file
diff --git a/src/Install.php b/src/Install.php
index a3b8e478f..58f918829 100644
--- a/src/Install.php
+++ b/src/Install.php
@@ -491,6 +491,14 @@ protected function deleteTables() {
$displayPreference->deleteByCriteria(['itemtype' => 'PluginFormcreatorIssue']);
}
+ protected function deleteMiniDashboard(): bool {
+ $dashboard = new Dashboard();
+
+ return $dashboard->deleteByCriteria([
+ 'key' => 'plugin_formcreator_issue_counters'
+ ]);
+ }
+
/**
* http://stackoverflow.com/questions/834303/startswith-and-endswith-functions-in-php
* @param string $haystack
@@ -508,6 +516,7 @@ public function uninstall() {
$this->deleteTicketRelation();
$this->deleteTables();
$this->deleteNotifications();
+ $this->deleteMiniDashboard();
$config = new Config();
$config->deleteByCriteria(['context' => 'formcreator']);
From c5483dff1ad3fef777e69113f926969d14a1a858 Mon Sep 17 00:00:00 2001
From: Romain Lecouvreur <102067890+RomainLvr@users.noreply.github.com>
Date: Mon, 10 Nov 2025 09:11:51 +0100
Subject: [PATCH 2/8] Fix (Uninstall) - Class Install not found while uninstall
(#3622)
---
hook.php | 2 ++
1 file changed, 2 insertions(+)
diff --git a/hook.php b/hook.php
index d12b93966..c745a3bb4 100644
--- a/hook.php
+++ b/hook.php
@@ -67,6 +67,8 @@ function plugin_formcreator_install() {
* @return boolean
*/
function plugin_formcreator_uninstall() {
+ spl_autoload_register('plugin_formcreator_autoload');
+
$migration = new Migration(PLUGIN_FORMCREATOR_SCHEMA_VERSION);
// Display EOL uninstall message
From 65a9748a98ce450e47cd641486e4ca9f166d696a Mon Sep 17 00:00:00 2001
From: RomainLvr
Date: Mon, 10 Nov 2025 09:59:26 +0100
Subject: [PATCH 3/8] 3.0.1
---
CHANGELOG.md | 9 ++++++++-
package.json | 2 +-
plugin.xml | 5 +++++
setup.php | 2 +-
4 files changed, 15 insertions(+), 3 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 48579dbe4..681b008c4 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,13 @@
# Formcreator Changelog
-## [3.0.0 (Migration Only)](https://github.com/pluginsGLPI/formcreator/compare/2.13.10...3.0.0) (Unreleased)
+## [3.0.1] - 2025-11-10
+
+### Fixed
+
+- Fixed the removal of the mini dashboard when uninstalling the plugin
+- Fixed the `class not found` error during uninstallation
+
+## [3.0.0 (Migration Only)](https://github.com/pluginsGLPI/formcreator/compare/2.13.10...3.0.0) 2025-09-30
### 🚨 BREAKING CHANGES - END OF LIFE VERSION
diff --git a/package.json b/package.json
index 3e3fc1e39..d5b87961b 100644
--- a/package.json
+++ b/package.json
@@ -14,5 +14,5 @@
"tag": true
}
},
- "version": "3.0.0"
+ "version": "3.0.1"
}
diff --git a/plugin.xml b/plugin.xml
index 2b6e7f002..709476423 100644
--- a/plugin.xml
+++ b/plugin.xml
@@ -55,6 +55,11 @@ This version only provides migration support. For form functionality, use GLPI 1
Teclib'
+
+ 3.0.1
+ ~11.0
+ https://github.com/pluginsGLPI/formcreator/releases/download/3.0.1/glpi-formcreator-3.0.1.tar.bz2
+
3.0.0
~11.0
diff --git a/setup.php b/setup.php
index f4ed3090b..88d9f24fe 100644
--- a/setup.php
+++ b/setup.php
@@ -38,7 +38,7 @@
/** @var array $CFG_GLPI */
global $CFG_GLPI;
// Version of the plugin (major.minor.bugfix)
-define('PLUGIN_FORMCREATOR_VERSION', '3.0.0');
+define('PLUGIN_FORMCREATOR_VERSION', '3.0.1');
// Schema version of this version (major.minor only)
define('PLUGIN_FORMCREATOR_SCHEMA_VERSION', '3.0');
// is or is not an official release of the plugin
From f017dfeea0141b5cdd7c9a49e9b0336ed0d88f87 Mon Sep 17 00:00:00 2001
From: RomainLvr
Date: Mon, 10 Nov 2025 10:08:37 +0100
Subject: [PATCH 4/8] Add empty SQL file
---
.../mysql/plugin_formcreator_3.0.1_empty.sql | 380 ++++++++++++++++++
1 file changed, 380 insertions(+)
create mode 100644 install/mysql/plugin_formcreator_3.0.1_empty.sql
diff --git a/install/mysql/plugin_formcreator_3.0.1_empty.sql b/install/mysql/plugin_formcreator_3.0.1_empty.sql
new file mode 100644
index 000000000..1553ed42b
--- /dev/null
+++ b/install/mysql/plugin_formcreator_3.0.1_empty.sql
@@ -0,0 +1,380 @@
+--
+--
+-- ---------------------------------------------------------------------
+-- Formcreator is a plugin which allows creation of custom forms of
+-- easy access.
+-- ---------------------------------------------------------------------
+-- LICENSE
+--
+-- This file is part of Formcreator.
+--
+-- Formcreator is free software; you can redistribute it and/or modify
+-- it under the terms of the GNU General Public License as published by
+-- the Free Software Foundation; either version 2 of the License, or
+-- (at your option) any later version.
+--
+-- Formcreator is distributed in the hope that it will be useful,
+-- but WITHOUT ANY WARRANTY; without even the implied warranty of
+-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+-- GNU General Public License for more details.
+--
+-- You should have received a copy of the GNU General Public License
+-- along with Formcreator. If not, see .
+-- ---------------------------------------------------------------------
+-- @copyright Copyright © 2011 - 2018 Teclib'
+-- @license http://www.gnu.org/licenses/gpl.txt GPLv3+
+-- @link https://github.com/pluginsGLPI/formcreator/
+-- @link https://pluginsglpi.github.io/formcreator/
+-- @link http://plugins.glpi-project.org/#/plugin/formcreator
+-- ---------------------------------------------------------------------
+--
+
+CREATE TABLE IF NOT EXISTS `glpi_plugin_formcreator_answers` (
+ `id` int unsigned NOT NULL AUTO_INCREMENT,
+ `plugin_formcreator_formanswers_id` int unsigned NOT NULL DEFAULT '0',
+ `plugin_formcreator_questions_id` int unsigned NOT NULL DEFAULT '0',
+ `answer` longtext,
+ PRIMARY KEY (`id`),
+ INDEX `plugin_formcreator_formanswers_id` (`plugin_formcreator_formanswers_id`),
+ INDEX `plugin_formcreator_questions_id` (`plugin_formcreator_questions_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
+CREATE TABLE IF NOT EXISTS `glpi_plugin_formcreator_categories` (
+ `id` int unsigned NOT NULL AUTO_INCREMENT,
+ `name` varchar(255) NOT NULL DEFAULT '',
+ `comment` mediumtext,
+ `completename` varchar(255) DEFAULT NULL,
+ `plugin_formcreator_categories_id` int unsigned NOT NULL DEFAULT '0',
+ `level` int(11) NOT NULL DEFAULT '1',
+ `sons_cache` longtext,
+ `ancestors_cache` longtext,
+ `knowbaseitemcategories_id` int unsigned NOT NULL DEFAULT '0',
+ PRIMARY KEY (`id`),
+ INDEX `name` (`name`),
+ INDEX `knowbaseitemcategories_id` (`knowbaseitemcategories_id`),
+ INDEX `plugin_formcreator_categories_id` (`plugin_formcreator_categories_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
+CREATE TABLE IF NOT EXISTS `glpi_plugin_formcreator_entityconfigs` (
+ `id` int unsigned NOT NULL AUTO_INCREMENT,
+ `entities_id` int unsigned NOT NULL DEFAULT '0',
+ `replace_helpdesk` int(11) NOT NULL DEFAULT '-2',
+ `default_form_list_mode` int(11) NOT NULL DEFAULT '-2',
+ `sort_order` int(11) NOT NULL DEFAULT '-2',
+ `is_kb_separated` int(11) NOT NULL DEFAULT '-2',
+ `is_search_visible` int(11) NOT NULL DEFAULT '-2',
+ `is_dashboard_visible` int(11) NOT NULL DEFAULT '-2',
+ `is_header_visible` int(11) NOT NULL DEFAULT '-2',
+ `is_search_issue_visible` int(11) NOT NULL DEFAULT '-2',
+ `tile_design` int(11) NOT NULL DEFAULT '-2',
+ `header` text,
+ `service_catalog_home` int(11) NOT NULL DEFAULT '-2',
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `unicity` (`entities_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
+CREATE TABLE IF NOT EXISTS `glpi_plugin_formcreator_forms` (
+ `id` int unsigned NOT NULL AUTO_INCREMENT,
+ `name` varchar(255) NOT NULL DEFAULT '',
+ `entities_id` int unsigned NOT NULL DEFAULT '0',
+ `is_recursive` tinyint(1) NOT NULL DEFAULT '0',
+ `icon` varchar(255) NOT NULL DEFAULT '',
+ `icon_color` varchar(255) NOT NULL DEFAULT '',
+ `background_color` varchar(255) NOT NULL DEFAULT '',
+ `access_rights` tinyint(1) NOT NULL DEFAULT '1',
+ `description` varchar(255) DEFAULT NULL,
+ `content` longtext,
+ `plugin_formcreator_categories_id` int unsigned NOT NULL DEFAULT '0',
+ `is_active` tinyint(1) NOT NULL DEFAULT '0',
+ `language` varchar(255) NOT NULL DEFAULT '',
+ `helpdesk_home` tinyint(1) NOT NULL DEFAULT '0',
+ `is_deleted` tinyint(1) NOT NULL DEFAULT '0',
+ `validation_required` tinyint(1) NOT NULL DEFAULT '0',
+ `usage_count` int(11) NOT NULL DEFAULT '0',
+ `is_default` tinyint(1) NOT NULL DEFAULT '0',
+ `is_captcha_enabled` tinyint(1) NOT NULL DEFAULT '0',
+ `show_rule` int(11) NOT NULL DEFAULT '1' COMMENT 'Conditions setting to show the submit button',
+ `formanswer_name` varchar(255) NOT NULL DEFAULT '',
+ `is_visible` tinyint NOT NULL DEFAULT 1,
+ `uuid` varchar(255) DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ INDEX `entities_id` (`entities_id`),
+ INDEX `plugin_formcreator_categories_id` (`plugin_formcreator_categories_id`),
+ FULLTEXT KEY `Search` (`name`,`description`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
+CREATE TABLE IF NOT EXISTS `glpi_plugin_formcreator_formanswers` (
+ `id` int unsigned NOT NULL AUTO_INCREMENT,
+ `name` varchar(255) NOT NULL DEFAULT '',
+ `entities_id` int unsigned NOT NULL DEFAULT '0',
+ `is_recursive` tinyint(1) NOT NULL DEFAULT '0',
+ `plugin_formcreator_forms_id` int unsigned NOT NULL DEFAULT '0',
+ `requester_id` int unsigned NOT NULL DEFAULT '0',
+ `users_id_validator` int unsigned NOT NULL DEFAULT '0' COMMENT 'User in charge of validation',
+ `groups_id_validator` int unsigned NOT NULL DEFAULT '0' COMMENT 'Group in charge of validation',
+ `request_date` timestamp NULL,
+ `status` int(11) NOT NULL DEFAULT '101',
+ `comment` mediumtext,
+ PRIMARY KEY (`id`),
+ INDEX `plugin_formcreator_forms_id` (`plugin_formcreator_forms_id`),
+ INDEX `entities_id_is_recursive` (`entities_id`, `is_recursive`),
+ INDEX `requester_id` (`requester_id`),
+ INDEX `users_id_validator` (`users_id_validator`),
+ INDEX `groups_id_validator` (`groups_id_validator`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
+CREATE TABLE IF NOT EXISTS `glpi_plugin_formcreator_forms_profiles` (
+ `id` int unsigned NOT NULL AUTO_INCREMENT,
+ `plugin_formcreator_forms_id` int unsigned NOT NULL DEFAULT '0',
+ `profiles_id` int unsigned NOT NULL DEFAULT '0',
+ `uuid` varchar(255) DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `unicity` (`plugin_formcreator_forms_id`,`profiles_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
+CREATE TABLE IF NOT EXISTS `glpi_plugin_formcreator_forms_users` (
+ `id` int unsigned NOT NULL AUTO_INCREMENT,
+ `plugin_formcreator_forms_id` int unsigned NOT NULL,
+ `users_id` int unsigned NOT NULL,
+ `uuid` varchar(255) DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `unicity` (`plugin_formcreator_forms_id`,`users_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
+CREATE TABLE IF NOT EXISTS `glpi_plugin_formcreator_forms_groups` (
+ `id` int unsigned NOT NULL AUTO_INCREMENT,
+ `plugin_formcreator_forms_id` int unsigned NOT NULL,
+ `groups_id` int unsigned NOT NULL,
+ `uuid` varchar(255) DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `unicity` (`plugin_formcreator_forms_id`,`groups_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
+CREATE TABLE IF NOT EXISTS `glpi_plugin_formcreator_forms_validators` (
+ `id` int unsigned NOT NULL AUTO_INCREMENT,
+ `plugin_formcreator_forms_id` int unsigned NOT NULL DEFAULT '0',
+ `itemtype` varchar(255) NOT NULL DEFAULT '',
+ `items_id` int unsigned NOT NULL DEFAULT '0',
+ `uuid` varchar(255) DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `unicity` (`plugin_formcreator_forms_id`,`itemtype`,`items_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
+CREATE TABLE IF NOT EXISTS `glpi_plugin_formcreator_questions` (
+ `id` int unsigned NOT NULL AUTO_INCREMENT,
+ `name` varchar(255) NOT NULL DEFAULT '',
+ `plugin_formcreator_sections_id` int unsigned NOT NULL DEFAULT '0',
+ `fieldtype` varchar(30) NOT NULL DEFAULT 'text',
+ `required` tinyint(1) NOT NULL DEFAULT '0',
+ `show_empty` tinyint(1) NOT NULL DEFAULT '0',
+ `default_values` mediumtext,
+ `itemtype` varchar(255) NOT NULL DEFAULT '' COMMENT 'itemtype used for glpi objects and dropdown question types',
+ `values` mediumtext,
+ `description` mediumtext,
+ `row` int(11) NOT NULL DEFAULT '0',
+ `col` int(11) NOT NULL DEFAULT '0',
+ `width` int(11) NOT NULL DEFAULT '0',
+ `show_rule` int(11) NOT NULL DEFAULT '1',
+ `uuid` varchar(255) DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ INDEX `plugin_formcreator_sections_id` (`plugin_formcreator_sections_id`),
+ FULLTEXT KEY `Search` (`name`,`description`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
+CREATE TABLE IF NOT EXISTS `glpi_plugin_formcreator_conditions` (
+ `id` int unsigned NOT NULL AUTO_INCREMENT,
+ `itemtype` varchar(255) NOT NULL DEFAULT '' COMMENT 'itemtype of the item affected by the condition',
+ `items_id` int unsigned NOT NULL DEFAULT '0' COMMENT 'item ID of the item affected by the condition',
+ `plugin_formcreator_questions_id` int unsigned NOT NULL DEFAULT '0' COMMENT 'question to test for the condition',
+ `show_condition` int(11) NOT NULL DEFAULT '0',
+ `show_value` mediumtext NULL DEFAULT NULL,
+ `show_logic` int(11) NOT NULL DEFAULT '1',
+ `order` int(11) NOT NULL DEFAULT '1',
+ `uuid` varchar(255) NULL DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ INDEX `plugin_formcreator_questions_id` (`plugin_formcreator_questions_id`),
+ INDEX `item` (`itemtype`, `items_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
+CREATE TABLE IF NOT EXISTS `glpi_plugin_formcreator_sections` (
+ `id` int unsigned NOT NULL AUTO_INCREMENT,
+ `name` varchar(255) NOT NULL DEFAULT '',
+ `plugin_formcreator_forms_id` int unsigned NOT NULL DEFAULT '0',
+ `order` int(11) NOT NULL DEFAULT '0',
+ `show_rule` int(11) NOT NULL DEFAULT '1',
+ `uuid` varchar(255) DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ INDEX `plugin_formcreator_forms_id` (`plugin_formcreator_forms_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
+CREATE TABLE IF NOT EXISTS `glpi_plugin_formcreator_targetchanges` (
+ `id` int unsigned NOT NULL AUTO_INCREMENT,
+ `name` varchar(255) NOT NULL DEFAULT '',
+ `plugin_formcreator_forms_id` int unsigned NOT NULL DEFAULT '0',
+ `target_name` varchar(255) NOT NULL DEFAULT '',
+ `changetemplates_id` int unsigned NOT NULL DEFAULT '0',
+ `content` longtext,
+ `impactcontent` longtext,
+ `controlistcontent` longtext,
+ `rolloutplancontent` longtext,
+ `backoutplancontent` longtext,
+ `checklistcontent` longtext,
+ `due_date_rule` int(11) NOT NULL DEFAULT '1',
+ `due_date_question` int unsigned NOT NULL DEFAULT '0',
+ `due_date_value` tinyint(4) DEFAULT NULL,
+ `due_date_period` int(11) NOT NULL DEFAULT '0',
+ `urgency_rule` int(11) NOT NULL DEFAULT '1',
+ `urgency_question` int unsigned NOT NULL DEFAULT '0',
+ `validation_followup` tinyint(1) NOT NULL DEFAULT '1',
+ `destination_entity` int(11) NOT NULL DEFAULT '1',
+ `destination_entity_value` int unsigned NOT NULL DEFAULT '0',
+ `tag_type` int(11) NOT NULL DEFAULT '1',
+ `tag_questions` varchar(255) NOT NULL DEFAULT '',
+ `tag_specifics` varchar(255) NOT NULL DEFAULT '',
+ `category_rule` int(11) NOT NULL DEFAULT '1',
+ `category_question` int unsigned NOT NULL DEFAULT '0',
+ `commonitil_validation_rule` int(11) NOT NULL DEFAULT '1',
+ `commonitil_validation_question` varchar(255) DEFAULT NULL,
+ `show_rule` int(11) NOT NULL DEFAULT '1',
+ `sla_rule` int(11) NOT NULL DEFAULT '1',
+ `sla_question_tto` int unsigned NOT NULL DEFAULT '0',
+ `sla_question_ttr` int unsigned NOT NULL DEFAULT '0',
+ `ola_rule` int(11) NOT NULL DEFAULT '1',
+ `ola_question_tto` int unsigned NOT NULL DEFAULT '0',
+ `ola_question_ttr` int unsigned NOT NULL DEFAULT '0',
+ `uuid` varchar(255) DEFAULT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
+CREATE TABLE IF NOT EXISTS `glpi_plugin_formcreator_targettickets` (
+ `id` int unsigned NOT NULL AUTO_INCREMENT,
+ `name` varchar(255) NOT NULL DEFAULT '',
+ `plugin_formcreator_forms_id` int unsigned NOT NULL DEFAULT '0',
+ `target_name` varchar(255) NOT NULL DEFAULT '',
+ `source_rule` int(11) NOT NULL DEFAULT '0',
+ `source_question` int(11) NOT NULL DEFAULT '0',
+ `type_rule` int(11) NOT NULL DEFAULT '0',
+ `type_question` int unsigned NOT NULL DEFAULT '0',
+ `tickettemplates_id` int unsigned NOT NULL DEFAULT '0',
+ `content` longtext,
+ `due_date_rule` int(11) NOT NULL DEFAULT '1',
+ `due_date_question` int unsigned NOT NULL DEFAULT '0',
+ `due_date_value` tinyint(4) DEFAULT NULL,
+ `due_date_period` int(11) NOT NULL DEFAULT '0',
+ `urgency_rule` int(11) NOT NULL DEFAULT '1',
+ `urgency_question` int unsigned NOT NULL DEFAULT '0',
+ `validation_followup` tinyint(1) NOT NULL DEFAULT '1',
+ `destination_entity` int(11) NOT NULL DEFAULT '1',
+ `destination_entity_value` int unsigned NOT NULL DEFAULT '0',
+ `tag_type` int(11) NOT NULL DEFAULT '1',
+ `tag_questions` varchar(255) NOT NULL DEFAULT '',
+ `tag_specifics` varchar(255) NOT NULL DEFAULT '',
+ `category_rule` int(11) NOT NULL DEFAULT '1',
+ `category_question` int unsigned NOT NULL DEFAULT '0',
+ `associate_rule` int(11) NOT NULL DEFAULT '1',
+ `associate_question` int unsigned NOT NULL DEFAULT '0',
+ `location_rule` int(11) NOT NULL DEFAULT '1',
+ `location_question` int unsigned NOT NULL DEFAULT '0',
+ `commonitil_validation_rule` int(11) NOT NULL DEFAULT '1',
+ `commonitil_validation_question` varchar(255) DEFAULT NULL,
+ `show_rule` int(11) NOT NULL DEFAULT '1',
+ `sla_rule` int(11) NOT NULL DEFAULT '1',
+ `sla_question_tto` int unsigned NOT NULL DEFAULT '0',
+ `sla_question_ttr` int unsigned NOT NULL DEFAULT '0',
+ `ola_rule` int(11) NOT NULL DEFAULT '1',
+ `ola_question_tto` int unsigned NOT NULL DEFAULT '0',
+ `ola_question_ttr` int unsigned NOT NULL DEFAULT '0',
+ `uuid` varchar(255) DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ INDEX `tickettemplates_id` (`tickettemplates_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
+CREATE TABLE IF NOT EXISTS `glpi_plugin_formcreator_targetproblems` (
+ `id` int unsigned NOT NULL AUTO_INCREMENT,
+ `name` varchar(255) NOT NULL DEFAULT '',
+ `plugin_formcreator_forms_id` int unsigned NOT NULL DEFAULT '0',
+ `target_name` varchar(255) NOT NULL DEFAULT '',
+ `problemtemplates_id` int unsigned NOT NULL DEFAULT '0',
+ `content` longtext,
+ `impactcontent` longtext,
+ `causecontent` longtext,
+ `symptomcontent` longtext,
+ `urgency_rule` int(11) NOT NULL DEFAULT '1',
+ `urgency_question` int unsigned NOT NULL DEFAULT '0',
+ `destination_entity` int(11) NOT NULL DEFAULT '1',
+ `destination_entity_value` int unsigned NOT NULL DEFAULT '0',
+ `tag_type` int(11) NOT NULL DEFAULT '1',
+ `tag_questions` varchar(255) NOT NULL DEFAULT '',
+ `tag_specifics` varchar(255) NOT NULL DEFAULT '',
+ `category_rule` int(11) NOT NULL DEFAULT '1',
+ `category_question` int unsigned NOT NULL DEFAULT '0',
+ `show_rule` int(11) NOT NULL DEFAULT '1',
+ `uuid` varchar(255) DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ INDEX `problemtemplates_id` (`problemtemplates_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
+CREATE TABLE IF NOT EXISTS `glpi_plugin_formcreator_targets_actors` (
+ `id` int unsigned NOT NULL AUTO_INCREMENT,
+ `itemtype` varchar(255) DEFAULT NULL,
+ `items_id` int unsigned NOT NULL DEFAULT '0',
+ `actor_role` int(11) NOT NULL DEFAULT '1',
+ `actor_type` int(11) NOT NULL DEFAULT '1',
+ `actor_value` int unsigned NOT NULL DEFAULT '0',
+ `use_notification` tinyint(1) NOT NULL DEFAULT '1',
+ `uuid` varchar(255) DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ INDEX `item` (`itemtype`, `items_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
+CREATE TABLE IF NOT EXISTS `glpi_plugin_formcreator_issues` (
+ `id` int unsigned NOT NULL AUTO_INCREMENT,
+ `name` varchar(255) NULL DEFAULT NULL,
+ `display_id` varchar(255) NOT NULL,
+ `items_id` int unsigned NOT NULL DEFAULT '0',
+ `itemtype` varchar(255) NOT NULL DEFAULT '',
+ `status` varchar(255) NOT NULL DEFAULT '',
+ `date_creation` timestamp NULL,
+ `date_mod` timestamp NULL,
+ `entities_id` int unsigned NOT NULL DEFAULT '0',
+ `is_recursive` tinyint(1) NOT NULL DEFAULT '0',
+ `requester_id` int unsigned NOT NULL DEFAULT '0',
+ `comment` longtext,
+ `users_id_recipient` int unsigned NOT NULL DEFAULT '0',
+ PRIMARY KEY (`id`),
+ INDEX `item` (`itemtype`, `items_id`),
+ INDEX `entities_id` (`entities_id`),
+ INDEX `requester_id` (`requester_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
+CREATE TABLE IF NOT EXISTS `glpi_plugin_formcreator_items_targettickets` (
+ `id` int unsigned NOT NULL AUTO_INCREMENT,
+ `plugin_formcreator_targettickets_id` int unsigned NOT NULL DEFAULT '0',
+ `link` int(11) NOT NULL DEFAULT '0',
+ `itemtype` varchar(255) NOT NULL DEFAULT '',
+ `items_id` int unsigned NOT NULL DEFAULT '0',
+ `uuid` varchar(255) DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ INDEX `plugin_formcreator_targettickets_id` (`plugin_formcreator_targettickets_id`),
+ INDEX `item` (`itemtype`,`items_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
+CREATE TABLE IF NOT EXISTS `glpi_plugin_formcreator_questiondependencies` (
+ `id` int unsigned NOT NULL AUTO_INCREMENT,
+ `plugin_formcreator_questions_id` int unsigned NOT NULL DEFAULT '0',
+ `plugin_formcreator_questions_id_2` int unsigned NOT NULL DEFAULT '0',
+ `fieldname` varchar(255) DEFAULT NULL,
+ `uuid` varchar(255) DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ INDEX `plugin_formcreator_questions_id` (`plugin_formcreator_questions_id`),
+ INDEX `plugin_formcreator_questions_id_2` (`plugin_formcreator_questions_id_2`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
+CREATE TABLE IF NOT EXISTS `glpi_plugin_formcreator_questionregexes` (
+ `id` int unsigned NOT NULL AUTO_INCREMENT,
+ `plugin_formcreator_questions_id` int unsigned NOT NULL DEFAULT '0',
+ `regex` mediumtext DEFAULT NULL,
+ `fieldname` varchar(255) DEFAULT NULL,
+ `uuid` varchar(255) DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ INDEX `plugin_formcreator_questions_id` (`plugin_formcreator_questions_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
+CREATE TABLE IF NOT EXISTS `glpi_plugin_formcreator_questionranges` (
+ `id` int unsigned NOT NULL AUTO_INCREMENT,
+ `plugin_formcreator_questions_id` int unsigned NOT NULL DEFAULT '0',
+ `range_min` varchar(255) DEFAULT NULL,
+ `range_max` varchar(255) DEFAULT NULL,
+ `fieldname` varchar(255) DEFAULT NULL,
+ `uuid` varchar(255) DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ INDEX `plugin_formcreator_questions_id` (`plugin_formcreator_questions_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
+CREATE TABLE IF NOT EXISTS `glpi_plugin_formcreator_forms_languages` (
+ `id` int unsigned NOT NULL AUTO_INCREMENT,
+ `plugin_formcreator_forms_id` int unsigned NOT NULL DEFAULT '0',
+ `name` varchar(255) DEFAULT NULL,
+ `comment` text,
+ `uuid` varchar(255) DEFAULT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
\ No newline at end of file
From 85995764d09f33c1c6e2c2220120e0c38c887aea Mon Sep 17 00:00:00 2001
From: RomainLvr
Date: Wed, 12 Nov 2025 15:13:27 +0100
Subject: [PATCH 5/8] Ignore phpstan error
---
src/Install.php | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/Install.php b/src/Install.php
index 58f918829..65c0b1486 100644
--- a/src/Install.php
+++ b/src/Install.php
@@ -474,6 +474,7 @@ protected function deleteTables() {
];
foreach ($itemtypes as $itemtype) {
+ // @phpstan-ignore-next-line argument.type
$table = getTableForItemType($itemtype);
$log = new Log();
$log->deleteByCriteria(['itemtype' => $itemtype]);
From 8be69ed4993928daca35f4b13c483513f10ca46f Mon Sep 17 00:00:00 2001
From: Romain Lecouvreur <102067890+RomainLvr@users.noreply.github.com>
Date: Thu, 13 Nov 2025 11:39:51 +0100
Subject: [PATCH 6/8] Update CHANGELOG.md
Co-authored-by: Stanislas
---
CHANGELOG.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 681b008c4..e7977e2d6 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,6 @@
# Formcreator Changelog
-## [3.0.1] - 2025-11-10
+## [3.0.1 (Migration Only)] - 2025-11-10
### Fixed
From cc23e369b940f964a7e5bd8b2c9d8e34828713b5 Mon Sep 17 00:00:00 2001
From: "Romain B." <8530352+Rom1-B@users.noreply.github.com>
Date: Thu, 13 Nov 2025 11:41:56 +0100
Subject: [PATCH 7/8] Apply suggestions from code review
---
CHANGELOG.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index e7977e2d6..6c486fbd0 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,6 @@
# Formcreator Changelog
-## [3.0.1 (Migration Only)] - 2025-11-10
+## [3.0.1 (Migration Only)] - 2025-11-13
### Fixed
From 4f7d90b4bfe0d6153ce27e846bff0b7771de7d10 Mon Sep 17 00:00:00 2001
From: RomainLvr
Date: Thu, 13 Nov 2025 14:17:11 +0100
Subject: [PATCH 8/8] Release 3.0.1
---
CHANGELOG.md | 9 +-
.../mysql/plugin_formcreator_3.0.1_empty.sql | 380 ++++++++++++++++++
package.json | 2 +-
plugin.xml | 5 +
setup.php | 2 +-
src/Install.php | 1 +
6 files changed, 396 insertions(+), 3 deletions(-)
create mode 100644 install/mysql/plugin_formcreator_3.0.1_empty.sql
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 48579dbe4..6c486fbd0 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,13 @@
# Formcreator Changelog
-## [3.0.0 (Migration Only)](https://github.com/pluginsGLPI/formcreator/compare/2.13.10...3.0.0) (Unreleased)
+## [3.0.1 (Migration Only)] - 2025-11-13
+
+### Fixed
+
+- Fixed the removal of the mini dashboard when uninstalling the plugin
+- Fixed the `class not found` error during uninstallation
+
+## [3.0.0 (Migration Only)](https://github.com/pluginsGLPI/formcreator/compare/2.13.10...3.0.0) 2025-09-30
### 🚨 BREAKING CHANGES - END OF LIFE VERSION
diff --git a/install/mysql/plugin_formcreator_3.0.1_empty.sql b/install/mysql/plugin_formcreator_3.0.1_empty.sql
new file mode 100644
index 000000000..1553ed42b
--- /dev/null
+++ b/install/mysql/plugin_formcreator_3.0.1_empty.sql
@@ -0,0 +1,380 @@
+--
+--
+-- ---------------------------------------------------------------------
+-- Formcreator is a plugin which allows creation of custom forms of
+-- easy access.
+-- ---------------------------------------------------------------------
+-- LICENSE
+--
+-- This file is part of Formcreator.
+--
+-- Formcreator is free software; you can redistribute it and/or modify
+-- it under the terms of the GNU General Public License as published by
+-- the Free Software Foundation; either version 2 of the License, or
+-- (at your option) any later version.
+--
+-- Formcreator is distributed in the hope that it will be useful,
+-- but WITHOUT ANY WARRANTY; without even the implied warranty of
+-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+-- GNU General Public License for more details.
+--
+-- You should have received a copy of the GNU General Public License
+-- along with Formcreator. If not, see .
+-- ---------------------------------------------------------------------
+-- @copyright Copyright © 2011 - 2018 Teclib'
+-- @license http://www.gnu.org/licenses/gpl.txt GPLv3+
+-- @link https://github.com/pluginsGLPI/formcreator/
+-- @link https://pluginsglpi.github.io/formcreator/
+-- @link http://plugins.glpi-project.org/#/plugin/formcreator
+-- ---------------------------------------------------------------------
+--
+
+CREATE TABLE IF NOT EXISTS `glpi_plugin_formcreator_answers` (
+ `id` int unsigned NOT NULL AUTO_INCREMENT,
+ `plugin_formcreator_formanswers_id` int unsigned NOT NULL DEFAULT '0',
+ `plugin_formcreator_questions_id` int unsigned NOT NULL DEFAULT '0',
+ `answer` longtext,
+ PRIMARY KEY (`id`),
+ INDEX `plugin_formcreator_formanswers_id` (`plugin_formcreator_formanswers_id`),
+ INDEX `plugin_formcreator_questions_id` (`plugin_formcreator_questions_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
+CREATE TABLE IF NOT EXISTS `glpi_plugin_formcreator_categories` (
+ `id` int unsigned NOT NULL AUTO_INCREMENT,
+ `name` varchar(255) NOT NULL DEFAULT '',
+ `comment` mediumtext,
+ `completename` varchar(255) DEFAULT NULL,
+ `plugin_formcreator_categories_id` int unsigned NOT NULL DEFAULT '0',
+ `level` int(11) NOT NULL DEFAULT '1',
+ `sons_cache` longtext,
+ `ancestors_cache` longtext,
+ `knowbaseitemcategories_id` int unsigned NOT NULL DEFAULT '0',
+ PRIMARY KEY (`id`),
+ INDEX `name` (`name`),
+ INDEX `knowbaseitemcategories_id` (`knowbaseitemcategories_id`),
+ INDEX `plugin_formcreator_categories_id` (`plugin_formcreator_categories_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
+CREATE TABLE IF NOT EXISTS `glpi_plugin_formcreator_entityconfigs` (
+ `id` int unsigned NOT NULL AUTO_INCREMENT,
+ `entities_id` int unsigned NOT NULL DEFAULT '0',
+ `replace_helpdesk` int(11) NOT NULL DEFAULT '-2',
+ `default_form_list_mode` int(11) NOT NULL DEFAULT '-2',
+ `sort_order` int(11) NOT NULL DEFAULT '-2',
+ `is_kb_separated` int(11) NOT NULL DEFAULT '-2',
+ `is_search_visible` int(11) NOT NULL DEFAULT '-2',
+ `is_dashboard_visible` int(11) NOT NULL DEFAULT '-2',
+ `is_header_visible` int(11) NOT NULL DEFAULT '-2',
+ `is_search_issue_visible` int(11) NOT NULL DEFAULT '-2',
+ `tile_design` int(11) NOT NULL DEFAULT '-2',
+ `header` text,
+ `service_catalog_home` int(11) NOT NULL DEFAULT '-2',
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `unicity` (`entities_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
+CREATE TABLE IF NOT EXISTS `glpi_plugin_formcreator_forms` (
+ `id` int unsigned NOT NULL AUTO_INCREMENT,
+ `name` varchar(255) NOT NULL DEFAULT '',
+ `entities_id` int unsigned NOT NULL DEFAULT '0',
+ `is_recursive` tinyint(1) NOT NULL DEFAULT '0',
+ `icon` varchar(255) NOT NULL DEFAULT '',
+ `icon_color` varchar(255) NOT NULL DEFAULT '',
+ `background_color` varchar(255) NOT NULL DEFAULT '',
+ `access_rights` tinyint(1) NOT NULL DEFAULT '1',
+ `description` varchar(255) DEFAULT NULL,
+ `content` longtext,
+ `plugin_formcreator_categories_id` int unsigned NOT NULL DEFAULT '0',
+ `is_active` tinyint(1) NOT NULL DEFAULT '0',
+ `language` varchar(255) NOT NULL DEFAULT '',
+ `helpdesk_home` tinyint(1) NOT NULL DEFAULT '0',
+ `is_deleted` tinyint(1) NOT NULL DEFAULT '0',
+ `validation_required` tinyint(1) NOT NULL DEFAULT '0',
+ `usage_count` int(11) NOT NULL DEFAULT '0',
+ `is_default` tinyint(1) NOT NULL DEFAULT '0',
+ `is_captcha_enabled` tinyint(1) NOT NULL DEFAULT '0',
+ `show_rule` int(11) NOT NULL DEFAULT '1' COMMENT 'Conditions setting to show the submit button',
+ `formanswer_name` varchar(255) NOT NULL DEFAULT '',
+ `is_visible` tinyint NOT NULL DEFAULT 1,
+ `uuid` varchar(255) DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ INDEX `entities_id` (`entities_id`),
+ INDEX `plugin_formcreator_categories_id` (`plugin_formcreator_categories_id`),
+ FULLTEXT KEY `Search` (`name`,`description`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
+CREATE TABLE IF NOT EXISTS `glpi_plugin_formcreator_formanswers` (
+ `id` int unsigned NOT NULL AUTO_INCREMENT,
+ `name` varchar(255) NOT NULL DEFAULT '',
+ `entities_id` int unsigned NOT NULL DEFAULT '0',
+ `is_recursive` tinyint(1) NOT NULL DEFAULT '0',
+ `plugin_formcreator_forms_id` int unsigned NOT NULL DEFAULT '0',
+ `requester_id` int unsigned NOT NULL DEFAULT '0',
+ `users_id_validator` int unsigned NOT NULL DEFAULT '0' COMMENT 'User in charge of validation',
+ `groups_id_validator` int unsigned NOT NULL DEFAULT '0' COMMENT 'Group in charge of validation',
+ `request_date` timestamp NULL,
+ `status` int(11) NOT NULL DEFAULT '101',
+ `comment` mediumtext,
+ PRIMARY KEY (`id`),
+ INDEX `plugin_formcreator_forms_id` (`plugin_formcreator_forms_id`),
+ INDEX `entities_id_is_recursive` (`entities_id`, `is_recursive`),
+ INDEX `requester_id` (`requester_id`),
+ INDEX `users_id_validator` (`users_id_validator`),
+ INDEX `groups_id_validator` (`groups_id_validator`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
+CREATE TABLE IF NOT EXISTS `glpi_plugin_formcreator_forms_profiles` (
+ `id` int unsigned NOT NULL AUTO_INCREMENT,
+ `plugin_formcreator_forms_id` int unsigned NOT NULL DEFAULT '0',
+ `profiles_id` int unsigned NOT NULL DEFAULT '0',
+ `uuid` varchar(255) DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `unicity` (`plugin_formcreator_forms_id`,`profiles_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
+CREATE TABLE IF NOT EXISTS `glpi_plugin_formcreator_forms_users` (
+ `id` int unsigned NOT NULL AUTO_INCREMENT,
+ `plugin_formcreator_forms_id` int unsigned NOT NULL,
+ `users_id` int unsigned NOT NULL,
+ `uuid` varchar(255) DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `unicity` (`plugin_formcreator_forms_id`,`users_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
+CREATE TABLE IF NOT EXISTS `glpi_plugin_formcreator_forms_groups` (
+ `id` int unsigned NOT NULL AUTO_INCREMENT,
+ `plugin_formcreator_forms_id` int unsigned NOT NULL,
+ `groups_id` int unsigned NOT NULL,
+ `uuid` varchar(255) DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `unicity` (`plugin_formcreator_forms_id`,`groups_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
+CREATE TABLE IF NOT EXISTS `glpi_plugin_formcreator_forms_validators` (
+ `id` int unsigned NOT NULL AUTO_INCREMENT,
+ `plugin_formcreator_forms_id` int unsigned NOT NULL DEFAULT '0',
+ `itemtype` varchar(255) NOT NULL DEFAULT '',
+ `items_id` int unsigned NOT NULL DEFAULT '0',
+ `uuid` varchar(255) DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `unicity` (`plugin_formcreator_forms_id`,`itemtype`,`items_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
+CREATE TABLE IF NOT EXISTS `glpi_plugin_formcreator_questions` (
+ `id` int unsigned NOT NULL AUTO_INCREMENT,
+ `name` varchar(255) NOT NULL DEFAULT '',
+ `plugin_formcreator_sections_id` int unsigned NOT NULL DEFAULT '0',
+ `fieldtype` varchar(30) NOT NULL DEFAULT 'text',
+ `required` tinyint(1) NOT NULL DEFAULT '0',
+ `show_empty` tinyint(1) NOT NULL DEFAULT '0',
+ `default_values` mediumtext,
+ `itemtype` varchar(255) NOT NULL DEFAULT '' COMMENT 'itemtype used for glpi objects and dropdown question types',
+ `values` mediumtext,
+ `description` mediumtext,
+ `row` int(11) NOT NULL DEFAULT '0',
+ `col` int(11) NOT NULL DEFAULT '0',
+ `width` int(11) NOT NULL DEFAULT '0',
+ `show_rule` int(11) NOT NULL DEFAULT '1',
+ `uuid` varchar(255) DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ INDEX `plugin_formcreator_sections_id` (`plugin_formcreator_sections_id`),
+ FULLTEXT KEY `Search` (`name`,`description`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
+CREATE TABLE IF NOT EXISTS `glpi_plugin_formcreator_conditions` (
+ `id` int unsigned NOT NULL AUTO_INCREMENT,
+ `itemtype` varchar(255) NOT NULL DEFAULT '' COMMENT 'itemtype of the item affected by the condition',
+ `items_id` int unsigned NOT NULL DEFAULT '0' COMMENT 'item ID of the item affected by the condition',
+ `plugin_formcreator_questions_id` int unsigned NOT NULL DEFAULT '0' COMMENT 'question to test for the condition',
+ `show_condition` int(11) NOT NULL DEFAULT '0',
+ `show_value` mediumtext NULL DEFAULT NULL,
+ `show_logic` int(11) NOT NULL DEFAULT '1',
+ `order` int(11) NOT NULL DEFAULT '1',
+ `uuid` varchar(255) NULL DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ INDEX `plugin_formcreator_questions_id` (`plugin_formcreator_questions_id`),
+ INDEX `item` (`itemtype`, `items_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
+CREATE TABLE IF NOT EXISTS `glpi_plugin_formcreator_sections` (
+ `id` int unsigned NOT NULL AUTO_INCREMENT,
+ `name` varchar(255) NOT NULL DEFAULT '',
+ `plugin_formcreator_forms_id` int unsigned NOT NULL DEFAULT '0',
+ `order` int(11) NOT NULL DEFAULT '0',
+ `show_rule` int(11) NOT NULL DEFAULT '1',
+ `uuid` varchar(255) DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ INDEX `plugin_formcreator_forms_id` (`plugin_formcreator_forms_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
+CREATE TABLE IF NOT EXISTS `glpi_plugin_formcreator_targetchanges` (
+ `id` int unsigned NOT NULL AUTO_INCREMENT,
+ `name` varchar(255) NOT NULL DEFAULT '',
+ `plugin_formcreator_forms_id` int unsigned NOT NULL DEFAULT '0',
+ `target_name` varchar(255) NOT NULL DEFAULT '',
+ `changetemplates_id` int unsigned NOT NULL DEFAULT '0',
+ `content` longtext,
+ `impactcontent` longtext,
+ `controlistcontent` longtext,
+ `rolloutplancontent` longtext,
+ `backoutplancontent` longtext,
+ `checklistcontent` longtext,
+ `due_date_rule` int(11) NOT NULL DEFAULT '1',
+ `due_date_question` int unsigned NOT NULL DEFAULT '0',
+ `due_date_value` tinyint(4) DEFAULT NULL,
+ `due_date_period` int(11) NOT NULL DEFAULT '0',
+ `urgency_rule` int(11) NOT NULL DEFAULT '1',
+ `urgency_question` int unsigned NOT NULL DEFAULT '0',
+ `validation_followup` tinyint(1) NOT NULL DEFAULT '1',
+ `destination_entity` int(11) NOT NULL DEFAULT '1',
+ `destination_entity_value` int unsigned NOT NULL DEFAULT '0',
+ `tag_type` int(11) NOT NULL DEFAULT '1',
+ `tag_questions` varchar(255) NOT NULL DEFAULT '',
+ `tag_specifics` varchar(255) NOT NULL DEFAULT '',
+ `category_rule` int(11) NOT NULL DEFAULT '1',
+ `category_question` int unsigned NOT NULL DEFAULT '0',
+ `commonitil_validation_rule` int(11) NOT NULL DEFAULT '1',
+ `commonitil_validation_question` varchar(255) DEFAULT NULL,
+ `show_rule` int(11) NOT NULL DEFAULT '1',
+ `sla_rule` int(11) NOT NULL DEFAULT '1',
+ `sla_question_tto` int unsigned NOT NULL DEFAULT '0',
+ `sla_question_ttr` int unsigned NOT NULL DEFAULT '0',
+ `ola_rule` int(11) NOT NULL DEFAULT '1',
+ `ola_question_tto` int unsigned NOT NULL DEFAULT '0',
+ `ola_question_ttr` int unsigned NOT NULL DEFAULT '0',
+ `uuid` varchar(255) DEFAULT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
+CREATE TABLE IF NOT EXISTS `glpi_plugin_formcreator_targettickets` (
+ `id` int unsigned NOT NULL AUTO_INCREMENT,
+ `name` varchar(255) NOT NULL DEFAULT '',
+ `plugin_formcreator_forms_id` int unsigned NOT NULL DEFAULT '0',
+ `target_name` varchar(255) NOT NULL DEFAULT '',
+ `source_rule` int(11) NOT NULL DEFAULT '0',
+ `source_question` int(11) NOT NULL DEFAULT '0',
+ `type_rule` int(11) NOT NULL DEFAULT '0',
+ `type_question` int unsigned NOT NULL DEFAULT '0',
+ `tickettemplates_id` int unsigned NOT NULL DEFAULT '0',
+ `content` longtext,
+ `due_date_rule` int(11) NOT NULL DEFAULT '1',
+ `due_date_question` int unsigned NOT NULL DEFAULT '0',
+ `due_date_value` tinyint(4) DEFAULT NULL,
+ `due_date_period` int(11) NOT NULL DEFAULT '0',
+ `urgency_rule` int(11) NOT NULL DEFAULT '1',
+ `urgency_question` int unsigned NOT NULL DEFAULT '0',
+ `validation_followup` tinyint(1) NOT NULL DEFAULT '1',
+ `destination_entity` int(11) NOT NULL DEFAULT '1',
+ `destination_entity_value` int unsigned NOT NULL DEFAULT '0',
+ `tag_type` int(11) NOT NULL DEFAULT '1',
+ `tag_questions` varchar(255) NOT NULL DEFAULT '',
+ `tag_specifics` varchar(255) NOT NULL DEFAULT '',
+ `category_rule` int(11) NOT NULL DEFAULT '1',
+ `category_question` int unsigned NOT NULL DEFAULT '0',
+ `associate_rule` int(11) NOT NULL DEFAULT '1',
+ `associate_question` int unsigned NOT NULL DEFAULT '0',
+ `location_rule` int(11) NOT NULL DEFAULT '1',
+ `location_question` int unsigned NOT NULL DEFAULT '0',
+ `commonitil_validation_rule` int(11) NOT NULL DEFAULT '1',
+ `commonitil_validation_question` varchar(255) DEFAULT NULL,
+ `show_rule` int(11) NOT NULL DEFAULT '1',
+ `sla_rule` int(11) NOT NULL DEFAULT '1',
+ `sla_question_tto` int unsigned NOT NULL DEFAULT '0',
+ `sla_question_ttr` int unsigned NOT NULL DEFAULT '0',
+ `ola_rule` int(11) NOT NULL DEFAULT '1',
+ `ola_question_tto` int unsigned NOT NULL DEFAULT '0',
+ `ola_question_ttr` int unsigned NOT NULL DEFAULT '0',
+ `uuid` varchar(255) DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ INDEX `tickettemplates_id` (`tickettemplates_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
+CREATE TABLE IF NOT EXISTS `glpi_plugin_formcreator_targetproblems` (
+ `id` int unsigned NOT NULL AUTO_INCREMENT,
+ `name` varchar(255) NOT NULL DEFAULT '',
+ `plugin_formcreator_forms_id` int unsigned NOT NULL DEFAULT '0',
+ `target_name` varchar(255) NOT NULL DEFAULT '',
+ `problemtemplates_id` int unsigned NOT NULL DEFAULT '0',
+ `content` longtext,
+ `impactcontent` longtext,
+ `causecontent` longtext,
+ `symptomcontent` longtext,
+ `urgency_rule` int(11) NOT NULL DEFAULT '1',
+ `urgency_question` int unsigned NOT NULL DEFAULT '0',
+ `destination_entity` int(11) NOT NULL DEFAULT '1',
+ `destination_entity_value` int unsigned NOT NULL DEFAULT '0',
+ `tag_type` int(11) NOT NULL DEFAULT '1',
+ `tag_questions` varchar(255) NOT NULL DEFAULT '',
+ `tag_specifics` varchar(255) NOT NULL DEFAULT '',
+ `category_rule` int(11) NOT NULL DEFAULT '1',
+ `category_question` int unsigned NOT NULL DEFAULT '0',
+ `show_rule` int(11) NOT NULL DEFAULT '1',
+ `uuid` varchar(255) DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ INDEX `problemtemplates_id` (`problemtemplates_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
+CREATE TABLE IF NOT EXISTS `glpi_plugin_formcreator_targets_actors` (
+ `id` int unsigned NOT NULL AUTO_INCREMENT,
+ `itemtype` varchar(255) DEFAULT NULL,
+ `items_id` int unsigned NOT NULL DEFAULT '0',
+ `actor_role` int(11) NOT NULL DEFAULT '1',
+ `actor_type` int(11) NOT NULL DEFAULT '1',
+ `actor_value` int unsigned NOT NULL DEFAULT '0',
+ `use_notification` tinyint(1) NOT NULL DEFAULT '1',
+ `uuid` varchar(255) DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ INDEX `item` (`itemtype`, `items_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
+CREATE TABLE IF NOT EXISTS `glpi_plugin_formcreator_issues` (
+ `id` int unsigned NOT NULL AUTO_INCREMENT,
+ `name` varchar(255) NULL DEFAULT NULL,
+ `display_id` varchar(255) NOT NULL,
+ `items_id` int unsigned NOT NULL DEFAULT '0',
+ `itemtype` varchar(255) NOT NULL DEFAULT '',
+ `status` varchar(255) NOT NULL DEFAULT '',
+ `date_creation` timestamp NULL,
+ `date_mod` timestamp NULL,
+ `entities_id` int unsigned NOT NULL DEFAULT '0',
+ `is_recursive` tinyint(1) NOT NULL DEFAULT '0',
+ `requester_id` int unsigned NOT NULL DEFAULT '0',
+ `comment` longtext,
+ `users_id_recipient` int unsigned NOT NULL DEFAULT '0',
+ PRIMARY KEY (`id`),
+ INDEX `item` (`itemtype`, `items_id`),
+ INDEX `entities_id` (`entities_id`),
+ INDEX `requester_id` (`requester_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
+CREATE TABLE IF NOT EXISTS `glpi_plugin_formcreator_items_targettickets` (
+ `id` int unsigned NOT NULL AUTO_INCREMENT,
+ `plugin_formcreator_targettickets_id` int unsigned NOT NULL DEFAULT '0',
+ `link` int(11) NOT NULL DEFAULT '0',
+ `itemtype` varchar(255) NOT NULL DEFAULT '',
+ `items_id` int unsigned NOT NULL DEFAULT '0',
+ `uuid` varchar(255) DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ INDEX `plugin_formcreator_targettickets_id` (`plugin_formcreator_targettickets_id`),
+ INDEX `item` (`itemtype`,`items_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
+CREATE TABLE IF NOT EXISTS `glpi_plugin_formcreator_questiondependencies` (
+ `id` int unsigned NOT NULL AUTO_INCREMENT,
+ `plugin_formcreator_questions_id` int unsigned NOT NULL DEFAULT '0',
+ `plugin_formcreator_questions_id_2` int unsigned NOT NULL DEFAULT '0',
+ `fieldname` varchar(255) DEFAULT NULL,
+ `uuid` varchar(255) DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ INDEX `plugin_formcreator_questions_id` (`plugin_formcreator_questions_id`),
+ INDEX `plugin_formcreator_questions_id_2` (`plugin_formcreator_questions_id_2`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
+CREATE TABLE IF NOT EXISTS `glpi_plugin_formcreator_questionregexes` (
+ `id` int unsigned NOT NULL AUTO_INCREMENT,
+ `plugin_formcreator_questions_id` int unsigned NOT NULL DEFAULT '0',
+ `regex` mediumtext DEFAULT NULL,
+ `fieldname` varchar(255) DEFAULT NULL,
+ `uuid` varchar(255) DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ INDEX `plugin_formcreator_questions_id` (`plugin_formcreator_questions_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
+CREATE TABLE IF NOT EXISTS `glpi_plugin_formcreator_questionranges` (
+ `id` int unsigned NOT NULL AUTO_INCREMENT,
+ `plugin_formcreator_questions_id` int unsigned NOT NULL DEFAULT '0',
+ `range_min` varchar(255) DEFAULT NULL,
+ `range_max` varchar(255) DEFAULT NULL,
+ `fieldname` varchar(255) DEFAULT NULL,
+ `uuid` varchar(255) DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ INDEX `plugin_formcreator_questions_id` (`plugin_formcreator_questions_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
+CREATE TABLE IF NOT EXISTS `glpi_plugin_formcreator_forms_languages` (
+ `id` int unsigned NOT NULL AUTO_INCREMENT,
+ `plugin_formcreator_forms_id` int unsigned NOT NULL DEFAULT '0',
+ `name` varchar(255) DEFAULT NULL,
+ `comment` text,
+ `uuid` varchar(255) DEFAULT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
\ No newline at end of file
diff --git a/package.json b/package.json
index 3e3fc1e39..d5b87961b 100644
--- a/package.json
+++ b/package.json
@@ -14,5 +14,5 @@
"tag": true
}
},
- "version": "3.0.0"
+ "version": "3.0.1"
}
diff --git a/plugin.xml b/plugin.xml
index 7076471f5..771af3b35 100644
--- a/plugin.xml
+++ b/plugin.xml
@@ -53,6 +53,11 @@ This version only provides migration support. For form functionality, use GLPI 1
Teclib'
+
+ 3.0.1
+ ~11.0
+ https://github.com/pluginsGLPI/formcreator/releases/download/3.0.1/glpi-formcreator-3.0.1.tar.bz2
+
3.0.0
~11.0
diff --git a/setup.php b/setup.php
index f4ed3090b..88d9f24fe 100644
--- a/setup.php
+++ b/setup.php
@@ -38,7 +38,7 @@
/** @var array $CFG_GLPI */
global $CFG_GLPI;
// Version of the plugin (major.minor.bugfix)
-define('PLUGIN_FORMCREATOR_VERSION', '3.0.0');
+define('PLUGIN_FORMCREATOR_VERSION', '3.0.1');
// Schema version of this version (major.minor only)
define('PLUGIN_FORMCREATOR_SCHEMA_VERSION', '3.0');
// is or is not an official release of the plugin
diff --git a/src/Install.php b/src/Install.php
index a3b8e478f..8748fd8be 100644
--- a/src/Install.php
+++ b/src/Install.php
@@ -474,6 +474,7 @@ protected function deleteTables() {
];
foreach ($itemtypes as $itemtype) {
+ // @phpstan-ignore-next-line argument.type
$table = getTableForItemType($itemtype);
$log = new Log();
$log->deleteByCriteria(['itemtype' => $itemtype]);