Fossil SCM

Moved chat.js to fossil.page.chat.js, for consistency with the other single-page apps and to emphasize that it is not to be loaded on arbitrary pages. Changed chat's startup to wait until the page on-load event to avoid a related timing issue.

stephan 2021-09-28 09:45 trunk
Commit 3ec8c6c04deccf97bedff069a1f24a0e35f4313ecb88f67fcc576fd237b2d062
+2 -3
--- src/chat.c
+++ src/chat.c
@@ -216,24 +216,23 @@
216216
/* Always in-line the javascript for the chat page */
217217
@ <script nonce="%h(style_nonce())">/* chat.c:%d(__LINE__) */
218218
/* We need an onload handler to ensure that window.fossil is
219219
initialized before the chat init code runs. */
220220
@ window.addEventListener('load', function(){
221
- @ document.body.classList.add('chat')
221
+ @ document.body.classList.add('chat');
222222
@ /*^^^for skins which add their own BODY tag */;
223223
@ window.fossil.config.chat = {
224224
@ fromcli: %h(PB("cli")?"true":"false"),
225225
@ alertSound: "%h(zAlert)",
226226
@ initSize: %d(db_get_int("chat-initial-history",50)),
227227
@ imagesInline: !!%d(db_get_boolean("chat-inline-images",1))
228228
@ };
229229
ajax_emit_js_preview_modes(0);
230230
chat_emit_alert_list();
231
- cgi_append_content(builtin_text("chat.js"),-1);
232231
@ }, false);
233232
@ </script>
234
-
233
+ builtin_request_js("fossil.page.chat.js");
235234
style_finish_page();
236235
}
237236
238237
/* Definition of repository tables used by chat
239238
*/
240239
241240
DELETED src/chat.js
242241
ADDED src/fossil.page.chat.js
--- src/chat.c
+++ src/chat.c
@@ -216,24 +216,23 @@
216 /* Always in-line the javascript for the chat page */
217 @ <script nonce="%h(style_nonce())">/* chat.c:%d(__LINE__) */
218 /* We need an onload handler to ensure that window.fossil is
219 initialized before the chat init code runs. */
220 @ window.addEventListener('load', function(){
221 @ document.body.classList.add('chat')
222 @ /*^^^for skins which add their own BODY tag */;
223 @ window.fossil.config.chat = {
224 @ fromcli: %h(PB("cli")?"true":"false"),
225 @ alertSound: "%h(zAlert)",
226 @ initSize: %d(db_get_int("chat-initial-history",50)),
227 @ imagesInline: !!%d(db_get_boolean("chat-inline-images",1))
228 @ };
229 ajax_emit_js_preview_modes(0);
230 chat_emit_alert_list();
231 cgi_append_content(builtin_text("chat.js"),-1);
232 @ }, false);
233 @ </script>
234
235 style_finish_page();
236 }
237
238 /* Definition of repository tables used by chat
239 */
240
241 ELETED src/chat.js
242 DDED src/fossil.page.chat.js
--- src/chat.c
+++ src/chat.c
@@ -216,24 +216,23 @@
216 /* Always in-line the javascript for the chat page */
217 @ <script nonce="%h(style_nonce())">/* chat.c:%d(__LINE__) */
218 /* We need an onload handler to ensure that window.fossil is
219 initialized before the chat init code runs. */
220 @ window.addEventListener('load', function(){
221 @ document.body.classList.add('chat');
222 @ /*^^^for skins which add their own BODY tag */;
223 @ window.fossil.config.chat = {
224 @ fromcli: %h(PB("cli")?"true":"false"),
225 @ alertSound: "%h(zAlert)",
226 @ initSize: %d(db_get_int("chat-initial-history",50)),
227 @ imagesInline: !!%d(db_get_boolean("chat-inline-images",1))
228 @ };
229 ajax_emit_js_preview_modes(0);
230 chat_emit_alert_list();
 
231 @ }, false);
232 @ </script>
233 builtin_request_js("fossil.page.chat.js");
234 style_finish_page();
235 }
236
237 /* Definition of repository tables used by chat
238 */
239
240 ELETED src/chat.js
241 DDED src/fossil.page.chat.js
D src/chat.js
-19
--- a/src/chat.js
+++ b/src/chat.js
@@ -1,19 +0,0 @@
1
-f =tru//li.push( d.tf =tru//li.push( d.t/li.pusbody > div.header'),
2
- body > div.mainmenu'),'),
3
- body > #hbdrop'),
4
- body > div.footer')
5
- ];
6
- const contentArea = E1('div.content')divf =tru//li.push( d.t E1('#chat-clear-filterD8@1R8,H:: {
7
- user:8@8Lu,S: activeTag: undefined,
8
- f@1ds,p: return !this.activeTag || this.activeTag===uname;
9
-N@Bul,9:matchElemP@IXT,x: return !this.activeTag || this.activeTag===e.dataset.xfromN@IvG,I:,
10
- hashtag:8@8Lu,u: activeTag: undefined,
11
- match: function(tag){J@JU~,f: !this.activeTag || tag===this.activeTag;
12
-N@Bul,9:matchElemP@IXT,O: return !this.activeTag8@HYy,11: || !!e.querySelector('[data-hashtag="'+this.activeTag+'"]'O@A5G,11:,
13
- current: undefined/*gets set to current active filter*/J@4n~,vt@1fm,12:this.filter.current
14
- && !this.filter.current.matchElem(eoe@2bG,3:[];K@G8C,H@KVF,5:
15
- 8@35A,J:["body > div.headerG@120,K:"body > div.mainmenuG@120,I:"body > div.footerG@120,B:"#debugMsg"9@H1C,G: ].join(',')
16
-A@BVF,a:).for'+this.activeTag+'}sh( animate(eMsg}) )console.debug("hashtag = ",tagState:{div.mainmenu'),'),
17
-f =tru//li.push( d.tf d.tf =tru//li.push( d.t/li.pusbodreturn this.activeUser=!this.filterStatState.activeUser===u){
18
-uSpanthis.filterState.activeUserconst mw');
19
- tag:8@8Lu,u: activeTag: undef =tru//li.push( d.tf =tru//li.
--- a/src/chat.js
+++ b/src/chat.js
@@ -1,19 +0,0 @@
1 f =tru//li.push( d.tf =tru//li.push( d.t/li.pusbody > div.header'),
2 body > div.mainmenu'),'),
3 body > #hbdrop'),
4 body > div.footer')
5 ];
6 const contentArea = E1('div.content')divf =tru//li.push( d.t E1('#chat-clear-filterD8@1R8,H:: {
7 user:8@8Lu,S: activeTag: undefined,
8 f@1ds,p: return !this.activeTag || this.activeTag===uname;
9 N@Bul,9:matchElemP@IXT,x: return !this.activeTag || this.activeTag===e.dataset.xfromN@IvG,I:,
10 hashtag:8@8Lu,u: activeTag: undefined,
11 match: function(tag){J@JU~,f: !this.activeTag || tag===this.activeTag;
12 N@Bul,9:matchElemP@IXT,O: return !this.activeTag8@HYy,11: || !!e.querySelector('[data-hashtag="'+this.activeTag+'"]'O@A5G,11:,
13 current: undefined/*gets set to current active filter*/J@4n~,vt@1fm,12:this.filter.current
14 && !this.filter.current.matchElem(eoe@2bG,3:[];K@G8C,H@KVF,5:
15 8@35A,J:["body > div.headerG@120,K:"body > div.mainmenuG@120,I:"body > div.footerG@120,B:"#debugMsg"9@H1C,G: ].join(',')
16 A@BVF,a:).for'+this.activeTag+'}sh( animate(eMsg}) )console.debug("hashtag = ",tagState:{div.mainmenu'),'),
17 f =tru//li.push( d.tf d.tf =tru//li.push( d.t/li.pusbodreturn this.activeUser=!this.filterStatState.activeUser===u){
18 uSpanthis.filterState.activeUserconst mw');
19 tag:8@8Lu,u: activeTag: undef =tru//li.push( d.tf =tru//li.
--- a/src/chat.js
+++ b/src/chat.js
@@ -1,19 +0,0 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
--- a/src/fossil.page.chat.js
+++ b/src/fossil.page.chat.js
@@ -1,5 +1,5 @@
11
f =tru//li.push( d.tf =tru//li.push( d.t/li.pusbody > div.header'),
2
- body > div.mainmenu'),'),
2
+ body > div.mainmenu'),
33
body > #hbdrop'),
44
body > div.footer')
55
];
@@ -13,7 +13,37 @@
1313
current: undefined/*gets set to current active filter*/J@4n~,vt@1fm,12:this.filter.current
1414
&& !this.filter.current.matchElem(eoe@2bG,3:[];K@G8C,H@KVF,5:
1515
8@35A,J:["body > div.headerG@120,K:"body > div.mainmenuG@120,I:"body > div.footerG@120,B:"#debugMsg"9@H1C,G: ].join(',')
16
-A@BVF,a:).for'+this.activeTag+'}sh( animate(eMsg}) )console.debug("hashtag = ",tagState:{div.mainmenu'),'),
17
-f =tru//li.push( d.tf d.tf =tru//li.push( d.t/li.pusbodreturn this.activeUser=!this.filterStatState.activeUser===u){
18
-uSpanthis.filterState.activeUserconst mw');
19
- tag:8@8Lu,u: activeTag: undef =tru//li.push( d.tf =tru//li.
16
+A@BVF,a:).forEach((e)=>f.elemsToToggle.push(e1L6@3Ql,8:D.removeN@5vE,Ha@4mY,J:.user.abcl =;W,By@53h,15:
17
+ For each Chat.MessageWidget element (X.message-widget) for
18
+9@9NF,ubclreturns true, the 'hidden' class isA@5NB,5A:removed from that message. For all others, 'hidden' is
19
+ added. If predicate is falsy, 'hidden' is removed from all
20
+ elements. After filtering, it will try to scroll the last
21
+ not-filsage into view, but exactly where it
22
+ scrolls into view (top, middle, button) is
23
+ unpredictableM@5GB,2C:
24
+
25
+ The argument may optionally be an object from this.filter,
26
+ in which case its matchElem() method becomes the predicate.
27
+
28
+9@Jkj,2i:Note that this does not encapsulate certain filter-specific
29
+ logic which applies changes to elements other than the
30
+ main message list or this.e.btnClearFiltJ@3O0,b:applyMessageFilter: function(predicateB@HBh,R@AzV,J@5aF,o:console.debug("applyMessageFilter(",predicate,")");9@3rt,E:if(!predicate)Q@3VT,4:this1c@5bA0 ?){} : (function fif('function'!==typeof predicateH@BFG,~:&& predicate.matchElem){
31
+ /* assume Chat.filter objectK@77z,F:p = predicate;
32
+A@Af6,T:predicate = (e)=>p.matchElem(M@2Ul,B:if(predicatJ@6_l,l@5bB,U@KV~,K: if(predicate(eG@J_W,3: eJ@Jpy,I@HoF,H: eLast = e;
33
+X@AoW,Z@2bU,S@5gS,a: D.removeClass(this.e.btnClearFilterL@9x~,6:}
34
+ n@DS9,1Q@5gz,e@4dl,A:Clears theG@5X0,X: filter, if any, a */
35
+ if(!f.elemsToCount){
36
+d.tf =tru//li.f =tru//li.push(ggle.push(e1L6@3Ql,8:D.removggle.push(e1L6@3Ql,8:D.removeN@5v#hbdrop'),
37
+ d.tf =tru//li.push( d.t/li.f =tru//li.pumessage-submit'),
38
+ inputSingsingle'),
39
+inputMultimulti'),
40
+ inputCpreview-buttonvaluevalue-clear-filterD8@1R8,Hf =tru//li.push( d.tf =tru//li.push( d.t/li.pusbody > div.header'),
41
+ body > div.mainmenu'),
42
+ body > #hbdrop'),
43
+ body > div.footer')
44
+ ];
45
+ const contentArea = E1('div.content')divf =tru//li.push( d.t E1('#chat-clear-filterD8@1R8,H:: {
46
+ user:8@8Lu,S: acCurrent-clear-filterD8@1R8,H:f =tru//li.push( d.tToggleSingleMulticonst old = this.e.inputCurrentcontentArea = E1('f =tru//li.inputCurrent = this.e.inputMulti;inputLinesingle-lineul,9:matchElemP@IXTf =tru//li.push( d.tf =tru//li.pusState:{
47
+ activeUser =tru//li.push( d.tf tf =t return this.activeUser=!this.filterS.add(State.activeUserthis.filterState.activeUsethis.animate(, "anim-flip-v"Chat.e.inputSingleif(13===ev.keyCode/*ENTER*/){ }
48
+ }inputMultiif(ev.ctrlKey && }
49
+ }
--- a/src/fossil.page.chat.js
+++ b/src/fossil.page.chat.js
@@ -1,5 +1,5 @@
1 f =tru//li.push( d.tf =tru//li.push( d.t/li.pusbody > div.header'),
2 body > div.mainmenu'),'),
3 body > #hbdrop'),
4 body > div.footer')
5 ];
@@ -13,7 +13,37 @@
13 current: undefined/*gets set to current active filter*/J@4n~,vt@1fm,12:this.filter.current
14 && !this.filter.current.matchElem(eoe@2bG,3:[];K@G8C,H@KVF,5:
15 8@35A,J:["body > div.headerG@120,K:"body > div.mainmenuG@120,I:"body > div.footerG@120,B:"#debugMsg"9@H1C,G: ].join(',')
16 A@BVF,a:).for'+this.activeTag+'}sh( animate(eMsg}) )console.debug("hashtag = ",tagState:{div.mainmenu'),'),
17 f =tru//li.push( d.tf d.tf =tru//li.push( d.t/li.pusbodreturn this.activeUser=!this.filterStatState.activeUser===u){
18 uSpanthis.filterState.activeUserconst mw');
19 tag:8@8Lu,u: activeTag: undef =tru//li.push( d.tf =tru//li.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
--- a/src/fossil.page.chat.js
+++ b/src/fossil.page.chat.js
@@ -1,5 +1,5 @@
1 f =tru//li.push( d.tf =tru//li.push( d.t/li.pusbody > div.header'),
2 body > div.mainmenu'),
3 body > #hbdrop'),
4 body > div.footer')
5 ];
@@ -13,7 +13,37 @@
13 current: undefined/*gets set to current active filter*/J@4n~,vt@1fm,12:this.filter.current
14 && !this.filter.current.matchElem(eoe@2bG,3:[];K@G8C,H@KVF,5:
15 8@35A,J:["body > div.headerG@120,K:"body > div.mainmenuG@120,I:"body > div.footerG@120,B:"#debugMsg"9@H1C,G: ].join(',')
16 A@BVF,a:).forEach((e)=>f.elemsToToggle.push(e1L6@3Ql,8:D.removeN@5vE,Ha@4mY,J:.user.abcl =;W,By@53h,15:
17 For each Chat.MessageWidget element (X.message-widget) for
18 9@9NF,ubclreturns true, the 'hidden' class isA@5NB,5A:removed from that message. For all others, 'hidden' is
19 added. If predicate is falsy, 'hidden' is removed from all
20 elements. After filtering, it will try to scroll the last
21 not-filsage into view, but exactly where it
22 scrolls into view (top, middle, button) is
23 unpredictableM@5GB,2C:
24
25 The argument may optionally be an object from this.filter,
26 in which case its matchElem() method becomes the predicate.
27
28 9@Jkj,2i:Note that this does not encapsulate certain filter-specific
29 logic which applies changes to elements other than the
30 main message list or this.e.btnClearFiltJ@3O0,b:applyMessageFilter: function(predicateB@HBh,R@AzV,J@5aF,o:console.debug("applyMessageFilter(",predicate,")");9@3rt,E:if(!predicate)Q@3VT,4:this1c@5bA0 ?){} : (function fif('function'!==typeof predicateH@BFG,~:&& predicate.matchElem){
31 /* assume Chat.filter objectK@77z,F:p = predicate;
32 A@Af6,T:predicate = (e)=>p.matchElem(M@2Ul,B:if(predicatJ@6_l,l@5bB,U@KV~,K: if(predicate(eG@J_W,3: eJ@Jpy,I@HoF,H: eLast = e;
33 X@AoW,Z@2bU,S@5gS,a: D.removeClass(this.e.btnClearFilterL@9x~,6:}
34 n@DS9,1Q@5gz,e@4dl,A:Clears theG@5X0,X: filter, if any, a */
35 if(!f.elemsToCount){
36 d.tf =tru//li.f =tru//li.push(ggle.push(e1L6@3Ql,8:D.removggle.push(e1L6@3Ql,8:D.removeN@5v#hbdrop'),
37 d.tf =tru//li.push( d.t/li.f =tru//li.pumessage-submit'),
38 inputSingsingle'),
39 inputMultimulti'),
40 inputCpreview-buttonvaluevalue-clear-filterD8@1R8,Hf =tru//li.push( d.tf =tru//li.push( d.t/li.pusbody > div.header'),
41 body > div.mainmenu'),
42 body > #hbdrop'),
43 body > div.footer')
44 ];
45 const contentArea = E1('div.content')divf =tru//li.push( d.t E1('#chat-clear-filterD8@1R8,H:: {
46 user:8@8Lu,S: acCurrent-clear-filterD8@1R8,H:f =tru//li.push( d.tToggleSingleMulticonst old = this.e.inputCurrentcontentArea = E1('f =tru//li.inputCurrent = this.e.inputMulti;inputLinesingle-lineul,9:matchElemP@IXTf =tru//li.push( d.tf =tru//li.pusState:{
47 activeUser =tru//li.push( d.tf tf =t return this.activeUser=!this.filterS.add(State.activeUserthis.filterState.activeUsethis.animate(, "anim-flip-v"Chat.e.inputSingleif(13===ev.keyCode/*ENTER*/){ }
48 }inputMultiif(ev.ctrlKey && }
49 }
+1 -1
--- src/main.mk
+++ src/main.mk
@@ -214,11 +214,10 @@
214214
$(SRCDIR)/accordion.js \
215215
$(SRCDIR)/alerts/bflat2.wav \
216216
$(SRCDIR)/alerts/bflat3.wav \
217217
$(SRCDIR)/alerts/bloop.wav \
218218
$(SRCDIR)/alerts/plunk.wav \
219
- $(SRCDIR)/chat.js \
220219
$(SRCDIR)/ci_edit.js \
221220
$(SRCDIR)/copybtn.js \
222221
$(SRCDIR)/default.css \
223222
$(SRCDIR)/diff.js \
224223
$(SRCDIR)/diff.tcl \
@@ -229,10 +228,11 @@
229228
$(SRCDIR)/fossil.diff.js \
230229
$(SRCDIR)/fossil.dom.js \
231230
$(SRCDIR)/fossil.fetch.js \
232231
$(SRCDIR)/fossil.numbered-lines.js \
233232
$(SRCDIR)/fossil.page.brlist.js \
233
+ $(SRCDIR)/fossil.page.chat.js \
234234
$(SRCDIR)/fossil.page.fileedit.js \
235235
$(SRCDIR)/fossil.page.forumpost.js \
236236
$(SRCDIR)/fossil.page.pikchrshow.js \
237237
$(SRCDIR)/fossil.page.whistory.js \
238238
$(SRCDIR)/fossil.page.wikiedit.js \
239239
--- src/main.mk
+++ src/main.mk
@@ -214,11 +214,10 @@
214 $(SRCDIR)/accordion.js \
215 $(SRCDIR)/alerts/bflat2.wav \
216 $(SRCDIR)/alerts/bflat3.wav \
217 $(SRCDIR)/alerts/bloop.wav \
218 $(SRCDIR)/alerts/plunk.wav \
219 $(SRCDIR)/chat.js \
220 $(SRCDIR)/ci_edit.js \
221 $(SRCDIR)/copybtn.js \
222 $(SRCDIR)/default.css \
223 $(SRCDIR)/diff.js \
224 $(SRCDIR)/diff.tcl \
@@ -229,10 +228,11 @@
229 $(SRCDIR)/fossil.diff.js \
230 $(SRCDIR)/fossil.dom.js \
231 $(SRCDIR)/fossil.fetch.js \
232 $(SRCDIR)/fossil.numbered-lines.js \
233 $(SRCDIR)/fossil.page.brlist.js \
 
234 $(SRCDIR)/fossil.page.fileedit.js \
235 $(SRCDIR)/fossil.page.forumpost.js \
236 $(SRCDIR)/fossil.page.pikchrshow.js \
237 $(SRCDIR)/fossil.page.whistory.js \
238 $(SRCDIR)/fossil.page.wikiedit.js \
239
--- src/main.mk
+++ src/main.mk
@@ -214,11 +214,10 @@
214 $(SRCDIR)/accordion.js \
215 $(SRCDIR)/alerts/bflat2.wav \
216 $(SRCDIR)/alerts/bflat3.wav \
217 $(SRCDIR)/alerts/bloop.wav \
218 $(SRCDIR)/alerts/plunk.wav \
 
219 $(SRCDIR)/ci_edit.js \
220 $(SRCDIR)/copybtn.js \
221 $(SRCDIR)/default.css \
222 $(SRCDIR)/diff.js \
223 $(SRCDIR)/diff.tcl \
@@ -229,10 +228,11 @@
228 $(SRCDIR)/fossil.diff.js \
229 $(SRCDIR)/fossil.dom.js \
230 $(SRCDIR)/fossil.fetch.js \
231 $(SRCDIR)/fossil.numbered-lines.js \
232 $(SRCDIR)/fossil.page.brlist.js \
233 $(SRCDIR)/fossil.page.chat.js \
234 $(SRCDIR)/fossil.page.fileedit.js \
235 $(SRCDIR)/fossil.page.forumpost.js \
236 $(SRCDIR)/fossil.page.pikchrshow.js \
237 $(SRCDIR)/fossil.page.whistory.js \
238 $(SRCDIR)/fossil.page.wikiedit.js \
239
--- win/Makefile.mingw
+++ win/Makefile.mingw
@@ -623,11 +623,10 @@
623623
$(SRCDIR)/accordion.js \
624624
$(SRCDIR)/alerts/bflat2.wav \
625625
$(SRCDIR)/alerts/bflat3.wav \
626626
$(SRCDIR)/alerts/bloop.wav \
627627
$(SRCDIR)/alerts/plunk.wav \
628
- $(SRCDIR)/chat.js \
629628
$(SRCDIR)/ci_edit.js \
630629
$(SRCDIR)/copybtn.js \
631630
$(SRCDIR)/default.css \
632631
$(SRCDIR)/diff.js \
633632
$(SRCDIR)/diff.tcl \
@@ -638,10 +637,11 @@
638637
$(SRCDIR)/fossil.diff.js \
639638
$(SRCDIR)/fossil.dom.js \
640639
$(SRCDIR)/fossil.fetch.js \
641640
$(SRCDIR)/fossil.numbered-lines.js \
642641
$(SRCDIR)/fossil.page.brlist.js \
642
+ $(SRCDIR)/fossil.page.chat.js \
643643
$(SRCDIR)/fossil.page.fileedit.js \
644644
$(SRCDIR)/fossil.page.forumpost.js \
645645
$(SRCDIR)/fossil.page.pikchrshow.js \
646646
$(SRCDIR)/fossil.page.whistory.js \
647647
$(SRCDIR)/fossil.page.wikiedit.js \
648648
--- win/Makefile.mingw
+++ win/Makefile.mingw
@@ -623,11 +623,10 @@
623 $(SRCDIR)/accordion.js \
624 $(SRCDIR)/alerts/bflat2.wav \
625 $(SRCDIR)/alerts/bflat3.wav \
626 $(SRCDIR)/alerts/bloop.wav \
627 $(SRCDIR)/alerts/plunk.wav \
628 $(SRCDIR)/chat.js \
629 $(SRCDIR)/ci_edit.js \
630 $(SRCDIR)/copybtn.js \
631 $(SRCDIR)/default.css \
632 $(SRCDIR)/diff.js \
633 $(SRCDIR)/diff.tcl \
@@ -638,10 +637,11 @@
638 $(SRCDIR)/fossil.diff.js \
639 $(SRCDIR)/fossil.dom.js \
640 $(SRCDIR)/fossil.fetch.js \
641 $(SRCDIR)/fossil.numbered-lines.js \
642 $(SRCDIR)/fossil.page.brlist.js \
 
643 $(SRCDIR)/fossil.page.fileedit.js \
644 $(SRCDIR)/fossil.page.forumpost.js \
645 $(SRCDIR)/fossil.page.pikchrshow.js \
646 $(SRCDIR)/fossil.page.whistory.js \
647 $(SRCDIR)/fossil.page.wikiedit.js \
648
--- win/Makefile.mingw
+++ win/Makefile.mingw
@@ -623,11 +623,10 @@
623 $(SRCDIR)/accordion.js \
624 $(SRCDIR)/alerts/bflat2.wav \
625 $(SRCDIR)/alerts/bflat3.wav \
626 $(SRCDIR)/alerts/bloop.wav \
627 $(SRCDIR)/alerts/plunk.wav \
 
628 $(SRCDIR)/ci_edit.js \
629 $(SRCDIR)/copybtn.js \
630 $(SRCDIR)/default.css \
631 $(SRCDIR)/diff.js \
632 $(SRCDIR)/diff.tcl \
@@ -638,10 +637,11 @@
637 $(SRCDIR)/fossil.diff.js \
638 $(SRCDIR)/fossil.dom.js \
639 $(SRCDIR)/fossil.fetch.js \
640 $(SRCDIR)/fossil.numbered-lines.js \
641 $(SRCDIR)/fossil.page.brlist.js \
642 $(SRCDIR)/fossil.page.chat.js \
643 $(SRCDIR)/fossil.page.fileedit.js \
644 $(SRCDIR)/fossil.page.forumpost.js \
645 $(SRCDIR)/fossil.page.pikchrshow.js \
646 $(SRCDIR)/fossil.page.whistory.js \
647 $(SRCDIR)/fossil.page.wikiedit.js \
648
--- win/Makefile.msc
+++ win/Makefile.msc
@@ -565,11 +565,10 @@
565565
"$(SRCDIR)\accordion.js" \
566566
"$(SRCDIR)\alerts\bflat2.wav" \
567567
"$(SRCDIR)\alerts\bflat3.wav" \
568568
"$(SRCDIR)\alerts\bloop.wav" \
569569
"$(SRCDIR)\alerts\plunk.wav" \
570
- "$(SRCDIR)\chat.js" \
571570
"$(SRCDIR)\ci_edit.js" \
572571
"$(SRCDIR)\copybtn.js" \
573572
"$(SRCDIR)\default.css" \
574573
"$(SRCDIR)\diff.js" \
575574
"$(SRCDIR)\diff.tcl" \
@@ -580,10 +579,11 @@
580579
"$(SRCDIR)\fossil.diff.js" \
581580
"$(SRCDIR)\fossil.dom.js" \
582581
"$(SRCDIR)\fossil.fetch.js" \
583582
"$(SRCDIR)\fossil.numbered-lines.js" \
584583
"$(SRCDIR)\fossil.page.brlist.js" \
584
+ "$(SRCDIR)\fossil.page.chat.js" \
585585
"$(SRCDIR)\fossil.page.fileedit.js" \
586586
"$(SRCDIR)\fossil.page.forumpost.js" \
587587
"$(SRCDIR)\fossil.page.pikchrshow.js" \
588588
"$(SRCDIR)\fossil.page.whistory.js" \
589589
"$(SRCDIR)\fossil.page.wikiedit.js" \
@@ -1174,11 +1174,10 @@
11741174
echo "$(SRCDIR)\accordion.js" >> $@
11751175
echo "$(SRCDIR)\alerts/bflat2.wav" >> $@
11761176
echo "$(SRCDIR)\alerts/bflat3.wav" >> $@
11771177
echo "$(SRCDIR)\alerts/bloop.wav" >> $@
11781178
echo "$(SRCDIR)\alerts/plunk.wav" >> $@
1179
- echo "$(SRCDIR)\chat.js" >> $@
11801179
echo "$(SRCDIR)\ci_edit.js" >> $@
11811180
echo "$(SRCDIR)\copybtn.js" >> $@
11821181
echo "$(SRCDIR)\default.css" >> $@
11831182
echo "$(SRCDIR)\diff.js" >> $@
11841183
echo "$(SRCDIR)\diff.tcl" >> $@
@@ -1189,10 +1188,11 @@
11891188
echo "$(SRCDIR)\fossil.diff.js" >> $@
11901189
echo "$(SRCDIR)\fossil.dom.js" >> $@
11911190
echo "$(SRCDIR)\fossil.fetch.js" >> $@
11921191
echo "$(SRCDIR)\fossil.numbered-lines.js" >> $@
11931192
echo "$(SRCDIR)\fossil.page.brlist.js" >> $@
1193
+ echo "$(SRCDIR)\fossil.page.chat.js" >> $@
11941194
echo "$(SRCDIR)\fossil.page.fileedit.js" >> $@
11951195
echo "$(SRCDIR)\fossil.page.forumpost.js" >> $@
11961196
echo "$(SRCDIR)\fossil.page.pikchrshow.js" >> $@
11971197
echo "$(SRCDIR)\fossil.page.whistory.js" >> $@
11981198
echo "$(SRCDIR)\fossil.page.wikiedit.js" >> $@
11991199
--- win/Makefile.msc
+++ win/Makefile.msc
@@ -565,11 +565,10 @@
565 "$(SRCDIR)\accordion.js" \
566 "$(SRCDIR)\alerts\bflat2.wav" \
567 "$(SRCDIR)\alerts\bflat3.wav" \
568 "$(SRCDIR)\alerts\bloop.wav" \
569 "$(SRCDIR)\alerts\plunk.wav" \
570 "$(SRCDIR)\chat.js" \
571 "$(SRCDIR)\ci_edit.js" \
572 "$(SRCDIR)\copybtn.js" \
573 "$(SRCDIR)\default.css" \
574 "$(SRCDIR)\diff.js" \
575 "$(SRCDIR)\diff.tcl" \
@@ -580,10 +579,11 @@
580 "$(SRCDIR)\fossil.diff.js" \
581 "$(SRCDIR)\fossil.dom.js" \
582 "$(SRCDIR)\fossil.fetch.js" \
583 "$(SRCDIR)\fossil.numbered-lines.js" \
584 "$(SRCDIR)\fossil.page.brlist.js" \
 
585 "$(SRCDIR)\fossil.page.fileedit.js" \
586 "$(SRCDIR)\fossil.page.forumpost.js" \
587 "$(SRCDIR)\fossil.page.pikchrshow.js" \
588 "$(SRCDIR)\fossil.page.whistory.js" \
589 "$(SRCDIR)\fossil.page.wikiedit.js" \
@@ -1174,11 +1174,10 @@
1174 echo "$(SRCDIR)\accordion.js" >> $@
1175 echo "$(SRCDIR)\alerts/bflat2.wav" >> $@
1176 echo "$(SRCDIR)\alerts/bflat3.wav" >> $@
1177 echo "$(SRCDIR)\alerts/bloop.wav" >> $@
1178 echo "$(SRCDIR)\alerts/plunk.wav" >> $@
1179 echo "$(SRCDIR)\chat.js" >> $@
1180 echo "$(SRCDIR)\ci_edit.js" >> $@
1181 echo "$(SRCDIR)\copybtn.js" >> $@
1182 echo "$(SRCDIR)\default.css" >> $@
1183 echo "$(SRCDIR)\diff.js" >> $@
1184 echo "$(SRCDIR)\diff.tcl" >> $@
@@ -1189,10 +1188,11 @@
1189 echo "$(SRCDIR)\fossil.diff.js" >> $@
1190 echo "$(SRCDIR)\fossil.dom.js" >> $@
1191 echo "$(SRCDIR)\fossil.fetch.js" >> $@
1192 echo "$(SRCDIR)\fossil.numbered-lines.js" >> $@
1193 echo "$(SRCDIR)\fossil.page.brlist.js" >> $@
 
1194 echo "$(SRCDIR)\fossil.page.fileedit.js" >> $@
1195 echo "$(SRCDIR)\fossil.page.forumpost.js" >> $@
1196 echo "$(SRCDIR)\fossil.page.pikchrshow.js" >> $@
1197 echo "$(SRCDIR)\fossil.page.whistory.js" >> $@
1198 echo "$(SRCDIR)\fossil.page.wikiedit.js" >> $@
1199
--- win/Makefile.msc
+++ win/Makefile.msc
@@ -565,11 +565,10 @@
565 "$(SRCDIR)\accordion.js" \
566 "$(SRCDIR)\alerts\bflat2.wav" \
567 "$(SRCDIR)\alerts\bflat3.wav" \
568 "$(SRCDIR)\alerts\bloop.wav" \
569 "$(SRCDIR)\alerts\plunk.wav" \
 
570 "$(SRCDIR)\ci_edit.js" \
571 "$(SRCDIR)\copybtn.js" \
572 "$(SRCDIR)\default.css" \
573 "$(SRCDIR)\diff.js" \
574 "$(SRCDIR)\diff.tcl" \
@@ -580,10 +579,11 @@
579 "$(SRCDIR)\fossil.diff.js" \
580 "$(SRCDIR)\fossil.dom.js" \
581 "$(SRCDIR)\fossil.fetch.js" \
582 "$(SRCDIR)\fossil.numbered-lines.js" \
583 "$(SRCDIR)\fossil.page.brlist.js" \
584 "$(SRCDIR)\fossil.page.chat.js" \
585 "$(SRCDIR)\fossil.page.fileedit.js" \
586 "$(SRCDIR)\fossil.page.forumpost.js" \
587 "$(SRCDIR)\fossil.page.pikchrshow.js" \
588 "$(SRCDIR)\fossil.page.whistory.js" \
589 "$(SRCDIR)\fossil.page.wikiedit.js" \
@@ -1174,11 +1174,10 @@
1174 echo "$(SRCDIR)\accordion.js" >> $@
1175 echo "$(SRCDIR)\alerts/bflat2.wav" >> $@
1176 echo "$(SRCDIR)\alerts/bflat3.wav" >> $@
1177 echo "$(SRCDIR)\alerts/bloop.wav" >> $@
1178 echo "$(SRCDIR)\alerts/plunk.wav" >> $@
 
1179 echo "$(SRCDIR)\ci_edit.js" >> $@
1180 echo "$(SRCDIR)\copybtn.js" >> $@
1181 echo "$(SRCDIR)\default.css" >> $@
1182 echo "$(SRCDIR)\diff.js" >> $@
1183 echo "$(SRCDIR)\diff.tcl" >> $@
@@ -1189,10 +1188,11 @@
1188 echo "$(SRCDIR)\fossil.diff.js" >> $@
1189 echo "$(SRCDIR)\fossil.dom.js" >> $@
1190 echo "$(SRCDIR)\fossil.fetch.js" >> $@
1191 echo "$(SRCDIR)\fossil.numbered-lines.js" >> $@
1192 echo "$(SRCDIR)\fossil.page.brlist.js" >> $@
1193 echo "$(SRCDIR)\fossil.page.chat.js" >> $@
1194 echo "$(SRCDIR)\fossil.page.fileedit.js" >> $@
1195 echo "$(SRCDIR)\fossil.page.forumpost.js" >> $@
1196 echo "$(SRCDIR)\fossil.page.pikchrshow.js" >> $@
1197 echo "$(SRCDIR)\fossil.page.whistory.js" >> $@
1198 echo "$(SRCDIR)\fossil.page.wikiedit.js" >> $@
1199

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button