Skip to content

Commit 2df261f

Browse files
bfodekemariohernandez
bfodeke
authored and
mariohernandez
committed
Allows Edit JSON button to be managed in config
1 parent 730aaa6 commit 2df261f

6 files changed

+15
-2
lines changed

config/install/patternkit.settings.yml

+1
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,4 @@ patternkit_json_editor_use_shadow_dom: true
88
patternkit_json_editor_wysiwyg: ""
99
patternkit_json_editor_ckeditor_toolbar: ""
1010
patternkit_json_editor_disable_properties_buttons: false
11+
patternkit_json_editor_disable_edit_json_button: true

config/schema/patternkit.schema.yml

+3
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,9 @@ patternkit.settings:
3939
patternkit_json_editor_disable_properties_buttons:
4040
type: boolean
4141
label: 'Boolean that determines whether to show the properties buttons.'
42+
patternkit_json_editor_disable_edit_json_button:
43+
type: boolean
44+
label: 'Boolean that determines whether to show the JSON Edit button.'
4245

4346
block.settings.patternkit_block:*:
4447
type: block_settings

js/patternkit.jsoneditor.es6.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ patternkitEditorArray(jQuery, Drupal, JSONEditor);
107107
JSONEditor.defaults.options.theme = settings.patternkitEditor.theme;
108108
JSONEditor.defaults.options.iconlib = settings.patternkitEditor.icons;
109109
JSONEditor.defaults.options.keep_oneof_values = false;
110-
JSONEditor.defaults.options.disable_edit_json = true;
110+
JSONEditor.defaults.options.disable_edit_json = settings.patternkitEditor.disableJsonEditButton;
111111
JSONEditor.defaults.options.disable_collapse = false;
112112
JSONEditor.defaults.options.collapse = false;
113113
JSONEditor.defaults.options.ajax = true;

js/patternkit.jsoneditor.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1131,7 +1131,7 @@ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "functi
11311131
JSONEditor.defaults.options.theme = settings.patternkitEditor.theme;
11321132
JSONEditor.defaults.options.iconlib = settings.patternkitEditor.icons;
11331133
JSONEditor.defaults.options.keep_oneof_values = false;
1134-
JSONEditor.defaults.options.disable_edit_json = true;
1134+
JSONEditor.defaults.options.disable_edit_json = settings.patternkitEditor.disableJsonEditButton;
11351135
JSONEditor.defaults.options.disable_collapse = false;
11361136
JSONEditor.defaults.options.collapse = false;
11371137
JSONEditor.defaults.options.ajax = true;

src/Form/PatternLibraryJSONForm.php

+8
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,13 @@ public function buildForm(array $form, FormStateInterface $form_state) :array {
157157
'#default_value' => $config->get('patternkit_json_editor_disable_properties_buttons') ?? FALSE,
158158
);
159159

160+
$form['patternkit_json_editor_disable_edit_json_button'] = array(
161+
'#type' => 'checkbox',
162+
'#title' => t('Hide the JSON Edit button'),
163+
'#description' => t('Select whether to show the Edit JSON button (maps to json-editor option <em>disable_edit_json</em>).'),
164+
'#default_value' => $config->get('patternkit_json_editor_disable_edit_json_button') ?? TRUE,
165+
);
166+
160167
$form['patternkit_json_editor_wysiwyg'] = array(
161168
'#type' => 'select',
162169
'#title' => t('WYSIWYG editor'),
@@ -215,6 +222,7 @@ public function submitForm(array &$form, FormStateInterface $form_state) {
215222
$config->set('patternkit_json_editor_js', $form_values['patternkit_json_editor_js']);
216223
$config->set('patternkit_json_editor_use_shadow_dom', (bool) $form_values['patternkit_json_editor_use_shadow_dom']);
217224
$config->set('patternkit_json_editor_disable_properties_buttons', (bool) $form_values['patternkit_json_editor_disable_properties_buttons']);
225+
$config->set('patternkit_json_editor_disable_edit_json_button', (bool) $form_values['patternkit_json_editor_disable_edit_json_button']);
218226
$config->set('patternkit_json_editor_wysiwyg', $form_values['patternkit_json_editor_wysiwyg']);
219227
$config->set('patternkit_json_editor_ckeditor_toolbar', $form_values['patternkit_json_editor_ckeditor_toolbar']);
220228
$config->save();

src/JSONSchemaEditorTrait.php

+1
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ public function schemaEditor($schema, PatternEditorConfig $config): array {
8787
'wysiwygEditorName' => $this->config->get('patternkit_json_editor_wysiwyg') ?? '',
8888
'useShadowDom' => $this->config->get('patternkit_json_editor_use_shadow_dom') ?? TRUE,
8989
'disablePropertiesButtons' => $this->config->get('patternkit_json_editor_disable_properties_buttons') ?? FALSE,
90+
'disableJsonEditButton' => $this->config->get('patternkit_json_editor_disable_edit_json_button') ?? TRUE,
9091
];
9192

9293
if (isset(PatternLibraryJSONForm::THEMES[$theme])) {

0 commit comments

Comments
 (0)