Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/PhieF/CarnetElectron.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhie <phie@phie.ovh>2022-02-06 02:27:44 +0300
committerPhie <phie@phie.ovh>2022-02-06 02:27:44 +0300
commite29afc5351e90310665ef78fbcfe1ab7ecbf2f48 (patch)
treeabbfab1927d256f6fc093d53df5eb10f6d856e0d
parent73c97026a9551a405f243f59b6ca61cc90f6cc07 (diff)
fixing many errors because of new dependencies + fix webdav sync
-rw-r--r--browsers/browser.js23
-rw-r--r--compatibility/compatibility-browser.js4
-rw-r--r--compatibility/compatibility-editor.js16
-rw-r--r--compatibility/compatibility.js8
-rw-r--r--compatibility/electron/request_builder.js4
-rw-r--r--index.html2
-rw-r--r--main.js19
-rw-r--r--package.json3
-rw-r--r--reader/reader.js10
-rw-r--r--server/keywords/keywords_db_manager.js4
-rw-r--r--server/recent/local_recent_db_manager.js6
-rw-r--r--server/settings_helper.js22
-rw-r--r--server/sync/sync.js16
-rw-r--r--settings/webdav_dialog.js12
14 files changed, 99 insertions, 50 deletions
diff --git a/browsers/browser.js b/browsers/browser.js
index 6bc9909..9968848 100644
--- a/browsers/browser.js
+++ b/browsers/browser.js
@@ -78,21 +78,26 @@ function onPrepared(error, data, notePath, action) {
return;
if (writerFrame.src == "") {
- if (navigator.userAgent.toLowerCase().indexOf('firefox') > -1 && navigator.userAgent.toLowerCase().indexOf("android") > -1) {//open in new tab for firefox android
- window.open("writer?path=" + encodeURIComponent(notePath) + (action != undefined ? "&action=" + action : ""), "_blank");
- }
- else {
- writerFrame.src = data + (notePath != undefined ? ("?path=" + encodeURIComponent(notePath) + (action != undefined ? "&action=" + action : "")) : "");
if (notePath !== undefined) {
$("#editor-container").show()
$(loadingView).fadeIn(function () {
writerFrame.style.display = "inline-flex"
+ if(compatibility.isElectron){
+ writerFrame.addEventListener("dom-ready", () => {
+ const remote = require('@electron/remote');
+ var main = remote.require("./main");
+ main.enableEditorWebContent(document.getElementById("writer-webview").getWebContentsId())
+ writerFrame.openDevTools()
+ writerFrame.send('remote_ready', undefined);
+ })
+ }
+ writerFrame.src = data + (notePath != undefined ? ("?path=" + encodeURIComponent(notePath) + (action != undefined ? "&action=" + action : "")) : "");
+
+
+
})
}
- }
- /*setTimeout(function () {
- writerFrame.openDevTools()
- }, 1000)*/
+
}
else {
console.log("reuse old iframe");
diff --git a/compatibility/compatibility-browser.js b/compatibility/compatibility-browser.js
index dd78e50..e41e2bf 100644
--- a/compatibility/compatibility-browser.js
+++ b/compatibility/compatibility-browser.js
@@ -36,9 +36,9 @@ class BrowserCompatibility extends Compatibility {
} else {
const {
- remote,
ipcRenderer
} = require('electron');
+ const remote = require('@electron/remote');
$('head').append("<style>\
@media screen and (min-width: 1400px) {\
#loading-view {\
@@ -61,7 +61,7 @@ class BrowserCompatibility extends Compatibility {
syncButton.classList.remove("rotation")
syncButton.disabled = false;
});
- var main = remote.require("./main.js");
+ var main = remote.require("./main");
if (main.isSyncing()) {
syncButton.classList.add("rotation")
syncButton.disabled = true;
diff --git a/compatibility/compatibility-editor.js b/compatibility/compatibility-editor.js
index 41c2699..011eeef 100644
--- a/compatibility/compatibility-editor.js
+++ b/compatibility/compatibility-editor.js
@@ -65,6 +65,16 @@ class CompatibilityEditor extends Compatibility {
}
}
}
-
-var compatibility = new CompatibilityEditor();
-var isElectron = compatibility.isElectron; \ No newline at end of file
+var isElectron = typeof require === "function" || typeof parent.require === "function";
+if(!isElectron){
+ $(document).ready(function(){
+ init()
+ })
+}
+else{
+ console.log("isDefinitivetyelectron")
+ var ipcRenderer = require('electron').ipcRenderer;
+ ipcRenderer.on('remote_ready', function (event, path) {
+ init()
+ });
+} \ No newline at end of file
diff --git a/compatibility/compatibility.js b/compatibility/compatibility.js
index d5f0088..6df9fa6 100644
--- a/compatibility/compatibility.js
+++ b/compatibility/compatibility.js
@@ -66,9 +66,8 @@ class Compatibility {
}
openElectronSyncDialog() {
- var {
- remote
- } = require('electron');
+ const remote = require('@electron/remote');
+
const BrowserWindow = remote.BrowserWindow;
var win = new BrowserWindow({
@@ -90,6 +89,9 @@ class Compatibility {
slashes: true
}))
win.setMenu(null)
+ win.webContents.openDevTools()
+ var main = remote.require("./main");
+ main.enableEditorWebContent(win.webContents.id)
}
sendNextLargeDownload() {
diff --git a/compatibility/electron/request_builder.js b/compatibility/electron/request_builder.js
index b3ba4da..6e51693 100644
--- a/compatibility/electron/request_builder.js
+++ b/compatibility/electron/request_builder.js
@@ -1,8 +1,8 @@
class ElectronRequestBuilder extends RequestBuilder {
constructor() {
super("./");
- var remote = compatRequire('electron').remote;
- this.main = remote.require("./main.js");
+ var remote = require('@electron/remote');
+ this.main = remote.require("./main");
}
get(path, callback) {
var requestId = Utils.generateUID()
diff --git a/index.html b/index.html
index 52c19c3..1e1711e 100644
--- a/index.html
+++ b/index.html
@@ -247,7 +247,7 @@
</div>
<div id="editor-container">
- <webview class="editor" id="writer-webview" nodeintegration webpreferences="contextIsolation=false"> </webview>
+ <webview class="editor" id="writer-webview" nodeintegration enableremotemodule webpreferences="contextIsolation=false,enableRemoteModule=true"> </webview>
<iframe class="editor" id="writer-iframe" allowfullscreen></iframe>
<div id="loading-view">
<button class="mdl-button mdl-js-button" id="cancel-load-button" data-i18n="cancel">Cancel</button>
diff --git a/main.js b/main.js
index b6b3095..bf8242e 100644
--- a/main.js
+++ b/main.js
@@ -1,11 +1,13 @@
const {
app,
BrowserWindow,
- ipcMain
+ ipcMain,
+ webContents
} = require('electron');
const path = require('path')
const url = require('url')
-
+// In the main process:
+require('@electron/remote/main').initialize()
const Store = require('electron-store');
const store = new Store();
var SettingsHelper = require("./server/settings_helper").SettingsHelper;
@@ -75,9 +77,7 @@ function createWindow() {
webPreferences: {
nodeIntegration: true,
webviewTag: true,
- enableRemoteModule: true,
contextIsolation: false,
- enableRemoteModule: true
}
})
@@ -90,9 +90,9 @@ function createWindow() {
protocol: 'file:',
slashes: true
}) + '?api_url=' + server.carnetHttpServer.getAddress())
-
+ require("@electron/remote/main").enable(win.webContents);
// Open the DevTools.
- //win.webContents.openDevTools()
+ win.webContents.openDevTools()
console.log("app uid " + uid)
// Emitted when the window is closed.
@@ -180,6 +180,13 @@ exports.displayMainWindow = (size, pos) => {
win.show();
}
+exports.enableEditorWebContent = (webContentsId) => {
+ console.log("calling enableEditorWebContent "+webContentsId)
+ require("@electron/remote/main").enable(webContents.fromId(webContentsId));
+ console.log("called enableEditorWebContent"+webContents.fromId(webContentsId))
+
+}
+
exports.hideMainWindow = () => {
win.hide();
diff --git a/package.json b/package.json
index 8340bc7..cdbd5d8 100644
--- a/package.json
+++ b/package.json
@@ -69,6 +69,7 @@
}
},
"dependencies": {
+ "@electron/remote": "^2.0.4",
"archiver": "^5.3.0",
"desandro-matches-selector": "^2.0.2",
"electron-store": "^8.0.1",
@@ -89,7 +90,7 @@
"qs": "^6.10.2",
"rimraf": "^3.0.2",
"textversionjs": "^1.1.3",
- "webdav": "^4.7.0"
+ "webdav": "^4.8.0"
},
"devDependencies": {
"@babel/cli": "^7.16.7",
diff --git a/reader/reader.js b/reader/reader.js
index 54980c9..dd76af8 100644
--- a/reader/reader.js
+++ b/reader/reader.js
@@ -1647,8 +1647,12 @@ if (loaded == undefined)
var loaded = false; //don't know why, loaded twice on android
var writer = undefined;
-
-$(document).ready(function () {
+var isElectron = false;
+var compatibility = undefined;
+function init () {
+ compatibility = new CompatibilityEditor();
+ isElectron = compatibility.isElectron;
+ console.log("isElectron "+isElectron)
rootpath = document.getElementById("root-url").innerHTML.trim();
api_url = document.getElementById("api-url").innerHTML.trim();
@@ -1695,7 +1699,7 @@ $(document).ready(function () {
})
$.i18n().locale = navigator.language;
-});
+}
$(window).on('touchstart', function (e) {
if ($(e.target).closest('.block-scroll').length >= 1) {
writer.oCenter.style.overflowY = "hidden";
diff --git a/server/keywords/keywords_db_manager.js b/server/keywords/keywords_db_manager.js
index a79a67a..25e494a 100644
--- a/server/keywords/keywords_db_manager.js
+++ b/server/keywords/keywords_db_manager.js
@@ -100,7 +100,7 @@ KeywordsDBManager.prototype.mergeDB = function (path, callback) {
}
if (hasChanged) {
dataJson["data"].sort(keysrt('time'))
- require("mkdirp")(getParentFolderFromPath(db.path), function () {
+ require("mkdirp")(getParentFolderFromPath(db.path)).then(made => {
lockFile.lock('recent.lock', {
wait: 10000
}, function (er) {
@@ -135,7 +135,7 @@ KeywordsDBManager.prototype.actionArray = function (items, callback) {
};
fullDB["data"].push(item);
}
- require("mkdirp")(getParentFolderFromPath(db.path), function () {
+ require("mkdirp")(getParentFolderFromPath(db.path)).then(made => {
// opts is optional, and defaults to {}
console.logDebug("writing")
diff --git a/server/recent/local_recent_db_manager.js b/server/recent/local_recent_db_manager.js
index 5205b89..8e88891 100644
--- a/server/recent/local_recent_db_manager.js
+++ b/server/recent/local_recent_db_manager.js
@@ -32,7 +32,7 @@ LocalRecentDBManager.prototype.actionArray = function (items, callback) {
};
fullDB["data"].push(item);
}
- require("mkdirp")(getParentFolderFromPath(db.path), function () {
+ require("mkdirp")(getParentFolderFromPath(db.path)).then(made => {
// opts is optional, and defaults to {}
console.logDebug("writing")
@@ -74,7 +74,7 @@ LocalRecentDBManager.prototype.action = function (path, action, time, callback)
fullDB["data"].push(item);
console.logDebug(JSON.stringify(item))
- require("mkdirp")(getParentFolderFromPath(db.path), function () {
+ require("mkdirp")(getParentFolderFromPath(db.path)).then(made => {
// opts is optional, and defaults to {}
console.logDebug("writing")
@@ -134,7 +134,7 @@ LocalRecentDBManager.prototype.mergeDB = function (path, callback) {
}
dataJson["data"] = dataJson["data"].sort(keysrt('time'))
if (hasChanged) {
- require("mkdirp")(getParentFolderFromPath(db.path), function () {
+ require("mkdirp")(getParentFolderFromPath(db.path)).then(made => {
// opts is optional, and defaults to {}
lockFile.lock('recent.lock', {
wait: 10000
diff --git a/server/settings_helper.js b/server/settings_helper.js
index 8989614..dc715f8 100644
--- a/server/settings_helper.js
+++ b/server/settings_helper.js
@@ -78,21 +78,31 @@ SettingsHelper.prototype.getRemoteWebdavPath = function () {
SettingsHelper.prototype.setRemoteWebdavPath = function (path) {
-
- return store.set("remote_webdav_path", path)
+ if(path == undefined)
+ store.delete("remote_webdav_path")
+ else
+ return store.set("remote_webdav_path", path)
}
SettingsHelper.prototype.setRemoteWebdavAddr = function (addr) {
-
- return store.set("remote_webdav_addr", addr)
+ if(addr == undefined)
+ store.delete("remote_webdav_addr")
+ else
+ return store.set("remote_webdav_addr", addr)
}
SettingsHelper.prototype.setRemoteWebdavUsername = function (username) {
- return store.set("remote_webdav_username", username)
+ if(username == undefined)
+ store.delete("remote_webdav_username")
+ else
+ return store.set("remote_webdav_username", username)
}
SettingsHelper.prototype.setRemoteWebdavPassword = function (password) {
- return store.set("remote_webdav_password", password)
+ if(password == undefined)
+ store.delete("remote_webdav_password")
+ else
+ return store.set("remote_webdav_password", password)
}
SettingsHelper.prototype.displayFrame = function () {
diff --git a/server/sync/sync.js b/server/sync/sync.js
index bd016ad..9ec7b43 100644
--- a/server/sync/sync.js
+++ b/server/sync/sync.js
@@ -16,15 +16,21 @@ var Sync = function (onSyncStart, onSyncEnd) {
}
Sync.prototype.connect = function () {
- var createClient = require("webdav");
+ const { AuthType, createClient } = require("webdav");
+
var sync = this;
console.logDebug("connecting with " + sync.settingsHelper.getRemoteWebdavUsername())
-
+ const username = sync.settingsHelper.getRemoteWebdavUsername()
+ const password = sync.settingsHelper.getRemoteWebdavPassword()
this.client = createClient(
sync.settingsHelper.getRemoteWebdavAddr(),
- sync.settingsHelper.getRemoteWebdavUsername(),
- sync.settingsHelper.getRemoteWebdavPassword()
- );
+ {
+ username,
+ password
+ }
+
+ )
+
}
diff --git a/settings/webdav_dialog.js b/settings/webdav_dialog.js
index 272f2b6..e888393 100644
--- a/settings/webdav_dialog.js
+++ b/settings/webdav_dialog.js
@@ -50,11 +50,15 @@ function getWebdavAddress() {
function connect() {
if (!(document.getElementById("address").value == "" || document.getElementById("username").value == "" || document.getElementById("password").value == "")) {
document.getElementById("loading-view").style.display = "block"
- var createClient = require("webdav");
+ const { AuthType, createClient } = require("webdav");
this.client = createClient(
getWebdavAddress(),
- document.getElementById("username").value,
- document.getElementById("password").value
+ {
+ authType: AuthType.Password,
+ username: document.getElementById("username").value,
+ password: document.getElementById("password").value
+ }
+
).getDirectoryContents("/")
.then(function (contents) {
document.getElementById("loading-view").style.display = "none"
@@ -67,7 +71,7 @@ function connect() {
var SyncDBManager = require("../server/sync/sync_db_manager").SyncDBManager
SyncDBManager.getInstance().reset()
- const remote = require('electron').remote;
+ const remote = require('@electron/remote');
const window = remote.getCurrentWindow();
window.close();
}).catch(function (e) {