Module:User:Kai/sandbox: Difference between revisionsGive feedback
Jump to navigation
Jump to search
No edit summary Tag: Manual revert |
Add view function to display and filter feedback by status (via update-page on MediaWiki MCP Server) |
||
| Line 74: | Line 74: | ||
return tostring(root) .. category | return tostring(root) .. category | ||
end | |||
function p.view(frame) | |||
local parent = frame:getParent() | |||
local args = parent and parent.args or frame.args | |||
return p._view(args) | |||
end | |||
function p._view(args) | |||
if not (mw.ext and mw.ext.bucket) then | |||
return "<em>Bucket extension is not available.</em>" | |||
end | |||
local filterStatus = mw.text.trim(args.status or args[1] or 'all'):lower() | |||
local query = mw.ext.bucket('feedback') | |||
:select('page', 'user', 'status', 'feedback') | |||
if filterStatus == 'resolved' or filterStatus == 'unresolved' then | |||
query = query:where('status', filterStatus) | |||
end | |||
local results = query:run() | |||
if not results or #results == 0 then | |||
return "<em>No feedback entries found.</em>" | |||
end | |||
local tableRoot = mw.html.create('table') | |||
:addClass('wikitable sortable') | |||
:css('width', '100%') | |||
local header = tableRoot:tag('tr') | |||
header:tag('th'):wikitext('Page') | |||
header:tag('th'):wikitext('User') | |||
header:tag('th'):wikitext('Status') | |||
header:tag('th'):wikitext('Feedback') | |||
for _, row in ipairs(results) do | |||
local tr = tableRoot:tag('tr') | |||
tr:tag('td'):wikitext(string.format('[[%s]]', row.page or '')) | |||
tr:tag('td'):wikitext(formatUser(row.user)) | |||
local isResolved = row.status == 'resolved' | |||
local statusText = isResolved and 'Resolved' or 'Unresolved' | |||
local statusStyle = isResolved and 'color: #2e7d32; font-weight: bold;' or 'color: #c62828; font-weight: bold;' | |||
tr:tag('td') | |||
:cssText(statusStyle) | |||
:wikitext(statusText) | |||
tr:tag('td'):wikitext(row.feedback or '') | |||
end | |||
return tostring(tableRoot) | |||
end | end | ||
return p | return p | ||