Exemplo n.º 1
0
        public RenderForm(HtmlHelper <T> html, Form.Form <T> form)
        {
            if (!string.IsNullOrEmpty(form.Url))
            {
                _formTag.MergeAttribute("action", form.Url);
            }
            _formTag.MergeAttribute("method", form.Method == FormMethod.Get ? "GET" : "POST");
            _formTag.MergeAttribute("id", form.Name);

            if (form.HtmlAttributes != null)
            {
                var attributes = HtmlHelper.AnonymousObjectToHtmlAttributes(form.HtmlAttributes);
                _formTag.MergeAttributes(attributes, false);
            }

            var htmlAttributes = typeof(T).HtmlAttributes();

            if (htmlAttributes != null)
            {
                foreach (var htmlAttribute in htmlAttributes)
                {
                    if (htmlAttribute.Key.ToLowerInvariant() == "class")
                    {
                        _formTag.AddCssClass(htmlAttribute.Value.ToString());
                    }
                    else
                    {
                        _formTag.MergeAttribute(htmlAttribute.Key.ToLowerInvariant(), htmlAttribute.Value.ToString(), false);
                    }
                }
            }

            _innerHtml.Append(new RenderBody <T>(html, form.Body));
        }
Exemplo n.º 2
0
 /// <summary>
 /// Sets up registration form.
 /// </summary>
 private void Awake()
 {
     form = gameObject.AddComponent <Form.Form>()
            .SetInputs(
         RegisterButton,
         new FormControl("name", RegisterName,
                         Validator.Required("Please enter\nname"),
                         Validator.Regex(@"^[a-zA-Z0-9]+$", "Only letters and\nnumbers are allowed"),
                         Validator.MinLength(4, "Must have at least\n4 characters"),
                         Validator.MaxLength(20, "Cannot have more\nthan 20 characters")
                         ),
         new FormControl("password", RegisterPassword,
                         Validator.Required("Please enter\npassword"),
                         Validator.MinLength(6, "Must have at least\n6 characters"),
                         Validator.MaxLength(50, "Cannot have more\nthan 50 characters")
                         ),
         new FormControl("retypePassword", RegisterPasswordRetype,
                         Validator.Required("Please retype\nyour password")),
         new FormControl("email", RegisterEmail,
                         Validator.Required("Please enter\nemail"),
                         Validator.Regex(@"^[^@\s]+@[^@\s]+\.[^@\s]+$", "Invalid\nemail address"),
                         Validator.MaxLength(50, "Cannot have more\nthan 50 characters")
                         ),
         new FormControl(RegisterButton)
         )
            .AddGlobalValidator((values, errors) =>
     {
         if (values["password"] != values["retypePassword"])
         {
             errors["retypePassword"] = "******";
         }
     });
 }
Exemplo n.º 3
0
        /// <summary>
        /// Initializes a new instance of the <see cref="RenderForm{T}"/> class.
        /// </summary>
        /// <param name="html">The HTML.</param>
        /// <param name="form">The form.</param>
        public RenderForm(HtmlHelper <T> html, Form.Form <T> form)
        {
            if (!string.IsNullOrEmpty(form.Url))
            {
                _formTag.MergeAttribute("action", form.Url);
            }
            _formTag.MergeAttribute("method", form.Method == FormMethod.Get ? "GET" : "POST");
            _formTag.MergeAttribute("id", form.Name);

            if (form.HtmlAttributes != null)
            {
                var attributes = HtmlHelper.AnonymousObjectToHtmlAttributes(form.HtmlAttributes);
                _formTag.MergeAttributes(attributes, false);
            }

            var htmlAttributes = typeof(T).HtmlAttributes();

            if (htmlAttributes != null)
            {
                foreach (var htmlAttribute in htmlAttributes)
                {
                    if (htmlAttribute.Key.ToLowerInvariant() == "class")
                    {
                        _formTag.AddCssClass(htmlAttribute.Value.ToString());
                    }
                    else
                    {
                        _formTag.MergeAttribute(htmlAttribute.Key.ToLowerInvariant(), htmlAttribute.Value.ToString(), false);
                    }
                }
            }

            _innerHtml.Append(new RenderBody <T>(html, form.Body));

            var buttons = new StringBuilder();

            foreach (var button in form.Buttons.ButtonList)
            {
                if (buttons.Length > 0)
                {
                    buttons.Append("&nbsp;");
                }

                //var btnTag = new TagBuilder("input");
                //btnTag.MergeAttribute("type", "button");
                //btnTag.MergeAttribute("id", button.Name);
                //btnTag.MergeAttribute("value", button.Text);
                //if (button.HtmlAttributes != null)
                //{
                //  var attributes = HtmlHelper.AnonymousObjectToHtmlAttributes(button.HtmlAttributes);
                //  btnTag.MergeAttributes(attributes, false);
                //}
                //todo: parse html fragment met html agility pack en merge de html attributes
                buttons.AppendFormat(TemplateConfig.Instance.FormButton, button.Name, button.Text);
            }

            _innerHtml.AppendFormat(TemplateConfig.Instance.FormButtonGroup, buttons);
        }
Exemplo n.º 4
0
 /// <summary>
 /// Sets up login form.
 /// </summary>
 private void Awake()
 {
     form = gameObject.AddComponent <Form.Form>().SetInputs(
         LoginButton,
         new FormControl("name", LoginName, Validator.Required("Please enter\nname")),
         new FormControl("password", LoginPassword, Validator.Required("Please enter\npassword")),
         new FormControl(LoginStayLoggedIn),
         new FormControl(LoginButton)
         );
 }