layout_form.twig (24937B)
1 {{ header }}{{ column_left }} 2 <div id="content"> 3 <div class="page-header"> 4 <div class="container-fluid"> 5 <div class="pull-right"> 6 <button type="submit" form="form-layout" data-toggle="tooltip" title="{{ button_save }}" class="btn btn-primary"><i class="fa fa-save"></i></button> 7 <a href="{{ cancel }}" data-toggle="tooltip" title="{{ button_cancel }}" class="btn btn-default"><i class="fa fa-reply"></i></a></div> 8 <h1>{{ heading_title }}</h1> 9 <ul class="breadcrumb"> 10 {% for breadcrumb in breadcrumbs %} 11 <li><a href="{{ breadcrumb.href }}">{{ breadcrumb.text }}</a></li> 12 {% endfor %} 13 </ul> 14 </div> 15 </div> 16 <div class="container-fluid"> 17 {% if error_warning %} 18 <div class="alert alert-danger alert-dismissible"><i class="fa fa-exclamation-circle"></i> {{ error_warning }} 19 <button type="button" class="close" data-dismiss="alert">×</button> 20 </div> 21 {% endif %} 22 <div class="panel panel-default"> 23 <div class="panel-heading"> 24 <h3 class="panel-title"><i class="fa fa-pencil"></i> {{ text_form }}</h3> 25 </div> 26 <div class="panel-body"> 27 <form action="{{ action }}" method="post" enctype="multipart/form-data" id="form-layout" class="form-horizontal"> 28 <fieldset> 29 <legend>{{ text_route }}</legend> 30 <div class="form-group required"> 31 <label class="col-sm-2 control-label" for="input-name">{{ entry_name }}</label> 32 <div class="col-sm-10"> 33 <input type="text" name="name" value="{{ name }}" placeholder="{{ entry_name }}" id="input-name" class="form-control" /> 34 {% if error_name %} 35 <div class="text-danger">{{ error_name }}</div> 36 {% endif %} 37 </div> 38 </div> 39 <table id="route" class="table table-striped table-bordered table-hover"> 40 <thead> 41 <tr> 42 <td class="text-left">{{ entry_store }}</td> 43 <td class="text-left">{{ entry_route }}</td> 44 <td></td> 45 </tr> 46 </thead> 47 <tbody> 48 {% set route_row = 0 %} 49 {% for layout_route in layout_routes %} 50 <tr id="route-row{{ route_row }}"> 51 <td class="text-left"><select name="layout_route[{{ route_row }}][store_id]" class="form-control"> 52 <option value="0">{{ text_default }}</option> 53 {% for store in stores %} 54 {% if store.store_id == layout_route.store_id %} 55 <option value="{{ store.store_id }}" selected="selected">{{ store.name }}</option> 56 {% else %} 57 <option value="{{ store.store_id }}">{{ store.name }}</option> 58 {% endif %} 59 {% endfor %} 60 </select></td> 61 <td class="text-left"><input type="text" name="layout_route[{{ route_row }}][route]" value="{{ layout_route.route }}" placeholder="{{ entry_route }}" class="form-control" /></td> 62 <td class="text-left"><button type="button" onclick="$('#route-row{{ route_row }}').remove();" data-toggle="tooltip" title="{{ button_remove }}" class="btn btn-danger"><i class="fa fa-minus-circle"></i></button></td> 63 </tr> 64 {% set route_row = route_row + 1 %} 65 {% endfor %} 66 </tbody> 67 <tfoot> 68 <tr> 69 <td colspan="2"></td> 70 <td class="text-left"><button type="button" onclick="addRoute();" data-toggle="tooltip" title="{{ button_route_add }}" class="btn btn-primary"><i class="fa fa-plus-circle"></i></button></td> 71 </tr> 72 </tfoot> 73 </table> 74 </fieldset> 75 <fieldset> 76 <legend>{{ text_module }}</legend> 77 {% set module_row = 0 %} 78 <div class="row"> 79 <div class="col-lg-3 col-md-4 col-sm-12"> 80 <table id="module-column-left" class="table table-striped table-bordered table-hover"> 81 <thead> 82 <tr> 83 <td class="text-center">{{ text_column_left }}</td> 84 </tr> 85 </thead> 86 <tbody> 87 {% for layout_module in layout_modules %} 88 {% if layout_module.position == 'column_left' %} 89 <tr id="module-row{{ module_row }}"> 90 <td class="text-left"><div class="input-group"> 91 <select name="layout_module[{{ module_row }}][code]" class="form-control input-sm"> 92 {% for extension in extensions %} 93 <optgroup label="{{ extension.name }}"> 94 {% if not extension.module %} 95 {% if extension.code == layout_module.code %} 96 <option value="{{ extension.code }}" selected="selected">{{ extension.name }}</option> 97 {% else %} 98 <option value="{{ extension.code }}">{{ extension.name }}</option> 99 {% endif %} 100 {% else %} 101 {% for module in extension.module %} 102 {% if module.code == layout_module.code %} 103 <option value="{{ module.code }}" selected="selected">{{ module.name }}</option> 104 {% else %} 105 <option value="{{ module.code }}">{{ module.name }}</option> 106 {% endif %} 107 {% endfor %} 108 {% endif %} 109 </optgroup> 110 {% endfor %} 111 </select> 112 <input type="hidden" name="layout_module[{{ module_row }}][position]" value="{{ layout_module.position }}" /> 113 <input type="hidden" name="layout_module[{{ module_row }}][sort_order]" value="{{ layout_module.sort_order }}" /> 114 <div class="input-group-btn"><a href="{{ layout_module.edit }}" type="button" data-toggle="tooltip" title="{{ button_edit }}" target="_blank" class="btn btn-primary btn-sm"><i class="fa fa-pencil"></i></a> 115 <button type="button" onclick="$('#module-row{{ module_row }}').remove();" data-toggle="tooltip" title="{{ button_remove }}" class="btn btn-danger btn-sm"><i class="fa fa fa-minus-circle"></i></button> 116 </div> 117 </div></td> 118 </tr> 119 {% set module_row = module_row + 1 %} 120 {% endif %} 121 {% endfor %} 122 </tbody> 123 <tfoot> 124 <tr> 125 <td class="text-left"><div class="input-group"> 126 <select class="form-control input-sm"> 127 <option value=""></option> 128 {% for extension in extensions %} 129 <optgroup label="{{ extension.name }}"> 130 {% if not extension.module %} 131 <option value="{{ extension.code }}">{{ extension.name }}</option> 132 {% else %} 133 {% for module in extension.module %} 134 <option value="{{ module.code }}">{{ module.name }}</option> 135 {% endfor %} 136 {% endif %} 137 </optgroup> 138 {% endfor %} 139 </select> 140 <div class="input-group-btn"> 141 <button type="button" onclick="addModule('column-left');" data-toggle="tooltip" title="{{ button_module_add }}" class="btn btn-primary btn-sm"><i class="fa fa-plus-circle"></i></button> 142 </div> 143 </div></td> 144 </tr> 145 </tfoot> 146 </table> 147 </div> 148 <div class="col-lg-6 col-md-4 col-sm-12"> 149 <table id="module-content-top" class="table table-striped table-bordered table-hover"> 150 <thead> 151 <tr> 152 <td class="text-center">{{ text_content_top }}</td> 153 </tr> 154 </thead> 155 <tbody> 156 {% for layout_module in layout_modules %} 157 {% if layout_module.position == 'content_top' %} 158 <tr id="module-row{{ module_row }}"> 159 <td class="text-left"><div class="input-group"> 160 <select name="layout_module[{{ module_row }}][code]" class="form-control input-sm"> 161 {% for extension in extensions %} 162 <optgroup label="{{ extension.name }}"> 163 {% if not extension.module %} 164 {% if extension.code == layout_module.code %} 165 <option value="{{ extension.code }}" selected="selected">{{ extension.name }}</option> 166 {% else %} 167 <option value="{{ extension.code }}">{{ extension.name }}</option> 168 {% endif %} 169 {% else %} 170 {% for module in extension.module %} 171 {% if module.code == layout_module.code %} 172 <option value="{{ module.code }}" selected="selected">{{ module.name }}</option> 173 {% else %} 174 <option value="{{ module.code }}">{{ module.name }}</option> 175 {% endif %} 176 {% endfor %} 177 {% endif %} 178 </optgroup> 179 {% endfor %} 180 </select> 181 <input type="hidden" name="layout_module[{{ module_row }}][position]" value="{{ layout_module.position }}" /> 182 <input type="hidden" name="layout_module[{{ module_row }}][sort_order]" value="{{ layout_module.sort_order }}" /> 183 <div class="input-group-btn"> <a href="{{ layout_module.edit }}" type="button" data-toggle="tooltip" title="{{ button_edit }}" target="_blank" class="btn btn-primary btn-sm"><i class="fa fa-pencil"></i></a> 184 <button type="button" onclick="$('#module-row{{ module_row }}').remove();" data-toggle="tooltip" title="{{ button_remove }}" class="btn btn-danger btn-sm"><i class="fa fa fa-minus-circle"></i></button> 185 </div> 186 </div></td> 187 </tr> 188 {% set module_row = module_row + 1 %} 189 {% endif %} 190 {% endfor %} 191 </tbody> 192 <tfoot> 193 <tr> 194 <td class="text-left"><div class="input-group"> 195 <select class="form-control input-sm"> 196 <option value=""></option> 197 {% for extension in extensions %} 198 <optgroup label="{{ extension.name }}"> 199 {% if not extension.module %} 200 <option value="{{ extension.code }}">{{ extension.name }}</option> 201 {% else %} 202 {% for module in extension.module %} 203 <option value="{{ module.code }}">{{ module.name }}</option> 204 {% endfor %} 205 {% endif %} 206 </optgroup> 207 {% endfor %} 208 </select> 209 <div class="input-group-btn"> 210 <button type="button" onclick="addModule('content-top');" data-toggle="tooltip" title="{{ button_module_add }}" class="btn btn-primary btn-sm"><i class="fa fa-plus-circle"></i></button> 211 </div> 212 </div></td> 213 </tr> 214 </tfoot> 215 </table> 216 <table id="module-content-bottom" class="table table-striped table-bordered table-hover"> 217 <thead> 218 <tr> 219 <td class="text-center">{{ text_content_bottom }}</td> 220 </tr> 221 </thead> 222 <tbody> 223 {% for layout_module in layout_modules %} 224 {% if layout_module.position == 'content_bottom' %} 225 <tr id="module-row{{ module_row }}"> 226 <td class="text-left"><div class="input-group"> 227 <select name="layout_module[{{ module_row }}][code]" class="form-control input-sm"> 228 {% for extension in extensions %} 229 <optgroup label="{{ extension.name }}"> 230 {% if not extension.module %} 231 {% if extension.code == layout_module.code %} 232 <option value="{{ extension.code }}" selected="selected">{{ extension.name }}</option> 233 {% else %} 234 <option value="{{ extension.code }}">{{ extension.name }}</option> 235 {% endif %} 236 {% else %} 237 {% for module in extension.module %} 238 {% if module.code == layout_module.code %} 239 <option value="{{ module.code }}" selected="selected">{{ module.name }}</option> 240 {% else %} 241 <option value="{{ module.code }}">{{ module.name }}</option> 242 {% endif %} 243 {% endfor %} 244 {% endif %} 245 </optgroup> 246 {% endfor %} 247 </select> 248 <input type="hidden" name="layout_module[{{ module_row }}][position]" value="{{ layout_module.position }}" /> 249 <input type="hidden" name="layout_module[{{ module_row }}][sort_order]" value="{{ layout_module.sort_order }}" /> 250 <div class="input-group-btn"><a href="{{ layout_module.edit }}" type="button" data-toggle="tooltip" title="{{ button_edit }}" target="_blank" class="btn btn-primary btn-sm"><i class="fa fa-pencil"></i></a> 251 <button type="button" onclick="$('#module-row{{ module_row }}').remove();" data-toggle="tooltip" title="{{ button_remove }}" class="btn btn-danger btn-sm"><i class="fa fa fa-minus-circle"></i></button> 252 </div> 253 </div></td> 254 </tr> 255 {% set module_row = module_row + 1 %} 256 {% endif %} 257 {% endfor %} 258 </tbody> 259 <tfoot> 260 <tr> 261 <td class="text-left"><div class="input-group"> 262 <select class="form-control input-sm"> 263 <option value=""></option> 264 {% for extension in extensions %} 265 <optgroup label="{{ extension.name }}"> 266 {% if not extension.module %} 267 <option value="{{ extension.code }}">{{ extension.name }}</option> 268 {% else %} 269 {% for module in extension.module %} 270 <option value="{{ module.code }}">{{ module.name }}</option> 271 {% endfor %} 272 {% endif %} 273 </optgroup> 274 {% endfor %} 275 </select> 276 <div class="input-group-btn"> 277 <button type="button" onclick="addModule('content-bottom');" data-toggle="tooltip" title="{{ button_module_add }}" class="btn btn-primary btn-sm"><i class="fa fa-plus-circle"></i></button> 278 </div> 279 </div></td> 280 </tr> 281 </tfoot> 282 </table> 283 </div> 284 <div class="col-lg-3 col-md-4 col-sm-12"> 285 <table id="module-column-right" class="table table-striped table-bordered table-hover"> 286 <thead> 287 <tr> 288 <td class="text-center">{{ text_column_right }}</td> 289 </tr> 290 </thead> 291 <tbody> 292 {% for layout_module in layout_modules %} 293 {% if layout_module.position == 'column_right' %} 294 <tr id="module-row{{ module_row }}"> 295 <td class="text-left"><div class="input-group"> 296 <select name="layout_module[{{ module_row }}][code]" class="form-control input-sm"> 297 {% for extension in extensions %} 298 <optgroup label="{{ extension.name }}"> 299 {% if not extension.module %} 300 {% if extension.code == layout_module.code %} 301 <option value="{{ extension.code }}" selected="selected">{{ extension.name }}</option> 302 {% else %} 303 <option value="{{ extension.code }}">{{ extension.name }}</option> 304 {% endif %} 305 {% else %} 306 {% for module in extension.module %} 307 {% if module.code == layout_module.code %} 308 <option value="{{ module.code }}" selected="selected">{{ module.name }}</option> 309 {% else %} 310 <option value="{{ module.code }}">{{ module.name }}</option> 311 {% endif %} 312 {% endfor %} 313 {% endif %} 314 </optgroup> 315 {% endfor %} 316 </select> 317 <input type="hidden" name="layout_module[{{ module_row }}][position]" value="{{ layout_module.position }}" /> 318 <input type="hidden" name="layout_module[{{ module_row }}][sort_order]" value="{{ layout_module.sort_order }}" /> 319 <div class="input-group-btn"><a href="{{ layout_module.edit }}" data-toggle="tooltip" title="{{ button_edit }}" target="_blank" class="btn btn-primary btn-sm"><i class="fa fa-pencil"></i></a> 320 <button type="button" onclick="$('#module-row{{ module_row }}').remove();" data-toggle="tooltip" title="{{ button_remove }}" class="btn btn-danger btn-sm"><i class="fa fa fa-minus-circle"></i></button> 321 </div> 322 </div></td> 323 </tr> 324 {% set module_row = module_row + 1 %} 325 {% endif %} 326 {% endfor %} 327 </tbody> 328 <tfoot> 329 <tr> 330 <td class="text-left"><div class="input-group"> 331 <select class="form-control input-sm"> 332 <option value=""></option> 333 {% for extension in extensions %} 334 <optgroup label="{{ extension.name }}"> 335 {% if not extension.module %} 336 <option value="{{ extension.code }}">{{ extension.name }}</option> 337 {% else %} 338 {% for module in extension.module %} 339 <option value="{{ module.code }}">{{ module.name }}</option> 340 {% endfor %} 341 {% endif %} 342 </optgroup> 343 {% endfor %} 344 </select> 345 <div class="input-group-btn"> 346 <button type="button" onclick="addModule('column-right');" data-toggle="tooltip" title="{{ button_module_add }}" class="btn btn-primary btn-sm"><i class="fa fa-plus-circle"></i></button> 347 </div> 348 </div></td> 349 </tr> 350 </tfoot> 351 </table> 352 </div> 353 </div> 354 </fieldset> 355 </form> 356 </div> 357 </div> 358 </div> 359 <script type="text/javascript"><!-- 360 var route_row = {{ route_row }}; 361 362 function addRoute() { 363 html = '<tr id="route-row' + route_row + '">'; 364 html += ' <td class="text-left"><select name="layout_route[' + route_row + '][store_id]" class="form-control">'; 365 html += ' <option value="0">{{ text_default }}</option>'; 366 {% for store in stores %} 367 html += '<option value="{{ store.store_id }}">{{ store.name|escape('js') }}</option>'; 368 {% endfor %} 369 html += ' </select></td>'; 370 html += ' <td class="text-left"><input type="text" name="layout_route[' + route_row + '][route]" value="" placeholder="{{ entry_route }}" class="form-control" /></td>'; 371 html += ' <td class="text-left"><button type="button" onclick="$(\'#route-row' + route_row + '\').remove();" data-toggle="tooltip" title="{{ button_remove }}" class="btn btn-danger"><i class="fa fa-minus-circle"></i></button></td>'; 372 html += '</tr>'; 373 374 $('#route tbody').append(html); 375 376 route_row++; 377 } 378 379 var module_row = {{ module_row }}; 380 381 function addModule(type) { 382 html = '<tr id="module-row' + module_row + '">'; 383 html += ' <td class="text-left"><div class="input-group"><select name="layout_module[' + module_row + '][code]" class="form-control input-sm">'; 384 {% for extension in extensions %} 385 html += ' <optgroup label="{{ extension.name|escape('js') }}">'; 386 {% if not extension.module %} 387 html += ' <option value="{{ extension.code }}">{{ extension.name|escape('js') }}</option>'; 388 {% else %} 389 {% for module in extension.module %} 390 html += ' <option value="{{ module.code }}">{{ module.name|escape('js') }}</option>'; 391 {% endfor %} 392 {% endif %} 393 html += ' </optgroup>'; 394 {% endfor %} 395 html += ' </select>'; 396 html += ' <input type="hidden" name="layout_module[' + module_row + '][position]" value="' + type.replace('-', '_') + '" />'; 397 html += ' <input type="hidden" name="layout_module[' + module_row + '][sort_order]" value="" />'; 398 html += ' <div class="input-group-btn"><a href="" target="_blank" type="button" data-toggle="tooltip" title="{{ button_edit }}" class="btn btn-primary btn-sm"><i class="fa fa-pencil"></i></a><button type="button" onclick="$(\'#module-row' + module_row + '\').remove();" data-toggle="tooltip" title="{{ button_remove }}" class="btn btn-danger btn-sm"><i class="fa fa fa-minus-circle"></i></button></div></div></td>'; 399 html += '</tr>'; 400 401 $('#module-' + type + ' tbody').append(html); 402 403 $('#module-' + type + ' tbody select[name=\'layout_module[' + module_row + '][code]\']').val($('#module-' + type + ' tfoot select').val()); 404 405 $('#module-' + type + ' select[name*=\'code\']').trigger('change'); 406 407 $('#module-' + type + ' tbody input[name*=\'sort_order\']').each(function(i, element) { 408 $(element).val(i); 409 }); 410 411 module_row++; 412 } 413 414 $('#module-column-left, #module-column-right, #module-content-top, #module-content-bottom').delegate('select[name*=\'code\']', 'change', function() { 415 var part = this.value.split('.'); 416 417 if (!part[1]) { 418 $(this).parent().find('a').attr('href', 'index.php?route=extension/module/' + part[0] + '&user_token={{ user_token }}'); 419 } else { 420 $(this).parent().find('a').attr('href', 'index.php?route=extension/module/' + part[0] + '&user_token={{ user_token }}&module_id=' + part[1]); 421 } 422 }); 423 424 $('#module-column-left, #module-column-right, #module-content-top, #module-content-bottom').trigger('change'); 425 //--></script> 426 </div> 427 {{ footer }}