Bug Tracker

Ticket #5465: resource_bug.txt

File resource_bug.txt, 3.8 KB (added by ItsAshcouk, 13 years ago)

Sources of the potential bug & code example for justification

Line 
1
2<!-- this is the html table -->
3
4<table id="reqtbl" style="width: 100%; margin-top: 20px;">
5  <tr>
6    <th>Category</th>
7    <th>Sub Category</th>
8    <th>Part number (if known)</th>
9    <th>Condition</th>
10    <th>&nbsp;</th>
11  </tr>
12 
13  <tbody>
14    <tr id="partRow1">
15      <td style="width: 170px;">
16        <select name="c_id[]" id="c_id_1" style="width: 170px;" onchange="clonef.cat(this)">
17          <option value="">Please Select</option>
18          {foreach from=$categories key=c_id item=category}
19          <option value="{$c_id}">{$category.name}</option>
20          {/foreach}
21        </select>
22      </td>
23      <td style="width: 170px;">
24        <select name="sc_id[]" id="sc_id_1" style="width: 170px;" disabled="disabled">
25          <option value="">Please Select</option>
26        </select>
27      </td>
28      <td style="width: 170px;">
29        <input type="text" name="part[]" id="part_1" style="width: 170px;"/>
30      </td>
31      <td style="width: 90px;">
32        <select name="cond[]" id="cond_1" style="width: 90px;">
33          <option value="new">New</option>
34          <option value="used">Used</option>                                                                           
35        </select>
36      </td>                                                             
37      <td style="text-align: center;">
38        <a href="javascript:;" class="add-click"><img src="{'add.png'|icon}" alt="Add Part" /></a>
39        <a href="javascript:;" class="del-click"><img src="{'del.png'|icon}" alt="Delete Part" /></a>
40      </td>
41    </tr>
42  </tbody>
43 
44</table>
45
46
47
48<!-- this is the jquery used -->
49
50var clonef =
51{
52        /**
53         * Variables for Prototype
54         *
55         * each variable below is used to temporary or permenantly store
56         * information about the users requesting parts and the form
57         * status.
58         */
59        current:                        1,              // current object being used
60        total:                          1,              // total rows added by user
61        max_allowed:    10,             // limit the user to a maximum (false for unlimited)
62       
63        /**
64         * Add Form Row
65         *
66         * insert a new product request section to the form
67         * allowing the user to choose category, sub-cat and
68         * the part they are attempting to get.
69         */
70        add: function ()
71        {
72                // check limit
73                if ((this.max_allowed !== false)
74                        && (this.total == this.max_allowed)) {
75                        alert('You are only allowed to request ' + this.max_allowed + ' parts at a time.');
76                        return;
77                };
78               
79                this.current++;
80                this.total++;
81               
82                // clone previous sibling
83                $('#reqtbl tr:eq(1)').clone().appendTo($('#reqtbl tr:last'));
84               
85                // change ID, enable icon click action parsing jquery obj
86                $('#reqtbl tr:eq(' + clonef.current + ')').attr('id', 'partRow' + clonef.current);
87                $('#reqtbl tr:eq(' + clonef.current + ') .add-click').click(function (){
88                        clonef.add();
89                })
90                $('#reqtbl tr:eq(' + clonef.current + ') .del-click').click(function (){
91                        clonef.del($(this).parent().parent());
92                });
93               
94                // now we reset all values inside the contents
95        },
96       
97        /**
98         * Remove Form Row
99         *
100         * removed the chosen child from the form including
101         * fields and any selected data the user requests,
102         * but only when the user has confirmed such action.
103         */
104        del: function (o)
105        {
106                // only delete first row when total shows 2 or more
107                if (this.total == 1) {
108                        alert('You cannot delete the first row, unless you have more than 1 part in this request.');
109                        return;
110                };
111               
112                // remove element & reduce total
113                o.remove();
114                this.total--;
115        },
116       
117        /**
118         * Select Category
119         *
120         * fetch all sub-categories for this vehicle for the
121         * category which has been selected by the user for
122         * the part they wish to find.
123         */
124        cat: function (o)
125        {
126        }
127};
128
129// jquery begin initialising clicking
130$(function (){
131        $('#reqtbl tr:eq(1) .add-click').click(function (){
132                clonef.add();
133        });
134        $('#reqtbl tr:eq(1) .del-click').click(function (){
135                clonef.del($(this).parent().parent());
136        });
137});