Esempio n. 1
0
        protected override void OnInit(EventArgs e)
        {
            base.OnInit(e);
            Field.HideField += Field_HideField;
            var fieldId = Request.QueryString["fieldId"];
            var fields  = FieldController.GetFieldsTable(ModuleContext.ModuleId, fieldId == "-1");
            var filter  = string.Format("{0}={1}", FieldsTableColumn.Id, fieldId);

            Field.DataSource = new DataView(fields, filter, "", DataViewRowState.CurrentRows)[0];
            var fieldSettings = FieldSettingsController.GetFieldSettingsTable(ModuleContext.ModuleId);

            Field.Settings = fieldSettings;
            Field.Bind();
            Field.Visible        = true;
            Field.LocalizeString = LocalizeString;
            Field.ModuleContext  = ModuleContext;
        }
Esempio n. 2
0
        public DataSet GetRow(int userDefinedRowId, bool withPreRenderedValues, bool filterScript = false)
        {
            var     fieldsTable = FieldController.GetFieldsTable(ModuleId, false, false);
            DataSet ds;

            using (var dr = DataProvider.Instance().GetRow(userDefinedRowId, ModuleId))
            {
                ds = BuildMainDataSet(fieldsTable, dr, !withPreRenderedValues);
                var fieldTablesettings = FieldSettingsController.GetFieldSettingsTable(ModuleId);
                ds.Tables.Add(fieldTablesettings);
                if (withPreRenderedValues)
                {
                    RenderValuesToHtmlInsideDataSet(ds, filterScript);
                }
                ds.Namespace = "DotNetNuke/UserDefinedTable";
            }

            return(ds);
        }
        static void AddFields(int moduleId, DataSet ds)
        {
            var fieldIndex    = ds.Tables[DataSetTableName.Fields].Rows.Count;
            var fieldSettings = ds.Tables[DataSetTableName.FieldSettings];

            foreach (DataRow row in ds.Tables[DataSetTableName.Fields].Rows)
            {
                var oldFieldId = row[FieldsTableColumn.Id].AsInt( );
                var newFieldId =
                    FieldController.AddField(moduleId, row[FieldsTableColumn.Title].ToString(),
                                             row.AsString(FieldsTableColumn.Order).AsInt(fieldIndex),
                                             row.AsString((FieldsTableColumn.HelpText)),
                                             row.AsString(FieldsTableColumn.Required).AsBoolean(),
                                             row.AsString((FieldsTableColumn.Type)),
                                             row.AsString((FieldsTableColumn.Default)),
                                             row.AsString(FieldsTableColumn.Visible).AsBoolean(),
                                             row.AsString(FieldsTableColumn.ShowOnEdit).AsBoolean(true),
                                             row.AsString(FieldsTableColumn.Searchable).AsBoolean(),
                                             row.AsString(FieldsTableColumn.IsPrivate).AsBoolean(),
                                             row.AsString(FieldsTableColumn.MultipleValues).AsBoolean(),
                                             row.AsString((FieldsTableColumn.InputSettings)),
                                             row.AsString((FieldsTableColumn.OutputSettings)),
                                             row.AsString(FieldsTableColumn.NormalizeFlag).AsBoolean(),
                                             row.AsString((FieldsTableColumn.ValidationRule)),
                                             row.AsString((FieldsTableColumn.ValidationMessage)),
                                             row.AsString((FieldsTableColumn.EditStyle)));

                if (fieldSettings != null)
                {
                    foreach (DataRowView setting in fieldSettings.WithFieldId(oldFieldId))
                    {
                        FieldSettingsController.UpdateFieldSetting(
                            (string)setting["SettingName"],
                            (string)setting["SettingValue"],
                            newFieldId);
                    }
                }
                row[FieldsTableColumn.Id] = newFieldId;
                fieldIndex--;
            }
        }
Esempio n. 4
0
        /// -----------------------------------------------------------------------------
        /// <summary>
        ///   Gets all Data values of an UDT table (module) from the Database as DataSet
        /// </summary>
        /// <param name = "withPreRenderedValues">specifies, whether links, dates etc. shall be prerendered for XML output</param>
        /// <returns>All field values as DataSet</returns>
        /// -----------------------------------------------------------------------------
        public DataSet GetDataSet(bool withPreRenderedValues)
        {
            var     fieldsTable = FieldController.GetFieldsTable(ModuleId, addNewColumn: false, addAuditColumns: false);
            DataSet ds;

            using (var dr = DataProvider.Instance().GetRows(ModuleId))
            {
                ds = BuildMainDataSet(fieldsTable, dr, !withPreRenderedValues);
            }
            var fieldSettingsTable = FieldSettingsController.GetFieldSettingsTable(ModuleId);

            ds.Tables.Add(fieldSettingsTable);

            SetEditLinksAndVisibilityBasedOnPermissions(ds);

            if (withPreRenderedValues)
            {
                RenderValuesToHtmlInsideDataSet(ds);
            }
            ds.Namespace = "DotNetNuke/UserDefinedTable";
            return(ds);
        }
Esempio n. 5
0
        public void Update(int fieldId, DataType type)
        {
            var types = type.FieldSettingTypes.Where(t => t.Section == Section).ToArray();

            for (var i = 0; i < types.Count(); i++)
            {
                var value = string.Empty;
                var t     = types[i].SystemType;
                if (t == "Boolean")
                {
                    var cb = Repeater1.Controls[i].FindControl("Checkbox") as CheckBox;
                    if (cb != null)
                    {
                        value = cb.Checked.ToString(CultureInfo.InvariantCulture);
                    }
                }
                else
                {
                    var tb = Repeater1.Controls[i].FindControl("Textbox") as TextBox;
                    if (tb != null)
                    {
                        value = tb.Text;
                    }
                }

                if (t == "Int")
                {
                    value = value.AsInt().ToString(CultureInfo.InvariantCulture);
                }

                var key = types[i].Key;
                if (types[i].VerifySetting(value))
                {
                    FieldSettingsController.UpdateFieldSetting(key, value, fieldId);
                }
            }
        }
        void BuildEditForm()
        {
            var            fieldSettingsTable = FieldSettingsController.GetFieldSettingsTable(ModuleId);
            var            editForm           = new List <FormColumnInfo>();
            FormColumnInfo currentField;
            var            security = new ModuleSecurity(ModuleContext);

            _editControls = new EditControls(ModuleContext);

            foreach (DataRow dr in Data.Tables[DataSetTableName.Fields].Rows)
            {
                var fieldTitle   = dr[FieldsTableColumn.Title].AsString();
                var dataTypeName = dr[FieldsTableColumn.Type].AsString();
                var dataType     = DataType.ByName(dataTypeName);

                var isColumnEditable =
                    Convert.ToBoolean((!dataType.SupportsHideOnEdit ||
                                       Convert.ToBoolean(dr[FieldsTableColumn.ShowOnEdit])) &&
                                      (!Convert.ToBoolean(dr[FieldsTableColumn.IsPrivate]) ||
                                       security.IsAllowedToEditAllColumns()));

                //If Column is hidden, the Fieldtype falls back to "String" as the related EditControl works perfect even if it is not visibile
                //EditControls of other user defined datatypes may use core controls (e.g. UrlControl or RTE) which are not rock solid regarding viewstate.
                if (!isColumnEditable && dataType.IsUserDefinedField)
                {
                    dataTypeName = "String";
                }

                currentField = new FormColumnInfo {
                    IsUserDefinedField = dataType.IsUserDefinedField
                };

                if (dataType.IsSeparator)
                {
                    var fieldId = (int)dr[FieldsTableColumn.Id];
                    currentField.IsCollapsible = Data.Tables[DataSetTableName.FieldSettings].GetFieldSetting("IsCollapsible", fieldId).AsBoolean();
                    currentField.IsSeparator   = true;
                    if (dr[FieldsTableColumn.Visible].AsBoolean())
                    {
                        currentField.Title = fieldTitle;
                    }
                    currentField.Visible = isColumnEditable;
                }
                else
                {
                    currentField.Help     = dr[FieldsTableColumn.HelpText].AsString();
                    currentField.Title    = dr[FieldsTableColumn.Title].AsString();
                    currentField.Required =
                        Convert.ToBoolean(dr[FieldsTableColumn.Required].AsBoolean() &&
                                          dataType.IsUserDefinedField);

                    //advanced Settings: Dynamic control
                    currentField.EditControl = _editControls.Add(dr[FieldsTableColumn.Title].AsString(),
                                                                 dataTypeName, Convert.ToInt32(dr[FieldsTableColumn.Id]),
                                                                 dr[FieldsTableColumn.HelpText].AsString(),
                                                                 dr[FieldsTableColumn.Default].AsString(),
                                                                 dr[FieldsTableColumn.Required].AsBoolean(),
                                                                 dr[FieldsTableColumn.ValidationRule].AsString(),
                                                                 dr[FieldsTableColumn.ValidationMessage].AsString(),
                                                                 dr[FieldsTableColumn.EditStyle].AsString(),
                                                                 dr[FieldsTableColumn.InputSettings].AsString(),
                                                                 dr[FieldsTableColumn.OutputSettings].AsString(),
                                                                 dr[FieldsTableColumn.NormalizeFlag].AsBoolean(),
                                                                 dr[FieldsTableColumn.MultipleValues].AsBoolean(),
                                                                 fieldSettingsTable,
                                                                 this);
                    currentField.Visible = isColumnEditable;
                }
                editForm.Add(currentField);
            }

            if (CaptchaNeeded())
            {
                if (!Settings.PreferReCaptcha)
                {
                    // use DnnCaptcha
                    _ctlCaptcha = new CaptchaControl
                    {
                        ID            = "Captcha",
                        CaptchaWidth  = Unit.Pixel(130),
                        CaptchaHeight = Unit.Pixel(40),
                        ToolTip       = Localization.GetString("CaptchaToolTip", LocalResourceFile),
                        ErrorMessage  = Localization.GetString("CaptchaError", LocalResourceFile)
                    };
                    currentField = new FormColumnInfo
                    {
                        Title              = Localization.GetString("Captcha", LocalResourceFile),
                        EditControl        = _ctlCaptcha,
                        Visible            = true,
                        IsUserDefinedField = false
                    };
                    editForm.Add(currentField);
                }
            }

            var enableFormTemplate = Settings.EnableFormTemplate;
            var formTemplate       = Settings.FormTemplate;

            if (enableFormTemplate && !string.IsNullOrEmpty(formTemplate))
            {
                BuildTemplateForm(editForm, formTemplate);
            }
            else
            {
                BuildCssForm(editForm);
            }
            //Change captions of buttons in Form mode
            if (IsNewRow && Settings.ListOrForm.Contains("Form"))
            {
                cmdUpdate.Attributes["resourcekey"] = "cmdSend.Text";
            }
        }