Skip to content

Commit cf24aa1

Browse files
committed
fix(targetchange,targetproblem): several fields must use rich text
1 parent e32ab28 commit cf24aa1

6 files changed

+449
-11
lines changed

install/install.php

+1
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ class PluginFormcreatorInstall {
8181
'2.13.1' => '2.13.3',
8282
'2.13.3' => '2.13.4',
8383
'2.13.4' => '2.13.5',
84+
'2.13.5' => '2.13.6',
8485
];
8586

8687
protected bool $resyncIssues = false;

install/mysql/plugin_formcreator_2.13.6_empty.sql

+352
Large diffs are not rendered by default.

install/upgrade_to_2.13.6.php

+85
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
<?php
2+
/**
3+
* ---------------------------------------------------------------------
4+
* Formcreator is a plugin which allows creation of custom forms of
5+
* easy access.
6+
* ---------------------------------------------------------------------
7+
* LICENSE
8+
*
9+
* This file is part of Formcreator.
10+
*
11+
* Formcreator is free software; you can redistribute it and/or modify
12+
* it under the terms of the GNU General Public License as published by
13+
* the Free Software Foundation; either version 2 of the License, or
14+
* (at your option) any later version.
15+
*
16+
* Formcreator is distributed in the hope that it will be useful,
17+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
18+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19+
* GNU General Public License for more details.
20+
*
21+
* You should have received a copy of the GNU General Public License
22+
* along with Formcreator. If not, see <http://www.gnu.org/licenses/>.
23+
* ---------------------------------------------------------------------
24+
* @copyright Copyright © 2011 - 2021 Teclib'
25+
* @license http://www.gnu.org/licenses/gpl.txt GPLv3+
26+
* @link https://github.com/pluginsGLPI/formcreator/
27+
* @link https://pluginsglpi.github.io/formcreator/
28+
* @link http://plugins.glpi-project.org/#/plugin/formcreator
29+
* ---------------------------------------------------------------------
30+
*/
31+
32+
use Glpi\RichText\RichText;
33+
use Glpi\Toolbox\Sanitizer;
34+
35+
class PluginFormcreatorUpgradeTo2_13_6 {
36+
/** @var Migration */
37+
protected $migration;
38+
39+
public function isResyncIssuesRequired() {
40+
return false;
41+
}
42+
43+
/**
44+
* @param Migration $migration
45+
*/
46+
public function upgrade(Migration $migration) {
47+
$this->migration = $migration;
48+
$this->migrateToRichText();
49+
}
50+
51+
public function migrateToRichText() {
52+
global $DB;
53+
54+
$tables = [
55+
'glpi_plugin_formcreator_targetchanges' => [
56+
'content',
57+
'impactcontent',
58+
'controlistcontent',
59+
'rolloutplancontent',
60+
'backoutplancontent',
61+
'checklistcontent',
62+
],
63+
'glpi_plugin_formcreator_targetproblems' => [
64+
'content',
65+
'impactcontent',
66+
'causecontent',
67+
'symptomcontent',
68+
],
69+
];
70+
71+
foreach ($tables as $table => $fields) {
72+
$request = [
73+
'SELECT' => ['id'] + $fields,
74+
'FROM' => $table
75+
];
76+
foreach ($DB->request($request) as $row) {
77+
foreach ($fields as $field) {
78+
$row[$field] = RichText::getSafeHtml($row[$field]);
79+
$row[$field] = Sanitizer::dbEscape($row[$field]);
80+
}
81+
$DB->update($table, $row, ['id' => $row['id']]);
82+
}
83+
}
84+
}
85+
}

setup.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333

3434
global $CFG_GLPI;
3535
// Version of the plugin (major.minor.bugfix)
36-
define('PLUGIN_FORMCREATOR_VERSION', '2.13.5');
36+
define('PLUGIN_FORMCREATOR_VERSION', '2.13.6-dev');
3737
// Schema version of this version (major.minor only)
3838
define('PLUGIN_FORMCREATOR_SCHEMA_VERSION', '2.13');
3939
// is or is not an official release of the plugin

templates/pages/targetchange.html.twig

+6-6
Original file line numberDiff line numberDiff line change
@@ -49,15 +49,15 @@
4949
{ required: true, full_width: true }
5050
) }}
5151

52-
{{ fields.textareaField('content', item.fields['content'], __('Description', 'formcreator'), { full_width: true }) }}
52+
{{ fields.textareaField('content', item.fields['content'], __('Description', 'formcreator'), { enable_richtext: true, full_width: true }) }}
5353

54-
{{ fields.textareaField('impactcontent', item.fields['impactcontent'], __('Impacts'), { full_width: true }) }}
54+
{{ fields.textareaField('impactcontent', item.fields['impactcontent'], __('Impacts'), { enable_richtext: true, full_width: true }) }}
5555

56-
{{ fields.textareaField('controlistcontent', item.fields['controlistcontent'], __('Control list'), { full_width: true }) }}
56+
{{ fields.textareaField('controlistcontent', item.fields['controlistcontent'], __('Control list'), { enable_richtext: true, full_width: true }) }}
5757

58-
{{ fields.textareaField('rolloutplancontent', item.fields['rolloutplancontent'], __('Deployment plan'), { full_width: true }) }}
58+
{{ fields.textareaField('rolloutplancontent', item.fields['rolloutplancontent'], __('Deployment plan'), { enable_richtext: true, full_width: true }) }}
5959

60-
{{ fields.textareaField('backoutplancontent', item.fields['backoutplancontent'], __('Backup plan'), { full_width: true }) }}
60+
{{ fields.textareaField('backoutplancontent', item.fields['backoutplancontent'], __('Backup plan'), { enable_richtext: true, full_width: true }) }}
6161

62-
{{ fields.textareaField('checklistcontent', item.fields['checklistcontent'], __('Checklist'), { full_width: true }) }}
62+
{{ fields.textareaField('checklistcontent', item.fields['checklistcontent'], __('Checklist'), { enable_richtext: true, full_width: true }) }}
6363
{% endblock %}

templates/pages/targetproblem.html.twig

+4-4
Original file line numberDiff line numberDiff line change
@@ -49,11 +49,11 @@
4949
{ required: true, full_width: true }
5050
) }}
5151

52-
{{ fields.textareaField('content', item.fields['content'], __('Description', 'formcreator'), { full_width: true }) }}
52+
{{ fields.textareaField('content', item.fields['content'], __('Description', 'formcreator'), { enable_richtext: true, full_width: true }) }}
5353

54-
{{ fields.textareaField('impactcontent', item.fields['impactcontent'], __('Impacts'), { full_width: true }) }}
54+
{{ fields.textareaField('impactcontent', item.fields['impactcontent'], __('Impacts'), { enable_richtext: true, full_width: true }) }}
5555

56-
{{ fields.textareaField('causecontent', item.fields['causecontent'], __('Cause'), { full_width: true }) }}
56+
{{ fields.textareaField('causecontent', item.fields['causecontent'], __('Cause'), { enable_richtext: true, full_width: true }) }}
5757

58-
{{ fields.textareaField('symptomcontent', item.fields['symptomcontent'], __('Symptom'), { full_width: true }) }}
58+
{{ fields.textareaField('symptomcontent', item.fields['symptomcontent'], __('Symptom'), { enable_richtext: true, full_width: true }) }}
5959
{% endblock %}

0 commit comments

Comments
 (0)