using System; using System.Collections; using umbraco.editorControls.wysiwyg; using umbraco.uicontrols; using System.Web.UI; namespace umbraco.editorControls.ultraSimpleMailer { /// /// Summary description for ultraSimpleMailerEditor. /// public class ultraSimpleMailerEditor : umbraco.editorControls.tinyMCE3.TinyMCE, interfaces.IDataFieldWithButtons { umbraco.cms.businesslogic.datatype.DefaultData _data; string _configuration; private controls.progressBar pb; public ultraSimpleMailerEditor(umbraco.cms.businesslogic.datatype.DefaultData Data, string Configuration) : base(Data, Configuration) { _configuration = Configuration; _data = Data; } protected override void OnLoad(EventArgs e) { base.OnLoad (e); // init progressbar pb = new umbraco.controls.progressBar(); Page.ClientScript.RegisterClientScriptBlock(Page.GetType(), "UltraSimpleMailerJs", ""); string[] config = _configuration.Split("|".ToCharArray()); cms.businesslogic.member.MemberGroup mg = new umbraco.cms.businesslogic.member.MemberGroup(int.Parse(config[11])); string totalReceip = mailerLogic.GetTotalReceiptients(mg).ToString(); Page.ClientScript.RegisterClientScriptBlock(Page.GetType(), "ultraSimpleMailerAjax", ""); Page.ClientScript.RegisterClientScriptBlock(Page.GetType(), "progressBar", ""); Page.ClientScript.RegisterClientScriptBlock(Page.GetType(), "progressBarCss", ""); // We need to make sure we have a reference to the legacy ajax calls in the scriptmanager presentation.webservices.ajaxHelpers.EnsureLegacyCalls(base.Page); } protected override void Render(System.Web.UI.HtmlTextWriter writer) { // Debug - needs logic string[] config = _configuration.Split("|".ToCharArray()); cms.businesslogic.member.MemberGroup mg = new umbraco.cms.businesslogic.member.MemberGroup(int.Parse(config[11])); writer.WriteLine(""); writer.WriteLine(""); if (umbraco.helper.Request(this.ClientID + "_doTest") == "" && umbraco.helper.Request(this.ClientID + "_doSend") == "") base.Render (writer); else { writer.WriteLine("
"); if (umbraco.helper.Request(this.ClientID + "_sendButton") != "") { // Test mail if (umbraco.helper.Request(this.ClientID + "_doTest") != "") { writer.WriteLine("

Send newsletter to test...


"); mailerLogic.SendTestmail(umbraco.helper.Request(this.ClientID + "_test_rcp"), new cms.businesslogic.property.Property(_data.PropertyId), config[9], config[10], true); writer.WriteLine("Test mail sent to: " + umbraco.helper.Request(this.ClientID + "_test_rcp") + "
"); } else { writer.WriteLine("

Send newsletter to all...


"); mailerLogic.SendMail(mg, new cms.businesslogic.property.Property(_data.PropertyId), config[9], config[10], true); writer.WriteLine("Sent...
"); } } else { if (umbraco.helper.Request(this.ClientID + "_doTest") != "") { writer.WriteLine("

Send newsletter to test...


"); writer.WriteLine("Send test to: "); writer.WriteLine(""); } else { string strScript = " alert('The MassMailer / UltraSimplerMailer is incompatible with Umbraco 4'); umbPgStep = 1;\n umbPgIgnoreSteps = true;\n"; if (ScriptManager.GetCurrent(Page).IsInAsyncPostBack) ScriptManager.RegisterClientScriptBlock(this, this.GetType(), this.ClientID, strScript, true); else Page.ClientScript.RegisterStartupScript(this.GetType(), this.ClientID, strScript, true); writer.WriteLine("


\"Sending
\n" + " Sending mails...\n" + "
\n" + "
\n"); // Progressbar pb.ID = "ultraSimpleMailerUpgradeStatus"; pb.Width = 200; pb.RenderControl(writer); writer.WriteLine("


\n" + "
"); writer.WriteLine("

Send newsletter to all...


"); writer.WriteLine("Please confirm that you want to send this message to " + mailerLogic.GetTotalReceiptients(mg).ToString() + " recipients
"); writer.WriteLine(" Yes
"); writer.WriteLine(""); writer.WriteLine("
"); } } writer.WriteLine("
"); } } public object[] MenuIcons { get { object[] _buttons = { }; ArrayList buttons = new ArrayList(); for (int i=0;i<_buttons.Length;i++) buttons.Add(_buttons[i]); // Add the two new buttons MenuIconI menuItemSend = new MenuIconClass(); menuItemSend.OnClickCommand = "ultraSimpleMailer_doSend('" + this.ClientID + "')"; menuItemSend.ImageURL = "/umbraco_client/ultraSimpleMailer/images/newsletterSend.gif"; menuItemSend.AltText = "Send newsletter to all"; menuItemSend.ID = "sendToAll"; buttons.Insert(0, menuItemSend); MenuIconI menuItemTest = new MenuIconClass(); menuItemTest.OnClickCommand = "ultraSimpleMailer_doSendTest('" + this.ClientID + "')"; menuItemTest.ImageURL = "/umbraco_client/ultraSimpleMailer/images/newsletterSendTest.gif"; menuItemTest.AltText = "Test newsletter by sending to a mail address you specify"; menuItemTest.ID = "sendToTest"; buttons.Insert(1, menuItemTest); buttons.Insert(2, "|"); // Re-create the button array _buttons = new object[buttons.Count]; for (int i=0;i