Use disabled template for mappings and lists
authorSimo Sorce <simo@redhat.com>
Mon, 6 Apr 2015 19:19:22 +0000 (15:19 -0400)
committerSimo Sorce <simo@redhat.com>
Fri, 10 Apr 2015 14:37:42 +0000 (10:37 -0400)
This way lists and mappings can be empty and still allow cloning
of the last row which is always disabled and hidden.

The javascript now clones the last row then fixes the indexes in the
new cloned row, and re-enables and un-hides the previous last which
becomes a new empty row.

https://fedorahosted.org/ipsilon/ticket/25

Signed-off-by: Simo Sorce <simo@redhat.com>
Reviewed-by: Rob Crittenden <rcritten@redhat.com>
templates/admin/plugin_config.html

index 79f6319..c6ae044 100644 (file)
@@ -7,6 +7,11 @@
                 var ourTable = $(this).parents(".extensible-table")
                 var lastRow = $(ourTable).find(".list-field:last")
                 var newRow = $(lastRow).clone()
                 var ourTable = $(this).parents(".extensible-table")
                 var lastRow = $(ourTable).find(".list-field:last")
                 var newRow = $(lastRow).clone()
+                lastRow.show()
+                var inputFields = lastRow.find("input")
+                for (i = 0; i < inputFields.length; i++) {
+                    $(inputFields[i]).prop("disabled", false)
+                }
                 var lastIndex = parseInt(newRow.find("td:first").text())
                 newRow.find("td:first").text(lastIndex + 1)
                 var inputFields = newRow.find("input")
                 var lastIndex = parseInt(newRow.find("td:first").text())
                 newRow.find("td:first").text(lastIndex + 1)
                 var inputFields = newRow.find("input")
                     </td>
                     <td>
                       <input type="checkbox" name="{{basename}}delete">
                     </td>
                     <td>
                       <input type="checkbox" name="{{basename}}delete">
-                      <!-- Never cheked by default -->
+                      <!-- Never checked by default -->
                     </td>
                 </tr>
                 {% endfor -%}
                     </td>
                 </tr>
                 {% endfor -%}
+                <!-- Template for new row -->
+                {%- set basename = "%s %d-"|format(v.name, value|length) -%}
+                <tr class="list-field" style="display:none">
+                    <td>{{value|length + 1}}</td>
+                    <td>
+                      <input type="text" name="{{basename}}name" value=""
+                             disabled="disabled">
+                    </td>
+                    <td>
+                      <input type="checkbox" name="{{basename}}delete"
+                             disabled="disabled">
+                    </td>
+                </tr>
+                <!-- End of Template -->
                 <tr class="add-row">
                     <td><button class="btn add-field" type="button"> + </button></td>
                     <td colspan=3 />
                 <tr class="add-row">
                     <td><button class="btn add-field" type="button"> + </button></td>
                     <td colspan=3 />
                     </td>
                     <td>
                       <input type="checkbox" name="{{basename}}delete">
                     </td>
                     <td>
                       <input type="checkbox" name="{{basename}}delete">
-                      <!-- Never cheked by default -->
+                      <!-- Never checked by default -->
                     </td>
                 </tr>
                 {% endfor -%}
                     </td>
                 </tr>
                 {% endfor -%}
+                <!-- Template for new row -->
+                {%- set basename = "%s %d-"|format(v.name, value|length) -%}
+                <tr class="list-field" style="display:none">
+                    <td>{{value|length + 1}}</td>
+                    <td>
+                      <input type="text" name="{{basename}}from" value=""
+                             disabled="disabled">
+                    </td>
+                    <td>
+                      <input type="text" name="{{basename}}to"
+                             disabled="disabled">
+                    </td>
+                    <td>
+                      <input type="checkbox" name="{{basename}}delete"
+                             disabled="disabled">
+                      <!-- Never checked by default -->
+                    </td>
+                </tr>
+                <!-- End of Template -->
                 <tr class="add-row">
                     <td><button class="btn add-field" type="button"> + </button></td>
                     <td colspan=3 />
                 <tr class="add-row">
                     <td><button class="btn add-field" type="button"> + </button></td>
                     <td colspan=3 />