Custom Widget Configuration Property

Version 11.1 - wondering the proper interface to implement if I wanted to create a custom Widget Configuration property.

I believe in prior versions I used an IPropertyControl

Parents Reply
  • Doesn't look like the plugin is firing.  I deployed it and enabled.  Here is my code and how I'm referencing it in a widget.  If I use the same stuff in a .vm file it works.

    <property labelText="Select a Resource" id="message" dataType="string" template="SearchableContentControl" />

    using System;
    using System.Collections.Generic;
    using System.IO;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using Telligent.Evolution.Extensibility.Configuration.Version1;
    
    namespace HearingFirst.Plugins.Controls.PropertyControls
    {
        public class SearchSelectionControl : IPropertyTemplate
        {
            public string[] DataTypes {
    
                get
                { 
                    string[] d = new string[1] { "string" };
                    return d;
                }
            }
    
            public string TemplateName => "SearchableContentControl";
    
            public bool SupportsReadOnly => false;
    
            public PropertyTemplateOption[] Options
            {
                get
                {
                    return new PropertyTemplateOption[0];
                }
            }
    
            public string Name => "Hearing First - Searchable Content Widget Configuration Control";
    
            public string Description => "Provides functionality for selectable content control in widget configurations";
    
            public void Initialize()
            {
    
            }
    
            public void Render(TextWriter writer, IPropertyTemplateOptions options)
            {
                string defaultOption = "<option value=\"test\" >Search</option>";
                if (options.Value != null)
                {
                    defaultOption = "<option value=\"placeholder\" >"+options.Value.ToString() + " </option>";
                }
    
                string script = String.Format(@"<select class=""form-control"" id=""{1}"" name=""$id"" style=""width: 100 % "">
                    {3}
                </select>
    
                <script type=""text/javascript"">
                $(function() {
        
                    jQuery('#${0}').select2({
                          ajax: {
                            url: ""$core_v2_widget.GetExecutedFileUrl('searchcallback.vm')"",
                            dataType: 'json',
                            placeholder: 'Search for an item',
                            minimumInputLength: 3,
                
                            // Additional AJAX parameters go here; see the end of this chapter for the full code of this example
                          }
                    });
        
                    var api = $context_v2_propertyTemplate.JsonApi;
         
                    api.register({
                       hasValue: function() { 
                           return true;
                       },
                       val: function(val) {
                           return jQuery(""#{2}"").val();
                       }
                    });
    
                });
                </script>", options.UniqueId.ToString(), options.UniqueId.ToString(), options.UniqueId.ToString(), defaultOption);
    
                writer.Write(script);
            }
        }
    }
    

Children