annotate mod_http_muc_log/http_muc_log.html @ 3656:3e0f4d727825

mod_vcard_muc: Add an alternative method of signaling avatar change When the avatar has been changed, a signal is sent that the room configuration has changed. Clients then do a disco#info query to find the SHA-1 of the new avatar. They can then fetch it as before, or not if they have it cached already. This is meant to be less disruptive than signaling via presence, which caused problems for some clients. If clients transition to the new method, the old one can eventually be removed. The namespace is made up while waiting for standardization. Otherwise it is very close to what's described in https://xmpp.org/extensions/inbox/muc-avatars.html
author Kim Alvefur <zash@zash.se>
date Sun, 25 Aug 2019 20:46:43 +0200
parents 413ea67597d2
children 8c0a6d4541d5
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1582
8e282eb0c70c mod_http_muc_log: Split out template into a configurable file.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
1 <!DOCTYPE html>
8e282eb0c70c mod_http_muc_log: Split out template into a configurable file.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
2 <html>
8e282eb0c70c mod_http_muc_log: Split out template into a configurable file.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
3 <head>
8e282eb0c70c mod_http_muc_log: Split out template into a configurable file.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
4 <meta charset="utf-8">
8e282eb0c70c mod_http_muc_log: Split out template into a configurable file.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
5 <meta name="viewport" content="width=device-width, initial-scale=1">
8e282eb0c70c mod_http_muc_log: Split out template into a configurable file.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
6 <title>{title}</title>
8e282eb0c70c mod_http_muc_log: Split out template into a configurable file.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
7 <style>
1589
0da51b825263 mod_http_muc_log: (template) Remove duplicate CSS property
Kim Alvefur <zash@zash.se>
parents: 1582
diff changeset
8 :link,:visited{color:#2e3436;text-decoration:none;}
1582
8e282eb0c70c mod_http_muc_log: Split out template into a configurable file.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
9 :link:hover,:visited:hover{color:#3465a4;}
8e282eb0c70c mod_http_muc_log: Split out template into a configurable file.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
10 body{background-color:#eeeeec;margin:1ex 0;padding-bottom:3em;font-family:Arial,Helvetica,sans-serif;}
8e282eb0c70c mod_http_muc_log: Split out template into a configurable file.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
11 ul,ol{padding:0;}
8e282eb0c70c mod_http_muc_log: Split out template into a configurable file.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
12 li{list-style:none;}
8e282eb0c70c mod_http_muc_log: Split out template into a configurable file.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
13 hr{visibility:hidden;clear:both;}
8e282eb0c70c mod_http_muc_log: Split out template into a configurable file.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
14 br{clear:both;}
8e282eb0c70c mod_http_muc_log: Split out template into a configurable file.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
15 header,footer{margin:1ex 1em;}
8e282eb0c70c mod_http_muc_log: Split out template into a configurable file.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
16 footer{font-size:smaller;color:#babdb6;}
8e282eb0c70c mod_http_muc_log: Split out template into a configurable file.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
17 nav{font-size:large;margin:1ex 1ex;clear:both;line-height:1.5em;}
8e282eb0c70c mod_http_muc_log: Split out template into a configurable file.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
18 footer nav .up{display:none;}
8e282eb0c70c mod_http_muc_log: Split out template into a configurable file.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
19 @media screen and (min-width: 460px) {
8e282eb0c70c mod_http_muc_log: Split out template into a configurable file.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
20 nav {font-size:x-large;margin:1ex 1em;}
8e282eb0c70c mod_http_muc_log: Split out template into a configurable file.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
21 }
8e282eb0c70c mod_http_muc_log: Split out template into a configurable file.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
22 nav a{padding: 1ex;}
8e282eb0c70c mod_http_muc_log: Split out template into a configurable file.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
23 nav .up{font-size:smaller;display:block;clear:both;}
8e282eb0c70c mod_http_muc_log: Split out template into a configurable file.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
24 nav .prev{float:left;}
8e282eb0c70c mod_http_muc_log: Split out template into a configurable file.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
25 nav .next{float:right;}
8e282eb0c70c mod_http_muc_log: Split out template into a configurable file.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
26 nav .next::after{content:" →";}
8e282eb0c70c mod_http_muc_log: Split out template into a configurable file.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
27 nav .prev::before{content:"← ";}
8e282eb0c70c mod_http_muc_log: Split out template into a configurable file.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
28 nav :empty::after,nav :empty::before{content:""}
1621
738e9874a374 mod_http_muc_log: Fix alignment of month-tables (Thanks March)
Kim Alvefur <zash@zash.se>
parents: 1606
diff changeset
29 table{display:inline-block; margin:1ex 1em;vertical-align:top;}
1606
2c8b985ebde5 mod_http_muc_log: Switch to a calendar view for selecting dates
Kim Alvefur <zash@zash.se>
parents: 1589
diff changeset
30 th{font-size:x-small}
3580
907ccda3f0d2 mod_http_muc_log: Increase clickable area on dates
Kim Alvefur <zash@zash.se>
parents: 3579
diff changeset
31 td{text-align:right;color:#bababa}
907ccda3f0d2 mod_http_muc_log: Increase clickable area on dates
Kim Alvefur <zash@zash.se>
parents: 3579
diff changeset
32 td > a, td > span{padding:0.4em}
1582
8e282eb0c70c mod_http_muc_log: Split out template into a configurable file.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
33 .content{background-color:white;padding:1em;list-style-position:inside;}
8e282eb0c70c mod_http_muc_log: Split out template into a configurable file.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
34 .time{float:right;font-size:small;opacity:0.2;}
8e282eb0c70c mod_http_muc_log: Split out template into a configurable file.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
35 li:hover .time{opacity:1;}
8e282eb0c70c mod_http_muc_log: Split out template into a configurable file.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
36 .description{font-size:smaller;}
8e282eb0c70c mod_http_muc_log: Split out template into a configurable file.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
37 .body{white-space:pre-line;}
8e282eb0c70c mod_http_muc_log: Split out template into a configurable file.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
38 .body::before,.body::after{content:"";}
8e282eb0c70c mod_http_muc_log: Split out template into a configurable file.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
39 .presence .verb{font-style:normal;color:#30c030;}
8e282eb0c70c mod_http_muc_log: Split out template into a configurable file.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
40 .unavailable .verb{color:#c03030;}
3485
181561d0aae5 mod_http_muc_log: Add functionality for hiding joins and parts
Kim Alvefur <zash@zash.se>
parents: 2083
diff changeset
41 form{text-align:right}
1582
8e282eb0c70c mod_http_muc_log: Split out template into a configurable file.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
42 </style>
8e282eb0c70c mod_http_muc_log: Split out template into a configurable file.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
43 </head>
8e282eb0c70c mod_http_muc_log: Split out template into a configurable file.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
44 <body>
8e282eb0c70c mod_http_muc_log: Split out template into a configurable file.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
45 <header>
8e282eb0c70c mod_http_muc_log: Split out template into a configurable file.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
46 <h1 title="xmpp:{jid?}">{title}</h1>
2083
fed0a71a5e68 mod_http_muc_log: Add XMPP URI link for joining the current room
Kim Alvefur <zash@zash.se>
parents: 1915
diff changeset
47 <nav>
fed0a71a5e68 mod_http_muc_log: Add XMPP URI link for joining the current room
Kim Alvefur <zash@zash.se>
parents: 1915
diff changeset
48 <a href="xmpp:{jid?}?join">Join using a client</a>{links#
3485
181561d0aae5 mod_http_muc_log: Add functionality for hiding joins and parts
Kim Alvefur <zash@zash.se>
parents: 2083
diff changeset
49 <a class="{item.rel?}" href="{item.href}{hide_presence&?p=h}" rel="{item.rel?}">{item.text}</a>}
1582
8e282eb0c70c mod_http_muc_log: Split out template into a configurable file.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
50 </nav>
8e282eb0c70c mod_http_muc_log: Split out template into a configurable file.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
51 </header>
8e282eb0c70c mod_http_muc_log: Split out template into a configurable file.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
52 <hr>
8e282eb0c70c mod_http_muc_log: Split out template into a configurable file.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
53 <div class="content">
8e282eb0c70c mod_http_muc_log: Split out template into a configurable file.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
54 <nav>
8e282eb0c70c mod_http_muc_log: Split out template into a configurable file.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
55 <dl class="room-list">
8e282eb0c70c mod_http_muc_log: Split out template into a configurable file.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
56 {rooms#
3485
181561d0aae5 mod_http_muc_log: Add functionality for hiding joins and parts
Kim Alvefur <zash@zash.se>
parents: 2083
diff changeset
57 <dt class="name"><a href="{item.href}{hide_presence&?p=h}">{item.name}</a></dt>
1751
3f3a5daf31cc mod_http_muc_log: Update template for changes in template engine
Kim Alvefur <zash@zash.se>
parents: 1625
diff changeset
58 <dd class="description">{item.description?}</dd>}
1582
8e282eb0c70c mod_http_muc_log: Split out template into a configurable file.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
59 </dl>
1606
2c8b985ebde5 mod_http_muc_log: Switch to a calendar view for selecting dates
Kim Alvefur <zash@zash.se>
parents: 1589
diff changeset
60 {years#
1751
3f3a5daf31cc mod_http_muc_log: Update template for changes in template engine
Kim Alvefur <zash@zash.se>
parents: 1625
diff changeset
61 <h2 id="{item.year}">{item.year}</h2>
3f3a5daf31cc mod_http_muc_log: Update template for changes in template engine
Kim Alvefur <zash@zash.se>
parents: 1625
diff changeset
62 {item.months#
3f3a5daf31cc mod_http_muc_log: Update template for changes in template engine
Kim Alvefur <zash@zash.se>
parents: 1625
diff changeset
63 <table id="{item.month}-{item.year}">
3f3a5daf31cc mod_http_muc_log: Update template for changes in template engine
Kim Alvefur <zash@zash.se>
parents: 1625
diff changeset
64 <caption>{item.month}</caption>
3579
b5511c48c958 mod_http_muc_log: Add table header and body tags for improved semantics
Kim Alvefur <zash@zash.se>
parents: 3485
diff changeset
65 <thead><tr><th>Mon</th><th>Tue</th><th>Wed</th><th>Thu</th><th>Fri</th><th>Sat</th><th>Sun</th></tr></thead>
b5511c48c958 mod_http_muc_log: Add table header and body tags for improved semantics
Kim Alvefur <zash@zash.se>
parents: 3485
diff changeset
66 <tbody>{item.weeks#
3580
907ccda3f0d2 mod_http_muc_log: Increase clickable area on dates
Kim Alvefur <zash@zash.se>
parents: 3579
diff changeset
67 <tr>{item.days#<td>{item.href&<a href="{item.href}{hide_presence&?p=h}">}<span>{item.day?&nbsp;}</span>{item.href&</a>}</td>}</tr>}
3579
b5511c48c958 mod_http_muc_log: Add table header and body tags for improved semantics
Kim Alvefur <zash@zash.se>
parents: 3485
diff changeset
68 </tbody>
1606
2c8b985ebde5 mod_http_muc_log: Switch to a calendar view for selecting dates
Kim Alvefur <zash@zash.se>
parents: 1589
diff changeset
69 </table>
2c8b985ebde5 mod_http_muc_log: Switch to a calendar view for selecting dates
Kim Alvefur <zash@zash.se>
parents: 1589
diff changeset
70 }
2c8b985ebde5 mod_http_muc_log: Switch to a calendar view for selecting dates
Kim Alvefur <zash@zash.se>
parents: 1589
diff changeset
71 }
1582
8e282eb0c70c mod_http_muc_log: Split out template into a configurable file.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
72 </nav>
3485
181561d0aae5 mod_http_muc_log: Add functionality for hiding joins and parts
Kim Alvefur <zash@zash.se>
parents: 2083
diff changeset
73
181561d0aae5 mod_http_muc_log: Add functionality for hiding joins and parts
Kim Alvefur <zash@zash.se>
parents: 2083
diff changeset
74 <div>
3597
da7ec4ed6ddf mod_http_muc_log: Hide join/part controls if they are not stored by mod_muc_mam
Kim Alvefur <zash@zash.se>
parents: 3582
diff changeset
75 {presence_available&<form>
3485
181561d0aae5 mod_http_muc_log: Add functionality for hiding joins and parts
Kim Alvefur <zash@zash.se>
parents: 2083
diff changeset
76 <label>
181561d0aae5 mod_http_muc_log: Add functionality for hiding joins and parts
Kim Alvefur <zash@zash.se>
parents: 2083
diff changeset
77 <input name="p" value="h" type="checkbox"{hide_presence& checked}>
181561d0aae5 mod_http_muc_log: Add functionality for hiding joins and parts
Kim Alvefur <zash@zash.se>
parents: 2083
diff changeset
78 <span>Hide joins and parts</span>
181561d0aae5 mod_http_muc_log: Add functionality for hiding joins and parts
Kim Alvefur <zash@zash.se>
parents: 2083
diff changeset
79 </label>
181561d0aae5 mod_http_muc_log: Add functionality for hiding joins and parts
Kim Alvefur <zash@zash.se>
parents: 2083
diff changeset
80 <noscript>
181561d0aae5 mod_http_muc_log: Add functionality for hiding joins and parts
Kim Alvefur <zash@zash.se>
parents: 2083
diff changeset
81 <button type="submit">Apply</button>
181561d0aae5 mod_http_muc_log: Add functionality for hiding joins and parts
Kim Alvefur <zash@zash.se>
parents: 2083
diff changeset
82 </noscript>
3597
da7ec4ed6ddf mod_http_muc_log: Hide join/part controls if they are not stored by mod_muc_mam
Kim Alvefur <zash@zash.se>
parents: 3582
diff changeset
83 </form>}
3485
181561d0aae5 mod_http_muc_log: Add functionality for hiding joins and parts
Kim Alvefur <zash@zash.se>
parents: 2083
diff changeset
84 </div>
181561d0aae5 mod_http_muc_log: Add functionality for hiding joins and parts
Kim Alvefur <zash@zash.se>
parents: 2083
diff changeset
85
1582
8e282eb0c70c mod_http_muc_log: Split out template into a configurable file.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
86 <ol class="chat-logs">{lines#
1751
3f3a5daf31cc mod_http_muc_log: Update template for changes in template engine
Kim Alvefur <zash@zash.se>
parents: 1625
diff changeset
87 <li class="{item.st_name} {item.st_type?}" id="{item.key}">
3645
413ea67597d2 mod_http_muc_log: Make time based anchors from mod_muc_log_http work
Kim Alvefur <zash@zash.se>
parents: 3597
diff changeset
88 <a class="time" href="#{item.key}"><time id="{item.time}" datetime="{item.datetime}">{item.time}</time></a>
1751
3f3a5daf31cc mod_http_muc_log: Update template for changes in template engine
Kim Alvefur <zash@zash.se>
parents: 1625
diff changeset
89 <b class="nick">{item.nick}</b>
3f3a5daf31cc mod_http_muc_log: Update template for changes in template engine
Kim Alvefur <zash@zash.se>
parents: 1625
diff changeset
90 <em class="verb">{item.verb?}</em>
3f3a5daf31cc mod_http_muc_log: Update template for changes in template engine
Kim Alvefur <zash@zash.se>
parents: 1625
diff changeset
91 <q class="body">{item.body?}</q>
3582
444e2306c99a mod_http_muc_log: Add option to show OOB images
Kim Alvefur <zash@zash.se>
parents: 3580
diff changeset
92 {item.oob.url&<figure><a rel="nofollow" href="{item.oob.url?}"><img style="max-height:9em;max-width:16em" alt="{item.oob.desc?}" src="{item.oob.url?}"/></a><figcaption>{item.oob.desc?}</figcaption></figure>}
1582
8e282eb0c70c mod_http_muc_log: Split out template into a configurable file.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
93 </li>}
8e282eb0c70c mod_http_muc_log: Split out template into a configurable file.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
94 </ol>
8e282eb0c70c mod_http_muc_log: Split out template into a configurable file.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
95 </div>
8e282eb0c70c mod_http_muc_log: Split out template into a configurable file.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
96 <hr>
8e282eb0c70c mod_http_muc_log: Split out template into a configurable file.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
97 <footer>
8e282eb0c70c mod_http_muc_log: Split out template into a configurable file.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
98 <nav>{links#
3485
181561d0aae5 mod_http_muc_log: Add functionality for hiding joins and parts
Kim Alvefur <zash@zash.se>
parents: 2083
diff changeset
99 <a class="{item.rel?}" href="{item.href}{hide_presence&?p=h}" rel="{item.rel?}">{item.text}</a>}
1582
8e282eb0c70c mod_http_muc_log: Split out template into a configurable file.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
100 </nav>
8e282eb0c70c mod_http_muc_log: Split out template into a configurable file.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
101 <br>
8e282eb0c70c mod_http_muc_log: Split out template into a configurable file.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
102 <div class="powered-by">Prosody</div>
8e282eb0c70c mod_http_muc_log: Split out template into a configurable file.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
103 </footer>
8e282eb0c70c mod_http_muc_log: Split out template into a configurable file.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
104 <script>
8e282eb0c70c mod_http_muc_log: Split out template into a configurable file.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
105 /*
8e282eb0c70c mod_http_muc_log: Split out template into a configurable file.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
106 * Local timestamps
8e282eb0c70c mod_http_muc_log: Split out template into a configurable file.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
107 */
8e282eb0c70c mod_http_muc_log: Split out template into a configurable file.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
108 (function () {
8e282eb0c70c mod_http_muc_log: Split out template into a configurable file.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
109 var timeTags = document.getElementsByTagName("time");
8e282eb0c70c mod_http_muc_log: Split out template into a configurable file.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
110 var i = 0, tag, date;
8e282eb0c70c mod_http_muc_log: Split out template into a configurable file.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
111 while(timeTags[i]) {
8e282eb0c70c mod_http_muc_log: Split out template into a configurable file.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
112 tag = timeTags[i++];
8e282eb0c70c mod_http_muc_log: Split out template into a configurable file.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
113 if(date = tag.getAttribute("datetime")) {
8e282eb0c70c mod_http_muc_log: Split out template into a configurable file.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
114 date = new Date(date);
1915
5e65c91c07c4 mod_http_muc_log: Produce local timestamps in local format
Kim Alvefur <zash@zash.se>
parents: 1751
diff changeset
115 tag.textContent = date.toLocaleTimeString(navigator.language);
1582
8e282eb0c70c mod_http_muc_log: Split out template into a configurable file.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
116 tag.setAttribute("title", date.toString());
8e282eb0c70c mod_http_muc_log: Split out template into a configurable file.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
117 }
8e282eb0c70c mod_http_muc_log: Split out template into a configurable file.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
118 }
3485
181561d0aae5 mod_http_muc_log: Add functionality for hiding joins and parts
Kim Alvefur <zash@zash.se>
parents: 2083
diff changeset
119 document.forms[0].elements.p.addEventListener("change", function() {
181561d0aae5 mod_http_muc_log: Add functionality for hiding joins and parts
Kim Alvefur <zash@zash.se>
parents: 2083
diff changeset
120 document.forms[0].submit();
181561d0aae5 mod_http_muc_log: Add functionality for hiding joins and parts
Kim Alvefur <zash@zash.se>
parents: 2083
diff changeset
121 });
1582
8e282eb0c70c mod_http_muc_log: Split out template into a configurable file.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
122 })();
8e282eb0c70c mod_http_muc_log: Split out template into a configurable file.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
123 </script>
8e282eb0c70c mod_http_muc_log: Split out template into a configurable file.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
124 </body>
8e282eb0c70c mod_http_muc_log: Split out template into a configurable file.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
125 </html>