diff --git a/htdocs/langs/en_US/resource.lang b/htdocs/langs/en_US/resource.lang
index b0d125b2b60..f5927388193 100755
--- a/htdocs/langs/en_US/resource.lang
+++ b/htdocs/langs/en_US/resource.lang
@@ -4,8 +4,7 @@ MenuResourceAdd=New resource
MenuResourcePlanning=Resource planning
DeleteResource=Delete resource
ConfirmDeleteResourceElement=Confirm delete the resource for this element
-
-NoResourceLinked=No resource linked
+NoResourceInDatabase=No resource in database.
NoResourceLinked=No resource linked
ResourcePageIndex=Resources list
@@ -29,5 +28,6 @@ RessourceLineSuccessfullyDeleted=Resource line successfully deleted
RessourceLineSuccessfullyUpdated=Resource line successfully updated
TitleResourceCard=Resource card
-
+ConfirmDeleteResource=Confirm to delete this resource
+RessourceSuccessfullyDeleted=Resource successfully deleted
DictionaryResourceType=Type of resources
\ No newline at end of file
diff --git a/htdocs/langs/fr_FR/resource.lang b/htdocs/langs/fr_FR/resource.lang
index 31c27c6cdf9..7d896e27f5f 100755
--- a/htdocs/langs/fr_FR/resource.lang
+++ b/htdocs/langs/fr_FR/resource.lang
@@ -4,7 +4,6 @@ MenuResourceAdd=Nouvelle ressource
MenuResourcePlanning=Planning des Ressources
DeleteResource=Effacer resource
ConfirmDeleteResourceElement=Confirmer la suppression de la ressource pour cet élément
-
NoResourceInDatabase=Aucune ressource en base de données.
NoResourceLinked=Aucune ressource liée
@@ -29,5 +28,6 @@ RessourceLineSuccessfullyDeleted=Ressource supprimée avec succès
RessourceLineSuccessfullyUpdated=Ressource mise à jour
TitleResourceCard=Fiche resource
-
+ConfirmDeleteResource=Confirmer la suppression de cette ressource?
+RessourceSuccessfullyDeleted=Ressource effacée avec succès
DictionaryResourceType=Type de ressources
\ No newline at end of file
diff --git a/htdocs/resource/card.php b/htdocs/resource/card.php
index c8047650ba3..76ea7f99900 100755
--- a/htdocs/resource/card.php
+++ b/htdocs/resource/card.php
@@ -58,6 +58,9 @@ if( ! $user->rights->resource->read)
$object = new Resource($db);
$hookmanager->initHooks(array('resource_card'));
+$parameters=array('resource_id'=>$id);
+$reshook=$hookmanager->executeHooks('doActions',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks
+
/*******************************************************************
* ACTIONS
@@ -115,7 +118,7 @@ if ($action == 'update' && ! $_POST["cancel"] && $user->rights->resource->write
*
* Put here all code to build page
****************************************************/
-$pagetitle = $langs->trans('Card');
+$pagetitle = $langs->trans('ResourceCard');
llxHeader('',$pagetitle,'');
$form = new Form($db);
@@ -167,6 +170,11 @@ if ( $object->fetch($id) > 0 )
}
else
{
+ // Confirmation suppression resource line
+ if ($action == 'delete')
+ {
+ print $form->formconfirm("card.php?&id=".$id,$langs->trans("DeleteResource"),$langs->trans("ConfirmDeleteResource"),"confirm_delete_resource",'','',1);
+ }
/*---------------------------------------
* View object
@@ -219,6 +227,16 @@ if ( $object->fetch($id) > 0 )
print '';
}
}
+ if ($action != "delete" )
+ {
+ // Edit resource
+ if($user->rights->resource->delete)
+ {
+ print '
';
+ }
+ }
}
print '';
}
diff --git a/htdocs/resource/class/actions_resource.class.php b/htdocs/resource/class/actions_resource.class.php
index d4f7050972d..59531e162dc 100644
--- a/htdocs/resource/class/actions_resource.class.php
+++ b/htdocs/resource/class/actions_resource.class.php
@@ -53,6 +53,32 @@ class ActionsResource
global $langs,$user;
$langs->load('resource');
+ if (in_array('resource_card',explode(':',$parameters['context'])))
+ {
+ if($action == 'confirm_delete_resource' && !GETPOST('cancel'))
+ {
+ $res = $object->fetch(GETPOST('id'));
+ if($res)
+ {
+
+ $result = $object->delete(GETPOST('id'));
+
+ if ($result >= 0)
+ {
+ setEventMessage($langs->trans('RessourceSuccessfullyDeleted'));
+ Header("Location: ".$_SERVER['PHP_SELF']."?element=".GETPOST('element')."&element_id=".GETPOST('element_id'));
+ exit;
+ }
+ else {
+ setEventMessage($object->error,'errors');
+ }
+ }
+ else
+ {
+ setEventMessage($object->error,'errors');
+ }
+ }
+ }
if (in_array('element_resource',explode(':',$parameters['context'])))
{
diff --git a/htdocs/resource/class/resource.class.php b/htdocs/resource/class/resource.class.php
index 09e4886779d..49491580ce8 100644
--- a/htdocs/resource/class/resource.class.php
+++ b/htdocs/resource/class/resource.class.php
@@ -320,6 +320,57 @@ class Resource extends CommonObject
}
}
+ /**
+ * Delete a resource object
+ *
+ * @param int $rowid Id of resource line to delete
+ * @param int $notrigger Disable all triggers
+ * @return int >0 if OK, <0 if KO
+ */
+ function delete($rowid, $notrigger=0)
+ {
+ global $user,$langs,$conf;
+
+ $error=0;
+
+ $sql = "DELETE FROM ".MAIN_DB_PREFIX."resource";
+ $sql.= " WHERE rowid =".$rowid;
+
+ dol_syslog(get_class($this)."::delete sql=".$sql);
+ if ($this->db->query($sql))
+ {
+ $sql = "DELETE FROM ".MAIN_DB_PREFIX."element_resources";
+ $sql.= " WHERE element_type='resource' AND resource_id ='".$this->db->escape($rowid)."'";
+ dol_syslog(get_class($this)."::delete sql=".$sql);
+ if ($this->db->query($sql))
+ {
+ if (! $notrigger)
+ {
+ // Call triggers
+ include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
+ $interface=new Interfaces($this->db);
+ $result=$interface->run_triggers('RESOURCE_DELETE',$this,$user,$langs,$conf);
+ if ($result < 0) {
+ $error++; $this->errors=$interface->errors;
+ }
+ // End call triggers
+ }
+
+ return 1;
+ }
+ else {
+ $this->error=$this->db->lasterror();
+ dol_syslog(get_class($this)."::delete_resource error=".$this->error, LOG_ERR);
+ return -1;
+ }
+ }
+ else
+ {
+ $this->error=$this->db->lasterror();
+ dol_syslog(get_class($this)."::delete_resource error=".$this->error, LOG_ERR);
+ return -1;
+ }
+ }
/**
* Load resource objects into $this->lines
*
@@ -769,48 +820,6 @@ class Resource extends CommonObject
}
- /**
- * Delete a link to resource line
- * TODO: move into commonobject class
- *
- * @param int $rowid Id of resource line to delete
- * @param int $element element name (for trigger) TODO: use $this->element into commonobject class
- * @param int $notrigger Disable all triggers
- * @return int >0 if OK, <0 if KO
- */
- function delete_resource($rowid, $element, $notrigger=0)
- {
- global $user,$langs,$conf;
-
- $error=0;
-
- $sql = "DELETE FROM ".MAIN_DB_PREFIX."element_resources";
- $sql.= " WHERE rowid =".$rowid;
-
- dol_syslog(get_class($this)."::delete_resource sql=".$sql);
- if ($this->db->query($sql))
- {
- if (! $notrigger)
- {
- // Call triggers
- include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
- $interface=new Interfaces($this->db);
- $result=$interface->run_triggers(strtoupper($element).'_DELETE_RESOURCE',$this,$user,$langs,$conf);
- if ($result < 0) {
- $error++; $this->errors=$interface->errors;
- }
- // End call triggers
- }
-
- return 1;
- }
- else
- {
- $this->error=$this->db->lasterror();
- dol_syslog(get_class($this)."::delete_resource error=".$this->error, LOG_ERR);
- return -1;
- }
- }
/**
* Load in cache resource type code (setup in dictionary)