shop.balmet.com

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

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 }}