Я хочу добавить флажок в модальное меню ссылки. Я не могу понять, как я должен сохранить изменения. Если я использую метод onOk
, он перезапишет основной метод. Пробовал через декоратор, но элемент this._. SelectedElement
на данный момент еще не определен.
CKEDITOR.on( 'dialogDefinition', function( ev ) {
var dialogName = ev.data.name;
var dialogDefinition = ev.data.definition;
var link = ev.editor.getSelectedHtml().getHtml();
if ( dialogName === 'link' ) {
var infoTab = dialogDefinition.getContents( 'info' );
var checkbox = {
type: 'checkbox',
id: 'custom',
label: 'Add data attr',
setup: function (data) {
this.allowOnChange = false;
if (data.custom)
this.setValue(data.custom);
this.allowOnChange = true;
},
commit: function (data) {
data.custom = this.getValue()
this.allowOnChange = false;
}
}
infoTab.add(checkbox);
}
function decorator(func) {
return function() {
var attributes = {}
var data = {}
var editor = this.getParentEditor();
this.commitContent(data);
if (data.custom)
attributes["custom-attribute"] = "button";
else
attributes["custom-attribute"] = "";
var element = this._.selectedElement // not init
element.setAttributes(attributes);
func.apply(this, arguments);
};
}
dialogDefinition.onOk = decorator(dialogDefinition.onOk)
});