New : delete resource

This commit is contained in:
jfefe 2014-05-11 12:12:17 +02:00
parent 45aa1b9136
commit e9453437f1
5 changed files with 101 additions and 48 deletions

View File

@ -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

View File

@ -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

View File

@ -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 '</div>';
}
}
if ($action != "delete" )
{
// Edit resource
if($user->rights->resource->delete)
{
print '<div class="inline-block divButAction">';
print '<a href="'.$_SERVER['PHP_SELF'].'?id='.$id.'&amp;action=delete" class="butActionDelete">'.$langs->trans('Delete').'</a>';
print '</div>';
}
}
}
print '</div>';
}

View File

@ -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'])))
{

View File

@ -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)