Mercurial > prosody-modules
changeset 146:2620bc59cca3
mod_muc_log_http: bugfix: multiple roomlogs in the same overview
bugfix: don't show empty years
author | Thilo Cestonaro <thilo@cestona.ro> |
---|---|
date | Mon, 29 Mar 2010 14:34:03 +0200 |
parents | 890140ade4e5 |
children | 4db80a46b064 |
files | mod_muc_log_http/muc_log_http/mod_muc_log_http.lua |
diffstat | 1 files changed, 11 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/mod_muc_log_http/muc_log_http/mod_muc_log_http.lua Thu Mar 25 00:09:10 2010 +0100 +++ b/mod_muc_log_http/muc_log_http/mod_muc_log_http.lua Mon Mar 29 14:34:03 2010 +0200 @@ -214,7 +214,7 @@ if i < days + 1 then local tmp = tostring("<span style='color:#DDDDDD'>"..tostring(i).."</span>"); if dayCallback ~= nil and dayCallback.callback ~= nil then - tmp = dayCallback.callback(dayCallback.path, i, month, year); + tmp = dayCallback.callback(dayCallback.path, i, month, year, dayCallback.room); end if tmp == nil then tmp = tostring("<span style='color:#DDDDDD'>"..tostring(i).."</span>"); @@ -266,24 +266,27 @@ if tonumber(year) <= 99 then year = year + 2000; end - local htmlStr = "<div name='yearDiv' style='padding: 40px; text-align: center;'>" .. html.year.title:gsub("###YEAR###", tostring(year)); + local htmlStr = ""; for i=1, 12 do tmp = createMonth(i, year, dayCallback); if tmp then htmlStr = htmlStr .. "<div style='float: left; padding: 5px;'>\n" .. tmp .. "</div>\n"; end end - return htmlStr .. "</div><br style='clear:both;'/> \n"; + if htmlStr ~= "" then + return "<div name='yearDiv' style='padding: 40px; text-align: center;'>" .. html.year.title:gsub("###YEAR###", tostring(year)) .. htmlStr .. "</div><br style='clear:both;'/> \n"; + end + return ""; end -local function perDayCallback(path, day, month, year) +local function perDayCallback(path, day, month, year, room) local year = year; if year > 2000 then year = year - 2000; end local bareDay = str_format("%.02d%.02d%.02d", year, month, day); - local attributes, err = lfs.attributes(path.."/"..bareDay) - if attributes ~= nil and attributes.mode == "directory" then + local attributes, err = lfs.attributes(path.."/"..bareDay.."/"..room..".dat") + if attributes ~= nil and attributes.mode == "file" then local s = html.days.bit; s = s:gsub("###BARE_DAY###", bareDay); s = s:gsub("###DAY###", day); @@ -314,7 +317,7 @@ for folder in lfs.dir(path) do local year, month, day = folder:match("^(%d%d)(%d%d)(%d%d)"); if year ~= nil and alreadyDoneYears[year] == nil then - days = createYear(year, {callback=perDayCallback, path=path}) .. days; + days = createYear(year, {callback=perDayCallback, path=path, room=node}) .. days; alreadyDoneYears[year] = true; end end @@ -575,7 +578,7 @@ for i=1, #data, 1 do local stanza = lom.parse(data[i]); if stanza ~= nil and stanza.attr ~= nil and stanza.attr.time ~= nil then - local timeStuff = html.day.time:gsub("###TIME###", stanza.attr.time); + local timeStuff = html.day.time:gsub("###TIME###", stanza.attr.time):gsub("###UTC###", stanza.attr.utc or stanza.attr.time); if stanza[1] ~= nil then local nick; local tmp;