summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/web/app/common/scripts/copy-to-clipboard.js13
-rw-r--r--src/web/app/desktop/tags/drive/file-contextmenu.tag10
2 files changed, 22 insertions, 1 deletions
diff --git a/src/web/app/common/scripts/copy-to-clipboard.js b/src/web/app/common/scripts/copy-to-clipboard.js
new file mode 100644
index 0000000000..2e67024c85
--- /dev/null
+++ b/src/web/app/common/scripts/copy-to-clipboard.js
@@ -0,0 +1,13 @@
+/**
+ * Clipboardに値をコピー(TODO: 文字列以外も対応)
+ */
+module.exports = val => {
+ const form = document.createElement('textarea');
+ form.textContent = val;
+ document.body.appendChild(form);
+ form.select();
+ const result = document.execCommand('copy');
+ document.body.removeChild(form);
+
+ return result;
+};
diff --git a/src/web/app/desktop/tags/drive/file-contextmenu.tag b/src/web/app/desktop/tags/drive/file-contextmenu.tag
index 29f1befc44..17376adb86 100644
--- a/src/web/app/desktop/tags/drive/file-contextmenu.tag
+++ b/src/web/app/desktop/tags/drive/file-contextmenu.tag
@@ -35,10 +35,13 @@
</ul>
</mk-contextmenu>
<script>
+ const copyToClipboard = require('../../../common/scripts/copy-to-clipboard');
+
this.mixin('api');
this.mixin('i');
this.mixin('update-avatar');
this.mixin('update-banner');
+ this.mixin('dialog');
this.mixin('input-dialog');
this.mixin('NotImplementedException');
@@ -68,7 +71,12 @@
};
this.copyUrl = () => {
- this.NotImplementedException();
+ copyToClipboard(this.file.url);
+ this.refs.ctx.close();
+ this.dialog('<i class="fa fa-check"></i>コピー完了',
+ 'ファイルのURLをクリップボードにコピーしました', [{
+ text: 'わー'
+ }]);
};
this.download = () => {