mirror of
https://github.com/zadam/trilium.git
synced 2025-06-06 18:08:33 +02:00
Merge remote-tracking branch 'origin/stable' into syncification
# Conflicts: # package-lock.json # package.json # src/routes/custom.js # src/services/import/single.js
This commit is contained in:
commit
a574fce13f
@ -1,19 +1,16 @@
|
|||||||
/*
|
/*
|
||||||
* !!!!!!! This stylesheet is heavily modified compared to the original for similarity with in-editor look !!!!!!!
|
* CKEditor 5 (v19.1.1) content styles.
|
||||||
* This is used for printing and tar HTML export
|
* Generated on Tue, 09 Jun 2020 10:37:49 GMT.
|
||||||
|
|
||||||
* CKEditor 5 (v17.0.0) content styles.
|
|
||||||
* Generated on Fri, 13 Mar 2020 13:27:10 GMT.
|
|
||||||
* For more information, check out https://ckeditor.com/docs/ckeditor5/latest/builds/guides/integration/content-styles.html
|
* For more information, check out https://ckeditor.com/docs/ckeditor5/latest/builds/guides/integration/content-styles.html
|
||||||
*/
|
*/
|
||||||
|
|
||||||
:root {
|
:root {
|
||||||
--ck-highlight-marker-blue: #72cdfd;
|
--ck-highlight-marker-blue: hsl(201, 97%, 72%);
|
||||||
--ck-highlight-marker-green: #63f963;
|
--ck-highlight-marker-green: hsl(120, 93%, 68%);
|
||||||
--ck-highlight-marker-pink: #fc7999;
|
--ck-highlight-marker-pink: hsl(345, 96%, 73%);
|
||||||
--ck-highlight-marker-yellow: #fdfd77;
|
--ck-highlight-marker-yellow: hsl(60, 97%, 73%);
|
||||||
--ck-highlight-pen-green: #118800;
|
--ck-highlight-pen-green: hsl(112, 100%, 27%);
|
||||||
--ck-highlight-pen-red: #e91313;
|
--ck-highlight-pen-red: hsl(0, 85%, 49%);
|
||||||
--ck-image-style-spacing: 1.5em;
|
--ck-image-style-spacing: 1.5em;
|
||||||
--ck-todo-list-checkmark-size: 16px;
|
--ck-todo-list-checkmark-size: 16px;
|
||||||
}
|
}
|
||||||
@ -32,26 +29,23 @@
|
|||||||
.ck-content .image.image_resized > figcaption {
|
.ck-content .image.image_resized > figcaption {
|
||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
|
/* ckeditor5-image/theme/imagecaption.css */
|
||||||
|
.ck-content .image > figcaption {
|
||||||
|
display: table-caption;
|
||||||
|
caption-side: bottom;
|
||||||
|
word-break: break-word;
|
||||||
|
color: hsl(0, 0%, 20%);
|
||||||
|
background-color: hsl(0, 0%, 97%);
|
||||||
|
padding: .6em;
|
||||||
|
font-size: .75em;
|
||||||
|
outline-offset: -1px;
|
||||||
|
}
|
||||||
/* ckeditor5-basic-styles/theme/code.css */
|
/* ckeditor5-basic-styles/theme/code.css */
|
||||||
.ck-content code {
|
.ck-content code {
|
||||||
background-color: hsla(0, 0%, 78%, 0.3);
|
background-color: hsla(0, 0%, 78%, 0.3);
|
||||||
padding: .15em;
|
padding: .15em;
|
||||||
border-radius: 2px;
|
border-radius: 2px;
|
||||||
}
|
}
|
||||||
/* ckeditor5-image/theme/image.css */
|
|
||||||
.ck-content .image {
|
|
||||||
display: table;
|
|
||||||
clear: both;
|
|
||||||
text-align: center;
|
|
||||||
margin: 1em auto;
|
|
||||||
}
|
|
||||||
/* ckeditor5-image/theme/image.css */
|
|
||||||
.ck-content .image > img {
|
|
||||||
display: block;
|
|
||||||
margin: 0 auto;
|
|
||||||
max-width: 100%;
|
|
||||||
min-width: 50px;
|
|
||||||
}
|
|
||||||
/* ckeditor5-image/theme/imagestyle.css */
|
/* ckeditor5-image/theme/imagestyle.css */
|
||||||
.ck-content .image-style-side,
|
.ck-content .image-style-side,
|
||||||
.ck-content .image-style-align-left,
|
.ck-content .image-style-align-left,
|
||||||
@ -79,42 +73,6 @@
|
|||||||
float: right;
|
float: right;
|
||||||
margin-left: var(--ck-image-style-spacing);
|
margin-left: var(--ck-image-style-spacing);
|
||||||
}
|
}
|
||||||
/* ckeditor5-page-break/theme/pagebreak.css */
|
|
||||||
.ck-content .page-break {
|
|
||||||
position: relative;
|
|
||||||
clear: both;
|
|
||||||
padding: 5px 0;
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
}
|
|
||||||
/* ckeditor5-page-break/theme/pagebreak.css */
|
|
||||||
.ck-content .page-break::after {
|
|
||||||
content: '';
|
|
||||||
position: absolute;
|
|
||||||
border-bottom: 2px dashed hsl(0, 0%, 77%);
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
/* ckeditor5-page-break/theme/pagebreak.css */
|
|
||||||
.ck-content .page-break__label {
|
|
||||||
position: relative;
|
|
||||||
z-index: 1;
|
|
||||||
padding: .3em .6em;
|
|
||||||
display: block;
|
|
||||||
text-transform: uppercase;
|
|
||||||
border: 1px solid hsl(0, 0%, 77%);
|
|
||||||
border-radius: 2px;
|
|
||||||
font-family: Helvetica, Arial, Tahoma, Verdana, Sans-Serif;
|
|
||||||
font-size: 0.75em;
|
|
||||||
font-weight: bold;
|
|
||||||
color: hsl(0, 0%, 20%);
|
|
||||||
background: #fff;
|
|
||||||
box-shadow: 2px 2px 1px hsla(0, 0%, 0%, 0.15);
|
|
||||||
-webkit-user-select: none;
|
|
||||||
-moz-user-select: none;
|
|
||||||
-ms-user-select: none;
|
|
||||||
user-select: none;
|
|
||||||
}
|
|
||||||
/* ckeditor5-block-quote/theme/blockquote.css */
|
/* ckeditor5-block-quote/theme/blockquote.css */
|
||||||
.ck-content blockquote {
|
.ck-content blockquote {
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
@ -130,12 +88,46 @@
|
|||||||
border-left: 0;
|
border-left: 0;
|
||||||
border-right: solid 5px hsl(0, 0%, 80%);
|
border-right: solid 5px hsl(0, 0%, 80%);
|
||||||
}
|
}
|
||||||
/* ckeditor5-media-embed/theme/mediaembed.css */
|
/* ckeditor5-code-block/theme/codeblock.css */
|
||||||
.ck-content .media {
|
.ck-content pre {
|
||||||
|
padding: 1em;
|
||||||
|
color: hsl(0, 0%, 20.8%);
|
||||||
|
background: hsla(0, 0%, 78%, 0.3);
|
||||||
|
border: 1px solid hsl(0, 0%, 77%);
|
||||||
|
border-radius: 2px;
|
||||||
|
text-align: left;
|
||||||
|
direction: ltr;
|
||||||
|
tab-size: 4;
|
||||||
|
white-space: pre-wrap;
|
||||||
|
font-style: normal;
|
||||||
|
min-width: 200px;
|
||||||
|
}
|
||||||
|
/* ckeditor5-code-block/theme/codeblock.css */
|
||||||
|
.ck-content pre code {
|
||||||
|
background: unset;
|
||||||
|
padding: 0;
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
/* ckeditor5-horizontal-line/theme/horizontalline.css */
|
||||||
|
.ck-content hr {
|
||||||
|
border-width: 1px 0 0;
|
||||||
|
border-style: solid;
|
||||||
|
border-color: hsl(0, 0%, 37%);
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
/* ckeditor5-image/theme/image.css */
|
||||||
|
.ck-content .image {
|
||||||
|
display: table;
|
||||||
clear: both;
|
clear: both;
|
||||||
margin: 1em 0;
|
text-align: center;
|
||||||
|
margin: 1em auto;
|
||||||
|
}
|
||||||
|
/* ckeditor5-image/theme/image.css */
|
||||||
|
.ck-content .image > img {
|
||||||
display: block;
|
display: block;
|
||||||
min-width: 15em;
|
margin: 0 auto;
|
||||||
|
max-width: 100%;
|
||||||
|
min-width: 50px;
|
||||||
}
|
}
|
||||||
/* ckeditor5-table/theme/table.css */
|
/* ckeditor5-table/theme/table.css */
|
||||||
.ck-content .table {
|
.ck-content .table {
|
||||||
@ -155,13 +147,28 @@
|
|||||||
.ck-content .table table th {
|
.ck-content .table table th {
|
||||||
min-width: 2em;
|
min-width: 2em;
|
||||||
padding: .4em;
|
padding: .4em;
|
||||||
border-color: hsl(0, 0%, 75%);
|
border: 1px solid hsl(0, 0%, 75%);
|
||||||
}
|
}
|
||||||
/* ckeditor5-table/theme/table.css */
|
/* ckeditor5-table/theme/table.css */
|
||||||
.ck-content .table table th {
|
.ck-content .table table th {
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
background: hsla(0, 0%, 0%, 5%);
|
background: hsla(0, 0%, 0%, 5%);
|
||||||
}
|
}
|
||||||
|
/* ckeditor5-table/theme/table.css */
|
||||||
|
.ck-content[dir="rtl"] .table th {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
/* ckeditor5-table/theme/table.css */
|
||||||
|
.ck-content[dir="ltr"] .table th {
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
/* ckeditor5-media-embed/theme/mediaembed.css */
|
||||||
|
.ck-content .media {
|
||||||
|
clear: both;
|
||||||
|
margin: 1em 0;
|
||||||
|
display: block;
|
||||||
|
min-width: 15em;
|
||||||
|
}
|
||||||
/* ckeditor5-list/theme/todolist.css */
|
/* ckeditor5-list/theme/todolist.css */
|
||||||
.ck-content .todo-list {
|
.ck-content .todo-list {
|
||||||
list-style: none;
|
list-style: none;
|
||||||
@ -229,17 +236,6 @@
|
|||||||
.ck-content .todo-list .todo-list__label .todo-list__label__description {
|
.ck-content .todo-list .todo-list__label .todo-list__label__description {
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
}
|
}
|
||||||
/* ckeditor5-image/theme/imagecaption.css */
|
|
||||||
.ck-content .image > figcaption {
|
|
||||||
display: table-caption;
|
|
||||||
caption-side: bottom;
|
|
||||||
word-break: break-word;
|
|
||||||
color: hsl(0, 0%, 20%);
|
|
||||||
background-color: hsl(0, 0%, 97%);
|
|
||||||
padding: .6em;
|
|
||||||
font-size: .75em;
|
|
||||||
outline-offset: -1px;
|
|
||||||
}
|
|
||||||
/* ckeditor5-highlight/theme/highlight.css */
|
/* ckeditor5-highlight/theme/highlight.css */
|
||||||
.ck-content .marker-yellow {
|
.ck-content .marker-yellow {
|
||||||
background-color: var(--ck-highlight-marker-yellow);
|
background-color: var(--ck-highlight-marker-yellow);
|
||||||
@ -266,32 +262,57 @@
|
|||||||
color: var(--ck-highlight-pen-green);
|
color: var(--ck-highlight-pen-green);
|
||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
}
|
}
|
||||||
/* ckeditor5-horizontal-line/theme/horizontalline.css */
|
/* ckeditor5-page-break/theme/pagebreak.css */
|
||||||
.ck-content hr {
|
.ck-content .page-break {
|
||||||
border-width: 1px 0 0;
|
position: relative;
|
||||||
border-style: solid;
|
clear: both;
|
||||||
border-color: hsl(0, 0%, 37%);
|
padding: 5px 0;
|
||||||
margin: 0;
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
}
|
}
|
||||||
/* ckeditor5-code-block/theme/codeblock.css */
|
/* ckeditor5-page-break/theme/pagebreak.css */
|
||||||
.ck-content pre {
|
.ck-content .page-break::after {
|
||||||
padding: 1em;
|
content: '';
|
||||||
color: #353535;
|
position: absolute;
|
||||||
background: hsla(0, 0%, 78%, 0.3);
|
border-bottom: 2px dashed hsl(0, 0%, 77%);
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
/* ckeditor5-page-break/theme/pagebreak.css */
|
||||||
|
.ck-content .page-break__label {
|
||||||
|
position: relative;
|
||||||
|
z-index: 1;
|
||||||
|
padding: .3em .6em;
|
||||||
|
display: block;
|
||||||
|
text-transform: uppercase;
|
||||||
border: 1px solid hsl(0, 0%, 77%);
|
border: 1px solid hsl(0, 0%, 77%);
|
||||||
border-radius: 2px;
|
border-radius: 2px;
|
||||||
text-align: left;
|
font-family: Helvetica, Arial, Tahoma, Verdana, Sans-Serif;
|
||||||
direction: ltr;
|
font-size: 0.75em;
|
||||||
tab-size: 4;
|
font-weight: bold;
|
||||||
white-space: pre-wrap;
|
color: hsl(0, 0%, 20%);
|
||||||
font-style: normal;
|
background: hsl(0, 0%, 100%);
|
||||||
min-width: 200px;
|
box-shadow: 2px 2px 1px hsla(0, 0%, 0%, 0.15);
|
||||||
|
-webkit-user-select: none;
|
||||||
|
-moz-user-select: none;
|
||||||
|
-ms-user-select: none;
|
||||||
|
user-select: none;
|
||||||
}
|
}
|
||||||
/* ckeditor5-code-block/theme/codeblock.css */
|
/* ckeditor5-font/theme/fontsize.css */
|
||||||
.ck-content pre code {
|
.ck-content .text-tiny {
|
||||||
background: unset;
|
font-size: .7em;
|
||||||
padding: 0;
|
}
|
||||||
border-radius: 0;
|
/* ckeditor5-font/theme/fontsize.css */
|
||||||
|
.ck-content .text-small {
|
||||||
|
font-size: .85em;
|
||||||
|
}
|
||||||
|
/* ckeditor5-font/theme/fontsize.css */
|
||||||
|
.ck-content .text-big {
|
||||||
|
font-size: 1.4em;
|
||||||
|
}
|
||||||
|
/* ckeditor5-font/theme/fontsize.css */
|
||||||
|
.ck-content .text-huge {
|
||||||
|
font-size: 1.8em;
|
||||||
}
|
}
|
||||||
@media print {
|
@media print {
|
||||||
/* ckeditor5-page-break/theme/pagebreak.css */
|
/* ckeditor5-page-break/theme/pagebreak.css */
|
||||||
@ -303,3 +324,9 @@
|
|||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* !!!!!! TRILIUM CUSTOM CHANGES !!!!!! */
|
||||||
|
|
||||||
|
.ck-widget__type-around { /* gets rid of triangles: https://github.com/zadam/trilium/issues/1129 */
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
2
libraries/ckeditor/ckeditor.js
vendored
2
libraries/ckeditor/ckeditor.js
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -64,8 +64,19 @@ function assertArguments() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const entityMap = {
|
||||||
|
'&': '&',
|
||||||
|
'<': '<',
|
||||||
|
'>': '>',
|
||||||
|
'"': '"',
|
||||||
|
"'": ''',
|
||||||
|
'/': '/',
|
||||||
|
'`': '`',
|
||||||
|
'=': '='
|
||||||
|
};
|
||||||
|
|
||||||
function escapeHtml(str) {
|
function escapeHtml(str) {
|
||||||
return $('<div/>').text(str).html();
|
return str.replace(/[&<>"'`=\/]/g, s => entityMap[s]);
|
||||||
}
|
}
|
||||||
|
|
||||||
async function stopWatch(what, func) {
|
async function stopWatch(what, func) {
|
||||||
|
@ -249,9 +249,39 @@ export default class NoteTreeWidget extends TabAwareWidget {
|
|||||||
|
|
||||||
this.initialized = this.initFancyTree();
|
this.initialized = this.initFancyTree();
|
||||||
|
|
||||||
|
this.setupNoteTitleTooltip();
|
||||||
|
|
||||||
return this.$widget;
|
return this.$widget;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
setupNoteTitleTooltip() {
|
||||||
|
// the following will dynamically set tree item's tooltip if the whole item's text is not currently visible
|
||||||
|
// if the whole text is visible then no tooltip is show since that's unnecessarily distracting
|
||||||
|
// see https://github.com/zadam/trilium/pull/1120 for discussion
|
||||||
|
|
||||||
|
// code inspired by https://gist.github.com/jtsternberg/c272d7de5b967cec2d3d
|
||||||
|
const isEnclosing = ($container, $sub) => {
|
||||||
|
const conOffset = $container.offset();
|
||||||
|
const conDistanceFromTop = conOffset.top + $container.outerHeight(true);
|
||||||
|
const conDistanceFromLeft = conOffset.left + $container.outerWidth(true);
|
||||||
|
|
||||||
|
const subOffset = $sub.offset();
|
||||||
|
const subDistanceFromTop = subOffset.top + $sub.outerHeight(true);
|
||||||
|
const subDistanceFromLeft = subOffset.left + $sub.outerWidth(true);
|
||||||
|
|
||||||
|
return conDistanceFromTop > subDistanceFromTop
|
||||||
|
&& conOffset.top < subOffset.top
|
||||||
|
&& conDistanceFromLeft > subDistanceFromLeft
|
||||||
|
&& conOffset.left < subOffset.left;
|
||||||
|
};
|
||||||
|
|
||||||
|
this.$tree.on("mouseenter", "span.fancytree-title", e => {
|
||||||
|
e.currentTarget.title = isEnclosing(this.$tree, $(e.currentTarget))
|
||||||
|
? ""
|
||||||
|
: e.currentTarget.innerText;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
get hideArchivedNotes() {
|
get hideArchivedNotes() {
|
||||||
return options.is("hideArchivedNotes_" + this.treeName);
|
return options.is("hideArchivedNotes_" + this.treeName);
|
||||||
}
|
}
|
||||||
@ -751,7 +781,7 @@ export default class NoteTreeWidget extends TabAwareWidget {
|
|||||||
utils.assertArguments(notePath);
|
utils.assertArguments(notePath);
|
||||||
|
|
||||||
const hoistedNoteId = hoistedNoteService.getHoistedNoteId();
|
const hoistedNoteId = hoistedNoteService.getHoistedNoteId();
|
||||||
/** @var {FancytreeNode} */
|
/** @const {FancytreeNode} */
|
||||||
let parentNode = null;
|
let parentNode = null;
|
||||||
|
|
||||||
const runPath = await treeService.getRunPath(notePath, logErrors);
|
const runPath = await treeService.getRunPath(notePath, logErrors);
|
||||||
@ -836,13 +866,14 @@ export default class NoteTreeWidget extends TabAwareWidget {
|
|||||||
const branch = treeCache.getBranch(node.data.branchId);
|
const branch = treeCache.getBranch(node.data.branchId);
|
||||||
|
|
||||||
const isFolder = this.isFolder(note);
|
const isFolder = this.isFolder(note);
|
||||||
|
const title = (branch.prefix ? (branch.prefix + " - ") : "") + note.title;
|
||||||
|
|
||||||
node.data.isProtected = note.isProtected;
|
node.data.isProtected = note.isProtected;
|
||||||
node.data.noteType = note.type;
|
node.data.noteType = note.type;
|
||||||
node.folder = isFolder;
|
node.folder = isFolder;
|
||||||
node.icon = this.getIcon(note, isFolder);
|
node.icon = this.getIcon(note, isFolder);
|
||||||
node.extraClasses = this.getExtraClasses(note);
|
node.extraClasses = this.getExtraClasses(note);
|
||||||
node.title = (branch.prefix ? (branch.prefix + " - ") : "") + note.title;
|
node.title = utils.escapeHtml(title);
|
||||||
|
|
||||||
if (node.isExpanded() !== branch.isExpanded) {
|
if (node.isExpanded() !== branch.isExpanded) {
|
||||||
node.setExpanded(branch.isExpanded, {noEvents: true});
|
node.setExpanded(branch.isExpanded, {noEvents: true});
|
||||||
|
@ -164,10 +164,16 @@ function changeTitle(req) {
|
|||||||
return [400, `Note ${noteId} is not available for change`];
|
return [400, `Note ${noteId} is not available for change`];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const noteTitleChanged = note.title !== title;
|
||||||
|
|
||||||
note.title = title;
|
note.title = title;
|
||||||
|
|
||||||
note.save();
|
note.save();
|
||||||
|
|
||||||
|
if (noteTitleChanged) {
|
||||||
|
await noteService.triggerNoteTitleChanged(note);
|
||||||
|
}
|
||||||
|
|
||||||
return note;
|
return note;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,12 +2,11 @@ const repository = require('../services/repository');
|
|||||||
const log = require('../services/log');
|
const log = require('../services/log');
|
||||||
const fileUploadService = require('./api/files.js');
|
const fileUploadService = require('./api/files.js');
|
||||||
const scriptService = require('../services/script');
|
const scriptService = require('../services/script');
|
||||||
|
const cls = require('../services/cls');
|
||||||
|
|
||||||
function register(router) {
|
async function handleRequest(req, res) {
|
||||||
// explicitly no CSRF middleware since it's meant to allow integration from external services
|
|
||||||
|
|
||||||
router.all('/custom/:path*', (req, res, next) => {
|
|
||||||
// express puts content after first slash into 0 index element
|
// express puts content after first slash into 0 index element
|
||||||
|
|
||||||
const path = req.params.path + req.params[0];
|
const path = req.params.path + req.params[0];
|
||||||
|
|
||||||
const attrs = repository.getEntities("SELECT * FROM attributes WHERE isDeleted = 0 AND type = 'label' AND name IN ('customRequestHandler', 'customResourceProvider')");
|
const attrs = repository.getEntities("SELECT * FROM attributes WHERE isDeleted = 0 AND type = 'label' AND name IN ('customRequestHandler', 'customResourceProvider')");
|
||||||
@ -60,6 +59,16 @@ function register(router) {
|
|||||||
|
|
||||||
log.info(message);
|
log.info(message);
|
||||||
res.status(404).send(message);
|
res.status(404).send(message);
|
||||||
|
}
|
||||||
|
|
||||||
|
function register(router) {
|
||||||
|
// explicitly no CSRF middleware since it's meant to allow integration from external services
|
||||||
|
|
||||||
|
router.all('/custom/:path*', async (req, res, next) => {
|
||||||
|
cls.namespace.bindEmitter(req);
|
||||||
|
cls.namespace.bindEmitter(res);
|
||||||
|
|
||||||
|
cls.init(() => handleRequest(req, res));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1 +1 @@
|
|||||||
module.exports = { buildDate:"2020-06-15T23:26:12+02:00", buildRevision: "9791dab97d9e86c4b02ca593198caffd1b72bbfb" };
|
module.exports = { buildDate:"2020-06-23T10:11:17+02:00", buildRevision: "89aa4fbc73fc6c357e04e037d6a1191fa4058d80" };
|
||||||
|
@ -3,7 +3,6 @@
|
|||||||
const html = require('html');
|
const html = require('html');
|
||||||
const repository = require('../repository');
|
const repository = require('../repository');
|
||||||
const dateUtils = require('../date_utils');
|
const dateUtils = require('../date_utils');
|
||||||
const zip = require('tar-stream');
|
|
||||||
const path = require('path');
|
const path = require('path');
|
||||||
const mimeTypes = require('mime-types');
|
const mimeTypes = require('mime-types');
|
||||||
const mdService = require('./md');
|
const mdService = require('./md');
|
||||||
|
@ -68,6 +68,9 @@ eventService.subscribe(eventService.ENTITY_CREATED, ({ entityName, entity }) =>
|
|||||||
|
|
||||||
note.setContent(targetNote.getContent());
|
note.setContent(targetNote.getContent());
|
||||||
}
|
}
|
||||||
|
else if (entity.type === 'label' && entity.name === 'sorted') {
|
||||||
|
await treeService.sortNotesAlphabetically(entity.noteId);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if (entityName === 'notes') {
|
else if (entityName === 'notes') {
|
||||||
runAttachedRelations(entity, 'runOnNoteCreation', entity);
|
runAttachedRelations(entity, 'runOnNoteCreation', entity);
|
||||||
|
@ -24,7 +24,7 @@ function importSingleFile(taskContext, file, parentNote) {
|
|||||||
return importCodeNote(taskContext, file, parentNote);
|
return importCodeNote(taskContext, file, parentNote);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (["image/jpeg", "image/gif", "image/png", "image/webp"].includes(mime)) {
|
if (mime.startsWith("image/")) {
|
||||||
return importImage(file, parentNote, taskContext);
|
return importImage(file, parentNote, taskContext);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -778,5 +778,6 @@ module.exports = {
|
|||||||
protectNoteRecursively,
|
protectNoteRecursively,
|
||||||
scanForLinks,
|
scanForLinks,
|
||||||
duplicateNote,
|
duplicateNote,
|
||||||
getUndeletedParentBranches
|
getUndeletedParentBranches,
|
||||||
|
triggerNoteTitleChanged
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user