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