anchor.diff:              selector = "td:nth-last-child(-n+"+ col_count +")";
               row.find(selector).remove();
             }
  -
  -          row.find('.metric').attr('name', 'dashboard[metric]['+ i +'][]')
  -          row.find('.boxcolour').attr('name', 'dashboard[boxcolour]['+ i +'][]')
  -          row.find('.textcolour').attr('name', 'dashboard[textcolour]['+ i +'][]')
           }
   
           // Append new rows
           if (i <= row_num) {
  -          for (i; i < row_num; i++) {
  -            row_template.clone().appendTo(table)
  -
  -            row.find('.metric').attr('name', 'dashboard[metric]['+ i +'][]')
  -            row.find('.boxcolour').attr('name', 'dashboard[boxcolour]['+ i +'][]')
  -            row.find('.textcolour').attr('name', 'dashboard[textcolour]['+ i +'][]')
  -          };
  +          for (i; i < row_num; i++) { row_template.clone().appendTo(table) };
           }
         } else {
           // Remove rows
  
positive.code:       <div class="form-group form-group-sm col-md-12">
          <label for='metric' class='text-right'>Metric</label>
          <div class="input-group col-md-12">
            <select name="dashboard[metric][]" class="form-control metric input-sm">
              <option>-- Select a metric--</options>
              <% @metrics.each do |metric| %>
                <option data-visualisations="<%= get_alternatives(metric.value).join(',') %>"><%= metric.name %></option>
  
negative.code: 
      if (current_rows == 0) {
        // If there are no rows, this is easy
        for (var i=0; i<row_num; i++) {
          row = row_template.clone()
  
          row.appendTo(table);
        };
      } else {
        // Otherwise, we need to append / remove columns and rows
        rows = table.find('tr');
  