1<form action="{{ url('/table/indexes') }}" 2 method="post" 3 name="index_frm" 4 id="index_frm" 5 class="ajax"> 6 7 {{ get_hidden_inputs(form_params) }} 8 9 <fieldset id="index_edit_fields"> 10 <div class="index_info"> 11 <div> 12 <div class="label"> 13 <strong> 14 <label for="input_index_name"> 15 {% trans 'Index name:' %} 16 {{ show_hint('"PRIMARY" <b>must</b> be the name of and <b>only of</b> a primary key!'|trans) }} 17 </label> 18 </strong> 19 </div> 20 21 <input type="text" 22 name="index[Key_name]" 23 id="input_index_name" 24 size="25" 25 maxlength="64" 26 value="{{ index.getName() }}" 27 onfocus="this.select()"> 28 </div> 29 30 <div> 31 <div class="label"> 32 <strong> 33 <label for="select_index_choice"> 34 {% trans 'Index choice:' %} 35 {{ show_mysql_docu('ALTER_TABLE') }} 36 </label> 37 </strong> 38 </div> 39 40 <select name="index[Index_choice]" id="select_index_choice"{{ create_edit_table ? ' disabled' }}> 41 {% if index.getChoice() == 'PRIMARY' or not index.hasPrimary() %} 42 <option value="PRIMARY"{{ index.getChoice() == 'PRIMARY' ? ' selected' }}>PRIMARY</option> 43 {% endif %} 44 <option value="INDEX"{{ index.getChoice() == 'INDEX' ? ' selected' }}>INDEX</option> 45 <option value="UNIQUE"{{ index.getChoice() == 'UNIQUE' ? ' selected' }}>UNIQUE</option> 46 <option value="SPATIAL"{{ index.getChoice() == 'SPATIAL' ? ' selected' }}>SPATIAL</option> 47 <option value="FULLTEXT"{{ index.getChoice() == 'FULLTEXT' ? ' selected' }}>FULLTEXT</option> 48 </select> 49 </div> 50 51 <div id="indexoptions"{% if default_sliders_state != 'disabled' -%} 52 {{- default_sliders_state == 'closed' ? ' style="display: none; overflow:auto;"' }} class="pma_auto_slider" title="{% trans 'Advanced options' %}" 53 {%- endif %}> 54 55 <div> 56 <div class="label"> 57 <strong> 58 <label for="input_key_block_size"> 59 {% trans 'Key block size:' %} 60 </label> 61 </strong> 62 </div> 63 64 <input type="text" 65 name="index[Key_block_size]" 66 id="input_key_block_size" 67 size="30" 68 value="{{ index.getKeyBlockSize() }}"> 69 </div> 70 71 <div> 72 73 <div class="label"> 74 <strong> 75 <label for="select_index_type"> 76 {% trans 'Index type:' %} 77 {{ show_mysql_docu('ALTER_TABLE') }} 78 </label> 79 </strong> 80 </div> 81 82 <select name="index[Index_type]" id="select_index_type"> 83 {% for index_type in ['', 'BTREE', 'HASH'] %} 84 <option value="{{ index_type }}"{{ index.getType() == index_type ? ' selected' }}>{{ index_type }}</option> 85 {% endfor %} 86 </select> 87 </div> 88 89 <div> 90 <div class="label"> 91 <strong> 92 <label for="input_parser"> 93 {% trans 'Parser:' %} 94 </label> 95 </strong> 96 </div> 97 98 <input type="text" 99 name="index[Parser]" 100 id="input_parse" 101 size="30" 102 value="{{ index.getParser() }}"> 103 </div> 104 105 <div> 106 <div class="label"> 107 <strong> 108 <label for="input_index_comment"> 109 {% trans 'Comment:' %} 110 </label> 111 </strong> 112 </div> 113 114 <input type="text" 115 name="index[Index_comment]" 116 id="input_index_comment" 117 size="30" 118 maxlength="1024" 119 value="{{ index.getComment() }}"> 120 </div> 121 </div> 122 <!-- end of indexoptions div --> 123 124 <div class="clearfloat"></div> 125 126 <table class="pma-table" id="index_columns"> 127 <thead> 128 <tr> 129 <th></th> 130 <th> 131 {% trans 'Column' %} 132 </th> 133 <th> 134 {% trans 'Size' %} 135 </th> 136 </tr> 137 </thead> 138 {% set spatial_types = [ 139 'geometry', 140 'point', 141 'linestring', 142 'polygon', 143 'multipoint', 144 'multilinestring', 145 'multipolygon', 146 'geomtrycollection' 147 ] %} 148 <tbody> 149 {% for column in index.getColumns() %} 150 <tr class="noclick"> 151 <td> 152 <span class="drag_icon" title="{% trans 'Drag to reorder' %}"></span> 153 </td> 154 <td> 155 <select name="index[columns][names][]"> 156 <option value=""> 157 -- {% trans 'Ignore' %} -- 158 </option> 159 {% for field_name, field_type in fields %} 160 {% if (index.getChoice() != 'FULLTEXT' 161 or field_type matches '/(char|text)/i') 162 and (index.getChoice() != 'SPATIAL' 163 or field_type in spatial_types) %} 164 165 <option value="{{ field_name }}" 166 {%- if field_name == column.getName() %} 167 selected="selected" 168 {%- endif %}> 169 {{ field_name }} [{{ field_type }}] 170 </option> 171 {% endif %} 172 {% endfor %} 173 </select> 174 </td> 175 <td> 176 <input type="text" 177 size="5" 178 onfocus="this.select()" 179 name="index[columns][sub_parts][]" 180 value="{{ index.getChoice() != 'SPATIAL' ? 181 column.getSubPart() }}"> 182 </td> 183 </tr> 184 {% endfor %} 185 {% if add_fields > 0 %} 186 {% for i in range(1, add_fields) %} 187 <tr class="noclick"> 188 <td> 189 <span class="drag_icon" title="{% trans 'Drag to reorder' %}"></span> 190 </td> 191 <td> 192 <select name="index[columns][names][]"> 193 <option value="">-- {% trans 'Ignore' %} --</option> 194 {% set j = 0 %} 195 {% for field_name, field_type in fields %} 196 {% if create_edit_table %} 197 {% set col_index = field_type[1] %} 198 {% set field_type = field_type[0] %} 199 {% endif %} 200 {% set j = j + 1 %} 201 <option value="{{ col_index is defined ? 202 col_index : field_name }}" 203 {{- j == i ? ' selected="selected"' }}> 204 {{ field_name }} [{{ field_type }}] 205 </option> 206 {% endfor %} 207 </select> 208 </td> 209 <td> 210 <input type="text" 211 size="5" 212 onfocus="this.select()" 213 name="index[columns][sub_parts][]" 214 value=""> 215 </td> 216 </tr> 217 {% endfor %} 218 {% endif %} 219 </tbody> 220 </table> 221 <div class="add_more"> 222 223 <div class="slider"></div> 224 <div class="add_fields hide"> 225 <input class="btn btn-secondary" type="submit" 226 id="add_fields" 227 value="{{ 'Add %s column(s) to index'|trans|format(1) }}"> 228 </div> 229 </div> 230 </div> 231 </fieldset> 232 <fieldset class="tblFooters"> 233 <button class="btn btn-secondary" type="submit" id="preview_index_frm">{% trans 'Preview SQL' %}</button> 234 </fieldset> 235</form> 236