You've already forked joplin
mirror of
https://github.com/laurent22/joplin.git
synced 2025-11-06 09:19:22 +02:00
Merge branch 'dev' of github.com:laurent22/joplin into dev
This commit is contained in:
@@ -415,7 +415,7 @@ https://github.com/laurent22/joplin/blob/dev/readme/api/get_started/plugins.md
|
||||
</code></pre>
|
||||
<p>Doing so should compile all the files into the <code>dist/</code> directory. This is from here that Joplin will load the plugin.</p>
|
||||
<h2>Testing the plugin<a name="testing-the-plugin" href="#testing-the-plugin" class="heading-anchor">🔗</a></h2>
|
||||
<p>In order to test the plugin, you might want to run Joplin in <a href="https://github.com/laurent22/joplin/blob/dev/readme/api/references/development_mode/">Development Mode</a>. Doing so means that Joplin will run using a different profile, so you can experiment with the plugin without risking to accidentally change or delete your data.</p>
|
||||
<p>In order to test the plugin, you might want to run Joplin in <a href="https://joplinapp.org/api/references/development_mode/">Development Mode</a>. Doing so means that Joplin will run using a different profile, so you can experiment with the plugin without risking to accidentally change or delete your data.</p>
|
||||
<p>Finally, in order to test the plugin, open the Setting screen, then navigate the the <strong>Plugins</strong> section, and add the plugin path in the <strong>Development plugins</strong> text field. For example, if your plugin project path is <code>/home/user/src/joplin-plugin</code>, add this in the text field.</p>
|
||||
<p>Restart the app, and Joplin should load the plugin and execute its <code>onStart</code> handler. If all went well you should see the test message in the plugin console: "Test plugin started!".</p>
|
||||
<h1>Next steps<a name="next-steps" href="#next-steps" class="heading-anchor">🔗</a></h1>
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -69,6 +69,15 @@
|
||||
<div class="lead">
|
||||
<p>This is the main entry point to the Joplin API. You can access various services using the provided accessors.</p>
|
||||
</div>
|
||||
<p><strong>This is a beta API</strong></p>
|
||||
<p>Please note that the plugin API is relatively new and should be considered Beta state. Besides possible bugs, what it means is that there might be necessary breaking changes from one version to the next. Whenever such change is needed, best effort will be done to:</p>
|
||||
<ul>
|
||||
<li>Maintain backward compatibility;</li>
|
||||
<li>When possible, deprecate features instead of removing them;</li>
|
||||
<li>Document breaking changes in the changelog;</li>
|
||||
</ul>
|
||||
<p>So if you are developing a plugin, please keep an eye on the changelog as everything will be in there with information about how to update your code. There won't be any major API rewrite or architecture changes, but possibly small tweaks like function signature change, type change, etc.</p>
|
||||
<p>Eventually, the plugin API will be versioned to make this process smoother.</p>
|
||||
</div>
|
||||
</section>
|
||||
<!--
|
||||
@@ -344,6 +353,9 @@
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="../interfaces/createmenuitemoptions.html" class="tsd-kind-icon">CreateMenuItemOptions</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="../interfaces/dialogresult.html" class="tsd-kind-icon">DialogResult</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="../interfaces/editorcommand.html" class="tsd-kind-icon">EditorCommand</a>
|
||||
</li>
|
||||
|
||||
@@ -291,6 +291,9 @@
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="../interfaces/createmenuitemoptions.html" class="tsd-kind-icon">CreateMenuItemOptions</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="../interfaces/dialogresult.html" class="tsd-kind-icon">DialogResult</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="../interfaces/editorcommand.html" class="tsd-kind-icon">EditorCommand</a>
|
||||
</li>
|
||||
|
||||
@@ -345,6 +345,9 @@
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="../interfaces/createmenuitemoptions.html" class="tsd-kind-icon">CreateMenuItemOptions</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="../interfaces/dialogresult.html" class="tsd-kind-icon">DialogResult</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="../interfaces/editorcommand.html" class="tsd-kind-icon">EditorCommand</a>
|
||||
</li>
|
||||
|
||||
@@ -244,6 +244,9 @@
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="../interfaces/createmenuitemoptions.html" class="tsd-kind-icon">CreateMenuItemOptions</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="../interfaces/dialogresult.html" class="tsd-kind-icon">DialogResult</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="../interfaces/editorcommand.html" class="tsd-kind-icon">EditorCommand</a>
|
||||
</li>
|
||||
|
||||
@@ -281,6 +281,9 @@
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="../interfaces/createmenuitemoptions.html" class="tsd-kind-icon">CreateMenuItemOptions</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="../interfaces/dialogresult.html" class="tsd-kind-icon">DialogResult</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="../interfaces/editorcommand.html" class="tsd-kind-icon">EditorCommand</a>
|
||||
</li>
|
||||
|
||||
@@ -372,6 +372,9 @@
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="../interfaces/createmenuitemoptions.html" class="tsd-kind-icon">CreateMenuItemOptions</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="../interfaces/dialogresult.html" class="tsd-kind-icon">DialogResult</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="../interfaces/editorcommand.html" class="tsd-kind-icon">EditorCommand</a>
|
||||
</li>
|
||||
|
||||
@@ -302,6 +302,9 @@
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="../interfaces/createmenuitemoptions.html" class="tsd-kind-icon">CreateMenuItemOptions</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="../interfaces/dialogresult.html" class="tsd-kind-icon">DialogResult</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="../interfaces/editorcommand.html" class="tsd-kind-icon">EditorCommand</a>
|
||||
</li>
|
||||
|
||||
@@ -68,8 +68,9 @@
|
||||
<div class="tsd-comment tsd-typography">
|
||||
<div class="lead">
|
||||
<p>Allows creating and managing dialogs. A dialog is modal window that contains a webview and a row of buttons. You can update the update the webview using the <code>setHtml</code> method.
|
||||
Dialogs are hidden by default and you need to call <code>open()</code> to open them. Once the user clicks on a button, the <code>open</code> call will return and provide the button ID that was
|
||||
clicked on. There is currently no "close" method since the dialog should be thought as a modal one and thus can only be closed by clicking on one of the buttons.</p>
|
||||
Dialogs are hidden by default and you need to call <code>open()</code> to open them. Once the user clicks on a button, the <code>open</code> call will return an object indicating what button was clicked
|
||||
on. If your HTML content included one or more form, a <code>formData</code> object will also be included with the key/value for each form.
|
||||
There is currently no "close" method since the dialog should be thought as a modal one and thus can only be closed by clicking on one of the buttons.</p>
|
||||
</div>
|
||||
<p><a href="https://github.com/laurent22/joplin/tree/dev/packages/app-cli/tests/support/plugins/dialog">View the demo plugin</a></p>
|
||||
</div>
|
||||
@@ -136,7 +137,7 @@
|
||||
<a name="open" class="tsd-anchor"></a>
|
||||
<h3>open</h3>
|
||||
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
|
||||
<li class="tsd-signature tsd-kind-icon">open<span class="tsd-signature-symbol">(</span>handle<span class="tsd-signature-symbol">: </span><a href="../globals.html#viewhandle" class="tsd-signature-type">ViewHandle</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><a href="../globals.html#buttonid" class="tsd-signature-type">ButtonId</a><span class="tsd-signature-symbol">></span></li>
|
||||
<li class="tsd-signature tsd-kind-icon">open<span class="tsd-signature-symbol">(</span>handle<span class="tsd-signature-symbol">: </span><a href="../globals.html#viewhandle" class="tsd-signature-type">ViewHandle</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><a href="../interfaces/dialogresult.html" class="tsd-signature-type">DialogResult</a><span class="tsd-signature-symbol">></span></li>
|
||||
</ul>
|
||||
<ul class="tsd-descriptions">
|
||||
<li class="tsd-description">
|
||||
@@ -154,7 +155,7 @@
|
||||
</li>
|
||||
</ul>
|
||||
<!-- JOPLINCHANGE
|
||||
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><a href="../globals.html#buttonid" class="tsd-signature-type">ButtonId</a><span class="tsd-signature-symbol">></span></h4>
|
||||
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><a href="../interfaces/dialogresult.html" class="tsd-signature-type">DialogResult</a><span class="tsd-signature-symbol">></span></h4>
|
||||
|
||||
|
||||
-->
|
||||
@@ -358,6 +359,9 @@
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="../interfaces/createmenuitemoptions.html" class="tsd-kind-icon">CreateMenuItemOptions</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="../interfaces/dialogresult.html" class="tsd-kind-icon">DialogResult</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="../interfaces/editorcommand.html" class="tsd-kind-icon">EditorCommand</a>
|
||||
</li>
|
||||
|
||||
@@ -230,6 +230,9 @@
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="../interfaces/createmenuitemoptions.html" class="tsd-kind-icon">CreateMenuItemOptions</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="../interfaces/dialogresult.html" class="tsd-kind-icon">DialogResult</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="../interfaces/editorcommand.html" class="tsd-kind-icon">EditorCommand</a>
|
||||
</li>
|
||||
|
||||
@@ -231,6 +231,9 @@
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="../interfaces/createmenuitemoptions.html" class="tsd-kind-icon">CreateMenuItemOptions</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="../interfaces/dialogresult.html" class="tsd-kind-icon">DialogResult</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="../interfaces/editorcommand.html" class="tsd-kind-icon">EditorCommand</a>
|
||||
</li>
|
||||
|
||||
@@ -327,6 +327,9 @@
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="../interfaces/createmenuitemoptions.html" class="tsd-kind-icon">CreateMenuItemOptions</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="../interfaces/dialogresult.html" class="tsd-kind-icon">DialogResult</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="../interfaces/editorcommand.html" class="tsd-kind-icon">EditorCommand</a>
|
||||
</li>
|
||||
|
||||
@@ -227,6 +227,9 @@
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="../interfaces/createmenuitemoptions.html" class="tsd-kind-icon">CreateMenuItemOptions</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="../interfaces/dialogresult.html" class="tsd-kind-icon">DialogResult</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="../interfaces/editorcommand.html" class="tsd-kind-icon">EditorCommand</a>
|
||||
</li>
|
||||
|
||||
@@ -378,6 +378,9 @@
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="../interfaces/createmenuitemoptions.html" class="tsd-kind-icon">CreateMenuItemOptions</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="../interfaces/dialogresult.html" class="tsd-kind-icon">DialogResult</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="../interfaces/editorcommand.html" class="tsd-kind-icon">EditorCommand</a>
|
||||
</li>
|
||||
|
||||
@@ -219,6 +219,9 @@
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="../interfaces/createmenuitemoptions.html" class="tsd-kind-icon">CreateMenuItemOptions</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="../interfaces/dialogresult.html" class="tsd-kind-icon">DialogResult</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="../interfaces/editorcommand.html" class="tsd-kind-icon">EditorCommand</a>
|
||||
</li>
|
||||
|
||||
@@ -186,6 +186,9 @@
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="../interfaces/createmenuitemoptions.html" class="tsd-kind-icon">CreateMenuItemOptions</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="../interfaces/dialogresult.html" class="tsd-kind-icon">DialogResult</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="../interfaces/editorcommand.html" class="tsd-kind-icon">EditorCommand</a>
|
||||
</li>
|
||||
|
||||
@@ -186,6 +186,9 @@
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="../interfaces/createmenuitemoptions.html" class="tsd-kind-icon">CreateMenuItemOptions</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="../interfaces/dialogresult.html" class="tsd-kind-icon">DialogResult</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="../interfaces/editorcommand.html" class="tsd-kind-icon">EditorCommand</a>
|
||||
</li>
|
||||
|
||||
@@ -241,6 +241,9 @@
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="../interfaces/createmenuitemoptions.html" class="tsd-kind-icon">CreateMenuItemOptions</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="../interfaces/dialogresult.html" class="tsd-kind-icon">DialogResult</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="../interfaces/editorcommand.html" class="tsd-kind-icon">EditorCommand</a>
|
||||
</li>
|
||||
|
||||
@@ -230,6 +230,9 @@
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="../interfaces/createmenuitemoptions.html" class="tsd-kind-icon">CreateMenuItemOptions</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="../interfaces/dialogresult.html" class="tsd-kind-icon">DialogResult</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="../interfaces/editorcommand.html" class="tsd-kind-icon">EditorCommand</a>
|
||||
</li>
|
||||
|
||||
@@ -196,6 +196,9 @@
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="../interfaces/createmenuitemoptions.html" class="tsd-kind-icon">CreateMenuItemOptions</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="../interfaces/dialogresult.html" class="tsd-kind-icon">DialogResult</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="../interfaces/editorcommand.html" class="tsd-kind-icon">EditorCommand</a>
|
||||
</li>
|
||||
|
||||
@@ -100,6 +100,7 @@
|
||||
<li class="tsd-kind-interface"><a href="interfaces/buttonspec.html" class="tsd-kind-icon">Button<wbr>Spec</a></li>
|
||||
<li class="tsd-kind-interface"><a href="interfaces/command.html" class="tsd-kind-icon">Command</a></li>
|
||||
<li class="tsd-kind-interface"><a href="interfaces/createmenuitemoptions.html" class="tsd-kind-icon">Create<wbr>Menu<wbr>Item<wbr>Options</a></li>
|
||||
<li class="tsd-kind-interface"><a href="interfaces/dialogresult.html" class="tsd-kind-icon">Dialog<wbr>Result</a></li>
|
||||
<li class="tsd-kind-interface"><a href="interfaces/editorcommand.html" class="tsd-kind-icon">Editor<wbr>Command</a></li>
|
||||
<li class="tsd-kind-interface"><a href="interfaces/exportcontext.html" class="tsd-kind-icon">Export<wbr>Context</a></li>
|
||||
<li class="tsd-kind-interface"><a href="interfaces/exportmodule.html" class="tsd-kind-icon">Export<wbr>Module</a></li>
|
||||
@@ -234,6 +235,9 @@
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="interfaces/createmenuitemoptions.html" class="tsd-kind-icon">CreateMenuItemOptions</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="interfaces/dialogresult.html" class="tsd-kind-icon">DialogResult</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="interfaces/editorcommand.html" class="tsd-kind-icon">EditorCommand</a>
|
||||
</li>
|
||||
|
||||
@@ -146,6 +146,9 @@
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="interfaces/createmenuitemoptions.html" class="tsd-kind-icon">CreateMenuItemOptions</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="interfaces/dialogresult.html" class="tsd-kind-icon">DialogResult</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="interfaces/editorcommand.html" class="tsd-kind-icon">EditorCommand</a>
|
||||
</li>
|
||||
|
||||
@@ -228,6 +228,9 @@
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="createmenuitemoptions.html" class="tsd-kind-icon">CreateMenuItemOptions</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="dialogresult.html" class="tsd-kind-icon">DialogResult</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="editorcommand.html" class="tsd-kind-icon">EditorCommand</a>
|
||||
</li>
|
||||
|
||||
@@ -318,6 +318,9 @@
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="createmenuitemoptions.html" class="tsd-kind-icon">CreateMenuItemOptions</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="dialogresult.html" class="tsd-kind-icon">DialogResult</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="editorcommand.html" class="tsd-kind-icon">EditorCommand</a>
|
||||
</li>
|
||||
|
||||
@@ -187,6 +187,9 @@
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="after-current">
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="dialogresult.html" class="tsd-kind-icon">DialogResult</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="editorcommand.html" class="tsd-kind-icon">EditorCommand</a>
|
||||
</li>
|
||||
|
||||
272
docs/api/references/plugin_api/interfaces/dialogresult.html
Normal file
272
docs/api/references/plugin_api/interfaces/dialogresult.html
Normal file
@@ -0,0 +1,272 @@
|
||||
<!doctype html>
|
||||
<html class="default no-js">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<title>DialogResult | Joplin Plugin API Documentation</title>
|
||||
<meta name="description" content="Documentation for Joplin Plugin API Documentation">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link rel="stylesheet" href="../assets/css/main.css">
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
<div class="tsd-page-toolbar">
|
||||
<div class="container">
|
||||
<div class="table-wrap">
|
||||
<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
|
||||
<div class="field">
|
||||
<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
|
||||
<input id="tsd-search-field" type="text" />
|
||||
</div>
|
||||
<ul class="results">
|
||||
<li class="state loading">Preparing search index...</li>
|
||||
<li class="state failure">The search index is not available</li>
|
||||
</ul>
|
||||
<a href="../classes/joplin.html" class="title">Joplin Plugin API Documentation</a>
|
||||
</div>
|
||||
<div class="table-cell" id="tsd-widgets">
|
||||
<div id="tsd-filter">
|
||||
<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
|
||||
<div class="tsd-filter-group">
|
||||
<div class="tsd-select" id="tsd-filter-visibility">
|
||||
<span class="tsd-select-label">All</span>
|
||||
<ul class="tsd-select-list">
|
||||
<li data-value="public">Public</li>
|
||||
<li data-value="protected">Public/Protected</li>
|
||||
<li data-value="private" class="selected">All</li>
|
||||
</ul>
|
||||
</div>
|
||||
<input type="checkbox" id="tsd-filter-inherited" checked />
|
||||
<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
|
||||
</div>
|
||||
</div>
|
||||
<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tsd-page-title">
|
||||
<div class="container">
|
||||
<ul class="tsd-breadcrumb">
|
||||
<!--
|
||||
<li>
|
||||
<a href="../globals.html">Globals</a>
|
||||
</li>
|
||||
-->
|
||||
<li>
|
||||
<a href="dialogresult.html">DialogResult</a>
|
||||
</li>
|
||||
</ul>
|
||||
<h1><!-- Interface -->DialogResult</h1>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
<div class="container container-main">
|
||||
<div class="row">
|
||||
<div class="col-8 col-content">
|
||||
<!--
|
||||
<section class="tsd-panel tsd-hierarchy">
|
||||
<h3>Hierarchy</h3>
|
||||
<ul class="tsd-hierarchy">
|
||||
<li>
|
||||
<span class="target">DialogResult</span>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</section>
|
||||
-->
|
||||
<section class="tsd-panel-group tsd-index-group">
|
||||
<h2>Index</h2>
|
||||
<section class="tsd-panel tsd-index-panel">
|
||||
<div class="tsd-index-content">
|
||||
<section class="tsd-index-section ">
|
||||
<h3>Properties</h3>
|
||||
<ul class="tsd-index-list">
|
||||
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="dialogresult.html#formdata" class="tsd-kind-icon">form<wbr>Data</a></li>
|
||||
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="dialogresult.html#id" class="tsd-kind-icon">id</a></li>
|
||||
</ul>
|
||||
</section>
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
<section class="tsd-panel-group tsd-member-group ">
|
||||
<h2>Properties</h2>
|
||||
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
|
||||
<a name="formdata" class="tsd-anchor"></a>
|
||||
<h3><span class="tsd-flag ts-flagOptional">Optional</span> form<wbr>Data</h3>
|
||||
<div class="tsd-signature tsd-kind-icon">form<wbr>Data<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">any</span></div>
|
||||
<aside class="tsd-sources">
|
||||
</aside>
|
||||
</section>
|
||||
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
|
||||
<a name="id" class="tsd-anchor"></a>
|
||||
<h3>id</h3>
|
||||
<div class="tsd-signature tsd-kind-icon">id<span class="tsd-signature-symbol">:</span> <a href="../globals.html#buttonid" class="tsd-signature-type">ButtonId</a></div>
|
||||
<aside class="tsd-sources">
|
||||
</aside>
|
||||
</section>
|
||||
</section>
|
||||
</div>
|
||||
<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
|
||||
<!--
|
||||
<nav class="tsd-navigation primary">
|
||||
<ul>
|
||||
<li class="globals ">
|
||||
<a href="../globals.html"><em>Globals</em></a>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
-->
|
||||
<nav class="tsd-navigation secondary menu-sticky">
|
||||
<ul class="before-current">
|
||||
<li class=" tsd-kind-enum">
|
||||
<a href="../enums/contentscripttype.html" class="tsd-kind-icon">ContentScriptType</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-enum">
|
||||
<a href="../enums/filesystemitem.html" class="tsd-kind-icon">FileSystemItem</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-enum">
|
||||
<a href="../enums/importmoduleoutputformat.html" class="tsd-kind-icon">ImportModuleOutputFormat</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-enum">
|
||||
<a href="../enums/menuitemlocation.html" class="tsd-kind-icon">MenuItemLocation</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-enum">
|
||||
<a href="../enums/settingitemtype.html" class="tsd-kind-icon">SettingItemType</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-enum">
|
||||
<a href="../enums/toolbarbuttonlocation.html" class="tsd-kind-icon">ToolbarButtonLocation</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-class">
|
||||
<a href="../classes/joplin.html" class="tsd-kind-icon">joplin</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-class">
|
||||
<a href="../classes/joplincommands.html" class="tsd-kind-icon">joplin.commands</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-class">
|
||||
<a href="../classes/joplindata.html" class="tsd-kind-icon">joplin.data</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-class">
|
||||
<a href="../classes/joplininterop.html" class="tsd-kind-icon">joplin.interop</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-class">
|
||||
<a href="../classes/joplinplugins.html" class="tsd-kind-icon">joplin.plugins</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-class">
|
||||
<a href="../classes/joplinsettings.html" class="tsd-kind-icon">joplin.settings</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-class">
|
||||
<a href="../classes/joplinviews.html" class="tsd-kind-icon">joplin.views</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-class">
|
||||
<a href="../classes/joplinviewsdialogs.html" class="tsd-kind-icon">joplin.views.dialogs</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-class">
|
||||
<a href="../classes/joplinviewsmenuitems.html" class="tsd-kind-icon">joplin.views.menuItems</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-class">
|
||||
<a href="../classes/joplinviewsmenus.html" class="tsd-kind-icon">joplin.views.menus</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-class">
|
||||
<a href="../classes/joplinviewspanels.html" class="tsd-kind-icon">joplin.views.panels</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-class">
|
||||
<a href="../classes/joplinviewstoolbarbuttons.html" class="tsd-kind-icon">joplin.views.toolbarButtons</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-class">
|
||||
<a href="../classes/joplinworkspace.html" class="tsd-kind-icon">joplin.workspace</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="buttonspec.html" class="tsd-kind-icon">ButtonSpec</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="command.html" class="tsd-kind-icon">Command</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="createmenuitemoptions.html" class="tsd-kind-icon">CreateMenuItemOptions</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="current">
|
||||
<li class="current tsd-kind-interface">
|
||||
<a href="dialogresult.html" class="tsd-kind-icon">DialogResult</a>
|
||||
<ul>
|
||||
<li class=" tsd-kind-property tsd-parent-kind-interface">
|
||||
<a href="dialogresult.html#formdata" class="tsd-kind-icon">form<wbr>Data</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-property tsd-parent-kind-interface">
|
||||
<a href="dialogresult.html#id" class="tsd-kind-icon">id</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="after-current">
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="editorcommand.html" class="tsd-kind-icon">EditorCommand</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="exportcontext.html" class="tsd-kind-icon">ExportContext</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="exportmodule.html" class="tsd-kind-icon">ExportModule</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="exportoptions.html" class="tsd-kind-icon">ExportOptions</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="importcontext.html" class="tsd-kind-icon">ImportContext</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="importmodule.html" class="tsd-kind-icon">ImportModule</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="menuitem.html" class="tsd-kind-icon">MenuItem</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="script.html" class="tsd-kind-icon">Script</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="settingitem.html" class="tsd-kind-icon">SettingItem</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="settingsection.html" class="tsd-kind-icon">SettingSection</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-type-alias">
|
||||
<a href="../globals.html#buttonid" class="tsd-kind-icon">ButtonId</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-type-alias">
|
||||
<a href="../globals.html#path" class="tsd-kind-icon">Path</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-type-alias">
|
||||
<a href="../globals.html#viewhandle" class="tsd-kind-icon">ViewHandle</a>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- JOPLINCHANGE
|
||||
<footer class="with-border-bottom">
|
||||
<div class="container">
|
||||
<h2>Legend</h2>
|
||||
<div class="tsd-legend-group">
|
||||
<ul class="tsd-legend">
|
||||
<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
|
||||
<li class="tsd-kind-method tsd-parent-kind-interface"><span class="tsd-kind-icon">Method</span></li>
|
||||
</ul>
|
||||
<ul class="tsd-legend">
|
||||
<li class="tsd-kind-constructor tsd-parent-kind-class"><span class="tsd-kind-icon">Constructor</span></li>
|
||||
<li class="tsd-kind-method tsd-parent-kind-class"><span class="tsd-kind-icon">Method</span></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<div class="container tsd-generator">
|
||||
<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
|
||||
</div>
|
||||
-->
|
||||
<div class="overlay"></div>
|
||||
<script src="../assets/js/main.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -186,6 +186,9 @@
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="createmenuitemoptions.html" class="tsd-kind-icon">CreateMenuItemOptions</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="dialogresult.html" class="tsd-kind-icon">DialogResult</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="current">
|
||||
<li class="current tsd-kind-interface">
|
||||
|
||||
@@ -199,6 +199,9 @@
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="createmenuitemoptions.html" class="tsd-kind-icon">CreateMenuItemOptions</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="dialogresult.html" class="tsd-kind-icon">DialogResult</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="editorcommand.html" class="tsd-kind-icon">EditorCommand</a>
|
||||
</li>
|
||||
|
||||
@@ -386,6 +386,9 @@
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="createmenuitemoptions.html" class="tsd-kind-icon">CreateMenuItemOptions</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="dialogresult.html" class="tsd-kind-icon">DialogResult</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="editorcommand.html" class="tsd-kind-icon">EditorCommand</a>
|
||||
</li>
|
||||
|
||||
@@ -218,6 +218,9 @@
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="createmenuitemoptions.html" class="tsd-kind-icon">CreateMenuItemOptions</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="dialogresult.html" class="tsd-kind-icon">DialogResult</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="editorcommand.html" class="tsd-kind-icon">EditorCommand</a>
|
||||
</li>
|
||||
|
||||
@@ -194,6 +194,9 @@
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="createmenuitemoptions.html" class="tsd-kind-icon">CreateMenuItemOptions</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="dialogresult.html" class="tsd-kind-icon">DialogResult</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="editorcommand.html" class="tsd-kind-icon">EditorCommand</a>
|
||||
</li>
|
||||
|
||||
@@ -288,6 +288,9 @@
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="createmenuitemoptions.html" class="tsd-kind-icon">CreateMenuItemOptions</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="dialogresult.html" class="tsd-kind-icon">DialogResult</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="editorcommand.html" class="tsd-kind-icon">EditorCommand</a>
|
||||
</li>
|
||||
|
||||
@@ -223,6 +223,9 @@
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="createmenuitemoptions.html" class="tsd-kind-icon">CreateMenuItemOptions</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="dialogresult.html" class="tsd-kind-icon">DialogResult</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="editorcommand.html" class="tsd-kind-icon">EditorCommand</a>
|
||||
</li>
|
||||
|
||||
@@ -195,6 +195,9 @@
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="createmenuitemoptions.html" class="tsd-kind-icon">CreateMenuItemOptions</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="dialogresult.html" class="tsd-kind-icon">DialogResult</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="editorcommand.html" class="tsd-kind-icon">EditorCommand</a>
|
||||
</li>
|
||||
|
||||
@@ -282,6 +282,9 @@
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="createmenuitemoptions.html" class="tsd-kind-icon">CreateMenuItemOptions</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="dialogresult.html" class="tsd-kind-icon">DialogResult</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="editorcommand.html" class="tsd-kind-icon">EditorCommand</a>
|
||||
</li>
|
||||
|
||||
@@ -202,6 +202,9 @@
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="createmenuitemoptions.html" class="tsd-kind-icon">CreateMenuItemOptions</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="dialogresult.html" class="tsd-kind-icon">DialogResult</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="editorcommand.html" class="tsd-kind-icon">EditorCommand</a>
|
||||
</li>
|
||||
|
||||
@@ -682,6 +682,16 @@ Details:
|
||||
<td>Current date and/or time formatted based on a supplied string (using <a href="https://momentjs.com/">moment.js</a> formatting)</td>
|
||||
<td><code>{{#custom_datetime}}M d{{/custom_datetime}}</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>{{bowm}}</code></td>
|
||||
<td>Date of the beginning of the week (when week starts on Monday) based on the settings format</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>{{bows}}</code></td>
|
||||
<td>Date of the beginning of the week (when week starts on Sunday) based on the settings format</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h1>Searching<a name="searching" href="#searching" class="heading-anchor">🔗</a></h1>
|
||||
|
||||
@@ -402,15 +402,15 @@ https://github.com/laurent22/joplin/blob/dev/readme/stats.md
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Total Windows downloads</td>
|
||||
<td>1,090,167</td>
|
||||
<td>1,093,355</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Total macOs downloads</td>
|
||||
<td>422,857</td>
|
||||
<td>424,314</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Total Linux downloads</td>
|
||||
<td>307,611</td>
|
||||
<td>308,866</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Windows %</td>
|
||||
@@ -441,114 +441,114 @@ https://github.com/laurent22/joplin/blob/dev/readme/stats.md
|
||||
<tr>
|
||||
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.3.18">v1.3.18</a></td>
|
||||
<td>2020-11-06T12:07:02Z</td>
|
||||
<td>8,566</td>
|
||||
<td>3,609</td>
|
||||
<td>2,837</td>
|
||||
<td>15,012</td>
|
||||
<td>11,553</td>
|
||||
<td>5,028</td>
|
||||
<td>4,072</td>
|
||||
<td>20,653</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.3.15">v1.3.15</a></td>
|
||||
<td>2020-11-04T12:22:50Z</td>
|
||||
<td>2,121</td>
|
||||
<td>1,251</td>
|
||||
<td>820</td>
|
||||
<td>4,192</td>
|
||||
<td>2,130</td>
|
||||
<td>1,257</td>
|
||||
<td>822</td>
|
||||
<td>4,209</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.2.6">v1.2.6</a></td>
|
||||
<td>2020-10-09T13:56:59Z</td>
|
||||
<td>43,259</td>
|
||||
<td>17,626</td>
|
||||
<td>13,986</td>
|
||||
<td>74,871</td>
|
||||
<td>43,344</td>
|
||||
<td>17,636</td>
|
||||
<td>13,990</td>
|
||||
<td>74,970</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.1.4">v1.1.4</a></td>
|
||||
<td>2020-09-21T11:20:09Z</td>
|
||||
<td>27,391</td>
|
||||
<td>13,455</td>
|
||||
<td>7,691</td>
|
||||
<td>48,537</td>
|
||||
<td>27,401</td>
|
||||
<td>13,457</td>
|
||||
<td>7,692</td>
|
||||
<td>48,550</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.245">v1.0.245</a></td>
|
||||
<td>2020-09-09T12:56:10Z</td>
|
||||
<td>20,762</td>
|
||||
<td>9,957</td>
|
||||
<td>20,766</td>
|
||||
<td>9,959</td>
|
||||
<td>5,617</td>
|
||||
<td>36,336</td>
|
||||
<td>36,342</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.242">v1.0.242</a></td>
|
||||
<td>2020-09-04T22:00:34Z</td>
|
||||
<td>12,299</td>
|
||||
<td>6,393</td>
|
||||
<td>3,003</td>
|
||||
<td>21,695</td>
|
||||
<td>3,004</td>
|
||||
<td>21,696</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.241">v1.0.241</a></td>
|
||||
<td>2020-09-04T18:06:00Z</td>
|
||||
<td>23,064</td>
|
||||
<td>23,066</td>
|
||||
<td>5,684</td>
|
||||
<td>4,959</td>
|
||||
<td>33,707</td>
|
||||
<td>33,709</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.233">v1.0.233</a></td>
|
||||
<td>2020-08-01T14:51:15Z</td>
|
||||
<td>42,160</td>
|
||||
<td>18,145</td>
|
||||
<td>42,177</td>
|
||||
<td>18,149</td>
|
||||
<td>12,344</td>
|
||||
<td>72,649</td>
|
||||
<td>72,670</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.227">v1.0.227</a></td>
|
||||
<td>2020-07-07T20:44:54Z</td>
|
||||
<td>40,128</td>
|
||||
<td>15,234</td>
|
||||
<td>40,132</td>
|
||||
<td>15,235</td>
|
||||
<td>9,610</td>
|
||||
<td>64,972</td>
|
||||
<td>64,977</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.224">v1.0.224</a></td>
|
||||
<td>2020-06-20T22:26:08Z</td>
|
||||
<td>24,702</td>
|
||||
<td>10,975</td>
|
||||
<td>24,705</td>
|
||||
<td>10,976</td>
|
||||
<td>5,999</td>
|
||||
<td>41,676</td>
|
||||
<td>41,680</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.220">v1.0.220</a></td>
|
||||
<td>2020-06-13T18:26:22Z</td>
|
||||
<td>31,505</td>
|
||||
<td>31,507</td>
|
||||
<td>9,887</td>
|
||||
<td>6,407</td>
|
||||
<td>47,799</td>
|
||||
<td>47,801</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.218">v1.0.218</a></td>
|
||||
<td>2020-06-07T10:43:34Z</td>
|
||||
<td>14,480</td>
|
||||
<td>14,485</td>
|
||||
<td>6,946</td>
|
||||
<td>2,950</td>
|
||||
<td>24,376</td>
|
||||
<td>24,381</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.216">v1.0.216</a></td>
|
||||
<td>2020-05-24T14:21:01Z</td>
|
||||
<td>36,322</td>
|
||||
<td>14,233</td>
|
||||
<td>36,341</td>
|
||||
<td>14,235</td>
|
||||
<td>10,169</td>
|
||||
<td>60,724</td>
|
||||
<td>60,745</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.201">v1.0.201</a></td>
|
||||
<td>2020-04-15T22:55:13Z</td>
|
||||
<td>52,335</td>
|
||||
<td>52,351</td>
|
||||
<td>20,032</td>
|
||||
<td>18,167</td>
|
||||
<td>90,534</td>
|
||||
<td>90,550</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.200">v1.0.200</a></td>
|
||||
@@ -561,34 +561,34 @@ https://github.com/laurent22/joplin/blob/dev/readme/stats.md
|
||||
<tr>
|
||||
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.199">v1.0.199</a></td>
|
||||
<td>2020-04-10T18:41:58Z</td>
|
||||
<td>19,236</td>
|
||||
<td>19,237</td>
|
||||
<td>5,878</td>
|
||||
<td>3,783</td>
|
||||
<td>28,897</td>
|
||||
<td>28,898</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.197">v1.0.197</a></td>
|
||||
<td>2020-03-30T17:21:22Z</td>
|
||||
<td>22,059</td>
|
||||
<td>22,061</td>
|
||||
<td>9,506</td>
|
||||
<td>5,608</td>
|
||||
<td>37,173</td>
|
||||
<td>5,610</td>
|
||||
<td>37,177</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.195">v1.0.195</a></td>
|
||||
<td>2020-03-22T19:56:12Z</td>
|
||||
<td>18,860</td>
|
||||
<td>7,941</td>
|
||||
<td>7,942</td>
|
||||
<td>4,502</td>
|
||||
<td>31,303</td>
|
||||
<td>31,304</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.193">v1.0.193</a></td>
|
||||
<td>2020-03-08T08:58:53Z</td>
|
||||
<td>28,593</td>
|
||||
<td>10,894</td>
|
||||
<td>28,594</td>
|
||||
<td>10,895</td>
|
||||
<td>7,356</td>
|
||||
<td>46,843</td>
|
||||
<td>46,845</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.179">v1.0.179</a></td>
|
||||
@@ -609,58 +609,58 @@ https://github.com/laurent22/joplin/blob/dev/readme/stats.md
|
||||
<tr>
|
||||
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.175">v1.0.175</a></td>
|
||||
<td>2019-12-08T11:48:47Z</td>
|
||||
<td>71,972</td>
|
||||
<td>71,976</td>
|
||||
<td>16,855</td>
|
||||
<td>16,475</td>
|
||||
<td>105,302</td>
|
||||
<td>16,476</td>
|
||||
<td>105,307</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.174">v1.0.174</a></td>
|
||||
<td>2019-11-12T18:20:58Z</td>
|
||||
<td>30,387</td>
|
||||
<td>11,687</td>
|
||||
<td>30,388</td>
|
||||
<td>11,688</td>
|
||||
<td>8,216</td>
|
||||
<td>50,290</td>
|
||||
<td>50,292</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.173">v1.0.173</a></td>
|
||||
<td>2019-11-11T08:33:35Z</td>
|
||||
<td>5,057</td>
|
||||
<td>5,058</td>
|
||||
<td>2,071</td>
|
||||
<td>739</td>
|
||||
<td>7,867</td>
|
||||
<td>7,868</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.170">v1.0.170</a></td>
|
||||
<td>2019-10-13T22:13:04Z</td>
|
||||
<td>27,369</td>
|
||||
<td>27,372</td>
|
||||
<td>8,737</td>
|
||||
<td>7,668</td>
|
||||
<td>43,774</td>
|
||||
<td>43,777</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.169">v1.0.169</a></td>
|
||||
<td>2019-09-27T18:35:13Z</td>
|
||||
<td>17,080</td>
|
||||
<td>17,081</td>
|
||||
<td>5,915</td>
|
||||
<td>3,750</td>
|
||||
<td>26,745</td>
|
||||
<td>26,746</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.168">v1.0.168</a></td>
|
||||
<td>2019-09-25T21:21:38Z</td>
|
||||
<td>5,322</td>
|
||||
<td>5,323</td>
|
||||
<td>2,265</td>
|
||||
<td>714</td>
|
||||
<td>8,301</td>
|
||||
<td>8,302</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.167">v1.0.167</a></td>
|
||||
<td>2019-09-10T08:48:37Z</td>
|
||||
<td>16,778</td>
|
||||
<td>5,698</td>
|
||||
<td>16,779</td>
|
||||
<td>5,699</td>
|
||||
<td>3,700</td>
|
||||
<td>26,176</td>
|
||||
<td>26,178</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.166">v1.0.166</a></td>
|
||||
@@ -683,16 +683,16 @@ https://github.com/laurent22/joplin/blob/dev/readme/stats.md
|
||||
<td>2019-07-13T18:30:00Z</td>
|
||||
<td>19,272</td>
|
||||
<td>6,348</td>
|
||||
<td>4,132</td>
|
||||
<td>29,752</td>
|
||||
<td>4,133</td>
|
||||
<td>29,753</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.160">v1.0.160</a></td>
|
||||
<td>2019-06-15T00:21:40Z</td>
|
||||
<td>30,455</td>
|
||||
<td>7,741</td>
|
||||
<td>30,457</td>
|
||||
<td>7,742</td>
|
||||
<td>8,098</td>
|
||||
<td>46,294</td>
|
||||
<td>46,297</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.159">v1.0.159</a></td>
|
||||
@@ -730,25 +730,25 @@ https://github.com/laurent22/joplin/blob/dev/readme/stats.md
|
||||
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.151">v1.0.151</a></td>
|
||||
<td>2019-05-12T15:14:32Z</td>
|
||||
<td>1,948</td>
|
||||
<td>529</td>
|
||||
<td>530</td>
|
||||
<td>955</td>
|
||||
<td>3,432</td>
|
||||
<td>3,433</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.150">v1.0.150</a></td>
|
||||
<td>2019-05-12T11:27:48Z</td>
|
||||
<td>417</td>
|
||||
<td>128</td>
|
||||
<td>418</td>
|
||||
<td>129</td>
|
||||
<td>66</td>
|
||||
<td>611</td>
|
||||
<td>613</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.145">v1.0.145</a></td>
|
||||
<td>2019-05-03T09:16:53Z</td>
|
||||
<td>6,998</td>
|
||||
<td>7,000</td>
|
||||
<td>2,857</td>
|
||||
<td>1,434</td>
|
||||
<td>11,289</td>
|
||||
<td>11,291</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.143">v1.0.143</a></td>
|
||||
@@ -777,18 +777,18 @@ https://github.com/laurent22/joplin/blob/dev/readme/stats.md
|
||||
<tr>
|
||||
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.135">v1.0.135</a></td>
|
||||
<td>2019-02-27T23:36:57Z</td>
|
||||
<td>12,483</td>
|
||||
<td>12,484</td>
|
||||
<td>3,953</td>
|
||||
<td>4,072</td>
|
||||
<td>20,508</td>
|
||||
<td>20,509</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.134">v1.0.134</a></td>
|
||||
<td>2019-02-27T10:21:44Z</td>
|
||||
<td>1,462</td>
|
||||
<td>1,463</td>
|
||||
<td>563</td>
|
||||
<td>217</td>
|
||||
<td>2,242</td>
|
||||
<td>2,243</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.132">v1.0.132</a></td>
|
||||
@@ -803,8 +803,8 @@ https://github.com/laurent22/joplin/blob/dev/readme/stats.md
|
||||
<td>2019-02-14T23:12:48Z</td>
|
||||
<td>9,734</td>
|
||||
<td>3,164</td>
|
||||
<td>2,927</td>
|
||||
<td>15,825</td>
|
||||
<td>2,928</td>
|
||||
<td>15,826</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.125">v1.0.125</a></td>
|
||||
@@ -825,10 +825,10 @@ https://github.com/laurent22/joplin/blob/dev/readme/stats.md
|
||||
<tr>
|
||||
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.119">v1.0.119</a></td>
|
||||
<td>2018-12-18T12:40:22Z</td>
|
||||
<td>8,901</td>
|
||||
<td>8,902</td>
|
||||
<td>3,257</td>
|
||||
<td>2,013</td>
|
||||
<td>14,171</td>
|
||||
<td>14,172</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.118">v1.0.118</a></td>
|
||||
@@ -874,9 +874,9 @@ https://github.com/laurent22/joplin/blob/dev/readme/stats.md
|
||||
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.111">v1.0.111</a></td>
|
||||
<td>2018-09-30T20:15:09Z</td>
|
||||
<td>12,007</td>
|
||||
<td>3,285</td>
|
||||
<td>3,286</td>
|
||||
<td>3,663</td>
|
||||
<td>18,955</td>
|
||||
<td>18,956</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.110">v1.0.110</a></td>
|
||||
@@ -915,8 +915,8 @@ https://github.com/laurent22/joplin/blob/dev/readme/stats.md
|
||||
<td>2018-09-05T11:29:36Z</td>
|
||||
<td>4,652</td>
|
||||
<td>1,585</td>
|
||||
<td>1,452</td>
|
||||
<td>7,689</td>
|
||||
<td>1,453</td>
|
||||
<td>7,690</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.104">v1.0.104</a></td>
|
||||
@@ -938,9 +938,9 @@ https://github.com/laurent22/joplin/blob/dev/readme/stats.md
|
||||
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.101">v1.0.101</a></td>
|
||||
<td>2018-06-17T18:35:11Z</td>
|
||||
<td>1,304</td>
|
||||
<td>603</td>
|
||||
<td>604</td>
|
||||
<td>407</td>
|
||||
<td>2,314</td>
|
||||
<td>2,315</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.100">v1.0.100</a></td>
|
||||
@@ -971,8 +971,8 @@ https://github.com/laurent22/joplin/blob/dev/readme/stats.md
|
||||
<td>2018-05-26T16:36:39Z</td>
|
||||
<td>2,715</td>
|
||||
<td>1,221</td>
|
||||
<td>1,602</td>
|
||||
<td>5,538</td>
|
||||
<td>1,606</td>
|
||||
<td>5,542</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.95">v1.0.95</a></td>
|
||||
@@ -1179,8 +1179,8 @@ https://github.com/laurent22/joplin/blob/dev/readme/stats.md
|
||||
<td>2018-01-23T11:19:51Z</td>
|
||||
<td>1,964</td>
|
||||
<td>1,750</td>
|
||||
<td>29</td>
|
||||
<td>3,743</td>
|
||||
<td>30</td>
|
||||
<td>3,744</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/laurent22/joplin/releases/tag/v0.10.47">v0.10.47</a></td>
|
||||
@@ -1217,10 +1217,10 @@ https://github.com/laurent22/joplin/blob/dev/readme/stats.md
|
||||
<tr>
|
||||
<td><a href="https://github.com/laurent22/joplin/releases/tag/v0.10.39">v0.10.39</a></td>
|
||||
<td>2017-12-11T21:19:44Z</td>
|
||||
<td>5,783</td>
|
||||
<td>4,256</td>
|
||||
<td>3,158</td>
|
||||
<td>13,197</td>
|
||||
<td>5,784</td>
|
||||
<td>4,257</td>
|
||||
<td>3,159</td>
|
||||
<td>13,200</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/laurent22/joplin/releases/tag/v0.10.38">v0.10.38</a></td>
|
||||
|
||||
@@ -9,7 +9,8 @@ module.exports = {
|
||||
],
|
||||
testPathIgnorePatterns: [
|
||||
'/node_modules/',
|
||||
'tests/support/',
|
||||
'/tests\\/support/',
|
||||
'/build/',
|
||||
'test-utils.js',
|
||||
'file_api_driver.js',
|
||||
],
|
||||
|
||||
@@ -44,6 +44,8 @@ describe('services_PluginService', function() {
|
||||
const service = newPluginService();
|
||||
await service.loadAndRunPlugins([`${testPluginDir}/simple`]);
|
||||
|
||||
expect(() => service.pluginById('simple')).not.toThrowError();
|
||||
|
||||
const allFolders = await Folder.all();
|
||||
expect(allFolders.length).toBe(1);
|
||||
expect(allFolders[0].title).toBe('my plugin folder');
|
||||
@@ -54,6 +56,12 @@ describe('services_PluginService', function() {
|
||||
expect(allNotes[0].parent_id).toBe(allFolders[0].id);
|
||||
}));
|
||||
|
||||
it('should load and run a simple plugin and handle trailing slash', asyncTest(async () => {
|
||||
const service = newPluginService();
|
||||
await service.loadAndRunPlugins([`${testPluginDir}/simple/`]);
|
||||
expect(() => service.pluginById('simple')).not.toThrowError();
|
||||
}));
|
||||
|
||||
it('should load and run a plugin that uses external packages', asyncTest(async () => {
|
||||
const service = newPluginService();
|
||||
await service.loadAndRunPlugins([`${testPluginDir}/withExternalModules`]);
|
||||
|
||||
@@ -696,7 +696,18 @@ describe('services_rest_Api', function() {
|
||||
const r = await api.route(RequestMethod.GET, `resources/${resource.id}/notes`);
|
||||
|
||||
expect(r.items.length).toBe(1);
|
||||
expect(r.items[0]).toBe(note.id);
|
||||
expect(r.items[0].id).toBe(note.id);
|
||||
}));
|
||||
|
||||
it('should return the resources associated with a note', asyncTest(async () => {
|
||||
const note = await Note.save({});
|
||||
await shim.attachFileToNote(note, `${__dirname}/../tests/support/photo.jpg`);
|
||||
const resource = (await Resource.all())[0];
|
||||
|
||||
const r = await api.route(RequestMethod.GET, `notes/${note.id}/resources`);
|
||||
|
||||
expect(r.items.length).toBe(1);
|
||||
expect(r.items[0].id).toBe(resource.id);
|
||||
}));
|
||||
|
||||
it('should return search results', asyncTest(async () => {
|
||||
|
||||
@@ -7,7 +7,7 @@ joplin.plugins.register({
|
||||
const handle = await dialogs.create('myDialog1');
|
||||
await dialogs.setHtml(handle, '<p>Testing dialog with default buttons</p><p>Second line</p><p>Third line</p>');
|
||||
const result = await dialogs.open(handle);
|
||||
alert('This button was clicked: ' + result);
|
||||
alert('Got result: ' + JSON.stringify(result));
|
||||
|
||||
const handle2 = await dialogs.create('myDialog2');
|
||||
await dialogs.setHtml(handle2, '<p>Testing dialog with custom buttons</p><p>Second line</p><p>Third line</p>');
|
||||
@@ -25,7 +25,20 @@ joplin.plugins.register({
|
||||
]);
|
||||
|
||||
const result2 = await dialogs.open(handle2);
|
||||
alert('This button was clicked: ' + result2);
|
||||
alert('Got result: ' + JSON.stringify(result2));
|
||||
|
||||
const handle3 = await dialogs.create();
|
||||
await dialogs.setHtml(handle3, `
|
||||
<p>Testing dialog with form elements</p>
|
||||
<form name="user">
|
||||
Name: <input type="text" name="name"/>
|
||||
<br/>
|
||||
Email: <input type="text" name="email"/>
|
||||
</form>
|
||||
`);
|
||||
|
||||
const result3 = await dialogs.open(handle3);
|
||||
alert('Got result: ' + JSON.stringify(result3));
|
||||
},
|
||||
|
||||
});
|
||||
|
||||
@@ -272,6 +272,8 @@ const TinyMCE = (props: NoteBodyEditorProps, ref: any) => {
|
||||
},
|
||||
replaceSelection: (value: any) => {
|
||||
editor.selection.setContent(value);
|
||||
editor.fire('joplinChange');
|
||||
dispatchDidUpdate(editor);
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import * as React from 'react';
|
||||
import { useRef, useEffect, useState } from 'react';
|
||||
import { useRef, useEffect, useState, useImperativeHandle, forwardRef } from 'react';
|
||||
import useViewIsReady from './hooks/useViewIsReady';
|
||||
import useThemeCss from './hooks/useThemeCss';
|
||||
const styled = require('styled-components').default;
|
||||
@@ -32,7 +32,29 @@ const StyledFrame = styled.iframe`
|
||||
border-bottom: ${(props: Props) => props.borderBottom ? `1px solid ${props.theme.dividerColor}` : 'none'};
|
||||
`;
|
||||
|
||||
export default function UserWebview(props: Props) {
|
||||
function serializeForm(form: any) {
|
||||
const output: any = {};
|
||||
const formData = new FormData(form);
|
||||
for (const key of formData.keys()) {
|
||||
output[key] = formData.get(key);
|
||||
}
|
||||
return output;
|
||||
}
|
||||
|
||||
function serializeForms(document: any) {
|
||||
const forms = document.getElementsByTagName('form');
|
||||
const output: any = {};
|
||||
let untitledIndex = 0;
|
||||
|
||||
for (const form of forms) {
|
||||
const name = `${form.getAttribute('name')}` || (`form${untitledIndex++}`);
|
||||
output[name] = serializeForm(form);
|
||||
}
|
||||
|
||||
return output;
|
||||
}
|
||||
|
||||
function UserWebview(props: Props, ref: any) {
|
||||
const minWidth = props.minWidth ? props.minWidth : 200;
|
||||
const minHeight = props.minHeight ? props.minHeight : 20;
|
||||
|
||||
@@ -41,6 +63,18 @@ export default function UserWebview(props: Props) {
|
||||
const cssFilePath = useThemeCss({ pluginId: props.pluginId, themeId: props.themeId });
|
||||
const [contentSize, setContentSize] = useState<Size>({ width: minWidth, height: minHeight });
|
||||
|
||||
useImperativeHandle(ref, () => {
|
||||
return {
|
||||
formData: function() {
|
||||
if (viewRef.current) {
|
||||
return serializeForms(viewRef.current.contentWindow.document);
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
},
|
||||
};
|
||||
});
|
||||
|
||||
function frameWindow() {
|
||||
if (!viewRef.current) return null;
|
||||
return viewRef.current.contentWindow;
|
||||
@@ -143,3 +177,5 @@ export default function UserWebview(props: Props) {
|
||||
borderBottom={props.borderBottom}
|
||||
></StyledFrame>;
|
||||
}
|
||||
|
||||
export default forwardRef(UserWebview);
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
import { ButtonSpec } from '@joplin/lib/services/plugins/api/types';
|
||||
import { ButtonSpec, DialogResult } from '@joplin/lib/services/plugins/api/types';
|
||||
import PluginService from '@joplin/lib/services/plugins/PluginService';
|
||||
import WebviewController from '@joplin/lib/services/plugins/WebviewController';
|
||||
import * as React from 'react';
|
||||
import { useRef } from 'react';
|
||||
import UserWebview, { Props as UserWebviewProps } from './UserWebview';
|
||||
import UserWebviewDialogButtonBar from './UserWebviewDialogButtonBar';
|
||||
const styled = require('styled-components').default;
|
||||
@@ -49,6 +50,8 @@ function defaultButtons(): ButtonSpec[] {
|
||||
}
|
||||
|
||||
export default function UserWebviewDialog(props: Props) {
|
||||
const webviewRef = useRef(null);
|
||||
|
||||
function viewController(): WebviewController {
|
||||
return PluginService.instance().pluginById(props.pluginId).viewController(props.viewId) as WebviewController;
|
||||
}
|
||||
@@ -57,7 +60,10 @@ export default function UserWebviewDialog(props: Props) {
|
||||
return {
|
||||
...b,
|
||||
onClick: () => {
|
||||
viewController().closeWithResponse(b.id);
|
||||
const response: DialogResult = { id: b.id };
|
||||
const formData = webviewRef.current.formData();
|
||||
if (formData && Object.keys(formData).length) response.formData = formData;
|
||||
viewController().closeWithResponse(response);
|
||||
},
|
||||
};
|
||||
});
|
||||
@@ -67,6 +73,7 @@ export default function UserWebviewDialog(props: Props) {
|
||||
<Dialog>
|
||||
<UserWebViewWrapper>
|
||||
<UserWebview
|
||||
ref={webviewRef}
|
||||
html={props.html}
|
||||
scripts={props.scripts}
|
||||
onMessage={props.onMessage}
|
||||
|
||||
@@ -3,5 +3,6 @@
|
||||
# This is a convenient way to build and test a plugin demo.
|
||||
# It could be used to develop plugins too.
|
||||
|
||||
PLUGIN_PATH=/home/laurent/source/joplin/packages/app-cli/tests/support/plugins/register_command
|
||||
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
|
||||
PLUGIN_PATH="$SCRIPT_DIR/../app-cli/tests/support/plugins/dialog"
|
||||
npm i --prefix="$PLUGIN_PATH" && npm start -- --dev-plugins "$PLUGIN_PATH"
|
||||
@@ -4,6 +4,7 @@ import Global from './api/Global';
|
||||
import BasePluginRunner from './BasePluginRunner';
|
||||
import BaseService from '../BaseService';
|
||||
import shim from '../../shim';
|
||||
import { rtrimSlashes } from '../../path-utils';
|
||||
const { filename, dirname } = require('../../path-utils');
|
||||
const uslug = require('uslug');
|
||||
|
||||
@@ -90,11 +91,15 @@ export default class PluginService extends BaseService {
|
||||
}
|
||||
|
||||
public async loadPluginFromString(pluginId: string, baseDir: string, jsBundleString: string): Promise<Plugin> {
|
||||
baseDir = rtrimSlashes(baseDir);
|
||||
|
||||
const r = await this.parsePluginJsBundle(jsBundleString);
|
||||
return this.loadPlugin(pluginId, baseDir, r.manifestText, r.scriptText);
|
||||
}
|
||||
|
||||
private async loadPluginFromPath(path: string): Promise<Plugin> {
|
||||
path = rtrimSlashes(path);
|
||||
|
||||
const fsDriver = shim.fsDriver();
|
||||
|
||||
if (path.toLowerCase().endsWith('.js')) return this.loadPluginFromString(filename(path), dirname(path), await fsDriver.readFile(path));
|
||||
@@ -114,6 +119,8 @@ export default class PluginService extends BaseService {
|
||||
}
|
||||
|
||||
private async loadPlugin(pluginId: string, baseDir: string, manifestText: string, scriptText: string): Promise<Plugin> {
|
||||
baseDir = rtrimSlashes(baseDir);
|
||||
|
||||
const manifest = manifestFromObject(JSON.parse(manifestText));
|
||||
|
||||
// After transforming the plugin path to an ID, multiple plugins might end up with the same ID. For
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import ViewController from './ViewController';
|
||||
import shim from '../../shim';
|
||||
import { ButtonId, ButtonSpec } from './api/types';
|
||||
import { ButtonSpec, DialogResult } from './api/types';
|
||||
const { toSystemSlashes } = require('../../path-utils');
|
||||
|
||||
export enum ContainerType {
|
||||
@@ -95,7 +95,7 @@ export default class WebviewController extends ViewController {
|
||||
// Specific to dialogs
|
||||
// ---------------------------------------------
|
||||
|
||||
public async open(): Promise<ButtonId> {
|
||||
public async open(): Promise<DialogResult> {
|
||||
this.setStoreProp('opened', true);
|
||||
|
||||
return new Promise((resolve: Function, reject: Function) => {
|
||||
@@ -107,7 +107,7 @@ export default class WebviewController extends ViewController {
|
||||
this.setStoreProp('opened', false);
|
||||
}
|
||||
|
||||
public closeWithResponse(result: ButtonId) {
|
||||
public closeWithResponse(result: DialogResult) {
|
||||
this.close();
|
||||
this.closeResponse_.resolve(result);
|
||||
}
|
||||
|
||||
@@ -11,6 +11,18 @@ import Logger from '../../../Logger';
|
||||
|
||||
/**
|
||||
* This is the main entry point to the Joplin API. You can access various services using the provided accessors.
|
||||
*
|
||||
* **This is a beta API**
|
||||
*
|
||||
* Please note that the plugin API is relatively new and should be considered Beta state. Besides possible bugs, what it means is that there might be necessary breaking changes from one version to the next. Whenever such change is needed, best effort will be done to:
|
||||
*
|
||||
* - Maintain backward compatibility;
|
||||
* - When possible, deprecate features instead of removing them;
|
||||
* - Document breaking changes in the changelog;
|
||||
*
|
||||
* So if you are developing a plugin, please keep an eye on the changelog as everything will be in there with information about how to update your code. There won't be any major API rewrite or architecture changes, but possibly small tweaks like function signature change, type change, etc.
|
||||
*
|
||||
* Eventually, the plugin API will be versioned to make this process smoother.
|
||||
*/
|
||||
export default class Joplin {
|
||||
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
import Plugin from '../Plugin';
|
||||
import createViewHandle from '../utils/createViewHandle';
|
||||
import WebviewController, { ContainerType } from '../WebviewController';
|
||||
import { ButtonSpec, ViewHandle, ButtonId } from './types';
|
||||
import { ButtonSpec, ViewHandle, DialogResult } from './types';
|
||||
|
||||
/**
|
||||
* Allows creating and managing dialogs. A dialog is modal window that contains a webview and a row of buttons. You can update the update the webview using the `setHtml` method.
|
||||
* Dialogs are hidden by default and you need to call `open()` to open them. Once the user clicks on a button, the `open` call will return and provide the button ID that was
|
||||
* clicked on. There is currently no "close" method since the dialog should be thought as a modal one and thus can only be closed by clicking on one of the buttons.
|
||||
* Dialogs are hidden by default and you need to call `open()` to open them. Once the user clicks on a button, the `open` call will return an object indicating what button was clicked
|
||||
* on. If your HTML content included one or more form, a `formData` object will also be included with the key/value for each form.
|
||||
* There is currently no "close" method since the dialog should be thought as a modal one and thus can only be closed by clicking on one of the buttons.
|
||||
*
|
||||
* [View the demo plugin](https://github.com/laurent22/joplin/tree/dev/packages/app-cli/tests/support/plugins/dialog)
|
||||
*/
|
||||
@@ -65,7 +66,7 @@ export default class JoplinViewsDialogs {
|
||||
/**
|
||||
* Opens the dialog
|
||||
*/
|
||||
async open(handle: ViewHandle): Promise<ButtonId> {
|
||||
async open(handle: ViewHandle): Promise<DialogResult> {
|
||||
return this.controller(handle).open();
|
||||
}
|
||||
|
||||
|
||||
@@ -261,6 +261,11 @@ export interface EditorCommand {
|
||||
value?: any;
|
||||
}
|
||||
|
||||
export interface DialogResult {
|
||||
id: ButtonId;
|
||||
formData?: any;
|
||||
}
|
||||
|
||||
// =================================================================
|
||||
// Settings types
|
||||
// =================================================================
|
||||
|
||||
@@ -306,7 +306,7 @@ export default async function(request: Request, id: string = null, link: string
|
||||
if (!note) throw new ErrorNotFound();
|
||||
const resourceIds = await Note.linkedResourceIds(note.body);
|
||||
const output = [];
|
||||
const loadOptions = defaultLoadOptions(request, BaseModel.TYPE_NOTE);
|
||||
const loadOptions = defaultLoadOptions(request, BaseModel.TYPE_RESOURCE);
|
||||
for (const resourceId of resourceIds) {
|
||||
output.push(await Resource.load(resourceId, loadOptions));
|
||||
}
|
||||
|
||||
@@ -7,7 +7,9 @@ import readonlyProperties from '../utils/readonlyProperties';
|
||||
import ApiResponse from '../ApiResponse';
|
||||
import NoteResource from '../../../models/NoteResource';
|
||||
import collectionToPaginatedResults from '../utils/collectionToPaginatedResults';
|
||||
import defaultLoadOptions from '../utils/defaultLoadOptions';
|
||||
const Resource = require('../../../models/Resource');
|
||||
const Note = require('../../../models/Note');
|
||||
|
||||
export default async function(request: Request, id: string = null, link: string = null) {
|
||||
// fieldName: "data"
|
||||
@@ -33,7 +35,13 @@ export default async function(request: Request, id: string = null, link: string
|
||||
}
|
||||
|
||||
if (link === 'notes') {
|
||||
return collectionToPaginatedResults(await NoteResource.associatedNoteIds(id), request);
|
||||
const noteIds = await NoteResource.associatedNoteIds(id);
|
||||
const loadOptions = defaultLoadOptions(request, BaseModel.TYPE_NOTE);
|
||||
const notes = [];
|
||||
for (const noteId of noteIds) {
|
||||
notes.push(await Note.load(noteId, loadOptions));
|
||||
}
|
||||
return collectionToPaginatedResults(notes, request);
|
||||
}
|
||||
|
||||
if (link) throw new ErrorNotFound();
|
||||
|
||||
@@ -8,8 +8,8 @@ interface Term {
|
||||
}
|
||||
|
||||
const makeTerm = (name: string, value: string): Term => {
|
||||
if (name.startsWith('-')) { return { name: name.slice(1), value: value, negated: true }; }
|
||||
return { name: name, value: value, negated: false };
|
||||
if (name.startsWith('-')) { return { name: name.slice(1).toLowerCase(), value: value, negated: true }; }
|
||||
return { name: name.toLowerCase(), value: value, negated: false };
|
||||
};
|
||||
|
||||
const quoted = (s: string) => s.startsWith('"') && s.endsWith('"');
|
||||
|
||||
@@ -2,82 +2,82 @@
|
||||
|
||||
Name | Value
|
||||
--- | ---
|
||||
Total Windows downloads | 1,090,167
|
||||
Total macOs downloads | 422,857
|
||||
Total Linux downloads | 307,611
|
||||
Total Windows downloads | 1,093,355
|
||||
Total macOs downloads | 424,314
|
||||
Total Linux downloads | 308,866
|
||||
Windows % | 60%
|
||||
macOS % | 23%
|
||||
Linux % | 17%
|
||||
|
||||
Version | Date | Windows | macOS | Linux | Total
|
||||
--- | --- | --- | --- | --- | ---
|
||||
[v1.3.18](https://github.com/laurent22/joplin/releases/tag/v1.3.18) | 2020-11-06T12:07:02Z | 8,566 | 3,609 | 2,837 | 15,012
|
||||
[v1.3.15](https://github.com/laurent22/joplin/releases/tag/v1.3.15) | 2020-11-04T12:22:50Z | 2,121 | 1,251 | 820 | 4,192
|
||||
[v1.2.6](https://github.com/laurent22/joplin/releases/tag/v1.2.6) | 2020-10-09T13:56:59Z | 43,259 | 17,626 | 13,986 | 74,871
|
||||
[v1.1.4](https://github.com/laurent22/joplin/releases/tag/v1.1.4) | 2020-09-21T11:20:09Z | 27,391 | 13,455 | 7,691 | 48,537
|
||||
[v1.0.245](https://github.com/laurent22/joplin/releases/tag/v1.0.245) | 2020-09-09T12:56:10Z | 20,762 | 9,957 | 5,617 | 36,336
|
||||
[v1.0.242](https://github.com/laurent22/joplin/releases/tag/v1.0.242) | 2020-09-04T22:00:34Z | 12,299 | 6,393 | 3,003 | 21,695
|
||||
[v1.0.241](https://github.com/laurent22/joplin/releases/tag/v1.0.241) | 2020-09-04T18:06:00Z | 23,064 | 5,684 | 4,959 | 33,707
|
||||
[v1.0.233](https://github.com/laurent22/joplin/releases/tag/v1.0.233) | 2020-08-01T14:51:15Z | 42,160 | 18,145 | 12,344 | 72,649
|
||||
[v1.0.227](https://github.com/laurent22/joplin/releases/tag/v1.0.227) | 2020-07-07T20:44:54Z | 40,128 | 15,234 | 9,610 | 64,972
|
||||
[v1.0.224](https://github.com/laurent22/joplin/releases/tag/v1.0.224) | 2020-06-20T22:26:08Z | 24,702 | 10,975 | 5,999 | 41,676
|
||||
[v1.0.220](https://github.com/laurent22/joplin/releases/tag/v1.0.220) | 2020-06-13T18:26:22Z | 31,505 | 9,887 | 6,407 | 47,799
|
||||
[v1.0.218](https://github.com/laurent22/joplin/releases/tag/v1.0.218) | 2020-06-07T10:43:34Z | 14,480 | 6,946 | 2,950 | 24,376
|
||||
[v1.0.216](https://github.com/laurent22/joplin/releases/tag/v1.0.216) | 2020-05-24T14:21:01Z | 36,322 | 14,233 | 10,169 | 60,724
|
||||
[v1.0.201](https://github.com/laurent22/joplin/releases/tag/v1.0.201) | 2020-04-15T22:55:13Z | 52,335 | 20,032 | 18,167 | 90,534
|
||||
[v1.3.18](https://github.com/laurent22/joplin/releases/tag/v1.3.18) | 2020-11-06T12:07:02Z | 11,553 | 5,028 | 4,072 | 20,653
|
||||
[v1.3.15](https://github.com/laurent22/joplin/releases/tag/v1.3.15) | 2020-11-04T12:22:50Z | 2,130 | 1,257 | 822 | 4,209
|
||||
[v1.2.6](https://github.com/laurent22/joplin/releases/tag/v1.2.6) | 2020-10-09T13:56:59Z | 43,344 | 17,636 | 13,990 | 74,970
|
||||
[v1.1.4](https://github.com/laurent22/joplin/releases/tag/v1.1.4) | 2020-09-21T11:20:09Z | 27,401 | 13,457 | 7,692 | 48,550
|
||||
[v1.0.245](https://github.com/laurent22/joplin/releases/tag/v1.0.245) | 2020-09-09T12:56:10Z | 20,766 | 9,959 | 5,617 | 36,342
|
||||
[v1.0.242](https://github.com/laurent22/joplin/releases/tag/v1.0.242) | 2020-09-04T22:00:34Z | 12,299 | 6,393 | 3,004 | 21,696
|
||||
[v1.0.241](https://github.com/laurent22/joplin/releases/tag/v1.0.241) | 2020-09-04T18:06:00Z | 23,066 | 5,684 | 4,959 | 33,709
|
||||
[v1.0.233](https://github.com/laurent22/joplin/releases/tag/v1.0.233) | 2020-08-01T14:51:15Z | 42,177 | 18,149 | 12,344 | 72,670
|
||||
[v1.0.227](https://github.com/laurent22/joplin/releases/tag/v1.0.227) | 2020-07-07T20:44:54Z | 40,132 | 15,235 | 9,610 | 64,977
|
||||
[v1.0.224](https://github.com/laurent22/joplin/releases/tag/v1.0.224) | 2020-06-20T22:26:08Z | 24,705 | 10,976 | 5,999 | 41,680
|
||||
[v1.0.220](https://github.com/laurent22/joplin/releases/tag/v1.0.220) | 2020-06-13T18:26:22Z | 31,507 | 9,887 | 6,407 | 47,801
|
||||
[v1.0.218](https://github.com/laurent22/joplin/releases/tag/v1.0.218) | 2020-06-07T10:43:34Z | 14,485 | 6,946 | 2,950 | 24,381
|
||||
[v1.0.216](https://github.com/laurent22/joplin/releases/tag/v1.0.216) | 2020-05-24T14:21:01Z | 36,341 | 14,235 | 10,169 | 60,745
|
||||
[v1.0.201](https://github.com/laurent22/joplin/releases/tag/v1.0.201) | 2020-04-15T22:55:13Z | 52,351 | 20,032 | 18,167 | 90,550
|
||||
[v1.0.200](https://github.com/laurent22/joplin/releases/tag/v1.0.200) | 2020-04-12T12:17:46Z | 9,543 | 4,885 | 1,898 | 16,326
|
||||
[v1.0.199](https://github.com/laurent22/joplin/releases/tag/v1.0.199) | 2020-04-10T18:41:58Z | 19,236 | 5,878 | 3,783 | 28,897
|
||||
[v1.0.197](https://github.com/laurent22/joplin/releases/tag/v1.0.197) | 2020-03-30T17:21:22Z | 22,059 | 9,506 | 5,608 | 37,173
|
||||
[v1.0.195](https://github.com/laurent22/joplin/releases/tag/v1.0.195) | 2020-03-22T19:56:12Z | 18,860 | 7,941 | 4,502 | 31,303
|
||||
[v1.0.193](https://github.com/laurent22/joplin/releases/tag/v1.0.193) | 2020-03-08T08:58:53Z | 28,593 | 10,894 | 7,356 | 46,843
|
||||
[v1.0.199](https://github.com/laurent22/joplin/releases/tag/v1.0.199) | 2020-04-10T18:41:58Z | 19,237 | 5,878 | 3,783 | 28,898
|
||||
[v1.0.197](https://github.com/laurent22/joplin/releases/tag/v1.0.197) | 2020-03-30T17:21:22Z | 22,061 | 9,506 | 5,610 | 37,177
|
||||
[v1.0.195](https://github.com/laurent22/joplin/releases/tag/v1.0.195) | 2020-03-22T19:56:12Z | 18,860 | 7,942 | 4,502 | 31,304
|
||||
[v1.0.193](https://github.com/laurent22/joplin/releases/tag/v1.0.193) | 2020-03-08T08:58:53Z | 28,594 | 10,895 | 7,356 | 46,845
|
||||
[v1.0.179](https://github.com/laurent22/joplin/releases/tag/v1.0.179) | 2020-01-24T22:42:41Z | 70,935 | 28,466 | 22,490 | 121,891
|
||||
[v1.0.178](https://github.com/laurent22/joplin/releases/tag/v1.0.178) | 2020-01-20T19:06:45Z | 17,525 | 5,956 | 2,578 | 26,059
|
||||
[v1.0.175](https://github.com/laurent22/joplin/releases/tag/v1.0.175) | 2019-12-08T11:48:47Z | 71,972 | 16,855 | 16,475 | 105,302
|
||||
[v1.0.174](https://github.com/laurent22/joplin/releases/tag/v1.0.174) | 2019-11-12T18:20:58Z | 30,387 | 11,687 | 8,216 | 50,290
|
||||
[v1.0.173](https://github.com/laurent22/joplin/releases/tag/v1.0.173) | 2019-11-11T08:33:35Z | 5,057 | 2,071 | 739 | 7,867
|
||||
[v1.0.170](https://github.com/laurent22/joplin/releases/tag/v1.0.170) | 2019-10-13T22:13:04Z | 27,369 | 8,737 | 7,668 | 43,774
|
||||
[v1.0.169](https://github.com/laurent22/joplin/releases/tag/v1.0.169) | 2019-09-27T18:35:13Z | 17,080 | 5,915 | 3,750 | 26,745
|
||||
[v1.0.168](https://github.com/laurent22/joplin/releases/tag/v1.0.168) | 2019-09-25T21:21:38Z | 5,322 | 2,265 | 714 | 8,301
|
||||
[v1.0.167](https://github.com/laurent22/joplin/releases/tag/v1.0.167) | 2019-09-10T08:48:37Z | 16,778 | 5,698 | 3,700 | 26,176
|
||||
[v1.0.175](https://github.com/laurent22/joplin/releases/tag/v1.0.175) | 2019-12-08T11:48:47Z | 71,976 | 16,855 | 16,476 | 105,307
|
||||
[v1.0.174](https://github.com/laurent22/joplin/releases/tag/v1.0.174) | 2019-11-12T18:20:58Z | 30,388 | 11,688 | 8,216 | 50,292
|
||||
[v1.0.173](https://github.com/laurent22/joplin/releases/tag/v1.0.173) | 2019-11-11T08:33:35Z | 5,058 | 2,071 | 739 | 7,868
|
||||
[v1.0.170](https://github.com/laurent22/joplin/releases/tag/v1.0.170) | 2019-10-13T22:13:04Z | 27,372 | 8,737 | 7,668 | 43,777
|
||||
[v1.0.169](https://github.com/laurent22/joplin/releases/tag/v1.0.169) | 2019-09-27T18:35:13Z | 17,081 | 5,915 | 3,750 | 26,746
|
||||
[v1.0.168](https://github.com/laurent22/joplin/releases/tag/v1.0.168) | 2019-09-25T21:21:38Z | 5,323 | 2,265 | 714 | 8,302
|
||||
[v1.0.167](https://github.com/laurent22/joplin/releases/tag/v1.0.167) | 2019-09-10T08:48:37Z | 16,779 | 5,699 | 3,700 | 26,178
|
||||
[v1.0.166](https://github.com/laurent22/joplin/releases/tag/v1.0.166) | 2019-09-09T17:35:54Z | 1,950 | 557 | 235 | 2,742
|
||||
[v1.0.165](https://github.com/laurent22/joplin/releases/tag/v1.0.165) | 2019-08-14T21:46:29Z | 18,875 | 6,968 | 5,459 | 31,302
|
||||
[v1.0.161](https://github.com/laurent22/joplin/releases/tag/v1.0.161) | 2019-07-13T18:30:00Z | 19,272 | 6,348 | 4,132 | 29,752
|
||||
[v1.0.160](https://github.com/laurent22/joplin/releases/tag/v1.0.160) | 2019-06-15T00:21:40Z | 30,455 | 7,741 | 8,098 | 46,294
|
||||
[v1.0.161](https://github.com/laurent22/joplin/releases/tag/v1.0.161) | 2019-07-13T18:30:00Z | 19,272 | 6,348 | 4,133 | 29,753
|
||||
[v1.0.160](https://github.com/laurent22/joplin/releases/tag/v1.0.160) | 2019-06-15T00:21:40Z | 30,457 | 7,742 | 8,098 | 46,297
|
||||
[v1.0.159](https://github.com/laurent22/joplin/releases/tag/v1.0.159) | 2019-06-08T00:00:19Z | 5,188 | 2,174 | 1,105 | 8,467
|
||||
[v1.0.158](https://github.com/laurent22/joplin/releases/tag/v1.0.158) | 2019-05-27T19:01:18Z | 9,809 | 3,534 | 1,934 | 15,277
|
||||
[v1.0.157](https://github.com/laurent22/joplin/releases/tag/v1.0.157) | 2019-05-26T17:55:53Z | 2,173 | 840 | 289 | 3,302
|
||||
[v1.0.152](https://github.com/laurent22/joplin/releases/tag/v1.0.152) | 2019-05-13T09:08:07Z | 13,861 | 4,423 | 4,059 | 22,343
|
||||
[v1.0.151](https://github.com/laurent22/joplin/releases/tag/v1.0.151) | 2019-05-12T15:14:32Z | 1,948 | 529 | 955 | 3,432
|
||||
[v1.0.150](https://github.com/laurent22/joplin/releases/tag/v1.0.150) | 2019-05-12T11:27:48Z | 417 | 128 | 66 | 611
|
||||
[v1.0.145](https://github.com/laurent22/joplin/releases/tag/v1.0.145) | 2019-05-03T09:16:53Z | 6,998 | 2,857 | 1,434 | 11,289
|
||||
[v1.0.151](https://github.com/laurent22/joplin/releases/tag/v1.0.151) | 2019-05-12T15:14:32Z | 1,948 | 530 | 955 | 3,433
|
||||
[v1.0.150](https://github.com/laurent22/joplin/releases/tag/v1.0.150) | 2019-05-12T11:27:48Z | 418 | 129 | 66 | 613
|
||||
[v1.0.145](https://github.com/laurent22/joplin/releases/tag/v1.0.145) | 2019-05-03T09:16:53Z | 7,000 | 2,857 | 1,434 | 11,291
|
||||
[v1.0.143](https://github.com/laurent22/joplin/releases/tag/v1.0.143) | 2019-04-22T10:51:38Z | 11,911 | 3,546 | 2,776 | 18,233
|
||||
[v1.0.142](https://github.com/laurent22/joplin/releases/tag/v1.0.142) | 2019-04-02T16:44:51Z | 14,648 | 4,557 | 4,724 | 23,929
|
||||
[v1.0.140](https://github.com/laurent22/joplin/releases/tag/v1.0.140) | 2019-03-10T20:59:58Z | 13,621 | 4,166 | 3,172 | 20,959
|
||||
[v1.0.135](https://github.com/laurent22/joplin/releases/tag/v1.0.135) | 2019-02-27T23:36:57Z | 12,483 | 3,953 | 4,072 | 20,508
|
||||
[v1.0.134](https://github.com/laurent22/joplin/releases/tag/v1.0.134) | 2019-02-27T10:21:44Z | 1,462 | 563 | 217 | 2,242
|
||||
[v1.0.135](https://github.com/laurent22/joplin/releases/tag/v1.0.135) | 2019-02-27T23:36:57Z | 12,484 | 3,953 | 4,072 | 20,509
|
||||
[v1.0.134](https://github.com/laurent22/joplin/releases/tag/v1.0.134) | 2019-02-27T10:21:44Z | 1,463 | 563 | 217 | 2,243
|
||||
[v1.0.132](https://github.com/laurent22/joplin/releases/tag/v1.0.132) | 2019-02-26T23:02:05Z | 1,081 | 447 | 93 | 1,621
|
||||
[v1.0.127](https://github.com/laurent22/joplin/releases/tag/v1.0.127) | 2019-02-14T23:12:48Z | 9,734 | 3,164 | 2,927 | 15,825
|
||||
[v1.0.127](https://github.com/laurent22/joplin/releases/tag/v1.0.127) | 2019-02-14T23:12:48Z | 9,734 | 3,164 | 2,928 | 15,826
|
||||
[v1.0.125](https://github.com/laurent22/joplin/releases/tag/v1.0.125) | 2019-01-26T18:14:33Z | 10,245 | 3,552 | 1,701 | 15,498
|
||||
[v1.0.120](https://github.com/laurent22/joplin/releases/tag/v1.0.120) | 2019-01-10T21:42:53Z | 15,598 | 5,196 | 6,512 | 27,306
|
||||
[v1.0.119](https://github.com/laurent22/joplin/releases/tag/v1.0.119) | 2018-12-18T12:40:22Z | 8,901 | 3,257 | 2,013 | 14,171
|
||||
[v1.0.119](https://github.com/laurent22/joplin/releases/tag/v1.0.119) | 2018-12-18T12:40:22Z | 8,902 | 3,257 | 2,013 | 14,172
|
||||
[v1.0.118](https://github.com/laurent22/joplin/releases/tag/v1.0.118) | 2019-01-11T08:34:13Z | 713 | 244 | 87 | 1,044
|
||||
[v1.0.117](https://github.com/laurent22/joplin/releases/tag/v1.0.117) | 2018-11-24T12:05:24Z | 16,252 | 4,889 | 6,379 | 27,520
|
||||
[v1.0.116](https://github.com/laurent22/joplin/releases/tag/v1.0.116) | 2018-11-20T19:09:24Z | 3,468 | 1,117 | 712 | 5,297
|
||||
[v1.0.115](https://github.com/laurent22/joplin/releases/tag/v1.0.115) | 2018-11-16T16:52:02Z | 3,652 | 1,298 | 797 | 5,747
|
||||
[v1.0.114](https://github.com/laurent22/joplin/releases/tag/v1.0.114) | 2018-10-24T20:14:10Z | 11,391 | 3,492 | 3,828 | 18,711
|
||||
[v1.0.111](https://github.com/laurent22/joplin/releases/tag/v1.0.111) | 2018-09-30T20:15:09Z | 12,007 | 3,285 | 3,663 | 18,955
|
||||
[v1.0.111](https://github.com/laurent22/joplin/releases/tag/v1.0.111) | 2018-09-30T20:15:09Z | 12,007 | 3,286 | 3,663 | 18,956
|
||||
[v1.0.110](https://github.com/laurent22/joplin/releases/tag/v1.0.110) | 2018-09-29T12:29:21Z | 956 | 404 | 116 | 1,476
|
||||
[v1.0.109](https://github.com/laurent22/joplin/releases/tag/v1.0.109) | 2018-09-27T18:01:41Z | 2,096 | 700 | 326 | 3,122
|
||||
[v1.0.107](https://github.com/laurent22/joplin/releases/tag/v1.0.107) | 2018-09-16T19:51:07Z | 7,145 | 2,132 | 1,705 | 10,982
|
||||
[v1.0.106](https://github.com/laurent22/joplin/releases/tag/v1.0.106) | 2018-09-08T15:23:40Z | 4,553 | 1,453 | 316 | 6,322
|
||||
[v1.0.105](https://github.com/laurent22/joplin/releases/tag/v1.0.105) | 2018-09-05T11:29:36Z | 4,652 | 1,585 | 1,452 | 7,689
|
||||
[v1.0.105](https://github.com/laurent22/joplin/releases/tag/v1.0.105) | 2018-09-05T11:29:36Z | 4,652 | 1,585 | 1,453 | 7,690
|
||||
[v1.0.104](https://github.com/laurent22/joplin/releases/tag/v1.0.104) | 2018-06-28T20:25:36Z | 15,038 | 4,696 | 7,326 | 27,060
|
||||
[v1.0.103](https://github.com/laurent22/joplin/releases/tag/v1.0.103) | 2018-06-21T19:38:13Z | 2,048 | 882 | 679 | 3,609
|
||||
[v1.0.101](https://github.com/laurent22/joplin/releases/tag/v1.0.101) | 2018-06-17T18:35:11Z | 1,304 | 603 | 407 | 2,314
|
||||
[v1.0.101](https://github.com/laurent22/joplin/releases/tag/v1.0.101) | 2018-06-17T18:35:11Z | 1,304 | 604 | 407 | 2,315
|
||||
[v1.0.100](https://github.com/laurent22/joplin/releases/tag/v1.0.100) | 2018-06-14T17:41:43Z | 875 | 429 | 239 | 1,543
|
||||
[v1.0.99](https://github.com/laurent22/joplin/releases/tag/v1.0.99) | 2018-06-10T13:18:23Z | 1,250 | 593 | 378 | 2,221
|
||||
[v1.0.97](https://github.com/laurent22/joplin/releases/tag/v1.0.97) | 2018-06-09T19:23:34Z | 309 | 154 | 59 | 522
|
||||
[v1.0.96](https://github.com/laurent22/joplin/releases/tag/v1.0.96) | 2018-05-26T16:36:39Z | 2,715 | 1,221 | 1,602 | 5,538
|
||||
[v1.0.96](https://github.com/laurent22/joplin/releases/tag/v1.0.96) | 2018-05-26T16:36:39Z | 2,715 | 1,221 | 1,606 | 5,542
|
||||
[v1.0.95](https://github.com/laurent22/joplin/releases/tag/v1.0.95) | 2018-05-25T13:04:30Z | 415 | 215 | 116 | 746
|
||||
[v1.0.94](https://github.com/laurent22/joplin/releases/tag/v1.0.94) | 2018-05-21T20:52:59Z | 1,128 | 580 | 394 | 2,102
|
||||
[v1.0.93](https://github.com/laurent22/joplin/releases/tag/v1.0.93) | 2018-05-14T11:36:01Z | 1,786 | 1,080 | 755 | 3,621
|
||||
@@ -103,12 +103,12 @@ Version | Date | Windows | macOS | Linux | Total
|
||||
[v0.10.54](https://github.com/laurent22/joplin/releases/tag/v0.10.54) | 2018-01-31T20:21:30Z | 1,819 | 1,458 | 321 | 3,598
|
||||
[v0.10.52](https://github.com/laurent22/joplin/releases/tag/v0.10.52) | 2018-01-31T19:25:18Z | 46 | 632 | 15 | 693
|
||||
[v0.10.51](https://github.com/laurent22/joplin/releases/tag/v0.10.51) | 2018-01-28T18:47:02Z | 1,327 | 1,598 | 327 | 3,252
|
||||
[v0.10.48](https://github.com/laurent22/joplin/releases/tag/v0.10.48) | 2018-01-23T11:19:51Z | 1,964 | 1,750 | 29 | 3,743
|
||||
[v0.10.48](https://github.com/laurent22/joplin/releases/tag/v0.10.48) | 2018-01-23T11:19:51Z | 1,964 | 1,750 | 30 | 3,744
|
||||
[v0.10.47](https://github.com/laurent22/joplin/releases/tag/v0.10.47) | 2018-01-16T17:27:17Z | 1,228 | 1,268 | 67 | 2,563
|
||||
[v0.10.43](https://github.com/laurent22/joplin/releases/tag/v0.10.43) | 2018-01-08T10:12:10Z | 3,437 | 2,354 | 1,205 | 6,996
|
||||
[v0.10.41](https://github.com/laurent22/joplin/releases/tag/v0.10.41) | 2018-01-05T20:38:12Z | 1,036 | 1,547 | 238 | 2,821
|
||||
[v0.10.40](https://github.com/laurent22/joplin/releases/tag/v0.10.40) | 2018-01-02T23:16:57Z | 1,594 | 1,786 | 338 | 3,718
|
||||
[v0.10.39](https://github.com/laurent22/joplin/releases/tag/v0.10.39) | 2017-12-11T21:19:44Z | 5,783 | 4,256 | 3,158 | 13,197
|
||||
[v0.10.39](https://github.com/laurent22/joplin/releases/tag/v0.10.39) | 2017-12-11T21:19:44Z | 5,784 | 4,257 | 3,159 | 13,200
|
||||
[v0.10.38](https://github.com/laurent22/joplin/releases/tag/v0.10.38) | 2017-12-08T10:12:06Z | 1,048 | 1,229 | 306 | 2,583
|
||||
[v0.10.37](https://github.com/laurent22/joplin/releases/tag/v0.10.37) | 2017-12-07T19:38:05Z | 264 | 843 | 81 | 1,188
|
||||
[v0.10.36](https://github.com/laurent22/joplin/releases/tag/v0.10.36) | 2017-12-05T09:34:40Z | 1,014 | 1,354 | 437 | 2,805
|
||||
|
||||
Reference in New Issue
Block a user