aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Alexis Degrugillier <aledeg@users.noreply.github.com> 2021-01-03 12:20:15 -0500
committerGravatar GitHub <noreply@github.com> 2021-01-03 18:20:15 +0100
commit46c8f6e77b74c97993414af1c3a3a8a047414baf (patch)
treeeb1327838aee14be4b0ecae8be2670d69ee4f2e1
parent0567e3894745f541cef2acd7a85486c0f2e40656 (diff)
Add clipboard sharing (#3330)
When the discussion #3327 started, I thought that the clipboard share is a good idea. It never occurred to me because I do not use a smartphone. It might need some polishing but it seems pretty usable as-is. See #3327
-rw-r--r--app/i18n/cz/gen.php1
-rw-r--r--app/i18n/de/gen.php1
-rw-r--r--app/i18n/en-us/gen.php1
-rw-r--r--app/i18n/en/gen.php1
-rwxr-xr-xapp/i18n/es/gen.php1
-rw-r--r--app/i18n/fr/gen.php3
-rw-r--r--app/i18n/he/gen.php1
-rw-r--r--app/i18n/it/gen.php1
-rw-r--r--app/i18n/kr/gen.php1
-rw-r--r--app/i18n/nl/gen.php1
-rw-r--r--app/i18n/oc/gen.php1
-rw-r--r--app/i18n/pl/gen.php1
-rw-r--r--app/i18n/pt-br/gen.php1
-rw-r--r--app/i18n/ru/gen.php1
-rw-r--r--app/i18n/sk/gen.php1
-rw-r--r--app/i18n/tr/gen.php1
-rw-r--r--app/i18n/zh-cn/gen.php1
-rw-r--r--app/shares.php6
-rw-r--r--app/views/helpers/index/normal/entry_bottom.phtml2
-rw-r--r--cli/i18n/ignore/en-us.php1
-rw-r--r--cli/i18n/ignore/fr.php1
-rw-r--r--p/scripts/main.js8
22 files changed, 34 insertions, 3 deletions
diff --git a/app/i18n/cz/gen.php b/app/i18n/cz/gen.php
index 6c186520c..05ff2f782 100644
--- a/app/i18n/cz/gen.php
+++ b/app/i18n/cz/gen.php
@@ -185,6 +185,7 @@ return array(
'share' => array(
'Known' => 'Known based sites', // TODO - Translation
'blogotext' => 'Blogotext', // TODO - Translation
+ 'clipboard' => 'Clipboard', // TODO - Translation
'diaspora' => 'Diaspora*', // TODO - Translation
'email' => 'Email', // TODO - Translation
'facebook' => 'Facebook', // TODO - Translation
diff --git a/app/i18n/de/gen.php b/app/i18n/de/gen.php
index 2a080ecb9..1c66b1230 100644
--- a/app/i18n/de/gen.php
+++ b/app/i18n/de/gen.php
@@ -185,6 +185,7 @@ return array(
'share' => array(
'Known' => 'Known-Seite (https://withknown.com)',
'blogotext' => 'Blogotext',
+ 'clipboard' => 'Zwischenablage',
'diaspora' => 'Diaspora*',
'email' => 'E-Mail',
'facebook' => 'Facebook',
diff --git a/app/i18n/en-us/gen.php b/app/i18n/en-us/gen.php
index 738fd8d22..6dcab8046 100644
--- a/app/i18n/en-us/gen.php
+++ b/app/i18n/en-us/gen.php
@@ -185,6 +185,7 @@ return array(
'share' => array(
'Known' => 'Known based sites',
'blogotext' => 'Blogotext',
+ 'clipboard' => 'Clipboard',
'diaspora' => 'Diaspora*',
'email' => 'Email',
'facebook' => 'Facebook',
diff --git a/app/i18n/en/gen.php b/app/i18n/en/gen.php
index c37d7b6bd..c347801ff 100644
--- a/app/i18n/en/gen.php
+++ b/app/i18n/en/gen.php
@@ -185,6 +185,7 @@ return array(
'share' => array(
'Known' => 'Known based sites',
'blogotext' => 'Blogotext',
+ 'clipboard' => 'Clipboard',
'diaspora' => 'Diaspora*',
'email' => 'Email',
'facebook' => 'Facebook',
diff --git a/app/i18n/es/gen.php b/app/i18n/es/gen.php
index 370ecd733..274088975 100755
--- a/app/i18n/es/gen.php
+++ b/app/i18n/es/gen.php
@@ -185,6 +185,7 @@ return array(
'share' => array(
'Known' => 'Known based sites', // TODO - Translation
'blogotext' => 'Blogotext', // TODO - Translation
+ 'clipboard' => 'Clipboard', // TODO - Translation
'diaspora' => 'Diaspora*', // TODO - Translation
'email' => 'Email', // TODO - Translation
'facebook' => 'Facebook', // TODO - Translation
diff --git a/app/i18n/fr/gen.php b/app/i18n/fr/gen.php
index f872614df..daef6d6bc 100644
--- a/app/i18n/fr/gen.php
+++ b/app/i18n/fr/gen.php
@@ -185,6 +185,7 @@ return array(
'share' => array(
'Known' => 'Sites basés sur Known',
'blogotext' => 'Blogotext',
+ 'clipboard' => 'Presse-papier',
'diaspora' => 'Diaspora*',
'email' => 'Courriel',
'facebook' => 'Facebook',
@@ -195,7 +196,7 @@ return array(
'mastodon' => 'Mastodon',
'movim' => 'Movim',
'pinboard' => 'Pinboard', // TODO - Translation
- 'pocket' => 'Pocket', // TODO - Translation
+ 'pocket' => 'Pocket',
'print' => 'Imprimer',
'shaarli' => 'Shaarli',
'twitter' => 'Twitter',
diff --git a/app/i18n/he/gen.php b/app/i18n/he/gen.php
index ba6c4523f..205c4d028 100644
--- a/app/i18n/he/gen.php
+++ b/app/i18n/he/gen.php
@@ -185,6 +185,7 @@ return array(
'share' => array(
'Known' => 'Known based sites', // TODO - Translation
'blogotext' => 'Blogotext', // TODO - Translation
+ 'clipboard' => 'Clipboard', // TODO - Translation
'diaspora' => 'Diaspora*', // TODO - Translation
'email' => 'דואר אלקטרוני',
'facebook' => 'Facebook', // TODO - Translation
diff --git a/app/i18n/it/gen.php b/app/i18n/it/gen.php
index 721d34dbc..94e68d7e3 100644
--- a/app/i18n/it/gen.php
+++ b/app/i18n/it/gen.php
@@ -185,6 +185,7 @@ return array(
'share' => array(
'Known' => 'Siti basati su Known',
'blogotext' => 'Blogotext', // TODO - Translation
+ 'clipboard' => 'Clipboard', // TODO - Translation
'diaspora' => 'Diaspora*', // TODO - Translation
'email' => 'Email', // TODO - Translation
'facebook' => 'Facebook', // TODO - Translation
diff --git a/app/i18n/kr/gen.php b/app/i18n/kr/gen.php
index e95686e2a..5cd0340a1 100644
--- a/app/i18n/kr/gen.php
+++ b/app/i18n/kr/gen.php
@@ -185,6 +185,7 @@ return array(
'share' => array(
'Known' => 'Known based sites',
'blogotext' => 'Blogotext',
+ 'clipboard' => 'Clipboard', // TODO - Translation
'diaspora' => 'Diaspora*',
'email' => '메일',
'facebook' => 'Facebook',
diff --git a/app/i18n/nl/gen.php b/app/i18n/nl/gen.php
index dd7009f98..93dba87df 100644
--- a/app/i18n/nl/gen.php
+++ b/app/i18n/nl/gen.php
@@ -185,6 +185,7 @@ return array(
'share' => array(
'Known' => 'Known-gebaseerde sites',
'blogotext' => 'Blogotext',
+ 'clipboard' => 'Klembord',
'diaspora' => 'Diaspora*',
'email' => 'Email',
'facebook' => 'Facebook',
diff --git a/app/i18n/oc/gen.php b/app/i18n/oc/gen.php
index 3a6a2ada6..71d0ccf56 100644
--- a/app/i18n/oc/gen.php
+++ b/app/i18n/oc/gen.php
@@ -185,6 +185,7 @@ return array(
'share' => array(
'Known' => 'Sites basats sus Known',
'blogotext' => 'Blogotext',
+ 'clipboard' => 'Clipboard', // TODO - Translation
'diaspora' => 'Diaspora*',
'email' => 'Corrièl',
'facebook' => 'Facebook',
diff --git a/app/i18n/pl/gen.php b/app/i18n/pl/gen.php
index 97743ff33..e291573af 100644
--- a/app/i18n/pl/gen.php
+++ b/app/i18n/pl/gen.php
@@ -185,6 +185,7 @@ return array(
'share' => array(
'Known' => 'Strony bazujące na usłudze Known',
'blogotext' => 'Blogotext',
+ 'clipboard' => 'Clipboard', // TODO - Translation
'diaspora' => 'Diaspora*',
'email' => 'E-mail',
'facebook' => 'Facebook',
diff --git a/app/i18n/pt-br/gen.php b/app/i18n/pt-br/gen.php
index 9a4774e22..3d1b212f8 100644
--- a/app/i18n/pt-br/gen.php
+++ b/app/i18n/pt-br/gen.php
@@ -185,6 +185,7 @@ return array(
'share' => array(
'Known' => 'Known based sites', // TODO - Translation
'blogotext' => 'Blogotext',
+ 'clipboard' => 'Clipboard', // TODO - Translation
'diaspora' => 'Diaspora*',
'email' => 'Email', // TODO - Translation
'facebook' => 'Facebook',
diff --git a/app/i18n/ru/gen.php b/app/i18n/ru/gen.php
index 335f6d9aa..70d798d6d 100644
--- a/app/i18n/ru/gen.php
+++ b/app/i18n/ru/gen.php
@@ -185,6 +185,7 @@ return array(
'share' => array(
'Known' => 'Known based sites', // TODO - Translation
'blogotext' => 'Blogotext', // TODO - Translation
+ 'clipboard' => 'Clipboard', // TODO - Translation
'diaspora' => 'Diaspora*', // TODO - Translation
'email' => 'Email', // TODO - Translation
'facebook' => 'Facebook', // TODO - Translation
diff --git a/app/i18n/sk/gen.php b/app/i18n/sk/gen.php
index e8e61c5eb..085446706 100644
--- a/app/i18n/sk/gen.php
+++ b/app/i18n/sk/gen.php
@@ -185,6 +185,7 @@ return array(
'share' => array(
'Known' => 'Stránky založené na Known',
'blogotext' => 'Blogotext',
+ 'clipboard' => 'Clipboard', // TODO - Translation
'diaspora' => 'Diaspora*',
'email' => 'E-mail',
'facebook' => 'Facebook',
diff --git a/app/i18n/tr/gen.php b/app/i18n/tr/gen.php
index 0078acaf7..9ddfd96b3 100644
--- a/app/i18n/tr/gen.php
+++ b/app/i18n/tr/gen.php
@@ -185,6 +185,7 @@ return array(
'share' => array(
'Known' => 'Known based sites', // TODO - Translation
'blogotext' => 'Blogotext', // TODO - Translation
+ 'clipboard' => 'Clipboard', // TODO - Translation
'diaspora' => 'Diaspora*', // TODO - Translation
'email' => 'Email', // TODO - Translation
'facebook' => 'Facebook', // TODO - Translation
diff --git a/app/i18n/zh-cn/gen.php b/app/i18n/zh-cn/gen.php
index 3ee88b4c7..05c807989 100644
--- a/app/i18n/zh-cn/gen.php
+++ b/app/i18n/zh-cn/gen.php
@@ -185,6 +185,7 @@ return array(
'share' => array(
'Known' => '基于 Known 的站点',
'blogotext' => 'Blogotext',
+ 'clipboard' => 'Clipboard', // TODO - Translation
'diaspora' => 'Diaspora*',
'email' => '邮箱',
'facebook' => '脸书',
diff --git a/app/shares.php b/app/shares.php
index daca836bf..472934008 100644
--- a/app/shares.php
+++ b/app/shares.php
@@ -140,4 +140,10 @@ return array(
'form' => 'advanced',
'method' => 'GET',
),
+ 'clipboard' => array(
+ 'url' => '~LINK~',
+ 'transform' => array(),
+ 'form' => 'simple',
+ 'method' => 'GET',
+ ),
);
diff --git a/app/views/helpers/index/normal/entry_bottom.phtml b/app/views/helpers/index/normal/entry_bottom.phtml
index 88fa578de..bf1dc7b3d 100644
--- a/app/views/helpers/index/normal/entry_bottom.phtml
+++ b/app/views/helpers/index/normal/entry_bottom.phtml
@@ -93,7 +93,7 @@
$share->update($share_options);
?><li class="item share">
<?php if ('GET' === $share->method()) {?>
- <a target="_blank" rel="noreferrer" href="<?= $share->url() ?>"><?= $share->name() ?></a>
+ <a target="_blank" rel="noreferrer" href="<?= $share->url() ?>" data-type="<?= $share->type() ?>"><?= $share->name() ?></a>
<?php } else {?>
<a href="POST"><?= $share->name() ?></a>
<form method="POST" action="<?= $share->url() ?>" disabled="disabled">
diff --git a/cli/i18n/ignore/en-us.php b/cli/i18n/ignore/en-us.php
index 518ca705b..fa3f11590 100644
--- a/cli/i18n/ignore/en-us.php
+++ b/cli/i18n/ignore/en-us.php
@@ -538,6 +538,7 @@ return array(
'gen.period.years',
'gen.share.Known',
'gen.share.blogotext',
+ 'gen.share.clipboard',
'gen.share.diaspora',
'gen.share.email',
'gen.share.facebook',
diff --git a/cli/i18n/ignore/fr.php b/cli/i18n/ignore/fr.php
index 8b0857bb0..09fbd5456 100644
--- a/cli/i18n/ignore/fr.php
+++ b/cli/i18n/ignore/fr.php
@@ -50,6 +50,7 @@ return array(
'gen.share.linkedin',
'gen.share.mastodon',
'gen.share.movim',
+ 'gen.share.pocket',
'gen.share.shaarli',
'gen.share.twitter',
'gen.share.wallabag',
diff --git a/p/scripts/main.js b/p/scripts/main.js
index 1a3b02c2a..f8d20a622 100644
--- a/p/scripts/main.js
+++ b/p/scripts/main.js
@@ -946,7 +946,7 @@ function init_stream(stream) {
return true;
}
- el = ev.target.closest('.item.share > a[href="#"]');
+ el = ev.target.closest('.item.share > a[data-type="print"]');
if (el) { //Print
const tmp_window = window.open();
for (var i = 0; i < document.styleSheets.length; i++) {
@@ -960,6 +960,12 @@ function init_stream(stream) {
return false;
}
+ el = ev.target.closest('.item.share > a[data-type="clipboard"]');
+ if (el && navigator.clipboard) { //Clipboard
+ navigator.clipboard.writeText(el.href);
+ return false;
+ }
+
el = ev.target.closest('.item.share > a[href="POST"]');
if (el) { //Share by POST
const f = el.parentElement.querySelector('form');