sync status widget WIP

This commit is contained in:
zadam 2021-03-20 00:00:49 +01:00
parent 7e2186721f
commit b79d81a94d
5 changed files with 123 additions and 55 deletions

106
package-lock.json generated
View file

@ -1,6 +1,6 @@
{
"name": "trilium",
"version": "0.46.4-beta",
"version": "0.46.5",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
@ -1894,9 +1894,9 @@
"dev": true
},
"caniuse-lite": {
"version": "1.0.30001199",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001199.tgz",
"integrity": "sha512-ifbK2eChUCFUwGhlEzIoVwzFt1+iriSjyKKFYNfv6hN34483wyWpLLavYQXhnR036LhkdUYaSDpHg1El++VgHQ==",
"version": "1.0.30001203",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001203.tgz",
"integrity": "sha512-/I9tvnzU/PHMH7wBPrfDMSuecDeUKerjCPX7D0xBbaJZPxoT9m+yYxt0zCTkcijCkjTdim3H56Zm0i5Adxch4w==",
"dev": true
},
"caseless": {
@ -2165,7 +2165,8 @@
"colorette": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz",
"integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw=="
"integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==",
"dev": true
},
"colors": {
"version": "1.4.0",
@ -3593,9 +3594,9 @@
}
},
"electron-to-chromium": {
"version": "1.3.687",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.687.tgz",
"integrity": "sha512-IpzksdQNl3wdgkzf7dnA7/v10w0Utf1dF2L+B4+gKrloBrxCut+au+kky3PYvle3RMdSxZP+UiCZtLbcYRxSNQ==",
"version": "1.3.693",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.693.tgz",
"integrity": "sha512-vUdsE8yyeu30RecppQtI+XTz2++LWLVEIYmzeCaCRLSdtKZ2eXqdJcrs85KwLiPOPVc6PELgWyXBsfqIvzGZag==",
"dev": true
},
"electron-window-state": {
@ -4048,6 +4049,11 @@
"resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
"integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc="
},
"fast-xml-parser": {
"version": "3.19.0",
"resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-3.19.0.tgz",
"integrity": "sha512-4pXwmBplsCPv8FOY1WRakF970TjNGnGnfbOnLqjlYvMiF1SR3yOHyxMR/YCXpPTOspNF5gwudqktIP4VsWkvBg=="
},
"fastest-levenshtein": {
"version": "1.0.12",
"resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz",
@ -4572,11 +4578,6 @@
"concat-stream": "^1.4.7"
}
},
"html-comment-regex": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz",
"integrity": "sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ=="
},
"html-encoding-sniffer": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz",
@ -4903,11 +4904,11 @@
"dev": true
},
"is-svg": {
"version": "4.2.2",
"resolved": "https://registry.npmjs.org/is-svg/-/is-svg-4.2.2.tgz",
"integrity": "sha512-JlA7Mc7mfWjdxxTkJ094oUK9amGD7gQaj5xA/NCY0vlVvZ1stmj4VX+bRuwOMN93IHRZ2ctpPH/0FO6DqvQ5Rw==",
"version": "4.3.1",
"resolved": "https://registry.npmjs.org/is-svg/-/is-svg-4.3.1.tgz",
"integrity": "sha512-h2CGs+yPUyvkgTJQS9cJzo9lYK06WgRiXUqBBHtglSzVKAuH4/oWsqk7LGfbSa1hGk9QcZ0SyQtVggvBA8LZXA==",
"requires": {
"html-comment-regex": "^1.1.2"
"fast-xml-parser": "^3.19.0"
}
},
"is-typedarray": {
@ -4980,19 +4981,19 @@
}
},
"jasmine": {
"version": "3.6.4",
"resolved": "https://registry.npmjs.org/jasmine/-/jasmine-3.6.4.tgz",
"integrity": "sha512-hIeOou6y0BgCOKYgXYveQvlY+PTHgDPajFf+vLCYbMTQ+VjAP9+EQv0nuC9+gyCAAWISRFauB1XUb9kFuOKtcQ==",
"version": "3.7.0",
"resolved": "https://registry.npmjs.org/jasmine/-/jasmine-3.7.0.tgz",
"integrity": "sha512-wlzGQ+cIFzMEsI+wDqmOwvnjTvolLFwlcpYLCqSPPH0prOQaW3P+IzMhHYn934l1imNvw07oCyX+vGUv3wmtSQ==",
"dev": true,
"requires": {
"glob": "^7.1.6",
"jasmine-core": "~3.6.0"
"jasmine-core": "~3.7.0"
}
},
"jasmine-core": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-3.6.0.tgz",
"integrity": "sha512-8uQYa7zJN8hq9z+g8z1bqCfdC8eoDAeVnM5sfqs7KHv9/ifoJ500m018fpFc7RDaO6SWCLCXwo/wPSNcdYTgcw==",
"version": "3.7.1",
"resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-3.7.1.tgz",
"integrity": "sha512-DH3oYDS/AUvvr22+xUBW62m1Xoy7tUlY1tsxKEJvl5JeJ7q8zd1K5bUwiOxdH+erj6l2vAMM3hV25Xs9/WrmuQ==",
"dev": true
},
"jest-worker": {
@ -5694,9 +5695,9 @@
}
},
"nanoid": {
"version": "3.1.20",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.20.tgz",
"integrity": "sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw=="
"version": "3.1.22",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.22.tgz",
"integrity": "sha512-/2ZUaJX2ANuLtTvqTlgqBQNJoQO398KyJgZloL0PZkC0dpysjncRUPsFe3DUPzz/y3h+u7C46np8RMuvF3jsSQ=="
},
"napi-build-utils": {
"version": "1.0.2",
@ -6041,9 +6042,9 @@
}
},
"open": {
"version": "8.0.2",
"resolved": "https://registry.npmjs.org/open/-/open-8.0.2.tgz",
"integrity": "sha512-NV5QmWJrTaNBLHABJyrb+nd5dXI5zfea/suWawBhkHzAbVhLLiJdrqMgxMypGK9Eznp2Ltoh7SAVkQ3XAucX7Q==",
"version": "8.0.3",
"resolved": "https://registry.npmjs.org/open/-/open-8.0.3.tgz",
"integrity": "sha512-7nsHNw3rOIPTwhF5iYkgE+LVM/oUHWC3cgrWNxPqa+W+Wl5Ekvo32qayB5PYX8zNjXzUkrTaJsWpaGmuw8Aspg==",
"requires": {
"define-lazy-prop": "^2.0.0",
"is-docker": "^2.1.1",
@ -6377,13 +6378,20 @@
}
},
"postcss": {
"version": "8.2.4",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.2.4.tgz",
"integrity": "sha512-kRFftRoExRVXZlwUuay9iC824qmXPcQQVzAjbCCgjpXnkdMCJYBu2gTwAaFBzv8ewND6O8xFb3aELmEkh9zTzg==",
"version": "8.2.8",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.2.8.tgz",
"integrity": "sha512-1F0Xb2T21xET7oQV9eKuctbM9S7BC0fetoHCc4H13z0PT6haiRLP4T0ZY4XWh7iLP0usgqykT6p9B2RtOf4FPw==",
"requires": {
"colorette": "^1.2.1",
"colorette": "^1.2.2",
"nanoid": "^3.1.20",
"source-map": "^0.6.1"
},
"dependencies": {
"colorette": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz",
"integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w=="
}
}
},
"prebuild-install": {
@ -6912,9 +6920,9 @@
}
},
"sanitize-html": {
"version": "2.3.2",
"resolved": "https://registry.npmjs.org/sanitize-html/-/sanitize-html-2.3.2.tgz",
"integrity": "sha512-p7neuskvC8pSurUjdVmbWPXmc9A4+QpOXIL+4gwFC+av5h+lYCXFT8uEneqsFQg/wEA1IH+cKQA60AaQI6p3cg==",
"version": "2.3.3",
"resolved": "https://registry.npmjs.org/sanitize-html/-/sanitize-html-2.3.3.tgz",
"integrity": "sha512-DCFXPt7Di0c6JUnlT90eIgrjs6TsJl/8HYU3KLdmrVclFN4O0heTcVbJiMa23OKVr6aR051XYtsgd8EWwEBwUA==",
"requires": {
"deepmerge": "^4.2.2",
"escape-string-regexp": "^4.0.0",
@ -6949,9 +6957,9 @@
}
},
"domutils": {
"version": "2.4.4",
"resolved": "https://registry.npmjs.org/domutils/-/domutils-2.4.4.tgz",
"integrity": "sha512-jBC0vOsECI4OMdD0GC9mGn7NXPLb+Qt6KW1YDQzeQYRUFKmNG8lh7mO5HiELfr+lLQE7loDVI4QcAxV80HS+RA==",
"version": "2.5.0",
"resolved": "https://registry.npmjs.org/domutils/-/domutils-2.5.0.tgz",
"integrity": "sha512-Ho16rzNMOFk2fPwChGh3D2D9OEHAfG19HgmRR2l+WLSsIstNsAYBzePH412bL0y5T44ejABIVfTHQ8nqi/tBCg==",
"requires": {
"dom-serializer": "^1.0.1",
"domelementtype": "^2.0.1",
@ -6969,9 +6977,9 @@
"integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA=="
},
"htmlparser2": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.0.0.tgz",
"integrity": "sha512-numTQtDZMoh78zJpaNdJ9MXb2cv5G3jwUoe3dMQODubZvLoGvTE/Ofp6sHvH8OGKcN/8A47pGLi/k58xHP/Tfw==",
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.0.1.tgz",
"integrity": "sha512-GDKPd+vk4jvSuvCbyuzx/unmXkk090Azec7LovXP8as1Hn8q9p3hbjmDGbUqqhknw0ajwit6LiiWqfiTUPMK7w==",
"requires": {
"domelementtype": "^2.0.1",
"domhandler": "^4.0.0",
@ -7622,9 +7630,9 @@
}
},
"terser": {
"version": "5.6.0",
"resolved": "https://registry.npmjs.org/terser/-/terser-5.6.0.tgz",
"integrity": "sha512-vyqLMoqadC1uR0vywqOZzriDYzgEkNJFK4q9GeyOBHIbiECHiWLKcWfbQWAUaPfxkjDhapSlZB9f7fkMrvkVjA==",
"version": "5.6.1",
"resolved": "https://registry.npmjs.org/terser/-/terser-5.6.1.tgz",
"integrity": "sha512-yv9YLFQQ+3ZqgWCUk+pvNJwgUTdlIxUk1WTN+RnaFJe2L7ipG2csPT0ra2XRm7Cs8cxN7QXmK1rFzEwYEQkzXw==",
"dev": true,
"requires": {
"commander": "^2.20.0",
@ -8113,9 +8121,9 @@
"integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w=="
},
"webpack": {
"version": "5.25.0",
"resolved": "https://registry.npmjs.org/webpack/-/webpack-5.25.0.tgz",
"integrity": "sha512-jqQZopNCzt9c4K6Qa7j6kIhzHfR9wgF84go58VoNp4JbZrBr2D2l5lcv72CW80yc6NJl8CR6OY8xctnIs0r2uw==",
"version": "5.27.0",
"resolved": "https://registry.npmjs.org/webpack/-/webpack-5.27.0.tgz",
"integrity": "sha512-So7grHu//UyJ+80VrNHjWwW6WSZkfWWD6a7NV/88r8G92PO6TYOGzbtTiZBwbPVkx6LVP8OYvHD+IxuJ2KBz4g==",
"dev": true,
"requires": {
"@types/eslint-scope": "^3.7.0",

View file

@ -49,19 +49,19 @@
"image-type": "4.1.0",
"ini": "2.0.0",
"is-animated": "^2.0.1",
"is-svg": "4.2.2",
"is-svg": "4.3.1",
"jimp": "0.16.1",
"jsdom": "16.5.1",
"mime-types": "2.1.29",
"multer": "1.4.2",
"node-abi": "2.21.0",
"open": "8.0.2",
"open": "8.0.3",
"portscanner": "2.2.0",
"rand-token": "1.0.1",
"request": "^2.88.2",
"rimraf": "3.0.2",
"sanitize-filename": "1.6.3",
"sanitize-html": "2.3.2",
"sanitize-html": "2.3.3",
"sax": "1.2.4",
"semver": "7.3.4",
"serve-favicon": "2.5.0",
@ -83,11 +83,11 @@
"electron-packager": "15.2.0",
"electron-rebuild": "2.3.5",
"esm": "3.2.25",
"jasmine": "3.6.4",
"jasmine": "3.7.0",
"jsdoc": "3.6.6",
"lorem-ipsum": "2.0.3",
"rcedit": "3.0.0",
"webpack": "5.25.0",
"webpack": "5.27.0",
"webpack-cli": "4.5.0"
},
"optionalDependencies": {

View file

@ -33,6 +33,7 @@ import ImagePropertiesWidget from "../widgets/type_property_widgets/image_proper
import NotePropertiesWidget from "../widgets/type_property_widgets/note_properties.js";
import NoteIconWidget from "../widgets/note_icon.js";
import SearchResultWidget from "../widgets/search_result.js";
import SyncStatusWidget from "../widgets/sync_status.js";
const RIGHT_PANE_CSS = `
<style>
@ -141,6 +142,7 @@ export default class DesktopMainWindowLayout {
.child(new FlexContainer('row').overflowing()
.css('height', '36px')
.child(new GlobalMenuWidget())
.child(new SyncStatusWidget())
.child(new TabRowWidget())
.child(new TitleBarButtonsWidget()))
.child(new StandardTopWidget()

View file

@ -63,7 +63,7 @@ const TPL = `
<span class="caret"></span>
</button>
<div class="dropdown-menu dropdown-menu-right">
<a data-trigger-command="renderActiveNote" class="dropdown-item render-note-button">Re-render note</a>
<a data-trigger-command="renderActiveNote" class="dropdown-item render-note-button"><kbd data-command="renderActiveNote"></kbd> Re-render note</a>
<div class="dropdown-item protect-button">
Protect the note

View file

@ -0,0 +1,58 @@
import BasicWidget from "./basic_widget.js";
import utils from "../services/utils.js";
import syncService from "../services/sync.js";
const TPL = `
<div class="sync-status-wrapper">
<style>
.sync-status-wrapper {
height: 35px;
box-sizing: border-box;
border-bottom: 1px solid var(--main-border-color);
}
.sync-status {
height: 34px;
box-sizing: border-box;
}
.sync-status button {
margin-right: 5px;
margin-left: 5px;
height: 34px;
border: none;
font-size: 180%;
padding-left: 10px;
padding-right: 10px;
}
.sync-status button span {
position: relative;
top: -5px;
}
.sync-status button:hover {
background-color: var(--hover-item-background-color);
}
.sync-status .dropdown-menu {
width: 20em;
}
</style>
<div class="sync-status">
<button type="button" class="btn btn-sm" title="Sync status">
<span class="bx bx-badge-check"></span>
<!-- <span class="bx bx-cloud-upload"></span>-->
<!-- <span class="bx bx-sync bx-spin bx-flip-horizontal"></span>-->
</button>
</div>
</div>
`;
export default class SyncStatusWidget extends BasicWidget {
doRender() {
this.$widget = $(TPL);
this.overflowing();
}
}