changed: save strategy again. postpone query if one is still pending.
This commit is contained in:
parent
feb523c50b
commit
b1817a8857
48
main.js
48
main.js
|
@ -7,7 +7,7 @@ var defaultsettings =
|
||||||
lineheight: "130%",
|
lineheight: "130%",
|
||||||
accentcolor: "#5AA7CE",
|
accentcolor: "#5AA7CE",
|
||||||
|
|
||||||
savedelay: 1000,
|
savedelay: 2000,
|
||||||
foldmarkstart: 22232,
|
foldmarkstart: 22232,
|
||||||
defaultpreviewinsplit: false,
|
defaultpreviewinsplit: false,
|
||||||
enablefolding: false,
|
enablefolding: false,
|
||||||
|
@ -28,7 +28,7 @@ var folds = [];
|
||||||
var backup = "";
|
var backup = "";
|
||||||
var localdata = null;
|
var localdata = null;
|
||||||
var saved = true;
|
var saved = true;
|
||||||
var saveid = 0;
|
var pending = false;
|
||||||
var settings = null;
|
var settings = null;
|
||||||
var tags = null;
|
var tags = null;
|
||||||
var currentvault = "";
|
var currentvault = "";
|
||||||
|
@ -695,7 +695,7 @@ function loadsettings()
|
||||||
item = JSON.parse(item);
|
item = JSON.parse(item);
|
||||||
for (var key in settings)
|
for (var key in settings)
|
||||||
{
|
{
|
||||||
if (item[key])
|
if (typeof item[key] !== "undefined")
|
||||||
{
|
{
|
||||||
settings[key] = item[key];
|
settings[key] = item[key];
|
||||||
}
|
}
|
||||||
|
@ -1344,6 +1344,30 @@ function postpone()
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function waitpending()
|
||||||
|
{
|
||||||
|
return new Promise(function(resolve)
|
||||||
|
{
|
||||||
|
if (!pending)
|
||||||
|
{
|
||||||
|
resolve();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
console.log("query already pending, waiting...");
|
||||||
|
var id = setInterval(() =>
|
||||||
|
{
|
||||||
|
if (!pending)
|
||||||
|
{
|
||||||
|
console.log("... clear.");
|
||||||
|
clearInterval(id);
|
||||||
|
resolve();
|
||||||
|
}
|
||||||
|
}, 100);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
function datachanged()
|
function datachanged()
|
||||||
{
|
{
|
||||||
resize();
|
resize();
|
||||||
|
@ -1351,6 +1375,7 @@ function datachanged()
|
||||||
saved = false;
|
saved = false;
|
||||||
|
|
||||||
postpone()
|
postpone()
|
||||||
|
.then(waitpending)
|
||||||
.then(() =>
|
.then(() =>
|
||||||
{
|
{
|
||||||
var content = getnotecontent();
|
var content = getnotecontent();
|
||||||
|
@ -1378,19 +1403,18 @@ function datachanged()
|
||||||
|
|
||||||
if (localdata)
|
if (localdata)
|
||||||
{
|
{
|
||||||
|
pending = true;
|
||||||
queryremote({action: "push", data: JSON.stringify(localdata)})
|
queryremote({action: "push", data: JSON.stringify(localdata)})
|
||||||
.then(() => {
|
.then(() =>
|
||||||
|
{
|
||||||
console.log("data saved on server.");
|
console.log("data saved on server.");
|
||||||
saved = true;
|
saved = true;
|
||||||
|
|
||||||
if (content != getnotecontent())
|
|
||||||
{
|
|
||||||
console.log("but data changed in the meantime: will try again after delay");
|
|
||||||
datachanged();
|
|
||||||
}
|
|
||||||
})
|
})
|
||||||
.catch(remotecallfailed);
|
.catch(remotecallfailed)
|
||||||
|
.finally(() =>
|
||||||
|
{
|
||||||
|
pending = false;
|
||||||
|
});
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue