forked from wallabag/wallabag
Compare commits
24 Commits
1.9.1alpha
...
1.9.1beta3
| Author | SHA1 | Date | |
|---|---|---|---|
| c0d4c895a4 | |||
| 4687c44602 | |||
| c56d1f21e3 | |||
| 22a46267be | |||
| 63fc40ff84 | |||
| 900f2a9160 | |||
| f9c8087f78 | |||
| ddbb2308a3 | |||
| 3a690fad55 | |||
| 12b97d6757 | |||
| f0a819a968 | |||
| d31766300a | |||
| 9730853564 | |||
| 7106983464 | |||
| 2c83940270 | |||
| 251fa4af94 | |||
| 727c35d809 | |||
| 090957fe3e | |||
| 63fd39c326 | |||
| 8d543d115a | |||
| 02d4ab1a60 | |||
| dc20ddf9b8 | |||
| 8b90a8157e | |||
| fdda9fd9a3 |
@ -323,6 +323,21 @@ class Database {
|
||||
return $entries;
|
||||
}
|
||||
|
||||
public function retrieveAllWithTags($user_id)
|
||||
{
|
||||
$entries = $this->retrieveAll($user_id);
|
||||
$count = count($entries);
|
||||
for ($i = 0; $i < $count; $i++) {
|
||||
$tag_entries = $this->retrieveTagsByEntry($entries[$i]['id']);
|
||||
$tags = [];
|
||||
foreach ($tag_entries as $tag) {
|
||||
$tags[] = $tag[1];
|
||||
}
|
||||
$entries[$i]['tags'] = implode(',', $tags);
|
||||
}
|
||||
return $entries;
|
||||
}
|
||||
|
||||
public function retrieveOneById($id, $user_id)
|
||||
{
|
||||
$entry = NULL;
|
||||
|
||||
@ -278,7 +278,7 @@ class Poche
|
||||
}
|
||||
Tools::logm($msg);
|
||||
}
|
||||
Tools::redirect('?');
|
||||
Tools::redirect();
|
||||
break;
|
||||
case 'toggle_fav' :
|
||||
$this->store->favoriteById($id, $this->user->getId());
|
||||
@ -732,23 +732,45 @@ class Poche
|
||||
$html->load_file($_FILES['file']['tmp_name']);
|
||||
$data = array();
|
||||
$read = 0;
|
||||
foreach (array('ol','ul') as $list) {
|
||||
foreach ($html->find($list) as $ul) {
|
||||
foreach ($ul->find('li') as $li) {
|
||||
$tmpEntry = array();
|
||||
$a = $li->find('a');
|
||||
$tmpEntry['url'] = $a[0]->href;
|
||||
$tmpEntry['tags'] = $a[0]->tags;
|
||||
$tmpEntry['is_read'] = $read;
|
||||
if ($tmpEntry['url']) {
|
||||
$data[] = $tmpEntry;
|
||||
|
||||
if (Tools::get_doctype($html)->innertext == "<!DOCTYPE NETSCAPE-Bookmark-file-1>") {
|
||||
// Firefox-bookmarks HTML
|
||||
foreach (array('DL','ul') as $list) {
|
||||
foreach ($html->find($list) as $ul) {
|
||||
foreach ($ul->find('DT') as $li) {
|
||||
$tmpEntry = array();
|
||||
$a = $li->find('A');
|
||||
$tmpEntry['url'] = $a[0]->href;
|
||||
$tmpEntry['tags'] = $a[0]->tags;
|
||||
$tmpEntry['is_read'] = $read;
|
||||
if ($tmpEntry['url']) {
|
||||
$data[] = $tmpEntry;
|
||||
}
|
||||
}
|
||||
}
|
||||
# the second <ol/ul> is for read links
|
||||
$read = ((sizeof($data) && $read)?0:1);
|
||||
# the second <ol/ul> is for read links
|
||||
$read = ((sizeof($data) && $read)?0:1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// regular HTML
|
||||
foreach (array('ol','ul') as $list) {
|
||||
foreach ($html->find($list) as $ul) {
|
||||
foreach ($ul->find('li') as $li) {
|
||||
$tmpEntry = array();
|
||||
$a = $li->find('a');
|
||||
$tmpEntry['url'] = $a[0]->href;
|
||||
$tmpEntry['tags'] = $a[0]->tags;
|
||||
$tmpEntry['is_read'] = $read;
|
||||
if ($tmpEntry['url']) {
|
||||
$data[] = $tmpEntry;
|
||||
}
|
||||
}
|
||||
# the second <ol/ul> is for read links
|
||||
$read = ((sizeof($data) && $read)?0:1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// for readability structure
|
||||
|
||||
@ -766,7 +788,7 @@ class Poche
|
||||
$urlsInserted = array(); //urls of articles inserted
|
||||
foreach($data as $record) {
|
||||
$url = trim(isset($record['article__url']) ? $record['article__url'] : (isset($record['url']) ? $record['url'] : ''));
|
||||
if ($url and !in_array($url, $urlsInserted)) {
|
||||
if (filter_var($url, FILTER_VALIDATE_URL) and !in_array($url, $urlsInserted)) {
|
||||
$title = (isset($record['title']) ? $record['title'] : _('Untitled - Import - ') . '</a> <a href="./?import">' . _('click to finish import') . '</a><a>');
|
||||
$body = (isset($record['content']) ? $record['content'] : '');
|
||||
$isRead = (isset($record['is_read']) ? intval($record['is_read']) : (isset($record['archive']) ? intval($record['archive']) : 0));
|
||||
@ -874,7 +896,7 @@ class Poche
|
||||
$filename = "wallabag-export-".$this->user->getId()."-".date("Y-m-d").".json";
|
||||
header('Content-Disposition: attachment; filename='.$filename);
|
||||
|
||||
$entries = $this->store->retrieveAll($this->user->getId());
|
||||
$entries = $this->store->retrieveAllWithTags($this->user->getId());
|
||||
echo $this->tpl->render('export.twig', array(
|
||||
'export' => Tools::renderJson($entries),
|
||||
));
|
||||
|
||||
@ -141,7 +141,7 @@ class Routing
|
||||
$pdf->producePDF();
|
||||
} elseif (isset($_GET['import'])) {
|
||||
$import = $this->wallabag->import();
|
||||
$tplVars = array_merge($this->vars, $import);
|
||||
$this->vars = array_merge($this->vars, $import);
|
||||
} elseif (isset($_GET['empty-cache'])) {
|
||||
Tools::emptyCache();
|
||||
} elseif (isset($_GET['export'])) {
|
||||
|
||||
@ -420,4 +420,23 @@ final class Tools
|
||||
return str_replace('+', '', $token);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* Returns the doctype for an HTML document (used for Mozilla Bookmarks)
|
||||
* @param simple_html_dom $doc
|
||||
* @return doctype $el
|
||||
*
|
||||
*/
|
||||
|
||||
public static function get_doctype($doc)
|
||||
{
|
||||
$els = $doc->find('unknown');
|
||||
|
||||
foreach ($els as $e => $el)
|
||||
if ($el->parent()->tag == 'root')
|
||||
return $el;
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -8,7 +8,7 @@
|
||||
* @license http://opensource.org/licenses/MIT see COPYING file
|
||||
*/
|
||||
|
||||
define ('POCHE', '1.9.0');
|
||||
define ('POCHE', '1.9.1');
|
||||
require 'check_essentials.php';
|
||||
require 'check_setup.php';
|
||||
require_once 'inc/poche/global.inc.php';
|
||||
|
||||
@ -16,6 +16,27 @@ $email = "";
|
||||
|
||||
require_once('install_functions.php');
|
||||
|
||||
// Start by destroying session to avoid wrong logins from previous installations
|
||||
// cookie part
|
||||
$cookiedir = '';
|
||||
if (dirname($_SERVER['SCRIPT_NAME'])!='/') {
|
||||
$cookiedir = dirname($_SERVER["SCRIPT_NAME"]).'/';
|
||||
}
|
||||
|
||||
if (isset($_SERVER['HTTP_COOKIE'])) {
|
||||
$cookies = explode(';', $_SERVER['HTTP_COOKIE']);
|
||||
foreach($cookies as $cookie) {
|
||||
$parts = explode('=', $cookie);
|
||||
$name = trim($parts[0]);
|
||||
setcookie($name, '', time()-1000);
|
||||
setcookie($name, '', time()-1000, $cookiedir);
|
||||
}
|
||||
}
|
||||
// session part
|
||||
if (isset($_SESSION['poche_user'])) {
|
||||
unset($_SESSION['poche_user']);
|
||||
}
|
||||
|
||||
if (isset($_GET['clean'])) {
|
||||
if (is_dir('install')){
|
||||
delTree('install', true);
|
||||
@ -144,16 +165,43 @@ else if (isset($_POST['install'])) {
|
||||
$sql_structure = file_get_contents('install/postgres.sql');
|
||||
}
|
||||
// create database structure
|
||||
$query = $handle->exec($sql_structure);
|
||||
if (!$handle) {
|
||||
$continue = false;
|
||||
$errors[] = "Couldn't connect to your database server. Please check credentials.";
|
||||
} else {
|
||||
$query = $handle->exec($sql_structure);
|
||||
|
||||
$usertest = executeQuery($handle,"SELECT * from users WHERE username = ?", array($username));
|
||||
if (!empty($usertest)) {
|
||||
$continue = false;
|
||||
$errors[] = "An user already exists with this username in database.";
|
||||
}
|
||||
$usertest = executeQuery($handle,"SELECT * from users WHERE username = ?", array($username));
|
||||
if (!empty($usertest)) {
|
||||
$continue = false;
|
||||
$errors[] = "An user already exists with this username in database.";
|
||||
}
|
||||
}
|
||||
|
||||
} catch (PDOException $e) {
|
||||
$errors[] = $e->getMessage();
|
||||
/* Error codes :
|
||||
/ 7 : PostgreSQL issues
|
||||
/ 1045 : Access denied to the user : user doesn't exists
|
||||
/ 1044 : Access denied to the user : user doesn't have the rights to connect to this database
|
||||
/ 2005 : Unknown database server
|
||||
*/
|
||||
switch ($e->getCode()) {
|
||||
case 7:
|
||||
$errors[] = "PostgreSQL has encountered an issue : " . $e->getMessage();
|
||||
break;
|
||||
case 1045:
|
||||
$errors[] = "The password for this user is incorrect, or this user doesn't exist.";
|
||||
break;
|
||||
case 1044:
|
||||
$errors[] = "The user isn't allowed to use this database.";
|
||||
break;
|
||||
case 2005:
|
||||
$errors[] = "The server can't be reached.";
|
||||
break;
|
||||
default:
|
||||
$errors[] = "A error happened while connecting to your database : " . $e->getMessage();
|
||||
break;
|
||||
}
|
||||
$continue = false;
|
||||
}
|
||||
}
|
||||
|
||||
@ -110,4 +110,4 @@ function executeQuery($handle, $sql, $params) {
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
?>
|
||||
|
||||
Binary file not shown.
@ -9,7 +9,7 @@ msgstr ""
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=iso-8859-1\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: Poedit 1.5.4\n"
|
||||
"X-Generator: Poedit 1.7.5\n"
|
||||
|
||||
msgid "wallabag, a read it later open source system"
|
||||
msgstr "wallabag, a read it later open source system"
|
||||
@ -106,8 +106,11 @@ msgstr "Read the documentation"
|
||||
msgid "download the extension"
|
||||
msgstr "Download the extension"
|
||||
|
||||
msgid "Firefox Add-On"
|
||||
msgstr "Firefox Add-On"
|
||||
msgid "Standard Firefox Add-On"
|
||||
msgstr "Standard Firefox Add-On"
|
||||
|
||||
msgid "Mozilla Services (Social API) Extension"
|
||||
msgstr "Mozilla Services (Social API) Extension"
|
||||
|
||||
msgid "Chrome Extension"
|
||||
msgstr "Chrome Extension"
|
||||
@ -320,6 +323,9 @@ msgstr "Add tags:"
|
||||
msgid "no tags"
|
||||
msgstr "no tags"
|
||||
|
||||
msgid "No tags found. You must view an article to set tags for it."
|
||||
msgstr "No tags found. You must view an article to set tags for it."
|
||||
|
||||
msgid "The tag has been applied successfully"
|
||||
msgstr "The tag has been applied successfully"
|
||||
|
||||
|
||||
Binary file not shown.
@ -12,7 +12,7 @@ msgstr ""
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Poedit-KeywordsList: _;gettext;gettext_noop\n"
|
||||
"X-Poedit-SourceCharset: UTF-8\n"
|
||||
"X-Generator: Poedit 1.5.4\n"
|
||||
"X-Generator: Poedit 1.7.5\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
msgid "wallabag, a read it later open source system"
|
||||
@ -46,8 +46,7 @@ msgid "Login to wallabag"
|
||||
msgstr "Se connecter à wallabag"
|
||||
|
||||
msgid "you are in demo mode, some features may be disabled."
|
||||
msgstr ""
|
||||
"vous êtes en mode démo, certaines fonctionnalités peuvent être désactivées."
|
||||
msgstr "vous êtes en mode démo, certaines fonctionnalités peuvent être désactivées."
|
||||
|
||||
msgid "Username"
|
||||
msgstr "Nom d'utilisateur"
|
||||
@ -82,6 +81,9 @@ msgstr "non lus"
|
||||
msgid "Tag"
|
||||
msgstr "Tag"
|
||||
|
||||
msgid "No tags found. You must view an article to set tags for it."
|
||||
msgstr "Pas de tags trouvés. Vous devez vous rendre sur un article pour choisir de lui associer des tags."
|
||||
|
||||
msgid "No articles found."
|
||||
msgstr "Aucun article trouvé."
|
||||
|
||||
@ -125,12 +127,11 @@ msgid "About wallabag"
|
||||
msgstr "À propos de wallabag"
|
||||
|
||||
msgid ""
|
||||
"wallabag is a read-it-later application: you can save a web page by keeping "
|
||||
"only content. Elements like ads or menus are deleted."
|
||||
"wallabag is a read-it-later application: you can save a web page by keeping only content. Elements like "
|
||||
"ads or menus are deleted."
|
||||
msgstr ""
|
||||
"wallabag est une application de lecture différée : vous pouvez sauver une "
|
||||
"page web et garder uniquement son contenu. Les élements comme les publicités "
|
||||
"ou les menus sont supprimés."
|
||||
"wallabag est une application de lecture différée : vous pouvez sauver une page web et garder uniquement "
|
||||
"son contenu. Les élements comme les publicités ou les menus sont supprimés."
|
||||
|
||||
msgid "Project website"
|
||||
msgstr "Site web du projet"
|
||||
@ -166,11 +167,11 @@ msgid "Documentation"
|
||||
msgstr "Documentation"
|
||||
|
||||
msgid ""
|
||||
"<a href=\"docs/\">Offline documentation</a> and <a href=\"https://doc."
|
||||
"wallabag.org/\">online documentation</a> (up to date)"
|
||||
"<a href=\"docs/\">Offline documentation</a> and <a href=\"https://doc.wallabag.org/\">online "
|
||||
"documentation</a> (up to date)"
|
||||
msgstr ""
|
||||
"<a href=\"docs/\">Documentation hors-ligne</a> et <a href=\"https://doc."
|
||||
"wallabag.org/\">documentation en ligne</a> (à jour)"
|
||||
"<a href=\"docs/\">Documentation hors-ligne</a> et <a href=\"https://doc.wallabag.org/\">documentation "
|
||||
"en ligne</a> (à jour)"
|
||||
|
||||
msgid "Helping wallabag"
|
||||
msgstr "Aider wallabag"
|
||||
@ -199,8 +200,11 @@ msgstr "lisez la documentation"
|
||||
msgid "download the extension"
|
||||
msgstr "téléchargez l'extension"
|
||||
|
||||
msgid "Firefox Add-On"
|
||||
msgstr "Add-On Firefox"
|
||||
msgid "Standard Firefox Add-On"
|
||||
msgstr "Add-On Firefox classique"
|
||||
|
||||
msgid "Mozilla Services (Social API) Extension"
|
||||
msgstr "Extension Mozilla Services (Social API)"
|
||||
|
||||
msgid "Chrome Extension"
|
||||
msgstr "Extension Chrome"
|
||||
@ -257,19 +261,17 @@ msgid "A more recent development version is available."
|
||||
msgstr "Une version de développement plus récente est disponible."
|
||||
|
||||
msgid "You can clear cache to check the latest release."
|
||||
msgstr ""
|
||||
"Vous pouvez vider le cache pour vérifier que vous avez la dernière version."
|
||||
msgstr "Vous pouvez vider le cache pour vérifier que vous avez la dernière version."
|
||||
|
||||
msgid "Feeds"
|
||||
msgstr "Flux"
|
||||
|
||||
msgid ""
|
||||
"Your feed token is currently empty and must first be generated to enable "
|
||||
"feeds. Click <a href='?feed&action=generate'>here to generate it</a>."
|
||||
"Your feed token is currently empty and must first be generated to enable feeds. Click <a href='?"
|
||||
"feed&action=generate'>here to generate it</a>."
|
||||
msgstr ""
|
||||
"Votre jeton de flux est actuellement vide et doit d'abord être généré pour "
|
||||
"activer les flux. Cliquez <a href='?feed&action=generate'>ici</a> pour "
|
||||
"le générer."
|
||||
"Votre jeton de flux est actuellement vide et doit d'abord être généré pour activer les flux. Cliquez <a "
|
||||
"href='?feed&action=generate'>ici</a> pour le générer."
|
||||
|
||||
msgid "Unread feed"
|
||||
msgstr "Flux des non lus"
|
||||
@ -286,12 +288,8 @@ msgstr "Votre jeton :"
|
||||
msgid "Your user id:"
|
||||
msgstr "Votre ID utilisateur :"
|
||||
|
||||
msgid ""
|
||||
"You can regenerate your token: <a href='?feed&action=generate'>generate!"
|
||||
"</a>."
|
||||
msgstr ""
|
||||
"Vous pouvez regénérer votre jeton : <a href='?feed&"
|
||||
"action=generate'>génération !</a>."
|
||||
msgid "You can regenerate your token: <a href='?feed&action=generate'>generate!</a>."
|
||||
msgstr "Vous pouvez regénérer votre jeton : <a href='?feed&action=generate'>génération !</a>."
|
||||
|
||||
msgid "Change your theme"
|
||||
msgstr "Changer votre thème"
|
||||
@ -321,38 +319,33 @@ msgid "Import"
|
||||
msgstr "Importer"
|
||||
|
||||
msgid ""
|
||||
"You can import your Pocket, Readability, Instapaper, Wallabag or any data in "
|
||||
"appropriate json or html format."
|
||||
"You can import your Pocket, Readability, Instapaper, Wallabag or any data in appropriate json or html "
|
||||
"format."
|
||||
msgstr ""
|
||||
"Vous pouvez importer depuis Pocket, Readability, Instapaper, wallabag, ou "
|
||||
"n'importe quel fichier au format JSON ou HTML approprié."
|
||||
"Vous pouvez importer depuis Pocket, Readability, Instapaper, wallabag, ou n'importe quel fichier au "
|
||||
"format JSON ou HTML approprié."
|
||||
|
||||
msgid ""
|
||||
"Please select export file on your computer and press \"Import\" button "
|
||||
"below. Wallabag will parse your file, insert all URLs and start fetching of "
|
||||
"articles if required."
|
||||
"Please select export file on your computer and press \"Import\" button below. Wallabag will parse your "
|
||||
"file, insert all URLs and start fetching of articles if required."
|
||||
msgstr ""
|
||||
"Sélectionnez le fichier à importer sur votre disque dur, et pressez le "
|
||||
"bouton « Importer » ci-dessous. wallabag analysera votre fichier, ajoutera "
|
||||
"toutes les URL trouvées et commencera à télécharger les contenus si "
|
||||
"nécessaire."
|
||||
"Sélectionnez le fichier à importer sur votre disque dur, et pressez le bouton « Importer » ci-dessous. "
|
||||
"wallabag analysera votre fichier, ajoutera toutes les URL trouvées et commencera à télécharger les "
|
||||
"contenus si nécessaire."
|
||||
|
||||
msgid ""
|
||||
"Fetching process is controlled by two constants in your config file: "
|
||||
"IMPORT_LIMIT (how many articles are fetched at once) and IMPORT_DELAY (delay "
|
||||
"between fetch of next batch of articles)."
|
||||
"Fetching process is controlled by two constants in your config file: IMPORT_LIMIT (how many articles "
|
||||
"are fetched at once) and IMPORT_DELAY (delay between fetch of next batch of articles)."
|
||||
msgstr ""
|
||||
"Le processus d'import peut être paramétré par deux constantes dans votre "
|
||||
"fichier de configuration : IMPORT_LIMIT (combien d'articles sont téléchargés "
|
||||
"à la fois) et IMPORT_DELAY (le délai entre le téléchargement du prochain lot "
|
||||
"d'articles)."
|
||||
"Le processus d'import peut être paramétré par deux constantes dans votre fichier de configuration : "
|
||||
"IMPORT_LIMIT (combien d'articles sont téléchargés à la fois) et IMPORT_DELAY (le délai entre le "
|
||||
"téléchargement du prochain lot d'articles)."
|
||||
|
||||
msgid "File:"
|
||||
msgstr "Fichier : "
|
||||
|
||||
msgid "You can click here to fetch content for articles with no content."
|
||||
msgstr ""
|
||||
"Vous pouvez cliquer ici pour télécharger le contenu des articles vides."
|
||||
msgstr "Vous pouvez cliquer ici pour télécharger le contenu des articles vides."
|
||||
|
||||
msgid "Export your wallabag data"
|
||||
msgstr "Exporter vos données de wallabag"
|
||||
@ -379,8 +372,7 @@ msgid "Delete Cache"
|
||||
msgstr "Vider le cache"
|
||||
|
||||
msgid "Deleting the cache may help with display or other problems."
|
||||
msgstr ""
|
||||
"Vider le cache peut résoudre des problèmes d'affichage ou d'autres problèmes."
|
||||
msgstr "Vider le cache peut résoudre des problèmes d'affichage ou d'autres problèmes."
|
||||
|
||||
msgid "Add user"
|
||||
msgstr "Ajouter un utilisateur"
|
||||
@ -407,9 +399,7 @@ msgid "Delete account"
|
||||
msgstr "Supprimer le compte"
|
||||
|
||||
msgid "You can delete your account by entering your password and validating."
|
||||
msgstr ""
|
||||
"Vous pouvez supprimer votre compte en entrant votre mot de passe et en "
|
||||
"validant."
|
||||
msgstr "Vous pouvez supprimer votre compte en entrant votre mot de passe et en validant."
|
||||
|
||||
msgid "Be careful, data will be erased forever (that is a very long time)."
|
||||
msgstr "Attention, les données seront perdues pour toujours."
|
||||
@ -418,16 +408,13 @@ msgid "Type here your password"
|
||||
msgstr "Entrez votre mot de passe ici"
|
||||
|
||||
msgid "You are the only user, you cannot delete your own account."
|
||||
msgstr ""
|
||||
"Vous êtes l'unique utilisateur, vous ne pouvez pas supprimer votre compte."
|
||||
msgstr "Vous êtes l'unique utilisateur, vous ne pouvez pas supprimer votre compte."
|
||||
|
||||
msgid ""
|
||||
"To completely remove wallabag, delete the wallabag folder on your web server "
|
||||
"(and eventual databases)."
|
||||
"To completely remove wallabag, delete the wallabag folder on your web server (and eventual databases)."
|
||||
msgstr ""
|
||||
"Pour désinstaller complètement wallabag, supprimez le répertoire "
|
||||
"<code>wallabag</code> de votre serveur Web (ainsi que les bases de données "
|
||||
"éventuelles)."
|
||||
"Pour désinstaller complètement wallabag, supprimez le répertoire <code>wallabag</code> de votre serveur "
|
||||
"Web (ainsi que les bases de données éventuelles)."
|
||||
|
||||
msgid "Save a link"
|
||||
msgstr "Ajouter un lien"
|
||||
@ -535,9 +522,7 @@ msgid "a more recent development version is available."
|
||||
msgstr "une version de développement plus récente est disponible."
|
||||
|
||||
msgid "Please execute the import script locally, it can take a very long time."
|
||||
msgstr ""
|
||||
"Merci d'exécuter le script d'importation en local car cela peut prendre du "
|
||||
"temps."
|
||||
msgstr "Merci d'exécuter le script d'importation en local car cela peut prendre du temps."
|
||||
|
||||
msgid "More infos in the official doc:"
|
||||
msgstr "Plus d'infos dans la documentation officielle :"
|
||||
@ -604,13 +589,11 @@ msgid "install your wallabag"
|
||||
msgstr "installez votre wallabag"
|
||||
|
||||
msgid ""
|
||||
"wallabag is still not installed. Please fill the below form to install it. "
|
||||
"Don't hesitate to <a href='http://doc.wallabag.org/'>read the documentation "
|
||||
"on wallabag website</a>."
|
||||
"wallabag is still not installed. Please fill the below form to install it. Don't hesitate to <a "
|
||||
"href='http://doc.wallabag.org/'>read the documentation on wallabag website</a>."
|
||||
msgstr ""
|
||||
"wallabag n'est pas encore installé. Merci de remplir le formulaire suivant "
|
||||
"pour l'installer. N'hésitez pas à <a href='http://doc.wallabag.org'>lire la "
|
||||
"documentation sur le site de wallabag</a>."
|
||||
"wallabag n'est pas encore installé. Merci de remplir le formulaire suivant pour l'installer. N'hésitez "
|
||||
"pas à <a href='http://doc.wallabag.org'>lire la documentation sur le site de wallabag</a>."
|
||||
|
||||
msgid "Repeat your password"
|
||||
msgstr "Répétez votre mot de passe"
|
||||
@ -618,12 +601,8 @@ msgstr "Répétez votre mot de passe"
|
||||
msgid "Install"
|
||||
msgstr "Installer"
|
||||
|
||||
msgid ""
|
||||
"You can <a href='wallabag_compatibility_test.php'>check your configuration "
|
||||
"here</a>."
|
||||
msgstr ""
|
||||
"Vous pouvez vérifier votre configuration <a "
|
||||
"href='wallabag_compatibility_test.php'>ici</a>."
|
||||
msgid "You can <a href='wallabag_compatibility_test.php'>check your configuration here</a>."
|
||||
msgstr "Vous pouvez vérifier votre configuration <a href='wallabag_compatibility_test.php'>ici</a>."
|
||||
|
||||
msgid "Tags"
|
||||
msgstr "Tags"
|
||||
@ -662,12 +641,9 @@ msgid "Enter your search here"
|
||||
msgstr "Entrez votre recherche ici"
|
||||
|
||||
#, php-format
|
||||
msgid ""
|
||||
"The new user %s has been installed. Do you want to <a href=\"?logout"
|
||||
"\">logout ?</a>"
|
||||
msgid "The new user %s has been installed. Do you want to <a href=\"?logout\">logout ?</a>"
|
||||
msgstr ""
|
||||
"Le nouvel utilisateur « %s » a été ajouté. Voulez-vous vous <a href=\"?"
|
||||
"logout\">déconnecter ?</a>"
|
||||
"Le nouvel utilisateur « %s » a été ajouté. Voulez-vous vous <a href=\"?logout\">déconnecter ?</a>"
|
||||
|
||||
#, php-format
|
||||
msgid "Error : An user with the name %s already exists !"
|
||||
@ -681,9 +657,7 @@ msgid "Error : The password is wrong !"
|
||||
msgstr "Erreur : le mot de passe est incorrect !"
|
||||
|
||||
msgid "Error : You are the only user, you cannot delete your account !"
|
||||
msgstr ""
|
||||
"Erreur : Vous êtes l'unique utilisateur, vous ne pouvez pas supprimer votre "
|
||||
"compte !"
|
||||
msgstr "Erreur : Vous êtes l'unique utilisateur, vous ne pouvez pas supprimer votre compte !"
|
||||
|
||||
msgid "Untitled"
|
||||
msgstr "Sans titre"
|
||||
@ -715,12 +689,8 @@ msgstr "en mode démo, vous ne pouvez pas mettre à jour votre mot de passe"
|
||||
msgid "your password has been updated"
|
||||
msgstr "votre mot de passe a été mis à jour"
|
||||
|
||||
msgid ""
|
||||
"the two fields have to be filled & the password must be the same in the two "
|
||||
"fields"
|
||||
msgstr ""
|
||||
"les deux champs doivent être remplis & le mot de passe doit être le même "
|
||||
"dans les deux"
|
||||
msgid "the two fields have to be filled & the password must be the same in the two fields"
|
||||
msgstr "les deux champs doivent être remplis & le mot de passe doit être le même dans les deux"
|
||||
|
||||
msgid "still using the \""
|
||||
msgstr "vous utilisez toujours \""
|
||||
@ -856,11 +826,11 @@ msgid "Generate PDF file"
|
||||
msgstr "Générer fichier PDF"
|
||||
|
||||
msgid ""
|
||||
"This can <b>take a while</b> and can <b>even fail</b> if you have too many "
|
||||
"articles, depending on your server configuration."
|
||||
"This can <b>take a while</b> and can <b>even fail</b> if you have too many articles, depending on your "
|
||||
"server configuration."
|
||||
msgstr ""
|
||||
"Ceci peut <b>prendre un moment</b> et même <b>échouer</b> si vous avez trop "
|
||||
"d'articles, selon la configuration matérielle de votre serveur."
|
||||
"Ceci peut <b>prendre un moment</b> et même <b>échouer</b> si vous avez trop d'articles, selon la "
|
||||
"configuration matérielle de votre serveur."
|
||||
|
||||
msgid "Download the articles from this tag in an epub"
|
||||
msgstr "Télécharger les articles de ce tag dans un epub"
|
||||
@ -941,12 +911,11 @@ msgid "Produced by wallabag with PHPePub"
|
||||
msgstr "Produit par wallabag avec PHPePub"
|
||||
|
||||
msgid ""
|
||||
"Please open <a href='https://github.com/wallabag/wallabag/issues'>an issue</"
|
||||
"a> if you have trouble with the display of this E-Book on your device."
|
||||
"Please open <a href='https://github.com/wallabag/wallabag/issues'>an issue</a> if you have trouble with "
|
||||
"the display of this E-Book on your device."
|
||||
msgstr ""
|
||||
"Merci d'ouvrir <a href='https://github.com/wallabag/wallabag/issues'>un "
|
||||
"ticket</a> si vous avez des problèmes d'affichage de cet E-Book sur votre "
|
||||
"appareil."
|
||||
"Merci d'ouvrir <a href='https://github.com/wallabag/wallabag/issues'>un ticket</a> si vous avez des "
|
||||
"problèmes d'affichage de cet E-Book sur votre appareil."
|
||||
|
||||
msgid "Produced by wallabag with PHPMobi"
|
||||
msgstr "Produit par wallabag avec PHPMobi"
|
||||
@ -959,8 +928,7 @@ msgid "Hi, %1$s"
|
||||
msgstr "Salut, %1$s"
|
||||
|
||||
msgid "Someone just created a wallabag account for you on %1$s."
|
||||
msgstr ""
|
||||
"Quelqu'un vient juste de créer un compte wallabag pour vous à l'adresse %1$s."
|
||||
msgstr "Quelqu'un vient juste de créer un compte wallabag pour vous à l'adresse %1$s."
|
||||
|
||||
msgid "You've just created a wallabag account on %1$s"
|
||||
msgstr "Vous venez juste de vous créer un compte wallabag sur %1$s"
|
||||
@ -971,49 +939,32 @@ msgstr "Votre identifiant is %1$s."
|
||||
msgid "Have fun with it !"
|
||||
msgstr "Amusez-vous bien !"
|
||||
|
||||
msgid ""
|
||||
"This is an automatically generated message, no one will answer if you "
|
||||
"respond to it."
|
||||
msgstr ""
|
||||
"Ceci est un message généré automatiquement, personne ne vous répondra si "
|
||||
"vous y répondez."
|
||||
msgid "This is an automatically generated message, no one will answer if you respond to it."
|
||||
msgstr "Ceci est un message généré automatiquement, personne ne vous répondra si vous y répondez."
|
||||
|
||||
msgid ""
|
||||
"Note : The password has been chosen by the person who created your account. "
|
||||
"Get in touch with that person to know your password and change it as soon as "
|
||||
"possible"
|
||||
"Note : The password has been chosen by the person who created your account. Get in touch with that "
|
||||
"person to know your password and change it as soon as possible"
|
||||
msgstr ""
|
||||
"Note : Votre mot de passe a été défini par la personne ayant créé votre "
|
||||
"compte. Vous devriez entrer en contact avec cette personne pour connaître "
|
||||
"votre mot de passe et le changer dès que possible"
|
||||
"Note : Votre mot de passe a été défini par la personne ayant créé votre compte. Vous devriez entrer en "
|
||||
"contact avec cette personne pour connaître votre mot de passe et le changer dès que possible"
|
||||
|
||||
msgid ""
|
||||
"The new user %1$s has been sent an email at %2$s. You may have to check spam "
|
||||
"folder."
|
||||
msgid "The new user %1$s has been sent an email at %2$s. You may have to check spam folder."
|
||||
msgstr ""
|
||||
"Un email a été envoyé au nouvel utiliateur %1$s à l'adresse %2$s. Il peut "
|
||||
"être nécessaire de vérifier le dossier des spams."
|
||||
"Un email a été envoyé au nouvel utilisateur %1$s à l'adresse %2$s. Il peut être nécessaire de vérifier "
|
||||
"le dossier des spams."
|
||||
|
||||
msgid "A problem has been encountered while sending the confirmation email"
|
||||
msgstr "Un problème a été rencontré lors de l'envoi de l'email de confirmation"
|
||||
|
||||
msgid ""
|
||||
"The server did not authorize sending a confirmation email, but the user was "
|
||||
"created."
|
||||
msgstr ""
|
||||
"Le serveur n'autorise pas l'envoi d'un email de confirmation, mais "
|
||||
"l'utilisateur a été créé."
|
||||
msgid "The server did not authorize sending a confirmation email, but the user was created."
|
||||
msgstr "Le serveur n'autorise pas l'envoi d'un email de confirmation, mais l'utilisateur a été créé."
|
||||
|
||||
msgid ""
|
||||
"The user was created, but no email was sent because email was not filled in"
|
||||
msgstr ""
|
||||
"L'utilisateur a été créé, mais aucun mail n'a été envoyé car l'email n'était "
|
||||
"pas renseigné"
|
||||
msgid "The user was created, but no email was sent because email was not filled in"
|
||||
msgstr "L'utilisateur a été créé, mais aucun mail n'a été envoyé car l'email n'était pas renseigné"
|
||||
|
||||
msgid "Mail function is disabled. You can't send emails from your server"
|
||||
msgstr ""
|
||||
"La fonction mail est désactivée. Vous ne pouvez pas envoyer d'E-mails depuis "
|
||||
"votre serveur"
|
||||
msgstr "La fonction mail est désactivée. Vous ne pouvez pas envoyer d'E-mails depuis votre serveur"
|
||||
|
||||
msgid "You didn't set your kindle's email adress !"
|
||||
msgstr "Vous n'avez pas renseigné l'adresse E-mail de votre Kindle !"
|
||||
|
||||
BIN
themes/_global/img/appicon/firefox-service-icon-16.png
Normal file
BIN
themes/_global/img/appicon/firefox-service-icon-16.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 337 B |
BIN
themes/_global/img/appicon/firefox-service-icon-32.png
Normal file
BIN
themes/_global/img/appicon/firefox-service-icon-32.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 675 B |
BIN
themes/_global/img/appicon/firefox-service-icon-64.png
Normal file
BIN
themes/_global/img/appicon/firefox-service-icon-64.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.6 KiB |
@ -1,14 +1,29 @@
|
||||
/**
|
||||
* @desc Navigate with Keyboard from an article to another on an article's page
|
||||
* @param string leftURL - URL of the article on the left
|
||||
* @param string rightURL - URL of the article on the right
|
||||
*/
|
||||
|
||||
function navigateKeyboard(leftURL, rightURL) {
|
||||
window.addEventListener("keypress", function (event) {
|
||||
window.addEventListener("keydown", function (event) {
|
||||
var key = event.which || event.keyCode; // event.keyCode is used for IE8 and earlier versions
|
||||
switch (key) {
|
||||
case 37:
|
||||
goLeft(leftURL);
|
||||
goLeft(leftURL); // left arrow
|
||||
break;
|
||||
case 72:
|
||||
goLeft(leftURL); // h letter (vim style)
|
||||
break;
|
||||
|
||||
case 39:
|
||||
goRight(rightURL);
|
||||
goRight(rightURL); // right arrow
|
||||
break;
|
||||
case 76:
|
||||
goRight(rightURL); // l letter (vim style)
|
||||
break;
|
||||
case 8:
|
||||
window.history.back();
|
||||
|
||||
}
|
||||
|
||||
}, false);
|
||||
@ -24,4 +39,116 @@ function goRight(rightURL) {
|
||||
if (rightURL != "?view=view&id=") {
|
||||
window.location = window.location.origin + window.location.pathname + rightURL;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @desc Do actions with Keyboard on an article's page
|
||||
* @param number id - ID of the current article
|
||||
*/
|
||||
|
||||
function actionArticle(id) {
|
||||
window.addEventListener("keydown", function (event) {
|
||||
var key = event.which || event.keyCode; // event.keyCode is used for IE8 and earlier versions
|
||||
switch (key) {
|
||||
case 46:
|
||||
deleteArticle(id); // delete key
|
||||
break;
|
||||
case 68:
|
||||
deleteArticle(id); // d key letter
|
||||
break;
|
||||
case 70:
|
||||
favoriteArticle(id); // f key letter
|
||||
break;
|
||||
case 77:
|
||||
markReadArticle(id); // m key letter
|
||||
break;
|
||||
}
|
||||
|
||||
}, false);
|
||||
}
|
||||
|
||||
function deleteArticle(id) {
|
||||
if (id) {
|
||||
window.location = window.location.origin + window.location.pathname + '?action=delete&id=' + id;
|
||||
}
|
||||
}
|
||||
|
||||
function favoriteArticle(id) {
|
||||
if (id) {
|
||||
window.location = window.location.origin + window.location.pathname + '?action=toggle_fav&id=' + id;
|
||||
}
|
||||
}
|
||||
|
||||
function markReadArticle(id) {
|
||||
if (id) {
|
||||
window.location = window.location.origin + window.location.pathname + '?action=toggle_archive&id=' + id;
|
||||
}
|
||||
}
|
||||
|
||||
function homeNavigation() {
|
||||
selectedArticle = $('.entrie:first');
|
||||
console.log("selected first article");
|
||||
window.addEventListener("keydown", function (event) {
|
||||
var key = event.which || event.keyCode; // event.keyCode is used for IE8 and earlier versions
|
||||
switch (key) {
|
||||
case 37: // left arrow
|
||||
selectedArticle = goSelectPrev(selectedArticle,1);
|
||||
break;
|
||||
case 72: // h letter (vim style)
|
||||
selectedArticle = goSelectPrev(selectedArticle,1);
|
||||
break;
|
||||
|
||||
case 39: // right arrow
|
||||
selectedArticle = goSelectNext(selectedArticle,1);
|
||||
break;
|
||||
case 76: // l letter (vim style)
|
||||
selectedArticle = goSelectNext(selectedArticle,1);
|
||||
break;
|
||||
case 13: // enter into article
|
||||
enterArticle(selectedArticle);
|
||||
break;
|
||||
case 74: // j letter key
|
||||
selectedArticle = goSelectNext(selectedArticle,3);
|
||||
break;
|
||||
case 40: // down arrow
|
||||
selectedArticle = goSelectNext(selectedArticle,3);
|
||||
break;
|
||||
case 75: // k letter key
|
||||
selectedArticle = goSelectNext(selectedArticle,3);
|
||||
break;
|
||||
case 38: // up arrow
|
||||
selectedArticle = goSelectNext(selectedArticle,3);
|
||||
break;
|
||||
}
|
||||
|
||||
}, false);
|
||||
}
|
||||
|
||||
function goSelectNext(selectedArticle,number) {
|
||||
if (selectedArticle.next().length) {
|
||||
selectedArticle.removeClass("eselected");
|
||||
selectedArticle = selectedArticle.next();
|
||||
selectedArticle.addClass("eselected");
|
||||
console.log("Changed selected to next");
|
||||
console.log("selectedArticle is now " + selectedArticle.attr("id"));
|
||||
}
|
||||
return selectedArticle;
|
||||
}
|
||||
|
||||
|
||||
function goSelectPrev(selectedArticle,number) {
|
||||
if (selectedArticle.prev().length) {
|
||||
selectedArticle.removeClass("eselected");
|
||||
selectedArticle = selectedArticle.prev();
|
||||
selectedArticle.addClass("eselected");
|
||||
console.log("Changed selected to previous");
|
||||
console.log("selectedArticle is now " + selectedArticle.attr("id"));
|
||||
|
||||
}
|
||||
return selectedArticle;
|
||||
}
|
||||
|
||||
function enterArticle(selectedArticle) {
|
||||
window.location = selectedArticle.find('a:first').attr('href');
|
||||
}
|
||||
@ -39,3 +39,33 @@
|
||||
<script src="{{ poche_url }}themes/_global/js/popupForm.js"></script>
|
||||
<script src="{{ poche_url }}themes/_global/js/keyboard.js"></script>
|
||||
<script src="{{ poche_url }}themes/{{theme}}/js/closeMessage.js"></script>
|
||||
|
||||
<!-- Enable Firefox Social Services
|
||||
script put there because of the call to poche_url -->
|
||||
|
||||
<script>
|
||||
var baseurl = "{{ poche_url }}";
|
||||
console.log(baseurl);
|
||||
var data = {
|
||||
|
||||
"name": "wallabag",
|
||||
"iconURL": baseurl + "/themes/_global/img/appicon/firefox-service-icon-16.png",
|
||||
"icon32URL": baseurl + "/themes/_global/img/appicon/firefox-service-icon-32.png",
|
||||
"icon64URL": baseurl + "/themes/_global/img/appicon/firefox-service-icon-64.png",
|
||||
|
||||
"shareURL": baseurl + "/index.php?action=add&plainurl=%{url}",
|
||||
|
||||
"description": "wallabag Extension for Firefox - The (soon to become) best way to save articles, videos and more",
|
||||
"author": "Thomas Citharel",
|
||||
"homepageURL": "http://doc.wallabag.org/en/User/save_your_first_article.html#firefox-social-api-service",
|
||||
"origin": "https://wallabag.org",
|
||||
"postActivationURL": "http://doc.wallabag.org/en/User/save_your_first_article.html#firefox-social-api-service",
|
||||
|
||||
"version": "0.1"
|
||||
};
|
||||
function activateSocialFeature(node) {
|
||||
var event = new CustomEvent("ActivateSocialFeature");
|
||||
node.setAttribute("data-service", JSON.stringify(data));
|
||||
node.dispatchEvent(event);
|
||||
}
|
||||
</script>
|
||||
|
||||
@ -16,7 +16,8 @@
|
||||
</p>
|
||||
<h3>{% trans "Browser Addons" %}</h3>
|
||||
<ul>
|
||||
<li><a href="https://addons.mozilla.org/firefox/addon/wallabag/" target="_blank">{% trans "Firefox Add-On" %}</a></li>
|
||||
<li><a href="https://addons.mozilla.org/firefox/addon/wallabag/" target="_blank">{% trans "Standard Firefox Add-On" %}</a></li>
|
||||
<li><button onclick="activateSocialFeature(this)">{% trans "Mozilla Services (Social API) Extension" %}</button></li>
|
||||
<li><a href="https://chrome.google.com/webstore/detail/wallabag/bepdcjnnkglfjehplaogpoonpffbdcdj" target="_blank">{% trans "Chrome Extension" %}</a></li>
|
||||
</ul>
|
||||
<h3>{% trans "Mobile Apps" %}</h3>
|
||||
|
||||
@ -399,19 +399,19 @@ footer a {
|
||||
transition: all 0.5s ease;
|
||||
}
|
||||
|
||||
.entrie:hover {
|
||||
.entrie:hover, .eselected {
|
||||
box-shadow: 0 3px 10px rgba(0,0,0,1);
|
||||
}
|
||||
|
||||
.entrie:hover:after {
|
||||
.entrie:hover:after, .eselected:after {
|
||||
height: 40px;
|
||||
}
|
||||
|
||||
.entrie:hover:before {
|
||||
.entrie:hover:before, .eselected:before {
|
||||
bottom: 2.4em;
|
||||
}
|
||||
|
||||
.entrie:hover h2 a {
|
||||
.entrie:hover h2 a, .eselected h2 a {
|
||||
color: #666;
|
||||
}
|
||||
|
||||
@ -421,9 +421,9 @@ footer a {
|
||||
line-height: 1.2;
|
||||
}
|
||||
|
||||
.entrie h2:after {
|
||||
content: none;
|
||||
}
|
||||
.entrie h2:after {
|
||||
content: none;
|
||||
}
|
||||
|
||||
|
||||
.entrie h2 a {
|
||||
@ -437,16 +437,6 @@ footer a {
|
||||
-o-transition: all 0.5s ease;
|
||||
transition: all 0.5s ease;
|
||||
}
|
||||
/*
|
||||
.entrie h2 a:after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
left: 0;
|
||||
}
|
||||
*/
|
||||
|
||||
.entrie p {
|
||||
color: #666;
|
||||
@ -454,12 +444,8 @@ footer a {
|
||||
line-height: 1.7;
|
||||
}
|
||||
|
||||
.entrie h2 a:first-letter {
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.entrie:hover .tools {
|
||||
bottom: 0;
|
||||
.entrie h2 a:first-letter {
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.entrie .tools {
|
||||
@ -477,20 +463,25 @@ footer a {
|
||||
transition: all 0.5s ease;
|
||||
}
|
||||
|
||||
.entrie .tools a {
|
||||
color: #666;
|
||||
text-decoration: none;
|
||||
display: block;
|
||||
padding: 0.4em;
|
||||
}
|
||||
.entrie:hover .tools, .eselected .tools {
|
||||
bottom: 0;
|
||||
}
|
||||
|
||||
.entrie .tools a:hover {
|
||||
color: #FFF;
|
||||
}
|
||||
|
||||
.entrie .tools li {
|
||||
display: inline-block;
|
||||
}
|
||||
.entrie .tools a {
|
||||
color: #666;
|
||||
text-decoration: none;
|
||||
display: block;
|
||||
padding: 0.4em;
|
||||
}
|
||||
|
||||
.entrie .tools a:hover {
|
||||
color: #FFF;
|
||||
}
|
||||
|
||||
.entrie .tools li {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.entrie:nth-child(3n+1) {
|
||||
margin-left: 0;
|
||||
|
||||
@ -107,4 +107,8 @@
|
||||
{% if constant('PDF') == 1 %}<a title="{% trans "Download the articles from this category in a pdf file" %}" href="./?pdf&method=category&value={{ view }}">{% trans "Download as PDF" %}</a>{% endif %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
<script type="text/javascript">
|
||||
homeNavigation();
|
||||
</script>
|
||||
{% endblock %}
|
||||
|
||||
@ -6,8 +6,12 @@
|
||||
{% block content %}
|
||||
<h2>{% trans "Tags" %}</h2>
|
||||
<ul class="list-tags">
|
||||
{% if tags is not empty %}
|
||||
{% for tag in tags %}<li>{% if token != '' %}<a class="icon icon-rss" href="?feed&type=tag&user_id={{ user_id }}&tag_id={{ tag.id }}&token={{ token }}" target="_blank"><span>rss</span></a>{% endif %} <a href="./?view=tag&id={{ tag.id }}">{{ tag.value }}</a> ({{ tag.entriescount }})
|
||||
</li>
|
||||
{% endfor %}
|
||||
{% else %}
|
||||
{% trans "No tags found. You must view an article to set tags for it." %}
|
||||
{% endif %}
|
||||
</ul>
|
||||
{% endblock %}
|
||||
|
||||
@ -111,6 +111,9 @@
|
||||
// Use left and right arrow to navigate on with keyboard
|
||||
navigateKeyboard('?view=view&id={{ navigate.nextid|e }}','?view=view&id={{ navigate.previousid|e }}');
|
||||
|
||||
// use keyboard to do actions
|
||||
actionArticle('{{ entry.id|e }}');
|
||||
|
||||
// swipe to right or left on mobile to navigate
|
||||
$('article').on("swiperight", function(){
|
||||
goLeft('?view=view&id={{ navigate.nextid|e }}');
|
||||
|
||||
@ -36,3 +36,33 @@
|
||||
<script src="{{ poche_url }}themes/_global/js/saveLink.js"></script>
|
||||
<script src="{{ poche_url }}themes/_global/js/keyboard.js"></script>
|
||||
<script src="{{ poche_url }}themes/_global/js/popupForm.js"></script>
|
||||
|
||||
<!-- Enable Firefox Social Services
|
||||
script put there because of the call to poche_url -->
|
||||
|
||||
<script>
|
||||
var baseurl = "{{ poche_url }}";
|
||||
console.log(baseurl);
|
||||
var data = {
|
||||
|
||||
"name": "wallabag",
|
||||
"iconURL": baseurl + "/themes/_global/img/appicon/firefox-service-icon-16.png",
|
||||
"icon32URL": baseurl + "/themes/_global/img/appicon/firefox-service-icon-32.png",
|
||||
"icon64URL": baseurl + "/themes/_global/img/appicon/firefox-service-icon-64.png",
|
||||
|
||||
"shareURL": baseurl + "/index.php?action=add&plainurl=%{url}",
|
||||
|
||||
"description": "wallabag Extension for Firefox - The (soon to become) best way to save articles, videos and more",
|
||||
"author": "Thomas Citharel",
|
||||
"homepageURL": "http://doc.wallabag.org/en/User/save_your_first_article.html#firefox-social-api-service",
|
||||
"origin": "https://wallabag.org",
|
||||
"postActivationURL": "http://doc.wallabag.org/en/User/save_your_first_article.html#firefox-social-api-service",
|
||||
|
||||
"version": "0.1"
|
||||
};
|
||||
function activateSocialFeature(node) {
|
||||
var event = new CustomEvent("ActivateSocialFeature");
|
||||
node.setAttribute("data-service", JSON.stringify(data));
|
||||
node.dispatchEvent(event);
|
||||
}
|
||||
</script>
|
||||
@ -2,11 +2,13 @@
|
||||
<!--
|
||||
$(document).ready(function() {
|
||||
$("body").css("cursor", "wait");
|
||||
$("#content").css("display", "none");
|
||||
|
||||
setTimeout(function(){
|
||||
window.location = './?import';
|
||||
}, {{ import.delay }} );
|
||||
});
|
||||
|
||||
//-->
|
||||
</script>
|
||||
<div class="messages warning">
|
||||
|
||||
@ -16,7 +16,8 @@
|
||||
</p>
|
||||
<h3>Browser Plugins</h3>
|
||||
<ul>
|
||||
<li><a href="https://addons.mozilla.org/firefox/addon/wallabag/" target="_blank">{% trans "Firefox Add-On" %}</a></li>
|
||||
<li><a href="https://addons.mozilla.org/firefox/addon/wallabag/" target="_blank">{% trans "Standard Firefox Add-On" %}</a></li>
|
||||
<li><button onclick="activateSocialFeature(this)">{% trans "Mozilla Services (Social API) Extension" %}</button></li>
|
||||
<li><a href="https://chrome.google.com/webstore/detail/wallabag/bepdcjnnkglfjehplaogpoonpffbdcdj" target="_blank">{% trans "Chrome Extension" %}</a></li>
|
||||
</ul>
|
||||
<h3>Mobile Apps</h3>
|
||||
|
||||
Reference in New Issue
Block a user