Redmine 4.1で使えるようになる予定のクリップボードからの画像ペースト、実は少しのJavaScriptのコードの追加だけでできてるので、もしかしてView customizeで3.4や4.0でも使えるようにできるのでは?https://t.co/9h3vuUELnw
— MAEDA Go (@g_maeda) 2019年3月9日
ということで View customizeでやってみました。
設定内容
- Path pattern:
.*
- Insertion position:
Head of all pages
$(function() { $('form div.box').has('input:file.filedrop').on('paste', copyImageFromClipboard); function copyImageFromClipboard(e) { if (!$(e.target).hasClass('wiki-edit')) { return; } var clipboardData = e.clipboardData || e.originalEvent.clipboardData if (!clipboardData) { return; } var items = clipboardData.items for (var i = 0 ; i < items.length ; i++) { var item = items[i]; if (item.type.indexOf("image") != -1) { var blob = item.getAsFile(); var date = new Date(); var filename = 'clipboard-' + date.getFullYear() + ('0'+(date.getMonth()+1)).slice(-2) + ('0'+date.getDate()).slice(-2) + ('0'+date.getHours()).slice(-2) + ('0'+date.getMinutes()).slice(-2) + '-' + randomKey(5).toLocaleLowerCase() + '.' + blob.name.split('.').pop(); var file = new File([blob], filename, {type: blob.type}); var inputEl = $('input:file.filedrop').first() handleFileDropEvent.target = e.target; addFile(inputEl, file, true); } } } })
動作
ファイルアップロードができるようなテキストエリア(チケットの説明やWikiとか)でペーストすると画像のアップロード+Wiki記法で画像表示が埋め込まれます。Redmine 4.0 で確認しています。