<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://stockhub.co/index.php?action=history&amp;feed=atom&amp;title=Module%3ASandbox%2FChlod%2FOOUI_button</id>
	<title>Module:Sandbox/Chlod/OOUI button - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://stockhub.co/index.php?action=history&amp;feed=atom&amp;title=Module%3ASandbox%2FChlod%2FOOUI_button"/>
	<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Sandbox/Chlod/OOUI_button&amp;action=history"/>
	<updated>2026-06-19T06:12:44Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://stockhub.co/index.php?title=Module:Sandbox/Chlod/OOUI_button&amp;diff=145254&amp;oldid=prev</id>
		<title>imported&gt;Chlod at 10:01, 4 November 2021</title>
		<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Sandbox/Chlod/OOUI_button&amp;diff=145254&amp;oldid=prev"/>
		<updated>2021-11-04T10:01:26Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;-- Used to implement {{OOUI button}}&lt;br /&gt;
-- This is not the same as {{Clickable button 2}}, which uses mw-ui.&lt;br /&gt;
local getArgs = require(&amp;#039;Module:Arguments&amp;#039;).getArgs&lt;br /&gt;
local yesno = require(&amp;#039;Module:Yesno&amp;#039;)&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
local finalCategories = {}&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	local args = getArgs(frame, {&lt;br /&gt;
		trim = true,&lt;br /&gt;
		removeBlanks = false&lt;br /&gt;
	})&lt;br /&gt;
&lt;br /&gt;
    return p._main(frame, args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._main(frame, args)&lt;br /&gt;
	-- aliases&lt;br /&gt;
	args[&amp;quot;label&amp;quot;] = args[&amp;quot;1&amp;quot;] or args[&amp;quot;label&amp;quot;]&lt;br /&gt;
	&lt;br /&gt;
	return tostring(renderButtonWidget(args))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function renderButtonWidget(args)&lt;br /&gt;
	local wrapper = mw.html.create(&amp;quot;span&amp;quot;)&lt;br /&gt;
		:addClass(&amp;quot;oo-ui-widget&amp;quot;)&lt;br /&gt;
		:addClass(&amp;quot;oo-ui-buttonElement&amp;quot;)&lt;br /&gt;
		:addClass(&amp;quot;oo-ui-buttonWidget&amp;quot;)&lt;br /&gt;
		&lt;br /&gt;
	-- &amp;lt;icon/label/indicator&amp;gt;Element&lt;br /&gt;
	if args[&amp;quot;icon&amp;quot;] and string.len(args[&amp;quot;icon&amp;quot;]) &amp;gt; 0 then&lt;br /&gt;
		wrapper:addClass(&amp;quot;oo-ui-iconElement&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	if args[&amp;quot;label&amp;quot;] and string.len(args[&amp;quot;label&amp;quot;]) &amp;gt; 0 then&lt;br /&gt;
		wrapper:addClass(&amp;quot;oo-ui-labelElement&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	if args[&amp;quot;indicator&amp;quot;] and string.len(args[&amp;quot;indicator&amp;quot;]) &amp;gt; 0 then&lt;br /&gt;
		wrapper:addClass(&amp;quot;oo-ui-indicatorElement&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- flags&lt;br /&gt;
	if args[&amp;quot;flags&amp;quot;] == &amp;quot;progressive&amp;quot; or yesno(args[&amp;quot;progressive&amp;quot;]) then&lt;br /&gt;
		wrapper:addClass(&amp;quot;oo-ui-flaggedElement-progressive&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	if args[&amp;quot;flags&amp;quot;] == &amp;quot;destructive&amp;quot; or yesno(args[&amp;quot;destructive&amp;quot;]) then&lt;br /&gt;
		wrapper:addClass(&amp;quot;oo-ui-flaggedElement-destructive&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- frame&lt;br /&gt;
	if yesno(args[&amp;quot;framed&amp;quot;] or &amp;quot;yes&amp;quot;) then&lt;br /&gt;
		wrapper:addClass(&amp;quot;oo-ui-buttonElement-framed&amp;quot;)&lt;br /&gt;
	else&lt;br /&gt;
		wrapper:addClass(&amp;quot;oo-ui-buttonElement-frameless&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- disabled&lt;br /&gt;
	if yesno(args[&amp;quot;disabled&amp;quot;] or &amp;quot;no&amp;quot;) then&lt;br /&gt;
		wrapper:addClass(&amp;quot;oo-ui-widget-disabled&amp;quot;)&lt;br /&gt;
		wrapper:attr(&amp;quot;aria-diasbled&amp;quot;, &amp;quot;true&amp;quot;)&lt;br /&gt;
	else&lt;br /&gt;
		wrapper:addClass(&amp;quot;oo-ui-widget-enabled&amp;quot;)&lt;br /&gt;
		wrapper:attr(&amp;quot;aria-diasbled&amp;quot;, &amp;quot;false&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	wrapper:node(renderButton(args))&lt;br /&gt;
	&lt;br /&gt;
	return wrapper&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function renderButton(args)&lt;br /&gt;
	return mw.html.create(&amp;quot;span&amp;quot;)&lt;br /&gt;
		:addClass(&amp;quot;oo-ui-buttonElement-button&amp;quot;)&lt;br /&gt;
		:attr(&amp;quot;role&amp;quot;, &amp;quot;button&amp;quot;)&lt;br /&gt;
		:attr(&amp;quot;title&amp;quot;, args[&amp;quot;title&amp;quot;] or args[&amp;quot;label&amp;quot;])&lt;br /&gt;
		:attr(&amp;quot;aria-disabled&amp;quot;, yesno(args[&amp;quot;disabled&amp;quot;] or &amp;quot;no&amp;quot;) and &amp;quot;true&amp;quot; or &amp;quot;false&amp;quot;)&lt;br /&gt;
		:node(renderIcon(args[&amp;quot;icon&amp;quot;]))&lt;br /&gt;
		:node(renderLabel(args[&amp;quot;label&amp;quot;]))&lt;br /&gt;
		:node(renderIndicator(args[&amp;quot;indicator&amp;quot;]))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function renderIcon(icon)&lt;br /&gt;
	return mw.html.create(&amp;quot;span&amp;quot;)&lt;br /&gt;
		:addClass(&amp;quot;oo-ui-iconElement-icon&amp;quot;)&lt;br /&gt;
		:addClass((icon and string.len(icon) &amp;gt; 0) &lt;br /&gt;
			and (&amp;quot;oo-ui-icon-&amp;quot; .. icon)&lt;br /&gt;
			or &amp;quot;oo-ui-iconElement-noIcon&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function renderLabel(label)&lt;br /&gt;
	return mw.html.create(&amp;quot;span&amp;quot;)&lt;br /&gt;
		:addClass(&amp;quot;oo-ui-labelElement-label&amp;quot;)&lt;br /&gt;
		:wikitext(label)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function renderIndicator(indicator)&lt;br /&gt;
	if&lt;br /&gt;
	    indicator ~= &amp;quot;clear&amp;quot;&lt;br /&gt;
	    and indicator ~= &amp;quot;down&amp;quot;&lt;br /&gt;
	    and indicator ~= &amp;quot;required&amp;quot;&lt;br /&gt;
	    and indicator ~= &amp;quot;up&amp;quot;&lt;br /&gt;
	    and indicator ~= &amp;quot;&amp;quot;&lt;br /&gt;
	    and indicator ~= nil&lt;br /&gt;
    then&lt;br /&gt;
	   	mw.addWarning(&amp;quot;Unrecognized indicator: &amp;#039;&amp;#039;&amp;quot; .. indicator .. &amp;quot;&amp;#039;&amp;#039;&amp;quot;)&lt;br /&gt;
	   	indicator = &amp;quot;&amp;quot;&lt;br /&gt;
   	end&lt;br /&gt;
	return mw.html.create(&amp;quot;span&amp;quot;)&lt;br /&gt;
		:addClass(&amp;quot;oo-ui-indicatorElement-indicator&amp;quot;)&lt;br /&gt;
		:addClass((indicator and string.len(indicator) &amp;gt; 0) &lt;br /&gt;
			and (&amp;quot;oo-ui-indicator-&amp;quot; .. indicator)&lt;br /&gt;
			or &amp;quot;oo-ui-indicatorElement-noIndicator&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>imported&gt;Chlod</name></author>
	</entry>
</feed>