// fix #PSTEST-701 - added some warnings when informations is missing in product edition / creation

git-svn-id: http://dev.prestashop.com/svn/v1/branches/1.5.x@13475 b9a71923-0436-4b27-9f14-aed3839534dd
This commit is contained in:
mMarinetti
2012-02-20 16:23:43 +00:00
parent 0753d43376
commit 4d641d6a7c
4 changed files with 103 additions and 28 deletions
@@ -79,11 +79,19 @@
<script type="text/javascript"> <script type="text/javascript">
var token = '{$token}'; var token = '{$token}';
var id_product = {if isset($product->id)}{$product->id}{else}0{/if}; var id_product = {if isset($product->id)}{$product->id}{else}0{/if};
var product_type_pack = {Product::PTYPE_PACK};
var product_type_virtual = {Product::PTYPE_VIRTUAL};
var product_type_simple = {Product::PTYPE_SIMPLE};
var toload = new Array(); var toload = new Array();
var empty_pack_msg = '{l s='Pack is empty. You need to add at least one product to the pack before you can save it.'}'; var empty_pack_msg = '{l s='Pack is empty. You need to add at least one product to the pack before you can save it.'}';
var empty_name_msg = '{l s='Product name is empty. You need to enter a name at least for the default language before you can save it.'}';
var empty_link_rewrite_msg = '{l s='Friendly URL is empty. You need to enter a friendly url at least for the default language before you can save it.'}';
$('#product-tab-content-wait').show(); $('#product-tab-content-wait').show();
var post_data = {$post_data}; var post_data = {$post_data};
var product_type;
$(document).ready(function() $(document).ready(function()
{ {
$('#product-tab-content-wait').show(); $('#product-tab-content-wait').show();
@@ -102,8 +110,8 @@
$('li.tab-row a[id*="VirtualProduct"]').hide(); $('li.tab-row a[id*="VirtualProduct"]').hide();
{/if} {/if}
$('input[name="type_product"]').click(function() { $('input[name="type_product"]').click(function()
{
// Reset settings // Reset settings
$('li.tab-row a[id*="Pack"]').hide(); $('li.tab-row a[id*="Pack"]').hide();
$('li.tab-row a[id*="VirtualProduct"]').hide(); $('li.tab-row a[id*="VirtualProduct"]').hide();
@@ -113,7 +121,8 @@
$('#is_virtual').val(0); $('#is_virtual').val(0);
$("#virtual_good_attributes").hide(); $("#virtual_good_attributes").hide();
var product_type = $(this).val(); // product_type is now global
product_type = $(this).val();
// until a product is added in the pack // until a product is added in the pack
// if product is PTYPE_PACK, save buttons will be disabled // if product is PTYPE_PACK, save buttons will be disabled
@@ -137,12 +146,9 @@
$('#condition option[value=new]').removeAttr('selected'); $('#condition option[value=new]').removeAttr('selected');
$('.stockForVirtualProduct').show(); $('.stockForVirtualProduct').show();
// if pack is enabled, if you choose pack, automatically switch to pack page // if pack is enabled, if you choose pack, automatically switch to pack page
if ($("#link-Pack:visible").length)
handleSaveForPack();
} }
else if (product_type == {Product::PTYPE_VIRTUAL}) else if (product_type == {Product::PTYPE_VIRTUAL})
{ {
enableSave();
$('li.tab-row a[id*="VirtualProduct"]').show(); $('li.tab-row a[id*="VirtualProduct"]').show();
$('#is_virtual_good').attr('checked', true); $('#is_virtual_good').attr('checked', true);
$('#virtual_good').show(); $('#virtual_good').show();
@@ -166,12 +172,13 @@
else else
{ {
// 3rd case : product_type is PTYPE_SIMPLE (0) // 3rd case : product_type is PTYPE_SIMPLE (0)
enableSave();
$('li.tab-row a[id*="Shipping"]').show(); $('li.tab-row a[id*="Shipping"]').show();
$('#condition').removeAttr('disabled'); $('#condition').removeAttr('disabled');
$('#condition option[value=new]').removeAttr('selected'); $('#condition option[value=new]').removeAttr('selected');
$('.stockForVirtualProduct').show(); $('.stockForVirtualProduct').show();
} }
// this handle the save button displays and warnings
handleSaveButtons();
}); });
@@ -217,16 +224,13 @@
} }
else if (btn_name == "Attachments") else if (btn_name == "Attachments")
{ {
disableSave(); handleSaveButtons();
} }
else else
{ {
$('#desc-product-newCombination').hide(); $('#desc-product-newCombination').hide();
// if pack is enabled, save button are visible only if pack is valid // if pack is enabled, save button are visible only if pack is valid
if ($("#link-Pack:visible").length) handleSaveButtons();
handleSaveForPack();
else
enableSave();
} }
}); });
@@ -238,7 +242,7 @@
$('#product-tab-content-Associations').bind('loaded', function() $('#product-tab-content-Associations').bind('loaded', function()
{ {
enableSave(); handleSaveButtons();
}); });
$('.confirm_leave').live('click', function(){ $('.confirm_leave').live('click', function(){
@@ -103,7 +103,8 @@
} }
}); });
// show / hide save buttons // show / hide save buttons
handleSaveForPack(); // if product has a name
handleSaveButtons();
} }
function delPackItem(id) function delPackItem(id)
@@ -143,7 +144,7 @@
}); });
// if no item left in the pack, disable save buttons // if no item left in the pack, disable save buttons
handleSaveForPack(); handleSaveButtons();
} }
function getSelectedIds() function getSelectedIds()
+79 -11
View File
@@ -310,25 +310,79 @@ function disableSave()
*/ */
function enableSave() function enableSave()
{ {
// if no item left in the pack, disable save buttons
if ($("#disablePackMessage").length)
$("#disablePackMessage").remove();
$('#desc-product-save').show(); $('#desc-product-save').show();
$('#desc-product-save-and-stay').show(); $('#desc-product-save-and-stay').show();
} }
function handleSaveForPack() function handleSaveButtons(e)
{ {
// if no item left in the pack, disable save buttons msg = [];
$("#disablePackMessage").remove(); var i = 0;
if ($("#inputPackItems").val() == "") // relative to type of product
if (product_type == product_type_pack)
msg[i++] = handleSaveButtonsForPack();
else if (product_type == product_type_pack)
msg[i++] = handleSaveButtonsForVirtual();
else
msg[i++] = handleSaveButtonsForSimple();
// common for all products
// name[defaultlangid]
$("#disableSaveMessage").remove();
if ($("#name_"+defaultLanguage.id_lang).val() == "")
{ {
disableSave(); msg[i++] = empty_name_msg;
$(".leadin").append('<div id="disablePackMessage" class="warn">' + empty_pack_msg + '</div>'); }
// friendly_url_[defaultlangid]
if ($("#link_rewrite_"+defaultLanguage.id_lang).val() == "")
msg[i++] = empty_link_rewrite_msg;
if (msg.length == 0)
{
$("#disableSaveMessage").remove();
enableSave()
} }
else else
enableSave(); {
$("#disableSaveMessage").remove();
do_not_save = false;
for (var key in msg)
{
if (msg != "")
{
if (do_not_save == false)
{
$(".leadin").append('<div id="disableSaveMessage" class="warn"></div>');
warnDiv = $("#disableSaveMessage");
do_not_save = true;
}
warnDiv.append('<p id="'+key+'">'+msg[key]+'</p>');
}
}
if (do_not_save)
disableSave();
else
enableSave();
}
}
function handleSaveButtonsForSimple()
{
return "";
}
function handleSaveButtonsForVirtual()
{
return "";
}
function handleSaveButtonsForPack()
{
// if no item left in the pack, disable save buttons
if ($("#inputPackItems").val() == "")
return empty_pack_msg;
else
return "";
} }
function enableProductName() function enableProductName()
@@ -412,6 +466,20 @@ urlToCall = null;
$(document).ready(function() { $(document).ready(function() {
updateCurrentText(); updateCurrentText();
$("#name_"+defaultLanguage.id_lang+",#link_rewrite_"+defaultLanguage.id_lang)
.live("change", function(e)
{
if(typeof e == KeyboardEvent)
if(isArrowKey(e))
return;
$(this).trigger("handleSaveButtons");
});
// bind that custom event
$("#name_"+defaultLanguage.id_lang+",#link_rewrite_"+defaultLanguage.id_lang)
.live("handleSaveButtons", function(e)
{
handleSaveButtons()
});
updateFriendlyURL(); updateFriendlyURL();
// Pressing enter in an input field should not submit the form // Pressing enter in an input field should not submit the form
+2
View File
@@ -107,6 +107,8 @@ function copy2friendlyURL()
$('#link_rewrite_' + id_language).val(str2url($('#name_' + id_language).val().replace(/^[0-9]+\./, ''), 'UTF-8')); $('#link_rewrite_' + id_language).val(str2url($('#name_' + id_language).val().replace(/^[0-9]+\./, ''), 'UTF-8'));
if ($('#friendly-url')) if ($('#friendly-url'))
$('#friendly-url').html($('#link_rewrite_' + id_language).val()); $('#friendly-url').html($('#link_rewrite_' + id_language).val());
// trigger onchange event to use anything binded there
$('#link_rewrite_' + id_language).change();
return; return;
} }