Esempio n. 1
0
        public static string Table(this BootstrapRenderer renderer, IEnumerable <string> headerRow, IEnumerable <IEnumerable <string> > dataRows, object htmlAttributes = null)
        {
            var defaultAttributes = new HtmlAttributes(new
            {
                @class = "table"
            });

            var headerContent = headerRow == null ? string.Empty : TableRow(renderer, headerRow, renderer.Templates.TableHeaderCell);

            var bodyContent = new StringBuilder();

            if (dataRows != null)
            {
                foreach (var dataRow in dataRows)
                {
                    bodyContent.Append(TableRow(renderer, dataRow, renderer.Templates.TableCell));
                }
            }

            var header = headerRow == null ? string.Empty : renderer.Templates.TableHeader.FormatFromDictionary(new Dictionary <string, string>
            {
                { "content", headerContent }
            });

            var body = dataRows == null ? string.Empty : renderer.Templates.TableBody.FormatFromDictionary(new Dictionary <string, string>
            {
                { "content", bodyContent.ToString() }
            });

            return(renderer.Templates.Table.FormatFromDictionary(new Dictionary <string, string>
            {
                { "attributes", defaultAttributes.Merge(new HtmlAttributes(htmlAttributes)).ToString() },
                { "content", header + body }
            }));
        }
Esempio n. 2
0
        public static string SelectList <TValue>(this BootstrapRenderer renderer, string name, IEnumerable <ListOption <TValue> > options, Func <ListOption <TValue>, bool> selectedOptions, bool allowMultiple = false, object htmlAttributes = null)
        {
            var optionsBuilder = new StringBuilder();

            var defaultAttributes = new HtmlAttributes(new
            {
                @class = "form-control"
            });

            if (allowMultiple)
            {
                defaultAttributes["multiple"] = "true";
            }

            foreach (var option in options)
            {
                optionsBuilder.Append(renderer.Templates.SelectListOption.FormatFromDictionary(new Dictionary <string, string>
                {
                    { "value", option.Value.ToString() },
                    { "label", option.Label },
                    { "selected", selectedOptions(option) ? " selected" : string.Empty }
                }));
            }

            return(renderer.Templates.SelectList.FormatFromDictionary(new Dictionary <string, string>
            {
                { "name", name },
                { "attributes", defaultAttributes.Merge(new HtmlAttributes(htmlAttributes)).ToString() },
                { "options", optionsBuilder.ToString() }
            }));
        }
Esempio n. 3
0
        public FormGroup(NancyRazorViewBase <TModel> view, BootstrapRenderer renderer, object htmlAttributes = null)
        {
            _view     = view;
            _renderer = renderer;

            _view.WriteLiteral(_renderer.BeginFormGroup(htmlAttributes));
        }
        // TODO: allow passing html attributes
        public static string RadioButtonGroup <TValue>(this BootstrapRenderer renderer, string name, IEnumerable <ListOption <TValue> > options,
                                                       Func <ListOption <TValue>, bool> selectedOption)
        {
            var optionsBuilder = new StringBuilder();

            foreach (var radioGroupOption in options)
            {
                optionsBuilder.Append(RadioButton(renderer, name, radioGroupOption.Value, radioGroupOption.Label,
                                                  selectedOption(radioGroupOption)));
            }

            return(optionsBuilder.ToString());
        }
Esempio n. 5
0
        public static string BeginFormGroup(this BootstrapRenderer renderer, HtmlAttributes attributes)
        {
            var defaultAttributes = new HtmlAttributes(new
            {
                @class = "form-group"
            });


            return(renderer.Templates.BeginFormGroup.FormatFromDictionary(new Dictionary <string, string>
            {
                { "attributes", defaultAttributes.Merge(attributes).ToString() }
            }));
        }
        public static string ValidationMessage(this BootstrapRenderer renderer, string message, object htmlAttributes = null)
        {
            var defaultAttributes = new HtmlAttributes(new
            {
                @class = "help-block"
            });

            return(renderer.Templates.ValidationMessage.FormatFromDictionary(new Dictionary <string, string>
            {
                { "message", message },
                { "attributes", defaultAttributes.Merge(new HtmlAttributes(htmlAttributes)).ToString() }
            }));
        }
Esempio n. 7
0
        public static string CheckboxList <TValue>(this BootstrapRenderer renderer, string name, IEnumerable <ListOption <TValue> > options,
                                                   Func <ListOption <TValue>, bool> selectedOptions)
        {
            var optionsBuilder = new StringBuilder();

            foreach (var checkboxListOption in options)
            {
                optionsBuilder.Append(Checkbox(renderer, name, checkboxListOption.Value, checkboxListOption.Label,
                                               selectedOptions(checkboxListOption)));
            }

            return(optionsBuilder.ToString());
        }
Esempio n. 8
0
        public static string TableRow(this BootstrapRenderer renderer, IEnumerable <string> row, string template)
        {
            var rowContent = new StringBuilder();

            foreach (var cell in row)
            {
                rowContent.Append(template.FormatFromDictionary(new Dictionary <string, string>
                {
                    { "content", cell }
                }));
            }

            return(renderer.Templates.TableRow.FormatFromDictionary(new Dictionary <string, string>
            {
                { "content", rowContent.ToString() }
            }));
        }
Esempio n. 9
0
        public static string Input(this BootstrapRenderer renderer, string name, object value, string type, object htmlAttributes = null)
        {
            var attributes = new HtmlAttributes(htmlAttributes);

            attributes.Merge(new HtmlAttributes(new
            {
                @class = "form-control"
            }));

            return(renderer.Templates.Input.FormatFromDictionary(new Dictionary <string, string>
            {
                { "name", name },
                { "attributes", attributes.ToString() },
                { "type", type },
                { "value", value == null ? String.Empty : value.ToString() }
            }));
        }
        public static string RadioButton(this BootstrapRenderer renderer, string name, object value, string label, bool selected = false, object htmlAttributes = null)
        {
            var defaultAttributes = new HtmlAttributes(new
            {
                @class = "radio"
            });

            var ctx = new Dictionary <string, string>
            {
                { "attributes", new HtmlAttributes(htmlAttributes).Merge(defaultAttributes).ToString() },
                { "name", name },
                { "value", value == null ? string.Empty : value.ToString() },
                { "selected", selected ? " checked" : "" },
                { "label", label }
            };

            return(renderer.Templates.RadioButton.FormatFromDictionary(ctx));
        }
Esempio n. 11
0
        public static string Label(this BootstrapRenderer renderer, string label, string @for, object htmlAttributes = null)
        {
            var attributes = new HtmlAttributes(htmlAttributes);

            attributes.Merge(new HtmlAttributes(new
            {
                @class = "control-label"
            }));

            if (!string.IsNullOrEmpty(@for))
            {
                attributes["for"] = @for;
            }

            return(renderer.Templates.Label.FormatFromDictionary(new Dictionary <string, string>
            {
                { "attributes", attributes.ToString() },
                { "label", label }
            }));
        }
Esempio n. 12
0
 public static string Search(this BootstrapRenderer renderer, string name, object value,
                             object htmlAttributes = null)
 {
     return(Input(renderer, name, value, "search", htmlAttributes));
 }
Esempio n. 13
0
 public static string TelephoneNumber(this BootstrapRenderer renderer, string name, object value,
                                      object htmlAttributes = null)
 {
     return(Input(renderer, name, value, "tel", htmlAttributes));
 }
Esempio n. 14
0
 public static string Date(this BootstrapRenderer renderer, string name, DateTime value, object htmlAttributes = null)
 {
     return(Input(renderer, name, value.ToString("yyyy-MM-dd"), "date", htmlAttributes));
 }
Esempio n. 15
0
 public static string DateTimeLocal(this BootstrapRenderer renderer, string name, DateTime value, object htmlAttributes = null)
 {
     return(Input(renderer, name, string.Format("{0:s}", value), "datetime-local", htmlAttributes));
 }
Esempio n. 16
0
 public BootstrapHelpers(BootstrapRenderer renderer, RazorViewEngine engine, IRenderContext renderContext, TModel model, NancyRazorViewBase <TModel> view)
 {
     _view          = view;
     _renderer      = renderer;
     _renderContext = renderContext;
 }
Esempio n. 17
0
 public static string MultipleSelectList <TValue>(this BootstrapRenderer renderer, string name, IEnumerable <ListOption <TValue> > options,
                                                  IEnumerable <TValue> selectedValues, object htmlAttributes = null)
 {
     return(SelectList(renderer, name, options, o => selectedValues.Any(sv => sv.Equals(o.Value)), true, htmlAttributes));
 }
Esempio n. 18
0
 public static string EndFormGroup(this BootstrapRenderer renderer)
 {
     return(renderer.Templates.EndFormGroup);
 }
 // TODO: allow passing html attributes
 public static string RadioButtonGroup <TValue>(this BootstrapRenderer renderer, string name, IEnumerable <ListOption <TValue> > options)
 {
     return(RadioButtonGroup(renderer, name, options, o => false));
 }
Esempio n. 20
0
 public static string BeginFormGroup(this BootstrapRenderer renderer, object attributes)
 {
     return(BeginFormGroup(renderer, new HtmlAttributes(attributes)));
 }
Esempio n. 21
0
 public static string MultipleSelectList <TValue>(this BootstrapRenderer renderer, string name, IEnumerable <ListOption <TValue> > options,
                                                  Func <ListOption <TValue>, bool> selectedOptions, object htmlAttributes = null)
 {
     return(SelectList(renderer, name, options, selectedOptions, true, htmlAttributes));
 }
Esempio n. 22
0
 // TODO: allow passing html attributes
 public static string CheckboxList <TValue>(this BootstrapRenderer renderer, string name, IEnumerable <ListOption <TValue> > options,
                                            IEnumerable <TValue> selectedOptions)
 {
     return(CheckboxList(renderer, name, options, o => selectedOptions.Any(so => o.Value.Equals(so))));
 }
Esempio n. 23
0
 public static string Url(this BootstrapRenderer renderer, string name, string value,
                          object htmlAttributes = null)
 {
     return(Input(renderer, name, value, "url", htmlAttributes));
 }
 public BootstrapRendererFixture()
 {
     _renderer = new BootstrapRenderer(new BootstrapTemplates());
 }
Esempio n. 25
0
 public static string SelectList <TValue>(this BootstrapRenderer renderer, string name, IEnumerable <ListOption <TValue> > options,
                                          TValue selectedValue, object htmlAttributes = null)
 {
     return(SelectList(renderer, name, options, o => o.Value.Equals(selectedValue), false, htmlAttributes));
 }
Esempio n. 26
0
 public static string BeginFormGroup(this BootstrapRenderer renderer)
 {
     return(BeginFormGroup(renderer, null));
 }
Esempio n. 27
0
 public static string TextBox(this BootstrapRenderer renderer, string name, object value, object htmlAttributes = null)
 {
     return(Input(renderer, name, value, "text", htmlAttributes));
 }
 public static string RadioButtonGroup <TValue>(this BootstrapRenderer renderer, string name, IEnumerable <ListOption <TValue> > options, TValue selectedOption)
 {
     return(RadioButtonGroup(renderer, name, options, o => o.Value.Equals(selectedOption)));
 }
Esempio n. 29
0
 public static string Label(this BootstrapRenderer renderer, string label, object htmlAttributes = null)
 {
     return(Label(renderer, label, "", htmlAttributes));
 }
Esempio n. 30
0
 // TODO: allow passing html attributes
 public static string CheckboxList <TValue>(this BootstrapRenderer renderer, string name, IEnumerable <ListOption <TValue> > options)
 {
     return(CheckboxList(renderer, name, options, o => false));
 }