From 75b3521ba9824b95d7a94b9da91085852a60fd99 Mon Sep 17 00:00:00 2001 From: tanknee Date: Thu, 8 Jul 2021 09:25:02 +0800 Subject: [PATCH 01/12] [fix]: fix unsaved dot color in windows and disable export png in no-current note --- src/components/Header.vue | 13 +++++++++++-- src/components/NoteList.vue | 5 +++-- src/contextMenu/noteList/index.js | 4 +++- src/store/server/state.js | 2 +- 4 files changed, 18 insertions(+), 6 deletions(-) diff --git a/src/components/Header.vue b/src/components/Header.vue index c7f9793..5cb8efc 100644 --- a/src/components/Header.vue +++ b/src/components/Header.vue @@ -135,10 +135,12 @@
- + + - +
@@ -347,6 +349,9 @@ export default { .header-note-title { display: flex; align-items: center; + margin-left: 0; +} +.header-note-title.mac { margin-left: 10%; } .header-note-title > span { @@ -356,4 +361,8 @@ export default { font-weight: 600; } +.close-button:hover { + background-color: rgba(255, 0, 0, .6); +} + diff --git a/src/components/NoteList.vue b/src/components/NoteList.vue index 28461fe..eaa80db 100644 --- a/src/components/NoteList.vue +++ b/src/components/NoteList.vue @@ -162,7 +162,7 @@ export default { return this.tags?.map(t => t.tagGuid).includes(this.currentCategory) }, ...mapServerGetters(['activeNote', 'currentNotes']), - ...mapServerState(['isCurrentNotesLoading', 'currentCategory', 'isLogin', 'tags']), + ...mapServerState(['isCurrentNotesLoading', 'currentCategory', 'isLogin', 'tags', 'currentNote']), ...mapClientState(['rightClickCategoryItem', 'rightClickNoteItem']) }, methods: { @@ -271,8 +271,9 @@ export default { this.exportPng() }, noteItemContextMenuHandler: function (e, noteField) { + const isCurrentNote = noteField.docGuid === this.currentNote.info.docGuid this.setRightClickNoteItem(noteField) - showNoteItemContextMenu(e) + showNoteItemContextMenu(e, isCurrentNote) }, ...mapServerActions([ 'createNote', diff --git a/src/contextMenu/noteList/index.js b/src/contextMenu/noteList/index.js index 472f117..2838267 100644 --- a/src/contextMenu/noteList/index.js +++ b/src/contextMenu/noteList/index.js @@ -17,11 +17,13 @@ const { * Show editor context menu. * * @param {MouseEvent} event The native mouse event. + * @param {string} isCurrentNote */ -export const showContextMenu = (event) => { +export const showContextMenu = (event, isCurrentNote) => { const menu = new Menu() const win = remote.getCurrentWindow() const ITEMS = [RENAME, COPY, SEPARATOR, MOVE, EXPORT, SEPARATOR, DELETE] + EXPORT.submenu.find(v => v.label === 'PNG').enabled = isCurrentNote const MENU_ITEM = ITEMS.map(item => { if (item.type === 'separator') return item return { diff --git a/src/store/server/state.js b/src/store/server/state.js index 71c488f..eec74b7 100644 --- a/src/store/server/state.js +++ b/src/store/server/state.js @@ -8,7 +8,7 @@ export default function () { userGuid: '', isLogin: false, currentNotes: [], // current notes summary information, - currentNote: {}, // current note which will be rendered on vditor, + currentNote: {}, // current note which will be rendered on editor, isCurrentNoteLoading: false, // current notes list loading state, isCurrentNotesLoading: false, // current notes loading state, categories: [], From caba2fb79c2e42dbcefb4c3409f344839398c560 Mon Sep 17 00:00:00 2001 From: TankNee Date: Thu, 8 Jul 2021 10:11:26 +0800 Subject: [PATCH 02/12] [fix]: fix init language and mac head title location --- package-lock.json | 297 +++++++++++++++++--- package.json | 1 + src-electron/main-process/electron-main.js | 19 +- src/boot/i18n.js | 3 +- src/components/Header.vue | 3 +- src/components/ui/dialog/LoginDialog.vue | 7 +- src/i18n/en-us/components/ui/LoginDialog.js | 1 + src/i18n/zh-cn/components/ui/LoginDialog.js | 1 + src/store/client/state.js | 3 +- src/store/server/actions.js | 2 +- 10 files changed, 291 insertions(+), 46 deletions(-) diff --git a/package-lock.json b/package-lock.json index e7eb546..185d941 100644 --- a/package-lock.json +++ b/package-lock.json @@ -38,6 +38,7 @@ "mermaid": "^8.4.8", "monaco-editor": "^0.25.2", "node-schedule": "^1.3.2", + "os-locale": "^5.0.0", "popper.js": "^1.16.1", "quasar": "^1.0.0", "remark": "^13.0.0", @@ -6518,7 +6519,6 @@ "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -8453,7 +8453,6 @@ "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, "dependencies": { "once": "^1.4.0" } @@ -11732,6 +11731,14 @@ "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", "dev": true }, + "node_modules/human-signals": { + "version": "1.1.1", + "resolved": "https://registry.nlark.com/human-signals/download/human-signals-1.1.1.tgz?cache=0&sync_timestamp=1624364612113&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhuman-signals%2Fdownload%2Fhuman-signals-1.1.1.tgz", + "integrity": "sha1-xbHNFPUK6uCatsWf5jujOV/k36M=", + "engines": { + "node": ">=8.12.0" + } + }, "node_modules/humanize-plus": { "version": "1.8.2", "resolved": "https://registry.npm.taobao.org/humanize-plus/download/humanize-plus-1.8.2.tgz", @@ -12056,6 +12063,14 @@ "resolved": "https://registry.nlark.com/internmap/download/internmap-1.0.1.tgz", "integrity": "sha1-ABfMijuZYF8DAvKxmNJy4BXl35U=" }, + "node_modules/invert-kv": { + "version": "3.0.1", + "resolved": "https://registry.nlark.com/invert-kv/download/invert-kv-3.0.1.tgz", + "integrity": "sha1-qTx6PUOGodyDJbl9qbsWIMAoJSM=", + "engines": { + "node": ">=8" + } + }, "node_modules/ip": { "version": "1.1.5", "resolved": "https://registry.npm.taobao.org/ip/download/ip-1.1.5.tgz", @@ -12533,8 +12548,7 @@ "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npm.taobao.org/isexe/download/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" }, "node_modules/isobject": { "version": "3.0.1", @@ -13074,6 +13088,17 @@ "safe-buffer": "~5.1.0" } }, + "node_modules/lcid": { + "version": "3.1.1", + "resolved": "https://registry.nlark.com/lcid/download/lcid-3.1.1.tgz", + "integrity": "sha1-kDDsR5oFj8NrXoJD66rItqxYL9A=", + "dependencies": { + "invert-kv": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/levn": { "version": "0.3.0", "resolved": "https://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz", @@ -13479,6 +13504,17 @@ "semver": "bin/semver.js" } }, + "node_modules/map-age-cleaner": { + "version": "0.1.3", + "resolved": "https://registry.nlark.com/map-age-cleaner/download/map-age-cleaner-0.1.3.tgz", + "integrity": "sha1-fVg6cwZDTAVf5HSw9FB45uG0uSo=", + "dependencies": { + "p-defer": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/map-cache": { "version": "0.2.2", "resolved": "https://registry.npm.taobao.org/map-cache/download/map-cache-0.2.2.tgz", @@ -13678,6 +13714,27 @@ "node": ">= 0.6" } }, + "node_modules/mem": { + "version": "5.1.1", + "resolved": "https://registry.nlark.com/mem/download/mem-5.1.1.tgz?cache=0&sync_timestamp=1618933787697&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fmem%2Fdownload%2Fmem-5.1.1.tgz", + "integrity": "sha1-cFm2e/msLJJMnxz/cVWgZDlK37M=", + "dependencies": { + "map-age-cleaner": "^0.1.3", + "mimic-fn": "^2.1.0", + "p-is-promise": "^2.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/mem/node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/mimic-fn/download/mimic-fn-2.1.0.tgz?cache=0&sync_timestamp=1617823635917&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmimic-fn%2Fdownload%2Fmimic-fn-2.1.0.tgz", + "integrity": "sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs=", + "engines": { + "node": ">=6" + } + }, "node_modules/memory-fs": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", @@ -13742,8 +13799,7 @@ "node_modules/merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" }, "node_modules/merge2": { "version": "1.4.1", @@ -14750,7 +14806,6 @@ "version": "1.4.0", "resolved": "https://registry.npm.taobao.org/once/download/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, "dependencies": { "wrappy": "1" } @@ -14867,6 +14922,68 @@ "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", "dev": true }, + "node_modules/os-locale": { + "version": "5.0.0", + "resolved": "https://registry.npm.taobao.org/os-locale/download/os-locale-5.0.0.tgz", + "integrity": "sha1-bSbB2Vtll8XVMXv1+6N+zOw2cuA=", + "dependencies": { + "execa": "^4.0.0", + "lcid": "^3.0.0", + "mem": "^5.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/os-locale/node_modules/execa": { + "version": "4.1.0", + "resolved": "https://registry.nlark.com/execa/download/execa-4.1.0.tgz", + "integrity": "sha1-TlSRrRVy8vF6d9OIxshXE1sihHo=", + "dependencies": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/os-locale/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.nlark.com/get-stream/download/get-stream-5.2.0.tgz", + "integrity": "sha1-SWaheV7lrOZecGxLe+txJX1uItM=", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/os-locale/node_modules/is-stream": { + "version": "2.0.0", + "resolved": "https://registry.nlark.com/is-stream/download/is-stream-2.0.0.tgz", + "integrity": "sha1-venDJoDW+uBBKdasnZIc54FfeOM=", + "engines": { + "node": ">=8" + } + }, + "node_modules/os-locale/node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.nlark.com/npm-run-path/download/npm-run-path-4.0.1.tgz", + "integrity": "sha1-t+zR5e1T2o43pV4cImnguX7XSOo=", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npm.taobao.org/os-tmpdir/download/os-tmpdir-1.0.2.tgz", @@ -14909,6 +15026,14 @@ "node": ">=6" } }, + "node_modules/p-defer": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/p-defer/download/p-defer-1.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-defer%2Fdownload%2Fp-defer-1.0.0.tgz", + "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", + "engines": { + "node": ">=4" + } + }, "node_modules/p-finally": { "version": "1.0.0", "resolved": "https://registry.npm.taobao.org/p-finally/download/p-finally-1.0.0.tgz", @@ -14918,6 +15043,14 @@ "node": ">=4" } }, + "node_modules/p-is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/p-is-promise/download/p-is-promise-2.1.0.tgz?cache=0&sync_timestamp=1618556918880&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-is-promise%2Fdownload%2Fp-is-promise-2.1.0.tgz", + "integrity": "sha1-kYzrrqJIpiz3/6uOO8qMX4gvxC4=", + "engines": { + "node": ">=6" + } + }, "node_modules/p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", @@ -15262,7 +15395,6 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, "engines": { "node": ">=8" } @@ -16406,7 +16538,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -17858,7 +17989,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, "dependencies": { "shebang-regex": "^3.0.0" }, @@ -17870,7 +18000,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, "engines": { "node": ">=8" } @@ -17884,8 +18013,7 @@ "node_modules/signal-exit": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", - "dev": true + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" }, "node_modules/simple-swizzle": { "version": "0.2.2", @@ -18749,6 +18877,14 @@ "node": ">=0.10.0" } }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.nlark.com/strip-final-newline/download/strip-final-newline-2.0.0.tgz?cache=0&sync_timestamp=1620046746851&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fstrip-final-newline%2Fdownload%2Fstrip-final-newline-2.0.0.tgz", + "integrity": "sha1-ibhS+y/L6Tb29LMYevsKEsGrWK0=", + "engines": { + "node": ">=6" + } + }, "node_modules/strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", @@ -23215,7 +23351,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, "dependencies": { "isexe": "^2.0.0" }, @@ -23369,8 +23504,7 @@ "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npm.taobao.org/wrappy/download/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "node_modules/write": { "version": "1.0.3", @@ -29521,7 +29655,6 @@ "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, "requires": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -31216,7 +31349,6 @@ "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, "requires": { "once": "^1.4.0" } @@ -33956,6 +34088,11 @@ "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", "dev": true }, + "human-signals": { + "version": "1.1.1", + "resolved": "https://registry.nlark.com/human-signals/download/human-signals-1.1.1.tgz?cache=0&sync_timestamp=1624364612113&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhuman-signals%2Fdownload%2Fhuman-signals-1.1.1.tgz", + "integrity": "sha1-xbHNFPUK6uCatsWf5jujOV/k36M=" + }, "humanize-plus": { "version": "1.8.2", "resolved": "https://registry.npm.taobao.org/humanize-plus/download/humanize-plus-1.8.2.tgz", @@ -34218,6 +34355,11 @@ "resolved": "https://registry.nlark.com/internmap/download/internmap-1.0.1.tgz", "integrity": "sha1-ABfMijuZYF8DAvKxmNJy4BXl35U=" }, + "invert-kv": { + "version": "3.0.1", + "resolved": "https://registry.nlark.com/invert-kv/download/invert-kv-3.0.1.tgz", + "integrity": "sha1-qTx6PUOGodyDJbl9qbsWIMAoJSM=" + }, "ip": { "version": "1.1.5", "resolved": "https://registry.npm.taobao.org/ip/download/ip-1.1.5.tgz", @@ -34583,8 +34725,7 @@ "isexe": { "version": "2.0.0", "resolved": "https://registry.npm.taobao.org/isexe/download/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" }, "isobject": { "version": "3.0.1", @@ -35059,6 +35200,14 @@ } } }, + "lcid": { + "version": "3.1.1", + "resolved": "https://registry.nlark.com/lcid/download/lcid-3.1.1.tgz", + "integrity": "sha1-kDDsR5oFj8NrXoJD66rItqxYL9A=", + "requires": { + "invert-kv": "^3.0.0" + } + }, "levn": { "version": "0.3.0", "resolved": "https://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz", @@ -35415,6 +35564,14 @@ } } }, + "map-age-cleaner": { + "version": "0.1.3", + "resolved": "https://registry.nlark.com/map-age-cleaner/download/map-age-cleaner-0.1.3.tgz", + "integrity": "sha1-fVg6cwZDTAVf5HSw9FB45uG0uSo=", + "requires": { + "p-defer": "^1.0.0" + } + }, "map-cache": { "version": "0.2.2", "resolved": "https://registry.npm.taobao.org/map-cache/download/map-cache-0.2.2.tgz", @@ -35596,6 +35753,23 @@ "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", "dev": true }, + "mem": { + "version": "5.1.1", + "resolved": "https://registry.nlark.com/mem/download/mem-5.1.1.tgz?cache=0&sync_timestamp=1618933787697&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fmem%2Fdownload%2Fmem-5.1.1.tgz", + "integrity": "sha1-cFm2e/msLJJMnxz/cVWgZDlK37M=", + "requires": { + "map-age-cleaner": "^0.1.3", + "mimic-fn": "^2.1.0", + "p-is-promise": "^2.1.0" + }, + "dependencies": { + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/mimic-fn/download/mimic-fn-2.1.0.tgz?cache=0&sync_timestamp=1617823635917&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmimic-fn%2Fdownload%2Fmimic-fn-2.1.0.tgz", + "integrity": "sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs=" + } + } + }, "memory-fs": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", @@ -35658,8 +35832,7 @@ "merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" }, "merge2": { "version": "1.4.1", @@ -36492,7 +36665,6 @@ "version": "1.4.0", "resolved": "https://registry.npm.taobao.org/once/download/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, "requires": { "wrappy": "1" } @@ -36589,6 +36761,55 @@ "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", "dev": true }, + "os-locale": { + "version": "5.0.0", + "resolved": "https://registry.npm.taobao.org/os-locale/download/os-locale-5.0.0.tgz", + "integrity": "sha1-bSbB2Vtll8XVMXv1+6N+zOw2cuA=", + "requires": { + "execa": "^4.0.0", + "lcid": "^3.0.0", + "mem": "^5.0.0" + }, + "dependencies": { + "execa": { + "version": "4.1.0", + "resolved": "https://registry.nlark.com/execa/download/execa-4.1.0.tgz", + "integrity": "sha1-TlSRrRVy8vF6d9OIxshXE1sihHo=", + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.nlark.com/get-stream/download/get-stream-5.2.0.tgz", + "integrity": "sha1-SWaheV7lrOZecGxLe+txJX1uItM=", + "requires": { + "pump": "^3.0.0" + } + }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.nlark.com/is-stream/download/is-stream-2.0.0.tgz", + "integrity": "sha1-venDJoDW+uBBKdasnZIc54FfeOM=" + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.nlark.com/npm-run-path/download/npm-run-path-4.0.1.tgz", + "integrity": "sha1-t+zR5e1T2o43pV4cImnguX7XSOo=", + "requires": { + "path-key": "^3.0.0" + } + } + } + }, "os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npm.taobao.org/os-tmpdir/download/os-tmpdir-1.0.2.tgz", @@ -36621,12 +36842,22 @@ "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", "dev": true }, + "p-defer": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/p-defer/download/p-defer-1.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-defer%2Fdownload%2Fp-defer-1.0.0.tgz", + "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=" + }, "p-finally": { "version": "1.0.0", "resolved": "https://registry.npm.taobao.org/p-finally/download/p-finally-1.0.0.tgz", "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", "dev": true }, + "p-is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/p-is-promise/download/p-is-promise-2.1.0.tgz?cache=0&sync_timestamp=1618556918880&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-is-promise%2Fdownload%2Fp-is-promise-2.1.0.tgz", + "integrity": "sha1-kYzrrqJIpiz3/6uOO8qMX4gvxC4=" + }, "p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", @@ -36926,8 +37157,7 @@ "path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" }, "path-parse": { "version": "1.0.6", @@ -37905,7 +38135,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, "requires": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -39122,7 +39351,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, "requires": { "shebang-regex": "^3.0.0" } @@ -39130,8 +39358,7 @@ "shebang-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" }, "shell-quote": { "version": "1.7.2", @@ -39142,8 +39369,7 @@ "signal-exit": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", - "dev": true + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" }, "simple-swizzle": { "version": "0.2.2", @@ -39903,6 +40129,11 @@ "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", "dev": true }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.nlark.com/strip-final-newline/download/strip-final-newline-2.0.0.tgz?cache=0&sync_timestamp=1620046746851&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fstrip-final-newline%2Fdownload%2Fstrip-final-newline-2.0.0.tgz", + "integrity": "sha1-ibhS+y/L6Tb29LMYevsKEsGrWK0=" + }, "strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", @@ -43815,7 +44046,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, "requires": { "isexe": "^2.0.0" } @@ -43940,8 +44170,7 @@ "wrappy": { "version": "1.0.2", "resolved": "https://registry.npm.taobao.org/wrappy/download/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "write": { "version": "1.0.3", diff --git a/package.json b/package.json index d44d6d2..d14f6bb 100644 --- a/package.json +++ b/package.json @@ -50,6 +50,7 @@ "mermaid": "^8.4.8", "monaco-editor": "^0.25.2", "node-schedule": "^1.3.2", + "os-locale": "^5.0.0", "popper.js": "^1.16.1", "quasar": "^1.0.0", "remark": "^13.0.0", diff --git a/src-electron/main-process/electron-main.js b/src-electron/main-process/electron-main.js index a92cac3..e262729 100644 --- a/src-electron/main-process/electron-main.js +++ b/src-electron/main-process/electron-main.js @@ -5,12 +5,26 @@ import unhandled from 'electron-unhandled' import path from 'path' import packageJSON from '../../package.json' import configureMenu from './menu/templates' - +import osLocale from 'os-locale' import { openNewGitHubIssue, debugInfo, enforceMacOSAppLocation } from 'electron-util' import KeyBindings from './keyboard/shortcut' import { registerMemocastProtocol } from './utlis/resource-loader' +import Store from 'electron-store' +const ClientStorage = new Store({ + name: 'ClientFileStorage' +}) const { registerApiHandler } = Api +// console.log(await osLocale()) + +osLocale().then(locale => { + const cur = ClientStorage.get('language') + console.log(locale.toLocaleLowerCase(), cur) + if (!cur) { + ClientStorage.set('language', locale.toLocaleLowerCase() || 'en-us') + } +}) + unhandled({ reportButton: error => { openNewGitHubIssue({ @@ -66,8 +80,7 @@ function createWindow () { nodeIntegration: process.env.QUASAR_NODE_INTEGRATION, nodeIntegrationInWorker: process.env.QUASAR_NODE_INTEGRATION, webSecurity: false, - experimentalFeatures: false, - enableRemoteModule: true + experimentalFeatures: false // More info: /quasar-cli/developing-electron-apps/electron-preload-script // preload: path.resolve(__dirname, 'electron-preload.js') diff --git a/src/boot/i18n.js b/src/boot/i18n.js index 964d025..add4e48 100644 --- a/src/boot/i18n.js +++ b/src/boot/i18n.js @@ -2,8 +2,7 @@ import Vue from 'vue' import VueI18n from 'vue-i18n' import messages from 'src/i18n' import ClientFileStorage from 'src/utils/storage/ClientFileStorage' -const { app } = require('electron').remote -const local = ClientFileStorage.getItemFromStore('language') || app.getLocale().toLocaleLowerCase() +const local = ClientFileStorage.getItemFromStore('language') Vue.use(VueI18n) const i18n = new VueI18n({ diff --git a/src/components/Header.vue b/src/components/Header.vue index 5cb8efc..7f44ca0 100644 --- a/src/components/Header.vue +++ b/src/components/Header.vue @@ -8,6 +8,7 @@ v-if="$q.platform.is.mac && dataLoaded" class="header-note-title animated fadeIn" style="cursor: pointer" + :class="{ 'mac': $q.platform.is.mac }" @click="$refs.tagDialog.toggle" > @@ -352,7 +353,7 @@ export default { margin-left: 0; } .header-note-title.mac { - margin-left: 10%; + margin-left: 15%; } .header-note-title > span { font-family: 'Open Sans', 'JetBrains Mono', serif; diff --git a/src/components/ui/dialog/LoginDialog.vue b/src/components/ui/dialog/LoginDialog.vue index a6356ba..a38e575 100644 --- a/src/components/ui/dialog/LoginDialog.vue +++ b/src/components/ui/dialog/LoginDialog.vue @@ -69,7 +69,8 @@ v-model='selfHostServer' :label="$t('selfHostServer')" :rules="[ - val => (enableSelfHostServer && !!val) || $t('fieldIsRequired') + val => (enableSelfHostServer && !!val) || $t('fieldIsRequired'), + val => (enableSelfHostServer && /^(http)/.test(val)) || $t('fieldShouldStartWithHTTP') ]" spellcheck='false' /> @@ -143,7 +144,7 @@ export default { const loginPayload = { userId: this.username, password: this.password, - url: this.enableSelfHostServer ? this.selfHostServer : null + url: this.enableSelfHostServer ? this.selfHostServer.replace(/\/+$/, '') : null } try { await this.login(loginPayload) @@ -158,7 +159,7 @@ export default { }, signUpHandler: function () { this.$q.electron.shell.openExternal( - `${!(helper.isNullOrEmpty(this.selfHostServer) || !this.enableSelfHostServer) ? this.selfHostServer : 'https://wiz.cn'}/signup` + `${!(helper.isNullOrEmpty(this.selfHostServer) || !this.enableSelfHostServer) ? this.selfHostServer.replace(/\/+$/, '') : 'https://wiz.cn'}/signup` ) }, toggle: function () { diff --git a/src/i18n/en-us/components/ui/LoginDialog.js b/src/i18n/en-us/components/ui/LoginDialog.js index 77ccb08..79160e0 100644 --- a/src/i18n/en-us/components/ui/LoginDialog.js +++ b/src/i18n/en-us/components/ui/LoginDialog.js @@ -8,6 +8,7 @@ export default { signUp: 'Sign Up', cancel: 'Cancel', fieldIsRequired: 'Field is required', + fieldShouldStartWithHTTP: 'The self host url should start with http', rememberPassword: 'Remember Password', autoLogin: 'Auto Login', quit: 'Quit' diff --git a/src/i18n/zh-cn/components/ui/LoginDialog.js b/src/i18n/zh-cn/components/ui/LoginDialog.js index 8fb8991..c4cbbeb 100644 --- a/src/i18n/zh-cn/components/ui/LoginDialog.js +++ b/src/i18n/zh-cn/components/ui/LoginDialog.js @@ -7,6 +7,7 @@ export default { signIn: '登录', signUp: '注册', fieldIsRequired: '该字段必须填写', + fieldShouldStartWithHTTP: '私有部署服务器地址需要以 http 开头', rememberPassword: '记住密码', autoLogin: '自动登录', quit: '退出' diff --git a/src/store/client/state.js b/src/store/client/state.js index 5fcd22d..a905f08 100644 --- a/src/store/client/state.js +++ b/src/store/client/state.js @@ -1,7 +1,6 @@ -const { app } = require('electron').remote export default function () { return { - language: app.getLocale().toLocaleLowerCase(), + language: null, autoLogin: false, rememberPassword: true, darkMode: false, diff --git a/src/store/server/actions.js b/src/store/server/actions.js index e5a3069..2efd15d 100644 --- a/src/store/server/actions.js +++ b/src/store/server/actions.js @@ -185,7 +185,7 @@ export default { start, count } = payload - const isTagCategory = tags.map(t => t.tagGuid).includes(helper.isNullOrEmpty(category) ? currentCategory : category) + const isTagCategory = tags?.map(t => t.tagGuid).includes(helper.isNullOrEmpty(category) ? currentCategory : category) if (isTagCategory) { this.dispatch('server/getTagNotes', { tag: currentCategory }) return From 6c20434f7eb6b56d89bea4110125c66af7d6a241 Mon Sep 17 00:00:00 2001 From: akashi2333 Date: Thu, 8 Jul 2021 11:07:01 +0800 Subject: [PATCH 03/12] [fix]:theme header color --- src/components/Header.vue | 60 ++++++++++++++++++++++++++++++++++----- src/css/style.css | 8 ++++++ 2 files changed, 61 insertions(+), 7 deletions(-) diff --git a/src/components/Header.vue b/src/components/Header.vue index c7f9793..7f0b477 100644 --- a/src/components/Header.vue +++ b/src/components/Header.vue @@ -40,8 +40,15 @@ > {{ $t('noteCategory') }} + + {{ $t('noteCategory') }} @@ -62,8 +69,15 @@ > {{ $t('tag') }} + + {{ $t('tag') }} @@ -79,8 +93,15 @@ > {{ enablePreviewEditor ? $t('lock') : $t('unlock') }} + + {{ enablePreviewEditor ? $t('lock') : $t('unlock') }} @@ -92,8 +113,15 @@ > {{ isLogin ? $t('logout') : $t('login') }} + + {{ isLogin ? $t('logout') : $t('login') }} @@ -126,8 +154,15 @@ /> {{ $t('search') }} + + {{ $t('search') }} @@ -159,8 +194,15 @@ > {{ $t('switchView') }} + + {{ $t('switchView') }} @@ -171,7 +213,10 @@ @click="$refs.settingsDialog.toggle()" > - {{ $t('settings') }} + + {{ $t('settings') }} @@ -344,6 +389,7 @@ export default {