/// <summary> /// Handles the OnClick event of the rbAddViewPage control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param> protected void rbAddViewPage_OnClick(object sender, EventArgs e) { var docksCondition = new DocksCondition { Id = Guid.NewGuid(), ActivityType = ActivityType.ViewPage, ActualPeriod = 180, Code = txtFilterText.Text }; DocksConditions.Add(docksCondition); AddRadDock(docksCondition); txtFilterText.Text = string.Empty; }
/// <summary> /// Handles the Init event of the Page control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param> protected void Page_Init(object sender, EventArgs e) { if (IsEditMode && DocksConditions.Count == 0) { tbl_WorkflowTemplate workflowTemplate = null; var workflowTemplateConditionEvents = DataManager.WorkflowTemplateConditionEvent.SelectAllByWorkflowTemplateId(EditObjectId.Value); foreach (var workflowTemplateConditionEvent in workflowTemplateConditionEvents) { var condition = new DocksCondition { Id = Guid.NewGuid(), ActivityType = (ActivityType)workflowTemplateConditionEvent.ActivityType, ActualPeriod = (int)workflowTemplateConditionEvent.ActualPeriod }; if (workflowTemplateConditionEvent.ActivityType != (int)ActivityType.ViewPage) { if (workflowTemplateConditionEvent.ActivityType == (int)ActivityType.OpenForm || workflowTemplateConditionEvent.ActivityType == (int)ActivityType.FillForm || workflowTemplateConditionEvent.ActivityType == (int)ActivityType.CancelForm) { var codeAndParameter = workflowTemplateConditionEvent.Code.Split('#'); var siteActivityRule = DataManager.SiteActivityRules.SelectFormByCode(CurrentUser.Instance.SiteID, codeAndParameter[0]); condition.SiteActivityRuleId = siteActivityRule.ID; if (codeAndParameter.Length > 1 && !string.IsNullOrEmpty(codeAndParameter[1])) { condition.Parameter = codeAndParameter[1]; } } else if (workflowTemplateConditionEvent.ActivityType == (int)ActivityType.DownloadFile) { var link = DataManager.Links.SelectFormByCode(CurrentUser.Instance.SiteID, workflowTemplateConditionEvent.Code); condition.SiteActivityRuleId = link.ID; } } else { condition.Code = workflowTemplateConditionEvent.Code; } DocksConditions.Add(condition); } } foreach (var docksCondition in DocksConditions) { AddRadDock(docksCondition); } }
/// <summary> /// Handles the OnDropped event of the rlb control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="Telerik.Web.UI.RadListBoxDroppedEventArgs"/> instance containing the event data.</param> protected void rlb_OnDropped(object sender, RadListBoxDroppedEventArgs e) { var activityType = ActivityType.FillForm; switch (((RadListBox)sender).ID) { case "rblViewPages": activityType = ActivityType.ViewPage; break; case "rlbForms": activityType = ActivityType.FillForm; break; case "rlbFiles": activityType = ActivityType.DownloadFile; break; } foreach (var item in e.SourceDragItems) { var docksCondition = new DocksCondition { Id = Guid.NewGuid(), ActivityType = activityType, ActualPeriod = 180 }; if (((RadListBox)sender).ID != "rblViewPages") { docksCondition.SiteActivityRuleId = item.Value.ToGuid(); } else { docksCondition.Code = item.Value; } DocksConditions.Add(docksCondition); AddRadDock(docksCondition); } }
/// <summary> /// Adds the RAD dock. /// </summary> /// <param name="docksCondition">The docks condition.</param> /// <returns></returns> protected RadDock AddRadDock(DocksCondition docksCondition) { dynamic data = null; var radDock = new RadDock { Text = string.Empty, ID = "RadDock" + docksCondition.Id, Skin = "Windows7", DockMode = DockMode.Docked, Width = new Unit(500, UnitType.Pixel), UniqueName = docksCondition.Id.ToString() }; radDock.Attributes.Add("ActivityType", ((int)docksCondition.ActivityType).ToString()); switch (docksCondition.ActivityType) { case ActivityType.DownloadFile: var link = DataManager.Links.SelectById(docksCondition.SiteActivityRuleId); data = new { Id = link.ID, link.Name }; radDock.Attributes.Add("Code", link.Code); break; case ActivityType.OpenForm: case ActivityType.FillForm: case ActivityType.CancelForm: var siteActivityRule = DataManager.SiteActivityRules.SelectById(docksCondition.SiteActivityRuleId); data = new { Id = siteActivityRule.ID, siteActivityRule.Name }; radDock.Attributes.Add("Code", siteActivityRule.Code); break; case ActivityType.ViewPage: radDock.Attributes.Add("Code", docksCondition.Code); break; } var labelName = string.Empty; switch (docksCondition.ActivityType) { case ActivityType.ViewPage: radDock.Title = string.Format("Просмотр страницы \"{0}\"", docksCondition.Code); labelName = "URL:"; break; case ActivityType.FillForm: radDock.Title = string.Format("Заполнение формы \"{0}\"", data.Name); labelName = "Форма:"; break; case ActivityType.OpenForm: radDock.Title = string.Format("Открытие формы \"{0}\"", data.Name); labelName = "Форма:"; break; case ActivityType.CancelForm: radDock.Title = string.Format("Отмена формы \"{0}\"", data.Name); labelName = "Форма:"; break; case ActivityType.DownloadFile: radDock.Title = string.Format("Скачивание файла \"{0}\"", data.Name); labelName = "Файл:"; break; } var table = new Table(); var tableRow1 = new TableRow(); var tableRow2 = new TableRow(); var tableRow3 = new TableRow(); var tableCell1_1 = new TableCell { ColumnSpan = 2 }; var tableCell2_1 = new TableCell { Width = new Unit(246), VerticalAlign = VerticalAlign.Top }; var tableCell2_2 = new TableCell { VerticalAlign = VerticalAlign.Top }; var tableCell3_1 = new TableCell { Width = new Unit(246), VerticalAlign = VerticalAlign.Top }; var tableCell3_2 = new TableCell(); tableCell1_1.Attributes.CssStyle.Add("padding", "3px 0"); tableCell2_1.Attributes.CssStyle.Add("padding", "3px 0"); tableCell3_1.Attributes.CssStyle.Add("padding", "3px 0"); tableCell1_1.Controls.Add(new Label { Text = labelName }); if (docksCondition.ActivityType != ActivityType.ViewPage) { var dcbForms = (DictionaryComboBox)LoadControl("~/UserControls/DictionaryComboBox.ascx"); dcbForms.ID = "dcbForms"; dcbForms.DictionaryName = docksCondition.ActivityType == ActivityType.DownloadFile ? "tbl_Links" : "tbl_SiteActivityRules"; dcbForms.DataTextField = "Name"; dcbForms.CssClass = "select-text"; dcbForms.ShowEmpty = false; dcbForms.SiteID = CurrentUser.Instance.SiteID; dcbForms.Width = new Unit(480); dcbForms.AutoPostBack = true; var filter = new DictionaryComboBox.DictionaryFilterColumn(); filter = new DictionaryComboBox.DictionaryFilterColumn { Name = "RuleTypeID", DbType = DbType.Int32, Value = docksCondition.ActivityType != ActivityType.DownloadFile ? ((int)RuleType.Form).ToString() : ((int)RuleType.File).ToString() }; dcbForms.Filters.Add(filter); dcbForms.SelectedIndexChanged += new RadComboBoxSelectedIndexChangedEventHandler(dcbForms_SelectedIndexChanged); dcbForms.BindData(); dcbForms.SelectedValue = data.Id; tableCell1_1.Controls.Add(dcbForms); tableRow1.Controls.Add(tableCell1_1); if (docksCondition.ActivityType != ActivityType.DownloadFile && docksCondition.ActivityType != ActivityType.ViewPage) { tableCell2_1.Controls.Add(new Label { Text = "Действие:" }); var ddlActivityType = new DropDownList { ID = "ddlActivityType", AutoPostBack = true, CssClass = "select-text" }; ddlActivityType.Items.Add(new ListItem("Заполнение", ((int)ActivityType.FillForm).ToString())); ddlActivityType.Items.Add(new ListItem("Открытие", ((int)ActivityType.OpenForm).ToString())); ddlActivityType.Items.Add(new ListItem("Отмена", ((int)ActivityType.CancelForm).ToString())); ddlActivityType.Items.FindByValue(((int)docksCondition.ActivityType).ToString()).Selected = true; ddlActivityType.SelectedIndexChanged += new EventHandler(ddlActivityType_SelectedIndexChanged); tableCell2_1.Controls.Add(ddlActivityType); tableRow2.Controls.Add(tableCell2_1); } } else { tableCell1_1.Controls.Add(new TextBox { ID = "txtCode", CssClass = "input-text", Text = docksCondition.Code, Width = new Unit(466) }); tableCell1_1.Controls.Add(new RequiredFieldValidator { ControlToValidate = "txtCode", Text = "*", ValidationGroup = "RunCondition", CssClass = "required", Display = ValidatorDisplay.Dynamic }); tableRow1.Controls.Add(tableCell1_1); } if (docksCondition.ActivityType != ActivityType.DownloadFile && docksCondition.ActivityType != ActivityType.ViewPage) { tableCell2_2.Attributes.CssStyle.Add("padding-bottom", "5px"); tableCell2_2.Controls.Add(new Label { Text = "Параметр:" }); tableCell2_2.Controls.Add(new TextBox { ID = "txtParameter", CssClass = "input-text", Text = docksCondition.Parameter }); tableRow2.Controls.Add(tableCell2_2); } var simpleMode = ((LeadForceBasePage)Page).CurrentModuleEditionOptions.SingleOrDefault(a => a.SystemName == "SimpleMode"); if (simpleMode == null && !((LeadForceBasePage)Page).IsDefaultEdition) { tableCell3_1.Controls.Add(new Label { Text = "Период актуальности, дней:" }); } var txtActualPeriod = new RadNumericTextBox { ID = "txtActualPeriod", Type = NumericType.Number, CssClass = "input-text", Value = docksCondition.ActualPeriod, ValidationGroup = "RunCondition" }; txtActualPeriod.NumberFormat.GroupSeparator = ""; txtActualPeriod.NumberFormat.AllowRounding = false; if (simpleMode != null || ((LeadForceBasePage)Page).IsDefaultEdition) { txtActualPeriod.Visible = false; } tableCell3_1.Controls.Add(txtActualPeriod); var rfvActualPeriod = new RequiredFieldValidator { ControlToValidate = "txtActualPeriod", Text = "*", CssClass = "required", ValidationGroup = "RunCondition" }; if (simpleMode == null && !((LeadForceBasePage)Page).IsDefaultEdition) { tableCell3_1.Controls.Add(rfvActualPeriod); } tableRow3.Controls.Add(tableCell3_1); table.Controls.Add(tableRow1); if (docksCondition.ActivityType == ActivityType.DownloadFile || docksCondition.ActivityType == ActivityType.ViewPage) { if (simpleMode == null && !((LeadForceBasePage)Page).IsDefaultEdition) { tableCell3_2.Controls.Add(new Literal { Text = " " }); tableRow3.Controls.Add(tableCell3_2); } } else { table.Controls.Add(tableRow2); } table.Controls.Add(tableRow3); radDock.ContentContainer.Controls.Add(table); radDockZone.Controls.Add(radDock); return(radDock); }