Fix broken Insert page
[phpmyadmin.git] / templates / table / insert / column_row.twig
blob854951ce15f8a40842beade11e07dc5d0700d451
1 <tr class="noclick">
2   <td class="text-center">
3     {{ column.Field_title|raw }}
4     <input type="hidden" name="fields_name[multi_edit][{{ row_id }}][{{ column.Field_md5 }}]" value="{{ column.Field }}">
5   </td>
7   {% if show_field_types_in_data_edit_view %}
8     <td class="text-center{{ column.wrap }}">
9       <span class="column_type" dir="ltr">{{ column.pma_type }}</span>
10     </td>
11   {% endif %}
13   {% if show_function_fields %}
14     {% if is_column_binary %}
15       <td class="text-center">{% trans 'Binary' %}</td>
16     {% elseif 'enum' in column.True_Type or 'set' in column.True_Type %}
17       <td class="text-center">--</td>
18     {% else %}
19       <td>
20         <select name="funcs[multi_edit][{{ row_id }}][{{ column.Field_md5 }}]" onchange="return verificationsAfterFieldChange('{{ column.Field_md5|escape_js_string }}', '{{ row_id|escape_js_string }}', '{{ column.pma_type }}')" id="field_{{ id_index }}_1">
21           {{ function_options|raw }}
22         </select>
23       </td>
24     {% endif %}
25   {% endif %}
27   <td>
28     {% if column.Null|upper == 'YES' and not read_only %}
29       <input type="hidden" name="fields_null_prev[multi_edit][{{ row_id }}][{{ column.Field_md5 }}]"{{ real_null_value and not column.first_timestamp ? ' value="on"' }}>
30       <input type="checkbox" class="checkbox_null" name="fields_null[multi_edit][{{ row_id }}][{{ column.Field_md5 }}]" id="field_{{ id_index }}_2" aria-label="{% trans 'Use the NULL value for this column.' %}"{{ real_null_value ? ' checked' }}>
31       <input type="hidden" class="nullify_code" name="nullify_code[multi_edit][{{ row_id }}][{{ column.Field_md5 }}]" value="{{ nullify_code }}">
32       <input type="hidden" class="hashed_field" name="hashed_field[multi_edit][{{ row_id }}][{{ column.Field_md5 }}]" value="{{ column.Field_md5 }}">
33       <input type="hidden" class="multi_edit" name="multi_edit[multi_edit][{{ row_id }}][{{ column.Field_md5 }}]" value="{{ ('[multi_edit][' ~ row_id ~ ']')|escape_js_string }}">
34     {% endif %}
35   </td>
37   <td data-type="{{ type }}" data-decimals="{{ decimals }}">
38     {# Will be used by table/change.js to set the default value for the "Continue insertion" feature. #}
39     <span class="default_value hide">{{ special_chars|raw }}</span>
41     {% if transformed_value is not empty %}
42       {{ transformed_value|raw }}
43     {% else %}
44       {% if is_value_foreign_link %}
45         {{ backup_field|raw }}
46         <input type="hidden" name="fields_type[multi_edit][{{ row_id }}][{{ column.Field_md5 }}]" value="foreign">
47         <input type="text" name="fields[multi_edit][{{ row_id }}][{{ column.Field_md5 }}]" class="textfield" onchange="return verificationsAfterFieldChange('{{ column.Field_md5|escape_js_string }}', '{{ row_id|escape_js_string }}', '{{ column.pma_type }}')" id="field_{{ id_index }}_3" value="{{ data }}">
48         <a class="ajax browse_foreign" href="{{ url('/browse-foreigners') }}" data-post="{{ get_common({'db': db, 'table': table, 'field': column.Field, 'rownumber': row_id, 'data': data}) }}">{{ get_icon('b_browse', 'Browse foreign values'|trans) }}</a>
49       {% elseif foreign_dropdown is not empty %}
50         {{ backup_field|raw }}
51         <input type="hidden" name="fields_type[multi_edit][{{ row_id }}][{{ column.Field_md5 }}]" value="{{ column.is_binary ? 'hex' : 'foreign' }}">
52         <select name="fields[multi_edit][{{ row_id }}][{{ column.Field_md5 }}]" class="textfield" id="field_{{ id_index }}_3" onchange="return verificationsAfterFieldChange('{{ column.Field_md5|escape_js_string }}', '{{ row_id|escape_js_string }}', '{{ column.pma_type }}')">
53           {{ foreign_dropdown|raw }}
54         </select>
55       {% elseif (longtext_double_textarea and 'longtext' in column.pma_type) or 'json' in column.pma_type or 'text' in column.pma_type %}
56         {{ backup_field|raw }}
57         <textarea name="fields[multi_edit][{{ row_id }}][{{ column.Field_md5 }}]" id="field_{{ id_index }}_3" data-type="{{ data_type }}" dir="{{ text_dir }}" rows="{{ textarea_rows }}" cols="{{ textarea_cols }}"
58           {{- max_length ? ' data-maxlength="' ~  max_length ~ '"' }}{{ column.is_char ? ' class="char charField"' }} onchange="return verificationsAfterFieldChange('{{ column.Field_md5|escape_js_string }}', '{{ row_id|escape_js_string }}', '{{ column.pma_type }}')">
59           {#- We need to duplicate the first \n or otherwise we will lose the first newline entered in a VARCHAR or TEXT column -#}
60           {{- special_chars starts with "\r\n" ? "\n" }}{{ special_chars|raw -}}
61         </textarea>
62         {% if 'text' in column.pma_type and special_chars|length > 32000 %}
63           </td>
64           <td>
65           {% trans 'Because of its length,<br> this column might not be editable.' %}
66         {% endif %}
67       {% elseif column.pma_type == 'enum' %}
68         {{ backup_field|raw }}
69         <input type="hidden" name="fields_type[multi_edit][{{ row_id }}][{{ column.Field_md5 }}]" value="enum">
70         {% if column.Type|length > 20 %}
71           <select name="fields[multi_edit][{{ row_id }}][{{ column.Field_md5 }}]" class="textfield" id="field_{{ id_index }}_3" onchange="return verificationsAfterFieldChange('{{ column.Field_md5|escape_js_string }}', '{{ row_id|escape_js_string }}', '{{ column.pma_type }}')">
72             <option value=""></option>
73             {% for enum_value in column.values %}
74               <option value="{{ enum_value.plain }}"{{ enum_value.plain == enum_selected_value ? ' selected' }}>{{ enum_value.plain }}</option>
75             {% endfor %}
76           </select>
77         {% else %}
78           {% for enum_value in column.values %}
79             <input type="radio" name="fields[multi_edit][{{ row_id }}][{{ column.Field_md5 }}]" value="{{ enum_value.plain }}" class="textfield" id="field_{{ id_index }}_3_{{ loop.index0 }}" onchange="return verificationsAfterFieldChange('{{ column.Field_md5|escape_js_string }}', '{{ row_id|escape_js_string }}', '{{ column.pma_type }}')"{{ enum_value.plain == enum_selected_value ? ' checked' }}>
80             <label for="field_{{ id_index }}_3_{{ loop.index0 }}">{{ enum_value.plain }}</label>
81           {% endfor %}
82         {% endif %}
83       {% elseif column.pma_type == 'set' %}
84         {{ backup_field|raw }}
85         <input type="hidden" name="fields_type[multi_edit][{{ row_id }}][{{ column.Field_md5 }}]" value="set">
86         <select name="fields[multi_edit][{{ row_id }}][{{ column.Field_md5 }}]" class="textfield" size="{{ set_select_size }}" id="field_{{ id_index }}_3" onchange="return verificationsAfterFieldChange('{{ column.Field_md5|escape_js_string }}', '{{ row_id|escape_js_string }}', '{{ column.pma_type }}')" multiple>
87           {% for set_value in set_values %}
88             <option value="{{ set_value.plain }}"{{ set_value.plain in data|split(',') ? ' selected' }}>{{ set_value.plain }}</option>
89           {% endfor %}
90         </select>
91       {% elseif column.is_binary or column.is_blob %}
92         {% if is_column_protected_blob %}
93           {% trans 'Binary - do not edit' %}
94           ({{ blob_value }} {{ blob_value_unit }})
95           <input type="hidden" name="fields[multi_edit][{{ row_id }}][{{ column.Field_md5 }}]" value="">
96           <input type="hidden" name="fields_type[multi_edit][{{ row_id }}][{{ column.Field_md5 }}]" value="protected">
97         {% elseif column.is_blob or (column.len > limit_chars) %}
98           {{ backup_field|raw }}
99           <input type="hidden" name="fields_type[multi_edit][{{ row_id }}][{{ column.Field_md5 }}]" value="hex">
100           <textarea name="fields[multi_edit][{{ row_id }}][{{ column.Field_md5 }}]" id="field_{{ id_index }}_3" data-type="HEX" dir="{{ text_dir }}" rows="{{ textarea_rows }}" cols="{{ textarea_cols }}"
101             {{- max_length ? ' data-maxlength="' ~  max_length ~ '"' }}{{ column.is_char ? ' class="char charField"' }} onchange="return verificationsAfterFieldChange('{{ column.Field_md5|escape_js_string }}', '{{ row_id|escape_js_string }}', '{{ column.pma_type }}')">
102             {#- We need to duplicate the first \n or otherwise we will lose the first newline entered in a VARCHAR or TEXT column -#}
103             {{- special_chars starts with "\r\n" ? "\n" }}{{ special_chars|raw -}}
104           </textarea>
105         {% else %}
106           {{ backup_field|raw }}
107           <input type="hidden" name="fields_type[multi_edit][{{ row_id }}][{{ column.Field_md5 }}]" value="hex">
108           {{ input_field_html|raw }}
109         {% endif %}
110         {% if is_upload and column.is_blob %}
111           <br>
112           {# We don't want to prevent users from using browser's default drag-drop feature on some page(s), so we add noDragDrop class to the input #}
113           <input type="file" name="fields_upload[multi_edit][{{ row_id }}][{{ column.Field_md5 }}]" class="textfield noDragDrop" id="field_{{ id_index }}_3" size="10" onchange="return verificationsAfterFieldChange('{{ column.Field_md5|escape_js_string }}', '{{ row_id|escape_js_string }}', '{{ column.pma_type }}')">
114           {{ max_upload_size }}
115         {% endif %}
116         {{ select_option_for_upload|raw }}
117       {% else %}
118         {{ value|raw }}
119       {% endif %}
121       {% if column.pma_type in gis_data_types %}
122         <span class="open_gis_editor" data-row-id="{{ row_id }}">{{ link_or_button('#', null, get_icon('b_edit', 'Edit/Insert'|trans), [], '_blank') }}</span>
123       {% endif %}
124     {% endif %}
125   </td>
126 </tr>