Module:T-Campaign: Difference between revisions

// via Wikitext Extension for VSCode
// via Wikitext Extension for VSCode
Line 185: Line 185:
         end
         end
          
          
         -- The "Leaner JavaScript Escape Hatch"
         -- Use the centralized NoticeFactory to create the notice
         local noticeData = {
         local noticeOptions = {
             type = "campaign-js", -- New type for JS handling
             type = "campaign-js",
             position = "top",
             position = "top",
             content = bannerContent,
             content = bannerContent,
Line 194: Line 194:
         }
         }
          
          
         local success, result = pcall(function()
         return WikitextProcessor.createNoticeForJS(noticeOptions) .. ErrorHandling.formatCombinedOutput(context)
            return string.format(
                '<div style="display:none" class="notice-data" data-notice-type="%s" data-notice-position="%s" data-banner-template="%s" data-banner-title="%s" data-notice-css="%s"></div>',
                mw.text.encode(noticeData.type),
                mw.text.encode(noticeData.position),
                mw.text.encode(noticeData.content),
                mw.text.encode(noticeData.title),
                mw.text.encode(noticeData.cssClass)
            )
        end)
       
        if success then
            return result .. ErrorHandling.formatCombinedOutput(context)
        else
            ErrorHandling.addError(context, 'campaignBanner', 'Data attribute creation failed', tostring(result), false)
            return ErrorHandling.formatCombinedOutput(context)
        end
     end
     end
}
}