Software /
code /
prosody-modules
Comparison
mod_http_muc_log/mod_http_muc_log.lua @ 1562:bc9cfd1c5391
mod_http_muc_log: Hide prev/next when on the edge of the archive
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Sun, 09 Nov 2014 17:18:12 +0100 |
parent | 1561:2eaf4833969a |
child | 1563:49ba05d75119 |
comparison
equal
deleted
inserted
replaced
1561:2eaf4833969a | 1562:bc9cfd1c5391 |
---|---|
69 nav a.up{font-size:smaller;} | 69 nav a.up{font-size:smaller;} |
70 nav a.prev{float:left;} | 70 nav a.prev{float:left;} |
71 nav a.next{float:right;} | 71 nav a.next{float:right;} |
72 nav a.next::after{content:" →";} | 72 nav a.next::after{content:" →";} |
73 nav a.prev::before{content:"← ";} | 73 nav a.prev::before{content:"← ";} |
74 nav a:empty::after,nav a:empty::before{content:""} | |
74 a:link,a:visited{color:#2e3436;text-decoration:none;} | 75 a:link,a:visited{color:#2e3436;text-decoration:none;} |
75 a:link:hover,a:visited:hover{color:#3465a4;} | 76 a:link:hover,a:visited:hover{color:#3465a4;} |
76 ul,ol{padding:0;} | 77 ul,ol{padding:0;} |
77 li{list-style:none;} | 78 li{list-style:none;} |
78 hr{display:none;} | 79 hr{display:none;} |
270 st_name = item.name; | 271 st_name = item.name; |
271 st_type = item.attr.type; | 272 st_type = item.attr.type; |
272 }, i + 1; | 273 }, i + 1; |
273 end | 274 end |
274 | 275 |
275 local next_when = datetime.parse(date.."T12:00:00Z") + 86400; | 276 local next_when = ""; |
276 local prev_when = datetime.parse(date.."T12:00:00Z") - 86400; | 277 local prev_when = ""; |
277 | 278 |
278 module:log("debug", "Find next date with messages"); | 279 module:log("debug", "Find next date with messages"); |
279 for key, message, when in archive:find(room, { | 280 for key, message, when in archive:find(room, { |
280 ["start"] = datetime.parse(date.."T00:00:00Z") + 86400; | 281 ["start"] = datetime.parse(date.."T00:00:00Z") + 86400; |
281 limit = math.huge; | 282 limit = math.huge; |
282 }) do | 283 }) do |
283 next_when = when; | 284 next_when = datetime.date(when); |
284 module:log("debug", "Next message: %s", datetime.datetime(when)); | 285 module:log("debug", "Next message: %s", datetime.datetime(when)); |
285 break; | 286 break; |
286 end | 287 end |
287 | 288 |
288 module:log("debug", "Find prev date with messages"); | 289 module:log("debug", "Find prev date with messages"); |
289 for key, message, when in archive:find(room, { | 290 for key, message, when in archive:find(room, { |
290 ["end"] = datetime.parse(date.."T00:00:00Z") - 1; | 291 ["end"] = datetime.parse(date.."T00:00:00Z") - 1; |
291 limit = math.huge; | 292 limit = math.huge; |
292 reverse = true; | 293 reverse = true; |
293 }) do | 294 }) do |
294 prev_when = when; | 295 prev_when = datetime.date(when); |
295 module:log("debug", "Previous message: %s", datetime.datetime(when)); | 296 module:log("debug", "Previous message: %s", datetime.datetime(when)); |
296 break; | 297 break; |
297 end | 298 end |
298 | 299 |
299 return page_template{ | 300 return page_template{ |
300 canonical = module:http_url() .. "/" .. path; | 301 canonical = module:http_url() .. "/" .. path; |
301 host = module.host; | 302 host = module.host; |
302 room = room; | 303 room = room; |
303 date = date; | 304 date = date; |
304 logs = table.concat(logs); | 305 logs = table.concat(logs); |
305 next = datetime.date(next_when); | 306 next = next_when; |
306 prev = datetime.date(prev_when); | 307 prev = prev_when; |
307 }; | 308 }; |
308 end | 309 end |
309 | 310 |
310 local function list_rooms(event) | 311 local function list_rooms(event) |
311 local room_list, i = {}, 1; | 312 local room_list, i = {}, 1; |