Sha256: 3b09099e34ea5069d77ad2bcd25b4c7b23cf4cddce7d5476a4c001c1e9d854ee

Contents?: true

Size: 1.16 KB

Versions: 25

Compression:

Stored size: 1.16 KB

Contents

class ContactForm
  include Glimmer::Web::Component
  
  option :presenter
  
  markup {
    form {
      div {
        label('Name: ', for: 'name-field')
        @name_input = input(type: 'text', id: 'name-field', required: true, autofocus: true) {
          value <=> [presenter.new_contact, :name]
        }
      }
      
      div {
        label('Email: ', for: 'email-field')
        @email_input = input(type: 'email', id: 'email-field', required: true) {
          value <=> [presenter.new_contact, :email]
        }
      }
      
      div {
        input(type: 'submit', value: 'Add Contact') {
          onclick do |event|
            if [@name_input, @email_input].all?(&:check_validity)
              event.prevent_default
              # adding contact model to presenter contacts array indirectly updates contacts table
              presenter.add_contact
              @name_input.focus
            end
          end
        }
      }
      
      style {
        # CSS can be included as Glimmer DSL for CSS syntax (Ruby code)
        r('input') {
          margin '5px'
        }
        r('input[type=submit]') {
          margin '5px 0'
        }
      }
    }
  }
end

Version data entries

25 entries across 25 versions & 1 rubygems

Version Path
glimmer-dsl-web-0.7.0 lib/glimmer-dsl-web/samples/hello/hello_form_mvp/views/contact_form.rb
glimmer-dsl-web-0.6.12 lib/glimmer-dsl-web/samples/hello/hello_form_mvp/views/contact_form.rb
glimmer-dsl-web-0.6.11 lib/glimmer-dsl-web/samples/hello/hello_form_mvp/views/contact_form.rb
glimmer-dsl-web-0.6.10 lib/glimmer-dsl-web/samples/hello/hello_form_mvp/views/contact_form.rb
glimmer-dsl-web-0.6.9 lib/glimmer-dsl-web/samples/hello/hello_form_mvp/views/contact_form.rb
glimmer-dsl-web-0.6.8 lib/glimmer-dsl-web/samples/hello/hello_form_mvp/views/contact_form.rb
glimmer-dsl-web-0.6.7 lib/glimmer-dsl-web/samples/hello/hello_form_mvp/views/contact_form.rb
glimmer-dsl-web-0.6.6 lib/glimmer-dsl-web/samples/hello/hello_form_mvp/views/contact_form.rb
glimmer-dsl-web-0.6.5 lib/glimmer-dsl-web/samples/hello/hello_form_mvp/views/contact_form.rb
glimmer-dsl-web-0.6.4 lib/glimmer-dsl-web/samples/hello/hello_form_mvp/views/contact_form.rb
glimmer-dsl-web-0.6.3 lib/glimmer-dsl-web/samples/hello/hello_form_mvp/views/contact_form.rb
glimmer-dsl-web-0.6.2 lib/glimmer-dsl-web/samples/hello/hello_form_mvp/views/contact_form.rb
glimmer-dsl-web-0.6.1 lib/glimmer-dsl-web/samples/hello/hello_form_mvp/views/contact_form.rb
glimmer-dsl-web-0.6.0 lib/glimmer-dsl-web/samples/hello/hello_form_mvp/views/contact_form.rb
glimmer-dsl-web-0.5.0 lib/glimmer-dsl-web/samples/hello/hello_form_mvp/views/contact_form.rb
glimmer-dsl-web-0.4.4 lib/glimmer-dsl-web/samples/hello/hello_form_mvp/views/contact_form.rb
glimmer-dsl-web-0.4.3 lib/glimmer-dsl-web/samples/hello/hello_form_mvp/views/contact_form.rb
glimmer-dsl-web-0.4.2 lib/glimmer-dsl-web/samples/hello/hello_form_mvp/views/contact_form.rb
glimmer-dsl-web-0.4.1 lib/glimmer-dsl-web/samples/hello/hello_form_mvp/views/contact_form.rb
glimmer-dsl-web-0.4.0 lib/glimmer-dsl-web/samples/hello/hello_form_mvp/views/contact_form.rb