func (v *BoolEditorView) Render() *vecty.HTML { v.input = elem.Input( prop.Type(prop.TypeCheckbox), prop.Checked(v.model.Node.ValueBool), event.Change(func(e *vecty.Event) { v.App.Dispatch(&actions.Modify{ Undoer: &actions.Undoer{}, Editor: v.model, Before: v.model.Node.NativeValue(), After: e.Target.Get("checked").Bool(), Immediate: true, }) }), ) return elem.Div( prop.Class("checkbox"), elem.Label( v.input, vecty.Text(v.model.Node.Label(v.Ctx)), ), ) }
func (v *EditorView) Render() *vecty.HTML { var dropdownItems []vecty.MarkupOrComponentOrHTML dropdownItems = append(dropdownItems, v.dropdown()) if !v.model.Node.Missing && !v.model.Node.Null { dropdownItems = append(dropdownItems, elem.ListItem( elem.Anchor( prop.Href("#"), vecty.Text("Delete"), event.Click(func(e *vecty.Event) { v.App.Dispatch(&actions.Delete{ Undoer: &actions.Undoer{}, Node: v.model.Node, Parent: v.model.Node.Parent, }) }).PreventDefault(), ), )) } var dropdown *vecty.HTML if dropdownItems != nil { dropdown = elem.Span( prop.Class("dropdown"), elem.Anchor( prop.Href("#"), prop.Class("dropdown-toggle"), vecty.Data("toggle", "dropdown"), vecty.Property("aria-haspopup", "true"), vecty.Property("aria-expanded", "true"), elem.Italic( prop.Class("editor-icon editor-icon-before glyphicon glyphicon-collapse-down"), ), ), elem.UnorderedList( append(dropdownItems, prop.Class("dropdown-menu"))..., ), ) } var handle vecty.List if v.model.Node.Index != -1 { handle = append(handle, elem.Italic( prop.Class("handle"), elem.Span( prop.Class("glyphicon glyphicon-option-vertical"), ), )) } label := elem.Label( prop.Class("control-label"), vecty.Text( v.model.Node.Label(v.Ctx), ), ) group := elem.Div( vecty.ClassMap{ "form-group": true, "has-error": v.node.Invalid, }, handle, dropdown, label, v.icons(), v.controls(), v.helpBlock(), v.errorBlock(), ) return group }
func (v *AddPopupView) Render() *vecty.HTML { if v.model == nil || !v.model.Visible { return v.modal() } v.nameInput = nil v.typeSelect = nil var nameControl, typeControl *vecty.HTML if v.model.HasName() { v.nameInput = elem.Input( prop.Class("form-control"), prop.ID("add-modal-name"), ) nameControl = elem.Div( prop.Class("form-group"), elem.Label( prop.For("add-modal-name"), vecty.Text("name"), ), v.nameInput, elem.Paragraph( prop.Class("help-block"), vecty.Text("Enter a name for the new item"), ), ) } if len(v.model.Types) > 1 { var options vecty.List for _, t := range v.model.Types { displayName, err := t.Id.ValueContext(v.Ctx) if err != nil { // we shouldn't be able to get here v.App.Fail <- kerr.Wrap("NTSWPIEAHC", err) } options = append(options, elem.Option( prop.ID(t.Id.String()), vecty.Text(displayName), )) } v.typeSelect = elem.Select( prop.Class("form-control"), prop.ID("add-modal-type"), elem.Option( prop.ID(""), vecty.Text(""), ), options, ) typeControl = elem.Div( prop.Class("form-group"), elem.Label( prop.For("add-modal-type"), vecty.Text("type"), ), v.typeSelect, elem.Paragraph( prop.Class("help-block"), vecty.Text("Select a type for the new object"), ), ) } return v.modal( elem.Div( prop.Class("modal-body"), elem.Form( event.Submit(func(ev *vecty.Event) { v.save() }).PreventDefault(), nameControl, typeControl, ), ), ) }