[*] BO : #PSTEST-1157 - Ajax deletion of virtual file

This commit is contained in:
tDidierjean
2012-04-17 08:07:35 +00:00
parent 88f2c7944a
commit 63f2e924d3
5 changed files with 134 additions and 56 deletions
+62
View File
@@ -1307,6 +1307,29 @@ product_tabs['VirtualProduct'] = new function(){
$('#is_virtual_file_product').hide();
}
});
// Bind file deletion
$(('#product-tab-content-VirtualProduct')).delegate('a.delete_virtual_product', 'click', function(e){
e.preventDefault();
if (!$('#virtual_product_id').val())
{
$('#upload_input').show();
$('#virtual_product_name').val('');
$('#virtual_product_file').val('');
$('#upload-confirmation').hide().find('span').remove();
}
else
{
var object = this;
ajaxAction(this.href, 'deleteVirtualProduct', function(){
$(object).closest('tr').remove();
$('#upload_input').show();
$('#virtual_product_name').val('');
$('#virtual_product_file').val('');
$('#virtual_product_id').remove();
});
}
});
}
}
@@ -1365,6 +1388,45 @@ function refreshImagePositions(imageTable)
imageTable.find("tr td.dragHandle:last a:last").hide();
}
/**
* Generic ajax call for actions expecting a json return
*
* @param url
* @param action
* @param success_callback called if the return status is 'ok' (optional)
* @param failure_callback called if the return status is not 'ok' (optional)
*/
function ajaxAction (url, action, success_callback, failure_callback){
$.ajax({
url: url,
data: {
id_product: id_product,
action: action,
ajax: true
},
dataType: 'json',
context: this,
async: false,
success: function(data) {
if (data.status == 'ok')
{
showSuccessMessage(data.confirmations);
if (typeof success_callback == 'function')
success_callback();
}
else
{
showErrorMessage(data.error);
if (typeof failure_callback == 'function')
failure_callback();
}
},
error : function(data){
showErrorMessage(("[TECHNICAL ERROR]"));
}
});
};
var tabs_manager = new ProductTabsManager();
tabs_manager.setTabs(product_tabs);