pgweb
結果を Google スプレッドシートに貼りたいので Run Query したときに TSV をクリップボードにコピーする機能を付けた
Linux で動かして local address で Windows から見るみたいなことをすると非 secure context になりがちなので、Clipboard API が使えなかったら古の execCommand にフォールバックさせるように、、、
このへん明示的に指定すれば secure context と見なすようなことができないものでしょうか……
OSS ですよ
さすがに Firefox のコードは触りたくないな
code:diff
diff --git a/static/js/app.js b/static/js/app.js
index 50e3fb5..2b5cff2 100644
--- a/static/js/app.js
+++ b/static/js/app.js
@@ -871,6 +871,26 @@ function runQuery() {
executeQuery(query, function(data) {
buildTable(data);
+ let tsvText = data.columns.join("\t");
+ for (const row of data.rows) {
+ tsvText += "\n" + row.join("\t");
+ }
+ try {
+ navigator.clipboard.writeText(tsvText);
+ } catch (e) {
+ const textarea = document.createElement("textarea");
+ textarea.value = tsvText;
+ document.body.appendChild(textarea);
+ textarea.select();
+ document.execCommand("copy");
+ textarea.remove();
+ } finally {
+ console.log("Copied!");
+ }
+
hideQueryProgressMessage();
$("#input").show();
$("#body").removeClass("full");