Compare commits
9 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| d0e5ad5b7e | |||
| b4631e927c | |||
| b7bc843a37 | |||
| 98d65f8767 | |||
| 0599891ec0 | |||
| cc06701565 | |||
| 40683985cd | |||
| 50ec17433d | |||
| 2c8eb82d42 |
@@ -24,9 +24,6 @@ mv "./dist/Trilium Notes-linux-x64" $BUILD_DIR
|
||||
|
||||
cp images/app-icons/png/128x128.png $BUILD_DIR/icon.png
|
||||
|
||||
# removing software WebGL binaries because they are pretty huge and not necessary
|
||||
rm -r $BUILD_DIR/swiftshader
|
||||
|
||||
cp bin/tpl/anonymize-database.sql $BUILD_DIR/
|
||||
|
||||
cp -r dump-db $BUILD_DIR/
|
||||
|
||||
@@ -22,9 +22,6 @@ rm -rf $BUILD_DIR
|
||||
|
||||
mv "./dist/Trilium Notes-win32-x64" $BUILD_DIR
|
||||
|
||||
# removing software WebGL binaries because they are pretty huge and not necessary
|
||||
rm -r $BUILD_DIR/swiftshader
|
||||
|
||||
cp bin/tpl/anonymize-database.sql $BUILD_DIR/
|
||||
|
||||
cp -r dump-db $BUILD_DIR/
|
||||
|
||||
BIN
Binary file not shown.
+1
-1
@@ -2,7 +2,7 @@
|
||||
"name": "trilium",
|
||||
"productName": "Trilium Notes",
|
||||
"description": "Trilium Notes",
|
||||
"version": "0.61.0-beta",
|
||||
"version": "0.61.1-beta",
|
||||
"license": "AGPL-3.0-only",
|
||||
"main": "electron.js",
|
||||
"bin": {
|
||||
|
||||
@@ -20,7 +20,7 @@ export default class TabManager extends Component {
|
||||
|
||||
this.activeNtxId = null;
|
||||
|
||||
// elements are arrays of note contexts for each tab (one main context + subcontexts [splits])
|
||||
// elements are arrays of {contexts, position}, storing note contexts for each tab (one main context + subcontexts [splits]), and the original position of the tab
|
||||
this.recentlyClosedTabs = [];
|
||||
|
||||
this.tabsUpdate = new SpacedUpdate(async () => {
|
||||
@@ -448,21 +448,23 @@ export default class TabManager extends Component {
|
||||
removeNoteContexts(noteContextsToRemove) {
|
||||
const ntxIdsToRemove = noteContextsToRemove.map(nc => nc.ntxId);
|
||||
|
||||
const position = this.noteContexts.findIndex(nc => ntxIdsToRemove.includes(nc.ntxId));
|
||||
|
||||
this.children = this.children.filter(nc => !ntxIdsToRemove.includes(nc.ntxId));
|
||||
|
||||
this.addToRecentlyClosedTabs(noteContextsToRemove);
|
||||
this.addToRecentlyClosedTabs(noteContextsToRemove, position);
|
||||
|
||||
this.triggerEvent('noteContextRemoved', {ntxIds: ntxIdsToRemove});
|
||||
|
||||
this.tabsUpdate.scheduleUpdate();
|
||||
}
|
||||
|
||||
addToRecentlyClosedTabs(noteContexts) {
|
||||
addToRecentlyClosedTabs(noteContexts, position) {
|
||||
if (noteContexts.length === 1 && noteContexts[0].isEmpty()) {
|
||||
return;
|
||||
}
|
||||
|
||||
this.recentlyClosedTabs.push(noteContexts);
|
||||
this.recentlyClosedTabs.push({contexts: noteContexts, position: position});
|
||||
}
|
||||
|
||||
tabReorderEvent({ntxIdsInOrder}) {
|
||||
@@ -574,7 +576,8 @@ export default class TabManager extends Component {
|
||||
closeLastEmptyTab = this.noteContexts[0];
|
||||
}
|
||||
|
||||
const noteContexts = this.recentlyClosedTabs.pop();
|
||||
const lastClosedTab = this.recentlyClosedTabs.pop();
|
||||
const noteContexts = lastClosedTab.contexts;
|
||||
|
||||
for (const noteContext of noteContexts) {
|
||||
this.child(noteContext);
|
||||
@@ -582,6 +585,30 @@ export default class TabManager extends Component {
|
||||
await this.triggerEvent('newNoteContextCreated', {noteContext});
|
||||
}
|
||||
|
||||
// restore last position of contexts stored in tab manager
|
||||
const ntxsInOrder = [
|
||||
...this.noteContexts.slice(0, lastClosedTab.position),
|
||||
...this.noteContexts.slice(-noteContexts.length),
|
||||
...this.noteContexts.slice(lastClosedTab.position, -noteContexts.length),
|
||||
]
|
||||
await this.noteContextReorderEvent({ntxIdsInOrder: ntxsInOrder.map(nc => nc.ntxId)});
|
||||
|
||||
let mainNtx = noteContexts.find(nc => nc.isMainContext());
|
||||
if (mainNtx) {
|
||||
// reopened a tab, need to reorder new tab widget in tab row
|
||||
await this.triggerEvent('contextsReopened', {
|
||||
mainNtxId: mainNtx.ntxId,
|
||||
tabPosition: ntxsInOrder.filter(nc => nc.isMainContext()).findIndex(nc => nc.ntxId === mainNtx.ntxId)
|
||||
});
|
||||
} else {
|
||||
// reopened a single split, need to reorder the pane widget in split note container
|
||||
await this.triggerEvent('contextsReopened', {
|
||||
ntxId: ntxsInOrder[lastClosedTab.position].ntxId,
|
||||
// this is safe since lastClosedTab.position can never be 0 in this case
|
||||
afterNtxId: ntxsInOrder[lastClosedTab.position - 1].ntxId
|
||||
});
|
||||
}
|
||||
|
||||
const noteContextToActivate = noteContexts.length === 1
|
||||
? noteContexts[0]
|
||||
: noteContexts.find(nc => nc.isMainContext());
|
||||
|
||||
@@ -304,6 +304,9 @@ function FrontendScriptApi(startNote, currentNote, originEntity = null, $contain
|
||||
*/
|
||||
this.createLink = linkService.createLink;
|
||||
|
||||
/** @deprecated - use api.createLink() instead */
|
||||
this.createNoteLink = linkService.createLink;
|
||||
|
||||
/**
|
||||
* Adds given text to the editor cursor
|
||||
*
|
||||
|
||||
@@ -44,4 +44,8 @@ export default class MovePaneButton extends OnClickButtonWidget {
|
||||
async noteContextReorderEvent() {
|
||||
this.refresh();
|
||||
}
|
||||
|
||||
async contextsReopenedEvent() {
|
||||
this.refresh();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -136,6 +136,15 @@ export default class SplitNoteContainer extends FlexContainer {
|
||||
}
|
||||
}
|
||||
|
||||
contextsReopenedEvent({ntxId, afterNtxId}) {
|
||||
if (ntxId === undefined || afterNtxId === undefined) {
|
||||
// no single split reopened
|
||||
return;
|
||||
}
|
||||
this.$widget.find(`[data-ntx-id="${ntxId}"]`)
|
||||
.insertAfter(this.$widget.find(`[data-ntx-id="${afterNtxId}"]`));
|
||||
}
|
||||
|
||||
async refresh() {
|
||||
this.toggleExt(true);
|
||||
}
|
||||
|
||||
@@ -85,7 +85,7 @@ export default class HighlightsListWidget extends RightPanelWidget {
|
||||
|
||||
const optionsHighlightsList = JSON.parse(options.get('highlightsList'));
|
||||
|
||||
if (note.isLabelTruthy('hideHighlightWidget') || !optionsHighlightsList) {
|
||||
if (note.isLabelTruthy('hideHighlightWidget') || !optionsHighlightsList.length) {
|
||||
this.toggleInt(false);
|
||||
this.triggerCommand("reEvaluateRightPaneVisibility");
|
||||
return;
|
||||
|
||||
@@ -620,6 +620,15 @@ export default class TabRowWidget extends BasicWidget {
|
||||
this.updateTabById(newMainNtxId);
|
||||
}
|
||||
|
||||
contextsReopenedEvent({mainNtxId, tabPosition}) {
|
||||
if (mainNtxId === undefined || tabPosition === undefined) {
|
||||
// no tab reopened
|
||||
return;
|
||||
}
|
||||
const tabEl = this.getTabById(mainNtxId)[0];
|
||||
tabEl.parentNode.insertBefore(tabEl, this.tabEls[tabPosition]);
|
||||
}
|
||||
|
||||
updateTabById(ntxId) {
|
||||
const $tab = this.getTabById(ntxId);
|
||||
|
||||
|
||||
@@ -1 +1 @@
|
||||
module.exports = { buildDate:"2023-07-22T17:51:08+02:00", buildRevision: "98b0baefe2fca32d4507ea8f690574968e602c10" };
|
||||
module.exports = { buildDate:"2023-07-24T23:47:57+02:00", buildRevision: "b4631e927c5848fdb48a8182b112b0f815192dcf" };
|
||||
|
||||
Reference in New Issue
Block a user