diff --git a/scripts/dnd.js b/scripts/dnd.js
index 930e0149..f3f9a976 100644
--- a/scripts/dnd.js
+++ b/scripts/dnd.js
@@ -36,6 +36,9 @@ function asend() {
var r = XMLHttpRequestGeneric();
r.onreadystatechange = function()
{
+ if (r.readyState==4)
+ in_asend = false;
+
// after successful completion ...
if (r.readyState==4 && r.status==200) {
// restore original title
@@ -85,6 +88,7 @@ function asend() {
// add jcmd
f.append("jcmd", "Save");
+ in_asend = true;
r.send(f);
}
diff --git a/src/elogd.c b/src/elogd.c
index 8ad273fe..c099fb1e 100755
--- a/src/elogd.c
+++ b/src/elogd.c
@@ -9993,6 +9993,7 @@ void show_edit_form(LOGBOOK * lbs, int message_id, BOOL breply, BOOL bedit, BOOL
rsprintf("var entry_modified = false;\n");
rsprintf("var draft_modified = false;\n");
rsprintf("var last_key = 0;\n\n");
+ rsprintf("var in_asend = false;\n\n");
rsprintf("function chkform()\n");
rsprintf("{\n");
@@ -10155,6 +10156,9 @@ void show_edit_form(LOGBOOK * lbs, int message_id, BOOL breply, BOOL bedit, BOOL
}
}
+ rsprintf(" if (autoSaveTimer != null)\n");
+ rsprintf(" clearTimeout(autoSaveTimer);\n");
+ rsprintf(" while (in_asend);\n"); // wait for any running asynchronous operation
rsprintf(" submitted = true;\n");
rsprintf(" return true;\n");
rsprintf("}\n\n");
@@ -10164,6 +10168,7 @@ void show_edit_form(LOGBOOK * lbs, int message_id, BOOL breply, BOOL bedit, BOOL
rsprintf("{\n");
rsprintf(" if (autoSaveTimer != null)\n");
rsprintf(" clearTimeout(autoSaveTimer);\n");
+ rsprintf(" while (in_asend);\n"); // wait for any running asynchronous operation
rsprintf(" submitted = true;\n"); // don't ask to leave that page
rsprintf(" return true;\n");
rsprintf("}\n\n");
diff --git a/xcode/elogd.xcodeproj/project.xcworkspace/xcshareddata/elogd.xccheckout b/xcode/elogd.xcodeproj/project.xcworkspace/xcshareddata/elogd.xccheckout
index 2821ae73..61562469 100644
--- a/xcode/elogd.xcodeproj/project.xcworkspace/xcshareddata/elogd.xccheckout
+++ b/xcode/elogd.xcodeproj/project.xcworkspace/xcshareddata/elogd.xccheckout
@@ -7,7 +7,7 @@
IDESourceControlProjectIdentifier
81431534-03C4-4F18-8910-AA341A0BBED2
IDESourceControlProjectName
- project
+ elogd
IDESourceControlProjectOriginsDictionary
4A8AA611133AD3F7E07C7C33DCF50244FB7A1AB5
@@ -16,7 +16,7 @@
bitbucket.org:ritt/elog.git
IDESourceControlProjectPath
- xcode/elogd.xcodeproj/project.xcworkspace
+ xcode/elogd.xcodeproj
IDESourceControlProjectRelativeInstallPathDictionary
4A8AA611133AD3F7E07C7C33DCF50244FB7A1AB5