etsy_listings.twig (14468B)
1 {{ header }}{{ column_left }} 2 <div id="content"> 3 <div class="page-header"> 4 <div class="container-fluid"> 5 <h1>{{ heading_title }}</h1> 6 <ul class="breadcrumb"> 7 {% for breadcrumb in breadcrumbs %} 8 <li><a href="{{ breadcrumb.href }}">{{ breadcrumb.text }}</a></li> 9 {% endfor %} 10 </ul> 11 </div> 12 </div> 13 <div class="container-fluid"> 14 {% if success %} 15 <div class="alert alert-success alert-dismissible"><i class="fa fa-check-circle"></i> {{ success }}</div> 16 {% endif %} 17 {% if error_warning %} 18 <div class="alert alert-danger alert-dismissible"><i class="fa fa-exclamation-circle"></i> {{ error_warning }}</div> 19 {% endif %} 20 <div class="panel panel-default"> 21 <div class="panel-heading"> 22 <h3 class="panel-title"><i class="fa fa-list"></i> {{ text_listings }}</h3> 23 </div> 24 <div class="panel-body"> 25 <div class="well"> 26 <div class="row"> 27 <div class="col-sm-6"> 28 <div class="form-group"> 29 <label class="control-label" for="input-keywords">{{ entry_keywords }}</label> 30 <input type="text" name="keywords" value="{{ filter.keywords }}" placeholder="{{ entry_keywords }}" id="input-keywords" class="form-control" /> 31 <span class="help-block">{{ help_keywords }}</span> 32 </div> 33 </div> 34 <div class="col-sm-6"> 35 <div class="form-group"> 36 <label class="control-label" for="input-status">{{ entry_status }}</label> 37 <select name="status" id="input-status" class="form-control"> 38 <option value="active"{% if filter.status == "active" %} selected{% endif %}>{{ text_active }}</option> 39 <option value="inactive"{% if filter.status == "inactive" %} selected{% endif %}>{{ text_inactive }}</option> 40 <option value="draft"{% if filter.status == "draft" %} selected{% endif %}>{{ text_draft }}</option> 41 <option value="expired"{% if filter.status == "expired" %} selected{% endif %}>{{ text_expired }}</option> 42 </select> 43 </div> 44 <button type="button" id="button-filter" class="btn btn-primary pull-right"><i class="fa fa-filter"></i> {{ button_filter }}</button> 45 </div> 46 </div> 47 </div> 48 <div class="alert alert-danger" id="alert-error" style="display:none;"></div> 49 <div class="well" style="display:none;" id="link-well"> 50 <div class="row"> 51 <div class="col-sm-6"> 52 <div class="form-group"> 53 <label class="control-label" for="input-name">{{ entry_name }}</label> 54 <input type="hidden" name="add_link_product_id" value="" id="input-product-id"/> 55 <input type="text" name="add_link_product" value="" placeholder="{{ entry_name }}" id="input-name" class="form-control" /> 56 </div> 57 </div> 58 <div class="col-sm-6"> 59 <div class="form-group"> 60 <label class="control-label" for="input-etsy-id">{{ entry_etsy_id }}</label> 61 <input type="text" name="add_link_etsy_id" value="" placeholder="{{ entry_etsy_id }}" id="input-etsy-id" class="form-control" /> 62 </div> 63 <a onclick="addLink();" class="btn btn-primary pull-right" id="button-submit-link"><i class="fa fa-check"></i> {{ button_save }}</a> </div> 64 </div> 65 </div> 66 <div class="table-responsive"> 67 <table class="table table-bordered table-hover"> 68 <thead> 69 <tr> 70 <td class="text-left">{{ column_listing_id }}</td> 71 <td class="text-left">{{ column_title }}</td> 72 <td class="text-center">{{ column_listing_qty }}</td> 73 <td class="text-center">{{ column_store_qty }}</td> 74 <td class="text-center">{{ column_link_status }}</td> 75 <td class="text-center">{{ column_status }}</td> 76 <td class="text-right">{{ column_action }}</td> 77 </tr> 78 </thead> 79 <tbody> 80 {% if listings %} 81 {% for listing in listings %} 82 <tr> 83 <td class="text-left">{{ listing.listing.listing_id }}</td> 84 <td class="text-left">{{ listing.listing.title }}</td> 85 <td class="text-center">{{ listing.listing.quantity }}</td> 86 {% if listing.link is not empty %} 87 <td class="text-center">{{ listing.link.quantity }}</td> 88 <td class="text-center"><i class="fa fa-check" style="color: green;"></i></td> 89 <td class="text-center">{% if listing.link.quantity != listing.listing.quantity %}{{ text_status_stock }}{% else %}{{ text_status_ok }}{% endif %}</td> 90 {% else %} 91 <td class="text-center"><i class="fa fa-minus"></i></td> 92 <td class="text-center"><i class="fa fa-times" style="color: red;"></i></td> 93 <td class="text-center">{{ text_status_nolink }}</td> 94 {% endif %} 95 <td class="text-right"> 96 {% if "activate_item" in listing.actions %} 97 <button data-toggle="tooltip" title="{{ text_activate }}" class="btn btn-primary" onclick="activateListing('{{ listing.listing.listing_id }}');" id="btn-activate-{{ listing.listing.listing_id }}"><i class="fa fa-plus"></i></button> 98 {% endif %} 99 {% if "add_link" in listing.actions %} 100 <button data-toggle="tooltip" title="{{ text_add_link }}" class="btn btn-primary" onclick="showLinkOption('{{ listing.listing.listing_id }}');"><i class="fa fa-link"></i></button> 101 {% endif %} 102 {% if "delete_link" in listing.actions %} 103 <button data-toggle="tooltip" title="{{ text_delete_link }}" class="btn btn-danger" id="btn-delete-{{ listing.link.etsy_listing_id }}" onclick="deleteLink('{{ listing.link.etsy_listing_id }}');"><i class="fa fa-unlink"></i></button> 104 {% endif %} 105 {% if "end_item" in listing.actions %} 106 <button data-toggle="tooltip" title="{{ text_delete }}" class="btn btn-danger" onclick="endListing('{{ listing.listing.listing_id }}');" id="btn-end-{{ listing.link.etsy_listing_id }}"><i class="fa fa-times"></i></button> 107 <button data-toggle="tooltip" title="{{ text_deactivate }}" class="btn btn-danger" onclick="deactivateListing('{{ listing.listing.listing_id }}');" id="btn-deactivate-{{ listing.listing.listing_id }}"><i class="fa fa-ban"></i></button> 108 {% endif %} 109 </td> 110 </tr> 111 {% endfor %} 112 {% else %} 113 <tr> 114 <td class="text-center" colspan="8">{{ text_no_results }}</td> 115 </tr> 116 {% endif %} 117 </tbody> 118 </table> 119 </div> 120 <div class="row"> 121 <div class="col-sm-6 text-left">{{ pagination }}</div> 122 <div class="col-sm-6 text-right">{{ results }}</div> 123 </div> 124 </div> 125 </div> 126 </div> 127 </div> 128 <script type="text/javascript"><!-- 129 var url = 'index.php?route=extension/openbay/etsy_product/listings&user_token={{ user_token }}&page={{ filter.page }}'; 130 131 var filter_keywords = $('input[name=\'keywords\']').val(); 132 133 if (filter_keywords) { 134 url += '&keywords=' + encodeURIComponent(filter_keywords); 135 } 136 137 var filter_status = $('input[name=\'status\']').val(); 138 139 if (filter_status) { 140 url += '&status=' + encodeURIComponent(filter_status); 141 } 142 143 $('#button-filter').on('click', function() { 144 var url = 'index.php?route=extension/openbay/etsy_product/listings&user_token={{ user_token }}'; 145 146 var status = $('select[name=\'status\']').val(); 147 148 url += '&status=' + encodeURIComponent(status); 149 150 var keywords = $('input[name=\'keywords\']').val(); 151 152 if (keywords != '') { 153 url += '&keywords=' + encodeURIComponent(keywords); 154 } 155 156 location = url; 157 }); 158 159 function showLinkOption(id) { 160 $('#input-etsy-id').val(id); 161 $('#link-well').slideDown(); 162 } 163 164 function addLink() { 165 var product_id = $('#input-product-id').val(); 166 var etsy_id = $('#input-etsy-id').val(); 167 168 if (product_id == '') { 169 alert('{{ error_product_id }}'); 170 return false; 171 } 172 173 if (etsy_id == '') { 174 alert('{{ error_etsy_id }}'); 175 return false; 176 } 177 178 $.ajax({ 179 url: 'index.php?route=extension/openbay/etsy_product/addLink&user_token={{ user_token }}', 180 dataType: 'json', 181 method: 'POST', 182 data: { 'product_id' : product_id, 'etsy_id' : etsy_id }, 183 beforeSend: function() { 184 $('#alert-error').hide().empty(); 185 $('#button-submit-link').empty().html('<i class="fa fa-cog fa-lg fa-spin"></i>').attr('disabled','disabled'); 186 }, 187 success: function(json) { 188 if (json.error == false) { 189 url += '&link_added=1'; 190 location = url; 191 } else { 192 $('#alert-error').html('<i class="fa fa-times fa-lg" style="color:red;"></i> '+json.error).show(); 193 } 194 195 $('#button-submit-link').empty().html('<i class="fa fa-check"></i> {{ button_save }}').removeAttr('disabled'); 196 }, 197 failure: function() { 198 $('#button-submit').empty().html('<i class="fa fa-check"></i> {{ button_save }}').removeAttr('disabled'); 199 } 200 }); 201 } 202 203 function deleteLink(etsy_link_id) { 204 $.ajax({ 205 url: 'index.php?route=extension/openbay/etsy_product/deleteLink&user_token={{ user_token }}', 206 dataType: 'json', 207 method: 'POST', 208 data: { 'etsy_link_id' : etsy_link_id }, 209 beforeSend: function() { 210 $('#btn-delete-'+etsy_link_id).empty().html('<i class="fa fa-cog fa-lg fa-spin"></i>').attr('disabled','disabled'); 211 }, 212 success: function(json) { 213 if (json.error == false) { 214 url += '&link_deleted=1'; 215 location = url; 216 } else { 217 $('#btn-delete-'+etsy_link_id).empty().html('<i class="fa fa-times fa-lg" style="color:red;"></i>').removeAttr('disabled'); 218 $('#alert-error').html('<i class="fa fa-times fa-lg"></i> '+json.error).show(); 219 } 220 }, 221 failure: function() { 222 $('#btn-delete-'+etsy_link_id).empty().html('<i class="fa fa-times fa-lg"></i>').removeAttr('disabled'); 223 } 224 }); 225 } 226 227 function endListing(etsy_item_id) { 228 var pass = confirm("{{ text_confirm_end }}"); 229 230 if (pass == true) { 231 $.ajax({ 232 url: 'index.php?route=extension/openbay/etsy_product/endlisting&user_token={{ user_token }}', 233 dataType: 'json', 234 method: 'POST', 235 data: { 'etsy_item_id' : etsy_item_id }, 236 beforeSend: function() { 237 $('#btn-end-'+etsy_item_id).empty().html('<i class="fa fa-cog fa-lg fa-spin"></i>').attr('disabled','disabled'); 238 }, 239 success: function(json) { 240 if (json.error == false) { 241 url += '&item_ended=1'; 242 location = url; 243 } else { 244 $('#btn-end-'+etsy_item_id).empty().html('<i class="fa fa-times fa-lg" style="color:red;"></i>').removeAttr('disabled'); 245 $('#alert-error').html('<i class="fa fa-times fa-lg"></i> '+json.error).show(); 246 } 247 }, 248 failure: function() { 249 $('#btn-end-'+etsy_item_id).empty().html('<i class="fa fa-times fa-lg"></i>').removeAttr('disabled'); 250 } 251 }); 252 } 253 } 254 255 function deactivateListing(etsy_item_id) { 256 var pass = confirm("{{ text_confirm_deactivate }}"); 257 258 if (pass == true) { 259 $.ajax({ 260 url: 'index.php?route=extension/openbay/etsy_product/deactivatelisting&user_token={{ user_token }}', 261 dataType: 'json', 262 method: 'POST', 263 data: { 'etsy_item_id' : etsy_item_id }, 264 beforeSend: function() { 265 $('#btn-deactivate-'+etsy_item_id).empty().html('<i class="fa fa-cog fa-lg fa-spin"></i>').attr('disabled','disabled'); 266 }, 267 success: function(json) { 268 if (json.error == false) { 269 url += '&item_deactivated=1'; 270 location = url; 271 } else { 272 $('#btn-deactivate-'+etsy_item_id).empty().html('<i class="fa fa-times fa-lg" style="color:red;"></i>').removeAttr('disabled'); 273 $('#alert-error').html('<i class="fa fa-times fa-lg"></i> '+json.error).show(); 274 } 275 }, 276 failure: function() { 277 $('#btn-deactivate-'+etsy_item_id).empty().html('<i class="fa fa-times fa-lg"></i>').removeAttr('disabled'); 278 } 279 }); 280 } 281 } 282 283 function activateListing(etsy_item_id) { 284 var pass = confirm("{{ text_confirm_activate }}"); 285 286 if (pass == true) { 287 $.ajax({ 288 url: 'index.php?route=extension/openbay/etsy_product/activatelisting&user_token={{ user_token }}', 289 dataType: 'json', 290 method: 'POST', 291 data: { 'etsy_item_id' : etsy_item_id }, 292 beforeSend: function() { 293 $('#btn-activate-'+etsy_item_id).empty().html('<i class="fa fa-cog fa-lg fa-spin"></i>').attr('disabled','disabled'); 294 }, 295 success: function(json) { 296 if (json.error == false) { 297 url += '&item_activated=1'; 298 location = url; 299 } else { 300 $('#btn-activate-'+etsy_item_id).empty().html('<i class="fa fa-times fa-lg" style="color:red;"></i>').removeAttr('disabled'); 301 $('#alert-error').html('<i class="fa fa-times fa-lg"></i> '+json.error).show(); 302 } 303 }, 304 failure: function() { 305 $('#btn-activate-'+etsy_item_id).empty().html('<i class="fa fa-times fa-lg"></i>').removeAttr('disabled'); 306 } 307 }); 308 } 309 } 310 311 $('input[name=\'add_link_product\']').autocomplete({ 312 'source': function(request, response) { 313 $.ajax({ 314 url: 'index.php?route=catalog/product/autocomplete&user_token={{ user_token }}&filter_name=' + encodeURIComponent(request), 315 dataType: 'json', 316 success: function(json) { 317 response($.map(json, function(item) { 318 return { 319 label: item['name'], 320 value: item['product_id'] 321 } 322 })); 323 } 324 }); 325 }, 326 'select': function(item) { 327 $('input[name=\'add_link_product\']').val(item['label']); 328 $('#input-product-id').val(item['value']); 329 } 330 }); 331 //--></script> 332 {{ footer }}