<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>IRenderableConfigurablePlugin Plugin Type</title><link>https://community.telligent.com/community/11/w/api-documentation/64406/irenderableconfigurableplugin-plugin-type</link><description /><dc:language>en-US</dc:language><generator>14.0.0.586 14</generator><item><title>IRenderableConfigurablePlugin Plugin Type</title><link>https://community.telligent.com/community/11/w/api-documentation/64406/irenderableconfigurableplugin-plugin-type</link><pubDate>Tue, 19 Nov 2019 19:36:01 GMT</pubDate><guid isPermaLink="false">53336e58-c942-4998-aecd-0369ce973341</guid><dc:creator>Ben Tiedt</dc:creator><comments>https://community.telligent.com/community/11/w/api-documentation/64406/irenderableconfigurableplugin-plugin-type#comments</comments><description>Current Revision posted to API Documentation by Ben Tiedt on 11/19/2019 19:36:01&lt;br /&gt;
&lt;hr class="generated-documentation-start" style="border-width:0;" /&gt;&lt;div class="documentation"&gt;&lt;div class="message error"&gt;&lt;strong&gt;Obsolete.&lt;/strong&gt; Use the 2nd version of IRenderableConfigurablePlugin instead.&lt;/div&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.Version1&lt;/code&gt; namespace of Telligent.Evolution.Platform.dll&lt;/p&gt;&lt;div class="documentation-stub"&gt;&lt;h2&gt;&lt;a id="Definition" name="Definition"&gt;&lt;/a&gt;Definition&lt;/h2&gt;&lt;pre&gt;interface IRenderableConfigurablePlugin : [[IConfigurablePlugin Plugin Type|IConfigurablePlugin]], [[IPlugin Plugin Type|IPlugin]]
{
	string GetConfigurationHtml(string apiJson);
}
&lt;/pre&gt;&lt;/div&gt;&lt;div class="documentation-members methods"&gt;&lt;h2&gt;&lt;a id="Methods" name="Methods"&gt;&lt;/a&gt;Methods&lt;/h2&gt;&lt;h3&gt;	string GetConfigurationHtml(string apiJson);
&lt;/h3&gt;&lt;p&gt;Returns the HTML-based UI used to configure the plugin.&lt;/p&gt;&lt;h4&gt;&lt;a id="Parameters" name="Parameters"&gt;&lt;/a&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;string&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;&lt;a id="Return_Type" name="Return_Type"&gt;&lt;/a&gt;Return Type&lt;/h4&gt;&lt;p&gt;&lt;code&gt;string&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>