Skip to content
script.js 1.63 KiB
Newer Older
Hugo Renard's avatar
Hugo Renard committed
document.addEventListener("DOMContentLoaded", () =>
  OC.Plugins.register("OCA.Files.NewFileMenu", {
    attach: function () {
      const refreshMenu = () => {
        const menu = document.querySelector(".newFileMenu ul");
Hugo Renard's avatar
Hugo Renard committed

Hugo Renard's avatar
Hugo Renard committed
        const addSeparator = (selector, title) => {
          const firtEl = document.querySelector(selector);
Hugo Renard's avatar
Hugo Renard committed

Hugo Renard's avatar
Hugo Renard committed
          const separator = document.createElement("li");
          separator.classList.add("menu-item-separator");
          separator.innerHTML = `
Hugo Renard's avatar
Hugo Renard committed
                      <div></div>
                      <p>${title}</p>
                  `;

Hugo Renard's avatar
Hugo Renard committed
          menu.insertBefore(separator, firtEl.parentNode);
        };
Hugo Renard's avatar
Hugo Renard committed

Hugo Renard's avatar
Hugo Renard committed
        const addExtension = (selector) => {
          const elements = document.querySelectorAll(selector);
          for (const el of elements) {
            const span = document.createElement("span");
            span.classList.add("menu-item-extension");
Hugo Renard's avatar
Hugo Renard committed
            span.innerText = "." + el.getAttribute("data-templatename").split(".")[1];
Hugo Renard's avatar
Hugo Renard committed
            el.appendChild(span);
          }
        };
Hugo Renard's avatar
Hugo Renard committed

Hugo Renard's avatar
Hugo Renard committed
        addSeparator(
          '.newFileMenu .menuitem[data-action*="template-new-onlyoffice"]',
          "ONLYOFFICE"
        );
        addSeparator(
          '.newFileMenu .menuitem[data-action*="template-new-richdocument"]',
          "COLLABORA"
Hugo Renard's avatar
Hugo Renard committed
        );
Hugo Renard's avatar
Hugo Renard committed

Hugo Renard's avatar
Hugo Renard committed
        addExtension(
          '.newFileMenu .menuitem[data-action*="template-new-onlyoffice"]'
        );
        addExtension(
          '.newFileMenu .menuitem[data-action*="template-new-richdocument"]'
        );
      };
      setTimeout(refreshMenu);
      document.querySelector(".new").addEventListener("click", refreshMenu);
    },
  })
);