protected override void InitializeControls() { base.InitializeControls(); panel = new Panel(); HtmlGenericControl divSettingRow = new HtmlGenericControl("div"); divSettingRow.Attributes.Add("class", "settingrow"); HtmlGenericControl divButtonRow = new HtmlGenericControl("div"); divButtonRow.Attributes.Add("class", "settingrow"); Table table = new Table(); TableRow exampleRow, inputRow; TableCell cell; exampleRow = new TableRow(); table.Rows.Add(exampleRow); table.Rows.Add(inputRow = new TableRow()); // top row cell = new TableCell(); cell.Style[HtmlTextWriterStyle.Color] = "gray"; cell.Style[HtmlTextWriterStyle.FontSize] = "smaller"; requiredValidator = new RequiredFieldValidator(); requiredValidator.ErrorMessage = RequiredTextDefault + RequiredTextSuffix; requiredValidator.Text = RequiredTextDefault + RequiredTextSuffix; requiredValidator.Display = ValidatorDisplay.Dynamic; requiredValidator.ControlToValidate = WrappedTextBox.ID; requiredValidator.ValidationGroup = ValidationGroupDefault; cell.Controls.Add(requiredValidator); uriFormatValidator = new RegularExpressionValidator(); uriFormatValidator.ErrorMessage = UriFormatTextDefault + RequiredTextSuffix; uriFormatValidator.Text = UriFormatTextDefault + RequiredTextSuffix; uriFormatValidator.ValidationExpression = UriRegex; uriFormatValidator.Enabled = UriValidatorEnabledDefault; uriFormatValidator.Display = ValidatorDisplay.Dynamic; uriFormatValidator.ControlToValidate = WrappedTextBox.ID; uriFormatValidator.ValidationGroup = ValidationGroupDefault; cell.Controls.Add(uriFormatValidator); examplePrefixLabel = new Label(); examplePrefixLabel.Text = ExamplePrefixDefault; cell.Controls.Add(examplePrefixLabel); cell.Controls.Add(new LiteralControl(" ")); exampleUrlLabel = new Label(); exampleUrlLabel.Font.Bold = true; exampleUrlLabel.Text = ExampleUrlDefault; cell.Controls.Add(exampleUrlLabel); exampleRow.Cells.Add(cell); // row2 buttonCell = new TableCell(); buttonCell.Controls.Add(WrappedTextBox); inputRow.Cells.Add(buttonCell); loginButton = new Button(); loginButton.ID = "loginButton"; loginButton.Text = ButtonTextDefault; loginButton.ToolTip = ButtonToolTipDefault; loginButton.Click += new EventHandler(loginButton_Click); if (ValidationGroupDefault.Length > 0) { loginButton.ValidationGroup = ValidationGroupDefault; } #if !Mono panel.DefaultButton = loginButton.ID; #endif SiteLabel lbl = new SiteLabel(); lbl.ForControl = WrappedTextBox.ID; lbl.ConfigKey = "OpenIDLabel"; lbl.CssClass = "settinglabel"; divSettingRow.Controls.Add(lbl); divSettingRow.Controls.Add(table); lbl = new SiteLabel(); lbl.ConfigKey = "spacer"; lbl.CssClass = "settinglabel"; divButtonRow.Controls.Add(lbl); divButtonRow.Controls.Add(loginButton); panel.Controls.Add(divSettingRow); panel.Controls.Add(divButtonRow); }
public static void SetupReadOnlyPropertyControl( Panel parentControl, mojoProfilePropertyDefinition propertyDefinition, String propertyValue, Double legacyTimeZoneOffset, TimeZoneInfo timeZone) { if (propertyValue == null) { propertyValue = String.Empty; } Literal rowOpenTag = new Literal(); rowOpenTag.Text = "<div class='settingrow " + propertyDefinition.CssClass + "'>"; parentControl.Controls.Add(rowOpenTag); SiteLabel label = new SiteLabel(); label.ResourceFile = propertyDefinition.ResourceFile; // if key isn't in resource file use assume the resource hasn't been //localized and just use the key as the resource label.ShowWarningOnMissingKey = false; label.ConfigKey = propertyDefinition.LabelResourceKey; label.CssClass = "settinglabel"; label.UseLabelTag = false; parentControl.Controls.Add(label); Label propertyLabel = new Label(); parentControl.Controls.Add(propertyLabel); bool didLoadControl = false; if (propertyDefinition.ISettingControlSrc.Length > 0) { Control c = parentControl.Page.LoadControl(propertyDefinition.ISettingControlSrc); if ((c != null) && (c is IReadOnlySettingControl)) { c.ID = "isc" + propertyDefinition.Name; parentControl.Controls.Add(label); IReadOnlySettingControl settingControl = (IReadOnlySettingControl)c; settingControl.SetReadOnlyValue(propertyValue); parentControl.Controls.Add(c); didLoadControl = true; } } if (!didLoadControl) { if ((propertyDefinition.OptionList.Count > 0) && (propertyDefinition.Type != "CheckboxList")) { DropDownList dd = new DropDownList(); dd.ID = "dd" + propertyDefinition.Name; foreach (mojoProfilePropertyOption option in propertyDefinition.OptionList) { ListItem listItem = new ListItem(); listItem.Value = option.Value; listItem.Text = option.TextResourceKey; if (option.TextResourceKey.Length > 0) { if (HttpContext.Current != null) { Object obj = HttpContext.GetGlobalResourceObject( propertyDefinition.ResourceFile, option.TextResourceKey); if (obj != null) { listItem.Text = obj.ToString(); } } } dd.Items.Add(listItem); } ListItem defaultItem = dd.Items.FindByValue(propertyValue); if (defaultItem != null) { propertyLabel.Text = HttpUtility.HtmlEncode(defaultItem.Text); } //dd.Enabled = false; } else { switch (propertyDefinition.Type) { case "System.Boolean": Literal litBool = new Literal(); string imgVal = propertyValue.ToLower(); if (imgVal.Length == 0) { imgVal = propertyDefinition.DefaultValue.ToLower(); } if (imgVal.Length == 0) { imgVal = "false"; } litBool.Text = "<img src='/Data/SiteImages/" + imgVal + ".png' alt='" + propertyDefinition.Name + "' />"; parentControl.Controls.Add(litBool); break; case "System.DateTime": Literal litDateTime = new Literal(); DateTime dt; if (DateTime.TryParse( propertyValue, CultureInfo.CurrentCulture, DateTimeStyles.AdjustToUniversal, out dt)) { if (propertyDefinition.IncludeTimeForDate) { dt = dt.AddHours(legacyTimeZoneOffset); litDateTime.Text = dt.ToString(); } else { litDateTime.Text = dt.Date.ToShortDateString(); } } else { litDateTime.Text = SecurityHelper.PreventCrossSiteScripting(propertyValue); } parentControl.Controls.Add(litDateTime); break; case "System.String": default: if (propertyValue.Length > 0) { if (propertyDefinition.AllowMarkup) { propertyLabel.Text = SecurityHelper.PreventCrossSiteScripting(propertyValue); } else { if (propertyDefinition.Name.ToLower().IndexOf("url") > -1) { Literal litLink = new Literal(); litLink.Text = "<a href='" + HttpUtility.HtmlEncode(propertyValue) + "'>" + HttpUtility.HtmlEncode(propertyValue) + "</a>"; parentControl.Controls.Add(litLink); } else { propertyLabel.Text = HttpUtility.HtmlEncode(propertyValue); } } } else { propertyLabel.Text = " "; } break; } } } if (propertyLabel.Text.Length > 0) { parentControl.Controls.Add(propertyLabel); } Literal rowCloseTag = new Literal(); rowCloseTag.Text = "</div>"; parentControl.Controls.Add(rowCloseTag); }
private void PopulateControls() { if (siteSettings == null) { return; } if (siteSettings.DisableDbAuth) { this.Visible = false; return; } LoginCtrl.SetRedirectUrl = setRedirectUrl; lblUserID = (SiteLabel)this.LoginCtrl.FindControl("lblUserID"); lblEmail = (SiteLabel)this.LoginCtrl.FindControl("lblEmail"); txtUserName = (TextBox)this.LoginCtrl.FindControl("UserName"); txtPassword = (TextBox)this.LoginCtrl.FindControl("Password"); chkRememberMe = (CheckBox)this.LoginCtrl.FindControl("RememberMe"); btnLogin = (mojoButton)this.LoginCtrl.FindControl("Login"); lnkRecovery = (HyperLink)this.LoginCtrl.FindControl("lnkPasswordRecovery"); lnkExtraLink = (HyperLink)this.LoginCtrl.FindControl("lnkRegisterExtraLink"); if (WebConfigSettings.DisableAutoCompleteOnLogin) { txtUserName.AutoCompleteType = AutoCompleteType.Disabled; txtPassword.AutoCompleteType = AutoCompleteType.Disabled; } divCaptcha = (Panel)LoginCtrl.FindControl("divCaptcha"); captcha = (CaptchaControl)LoginCtrl.FindControl("captcha"); if (!siteSettings.RequireCaptchaOnLogin) { if (divCaptcha != null) { divCaptcha.Visible = false; } if (captcha != null) { captcha.Captcha.Enabled = false; } } else { captcha.ProviderName = siteSettings.CaptchaProvider; captcha.RecaptchaPrivateKey = siteSettings.RecaptchaPrivateKey; captcha.RecaptchaPublicKey = siteSettings.RecaptchaPublicKey; } if ((siteSettings.UseEmailForLogin) && (!siteSettings.UseLdapAuth)) { if (!WebConfigSettings.AllowLoginWithUsernameWhenSiteSettingIsUseEmailForLogin) { EmailValidator regexEmail = new EmailValidator(); regexEmail.ControlToValidate = txtUserName.ID; regexEmail.ErrorMessage = Resource.LoginFailedInvalidEmailFormatMessage; this.LoginCtrl.Controls.Add(regexEmail); } } if (siteSettings.UseEmailForLogin && !siteSettings.UseLdapAuth) { this.lblUserID.Visible = false; } else { this.lblEmail.Visible = false; } if (setFocus) { txtUserName.Focus(); } lnkRecovery.Visible = ((siteSettings.AllowPasswordRetrieval ||siteSettings.AllowPasswordReset) && (!siteSettings.UseLdapAuth || (siteSettings.UseLdapAuth && siteSettings.AllowDbFallbackWithLdap))); lnkRecovery.NavigateUrl = this.LoginCtrl.PasswordRecoveryUrl; lnkRecovery.Text = this.LoginCtrl.PasswordRecoveryText; lnkExtraLink.NavigateUrl = siteRoot + "/Secure/Register.aspx"; lnkExtraLink.Text = Resource.RegisterLink; lnkExtraLink.Visible = siteSettings.AllowNewRegistration; string returnUrlParam = Page.Request.Params.Get("returnurl"); if (!String.IsNullOrEmpty(returnUrlParam)) { //string redirectUrl = returnUrlParam; lnkExtraLink.NavigateUrl += "?returnurl=" + SecurityHelper.RemoveMarkup(returnUrlParam); } chkRememberMe.Visible = siteSettings.AllowPersistentLogin; chkRememberMe.Text = this.LoginCtrl.RememberMeText; if (WebConfigSettings.ForcePersistentAuthCheckboxChecked) { chkRememberMe.Checked = true; chkRememberMe.Visible = false; } btnLogin.Text = this.LoginCtrl.LoginButtonText; //SiteUtils.SetButtonAccessKey(btnLogin, AccessKeys.LoginAccessKey); }
public static void SetupPropertyControl( Page currentPage, Panel parentControl, mojoProfilePropertyDefinition propertyDefinition, String propertyValue, Double legacyTimeZoneOffset, TimeZoneInfo timeZone, string siteRoot) { if (propertyValue == null) { propertyValue = String.Empty; } string validatorSkinID = "Profile"; if (currentPage is mojoPortal.Web.UI.Pages.Register) { validatorSkinID = "Registration"; } Literal rowOpenTag = new Literal(); rowOpenTag.Text = "<div class='settingrow " + propertyDefinition.CssClass + "'>"; parentControl.Controls.Add(rowOpenTag); SiteLabel label = new SiteLabel(); label.ResourceFile = propertyDefinition.ResourceFile; // if key isn't in resource file use assume the resource hasn't been //localized and just use the key as the resource label.ShowWarningOnMissingKey = false; label.ConfigKey = propertyDefinition.LabelResourceKey; label.CssClass = "settinglabel"; if (propertyDefinition.ISettingControlSrc.Length > 0) { Control c = null; if (propertyDefinition.ISettingControlSrc.EndsWith(".ascx")) { c = currentPage.LoadControl(propertyDefinition.ISettingControlSrc); } else { try { c = Activator.CreateInstance(System.Type.GetType(propertyDefinition.ISettingControlSrc)) as Control; } catch (Exception ex) { log.Error(ex); } } if ((c != null) && (c is ISettingControl)) { c.ID = "isc" + propertyDefinition.Name; parentControl.Controls.Add(label); ISettingControl settingControl = (ISettingControl)c; settingControl.SetValue(propertyValue); parentControl.Controls.Add(c); if (propertyDefinition.IncludeHelpLink) { AddHelpLink(parentControl, propertyDefinition); } } } else if (propertyDefinition.OptionList.Count > 0) { if (propertyDefinition.Type == "CheckboxList") { CheckBoxList cbl = CreateCheckBoxListQuestion(propertyDefinition, propertyValue); cbl.ID = "cbl" + propertyDefinition.Name; cbl.EnableTheming = false; cbl.CssClass = "forminput"; cbl.TabIndex = 10; label.ForControl = cbl.ID; parentControl.Controls.Add(label); parentControl.Controls.Add(cbl); if (propertyDefinition.IncludeHelpLink) { AddHelpLink(parentControl, propertyDefinition); } if (propertyDefinition.RequiredForRegistration) { CheckBoxListValidator rfv = new CheckBoxListValidator(); rfv.SkinID = validatorSkinID; rfv.ControlToValidate = cbl.ID; rfv.ErrorMessage = string.Format(CultureInfo.InvariantCulture, Resources.ProfileResource.ProfileRequiredItemFormat, ResourceHelper.GetResourceString(propertyDefinition.ResourceFile, propertyDefinition.LabelResourceKey)); //rfv.Display = ValidatorDisplay.None; rfv.ValidationGroup = "profile"; parentControl.Controls.Add(rfv); } } else { // add a dropdownlist with the options DropDownList dd = CreateDropDownQuestion(propertyDefinition, propertyValue); dd.ID = "dd" + propertyDefinition.Name; dd.EnableTheming = false; dd.CssClass = "forminput " + propertyDefinition.CssClass; dd.TabIndex = 10; label.ForControl = dd.ID; parentControl.Controls.Add(label); parentControl.Controls.Add(dd); if (propertyDefinition.IncludeHelpLink) { AddHelpLink(parentControl, propertyDefinition); } if (propertyDefinition.RequiredForRegistration) { RequiredFieldValidator rfvDd = new RequiredFieldValidator(); rfvDd.SkinID = validatorSkinID; rfvDd.ControlToValidate = dd.ID; //if(dd.Items.Count > 0) //{ // rfvDd.InitialValue = dd.Items[0].Value; //} rfvDd.ErrorMessage = string.Format(CultureInfo.InvariantCulture, Resources.ProfileResource.ProfileRequiredItemFormat, ResourceHelper.GetResourceString(propertyDefinition.ResourceFile, propertyDefinition.LabelResourceKey)); rfvDd.ValidationGroup = "profile"; parentControl.Controls.Add(rfvDd); } if (propertyDefinition.RegexValidationExpression.Length > 0) { RegularExpressionValidator regexValidator = new RegularExpressionValidator(); regexValidator.SkinID = validatorSkinID; regexValidator.ControlToValidate = dd.ID; regexValidator.ValidationExpression = propertyDefinition.RegexValidationExpression; regexValidator.ValidationGroup = "profile"; if (propertyDefinition.RegexValidationErrorResourceKey.Length > 0) { regexValidator.ErrorMessage = ResourceHelper.GetResourceString( propertyDefinition.ResourceFile, propertyDefinition.RegexValidationErrorResourceKey); } //regexValidator.Display = ValidatorDisplay.None; parentControl.Controls.Add(regexValidator); } } } else { switch (propertyDefinition.Type) { case "System.Boolean": CheckBox checkBox = new CheckBox(); checkBox.TabIndex = 10; checkBox.ID = "chk" + propertyDefinition.Name; checkBox.CssClass = "forminput " + propertyDefinition.CssClass; label.ForControl = checkBox.ID; parentControl.Controls.Add(label); parentControl.Controls.Add(checkBox); if (propertyDefinition.IncludeHelpLink) { AddHelpLink(parentControl, propertyDefinition); } if (propertyValue.ToLower() == "true") { checkBox.Checked = true; } break; case "System.DateTime": // TODO: to really make this culture aware we should store the users // culture as well and use the user's culture to // parse the date DatePickerControl datePicker = CreateDatePicker(propertyDefinition, propertyValue, legacyTimeZoneOffset, timeZone, siteRoot); datePicker.TabIndex = 10; datePicker.ID = "dp" + propertyDefinition.Name; datePicker.CssClass = "forminput " + propertyDefinition.CssClass; parentControl.Controls.Add(label); parentControl.Controls.Add(datePicker); if (propertyDefinition.IncludeHelpLink) { AddHelpLink(parentControl, propertyDefinition); } if (propertyDefinition.RequiredForRegistration) { RequiredFieldValidator rfvDate = new RequiredFieldValidator(); rfvDate.SkinID = validatorSkinID; rfvDate.ControlToValidate = datePicker.ID; rfvDate.ErrorMessage = string.Format(CultureInfo.InvariantCulture, Resources.ProfileResource.ProfileRequiredItemFormat, ResourceHelper.GetResourceString(propertyDefinition.ResourceFile, propertyDefinition.LabelResourceKey)); //rfvDate.Display = ValidatorDisplay.None; rfvDate.ValidationGroup = "profile"; parentControl.Controls.Add(rfvDate); } if (propertyDefinition.RegexValidationExpression.Length > 0) { RegularExpressionValidator regexValidatorDate = new RegularExpressionValidator(); regexValidatorDate.SkinID = validatorSkinID; regexValidatorDate.ControlToValidate = datePicker.ID; regexValidatorDate.ValidationExpression = propertyDefinition.RegexValidationExpression; regexValidatorDate.ValidationGroup = "profile"; if (propertyDefinition.RegexValidationErrorResourceKey.Length > 0) { regexValidatorDate.ErrorMessage = ResourceHelper.GetResourceString( propertyDefinition.ResourceFile, propertyDefinition.RegexValidationErrorResourceKey); } //regexValidatorDate.Display = ValidatorDisplay.None; parentControl.Controls.Add(regexValidatorDate); } break; case "System.String": default: TextBox textBox = new TextBox(); textBox.TabIndex = 10; textBox.ID = "txt" + propertyDefinition.Name; textBox.CssClass = "forminput " + propertyDefinition.CssClass; label.ForControl = textBox.ID; parentControl.Controls.Add(label); if (propertyDefinition.MaxLength > 0) { textBox.MaxLength = propertyDefinition.MaxLength; } if (propertyDefinition.Columns > 0) { textBox.Columns = propertyDefinition.Columns; } if (propertyDefinition.Rows > 1) { textBox.TextMode = TextBoxMode.MultiLine; textBox.Rows = propertyDefinition.Rows; } parentControl.Controls.Add(textBox); if (propertyDefinition.IncludeHelpLink) { AddHelpLink(parentControl, propertyDefinition); } if (propertyValue.Length > 0) { textBox.Text = propertyValue; } if (propertyDefinition.RequiredForRegistration) { RequiredFieldValidator rfv = new RequiredFieldValidator(); rfv.SkinID = validatorSkinID; rfv.ControlToValidate = textBox.ID; rfv.ErrorMessage = string.Format(CultureInfo.InvariantCulture, Resources.ProfileResource.ProfileRequiredItemFormat, ResourceHelper.GetResourceString(propertyDefinition.ResourceFile, propertyDefinition.LabelResourceKey)); //rfv.Display = ValidatorDisplay.None; rfv.ValidationGroup = "profile"; parentControl.Controls.Add(rfv); } if (propertyDefinition.RegexValidationExpression.Length > 0) { RegularExpressionValidator regexValidator = new RegularExpressionValidator(); regexValidator.SkinID = validatorSkinID; regexValidator.ControlToValidate = textBox.ID; regexValidator.ValidationExpression = propertyDefinition.RegexValidationExpression; regexValidator.ValidationGroup = "profile"; if (propertyDefinition.RegexValidationErrorResourceKey.Length > 0) { regexValidator.ErrorMessage = ResourceHelper.GetResourceString( propertyDefinition.ResourceFile, propertyDefinition.RegexValidationErrorResourceKey); } //regexValidator.Display = ValidatorDisplay.None; parentControl.Controls.Add(regexValidator); } break; } } Literal rowCloseTag = new Literal(); rowCloseTag.Text = "</div>"; parentControl.Controls.Add(rowCloseTag); }