/// <summary> /// Button OK click handler. /// </summary> protected void btnOK_Click(object sender, EventArgs e) { // Trim text values txtWidgetName.Text = TextHelper.LimitLength(txtWidgetName.Text.Trim(), 100, ""); txtWidgetDisplayName.Text = TextHelper.LimitLength(txtWidgetDisplayName.Text.Trim(), 100, ""); // Validate the text box fields string errorMessage = new Validator() .NotEmpty(txtWidgetName.Text, rfvWidgetName.ErrorMessage) .NotEmpty(txtWidgetDisplayName.Text, rfvWidgetDisplayName.ErrorMessage) .IsCodeName(txtWidgetName.Text, GetString("general.InvalidCodeName")) .Result; // Check if widget with same name exists if (WidgetInfoProvider.GetWidgetInfo(txtWidgetName.Text) != null) { errorMessage = GetString("general.codenameexists"); } if (errorMessage == "") { // Clone widget info WidgetInfo nwi = new WidgetInfo(wi, false); // Modify info data nwi.WidgetID = 0; nwi.WidgetGUID = Guid.NewGuid(); nwi.WidgetName = txtWidgetName.Text; nwi.WidgetDisplayName = txtWidgetDisplayName.Text; nwi.WidgetCategoryID = ValidationHelper.GetInteger(categorySelector.Value, 0); // Add new web part to database WidgetInfoProvider.SetWidgetInfo(nwi); // Clone widget security DataSet ds = WidgetRoleInfoProvider.GetWidgetRoles("WidgetID = " + wi.WidgetID, null, 0, null); if (!DataHelper.DataSourceIsEmpty(ds)) { foreach (DataRow dr in ds.Tables[0].Rows) { WidgetRoleInfo nwri = new WidgetRoleInfo(dr); nwri.WidgetID = nwi.WidgetID; WidgetRoleInfoProvider.SetWidgetRoleInfo(nwri); } } // Update widget category counts WidgetCategoryInfoProvider.UpdateCategoryWidgetChildCount(0, nwi.WidgetCategoryID); // Duplicate associated thumbnail MetaFileInfoProvider.CopyMetaFiles(wi.WidgetID, nwi.WidgetID, PortalObjectType.WIDGET, MetaFileInfoProvider.OBJECT_CATEGORY_THUMBNAIL, null); string script = String.Empty; string refreshLink = URLHelper.ResolveUrl("~/CMSModules/Widgets/UI/WidgetTree.aspx?widgetid=" + nwi.WidgetID + "&reload=true"); if (QueryHelper.GetBoolean("reloadAll", true)) { // Refresh web part tree and select/edit new widget script = "wopener.location = '" + refreshLink + "';"; } else { script += "wopener.parent.parent.frames['widgettree'].location.href ='" + refreshLink + "';"; } script += "window.close();"; ltlScript.Text = ScriptHelper.GetScript(script); } else { lblError.Text = errorMessage; lblError.Visible = true; } }