From 9d4736a3e95332198896f97ecc8a83abb0cbe85b Mon Sep 17 00:00:00 2001 From: ArthurHoaro Date: Sat, 16 Dec 2017 12:36:59 +0100 Subject: Add a filter to only display public links When the key filter is clicked once, it only displays private link. When it is clicked on again, it becomes red and only public links are displayed. Another click and all links are displayed. The current visibility status is shown in the search banner Fixes #1030 --- application/PageBuilder.php | 24 ++++++++++- application/Updater.php | 12 ++++++ inc/languages/fr/LC_MESSAGES/shaarli.po | 73 +++++++++++++++++---------------- index.php | 23 ++++++----- tpl/default/css/shaarli.css | 5 +++ tpl/default/linklist.paging.html | 4 +- tpl/vintage/linklist.paging.html | 8 ++-- 7 files changed, 96 insertions(+), 53 deletions(-) diff --git a/application/PageBuilder.php b/application/PageBuilder.php index 468f144b..0902d00d 100644 --- a/application/PageBuilder.php +++ b/application/PageBuilder.php @@ -83,7 +83,9 @@ class PageBuilder ApplicationUtils::getVersionHash(SHAARLI_VERSION, $this->conf->get('credentials.salt')) ); $this->tpl->assign('scripturl', index_url($_SERVER)); - $this->tpl->assign('privateonly', !empty($_SESSION['privateonly'])); // Show only private links? + $visibility = ! empty($_SESSION['visibility']) ? $_SESSION['visibility'] : ''; + $this->tpl->assign('visibility', $visibility); + $this->tpl->assign('nextVisibility', $this->getNextVisibility($visibility)); $this->tpl->assign('untaggedonly', !empty($_SESSION['untaggedonly'])); $this->tpl->assign('pagetitle', $this->conf->get('general.title', 'Shaarli')); if ($this->conf->exists('general.header_link')) { @@ -170,4 +172,24 @@ class PageBuilder $this->tpl->assign('error_message', $message); $this->renderPage('404'); } + + /** + * Return the next visibility option: + * private -> public -> all + * + * @param string $current visibility value + * + * @return string next visibility value + */ + protected function getNextVisibility($current) + { + switch ($current) { + case 'private': + return 'public'; + case 'public': + return ''; + default: + return 'private'; + } + } } diff --git a/application/Updater.php b/application/Updater.php index 8d2bd577..f07e7697 100644 --- a/application/Updater.php +++ b/application/Updater.php @@ -445,6 +445,18 @@ class Updater $this->linkDB->save($this->conf->get('resource.page_cache')); return true; } + + /** + * Change privateonly session key to visibility. + */ + public function updateMethodVisibilitySession() + { + if (isset($_SESSION['privateonly'])) { + unset($_SESSION['privateonly']); + $_SESSION['visibility'] = 'private'; + } + return true; + } } /** diff --git a/inc/languages/fr/LC_MESSAGES/shaarli.po b/inc/languages/fr/LC_MESSAGES/shaarli.po index 323c6111..b62ff6ed 100644 --- a/inc/languages/fr/LC_MESSAGES/shaarli.po +++ b/inc/languages/fr/LC_MESSAGES/shaarli.po @@ -1,15 +1,15 @@ msgid "" msgstr "" "Project-Id-Version: Shaarli\n" -"POT-Creation-Date: 2017-11-11 10:59+0100\n" -"PO-Revision-Date: 2017-11-11 11:00+0100\n" +"POT-Creation-Date: 2017-12-16 14:27+0100\n" +"PO-Revision-Date: 2017-12-16 14:27+0100\n" "Last-Translator: \n" "Language-Team: Shaarli\n" "Language: fr_FR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.0.4\n" +"X-Generator: Poedit 2.0.5\n" "X-Poedit-Basepath: ../../../..\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Poedit-SourceCharset: UTF-8\n" @@ -161,11 +161,11 @@ msgstr "" "a été importé avec succès en %d secondes : %d liens importés, %d liens " "écrasés, %d liens ignorés." -#: application/PageBuilder.php:167 +#: application/PageBuilder.php:169 msgid "The page you are trying to reach does not exist or has been deleted." msgstr "La page que vous essayez de consulter n'existe pas ou a été supprimée." -#: application/PageBuilder.php:169 +#: application/PageBuilder.php:171 msgid "404 Not Found" msgstr "404 Introuvable" @@ -178,17 +178,17 @@ msgstr "Les fichiers de l'extension \"%s\" sont introuvables." msgid "Couldn't retrieve Updater class methods." msgstr "Impossible de récupérer les méthodes de la classe Updater." -#: application/Updater.php:493 +#: application/Updater.php:506 msgid "An error occurred while running the update " msgstr "Une erreur s'est produite lors de l'exécution de la mise à jour " -#: application/Updater.php:533 +#: application/Updater.php:546 msgid "Updates file path is not set, can't write updates." msgstr "" "Le chemin vers le fichier de mise à jour n'est pas défini, impossible " "d'écrire les mises à jour." -#: application/Updater.php:538 +#: application/Updater.php:551 msgid "Unable to write updates in " msgstr "Impossible d'écrire les mises à jour dans " @@ -265,46 +265,46 @@ msgstr "NON. Vous êtes banni pour le moment. Revenez plus tard." msgid "Wrong login/password." msgstr "Nom d'utilisateur ou mot de passe incorrects." -#: index.php:1092 +#: index.php:1093 msgid "You are not supposed to change a password on an Open Shaarli." msgstr "" "Vous n'êtes pas censé modifier le mot de passe d'un Shaarli en mode ouvert." -#: index.php:1097 index.php:1138 index.php:1214 index.php:1244 index.php:1344 +#: index.php:1098 index.php:1139 index.php:1215 index.php:1245 index.php:1345 msgid "Wrong token." msgstr "Jeton invalide." -#: index.php:1102 +#: index.php:1103 msgid "The old password is not correct." msgstr "L'ancien mot de passe est incorrect." -#: index.php:1122 +#: index.php:1123 msgid "Your password has been changed" msgstr "Votre mot de passe a été modifié" -#: index.php:1175 +#: index.php:1176 msgid "Configuration was saved." msgstr "La configuration a été sauvegardé." -#: index.php:1226 +#: index.php:1227 #, php-format msgid "The tag was removed from %d link." msgid_plural "The tag was removed from %d links." msgstr[0] "Le tag a été supprimé de %d lien." msgstr[1] "Le tag a été supprimé de %d liens." -#: index.php:1227 +#: index.php:1228 #, php-format msgid "The tag was renamed in %d link." msgid_plural "The tag was renamed in %d links." msgstr[0] "Le tag a été renommé dans %d lien." msgstr[1] "Le tag a été renommé dans %d liens." -#: index.php:1443 +#: index.php:1444 msgid "Note: " msgstr "Note : " -#: index.php:1552 +#: index.php:1553 #, php-format msgid "" "The file you are trying to upload is probably bigger than what this " @@ -314,7 +314,7 @@ msgstr "" "le serveur web peut accepter (%s). Merci de l'envoyer en parties plus " "légères." -#: index.php:1972 +#: index.php:1973 #, php-format msgid "" "
Sessions do not seem to work correctly on your server.
Make sure the " @@ -333,7 +333,7 @@ msgstr "" "cookies. Nous vous recommandons d'accéder à votre serveur depuis son adresse " "IP ou un Fully Qualified Domain Name.
" -#: index.php:1982 +#: index.php:1983 msgid "Click to try again." msgstr "Cliquer ici pour réessayer." @@ -870,10 +870,10 @@ msgstr "Recherche texte" #: tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:38 #: tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:124 #: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:124 -#: tmp/tag.cloud.b91ef64efc3688266305ea9b42e5017e.rtpl.php:33 -#: tmp/tag.cloud.b91ef64efc3688266305ea9b42e5017e.rtpl.php:61 -#: tmp/tag.list.b91ef64efc3688266305ea9b42e5017e.rtpl.php:33 -#: tmp/tag.list.b91ef64efc3688266305ea9b42e5017e.rtpl.php:71 +#: tmp/tag.cloud.b91ef64efc3688266305ea9b42e5017e.rtpl.php:36 +#: tmp/tag.cloud.b91ef64efc3688266305ea9b42e5017e.rtpl.php:64 +#: tmp/tag.list.b91ef64efc3688266305ea9b42e5017e.rtpl.php:36 +#: tmp/tag.list.b91ef64efc3688266305ea9b42e5017e.rtpl.php:74 msgid "Filter by tag" msgstr "Filtrer par tag" @@ -933,25 +933,25 @@ msgstr "Filtres" #: tmp/linklist.paging.b91ef64efc3688266305ea9b42e5017e.rtpl.php:12 #: tmp/linklist.paging.cedf684561d925457130839629000a81.rtpl.php:12 -msgid "Filter private links" -msgstr "Filtrer par liens privés" +msgid "Filter links by visibility" +msgstr "Filtrer les liens par visibilité" -#: tmp/linklist.paging.b91ef64efc3688266305ea9b42e5017e.rtpl.php:18 -#: tmp/linklist.paging.cedf684561d925457130839629000a81.rtpl.php:18 +#: tmp/linklist.paging.b91ef64efc3688266305ea9b42e5017e.rtpl.php:17 +#: tmp/linklist.paging.cedf684561d925457130839629000a81.rtpl.php:17 msgid "Filter untagged links" msgstr "Filtrer par liens privés" -#: tmp/linklist.paging.b91ef64efc3688266305ea9b42e5017e.rtpl.php:22 -#: tmp/linklist.paging.b91ef64efc3688266305ea9b42e5017e.rtpl.php:74 -#: tmp/linklist.paging.cedf684561d925457130839629000a81.rtpl.php:22 -#: tmp/linklist.paging.cedf684561d925457130839629000a81.rtpl.php:74 +#: tmp/linklist.paging.b91ef64efc3688266305ea9b42e5017e.rtpl.php:21 +#: tmp/linklist.paging.b91ef64efc3688266305ea9b42e5017e.rtpl.php:73 +#: tmp/linklist.paging.cedf684561d925457130839629000a81.rtpl.php:21 +#: tmp/linklist.paging.cedf684561d925457130839629000a81.rtpl.php:73 #: tmp/page.footer.b91ef64efc3688266305ea9b42e5017e.rtpl.php:43 #: tmp/page.footer.cedf684561d925457130839629000a81.rtpl.php:43 msgid "Fold all" msgstr "Replier tout" -#: tmp/linklist.paging.b91ef64efc3688266305ea9b42e5017e.rtpl.php:67 -#: tmp/linklist.paging.cedf684561d925457130839629000a81.rtpl.php:67 +#: tmp/linklist.paging.b91ef64efc3688266305ea9b42e5017e.rtpl.php:66 +#: tmp/linklist.paging.cedf684561d925457130839629000a81.rtpl.php:66 msgid "Links per page" msgstr "Liens par page" @@ -1127,8 +1127,8 @@ msgstr "Aucun paramètre disponible." msgid "tags" msgstr "tags" -#: tmp/tag.cloud.b91ef64efc3688266305ea9b42e5017e.rtpl.php:23 -#: tmp/tag.list.b91ef64efc3688266305ea9b42e5017e.rtpl.php:23 +#: tmp/tag.cloud.b91ef64efc3688266305ea9b42e5017e.rtpl.php:24 +#: tmp/tag.list.b91ef64efc3688266305ea9b42e5017e.rtpl.php:24 msgid "List all links with those tags" msgstr "Lister tous les liens avec ces tags" @@ -1284,6 +1284,9 @@ msgstr "" "Glisser ce lien dans votre barre de favoris ou cliquer droit dessus et « " "Ajouter aux favoris »" +#~ msgid "Filter private links" +#~ msgstr "Filtrer par liens privés" + #~ msgid "Redirector" #~ msgstr "Redirecteur" diff --git a/index.php b/index.php index 9d5f25ea..60ac24ac 100644 --- a/index.php +++ b/index.php @@ -282,7 +282,7 @@ function logout() { unset($_SESSION['uid']); unset($_SESSION['ip']); unset($_SESSION['username']); - unset($_SESSION['privateonly']); + unset($_SESSION['visibility']); unset($_SESSION['untaggedonly']); } setcookie('shaarli_staySignedIn', FALSE, 0, WEB_PATH); @@ -800,7 +800,7 @@ function renderPage($conf, $pluginManager, $LINKSDB, $history, $sessionManager) // -------- Tag cloud if ($targetPage == Router::$PAGE_TAGCLOUD) { - $visibility = ! empty($_SESSION['privateonly']) ? 'private' : 'all'; + $visibility = ! empty($_SESSION['visibility']) ? $_SESSION['visibility'] : ''; $filteringTags = isset($_GET['searchtags']) ? explode(' ', $_GET['searchtags']) : []; $tags = $LINKSDB->linksCountPerTag($filteringTags, $visibility); @@ -845,7 +845,7 @@ function renderPage($conf, $pluginManager, $LINKSDB, $history, $sessionManager) // -------- Tag list if ($targetPage == Router::$PAGE_TAGLIST) { - $visibility = ! empty($_SESSION['privateonly']) ? 'private' : 'all'; + $visibility = ! empty($_SESSION['visibility']) ? $_SESSION['visibility'] : ''; $filteringTags = isset($_GET['searchtags']) ? explode(' ', $_GET['searchtags']) : []; $tags = $LINKSDB->linksCountPerTag($filteringTags, $visibility); foreach ($filteringTags as $tag) { @@ -1011,15 +1011,16 @@ function renderPage($conf, $pluginManager, $LINKSDB, $history, $sessionManager) } // -------- User wants to see only private links (toggle) - if (isset($_GET['privateonly'])) { - if (empty($_SESSION['privateonly'])) { - $_SESSION['privateonly'] = 1; // See only private links - } else { - unset($_SESSION['privateonly']); // See all links + if (isset($_GET['visibility'])) { + unset($_SESSION['visibility']); + if ($_GET['visibility'] === 'private') { + $_SESSION['visibility'] = 'private'; // See only private links + } else if ($_GET['visibility'] === 'public') { + $_SESSION['visibility'] = 'public'; // See only public links } if (! empty($_SERVER['HTTP_REFERER'])) { - $location = generateLocation($_SERVER['HTTP_REFERER'], $_SERVER['HTTP_HOST'], array('privateonly')); + $location = generateLocation($_SERVER['HTTP_REFERER'], $_SERVER['HTTP_HOST'], array('visibility')); } else { $location = '?'; } @@ -1667,7 +1668,7 @@ function buildLinkList($PAGE,$LINKSDB, $conf, $pluginManager) } } else { // Filter links according search parameters. - $visibility = ! empty($_SESSION['privateonly']) ? 'private' : 'all'; + $visibility = ! empty($_SESSION['visibility']) ? $_SESSION['visibility'] : ''; $request = [ 'searchtags' => $searchtags, 'searchterm' => $searchterm, @@ -1743,7 +1744,7 @@ function buildLinkList($PAGE,$LINKSDB, $conf, $pluginManager) 'result_count' => count($linksToDisplay), 'search_term' => $searchterm, 'search_tags' => $searchtags, - 'visibility' => ! empty($_SESSION['privateonly']) ? 'private' : '', + 'visibility' => ! empty($_SESSION['visibility']) ? $_SESSION['visibility'] : '', 'redirector' => $conf->get('redirector.url'), // Optional redirector URL. 'links' => $linkDisp, ); diff --git a/tpl/default/css/shaarli.css b/tpl/default/css/shaarli.css index 14439402..1e07a88e 100644 --- a/tpl/default/css/shaarli.css +++ b/tpl/default/css/shaarli.css @@ -453,6 +453,11 @@ body, .pure-g [class*="pure-u"] { background: #1b926c; } +.linklist-filters .filter-block { + color: #f5f5f5; + background: #ac2925; +} + .linklist-pages { margin: 5px 0; color: #252525; diff --git a/tpl/default/linklist.paging.html b/tpl/default/linklist.paging.html index 347b3d13..e1726f87 100644 --- a/tpl/default/linklist.paging.html +++ b/tpl/default/linklist.paging.html @@ -6,8 +6,8 @@ {'Filters'|t} {if="isLoggedIn()"} - {/if} {if="isLoggedIn()"} \ No newline at end of file -- cgit v1.2.3 From 9fb22af6b3b5d7dfd9ef3999c21df4d21be8504b Mon Sep 17 00:00:00 2001 From: VirtualTam Date: Tue, 3 Apr 2018 23:33:20 +0200 Subject: Update EditorConfig for frontend resources Signed-off-by: VirtualTam --- .editorconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.editorconfig b/.editorconfig index ae2dd4cc..8783e4cb 100644 --- a/.editorconfig +++ b/.editorconfig @@ -10,7 +10,7 @@ trim_trailing_whitespace = true indent_style = space indent_size = 4 -[*.{htaccess,html,xml,js}] +[*.{htaccess,html,js,json,xml}] indent_size = 2 [*.php] -- cgit v1.2.3 From e42031e037037cf2610ae05f9eabdb49abf167c8 Mon Sep 17 00:00:00 2001 From: VirtualTam Date: Tue, 3 Apr 2018 23:36:15 +0200 Subject: Update NPM frontend metadata Signed-off-by: VirtualTam --- package.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/package.json b/package.json index 4320eb88..4e5775c4 100644 --- a/package.json +++ b/package.json @@ -1,4 +1,8 @@ { + "name": "shaarli", + "description": "Shaarli frontend", + "author": "The Shaarli Community", + "license": "Zlib", "dependencies": { "awesomplete": "^1.1.2", "blazy": "^1.8.2", -- cgit v1.2.3 From 7cf23badeb16b8e5081bef137e6c4da0ed54f0d0 Mon Sep 17 00:00:00 2001 From: VirtualTam Date: Wed, 4 Apr 2018 23:39:15 +0200 Subject: Update COPYING Relates to https://github.com/shaarli/Shaarli/pull/1072 Changed: - update paths to resource files (assets, images) Removed: - references to resources now resolved through NPM - licenses corresponding to the aforementioned resources Signed-off-by: VirtualTam --- COPYING | 38 ++++++++++++++++++++------------------ package.json | 2 +- 2 files changed, 21 insertions(+), 19 deletions(-) diff --git a/COPYING b/COPYING index 05202152..af139752 100644 --- a/COPYING +++ b/COPYING @@ -1,55 +1,57 @@ Files: * License: zlib/libpng Copyright: (c) 2011-2015 Sébastien SAUVAGE - (c) 2011-2017 The Shaarli Community, see AUTHORS + (c) 2011-2018 The Shaarli Community, see AUTHORS -Files: inc/reset.css +Files: assets/vintage/css/reset.css License: BSD (http://opensource.org/licenses/BSD-3-Clause) Copyright: (c) 2010, Yahoo! Inc. -Files: images/calendar.png, images/edit_icon.png, images/feed-icon-14x14.png, images/private.png, images/private_16x16.png, images/private_16x16_active.png, images/tag_blue.png +Files: assets/vintage/img/calendar.png + assets/vintage/img/edit_icon.png + assets/vintage/img/feed-icon-14x14.png + assets/vintage/img/private.png + assets/vintage/img/private_16x16.png + assets/vintage/img/private_16x16_active.png + assets/vintage/img/tag_blue.png License: CC-BY (http://creativecommons.org/licenses/by/3.0/) Copyright: (c) 2014 Yusuke Kamiyamane Source: http://p.yusukekamiyamane.com/ -Files: images/delete_icon.png +Files: assets/vintage/img/delete_icon.png License: CC-BY (http://creativecommons.org/licenses/by/3.0/) Copyright: (c) 2014 Designmodo Source: http://designmodo.com/linecons-free/ -Files: images/floral_left.png, images/floral_right.png, images/squiggle.png, images/squiggle_closing.png +Files: assets/vintage/img/floral_left.png + assets/vintage/img/floral_right.png + assets/vintage/img/squiggle.png + assets/vintage/img/squiggle_closing.png Licence: Public Domain Source: https://openclipart.org/people/j4p4n/j4p4n_ornimental_bookend_-_left.svg -Files: images/Paper_texture_v5_by_bashcorpo_w1000.jpg +Files: assets/vintage/img/Paper_texture_v5_by_bashcorpo_w1000.jpg Licence: Public Domain Source: http://bashcorpo.deviantart.com/art/Grungy-paper-texture-v-5-22966998 -Files: images/logo.png +Files: assets/vintage/img/logo.png + assets/vintage/img/logo.png License: zlib/libpng Copyright: (c) 2011-2014 idleman idleman@idleman.fr -Files: inc/blazy*.js +Files: assets/default/img/sad_star.png License: MIT License (http://opensource.org/licenses/MIT) -Copyright: (C) Bjoern Klinggaard - @bklinggaard - http://dinbror.dk/blazy +Copyright: (C) 2015 kalvn - https://github.com/kalvn/Shaarli-Material Files: inc/rain.tpl.class.php +License: LGPL-3+ (https://www.gnu.org/licenses/lgpl-3.0.txt) Copyright: 2011-2012, Federico Ulfo 2011-2012, The Rain Team -License: LGPL-3+ (https://www.gnu.org/licenses/lgpl-3.0.txt) - -Files: inc/awesomplete* -License: MIT License (http://opensource.org/licenses/MIT) -Copyright: (C) 2015 Lea Verou - https://github.com/LeaVerou/awesomplete Files: plugins/wallabag/wallabag.png License: MIT License (http://opensource.org/licenses/MIT) Copyright: (C) 2015 Nicolas Lœuillet - https://github.com/wallabag/wallabag -Files: tpl/default/sad_star.png -License: MIT License (http://opensource.org/licenses/MIT) -Copyright: (C) 2015 kalvn - https://github.com/kalvn/Shaarli-Material - ---------------------------------------------------- ZLIB/LIBPNG LICENSE diff --git a/package.json b/package.json index 4e5775c4..ba997c9a 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "shaarli", "description": "Shaarli frontend", "author": "The Shaarli Community", - "license": "Zlib", + "license": "SEE LICENSE IN COPYING", "dependencies": { "awesomplete": "^1.1.2", "blazy": "^1.8.2", -- cgit v1.2.3 From d66b5acb24af1049fb471bad0911939de97b91c5 Mon Sep 17 00:00:00 2001 From: VirtualTam Date: Thu, 5 Apr 2018 20:54:23 +0200 Subject: Update documentation and Doxygen icon location Signed-off-by: VirtualTam --- Doxyfile | 2 +- doc/md/Bookmarklet.md | 4 ++-- doc/md/images/edit_icon.png | Bin 0 -> 1548 bytes doc/md/images/logo.png | Bin 0 -> 5456 bytes images/edit_icon.png | Bin 1548 -> 0 bytes images/logo.png | Bin 5456 -> 0 bytes 6 files changed, 3 insertions(+), 3 deletions(-) create mode 100644 doc/md/images/edit_icon.png create mode 100644 doc/md/images/logo.png delete mode 100644 images/edit_icon.png delete mode 100644 images/logo.png diff --git a/Doxyfile b/Doxyfile index 30f95564..a7f6e04f 100644 --- a/Doxyfile +++ b/Doxyfile @@ -51,7 +51,7 @@ PROJECT_BRIEF = "The personal, minimalist, super-fast, no-database deli # pixels and the maximum width should not exceed 200 pixels. Doxygen will copy # the logo to the output directory. -PROJECT_LOGO = images/logo.png +PROJECT_LOGO = doc/md/images/logo.png # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path # into which the generated documentation will be written. If a relative path is diff --git a/doc/md/Bookmarklet.md b/doc/md/Bookmarklet.md index c899e3cf..6c7f1c6a 100644 --- a/doc/md/Bookmarklet.md +++ b/doc/md/Bookmarklet.md @@ -13,8 +13,8 @@ _This bookmarklet button is compatible with Firefox, Opera, Chrome and Safari. U - When you are visiting a webpage you would like to share with Shaarli, click the _bookmarklet_ you just added. - A window opens. - You can freely edit title, description, tags... to find it later using the text search or tag filtering. - - You will be able to edit this link later using the ![](https://raw.githubusercontent.com/shaarli/Shaarli/master/images/edit_icon.png) edit button. - - You can also check the “Private” box so that the link is saved but only visible to you. + - You will be able to edit this link later using the ![](images/edit_icon.png) edit button. + - You can also check the “Private” box so that the link is saved but only visible to you. - Click `Save`.**Voilà! Your link is now shared.** ## Troubleshooting: The bookmarklet doesn't work with a few websites (e.g. Github.com) diff --git a/doc/md/images/edit_icon.png b/doc/md/images/edit_icon.png new file mode 100644 index 00000000..16c440c8 Binary files /dev/null and b/doc/md/images/edit_icon.png differ diff --git a/doc/md/images/logo.png b/doc/md/images/logo.png new file mode 100644 index 00000000..f8b0c94f Binary files /dev/null and b/doc/md/images/logo.png differ diff --git a/images/edit_icon.png b/images/edit_icon.png deleted file mode 100644 index 16c440c8..00000000 Binary files a/images/edit_icon.png and /dev/null differ diff --git a/images/logo.png b/images/logo.png deleted file mode 100644 index f8b0c94f..00000000 Binary files a/images/logo.png and /dev/null differ -- cgit v1.2.3 From aec5a76b67a671f10db2bb3e81fa61ce16f72dd3 Mon Sep 17 00:00:00 2001 From: VirtualTam Date: Thu, 5 Apr 2018 20:54:55 +0200 Subject: Cleanup unused asset resources Signed-off-by: VirtualTam --- images/delete_icon.png | Bin 302 -> 0 bytes images/favicon.ico | Bin 76949 -> 0 bytes images/feed-icon-14x14.png | Bin 658 -> 0 bytes images/private_16x16.png | Bin 679 -> 0 bytes images/private_16x16_active.png | Bin 648 -> 0 bytes 5 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 images/delete_icon.png delete mode 100644 images/favicon.ico delete mode 100644 images/feed-icon-14x14.png delete mode 100644 images/private_16x16.png delete mode 100644 images/private_16x16_active.png diff --git a/images/delete_icon.png b/images/delete_icon.png deleted file mode 100644 index 810b94d8..00000000 Binary files a/images/delete_icon.png and /dev/null differ diff --git a/images/favicon.ico b/images/favicon.ico deleted file mode 100644 index c8b043b4..00000000 Binary files a/images/favicon.ico and /dev/null differ diff --git a/images/feed-icon-14x14.png b/images/feed-icon-14x14.png deleted file mode 100644 index 10161702..00000000 Binary files a/images/feed-icon-14x14.png and /dev/null differ diff --git a/images/private_16x16.png b/images/private_16x16.png deleted file mode 100644 index 8bb34d7d..00000000 Binary files a/images/private_16x16.png and /dev/null differ diff --git a/images/private_16x16_active.png b/images/private_16x16_active.png deleted file mode 100644 index af990d2c..00000000 Binary files a/images/private_16x16_active.png and /dev/null differ -- cgit v1.2.3 From d811e4fda609fc250da174444f706e76d5721153 Mon Sep 17 00:00:00 2001 From: Mark Schmitz Date: Fri, 13 Apr 2018 13:21:58 +0100 Subject: load user css at last, after plugin css to enable changing plugin styles --- tpl/default/includes.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tpl/default/includes.html b/tpl/default/includes.html index 2c56d3c9..34e0ff01 100644 --- a/tpl/default/includes.html +++ b/tpl/default/includes.html @@ -7,10 +7,10 @@ -{if="is_file('data/user.css')"} - -{/if} {loop="$plugins_includes.css_files"} {/loop} +{if="is_file('data/user.css')"} + +{/if} -- cgit v1.2.3 From 66d37a4fb49cc25142c768ed63351ea0f8881183 Mon Sep 17 00:00:00 2001 From: Mark Schmitz Date: Fri, 13 Apr 2018 14:06:27 +0100 Subject: add loading user css at last to vintage tpl --- tpl/vintage/includes.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tpl/vintage/includes.html b/tpl/vintage/includes.html index 4ddfc840..410b466b 100644 --- a/tpl/vintage/includes.html +++ b/tpl/vintage/includes.html @@ -7,8 +7,8 @@ -{if="is_file('data/user.css')"}{/if} {loop="$plugins_includes.css_files"} {/loop} +{if="is_file('data/user.css')"}{/if} -- cgit v1.2.3 From 80786e150d03409435bcd63601c4d95e27cac225 Mon Sep 17 00:00:00 2001 From: nodiscc Date: Wed, 7 Feb 2018 20:10:05 +0100 Subject: doc: merge all sharing methods under a single "Sharing content" page * formatting, wording, reordering, general improvements * move blog/pastebin/notepad item from index.md to this page * add TODOs * add the new page to mkdocs TOC Part of https://github.com/shaarli/Shaarli/issues/598 --- doc/md/Bookmarklet.md | 29 ---------------- doc/md/Firefox-share.md | 20 ----------- doc/md/Sharing-content.md | 88 +++++++++++++++++++++++++++++++++++++++++++++++ doc/md/index.md | 7 ---- mkdocs.yml | 3 +- 5 files changed, 89 insertions(+), 58 deletions(-) delete mode 100644 doc/md/Bookmarklet.md delete mode 100644 doc/md/Firefox-share.md create mode 100644 doc/md/Sharing-content.md diff --git a/doc/md/Bookmarklet.md b/doc/md/Bookmarklet.md deleted file mode 100644 index 6c7f1c6a..00000000 --- a/doc/md/Bookmarklet.md +++ /dev/null @@ -1,29 +0,0 @@ -## Add the sharing button (_bookmarklet_) to your browser - -- Open your Shaarli and `Login` -- Click the `Tools` button in the top bar -- Drag the **`✚Shaare link` button**, and drop it to your browser's bookmarks bar. - -_This bookmarklet button is compatible with Firefox, Opera, Chrome and Safari. Under Opera, you can't drag'n drop the button: You have to right-click on it and add a bookmark to your personal toolbar._ - -![](images/bookmarklet.png) - -## Share links using the _bookmarklet_ - -- When you are visiting a webpage you would like to share with Shaarli, click the _bookmarklet_ you just added. -- A window opens. - - You can freely edit title, description, tags... to find it later using the text search or tag filtering. - - You will be able to edit this link later using the ![](images/edit_icon.png) edit button. - - You can also check the “Private” box so that the link is saved but only visible to you. -- Click `Save`.**Voilà! Your link is now shared.** - -## Troubleshooting: The bookmarklet doesn't work with a few websites (e.g. Github.com) - -Websites which enforce Content Security Policy (CSP), such as github.com, disallow usage of bookmarklets. Unfortunatly, there is nothing Shaarli can do about it. - -See [#196](https://github.com/shaarli/Shaarli/issues/196). - -There is an open bug for both Firefox and Chromium: - -- https://bugzilla.mozilla.org/show_bug.cgi?id=866522 -- https://code.google.com/p/chromium/issues/detail?id=233903 diff --git a/doc/md/Firefox-share.md b/doc/md/Firefox-share.md deleted file mode 100644 index 9a46b185..00000000 --- a/doc/md/Firefox-share.md +++ /dev/null @@ -1,20 +0,0 @@ -| Note | Firefox Share is no longer available for Firefox 57 and later versions. | -|---------|---------| - -### Add Shaarli as a sharing service to Firefox - -- Open your Shaarli and `Login` -- Click the `Tools` button in the top bar -- Click the `✚Add to Firefox social` button and accept the activation. - - -### Sharing links using Firefox share - -- Add the sharing service as described above -- When you are visiting a webpage you would like to share with Shaarli, - click the Firefox _Share_ button [images/firefoxshare.png](images/firefoxshare.png) -- You can edit your link before and after saving, just like the bookmarklet above. - -_Your Shaarli instance must be hosted on an HTTPS (SSL/TLS secure connection) -enabled server for Firefox Share to work. Firefox Share will not work over -plain HTTP connections._ diff --git a/doc/md/Sharing-content.md b/doc/md/Sharing-content.md new file mode 100644 index 00000000..8d8c15a9 --- /dev/null +++ b/doc/md/Sharing-content.md @@ -0,0 +1,88 @@ +Content posted to Shaarli is separated in items called _Shaares_. For each Shaare, +you can customize the following aspects: + + * URL to link to + * Title + * Free-text description + * Tags + * Public/private status + +-------------------------------------------------------------------------------- + +## Adding new Shaares + +While logged in to your Shaarli, you can add new Shaares in several ways: + + * [+Shaare button] + * [Bookmarklet] + * [Firefox Share](#firefox-share) + * Third-party [apps and browser addons](Community-\&-Related-software.md#mobile-apps) + + +### +Shaare button + + * While logged in to your Shaarli, click the **`+Shaare`** button located in the toolbar. + * Enter the URL of a link you want to share. + * Click `Add link` + * The `New Shaare` dialog appears, allowing you to fill in the details of your Shaare. + * The Description, Title, and Tags will help you find your Shaare later using tags or full-text search. + * You can also check the “Private” box so that the link is saved but only visible to you (the logged-in user). + * Click `Save`. + + + +### Bookmarklet + +The _Bookmarklet_ \[[1](https://en.wikipedia.org/wiki/Bookmarklet)\] is a special +browser bookmark you can use to add new content to your Shaarli. This bookmarklet is +compatible with Firefox, Opera, Chrome and Safari. To set it up: + + * Access the `Tools` page from the button in the toolbar. + * Drag the **`✚Shaare link` button** to your browser's bookmarks bar. + +Once this is done, you can shaare any URL you are visiting simply by clicking the +bookmarklet in your browser! The same `New Shaare` dialog as above is displayed. + +| Note | Websites which enforce Content Security Policy (CSP), such as github.com, disallow usage of bookmarklets. Unfortunately, there is nothing Shaarli can do about it. \[[1](https://github.com/shaarli/Shaarli/issues/196)]\ \[[2](https://bugzilla.mozilla.org/show_bug.cgi?id=866522)]\ \[[3](https://code.google.com/p/chromium/issues/detail?id=233903)]\ | +|---------|---------| + +| Note | Under Opera, you can't drag'n drop the button: You have to right-click on it and add a bookmark to your personal toolbar. | +|---------|---------| + +![](images/bookmarklet.png) + + +### Firefox Share + +Before using Firefox Share, you must first add Shaarli as a sharing provider: + +- Click the `Tools` button in the top bar +- Click the `✚Add to Firefox social` button and accept the activation. + +Once this is done, you can share any URL you are visiting by clicking the Firefox +_Share_ button [images/firefoxshare.png](images/firefoxshare.png) + +| Note | Firefox Share is no longer available for Firefox 57 and later versions. | +|---------|---------| + +| Note | Your Shaarli instance must be hosted on an HTTPS (SSL/TLS secure connection) enabled server for Firefox Share to work. Firefox Share will not work over plaintext HTTP connections. | +|---------|---------| + +-------------------------------------------------------------------------------- + +## Editing Shaares + +Any Shaare can edited by clicking its ![](https://raw.githubusercontent.com/shaarli/Shaarli/master/images/edit_icon.png) `Edit` button. + +Editing a Shaare will not change it's permalink, each permalink always points to the +latest revision of a Shaare. + +-------------------------------------------------------------------------------- + +## Using shaarli as a blog, notepad, pastebin... + +While adding or editing a link, leave the URL field blank to create a text-only +("note") post. This allows you to post any kind of text content, such as blog +articles, private or public notes, snippets... There is no character limit! You can +access your Shaare from its permalink. + diff --git a/doc/md/index.md b/doc/md/index.md index e77b4d3a..224070cb 100644 --- a/doc/md/index.md +++ b/doc/md/index.md @@ -94,13 +94,6 @@ Easily extensible by any client using the REST API exposed by Shaarli. See the [API documentation](http://shaarli.github.io/api-documentation/). -### Using Shaarli as a blog, notepad, pastebin... -- Go to your Shaarli setup and log in -- Click the `Add Link` button -- To share text only, do not enter any URL in the corresponding input field and click `Add Link` -- Pick a title and enter your article, or note, in the description field; add a few tags; optionally check `Private` then click `Save` -- Voilà! Your article is now published (privately if you selected that option) and accessible using its permalink. - ## About ### Shaarli community fork This friendly fork is maintained by the Shaarli community at https://github.com/shaarli/Shaarli diff --git a/mkdocs.yml b/mkdocs.yml index 443c3a08..8ba25540 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -22,9 +22,8 @@ pages: - Reverse proxy configuration: docker/reverse-proxy-configuration.md - Docker resources: docker/resources.md - Usage: - - Bookmarklet: Bookmarklet.md - Browsing and searching: Browsing-and-searching.md - - Firefox share: Firefox-share.md + - Sharing content: Sharing-content.md - RSS feeds: RSS-feeds.md - REST API: REST-API.md - Community & Related software: Community-&-Related-software.md -- cgit v1.2.3 From 5991f7a993c122f6145b93680812065ed07d827a Mon Sep 17 00:00:00 2001 From: nodiscc Date: Fri, 9 Feb 2018 18:21:53 +0100 Subject: default/editlink.tpl: title: Shaare -> New Shaare --- tpl/default/editlink.html | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tpl/default/editlink.html b/tpl/default/editlink.html index d03fd72f..f8e968f1 100644 --- a/tpl/default/editlink.html +++ b/tpl/default/editlink.html @@ -9,8 +9,7 @@

- {if="!$link_is_new"}{'Edit'|t}{/if} - {'Shaare'|t} + {if="!$link_is_new"}{'Edit Shaare'|t}{else}{'New Shaare'|t}{/if}

{if="isset($link.id)"} -- cgit v1.2.3 From 6af9363aa575901cf77db53679c96ea068e1eee6 Mon Sep 17 00:00:00 2001 From: nodiscc Date: Fri, 9 Feb 2018 18:39:39 +0100 Subject: update PO strings for Edit/New Shaare update french translation --- inc/languages/fr/LC_MESSAGES/shaarli.po | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/inc/languages/fr/LC_MESSAGES/shaarli.po b/inc/languages/fr/LC_MESSAGES/shaarli.po index fd47217e..35e60017 100644 --- a/inc/languages/fr/LC_MESSAGES/shaarli.po +++ b/inc/languages/fr/LC_MESSAGES/shaarli.po @@ -1,9 +1,8 @@ msgid "" msgstr "" "Project-Id-Version: Shaarli\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-02-24 12:39+0100\n" -"PO-Revision-Date: 2018-02-24 12:43+0100\n" +"POT-Creation-Date: 2018-01-24 18:43+0100\n" +"PO-Revision-Date: 2018-03-06 18:44+0100\n" "Last-Translator: \n" "Language-Team: Shaarli\n" "Language: fr_FR\n" @@ -764,6 +763,18 @@ msgstr "Tous les liens d'un jour sur une page." msgid "Next day" msgstr "Jour suivant" +#: tpl/editlink.html +msgid "Edit Shaare" +msgstr "Modifier le Shaare" +msgid "New Shaare" +msgstr "Nouveau Shaare" + +#: tmp/editlink.b91ef64efc3688266305ea9b42e5017e.rtpl.php:16 +#: tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:26 +#: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:26 +msgid "Shaare" +msgstr "Shaare" + #: tmp/editlink.b91ef64efc3688266305ea9b42e5017e.rtpl.php:25 msgid "Created:" msgstr "Création :" -- cgit v1.2.3 From bf7993dcebe1518f8c4759f397309937ebc4de71 Mon Sep 17 00:00:00 2001 From: nodiscc Date: Fri, 9 Feb 2018 18:44:06 +0100 Subject: doc: add edit_icon.png to git repository optimize icon with optipng/pngcrush (3.30%) --- doc/md/Sharing-content.md | 2 +- doc/md/images/edit_icon.png | Bin 1548 -> 2040 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/md/Sharing-content.md b/doc/md/Sharing-content.md index 8d8c15a9..b185164c 100644 --- a/doc/md/Sharing-content.md +++ b/doc/md/Sharing-content.md @@ -72,7 +72,7 @@ _Share_ button [images/firefoxshare.png](images/firefoxshare.png) ## Editing Shaares -Any Shaare can edited by clicking its ![](https://raw.githubusercontent.com/shaarli/Shaarli/master/images/edit_icon.png) `Edit` button. +Any Shaare can edited by clicking its ![](images/edit_icon.png) `Edit` button. Editing a Shaare will not change it's permalink, each permalink always points to the latest revision of a Shaare. diff --git a/doc/md/images/edit_icon.png b/doc/md/images/edit_icon.png index 16c440c8..777f3253 100644 Binary files a/doc/md/images/edit_icon.png and b/doc/md/images/edit_icon.png differ -- cgit v1.2.3 From 630790a1aa78d4b7e7fec0a84c23571f6dfd9df2 Mon Sep 17 00:00:00 2001 From: nodiscc Date: Fri, 9 Feb 2018 18:46:28 +0100 Subject: doc: optimize PNGs with pngcrush 164k -> 156k --- doc/md/images/doc-logo.png | Bin 19543 -> 19520 bytes doc/md/images/edit_icon.png | Bin 2040 -> 1548 bytes doc/md/images/firefoxshare.png | Bin 757 -> 715 bytes doc/md/images/install-shaarli.png | Bin 44376 -> 33827 bytes doc/md/images/rss-filter-1.png | Bin 18682 -> 18534 bytes doc/md/images/rss-filter-2.png | Bin 15604 -> 15440 bytes 6 files changed, 0 insertions(+), 0 deletions(-) diff --git a/doc/md/images/doc-logo.png b/doc/md/images/doc-logo.png index 3d8d1787..3da7ba57 100644 Binary files a/doc/md/images/doc-logo.png and b/doc/md/images/doc-logo.png differ diff --git a/doc/md/images/edit_icon.png b/doc/md/images/edit_icon.png index 777f3253..16c440c8 100644 Binary files a/doc/md/images/edit_icon.png and b/doc/md/images/edit_icon.png differ diff --git a/doc/md/images/firefoxshare.png b/doc/md/images/firefoxshare.png index 98c2fdd3..8f8fdba4 100644 Binary files a/doc/md/images/firefoxshare.png and b/doc/md/images/firefoxshare.png differ diff --git a/doc/md/images/install-shaarli.png b/doc/md/images/install-shaarli.png index 7ae33816..d5d5baa7 100644 Binary files a/doc/md/images/install-shaarli.png and b/doc/md/images/install-shaarli.png differ diff --git a/doc/md/images/rss-filter-1.png b/doc/md/images/rss-filter-1.png index d2a03f67..0cf1591c 100644 Binary files a/doc/md/images/rss-filter-1.png and b/doc/md/images/rss-filter-1.png differ diff --git a/doc/md/images/rss-filter-2.png b/doc/md/images/rss-filter-2.png index 538b126e..5a40755a 100644 Binary files a/doc/md/images/rss-filter-2.png and b/doc/md/images/rss-filter-2.png differ -- cgit v1.2.3 From 2e47af897e4f84d5f5266219385a8e930fc113d2 Mon Sep 17 00:00:00 2001 From: nodiscc Date: Fri, 9 Feb 2018 19:03:42 +0100 Subject: doc: sharing: add link to REST API documentation --- doc/md/Sharing-content.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/md/Sharing-content.md b/doc/md/Sharing-content.md index b185164c..faacc1f9 100644 --- a/doc/md/Sharing-content.md +++ b/doc/md/Sharing-content.md @@ -17,7 +17,7 @@ While logged in to your Shaarli, you can add new Shaares in several ways: * [Bookmarklet] * [Firefox Share](#firefox-share) * Third-party [apps and browser addons](Community-\&-Related-software.md#mobile-apps) - + * [REST API](https://shaarli.github.io/api-documentation/) ### +Shaare button -- cgit v1.2.3 From 67a5c6d6f38a47d726694f4afab9fd46aa2a81a3 Mon Sep 17 00:00:00 2001 From: nodiscc Date: Sat, 14 Apr 2018 14:22:02 +0200 Subject: remove duplicate translation --- inc/languages/fr/LC_MESSAGES/shaarli.po | 6 ------ 1 file changed, 6 deletions(-) diff --git a/inc/languages/fr/LC_MESSAGES/shaarli.po b/inc/languages/fr/LC_MESSAGES/shaarli.po index 35e60017..2ebeccbc 100644 --- a/inc/languages/fr/LC_MESSAGES/shaarli.po +++ b/inc/languages/fr/LC_MESSAGES/shaarli.po @@ -769,12 +769,6 @@ msgstr "Modifier le Shaare" msgid "New Shaare" msgstr "Nouveau Shaare" -#: tmp/editlink.b91ef64efc3688266305ea9b42e5017e.rtpl.php:16 -#: tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:26 -#: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:26 -msgid "Shaare" -msgstr "Shaare" - #: tmp/editlink.b91ef64efc3688266305ea9b42e5017e.rtpl.php:25 msgid "Created:" msgstr "Création :" -- cgit v1.2.3 From 7ca124079e6bd414b096fcec9789cef1216dff8f Mon Sep 17 00:00:00 2001 From: Buster One <37770318+buster-one@users.noreply.github.com> Date: Sun, 15 Apr 2018 14:53:09 +0200 Subject: German language created (#1114) * Added german language selection * German language file created * typo * extra space removed and typo corrected * lines 1314 through 1408 removed as suggested --- application/Languages.php | 1 + inc/languages/de/LC_MESSAGES/shaarli.po | 1313 +++++++++++++++++++++++++++++++ 2 files changed, 1314 insertions(+) create mode 100644 inc/languages/de/LC_MESSAGES/shaarli.po diff --git a/application/Languages.php b/application/Languages.php index db4b84ae..4fa32426 100644 --- a/application/Languages.php +++ b/application/Languages.php @@ -177,6 +177,7 @@ class Languages 'auto' => t('Automatic'), 'en' => t('English'), 'fr' => t('French'), + 'de' => t('German'), ]; } } diff --git a/inc/languages/de/LC_MESSAGES/shaarli.po b/inc/languages/de/LC_MESSAGES/shaarli.po new file mode 100644 index 00000000..34d29ce8 --- /dev/null +++ b/inc/languages/de/LC_MESSAGES/shaarli.po @@ -0,0 +1,1313 @@ +msgid "" +msgstr "" +"Project-Id-Version: Shaarli\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-31 09:09+0200\n" +"PO-Revision-Date: 2018-03-31 09:12+0200\n" +"Last-Translator: \n" +"Language-Team: Shaarli\n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.6\n" +"X-Poedit-Basepath: ../../../..\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Poedit-SourceCharset: UTF-8\n" +"X-Poedit-KeywordsList: t:1,2;t\n" +"X-Poedit-SearchPath-0: .\n" +"X-Poedit-SearchPathExcluded-0: node_modules\n" +"X-Poedit-SearchPathExcluded-1: vendor\n" + +#: application/ApplicationUtils.php:153 +#, php-format +msgid "" +"Your PHP version is obsolete! Shaarli requires at least PHP %s, and thus " +"cannot run. Your PHP version has known security vulnerabilities and should " +"be updated as soon as possible." +msgstr "" +"Deine PHP-Version ist veraltet! Shaarli benötigt mindestens PHP %s, und kann " +"daher nicht laufen. Deine PHP-Version hat bekannte Sicherheitslücken und " +"sollte so bald wie möglich aktualisiert werden." + +#: application/ApplicationUtils.php:183 application/ApplicationUtils.php:195 +msgid "directory is not readable" +msgstr "Verzeichnis ist nicht lesbar" + +#: application/ApplicationUtils.php:198 +msgid "directory is not writable" +msgstr "Verzeichnis ist nicht beschreibbar" + +#: application/ApplicationUtils.php:216 +msgid "file is not readable" +msgstr "Datei ist nicht lesbar" + +#: application/ApplicationUtils.php:219 +msgid "file is not writable" +msgstr "Datei ist nicht beschreibbar" + +#: application/Cache.php:16 +#, php-format +msgid "Cannot purge %s: no directory" +msgstr "Kann nicht löschen, %s ist kein Verzeichnis" + +#: application/FeedBuilder.php:151 +msgid "Direct link" +msgstr "Direct Link" + +#: application/FeedBuilder.php:153 +#: tmp/daily.b91ef64efc3688266305ea9b42e5017e.rtpl.php:88 +#: tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:178 +msgid "Permalink" +msgstr "Permalink" + +#: application/History.php:174 +msgid "History file isn't readable or writable" +msgstr "Protokolldatei nicht lesbar oder beschreibbar" + +#: application/History.php:185 +msgid "Could not parse history file" +msgstr "Protokolldatei konnte nicht analysiert werden" + +#: application/Languages.php:177 +msgid "Automatic" +msgstr "Automatisch" + +#: application/Languages.php:178 +msgid "English" +msgstr "Englisch" + +#: application/Languages.php:179 +msgid "French" +msgstr "Französisch" + +#: application/Languages.php:180 +msgid "German" +msgstr "Deutsch" + +#: application/LinkDB.php:136 +msgid "You are not authorized to add a link." +msgstr "Du bist nicht berechtigt einen Link hinzuzufügen." + +#: application/LinkDB.php:139 +msgid "Internal Error: A link should always have an id and URL." +msgstr "Interner Fehler: Ein Link sollte immer eine ID und URL haben." + +#: application/LinkDB.php:142 +msgid "You must specify an integer as a key." +msgstr "Du musst eine Ganzzahl als Schlüssel angeben." + +#: application/LinkDB.php:145 +msgid "Array offset and link ID must be equal." +msgstr "Array-Offset und Link-ID müssen gleich sein." + +#: application/LinkDB.php:251 +#: tmp/page.footer.b91ef64efc3688266305ea9b42e5017e.rtpl.php:14 +#: tmp/page.footer.b91ef64efc3688266305ea9b42e5017e.rtpl.php:48 +#: tmp/page.footer.cedf684561d925457130839629000a81.rtpl.php:14 +#: tmp/page.footer.cedf684561d925457130839629000a81.rtpl.php:48 +msgid "" +"The personal, minimalist, super-fast, database free, bookmarking service" +msgstr "" +"Der persönliche, minimalistische, superschnelle, datenbankfreie " +"Lesezeichenservice" + +#: application/LinkDB.php:253 +msgid "" +"Welcome to Shaarli! This is your first public bookmark. To edit or delete " +"me, you must first login.\n" +"\n" +"To learn how to use Shaarli, consult the link \"Documentation\" at the " +"bottom of this page.\n" +"\n" +"You use the community supported version of the original Shaarli project, by " +"Sebastien Sauvage." +msgstr "" +"Willkommen bei Shaarli! Dies ist dein erstes öffentliches Lesezeichen. Um " +"mich zu bearbeiten oder zu löschen, musst du dich zuerst einloggen.\n" +"\n" +"Um zu erfahren, wie man Shaarli benutzt, öffne den Link \"Dokumentation\" am " +"Ende dieser Seite.\n" +"\n" +"Du verwendest die von der Community unterstützte Version des ursprünglichen " +"Shaarli-Projekts von Sebastien Sauvage." + +#: application/LinkDB.php:267 +msgid "My secret stuff... - Pastebin.com" +msgstr "Meine geheimen Sachen... - Pastebin.com" + +#: application/LinkDB.php:269 +msgid "Shhhh! I'm a private link only YOU can see. You can delete me too." +msgstr "" +"Pssst Ich bin ein privater Link, den nur du sehen kannst. Du kannst mich " +"auch löschen." + +#: application/LinkFilter.php:452 +msgid "The link you are trying to reach does not exist or has been deleted." +msgstr "" +"Den Link, den du versucht zu erreichen, existiert nicht oder wurde gelöscht." + +#: application/NetscapeBookmarkUtils.php:35 +msgid "Invalid export selection:" +msgstr "Ungültige Exportauswahl:" + +#: application/NetscapeBookmarkUtils.php:81 +#, php-format +msgid "File %s (%d bytes) " +msgstr "Datei %s (%d bytes) " + +#: application/NetscapeBookmarkUtils.php:83 +msgid "has an unknown file format. Nothing was imported." +msgstr "hat ein unbekanntes Dateiformat. Es wurde nichts importiert." + +#: application/NetscapeBookmarkUtils.php:86 +#, php-format +msgid "" +"was successfully processed in %d seconds: %d links imported, %d links " +"overwritten, %d links skipped." +msgstr "" +"wurde erfolgreich in %d Sekunden verarbeitet: %d Links importiert, %d Links " +"überschrieben, %d Links übersprungen." + +#: application/PageBuilder.php:168 +msgid "The page you are trying to reach does not exist or has been deleted." +msgstr "" +"Die Seite, die du erreichen möchtest, existiert nicht oder wurde gelöscht." + +#: application/PageBuilder.php:170 +msgid "404 Not Found" +msgstr "404 Nicht gefunden" + +#: application/PluginManager.php:243 +#, php-format +msgid "Plugin \"%s\" files not found." +msgstr "Plugin \"%s\" Dateien nicht gefunden." + +#: application/Updater.php:76 +msgid "Couldn't retrieve Updater class methods." +msgstr "Die Updater-Klassenmethoden konnten nicht abgerufen werden." + +#: application/Updater.php:532 +msgid "An error occurred while running the update " +msgstr "Beim Ausführen des Updates ist ein Fehler aufgetreten " + +#: application/Updater.php:572 +msgid "Updates file path is not set, can't write updates." +msgstr "" +"Der Update-Dateipfad ist nicht festgelegt, es können keine Updates " +"geschrieben werden." + +#: application/Updater.php:577 +msgid "Unable to write updates in " +msgstr "Es ist nicht möglich Updates zu schreiben in " + +#: application/Utils.php:376 tests/UtilsTest.php:340 +msgid "Setting not set" +msgstr "Einstellung nicht gesetzt" + +#: application/Utils.php:383 tests/UtilsTest.php:338 tests/UtilsTest.php:339 +msgid "Unlimited" +msgstr "Unbegrenzt" + +#: application/Utils.php:386 tests/UtilsTest.php:335 tests/UtilsTest.php:336 +#: tests/UtilsTest.php:350 +msgid "B" +msgstr "B" + +#: application/Utils.php:386 tests/UtilsTest.php:329 tests/UtilsTest.php:330 +#: tests/UtilsTest.php:337 +msgid "kiB" +msgstr "kiB" + +#: application/Utils.php:386 tests/UtilsTest.php:331 tests/UtilsTest.php:332 +#: tests/UtilsTest.php:348 tests/UtilsTest.php:349 +msgid "MiB" +msgstr "MiB" + +#: application/Utils.php:386 tests/UtilsTest.php:333 tests/UtilsTest.php:334 +msgid "GiB" +msgstr "GiB" + +#: application/config/ConfigJson.php:52 application/config/ConfigPhp.php:121 +msgid "" +"Shaarli could not create the config file. Please make sure Shaarli has the " +"right to write in the folder is it installed in." +msgstr "" +"Shaarli konnte die Konfigurationsdatei nicht erstellen. Bitte stelle sicher, " +"dass Shaarli das Recht hat, in den Ordner zu schreiben, in dem es " +"installiert ist." + +#: application/config/ConfigManager.php:135 +msgid "Invalid setting key parameter. String expected, got: " +msgstr "" +"Ungültiger Parameter für den Einstellungsschlüssel. Zeichenfolge erwartet, " +"erhalten: " + +#: application/config/exception/MissingFieldConfigException.php:21 +#, php-format +msgid "Configuration value is required for %s" +msgstr "Konfigurationswert erforderlich für %s" + +#: application/config/exception/PluginConfigOrderException.php:15 +msgid "An error occurred while trying to save plugins loading order." +msgstr "" +"Beim Versuch, die Ladereihenfolge der Plugins zu speichern, ist ein Fehler " +"aufgetreten." + +#: application/config/exception/UnauthorizedConfigException.php:16 +msgid "You are not authorized to alter config." +msgstr "Du bist nicht berechtigt, die Konfiguration zu ändern." + +#: application/exceptions/IOException.php:19 +msgid "Error accessing" +msgstr "Fehler beim Zugriff" + +#: index.php:142 +msgid "Shared links on " +msgstr "Geteilte Links auf " + +#: index.php:164 +msgid "Insufficient permissions:" +msgstr "Unzureichende Berechtigungen:" + +#: index.php:303 +msgid "I said: NO. You are banned for the moment. Go away." +msgstr "Ich sagte NEIN. Du bist für den Moment gesperrt. Verschwinde." + +#: index.php:368 +msgid "Wrong login/password." +msgstr "Falscher Loging/Passwort." + +#: index.php:576 tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:42 +#: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:42 +msgid "Daily" +msgstr "Täglich" + +#: index.php:681 tmp/loginform.b91ef64efc3688266305ea9b42e5017e.rtpl.php:28 +#: tmp/loginform.b91ef64efc3688266305ea9b42e5017e.rtpl.php:44 +#: tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:71 +#: tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:95 +#: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:71 +#: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:95 +msgid "Login" +msgstr "Einloggen" + +#: index.php:722 tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:39 +#: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:39 +msgid "Picture wall" +msgstr "Bildwand" + +#: index.php:770 tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:36 +#: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:36 +#: tmp/tag.cloud.b91ef64efc3688266305ea9b42e5017e.rtpl.php:19 +msgid "Tag cloud" +msgstr "Tag Cloud" + +#: index.php:803 tmp/tag.list.b91ef64efc3688266305ea9b42e5017e.rtpl.php:19 +msgid "Tag list" +msgstr "Tag Liste" + +#: index.php:1028 tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:31 +#: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:31 +msgid "Tools" +msgstr "Tools" + +#: index.php:1037 +msgid "You are not supposed to change a password on an Open Shaarli." +msgstr "Du darfst kein Passwort für ein offenes Shaarli ändern." + +#: index.php:1042 index.php:1084 index.php:1160 index.php:1191 index.php:1291 +msgid "Wrong token." +msgstr "Falsches Zeichen." + +#: index.php:1047 +msgid "The old password is not correct." +msgstr "Das alte Passwort ist nicht korrekt." + +#: index.php:1067 +msgid "Your password has been changed" +msgstr "Dein Passwort wurde geändert" + +#: index.php:1072 +#: tmp/changepassword.b91ef64efc3688266305ea9b42e5017e.rtpl.php:13 +#: tmp/tools.b91ef64efc3688266305ea9b42e5017e.rtpl.php:29 +msgid "Change password" +msgstr "Passwort ändern" + +#: index.php:1120 +msgid "Configuration was saved." +msgstr "Konfiguration wurde gespeichert." + +#: index.php:1143 tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:24 +msgid "Configure" +msgstr "Konfigurieren" + +#: index.php:1154 tmp/changetag.b91ef64efc3688266305ea9b42e5017e.rtpl.php:13 +#: tmp/tools.b91ef64efc3688266305ea9b42e5017e.rtpl.php:36 +msgid "Manage tags" +msgstr "Tags verwalten" + +#: index.php:1172 +#, php-format +msgid "The tag was removed from %d link." +msgid_plural "The tag was removed from %d links." +msgstr[0] "Der Tag wurde aus dem Link %d entfernt." +msgstr[1] "Der Tag wurde aus den Links %d entfernt." + +#: index.php:1173 +#, php-format +msgid "The tag was renamed in %d link." +msgid_plural "The tag was renamed in %d links." +msgstr[0] "Der Tag wurde im Link %d umbenannt." +msgstr[1] "Der Tag wurde in den Links %d umbenannt." + +#: index.php:1181 tmp/addlink.b91ef64efc3688266305ea9b42e5017e.rtpl.php:13 +msgid "Shaare a new link" +msgstr "Teile einen neuen Link" + +#: index.php:1351 tmp/editlink.b91ef64efc3688266305ea9b42e5017e.rtpl.php:14 +#: tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:170 +msgid "Edit" +msgstr "Bearbeiten" + +#: index.php:1351 index.php:1421 +#: tmp/editlink.b91ef64efc3688266305ea9b42e5017e.rtpl.php:16 +#: tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:26 +#: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:26 +msgid "Shaare" +msgstr "Teilen" + +#: index.php:1390 +msgid "Note: " +msgstr "Notiz: " + +#: index.php:1430 tmp/export.b91ef64efc3688266305ea9b42e5017e.rtpl.php:65 +msgid "Export" +msgstr "Exportieren" + +#: index.php:1492 tmp/import.b91ef64efc3688266305ea9b42e5017e.rtpl.php:83 +msgid "Import" +msgstr "Importieren" + +#: index.php:1502 +#, php-format +msgid "" +"The file you are trying to upload is probably bigger than what this " +"webserver can accept (%s). Please upload in smaller chunks." +msgstr "" +"Die Datei, die du hochladen möchtest, ist wahrscheinlich größer als das, was " +"dieser Webserver akzeptieren kann (%s). Bitte lade in kleineren Blöcken hoch." + +#: index.php:1541 tmp/pluginsadmin.b91ef64efc3688266305ea9b42e5017e.rtpl.php:26 +#: tmp/tools.b91ef64efc3688266305ea9b42e5017e.rtpl.php:22 +msgid "Plugin administration" +msgstr "Plugin Adminstration" + +#: index.php:1706 +msgid "Search: " +msgstr "Suche: " + +#: index.php:1933 +#, php-format +msgid "" +"
Sessions do not seem to work correctly on your server.
Make sure the " +"variable \"session.save_path\" is set correctly in your PHP config, and that " +"you have write access to it.
It currently points to %s.
On some " +"browsers, accessing your server via a hostname like 'localhost' or any " +"custom hostname without a dot causes cookie storage to fail. We recommend " +"accessing your server via it's IP address or Fully Qualified Domain Name.
" +msgstr "" +"
Sessions scheinen auf deinem Server nicht korrekt zu funktionieren. "
+"
Stelle sicher, dass die Variable \"session.save_path\" in deiner PHP-" +"Konfiguration richtig eingestellt ist und dass du Schreibzugriff darauf hast." +"
Es verweist aktuell auf %s.
Bei einigen Browsern führt der Zugriff " +"auf deinen Server über einen Hostnamen wie \"localhost\" oder einen " +"beliebigen benutzerdefinierten Hostnamen ohne Punkt dazu, dass der Cookie-" +"Speicher fehlschlägt. Wir empfehlen den Zugriff auf deinen Server über die " +"IP-Adresse oder den Fully Qualified Domain Namen.
" + +#: index.php:1943 +msgid "Click to try again." +msgstr "Klicke um es erneut zu versuchen." + +#: plugins/addlink_toolbar/addlink_toolbar.php:29 +msgid "URI" +msgstr "URI" + +#: plugins/addlink_toolbar/addlink_toolbar.php:33 +#: tmp/addlink.b91ef64efc3688266305ea9b42e5017e.rtpl.php:19 +msgid "Add link" +msgstr "Link hinzufügen" + +#: plugins/addlink_toolbar/addlink_toolbar.php:50 +msgid "Adds the addlink input on the linklist page." +msgstr "Fügt die Link-hinzufügen-Eingabe auf der Linkliste hinzu." + +#: plugins/archiveorg/archiveorg.php:23 +msgid "View on archive.org" +msgstr "Auf archive.org ansehen" + +#: plugins/archiveorg/archiveorg.php:36 +msgid "For each link, add an Archive.org icon." +msgstr "Füge für jeden Link ein Archive.org Symbol hinzu." + +#: plugins/demo_plugin/demo_plugin.php:465 +msgid "" +"A demo plugin covering all use cases for template designers and plugin " +"developers." +msgstr "" +"Ein Demo-Plugin, das alle Anwendungsfälle für Template-Designer und Plugin-" +"Entwickler abdeckt." + +#: plugins/isso/isso.php:20 +msgid "" +"Isso plugin error: Please define the \"ISSO_SERVER\" setting in the plugin " +"administration page." +msgstr "" +"Isso Plugin Fehler: Bitte definiere die Einstellung \"ISSO_SERVER\" auf der " +"Plugin-Administrationsseite." + +#: plugins/isso/isso.php:63 +msgid "Let visitor comment your shaares on permalinks with Isso." +msgstr "" +"Lassen Sie Besucher ihre geteilten Links auf Permalinks mit Isso " +"kommentieren." + +#: plugins/isso/isso.php:64 +msgid "Isso server URL (without 'http://')" +msgstr "Isso Server URL (ohne 'http://')" + +#: plugins/markdown/markdown.php:158 +msgid "Description will be rendered with" +msgstr "Die Beschreibung wird dargestellt mit" + +#: plugins/markdown/markdown.php:159 +msgid "Markdown syntax documentation" +msgstr "Markdown Syntax Dokumentation" + +#: plugins/markdown/markdown.php:160 +msgid "Markdown syntax" +msgstr "Markdown Syntax" + +#: plugins/markdown/markdown.php:339 +msgid "" +"Render shaare description with Markdown syntax.
Warning:\n" +"If your shaared descriptions contained HTML tags before enabling the " +"markdown plugin,\n" +"enabling it might break your page.\n" +"See the README." +msgstr "" +"Übertrage Teilen Beschreibung mit Markdown-Syntax.
Warnung:\n" +"Wenn deine Teilen Beschreibungen HTML-Tags enthielten, bevor das Markdown-" +"Plugin aktiviert wurde,\n" +"kann es deine Seite beschädigen, solltest du es aktivieren.\n" +"Weitere Informationen findest du in der README." + +#: plugins/piwik/piwik.php:21 +msgid "" +"Piwik plugin error: Please define PIWIK_URL and PIWIK_SITEID in the plugin " +"administration page." +msgstr "" +"Piwik-Plugin-Fehler: Bitte definiere die PIWIK_URL und PIWIK_SITEID auf der " +"Plugin-Administrationsseite." + +#: plugins/piwik/piwik.php:70 +msgid "A plugin that adds Piwik tracking code to Shaarli pages." +msgstr "" +"Ein Plugin, das einen Piwik-Tracking-Code auf Shaarli-Seiten hinzufügt." + +#: plugins/piwik/piwik.php:71 +msgid "Piwik URL" +msgstr "Piwik URL" + +#: plugins/piwik/piwik.php:72 +msgid "Piwik site ID" +msgstr "Piwik site ID" + +#: plugins/playvideos/playvideos.php:22 +msgid "Video player" +msgstr "Videoplayer" + +#: plugins/playvideos/playvideos.php:25 +msgid "Play Videos" +msgstr "Videos abspielen" + +#: plugins/playvideos/playvideos.php:56 +msgid "Add a button in the toolbar allowing to watch all videos." +msgstr "" +"Fügt eine Schaltfläche in der Symbolleiste hinzu, mit der man alle Videos " +"ansehen kann." + +#: plugins/playvideos/youtube_playlist.js:214 +msgid "plugins/playvideos/jquery-1.11.2.min.js" +msgstr "plugins/playvideos/jquery-1.11.2.min.js" + +#: plugins/pubsubhubbub/pubsubhubbub.php:69 +#, php-format +msgid "Could not publish to PubSubHubbub: %s" +msgstr "Veröffentlichung auf PubSubHubbub nicht möglich: %s" + +#: plugins/pubsubhubbub/pubsubhubbub.php:95 +#, php-format +msgid "Could not post to %s" +msgstr "Kann nicht posten auf %s" + +#: plugins/pubsubhubbub/pubsubhubbub.php:99 +#, php-format +msgid "Bad response from the hub %s" +msgstr "Ungültige Antwort vom Hub %s" + +#: plugins/pubsubhubbub/pubsubhubbub.php:110 +msgid "Enable PubSubHubbub feed publishing." +msgstr "Aktiviere PubSubHubbub Feed Veröffentlichung." + +#: plugins/qrcode/qrcode.php:69 plugins/wallabag/wallabag.php:68 +msgid "For each link, add a QRCode icon." +msgstr "Für jeden Link, füge eine QRCode Icon hinzu." + +#: plugins/wallabag/wallabag.php:21 +msgid "" +"Wallabag plugin error: Please define the \"WALLABAG_URL\" setting in the " +"plugin administration page." +msgstr "" +"Wallabag Plugin Fehler: Bitte definiere die Einstellung \"WALLABAG_URL\" auf " +"der Plugin Administrationsseite." + +#: plugins/wallabag/wallabag.php:47 +msgid "Save to wallabag" +msgstr "Auf Wallabag speichern" + +#: plugins/wallabag/wallabag.php:69 +msgid "Wallabag API URL" +msgstr "Wallabag API URL" + +#: plugins/wallabag/wallabag.php:70 +msgid "Wallabag API version (1 or 2)" +msgstr "Wallabag API version (1 oder 2)" + +#: tests/LanguagesTest.php:214 tests/LanguagesTest.php:227 +#: tests/languages/fr/LanguagesFrTest.php:160 +#: tests/languages/fr/LanguagesFrTest.php:173 +#: tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:81 +#: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:81 +msgid "Search" +msgid_plural "Search" +msgstr[0] "Suche" +msgstr[1] "Suchen" + +#: tmp/404.b91ef64efc3688266305ea9b42e5017e.rtpl.php:12 +msgid "Sorry, nothing to see here." +msgstr "Entschuldige, hier gibt es nichts zu sehen." + +#: tmp/addlink.b91ef64efc3688266305ea9b42e5017e.rtpl.php:16 +msgid "URL or leave empty to post a note" +msgstr "URL oder leer lassen um eine Notiz hinzuzufügen" + +#: tmp/changepassword.b91ef64efc3688266305ea9b42e5017e.rtpl.php:16 +msgid "Current password" +msgstr "Aktuelles Passwort" + +#: tmp/changepassword.b91ef64efc3688266305ea9b42e5017e.rtpl.php:19 +msgid "New password" +msgstr "Neues Passwort" + +#: tmp/changepassword.b91ef64efc3688266305ea9b42e5017e.rtpl.php:23 +msgid "Change" +msgstr "Wechseln" + +#: tmp/changetag.b91ef64efc3688266305ea9b42e5017e.rtpl.php:16 +#: tmp/import.b91ef64efc3688266305ea9b42e5017e.rtpl.php:77 +msgid "Tag" +msgstr "Tag" + +#: tmp/changetag.b91ef64efc3688266305ea9b42e5017e.rtpl.php:24 +msgid "New name" +msgstr "Neuer Name" + +#: tmp/changetag.b91ef64efc3688266305ea9b42e5017e.rtpl.php:31 +msgid "Case sensitive" +msgstr "Groß- / Kleinschreibung-unterscheidend" + +#: tmp/changetag.b91ef64efc3688266305ea9b42e5017e.rtpl.php:34 +msgid "Rename" +msgstr "Umbenennen" + +#: tmp/changetag.b91ef64efc3688266305ea9b42e5017e.rtpl.php:35 +#: tmp/editlink.b91ef64efc3688266305ea9b42e5017e.rtpl.php:79 +#: tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:172 +msgid "Delete" +msgstr "Löschen" + +#: tmp/changetag.b91ef64efc3688266305ea9b42e5017e.rtpl.php:39 +msgid "You can also edit tags in the" +msgstr "Du kannst auch Tags bearbeiten in der" + +#: tmp/changetag.b91ef64efc3688266305ea9b42e5017e.rtpl.php:39 +msgid "tag list" +msgstr "Tag Liste" + +#: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:29 +msgid "title" +msgstr "Titel" + +#: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:43 +msgid "Home link" +msgstr "Home Link" + +#: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:44 +msgid "Default value" +msgstr "Standardwert" + +#: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:58 +msgid "Theme" +msgstr "Thema" + +#: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:87 +#: tmp/install.b91ef64efc3688266305ea9b42e5017e.rtpl.php:78 +msgid "Language" +msgstr "Sprache" + +#: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:116 +#: tmp/install.b91ef64efc3688266305ea9b42e5017e.rtpl.php:102 +msgid "Timezone" +msgstr "Zeitzone" + +#: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:117 +#: tmp/install.b91ef64efc3688266305ea9b42e5017e.rtpl.php:103 +msgid "Continent" +msgstr "Kontinent" + +#: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:117 +#: tmp/install.b91ef64efc3688266305ea9b42e5017e.rtpl.php:103 +msgid "City" +msgstr "Stadt" + +#: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:164 +msgid "Disable session cookie hijacking protection" +msgstr "Deaktiviere Session Cookie Hijacking Schutz" + +#: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:166 +msgid "Check this if you get disconnected or if your IP address changes often" +msgstr "" +"Überprüfe dies, wenn die Verbindung getrennt wird oder wenn sich deine IP-" +"Adresse häufig ändert" + +#: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:183 +msgid "Private links by default" +msgstr "Standardmäßig Private Links" + +#: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:184 +msgid "All new links are private by default" +msgstr "Alle neuen Links sind standardmäßig privat" + +#: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:199 +msgid "RSS direct links" +msgstr "RSS Direkt Links" + +#: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:200 +msgid "Check this to use direct URL instead of permalink in feeds" +msgstr "" +"Aktivieren diese Option, um direkte URLs anstelle von Permalinks in Feeds zu " +"verwenden" + +#: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:215 +msgid "Hide public links" +msgstr "Verstecke öffentliche Links" + +#: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:216 +msgid "Do not show any links if the user is not logged in" +msgstr "Zeige keine Links, wenn der Benutzer nicht angemeldet ist" + +#: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:231 +#: tmp/install.b91ef64efc3688266305ea9b42e5017e.rtpl.php:150 +msgid "Check updates" +msgstr "Auf Updates prüfen" + +#: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:232 +#: tmp/install.b91ef64efc3688266305ea9b42e5017e.rtpl.php:152 +msgid "Notify me when a new release is ready" +msgstr "Benachrichtige mich, wenn eine neue Version zur Verfügung steht" + +#: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:247 +#: tmp/install.b91ef64efc3688266305ea9b42e5017e.rtpl.php:169 +msgid "Enable REST API" +msgstr "Aktiviere REST API" + +#: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:248 +#: tmp/install.b91ef64efc3688266305ea9b42e5017e.rtpl.php:170 +msgid "Allow third party software to use Shaarli such as mobile application" +msgstr "" +"Erlaube Software von Drittanbietern für Shaarli, wie z.B. die mobile " +"Anwendung" + +#: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:263 +msgid "API secret" +msgstr "API secret" + +#: tmp/configure.b91ef64efc3688266305ea9b42e5017e.rtpl.php:274 +#: tmp/editlink.b91ef64efc3688266305ea9b42e5017e.rtpl.php:74 +#: tmp/pluginsadmin.b91ef64efc3688266305ea9b42e5017e.rtpl.php:139 +#: tmp/pluginsadmin.b91ef64efc3688266305ea9b42e5017e.rtpl.php:199 +msgid "Save" +msgstr "Speichern" + +#: tmp/daily.b91ef64efc3688266305ea9b42e5017e.rtpl.php:15 +msgid "The Daily Shaarli" +msgstr "Der tägliche Shaarli" + +#: tmp/daily.b91ef64efc3688266305ea9b42e5017e.rtpl.php:17 +msgid "1 RSS entry per day" +msgstr "1 RSS Eintrag pro Tag" + +#: tmp/daily.b91ef64efc3688266305ea9b42e5017e.rtpl.php:37 +msgid "Previous day" +msgstr "Vorheriger Tag" + +#: tmp/daily.b91ef64efc3688266305ea9b42e5017e.rtpl.php:44 +msgid "All links of one day in a single page." +msgstr "Alle Links eines Tages auf einer Seite." + +#: tmp/daily.b91ef64efc3688266305ea9b42e5017e.rtpl.php:51 +msgid "Next day" +msgstr "Nächster Tag" + +#: tmp/editlink.b91ef64efc3688266305ea9b42e5017e.rtpl.php:25 +msgid "Created:" +msgstr "Erstellt:" + +#: tmp/editlink.b91ef64efc3688266305ea9b42e5017e.rtpl.php:28 +msgid "URL" +msgstr "URL" + +#: tmp/editlink.b91ef64efc3688266305ea9b42e5017e.rtpl.php:34 +msgid "Title" +msgstr "Titel" + +#: tmp/editlink.b91ef64efc3688266305ea9b42e5017e.rtpl.php:40 +#: tmp/pluginsadmin.b91ef64efc3688266305ea9b42e5017e.rtpl.php:42 +#: tmp/pluginsadmin.b91ef64efc3688266305ea9b42e5017e.rtpl.php:75 +#: tmp/pluginsadmin.b91ef64efc3688266305ea9b42e5017e.rtpl.php:99 +#: tmp/pluginsadmin.b91ef64efc3688266305ea9b42e5017e.rtpl.php:124 +msgid "Description" +msgstr "Beschreibung" + +#: tmp/editlink.b91ef64efc3688266305ea9b42e5017e.rtpl.php:46 +msgid "Tags" +msgstr "Tags" + +#: tmp/editlink.b91ef64efc3688266305ea9b42e5017e.rtpl.php:59 +#: tmp/export.b91ef64efc3688266305ea9b42e5017e.rtpl.php:36 +#: tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:168 +msgid "Private" +msgstr "Privat" + +#: tmp/editlink.b91ef64efc3688266305ea9b42e5017e.rtpl.php:74 +msgid "Apply Changes" +msgstr "Änderungen übernehmen" + +#: tmp/export.b91ef64efc3688266305ea9b42e5017e.rtpl.php:16 +msgid "Export Database" +msgstr "Exportiere Datenbank" + +#: tmp/export.b91ef64efc3688266305ea9b42e5017e.rtpl.php:24 +msgid "Selection" +msgstr "Beschreibung" + +#: tmp/export.b91ef64efc3688266305ea9b42e5017e.rtpl.php:31 +msgid "All" +msgstr "Alle" + +#: tmp/export.b91ef64efc3688266305ea9b42e5017e.rtpl.php:41 +msgid "Public" +msgstr "Öffentlich" + +#: tmp/export.b91ef64efc3688266305ea9b42e5017e.rtpl.php:52 +msgid "Prepend note permalinks with this Shaarli instance's URL" +msgstr "Voranstellen von Notizen-Permalinks mit der URL dieser Shaarli-Instanz" + +#: tmp/export.b91ef64efc3688266305ea9b42e5017e.rtpl.php:53 +msgid "Useful to import bookmarks in a web browser" +msgstr "Sinnvoll Lesezeichen im Browser zu importieren" + +#: tmp/import.b91ef64efc3688266305ea9b42e5017e.rtpl.php:16 +msgid "Import Database" +msgstr "Importiere Datenbank" + +#: tmp/import.b91ef64efc3688266305ea9b42e5017e.rtpl.php:23 +msgid "Maximum size allowed:" +msgstr "Maximale Größe erlaubt:" + +#: tmp/import.b91ef64efc3688266305ea9b42e5017e.rtpl.php:29 +msgid "Visibility" +msgstr "Sichtbarkeit" + +#: tmp/import.b91ef64efc3688266305ea9b42e5017e.rtpl.php:36 +msgid "Use values from the imported file, default to public" +msgstr "Verwende Werte aus der importierten Datei, standardmäßig öffentlich" + +#: tmp/import.b91ef64efc3688266305ea9b42e5017e.rtpl.php:41 +msgid "Import all bookmarks as private" +msgstr "Importiere alle Lesezeichen als Privat" + +#: tmp/import.b91ef64efc3688266305ea9b42e5017e.rtpl.php:46 +msgid "Import all bookmarks as public" +msgstr "Importiere alles Lesezeichen als öffentlich" + +#: tmp/import.b91ef64efc3688266305ea9b42e5017e.rtpl.php:57 +msgid "Overwrite existing bookmarks" +msgstr "Überschreibe alle bestehenden Lesezeichen" + +#: tmp/import.b91ef64efc3688266305ea9b42e5017e.rtpl.php:58 +msgid "Duplicates based on URL" +msgstr "Duplikate basierend auf URL" + +#: tmp/import.b91ef64efc3688266305ea9b42e5017e.rtpl.php:72 +msgid "Add default tags" +msgstr "Standard-Tag hinzufügen" + +#: tmp/install.b91ef64efc3688266305ea9b42e5017e.rtpl.php:22 +msgid "Install Shaarli" +msgstr "Installiere Shaarli" + +#: tmp/install.b91ef64efc3688266305ea9b42e5017e.rtpl.php:25 +msgid "It looks like it's the first time you run Shaarli. Please configure it." +msgstr "" +"Es sieht so aus, als ob du Shaarli das erste mal verwendest. Bitte " +"konfiguriere es." + +#: tmp/install.b91ef64efc3688266305ea9b42e5017e.rtpl.php:33 +#: tmp/loginform.b91ef64efc3688266305ea9b42e5017e.rtpl.php:30 +#: tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:147 +#: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:147 +msgid "Username" +msgstr "Benutzername" + +#: tmp/install.b91ef64efc3688266305ea9b42e5017e.rtpl.php:48 +#: tmp/loginform.b91ef64efc3688266305ea9b42e5017e.rtpl.php:34 +#: tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:148 +#: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:148 +msgid "Password" +msgstr "Passwort" + +#: tmp/install.b91ef64efc3688266305ea9b42e5017e.rtpl.php:63 +msgid "Shaarli title" +msgstr "Shaarli Titel" + +#: tmp/install.b91ef64efc3688266305ea9b42e5017e.rtpl.php:69 +msgid "My links" +msgstr "Meine Links" + +#: tmp/install.b91ef64efc3688266305ea9b42e5017e.rtpl.php:182 +msgid "Install" +msgstr "Installiere" + +#: tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:14 +#: tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:80 +msgid "shaare" +msgid_plural "shaares" +msgstr[0] "Teile" +msgstr[1] "Teilen" + +#: tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:18 +#: tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:84 +msgid "private link" +msgid_plural "private links" +msgstr[0] "Privater Link" +msgstr[1] "Private Links" + +#: tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:31 +#: tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:117 +#: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:117 +msgid "Search text" +msgstr "Text durchsuchen" + +#: tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:38 +#: tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:124 +#: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:124 +#: tmp/tag.cloud.b91ef64efc3688266305ea9b42e5017e.rtpl.php:36 +#: tmp/tag.cloud.b91ef64efc3688266305ea9b42e5017e.rtpl.php:64 +#: tmp/tag.list.b91ef64efc3688266305ea9b42e5017e.rtpl.php:36 +#: tmp/tag.list.b91ef64efc3688266305ea9b42e5017e.rtpl.php:74 +msgid "Filter by tag" +msgstr "Nach Tag filtern" + +#: tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:111 +msgid "Nothing found." +msgstr "Nichts gefunden." + +#: tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:119 +#, php-format +msgid "%s result" +msgid_plural "%s results" +msgstr[0] "%s Ergebnis" +msgstr[1] "%s Ergebnisse" + +#: tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:123 +msgid "for" +msgstr "für" + +#: tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:130 +msgid "tagged" +msgstr "markiert" + +#: tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:134 +msgid "Remove tag" +msgstr "Tag entfernen" + +#: tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:143 +msgid "with status" +msgstr "mit Status" + +#: tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:154 +msgid "without any tag" +msgstr "ohne irgendeinen Tag" + +#: tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:174 +#: tmp/page.footer.b91ef64efc3688266305ea9b42e5017e.rtpl.php:42 +#: tmp/page.footer.cedf684561d925457130839629000a81.rtpl.php:42 +msgid "Fold" +msgstr "Ablegen" + +#: tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:176 +msgid "Edited: " +msgstr "Bearbeitet: " + +#: tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:180 +msgid "permalink" +msgstr "Permalink" + +#: tmp/linklist.b91ef64efc3688266305ea9b42e5017e.rtpl.php:182 +msgid "Add tag" +msgstr "Tag hinzufügen" + +#: tmp/linklist.paging.b91ef64efc3688266305ea9b42e5017e.rtpl.php:7 +#: tmp/linklist.paging.cedf684561d925457130839629000a81.rtpl.php:7 +msgid "Filters" +msgstr "Filter" + +#: tmp/linklist.paging.b91ef64efc3688266305ea9b42e5017e.rtpl.php:12 +#: tmp/linklist.paging.cedf684561d925457130839629000a81.rtpl.php:12 +msgid "Only display private links" +msgstr "Zeige nur private Links" + +#: tmp/linklist.paging.b91ef64efc3688266305ea9b42e5017e.rtpl.php:15 +#: tmp/linklist.paging.cedf684561d925457130839629000a81.rtpl.php:15 +msgid "Only display public links" +msgstr "Zeige nur öffentliche Links" + +#: tmp/linklist.paging.b91ef64efc3688266305ea9b42e5017e.rtpl.php:20 +#: tmp/linklist.paging.cedf684561d925457130839629000a81.rtpl.php:20 +msgid "Filter untagged links" +msgstr "Unmarkierte Tags filtern" + +#: tmp/linklist.paging.b91ef64efc3688266305ea9b42e5017e.rtpl.php:24 +#: tmp/linklist.paging.b91ef64efc3688266305ea9b42e5017e.rtpl.php:76 +#: tmp/linklist.paging.cedf684561d925457130839629000a81.rtpl.php:24 +#: tmp/linklist.paging.cedf684561d925457130839629000a81.rtpl.php:76 +#: tmp/page.footer.b91ef64efc3688266305ea9b42e5017e.rtpl.php:43 +#: tmp/page.footer.cedf684561d925457130839629000a81.rtpl.php:43 +msgid "Fold all" +msgstr "Alles ablegen" + +#: tmp/linklist.paging.b91ef64efc3688266305ea9b42e5017e.rtpl.php:69 +#: tmp/linklist.paging.cedf684561d925457130839629000a81.rtpl.php:69 +msgid "Links per page" +msgstr "Links pro Seite" + +#: tmp/loginform.b91ef64efc3688266305ea9b42e5017e.rtpl.php:15 +msgid "" +"You have been banned after too many failed login attempts. Try again later." +msgstr "" +"Du wurdest nach zu vielen fehlgeschlagenen Anmeldeversuchen gesperrt. " +"Versuche es später noch einmal." + +#: tmp/loginform.b91ef64efc3688266305ea9b42e5017e.rtpl.php:41 +#: tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:151 +#: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:151 +msgid "Remember me" +msgstr "Erinnere dich an mich" + +#: tmp/page.footer.b91ef64efc3688266305ea9b42e5017e.rtpl.php:14 +#: tmp/page.footer.b91ef64efc3688266305ea9b42e5017e.rtpl.php:48 +#: tmp/page.footer.cedf684561d925457130839629000a81.rtpl.php:14 +#: tmp/page.footer.cedf684561d925457130839629000a81.rtpl.php:48 +msgid "by the Shaarli community" +msgstr "von der Shaarli Community" + +#: tmp/page.footer.b91ef64efc3688266305ea9b42e5017e.rtpl.php:15 +#: tmp/page.footer.cedf684561d925457130839629000a81.rtpl.php:15 +msgid "Documentation" +msgstr "Dokumentation" + +#: tmp/page.footer.b91ef64efc3688266305ea9b42e5017e.rtpl.php:44 +#: tmp/page.footer.cedf684561d925457130839629000a81.rtpl.php:44 +msgid "Expand" +msgstr "Erweitern" + +#: tmp/page.footer.b91ef64efc3688266305ea9b42e5017e.rtpl.php:45 +#: tmp/page.footer.cedf684561d925457130839629000a81.rtpl.php:45 +msgid "Expand all" +msgstr "Alles erweitern" + +#: tmp/page.footer.b91ef64efc3688266305ea9b42e5017e.rtpl.php:46 +#: tmp/page.footer.cedf684561d925457130839629000a81.rtpl.php:46 +msgid "Are you sure you want to delete this link?" +msgstr "Bist du sicher das du diesen Link löschen möchtest?" + +#: tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:61 +#: tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:86 +#: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:61 +#: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:86 +msgid "RSS Feed" +msgstr "RSS Feed" + +#: tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:66 +#: tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:102 +#: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:66 +#: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:102 +msgid "Logout" +msgstr "Ausloggen" + +#: tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:169 +#: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:169 +msgid "is available" +msgstr "ist verfügbar" + +#: tmp/page.header.b91ef64efc3688266305ea9b42e5017e.rtpl.php:176 +#: tmp/page.header.cedf684561d925457130839629000a81.rtpl.php:176 +msgid "Error" +msgstr "Fehler" + +#: tmp/picwall.b91ef64efc3688266305ea9b42e5017e.rtpl.php:16 +msgid "Picture Wall" +msgstr "Bildwand" + +#: tmp/picwall.b91ef64efc3688266305ea9b42e5017e.rtpl.php:16 +msgid "pics" +msgstr "Bilder" + +#: tmp/pluginsadmin.b91ef64efc3688266305ea9b42e5017e.rtpl.php:15 +msgid "You need to enable Javascript to change plugin loading order." +msgstr "" +"Du musst Javascript aktivieren um die Ladereihenfolge der Plugins zu ändern." + +#: tmp/pluginsadmin.b91ef64efc3688266305ea9b42e5017e.rtpl.php:29 +msgid "Enabled Plugins" +msgstr "Aktivierte Plugins" + +#: tmp/pluginsadmin.b91ef64efc3688266305ea9b42e5017e.rtpl.php:34 +#: tmp/pluginsadmin.b91ef64efc3688266305ea9b42e5017e.rtpl.php:155 +msgid "No plugin enabled." +msgstr "Kein Plugin aktiviert." + +#: tmp/pluginsadmin.b91ef64efc3688266305ea9b42e5017e.rtpl.php:40 +#: tmp/pluginsadmin.b91ef64efc3688266305ea9b42e5017e.rtpl.php:73 +msgid "Disable" +msgstr "Deaktivieren" + +#: tmp/pluginsadmin.b91ef64efc3688266305ea9b42e5017e.rtpl.php:41 +#: tmp/pluginsadmin.b91ef64efc3688266305ea9b42e5017e.rtpl.php:74 +#: tmp/pluginsadmin.b91ef64efc3688266305ea9b42e5017e.rtpl.php:98 +#: tmp/pluginsadmin.b91ef64efc3688266305ea9b42e5017e.rtpl.php:123 +msgid "Name" +msgstr "Name" + +#: tmp/pluginsadmin.b91ef64efc3688266305ea9b42e5017e.rtpl.php:43 +#: tmp/pluginsadmin.b91ef64efc3688266305ea9b42e5017e.rtpl.php:76 +msgid "Order" +msgstr "Reihenfolge" + +#: tmp/pluginsadmin.b91ef64efc3688266305ea9b42e5017e.rtpl.php:86 +msgid "Disabled Plugins" +msgstr "Deaktivierte Plugins" + +#: tmp/pluginsadmin.b91ef64efc3688266305ea9b42e5017e.rtpl.php:91 +msgid "No plugin disabled." +msgstr "Kein Plugin deaktiviert." + +#: tmp/pluginsadmin.b91ef64efc3688266305ea9b42e5017e.rtpl.php:97 +#: tmp/pluginsadmin.b91ef64efc3688266305ea9b42e5017e.rtpl.php:122 +msgid "Enable" +msgstr "Aktiviere" + +#: tmp/pluginsadmin.b91ef64efc3688266305ea9b42e5017e.rtpl.php:134 +msgid "More plugins available" +msgstr "Weitere Plugins verfügbar" + +#: tmp/pluginsadmin.b91ef64efc3688266305ea9b42e5017e.rtpl.php:136 +msgid "in the documentation" +msgstr "In der Dokumentation" + +#: tmp/pluginsadmin.b91ef64efc3688266305ea9b42e5017e.rtpl.php:150 +msgid "Plugin configuration" +msgstr "Plugin Konfiguration" + +#: tmp/pluginsadmin.b91ef64efc3688266305ea9b42e5017e.rtpl.php:195 +msgid "No parameter available." +msgstr "Kein Parameter verfügbar." + +#: tmp/tag.cloud.b91ef64efc3688266305ea9b42e5017e.rtpl.php:19 +#: tmp/tag.list.b91ef64efc3688266305ea9b42e5017e.rtpl.php:19 +msgid "tags" +msgstr "Tags" + +#: tmp/tag.cloud.b91ef64efc3688266305ea9b42e5017e.rtpl.php:24 +#: tmp/tag.list.b91ef64efc3688266305ea9b42e5017e.rtpl.php:24 +msgid "List all links with those tags" +msgstr "Zeige alle Links mit diesen Tags" + +#: tmp/tag.sort.b91ef64efc3688266305ea9b42e5017e.rtpl.php:3 +#: tmp/tag.sort.cedf684561d925457130839629000a81.rtpl.php:3 +msgid "Sort by:" +msgstr "Sortiere nach:" + +#: tmp/tag.sort.b91ef64efc3688266305ea9b42e5017e.rtpl.php:5 +#: tmp/tag.sort.cedf684561d925457130839629000a81.rtpl.php:5 +msgid "Cloud" +msgstr "Cloud" + +#: tmp/tag.sort.b91ef64efc3688266305ea9b42e5017e.rtpl.php:6 +#: tmp/tag.sort.cedf684561d925457130839629000a81.rtpl.php:6 +msgid "Most used" +msgstr "Am meisten verwendet" + +#: tmp/tag.sort.b91ef64efc3688266305ea9b42e5017e.rtpl.php:7 +#: tmp/tag.sort.cedf684561d925457130839629000a81.rtpl.php:7 +msgid "Alphabetical" +msgstr "Alphabetisch" + +#: tmp/tools.b91ef64efc3688266305ea9b42e5017e.rtpl.php:14 +msgid "Settings" +msgstr "Einstellungen" + +#: tmp/tools.b91ef64efc3688266305ea9b42e5017e.rtpl.php:16 +msgid "Change Shaarli settings: title, timezone, etc." +msgstr "Shaarli Einstellungen ändern: Titel, Zeitzone, usw." + +#: tmp/tools.b91ef64efc3688266305ea9b42e5017e.rtpl.php:17 +msgid "Configure your Shaarli" +msgstr "Shaarli konfigurieren" + +#: tmp/tools.b91ef64efc3688266305ea9b42e5017e.rtpl.php:21 +msgid "Enable, disable and configure plugins" +msgstr "Plugins aktivieren, deaktivieren und konfigurieren" + +#: tmp/tools.b91ef64efc3688266305ea9b42e5017e.rtpl.php:28 +msgid "Change your password" +msgstr "Ändere dein Passwort" + +#: tmp/tools.b91ef64efc3688266305ea9b42e5017e.rtpl.php:35 +msgid "Rename or delete a tag in all links" +msgstr "Umbenennen oder löschen eines Tags in allen Links" + +#: tmp/tools.b91ef64efc3688266305ea9b42e5017e.rtpl.php:41 +msgid "" +"Import Netscape HTML bookmarks (as exported from Firefox, Chrome, Opera, " +"delicious...)" +msgstr "" +"Importiere Netscape Lesezeichen (wie aus Firefox exportiert, Chrome, Opera, " +"delicious...)" + +#: tmp/tools.b91ef64efc3688266305ea9b42e5017e.rtpl.php:42 +msgid "Import links" +msgstr "Importiere Links" + +#: tmp/tools.b91ef64efc3688266305ea9b42e5017e.rtpl.php:47 +msgid "" +"Export Netscape HTML bookmarks (which can be imported in Firefox, Chrome, " +"Opera, delicious...)" +msgstr "" +"Exportiere Netscape HTML Lesezeichen (welche in Firefox importiert werden " +"können, Chrome, Opera, delicious...)" + +#: tmp/tools.b91ef64efc3688266305ea9b42e5017e.rtpl.php:48 +msgid "Export database" +msgstr "Exportiere Datenbank" + +#: tmp/tools.b91ef64efc3688266305ea9b42e5017e.rtpl.php:71 +msgid "" +"Drag one of these button to your bookmarks toolbar or right-click it and " +"\"Bookmark This Link\"" +msgstr "" +"Ziehe eine dieser Schaltflächen in deine Lesezeichen-Symbolleiste oder " +"klicke mit der rechten Maustaste darauf und \"Speichere diesen Link als " +"Lesezeichen\"" + +#: tmp/tools.b91ef64efc3688266305ea9b42e5017e.rtpl.php:72 +msgid "then click on the bookmarklet in any page you want to share." +msgstr "" +"Klicke dann auf das Bookmarklet auf jeder Seite, welches du teilen möchtest." + +#: tmp/tools.b91ef64efc3688266305ea9b42e5017e.rtpl.php:76 +#: tmp/tools.b91ef64efc3688266305ea9b42e5017e.rtpl.php:100 +msgid "" +"Drag this link to your bookmarks toolbar or right-click it and Bookmark This " +"Link" +msgstr "" +"Ziehe diese Link in deine Lesezeichen-Symbolleiste oder klicke mit der " +"rechten Maustaste darauf und \"Speichere diesen Link als Lesezeichen\"" + +#: tmp/tools.b91ef64efc3688266305ea9b42e5017e.rtpl.php:77 +msgid "then click ✚Shaare link button in any page you want to share" +msgstr "" +"klicke dann auf die Schaltfläche ✚Teilen auf jeder Seite, die du teilen " +"möchtest" + +#: tmp/tools.b91ef64efc3688266305ea9b42e5017e.rtpl.php:86 +#: tmp/tools.b91ef64efc3688266305ea9b42e5017e.rtpl.php:108 +msgid "The selected text is too long, it will be truncated." +msgstr "Der ausgewählte Text ist zu lang, er wird gekürzt." + +#: tmp/tools.b91ef64efc3688266305ea9b42e5017e.rtpl.php:96 +msgid "Shaare link" +msgstr "Teile Link" + +#: tmp/tools.b91ef64efc3688266305ea9b42e5017e.rtpl.php:101 +msgid "" +"Then click ✚Add Note button anytime to start composing a private Note (text " +"post) to your Shaarli" +msgstr "" +"Klicke auf ✚Notiz hinzufügen um eine private Notiz (Textnachricht) zu " +"Shaarli hinzuzufügen" + +#: tmp/tools.b91ef64efc3688266305ea9b42e5017e.rtpl.php:117 +msgid "Add Note" +msgstr "Notiz hinzufügen" + +#: tmp/tools.b91ef64efc3688266305ea9b42e5017e.rtpl.php:129 +msgid "" +"You need to browse your Shaarli over HTTPS to use this " +"functionality." +msgstr "" +"Um diese Funktion nutzen zu können, musst du Shaarli über HTTPS aufrufen." + +#: tmp/tools.b91ef64efc3688266305ea9b42e5017e.rtpl.php:134 +msgid "Add to" +msgstr "Hinzufügen zu" + +#: tmp/tools.b91ef64efc3688266305ea9b42e5017e.rtpl.php:145 +msgid "3rd party" +msgstr "Von Dritten" + +#: tmp/tools.b91ef64efc3688266305ea9b42e5017e.rtpl.php:147 +#: tmp/tools.b91ef64efc3688266305ea9b42e5017e.rtpl.php:153 +msgid "Plugin" +msgstr "Plugin" + +#: tmp/tools.b91ef64efc3688266305ea9b42e5017e.rtpl.php:148 +#: tmp/tools.b91ef64efc3688266305ea9b42e5017e.rtpl.php:154 +msgid "plugin" +msgstr "Plugin" + +#: tmp/tools.b91ef64efc3688266305ea9b42e5017e.rtpl.php:175 +msgid "" +"Drag this link to your bookmarks toolbar, or right-click it and choose " +"Bookmark This Link" +msgstr "" +"Ziehe diesen Link in deine Lesezeichen-Symbolleiste oder klicke mit der " +"rechten Maustaste darauf und wähle \"Speichere diesen Link als Lesezeichen\"" -- cgit v1.2.3 From 8d2cac1be604accc884b4535788b3cae32b9b4d4 Mon Sep 17 00:00:00 2001 From: ArthurHoaro Date: Tue, 1 May 2018 16:40:08 +0200 Subject: Fix parameter order which was preventing max_dl parameter to work properly --- index.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.php b/index.php index dbc2bb3b..2fe3f821 100644 --- a/index.php +++ b/index.php @@ -1376,8 +1376,8 @@ function renderPage($conf, $pluginManager, $LINKSDB, $history, $sessionManager, // The callback will fill $charset and $title with data from the downloaded page. get_http_response( $url, - $conf->get('general.download_max_size', 4194304), $conf->get('general.download_timeout', 30), + $conf->get('general.download_max_size', 4194304), get_curl_download_callback($charset, $title) ); if (! empty($title) && strtolower($charset) != 'utf-8') { -- cgit v1.2.3 From a1b727efb78b12566098a05073cb928198cf2797 Mon Sep 17 00:00:00 2001 From: ArthurHoaro Date: Tue, 1 May 2018 16:44:51 +0200 Subject: Support redirection in cURL download callback --- application/LinkUtils.php | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/application/LinkUtils.php b/application/LinkUtils.php index 3705f7e9..4df5c0ca 100644 --- a/application/LinkUtils.php +++ b/application/LinkUtils.php @@ -11,6 +11,7 @@ */ function get_curl_download_callback(&$charset, &$title, $curlGetInfo = 'curl_getinfo') { + $isRedirected = false; /** * cURL callback function for CURLOPT_WRITEFUNCTION (called during the download). * @@ -22,16 +23,24 @@ function get_curl_download_callback(&$charset, &$title, $curlGetInfo = 'curl_get * * @return int|bool length of $data or false if we need to stop the download */ - return function(&$ch, $data) use ($curlGetInfo, &$charset, &$title) { + return function(&$ch, $data) use ($curlGetInfo, &$charset, &$title, &$isRedirected) { $responseCode = $curlGetInfo($ch, CURLINFO_RESPONSE_CODE); - if (!empty($responseCode) && $responseCode != 200) { + if (!empty($responseCode) && in_array($responseCode, [301, 302])) { + $isRedirected = true; + return strlen($data); + } + if (!empty($responseCode) && $responseCode !== 200) { return false; } - $contentType = $curlGetInfo($ch, CURLINFO_CONTENT_TYPE); + // After a redirection, the content type will keep the previous request value + // until it finds the next content-type header. + if (! $isRedirected || strpos(strtolower($data), 'content-type') !== false) { + $contentType = $curlGetInfo($ch, CURLINFO_CONTENT_TYPE); + } if (!empty($contentType) && strpos($contentType, 'text/html') === false) { return false; } - if (empty($charset)) { + if (!empty($contentType) && empty($charset)) { $charset = header_extract_charset($contentType); } if (empty($charset)) { -- cgit v1.2.3 From 16d35cf77e0b650091a5a91a3c2d2c61631eb1cb Mon Sep 17 00:00:00 2001 From: ArthurHoaro Date: Sat, 31 Mar 2018 13:49:07 +0200 Subject: Use Travis stages to run JS tests separately --- .editorconfig | 2 +- .travis.yml | 41 +++++++++++++++++++++++++++++++---------- 2 files changed, 32 insertions(+), 11 deletions(-) diff --git a/.editorconfig b/.editorconfig index 8783e4cb..f0d83ee3 100644 --- a/.editorconfig +++ b/.editorconfig @@ -10,7 +10,7 @@ trim_trailing_whitespace = true indent_style = space indent_size = 4 -[*.{htaccess,html,js,json,xml}] +[*.{htaccess,html,js,json,xml,yml}] indent_size = 2 [*.php] diff --git a/.travis.yml b/.travis.yml index 1b2bf97b..14b91cf2 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,23 +1,44 @@ sudo: false dist: trusty -language: php + +matrix: + include: + - language: php + php: 7.2 + - language: php + php: 7.1 + - language: php + php: 7.0 + - language: php + php: 5.6 + - language: node_js + node_js: 8 + cache: + yarn: true + directories: + - $HOME/.cache/yarn + + install: + - yarn install + + before_script: + - PATH=${PATH//:\.\/node_modules\/\.bin/} + + script: + - yarn run build # Just to be sure that the build isn't broken + - make eslint + cache: - yarn: true directories: - $HOME/.composer/cache - - $HOME/.cache/yarn -php: - - 7.2 - - 7.1 - - 7.0 - - 5.6 + install: - - yarn install - composer install --prefer-dist + before_script: - PATH=${PATH//:\.\/node_modules\/\.bin/} + script: - make clean - make check_permissions - - make eslint - make all_tests -- cgit v1.2.3 From c69585f30350876c3f9a9b090ff1165c3ec98b79 Mon Sep 17 00:00:00 2001 From: ArthurHoaro Date: Thu, 10 May 2018 13:25:07 +0200 Subject: Reformat default theme SCSS to match SASS rules --- assets/default/scss/shaarli.scss | 2046 +++++++++++++++++++++----------------- 1 file changed, 1117 insertions(+), 929 deletions(-) diff --git a/assets/default/scss/shaarli.scss b/assets/default/scss/shaarli.scss index 25440de1..09d5efbe 100644 --- a/assets/default/scss/shaarli.scss +++ b/assets/default/scss/shaarli.scss @@ -1,1357 +1,1545 @@ -$fa-font-path: "~font-awesome/fonts"; +$fa-font-path: '~font-awesome/fonts'; -@import "~font-awesome/scss/font-awesome.scss"; +@import '~font-awesome/scss/font-awesome'; @import '~purecss/build/pure.css'; @import '~purecss/build/grids-responsive.css'; @import '~pure-extras/css/pure-extras.css'; @import '~awesomplete/awesomplete.css'; -/** - * General - */ +$white: #fff; +$black: #000; +$almost-white: #f5f5f5; +$dark-grey: #252525; +$light-grey: #797979; +$main-green: #1b926c; +$light-green: #b0ddce; +$dark-green: #2a4c41; +$red: #ac2925; +$orange: #f89406; +$blue: #0b5ea6; +$background-color: #d0d0d0; +$background-linklist-info: #ddd; +$light-shadow: rgba(255, 255, 255, .078); +$dark-shadow: rgba(0, 0, 0, .298); +$warning-text: #97600d; +$form-input-border: #d8d8d8; +$form-input-background: #eee; + +// General body { - background: #d0d0d0; + background: $background-color; } .strong { - font-weight: bold; + font-weight: bold; } .clear { - clear: both; + clear: both; } .center { - text-align: center; - margin: auto; + margin: auto; + text-align: center; } .label { - display: inline-block; - padding: .25em .4em; - font-size: 75%; - font-weight: 700; - line-height: 1; - text-align: center; - white-space: nowrap; - vertical-align: baseline; - border-radius: .25rem; + display: inline-block; + border-radius: .25rem; + padding: .25em .4em; + vertical-align: baseline; + text-align: center; + line-height: 1; + white-space: nowrap; + font-size: 75%; + font-weight: 700; } pre { - max-width: 100%; + max-width: 100%; } @font-face { - font-family: 'Roboto'; - font-weight: 400; - font-style: normal; - src: - local('Roboto'), - local('Roboto-Regular'), - url('../fonts/Roboto-Regular.woff2') format('woff2'), - url('../fonts/Roboto-Regular.woff') format('woff'); + font-family: 'Roboto'; + font-weight: 400; + font-style: normal; + src: local('Roboto'), + local('Roboto-Regular'), + url('../fonts/Roboto-Regular.woff2') format('woff2'), + url('../fonts/Roboto-Regular.woff') format('woff'); } @font-face { - font-family: 'Roboto'; - font-weight: 700; - font-style: normal; - src: - local('Roboto'), - local('Roboto-Bold'), - url('../fonts/Roboto-Bold.woff2') format('woff2'), - url('../fonts/Roboto-Bold.woff') format('woff'); -} - -body, .pure-g [class*="pure-u"] { - font-family: Roboto, Arial, sans-serif; -} - -/** - * Extends Pure grids responsive to hide items. - * Use xx-0 to hide an item on xx screen. - * Display it at any level with xx-visible. - */ -.pure-u-0 { display: none !important; } + font-family: 'Roboto'; + font-weight: 700; + font-style: normal; + src: local('Roboto'), + local('Roboto-Bold'), + url('../fonts/Roboto-Bold.woff2') format('woff2'), + url('../fonts/Roboto-Bold.woff') format('woff'); +} + +body, +.pure-g [class*='pure-u'] { + font-family: Roboto, Arial, sans-serif; +} + +// Extends Pure grids responsive to hide items. +// Use xx-0 to hide an item on xx screen. +// Display it at any level with xx-visible. +.pure-u-0 { + display: none !important; +} + @media screen and (min-width: 35.5em) { - .pure-u-sm-0 { display: none !important; } - .pure-u-sm-visible { display: inline-block !important; } + .pure-u-sm-0 { + display: none !important; + } + + .pure-u-sm-visible { + display: inline-block !important; + } } + @media screen and (min-width: 48em) { - .pure-u-md-0 { display: none !important; } - .pure-u-md-visible { display: inline-block !important; } + .pure-u-md-0 { + display: none !important; + } + + .pure-u-md-visible { + display: inline-block !important; + } } + @media screen and (min-width: 64em) { - .pure-u-lg-0 { display: none !important; } - .pure-u-lg-visible { display: inline-block !important; } + .pure-u-lg-0 { + display: none !important; + } + + .pure-u-lg-visible { + display: inline-block !important; + } } + @media screen and (min-width: 80em) { - .pure-u-xl-0 { display: none !important; } - .pure-u-xl-visible { display: inline-block !important; } + .pure-u-xl-0 { + display: none !important; + } + + .pure-u-xl-visible { + display: inline-block !important; + } } -/** - * Make pure-extras alert closable. - */ -.pure-alert-closable .fa-times { +// Make pure-extras alert closable. +.pure-alert-closable { + .fa-times { float: right; + } } + .pure-alert-close { - cursor: pointer; + cursor: pointer; } .pure-alert-success { - background-color: #1b926c; + background-color: $main-green; } -.anchor:target { +.anchor { + &:target { padding-top: 40px; + } } -/** - * MENU - **/ + +// MENU .shaarli-menu { - position: fixed; - top: 0; - width: 100%; - --height: 50px; - background: #1b926c; - -webkit-font-smoothing: antialiased; - /* Hack to transition with auto height: http://stackoverflow.com/a/8331169/1484919 */ - max-height: 45px; - transition: max-height 0.5s; - overflow: hidden; - z-index: 999; + position: fixed; + top: 0; + transition: max-height .5s; + z-index: 999; + background: $main-green; + width: 100%; + // Hack to transition with auto height: http://stackoverflow.com/a/8331169/1484919 + max-height: 45px; + overflow: hidden; + -webkit-font-smoothing: antialiased; + + &.open { + transition: max-height .75s; + max-height: 500px; + } } -/* Chrome bugfix: with 100% height, it only displays the first element. */ .pure-menu-item { - height: 45px; -} - -.shaarli-menu.open { - max-height: 500px; - transition: max-height 0.75s; + // Chrome bugfix: with 100% height, it only displays the first element. + height: 45px; + + &:hover { + &::after { + display: block; + margin: -4px auto 0; + background: $white; + width: 100%; + height: 4px; + content: ''; + } + } } .head-logo { - float: left; - margin: 0 5px 0 0; + float: left; + margin: 0 5px 0 0; } -.pure-menu-link, -.pure-menu-link:visited, -.pure-menu-selected .pure-menu-link, -.pure-menu-selected .pure-menu-link:visited { - padding: 0.8em 1em; - color: #f5f5f5; +%menu-link { + padding: .8em 1em; + color: $almost-white; } -.pure-menu-link:hover, .pure-menu-link:focus, -.pure-menu-selected .pure-menu-link:hover, -.pure-menu-selected .pure-menu-link:focus { - color: #fff; - background: transparent; +%menu-link-hover { + background: transparent; + color: $white; } -.pure-menu-item:hover::after { - margin: -4px auto 0 auto; - display: block; - content:""; - background: #fff; - height: 4px; - width: 100%; +.pure-menu-link { + @extend %menu-link; + + &:visited { + @extend %menu-link; + } + + &:hover, + &:focus { + @extend %menu-link-hover; + } } -.menu-toggle { - width: 34px; - height: 45px; - position: absolute; - top: 5px; - right: 0; - display: none; +.pure-menu-selected { + .pure-menu-link { + @extend %menu-link; + + &:visited { + @extend %menu-link; + } + + &:hover, + &:focus { + @extend %menu-link-hover; + } + } } -.menu-toggle .bar { - background-color: #b0ddce; +.menu-toggle { + display: none; + position: absolute; + top: 5px; + right: 0; + width: 34px; + height: 45px; + + .bar { display: block; - width: 20px; - height: 2px; - border-radius: 100px; position: absolute; top: 18px; right: 7px; - transition: all 0.5s; -} + border-radius: 100px; + background-color: $light-green; + width: 20px; + height: 2px; + transition-duration: .5s; -.menu-toggle .bar:first-child { - transform: translateY(-6px); -} + &:first-child { + transform: translateY(-6px); + } + } -.menu-toggle.x .bar { - transform: rotate(45deg); -} + &.x { + .bar { + transform: rotate(45deg); -.menu-toggle.x .bar:first-child { - transform: rotate(-45deg); + &:first-child { + transform: rotate(-45deg); + } + } + } } @media screen and (max-width: 64em) { - .menu-toggle { - display: block; - } + .menu-toggle { + display: block; + } } .header-buttons { - text-align: right; + text-align: right; } .linkcount { - color: #252525; - font-size: 0.8em; + color: $dark-grey; + font-size: .8em; } @media screen and (min-width: 64em) { - .linkcount { - position: absolute; - right: 5px; + .linkcount { + position: absolute; + right: 5px; + } +} + +.searchform-block { + width: 100%; + text-align: center; + + input { + &[type='text'] { + border: medium none currentColor; + border-radius: 2px; + box-shadow: 0 1px 0 $light-shadow, 0 1px 1px $dark-shadow inset; + background: $almost-white; + padding: 0 5px; + width: 260px; + height: 30px; + color: $dark-grey; + + &::-webkit-input-placeholder { + color: $light-grey; + } } -} - -#search, #search-linklist, #search-tagcloud { - text-align: center; - width: 100%; -} + } -#search input[type="text"], #search-linklist input[type="text"] { - padding: 0 5px; - height: 30px; - width: 260px; - background: #f5f5f5; - border: medium none currentColor; - box-shadow: 0 1px 0 rgba(255, 255, 255, 0.078), 0 1px 1px rgba(0, 0, 0, 0.298) inset; + button { + border: 0; border-radius: 2px; - color: #252525; -} -@media screen and (max-width: 64em) { - .searchform { - max-width: 260px; - margin: 0 auto; - } -} - -/* because chrome */ -#search input[type="text"]::-webkit-input-placeholder, -#search-linklist input[type="text"]::-webkit-input-placeholder { - color: #777777; + background-color: $main-green; + padding: 4px 8px 6px; + color: $almost-white; + } } -#search button, -#search-tagcloud button, -#search-linklist button { - padding: 4px 8px 6px 8px; - background-color: #1B926C; - color: #f5f5f5; - border: none; - border-radius: 2px; +@media screen and (max-width: 64em) { + .searchform { + margin: 0 auto; + max-width: 260px; + } } -#search-tagcloud button { +.search-tagcloud { + button { width: 90%; + } } @media screen and (max-width: 64em) { - #search-linklist button { - width: 100%; + .search-linklist { + button { + width: 100%; } - #search-linklist .awesomplete { - margin: 5px 0; - } -} -#search button:hover, -#search-linklist button:hover, -#search-tagcloud button:hover { - color: #d0d0d0; -} - -#search, -#search-linklist { - padding: 6px 0; -} - -@media screen and (max-width: 64em) { - #search, #search * { - visibility: hidden; + .awesomplete { + margin: 5px 0; } + } } -.subheader-form a.button { - color: #f5f5f5; - font-weight: bold; - text-decoration: none; - border: 2px solid #f5f5f5; - border-radius: 5px; - padding: 3px 10px; +.header-search, +.search-linklist, +.search-tagcloud { + button { + &:hover { + color: $background-color; + } + } } -.linklist-item-editbuttons .delete-checkbox { - display: none; +.header-search, +.search-linklist { + padding: 6px 0; } -#header-login-form input[type="text"], #header-login-form input[type="password"] { - width: 200px; +@media screen and (max-width: 64em) { + .header-search , + .header-search * { + visibility: hidden; + } } -/* because chrome */ -#header-login-form input[type="text"]::-webkit-input-placeholder, -#header-login-form input[type="password"]::-webkit-input-placeholder { - color: #777777; +%subheader-form-input { + border: medium none currentColor; + border-radius: 2px; + box-shadow: 0 1px 0 $light-shadow, 0 1px 4px $dark-shadow inset; + background: $almost-white; + padding: 5px 5px 3px 15px; + width: 20%; + height: 20px; + color: $dark-grey; } .subheader-form { - visibility: hidden; - position: fixed; - width: 100%; - text-align: center; - background: #1b926c; - display: block; - z-index: 999; - height: 30px; - padding: 5px 0; -} - -@media screen and (min-width: 64em) { - .subheader-form.open, .subheader-form.open * { - visibility: visible; + display: block; + position: fixed; + visibility: hidden; + z-index: 999; + background: $main-green; + padding: 5px 0; + width: 100%; + height: 30px; + text-align: center; + + input { + &[type='text'], + &[type='password'] { + @extend %subheader-form-input; + + &::-webkit-input-placeholder { + color: $dark-grey; + } } -} + } -.subheader-form input[type="text"], .subheader-form input[type="password"], .subheader-form .remember-me { - padding: 5px 5px 3px 15px; - height: 20px; - width: 20%; - background: #f5f5f5; - border: medium none currentColor; + &[type='submit'] { + display: inline-block; + margin: 0 0 5px; + border: 1px solid $almost-white; border-radius: 2px; - box-shadow: 0 1px 0 rgba(255, 255, 255, 0.078), 0 1px 4px rgba(0, 0, 0, 0.298) inset; - color: #252525; -} + background: $main-green; + padding: 4px 0; + width: 100px; + height: 28px; + color: $almost-white; -/* because chrome */ -.subheader-form input[type="text"]::-webkit-input-placeholder, -.subheader-form input[type="password"]::-webkit-input-placeholder -{ - color: #252525; -} + &:hover { + background: $almost-white; + color: $main-green; + } + } + + .remember-me { + @extend %subheader-form-input; -.subheader-form .remember-me { display: inline-block; - width: auto; - padding: 5px 20px 3px 20px; cursor: pointer; -} + padding: 5px 20px 3px; + width: auto; -.subheader-form .remember-me label, .subheader-form .remember-me input { - cursor: pointer; + label, + input { + cursor: pointer; + } + } + + a { + &.button { + border: 2px solid $almost-white; + border-radius: 5px; + padding: 3px 10px; + text-decoration: none; + color: $almost-white; + font-weight: bold; + } + } } -.subheader-form input[type="submit"] { - display: inline-block; - margin: 0 0 5px 0; - padding: 4px 0 4px 0; - height: 28px; - width: 100px; - background: #1b926c; - border: 1px solid #f5f5f5; - color: #f5f5f5; - border-radius: 2px; +.header-login-form { + input { + &[type='text'], + &[type='password'] { + width: 200px; + + // because chrome + &::-webkit-input-placeholder { + color: $light-grey; + } + } + } } -.subheader-form input[type="submit"]:hover { - background: #f5f5f5; - color: #1b926c; +@media screen and (min-width: 64em) { + .subheader-form { + &.open { + visibility: visible; + + * { + visibility: visible; + } + } + } } .new-version-message { - text-align: center; -} + text-align: center; -.new-version-message a { - color: rgb(151, 96, 13); + a { + color: $warning-text; font-weight: bold; + } } -/** - * CONTENT - GENERAL - */ -#content { - position: relative; - z-index: 2; - margin-top: 45px; +// CONTENT - GENERAL +.container { + position: relative; + z-index: 2; + margin-top: 45px; } -/** - * Plugins additional forms - */ +// Plugins additional forms .toolbar-plugin { - margin: 5px 0; - text-align: center; -} - -.toolbar-plugin input[type="text"] { - padding: 0 5px; - height: 30px; - width: 300px; - background: #f5f5f5; - border: medium none currentColor; - box-shadow: 0 1px 0 rgba(255, 255, 255, 0.078), 0 1px 1px rgba(0, 0, 0, 0.298) inset; - border-radius: 2px; - color: #252525; -} - -/* because chrome */ -.toolbar-plugin input[type="text"]::-webkit-input-placeholder { - color: #777777; -} - -.toolbar-plugin input[type="submit"] { - padding: 0 10px; - height: 30px; - background: #f5f5f5; - border: medium none currentColor; - border-radius: 2px; - color: #252525; -} + margin: 5px 0; + text-align: center; + + input { + &[type='text'] { + border: medium none currentColor; + border-radius: 2px; + box-shadow: 0 1px 0 $light-shadow, 0 1px 1px $dark-shadow inset; + background: $almost-white; + padding: 0 5px; + width: 300px; + height: 30px; + color: $dark-grey; + + &::-webkit-input-placeholder { + color: $light-grey; + } + } -.toolbar-plugin input[type="submit"]:hover { - background: #fff; + &[type='submit'] { + border: medium none currentColor; + border-radius: 2px; + background: $almost-white; + padding: 0 10px; + height: 30px; + color: $dark-grey; + + &:hover { + background: $white; + } + } + } } @media screen and (max-width: 64em) { - .toolbar-plugin input[type="text"] { + .toolbar-plugin { + input { + &[type='text'] { width: 70%; - + } } + } } -/** - * CONTENT - LINKLIST PAGING - * 64em -> lg - */ +// CONTENT - LINKLIST PAGING +// 64em -> lg .linklist-filters { - margin: 5px 0; - color: #252525; - font-size: 0.9em; -} + margin: 5px 0; + color: $dark-grey; + font-size: .9em; -.linklist-filters a { + a { padding: 5px 8px; text-decoration: none; -} + } -.linklist-filters .filter-off { - color: #252525; - background: #f5f5f5; -} + .filter-off { + background: $almost-white; + color: $dark-grey; + } -.linklist-filters .filter-on { - color: #b0ddce; - background: #1b926c; -} + .filter-on { + background: $main-green; + color: $light-green; + } -.linklist-filters .filter-block { - color: #f5f5f5; - background: #ac2925; + .filter-block { + background: $red; + color: $almost-white; + } } .linklist-pages { - margin: 5px 0; - color: #252525; - text-align: center; -} + margin: 5px 0; + text-align: center; + color: $dark-grey; -.linklist-pages a { - color: #252525; + a { text-decoration: none; + color: $dark-grey; + + &:hover { + color: $white; + } + } } -.linklist-pages a:hover { - color: #fff; +%linksperpage-button { + display: inline-block; + width: 20px; + text-align: center; } .linksperpage { - margin: 5px 0; - text-align: right; - color: #252525; - font-size: 0.9em; -} + margin: 5px 0; + text-align: right; + color: $dark-grey; + font-size: .9em; -.linksperpage a { - padding: 5px 5px; - text-decoration: none; - color: #252525; - background: #f5f5f5; -} + form { + display: inline; + } -.linksperpage a, .linksperpage input[type="text"] { - display: inline-block; - width: 20px; - text-align: center; -} + a { + @extend %linksperpage-button; -.linksperpage form { - display: inline; + background: $almost-white; + padding: 5px; + text-decoration: none; + color: $dark-grey; + } + + input { + &[type='text'] { + @extend %linksperpage-button; + + margin: 0; + border: medium none currentColor; + background: $almost-white; + padding: 4px 5px 3px 8px; + height: 20px; + color: $dark-grey; + font-size: .8em; + } + } } -.linksperpage input[type="text"] { - height: 20px; - margin: 0; - padding: 4px 5px 3px 8px; - background: #f5f5f5; - border: medium none currentColor; - color: #252525; - font-size: 0.8em; +// CONTENT - LINKLIST ITEMS +%private-border { + display: block; + position: absolute; + top: 0; + left: 3px; + z-index: 1; + background: $orange; + width: 2px; + height: 96%; + content: ''; } -/** - * CONTENT - LINKLIST ITEMS - */ .linklist-item { - margin: 0 0 10px 0; - background: #f5f5f5; - box-shadow: 1px 1px 3px #797979; + margin: 0 0 10px; + box-shadow: 1px 1px 3px $light-grey; + background: $almost-white; + + &.private { + .linklist-item-title { + &::before { + @extend %private-border; + margin-top: 3px; + } + } + + .linklist-item-description { + &::before { + @extend %private-border; + height: 100%; + } + } + } } .linklist-item-buttons { - background: transparent; - position: relative; - width: 23px; - z-index: 99; + position: relative; + z-index: 99; + background: transparent; + width: 23px; } .linklist-item-buttons-right { - float: right; - margin-right: -25px; + float: right; + margin-right: -25px; } .linklist-item-buttons * { - display: block; - float: left; - width:100%; - margin: auto; - text-align: center; -} - -.linklist-item-title, .linklist-item-title h2 { - margin: 0; - word-wrap: break-word; + display: block; + float: left; + margin: auto; + width: 100%; + text-align: center; } .linklist-item-title { - position: relative; - background: #f5f5f5; -} + position: relative; + margin: 0; + background: $almost-white; + word-wrap: break-word; -.linklist-item-title h2 { - padding: 3px 10px 0 10px; + h2 { + margin: 0; + padding: 3px 10px 0; line-height: 30px; -} + word-wrap: break-word; -.linklist-item-title h2 a { - font-size: 0.7em; - color: #252525; - text-decoration: none; - vertical-align: middle; -} + a { + vertical-align: middle; + text-decoration: none; + color: $dark-grey; + font-size: .7em; + + &:visited { + .linklist-link { + color: $dark-green; + } + } + + &:hover { + color: $dark-grey; + } + } + } -.linklist-item-title .linklist-link { + .linklist-link { + color: $main-green; font-size: 1.1em; - color: #1b926c; -} - -.linklist-item-title h2 a:visited .linklist-link { - color: #2a4c41; -} - -.linklist-item-title h2 a:hover, .linklist-item-title .linklist-link:hover{ - color: #252525; -} + &:hover { + color: $dark-grey; + } + } -.linklist-item-title .label-private { - border: solid 1px #F89406; + .label-private { + border: solid 1px $orange; + color: $orange; font-family: Arial, sans-serif; - font-size: 0.65em; - color: #F89406; + font-size: .65em; + } } .fold-button { - display: none; - color: #252525; + display: none; + color: $dark-grey; } .linklist-item-editbuttons { - float: right; - padding: 8px 5px; -} + float: right; + padding: 8px 5px; -.linklist-item-editbuttons * { + * { display: block; float: left; margin: 0 1px; -} + } -.linklist-item-editbuttons a { + a { font-size: 1em; + } + + .delete-checkbox { + display: none; + } } .edit-link { - font-size: 1.2em; - color: #0b5ea6; + color: $blue; + font-size: 1.2em; } .delete-link { - font-size: 1.3em; - color: #ac2925 !important; + color: $red !important; + font-size: 1.3em; } .linklist-item-description { - position: relative; - padding: 0 10px; - word-wrap: break-word; - color: #252525; - line-height: 1.3em; -} + position: relative; + padding: 0 10px; + line-height: 1.3em; + color: $dark-grey; + word-wrap: break-word; -.linklist-item-description a { + a { text-decoration: none; - color: #1b926c; -} + color: $main-green; -.linklist-item-description a:hover { - color: #252525; -} + &:hover { + color: $dark-grey; + } -.linklist-item-description a:visited { - color: #14553f; + &:visited { + color: $dark-green; + } + } } .linklist-item-thumbnail { - position: relative; - padding: 0 0 0 5px; - margin: 0; - float: right; - z-index: 50; - height: 90px; -} - -.linklist-item.private .linklist-item-title::before, -.linklist-item.private .linklist-item-description::before { - position: absolute; - left: 3px; - top: 0; - display: block; - content:""; - background: #F89406; - height: 96%; - width: 2px; - z-index: 1; -} - -.linklist-item.private .linklist-item-description::before { - height: 100%; -} - -.linklist-item.private .linklist-item-title::before { - margin-top: 3px; + position: relative; + float: right; + z-index: 50; + margin: 0; + padding: 0 0 0 5px; + height: 90px; } .linklist-item-infos { - padding: 4px 8px 4px 8px; - background: #ddd; - color: #252525; -} + background: $background-linklist-info; + padding: 4px 8px; + color: $dark-grey; -.linklist-item-infos a { - color: #252525; + a { text-decoration: none; -} + color: $dark-grey; -.linklist-item-infos a:hover { - color: #000; -} + &:hover { + color: $black; + } + } -.linklist-item-infos .linklist-item-tags { - font-size: 0.8em; -} + .linklist-item-tags { + font-size: .8em; + } -.linklist-item-infos .label-tag { + .label-tag { font-size: 1em; + } + + .mobile-buttons { + text-align: right; + } + + .linklist-plugin-icon { + display: inline-block; + margin: 0 2px; + width: 16px; + height: 16px; + } } .linklist-item-infos-dateblock { - font-size: 0.9em; + font-size: .9em; } .linklist-plugin-icon { - width: 13px; - height: 13px; + width: 13px; + height: 13px; } .linklist-item-infos-url { - text-align: right; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - font-size: 0.8em; - height:23px; - line-height:23px; -} - -.linklist-item-infos .mobile-buttons { - text-align: right; -} - -.linklist-item-infos .linklist-plugin-icon { - display: inline-block; - margin: 0 2px; - width: 16px; - height: 16px; + height: 23px; + overflow: hidden; + text-align: right; + text-overflow: ellipsis; + line-height: 23px; + white-space: nowrap; + font-size: .8em; } .linklist-item-infos-controls-group { - display: inline-block; - border-right: 1px solid #5d5d5d; - padding-right: 6px; + display: inline-block; + border-right: 1px solid $light-grey; + padding-right: 6px; } .ctrl-edit { - margin: 0 7px; + margin: 0 7px; } -/** 64em -> lg **/ +// 64em -> lg @media screen and (max-width: 64em) { - .linklist-item-infos-url { - text-align: left; - } + .linklist-item-infos-url { + text-align: left; + } } -/** - * Footer - */ -#footer { - margin: 20px 0; - padding: 5px; - text-align: center; - color: #252525; -} +// Footer +.footer-container { + margin: 20px 0; + padding: 5px; + text-align: center; + color: $dark-grey; -#footer:before { + &::before { display: block; - content:""; - background: linear-gradient(to right, #949393, #252525, #949393); - height: 1px; - width: 80%; margin: 10px auto; + background: linear-gradient(to right, $background-color, $dark-grey, $background-color); + width: 80%; + height: 1px; + content: ''; + } + + a { + color: $dark-grey; + } +} + +// PAGE FORM +%page-form-input { + margin: 10px 0; + border: solid 1px $form-input-border; + border-radius: 2px; + background: $form-input-background; + padding: 5px 5px 3px 15px; + width: 90%; + height: 35px; + color: $dark-grey; + box-sizing: border-box; +} + +%page-form-button { + display: inline-block; + margin: 15px 5px; + border: 0; + box-shadow: 1px 1px 1px $form-input-border, -1px -1px 6px $form-input-border, -1px 1px 2px $form-input-border, 1px -1px 2px $form-input-border; + background: $main-green; + min-width: 150px; + height: 35px; + vertical-align: center; + text-decoration: none; + line-height: 35px; + color: $almost-white; + font-size: 1.2em; + font-weight: normal; } -#footer a { - color: #252525; -} - -/** - * PAGE FORM - */ .page-form { - margin: 20px 0 0 0; - background: #f5f5f5; - box-shadow: 1px 1px 2px #797979; - color: #252525; - overflow: hidden; -} - -.page-form .window-title { - margin: 0 0 10px 0; + margin: 20px 0 0; + box-shadow: 1px 1px 2px $light-grey; + background: $almost-white; + overflow: hidden; + color: $dark-grey; + + .window-title { + margin: 0 0 10px; + background: $almost-white; padding: 10px 0; width: 100%; - color: #1b926c; - background: #f5f5f5; text-align: center; -} + color: $main-green; + } -.page-form .window-subtitle { + .window-subtitle { text-align: center; -} + } -.page-form a { - color: #1b926c; - font-weight: bold; + a { text-decoration: none; -} + color: $main-green; + font-weight: bold; -.page-form p { - padding: 5px 10px; + &.button { + @extend %page-form-button; + } + } + + p { margin: 0; -} + padding: 5px 10px; + } -.page-form input[type="text"], -.page-form input[type="password"], -.page-form textarea { - box-sizing: border-box; - margin: 10px 0; - padding: 5px 5px 3px 15px; - height: 35px; - width: 90%; - background: #eeeeee; - border: solid 1px #d8d8d8; - border-radius: 2px; - color: #252525; -} + input { + &[type='text'] { + @extend %page-form-input; + + &::-webkit-input-placeholder { + color: $light-grey; + } + } + + &[type='password'] { + @extend %page-form-input; + + &::-webkit-input-placeholder { + color: $light-grey; + } + } + + &[type='submit'] { + @extend %page-form-button; + } + } + + textarea { + @extend %page-form-input; -.page-form textarea { - min-height: 240px; padding: 15px 5px 3px 15px; + min-height: 240px; resize: vertical; overflow-y: auto; - word-wrap:break-word -} + word-wrap: break-word; + } -/* because chrome */ -.page-form input[type="text"]::-webkit-input-placeholder, -.page-form input[type="password"]::-webkit-input-placeholder { - color: #777777; -} + select { + color: $dark-grey; + } -.page-form input[type="submit"], .page-form a.button { - margin: 15px 5px; - height: 35px; - line-height: 35px; - width: 150px; - background: #1b926c; - color: #f5f5f5; - border: none; - box-shadow: 1px 1px 1px #ddd, -1px -1px 6px #ddd, -1px 1px 2px #ddd, 1px -1px 2px #ddd; - font-size: 1.2em; - text-decoration: none; - vertical-align: center; - font-weight: normal; - display: inline-block; -} + .button { + &.button-red { + background: $red; + } + } + .submit-buttons { + margin-bottom: 10px; + } -.page-form .button.button-red { - background: #ac2925; -} + section { + margin: 10px 0 25px; + } -.page-form .submit-buttons { - margin-bottom: 10px; -} + table, + th, + td { + border-width: 1px 0; + border-style: solid; + border-color: $light-grey; + } -@media screen and (min-width: 64em) { - .page-form .submit-buttons { - position: relative; + th, + td { + padding: 5px; + } + + table { + margin: auto; + width: 90%; + + .order { + text-decoration: none; + color: $dark-grey; } + } - .page-form .submit-buttons .button.button-red { - position: absolute; - right: 5%; + .awesomplete { + width: 90%; + + input { + width: 100%; + } + } + + div { + .awesomplete { + > ul { + color: $black; + } } + } +} + +@media screen and (min-width: 64em) { + .page-form { + .submit-buttons { + position: relative; + + .button { + &.button-red { + position: absolute; + right: 5%; + } + } + } + } } @media screen and (max-width: 64em) { - .page-form .submit-buttons .button { + .page-form { + .submit-buttons { + .button { display: block; margin: auto; + } } + } } -.page-form select { - color: #252525; -} - -/** - * PAGE FORM - LIGHT - */ -.page-form-light div, .page-form-light p { +// PAGE FORM - LIGHT +.page-form-light { + div, + p { text-align: center; + } } -/** - * PAGE FORM - COMPLETE - */ -.page-form-complete div, .page-form-complete p { - color: #252525; +// PAGE FORM - COMPLETE +%page-form-valign { + position: absolute; + top: 50%; + transform: translateY(-50%); } -.page-form-complete .form-label, .page-form-complete .form-input { +.page-form-complete { + div, + p { + color: $dark-grey; + } + + .form-label, + .form-input { position: relative; height: 60px; -} + } -.page-form-complete .form-label label, -.page-form-complete .form-input input, -.page-form-complete .form-input select.align, -.page-form-complete .timezone { - position: absolute; - top: 50%; - transform: translateY(-50%); -} + .form-label { + label { + @extend %page-form-valign; -.page-form-complete .form-label label { - text-align: right; - right: 0; - padding: 0 20px; -} + right: 0; + padding: 0 20px; + text-align: right; + } + } -.page-form-complete .label-name { + .label-name { font-weight: bold; -} - -.page-form-complete .label-desc { - font-size: 0.8em; -} + } -.page-form-complete input[type="text"], -.page-form-complete input[type="password"], -.page-form-complete textarea { - margin: 0; -} - -.page-form section { - margin: 10px 0 25px 0; -} + .label-desc { + font-size: .8em; + } -.page-form table { - margin: auto; - width: 90%; -} + .form-input { + input { + @extend %page-form-valign; -.page-form table .order { - text-decoration: none; - color: #252525; -} + &[type='text'], + &[type='password'] { + margin: 0; + } + } -.page-form table, .page-form th, .page-form td { - border-width: 1px 0; - border-style: solid; - border-color: #aaaaaa; -} + select { + &.align { + @extend %page-form-valign; + } + } + } -.page-form th, .page-form td { - padding: 5px; + textarea { + margin: 0; + } + .timezone { + @extend %page-form-valign; + } } -/* Awesomeplete fix */ -div.awesomplete { +// Awesomeplete fix +div { + &.awesomplete { width: inherit; -} -div.awesomplete > input { - display: inherit; -} + > input { + display: inherit; + } -div.awesomplete > ul { - z-index: 9999; + > ul { + z-index: 9999; + } + } } -.page-form .awesomplete { - width: 90%; +form { + &[name='linkform'] { + &.page-form { + overflow: visible; + } + } } -.page-form .awesomplete input { - width: 100%; -} +@media screen and (max-width: 64em) { + %page-form-valign-mobile { + position: inherit; + top: inherit; + transform: translateY(0); + } -.page-form div.awesomplete > ul { - color: black; -} + .page-form-complete { + .form-label { + height: inherit; -form[name="linkform"].page-form { - overflow: visible; -} + label { + @extend %page-form-valign-mobile; -@media screen and (max-width: 64em) { - .page-form-complete .form-label { - height: inherit; + display: block; + margin: 10px 0 0; + text-align: left; + } } - .page-form-complete .form-label label, - .page-form-complete .form-input input, - .page-form-complete .timezone { - position: inherit; - top: inherit; - transform: translateY(0); - } + .form-input { + text-align: center; - .page-form-complete .form-input input[type="checkbox"] { - position: absolute; - top: 50%; - right: 50%; - transform: translateY(-50%); - } + input { + @extend %page-form-valign-mobile; - .page-form-complete .form-input { - text-align: center; + &[type='checkbox'] { + position: absolute; + top: 50%; + right: 50%; + transform: translateY(-50%); + } + } } - .page-form-complete .form-label label { - display: block; - text-align: left; - margin: 10px 0 0 0; + .timezone { + @extend %page-form-valign-mobile; } - .timezone-continent:after { - content:"\a\a"; - white-space: pre; + .radio-buttons { + padding: 5px 15px; + text-align: left; } + } - .page-form-complete .radio-buttons { - text-align: left; - padding: 5px 15px; + .timezone-continent { + &::after { + white-space: pre; + content: '\a\a'; } + } } -/** - * Page visitor (page form extended) - */ +// Page visitor (page form extended) .page-visitor { - color: #252525; + color: $dark-grey; } -#page404 { - color: #3f3f3f; +.page404-container { + color: $dark-grey; } -/** - * EDIT LINK - */ -#editlinkform .created-date { - color: #767676; +// EDIT LINK +.edit-link-container { + .created-date { margin-bottom: 10px; + color: $light-grey; + } } -/** - * LOGIN - */ -#login-form .remember-me { +// LOGIN +.login-form-container { + .remember-me { margin: 5px 0; + } } -/** - * Search results - */ -.search-result a { - color: white; +// Search results +.search-result { + a { text-decoration: none; -} + color: $white; + } -.search-result .label-tag { - border-color: white; -} + .label-tag { + border-color: $white; -.search-result .label-tag .remove { - border-left: white 1px solid; - padding: 0 0 0 5px; - margin: 0 0 0 5px; -} + .remove { + margin: 0 0 0 5px; + border-left: $white 1px solid; + padding: 0 0 0 5px; + } + } -.search-result .label-private { - border: 1px solid white; + .label-private { + border: 1px solid $white; + } } -/** - * TOOLS - */ +// TOOLS .tools-item { - margin: 10px 0; -} + margin: 10px 0; -.tools-item .pure-button:hover { - background-image: none; - background-color: #1b926c; - color: #f5f5f5; + .pure-button { + &:hover { + background-color: $main-green; + background-image: none; + color: $almost-white; + } + } } -/** - * PLUGIN ADMIN - */ -#pluginform .mobile-row { - font-size: 0.9em; -} +// PLUGIN ADMIN +.pluginform-container { + .mobile-row { + font-size: .9em; + } -#pluginform .more { + .more { margin-top: 10px; + } } @media screen and (max-width: 64em) { - #pluginform .main-row, #pluginform .main-row td { - border-bottom-style: none; - } + .pluginform-container { + .main-row { + border-top-style: none; + border-bottom-style: none; - #pluginform .mobile-row, #pluginform .mobile-row td { + td { border-top-style: none; + border-bottom-style: none; + } } + } } -/** - * IMPORT - */ -#import-field { - margin: 15px 0; +// IMPORT +.import-field-container { + margin: 15px 0; } -/** - * TAG CLOUD - */ -#cloudtag { - padding: 10px; - text-align: center; -} +// TAG CLOUD +.cloudtag-container { + padding: 10px; + text-align: center; + text-decoration: none; + color: $dark-grey; -#cloudtag, #cloudtag a { - color: #252525; + a { text-decoration: none; -} + color: $dark-grey; + } -#cloudtag .count { - color: #7f7f7f; + .count { + color: $light-grey; + } } -/** - * TAG LIST - */ -#taglist { - padding: 0 10px; -} +// TAG LIST +.taglist-container { + padding: 0 10px; -#taglist a { - color: #252525; + a { text-decoration: none; -} + color: $dark-grey; + } -#taglist .count { + .count { display: inline-block; width: 35px; text-align: right; - color: #7f7f7f; -} + color: $light-grey; + } -#taglist .rename-tag-form { + .rename-tag-form { display: none; -} + } -#taglist .delete-tag { - color: #ac2925; + .delete-tag { display: none; -} - -#taglist .rename-tag { - color: #0b5ea6; -} - -#taglist .validate-rename-tag { - color: #1b926c; -} - -/** - * Picture wall CSS - */ -#picwall_container { - margin: 0 10px 10px 10px; - color: #252525; - background-color: #f5f5f5; - clear: both; -} - -.picwall_pictureframe { - margin: 2px; - background-color: #f5f5f5; - z-index: 5; - position: relative; - display: table-cell; - vertical-align: middle; - width: 90px; - height: 90px; - overflow: hidden; - text-align: center; - float: left; -} - -.b-lazy { - -webkit-transition: opacity 500ms ease-in-out; - -moz-transition: opacity 500ms ease-in-out; - -o-transition: opacity 500ms ease-in-out; - transition: opacity 500ms ease-in-out; - opacity: 0; -} -.b-lazy.b-loaded { - opacity: 1; -} - -.picwall_pictureframe img { + color: $red; + } + + .rename-tag { + color: $blue; + } + + .validate-rename-tag { + color: $main-green; + } +} + +// Picture wall CSS +.picwall-container { + clear: both; + margin: 0 10px 10px; + background-color: $almost-white; + color: $dark-grey; +} + +.picwall-pictureframe { + display: table-cell; + position: relative; + float: left; + z-index: 5; + margin: 2px; + background-color: $almost-white; + width: 90px; + height: 90px; + overflow: hidden; + vertical-align: middle; + text-align: center; + + // Adapt the width of the image + img { max-width: 100%; height: auto; color: transparent; -} /* Adapt the width of the image */ + } -.picwall_pictureframe a { + a { text-decoration: none; -} + } -/* CSS to show title when hovering an image - no javascript required. */ -.picwall_pictureframe span.info { - display: none; - font-family: Arial, sans-serif; + span { + &.info { + display: none; + font-family: Arial, sans-serif; + } + } + + // CSS to show title when hovering an image - no javascript required. + &:hover { + span { + &.info { + display: block; + position: absolute; + top: 0; + left: 0; + background-color: $dark-shadow; + width: 90px; + height: 90px; + text-align: left; + color: $almost-white; + font-size: 9pt; + font-weight: bold; + } + } + } } -.picwall_pictureframe:hover span.info { - display: block; - position: absolute; - top: 0; - left: 0; - width: 90px; - height: 90px; - font-weight: bold; - font-size: 9pt; - color: #f5f5f5; - text-align: left; - background-color: rgba(0, 0, 0, 0.8); +.b-lazy { + transition: opacity 500ms ease-in-out; + opacity: 0; + -webkit-transition: opacity 500ms ease-in-out; + -moz-transition: opacity 500ms ease-in-out; + -o-transition: opacity 500ms ease-in-out; + + &.b-loaded { + opacity: 1; + } } -/** - * DAILY - */ +// DAILY .daily-desc { - color: #7f7f7f; - font-size: 0.8em; -} + color: $light-grey; + font-size: .8em; -.daily-about a { - color: #343434; + a { text-decoration: none; -} - -.daily-about a:hover { - color: #7f7f7f; -} + color: $dark-grey; -.daily-about h3:before, .daily-about h3:after { - display: block; - content:""; - background: linear-gradient(to right, #d5d4d4, #252525, #d5d4d4); - height: 1px; - width: 90%; - margin: 10px auto; + &:hover { + color: $light-grey; + } + } +} + +.daily-about { + h3 { + &::before, + &::after { + display: block; + margin: 10px auto; + background: linear-gradient(to right, $background-color, $dark-grey, $background-color); + width: 90%; + height: 1px; + content: ''; + } + } } .daily-entry { - padding: 0 10px; -} + padding: 0 10px; -.daily-entry .daily-entry-title:after { - display: block; - content:""; - background: linear-gradient(to right, #fff, #515151, #fff); - height: 1px; - width: 70%; - margin: 5px auto; -} + .daily-entry-title { + margin: 10px 0 0; -.daily-entry .daily-entry-title { - margin: 10px 0 0 0; -} + a { + text-decoration: none; + color: $black; + } -.daily-entry .daily-entry-title a { - color: #000; - text-decoration: none; -} + &::after { + display: block; + margin: 5px auto; + background: linear-gradient(to right, $white, $light-grey, $white); + width: 70%; + height: 1px; + content: ''; + } + } -.daily-entry .daily-entry-description { - padding: 5px 5px 0 5px; - font-size: 0.9em; + .daily-entry-description { + padding: 5px 5px 0; text-align: justify; + font-size: .9em; word-wrap: break-word; -} + } -.daily-entry .daily-entry-tags { - padding: 0 5px 5px 5px; - font-size: 0.8em; + .daily-entry-tags { + padding: 0 5px 5px; + font-size: .8em; + } } .daily-entry-thumbnail { - float: left; - margin: 15px 5px 5px 15px; + float: left; + margin: 15px 5px 5px 15px; } -.daily-entry-description a { +.daily-entry-description { + a { text-decoration: none; - color: #1b926c; -} + color: $main-green; -.daily-entry-description a:hover { - text-shadow: 1px 1px #ddd; -} + &:hover { + text-shadow: 1px 1px $background-linklist-info; + } -.daily-entry-description a:visited { - color: #20b988; + &:visited { + color: $dark-green; + } + } } -/* - * Fix empty bookmarklet name in Firefox - */ +// Fix empty bookmarklet name in Firefox .pure-button { - -moz-user-select: auto; + -moz-user-select: auto; } .tag-sort { - margin-top: 30px; - text-align: center; -} + margin-top: 30px; + text-align: center; -.tag-sort a { + a { display: inline-block; margin: 0 15px; - color: white; text-decoration: none; + color: $white; font-weight: bold; + } } -/** - * Markdown - */ -.markdown p { +// Markdown +.markdown { + p { margin: 0 !important; -} + } -.markdown p + p { - margin: 0.5em 0 0 0 !important; -} + p + p { + margin: .5em 0 0 !important; + } -.markdown *:first-child { - margin-top: 0 !important; -} + * { + &:first-child { + margin-top: 0 !important; + } -.markdown *:last-child { - margin-bottom: 5px !important; + &:last-child { + margin-bottom: 5px !important; + } + } } -/** - * Pure Button - */ +// Pure Button .pure-button-success, .pure-button-error, .pure-button-warning, .pure-button-primary, .pure-button-shaarli, .pure-button-secondary { - color: white !important; - border-radius: 4px; - text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2); + border-radius: 4px; + text-shadow: 0 1px 1px $dark-shadow; + color: $white !important; } .pure-button-shaarli { - background-color: #1B926C; + background-color: $main-green; } -- cgit v1.2.3 From 9d0fc862507e1933e447b3c3e92a438400aad263 Mon Sep 17 00:00:00 2001 From: ArthurHoaro Date: Thu, 10 May 2018 13:26:11 +0200 Subject: Add classes to default template to avoid using IDs in SCSS --- tpl/default/404.html | 2 +- tpl/default/editlink.html | 2 +- tpl/default/import.html | 2 +- tpl/default/linklist.html | 2 +- tpl/default/loginform.html | 2 +- tpl/default/page.footer.html | 2 +- tpl/default/page.header.html | 6 +++--- tpl/default/picwall.html | 4 ++-- tpl/default/pluginsadmin.html | 2 +- tpl/default/tag.cloud.html | 2 +- tpl/default/tag.list.html | 4 ++-- 11 files changed, 15 insertions(+), 15 deletions(-) diff --git a/tpl/default/404.html b/tpl/default/404.html index 2de6b6da..fd337cad 100644 --- a/tpl/default/404.html +++ b/tpl/default/404.html @@ -6,7 +6,7 @@