app/views/app_admin/contexts/_form.html.haml

Summary

Maintainability
Test Coverage
.meta-contexts
  = form_for [:app_admin, @context], html: {class: "form-horizontal", role: "form"} do |f|

    .form-group
      %label.control-label.col-sm-2 Id
      .col-sm-4
        = f.text_field :id, class: 'form-control', disabled: f.object.persisted?

    .form-group
      %label.control-label.col-sm-2 Context group
      .col-sm-4
        = f.select :context_group_id, ContextGroup.all.collect { |mcg| [ mcg.name, mcg.id ] }, {include_blank: true}, { class: "form-control" }

    .form-group
      %label.control-label.col-sm-2 Description
      .col-sm-4
        = f.text_area :description, rows: 6, class: "form-control"

    .form-group      
      .col-sm-offset-2.col-sm-4    
        = f.submit "Save", class: "btn btn-success"

    - if f.object.persisted?
      %h3 Meta Key Definitions
      = link_to new_app_admin_context_meta_key_definition_path(@context), class: "btn btn-success" do
        %i.icon-plus
        Add Meta Key Definition

      %table.table
        %thead
          %tr
            %th.no-wrap Meta Key
            %th Label
            %th Hint
            %th Description
            %th.no-wrap Input type
            %th.no-wrap Is required?
            %th
        %tbody
          - @context.meta_key_definitions.each_with_index do |meta_key_definition, index|
            %tr
              %td
                = link_to meta_key_definition.meta_key, edit_app_admin_meta_key_path(meta_key_definition.meta_key), class: "meta-key-link"
              %td= meta_key_definition.label
              %td= meta_key_definition.hint
              %td= meta_key_definition.description
              %td= meta_key_definition.input_type.try(:humanize) || '-'
              %td= meta_key_definition.is_required ? "Yes" : "No"
              %td.no-wrap
                = link_to edit_app_admin_context_meta_key_definition_path(f.object, meta_key_definition), class: "btn btn-warning btn-xs" do
                  %i.icon-pen
                  Edit
                = link_to app_admin_context_meta_key_definition_path(f.object, meta_key_definition), method: :delete, data: {confirm: "Are you sure you want to remove this meta key definition?"}, class: "btn btn-danger btn-xs" do
                  %i.icon-trash
                  Remove
                = link_to move_up_app_admin_context_meta_key_definition_path(f.object, meta_key_definition), 
                  method: :patch, class: "btn btn-xs btn-warning move-up", title: "Move up" do
                  %i.icon-arrow-up
                = link_to move_down_app_admin_context_meta_key_definition_path(f.object, meta_key_definition), 
                  method: :patch, class: "btn btn-xs btn-warning move-down", title: "Move down" do
                  %i.icon-arrow-down