1
0
mirror of https://github.com/laurent22/joplin.git synced 2025-08-13 22:12:50 +02:00

Merge branch 'master' of github.com:laurent22/joplin

This commit is contained in:
Laurent Cozic
2019-01-10 18:04:20 +00:00
15 changed files with 165 additions and 110 deletions

View File

@@ -1,3 +1,7 @@
**IMPORTANT:** At the moment pull requests for new features are no longer being accepted. More info there: https://github.com/laurent22/joplin/issues/1112
* * *
# User support
For general discussion about Joplin, user support, software development questions, and to discuss new features, please go to the [Joplin Forum](https://discourse.joplin.cozic.net/). It is possible to login with your GitHub account.

View File

@@ -472,10 +472,10 @@ msgid "Starting synchronisation..."
msgstr "Starte Synchronisation..."
msgid "Downloading resources..."
msgstr ""
msgstr "Lade Anhänge herunter..."
msgid "Cancelling... Please wait."
msgstr "Abbrechen Bitte warten."
msgstr "Abbrechen... Bitte warten."
msgid ""
"<tag-command> can be \"add\", \"remove\" or \"list\" to assign or remove "
@@ -600,7 +600,7 @@ msgstr "Exportiere „%s“ ins „%s“ Format. Bitte warten..."
#, javascript-format
msgid "Importing from \"%s\" as \"%s\" format. Please wait..."
msgstr "Importiere „%s“ ins „%s“ Format. Bitte warten"
msgstr "Importiere „%s“ ins „%s“ Format. Bitte warten..."
msgid "PDF File"
msgstr "PDF-Datei"
@@ -671,7 +671,7 @@ msgid "View"
msgstr "Ansicht"
msgid "Toggle sidebar"
msgstr "Seitenleiste ein/aus"
msgstr "Seitenleiste umschalten"
msgid "Toggle editor layout"
msgstr "Editor-Layout umschalten"
@@ -701,7 +701,7 @@ msgid "Make a donation"
msgstr "Spenden"
msgid "Check for updates..."
msgstr "Überprüfe auf Updates…"
msgstr "Überprüfe auf Aktualisierungen..."
msgid "About Joplin"
msgstr "Über Joplin"
@@ -724,10 +724,10 @@ msgid "Cancel"
msgstr "Abbrechen"
msgid "Current version is up-to-date."
msgstr "Die aktuelle Version ist up-to-date."
msgstr "Die aktuelle Version ist auf dem neuesten Stand."
msgid "An update is available, do you want to download it now?"
msgstr "Es ist ein Update verfügbar. Soll es jetzt heruntergeladen werden?"
msgstr "Es ist eine Aktualisierung verfügbar. Soll sie jetzt heruntergeladen werden?"
msgid "Yes"
msgstr "Ja"
@@ -883,7 +883,7 @@ msgstr ""
"Notizbücher ursprünglich verschlüsselt wurden."
msgid "Missing Master Keys"
msgstr "Fehlender Hauptschlüssel"
msgstr "Fehlende Hauptschlüssel"
msgid ""
"The master keys with these IDs are used to encrypt some of your items, "
@@ -965,7 +965,7 @@ msgstr "Duplizieren"
#, javascript-format
msgid "%s - Copy"
msgstr "%s kopieren"
msgstr "%s - Kopieren"
msgid "Switch between note and to-do type"
msgstr "Zwischen Notiz und To-Do Typ wechseln"
@@ -1575,10 +1575,10 @@ msgid "On %s: %s"
msgstr "Auf %s: %s"
msgid "Permission to use camera"
msgstr ""
msgstr "Berechtigung zur Verwendung der Kamera"
msgid "Your permission to use your camera is required."
msgstr ""
msgstr "Deine Zustimmung zur Verwendung deiner Kamera ist erforderlich."
msgid "There are currently no notes. Create one by clicking on the (+) button."
msgstr ""
@@ -1775,7 +1775,7 @@ msgid "View on map"
msgstr "Auf der Karte anzeigen"
msgid "Go to source URL"
msgstr ""
msgstr "Zur Quell-URL gehen"
msgid "Delete notebook"
msgstr "Notizbuch löschen"

View File

@@ -15,6 +15,8 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.0.6\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"POT-Creation-Date: \n"
"PO-Revision-Date: \n"
msgid "To delete a tag, untag the associated notes."
msgstr "タグを削除するには、関連するノートからタグを外してください。"
@@ -236,7 +238,7 @@ msgstr ""
"ムを参照できます。"
msgid "To move from one pane to another, press Tab or Shift+Tab."
msgstr "ペイン間を移動するには、TabかShift+Tabをしてください。"
msgstr "ペイン間を移動するには、TabかShift+Tabをしてください。"
msgid ""
"Use the arrows and page up/down to scroll the lists and text areas "
@@ -446,7 +448,7 @@ msgid "Starting synchronisation..."
msgstr "同期を開始中..."
msgid "Downloading resources..."
msgstr ""
msgstr "リソースをダウンロード中..."
msgid "Cancelling... Please wait."
msgstr "中止中...お待ちください。"
@@ -618,9 +620,8 @@ msgstr "切り取り"
msgid "Paste"
msgstr "貼り付け"
#, fuzzy
msgid "Select all"
msgstr "日付の選択"
msgstr "すべて選択"
msgid "Bold"
msgstr "太字"
@@ -637,9 +638,8 @@ msgstr "外部エディターで編集"
msgid "Search in all the notes"
msgstr "すべてのノートを検索"
#, fuzzy
msgid "Search in current note"
msgstr "すべてのノートを検索"
msgstr "現在のノートを検索"
msgid "View"
msgstr "表示"
@@ -710,7 +710,7 @@ msgid "No"
msgstr "No"
msgid "Token has been copied to the clipboard!"
msgstr ""
msgstr "トークンをクリップボードにコピーしました!"
msgid "The web clipper service is enabled and set to auto-start."
msgstr "Webクリッパーサービスは有効で、自動起動します。"
@@ -760,20 +760,21 @@ msgstr "ステップ2: 拡張機能のインストール"
msgid "Download and install the relevant extension for your browser:"
msgstr "関連する拡張機能をブラウザーにインストールします:"
#, fuzzy
msgid "Advanced options"
msgstr "詳細な設定の表示"
msgstr "詳細な設定"
msgid "Authorisation token:"
msgstr ""
msgstr "認証するトークン:"
msgid "Copy token"
msgstr ""
msgstr "トークンのコピー"
msgid ""
"This authorisation token is only needed to allow third-party applications to "
"access Joplin."
msgstr ""
"この認証トークンはサードパーティアプリケーションがJoplinにアクセスするためだ"
"けに必要です。"
msgid "Check synchronisation configuration"
msgstr "同期の設定を確認する"
@@ -938,13 +939,11 @@ msgstr "%s - コピー"
msgid "Switch between note and to-do type"
msgstr "ノートとToDoを切り替え"
#, fuzzy
msgid "Switch to note type"
msgstr "ノートとToDoを切り替え"
msgstr "ノート切り替え"
#, fuzzy
msgid "Switch to to-do type"
msgstr "ノートとToDo切り替え"
msgstr "ToDo切り替え"
msgid "Copy Markdown link"
msgstr "Markdownのリンクをコピー"
@@ -963,13 +962,13 @@ msgid ""
msgstr "ノートブックがありません。新しいノートブックを作成してください。"
msgid "Location"
msgstr ""
msgstr "場所"
msgid "URL"
msgstr ""
msgstr "URL"
msgid "Note properties"
msgstr ""
msgstr "ノートのプロパティ"
msgid "Open..."
msgstr "開く..."
@@ -988,7 +987,7 @@ msgid "Copy Link Address"
msgstr "リンクアドレスをコピー"
msgid "This attachment is not downloaded or not decrypted yet."
msgstr ""
msgstr "この添付ファイルはダウンロードできないか、まだ復号できません。"
#, javascript-format
msgid "Unsupported link or message: %s"
@@ -1015,7 +1014,7 @@ msgid "Insert Hyperlink"
msgstr "ハイパーリンクの挿入"
msgid "Attach file"
msgstr "ファイルを添付"
msgstr "ファイルを添付する"
msgid "Tags"
msgstr "タグ"
@@ -1107,9 +1106,9 @@ msgstr "ノートブック"
msgid "Decrypting items: %d/%d"
msgstr "復号中のアイテム: %d/%d"
#, fuzzy, javascript-format
#, javascript-format
msgid "Fetching resources: %d"
msgstr "リソース: %d."
msgstr "取得中のリソース: %d"
msgid "Please select where the sync status should be exported to"
msgstr "同期状況の出力先を選択してください"
@@ -1320,6 +1319,8 @@ msgid ""
"this setting so that your notes are constantly being synchronised, thus "
"reducing the number of conflicts."
msgstr ""
"有効にすると、Joplinがバックグラウンドで動作するようになります。ノートを定期"
"的に同期し、衝突を減らすために強くおすすめする設定です。"
msgid "Start application minimised in the tray icon"
msgstr "アプリケーションをトレイアンコンで最小化して起動"
@@ -1327,9 +1328,8 @@ msgstr "アプリケーションをトレイアンコンで最小化して起動
msgid "Global zoom percentage"
msgstr "全体ズームの割合"
#, fuzzy
msgid "Editor font size"
msgstr "エディターのフォントファミリー"
msgstr "エディターのフォントサイズ"
msgid "Editor font family"
msgstr "エディターのフォントファミリー"
@@ -1342,7 +1342,7 @@ msgstr ""
"誤っているか空の場合は、一般的な等幅フォントが指定されるでしょう。"
msgid "Automatically update the application"
msgstr "アプリケーション自動更新"
msgstr "アプリケーション自動的にアップデート"
msgid "Synchronisation interval"
msgstr "同期間隔"
@@ -1457,9 +1457,8 @@ msgstr "Joplin エクスポートディレクトリ"
msgid "Evernote Export File"
msgstr "Evernote エクスポートファイル"
#, fuzzy
msgid "Json Export Directory"
msgstr "Joplin エクスポートディレクトリ"
msgstr "Json エクスポートディレクトリ"
msgid "Directory"
msgstr "ディレクトリ"
@@ -1536,10 +1535,10 @@ msgid "On %s: %s"
msgstr "日時 %s: %s"
msgid "Permission to use camera"
msgstr ""
msgstr "カメラ使用の許可"
msgid "Your permission to use your camera is required."
msgstr ""
msgstr "カメラを使用するには権限が必要です。"
msgid "There are currently no notes. Create one by clicking on the (+) button."
msgstr "ノートがありません。(+)ボタンを押して新しいノートを作成してください。"
@@ -1569,9 +1568,8 @@ msgstr "%d個のノートを\"%s\"に移動しますか?"
msgid "Press to set the decryption password."
msgstr "復号するパスワードを入力してください。"
#, fuzzy
msgid "Clear alarm"
msgstr "アラームをセット"
msgstr "アラームをクリア"
msgid "Save alarm"
msgstr "アラームの保存"
@@ -1585,22 +1583,21 @@ msgstr "確認"
msgid "Cancel synchronisation"
msgstr "同期の中止"
#, fuzzy
msgid "Checking... Please wait."
msgstr "中止中...お待ちください。"
msgstr "確認中...お待ちください。"
#, fuzzy
msgid "Success! Synchronisation configuration appears to be correct."
msgstr "同期の設定を確認する"
msgstr "成功です! 同期の設定は正しいようです。"
msgid ""
"Error. Please check that URL, username, password, etc. are correct and that "
"the sync target is accessible. The reported error was:"
msgstr ""
"エラーです。URL、ユーザー名、パスワードなどを修正し、同期するターゲットにアク"
"セスできるかを確認してください。次が報告されたエラーです:"
#, fuzzy
msgid "The application has been authorised!"
msgstr "アプリケーションは問題なく認証されました"
msgstr "アプリケーションは問題なく認証されました"
#, javascript-format
msgid ""
@@ -1610,10 +1607,15 @@ msgid ""
"\n"
"Please try again."
msgstr ""
"アプリケーションが認証できません:\n"
"\n"
"%s\n"
"\n"
"やり直してください。"
#, fuzzy, javascript-format
#, javascript-format
msgid "Decrypted items: %s / %s"
msgstr "復号中のアイテム: %d/%d"
msgstr "復号中のアイテム: %s/%s"
msgid "New tags:"
msgstr "新しいタグ:"
@@ -1698,9 +1700,8 @@ msgstr "Joplinモバイルアプリは次のタイプのリンクをまだサポ
msgid "Unsupported image type: %s"
msgstr "サポートされていない画像の形式: %s"
#, fuzzy
msgid "Take photo"
msgstr "写真を添付"
msgstr "写真を撮影する"
msgid "Attach photo"
msgstr "写真を添付"
@@ -1727,7 +1728,7 @@ msgid "View on map"
msgstr "地図上に表示"
msgid "Go to source URL"
msgstr ""
msgstr "ソースURLに行く"
msgid "Delete notebook"
msgstr "ノートブックを削除"

View File

@@ -1,13 +1,13 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR Laurent Cozic
# This file is distributed under the same license as the Joplin-CLI package.
# Mats Estensen <matsest@mxe.no>, 2018
# Mats Estensen <code@mxe.no>, 2018
#
msgid ""
msgstr ""
"Project-Id-Version: Joplin-CLI 1.0.0\n"
"Report-Msgid-Bugs-To: \n"
"Last-Translator: Mats Estensen <matsest@mxe.no>\n"
"Last-Translator: Mats Estensen <code@mxe.no>\n"
"Language-Team: \n"
"Language: nb_NO\n"
"MIME-Version: 1.0\n"
@@ -602,7 +602,7 @@ msgid "Export"
msgstr "Eksport"
msgid "Print"
msgstr "Skriv Ut"
msgstr "Skriv ut"
#, javascript-format
msgid "Hide %s"
@@ -624,7 +624,7 @@ msgid "Paste"
msgstr "Lim inn"
msgid "Select all"
msgstr "Velg alle"
msgstr "Marker alt"
msgid "Bold"
msgstr "Fet"
@@ -643,7 +643,7 @@ msgstr "Søk i alle notater"
#, fuzzy
msgid "Search in current note"
msgstr "Søk i alle notater"
msgstr "Søk i nåværende notat"
msgid "View"
msgstr "Utseende"
@@ -693,7 +693,7 @@ msgid "Open %s"
msgstr "Åpne %s"
msgid "Exit"
msgstr "Gå ut"
msgstr "Avslutt"
msgid "OK"
msgstr "OK"
@@ -1024,7 +1024,7 @@ msgid "Attach file"
msgstr "Legg ved fil"
msgid "Tags"
msgstr "Merkelapp"
msgstr "Merkelapper"
msgid "Set alarm"
msgstr "Angi alarm"
@@ -1302,7 +1302,7 @@ msgid "Save geo-location with notes"
msgstr "Lagre stedsinformasjon med notater"
msgid "When creating a new to-do:"
msgstr "Når nytt gjøre mål opprettes:"
msgstr "Når nytt gjøremål opprettes:"
msgid "Focus title"
msgstr "Fokuser på tittel"
@@ -1336,7 +1336,7 @@ msgstr "Global forstørrelse"
#, fuzzy
msgid "Editor font size"
msgstr "Editor skrifttype"
msgstr "Editor skriftstørrelse"
msgid "Editor font family"
msgstr "Editor skrifttype"
@@ -1454,19 +1454,19 @@ msgid "The tag \"%s\" already exists. Please choose a different name."
msgstr "Merkelappen \"%s\" eksiterer allerede. Vennligst velg et annet navn."
msgid "Joplin Export File"
msgstr "Joplin Eksporter Fil"
msgstr "Joplin-eksportert fil"
msgid "Markdown"
msgstr "Markdown"
msgid "Joplin Export Directory"
msgstr "Joplin Eksporter Katalog"
msgstr "Joplin-eksportert katalog"
msgid "Evernote Export File"
msgstr "Evernote Eksporter Fil"
msgstr "Evernote-eksportert fil"
msgid "Json Export Directory"
msgstr "Json Eksporter Katalog"
msgstr "Json-eksportert katalog"
msgid "Directory"
msgstr "Katalog"
@@ -1710,7 +1710,7 @@ msgstr "Bildetypen er ikke støttet: %s"
#, fuzzy
msgid "Take photo"
msgstr "Legg ved et bilde"
msgstr "Ta et bilde"
msgid "Attach photo"
msgstr "Legg ved et bilde"

View File

@@ -14,8 +14,10 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.2\n"
"X-Generator: Poedit 2.0.7\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"POT-Creation-Date: \n"
"PO-Revision-Date: \n"
msgid "To delete a tag, untag the associated notes."
msgstr "Para eliminar uma tag, remova a tag das notas associadas a ela."
@@ -647,9 +649,8 @@ msgstr "Editar com editor externo"
msgid "Search in all the notes"
msgstr "Pesquisar em todas as notas"
#, fuzzy
msgid "Search in current note"
msgstr "Pesquisar em todas as notas"
msgstr "Pesquisar na nota atual"
msgid "View"
msgstr "Visualizar"
@@ -1260,7 +1261,7 @@ msgid "title"
msgstr "título"
msgid "updated date"
msgstr "data de ataualização"
msgstr "data de atualização"
msgid "created date"
msgstr "data de criação"
@@ -1342,9 +1343,8 @@ msgstr "Iniciar aplicativo minimizado na barra de tarefas"
msgid "Global zoom percentage"
msgstr "Porcentagem global do zoom"
#, fuzzy
msgid "Editor font size"
msgstr "Família de fontes do editor"
msgstr "Tamanho da fonte no Editor"
msgid "Editor font family"
msgstr "Família de fontes do editor"
@@ -1722,9 +1722,8 @@ msgstr "O app mobile do Joplin não suporta, atualmente, esse tipo de link: %s"
msgid "Unsupported image type: %s"
msgstr "Tipo de imagem não suportada: %s"
#, fuzzy
msgid "Take photo"
msgstr "Anexar foto"
msgstr "Tirar foto"
msgid "Attach photo"
msgstr "Anexar foto"

View File

@@ -657,7 +657,7 @@ msgid "View"
msgstr "Вид"
msgid "Toggle sidebar"
msgstr ""
msgstr "Переключить панель"
msgid "Toggle editor layout"
msgstr "Переключить вид редактора"
@@ -669,7 +669,7 @@ msgid "Synchronisation status"
msgstr "Статус синхронизации"
msgid "Web clipper options"
msgstr ""
msgstr "Настройки веб-клиппера"
msgid "Encryption options"
msgstr "Настройки шифрования"
@@ -725,7 +725,7 @@ msgid "Token has been copied to the clipboard!"
msgstr ""
msgid "The web clipper service is enabled and set to auto-start."
msgstr ""
msgstr "Веб-клиппер включен"
#, javascript-format
msgid "Status: Started on port %d"
@@ -736,13 +736,13 @@ msgid "Status: %s"
msgstr "Статус: «%s»."
msgid "Disable Web Clipper Service"
msgstr ""
msgstr "Выключить веб-клиппер"
msgid "The web clipper service is not enabled."
msgstr ""
msgstr "Веб-клиппер остановлен"
msgid "Enable Web Clipper Service"
msgstr ""
msgstr "Включить веб-клиппер"
msgid ""
"Joplin Web Clipper allows saving web pages and screenshots from your browser "
@@ -753,7 +753,7 @@ msgid "In order to use the web clipper, you need to do the following:"
msgstr ""
msgid "Step 1: Enable the clipper service"
msgstr ""
msgstr "Шаг 1: включить веб-клиппер"
msgid ""
"This service allows the browser extension to communicate with Joplin. When "
@@ -762,20 +762,20 @@ msgid ""
msgstr ""
msgid "Step 2: Install the extension"
msgstr ""
msgstr "Шаг 2: установить расширение"
msgid "Download and install the relevant extension for your browser:"
msgstr ""
msgstr "Скачайте и установите расширение для вашего браузера"
#, fuzzy
msgid "Advanced options"
msgstr "Показывать расширенные настройки"
msgid "Authorisation token:"
msgstr ""
msgstr "Токен авторизации"
msgid "Copy token"
msgstr ""
msgstr "Скопировать токен"
msgid ""
"This authorisation token is only needed to allow third-party applications to "
@@ -790,10 +790,10 @@ msgid "Notes and settings are stored in: %s"
msgstr "Заметки и настройки сохранены в: %s"
msgid "Apply"
msgstr ""
msgstr "Применить"
msgid "Submit"
msgstr ""
msgstr "Отправить"
msgid "Save"
msgstr "Сохранить"

View File

@@ -1,7 +1,7 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR Laurent Cozic
# This file is distributed under the same license as the Joplin-CLI package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
# Yukio Usuzumi <anohigisavay@gmail.com>, 2018.
#
msgid ""
msgstr ""
@@ -19,7 +19,7 @@ msgid "To delete a tag, untag the associated notes."
msgstr "移除相关笔记的标签后才可删除此标签。"
msgid "Please select the note or notebook to be deleted first."
msgstr "请选择最先删除的笔记或笔记本。"
msgstr "请选择需要删除的笔记或笔记本。"
msgid "Press Ctrl+D or type \"exit\" to exit the application"
msgstr "按 Ctrl+D 或输入 \"exit\" 退出程序"
@@ -32,7 +32,7 @@ msgid "No notebook selected."
msgstr "未选择笔记本。"
msgid "No notebook has been specified."
msgstr "指定笔记本。"
msgstr "指定笔记本。"
msgid "Y"
msgstr "是"
@@ -47,7 +47,7 @@ msgid "y"
msgstr "是"
msgid "Cancelling background synchronisation... Please wait."
msgstr "正在取消后台同步... 请稍。"
msgstr "正在取消后台同步... 请稍。"
#, javascript-format
msgid "No such command: %s"
@@ -1275,7 +1275,7 @@ msgid "Show tray icon"
msgstr "显示托盘图标"
msgid "Note: Does not work in all desktop environments."
msgstr "注意:在所有的桌面环境中都不能工作。"
msgstr "注意:在某些桌面环境下可能无法正常工作。"
msgid ""
"This will allow Joplin to run in the background. It is recommended to enable "

View File

@@ -58,7 +58,7 @@ class ElectronAppWrapper {
// Linux icon workaround for bug https://github.com/electron-userland/electron-builder/issues/2098
// Fix: https://github.com/electron-userland/electron-builder/issues/2269
if (shim.isLinux()) windowOptions.icon = __dirname + '/build/icons/128x128.png';
if (shim.isLinux()) windowOptions.icon = path.join(__dirname, '..', 'build/icons/128x128.png');
require('electron-context-menu')({
shouldShowMenu: (event, params) => {
@@ -231,4 +231,4 @@ class ElectronAppWrapper {
}
module.exports = { ElectronAppWrapper };
module.exports = { ElectronAppWrapper };

View File

@@ -3,6 +3,7 @@ const { connect } = require("react-redux");
const shared = require("lib/components/shared/side-menu-shared.js");
const { Synchronizer } = require("lib/synchronizer.js");
const BaseModel = require("lib/BaseModel.js");
const Setting = require('lib/models/Setting.js');
const Folder = require("lib/models/Folder.js");
const Note = require("lib/models/Note.js");
const Tag = require("lib/models/Tag.js");
@@ -23,7 +24,7 @@ class SideBarComponent extends React.Component {
this.onFolderDragStart_ = (event) => {
const folderId = event.currentTarget.getAttribute('folderid');
if (!folderId) return;
event.dataTransfer.setDragImage(new Image(), 1, 1);
event.dataTransfer.clearData();
event.dataTransfer.setData('text/x-jop-folder-ids', JSON.stringify([folderId]));
@@ -79,6 +80,11 @@ class SideBarComponent extends React.Component {
id: folderId,
});
};
this.state = {
tagHeaderIsExpanded: Setting.value('tagHeaderIsExpanded'),
folderHeaderIsExpanded: Setting.value('folderHeaderIsExpanded')
};
}
style() {
@@ -190,7 +196,7 @@ class SideBarComponent extends React.Component {
if (shim.isLinux()) {
// For some reason, the UI seems to sleep in some Linux distro during
// sync. Cannot find the reason for it and cannot replicate, so here
// as a test force the update at regular intervals.
// as a test force the update at regular intervals.
// https://github.com/laurent22/joplin/issues/312#issuecomment-429472193
if (!prevProps.syncStarted && this.props.syncStarted) {
this.clearForceUpdateDuringSync();
@@ -201,7 +207,7 @@ class SideBarComponent extends React.Component {
}
if (prevProps.syncStarted && !this.props.syncStarted) this.clearForceUpdateDuringSync();
}
}
}
componentWillUnmount() {
@@ -303,7 +309,7 @@ class SideBarComponent extends React.Component {
);
}
if (itemType === BaseModel.TYPE_TAG) {
if (itemType === BaseModel.TYPE_TAG) {
menu.append(
new MenuItem({
label: _('Rename'),
@@ -440,14 +446,48 @@ class SideBarComponent extends React.Component {
makeHeader(key, label, iconName, extraProps = {}) {
const style = this.style().header;
const icon = <i style={{ fontSize: style.fontSize * 1.2, marginRight: 5 }} className={"fa " + iconName} />;
if (extraProps.toggleblock || extraProps.onClick) {
style.cursor = "pointer";
}
let headerClick = extraProps.onClick || null;
delete extraProps.onClick;
// check if toggling option is set.
let toggleIcon = null;
const toggleKey = `${key}IsExpanded`;
if (extraProps.toggleblock) {
let isExpanded = this.state[toggleKey];
toggleIcon = <i className={`fa ${isExpanded ? 'fa-chevron-down' : 'fa-chevron-left'}`} style={{ fontSize: style.fontSize * 0.75,
marginRight: 12, marginLeft: 5, marginTop: style.fontSize * 0.125}}></i>;
}
return (
<div style={style} key={key} {...extraProps}>
<div style={style} key={key} {...extraProps} onClick={(event) => {
// if a custom click event is attached, trigger that.
if (headerClick) {
headerClick(key, event);
}
this.onHeaderClick_(key, event);
}}>
{icon}
{label}
<span style={{flex: 1 }}>{label}</span>
{toggleIcon}
</div>
);
}
onHeaderClick_(key, event) {
const currentHeader = event.currentTarget;
const toggleBlock = +currentHeader.getAttribute('toggleblock');
if (toggleBlock) {
const toggleKey = `${key}IsExpanded`;
const isExpanded = this.state[toggleKey];
this.setState({ [toggleKey]: !isExpanded });
Setting.setValue(toggleKey, !isExpanded);
}
}
synchronizeButton(type) {
const style = this.style().button;
const iconName = type === "sync" ? "fa-refresh" : "fa-times";
@@ -477,24 +517,27 @@ class SideBarComponent extends React.Component {
});
let items = [];
items.push(this.makeHeader("folderHeader", _("Notebooks"), "fa-folder-o", {
onDrop: this.onFolderDrop_,
folderid: '',
toggleblock: 1
}));
if (this.props.folders.length) {
const folderItems = shared.renderFolders(this.props, this.folderItem.bind(this));
items = items.concat(folderItems);
items.push(<div className="folders" key="folder_items" style={{display: this.state.folderHeaderIsExpanded ? 'block': 'none'}}>
{folderItems}</div>);
}
items.push(this.makeHeader("tagHeader", _("Tags"), "fa-tags"));
items.push(this.makeHeader("tagHeader", _("Tags"), "fa-tags", {
toggleblock: 1
}));
if (this.props.tags.length) {
const tagItems = shared.renderTags(this.props, this.tagItem.bind(this));
items.push(
<div className="tags" key="tag_items">
<div className="tags" key="tag_items" style={{display: this.state.tagHeaderIsExpanded ? 'block': 'none'}}>
{tagItems}
</div>
);

View File

@@ -58,6 +58,9 @@
"linux": {
"asar": false,
"category": "Office",
"desktop": {
"Icon": "joplin"
},
"target": "AppImage"
}
},

View File

@@ -14,7 +14,7 @@ The application is available for Windows, Linux, macOS, Android and iOS. A [Web
# Installation
Three types of applications are available: for the **desktop** (Windows, macOS and Linux), for **mobile** (Android and iOS) and for **terminal** (Windows, macOS and Linux). All applications have similar user interfaces and can synchronise with each others.
Three types of applications are available: for the **desktop** (Windows, macOS and Linux), for **mobile** (Android and iOS) and for **terminal** (Windows, macOS and Linux). All applications have similar user interfaces and can synchronise with each other.
## Desktop applications

View File

@@ -415,6 +415,7 @@ class MdToHtml {
}
applyHighlightedKeywords_(body, keywords) {
if (!keywords.length) return body;
return StringUtils.surroundKeywords(keywords, body, '<span class="highlighted-keyword">', '</span>');
}

View File

@@ -96,7 +96,7 @@ class Setting extends BaseModel {
'startMinimized': { value: false, type: Setting.TYPE_BOOL, public: true, appTypes: ['desktop'], label: () => _('Start application minimised in the tray icon') },
'collapsedFolderIds': { value: [], type: Setting.TYPE_ARRAY, public: false },
'db.ftsEnabled': { value: -1, type: Setting.TYPE_INT, public: false },
'encryption.enabled': { value: false, type: Setting.TYPE_BOOL, public: false },
'encryption.activeMasterKeyId': { value: '', type: Setting.TYPE_STRING, public: false },
@@ -119,6 +119,8 @@ class Setting extends BaseModel {
}},
'noteVisiblePanes': { value: ['editor', 'viewer'], type: Setting.TYPE_ARRAY, public: false, appTypes: ['desktop'] },
'sidebarVisibility': { value: true, type: Setting.TYPE_BOOL, public: false, appTypes: ['desktop'] },
'tagHeaderIsExpanded': { value: true, type: Setting.TYPE_BOOL, public: false, appTypes: ['desktop'] },
'folderHeaderIsExpanded': { value: true, type: Setting.TYPE_BOOL, public: false, appTypes: ['desktop'] },
'editor': { value: '', type: Setting.TYPE_STRING, public: true, appTypes: ['cli', 'desktop'], label: () => _('Text editor command'), description: () => _('The editor command (may include arguments) that will be used to open a note. If none is provided it will try to auto-detect the default editor.') },
'showAdvancedOptions': { value: false, type: Setting.TYPE_BOOL, public: true, appTypes: ['mobile' ], label: () => _('Show advanced options') },
'sync.target': { value: SyncTargetRegistry.nameToId('dropbox'), type: Setting.TYPE_INT, isEnum: true, public: true, label: () => _('Synchronisation target'), description: (appType) => { return appType !== 'cli' ? null : _('The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).') }, options: () => {
@@ -156,7 +158,7 @@ class Setting extends BaseModel {
'net.customCertificates': { value: '', type: Setting.TYPE_STRING, show: (settings) => { return [SyncTargetRegistry.nameToId('nextcloud'), SyncTargetRegistry.nameToId('webdav')].indexOf(settings['sync.target']) >= 0 }, public: true, appTypes: ['desktop', 'cli'], label: () => _('Custom TLS certificates'), description: () => _('Comma-separated list of paths to directories to load the certificates from, or path to individual cert files. For example: /my/cert_dir, /other/custom.pem. Note that if you make changes to the TLS settings, you must save your changes before clicking on "Check synchronisation configuration".') },
'net.ignoreTlsErrors': { value: false, type: Setting.TYPE_BOOL, show: (settings) => { return [SyncTargetRegistry.nameToId('nextcloud'), SyncTargetRegistry.nameToId('webdav')].indexOf(settings['sync.target']) >= 0 }, public: true, appTypes: ['desktop', 'cli'], label: () => _('Ignore TLS certificate errors') },
'api.token': { value: null, type: Setting.TYPE_STRING, public: false },
'resourceService.lastProcessedChangeId': { value: 0, type: Setting.TYPE_INT, public: false },

View File

@@ -241,4 +241,4 @@ function surroundKeywords(keywords, text, prefix, suffix) {
return text.replace(re, prefix + '$1' + suffix);
}
module.exports = { removeDiacritics, escapeFilename, wrap, splitCommandString, padLeft, toTitleCase, escapeHtml, pregQuote, surroundKeywords };
module.exports = { removeDiacritics, escapeFilename, wrap, splitCommandString, padLeft, toTitleCase, urlDecode, escapeHtml, pregQuote, surroundKeywords };

View File

@@ -1,3 +1,5 @@
IMPORTANT: At the moment pull requests for new features are no longer being accepted. More info there: https://github.com/laurent22/joplin/issues/1112
<!--
PLEASE READ THE GUIDE FIRST: https://github.com/laurent22/joplin/blob/master/CONTRIBUTING.md
-->