order_list.twig (14358B)
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="button" data-toggle="tooltip" title="{{ button_filter }}" onclick="$('#filter-order').toggleClass('hidden-sm hidden-xs');" class="btn btn-default hidden-md hidden-lg"><i class="fa fa-filter"></i></button> 7 <button type="submit" id="button-shipping" form="form-order" formaction="{{ shipping }}" formtarget="_blank" data-toggle="tooltip" title="{{ button_shipping_print }}" class="btn btn-info"><i class="fa fa-truck"></i></button> 8 <button type="submit" id="button-invoice" form="form-order" formaction="{{ invoice }}" formtarget="_blank" data-toggle="tooltip" title="{{ button_invoice_print }}" class="btn btn-info"><i class="fa fa-print"></i></button> 9 <a href="{{ add }}" data-toggle="tooltip" title="{{ button_add }}" class="btn btn-primary"><i class="fa fa-plus"></i></a> </div> 10 <h1>{{ heading_title }}</h1> 11 <ul class="breadcrumb"> 12 {% for breadcrumb in breadcrumbs %} 13 <li><a href="{{ breadcrumb.href }}">{{ breadcrumb.text }}</a></li> 14 {% endfor %} 15 </ul> 16 </div> 17 </div> 18 <div class="container-fluid">{% if error_warning %} 19 <div class="alert alert-danger alert-dismissible"><i class="fa fa-exclamation-circle"></i> {{ error_warning }} 20 <button type="button" class="close" data-dismiss="alert">×</button> 21 </div> 22 {% endif %} 23 {% if success %} 24 <div class="alert alert-success alert-dismissible"><i class="fa fa-check-circle"></i> {{ success }} 25 <button type="button" class="close" data-dismiss="alert">×</button> 26 </div> 27 {% endif %} 28 <div class="row"> 29 <div id="filter-order" class="col-md-3 col-md-push-9 col-sm-12 hidden-sm hidden-xs"> 30 <div class="panel panel-default"> 31 <div class="panel-heading"> 32 <h3 class="panel-title"><i class="fa fa-filter"></i> {{ text_filter }}</h3> 33 </div> 34 <div class="panel-body"> 35 <div class="form-group"> 36 <label class="control-label" for="input-order-id">{{ entry_order_id }}</label> 37 <input type="text" name="filter_order_id" value="{{ filter_order_id }}" placeholder="{{ entry_order_id }}" id="input-order-id" class="form-control" /> 38 </div> 39 <div class="form-group"> 40 <label class="control-label" for="input-customer">{{ entry_customer }}</label> 41 <input type="text" name="filter_customer" value="{{ filter_customer }}" placeholder="{{ entry_customer }}" id="input-customer" class="form-control" /> 42 </div> 43 <div class="form-group"> 44 <label class="control-label" for="input-order-status">{{ entry_order_status }}</label> 45 <select name="filter_order_status_id" id="input-order-status" class="form-control"> 46 <option value=""></option> 47 48 {% if filter_order_status_id == '0' %} 49 50 <option value="0" selected="selected">{{ text_missing }}</option> 51 52 {% else %} 53 54 <option value="0">{{ text_missing }}</option> 55 56 {% endif %} 57 {% for order_status in order_statuses %} 58 {% if order_status.order_status_id == filter_order_status_id %} 59 60 <option value="{{ order_status.order_status_id }}" selected="selected">{{ order_status.name }}</option> 61 62 {% else %} 63 64 <option value="{{ order_status.order_status_id }}">{{ order_status.name }}</option> 65 66 {% endif %} 67 {% endfor %} 68 69 </select> 70 </div> 71 <div class="form-group"> 72 <label class="control-label" for="input-total">{{ entry_total }}</label> 73 <input type="text" name="filter_total" value="{{ filter_total }}" placeholder="{{ entry_total }}" id="input-total" class="form-control" /> 74 </div> 75 <div class="form-group"> 76 <label class="control-label" for="input-date-added">{{ entry_date_added }}</label> 77 <div class="input-group date"> 78 <input type="text" name="filter_date_added" value="{{ filter_date_added }}" placeholder="{{ entry_date_added }}" data-date-format="YYYY-MM-DD" id="input-date-added" class="form-control" /> 79 <span class="input-group-btn"> 80 <button type="button" class="btn btn-default"><i class="fa fa-calendar"></i></button> 81 </span> </div> 82 </div> 83 <div class="form-group"> 84 <label class="control-label" for="input-date-modified">{{ entry_date_modified }}</label> 85 <div class="input-group date"> 86 <input type="text" name="filter_date_modified" value="{{ filter_date_modified }}" placeholder="{{ entry_date_modified }}" data-date-format="YYYY-MM-DD" id="input-date-modified" class="form-control" /> 87 <span class="input-group-btn"> 88 <button type="button" class="btn btn-default"><i class="fa fa-calendar"></i></button> 89 </span> </div> 90 </div> 91 <div class="form-group text-right"> 92 <button type="button" id="button-filter" class="btn btn-default"><i class="fa fa-filter"></i> {{ button_filter }}</button> 93 </div> 94 </div> 95 </div> 96 </div> 97 <div class="col-md-9 col-md-pull-3 col-sm-12"> 98 <div class="panel panel-default"> 99 <div class="panel-heading"> 100 <h3 class="panel-title"><i class="fa fa-list"></i> {{ text_list }}</h3> 101 </div> 102 <div class="panel-body"> 103 <form method="post" action="" enctype="multipart/form-data" id="form-order"> 104 <div class="table-responsive"> 105 <table class="table table-bordered table-hover"> 106 <thead> 107 <tr> 108 <td style="width: 1px;" class="text-center"><input type="checkbox" onclick="$('input[name*=\'selected\']').prop('checked', this.checked);" /></td> 109 <td class="text-right">{% if sort == 'o.order_id' %} <a href="{{ sort_order }}" class="{{ order|lower }}">{{ column_order_id }}</a> {% else %} <a href="{{ sort_order }}">{{ column_order_id }}</a> {% endif %}</td> 110 <td class="text-left">{% if sort == 'customer' %} <a href="{{ sort_customer }}" class="{{ order|lower }}">{{ column_customer }}</a> {% else %} <a href="{{ sort_customer }}">{{ column_customer }}</a> {% endif %}</td> 111 <td class="text-left">{% if sort == 'order_status' %} <a href="{{ sort_status }}" class="{{ order|lower }}">{{ column_status }}</a> {% else %} <a href="{{ sort_status }}">{{ column_status }}</a> {% endif %}</td> 112 <td class="text-right">{% if sort == 'o.total' %} <a href="{{ sort_total }}" class="{{ order|lower }}">{{ column_total }}</a> {% else %} <a href="{{ sort_total }}">{{ column_total }}</a> {% endif %}</td> 113 <td class="text-left">{% if sort == 'o.date_added' %} <a href="{{ sort_date_added }}" class="{{ order|lower }}">{{ column_date_added }}</a> {% else %} <a href="{{ sort_date_added }}">{{ column_date_added }}</a> {% endif %}</td> 114 <td class="text-left">{% if sort == 'o.date_modified' %} <a href="{{ sort_date_modified }}" class="{{ order|lower }}">{{ column_date_modified }}</a> {% else %} <a href="{{ sort_date_modified }}">{{ column_date_modified }}</a> {% endif %}</td> 115 <td class="text-right">{{ column_action }}</td> 116 </tr> 117 </thead> 118 <tbody> 119 120 {% if orders %} 121 {% for order in orders %} 122 <tr> 123 <td class="text-center"> {% if order.order_id in selected %} 124 <input type="checkbox" name="selected[]" value="{{ order.order_id }}" checked="checked" /> 125 {% else %} 126 <input type="checkbox" name="selected[]" value="{{ order.order_id }}" /> 127 {% endif %} 128 <input type="hidden" name="shipping_code[]" value="{{ order.shipping_code }}" /></td> 129 <td class="text-right">{{ order.order_id }}</td> 130 <td class="text-left">{{ order.customer }}</td> 131 <td class="text-left">{{ order.order_status }}</td> 132 <td class="text-right">{{ order.total }}</td> 133 <td class="text-left">{{ order.date_added }}</td> 134 <td class="text-left">{{ order.date_modified }}</td> 135 <td class="text-right"><div style="min-width: 120px;"> 136 <div class="btn-group"> <a href="{{ order.view }}" data-toggle="tooltip" title="{{ button_view }}" class="btn btn-primary"><i class="fa fa-eye"></i></a> 137 <button type="button" data-toggle="dropdown" class="btn btn-primary dropdown-toggle"><span class="caret"></span></button> 138 <ul class="dropdown-menu dropdown-menu-right"> 139 <li><a href="{{ order.edit }}"><i class="fa fa-pencil"></i> {{ button_edit }}</a></li> 140 <li><a href="{{ order.order_id }}"><i class="fa fa-trash-o"></i> {{ button_delete }}</a></li> 141 </ul> 142 </div> 143 </div></td> 144 </tr> 145 {% endfor %} 146 {% else %} 147 <tr> 148 <td class="text-center" colspan="8">{{ text_no_results }}</td> 149 </tr> 150 {% endif %} 151 </tbody> 152 153 </table> 154 </div> 155 </form> 156 <div class="row"> 157 <div class="col-sm-6 text-left">{{ pagination }}</div> 158 <div class="col-sm-6 text-right">{{ results }}</div> 159 </div> 160 </div> 161 </div> 162 </div> 163 </div> 164 <script type="text/javascript"><!-- 165 $('#button-filter').on('click', function() { 166 url = ''; 167 168 var filter_order_id = $('input[name=\'filter_order_id\']').val(); 169 170 if (filter_order_id) { 171 url += '&filter_order_id=' + encodeURIComponent(filter_order_id); 172 } 173 174 var filter_customer = $('input[name=\'filter_customer\']').val(); 175 176 if (filter_customer) { 177 url += '&filter_customer=' + encodeURIComponent(filter_customer); 178 } 179 180 var filter_order_status_id = $('select[name=\'filter_order_status_id\']').val(); 181 182 if (filter_order_status_id !== '') { 183 url += '&filter_order_status_id=' + encodeURIComponent(filter_order_status_id); 184 } 185 186 var filter_total = $('input[name=\'filter_total\']').val(); 187 188 if (filter_total) { 189 url += '&filter_total=' + encodeURIComponent(filter_total); 190 } 191 192 var filter_date_added = $('input[name=\'filter_date_added\']').val(); 193 194 if (filter_date_added) { 195 url += '&filter_date_added=' + encodeURIComponent(filter_date_added); 196 } 197 198 var filter_date_modified = $('input[name=\'filter_date_modified\']').val(); 199 200 if (filter_date_modified) { 201 url += '&filter_date_modified=' + encodeURIComponent(filter_date_modified); 202 } 203 204 location = 'index.php?route=sale/order&user_token={{ user_token }}' + url; 205 }); 206 //--></script> 207 <script type="text/javascript"><!-- 208 $('input[name=\'filter_customer\']').autocomplete({ 209 'source': function(request, response) { 210 $.ajax({ 211 url: 'index.php?route=customer/customer/autocomplete&user_token={{ user_token }}&filter_name=' + encodeURIComponent(request), 212 dataType: 'json', 213 success: function(json) { 214 response($.map(json, function(item) { 215 return { 216 label: item['name'], 217 value: item['customer_id'] 218 } 219 })); 220 } 221 }); 222 }, 223 'select': function(item) { 224 $('input[name=\'filter_customer\']').val(item['label']); 225 } 226 }); 227 //--></script> 228 <script type="text/javascript"><!-- 229 $('input[name^=\'selected\']').on('change', function() { 230 $('#button-shipping, #button-invoice').prop('disabled', true); 231 232 var selected = $('input[name^=\'selected\']:checked'); 233 234 if (selected.length) { 235 $('#button-invoice').prop('disabled', false); 236 } 237 238 for (i = 0; i < selected.length; i++) { 239 if ($(selected[i]).parent().find('input[name^=\'shipping_code\']').val()) { 240 $('#button-shipping').prop('disabled', false); 241 242 break; 243 } 244 } 245 }); 246 247 $('#button-shipping, #button-invoice').prop('disabled', true); 248 249 $('input[name^=\'selected\']:first').trigger('change'); 250 251 // IE and Edge fix! 252 $('#button-shipping, #button-invoice').on('click', function(e) { 253 $('#form-order').attr('action', this.getAttribute('formAction')); 254 }); 255 256 $('#form-order li:last-child a').on('click', function(e) { 257 e.preventDefault(); 258 259 var element = this; 260 261 if (confirm('{{ text_confirm }}')) { 262 $.ajax({ 263 url: '{{ catalog }}index.php?route=api/order/delete&api_token={{ api_token }}&store_id={{ store_id }}&order_id=' + $(element).attr('href'), 264 dataType: 'json', 265 beforeSend: function() { 266 $(element).parent().parent().parent().find('button').button('loading'); 267 }, 268 complete: function() { 269 $(element).parent().parent().parent().find('button').button('reset'); 270 }, 271 success: function(json) { 272 $('.alert-dismissible').remove(); 273 274 if (json['error']) { 275 $('#content > .container-fluid').prepend('<div class="alert alert-danger alert-dismissible"><i class="fa fa-exclamation-circle"></i> ' + json['error'] + ' <button type="button" class="close" data-dismiss="alert">×</button></div>'); 276 } 277 278 if (json['success']) { 279 location = '{{ delete }}'; 280 } 281 }, 282 error: function(xhr, ajaxOptions, thrownError) { 283 alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText); 284 } 285 }); 286 } 287 }); 288 //--></script> 289 <script src="view/javascript/jquery/datetimepicker/bootstrap-datetimepicker.min.js" type="text/javascript"></script> 290 <link href="view/javascript/jquery/datetimepicker/bootstrap-datetimepicker.min.css" type="text/css" rel="stylesheet" media="screen" /> 291 <script type="text/javascript"><!-- 292 $('.date').datetimepicker({ 293 language: '{{ datepicker }}', 294 pickTime: false 295 }); 296 //--></script></div> 297 {{ footer }}