// Upgrade specific price deletion

git-svn-id: http://dev.prestashop.com/svn/v1/branches/1.5.x@13378 b9a71923-0436-4b27-9f14-aed3839534dd
This commit is contained in:
tDidierjean
2012-02-16 09:45:47 +00:00
parent f1cde3f661
commit 89c1909c66
3 changed files with 67 additions and 12 deletions
@@ -351,7 +351,7 @@ jQuery(document).ready(Customer.init);
</div>
</div>
<table style="text-align: center;width:100%" class="table" cellpadding="0" cellspacing="0">
<table style="text-align: center;width:100%" class="table" cellpadding="0" cellspacing="0" id="specific_prices_list">
<thead>
<tr>
<th class="cell border" style="width: 12%;">{l s='Rule'}</th>
+27 -11
View File
@@ -777,19 +777,35 @@ class AdminProductsControllerCore extends AdminController
}
}
public function processDeleteSpecificPrice($token)
public function ajaxProcessDeleteSpecificPrice()
{
if (!($obj = $this->loadObject()))
return;
$id_specific_price = (int)Tools::getValue('id_specific_price');
if (!$id_specific_price || !Validate::isUnsignedId($id_specific_price))
$this->errors[] = Tools::displayError('Invalid specific price ID');
else
if ($this->tabAccess['delete'] === '1')
{
$specificPrice = new SpecificPrice((int)$id_specific_price);
if (!$specificPrice->delete())
$this->errors[] = Tools::displayError('An error occurred while deleting the specific price');
$id_specific_price = (int)Tools::getValue('id_specific_price');
if (!$id_specific_price || !Validate::isUnsignedId($id_specific_price))
$error = Tools::displayError('Invalid specific price ID');
else
{
$specificPrice = new SpecificPrice((int)$id_specific_price);
if (!$specificPrice->delete())
$error = Tools::displayError('An error occurred while deleting the specific price');
}
}
else
$error = Tools::displayError('You do not have permission to delete here.');
if (isset($error))
$json = array(
'status' => 'error',
'message'=> $error
);
else
$json = array(
'status' => 'ok',
'message'=> $this->_conf[1]
);
die(Tools::jsonEncode($json));
}
public function processSpecificPricePriorities($token)
@@ -2815,7 +2831,7 @@ class AdminProductsControllerCore extends AdminController
<td class="cell border">'.$period.'</td>
<td class="cell border">'.$specific_price['from_quantity'].'</th>
<td class="cell border"><b>'.Tools::displayPrice(Tools::ps_round((float)($this->_getFinalPrice($specific_price, (float)($obj->price), $taxRate)), 2), $current_specific_currency).'</b></td>
<td class="cell border">'.(!$rule->id ? '<a href="'.self::$currentIndex.(Tools::getValue('id_category') ? '&id_category='.Tools::getValue('id_category') : '').'&id_product='.(int)(Tools::getValue('id_product')).'&updateproduct&deleteSpecificPrice&action=Prices&id_specific_price='.(int)($specific_price['id_specific_price']).'&token='.Tools::getValue('token').'"><img src="../img/admin/delete.gif" alt="'.$this->l('Delete').'" /></a>': '').'</td>
<td class="cell border">'.(!$rule->id ? '<a name="delete_link" href="'.self::$currentIndex.'&id_product='.(int)(Tools::getValue('id_product')).'&action=deleteSpecificPrice&id_specific_price='.(int)($specific_price['id_specific_price']).'&token='.Tools::getValue('token').'"><img src="../img/admin/delete.gif" alt="'.$this->l('Delete').'" /></a>': '').'</td>
</tr>';
$i++;
unset($customer_full_name);
+39
View File
@@ -368,6 +368,36 @@ function toggleSpecificPrice()
});
}
/**
* Ajax call to delete a specific price
*
* @param ids
* @param token
* @param parent
*/
function deleteSpecificPrice(url, parent)
{
$.ajax({
url: url,
data: {
ajax: true
},
context: document.body,
dataType: 'json',
context: this,
async: false,
success: function(data) {
if (data.status == 'ok')
{
showSuccessMessage(data.message);
parent.remove();
}
else
showErrorMessage(data.message);
}
});
}
/**
* Execute a callback function when a specific tab has finished loading or right now if the tab is already loaded
*
@@ -402,5 +432,14 @@ $(document).ready(function() {
// Enable writing of the product name when the friendly url field in tab SEO is loaded
onTabLoad('Seo', enableProductName);
// Bind to show/hide new specific price form
onTabLoad('Prices', toggleSpecificPrice);
// Bind to delete specific price link
onTabLoad('Prices', function(){
$('#specific_prices_list').delegate('a[name="delete_link"]', 'click', function(){
deleteSpecificPrice(this.href, $(this).parents('tr'));
return false;
})
});
});