From 59bef9caa1b35d76c363105c93ccf42a71f81f5d Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 18 Mar 2012 02:01:23 +0100 Subject: [PATCH] Qual: Uniformize code to use new note system. --- htdocs/core/class/commonobject.class.php | 4 +- htdocs/core/class/html.form.class.php | 14 +- htdocs/core/lib/project.lib.php | 12 +- htdocs/core/tpl/notes.tpl.php | 20 +- htdocs/fichinter/note.php | 2 +- htdocs/projet/note.php | 2 +- htdocs/projet/tasks/contact.php | 2 +- htdocs/projet/tasks/document.php | 2 +- htdocs/projet/tasks/note.php | 265 ++++++++--------------- htdocs/projet/tasks/task.php | 2 +- htdocs/projet/tasks/time.php | 2 +- 11 files changed, 127 insertions(+), 200 deletions(-) diff --git a/htdocs/core/class/commonobject.class.php b/htdocs/core/class/commonobject.class.php index ddab9fb1e21..0a7b7211655 100644 --- a/htdocs/core/class/commonobject.class.php +++ b/htdocs/core/class/commonobject.class.php @@ -1330,7 +1330,7 @@ abstract class CommonObject } /** - * Update private note of element + * Update external ref of element * * @param string $ref_ext Update field ref_ext * @return int <0 if KO, >0 if OK @@ -1376,7 +1376,7 @@ abstract class CommonObject } $sql = 'UPDATE '.MAIN_DB_PREFIX.$this->table_element; - // TODO uniformize fields note_private + // TODO uniformize fields to note_private if ($this->table_element == 'fichinter' || $this->table_element == 'projet' || $this->table_element == 'projet_task') { $sql.= " SET note_private = '".$this->db->escape($note)."'"; diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php index b3c1b3d4970..5f042f714e7 100644 --- a/htdocs/core/class/html.form.class.php +++ b/htdocs/core/class/html.form.class.php @@ -75,9 +75,10 @@ class Form * @param object $object Object * @param boolean $perm Permission to allow button to edit parameter * @param string $typeofdata Type of data ('string' by default, 'email', 'numeric:99', 'text' or 'textarea', 'day' or 'datepicker', 'ckeditor:dolibarr_zzz:width:height', 'select:xxx'...) + * @param string $moreparam More param to add on a href URL * @return string HTML edit field */ - function editfieldkey($text,$htmlname,$preselected,$object,$perm,$typeofdata='string') + function editfieldkey($text, $htmlname, $preselected, $object, $perm, $typeofdata='string', $moreparam='') { global $conf,$langs; @@ -103,7 +104,7 @@ class Form $ret.=''; - if (GETPOST('action') != 'edit'.$htmlname && $perm) $ret.=''; + if (GETPOST('action') != 'edit'.$htmlname && $perm) $ret.=''; $ret.='
'; $ret.=$langs->trans($text); $ret.='id.'">'.img_edit($langs->trans('Edit'),1).'id.$moreparam.'">'.img_edit($langs->trans('Edit'),1).'
'; } @@ -118,17 +119,14 @@ class Form * @param string $value Value to show/edit * @param object $object Object * @param boolean $perm Permission to allow button to edit parameter -<<<<<<< HEAD * @param string $typeofdata Type of data ('string' by default, 'email', 'numeric:99', 'text' or 'textarea:rows:cols', 'day' or 'datepicker', 'ckeditor:dolibarr_zzz:width:height:1:rows:cols', 'select:xxx'...) -======= - * @param string $typeofdata Type of data ('string' by default, 'email', 'numeric:99', 'text' or 'textarea', 'day' or 'datepicker', 'ckeditor:dolibarr_zzz:width:height:1', 'select:xxx'...) ->>>>>>> branch 'develop' of ssh://git@github.com/Dolibarr/dolibarr.git * @param string $editvalue When in edit mode, use this value as $value instead of value * @param object $extObject External object * @param string $success Success message + * @param string $moreparam More param to add on a href URL * @return string HTML edit field */ - function editfieldval($text,$htmlname,$value,$object,$perm,$typeofdata='string',$editvalue='',$extObject=null,$success=null) + function editfieldval($text, $htmlname, $value, $object, $perm, $typeofdata='string', $editvalue='', $extObject=null, $success=null, $moreparam='') { global $conf,$langs,$db; @@ -145,7 +143,7 @@ class Form if (GETPOST('action') == 'edit'.$htmlname) { $ret.="\n"; - $ret.='
'; + $ret.=''; $ret.=''; $ret.=''; $ret.=''; diff --git a/htdocs/core/lib/project.lib.php b/htdocs/core/lib/project.lib.php index c99bc19d97a..9cec0d5222c 100644 --- a/htdocs/core/lib/project.lib.php +++ b/htdocs/core/lib/project.lib.php @@ -74,7 +74,7 @@ function project_prepare_head($object) $head[$h][0] = DOL_URL_ROOT.'/projet/note.php?id='.$object->id; $head[$h][1] = $langs->trans('Notes'); - $head[$h][2] = 'note'; + $head[$h][2] = 'notes'; $h++; // Then tab for sub level of projet, i mean tasks @@ -113,17 +113,17 @@ function task_prepare_head($object) $head[$h][0] = DOL_URL_ROOT.'/projet/tasks/task.php?id='.$object->id.(GETPOST('withproject')?'&withproject=1':'');; $head[$h][1] = $langs->trans("Card"); - $head[$h][2] = 'task'; + $head[$h][2] = 'task_task'; $h++; $head[$h][0] = DOL_URL_ROOT.'/projet/tasks/contact.php?id='.$object->id.(GETPOST('withproject')?'&withproject=1':'');; $head[$h][1] = $langs->trans("TaskRessourceLinks"); - $head[$h][2] = 'contact'; + $head[$h][2] = 'task_contact'; $h++; $head[$h][0] = DOL_URL_ROOT.'/projet/tasks/time.php?id='.$object->id.(GETPOST('withproject')?'&withproject=1':'');; $head[$h][1] = $langs->trans("TimeSpent"); - $head[$h][2] = 'time'; + $head[$h][2] = 'task_time'; $h++; // Show more tabs from modules @@ -138,12 +138,12 @@ function task_prepare_head($object) $listoffiles=dol_dir_list($filesdir,'files',1); $head[$h][1] = (count($listoffiles)?$langs->trans('DocumentsNb',count($listoffiles)):$langs->trans('Documents'));*/ $head[$h][1] = $langs->trans('Documents'); - $head[$h][2] = 'document'; + $head[$h][2] = 'task_document'; $h++; $head[$h][0] = DOL_URL_ROOT.'/projet/tasks/note.php?id='.$object->id.(GETPOST('withproject')?'&withproject=1':'');; $head[$h][1] = $langs->trans('Notes'); - $head[$h][2] = 'note'; + $head[$h][2] = 'task_notes'; $h++; return $head; diff --git a/htdocs/core/tpl/notes.tpl.php b/htdocs/core/tpl/notes.tpl.php index 7a5673950f8..27fef144526 100644 --- a/htdocs/core/tpl/notes.tpl.php +++ b/htdocs/core/tpl/notes.tpl.php @@ -19,12 +19,16 @@ $module = $object->element; $note_public = 'note_public'; $note_private = 'note'; -$colwidth=(empty($colwidth)?25:$colwidth); -$permission=$user->rights->$module->creer; + +$colwidth=(isset($colwidth)?$colwidth:25); +$permission=(isset($permission)?$permission:$user->rights->$module->creer); // If already defined by caller page +$moreparam=(isset($moreparam)?$moreparam:''); // Special cases -if ($module == 'propal') { $module = 'propale'; } -elseif ($module == 'fichinter') { $module = 'ficheinter'; $note_private = 'note_private'; } +if ($module == 'propal') { $permission=$user->rights->propale->creer; } +elseif ($module == 'fichinter') { $permission=$user->rights->ficheinter->creer; $note_private = 'note_private'; } +elseif ($module == 'project') { $note_private = 'note_private'; } +elseif ($module == 'project_task') { $note_private = 'note_private'; } elseif ($module == 'invoice_supplier') { $permission=$user->rights->fournisseur->facture->creer; } elseif ($module == 'order_supplier') { $permission=$user->rights->fournisseur->commande->creer; } @@ -35,13 +39,13 @@ else $typeofdata='textarea:12:100';
-
>editfieldkey("NotePublic",$note_public,$object->note_public,$object,$permission,$typeofdata); ?>
-
editfieldval("NotePublic",$note_public,$object->note_public,$object,$permission,$typeofdata); ?>
+
>editfieldkey("NotePublic", $note_public, $object->note_public, $object, $permission, $typeofdata, $moreparam); ?>
+
editfieldval("NotePublic", $note_public, $object->note_public, $object, $permission, $typeofdata, '', null, null, $moreparam); ?>
societe_id) { ?>
-
>editfieldkey("NotePrivate",$note_private,$object->note_private,$object,$permission,$typeofdata); ?>
-
editfieldval("NotePrivate",$note_private,$object->note_private,$object,$permission,$typeofdata); ?>
+
>editfieldkey("NotePrivate", $note_private, $object->note_private, $object, $permission, $typeofdata, $moreparam); ?>
+
editfieldval("NotePrivate", $note_private, $object->note_private, $object, $permission, $typeofdata, '', null, null, $moreparam); ?>
diff --git a/htdocs/fichinter/note.php b/htdocs/fichinter/note.php index d3b25136083..6b554c3aac1 100644 --- a/htdocs/fichinter/note.php +++ b/htdocs/fichinter/note.php @@ -91,7 +91,7 @@ if ($id > 0 || ! empty($ref)) include(DOL_DOCUMENT_ROOT.'/core/tpl/notes.tpl.php'); - print ''; + dol_fiche_end(); } } diff --git a/htdocs/projet/note.php b/htdocs/projet/note.php index 3e3807971d6..86f47072ffb 100644 --- a/htdocs/projet/note.php +++ b/htdocs/projet/note.php @@ -113,7 +113,7 @@ if ($id > 0 || ! empty($ref)) //print "userAccess=".$userAccess." userWrite=".$userWrite." userDelete=".$userDelete; $head = project_prepare_head($project); - dol_fiche_head($head, 'note', $langs->trans('Project'), 0, ($project->public?'projectpub':'project')); + dol_fiche_head($head, 'notes', $langs->trans('Project'), 0, ($project->public?'projectpub':'project')); print ''; diff --git a/htdocs/projet/tasks/contact.php b/htdocs/projet/tasks/contact.php index 0e745f928ca..69543c2a163 100644 --- a/htdocs/projet/tasks/contact.php +++ b/htdocs/projet/tasks/contact.php @@ -199,7 +199,7 @@ if ($id > 0 || ! empty($ref)) dol_htmloutput_mesg($mesg); $head = task_prepare_head($task); - dol_fiche_head($head, 'contact', $langs->trans("Task"), 0, 'projecttask'); + dol_fiche_head($head, 'task_contact', $langs->trans("Task"), 0, 'projecttask'); /* diff --git a/htdocs/projet/tasks/document.php b/htdocs/projet/tasks/document.php index bb5fd636665..12840e9dd34 100644 --- a/htdocs/projet/tasks/document.php +++ b/htdocs/projet/tasks/document.php @@ -187,7 +187,7 @@ if ($id > 0 || ! empty($ref)) } $head = task_prepare_head($task); - dol_fiche_head($head, 'document', $langs->trans("Task"), 0, 'projecttask'); + dol_fiche_head($head, 'task_document', $langs->trans("Task"), 0, 'projecttask'); $param=(GETPOST('withproject')?'&withproject=1':''); $linkback=GETPOST('withproject')?''.$langs->trans("BackToList").'':''; diff --git a/htdocs/projet/tasks/note.php b/htdocs/projet/tasks/note.php index 4fbb5371599..5946dd5d23c 100644 --- a/htdocs/projet/tasks/note.php +++ b/htdocs/projet/tasks/note.php @@ -32,7 +32,7 @@ $action=GETPOST('action'); $mine = $_REQUEST['mode']=='mine' ? 1 : 0; //if (! $user->rights->projet->all->lire) $mine=1; // Special for projects $id = GETPOST('id','int'); -$ref= GETPOST('ref'); +$ref= GETPOST('ref', 'alpha'); $withproject=GETPOST('withproject'); // Security check @@ -41,51 +41,28 @@ if ($user->societe_id > 0) $socid = $user->societe_id; if (!$user->rights->projet->lire) accessforbidden(); //$result = restrictedArea($user, 'projet', $id, '', 'task'); // TODO ameliorer la verification +$object = new Task($db); +$object->fetch($id, $ref); -/******************************************************************************/ -/* Actions */ -/******************************************************************************/ +/* + * Actions + */ -if ($action == 'update_public' && $user->rights->projet->creer) +if ($action == 'setnote_public' && $user->rights->ficheinter->creer) { - $task = new Task($db); - $task->fetch($id); - - $db->begin(); - - $res=$task->update_note_public(dol_html_entity_decode(GETPOST('note_public'), ENT_QUOTES)); - if ($res < 0) - { - $mesg='
'.$task->error.'
'; - $db->rollback(); - } - else - { - $db->commit(); - } + $result=$object->update_note_public(dol_html_entity_decode(GETPOST('note_public'), ENT_QUOTES)); + if ($result < 0) dol_print_error($db,$object->error); } -if ($action == 'update_private' && $user->rights->projet->creer) +else if ($action == 'setnote_private' && $user->rights->ficheinter->creer) { - $task = new Task($db); - $task->fetch($id); - - $db->begin(); - - $res=$task->update_note(dol_html_entity_decode(GETPOST('note_private'), ENT_QUOTES)); - if ($res < 0) - { - $mesg='
'.$task->error.'
'; - $db->rollback(); - } - else - { - $db->commit(); - } + $result=$object->update_note(dol_html_entity_decode(GETPOST('note_private'), ENT_QUOTES)); + if ($result < 0) dol_print_error($db,$object->error); } + /* * View */ @@ -94,165 +71,113 @@ llxHeader(); $form = new Form($db); $project = new Project($db); -$task = new Task($db); $userstatic = new User($db); $now=dol_now(); if ($id > 0 || ! empty($ref)) { - if ($task->fetch($id, $ref) > 0) + $result=$project->fetch($object->fk_project); + if (! empty($project->socid)) $project->societe->fetch($project->socid); + + $userWrite = $project->restrictedProjectArea($user,'write'); + + if ($withproject) { - $result=$project->fetch($task->fk_project); - if (! empty($project->socid)) $project->societe->fetch($project->socid); + // Tabs for project + $tab='tasks'; + $head=project_prepare_head($project); + dol_fiche_head($head, $tab, $langs->trans("Project"),0,($project->public?'projectpub':'project')); - $userWrite = $project->restrictedProjectArea($user,'write'); - - if ($withproject) - { - // Tabs for project - $tab='tasks'; - $head=project_prepare_head($project); - dol_fiche_head($head, $tab, $langs->trans("Project"),0,($project->public?'projectpub':'project')); - - $param=($mode=='mine'?'&mode=mine':''); - - print '
'; - - // Ref - print ''; - - // Project - print ''; - - // Company - print ''; - print ''; - - // Visibility - print ''; - - // Statut - print ''; - - print '
'; - print $langs->trans("Ref"); - print ''; - // Define a complementary filter for search of next/prev ref. - if (! $user->rights->projet->all->lire) - { - $projectsListId = $project->getProjectsAuthorizedForUser($user,$mine,0); - $project->next_prev_filter=" rowid in (".(count($projectsListId)?join(',',array_keys($projectsListId)):'0').")"; - } - print $form->showrefnav($project,'ref','',1,'ref','ref','',$param); - print '
'.$langs->trans("Label").''.$project->title.'
'.$langs->trans("Company").''; - if (! empty($project->societe->id)) print $project->societe->getNomUrl(1); - else print ' '; - print '
'.$langs->trans("Visibility").''; - if ($project->public) print $langs->trans('SharedProject'); - else print $langs->trans('PrivateProject'); - print '
'.$langs->trans("Status").''.$project->getLibStatut(4).'
'; - - dol_fiche_end(); - - print '
'; - } - - $head = task_prepare_head($task); - dol_fiche_head($head, 'note', $langs->trans('Task'), 0, 'projecttask'); + $param=($mode=='mine'?'&mode=mine':''); print ''; - $param=(GETPOST('withproject')?'&withproject=1':''); - $linkback=GETPOST('withproject')?''.$langs->trans("BackToList").'':''; - // Ref - print ''; - // Label - print ''; - // Project - if (empty($withproject)) - { - print ''; + print ''; - // Third party - print ''; - } + // Company + print ''; + print ''; - // Note public - print ''; - print '"; + // Visibility + print ''; - // Note private - if (! $user->societe_id) - { - print ''; - print '"; - } + // Statut + print ''; - print "
'.$langs->trans("Ref").''; - if (! GETPOST('withproject') || empty($project->id)) + print '
'; + print $langs->trans("Ref"); + print ''; + // Define a complementary filter for search of next/prev ref. + if (! $user->rights->projet->all->lire) { - $projectsListId = $project->getProjectsAuthorizedForUser($user,$mine,1); - $task->next_prev_filter=" fk_projet in (".$projectsListId.")"; + $projectsListId = $project->getProjectsAuthorizedForUser($user,$mine,0); + $project->next_prev_filter=" rowid in (".(count($projectsListId)?join(',',array_keys($projectsListId)):'0').")"; } - else $task->next_prev_filter=" fk_projet = ".$project->id; - print $form->showrefnav($task,'id',$linkback,1,'rowid','ref','',$param); + print $form->showrefnav($project,'ref','',1,'ref','ref','',$param); print '
'.$langs->trans("Label").''.$task->label.'
'.$langs->trans("Project").''; - print $project->getNomUrl(1); - print '
'.$langs->trans("Label").''.$project->title.'
'.$langs->trans("Company").''; - if ($project->societe->id > 0) print $project->societe->getNomUrl(1); - else print' '; - print '
'.$langs->trans("Company").''; + if (! empty($project->societe->id)) print $project->societe->getNomUrl(1); + else print ' '; + print '
'.$langs->trans("NotePublic").''; - if ($action == 'edit') - { - print ''; - print ''; - print ''; - print '
"; - print ''; - print ''; - } - else - { - print ($task->note_public?nl2br($task->note_public):" "); - } - print "
'.$langs->trans("Visibility").''; + if ($project->public) print $langs->trans('SharedProject'); + else print $langs->trans('PrivateProject'); + print '
'.$langs->trans("NotePrivate").''; - if ($_GET["action"] == 'edit') - { - print '
'; - print ''; - print ''; - print '
"; - print ''; - print '
'; - } - else - { - print ($task->note_private?nl2br($task->note_private):" "); - } - print "
'.$langs->trans("Status").''.$project->getLibStatut(4).'
"; + print ''; dol_fiche_end(); - /* - * Actions - */ - print '
'; - - if (($user->rights->projet->creer || $user->rights->projet->all->creer) && $_GET['action'] <> 'edit') - { - print ''.$langs->trans('Modify').''; - } - else - { - print ''.$langs->trans('Modify').''; - } - - print '
'; + print '
'; } + + $head = task_prepare_head($object); + dol_fiche_head($head, 'task_notes', $langs->trans('Task'), 0, 'projecttask'); + + print ''; + + $param=(GETPOST('withproject')?'&withproject=1':''); + $linkback=GETPOST('withproject')?''.$langs->trans("BackToList").'':''; + + // Ref + print ''; + + // Label + print ''; + + // Project + if (empty($withproject)) + { + print ''; + + // Third party + print ''; + } + + print "
'.$langs->trans("Ref").''; + if (! GETPOST('withproject') || empty($project->id)) + { + $projectsListId = $project->getProjectsAuthorizedForUser($user,$mine,1); + $object->next_prev_filter=" fk_projet in (".$projectsListId.")"; + } + else $object->next_prev_filter=" fk_projet = ".$project->id; + print $form->showrefnav($object,'id',$linkback,1,'rowid','ref','',$param); + print '
'.$langs->trans("Label").''.$object->label.'
'.$langs->trans("Project").''; + print $project->getNomUrl(1); + print '
'.$langs->trans("Company").''; + if ($project->societe->id > 0) print $project->societe->getNomUrl(1); + else print' '; + print '
"; + + print '
'; + + $colwidth=30; + $permission=($user->rights->projet->creer || $user->rights->projet->all->creer); + $moreparam=$param; + include(DOL_DOCUMENT_ROOT.'/core/tpl/notes.tpl.php'); + + dol_fiche_end(); } llxFooter(); diff --git a/htdocs/projet/tasks/task.php b/htdocs/projet/tasks/task.php index 5903649c5e5..261dbd2d985 100644 --- a/htdocs/projet/tasks/task.php +++ b/htdocs/projet/tasks/task.php @@ -208,7 +208,7 @@ if ($taskid) dol_htmloutput_mesg($mesg); $head=task_prepare_head($task); - dol_fiche_head($head, 'task', $langs->trans("Task"),0,'projecttask'); + dol_fiche_head($head, 'task_task', $langs->trans("Task"),0,'projecttask'); if ($action == 'edit' && $user->rights->projet->creer) { diff --git a/htdocs/projet/tasks/time.php b/htdocs/projet/tasks/time.php index ac6bda48e22..8f93368d6e4 100644 --- a/htdocs/projet/tasks/time.php +++ b/htdocs/projet/tasks/time.php @@ -216,7 +216,7 @@ if ($id > 0 || ! empty($ref)) } $head=task_prepare_head($task); - dol_fiche_head($head, 'time', $langs->trans("Task"),0,'projecttask'); + dol_fiche_head($head, 'task_time', $langs->trans("Task"),0,'projecttask'); dol_htmloutput_mesg($mesg);