@@ -397,10 +397,12 @@
397 397 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
this.playNewMessageSound.uri = uri;
398 398 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
this.settings.set('audible-alert', !!uri);
399 399 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return this;
400 400 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
401 401 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
402 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ F.fetch.beforesend = ()=>cs.ajaxStart();
403 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ F.fetch.aftersend = ()=>cs.ajaxEnd();
402 404 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
cs.e.inputCurrent = cs.e.inputSingle;
403 405 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Install default settings... */
404 406 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Object.keys(cs.settings.defaults).forEach(function(k){
405 407 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const v = cs.settings.get(k,cs);
406 408 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(cs===v) cs.settings.set(k,cs.settings.defaults[k]);
@@ -538,18 +540,15 @@
538 540 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
e = this.getMessageElemById(id);
539 541 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
540 542 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(!(e instanceof HTMLElement)) return;
541 543 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(this.userMayDelete(e)){
542 544 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
this.ajaxStart();
543 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fetch("chat-delete/" + id)
544 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- .then(function(response){
545 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(!response.ok) throw cs._newResponseError(response);
546 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return response;
547 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- })
548 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- .then(()=>this.deleteMessageElem(e))
549 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- .catch(err=>this.reportErrorAsMessage(err))
550 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- .finally(()=>this.ajaxEnd());
545 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ F.fetch("chat-delete/" + id, {
546 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ responseType: 'json',
547 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ onload:(r)=>this.deleteMessageElem(r),
548 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ onerror:(err)=>this.reportErrorAsMessage(err)
549 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ });
551 550 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
552 551 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
this.deleteMessageElem(id);
553 552 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
554 553 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
555 554 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
document.addEventListener('visibilitychange', function(ev){
@@ -878,27 +877,25 @@
878 877 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const file = BlobXferState.blob || this.e.inputFile.files[0];
879 878 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(file) fd.set("file", file);
880 879 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !msg && !file ) return;
881 880 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const self = this;
882 881 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fd.set("lmtime", localTime8601(new Date()));
883 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fetch("chat-send",{
884 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- method: 'POST',
885 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- body: fd
886 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }).then((x)=>{
887 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(x.ok) return x.text();
888 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- else throw Chat._newResponseError(x);
889 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }).then(function(txt){
882 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ F.fetch("chat-send",{
883 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ payload: fd,
884 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ responseType: 'text',
885 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ onerror:(err)=>this.reportErrorAsMessage(err),
886 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ onload:function(txt){
890 887 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(!txt) return/*success response*/;
891 888 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
try{
892 889 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const json = JSON.parse(txt);
893 890 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
self.newContent({msgs:[json]});
894 891 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}catch(e){
895 892 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
self.reportError(e);
896 893 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return;
897 894 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
898 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- })
899 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- .catch((e)=>this.reportErrorAsMessage(e));
895 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
896 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ });
900 897 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
BlobXferState.clear();
901 898 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Chat.inputValue("").inputFocus();
902 899 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
903 900 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
904 901 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Chat.e.inputSingle.addEventListener('keydown',function(ev){
@@ -1155,35 +1152,36 @@
1155 1152 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
D.fieldset(loadLegend), "id", "load-msg-toolbar"
1156 1153 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
);
1157 1154 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Chat.disableDuringAjax.push(toolbar);
1158 1155 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Loads the next n oldest messages, or all previous history if n is negative. */
1159 1156 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const loadOldMessages = function(n){
1160 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Chat.ajaxStart();
1161 1157 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Chat.e.messagesWrapper.classList.add('loading');
1162 1158 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Chat._isBatchLoading = true;
1163 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- var gotMessages = false;
1164 1159 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const scrollHt = Chat.e.messagesWrapper.scrollHeight,
1165 1160 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
scrollTop = Chat.e.messagesWrapper.scrollTop;
1166 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fetch("chat-poll?before="+Chat.mnMsg+"&n="+n)
1167 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- .then(Chat._fetchJsonOrError)
1168 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- .then(function(x){
1169 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- gotMessages = x.msgs.length;
1161 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ F.fetch("chat-poll",{
1162 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ urlParams:{
1163 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ before: Chat.mnMsg,
1164 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ n: n
1165 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ },
1166 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ responseType: 'json',
1167 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ onerror:function(err){
1168 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Chat.reportErrorAsMessage(err);
1169 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Chat._isBatchLoading = false;
1170 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ },
1171 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ onload:function(x){
1172 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ let gotMessages = x.msgs.length;
1170 1173 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
newcontent(x,true);
1171 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- })
1172 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- .catch(e=>Chat.reportErrorAsMessage(e))
1173 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- .finally(function(){
1174 1174 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Chat._isBatchLoading = false;
1175 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Chat.e.messagesWrapper.classList.remove('loading');
1176 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Chat.ajaxEnd();
1177 1175 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(Chat._gotServerError){
1178 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- F.toast.error("Got an error response from the server. ",
1179 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "See message for details.");
1176 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Chat._gotServerError = false;
1180 1177 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return;
1181 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else if(n<0/*we asked for all history*/
1178 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
1179 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if(n<0/*we asked for all history*/
1182 1180 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
|| 0===gotMessages/*we found no history*/
1183 1181 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
|| (n>0 && gotMessages<n /*we got fewer history entries than requested*/)
1184 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- || (false!==gotMessages && n===0 && gotMessages<Chat.loadMessageCount
1182 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ || (n===0 && gotMessages<Chat.loadMessageCount
1185 1183 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*we asked for default amount and got fewer than that.*/)){
1186 1184 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* We've loaded all history. Permanently disable the
1187 1185 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
history-load toolbar and keep it from being re-enabled
1188 1186 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
via the ajaxStart()/ajaxEnd() mechanism... */
1189 1187 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const div = Chat.e.loadOlderToolbar.querySelector('div');
@@ -1199,11 +1197,16 @@
1199 1197 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
was requested, per user request */
1200 1198 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Chat.e.messagesWrapper.scrollTo(
1201 1199 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
0, Chat.e.messagesWrapper.scrollHeight - scrollHt + scrollTop
1202 1200 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
);
1203 1201 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1204 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- });
1202 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ },
1203 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ aftersend:function(){
1204 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Chat.e.messagesWrapper.classList.remove('loading');
1205 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Chat.ajaxEnd();
1206 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
1207 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ });
1205 1208 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
1206 1209 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const wrapper = D.div(); /* browsers don't all properly handle >1 child in a fieldset */;
1207 1210 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
D.append(toolbar, wrapper);
1208 1211 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
var btn = D.button("Previous "+Chat.loadMessageCount+" messages");
1209 1212 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
D.append(wrapper, btn);
@@ -1213,47 +1216,63 @@
1213 1216 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
btn.addEventListener('click',()=>loadOldMessages(-1));
1214 1217 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
D.append(Chat.e.messagesWrapper, toolbar);
1215 1218 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
toolbar.disabled = true /*will be enabled when msg load finishes */;
1216 1219 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
})()/*end history loading widget setup*/;
1217 1220 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1218 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- async function poll(isFirstCall){
1221 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const afterFetch = function(isFirstCall){
1222 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if(isFirstCall){
1223 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Chat.ajaxEnd();
1224 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Chat.e.messagesWrapper.classList.remove('loading');
1225 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ setTimeout(function(){
1226 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Chat.scrollMessagesTo(1);
1227 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }, 250);
1228 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
1229 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if(Chat._gotServerError && Chat.intervalTimer){
1230 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ clearInterval(Chat.intervalTimer);
1231 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Chat.reportErrorAsMessage(
1232 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "Shutting down chat poller due to server-side error. ",
1233 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "Reload this page to reactivate it.");
1234 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ delete Chat.intervalTimer;
1235 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
1236 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ poll.running = false;
1237 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ };
1238 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const poll = async function(){
1219 1239 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(poll.running) return;
1220 1240 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
poll.running = true;
1221 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(isFirstCall){
1241 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if(0===poll.runCount++){
1222 1242 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Chat.ajaxStart();
1223 1243 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Chat.e.messagesWrapper.classList.add('loading');
1224 1244 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1225 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Chat._isBatchLoading = isFirstCall;
1226 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- var p = fetch("chat-poll?name=" + Chat.mxMsg);
1227 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- p.then(Chat._fetchJsonOrError)
1228 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- .then(y=>newcontent(y))
1229 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- .catch(e=>console.error(e))
1230 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* ^^^ we don't use Chat.reportError(e) here b/c the polling
1231 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fails exepectedly when it times out, but is then immediately
1232 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- resumed, and reportError() produces a loud error message. */
1233 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- .finally(function(){
1234 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(isFirstCall){
1235 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Chat._isBatchLoading = false;
1236 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Chat.ajaxEnd();
1237 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Chat.e.messagesWrapper.classList.remove('loading');
1238 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- setTimeout(function(){
1239 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Chat.scrollMessagesTo(1);
1240 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }, 250);
1241 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
1242 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(Chat._gotServerError && Chat.intervalTimer){
1243 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- clearInterval(Chat.intervalTimer);
1244 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- delete Chat.intervalTimer;
1245 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
1246 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- poll.running=false;
1247 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- });
1248 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
1245 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Chat._isBatchLoading = (1===poll.runCount);
1246 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ F.fetch("chat-poll",{
1247 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ timeout: 420 * 1000/*FIXME: get the value from the server*/,
1248 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ urlParams:{
1249 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ name: Chat.mxMsg
1250 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ },
1251 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ responseType: "json",
1252 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ // Disable the ajax start/end handling for this long-polling op:
1253 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ beforesend: function(){},
1254 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ aftersend: function(){},
1255 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ onerror:function(err){
1256 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Chat._isBatchLoading = false;
1257 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ console.error(err);
1258 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* ^^^ we don't use Chat.reportError() here b/c the polling
1259 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fails exepectedly when it times out, but is then immediately
1260 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ resumed, and reportError() produces a loud error message. */
1261 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ afterFetch(1===poll.runCount);
1262 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ },
1263 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ onload:function(y){
1264 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ newcontent(y);
1265 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Chat._isBatchLoading = false;
1266 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ afterFetch(1===poll.runCount);
1267 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
1268 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ });
1269 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ };
1270 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ poll.runCount = 0;
1249 1271 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Chat._gotServerError = poll.running = false;
1250 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- poll(true);
1251 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(!Chat._gotServerError){
1252 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Chat.intervalTimer = setInterval(poll, 1000);
1253 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
1272 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Chat.intervalTimer = setInterval(poll, 1000);
1254 1273 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( window.fossil.config.chat.fromcli ){
1255 1274 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Chat.chatOnlyMode(true);
1256 1275 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1257 1276 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1258 1277 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
F.page.chat = Chat/* enables testing the APIs via the dev tools */;
1259 1278 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
})();
1260 1279 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!