<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>IRenderableConfigurablePlugin (v2) Plugin Type</title><link>https://community.telligent.com/community/14/w/api-documentation/77546/irenderableconfigurableplugin-v2-plugin-type</link><description>&lt;p&gt;&lt;span&gt;Developing on Verint Community? Use the API documentation as a reference for all supported interactions with Verint Community.&lt;/span&gt;&lt;/p&gt;</description><dc:language>en-US</dc:language><generator>14.0.0.684 14</generator><item><title>IRenderableConfigurablePlugin (v2) Plugin Type</title><link>https://community.telligent.com/community/14/w/api-documentation/77546/irenderableconfigurableplugin-v2-plugin-type</link><pubDate>Wed, 14 May 2025 16:53:33 GMT</pubDate><guid isPermaLink="false">249964a0-3227-4c2f-9cc6-3dc510a31acc</guid><dc:creator>Verint | Telligent Community</dc:creator><comments>https://community.telligent.com/community/14/w/api-documentation/77546/irenderableconfigurableplugin-v2-plugin-type#comments</comments><description>Current Revision posted to API Documentation by Verint | Telligent Community on 05/14/2025 16:53:33&lt;br /&gt;
&lt;hr class="generated-documentation-start" style="border-width:0;" /&gt;&lt;div class="documentation"&gt;&lt;p&gt;Plugin that exposes a custom configuration UI within the administration UI&lt;/p&gt;&lt;p&gt;&lt;code&gt;IRenderableConfigurablePlugin&lt;/code&gt; is defined in the &lt;code&gt;Telligent.Evolution.Extensibility.Version2&lt;/code&gt; namespace.&lt;/p&gt;&lt;div class="documentation-stub"&gt;&lt;h2&gt;Definition&lt;/h2&gt;&lt;pre&gt;interface IRenderableConfigurablePlugin : [[IConfigurablePlugin (v2) Plugin Type|IConfigurablePlugin]]
{
	&lt;a href="https://learn.microsoft.com/en-us/dotnet/api/system.string?view=net-9.0"&gt;string&lt;/a&gt; GetConfigurationHtml(&lt;a href="https://learn.microsoft.com/en-us/dotnet/api/system.string?view=net-9.0"&gt;string&lt;/a&gt; apiJson);
}
&lt;/pre&gt;&lt;/div&gt;&lt;div class="documentation-members methods"&gt;&lt;h2&gt;Methods&lt;/h2&gt;&lt;h3&gt;	&lt;a href="https://learn.microsoft.com/en-us/dotnet/api/system.string?view=net-9.0"&gt;string&lt;/a&gt; GetConfigurationHtml(&lt;a href="https://learn.microsoft.com/en-us/dotnet/api/system.string?view=net-9.0"&gt;string&lt;/a&gt; apiJson);
&lt;/h3&gt;&lt;p&gt;Returns the HTML-based UI used to configure the plugin.&lt;/p&gt;&lt;h4&gt;Parameters&lt;/h4&gt;&lt;table cellspacing="0" cellpadding="2" width="99%" class="WikiTable"&gt;&lt;thead&gt;&lt;tr class="WikiTableBgBlue"&gt;&lt;th&gt;Name&lt;/th&gt;&lt;th&gt;Type&lt;/th&gt;&lt;th&gt;Description&lt;/th&gt;&lt;th&gt;Required&lt;/th&gt;&lt;th&gt;Default&lt;/th&gt;&lt;th&gt;Options&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;apiJson&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;a href="https://learn.microsoft.com/en-us/dotnet/api/system.string?view=net-9.0"&gt;string&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;&lt;td&gt;JSON representation of the client-side API to enable integrating the custom API with the platform.

{
    registerSave: function(saveFunction) { /* ... */ },
    registerContent: function(contentDetails) { /* ... */ },
	validate: function() { /* forces all validation on the plugin process, returns true (valid) or false (invalid) */ }
}

The registerSave() function should be called with a reference to a function of the custom UI that can be called to save the configuration form. The saveFunction parameter, when called by the platform, is provided a single object parameter with the following properties:

{
    success: function() { ... },
    error: function() { ... }
}

The implementation of the saveFunction should save the custom configuration UI and call the appropriate function (success() or error()) provided to it when complete.

The registerContent() function should be called to register conditionally rendered content (such as tabs). The contentDetails parameters is an array in the format:

[
    {
        name: &amp;#39;Name of the tab&amp;#39;,
        selected: function() { /* called when the tab is selected */ },
        unselected: function() { /* called when the tab is unselected */ },
		validate: function() { /* called when tab should be validated, should return true (valid) or false (invalid) */ }
    },
    ...
]
&lt;/td&gt;&lt;td&gt;Required&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;h4&gt;Return Type&lt;/h4&gt;&lt;p&gt;&lt;code&gt;&lt;a href="https://learn.microsoft.com/en-us/dotnet/api/system.string?view=net-9.0"&gt;string&lt;/a&gt;&lt;/code&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;hr class="generated-documentation-end" style="border-width:0;" /&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item></channel></rss>