protected override TagBuilder GenerateElement(
            TagHelperContext context,
            FormGroupBuilder builder,
            FormGroupElementContext elementContext)
        {
            var textAreaBuilder = (TextAreaBuilder)builder;

            if (textAreaBuilder.Content == null && AspFor == null)
            {
                throw new InvalidOperationException(
                          $"Content must be specified when the '{AspForAttributeName}' attribute is not specified.");
            }

            var resolvedContent = textAreaBuilder.Content ??
                                  new HtmlString(Generator.GetModelValue(ViewContext, AspFor.ModelExplorer, AspFor.Name));

            return(Generator.GenerateTextArea(
                       elementContext.HaveError,
                       ResolvedId,
                       ResolvedName,
                       Rows,
                       DescribedBy,
                       Autocomplete,
                       IsDisabled,
                       resolvedContent,
                       Attributes));
        }
 protected virtual TagBuilder GenerateElement(
     TagHelperContext context,
     FormGroupBuilder builder,
     FormGroupElementContext elementContext)
 {
     // For deriving classes to implement when required
     throw new NotImplementedException();
 }
Exemplo n.º 3
0
        protected override TagBuilder GenerateElement(
            TagHelperContext context,
            FormGroupBuilder builder,
            FormGroupElementContext elementContext)
        {
            var textArea = base.GenerateElement(context, builder, elementContext);

            textArea.AddCssClass("govuk-js-character-count");
            return(textArea);
        }
Exemplo n.º 4
0
        protected override TagBuilder GenerateElement(
            TagHelperContext context,
            FormGroupBuilder builder,
            FormGroupElementContext elementContext)
        {
            var selectContext = (SelectContext)context.Items[typeof(SelectContext)];

            return(Generator.GenerateSelect(
                       elementContext.HaveError,
                       ResolvedId,
                       ResolvedName,
                       DescribedBy,
                       Disabled,
                       selectContext.Items,
                       FormGroupAttributes));
        }
        protected override TagBuilder GenerateElement(
            TagHelperContext context,
            FormGroupBuilder builder,
            FormGroupElementContext elementContext)
        {
            var input = base.GenerateElement(context, builder, elementContext);

            var wrapper = new TagBuilder("div");

            wrapper.AddCssClass("pttcd-c-search-input");
            wrapper.InnerHtml.AppendHtml(input);

            var button = new TagBuilder("button");

            button.AddCssClass("pttcd-c-search-input__button");
            button.Attributes.Add("type", "submit");
            button.InnerHtml.Append("Search");
            wrapper.InnerHtml.AppendHtml(button);

            return(wrapper);
        }
        protected virtual TagBuilder GenerateContent(TagHelperContext context, FormGroupBuilder builder)
        {
            // We need some content for the label; if AspFor is null then label content must have been specified
            if (AspFor == null && (!builder.Label.HasValue || builder.Label.Value.content == null))
            {
                throw new InvalidOperationException(
                          $"Label content must be specified when the '{AspForAttributeName}' attribute is not specified.");
            }

            var contentBuilder = new HtmlContentBuilder();

            var label = GenerateLabel(builder);

            contentBuilder.AppendHtml(label);

            var hint = GenerateHint(builder);

            if (hint != null)
            {
                contentBuilder.AppendHtml(hint);
            }

            var errorMessage = GenerateErrorMessage(builder);

            if (errorMessage != null)
            {
                contentBuilder.AppendHtml(errorMessage);
            }

            var haveError = errorMessage != null;

            var elementCtx = new FormGroupElementContext(haveError);
            var element    = GenerateElement(context, builder, elementCtx);

            contentBuilder.AppendHtml(element);

            return(Generator.GenerateFormGroup(haveError, contentBuilder, FormGroupAttributes));
        }
Exemplo n.º 7
0
 protected override TagBuilder GenerateElement(TagHelperContext context, FormGroupBuilder builder, FormGroupElementContext elementContext)
 {
     return(Generator.GenerateFileUpload(
                elementContext.HaveError,
                ResolvedId,
                ResolvedName,
                DescribedBy,
                Attributes));
 }