/// <summary> /// Handles the UniGrid's OnAction event. /// </summary> /// <param name="actionName">Name of item (button) that throws event</param> /// <param name="actionArgument">ID (value of Primary key) of corresponding data row</param> protected void gridElem_OnAction(string actionName, object actionArgument) { switch (actionName.ToLowerCSafe()) { case "edit": SelectedItemID = ValidationHelper.GetInteger(actionArgument, 0); RaiseOnEdit(); break; case "delete": if (!CheckPermissions("CMS.EmailTemplates", PERMISSION_MODIFY)) { return; } // Get TemplateID int templateId = ValidationHelper.GetInteger(actionArgument, 0); EmailTemplateProvider.DeleteEmailTemplate(templateId); break; } RaiseOnAction(actionName, actionArgument); }
/// <summary> /// Handles the UniGrid's OnAction event. /// </summary> /// <param name="actionName">Name of item (button) that throws event</param> /// <param name="actionArgument">ID (value of Primary key) of corresponding data row</param> protected void uniGrid_OnAction(string actionName, object actionArgument) { string templateId = actionArgument.ToString(); switch (actionName.ToLower()) { // Edit the template case "edit": URLHelper.Redirect("NewsletterTemplate_Edit.aspx?templateid=" + templateId); break; // Delete the template case "delete": // Check 'Manage templates' permission if (!CMSContext.CurrentUser.IsAuthorizedPerResource("cms.newsletter", "managetemplates")) { RedirectToCMSDeskAccessDenied("cms.newsletter", "managetemplates"); } // Check if the template is used in a newsletter string where = string.Format("(NewsletterTemplateID={0}) OR (NewsletterSubscriptionTemplateID={0}) OR (NewsletterUnsubscriptionTemplateID={0}) OR (NewsletterOptInTemplateID={0})", templateId); DataSet newsByEmailtempl = NewsletterProvider.GetNewsletters(where, null, 1, "NewsletterID"); if (DataHelper.DataSourceIsEmpty(newsByEmailtempl)) { // Check if the template is used in an issue DataSet newsletterIssues = IssueProvider.GetIssues("IssueTemplateID = " + templateId, null, 1, "IssueID"); if (DataHelper.DataSourceIsEmpty(newsletterIssues)) { // Delete EmailTemplate object from database EmailTemplateProvider.DeleteEmailTemplate(ValidationHelper.GetInteger(templateId, 0)); } else { ShowError(GetString("NewsletterTemplate_List.TemplateInUseByNewsletterIssue")); } } else { ShowError(GetString("NewsletterTemplate_List.TemplateInUseByNewsletter")); } break; // Clone the template case "clone": if (!CMSContext.CurrentUser.IsAuthorizedPerResource("cms.newsletter", "managetemplates")) { RedirectToCMSDeskAccessDenied("cms.newsletter", "managetemplates"); } int tmpId = ValidationHelper.GetInteger(templateId, 0); EmailTemplate oldet = EmailTemplateProvider.GetEmailTemplate(tmpId); if (oldet != null) { EmailTemplate et = new EmailTemplate(); et.TemplateBody = oldet.TemplateBody; et.TemplateDisplayName = oldet.TemplateDisplayName; et.TemplateSubject = oldet.TemplateSubject; et.TemplateFooter = oldet.TemplateFooter; et.TemplateHeader = oldet.TemplateHeader; et.TemplateID = 0; et.TemplateName = oldet.TemplateName; et.TemplateSiteID = oldet.TemplateSiteID; et.TemplateStylesheetText = oldet.TemplateStylesheetText; et.TemplateType = oldet.TemplateType; string templateName = et.TemplateName; string templateDisplayName = et.TemplateDisplayName; while (EmailTemplateProvider.GetEmailTemplate(templateName, et.TemplateSiteID) != null) { templateName = Increment(templateName, "_", ""); templateDisplayName = Increment(templateDisplayName, "(", ")"); } et.TemplateName = templateName; et.TemplateDisplayName = templateDisplayName; // Get new ID using (CMSActionContext context = new CMSActionContext()) { // Disable versioning to prevent creating new version on first set context.CreateVersion = false; EmailTemplateProvider.SetEmailTemplate(et); } List <Guid> convTable = new List <Guid>(); try { MetaFileInfoProvider.CopyMetaFiles(tmpId, et.TemplateID, NewsletterObjectType.NEWSLETTERTEMPLATE, MetaFileInfoProvider.OBJECT_CATEGORY_TEMPLATE, convTable); } catch (Exception e) { ShowError(e.Message); EmailTemplateProvider.DeleteEmailTemplate(et); return; } for (int i = 0; i < convTable.Count; i += 2) { et.TemplateBody = et.TemplateBody.Replace(convTable[i].ToString(), convTable[i + 1].ToString()); } EmailTemplateProvider.SetEmailTemplate(et); } break; } }