212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
|
212
213
214
215
216
217
218
219
220
221
222
223
224
225
|
-
-
-
-
-
-
|
chunks. */
FillGap: 0,
/** Prepend context to the start of the next diff chunk. */
NextUp: -1,
/** Process the next queued action. */
ProcessQueue: 0x7fffffff
},
config: {
/*
glyphUp: '⇡', //'&#uarr;',
glyphDown: '⇣' //'&#darr;'
*/
},
/**
Creates and returns a button element for fetching a chunk in
the given fetchType (as documented for fetchChunk()).
*/
createButton: function(fetchType){
let b;
|
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
|
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
|
-
+
+
+
-
-
-
-
+
+
+
+
-
+
|
previous lines, we're doing so on behalf of the *next* diff
chunk (this.pos.next), and vice versa. */
if(fetchType===this.FetchType.NextUp && !this.pos.next
|| fetchType===this.FetchType.PrevDown && !this.pos.prev){
console.error("Attempt to fetch diff lines but don't have any.");
return this;
}
this.msg(false);
this.msg(false,"Fetching diff chunk...");
const self = this;
const fOpt = {
urlParams:{
name: this.fileHash, from: 0, to: 0
},
aftersend: ()=>this.msg(false),
onload: function(list){
this.injectResponse(fetchType,up,list);
if( !this.$fetchQueue || this.$fetchQueue.length==0 ) return;
this.$fetchQueue.shift();
setTimeout(this.fetchChunk.bind(this,this.FetchType.ProcessQueue));
self.injectResponse(fetchType,up,list);
if( !self.$fetchQueue || self.$fetchQueue.length==0 ) return;
self.$fetchQueue.shift();
setTimeout(self.fetchChunk.bind(self,self.FetchType.ProcessQueue));
}.bind(this)
}
};
const up = fOpt.urlParams;
if(fetchType===this.FetchType.FillGap){
/* Easiest case: filling a whole gap. */
up.from = this.pos.startLhs;
up.to = this.pos.endLhs;
}else if(this.FetchType.PrevDown===fetchType){
|
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
|
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
|
-
-
-
+
+
+
|
if( this.pos.prev && this.pos.prev.endLhs >= up.from ){
up.from = this.pos.prev.endLhs + 1;
fetchType = this.FetchType.FillGap;
}
}
//console.debug("fetchChunk(",fetchType,")",up);
fOpt.onerror = function(err){
this.msg(true,err.message);
this.$fetchQueue = [];
}.bind(this);
self.msg(true,err.message);
self.$fetchQueue = [];
};
Diff.fetchArtifactChunk(fOpt);
return this;
}
};
/**
Adds context-loading buttons to one or more tables. The argument
|