@@ -11,19 +11,21 @@
11 11 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
12 12 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
13 13 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
filename: string,
14 14 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
checkin: UUID string,
15 15 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
isExe: bool,
16 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- mimetype: mimetype stringas determined by the fossil server.
16 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ mimetype: mimetype string, as determined by the fossil server.
17 17 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
18 18 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
19 19 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
The fossil.page.fileContent() method gets or sets the current file
20 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- content for the page. Hypothetically, this can be overridden by
21 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- skin-level JS in order to use a custom 3rd-party editing widget
22 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- in place of the built-in textarea, but that is as yet untested.
23 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- In order to do so the client would need to replace DOM element
24 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #fileedit-content-editor with their custom widget.
20 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ content for the page.
21 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
22 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ - Event 'fileedit-content-replaced': when the editor's content is
23 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ replaced, as opposed to it being edited via user
24 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ interaction. This normally happens via selecting a file to
25 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ load. The event detail is the fossil.page object, not the current
26 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ file content.
25 27 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
26 28 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Event 'fileedit-preview-updated': when the preview is refreshed
27 29 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
from the server, this event passes on information about the preview
28 30 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
change in the form of an object:
29 31 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -114,11 +116,11 @@
114 116 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(!ciUuid){
115 117 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
D.clearElement(D.disable(selFiles, this.e.btnLoadFile));
116 118 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return this;
117 119 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
118 120 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const onload = (response)=>{
119 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- D.clearElement(selFiles, this.e.btnLoadFile);
121 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ D.clearElement(selFiles);
120 122 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
D.append(
121 123 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
D.clearElement(this.e.fileListLabel),
122 124 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"Editable files for ",
123 125 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
D.append(
124 126 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
D.code(), "[",
@@ -246,10 +248,11 @@
246 248 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
selectFontSizeWrap: E('#select-font-size'),
247 249 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
selectDiffWS: E('select[name=diff_ws]'),
248 250 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
cbLineNumbersWrap: E('#cb-line-numbers'),
249 251 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
cbAutoPreview: E('#cb-preview-autoupdate > input[type=checkbox]'),
250 252 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
previewTarget: E('#fileedit-tab-preview-wrapper'),
253 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ diffTarget: E('#fileedit-tab-diff-wrapper'),
251 254 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
cbIsExe: E('input[type=checkbox][name=exec_bit]'),
252 255 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fsFileVersionDetails: E('#file-version-details'),
253 256 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
tabs:{
254 257 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
content: E('#fileedit-tab-content'),
255 258 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
preview: E('#fileedit-tab-preview'),
@@ -375,12 +378,17 @@
375 378 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
'fileedit-file-loaded',
376 379 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
(e)=>console.debug('fileedit-file-loaded ==>',e)
377 380 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
);
378 381 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
379 382 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
380 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Tell the user about which storage is being used... */
381 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const storageMsgTarget = P.e.tabs.content;
383 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ P.addEventListener(
384 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ // Clear diff/preview when new content is loaded/set
385 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 'fileedit-content-replaced',
386 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ()=>D.clearElement(P.e.diffTarget, P.e.previewTarget)
387 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ );
388 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
389 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Tell the user about which fossil.storage is being used... */
382 390 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
let storageMsg = D.addClass(D.div(),'flex-container','flex-row',
383 391 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
'fileedit-hint');
384 392 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(F.storage.isTransient()){
385 393 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
D.append(
386 394 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
D.addClass(storageMsg,'warning'),
@@ -393,30 +401,56 @@
393 401 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
storageMsg,
394 402 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"Current storage mechanism for local edits: "+
395 403 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
F.storage.storageImplName()
396 404 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
);
397 405 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
398 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- storageMsgTarget.insertBefore(storageMsg, storageMsgTarget.lastElementChild);
406 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ P.e.tabs.content.insertBefore(storageMsg, P.e.tabs.content.lastElementChild);
399 407 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}, false)/*onload event handler*/;
400 408 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
401 409 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/**
402 410 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Getter (if called with no args) or setter (if passed an arg) for
403 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- the current file content. We use a function, rather than direct
404 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- access, so that clients can hypothetically swap out this method
405 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- from their skin in order to facilitate plugging-in of a fancy
406 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 3rd-party editor widget.
407 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
408 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- The setter form returns this object, and re-implementations must
409 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- do the same.
410 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
411 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- P.fileContent = function(){
411 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ the current file content.
412 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
413 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ The setter form sets the content, dispatches a
414 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 'fileedit-content-replaced' event, and returns this object.
415 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
416 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ P.fileContent = function f(){
412 417 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(0===arguments.length){
413 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return this.e.taEditor.value;
418 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return f.get();
414 419 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
415 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- this.e.taEditor.value = arguments[0] || '';
420 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ f.set(arguments[0] || '');
421 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ this.dispatchEvent('fileedit-content-replaced', this);
416 422 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return this;
417 423 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
424 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ };
425 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Default get/set impls for file content */
426 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ P.fileContent.get = function(){return P.e.taEditor.value};
427 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ P.fileContent.set = function(content){P.e.taEditor.value = content};
428 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
429 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /**
430 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ For use when installing a custom editor widget. Pass it the
431 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ getter and setter callbacks to fetch resp. set the content of the
432 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ custom widget. They will be triggered via
433 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ P.fileContent(). Returns this object.
434 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
435 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ P.setFileContentMethods = function(getter, setter){
436 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ this.fileContent.get = getter;
437 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ this.fileContent.set = setter;
438 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return this;
439 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ };
440 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
441 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /**
442 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Removes the default editor widget (and any dependent elements)
443 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ from the DOM, adds the given element in its place, removes this
444 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ method from this object, and returns this object.
445 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
446 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ P.replaceEditorElement = function(newEditor){
447 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ P.e.taEditor.parentNode.insertBefore(newEditor, P.e.taEditor);
448 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ P.e.taEditor.remove();
449 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ P.e.selectFontSizeWrap.remove();
450 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ delete this.replaceEditorElement;
451 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return P;
418 452 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
419 453 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
420 454 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/**
421 455 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
If either of...
422 456 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -562,26 +596,10 @@
562 596 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
);
563 597 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
this.setPageTitle("Edit: "+this.finfo.filename);
564 598 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return this;
565 599 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
566 600 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
567 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /**
568 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Removes the default editor widget (and any dependent elements)
569 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- from the DOM, adds the given element in its place, removes this
570 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- method from this object, and returns this object.
571 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
572 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- P.replaceEditorElement = function(newEditor){
573 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- P.e.taEditor.parentNode.insertBefore(
574 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- newEditor,
575 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- P.e.taEditor
576 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- );
577 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- P.e.taEditor.remove();
578 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- P.e.selectFontSizeWrap.remove();
579 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- delete this.replaceEditorElement;
580 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return P;
581 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- };
582 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
583 601 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/**
584 602 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
loadFile() loads (file,checkinVersion) and updates the relevant
585 603 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
UI elements to reflect the loaded state. If passed no arguments
586 604 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
then it re-uses the values from the currently-loaded file, reloading
587 605 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
it (emitting an error message if no file is loaded).
@@ -710,16 +728,12 @@
710 728 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Returns this object, noting that the operation is async.
711 729 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
712 730 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
P.diff = function f(sbs){
713 731 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(!affirmHasFile()) return this;
714 732 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const content = this.fileContent(),
715 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- self = this;
716 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(!f.target){
717 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- f.target = this.e.tabs.diff.querySelector(
718 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- '#fileedit-tab-diff-wrapper'
719 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- );
720 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
733 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ self = this,
734 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ target = this.e.diffTarget;
721 735 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const fd = new FormData();
722 736 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fd.append('filename',this.finfo.filename);
723 737 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fd.append('checkin', this.finfo.checkin);
724 738 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fd.append('sbs', sbs ? 1 : 0);
725 739 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fd.append('content',content);
@@ -728,11 +742,11 @@
728 742 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"Fetching diff..."
729 743 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
).fetch('fileedit',{
730 744 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
urlParams: {ajax: 'diff'},
731 745 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
payload: fd,
732 746 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
onload: function(c){
733 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- f.target.innerHTML = [
747 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ target.innerHTML = [
734 748 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"<div>Diff <code>[",
735 749 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
self.finfo.checkin,
736 750 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"]</code> → Local Edits</div>",
737 751 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
c||'No changes.'
738 752 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
].join('');
739 753 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!