@@ -3,13 +3,13 @@
3 3 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/**
4 4 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Code for the /filepage app. Requires that the fossil JS
5 5 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
bootstrapping is complete and fossil.fetch() has been installed.
6 6 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
7 7 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const E = (s)=>document.querySelector(s),
8 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- D = F.dom;
8 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ D = F.dom,
9 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ P = F.page;
9 10 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
window.addEventListener("load", function() {
10 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const P = F.page;
11 11 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
P.tabs = new fossil.TabManager('#fileedit-tabs');
12 12 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
P.e = {
13 13 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
taEditor: E('#fileedit-content-editor'),
14 14 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
taComment: E('#fileedit-comment'),
15 15 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
ajaxContentTarget: E('#ajax-target'),
@@ -37,14 +37,14 @@
37 37 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
//e.stopPropagation();
38 38 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return P;
39 39 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
40 40 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
41 41 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
//P.tabs.getButtonForTab(P.e.tabs.preview)
42 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- P.e.tabs.preview.querySelector(
43 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 'button'
44 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ).addEventListener(
45 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "click",(e)=>P.preview(), false
42 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ F.connectPagePreviewers(
43 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ P.e.tabs.preview.querySelector(
44 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 'button'
45 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ )
46 46 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
);
47 47 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
48 48 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const diffButtons = E('#fileedit-tab-diff-buttons');
49 49 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
diffButtons.querySelector('button.sbs').addEventListener(
50 50 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"click",(e)=>P.diff(true), false
@@ -102,19 +102,20 @@
102 102 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
selectFontSize.dispatchEvent(
103 103 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
// Force UI update
104 104 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
new Event('change',{target:selectFontSize})
105 105 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
);
106 106 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
107 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }, false);
107 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
108 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }, false)/*onload event handler*/;
108 109 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
109 110 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/**
110 111 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
updateVersion() updates the filename and version in various UI
111 112 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
elements...
112 113 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
113 114 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Returns this object.
114 115 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
115 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- F.page.updateVersion = function(file,rev){
116 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ P.updateVersion = function(file,rev){
116 117 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
this.finfo = {file,r:rev};
117 118 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const E = (s)=>document.querySelector(s),
118 119 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
euc = encodeURIComponent,
119 120 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rShort = rev.substr(0,16);
120 121 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
E('#r-label').innerText=rev;
@@ -140,11 +141,11 @@
140 141 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
loadFile() loads (file,checkinVersion) and updates the relevant
141 142 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
UI elements to reflect the loaded state.
142 143 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
143 144 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Returns this object, noting that the load is async.
144 145 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
145 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- F.page.loadFile = function(file,rev){
146 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ P.loadFile = function(file,rev){
146 147 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(0===arguments.length){
147 148 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(!this.finfo) return this;
148 149 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
file = this.finfo.file;
149 150 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rev = this.finfo.r;
150 151 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -169,20 +170,19 @@
169 170 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
this page's input fields, and updates the UI with with the
170 171 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
preview.
171 172 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
172 173 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Returns this object, noting that the operation is async.
173 174 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
174 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- F.page.preview = function(switchToTab){
175 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ P.preview = function(switchToTab){
175 176 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(!this.finfo){
176 177 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
F.error("No content is loaded.");
177 178 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return this;
178 179 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
179 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const content = this.e.taEditor.value,
180 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- target = this.e.tabs.preview.querySelector(
181 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- '#fileedit-tab-preview-wrapper'
182 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ),
183 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- self = this;
180 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const target = this.e.tabs.preview.querySelector(
181 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ '#fileedit-tab-preview-wrapper'
182 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ );
183 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const self = this;
184 184 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const updateView = function(c){
185 185 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
D.clearElement(target);
186 186 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if('string'===typeof c){
187 187 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
target.innerHTML = c;
188 188 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -190,34 +190,47 @@
190 190 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(switchToTab) self.tabs.switchToTab(self.e.tabs.preview);
191 191 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
192 192 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(!content){
193 193 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
updateView('');
194 194 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return this;
195 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
196 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ this._postPreview(this.e.taEditor.value, updateView);
197 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return this;
198 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ };
199 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
200 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /**
201 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Callback for use with F.connectPagePreviewers()
202 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
203 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ P._postPreview = function(content,callback){
204 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if(!content){
205 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ callback(content);
206 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return;
195 207 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
196 208 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const fd = new FormData();
197 209 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fd.append('render_mode',E('select[name=preview_render_mode]').value);
198 210 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fd.append('file',this.finfo.file);
199 211 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fd.append('ln',E('[name=preview_ln]').checked ? 1 : 0);
200 212 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fd.append('iframe_height', E('[name=preview_html_ems]').value);
201 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fd.append('content',content);
202 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- target.innerText = "Fetching preview...";
203 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- F.message(
204 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "Fetching preview..."
205 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ).fetch('fileedit_preview',{
213 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fd.append('content',content || '');
214 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fossil.fetch('fileedit_preview',{
206 215 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
payload: fd,
207 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- onload: updateView
216 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ onload: callback,
217 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ onerror: (e)=>{
218 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fossil.fetch.onerror(e);
219 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ callback("Error fetching preview: "+e);
220 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
208 221 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
});
209 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return this;
210 222 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
211 223 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
224 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
212 225 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/**
213 226 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Fetches the content diff based on the contents and settings of this
214 227 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
page's input fields, and updates the UI with the diff view.
215 228 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
216 229 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Returns this object, noting that the operation is async.
217 230 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
218 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- F.page.diff = function(sbs){
231 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ P.diff = function(sbs){
219 232 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(!this.finfo){
220 233 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
F.error("No content is loaded.");
221 234 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return this;
222 235 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
223 236 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const content = this.e.taEditor.value,
@@ -252,11 +265,11 @@
252 265 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Performs an async commit based on the form contents and updates
253 266 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
the UI.
254 267 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
255 268 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Returns this object.
256 269 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
257 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- F.page.commit = function f(){
270 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ P.commit = function f(){
258 271 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(!this.finfo){
259 272 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
F.error("No content is loaded.");
260 273 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return this;
261 274 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
262 275 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const self = this;
@@ -282,11 +295,11 @@
282 295 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
];
283 296 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(!c.dryRun){
284 297 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
msg.push('Re-activating dry-run mode.');
285 298 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
self.e.taComment.value = '';
286 299 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
cbDryRun.checked = true;
287 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- F.page.updateVersion(filename, c.uuid);
300 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ P.updateVersion(filename, c.uuid);
288 301 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
289 302 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
F.message.apply(fossil, msg);
290 303 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
self.tabs.switchToTab(self.e.tabs.commit);
291 304 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
292 305 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -328,6 +341,7 @@
328 341 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
onload: f.updateView
329 342 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
});
330 343 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return this;
331 344 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
332 345 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
346 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
333 347 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
})(window.fossil);
334 348 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!