diff options
| author | 2021-01-03 12:20:15 -0500 | |
|---|---|---|
| committer | 2021-01-03 18:20:15 +0100 | |
| commit | 46c8f6e77b74c97993414af1c3a3a8a047414baf (patch) | |
| tree | eb1327838aee14be4b0ecae8be2670d69ee4f2e1 | |
| parent | 0567e3894745f541cef2acd7a85486c0f2e40656 (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.php | 1 | ||||
| -rw-r--r-- | app/i18n/de/gen.php | 1 | ||||
| -rw-r--r-- | app/i18n/en-us/gen.php | 1 | ||||
| -rw-r--r-- | app/i18n/en/gen.php | 1 | ||||
| -rwxr-xr-x | app/i18n/es/gen.php | 1 | ||||
| -rw-r--r-- | app/i18n/fr/gen.php | 3 | ||||
| -rw-r--r-- | app/i18n/he/gen.php | 1 | ||||
| -rw-r--r-- | app/i18n/it/gen.php | 1 | ||||
| -rw-r--r-- | app/i18n/kr/gen.php | 1 | ||||
| -rw-r--r-- | app/i18n/nl/gen.php | 1 | ||||
| -rw-r--r-- | app/i18n/oc/gen.php | 1 | ||||
| -rw-r--r-- | app/i18n/pl/gen.php | 1 | ||||
| -rw-r--r-- | app/i18n/pt-br/gen.php | 1 | ||||
| -rw-r--r-- | app/i18n/ru/gen.php | 1 | ||||
| -rw-r--r-- | app/i18n/sk/gen.php | 1 | ||||
| -rw-r--r-- | app/i18n/tr/gen.php | 1 | ||||
| -rw-r--r-- | app/i18n/zh-cn/gen.php | 1 | ||||
| -rw-r--r-- | app/shares.php | 6 | ||||
| -rw-r--r-- | app/views/helpers/index/normal/entry_bottom.phtml | 2 | ||||
| -rw-r--r-- | cli/i18n/ignore/en-us.php | 1 | ||||
| -rw-r--r-- | cli/i18n/ignore/fr.php | 1 | ||||
| -rw-r--r-- | p/scripts/main.js | 8 |
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'); |
