static string GetEmailAddressList(string mailto, DataSet data)
        {
            var addresses = new List <string>();

            foreach (var source in mailto.Split(';'))
            {
                if (source.StartsWith("[") && source.EndsWith("]"))
                {
                    var fieldtitle = source.Substring(1, source.Length - 2);
                    var rows       =
                        data.Tables[DataSetTableName.Fields].Select(string.Format("{0}=\'{1}\'", FieldsTableColumn.Title,
                                                                                  fieldtitle));
                    if (rows.Length == 1)
                    {
                        fieldtitle = (string)(rows[0][FieldsTableColumn.Title]);
                        var type = DataType.ByName((string)(rows[0][FieldsTableColumn.Type]));
                        var emailAdressSource = type as IEmailAdressSource;
                        if (emailAdressSource != null)
                        {
                            addresses.Add((emailAdressSource).GetEmailAddress(fieldtitle,
                                                                              data.Tables[DataSetTableName.Data]
                                                                              .Rows[0]));
                        }
                    }
                }
                else
                {
                    addresses.Add(source);
                }
            }
            return(string.Join(";", addresses.ToArray()));
        }
Esempio n. 2
0
        void UpdateField()
        {
            var fieldOrder = (int)DataSource[FieldsTableColumn.Order];

            var newFieldType  = cboFieldType.SelectedItem.Value;
            var newHelpText   = txtHelpText.Text.Trim();
            var fieldTitle    = GetFieldTitle();
            var inputSettings = GetInputSettings();
            var formerTitle   = DataSource[FieldsTableColumn.Title].AsString();
            var formerType    = DataType.ByName(DataSource[FieldsTableColumn.Type].AsString());
            var id            = DataSource[FieldsTableColumn.Id].AsInt();

            if (IsAllowedFieldTitle(fieldTitle) && IsUniqueFieldTitle(fieldTitle, formerTitle))
            {
                if (formerType.IsUserDefinedField)
                {
                    if (IsNewField(id))
                    {
                        id = FieldController.AddField(ModuleContext.ModuleId, fieldTitle,
                                                      fieldOrder, newHelpText,
                                                      chkRequired.Checked, newFieldType, txtDefault.Text,
                                                      chkDisplayOnList.Checked, chkShowOnEdit.Checked,
                                                      chkSearchable.Checked, chkRestrictedFormField.Checked,
                                                      chkMultipleValues.Checked, inputSettings,
                                                      txtOutputSettings.Text, chkNormalizeFlag.Checked,
                                                      txtValidationRule.Text, txtValidationMessage.Text,
                                                      txtEditStyle.Text);
                        if (txtDefault.Text != "")
                        {
                            new UserDefinedTableController(ModuleContext).FillDefaultData(id, txtDefault.Text);
                        }
                    }
                    else
                    {
                        FieldController.UpdateField(id, fieldTitle, newHelpText, chkRequired.Checked,
                                                    newFieldType, txtDefault.Text, chkDisplayOnList.Checked,
                                                    chkShowOnEdit.Checked, chkSearchable.Checked,
                                                    chkRestrictedFormField.Checked, chkMultipleValues.Checked,
                                                    inputSettings,
                                                    txtOutputSettings.Text, chkNormalizeFlag.Checked,
                                                    txtValidationRule.Text, txtValidationMessage.Text,
                                                    txtEditStyle.Text);
                    }
                }
                else
                {
                    FieldController.UpdateField(id,
                                                fieldTitle, newHelpText, true, formerType.Name, string.Empty,
                                                chkDisplayOnList.Checked, chkShowOnEdit.Checked, chkSearchable.Checked,
                                                chkRestrictedFormField.Checked, false,
                                                string.Empty,
                                                txtOutputSettings.Text, chkNormalizeFlag.Checked,
                                                string.Empty, string.Empty, string.Empty);
                }
            }
            ListFieldSettings.Update(id, DataType.ByName(newFieldType));
            FormFieldSettings.Update(id, DataType.ByName(newFieldType));
        }
Esempio n. 3
0
        void cboFieldType_SelectedIndexChanged(object sender, EventArgs e)
        {
            var newType = DataType.ByName(cboFieldType.SelectedValue);

            CheckCast(newType);
            ShowOrHideSettingsByType(newType);
            FormFieldSettings.Show(newType);
            ListFieldSettings.Show(newType);
        }
Esempio n. 4
0
        /// -----------------------------------------------------------------------------
        /// <summary>
        ///   Gets all field definitions for one UDT table (module) from the database
        /// </summary>
        /// <param name="moduleId"></param>
        /// <param name = "addNewColumn">specifies, whether a new column shall be added</param>
        /// <param name = "addAuditColumns">specifies, whether colums for creation and update (user and timestamp) shall be added</param>
        /// <returns>All field settings as DataTable</returns>
        /// -----------------------------------------------------------------------------
        public static DataTable GetFieldsTable(int moduleId, bool addNewColumn, bool addAuditColumns)
        {
            DataTable fieldsTable;

            using (var dr = DataProvider.Instance().GetFields(moduleId))
            {
                fieldsTable = Globals.ConvertDataReaderToDataTable(dr);
            }


            //Insert CreatedBy & Co Fields
            if (addAuditColumns && fieldsTable.Rows.Count == 0)
            {
                const int order = 0;
                foreach (var localizedFieldType in DataType.SystemDataTypes().Keys)
                {
                    AddField(moduleId, localizedFieldType, order, string.Empty, true,
                             DataType.SystemDataTypes()[localizedFieldType],
                             string.Empty, false, false, false, false, false, string.Empty, string.Empty, false,
                             string.Empty, string.Empty, string.Empty);
                }
                return(GetFieldsTable(moduleId, addNewColumn));
                //Reload fields again
            }

            if (addNewColumn)
            {
                //find position (insert before first trailing "insert/updated by/at" field):
                var pos      = fieldsTable.Rows.Count;
                var intOrder = 0;
                while (pos >= 1)
                {
                    var fieldType = fieldsTable.Rows[pos - 1]["FieldType"].ToString();
                    if (DataType.ByName(fieldType).IsUserDefinedField)
                    {
                        break;
                    }
                    pos--;
                    intOrder = int.Parse((fieldsTable.Rows[pos]["FieldOrder"].ToString()));
                }
                var row = fieldsTable.NewRow();
                row[FieldsTableColumn.Id]            = Null.NullInteger.ToString(CultureInfo.InvariantCulture);
                row[FieldsTableColumn.Title]         = string.Empty;
                row[FieldsTableColumn.Required]      = false;
                row[FieldsTableColumn.Type]          = "String";
                row[FieldsTableColumn.Default]       = string.Empty;
                row[FieldsTableColumn.Visible]       = true;
                row[FieldsTableColumn.Searchable]    = false;
                row[FieldsTableColumn.IsPrivate]     = false;
                row[FieldsTableColumn.NormalizeFlag] = false;
                row[FieldsTableColumn.Order]         = intOrder;
                row[FieldsTableColumn.ShowOnEdit]    = true;
                fieldsTable.Rows.InsertAt(row, pos);
            }
            return(fieldsTable);
        }
Esempio n. 5
0
 void Page_Load(object sender, EventArgs e)
 {
     divError.Visible   = false;
     divWarning.Visible = false;
     if (IsPostBack)
     {
         var selectedType = DataType.ByName(cboFieldType.SelectedValue);
         FormFieldSettings.Show(selectedType);
         ListFieldSettings.Show(selectedType);
     }
 }
Esempio n. 6
0
        public void Bind()
        {
            txtFieldTitle.Text = DataSource[FieldsTableColumn.Title].AsString();

            var type = DataType.ByName(DataSource[FieldsTableColumn.Type].AsString("String"));

            cboFieldType.DataSource = type.IsUserDefinedField ? DataType.ContentDataTypes() : DataType.SystemDataTypes();
            cboFieldType.DataBind();
            cboFieldType.SelectedValue = type.Name;
            lblType.Text = type.GetLocalization();

            txtHelpText.Text = DataSource[FieldsTableColumn.HelpText].AsString();
            txtDefault.Text  = DataSource[FieldsTableColumn.Default].AsString();
            var inputSettings = DataSource[FieldsTableColumn.InputSettings].AsString();

            chkRequired.Checked            = DataSource[FieldsTableColumn.Required].AsBoolean();
            chkDisplayOnList.Checked       = DataSource[FieldsTableColumn.Visible].AsBoolean();
            chkRestrictedFormField.Checked = DataSource[FieldsTableColumn.IsPrivate].AsBoolean();
            chkSearchable.Checked          = DataSource[FieldsTableColumn.Searchable].AsBoolean();

            if (inputSettings.EndsWith(Definition.verticalRadioButtonEnabledToken))
            {
                rblListType.SelectedValue = "RadioButtons";
            }
            else if (inputSettings.EndsWith(Definition.horizontalRadioButtonEnabledToken))
            {
                rblListType.SelectedValue = "RadioButtonsHorizontal";
            }

            txtInputSettings.Text     = Regex.Replace(inputSettings, "-\\[\\[(?:h|v)RBL]]$", "");
            txtOutputSettings.Text    = DataSource[FieldsTableColumn.OutputSettings].AsString();
            chkNormalizeFlag.Checked  = DataSource[FieldsTableColumn.NormalizeFlag].AsBoolean();
            chkMultipleValues.Checked = DataSource[FieldsTableColumn.MultipleValues].AsBoolean();
            chkShowOnEdit.Checked     = DataSource[FieldsTableColumn.ShowOnEdit].AsBoolean();
            txtValidationRule.Text    = DataSource[FieldsTableColumn.ValidationRule].AsString();
            txtValidationMessage.Text = DataSource[FieldsTableColumn.ValidationMessage].AsString();
            txtEditStyle.Text         = DataSource[FieldsTableColumn.EditStyle].AsString();
            if (cboInputSettings.Visible)
            {
                cboInputSettings.SelectedValue = inputSettings.AsString("String");
            }
            ShowOrHideSettingsByType(type);

            var id = DataSource[FieldsTableColumn.Id].AsInt();

            DataBind();
            if (!IsPostBack)
            {
                FormFieldSettings.Show(type);
                FormFieldSettings.BindData(id, Settings, type);
                ListFieldSettings.Show(type);
                ListFieldSettings.BindData(id, Settings, type);
            }
        }
Esempio n. 7
0
        protected string GetTypeName(string name)
        {
            var type = DataType.ByName(name);

            if (type.Name == name)
            {
                return(type.GetLocalization());
            }

            name = new PortalSecurity().InputFilter(name, PortalSecurity.FilterFlag.NoMarkup);
            UI.Skins.Skin.AddModuleMessage(this,
                                           string.Format(
                                               Localization.GetString("DataTypeNotInstalled", LocalResourceFile),
                                               name), ModuleMessage.ModuleMessageType.RedError);
            return(string.Format("<img src=\"{1}/images/deny.gif\" alt=\"{0} not installed\" /> {0}", name,
                                 Globals.ApplicationPath));
        }
Esempio n. 8
0
        void grdFields_DeleteCommand(object source, DataGridCommandEventArgs e)
        {
            try
            {
                var fields    = FieldController.GetFieldsTable(ModuleContext.ModuleId, false);
                var fieldId   = int.Parse(Convert.ToString(grdFields.DataKeys[e.Item.ItemIndex]));
                var fieldType =
                    fields.Select(string.Format("UserDefinedFieldId={0}", fieldId))[0][FieldsTableColumn.Type].AsString();

                if (DataType.ByName(fieldType).IsUserDefinedField)
                {
                    FieldController.DeleteField(fieldId);
                }

                grdFields.EditItemIndex = Convert.ToInt32(-1);
                BindFields();
            }
            catch (Exception exc) //Module failed to load
            {
                Exceptions.ProcessModuleLoadException(this, exc);
            }
        }
Esempio n. 9
0
        void CheckCast(DataType newType)
        {
            var formerType = DataType.ByName(DataSource[FieldsTableColumn.Type].AsString("String"));

            var allowedCasts = formerType.SupportedCasts.Split("|".ToCharArray());

            if (allowedCasts.Any(n => newType.Name == n))
            {
                return;
            }
            // Cast is not allowed, now we need to check whether data already exists for that column
            var fieldId = DataSource[FieldsTableColumn.Id].AsInt();

            if (new UserDefinedTableController(ModuleContext).FieldHasData(fieldId))
            {
                var message = LocalizeString("UnsupportedCast.ErrorMessage")
                              .AsString("You have changed the fieldtype for {2} from {0} to {1}. Note that this may cause an error");

                var title = new PortalSecurity().InputFilter(txtFieldTitle.Text.Trim(), PortalSecurity.FilterFlag.NoScripting);
                message = string.Format(message, formerType.GetLocalization(),
                                        newType.GetLocalization(), title);
                ShowWarning(message);
            }
        }
Esempio n. 10
0
        public EditControl Add(string fieldTitle, string fieldType, int fieldId, string controlHelpText,
                               string defaultValue, bool required, string validationRule, string validationMsg,
                               string editStyle, string inputSettings, string outputSettings, bool normalizeFlag,
                               bool multipleValuesFlag, DataTable fieldSettingsTable, IFormEvents formEvents)
        {
            var editor = DataType.ByName(fieldType).EditControl;

            var tr = new TokenReplace {
                ModuleInfo = _moduleContext.Configuration
            };
            var strDefaultValue = tr.ReplaceEnvironmentTokens(defaultValue);

            var listInputType = EditControl.InputType.DropdownList;

            if (inputSettings.EndsWith(Definition.verticalRadioButtonEnabledToken))
            {
                inputSettings =
                    inputSettings.Remove(inputSettings.Length - Definition.verticalRadioButtonEnabledToken.Length);
                listInputType = EditControl.InputType.verticalRadioButtons;
            }
            else if (inputSettings.EndsWith(Definition.horizontalRadioButtonEnabledToken))
            {
                inputSettings =
                    inputSettings.Remove(inputSettings.Length - Definition.horizontalRadioButtonEnabledToken.Length);
                listInputType = EditControl.InputType.horizontalRadioButtons;
            }

            editor.Initialise(fieldTitle, fieldType, fieldId, _moduleContext.ModuleId, controlHelpText, strDefaultValue,
                              required, validationRule, validationMsg, editStyle, inputSettings, outputSettings,
                              normalizeFlag, multipleValuesFlag, _inputFilterTags, _inputFilterScript, listInputType,
                              _moduleContext, fieldSettingsTable, formEvents);

            editor.ID = string.Format("Edit{0}", fieldId);
            Add(fieldTitle, editor);
            return(editor);
        }
Esempio n. 11
0
 protected DataType DataTypeByName(string name)
 {
     return(DataType.ByName(name));
 }