DrakeW/projectscope

View on GitHub
app/views/projects/_form.html.haml

Summary

Maintainability
Test Coverage

= form_for(setup_metric_configs(@project)) do |f|
  - if @project.errors.any?
    #error_explanation
      %h2 #{pluralize(@project.errors.count, "error")} prohibited this project from being saved:

      %ul
        - @project.errors.full_messages.each do |message|
          %li= message

  .field
    = f.label :name
    %br
    = f.text_field :name, :disabled => @readonly

  = f.fields_for :configs do |cf|
    - name,index  = cf.object.metric_name, cf.index
    %fieldset{:id => name}
      %legend= name.titleize
      = hidden_field_tag "project[configs_attributes][#{index}][metric_name]", name
      - cf.object.options.each_pair do |key,val|
        - field_name = "project[configs_attributes][#{index}][options][#{key}]"
        %label{:for => field_name}= "#{key}:"
        = text_field_tag field_name, val, :disabled => @readonly
        %br
      - unless @readonly
        = link_to 'Add new', '', :class => 'add'
        .field.new
          = text_field_tag "project[configs_attributes][#{index}][new][]", '', :id => nil, :class => 'newf'
          \ :
          = text_field_tag "project[configs_attributes][#{index}][new][]", '', :id => nil, :class => 'newf'
          %br

      :javascript
        $('.add').click(function() { $(this).closest('fieldset').append($('.new')[0].outerHTML); return(false); } )

  - unless @readonly
    .actions
      = f.submit