Fix: error when deleting resource

This commit is contained in:
jfefe 2015-04-18 18:07:59 +02:00
parent fe01c4470d
commit f2e19f2326
3 changed files with 31 additions and 29 deletions

View File

@ -3350,25 +3350,26 @@ abstract class CommonObject
$this->db->begin(); $this->db->begin();
$sql = "DELETE FROM ".MAIN_DB_PREFIX."element_resources"; $sql = "DELETE FROM ".MAIN_DB_PREFIX."element_resources";
$sql.= " WHERE rowid =".$rowid; $sql.= " WHERE rowid=".$rowid;
dol_syslog(get_class($this)."::delete_resource", LOG_DEBUG); dol_syslog(get_class($this)."::delete_resource", LOG_DEBUG);
if ($this->db->query($sql)) $resql=$this->db->query($sql);
{ if (! $resql)
if (! $notrigger) {
$this->error=$this->db->lasterror();
$this->db->rollback();
return -1;
}
else
{
if (! $notrigger)
{ {
$result=$this->call_trigger(strtoupper($element).'_DELETE_RESOURCE', $user); $result=$this->call_trigger(strtoupper($element).'_DELETE_RESOURCE', $user);
if ($result < 0) { $this->db->rollback(); return -1; } if ($result < 0) { $this->db->rollback(); return -1; }
} }
$this->db->commit();
return 1; return 1;
} }
else
{
$this->error=$this->db->lasterror();
$this->db->rollback();
return -1;
}
} }

View File

@ -90,7 +90,7 @@ if( (array) $linked_resources && count($linked_resources) > 0)
print img_edit(); print img_edit();
print '</a>'; print '</a>';
print '&nbsp;'; print '&nbsp;';
print '<a href="'.$_SERVER['PHP_SELF'].'?action=delete_resource&element='.$element.'&element_id='.$element_id.'&lineid='.$linked_resource['rowid'].'">'; print '<a href="'.$_SERVER['PHP_SELF'].'?action=delete_resource&id='.$linked_resource['resource_id'].'&element='.$element.'&element_id='.$element_id.'&lineid='.$linked_resource['rowid'].'">';
print img_delete(); print img_delete();
print '</a>'; print '</a>';
print '</div>'; print '</div>';

View File

@ -59,7 +59,7 @@ $hookmanager->initHooks(array('element_resource'));
$object->available_resources = array('resource'); $object->available_resources = array('resource');
// Get parameters // Get parameters
$id = GETPOST('id','int'); $id = GETPOST('id','int');
$action = GETPOST('action','alpha'); $action = GETPOST('action','alpha');
$mode = GETPOST('mode','alpha'); $mode = GETPOST('mode','alpha');
$lineid = GETPOST('lineid','int'); $lineid = GETPOST('lineid','int');
@ -70,6 +70,7 @@ $resource_type = GETPOST('resource_type','alpha');
$busy = GETPOST('busy','int'); $busy = GETPOST('busy','int');
$mandatory = GETPOST('mandatory','int'); $mandatory = GETPOST('mandatory','int');
$cancel = GETPOST('cancel','alpha'); $cancel = GETPOST('cancel','alpha');
$confirm = GETPOST('confirm','alpha');
if($action == 'add_element_resource' && ! $cancel) if($action == 'add_element_resource' && ! $cancel)
{ {
@ -113,22 +114,22 @@ if ($action == 'update_linked_resource' && $user->rights->resource->write && !GE
} }
// Delete a resource linked to an element // Delete a resource linked to an element
if ($action == 'confirm_delete_linked_resource' && $user->rights->resource->delete && GETPOST('confirm') == 'yes') if ($action == 'confirm_delete_linked_resource' && $user->rights->resource->delete && $confirm === 'yes')
{ {
$res = $object->fetch(GETPOST('id')); $res = $object->fetch($id);
if($res) if($res > 0)
{ {
$result = $object->delete_resource($lineid,$element); $result = $object->delete_resource($lineid,$element);
if ($result >= 0) if ($result >= 0)
{ {
setEventMessage($langs->trans('RessourceLineSuccessfullyDeleted')); setEventMessage($langs->trans('RessourceLineSuccessfullyDeleted'));
Header("Location: ".$_SERVER['PHP_SELF']."?element=".$element."&element_id=".$element_id); Header("Location: ".$_SERVER['PHP_SELF']."?element=".$element."&element_id=".$element_id);
exit; exit;
} }
else { else {
setEventMessage($object->error,'errors'); setEventMessage($object->error,'errors');
} }
} }
else else
{ {
@ -173,7 +174,7 @@ else
// Confirmation suppression resource line // Confirmation suppression resource line
if ($action == 'delete_resource') if ($action == 'delete_resource')
{ {
print $form->formconfirm("element_resource.php?element=".$element."&element_id=".$element_id."&lineid=".$lineid,$langs->trans("DeleteResource"),$langs->trans("ConfirmDeleteResourceElement"),"confirm_delete_linked_resource",'','',1); print $form->formconfirm("element_resource.php?element=".$element."&element_id=".$element_id."&id=".$id."&lineid=".$lineid,$langs->trans("DeleteResource"),$langs->trans("ConfirmDeleteResourceElement"),"confirm_delete_linked_resource",'','',1);
} }