示例#1
0
        /// <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;
        }
示例#2
0
        /// <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);
            }
        }
示例#3
0
        /// <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);
            }
        }
示例#4
0
        /// <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 = "&nbsp;"
                    });
                    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);
        }