X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=js%2Fwysiwyg%2Fadmin.ckeditor-configurator.js;h=6c44806754b7628f144356f1aeac4fb869401c76;hb=071e5a4f43909e57c7c42b2e3eecddeb78c017ed;hp=17ac199703dd30e823507c46ac1b6bc67717b8c5;hpb=24992c9fa74d182b7a600a9e38f995bd492b6e99;p=civicrm-core.git
diff --git a/js/wysiwyg/admin.ckeditor-configurator.js b/js/wysiwyg/admin.ckeditor-configurator.js
index 17ac199703..6c44806754 100644
--- a/js/wysiwyg/admin.ckeditor-configurator.js
+++ b/js/wysiwyg/admin.ckeditor-configurator.js
@@ -45,16 +45,41 @@
}
else {
$el.after(' = ');
+ $el.next('span').find('input.crm-form-text[type=text]').change(validateJson);
}
} else {
$el.closest('div').remove();
}
}
+ function getOptionList() {
+ var list = [];
+ _.forEach(options, function(option) {
+ var opt = _.cloneDeep(option);
+ if ($('[name="config_' + opt.id + '"]').length) {
+ opt.disabled = true;
+ }
+ list.push(opt);
+ });
+ return {results: list, text: 'id'};
+ }
+
+ function validateJson() {
+ var val = $(this).val();
+ $(this).parent().removeClass('crm-error');
+ if (val[0] === '[' || val[0] === '{') {
+ try {
+ JSON.parse(val);
+ } catch (e) {
+ $(this).parent().addClass('crm-error');
+ }
+ }
+ }
+
function addOption() {
$('#crm-custom-config-options').append($(configRowTpl({})));
- $('div:last input.crm-config-option-name', '#crm-custom-config-options').crmSelect2({
- data: {results: options, text: 'id'},
+ $('.crm-config-option-row:last input.crm-config-option-name', '#crm-custom-config-options').crmSelect2({
+ data: getOptionList,
formatSelection: function(field) {
return '' + field.id + ' (' + field.type + ')';
},