// #PI-116 JS refactoring in BO
This commit is contained in:
@@ -92,7 +92,7 @@
|
|||||||
{* @todo : donot use 3 foreach, but assign var *}
|
{* @todo : donot use 3 foreach, but assign var *}
|
||||||
{foreach from=$accessories item=accessory}
|
{foreach from=$accessories item=accessory}
|
||||||
{$accessory.name|escape:'htmlall':'UTF-8'}{if !empty($accessory.reference)}{$accessory.reference}{/if}
|
{$accessory.name|escape:'htmlall':'UTF-8'}{if !empty($accessory.reference)}{$accessory.reference}{/if}
|
||||||
<span onclick="delAccessory({$accessory.id_product});" style="cursor: pointer;">
|
<span class="delAccessory" name="{$accessory.id_product}" style="cursor: pointer;">
|
||||||
<img src="../img/admin/delete.gif" class="middle" alt="" />
|
<img src="../img/admin/delete.gif" class="middle" alt="" />
|
||||||
</span><br />
|
</span><br />
|
||||||
{/foreach}
|
{/foreach}
|
||||||
|
|||||||
@@ -83,11 +83,5 @@
|
|||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<script type="text/javascript">
|
|
||||||
$(document).ready(function(){
|
|
||||||
displayFlags(languages, id_language, allowEmployeeFormLang);
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -127,88 +127,4 @@
|
|||||||
</div>
|
</div>
|
||||||
{/foreach}
|
{/foreach}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script type="text/javascript">
|
|
||||||
$(document).ready(function() {
|
|
||||||
var default_is_ok = false;
|
|
||||||
|
|
||||||
var manageDefaultSupplier = function() {
|
|
||||||
|
|
||||||
var availables_radio_buttons = [];
|
|
||||||
var radio_buttons = $('input[name="default_supplier"]');
|
|
||||||
|
|
||||||
for (i=0; i<radio_buttons.length; i++)
|
|
||||||
{
|
|
||||||
var item = $(radio_buttons[i]);
|
|
||||||
|
|
||||||
if (item.is(':disabled'))
|
|
||||||
{
|
|
||||||
if (item.is(':checked'))
|
|
||||||
{
|
|
||||||
item.attr("checked", "");
|
|
||||||
default_is_ok = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
availables_radio_buttons.push(item);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (default_is_ok == false)
|
|
||||||
{
|
|
||||||
for (i=0; i<availables_radio_buttons.length; i++)
|
|
||||||
{
|
|
||||||
var item = $(availables_radio_buttons[i]);
|
|
||||||
|
|
||||||
if (item.is(':disabled') == false)
|
|
||||||
{
|
|
||||||
item.attr("checked", "checked");
|
|
||||||
default_is_ok = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
$('.supplierCheckBox').click(function() {
|
|
||||||
|
|
||||||
var check = $(this);
|
|
||||||
|
|
||||||
var checkbox = $('#default_supplier_'+check.val());
|
|
||||||
|
|
||||||
if (this.checked)
|
|
||||||
{
|
|
||||||
//enable default radio button associated
|
|
||||||
checkbox.attr("disabled","");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
//enable default radio button associated
|
|
||||||
checkbox.attr("disabled","disabled");
|
|
||||||
}
|
|
||||||
|
|
||||||
//manage default supplier check
|
|
||||||
manageDefaultSupplier();
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
// @TODO: a better way to fix the accordion wrong size bug when the selected page is this page
|
|
||||||
setTimeout(function() {
|
|
||||||
$('#suppliers_accordion').accordion();
|
|
||||||
// If one second was not enough to display page, another resize is needed
|
|
||||||
setTimeout(function() {
|
|
||||||
$('#suppliers_accordion').accordion('resize');
|
|
||||||
}, 3000);
|
|
||||||
}, 1000);
|
|
||||||
|
|
||||||
// Resize the accordion once the page is visible because of the bug with accordions initialized
|
|
||||||
// inside a display:none block not having the correct size.
|
|
||||||
$('#suppliers_accordion').parents('.product-tab-content').bind('displayed', function(){
|
|
||||||
$('#suppliers_accordion').accordion("resize");
|
|
||||||
});
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
|
|
||||||
{/if}
|
{/if}
|
||||||
@@ -25,7 +25,6 @@
|
|||||||
*}
|
*}
|
||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
|
|
||||||
var newLabel = '{l s='New label'}';
|
var newLabel = '{l s='New label'}';
|
||||||
var choose_language = '{l s='Choose language:'}';
|
var choose_language = '{l s='Choose language:'}';
|
||||||
var required = '{l s='required'}';
|
var required = '{l s='required'}';
|
||||||
@@ -34,45 +33,7 @@
|
|||||||
var uploadableFileLabel = 0;
|
var uploadableFileLabel = 0;
|
||||||
var textFieldLabel = 0;
|
var textFieldLabel = 0;
|
||||||
|
|
||||||
$(document).ready(function(){
|
|
||||||
$(".datepicker").datepicker({
|
|
||||||
prevText: '',
|
|
||||||
nextText: '',
|
|
||||||
dateFormat: 'yy-mm-dd'
|
|
||||||
});
|
|
||||||
|
|
||||||
if ($('#is_virtual_good').attr('checked'))
|
|
||||||
{
|
|
||||||
$('#virtual_good').show();
|
|
||||||
$('#virtual_good_more').show();
|
|
||||||
}
|
|
||||||
|
|
||||||
$('.is_virtual_good').hide();
|
|
||||||
|
|
||||||
if ( $('input[name=is_virtual_file]:checked').val() == 1)
|
|
||||||
{
|
|
||||||
$('#virtual_good_more').show();
|
|
||||||
$('#is_virtual_file_product').show();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$('#virtual_good_more').hide();
|
|
||||||
$('#is_virtual_file_product').hide();
|
|
||||||
}
|
|
||||||
|
|
||||||
$('input[name=is_virtual_file]').live('change', function(e) {
|
|
||||||
if($(this).val() == '1')
|
|
||||||
{
|
|
||||||
$('#virtual_good_more').show();
|
|
||||||
$('#is_virtual_file_product').show();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$('#virtual_good_more').hide();
|
|
||||||
$('#is_virtual_file_product').hide();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
function uploadFile()
|
function uploadFile()
|
||||||
{
|
{
|
||||||
|
|||||||
+201
-17
@@ -329,13 +329,12 @@ function handleSaveButtonsForPack()
|
|||||||
|
|
||||||
product_tabs['Seo'] = new function(){
|
product_tabs['Seo'] = new function(){
|
||||||
var self = this;
|
var self = this;
|
||||||
// Enable writing of the product name when the friendly url field in tab SEO is loaded
|
|
||||||
this.enableProductName = function (){
|
|
||||||
$('.copy2friendlyUrl').removeAttr('disabled');
|
|
||||||
};
|
|
||||||
|
|
||||||
this.onReady = function() {
|
this.onReady = function() {
|
||||||
self.enableProductName();
|
// Enable writing of the product name when the friendly url field in tab SEO is loaded
|
||||||
|
$('.copy2friendlyUrl').removeAttr('disabled');
|
||||||
|
|
||||||
|
displayFlags(languages, id_language, allowEmployeeFormLang);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -424,23 +423,84 @@ product_tabs['Associations'] = new function(){
|
|||||||
formatItem: function(item) {
|
formatItem: function(item) {
|
||||||
return item[1]+' - '+item[0];
|
return item[1]+' - '+item[0];
|
||||||
}
|
}
|
||||||
}).result(addAccessory);
|
}).result(self.addAccessory);
|
||||||
|
|
||||||
$('#product_autocomplete_input').setOptions({
|
$('#product_autocomplete_input').setOptions({
|
||||||
extraParams: {
|
extraParams: {
|
||||||
excludeIds : getAccessorieIds()
|
excludeIds : self.getAccessoriesIds()
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
function getAccessorieIds()
|
|
||||||
{
|
|
||||||
var ids = id_product + ',';
|
|
||||||
ids += $('#inputAccessories').val().replace(/\\-/g,',').replace(/\\,$/,'');
|
|
||||||
ids = ids.replace(/\,$/,'');
|
|
||||||
|
|
||||||
return ids;
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
this.getAccessoriesIds = function()
|
||||||
|
{
|
||||||
|
var ids = id_product + ',';
|
||||||
|
ids += $('#inputAccessories').val().replace(/\\-/g,',').replace(/\\,$/,'');
|
||||||
|
ids = ids.replace(/\,$/,'');
|
||||||
|
|
||||||
|
return ids;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.addAccessory = function(event, data, formatted)
|
||||||
|
{
|
||||||
|
if (data == null)
|
||||||
|
return false;
|
||||||
|
var productId = data[1];
|
||||||
|
var productName = data[0];
|
||||||
|
|
||||||
|
var $divAccessories = $('#divAccessories');
|
||||||
|
var $inputAccessories = $('#inputAccessories');
|
||||||
|
var $nameAccessories = $('#nameAccessories');
|
||||||
|
|
||||||
|
/* delete product from select + add product line to the div, input_name, input_ids elements */
|
||||||
|
$divAccessories.html($divAccessories.html() + productName + ' <span class="delAccessory" name="' + productId + '" style="cursor: pointer;"><img src="../img/admin/delete.gif" /></span><br />');
|
||||||
|
$nameAccessories.val($nameAccessories.val() + productName + '¤');
|
||||||
|
$inputAccessories.val($inputAccessories.val() + productId + '-');
|
||||||
|
$('#product_autocomplete_input').val('');
|
||||||
|
$('#product_autocomplete_input').setOptions({
|
||||||
|
extraParams: {excludeIds : self.getAccessoriesIds()}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
this.delAccessory = function(id)
|
||||||
|
{
|
||||||
|
var div = getE('divAccessories');
|
||||||
|
var input = getE('inputAccessories');
|
||||||
|
var name = getE('nameAccessories');
|
||||||
|
|
||||||
|
// Cut hidden fields in array
|
||||||
|
var inputCut = input.value.split('-');
|
||||||
|
var nameCut = name.value.split('¤');
|
||||||
|
|
||||||
|
if (inputCut.length != nameCut.length)
|
||||||
|
return jAlert('Bad size');
|
||||||
|
|
||||||
|
// Reset all hidden fields
|
||||||
|
input.value = '';
|
||||||
|
name.value = '';
|
||||||
|
div.innerHTML = '';
|
||||||
|
for (i in inputCut)
|
||||||
|
{
|
||||||
|
// If empty, error, next
|
||||||
|
if (!inputCut[i] || !nameCut[i])
|
||||||
|
continue ;
|
||||||
|
|
||||||
|
// Add to hidden fields no selected products OR add to select field selected product
|
||||||
|
if (inputCut[i] != id)
|
||||||
|
{
|
||||||
|
input.value += inputCut[i] + '-';
|
||||||
|
name.value += nameCut[i] + '¤';
|
||||||
|
div.innerHTML += nameCut[i] + ' <span class="delAccessory" name="' + inputCut[i] + '" style="cursor: pointer;"><img src="../img/admin/delete.gif" /></span><br />';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
$('#selectAccessories').append('<option selected="selected" value="' + inputCut[i] + '-' + nameCut[i] + '">' + inputCut[i] + ' - ' + nameCut[i] + '</option>');
|
||||||
|
}
|
||||||
|
|
||||||
|
$('#product_autocomplete_input').setOptions({
|
||||||
|
extraParams: {excludeIds : self.getAccessoriesIds()}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Update the manufacturer select element with the list of existing manufacturers
|
* Update the manufacturer select element with the list of existing manufacturers
|
||||||
*/
|
*/
|
||||||
@@ -473,7 +533,10 @@ product_tabs['Associations'] = new function(){
|
|||||||
this.onReady = function(){
|
this.onReady = function(){
|
||||||
self.initAccessoriesAutocomplete();
|
self.initAccessoriesAutocomplete();
|
||||||
self.getManufacturers();
|
self.getManufacturers();
|
||||||
}
|
$('#divAccessories').delegate('.delAccessory', 'click', function(){
|
||||||
|
self.delAccessory($(this).attr('name'));
|
||||||
|
});
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
product_tabs['Attachments'] = new function(){
|
product_tabs['Attachments'] = new function(){
|
||||||
@@ -956,6 +1019,127 @@ product_tabs['Quantities'] = new function(){
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
product_tabs['Suppliers'] = new function(){
|
||||||
|
var self = this;
|
||||||
|
|
||||||
|
this.manageDefaultSupplier = function() {
|
||||||
|
var default_is_ok = false;
|
||||||
|
var availables_radio_buttons = [];
|
||||||
|
var radio_buttons = $('input[name="default_supplier"]');
|
||||||
|
|
||||||
|
for (i=0; i<radio_buttons.length; i++)
|
||||||
|
{
|
||||||
|
var item = $(radio_buttons[i]);
|
||||||
|
|
||||||
|
if (item.is(':disabled'))
|
||||||
|
{
|
||||||
|
if (item.is(':checked'))
|
||||||
|
{
|
||||||
|
item.attr("checked", "");
|
||||||
|
default_is_ok = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
availables_radio_buttons.push(item);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (default_is_ok == false)
|
||||||
|
{
|
||||||
|
for (i=0; i<availables_radio_buttons.length; i++)
|
||||||
|
{
|
||||||
|
var item = $(availables_radio_buttons[i]);
|
||||||
|
|
||||||
|
if (item.is(':disabled') == false)
|
||||||
|
{
|
||||||
|
item.attr("checked", "checked");
|
||||||
|
default_is_ok = true;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
this.onReady = function(){
|
||||||
|
$('.supplierCheckBox').click(function() {
|
||||||
|
var check = $(this);
|
||||||
|
var checkbox = $('#default_supplier_'+check.val());
|
||||||
|
if (this.checked)
|
||||||
|
{
|
||||||
|
//enable default radio button associated
|
||||||
|
checkbox.attr("disabled","");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//enable default radio button associated
|
||||||
|
checkbox.attr("disabled","disabled");
|
||||||
|
}
|
||||||
|
//manage default supplier check
|
||||||
|
manageDefaultSupplier();
|
||||||
|
});
|
||||||
|
|
||||||
|
// @TODO: a better way to fix the accordion wrong size bug when the selected page is this page
|
||||||
|
setTimeout(function() {
|
||||||
|
$('#suppliers_accordion').accordion();
|
||||||
|
// If one second was not enough to display page, another resize is needed
|
||||||
|
setTimeout(function() {
|
||||||
|
$('#suppliers_accordion').accordion('resize');
|
||||||
|
}, 3000);
|
||||||
|
}, 1000);
|
||||||
|
|
||||||
|
// Resize the accordion once the page is visible because of the bug with accordions initialized
|
||||||
|
// inside a display:none block not having the correct size.
|
||||||
|
$('#suppliers_accordion').parents('.product-tab-content').bind('displayed', function(){
|
||||||
|
$('#suppliers_accordion').accordion("resize");
|
||||||
|
});
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
product_tabs['VirtualProduct'] = new function(){
|
||||||
|
var self = this;
|
||||||
|
|
||||||
|
this.onReady = function(){
|
||||||
|
$(".datepicker").datepicker({
|
||||||
|
prevText: '',
|
||||||
|
nextText: '',
|
||||||
|
dateFormat: 'yy-mm-dd'
|
||||||
|
});
|
||||||
|
|
||||||
|
if ($('#is_virtual_good').attr('checked'))
|
||||||
|
{
|
||||||
|
$('#virtual_good').show();
|
||||||
|
$('#virtual_good_more').show();
|
||||||
|
}
|
||||||
|
|
||||||
|
$('.is_virtual_good').hide();
|
||||||
|
|
||||||
|
if ( $('input[name=is_virtual_file]:checked').val() == 1)
|
||||||
|
{
|
||||||
|
$('#virtual_good_more').show();
|
||||||
|
$('#is_virtual_file_product').show();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$('#virtual_good_more').hide();
|
||||||
|
$('#is_virtual_file_product').hide();
|
||||||
|
}
|
||||||
|
|
||||||
|
$('input[name=is_virtual_file]').live('change', function(e) {
|
||||||
|
if($(this).val() == '1')
|
||||||
|
{
|
||||||
|
$('#virtual_good_more').show();
|
||||||
|
$('#is_virtual_file_product').show();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$('#virtual_good_more').hide();
|
||||||
|
$('#is_virtual_file_product').hide();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
var tabs_manager = new ProductTabsManager();
|
var tabs_manager = new ProductTabsManager();
|
||||||
tabs_manager.setTabs(product_tabs);
|
tabs_manager.setTabs(product_tabs);
|
||||||
|
|
||||||
|
|||||||
-61
@@ -230,67 +230,6 @@ function getE(name)
|
|||||||
return elem;
|
return elem;
|
||||||
}
|
}
|
||||||
|
|
||||||
function addAccessory(event, data, formatted)
|
|
||||||
{
|
|
||||||
if (data == null)
|
|
||||||
return false;
|
|
||||||
var productId = data[1];
|
|
||||||
var productName = data[0];
|
|
||||||
|
|
||||||
var $divAccessories = $('#divAccessories');
|
|
||||||
var $inputAccessories = $('#inputAccessories');
|
|
||||||
var $nameAccessories = $('#nameAccessories');
|
|
||||||
|
|
||||||
/* delete product from select + add product line to the div, input_name, input_ids elements */
|
|
||||||
$divAccessories.html($divAccessories.html() + productName + ' <span onclick="delAccessory(' + productId + ');" style="cursor: pointer;"><img src="../img/admin/delete.gif" /></span><br />');
|
|
||||||
$nameAccessories.val($nameAccessories.val() + productName + '¤');
|
|
||||||
$inputAccessories.val($inputAccessories.val() + productId + '-');
|
|
||||||
$('#product_autocomplete_input').val('');
|
|
||||||
$('#product_autocomplete_input').setOptions({
|
|
||||||
extraParams: {excludeIds : getAccessorieIds()}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function delAccessory(id)
|
|
||||||
{
|
|
||||||
var div = getE('divAccessories');
|
|
||||||
var input = getE('inputAccessories');
|
|
||||||
var name = getE('nameAccessories');
|
|
||||||
|
|
||||||
// Cut hidden fields in array
|
|
||||||
var inputCut = input.value.split('-');
|
|
||||||
var nameCut = name.value.split('¤');
|
|
||||||
|
|
||||||
if (inputCut.length != nameCut.length)
|
|
||||||
return jAlert('Bad size');
|
|
||||||
|
|
||||||
// Reset all hidden fields
|
|
||||||
input.value = '';
|
|
||||||
name.value = '';
|
|
||||||
div.innerHTML = '';
|
|
||||||
for (i in inputCut)
|
|
||||||
{
|
|
||||||
// If empty, error, next
|
|
||||||
if (!inputCut[i] || !nameCut[i])
|
|
||||||
continue ;
|
|
||||||
|
|
||||||
// Add to hidden fields no selected products OR add to select field selected product
|
|
||||||
if (inputCut[i] != id)
|
|
||||||
{
|
|
||||||
input.value += inputCut[i] + '-';
|
|
||||||
name.value += nameCut[i] + '¤';
|
|
||||||
div.innerHTML += nameCut[i] + ' <span onclick="delAccessory(' + inputCut[i] + ');" style="cursor: pointer;"><img src="../img/admin/delete.gif" /></span><br />';
|
|
||||||
}
|
|
||||||
else
|
|
||||||
$('#selectAccessories').append('<option selected="selected" value="' + inputCut[i] + '-' + nameCut[i] + '">' + inputCut[i] + ' - ' + nameCut[i] + '</option>');
|
|
||||||
}
|
|
||||||
|
|
||||||
$('#product_autocomplete_input').setOptions({
|
|
||||||
extraParams: {excludeIds : getAccessorieIds()}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function formSubmit(e, button)
|
function formSubmit(e, button)
|
||||||
{
|
{
|
||||||
var key;
|
var key;
|
||||||
|
|||||||
Reference in New Issue
Block a user