source: extensions/MyPiwiShop/admin/template/product.tpl @ 27568

Last change on this file since 27568 was 27568, checked in by Miklfe, 7 years ago
File size: 14.6 KB
Line 
1{combine_script id='jquery.dataTables' load='footer' path='themes/default/js/plugins/jquery.dataTables.js'}
2{combine_css path="themes/default/js/plugins/datatables/css/jquery.dataTables.css"}
3{combine_css path=$MPS_PATH|@cat:"admin/template/style.css"}
4{combine_script id='jquery.ui.sortable' load='footer' path='themes/default/js/ui/minified/jquery.ui.sortable.min.js'}
5{combine_script id='jquery.chosen' load='footer' path='themes/default/js/plugins/chosen.jquery.min.js'}
6{combine_css path="themes/default/js/plugins/chosen.css"}
7
8
9{footer_script}{literal}
10(function($) {
11        $(document).ready(function(){
12               
13               
14                var $oTable,
15                        $nEditing = null,
16                        $val      = $('.val').html(),
17                        $add_opt  = $('#add_option_prod').html();
18                       
19                $('#product_list input[type=checkbox]').each(function(){
20                        $(this).prop('checked', false)
21                });
22               
23                $('#AddProd').click(function() {
24                        $('.Tadd').show();
25                        $('#Add_product').fadeIn();
26                        $('#showAddProd .infos').hide();
27                        $('input[name=product]').focus();
28                        return false;
29                });
30
31                $('#close_Add_product').click(function() {
32                        $('#Add_product').fadeOut(function(){
33                                $('#add_option_prod').hide();
34                                $('.tit').hide();
35                                $('#AddProdForm input[type=text]').attr('value','');
36                                $('#AddProdForm textarea#noteAdmin').val('');
37                                $('li.search-choice').remove();
38                                $('select.chzn-select option').each(function(){
39                                        $(this).removeAttr('selected');
40                                })
41                        });
42                        return false;
43                });
44               
45                $('#AddProdForm').submit(function(){
46                        var $return = true;
47                        if($.trim($('input#product',this).val()).length==0 || $.trim($('input#price',this).val()).length==0){
48                                $return = false;
49                                $('.errors').show();
50                                setTimeout(function(){
51                                        $('.errors').hide()
52                                },3000);
53                        }
54                        return $return
55                })
56               
57                $('#permitAction input[type="submit"]').click(function() {
58                        if (!confirm("{/literal}{'Are you sure?'|translate|escape:javascript}{literal}")) {
59                                $('#product_list input[type=checkbox]').each(function(){
60                                        $(this).prop('checked', false);
61                                        delet_button()
62                                });
63                        } else {
64                                $('#formTab_prod').submit();
65                        }
66                        return false;
67                } ); 
68               
69                        $oTable = $('#product_list').dataTable({
70                                "bAutoWidth":   false,
71                                "bStateSave": true,
72                                "aoColumns" : [
73                           { sWidth: '2%','sClass': 'center', 'bSortable': false},
74                           { sWidth: '38%','sClass': 'product_row'  },
75                           { sWidth: '38%'},
76                           { sWidth: '12%', 'bSortable': false,  },
77                                                   { sWidth: '8%', },
78                          ],
79                                "oLanguage": {
80                                        "sProcessing":     "{/literal}{'Loading...'|translate|escape:'javascript'}{literal}",
81                                        "sSearch":         '<span class="icon-search"></span>'+"{/literal}{'Search'|translate|escape:'javascript'}{literal}",
82                                        "sLengthMenu":     "{/literal}{'Display _MENU_ records per page'|translate|escape:'javascript'}{literal}",
83                                        "sInfo":           "{/literal}{'Showing _START_ to _END_ of _TOTAL_ records'|translate|escape:'javascript'}{literal}",
84                                        "sInfoEmpty":      "{/literal}{'Showing 0 to 0 of 0 records'|translate|escape:'javascript'}{literal}",
85                                        "sInfoFiltered":   "{/literal}{'(filtered from _MAX_ total records)'|translate|escape:'javascript'}{literal}",
86                                        "sInfoPostFix":    "",
87                                        "sLoadingRecords": "{/literal}{'Loading...'|translate|escape:'javascript'}{literal}",
88                                        "sZeroRecords":    "{/literal}{'No matching option found'|translate|escape:'javascript'}{literal}",
89                                        "oPaginate": {
90                                                "sFirst":    "{/literal}{'First'|translate|escape:'javascript'}{literal}",
91                                                "sPrevious": '&larr; '+"{/literal}{'Previous'|translate|escape:'javascript'}{literal}",
92                                                "sNext":     "{/literal}{'Next'|translate|escape:'javascript'}{literal}"+' &rarr;',
93                                                "sLast":     "{/literal}{'Last'|translate|escape:'javascript'}{literal}",
94                                        },
95                                },
96                        });
97               
98                function _rempform($this){
99                        var $nRow               = $this.parents('tr')[0],
100                                $jqInputs       = $('input', $nRow),
101                                $id             = $jqInputs[0].value,
102                                $prod           = $('#prodvar').data('product'),
103                                $product        = $prod[$id].product,
104                                $Nadmin         = $prod[$id].noteAdmin,
105                                $price          = $prod[$id].price,
106                                $option         = $prod[$id].option;
107                        for(key in $option) {
108                                $('.chzn-select option').each(function(){
109                                        if($(this).text()==$option[key]){
110                                                $(this).attr('selected','selected');
111                                        }
112                                });
113                        }
114                        $('.chzn-select').trigger("chosen:updated");
115                       
116                        $('input#product_id').attr('value',$id);
117                        $('input#product').attr('value',$product);
118                        $('textarea#noteAdmin').val($Nadmin);
119                        $('input#price').attr('value',$price);
120                }
121               
122                $(document).on('click','#formTab_prod .prodEdit', function () {
123                        var $this       = $(this);
124                        $('.Tedit').show();
125                        _rempform($this);
126                        $('#Add_product').fadeIn();
127       
128                        return false;
129                });
130           
131                $(document).on('click','#formTab_prod .prodDupli', function () {
132                        var $this       = $(this);
133                        $('.Tdupli').show();
134                        _rempform($this);
135                        $('input#product_id').attr('value','');
136                        $('#Add_product').fadeIn();
137                       
138                        return false
139                });
140
141                $(document).on('click', '#selectAll', function () {
142                        $('#product_list input[type=checkbox]').prop('checked', true);
143                        delet_button()
144                        return false;
145                });
146
147                $(document).on('click', '#selectNone', function () {
148                        $('#product_list input[type=checkbox]').prop('checked', false);
149                        delet_button()
150                        return false;
151                });
152
153                $(document).on('click', '#selectInvert', function () {
154                        $('#product_list input[type=checkbox]').each(function(){
155                                if($(this).is (':checked')){
156                                        $(this).prop('checked', false);
157                                }else{
158                                        $(this).prop('checked', true);
159                                }
160                                delet_button()
161                        });
162                        return false;
163                });
164               
165                $(document).on('change','#product_list input[type=checkbox]', function () {
166                        delet_button()
167                });
168                               
169                function delet_button(){
170                        if($('#product_list input[type=checkbox]:checked').length > 0){
171                                $('#forbidAction').css('display','none');
172                                $('#permitAction').css('display','block');
173                        }else{
174                                $('#forbidAction').css('display','block');
175                                $('#permitAction').css('display','none');
176                        }
177                };
178               
179                $("#listOrder").sortable({
180                        placeholder: 'highlight',
181                        update: function() { 
182                                var $order = $("#listOrder").sortable("toArray");
183                $('#newOrder').val($order.join(","));   
184                        }
185                });
186               
187                $("#listOrder").disableSelection();
188               
189                $('#ChangeOrder').click(function() {
190                        $("#change_Order").fadeIn(
191                        );
192                        return false;
193                });
194               
195                $('#close_changeOrder').click(function() {
196                        $("#change_Order").fadeOut();
197
198                        return false;
199                });
200                               
201                $('.chzn-select').chosen({width:"400px"})
202               
203                $('.addopt').click(function(){
204                        $('#add_option_prod').show();
205                        $('#sub_add_product').hide();
206                });
207                               
208                $(document).on('change','#optType',function(){
209                        var     $valSel = $('.addopt_table select#optType option:selected').attr('value');
210                        if($valSel=="text" || $valSel=="textarea"){
211                                $('.valeur').fadeOut('fast');
212                        } else {
213                                $('.valeur').fadeIn('fast')
214                        }
215                });
216               
217                $('.addVal').click(function() {
218                        $('.valeur').append($('<div/>').addClass('val').append($val));
219                        ;return false;
220                })
221
222                $(document).on('click','.delVal',function(){
223                        if (confirm("{/literal}{'Are you sure?'|translate|escape:javascript}{literal}")) {
224                                        var $Nval = $('.addopt_table .valeur input').length;
225                                if($Nval>1){
226                                        $(this).parents('div.val').remove();
227                                }else{
228                                        var $val = $(this).parents('div.val');
229                                        $('input', $val).val('').attr('value','');
230                                }
231                        }
232                        return false
233                });
234               
235                $(document).on('submit','#addopt_form',function(){
236                        if($.trim($('input#optName',this).val()).length==0){
237                                $('.erroropt').show();
238                                setTimeout(function(){
239                                        $('.erroropt').hide()
240                                },3000);
241                        }else{
242                                var $optecour = $('input#optName').val();
243                                if($('.valeur').is(':hidden')){
244                                        $('.valeur').remove();
245                                }
246                                $('.optadded').show();
247                                setTimeout(function(){
248                                        $('.optadded').hide()
249                                },3000);
250                                $.ajax({
251                                        type:"POST",
252                                        data: $(this).serialize(),
253                                        success: function(html){
254                                                var $idlo = $(html).find('#idlastopt').text();
255                                                console.debug($idlo);
256                                                $('#opt select').append($('<option />').attr({'value':$idlo,'selected':'selected'}).text($optecour));
257                                                $('.chzn-select').trigger("chosen:updated");
258                                        }
259                                });
260                                $('#sub_add_product').show();
261                                $('#add_option_prod input[type=text]').attr('value','');
262                                $('.val').remove();
263                                $('.valeur').append($('<div/>').addClass('val').append($val));
264                                $('select#optType option').each(function(){
265                                        $(this).removeAttr('selected');
266                                });
267
268                                $('#add_option_prod').hide().html($add_opt);
269                        }
270                        return false
271                })
272
273        });
274})(jQuery);
275{/literal}{/footer_script}
276
277<div id="prodvar" class="titrePage" data-product='{$mps_product|@json_encode}'>
278  <h2>{'Products'|@translate}</h2>
279</div>
280<p class="showCreateAlbum" id="showAddProd">
281  <a href="#" id="AddProd" class="icon-plus-circled">{'Add a product'|translate}</a>
282  <span class="infos" style="display:none"></span>
283</p>
284
285<div id="Add_product" class="add_wrap" style="display:none">
286<div class="add_content">
287<span id="close_Add_product" class="close_box_add"></span>
288        <div class="boxtitre"><h1>
289        <span class="tit Tadd">{'Add a'|translate}</span>
290        <span class="tit Tdupli">{'Duplicate the'|translate}</span>
291        <span class="tit Tedit">{'Edit the'|translate}</span>
292        <span>{' product'|translate}</span>
293        </h1></div>
294<form id="AddProdForm"  method="post" name="add_prod" action="">
295 <div style="margin: 0 0 10px 5px">
296        <div class="addprod_table">
297    <div>
298                <span>{'Product'|translate}</span>
299                <span><input id="product" type="text" name="product" size="100"></span>
300                <span><input id="product_id" type="hidden" name="id"></span>
301        </div>
302   
303        <div>
304      <span valign="top">{'Note administrator'|translate}</span>
305      <span><textarea id="noteAdmin" rows="8" cols="50" name="noteAdmin" maxlength="50"></textarea></span>
306    </div>
307    <div>
308      <span>{'Price'|@translate}</span>
309      <span><input id="price" type="text" name="price"> {$mps_conf.currency}</span>
310    </div>
311        <div id="opt">
312          <span>{'Options'|@translate}</span>
313          <span>
314      <select data-placeholder="{'select a option'|@translate}" class="chzn-select" multiple style="width:700px;" name="opt[]">
315          {html_options options=$mps_option }
316          </select>
317          </span>
318<p class="showCreateAlbum" id="showAddProd">
319  <a href="#" class="addopt icon-plus-circled">{'Add a option'|translate}</a><span class="infos optadded" style="display:none">{'option registered'|translate}</span>
320
321</p>
322        </div>
323
324 </div>
325 </div>
326    <span class="actionButtons">
327         
328          <input type="hidden" name="product_add">
329      <input id="sub_add_product" class="submit" name="product_add" type="submit" value="{'Submit'|@translate}">
330    </span>
331        <span class="errors" style="display:none">{'you must enter the product and not the price'|@translate}</span>
332</form>
333
334
335<div id="add_option_prod"  style="display:none">
336<div>
337
338<form id="addopt_form" method="post" name="add_opt" action="">
339 <div style="margin: 0 0 10px 5px" >
340        <div class="addopt_table">
341    <div>
342                <span>{'Name'|translate}</span>
343                <span><input id="optId" type="hidden" name="id"></span>
344                <span><input id="optName" type="text" name="name" size="40"></span>
345        </div>
346   
347        <div id="typeOpt">
348      <span valign="top">{'Type of option'|translate}</span>
349      <span id="select">{html_options name=type options=$mps_type_opt selected="select" id="optType"}</span>
350    </div>
351 
352        <div>
353      <span><label>{'The field is required'|@translate}
354      <input id="optRequi" type="checkbox" name="requi" value="1">
355          </label><span>
356    </div>
357        <div>
358      <span>{'Note administrator'|@translate}</span>
359      <span><input id="optTitle" type="text" name="title" size="40"></span>
360    </div>
361
362        <div class="valeur">
363        <div>
364        <span>{'Option value'|@translate}</span>
365        <span><a class="icon-plus-circled addVal" href="#">{'add value'|@translate}</a></span>
366        </div>
367       
368        <div class="val">
369        <span>{'Value'|@translate}</span>
370        <span><input type="text" name="val[]" size="20"></span>
371        <span><a class="icon-cancel-circled delVal"  href="#">{'delete'|@translate}</a></span>
372        </div>
373        </div>
374       
375        </div>
376 </div>
377 
378    <span class="actionButtons">
379          <input name="option_add" type="hidden" value="{'Submit'|@translate}">
380
381      <input id="option_add" class="submit" type="submit" value="{'Submit'|@translate}">
382    </span>
383        <span class="errors erroropt" style="display:none">{'you must enter the name of the option'|@translate}</span>
384
385</form>
386</div>
387</div>
388
389</div>
390</div>
391
392<div id=prod_table>
393<form id="formTab_prod" method="post" name="add_prod" action="">
394        <table id="product_list">
395        <thead>
396                <tr>
397                        <th></th>
398                        <th>{'Product'|@translate}</th>
399                        <th>{'Note administrator'|@translate}</th>
400                        <th>{'Options'|@translate}</th>
401                        <th>{'Price'|@translate}</th>
402                       
403                </tr>
404        </thead>
405        <tbody>
406        {foreach from=$mps_product item=product name=product}
407                <tr class="{if $smarty.foreach.product.index is odd}row1{else}row2{/if}">
408                        <td><input type="checkbox" name="check[]" value={$product.id}></td>
409                        <td><span>{$product.product}</span> <a title="{'edit'|translate|escape:'javascript'}" class="prodEdit icon-pencil tabact">{'edit'|translate}</a> <a title="{'duplicate'|translate|escape:'javascript'}" class="prodDupli icon-pencil tabact">{'duplicate'|translate}</a></td>
410                        <td>{$product.noteAdmin} </td>
411                        <td>{foreach from=$product.option item=option name=option}{$option}/{/foreach}</td>
412                        <td>{$product.price} {$mps_conf.currency}</td>
413                </tr>
414
415
416        {/foreach}
417        </tbody>
418        </table>
419
420
421<div style="clear:right"></div>
422
423<p class="checkActions">
424  {'Select:'|@translate}
425  <a href="#" id="selectAll">{'All'|@translate}</a>,
426  <a href="#" id="selectNone">{'None'|@translate}</a>,
427  <a href="#" id="selectInvert">{'Invert'|@translate}</a>
428</p>
429
430</div>
431
432  <div id="forbidAction">{'No product selected'|@translate}</div>
433  <div id="permitAction" style="display:none">
434<input type="submit" name="delete" value="{'Delete'|@translate}">
435<br></br>
436  </div>
437</form>   
438 
439<p class="showCreateAlbum" id="showChangeOrder">
440  <a href="#" id="ChangeOrder" class="icon-plus-circled">{'Change the display order of products in the form'|translate}</a>
441</p>
442
443
444<div id="change_Order" class="add_wrap" style="display:none">
445<div class="add_content">
446<span id="close_changeOrder" class="close_box_add"></span>
447<div class="boxtitre"><h1>{'Change the display order of products in the form'|translate}</h1>
448        <p> {'drag / drop to change the order'|translate}</p></div>
449<div id="form_order">
450<form id="changeOrder"  method="post" name="add_prod" action="">
451<fieldset>  
452       
453 <ul id="listOrder">
454        {foreach from=$mps_product item=product name=product}
455        <li id="{$product.id}">{$product.product} -> {$product.noteAdmin} -> {$product.price} {$mps_conf.currency}</li>
456        {/foreach}
457    <br />
458</fieldset>
459<input id="newOrder" type="hidden" value="" name="newOrder">
460<input id="sortable" type="submit" name="submit" value="{'Submit'|@translate}">
461
462</form>
463</div>
464</div>
465</div>
466
467
468 
469 
470 
471 
472 
473 
474 
Note: See TracBrowser for help on using the repository browser.