Пользовательский элемент меню TinyMCE 5+ из кнопки меню включается и отключается при нажатии на текст «Пользовательский форматированный» - PullRequest
0 голосов
/ 16 марта 2019

Я добавил пользовательский элемент меню в меню, которое вставляет пользовательский тег. Например: сб. 16 марта 2019

Я бы хотел отключить кнопку меню, когда он находится внутри тега времени, чтобы было невозможно добавить тег времени внутри тега time.

Я не смог этого сделать. Это мой код:

  tinymce.init({
  selector: 'textarea',
  menubar: false,
  toolbar: 'bold| menuDateButton',
  setup: function (editor) {

    /* Helper functions */
    var toDateHtml = function (date) {
      return '<time datetime="' + date.toString() + '">' + date.toDateString() + '</time>';
    };

    editor.ui.registry.addMenuButton('menuDateButton', {
      text: 'Add Date',
      fetch: function (callback) {
        var items = [
          {
            type: 'menuitem',
            text: 'Insert Date',

            onAction: function (buttonApi) {

              console.log('Disabled?: '+buttonApi.isDisabled());
              console.log('Pre Insert');
              editor.insertContent(toDateHtml(new Date()));
              console.log('Post Insert');


            },
            onSetup: function (buttonApi) {
              var editorEventCallback = function (eventApi) {
                buttonApi.setDisabled(eventApi.element.nodeName.toLowerCase() === 'time');                
                console.log('Disabled (Nodechange)?: ' + buttonApi.isDisabled());

              };
              editor.on('NodeChange', editorEventCallback);
              return function (buttonApi) {
                editor.off('NodeChange', editorEventCallback);
              }
            }
          }          
        ];
        callback(items);
      }
    });
  }
});

Ручка: https://codepen.io/aldoherrera/pen/KERpYW

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...