tkrkt
6/27/2017 - 9:28 AM

[userscript] [Kanbanflow] Quick Task Add

[userscript] [Kanbanflow] Quick Task Add

// ==UserScript==
// @name        [Kanbanflow] Quick Task Add
// @namespace   https://gist.github.com/tkrkt
// @include     https://kanbanflow.com/board/*
// @version     1
// @grant       none
// ==/UserScript==

const style = document.createElement('style');
style.textContent = `
.quicktask-input {
  width: calc(100% - 8px);
  box-sizing: border-box;
  margin: 4px;
  border: 1px solid rgba(0,0,0,0.2);
  background-color: transparent;
}
.column-collapsed .quicktask-input {
  display: none;
}
`;
document.head.appendChild(style);

Array.from(document.querySelectorAll('.columnHeader')).forEach(header => {
  const columnid = header.getAttribute('data-columnid');
  const addButton = header.querySelector('button.columnHeader-addTask');
  const list = document.querySelector(`td[data-columnid="${columnid}"] .taskList`);
  if (!list) return;

  const input = document.createElement('input');
  input.className = 'quicktask-input';
  header.appendChild(input);

  input.addEventListener('keypress', e => {
    if (e.keyCode === 13) { // enter
      addButton.click();
      const taskInput = document.querySelector('#taskName');
      const saveButton = document.querySelector('.taskDialog-saveCloseButton');
      taskInput.value = input.value;
      input.value = '';
      saveButton.click();
    }
  });
});