diff --git a/CHANGELOG.md b/CHANGELOG.md
index 32f50e132..81882bbf7 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,32 @@
+
+## [HEAD](https://github.com/pluginsGLPI/formcreator/compare/2.13.8..2.13.9) (2024-03-13)
+
+
+### Bug Fixes
+
+* prevent issue when response body has blank characters ([1b141a3fa](https://github.com/pluginsGLPI/formcreator/commit/1b141a3fa))
+* **command:** typos ([2681eca61](https://github.com/pluginsGLPI/formcreator/commit/2681eca61))
+* **dropdownfield:** ambiguous column in SQL query ([3c0630554](https://github.com/pluginsGLPI/formcreator/commit/3c0630554))
+* **dropdownfield:** incomplete group restriction ([eebcc21f1](https://github.com/pluginsGLPI/formcreator/commit/eebcc21f1))
+* **formansswer:** keep tickets on delete ([b3cc8d2b9](https://github.com/pluginsGLPI/formcreator/commit/b3cc8d2b9))
+* **formanswer:** translate section name for targets ([cb9ce0fb6](https://github.com/pluginsGLPI/formcreator/commit/cb9ce0fb6))
+* **hiddenfield:** escaping problem when displaying default value in question designer ([3818383e1](https://github.com/pluginsGLPI/formcreator/commit/3818383e1))
+* **install:** dashboard setup with pre 2.13.7 appearance ([08d3871e1](https://github.com/pluginsGLPI/formcreator/commit/08d3871e1))
+* **issue:** deduplicate rows whern showing technicians in issues ([8bc96d3dc](https://github.com/pluginsGLPI/formcreator/commit/8bc96d3dc))
+* **issue:** prevent list of all issues in search engine ([55530d976](https://github.com/pluginsGLPI/formcreator/commit/55530d976))
+* **reminder:** visibility ([826881427](https://github.com/pluginsGLPI/formcreator/commit/826881427))
+* **target_actor:** duplicate failure with gours, supliers or users ([d77cde058](https://github.com/pluginsGLPI/formcreator/commit/d77cde058))
+* **target_actor:** groups duplication ([dbfcc796b](https://github.com/pluginsGLPI/formcreator/commit/dbfcc796b))
+* **targetticket:** set location may fail ([75144be06](https://github.com/pluginsGLPI/formcreator/commit/75144be06))
+* **textarea:** support for min/max size and regex ([09682e9b8](https://github.com/pluginsGLPI/formcreator/commit/09682e9b8))
+
+
+### Features
+
+* **glpiselectfield:** support Cluster itemtype ([e72e2603c](https://github.com/pluginsGLPI/formcreator/commit/e72e2603c))
+
+
+
## [2.13.8](https://github.com/pluginsGLPI/formcreator/compare/2.13.7..2.13.8) (2023-111-08)
diff --git a/inc/abstracttarget.class.php b/inc/abstracttarget.class.php
index db46feff2..66b3d0e04 100644
--- a/inc/abstracttarget.class.php
+++ b/inc/abstracttarget.class.php
@@ -79,6 +79,8 @@ abstract public static function getTargetItemtypeName(): string;
*/
abstract protected function getTaggableFields();
+ abstract protected function getTemplateItemtypeName();
+
const DESTINATION_ENTITY_CURRENT = 1;
const DESTINATION_ENTITY_REQUESTER = 2;
const DESTINATION_ENTITY_REQUESTER_DYN_FIRST = 3;
@@ -561,4 +563,18 @@ public function prepareInputForClone($input) {
unset($input['uuid']);
return $input;
}
+
+ protected static function getTemplateByName(string $name): int {
+ $targetTemplateType = (new static())->getTemplateItemtypeName();
+ $targetTemplate = new $targetTemplateType();
+ $targetTemplate->getFromDBByCrit([
+ 'name' => $name,
+ ]);
+
+ if ($targetTemplate->isNewItem()) {
+ return 0;
+ }
+
+ return $targetTemplate->getID();
+ }
}
diff --git a/inc/command/cleanticketscommand.class.php b/inc/command/cleanticketscommand.class.php
index b8c2a2371..554a4cecb 100644
--- a/inc/command/cleanticketscommand.class.php
+++ b/inc/command/cleanticketscommand.class.php
@@ -218,7 +218,7 @@ protected function fixBadForm_2(InputInterface $input, OutputInterface $output)
];
}
if ($replace === null) {
- $message = __("Unable to determine the encoding type of item ID: %1$d", "formcreator");
+ $message = __('Unable to determine the encoding type of item ID: %1$d', "formcreator");
$output->writeln("" . sprintf($message, $item['id']) . "");
continue;
}
@@ -282,8 +282,8 @@ protected function fixBadForm_3(InputInterface $input, OutputInterface $output)
];
}
if ($replace === null) {
- $message = __("Unable to determine the encoding type of item ID: %1$d", "formcreator");
- $output->writeln("" . sprinf($message, $item['id']) . "");
+ $message = __('Unable to determine the encoding type of item ID: %1$d', "formcreator");
+ $output->writeln("" . sprintf($message, $item['id']) . "");
continue;
}
$item['content'] = str_replace($pattern, $replace, $item['content']);
diff --git a/inc/common.class.php b/inc/common.class.php
index 8174bf630..f22171f4a 100644
--- a/inc/common.class.php
+++ b/inc/common.class.php
@@ -819,7 +819,6 @@ public static function hookRedefineMenu($menus) {
'ORDER' => "$reminderTable.name"
];
$criteria = $criteria + Reminder::getVisibilityCriteria();
- $criteria['WHERE']["$reminderTable.users_id"] = ['<>', Session::getLoginUserID()];
$iterator = $DB->request($criteria);
$hasReminder = $iterator->count() > 0;
diff --git a/inc/field/actorfield.class.php b/inc/field/actorfield.class.php
index 1d0ddc416..7af2287f0 100644
--- a/inc/field/actorfield.class.php
+++ b/inc/field/actorfield.class.php
@@ -128,7 +128,7 @@ public function getRenderedHtml($domain, $canEdit = true): string {
'display_emptychoice' => false,
'values' => array_keys($value),
'valuesnames' => array_values($value),
- '_idor_token' => Session::getNewIDORToken(User::getType()),
+ '_idor_token' => Session::getNewIDORToken(User::getType(), ['entity_restrict' => -1]),
];
$html .= \PluginFormcreatorCommon::jsAjaxDropdown(
$fieldName . '[]',
diff --git a/inc/field/dropdownfield.class.php b/inc/field/dropdownfield.class.php
index 077a43394..bbd48628e 100644
--- a/inc/field/dropdownfield.class.php
+++ b/inc/field/dropdownfield.class.php
@@ -245,7 +245,7 @@ public function buildParams($rand = null) {
],
]);
$tickets_filter[] = [
- 'id' => $requestersObserversQuery,
+ Ticket::getTableField('id') => $requestersObserversQuery,
];
}
@@ -383,7 +383,15 @@ public function getRenderedHtml($domain, $canEdit = true): string {
$dparams = [];
$dparams = $this->buildParams($rand);
$dparams['display'] = false;
- $dparams['_idor_token'] = Session::getNewIDORToken($itemtype);
+
+ $idor_params = [];
+ foreach (['condition', 'displaywith', 'entity_restrict', 'right'] as $sensitive_param) {
+ if (array_key_exists($sensitive_param, $dparams)) {
+ $idor_params[$sensitive_param] = $dparams[$sensitive_param];
+ }
+ }
+ $dparams['_idor_token'] = Session::getNewIDORToken($itemtype, $idor_params);
+
$html .= $itemtype::dropdown($dparams);
$html .= PHP_EOL;
$html .= Html::scriptBlock("$(function() {
@@ -594,8 +602,9 @@ private function getMyGroups($userID) {
if ($result->count() === 0) {
return [];
}
+ $a_groups = [];
foreach ($result as $data) {
- $a_groups = $dbUtil->getAncestorsOf("glpi_groups", $data["groups_id"]);
+ $a_groups = $a_groups + $dbUtil->getAncestorsOf("glpi_groups", $data["groups_id"]);
$a_groups[$data["groups_id"]] = $data["groups_id"];
}
return $a_groups;
diff --git a/inc/field/hiddenfield.class.php b/inc/field/hiddenfield.class.php
index af7ec609f..d2c2320a1 100644
--- a/inc/field/hiddenfield.class.php
+++ b/inc/field/hiddenfield.class.php
@@ -47,7 +47,7 @@ public function isPrerequisites(): bool {
public function showForm(array $options): void {
$template = '@formcreator/field/' . $this->question->fields['fieldtype'] . 'field.html.twig';
- $this->question->fields['default_values'] = Html::entities_deep($this->question->fields['default_values']);
+ // $this->question->fields['default_values'] = Html::entities_deep($this->question->fields['default_values']);
$this->deserializeValue($this->question->fields['default_values']);
TemplateRenderer::getInstance()->display($template, [
'item' => $this->question,
diff --git a/inc/field/textareafield.class.php b/inc/field/textareafield.class.php
index 0c7e9153a..22d73b369 100644
--- a/inc/field/textareafield.class.php
+++ b/inc/field/textareafield.class.php
@@ -243,7 +243,40 @@ public function isValid(): bool {
return false;
}
- // All is OK
+ return $this->isValidValue($this->value);
+ }
+
+ public function isValidValue($value): bool {
+ if (strlen($value) == 0) {
+ return true;
+ }
+
+ $parameters = $this->getParameters();
+
+ $stripped = strip_tags($value);
+
+ // Check the field matches the format regex
+ $regex = $parameters['regex']->fields['regex'];
+ if ($regex !== null && strlen($regex) > 0) {
+ if (!preg_match($regex, $stripped)) {
+ Session::addMessageAfterRedirect(sprintf(__('Specific format does not match: %s', 'formcreator'), $this->question->fields['name']), false, ERROR);
+ return false;
+ }
+ }
+
+ // Check the field is in the range
+ $rangeMin = $parameters['range']->fields['range_min'];
+ $rangeMax = $parameters['range']->fields['range_max'];
+ if ($rangeMin > 0 && strlen($stripped) < $rangeMin) {
+ Session::addMessageAfterRedirect(sprintf(__('The text is too short (minimum %d characters): %s', 'formcreator'), $rangeMin, $this->question->fields['name']), false, ERROR);
+ return false;
+ }
+
+ if ($rangeMax > 0 && strlen($stripped) > $rangeMax) {
+ Session::addMessageAfterRedirect(sprintf(__('The text is too long (maximum %d characters): %s', 'formcreator'), $rangeMax, $this->question->fields['name']), false, ERROR);
+ return false;
+ }
+
return true;
}
diff --git a/inc/form_validator.class.php b/inc/form_validator.class.php
index c7c99538d..14c5177e0 100644
--- a/inc/form_validator.class.php
+++ b/inc/form_validator.class.php
@@ -192,7 +192,12 @@ public function showForForm(PluginFormcreatorForm $item, $options = []) {
'valuesnames' => array_values($selectedValidatorUsers),
'condition' => Dropdown::addNewCondition($usersCondition),
];
- $params['_idor_token'] = Session::getNewIDORToken(User::getType());
+ $params['_idor_token'] = Session::getNewIDORToken(
+ User::getType(),
+ [
+ 'condition' => $params['condition'],
+ ]
+ );
echo Html::jsAjaxDropdown(
'_validator_users[]',
'_validator_users' . mt_rand(),
@@ -274,7 +279,12 @@ public function showForForm(PluginFormcreatorForm $item, $options = []) {
'condition' => Dropdown::addNewCondition($groupsCondition),
'display_emptychoice' => false,
];
- $params['_idor_token'] = Session::getNewIDORToken(Group::getType());
+ $params['_idor_token'] = Session::getNewIDORToken(
+ Group::getType(),
+ [
+ 'condition' => $params['condition'],
+ ]
+ );
echo Html::jsAjaxDropdown(
'_validator_groups[]',
'_validator_groups' . mt_rand(),
@@ -567,8 +577,13 @@ public static function dropdownValidatorUser(): string {
'entity_restrict' => -1,
'itemtype' => User::getType(),
'condition' => Dropdown::addNewCondition($usersCondition),
- '_idor_token' => Session::getNewIDORToken(User::getType()),
];
+ $params['_idor_token'] = Session::getNewIDORToken(
+ User::getType(),
+ [
+ 'condition' => $params['condition'],
+ ]
+ );
return Html::jsAjaxDropdown(
'_validator_users[]',
@@ -646,8 +661,13 @@ public static function dropdownValidatorGroup(): string {
'itemtype' => Group::getType(),
'condition' => Dropdown::addNewCondition($groupsCondition),
'display_emptychoice' => false,
- '_idor_token' => Session::getNewIDORToken(Group::getType()),
];
+ $params['_idor_token'] = Session::getNewIDORToken(
+ Group::getType(),
+ [
+ 'condition' => $params['condition'],
+ ]
+ );
return Html::jsAjaxDropdown(
'_validator_groups[]',
diff --git a/inc/formanswer.class.php b/inc/formanswer.class.php
index 1c9873d91..e3c398c7f 100644
--- a/inc/formanswer.class.php
+++ b/inc/formanswer.class.php
@@ -940,12 +940,16 @@ public function prepareInputForUpdate($input) {
* @return boolean true if pre_delete actions succeeded, false if not
*/
public function pre_deleteItem() {
+ global $CFG_GLPI;
+
$issue = new PluginFormcreatorIssue();
$issue->deleteByCriteria([
'items_id' => $this->getID(),
'itemtype' => self::getType(),
]);
+ $CFG_GLPI['keep_tickets_on_delete'] = '1';
+
return true;
}
@@ -1112,6 +1116,8 @@ public function getFullForm($richText = false): string {
$formFk = PluginFormcreatorForm::getForeignKeyField();
$fields = $this->getQuestionFields($this->fields[$formFk]);
+ $domain = PluginFormcreatorForm::getTranslationDomain($this->fields[$formFk]);
+
$this->deserializeAnswers();
// TODO: code very close to PluginFormcreatorAbstractTarget::parseTags() (factorizable ?)
@@ -1164,9 +1170,9 @@ public function getFullForm($richText = false): string {
$output .= ($richText ? '
' : $eol);
}
if ($richText) {
- $output .= '' . $question_line['section_name'] . '
';
+ $output .= '' . __($question_line['section_name'], $domain) . '
';
} else {
- $output .= $eol . $question_line['section_name'] . $eol;
+ $output .= $eol . __($question_line['section_name'], $domain) . $eol;
$output .= '---------------------------------' . $eol;
}
$last_section = $question_line[$sectionFk];
diff --git a/inc/issue.class.php b/inc/issue.class.php
index 4b5d2e9ad..baf504e14 100644
--- a/inc/issue.class.php
+++ b/inc/issue.class.php
@@ -526,6 +526,10 @@ public function rawSearchOptions() {
'field' => 'name',
'name' => __('Name'),
'datatype' => 'itemlink',
+ 'searchtype' => [
+ '0' => 'contains',
+ '1' => 'not contains',
+ ],
'massiveaction' => false,
'additionalfields' => [
'0' => 'display_id'
@@ -727,6 +731,7 @@ public function rawSearchOptions() {
'field' => 'name',
'name' => __('Technician'),
'datatype' => 'dropdown',
+ 'forcegroupby' => true,
'massiveaction' => false,
'nodisplay' => $hide_technician,
'nosearch' => $hide_technician,
diff --git a/inc/question.class.php b/inc/question.class.php
index 37ebc7175..e638f9e15 100644
--- a/inc/question.class.php
+++ b/inc/question.class.php
@@ -1233,6 +1233,7 @@ public static function dropdownObjectSubType(string $name, array $options = []):
Line::class => Line::getTypeName($plural),
PassiveDCEquipment::class => PassiveDCEquipment::getTypeName($plural),
PDU::class => PDU::getTypeName($plural),
+ Cluster::class => Cluster::getTypeName(2),
],
__("Assistance") => [
Ticket::class => Ticket::getTypeName($plural),
diff --git a/inc/target_actor.class.php b/inc/target_actor.class.php
index 69ad45170..cdb566893 100644
--- a/inc/target_actor.class.php
+++ b/inc/target_actor.class.php
@@ -194,7 +194,8 @@ public static function import(PluginFormcreatorLinker $linker, $input = [], $con
case self::ACTOR_TYPE_PERSON:
case self::ACTOR_TYPE_AUTHORS_SUPERVISOR:
$user = new User;
- $users_id = plugin_formcreator_getFromDBByField($user, 'name', $input['actor_value']);
+ $field = $idKey == 'id' ? 'id' : 'name';
+ $users_id = plugin_formcreator_getFromDBByField($user, $field, $input['actor_value']);
if ($users_id === false) {
throw new ImportFailureException(sprintf(__('Failed to find a user: %1$s'), $input['actor_value']));
}
@@ -203,7 +204,8 @@ public static function import(PluginFormcreatorLinker $linker, $input = [], $con
case self::ACTOR_TYPE_GROUP:
$group = new Group;
- $groups_id = plugin_formcreator_getFromDBByField($group, 'completename', $input['actor_value']);
+ $field = $idKey == 'id' ? 'id' : 'completename';
+ $groups_id = plugin_formcreator_getFromDBByField($group, $field, $input['actor_value']);
if ($groups_id === false) {
throw new ImportFailureException(sprintf(__('Failed to find a group: %1$s'), $input['actor_value']));
}
@@ -212,7 +214,8 @@ public static function import(PluginFormcreatorLinker $linker, $input = [], $con
case self::ACTOR_TYPE_SUPPLIER:
$supplier = new Supplier;
- $suppliers_id = plugin_formcreator_getFromDBByField($supplier, 'name', $input['actor_value']);
+ $field = $idKey == 'id' ? 'id' : 'name';
+ $suppliers_id = plugin_formcreator_getFromDBByField($supplier, $field, $input['actor_value']);
if ($suppliers_id === false) {
throw new ImportFailureException(sprintf(__('Failed to find a supplier: %1$s'), $input['actor_value']));
}
@@ -264,41 +267,42 @@ public function export(bool $remove_uuid = false) : array {
$idToRemove = 'id';
if ($remove_uuid) {
$idToRemove = 'uuid';
- } else {
- // Convert IDs into UUIDs or names
- switch ($target_actor['actor_type']) {
- case self::ACTOR_TYPE_QUESTION_PERSON:
- case self::ACTOR_TYPE_QUESTION_GROUP:
- case self::ACTOR_TYPE_QUESTION_SUPPLIER:
- case self::ACTOR_TYPE_QUESTION_ACTORS:
- case self::ACTOR_TYPE_GROUP_FROM_OBJECT:
- case self::ACTOR_TYPE_TECH_GROUP_FROM_OBJECT :
- $question = new PluginFormcreatorQuestion;
- if ($question->getFromDB($target_actor['actor_value'])) {
- $target_actor['actor_value'] = $question->fields['uuid'];
- }
- break;
- case self::ACTOR_TYPE_PERSON:
- case self::ACTOR_TYPE_AUTHORS_SUPERVISOR:
- $user = new User;
- if ($user->getFromDB($target_actor['actor_value'])) {
- $target_actor['actor_value'] = $user->fields['name'];
- }
- break;
- case self::ACTOR_TYPE_GROUP:
- $group = new Group;
- if ($group->getFromDB($target_actor['actor_value'])) {
- $target_actor['actor_value'] = $group->fields['completename'];
- }
- break;
- case self::ACTOR_TYPE_SUPPLIER:
- $supplier = new Supplier;
- if ($supplier->getFromDB($target_actor['actor_value'])) {
- $target_actor['actor_value'] = $supplier->fields['name'];
- }
- break;
- }
}
+
+ // Convert IDs into UUIDs or names
+ switch ($target_actor['actor_type']) {
+ case self::ACTOR_TYPE_QUESTION_PERSON:
+ case self::ACTOR_TYPE_QUESTION_GROUP:
+ case self::ACTOR_TYPE_QUESTION_SUPPLIER:
+ case self::ACTOR_TYPE_QUESTION_ACTORS:
+ case self::ACTOR_TYPE_GROUP_FROM_OBJECT:
+ case self::ACTOR_TYPE_TECH_GROUP_FROM_OBJECT :
+ $question = new PluginFormcreatorQuestion;
+ if ($question->getFromDB($target_actor['actor_value'])) {
+ $target_actor['actor_value'] = $question->fields['uuid'];
+ }
+ break;
+ case self::ACTOR_TYPE_PERSON:
+ case self::ACTOR_TYPE_AUTHORS_SUPERVISOR:
+ $user = new User;
+ if ($user->getFromDB($target_actor['actor_value'])) {
+ $target_actor['actor_value'] = $user->fields['name'];
+ }
+ break;
+ case self::ACTOR_TYPE_GROUP:
+ $group = new Group;
+ if ($group->getFromDB($target_actor['actor_value'])) {
+ $target_actor['actor_value'] = $group->fields['completename'];
+ }
+ break;
+ case self::ACTOR_TYPE_SUPPLIER:
+ $supplier = new Supplier;
+ if ($supplier->getFromDB($target_actor['actor_value'])) {
+ $target_actor['actor_value'] = $supplier->fields['name'];
+ }
+ break;
+ }
+
unset($target_actor[$idToRemove]);
return $target_actor;
diff --git a/inc/targetchange.class.php b/inc/targetchange.class.php
index 1f8facab4..0afda0f5f 100644
--- a/inc/targetchange.class.php
+++ b/inc/targetchange.class.php
@@ -288,6 +288,16 @@ public static function import(PluginFormcreatorLinker $linker, array $input = []
$input[$fieldSetting['field']] = $question->getID();
}
+ // Find template by name
+ $input['changetemplates_id'] = 0;
+ if (is_string($input['_changetemplate']) && strlen($input['_changetemplate']) > 0) {
+ $input['changetemplates_id'] = self::getTemplateByName($input['_changetemplate']);
+ if ($input['changetemplates_id'] === 0) {
+ $typeName = strtolower(self::getTypeName());
+ throw new ImportFailureException(sprintf(__('Failed to add or update the %1$s %2$s: It uses a non existent template', 'formceator'), $typeName, $input['name']));
+ }
+ }
+
// Add or update
$originalId = $input[$idKey];
$item->skipChecks = true;
diff --git a/inc/targetproblem.class.php b/inc/targetproblem.class.php
index 3e911a9e3..09bb37eda 100644
--- a/inc/targetproblem.class.php
+++ b/inc/targetproblem.class.php
@@ -525,6 +525,15 @@ public static function import(PluginFormcreatorLinker $linker, array $input = []
$input[$fieldSetting['field']] = $question->getID();
}
+ // Find template by name
+ $input['problemtemplates_id'] = 0;
+ if (is_string($input['_problemtemplate']) && strlen($input['_problemtemplate']) > 0) {
+ $input['problemtemplates_id'] = self::getTemplateByName($input['_problemtemplate']);
+ if ($input['problemtemplates_id'] === 0) {
+ $typeName = strtolower(self::getTypeName());
+ throw new ImportFailureException(sprintf(__('Failed to add or update the %1$s %2$s: It uses a non existent template', 'formceator'), $typeName, $input['name']));
+ }
+ }
// Add or update
$originalId = $input[$idKey];
$item->skipChecks = true;
diff --git a/inc/targetticket.class.php b/inc/targetticket.class.php
index 865256c0c..6c49f2aeb 100644
--- a/inc/targetticket.class.php
+++ b/inc/targetticket.class.php
@@ -977,8 +977,10 @@ protected function setTargetLocation($data, $formanswer) {
'plugin_formcreator_questions_id' => $this->fields['location_question']
]
])->current();
- if (isset($location['answer']) && ctype_digit($location['answer'])) {
+ if (isset($location['answer']) && !Location::isNewID($location['answer'])) {
$location = $location['answer'];
+ } else {
+ $location = null;
}
break;
case self::LOCATION_RULE_SPECIFIC:
@@ -1402,6 +1404,16 @@ public static function import(PluginFormcreatorLinker $linker, array $input = []
$input[$fieldSetting['field']] = $question->getID();
}
+ // Find template by name
+ $input['tickettemplates_id'] = 0;
+ if (is_string($input['_tickettemplate']) && strlen($input['_tickettemplate']) > 0) {
+ $input['tickettemplates_id'] = self::getTemplateByName($input['_tickettemplate'] ?? '');
+ if ($input['tickettemplates_id'] === 0) {
+ $typeName = strtolower(self::getTypeName());
+ throw new ImportFailureException(sprintf(__('Failed to add or update the %1$s %2$s: It uses a non existent template', 'formceator'), $typeName, $input['name']));
+ }
+ }
+
// Add or update
$originalId = $input[$idKey];
$item->skipChecks = true;
diff --git a/install/install.php b/install/install.php
index 47e245654..1c086c611 100644
--- a/install/install.php
+++ b/install/install.php
@@ -762,10 +762,10 @@ protected function createMiniDashboardBigNumbers() {
];
// With counters
- $x = 2;
- $w = 3; // Width
+ $x = 0;
+ $w = 4; // Width
$h = 1; // Height
- $s = 1; // space between widgets
+ $s = 0; // space between widgets
$y = 0;
foreach ($cards as $key => $options) {
$item = new Dashboard_Item();
diff --git a/install/mysql/plugin_formcreator_2.13.9_empty.sql b/install/mysql/plugin_formcreator_2.13.9_empty.sql
new file mode 100644
index 000000000..6838b92fb
--- /dev/null
+++ b/install/mysql/plugin_formcreator_2.13.9_empty.sql
@@ -0,0 +1,352 @@
+-- Database schema
+-- Do NOT drop anything here
+
+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/js/scripts.js b/js/scripts.js
index 1ef28519e..cfc1291b0 100644
--- a/js/scripts.js
+++ b/js/scripts.js
@@ -1373,7 +1373,7 @@ var plugin_formcreator = new function() {
.off('click');
$(form).removeAttr('data-submitted');
- if (xhr.responseText == '') {
+ if (xhr.responseText.trim() == '') {
displayAjaxMessageAfterRedirect();
return;
}
diff --git a/locales/de_DE.mo b/locales/de_DE.mo
index f38a9dc31..3691e677a 100644
Binary files a/locales/de_DE.mo and b/locales/de_DE.mo differ
diff --git a/locales/de_DE.po b/locales/de_DE.po
index 1674d3f45..082a4f5fe 100644
--- a/locales/de_DE.po
+++ b/locales/de_DE.po
@@ -13,6 +13,8 @@
# Florian Ried , 2022
# Michael Schieferer, 2023
# Thierry Bugier , 2023
+# iDazai, 2023
+# Simon Heim, 2023
#
#, fuzzy
msgid ""
@@ -21,7 +23,7 @@ msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-11-13 14:56+0100\n"
"PO-Revision-Date: 2021-08-30 07:22+0000\n"
-"Last-Translator: Thierry Bugier , 2023\n"
+"Last-Translator: Simon Heim, 2023\n"
"Language-Team: German (Germany) (https://app.transifex.com/teclib/teams/28042/de_DE/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -60,7 +62,7 @@ msgstr "Konnte den Abschnitt nicht hinzufügen"
#: ajax/commontree.php:55 entrée standard:128 standard:100
msgid "Subtree root"
-msgstr "Wurzel der Unterabschnitts"
+msgstr "Wurzel des Unterabschnitts"
#: ajax/commontree.php:59
msgid "Selectable"
@@ -216,7 +218,7 @@ msgstr[1] "Dropdowns"
#: inc/field/dropdownfield.class.php:473
msgid "Invalid value for "
-msgstr "Ungültiger Wert: "
+msgstr "Ungültiger Wert für"
#: inc/field/dropdownfield.class.php:485
#, php-format
@@ -230,7 +232,7 @@ msgstr "Ungültiger Dropdown-Typ: %s"
#: inc/field/dropdownfield.class.php:839 entrée standard:162 standard:134
msgid "Entity restriction"
-msgstr "EInschränkung"
+msgstr "Einschränkung"
#: inc/field/dropdownfield.class.php:848
msgid ""
@@ -254,7 +256,7 @@ msgstr "LDAP-Verzeichnis nicht gefunden!"
#: inc/field/ldapselectfield.class.php:154
msgid "LDAP attribute is required!"
-msgstr ""
+msgstr "LDAP Attribut ist erforderlich!"
#: inc/field/textfield.class.php:146 inc/field/floatfield.class.php:156
#, php-format
@@ -278,11 +280,11 @@ msgstr "Text"
#: inc/field/textfield.class.php:217 inc/field/floatfield.class.php:238
#: inc/questionregex.class.php:62 entrée standard:42
msgid "Regular expression"
-msgstr "reguläre Bezeichnung"
+msgstr "regulärer Ausdruck"
#: inc/field/textfield.class.php:222 inc/field/floatfield.class.php:243
msgid "Range"
-msgstr "Reichweite"
+msgstr "Bereich"
#: inc/field/textfield.class.php:228 inc/field/floatfield.class.php:249
msgid "Additional validation"
@@ -294,15 +296,15 @@ msgstr "Radios"
#: inc/field/radiosfield.class.php:116 inc/field/checkboxesfield.class.php:256
msgid "The field value is required."
-msgstr ""
+msgstr "Der Feldwert ist erforderlich."
#: inc/field/radiosfield.class.php:127
msgid "Only one default value is allowed."
-msgstr ""
+msgstr "Nur ein Standardwert ist erlaubt."
#: inc/field/radiosfield.class.php:138
msgid "The default value is not in the list of available values."
-msgstr ""
+msgstr "Der Standardwert ist nicht in der Liste der erlaubten Werte."
#: inc/field/radiosfield.class.php:215 inc/field/selectfield.class.php:105
#: inc/field/datetimefield.class.php:119 inc/field/actorfield.class.php:257
@@ -314,7 +316,7 @@ msgstr "Ein notwendiges Feld ist nicht ausgefüllt: %s"
#: inc/field/radiosfield.class.php:234 inc/field/selectfield.class.php:123
#, php-format
msgid "This value %1$s is not allowed: %2$s"
-msgstr ""
+msgstr "Der Wert %1$s ist nicht erlaubt: %2$s"
#: inc/field/integerfield.class.php:60
#, php-format
@@ -449,7 +451,7 @@ msgstr "Datei"
#: inc/field/multiselectfield.class.php:89
msgid "Multiselect"
-msgstr "Multiselect"
+msgstr "Mehrfachauswahl"
#: inc/field/fieldsfield.class.php:154
msgid "Warning: Additional Fields plugin is disabled or missing"
@@ -478,7 +480,7 @@ msgstr "Manche numerische Felder enthalten keine Zahlen"
#: inc/field/fieldsfield.class.php:471
msgid "Some URL fields contains invalid links"
-msgstr "Manche Felder für URL enthalten keine Links"
+msgstr "Manche URL Felder enthalten keine Links"
#: inc/field/fieldsfield.class.php:565
msgid "Additional fields"
@@ -486,31 +488,31 @@ msgstr "Zusätzliche Felder"
#: inc/field/checkboxesfield.class.php:132
msgid "Checkboxes"
-msgstr "Checkbox"
+msgstr "Checkboxes"
#: inc/field/checkboxesfield.class.php:208
#, php-format
msgid "Empty values are not allowed: %s"
-msgstr ""
+msgstr "Leere Werte sind nicht erlaubt: %s"
#: inc/field/checkboxesfield.class.php:216
#, php-format
msgid "This value %1$s is not alowed: %2$s"
-msgstr ""
+msgstr "Der Wert %1$s ist nicht erlaubt: %2$s"
#: inc/field/checkboxesfield.class.php:236
#, php-format
msgid "The following question needs at least %d answers: %s"
-msgstr ""
+msgstr "Die folgende Frage braucht mindestens %d Antworten: %s"
#: inc/field/checkboxesfield.class.php:242
#, php-format
msgid "The following question does not accept more than %d answers: %s"
-msgstr ""
+msgstr "Die folgende Frage akzeptiert nicht mehr als %d Antworten: %s"
#: inc/field/checkboxesfield.class.php:270
msgid "The default values are not in the list of available values."
-msgstr ""
+msgstr "Die Standardwerte sind nicht in der Liste der erlaubten Werte."
#: inc/field/checkboxesfield.class.php:325
msgid "Range min"
@@ -554,7 +556,7 @@ msgstr "Beschreibung"
#: inc/field/descriptionfield.class.php:112
msgid "A description field should have a description:"
-msgstr "Ein Beschreibungsfeld sollte eine Beschreibung beinhalten"
+msgstr "Ein Beschreibungsfeld sollte eine Beschreibung beinhalten:"
#: inc/field/hiddenfield.class.php:95
msgid "Hidden field"
@@ -574,11 +576,11 @@ msgstr "ist sichtbar"
#: inc/condition.class.php:105
msgid "is not visible"
-msgstr "is nicht sichtbar"
+msgstr "ist nicht sichtbar"
#: inc/condition.class.php:106
msgid "regular expression matches"
-msgstr "Regular Expression trifft zu"
+msgstr "Regulärer Ausdruck trifft zu"
#: inc/condition.class.php:117
msgid "Always displayed"
@@ -703,7 +705,7 @@ msgstr "notwendig bei Ablehnung"
#: inc/issue.class.php:655
msgid "Ticket approver"
-msgstr "Ticket-Genehmiger"
+msgstr "Ticketgenehmiger"
#: inc/issue.class.php:728
msgid "Technician"
@@ -719,19 +721,19 @@ msgstr "Formulargenehmigergruppe"
#: inc/issue.class.php:817
msgid "Ticket approver group"
-msgstr "Ticket-Genehmigergruppe"
+msgstr "Ticketgenehmigergruppe"
#: inc/issue.class.php:857
msgid "Ticket requester"
-msgstr "Ticket Anforderer"
+msgstr "Ticketanforderer"
#: inc/issue.class.php:904
msgid "Ticket observer"
-msgstr "Ticket Beobachter"
+msgstr "Ticketbeobachter"
#: inc/issue.class.php:952
msgid "Ticket technician"
-msgstr "Ticket Techniker"
+msgstr "Tickettechniker"
#: inc/issue.class.php:1099
#, php-format
@@ -776,7 +778,7 @@ msgstr[1] "Fomularkategorien"
#: inc/category.class.php:72
msgid "Knowbase category"
-msgstr "Knowlagebase-Kategorie"
+msgstr "Wissensdatenbankkategorie"
#: inc/category.class.php:78
msgid "As child of"
@@ -804,7 +806,7 @@ msgstr "Das Formular wurde gelöscht"
#: inc/notificationtargetformanswer.class.php:74
msgid "Form ID"
-msgstr ""
+msgstr "Formular ID"
#: inc/notificationtargetformanswer.class.php:75
#: inc/notificationtargetformanswer.class.php:95
@@ -824,7 +826,7 @@ msgstr "Formular Rückantworten"
#: inc/notificationtargetformanswer.class.php:80
msgid "Validation comment"
-msgstr ""
+msgstr "Genehmigungskommentar"
#: inc/notificationtargetformanswer.class.php:81
#: inc/notificationtargetformanswer.class.php:101
@@ -833,7 +835,7 @@ msgstr "Bestätigungslink"
#: inc/notificationtargetformanswer.class.php:82
msgid "Request ID"
-msgstr ""
+msgstr "Anfragen ID"
#: inc/notificationtargetformanswer.class.php:94
msgid "Form #"
@@ -867,7 +869,7 @@ msgstr "Formularersteller"
#: inc/target_actor.class.php:71 inc/abstractitiltarget.class.php:2093
msgid "Form validator"
-msgstr "Formular Genehmiger"
+msgstr "Formulargenehmiger"
#: inc/target_actor.class.php:72
msgid "Specific person"
@@ -891,7 +893,7 @@ msgstr "Objektgruppe"
#: inc/target_actor.class.php:77
msgid "Tech group from an object"
-msgstr "Techniker Gruppe des Objekts"
+msgstr "Technikergruppe des Objekts"
#: inc/target_actor.class.php:78
msgid "Specific supplier"
@@ -921,7 +923,7 @@ msgstr "Zugewiesen an"
msgid "Target actor"
msgid_plural "Target actors"
msgstr[0] "Ticket-Bearbeiter"
-msgstr[1] "Ticket-Bearbeiter"
+msgstr[1] "Ticketbearbeiter"
#: inc/target_actor.class.php:115 inc/target_actor.class.php:131
#: inc/target_actor.class.php:140
@@ -1002,6 +1004,8 @@ msgid ""
"An internal error occured when verifying your answers. Please report it to "
"your administrator."
msgstr ""
+"Beim Überprüfen Ihrer Antworten ist ein interner Fehler aufgetreten. Bitte "
+"melden Sie dies Ihrem Administrator."
#: inc/formanswer.class.php:882
msgid "You are not the validator of these answers"
@@ -1023,7 +1027,7 @@ msgstr "Zugriff generieren nicht möglich!"
#: inc/formanswer.class.php:1434
#, php-format
msgid "Answer is invalid in %1$s"
-msgstr ""
+msgstr "Antwort ist ungültig in %1$s"
#: inc/formanswer.class.php:1462
msgid "No turing test set"
@@ -1059,11 +1063,11 @@ msgstr "Meine Hilfsanfragen"
#: inc/common.class.php:829
msgid "Consult reminders"
-msgstr ""
+msgstr "Erinnerungen einsehen"
#: inc/common.class.php:849
msgid "Consult feeds"
-msgstr "Feeds zu Rate ziehen"
+msgstr "Feeds einsehen"
#: inc/formaccesstype.class.php:39 inc/formaccesstype.class.php:64
msgid "Access type"
@@ -1077,7 +1081,7 @@ msgstr "Zum Formular verknüpfen"
#: inc/formaccesstype.class.php:92
msgid "Please activate the form to view the link"
-msgstr "Bitte Formular wählen um den Link zu aktivieren"
+msgstr "Bitte Formular wählen, um den Link zu aktivieren"
#: inc/formaccesstype.class.php:100 inc/form.class.php:1505
msgid "Enable captcha"
@@ -1101,15 +1105,15 @@ msgstr[1] "Übersetzungen"
#: inc/form_language.class.php:122
msgid "The name cannot be empty."
-msgstr ""
+msgstr "Der Name kann nicht leer sein."
#: inc/form_language.class.php:130
msgid "The language must be associated to a form."
-msgstr ""
+msgstr "Die Sprache muss einem Formular zugeordnet sein."
#: inc/form_language.class.php:138
msgid "The specified language is not available."
-msgstr ""
+msgstr "Die gewählte Sprache ist nicht verfügbar."
#: inc/form_language.class.php:268
msgid "Add a translation"
@@ -1191,8 +1195,8 @@ msgstr "Genehmiger auswählen"
#: inc/targetproblem.class.php:43 entrée standard:43
msgid "Target problem"
msgid_plural "Target problems"
-msgstr[0] "Zielproblem"
-msgstr[1] "Zielprobleme"
+msgstr[0] "Problem"
+msgstr[1] "Probleme"
#: inc/targetproblem.class.php:109 inc/targetproblem.class.php:579
#: inc/targetchange.class.php:105 inc/targetchange.class.php:441
@@ -1207,7 +1211,7 @@ msgid ""
"Failed to add or update the %1$s %2$s: a question is missing and is used in "
"a parameter of the target"
msgstr ""
-"Fehler beim Hinzufügen oder Löschen von %1$s %2$s: eine Frage fehlt ist "
+"Fehler beim Hinzufügen oder Löschen von %1$s %2$s: eine Frage fehlt, ist "
"jedoch ein Parameter des Ziels"
#: inc/targetproblem.class.php:580 inc/targetchange.class.php:106
@@ -1278,7 +1282,7 @@ msgstr "Mit Formularen zusammengeführt"
#: inc/entityconfig.class.php:119
msgid "Distinct menu entry"
-msgstr "Eindeutiger Menueintrag"
+msgstr "Eindeutiger Menüeintrag"
#: inc/entityconfig.class.php:126 inc/entityconfig.class.php:134
#: inc/entityconfig.class.php:142 inc/entityconfig.class.php:150
@@ -1314,7 +1318,7 @@ msgstr "Helpdesk"
#: inc/entityconfig.class.php:269 inc/entityconfig.class.php:449 entrée
#: standard:44
msgid "Helpdesk mode"
-msgstr "Helpdesk modus"
+msgstr "Helpdesk Modus"
#: inc/entityconfig.class.php:280 inc/entityconfig.class.php:519
msgid "Default Form list mode"
@@ -1326,7 +1330,7 @@ msgstr "Sortierreihenfolge"
#: inc/entityconfig.class.php:314 inc/entityconfig.class.php:469
msgid "Knowledge base"
-msgstr "Knowledge base"
+msgstr "Wissensdatenbank"
#: inc/entityconfig.class.php:329
msgid "Search"
@@ -1395,7 +1399,7 @@ msgstr "eingeschränkter Zugriff"
#: inc/form.class.php:122
msgid "Answers waiting for validation"
-msgstr "Antwort wartet auf Prüfung"
+msgstr "Antworten warten auf Prüfung"
#: inc/form.class.php:124 inc/form.class.php:1695 inc/form.class.php:1721
msgid "Import forms"
@@ -1424,11 +1428,11 @@ msgstr "Aktiv"
#: inc/form.class.php:261 entrée standard:65
msgid "Icon"
-msgstr "Icon"
+msgstr "Symbol"
#: inc/form.class.php:269 entrée standard:67
msgid "Icon color"
-msgstr "Icon Farbe"
+msgstr "Symbolfarbe"
#: inc/form.class.php:277 entrée standard:80
msgid "Background color"
@@ -1474,7 +1478,7 @@ msgstr "Vorschau"
#: inc/form.class.php:576
msgid "Form answer properties"
-msgstr ""
+msgstr "Eigenschaften Formularantworten"
#: inc/form.class.php:900
msgid "What are you looking for?"
@@ -1509,7 +1513,7 @@ msgstr "Alle Formulare (Genehmiger)"
#: inc/form.class.php:1095 inc/form.class.php:1229
#: inc/abstracttarget.class.php:162 inc/abstractitiltarget.class.php:1573
msgid "The name cannot be empty!"
-msgstr "Das Feld Name kann nicht leer sein"
+msgstr "Der Name kann nicht leer sein!"
#: inc/form.class.php:1240
msgid "Cannot use empty name for form answers. Keeping the previous value."
@@ -1548,7 +1552,7 @@ msgstr "Zurück"
#: inc/form.class.php:1568
#, php-format
msgid "Form updated: %s"
-msgstr ""
+msgstr "Formular aktualisiert: %s"
#: inc/form.class.php:1668
msgid "Upload of JSON files not allowed."
@@ -1673,8 +1677,8 @@ msgstr "plugin_formcreator_load_check"
#: inc/targetchange.class.php:44 entrée standard:43
msgid "Target change"
msgid_plural "Target changes"
-msgstr[0] "Betroffene Änderung"
-msgstr[1] "Betroffene Änderungen"
+msgstr[0] "Änderung"
+msgstr[1] "Änderungen"
#: inc/targetchange.class.php:344 entrée standard:48
msgid "Change title"
@@ -1734,11 +1738,11 @@ msgstr "Die Sektion ist notwendig"
#: inc/question.class.php:345
#, php-format
msgid "Field type %1$s is not available for question %2$s."
-msgstr "Typ %1$s is nicht verfügbar für die Frage %2$s."
+msgstr "Typ %1$s ist nicht verfügbar für die Frage %2$s."
#: inc/question.class.php:358
msgid "This type of question is not compatible with public forms."
-msgstr "Art der Frage ist nicht verfügbar bei öffentlichen Formularen."
+msgstr "Art der Frage ist bei öffentlichen Formularen nicht verfügbar."
#: inc/question.class.php:367
msgid "This type of question requires parameters"
@@ -1805,35 +1809,35 @@ msgstr "Feldname"
#: inc/abstracttarget.class.php:97
msgid "Current active entity"
-msgstr "Aktuell aktiver "
+msgstr "Aktuell aktive Entität"
#: inc/abstracttarget.class.php:98
msgid "Default requester user's entity"
-msgstr "Standardanforderer Benutzereintrag"
+msgstr "Standardanforderer Benutzerentität"
#: inc/abstracttarget.class.php:99
msgid "First dynamic requester user's entity (alphabetical)"
-msgstr "Zuerst dynamischer Usereintag (alphabetisch)"
+msgstr "Erste dynamische Anfragesteller-Benutzerentität (alphabetisch)"
#: inc/abstracttarget.class.php:100
msgid "Last dynamic requester user's entity (alphabetical)"
-msgstr "Letzter dynamischer Anforderer (alphabetisch)"
+msgstr "Letzte dynamische Anfragesteller-Benutzerentität (alphabetisch)"
#: inc/abstracttarget.class.php:101
msgid "The form entity"
-msgstr "Formulareinheit"
+msgstr "Formularentität"
#: inc/abstracttarget.class.php:102
msgid "Default entity of the validator"
-msgstr "Standardeinheit des Genehmigers"
+msgstr "Standardentität des Genehmigers"
#: inc/abstracttarget.class.php:103
msgid "Specific entity"
-msgstr "spezielle-Einheit"
+msgstr "spezielle Entität"
#: inc/abstracttarget.class.php:104
msgid "Default entity of a user type question answer"
-msgstr "Standatd Einheit einer Antwort einer Benutzeranfrage"
+msgstr "Standardentität einer Antwort einer Benutzeranfrage"
#: inc/abstracttarget.class.php:105
msgid "From a GLPI object > Entity type question answer"
@@ -1841,15 +1845,15 @@ msgstr "Aus einem GLPI-Objekt > Antwort auf eine Gruppen-Frage"
#: inc/abstracttarget.class.php:116
msgid "Always generated"
-msgstr "immer erzeugt"
+msgstr "Immer erstellen"
#: inc/abstracttarget.class.php:117
msgid "Disabled unless"
-msgstr "Immer versteckt, außer"
+msgstr "Erstellen wenn"
#: inc/abstracttarget.class.php:118
msgid "Generated unless"
-msgstr "Immer generiert, außer"
+msgstr "Nicht erstellen wenn"
#: inc/abstracttarget.class.php:129
msgid "A target must be associated to a form."
@@ -1869,37 +1873,37 @@ msgstr "Zielgruppe"
#: inc/abstracttarget.class.php:521
msgid "User type question"
-msgstr "Benutzerfragestellung"
+msgstr "Frage zum Benutzertyp"
#: inc/abstracttarget.class.php:522
msgid "Entity type question"
-msgstr "Gruppen-Antwort"
+msgstr "Frage zum Entitätstyp"
#: inc/command/cleanticketscommand.class.php:53
msgid "Searching for invalid items..."
-msgstr ""
+msgstr "Suche nach ungültigen Einträgen..."
#: inc/command/cleanticketscommand.class.php:61
msgid "Done."
-msgstr ""
+msgstr "Erledigt."
#: inc/command/cleanticketscommand.class.php:135
msgid "Step 1: double encoded < and > signs."
-msgstr ""
+msgstr "Schritt 1: doppelt kodierte < und > Zeichen."
#: inc/command/cleanticketscommand.class.php:146
#: inc/command/cleanticketscommand.class.php:196
#: inc/command/cleanticketscommand.class.php:260
msgid "No invalid items found."
-msgstr ""
+msgstr "Keine ungültigen Einträge gefunden."
#: inc/command/cleanticketscommand.class.php:187
msgid "Step 2: literal BR tag."
-msgstr ""
+msgstr "Schritt 2: tatsächliches BR-tag."
#: inc/command/cleanticketscommand.class.php:251
msgid "Step 3: litteral > sign."
-msgstr ""
+msgstr "Schritt 3: tatsächliches > Zeichen."
#: inc/filter/itilcategoryfilter.class.php:52
#: inc/filter/itilcategoryfilter.class.php:54
@@ -1942,8 +1946,8 @@ msgstr[1] "Ticketbeziehungen erstellen"
#: inc/targetticket.class.php:57 entrée standard:43
msgid "Target ticket"
msgid_plural "Target tickets"
-msgstr[0] "Zielticket"
-msgstr[1] "Zieltickets"
+msgstr[0] "Ticket"
+msgstr[1] "Tickets"
#: inc/targetticket.class.php:100
msgid "Specific asset"
@@ -1979,11 +1983,11 @@ msgstr "Spezifischer Typ"
#: inc/targetticket.class.php:189 entrée standard:48
msgid "Ticket title"
-msgstr "Ticket-Titel"
+msgstr "Tickettitel"
#: inc/targetticket.class.php:302
msgid "Add validation message as first ticket followup"
-msgstr "Eine Validierungsnachricht als Erstticket-identifizierer hinzufügen"
+msgstr "Eine Validierungsnachricht als Erstticket Folgemaßnahme hinzufügen."
#: inc/targetticket.class.php:336
msgid "Add a field"
@@ -2060,7 +2064,7 @@ msgstr "Keine weiteren Texte zum Übersetzen"
#: inc/translation.class.php:164
msgid "Internal error: translatable string not found."
-msgstr ""
+msgstr "Interner Fehler: Übersetzbarer String nicht gefunden."
#: inc/translation.class.php:216
msgid "Language not found."
@@ -2072,7 +2076,7 @@ msgstr "Formular nicht gefunden."
#: inc/translation.class.php:236
msgid "Failed to add the translation."
-msgstr "Fehler beim Hinzufügen der Übersetzung-"
+msgstr "Fehler beim Hinzufügen der Übersetzung."
#: inc/abstractitiltarget.class.php:179
msgid "Tags from questions"
@@ -2092,7 +2096,7 @@ msgstr "Markierung einer Frage oder spezieller Markierungen"
#: inc/abstractitiltarget.class.php:188
msgid "equals to the answer to the question"
-msgstr "Entspricht der Anwort au die Frage"
+msgstr "Entspricht der Anwort auf die Frage"
#: inc/abstractitiltarget.class.php:189
msgid "calculated from the ticket creation date"
@@ -2100,7 +2104,7 @@ msgstr "aus dem Ticket-Erstelldatum berechnet"
#: inc/abstractitiltarget.class.php:190
msgid "calculated from the answer to the question"
-msgstr "von der Antwirt wurdeauf die Frage geschlossen"
+msgstr "wurde aus der Antwort auf die Frage berechnet"
#: inc/abstractitiltarget.class.php:196
msgid "SLA from template or none"
@@ -2272,6 +2276,8 @@ msgid ""
"The database schema is not consistent with the previous version of "
"Formcreator %s. To see the logs run the command %s"
msgstr ""
+"Das Datenbankschema ist nicht mit der vorherigen Version von Formcreator %s "
+"konsistent. Führe das Kommando %s aus, um die Ereignisse zu sehen."
#: install/install.php:181
#, php-format
@@ -2296,6 +2302,9 @@ msgid ""
"The database schema is not consistent with the current version of "
"Formcreator %s. To see the logs enable the plugin and run the command %s"
msgstr ""
+"Das Datenbankschema ist nicht mit der vorherigen Version von Formcreator %s "
+"konsistent. Aktiviere das Plugin und führe das Kommando %s aus, um die "
+"Ereignisse zu sehen."
#: install/install.php:261
msgid "The tables of the plugin passed the schema integrity check."
@@ -2338,7 +2347,7 @@ msgstr ""
#: install/install.php:426
msgid "Your form has been refused by the validator"
-msgstr "Ihr Formular wurde abgelehnt"
+msgstr "Ihr Formular wurde vom Genehmiger abgelehnt"
#: install/install.php:427
msgid ""
@@ -2413,7 +2422,7 @@ msgstr "Export"
#: hook.php:381
msgctxt "button"
msgid "Access rights"
-msgstr ""
+msgstr "Zugriffsrechte"
#: hook.php:693
msgid "Cancel my ticket"
@@ -2430,7 +2439,7 @@ msgstr "Anzahl von %s"
#: hook.php:735
msgid "Issues summary"
-msgstr "usammenfassung der Probleme"
+msgstr "Zusammenfassung der Probleme"
#: hook.php:780
msgid ""
@@ -2463,7 +2472,7 @@ msgstr "Sind Sie sich sicher, dass Sie diesen Abschnitt löschen möchten?"
#: js/scripts.js:1118
msgid "Add translations"
-msgstr "Übersetzung hinzufügen"
+msgstr "Übersetzungen hinzufügen"
#: js/scripts.js:1257 js/scripts.js:1281
msgid "An error occured while querying forms"
@@ -2479,11 +2488,11 @@ msgstr "Interner Fehler. Please beim Administrator melden."
#: js/scripts.js:1449
msgid "Are you sure you want to duplicate this target?"
-msgstr ""
+msgstr "Sind Sie sicher, dass Sie dieses Ziel duplizieren möchten?"
#: js/scripts.js:1466
msgid "Are you sure you want to delete this target?"
-msgstr ""
+msgstr "Sind Sie sicher, dass Sie dieses Ziel löschen möchten?"
#: entrée standard:43 standard:50 standard:44 standard:82 standard:49
#: standard:78
@@ -2547,7 +2556,7 @@ msgstr "Bedingungen zur Anzeige des Abschnitts"
#: entrée standard:40
msgid "Condition to generate the target"
-msgstr "Bedingungen um das Ziel zu erzeugen"
+msgstr "Bedingungen zum erstellen"
#: entrée standard:127
msgid "Condition to show the question"
@@ -2575,7 +2584,7 @@ msgstr "Bedingungen zur Anzeige des Senden-Buttons"
#: entrée standard:33
msgid "No form answer yet"
-msgstr "Kein Antworten bisher"
+msgstr "Keine Formularantworten bisher"
#: entrée standard:38
#, php-format
diff --git a/locales/es_EC.mo b/locales/es_EC.mo
index 465cd1b47..6dcfb1dd6 100644
Binary files a/locales/es_EC.mo and b/locales/es_EC.mo differ
diff --git a/locales/es_EC.po b/locales/es_EC.po
index bef79c4ba..b75814df1 100644
--- a/locales/es_EC.po
+++ b/locales/es_EC.po
@@ -4,8 +4,8 @@
# FIRST AUTHOR , YEAR.
#
# Translators:
-# Soporte Infraestructura Standby, 2023
# Thierry Bugier , 2023
+# Soporte Infraestructura Standby, 2023
#
#, fuzzy
msgid ""
@@ -14,7 +14,7 @@ msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-11-13 14:56+0100\n"
"PO-Revision-Date: 2021-08-30 07:22+0000\n"
-"Last-Translator: Thierry Bugier , 2023\n"
+"Last-Translator: Soporte Infraestructura Standby, 2023\n"
"Language-Team: Spanish (Ecuador) (https://app.transifex.com/teclib/teams/28042/es_EC/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -37,7 +37,7 @@ msgstr "Pregunta no encontrada"
#: ajax/section_duplicate.php:50 ajax/question_delete.php:49
#: ajax/question_toggle_required.php:55 ajax/section_update.php:44
msgid "You don't have right for this action"
-msgstr "No tienes derecho a esta acción"
+msgstr "No tiene derecho a esta acción"
#: ajax/question_duplicate.php:43
msgid "Source question not found"
@@ -71,7 +71,7 @@ msgstr "Sin límite"
#: entrée standard:47
msgid "Form"
msgid_plural "Forms"
-msgstr[0] "Formularios"
+msgstr[0] "Formulario"
msgstr[1] "Formularios"
msgstr[2] "Formularios"
@@ -122,13 +122,13 @@ msgstr "Catálogo de servicios"
#: front/issue.form.php:46
msgid "Item not found"
-msgstr "Artículo no encontrado"
+msgstr "Elemento no encontrado"
#: front/targetticket.form.php:46 front/targetticket.form.php:56
#: front/targetticket.form.php:81 front/targetchange.form.php:46
#: front/targetproblem.form.php:46
msgid "No right to update this item."
-msgstr "No hay derecho a actualizar este artículo."
+msgstr "No hay derecho a actualizar este elemento."
#: front/targetticket.form.php:75
msgid "Bad request while deleting an actor."
@@ -138,13 +138,13 @@ msgstr "Solicitud errónea al eliminar un actor."
#: front/formanswer.php:49 front/targetproblem.form.php:81 front/form.php:44
#: inc/common.class.php:692 inc/common.class.php:699
msgid "Form Creator"
-msgstr "Creador de formularios"
+msgstr "Creador de Formularios"
#: front/targetticket.form.php:105 front/targetchange.form.php:90
#: front/targetproblem.form.php:90
#, php-format
msgid "%1$s = %2$s"
-msgstr "%1$s=%2$s"
+msgstr "%1$s = %2$s"
#: front/formlist.php:46 front/formlist.php:52 inc/common.class.php:686
msgid "Form list"
@@ -159,19 +159,19 @@ msgstr "¡El formulario ha sido guardado exitosamente!"
#: front/reservation.form.php:71
#, php-format
msgid "%1$s purges the reservation for item %2$s"
-msgstr "%1$spurga la reserva del artículo%2$s"
+msgstr "%1$s depura la reserva del elemento %2$s"
#: front/reservation.form.php:124
#, php-format
msgid "%1$s adds the reservation %2$s for item %3$s"
-msgstr "%1$sañade la reserva%2$s para el artículo%3$s"
+msgstr "%1$s añade la reserve %2$s para el elemento %3$s"
#: inc/knowbase.class.php:60 inc/form.class.php:658
msgid "Category"
msgid_plural "Categories"
-msgstr[0] "Categorias"
-msgstr[1] "Categorias"
-msgstr[2] "Categorias"
+msgstr[0] "Categoría"
+msgstr[1] "Categorías"
+msgstr[2] "Categorías"
#: inc/knowbase.class.php:62 inc/form.class.php:661 entrée standard:39
msgid "See all"
@@ -179,7 +179,7 @@ msgstr "Ver todos"
#: inc/knowbase.class.php:83
msgid "Please, describe your need here"
-msgstr "Por favor, describe su necesidad aquí"
+msgstr "Por favor, describa su necesidad aquí"
#: inc/field/textareafield.class.php:176
msgid "Textarea"
@@ -206,7 +206,7 @@ msgstr "Usuario y formulario"
#: inc/field/dropdownfield.class.php:442 entrée standard:38
msgid "Dropdown"
msgid_plural "Dropdowns"
-msgstr[0] "Menús desplegables"
+msgstr[0] "Menú desplegable"
msgstr[1] "Menús desplegables"
msgstr[2] "Menús desplegables"
@@ -217,7 +217,7 @@ msgstr "Valor invalido para "
#: inc/field/dropdownfield.class.php:485
#, php-format
msgid "The itemtype field is required: %s"
-msgstr "El campo tipo de artículo es obligatorio:%s"
+msgstr "El campo tipo de elemento es obligatorio: %s"
#: inc/field/dropdownfield.class.php:501
#, php-format
@@ -233,8 +233,8 @@ msgid ""
"To respect the GLPI entity system, \"Form\" should be selected. Others "
"settings will break the entity restrictions"
msgstr ""
-"Para respetar el sistema de entidades GLPI, debe seleccionarse \"Forma\". "
-"Otros ajustes romperán las restricciones de entidad"
+"Para respetar el sistema de entidades de GLPI, debe seleccionarse "
+"\"Formulario\". Otros ajustes romperán las restricciones de entidad"
#: inc/field/ldapselectfield.class.php:95
msgid "LDAP Select"
@@ -250,7 +250,7 @@ msgstr "¡Directorio LDAP no encontrado!"
#: inc/field/ldapselectfield.class.php:154
msgid "LDAP attribute is required!"
-msgstr ""
+msgstr "¡Se requiere el atributo LDAP!"
#: inc/field/textfield.class.php:146 inc/field/floatfield.class.php:156
#, php-format
@@ -260,12 +260,12 @@ msgstr "Formato especificado no coincide: %s"
#: inc/field/textfield.class.php:155
#, php-format
msgid "The text is too short (minimum %d characters): %s"
-msgstr "El texto es demasiado corto (mínimo %d caracteres):%s"
+msgstr "El texto es demasiado corto (mínimo %d caracteres): %s"
#: inc/field/textfield.class.php:160
#, php-format
msgid "The text is too long (maximum %d characters): %s"
-msgstr "El texto es demasiado largo ( máximo %d caracteres ): %s"
+msgstr "El texto es demasiado largo (máximo %d caracteres): %s"
#: inc/field/textfield.class.php:168
msgid "Text"
@@ -290,15 +290,15 @@ msgstr "Botón de radio"
#: inc/field/radiosfield.class.php:116 inc/field/checkboxesfield.class.php:256
msgid "The field value is required."
-msgstr ""
+msgstr "El valor del campo es requerido."
#: inc/field/radiosfield.class.php:127
msgid "Only one default value is allowed."
-msgstr ""
+msgstr "Sólo se permite un valor predeterminado."
#: inc/field/radiosfield.class.php:138
msgid "The default value is not in the list of available values."
-msgstr ""
+msgstr "El valor predeterminado no está en la lista de valores disponibles."
#: inc/field/radiosfield.class.php:215 inc/field/selectfield.class.php:105
#: inc/field/datetimefield.class.php:119 inc/field/actorfield.class.php:257
@@ -310,7 +310,7 @@ msgstr "Un campo requerido esta vacío: %s"
#: inc/field/radiosfield.class.php:234 inc/field/selectfield.class.php:123
#, php-format
msgid "This value %1$s is not allowed: %2$s"
-msgstr ""
+msgstr "Este valor %1$s no está permitido: %2$s"
#: inc/field/integerfield.class.php:60
#, php-format
@@ -363,19 +363,19 @@ msgstr "Muy bajo"
#: inc/field/tagfield.class.php:51
msgid "Warning: Tag plugin is disabled or missing"
-msgstr "Advertencia: El plugin de etiquetas está deshabilitado o no existe"
+msgstr "Advertencia: El complemento Etiquetas está deshabilitado o no existe"
#: inc/field/tagfield.class.php:197
msgid "Tag"
msgid_plural "Tags"
-msgstr[0] "Etiquetas"
+msgstr[0] "Etiqueta"
msgstr[1] "Etiquetas"
msgstr[2] "Etiquetas"
#: inc/field/glpiselectfield.class.php:83 entrée standard:38
msgid "GLPI object"
msgid_plural "GLPI objects"
-msgstr[0] "Objetos GLPI"
+msgstr[0] "Objeto GLPI"
msgstr[1] "Objetos GLPI"
msgstr[2] "Objetos GLPI"
@@ -386,9 +386,9 @@ msgstr "El valor del campo es requerido:"
#: inc/field/hostnamefield.class.php:115
msgid "Hostname"
msgid_plural "Hostnames"
-msgstr[0] "Nombres de dominio"
-msgstr[1] "Nombres de dominio"
-msgstr[2] "Nombres de dominio"
+msgstr[0] "Nombre de host"
+msgstr[1] "Nombres de host"
+msgstr[2] "Nombres de host"
#: inc/field/timefield.class.php:129
msgid "Time"
@@ -402,7 +402,7 @@ msgstr "Este no es un correo electrónico valido: %s"
#: inc/field/emailfield.class.php:99
msgid "Email"
msgid_plural "Emails"
-msgstr[0] "Correos electrónicos"
+msgstr[0] "Correo electrónico"
msgstr[1] "Correos electrónicos"
msgstr[2] "Correos electrónicos"
@@ -417,7 +417,7 @@ msgstr "Fecha y hora"
#: inc/field/actorfield.class.php:83
msgid "Actor"
msgid_plural "Actors"
-msgstr[0] "Actores"
+msgstr[0] "Actor"
msgstr[1] "Actores"
msgstr[2] "Actores"
@@ -456,7 +456,8 @@ msgstr "Selección múltiple"
#: inc/field/fieldsfield.class.php:154
msgid "Warning: Additional Fields plugin is disabled or missing"
msgstr ""
-"Advertencia: El plugin de campos adicionales está deshabilitado o no existe"
+"Advertencia: El complemento Campos Adicionales está deshabilitado o no "
+"existe"
#: inc/field/fieldsfield.class.php:167
msgid "Block"
@@ -473,7 +474,7 @@ msgstr "mostrar"
#: inc/field/fieldsfield.class.php:389
#, php-format
msgid "Field '%1$s' type not implemented yet!"
-msgstr "¡El tipo de campo \"%1$s'' aún no se ha implementado!"
+msgstr "¡El tipo de campo '%1$s' aún no se ha implementado!"
#: inc/field/fieldsfield.class.php:466
msgid "Some numeric fields contains non numeric values"
@@ -489,31 +490,32 @@ msgstr "Campos adicionales"
#: inc/field/checkboxesfield.class.php:132
msgid "Checkboxes"
-msgstr "Checkboxes"
+msgstr "Casillas de verificación"
#: inc/field/checkboxesfield.class.php:208
#, php-format
msgid "Empty values are not allowed: %s"
-msgstr ""
+msgstr "No se permiten valores vacíos: %s"
#: inc/field/checkboxesfield.class.php:216
#, php-format
msgid "This value %1$s is not alowed: %2$s"
-msgstr ""
+msgstr "Este valor %1$s no está permitido: %2$s"
#: inc/field/checkboxesfield.class.php:236
#, php-format
msgid "The following question needs at least %d answers: %s"
-msgstr "La siguiente pregunta necesita al menos una %drespuesta:%s"
+msgstr "La siguiente pregunta necesita al menos %d respuestas: %s"
#: inc/field/checkboxesfield.class.php:242
#, php-format
msgid "The following question does not accept more than %d answers: %s"
-msgstr "La siguiente pregunta no admite más que %drespuestas:%s"
+msgstr "La siguiente pregunta no admite más que %d respuestas: %s"
#: inc/field/checkboxesfield.class.php:270
msgid "The default values are not in the list of available values."
msgstr ""
+"Los valores predeterminados no están en la lista de valores disponibles."
#: inc/field/checkboxesfield.class.php:325
msgid "Range min"
@@ -562,14 +564,14 @@ msgstr "Un campo de descripción debe tener una descripción:"
#: inc/field/hiddenfield.class.php:95
msgid "Hidden field"
msgid_plural "Hidden fields"
-msgstr[0] "Campos ocultos"
+msgstr[0] "Campo oculto"
msgstr[1] "Campos ocultos"
msgstr[2] "Campos ocultos"
#: inc/condition.class.php:65
msgid "Condition"
msgid_plural "Conditions"
-msgstr[0] "Condiciones"
+msgstr[0] "Condición"
msgstr[1] "Condiciones"
msgstr[2] "Condiciones"
@@ -636,9 +638,9 @@ msgstr "Importación en curso"
#: inc/issue.class.php:43
msgid "Issue"
msgid_plural "Issues"
-msgstr[0] "Cuestiones"
-msgstr[1] "Cuestiones"
-msgstr[2] "Cuestiones"
+msgstr[0] "Problema"
+msgstr[1] "Problemas"
+msgstr[2] "Problemas"
#: inc/issue.class.php:56
msgid "Update issue data from tickets and form answers"
@@ -666,7 +668,7 @@ msgstr "ID"
#: entrée standard:111 standard:65
msgid "Type"
msgid_plural "Types"
-msgstr[0] "Tipos"
+msgstr[0] "Tipo"
msgstr[1] "Tipos"
msgstr[2] "Tipos"
@@ -685,7 +687,7 @@ msgstr "Última actualización"
#: inc/issue.class.php:591 inc/abstracttarget.class.php:520
msgid "Entity"
msgid_plural "Entities"
-msgstr[0] "Entidades"
+msgstr[0] "Entidad"
msgstr[1] "Entidades"
msgstr[2] "Entidades"
@@ -696,7 +698,7 @@ msgstr[2] "Entidades"
#: standard:48
msgid "Requester"
msgid_plural "Requesters"
-msgstr[0] "Solicitantes"
+msgstr[0] "Solicitante"
msgstr[1] "Solicitantes"
msgstr[2] "Solicitantes"
@@ -728,19 +730,19 @@ msgstr "Grupo de aprobación del formulario"
#: inc/issue.class.php:817
msgid "Ticket approver group"
-msgstr "Grupo de aprobación de ticket"
+msgstr "Grupo de aprobación del caso"
#: inc/issue.class.php:857
msgid "Ticket requester"
-msgstr "Solicitante de ticket"
+msgstr "Solicitante del caso"
#: inc/issue.class.php:904
msgid "Ticket observer"
-msgstr "Observador de tickeet"
+msgstr "Observador del caso"
#: inc/issue.class.php:952
msgid "Ticket technician"
-msgstr "Técnico de tickets"
+msgstr "Técnico del caso"
#: inc/issue.class.php:1099
#, php-format
@@ -780,9 +782,9 @@ msgstr "Cerrado"
#: inc/category.class.php:50 hook.php:72
msgid "Form category"
msgid_plural "Form categories"
-msgstr[0] "Categorías de formularios"
-msgstr[1] "Categorías de formularios"
-msgstr[2] "Categorías de formularios"
+msgstr[0] "Categoría de formulario"
+msgstr[1] "Categorías de formulario"
+msgstr[2] "Categorías de formulario"
#: inc/category.class.php:72
msgid "Knowbase category"
@@ -814,7 +816,7 @@ msgstr "Se elimina el formulario"
#: inc/notificationtargetformanswer.class.php:74
msgid "Form ID"
-msgstr "Formulario ID"
+msgstr "ID del Formulario "
#: inc/notificationtargetformanswer.class.php:75
#: inc/notificationtargetformanswer.class.php:95
@@ -843,11 +845,11 @@ msgstr "Enlace de validación"
#: inc/notificationtargetformanswer.class.php:82
msgid "Request ID"
-msgstr "Solicitar ID"
+msgstr "ID de Solicitud"
#: inc/notificationtargetformanswer.class.php:94
msgid "Form #"
-msgstr "Formulario #"
+msgstr "# de Formulario"
#: inc/notificationtargetformanswer.class.php:97
msgctxt "tag"
@@ -860,7 +862,7 @@ msgstr "Comentario rechazado"
#: inc/notificationtargetformanswer.class.php:102
msgid "Request #"
-msgstr "Solicitud #"
+msgstr "# de Solicitud"
#: inc/notificationtargetformanswer.class.php:114
msgid "Author"
@@ -930,7 +932,7 @@ msgstr "Asignado a"
#: inc/target_actor.class.php:109
msgid "Target actor"
msgid_plural "Target actors"
-msgstr[0] "Actores objetivo"
+msgstr[0] "Actor objetivo"
msgstr[1] "Actores objetivo"
msgstr[2] "Actores objetivo"
@@ -942,17 +944,17 @@ msgstr "Solicitud incorrecta al añadir un actor."
#: inc/target_actor.class.php:199
#, php-format
msgid "Failed to find a user: %1$s"
-msgstr "Error al encontrar un usuario:%1$s"
+msgstr "Error al encontrar un usuario: %1$s"
#: inc/target_actor.class.php:208
#, php-format
msgid "Failed to find a group: %1$s"
-msgstr "No se ha encontrado ningún grupo:%1$s"
+msgstr "Error al encontrar un grupo: %1$s"
#: inc/target_actor.class.php:217
#, php-format
msgid "Failed to find a supplier: %1$s"
-msgstr "No se ha encontrado proveedor:%1$s"
+msgstr "Error al encontrar un proveedor: %1$s"
#: inc/formanswer.class.php:79 inc/form_validator.class.php:71
msgid "Refused"
@@ -965,7 +967,7 @@ msgstr "Aceptado"
#: inc/formanswer.class.php:226
msgid "Form answer"
msgid_plural "Form answers"
-msgstr[0] "Formulario de respuestas"
+msgstr[0] "Formulario de respuesta"
msgstr[1] "Formulario de respuestas"
msgstr[2] "Formulario de respuestas"
@@ -1007,7 +1009,7 @@ msgstr "Aceptar"
#: inc/formanswer.class.php:788
msgid "Refused comment is required!"
-msgstr "¡Se requiere comentario rechazado!"
+msgstr "¡Se requiere comentario si es rechazado!"
#: inc/formanswer.class.php:833 inc/formanswer.class.php:850
msgid ""
@@ -1019,12 +1021,12 @@ msgstr ""
#: inc/formanswer.class.php:882
msgid "You are not the validator of these answers"
-msgstr "No eres el validador de estas respuestas"
+msgstr "No es el validador de estas respuestas"
#: inc/formanswer.class.php:1021
#, php-format
msgid "Item sucessfully added: %1$s (%2$s: %3$s)"
-msgstr "Artículo añadido con éxito:%1$s (%2$s: %3$s)"
+msgstr "Elemento añadido con éxito: %1$s (%2$s: %3$s)"
#: inc/formanswer.class.php:1104 inc/formanswer.class.php:1106
msgid "Form data"
@@ -1037,15 +1039,15 @@ msgstr "¡No puede generar objetivos!"
#: inc/formanswer.class.php:1434
#, php-format
msgid "Answer is invalid in %1$s"
-msgstr ""
+msgstr "La respuesta no es válida en %1$s"
#: inc/formanswer.class.php:1462
msgid "No turing test set"
-msgstr "Sin equipo de prueba de Turing"
+msgstr "No hay pruebas de Turing"
#: inc/formanswer.class.php:1468
msgid "You failed the Turing test"
-msgstr "Fallo la prueba de Turing"
+msgstr "Ha fallado la prueba de Turing"
#: inc/formanswer.class.php:1492
msgid "You must select validator!"
@@ -1079,7 +1081,7 @@ msgstr "Consultar fuentes"
#: inc/formaccesstype.class.php:39 inc/formaccesstype.class.php:64
msgid "Access type"
msgid_plural "Access types"
-msgstr[0] "Tipos de acceso"
+msgstr[0] "Tipo de acceso"
msgstr[1] "Tipos de acceso"
msgstr[2] "Tipos de acceso"
@@ -1102,14 +1104,14 @@ msgstr "Restringido a"
#: inc/form_language.class.php:51
msgid "Form language"
msgid_plural "Form languages"
-msgstr[0] "Idiomas de formulario"
-msgstr[1] "Idiomas de formulario"
-msgstr[2] "Idiomas de formulario"
+msgstr[0] "Idioma del formulario"
+msgstr[1] "Idiomas del formulario"
+msgstr[2] "Idiomas del formulario"
#: inc/form_language.class.php:81 inc/form_language.class.php:367
msgid "Translation"
msgid_plural "Translations"
-msgstr[0] "Traducciones"
+msgstr[0] "Traducción"
msgstr[1] "Traducciones"
msgstr[2] "Traducciones"
@@ -1119,7 +1121,7 @@ msgstr "El nombre no puede estar vacío."
#: inc/form_language.class.php:130
msgid "The language must be associated to a form."
-msgstr "La lengua debe estar asociada a un formulario."
+msgstr "El idioma debe estar asociado a un formulario."
#: inc/form_language.class.php:138
msgid "The specified language is not available."
@@ -1175,7 +1177,7 @@ msgstr "Ninguno"
#: inc/form_validator.class.php:76
msgid "Validator"
msgid_plural "Validators"
-msgstr[0] "Validadores"
+msgstr[0] "Validador"
msgstr[1] "Validadores"
msgstr[2] "Validadores"
@@ -1206,9 +1208,9 @@ msgstr "Elegir un validador"
#: inc/targetproblem.class.php:43 entrée standard:43
msgid "Target problem"
msgid_plural "Target problems"
-msgstr[0] "Problemas de destino"
-msgstr[1] "Problemas de destino"
-msgstr[2] "Problemas de destino"
+msgstr[0] "Problema"
+msgstr[1] "Problemas"
+msgstr[2] "Problemas"
#: inc/targetproblem.class.php:109 inc/targetproblem.class.php:579
#: inc/targetchange.class.php:105 inc/targetchange.class.php:441
@@ -1223,8 +1225,8 @@ msgid ""
"Failed to add or update the %1$s %2$s: a question is missing and is used in "
"a parameter of the target"
msgstr ""
-"No se pudo agregar o actualizar %1$s%2$s: falta una pregunta y se usa en un "
-"parámetro del objetivo"
+"No se pudo agregar o actualizar %1$s %2$s: falta una pregunta y se usa en un"
+" parámetro del objetivo"
#: inc/targetproblem.class.php:580 inc/targetchange.class.php:106
#: inc/targetticket.class.php:136 inc/abstractitiltarget.class.php:1200
@@ -1233,7 +1235,7 @@ msgstr "Actores"
#: inc/targetproblem.class.php:633 entrée standard:48
msgid "Problem title"
-msgstr "Título del problema"
+msgstr "Título del Problema"
#: inc/targetproblem.class.php:643 inc/targetchange.class.php:354
#: inc/targetticket.class.php:199
@@ -1258,7 +1260,7 @@ msgstr "Síntoma"
#: inc/entityconfig.class.php:141 inc/entityconfig.class.php:149
#: inc/entityconfig.class.php:157
msgid "Inheritance of the parent entity"
-msgstr "Herencia de la entidad matriz"
+msgstr "Herencia de la entidad principal"
#: inc/entityconfig.class.php:93
msgid "GLPi's helpdesk"
@@ -1317,7 +1319,7 @@ msgstr "Altura uniforme"
#: inc/entityconfig.class.php:164
msgid "Search for assistance"
-msgstr "Búsqueda de ayuda"
+msgstr "Buscar asistencia"
#: inc/entityconfig.class.php:165
msgid "User's assistance requests"
@@ -1334,7 +1336,7 @@ msgstr "Modo de mesa de ayuda"
#: inc/entityconfig.class.php:280 inc/entityconfig.class.php:519
msgid "Default Form list mode"
-msgstr "Modo de lista de formularios predeterminado"
+msgstr "Modo de lista de Formularios predeterminado"
#: inc/entityconfig.class.php:298 inc/entityconfig.class.php:459
msgid "Sort order"
@@ -1358,21 +1360,21 @@ msgstr "Mensaje del encabezado"
#: inc/entityconfig.class.php:377 inc/entityconfig.class.php:539
msgid "Search issue"
-msgstr "Problema de búsqueda"
+msgstr "Buscar problema"
#: inc/entityconfig.class.php:393 inc/entityconfig.class.php:509
msgid "Service catalog home page"
-msgstr "Página principal del catálogo de servicios"
+msgstr "Página principal del Catálogo de Servicios"
#: inc/entityconfig.class.php:409 inc/entityconfig.class.php:549
msgid "Tile design"
-msgstr "Diseño de baldosas "
+msgstr "Diseño de título"
#: inc/entityconfig.class.php:421 inc/entityconfig.class.php:499
#: inc/form.class.php:239 entrée standard:84
msgid "Header"
msgid_plural "Headers"
-msgstr[0] "Encabezados"
+msgstr[0] "Encabezado"
msgstr[1] "Encabezados"
msgstr[2] "Encabezados"
@@ -1387,7 +1389,7 @@ msgstr "Mostrar encabezado"
#: inc/questionrange.class.php:52 inc/questionparameter/range.class.php:56
msgid "Question range"
msgid_plural "Question ranges"
-msgstr[0] "Rangos de preguntas"
+msgstr[0] "Rango de pregunta"
msgstr[1] "Rangos de preguntas"
msgstr[2] "Rangos de preguntas"
@@ -1471,7 +1473,7 @@ msgstr "Todos los idiomas"
#: inc/form.class.php:502 inc/form.class.php:572
msgid "Target"
msgid_plural "Targets"
-msgstr[0] "Objetivos"
+msgstr[0] "Objetivo"
msgstr[1] "Objetivos"
msgstr[2] "Objetivos"
@@ -1502,7 +1504,7 @@ msgstr "¿Qué esta buscando?"
#: inc/form.class.php:909
#, php-format
msgid "My %1$d last forms (requester)"
-msgstr "Mi último formulario %1$d (Solicitante)"
+msgstr "Mis últimos %1$d formularios (Solicitante)"
#: inc/form.class.php:936
msgid "No form posted yet"
@@ -1515,7 +1517,7 @@ msgstr "Todos mis formularios (Solicitante)"
#: inc/form.class.php:977
#, php-format
msgid "My %1$d last forms (validator)"
-msgstr "Mi ultimo formulario %1$d (Validador)"
+msgstr "Mis ultimos %1$d formularios (Validador)"
#: inc/form.class.php:1007
msgid "No form waiting for validation"
@@ -1534,7 +1536,7 @@ msgstr "¡El nombre no puede estar vacío!"
msgid "Cannot use empty name for form answers. Keeping the previous value."
msgstr ""
"No se puede utilizar un nombre vacío para las respuestas del formulario. "
-"Mantener el valor anterior."
+"Manteniendo el valor anterior."
#: inc/form.class.php:1342
#, php-format
@@ -1548,12 +1550,12 @@ msgstr "Duplicado con errores"
#: inc/form.class.php:1480 inc/form.class.php:1508
msgctxt "button"
msgid "Post"
-msgstr "Exponer"
+msgstr "Publicar"
#: inc/form.class.php:1527
#, php-format
msgid "Form duplicated: %s"
-msgstr "Formulario duplicado:%s"
+msgstr "Formulario duplicado: %s"
#: inc/form.class.php:1538
#, php-format
@@ -1567,7 +1569,7 @@ msgstr "Atrás"
#: inc/form.class.php:1568
#, php-format
msgid "Form updated: %s"
-msgstr "Formulario actualizado:%s"
+msgstr "Formulario actualizado: %s"
#: inc/form.class.php:1668
msgid "Upload of JSON files not allowed."
@@ -1650,7 +1652,7 @@ msgstr ""
#: inc/form.class.php:1872
#, php-format
msgid "You don't have right to update the entity %1$s."
-msgstr "No tiene derecho a actualizar la entidad%1$s"
+msgstr "No tiene derecho a actualizar la entidad %1$s."
#: inc/form.class.php:1882
#, php-format
@@ -1693,25 +1695,25 @@ msgstr "comprobación de carga del complemento formcreator"
#: inc/targetchange.class.php:44 entrée standard:43
msgid "Target change"
msgid_plural "Target changes"
-msgstr[0] "Cambios en los objetivos"
-msgstr[1] "Cambios en los objetivos"
-msgstr[2] "Cambios en los objetivos"
+msgstr[0] "Cambio"
+msgstr[1] "Cambios"
+msgstr[2] "Cambios"
#: inc/targetchange.class.php:344 entrée standard:48
msgid "Change title"
-msgstr "Cambiar título"
+msgstr "Título del Cambio"
#: inc/targetchange.class.php:374 entrée standard:56
msgid "Control list"
-msgstr "Lista de control"
+msgstr "Lista de Control"
#: inc/targetchange.class.php:384 entrée standard:58
msgid "Deployment plan"
-msgstr "Plan de despliegue"
+msgstr "Plan de Despliegue"
#: inc/targetchange.class.php:394 entrée standard:60
msgid "Backup plan"
-msgstr "Plan de respaldo"
+msgstr "Plan de Respaldo"
#: inc/targetchange.class.php:404
msgid "Check list"
@@ -1720,7 +1722,7 @@ msgstr "Lista de verificación"
#: inc/section.class.php:71 entrée standard:53 standard:44
msgid "Section"
msgid_plural "Sections"
-msgstr[0] "Secciones"
+msgstr[0] "Sección"
msgstr[1] "Secciones"
msgstr[2] "Secciones"
@@ -1736,13 +1738,13 @@ msgstr "Recuento de condiciones"
#: inc/restrictedformcriteria.class.php:179
#, php-format
msgid "Failed to find %1$s %2$s"
-msgstr "Error al encontrar%1$s%2$s"
+msgstr "Error al encontrar %1$s %2$s"
#: inc/question.class.php:70 inc/abstractitiltarget.class.php:1111 entrée
#: standard:41
msgid "Question"
msgid_plural "Questions"
-msgstr[0] "Preguntas"
+msgstr[0] "Pregunta"
msgstr[1] "Preguntas"
msgstr[2] "Preguntas"
@@ -1773,7 +1775,7 @@ msgstr "Falta un parámetro para este tipo de pregunta"
#: inc/question.class.php:1202
msgid "Service levels"
-msgstr "Niveles de servicio"
+msgstr "Niveles de Servicio"
#: inc/question.class.php:1203 inc/abstractitiltarget.class.php:834
msgid "SLA"
@@ -1798,7 +1800,7 @@ msgstr "Gestión"
#: inc/question.class.php:1254
msgid "Tools"
-msgstr "herramientas"
+msgstr "Herramientas"
#: inc/question.class.php:1255
msgid "Notes"
@@ -1815,13 +1817,13 @@ msgstr "Administración"
#: inc/question.class.php:1266 inc/question.class.php:1269
msgid "Plugin"
msgid_plural "Plugins"
-msgstr[0] "Plugins"
-msgstr[1] "Plugins"
-msgstr[2] "Plugins"
+msgstr[0] "Complemento"
+msgstr[1] "Complementos"
+msgstr[2] "Complementos"
#: inc/abstractquestionparameter.class.php:92
msgid "Parameter"
-msgstr "Parametro"
+msgstr "Parámetro"
#: inc/abstractquestionparameter.class.php:99
msgid "Field name"
@@ -1929,7 +1931,7 @@ msgstr "Paso 3: literal > signo."
#: inc/filter/itilcategoryfilter.class.php:52
#: inc/filter/itilcategoryfilter.class.php:54
msgid "Request categories"
-msgstr "Categorías de solicitud"
+msgstr "Categorías de Solicitudes"
#: inc/filter/itilcategoryfilter.class.php:53
#: inc/filter/itilcategoryfilter.class.php:54
@@ -1938,42 +1940,42 @@ msgstr "Categorías de Incidentes"
#: inc/filter/itilcategoryfilter.class.php:55
msgid "Change categories"
-msgstr "Categorías de cambio"
+msgstr "Categorías de Cambios"
#: inc/questionregex.class.php:52
msgid "Question regular expression"
msgid_plural "Question regular expressions"
-msgstr[0] "Expresiones regulares de preguntas"
-msgstr[1] "Expresiones regulares de preguntas"
-msgstr[2] "Expresiones regulares de preguntas"
+msgstr[0] "Expresión regular de la pregunta"
+msgstr[1] "Expresiones regulares de pregunta"
+msgstr[2] "Expresiones regulares de pregunta"
#: inc/questiondependency.class.php:66
msgid "Question dependency"
msgid_plural "Question dependencies"
-msgstr[0] "Dependencias de preguntas"
+msgstr[0] "Dependencia de la pregunta"
msgstr[1] "Dependencias de preguntas"
msgstr[2] "Dependencias de preguntas"
#: inc/answer.class.php:66 entrée standard:43
msgid "Answer"
msgid_plural "Answers"
-msgstr[0] "Respuestas"
+msgstr[0] "Respuesta"
msgstr[1] "Respuestas"
msgstr[2] "Respuestas"
#: inc/item_targetticket.class.php:52
msgid "Composite ticket relation"
msgid_plural "Composite ticket relations"
-msgstr[0] "Relaciones de tickets compuestos"
-msgstr[1] "Relaciones de tickets compuestos"
-msgstr[2] "Relaciones de tickets compuestos"
+msgstr[0] "Relación compuesta de casos"
+msgstr[1] "Relaciones compuestas de casos"
+msgstr[2] "Relaciones compuestas de casos"
#: inc/targetticket.class.php:57 entrée standard:43
msgid "Target ticket"
msgid_plural "Target tickets"
-msgstr[0] "Tickets objetivo"
-msgstr[1] "Tickets objetivo"
-msgstr[2] "Tickets objetivo"
+msgstr[0] "Caso"
+msgstr[1] "Casos"
+msgstr[2] "Casos"
#: inc/targetticket.class.php:100
msgid "Specific asset"
@@ -1997,7 +1999,7 @@ msgstr "Origen de la plantilla o usuario predeterminado o GLPI predeterminado"
#: inc/targetticket.class.php:109
msgid "Formcreator"
-msgstr "Creador de formularios"
+msgstr "Creador de Formularios"
#: inc/targetticket.class.php:115
msgid "Default or from a template"
@@ -2009,7 +2011,7 @@ msgstr "Especificar tipo"
#: inc/targetticket.class.php:189 entrée standard:48
msgid "Ticket title"
-msgstr "Título del caso"
+msgstr "Título del Caso"
#: inc/targetticket.class.php:302
msgid "Add validation message as first ticket followup"
@@ -2029,7 +2031,7 @@ msgstr "Sin campo administrado"
#: inc/targetticket.class.php:391
msgid "Link to an other ticket"
-msgstr "Enlace para otro caso"
+msgstr "Enlace a otro caso"
#: inc/targetticket.class.php:400
msgid "An other destination of this form"
@@ -2041,7 +2043,7 @@ msgstr "Un Caso existente"
#: inc/targetticket.class.php:402
msgid "A ticket from an answer to a question"
-msgstr "Un ticket de una respuesta a una pregunta"
+msgstr "A un Caso de una respuesta a una pregunta"
#: inc/targetticket.class.php:483
msgctxt "button"
@@ -2114,11 +2116,11 @@ msgstr "Especificar etiquetas"
#: inc/abstractitiltarget.class.php:181
msgid "Tags from questions and specific tags"
-msgstr "Etiquetas de preguntas y etiquetas específicas"
+msgstr "Etiquetas desde preguntas y etiquetas específicas"
#: inc/abstractitiltarget.class.php:182
msgid "Tags from questions or specific tags"
-msgstr "Etiquetas de preguntas o etiquetas específicas"
+msgstr "Etiquetas desde preguntas o etiquetas específicas"
#: inc/abstractitiltarget.class.php:188
msgid "equals to the answer to the question"
@@ -2134,7 +2136,7 @@ msgstr "calculado a partir de la respuesta a la pregunta"
#: inc/abstractitiltarget.class.php:196
msgid "SLA from template or none"
-msgstr "Plantilla de SLA o nada"
+msgstr "SLA desde la plantilla o ninguno"
#: inc/abstractitiltarget.class.php:197
msgid "Specific SLA"
@@ -2142,7 +2144,7 @@ msgstr "Especificar SLA"
#: inc/abstractitiltarget.class.php:204
msgid "OLA from template or none"
-msgstr "Plantilla de OLA o nada"
+msgstr "OLA desde la plantilla o ninguno"
#: inc/abstractitiltarget.class.php:205
msgid "Specific OLA"
@@ -2150,7 +2152,7 @@ msgstr "Especificar OLA"
#: inc/abstractitiltarget.class.php:212
msgid "Urgency from template or Medium"
-msgstr "Urgencia de la plantilla o medio"
+msgstr "Urgencia desde la plantilla o Medio"
#: inc/abstractitiltarget.class.php:213
msgid "Specific urgency"
@@ -2158,7 +2160,7 @@ msgstr "Especificar urgencia"
#: inc/abstractitiltarget.class.php:220
msgid "Category from template or none"
-msgstr "Categoría de la plantilla o nada"
+msgstr "Categoría desde la plantilla o ninguno"
#: inc/abstractitiltarget.class.php:221
msgid "Specific category"
@@ -2166,7 +2168,7 @@ msgstr "Especificar categoría"
#: inc/abstractitiltarget.class.php:229
msgid "Location from template or none"
-msgstr "Ubicación de la plantilla o nada"
+msgstr "Ubicación desde la plantilla o ninguno"
#: inc/abstractitiltarget.class.php:230
msgid "Specific location"
@@ -2182,11 +2184,11 @@ msgstr "Usuario o grupo específico"
#: inc/abstractitiltarget.class.php:240
msgid "User from question answer"
-msgstr "Usuario de la pregunta respuesta"
+msgstr "Usuario desde la respuesta a la pregunta"
#: inc/abstractitiltarget.class.php:241
msgid "Group from question answer"
-msgstr "Grupo de respuesta a la pregunta"
+msgstr "Grupo desde la respuesta a la pregunta"
#: inc/abstractitiltarget.class.php:769 entrée standard:108
msgid "Time to resolve"
@@ -2195,42 +2197,42 @@ msgstr "Tiempo para resolverlo"
#: inc/abstractitiltarget.class.php:822
msgid "Minute"
msgid_plural "Minutes"
-msgstr[0] "Minutos"
+msgstr[0] "Minuto"
msgstr[1] "Minutos"
msgstr[2] "Minutos"
#: inc/abstractitiltarget.class.php:823
msgid "Hour"
msgid_plural "Hours"
-msgstr[0] "Horas"
+msgstr[0] "Hora"
msgstr[1] "Horas"
msgstr[2] "Horas"
#: inc/abstractitiltarget.class.php:824
msgid "Day"
msgid_plural "Days"
-msgstr[0] "Días "
-msgstr[1] "Días "
-msgstr[2] "Días "
+msgstr[0] "Día"
+msgstr[1] "Días"
+msgstr[2] "Días"
#: inc/abstractitiltarget.class.php:825
msgid "Month"
msgid_plural "Months"
-msgstr[0] "Meses"
+msgstr[0] "Mes"
msgstr[1] "Meses"
msgstr[2] "Meses"
#: inc/abstractitiltarget.class.php:857
msgid "SLA (TTO/TTR)"
-msgstr "SLA ( TTO / TTR )"
+msgstr "SLA (TTO/TTR)"
#: inc/abstractitiltarget.class.php:858 inc/abstractitiltarget.class.php:931
msgid "Question (TTO/TTR)"
-msgstr "Pregunta ( TTO / TTR )"
+msgstr "Pregunta (TTO/TTR )"
#: inc/abstractitiltarget.class.php:930
msgid "OLA (TTO/TTR)"
-msgstr "OLA ( TTO / TTR )"
+msgstr "OLA (TTO/TTR)"
#: inc/abstractitiltarget.class.php:1034
msgid "Urgency "
@@ -2238,7 +2240,7 @@ msgstr "Urgencia "
#: inc/abstractitiltarget.class.php:1064
msgid "Ticket tags"
-msgstr "Etiquetas del caso"
+msgstr "Etiquetas del Caso"
#: inc/abstractitiltarget.class.php:1112
msgid "Tags"
@@ -2259,7 +2261,7 @@ msgstr "¡La descripción no puede estar vacía!"
#: inc/abstractitiltarget.class.php:1760
msgid "Watcher"
msgid_plural "Watchers"
-msgstr[0] "Observadores"
+msgstr[0] "Observador"
msgstr[1] "Observadores"
msgstr[2] "Observadores"
@@ -2299,7 +2301,7 @@ msgstr "Si"
#: install/install.php:135
#, php-format
msgid "Upgrade tables to innoDB; run %s"
-msgstr "Actualizar tablas a innoDB; ejecutar%s"
+msgstr "Actualizar tablas a innoDB; ejecutar %s"
#: install/install.php:172
#, php-format
@@ -2308,12 +2310,12 @@ msgid ""
"Formcreator %s. To see the logs run the command %s"
msgstr ""
"El esquema de base de datos no es coherente con la versión anterior de "
-"Creador de formularios%s. Para ver los registros, ejecute el comando%s"
+"Formcreator %s. Para ver los registros, ejecute el comando %s"
#: install/install.php:181
#, php-format
msgid "To ignore the inconsistencies and upgrade anyway run %s"
-msgstr "Para ignorar las incoherencias y actualizar de todos modos ejecute%s"
+msgstr "Para ignorar las incoherencias y actualizar de todos modos ejecute %s"
#: install/install.php:198
msgid ""
@@ -2333,8 +2335,8 @@ msgid ""
"Formcreator %s. To see the logs enable the plugin and run the command %s"
msgstr ""
"El esquema de la base de datos no es consistente con la versión actual de "
-"Formcreator%s . Para ver los registros habilite el plugin y ejecute el "
-"comando%s"
+"Formcreator %s . Para ver los registros habilite el complemento y ejecute el"
+" comando %s"
#: install/install.php:261
msgid "The tables of the plugin passed the schema integrity check."
@@ -2355,14 +2357,14 @@ msgid ""
"##formcreator.request_id## and transmitted to the helpdesk team.\\nYou can "
"see your answers onto the following link:\\n##formcreator.validation_link##"
msgstr ""
-"Hola,\\\\n Su solicitud del GLPI ha sido exitosamente guardada con el numero"
-" ##formcreator.request_id## y notificado al equipo de la mesa de ayuda.\\\\n"
-" Puede ver las respuestas del equipo en el siguiente link:\\\\n "
-"##formcreator.validation_link##"
+"Hola,\\nSu solicitud desde GLPI ha sido exitosamente guardada con el número "
+"##formcreator.request_id## y notificado al equipo de la mesa de "
+"ayuda.\\nPuede ver las respuestas del equipo en el siguiente "
+"enlace:\\n##formcreator.validation_link##"
#: install/install.php:420
msgid "A form from GLPI need to be validate"
-msgstr "Un formulario GLPI necesita ser validado"
+msgstr "Un formulario de GLPI necesita ser validado"
#: install/install.php:421
msgid ""
@@ -2370,9 +2372,9 @@ msgid ""
"validator.\\nYou can access it by clicking onto this "
"link:\\n##formcreator.validation_link##"
msgstr ""
-"Hola, \\ nUn formulario de GLPI necesita ser validado y usted ha sido "
-"elegido como validador. \\ NPuedes acceder a él haciendo clic en este "
-"enlace: \\ n ## formcreator.validation_link ##"
+"Hola,\\nUn formulario de GLPI necesita ser validado y usted ha sido elegido "
+"como validador.\\nPuede acceder a él haciendo clic en este enlace:\\n## "
+"formcreator.validation_link ##"
#: install/install.php:426
msgid "Your form has been refused by the validator"
@@ -2397,11 +2399,11 @@ msgid ""
"validator.\\nYour request will be considered soon."
msgstr ""
"Hola,\\nNos complace informarle que su formulario ha sido aceptado por el "
-"validador.\\n Su solicitud será considerada pronto."
+"validador.\\nSu solicitud será considerada pronto."
#: install/install.php:438
msgid "Your form has been deleted by an administrator"
-msgstr "Tu formulario ha sido eliminado por un administrador"
+msgstr "Su formulario ha sido eliminado por un administrador"
#: install/install.php:439
msgid ""
@@ -2465,11 +2467,11 @@ msgstr "Antiguo"
#: hook.php:718
#, php-format
msgid "Number of %s"
-msgstr "Número de%s"
+msgstr "Número de %s"
#: hook.php:735
msgid "Issues summary"
-msgstr "Resumen de Temas"
+msgstr "Resumen de problemas"
#: hook.php:780
msgid ""
@@ -2495,7 +2497,7 @@ msgstr "No se ha encontrado ningún elemento de FAQ."
#: js/scripts.js:688
msgid "Are you sure you want to delete this question?"
-msgstr "¿Esta seguro que quieres eliminar esta pregunta?"
+msgstr "¿Esta seguro que quiere eliminar esta pregunta?"
#: js/scripts.js:877
msgid "Are you sure you want to delete this section?"
@@ -2520,7 +2522,7 @@ msgstr ""
#: js/scripts.js:1449
msgid "Are you sure you want to duplicate this target?"
-msgstr "¿Estás seguro de que quieres duplicar este objetivo?"
+msgstr "¿Está seguro de que desea duplicar este objetivo?"
#: js/scripts.js:1466
msgid "Are you sure you want to delete this target?"
@@ -2543,7 +2545,7 @@ msgstr "Mostrar vacío"
#: entrée standard:39
msgid "LDAP directory"
msgid_plural "LDAP directories"
-msgstr[0] "Directorios LDAP"
+msgstr[0] "Directorio LDAP"
msgstr[1] "Directorios LDAP"
msgstr[2] "Directorios LDAP"
@@ -2565,7 +2567,7 @@ msgstr "Mostrar categorías de los casos"
#: entrée standard:109
msgid "Time to own"
-msgstr "Tiempo para adueñarse"
+msgstr "Tiempo para apropiarse (TTO)"
#: entrée standard:146 standard:118
msgid "Selectable root"
@@ -2601,7 +2603,7 @@ msgstr "Impactos"
#: entrée standard:62
msgid "Checklist"
-msgstr "Lista de verificación"
+msgstr "Lista de Verificación"
#: entrée standard:36
msgid "Answers title"
@@ -2622,7 +2624,7 @@ msgstr "Aún no hay respuesta"
#: entrée standard:38
#, php-format
msgid "%s latest items"
-msgstr "%súltimos artículos "
+msgstr "%s últimos elementos"
#: entrée standard:83
msgid "Add a question"
diff --git a/locales/es_VE.mo b/locales/es_VE.mo
index 00763af68..d79daf7d9 100644
Binary files a/locales/es_VE.mo and b/locales/es_VE.mo differ
diff --git a/locales/es_VE.po b/locales/es_VE.po
index e5a47a48f..cb6054d9a 100644
--- a/locales/es_VE.po
+++ b/locales/es_VE.po
@@ -250,7 +250,7 @@ msgstr "Directorio LDAP no encontrado!"
#: inc/field/ldapselectfield.class.php:154
msgid "LDAP attribute is required!"
-msgstr ""
+msgstr "¡Se requiere el atributo LDAP!"
#: inc/field/textfield.class.php:146 inc/field/floatfield.class.php:156
#, php-format
diff --git a/locales/ja_JP.mo b/locales/ja_JP.mo
index 24e17e4f0..8aa100039 100644
Binary files a/locales/ja_JP.mo and b/locales/ja_JP.mo differ
diff --git a/locales/ja_JP.po b/locales/ja_JP.po
index fec605030..357f7daf5 100644
--- a/locales/ja_JP.po
+++ b/locales/ja_JP.po
@@ -4,8 +4,8 @@
# FIRST AUTHOR , YEAR.
#
# Translators:
-# INOUE Daisuke, 2023
# Thierry Bugier , 2023
+# INOUE Daisuke, 2023
#
#, fuzzy
msgid ""
@@ -14,7 +14,7 @@ msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-11-13 14:56+0100\n"
"PO-Revision-Date: 2021-08-30 07:22+0000\n"
-"Last-Translator: Thierry Bugier , 2023\n"
+"Last-Translator: INOUE Daisuke, 2023\n"
"Language-Team: Japanese (Japan) (https://app.transifex.com/teclib/teams/28042/ja_JP/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -242,7 +242,7 @@ msgstr "LDAP ディレクトリーがありません!"
#: inc/field/ldapselectfield.class.php:154
msgid "LDAP attribute is required!"
-msgstr ""
+msgstr "LDAP 属性が必要です!"
#: inc/field/textfield.class.php:146 inc/field/floatfield.class.php:156
#, php-format
diff --git a/locales/pt_BR.mo b/locales/pt_BR.mo
index b0c709321..4f13ccb6f 100644
Binary files a/locales/pt_BR.mo and b/locales/pt_BR.mo differ
diff --git a/locales/pt_BR.po b/locales/pt_BR.po
index fa8a1c121..27e12d86f 100644
--- a/locales/pt_BR.po
+++ b/locales/pt_BR.po
@@ -18,11 +18,11 @@
# Jean Vergaças , 2022
# Pedro de Oliveira Lira , 2022
# Eduardo Spinola , 2022
-# Pablo Pierre Ferreira , 2023
+# Pablo Pierri , 2023
# Matheus Rafael, 2023
# Eduardo Scott , 2023
-# Diego Nobre , 2023
# Thierry Bugier , 2023
+# Diego Nobre , 2023
#
#, fuzzy
msgid ""
@@ -31,7 +31,7 @@ msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-11-13 14:56+0100\n"
"PO-Revision-Date: 2021-08-30 07:22+0000\n"
-"Last-Translator: Thierry Bugier , 2023\n"
+"Last-Translator: Diego Nobre , 2023\n"
"Language-Team: Portuguese (Brazil) (https://app.transifex.com/teclib/teams/28042/pt_BR/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -267,7 +267,7 @@ msgstr "Diretório LDAP não encontrado!"
#: inc/field/ldapselectfield.class.php:154
msgid "LDAP attribute is required!"
-msgstr ""
+msgstr "Atributo LDAP é obrigatório!"
#: inc/field/textfield.class.php:146 inc/field/floatfield.class.php:156
#, php-format
@@ -307,15 +307,15 @@ msgstr "Seleção única"
#: inc/field/radiosfield.class.php:116 inc/field/checkboxesfield.class.php:256
msgid "The field value is required."
-msgstr ""
+msgstr "O valor do campo é obrigatório."
#: inc/field/radiosfield.class.php:127
msgid "Only one default value is allowed."
-msgstr ""
+msgstr "Somente um valor padrão é permitido."
#: inc/field/radiosfield.class.php:138
msgid "The default value is not in the list of available values."
-msgstr ""
+msgstr "O valor padrão não está na lista de valores disponíveis."
#: inc/field/radiosfield.class.php:215 inc/field/selectfield.class.php:105
#: inc/field/datetimefield.class.php:119 inc/field/actorfield.class.php:257
@@ -327,7 +327,7 @@ msgstr "Um campo obrigatório está vazio: %s"
#: inc/field/radiosfield.class.php:234 inc/field/selectfield.class.php:123
#, php-format
msgid "This value %1$s is not allowed: %2$s"
-msgstr ""
+msgstr "Este valor %1$s não é permitido: %2$s"
#: inc/field/integerfield.class.php:60
#, php-format
@@ -510,12 +510,12 @@ msgstr "Caixas de Seleção"
#: inc/field/checkboxesfield.class.php:208
#, php-format
msgid "Empty values are not allowed: %s"
-msgstr ""
+msgstr "Valores vazios não são permitidos: %s"
#: inc/field/checkboxesfield.class.php:216
#, php-format
msgid "This value %1$s is not alowed: %2$s"
-msgstr ""
+msgstr "Este valor %1$s não é permitido: %2$s"
#: inc/field/checkboxesfield.class.php:236
#, php-format
@@ -529,7 +529,7 @@ msgstr "A questão a seguir não aceita mais de %drespostas: %s"
#: inc/field/checkboxesfield.class.php:270
msgid "The default values are not in the list of available values."
-msgstr ""
+msgstr "Os valores padrão não estão na lista de valores disponíveis."
#: inc/field/checkboxesfield.class.php:325
msgid "Range min"
@@ -541,7 +541,7 @@ msgstr "Intervalo máx"
#: inc/field/requesttypefield.class.php:86 inc/targetticket.class.php:1108
msgid "Request type"
-msgstr "Tipo de Solicitação"
+msgstr "Tipo de requisição"
#: inc/field/floatfield.class.php:141
#, php-format
@@ -714,7 +714,7 @@ msgid "Requester"
msgid_plural "Requesters"
msgstr[0] "Solicitante"
msgstr[1] "Solicitantes"
-msgstr[2] "Solicitantes"
+msgstr[2] "Requerentes"
#: inc/issue.class.php:619 inc/formanswer.class.php:270
msgid "Form approver"
@@ -748,7 +748,7 @@ msgstr "Grupo aprovador de chamados"
#: inc/issue.class.php:857
msgid "Ticket requester"
-msgstr "Solicitante do chamado"
+msgstr "Requerente do chamado"
#: inc/issue.class.php:904
msgid "Ticket observer"
@@ -1053,7 +1053,7 @@ msgstr "Impossível gerar alvos!"
#: inc/formanswer.class.php:1434
#, php-format
msgid "Answer is invalid in %1$s"
-msgstr ""
+msgstr "A resposta é inválida em %1$s"
#: inc/formanswer.class.php:1462
msgid "No turing test set"
@@ -1336,7 +1336,7 @@ msgstr "Procurar assistência"
#: inc/entityconfig.class.php:165
msgid "User's assistance requests"
-msgstr "Solicitações de assistência dos usuários"
+msgstr "Requisições de assistência dos usuários"
#: inc/entityconfig.class.php:261
msgid "Helpdesk"
@@ -1500,7 +1500,7 @@ msgstr "Duplicar"
#: inc/form.class.php:554 inc/form.class.php:2223
msgid "Add a target"
-msgstr "Adicionar em alvo"
+msgstr "Adicionar um alvo"
#: inc/form.class.php:575
msgid "Preview"
@@ -1525,7 +1525,7 @@ msgstr "Nenhum formulário postado ainda"
#: inc/form.class.php:964
msgid "All my forms (requester)"
-msgstr "Todos os formulários (requerente)"
+msgstr "Todos os meus formulários (requerente)"
#: inc/form.class.php:977
#, php-format
@@ -1921,7 +1921,7 @@ msgstr "Feito."
#: inc/command/cleanticketscommand.class.php:135
msgid "Step 1: double encoded < and > signs."
-msgstr ""
+msgstr "Etapa 1: sinais < e > com codificação dupla."
#: inc/command/cleanticketscommand.class.php:146
#: inc/command/cleanticketscommand.class.php:196
@@ -1931,11 +1931,11 @@ msgstr "Nenhum item inválido encontrado."
#: inc/command/cleanticketscommand.class.php:187
msgid "Step 2: literal BR tag."
-msgstr ""
+msgstr "Etapa 2: tag BR literal."
#: inc/command/cleanticketscommand.class.php:251
msgid "Step 3: litteral > sign."
-msgstr ""
+msgstr "Etapa 3: sinal > literal"
#: inc/filter/itilcategoryfilter.class.php:52
#: inc/filter/itilcategoryfilter.class.php:54
@@ -2082,7 +2082,7 @@ msgstr "Seu formulário foi aceito pelo validador"
#: inc/targetticket.class.php:1095
msgid "Request source"
-msgstr "Origem da solicitação"
+msgstr "Origem da requisição"
#: inc/targetticket.class.php:1120
msgid "Type "
diff --git a/locales/sk_SK.mo b/locales/sk_SK.mo
index c77307e11..947ecf812 100644
Binary files a/locales/sk_SK.mo and b/locales/sk_SK.mo differ
diff --git a/locales/sk_SK.po b/locales/sk_SK.po
index 3fbacf150..261e72fd5 100644
--- a/locales/sk_SK.po
+++ b/locales/sk_SK.po
@@ -7,6 +7,7 @@
# Miroslav Hlohovsky, 2022
# Radoslav Koren, 2022
# Thierry Bugier , 2023
+# feonsu , 2023
#
#, fuzzy
msgid ""
@@ -15,7 +16,7 @@ msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-11-13 14:56+0100\n"
"PO-Revision-Date: 2021-08-30 07:22+0000\n"
-"Last-Translator: Thierry Bugier , 2023\n"
+"Last-Translator: feonsu , 2023\n"
"Language-Team: Slovak (Slovakia) (https://app.transifex.com/teclib/teams/28042/sk_SK/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -254,7 +255,7 @@ msgstr "LDAP adresár nebol nájdený!"
#: inc/field/ldapselectfield.class.php:154
msgid "LDAP attribute is required!"
-msgstr ""
+msgstr "LDAP atribút je požadovaný!"
#: inc/field/textfield.class.php:146 inc/field/floatfield.class.php:156
#, php-format
@@ -294,7 +295,7 @@ msgstr "Tlačidlá predvoľby"
#: inc/field/radiosfield.class.php:116 inc/field/checkboxesfield.class.php:256
msgid "The field value is required."
-msgstr ""
+msgstr "Hodnota poľa je povinná."
#: inc/field/radiosfield.class.php:127
msgid "Only one default value is allowed."
@@ -368,7 +369,7 @@ msgstr "Veľmi nízka"
#: inc/field/tagfield.class.php:51
msgid "Warning: Tag plugin is disabled or missing"
-msgstr "Upozornenie: Tag plugin je zakázaný alebo chýba"
+msgstr "Upozornenie: plugin Tag je vypnutý alebo chýba"
#: inc/field/tagfield.class.php:197
msgid "Tag"
@@ -465,7 +466,7 @@ msgstr "Viacnásobný výber"
#: inc/field/fieldsfield.class.php:154
msgid "Warning: Additional Fields plugin is disabled or missing"
-msgstr "Upozornenie: Doplnkové polia pluginu sú zakázané alebo chýbajú"
+msgstr "Upozornenie: plugin Dodatočné polia (fields) je vypnutý alebo chýba"
#: inc/field/fieldsfield.class.php:167
msgid "Block"
@@ -767,15 +768,15 @@ msgstr "%1$s %2$s"
#: inc/issue.class.php:1357 inc/filter/itilcategoryfilter.class.php:56
#: hook.php:703
msgid "All"
-msgstr "Všetci"
+msgstr "Všetko"
#: inc/issue.class.php:1363 hook.php:704
msgid "New"
-msgstr "Nový"
+msgstr "Nové"
#: inc/issue.class.php:1369 hook.php:705
msgid "Assigned"
-msgstr "Pridelený"
+msgstr "Priradené"
#: inc/issue.class.php:1375 inc/formanswer.class.php:78
#: inc/form_validator.class.php:69 hook.php:706
@@ -792,7 +793,7 @@ msgstr "Vyriešené"
#: inc/issue.class.php:1393 hook.php:709
msgid "Closed"
-msgstr "Uzavretý"
+msgstr "Uzavreté"
#: inc/category.class.php:50 hook.php:72
msgid "Form category"
@@ -1083,7 +1084,7 @@ msgstr "Vyhľadajte pomoc"
#: inc/common.class.php:789 inc/common.class.php:793
msgid "My requests for assistance"
-msgstr "Moja požiadavka o pomoc"
+msgstr "Moje požiadavky o pomoc"
#: inc/common.class.php:829
msgid "Consult reminders"
@@ -1097,8 +1098,8 @@ msgstr "Consult feeds"
msgid "Access type"
msgid_plural "Access types"
msgstr[0] "Typ prístupu"
-msgstr[1] "Typov prístupov"
-msgstr[2] "Typov prístupov"
+msgstr[1] "Typy prístupov"
+msgstr[2] "Typy prístupov"
msgstr[3] "Typy prístupov"
#: inc/formaccesstype.class.php:79
@@ -1496,8 +1497,8 @@ msgstr "Všetky jazyky"
msgid "Target"
msgid_plural "Targets"
msgstr[0] "Cieľ"
-msgstr[1] "Cieľov"
-msgstr[2] "Cieľov"
+msgstr[1] "Ciele"
+msgstr[2] "Ciele"
msgstr[3] "Ciele"
#: inc/form.class.php:504
@@ -1618,7 +1619,7 @@ msgstr "Späť"
#: inc/form.class.php:1679
msgid "Upload of JSON files not enabled."
-msgstr "Nahrávanie súborov JSON nie je povolené."
+msgstr "Nahrávanie súborov JSON nie je zapnuté."
#: inc/form.class.php:1682 inc/form.class.php:1685
msgid "You may enable JSON files right now."
@@ -2336,7 +2337,7 @@ msgstr "Áno"
#: install/install.php:135
#, php-format
msgid "Upgrade tables to innoDB; run %s"
-msgstr "Aktualizujte tabuľky na innoDB; beží %s"
+msgstr "Aktualizujte tabuľky na innoDB; spustite %s"
#: install/install.php:172
#, php-format
@@ -2369,7 +2370,7 @@ msgstr ""
#: install/install.php:261
msgid "The tables of the plugin passed the schema integrity check."
-msgstr "Plugin prešiel kontrolou integrity."
+msgstr "Tabuľky pluginu prešli kontrolou integrity schémy."
#: install/install.php:413
msgid "A form has been created"
@@ -2548,7 +2549,7 @@ msgstr ""
#: js/scripts.js:1466
msgid "Are you sure you want to delete this target?"
-msgstr ""
+msgstr "Naozaj chcete odstrániť tento cieľ?"
#: entrée standard:43 standard:50 standard:44 standard:82 standard:49
#: standard:78
diff --git a/package.json b/package.json
index 9ce66e9f4..2d1726915 100644
--- a/package.json
+++ b/package.json
@@ -13,5 +13,5 @@
"tag": true
}
},
- "version": "2.13.8"
+ "version": "2.13.9"
}
diff --git a/plugin.xml b/plugin.xml
index 2fb200c08..a4b365002 100644
--- a/plugin.xml
+++ b/plugin.xml
@@ -58,6 +58,11 @@ Features
Teclib'
+
+ 2.13.9
+ ~10.0.10
+ https://github.com/pluginsGLPI/formcreator/releases/download/2.13.9/glpi-formcreator-2.13.9.tar.bz2
+
2.13.8
~10.0.10
diff --git a/setup.php b/setup.php
index 585666260..96e95461e 100644
--- a/setup.php
+++ b/setup.php
@@ -33,14 +33,14 @@
global $CFG_GLPI;
// Version of the plugin (major.minor.bugfix)
-define('PLUGIN_FORMCREATOR_VERSION', '2.13.8');
+define('PLUGIN_FORMCREATOR_VERSION', '2.13.9');
// Schema version of this version (major.minor only)
define('PLUGIN_FORMCREATOR_SCHEMA_VERSION', '2.13');
// is or is not an official release of the plugin
define('PLUGIN_FORMCREATOR_IS_OFFICIAL_RELEASE', true);
// Minimal GLPI version, inclusive
-define ('PLUGIN_FORMCREATOR_GLPI_MIN_VERSION', '10.0');
+define ('PLUGIN_FORMCREATOR_GLPI_MIN_VERSION', '10.0.10');
// Maximum GLPI version, exclusive (ignored if PLUGIN_FORMCREATOR_IS_OFFICIAL_RELEASE == false)
define ('PLUGIN_FORMCREATOR_GLPI_MAX_VERSION', '10.1');
diff --git a/tests/3-unit/PluginFormcreatorCategory.php b/tests/3-unit/PluginFormcreatorCategory.php
index 7f4a60934..2034e44be 100644
--- a/tests/3-unit/PluginFormcreatorCategory.php
+++ b/tests/3-unit/PluginFormcreatorCategory.php
@@ -66,6 +66,7 @@ public function testGetTypeName($nb, $expected) {
}
public function testDefineTabs() {
+ $this->login('glpi', 'glpi');
$instance = $this->newTestedInstance();
$output = $instance->defineTabs();
$expected = [
diff --git a/tests/3-unit/PluginFormcreatorForm.php b/tests/3-unit/PluginFormcreatorForm.php
index 9b14fae41..e9bf22878 100644
--- a/tests/3-unit/PluginFormcreatorForm.php
+++ b/tests/3-unit/PluginFormcreatorForm.php
@@ -299,6 +299,8 @@ public function testPrepareInputForUpdate($input, $expected, $expectedMessage) {
}
public function testDefineTabs() {
+ $this->login('glpi', 'glpi');
+ $_SESSION['glpishow_count_on_tabs'] = 0;
$instance = $this->newTestedInstance();
$output = $instance->defineTabs();
$expected = [
@@ -311,6 +313,7 @@ public function testDefineTabs() {
'PluginFormcreatorForm$3' => "Form answer properties",
'PluginFormcreatorFormAnswer$1' => "Form answers",
'PluginFormcreatorForm_Language$1' => 'Form languages',
+ 'Document_Item$1' => "Documents",
'Log$1' => "Historical",
];
$this->array($output)
diff --git a/tests/3-unit/PluginFormcreatorTargetChange.php b/tests/3-unit/PluginFormcreatorTargetChange.php
index 1a4b0b3ee..422f96d81 100644
--- a/tests/3-unit/PluginFormcreatorTargetChange.php
+++ b/tests/3-unit/PluginFormcreatorTargetChange.php
@@ -505,6 +505,7 @@ public function testImport() {
'tag_specifics' => '',
'category_rule' => \PluginFormcreatorTargetChange::CATEGORY_RULE_NONE,
'category_question' => '0',
+ '_changetemplate' => '',
'uuid' => $uuid,
];
diff --git a/tests/3-unit/PluginFormcreatorTargetTicket.php b/tests/3-unit/PluginFormcreatorTargetTicket.php
index 479fe8d79..57a07b8a0 100644
--- a/tests/3-unit/PluginFormcreatorTargetTicket.php
+++ b/tests/3-unit/PluginFormcreatorTargetTicket.php
@@ -782,6 +782,7 @@ public function testImport() {
'source_question' => 0,
'type_rule' => 1,
'type_question' => 0,
+ '_tickettemplate' => '',
'uuid' => $uuid,
];