Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
| Comment: | Provide for two different chat-alert sounds in the /Admin/Chat configuration menu. |
|---|---|
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA3-256: |
d8e6994350396da1a6cf0749b8a87fdc |
| User & Date: | drh 2021-01-05 19:05:46.546 |
Context
|
2021-01-05
| ||
| 19:23 | Two new alert sounds. check-in: 35b07813a8 user: drh tags: trunk | |
| 19:05 | Provide for two different chat-alert sounds in the /Admin/Chat configuration menu. check-in: d8e6994350 user: drh tags: trunk | |
| 15:11 | Fix the /file page so that it shows the text of files that are not identified as special binary types. check-in: 1e00898949 user: drh tags: trunk | |
Changes
Name change from src/alerts/b-flat.wav to src/alerts/bflat3.wav.
cannot compute difference between binary files
Changes to src/chat.c.
| ︙ | ︙ | |||
123 124 125 126 127 128 129 130 131 132 133 134 135 136 | ** up and returning an empty reply. The default value is about 7 minutes, ** which works well for Fossil behind the althttpd web server. Other ** server environments may choose a longer or shorter delay. ** ** For maximum efficiency, it is best to choose the longest delay that ** does not cause timeouts in intermediate proxies or web server. */ /* ** WEBPAGE: chat ** ** Start up a browser-based chat session. ** ** This is the main page that humans use to access the chatroom. Simply ** point a web-browser at /chat and the screen fills with the latest | > > > > > > | 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 | ** up and returning an empty reply. The default value is about 7 minutes, ** which works well for Fossil behind the althttpd web server. Other ** server environments may choose a longer or shorter delay. ** ** For maximum efficiency, it is best to choose the longest delay that ** does not cause timeouts in intermediate proxies or web server. */ /* ** SETTING: chat-alert-sound width=10 ** ** This is the name of the builtin sound file to use for the alert tone. ** The value must be the name of one of a builtin WAV file. */ /* ** WEBPAGE: chat ** ** Start up a browser-based chat session. ** ** This is the main page that humans use to access the chatroom. Simply ** point a web-browser at /chat and the screen fills with the latest |
| ︙ | ︙ | |||
703 704 705 706 707 708 709 |
**
** Return the sound file that should be played when a new chat message
** arrives.
*/
void chat_audio_alert(void){
Blob audio = empty_blob;
int n = 0;
| | | | 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 |
**
** Return the sound file that should be played when a new chat message
** arrives.
*/
void chat_audio_alert(void){
Blob audio = empty_blob;
int n = 0;
const char *zName = db_get("chat-alert-sound", "alerts/plunk.wav");
const char *zAudio = (const char*)builtin_file(zName, &n);
blob_init(&audio, zAudio, n);
cgi_set_content_type("audio/wav");
cgi_set_content(&audio);
}
/*
** COMMAND: chat
|
| ︙ | ︙ |
Changes to src/chat.js.
| ︙ | ︙ | |||
373 374 375 376 377 378 379 |
},
/** Plays a new-message notification sound IF the audible-alert
setting is true, else this is a no-op. Returns this.
*/
playNewMessageSound: function f(){
if(f.uri){
try{
| | | 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 |
},
/** Plays a new-message notification sound IF the audible-alert
setting is true, else this is a no-op. Returns this.
*/
playNewMessageSound: function f(){
if(f.uri){
try{
if(!f.audio) f.audio = new Audio(F.rootPath+"chat-alert");
f.audio.currentTime = 0;
f.audio.play();
}catch(e){
console.error("Audio playblack failed.",e);
}
}
return this;
|
| ︙ | ︙ |
Changes to src/main.mk.
| ︙ | ︙ | |||
218 219 220 221 222 223 224 | $(SRCDIR)/../skins/rounded1/footer.txt \ $(SRCDIR)/../skins/rounded1/header.txt \ $(SRCDIR)/../skins/xekri/css.txt \ $(SRCDIR)/../skins/xekri/details.txt \ $(SRCDIR)/../skins/xekri/footer.txt \ $(SRCDIR)/../skins/xekri/header.txt \ $(SRCDIR)/accordion.js \ | | | 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 | $(SRCDIR)/../skins/rounded1/footer.txt \ $(SRCDIR)/../skins/rounded1/header.txt \ $(SRCDIR)/../skins/xekri/css.txt \ $(SRCDIR)/../skins/xekri/details.txt \ $(SRCDIR)/../skins/xekri/footer.txt \ $(SRCDIR)/../skins/xekri/header.txt \ $(SRCDIR)/accordion.js \ $(SRCDIR)/alerts/bflat3.wav \ $(SRCDIR)/alerts/plunk.wav \ $(SRCDIR)/chat.js \ $(SRCDIR)/ci_edit.js \ $(SRCDIR)/copybtn.js \ $(SRCDIR)/default.css \ $(SRCDIR)/diff.tcl \ $(SRCDIR)/forum.js \ |
| ︙ | ︙ |
Changes to src/setup.c.
| ︙ | ︙ | |||
1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 |
/*
** WEBPAGE: setup_chat
**
** The "Admin/Chat" page. Requires Setup privilege.
*/
void setup_chat(void){
login_check_credentials();
if( !g.perm.Setup ){
login_needed(0);
return;
}
style_set_current_feature("setup");
| > > > > > | 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 |
/*
** WEBPAGE: setup_chat
**
** The "Admin/Chat" page. Requires Setup privilege.
*/
void setup_chat(void){
static const char *const azAlerts[] = {
"alerts/plunk.wav", "Plunk",
"alerts/bflat3.wav", "Tone-1",
};
login_check_credentials();
if( !g.perm.Setup ){
login_needed(0);
return;
}
style_set_current_feature("setup");
|
| ︙ | ︙ | |||
1168 1169 1170 1171 1172 1173 1174 | @ content to arrive. But the /chat-poll cannot block forever. It @ eventual must give up and return an empty message set. This setting @ determines how long /chat-poll will wait before giving up. The @ default setting of approximately 7 minutes works well on many systems. @ Shorter delays might be required on installations that use proxies @ or web-servers with short timeouts. For best efficiency, this value @ should be larger rather than smaller. | > > > > > > > > | | | 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 |
@ content to arrive. But the /chat-poll cannot block forever. It
@ eventual must give up and return an empty message set. This setting
@ determines how long /chat-poll will wait before giving up. The
@ default setting of approximately 7 minutes works well on many systems.
@ Shorter delays might be required on installations that use proxies
@ or web-servers with short timeouts. For best efficiency, this value
@ should be larger rather than smaller.
@ (Property: "chat-poll-timeout")</p>
@ <hr />
multiple_choice_attribute("Alert sound",
"chat-alert-sound", "snd", azAlerts[0],
count(azAlerts)/2, azAlerts);
@ <p>The sound used in the client-side chat to indicate that a new
@ chat message has arrived.
@ (Property: "chat-alert-sound")</p>
@ <hr/>
@ <p><input type="submit" name="submit" value="Apply Changes" /></p>
@ </div></form>
db_end_transaction(0);
style_finish_page();
}
/*
|
| ︙ | ︙ |
Changes to win/Makefile.mingw.
| ︙ | ︙ | |||
630 631 632 633 634 635 636 | $(SRCDIR)/../skins/rounded1/footer.txt \ $(SRCDIR)/../skins/rounded1/header.txt \ $(SRCDIR)/../skins/xekri/css.txt \ $(SRCDIR)/../skins/xekri/details.txt \ $(SRCDIR)/../skins/xekri/footer.txt \ $(SRCDIR)/../skins/xekri/header.txt \ $(SRCDIR)/accordion.js \ | | | 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 | $(SRCDIR)/../skins/rounded1/footer.txt \ $(SRCDIR)/../skins/rounded1/header.txt \ $(SRCDIR)/../skins/xekri/css.txt \ $(SRCDIR)/../skins/xekri/details.txt \ $(SRCDIR)/../skins/xekri/footer.txt \ $(SRCDIR)/../skins/xekri/header.txt \ $(SRCDIR)/accordion.js \ $(SRCDIR)/alerts/bflat3.wav \ $(SRCDIR)/alerts/plunk.wav \ $(SRCDIR)/chat.js \ $(SRCDIR)/ci_edit.js \ $(SRCDIR)/copybtn.js \ $(SRCDIR)/default.css \ $(SRCDIR)/diff.tcl \ $(SRCDIR)/forum.js \ |
| ︙ | ︙ |
Changes to win/Makefile.msc.
| ︙ | ︙ | |||
551 552 553 554 555 556 557 |
"$(SRCDIR)\..\skins\rounded1\footer.txt" \
"$(SRCDIR)\..\skins\rounded1\header.txt" \
"$(SRCDIR)\..\skins\xekri\css.txt" \
"$(SRCDIR)\..\skins\xekri\details.txt" \
"$(SRCDIR)\..\skins\xekri\footer.txt" \
"$(SRCDIR)\..\skins\xekri\header.txt" \
"$(SRCDIR)\accordion.js" \
| | | 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 |
"$(SRCDIR)\..\skins\rounded1\footer.txt" \
"$(SRCDIR)\..\skins\rounded1\header.txt" \
"$(SRCDIR)\..\skins\xekri\css.txt" \
"$(SRCDIR)\..\skins\xekri\details.txt" \
"$(SRCDIR)\..\skins\xekri\footer.txt" \
"$(SRCDIR)\..\skins\xekri\header.txt" \
"$(SRCDIR)\accordion.js" \
"$(SRCDIR)\alerts\bflat3.wav" \
"$(SRCDIR)\alerts\plunk.wav" \
"$(SRCDIR)\chat.js" \
"$(SRCDIR)\ci_edit.js" \
"$(SRCDIR)\copybtn.js" \
"$(SRCDIR)\default.css" \
"$(SRCDIR)\diff.tcl" \
"$(SRCDIR)\forum.js" \
|
| ︙ | ︙ | |||
1162 1163 1164 1165 1166 1167 1168 | echo "$(SRCDIR)\../skins/rounded1/footer.txt" >> $@ echo "$(SRCDIR)\../skins/rounded1/header.txt" >> $@ echo "$(SRCDIR)\../skins/xekri/css.txt" >> $@ echo "$(SRCDIR)\../skins/xekri/details.txt" >> $@ echo "$(SRCDIR)\../skins/xekri/footer.txt" >> $@ echo "$(SRCDIR)\../skins/xekri/header.txt" >> $@ echo "$(SRCDIR)\accordion.js" >> $@ | | | 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 | echo "$(SRCDIR)\../skins/rounded1/footer.txt" >> $@ echo "$(SRCDIR)\../skins/rounded1/header.txt" >> $@ echo "$(SRCDIR)\../skins/xekri/css.txt" >> $@ echo "$(SRCDIR)\../skins/xekri/details.txt" >> $@ echo "$(SRCDIR)\../skins/xekri/footer.txt" >> $@ echo "$(SRCDIR)\../skins/xekri/header.txt" >> $@ echo "$(SRCDIR)\accordion.js" >> $@ echo "$(SRCDIR)\alerts/bflat3.wav" >> $@ echo "$(SRCDIR)\alerts/plunk.wav" >> $@ echo "$(SRCDIR)\chat.js" >> $@ echo "$(SRCDIR)\ci_edit.js" >> $@ echo "$(SRCDIR)\copybtn.js" >> $@ echo "$(SRCDIR)\default.css" >> $@ echo "$(SRCDIR)\diff.tcl" >> $@ echo "$(SRCDIR)\forum.js" >> $@ |
| ︙ | ︙ |