using System;
using System.Data;
using System.Text;
using System.Linq;
using System.Collections;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using CMS.GlobalHelper;
using CMS.SettingsProvider;
using CMS.CMSHelper;
using CMS.EventLog;
using CMS.ExtendedControls;
using CMS.ExtendedControls.DragAndDrop;
using CMS.PortalControls;
using CMS.PortalEngine;
using CMS.SiteProvider;
using CMS.UIControls;
public partial class CMSModules_AdminControls_Controls_Class_FormBuilder_ControlSelector : CMSUserControl
{
private StringBuilder imageHTML = new StringBuilder();
private string defaultWebPartImageUrl = null;
protected override void OnPreRender(EventArgs e)
{
base.OnPreRender(e);
ScriptHelper.RegisterJQueryCookie(Page);
ScriptHelper.RegisterScriptFile(Page, "~/CMSScripts/WebPartToolbar.js");
ScriptHelper.RegisterStartupScript(this, typeof(string), "WPTPageScripts", ScriptHelper.GetScript(GetPageScripts()));
ScriptHelper.RegisterStartupScript(Page, typeof(string), "WPTSetupToolbar", ScriptHelper.GetScript("wptSetupSearch();"));
LoadControls();
}
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
ltrCategoryImage.Text = String.Format("", GetImageUrl("Objects/CMS_FormControl/object.png"));
// Set the web part id
pnlCategoryItem.Attributes.Add("data-webpartid", "category");
pnlCategoryItem.Attributes.Add("data-dragkeepcopy", "1");
pnlCategoryItem.Attributes.Add("onmouseover", "wptToggle(this, true);");
pnlCategoryItem.Attributes.Add("onmouseout", "wptToggle(this, false);");
categoryDragDropExtender.TargetControlID = pnlCategoryDraggable.ID;
categoryDragDropExtender.DropCueID = pnlCue.ID;
categoryDragDropExtender.DragItemClass = "WPTItem";
categoryDragDropExtender.DragItemHandleClass = "WPTHandle";
repItems.StopProcessing = false;
// Setup the toolbar web part list drag-and-drop extender
ddExtender.TargetControlID = scrollPanel.ScrollAreaContainer.ID;
ddExtender.DropCueID = pnlCue.ID;
ddExtender.DragItemClass = "WPTSelectorEnvelope";
ddExtender.DragItemHandleClass = "WPTHandle";
ddExtender.OnClientDrop = "";
ddExtender.OnClientBeforeDrop = "wptListOnBeforeDrop";
// Setup the drag-and-drop extender for highlighted web parts as well.
// This solves the issue when changing categories (using the drop down) and you highlight a web part before the init script for drag-and-drop is run.
ddExtenderHovered.TargetControlID = scrollPanel.ScrollAreaContainer.ID;
ddExtenderHovered.DropCueID = pnlCue.ID;
ddExtenderHovered.DragItemClass = "WPTSelectorEnvelopeHover";
ddExtenderHovered.DragItemHandleClass = "WPTHandle";
ddExtenderHovered.OnClientDrop = "";
ddExtenderHovered.OnClientBeforeDrop = "wptListOnBeforeDrop";
imgTrash.ToolTip = ResHelper.GetString("formbuilder.trashtooltip");
imgTrash.ImageUrl = GetImageUrl("CMSModules/CMS_Content/WebPartToolbar/garbage_empty.png");
repItems.ItemDataBound += new RepeaterItemEventHandler(repItems_ItemDataBound);
ddTypeSelector.Attributes.Add("onchange", "wptCategoryChanged();");
// Hide the compulsory drag-and-drop panel Cue, it is not being used
pnlCue.Style.Add("display", "none");
pnlCue.Style.Add("position", "absolute");
}
private void LoadControls()
{
defaultWebPartImageUrl = GetImageUrl("Objects/CMS_FormControl/object.png");
// Specific web part category
int selectedCategoryId = ValidationHelper.GetInteger(ddTypeSelector.Value, (int)FormUserControlTypeEnum.Unspecified);
// Get all web parts for the selected category and its subcategories
if (selectedCategoryId != (int)FormUserControlTypeEnum.Unspecified)
{
repItems.WhereCondition = SqlHelperClass.AddWhereCondition(repItems.WhereCondition, "UserControlType = " + (int)((FormUserControlTypeEnum)selectedCategoryId));
}
repItems.ReloadData(true);
}
///