WebOrbiton
v1.0.0.1

StocketBase

41 lines · 1.3 KB
  1. (function () {
  2. function enhance(input) {
  3. if (input.getAttribute('data-image-ready') === '1') {
  4. return;
  5. }
  6. input.setAttribute('data-image-ready', '1');
  7. ​
  8. var row = document.createElement('div');
  9. row.className = 'image-upload-row';
  10. input.parentNode.insertBefore(row, input);
  11. row.appendChild(input);
  12. ​
  13. var button = document.createElement('button');
  14. button.type = 'button';
  15. button.className = 'dash-btn image-upload-button';
  16. button.innerHTML = '<svg class="icon icon-sm" aria-hidden="true"><use href="#icon-upload"></use></svg>Upload';
  17. row.appendChild(button);
  18. ​
  19. if (input.readOnly || input.disabled) {
  20. button.disabled = true;
  21. }
  22. ​
  23. button.addEventListener('click', function () {
  24. if (!window.StocketBaseMedia) {
  25. return;
  26. }
  27. ​
  28. window.StocketBaseMedia.open({
  29. type: 'image',
  30. onSelect: function (url) {
  31. input.value = url;
  32. input.dispatchEvent(new Event('input', { bubbles: true }));
  33. input.dispatchEvent(new Event('change', { bubbles: true }));
  34. }
  35. });
  36. });
  37. }
  38. ​
  39. document.querySelectorAll('input[data-image-upload]').forEach(enhance);
  40. })();
  41. ​