diff --git a/htdocs/html.form.class.php b/htdocs/html.form.class.php index 89147086324..135b644d705 100644 --- a/htdocs/html.form.class.php +++ b/htdocs/html.form.class.php @@ -2587,6 +2587,7 @@ class Form * \param option Valeur de l'option en fonction du type choisi * \param translate Traduire la valeur * \param maxlen Length maximum for labels + * \return string HTML select string */ function selectarray($htmlname, $array, $id='', $show_empty=0, $key_in_label=0, $value_as_key=0, $optionType=0, $option='', $translate=0, $maxlen=0) { diff --git a/htdocs/html.formfile.class.php b/htdocs/html.formfile.class.php index fc37e6e04c0..a70fbe6d83b 100644 --- a/htdocs/html.formfile.class.php +++ b/htdocs/html.formfile.class.php @@ -313,14 +313,15 @@ class FormFile { print ''; print $langs->trans('Model').' '; - $html->select_array('model',$modellist,$modelselected,0,0,1); + print $html->selectarray('model',$modellist,$modelselected,0,0,1); + print ''; } else { print ''; print $langs->trans("Files"); + print ''; } - print ''; print ''; if($conf->global->MAIN_MULTILANGS && ! $forcenomultilang) { @@ -334,7 +335,7 @@ class FormFile } print ''; print ''; - print ''; + print ''; print ''; } diff --git a/htdocs/html.formother.class.php b/htdocs/html.formother.class.php index f5bdb67d821..b717cfb914c 100644 --- a/htdocs/html.formother.class.php +++ b/htdocs/html.formother.class.php @@ -207,12 +207,12 @@ class FormOther * \param increment increment value * \param start start value * \param end end value - * \return return combo + * \return return combo */ function select_percent($selected=0,$htmlname='percent',$increment=5,$start=0,$end=100) { $return = ''; - + return $return; } @@ -241,7 +241,7 @@ class FormOther * \param modetask 1 to restrict on tasks associated to user * \param mode 0=Return list of tasks and their projects, 1=Return projects and tasks if exists */ - function selectProjectTasks($selected='', $projectid=0, $htmlname='task_parent', $modeproject=0, $modetask=0) + function selectProjectTasks($selected='', $projectid=0, $htmlname='task_parent', $modeproject=0, $modetask=0, $mode=0) { global $user, $langs; @@ -249,7 +249,7 @@ class FormOther //print $modeproject.'-'.$modetask; $task=new Task($this->db); - $tasksarray=$task->getTasksArray($modetask?$user:0, $modeproject?$user:0, $projectid); + $tasksarray=$task->getTasksArray($modetask?$user:0, $modeproject?$user:0, $projectid, 0, $mode); if ($tasksarray) { print ''; print ''; - // Ligne ajout pour contact externe - $var=!$var; - print ""; + // Line to add external contact. Only if project is linked to a third party. + if ($project->societe->id) + { + $var=!$var; + print ""; - print ''; - print img_object('','contact').' '.$langs->trans("ThirdPartyContacts"); - print ''; + print ''; + print img_object('','contact').' '.$langs->trans("ThirdPartyContacts"); + print ''; - print ''; - $selectedCompany = isset($_GET["newcompany"])?$_GET["newcompany"]:$project->societe->id; - $selectedCompany = $formcompany->selectCompaniesForNewContact($project, 'id', $selectedCompany, 'newcompany'); - print ''; + print ''; + $selectedCompany = isset($_GET["newcompany"])?$_GET["newcompany"]:$project->societe->id; + $selectedCompany = $formcompany->selectCompaniesForNewContact($project, 'id', $selectedCompany, 'newcompany'); + print ''; - print ''; - $nbofcontacts=$html->select_contacts($selectedCompany,'','contactid',0); - if ($nbofcontacts == 0) print $langs->trans("NoContactDefined"); - print ''; - print ''; - $formcompany->selectTypeContact($project, '', 'type','external','rowid'); - print ''; - print ''; - print ''; + print ''; + $nbofcontacts=$html->select_contacts($selectedCompany,'','contactid',0); + if ($nbofcontacts == 0) print $langs->trans("NoContactDefined"); + print ''; + print ''; + $formcompany->selectTypeContact($project, '', 'type','external','rowid'); + print ''; + print ''; + print ''; + } print ""; diff --git a/htdocs/projet/fiche.php b/htdocs/projet/fiche.php index eee1341bdcb..ff3a08def96 100644 --- a/htdocs/projet/fiche.php +++ b/htdocs/projet/fiche.php @@ -253,16 +253,14 @@ if ($_GET["action"] == 'create' && $user->rights->projet->creer) $project = new Project($db); $defaultref=''; - $obj = $conf->global->PROJECT_ADDON; - if ($obj) + $obj = empty($conf->global->PROJECT_ADDON)?'mod_project_simple':$conf->global->PROJECT_ADDON; + if (! empty($conf->global->PROJECT_ADDON) && is_readable(DOL_DOCUMENT_ROOT ."/includes/modules/project/".$conf->global->PROJECT_ADDON.".php")) { - if (! empty($conf->global->PROJECT_ADDON) && is_readable(DOL_DOCUMENT_ROOT ."/includes/modules/project/".$conf->global->PROJECT_ADDON.".php")) - { - require_once(DOL_DOCUMENT_ROOT ."/includes/modules/project/".$conf->global->PROJECT_ADDON.".php"); - $modProject = new $obj; - $defaultref = $modProject->getNextValue($soc,$project); - } + require_once(DOL_DOCUMENT_ROOT ."/includes/modules/project/".$conf->global->PROJECT_ADDON.".php"); + $modProject = new $obj; + $defaultref = $modProject->getNextValue($soc,$project); } + if (empty($defaultref)) $defaultref=''; // Ref print ''.$langs->trans("Ref").''; diff --git a/htdocs/projet/tasks/contact.php b/htdocs/projet/tasks/contact.php index 93f4bfffdf8..29a74d1a918 100644 --- a/htdocs/projet/tasks/contact.php +++ b/htdocs/projet/tasks/contact.php @@ -1,6 +1,6 @@ - * Copyright (C) 2006-2009 Laurent Destailleur + * Copyright (C) 2006-2010 Laurent Destailleur * Copyright (C) 2010 Regis Houssin * * This program is free software; you can redistribute it and/or modify @@ -19,9 +19,9 @@ */ /** - * \file htdocs/projet/tasks/who.php + * \file htdocs/projet/tasks/contact.php * \ingroup project - * \brief Fiche taches d'un projet + * \brief Actors of a task * \version $Id$ */ @@ -156,7 +156,7 @@ llxHeader('', $langs->trans("Task")); $html = new Form($db); $formcompany = new FormCompany($db); $contactstatic = new Contact($db); -$projectstatic = new Project($db); +$project = new Project($db); /* *************************************************************************** */ @@ -174,8 +174,8 @@ if ($id > 0 || ! empty($ref)) if ( $task->fetch($id,$ref) > 0) { - $result=$projectstatic->fetch($task->fk_project); - if (! empty($projectstatic->socid)) $projectstatic->societe->fetch($projectstatic->socid); + $result=$project->fetch($task->fk_project); + if (! empty($project->socid)) $project->societe->fetch($project->socid); $head = task_prepare_head($task); dol_fiche_head($head, 'contact', $langs->trans("Task"), 0, 'projecttask'); @@ -190,21 +190,21 @@ if ($id > 0 || ! empty($ref)) // Ref print ''.$langs->trans('Ref').''; - print $html->showrefnav($task,'ref',$linkback,1,'ref','ref',''); + print $html->showrefnav($task,'id','',1,'rowid','ref','',''); print ''; // Label print ''.$langs->trans("Label").''.$task->label.''; - + // Project print ''.$langs->trans("Project").''; - print $projectstatic->getNomUrl(1); + print $project->getNomUrl(1); print ''; // Customer print "".$langs->trans("Company").""; print ''; - if ($projectstatic->societe->id > 0) print $projectstatic->societe->getNomUrl(1); + if ($project->societe->id > 0) print $project->societe->getNomUrl(1); else print ' '; print ''; @@ -268,30 +268,33 @@ if ($id > 0 || ! empty($ref)) print ''; print ''; - // Ligne ajout pour contact externe - $var=!$var; - print ""; + // Line to add an external contact. Only if project linked to a third party. + if ($project->socid) + { + $var=!$var; + print ""; - print ''; - print img_object('','contact').' '.$langs->trans("ThirdPartyContacts"); - print ''; + print ''; + print img_object('','contact').' '.$langs->trans("ThirdPartyContacts"); + print ''; - print ''; - $selectedCompany = isset($_GET["newcompany"])?$_GET["newcompany"]:$projectstatic->societe->id; - $selectedCompany = $formcompany->selectCompaniesForNewContact($task, 'id', $selectedCompany, 'newcompany'); - print ''; + print ''; + $selectedCompany = isset($_GET["newcompany"])?$_GET["newcompany"]:$project->societe->id; + $selectedCompany = $formcompany->selectCompaniesForNewContact($task, 'id', $selectedCompany, 'newcompany'); + print ''; - print ''; - $nbofcontacts=$html->select_contacts($selectedCompany,'','contactid',0); - if ($nbofcontacts == 0) print $langs->trans("NoContactDefined"); - print ''; - print ''; - $formcompany->selectTypeContact($task, '', 'type','external','rowid'); - print ''; - print ''; - print ''; + print ''; + $nbofcontacts=$html->select_contacts($selectedCompany,'','contactid',0); + if ($nbofcontacts == 0) print $langs->trans("NoContactDefined"); + print ''; + print ''; + $formcompany->selectTypeContact($task, '', 'type','external','rowid'); + print ''; + print ''; + print ''; + } print ""; diff --git a/htdocs/projet/tasks/fiche.php b/htdocs/projet/tasks/fiche.php index dcf29f28f4d..0fafd70ec8a 100644 --- a/htdocs/projet/tasks/fiche.php +++ b/htdocs/projet/tasks/fiche.php @@ -263,7 +263,7 @@ else // can have a parent that is not affected to him). $tasksarray=$task->getTasksArray(0, 0, $project->id, $socid, 0); // We load also tasks limited to a particular user - $tasksrole=($_REQUEST["mode"]=='mine' ? $task->getTasksForProjectOwnedByAUser(0,$user,$project->id,0) : ''); + $tasksrole=($_REQUEST["mode"]=='mine' ? $task->getUserRolesForProjetsOrTasks(0,$user,$project->id,0) : ''); print ''; print ''; diff --git a/htdocs/projet/tasks/index.php b/htdocs/projet/tasks/index.php index 30225b095a3..34146948302 100644 --- a/htdocs/projet/tasks/index.php +++ b/htdocs/projet/tasks/index.php @@ -77,7 +77,7 @@ $task = new Task($db); // can have a parent that is not affected to him). $tasksarray=$task->getTasksArray(0, 0, $project->id, $socid); // We load also tasks limited to a particular user -$tasksrole=($_REQUEST["mode"]=='mine' ? $task->getTasksForProjectOwnedByAUser(0,$user,$project->id,0) : ''); +$tasksrole=($_REQUEST["mode"]=='mine' ? $task->getUserRolesForProjetsOrTasks(0,$user,$project->id,0) : ''); print '
'; print ''; diff --git a/htdocs/projet/tasks/note.php b/htdocs/projet/tasks/note.php index 0dc99d3f996..79f64cfa52e 100644 --- a/htdocs/projet/tasks/note.php +++ b/htdocs/projet/tasks/note.php @@ -81,10 +81,9 @@ if ($_POST['action'] == 'update_private' && $user->rights->projet->task->creer) } - -/******************************************************************************/ -/* Affichage fiche */ -/******************************************************************************/ +/* + * View + */ llxHeader(); @@ -101,19 +100,19 @@ if ($id > 0 || ! empty($ref)) $task = new Task($db); $projectstatic = new Project($db); $userstatic = new User($db); - + if ($task->fetch($id, $ref)) { $result=$projectstatic->fetch($task->fk_project); if (! empty($projectstatic->socid)) $projectstatic->societe->fetch($projectstatic->socid); - + // To verify role of users $userAccess = 0; foreach(array('internal','external') as $source) { $userRole = $projectstatic->liste_contact(4,$source); $num=sizeof($userRole); - + $i = 0; while ($i < $num) { @@ -124,7 +123,7 @@ if ($id > 0 || ! empty($ref)) $i++; } } - + $head = task_prepare_head($task); dol_fiche_head($head, 'note', $langs->trans('Task'), 0, 'projecttask'); @@ -134,12 +133,12 @@ if ($id > 0 || ! empty($ref)) // Ref print ''; - + // Label print ''; - + // Project print ''; - - // Task executive - print ''; // Note publique print ''; diff --git a/htdocs/projet/tasks/task.class.php b/htdocs/projet/tasks/task.class.php index e0c902e8f49..3c10f323f4d 100644 --- a/htdocs/projet/tasks/task.class.php +++ b/htdocs/projet/tasks/task.class.php @@ -503,7 +503,7 @@ class Task extends CommonObject if ((! $obj->public) && ($userp || $usert)) // If not public and we ask a filter on user { - if (! $this->getTasksForProjectOwnedByAUser($userp, $usert, $obj->projectid, $obj->rowid)) + if (! $this->getUserRolesForProjetsOrTasks($userp, $usert, $obj->projectid, $obj->rowid)) { $error++; } @@ -541,7 +541,7 @@ class Task extends CommonObject * @param taskid * @return array Array of role of user for each projects or each tasks */ - function getTasksForProjectOwnedByAUser($userp,$usert,$projectid=0,$taskid=0) + function getUserRolesForProjetsOrTasks($userp,$usert,$projectid=0,$taskid=0) { $tasksrole = array(); diff --git a/htdocs/projet/tasks/task.php b/htdocs/projet/tasks/task.php index 2213707c091..c3785ced8ee 100644 --- a/htdocs/projet/tasks/task.php +++ b/htdocs/projet/tasks/task.php @@ -1,6 +1,6 @@ - * Copyright (C) 2006-2009 Laurent Destailleur + * Copyright (C) 2006-2010 Laurent Destailleur * Copyright (C) 2010 Regis Houssin * * This program is free software; you can redistribute it and/or modify @@ -51,7 +51,7 @@ if ($_POST["action"] == 'update' && ! $_POST["cancel"] && $user->rights->projet- { $task = new Task($db); $task->fetch($_POST["id"]); - + $tmparray=explode('_',$_POST['task_parent']); $task_parent=$tmparray[1]; if (empty($task_parent)) $task_parent = 0; // If task_parent is '' @@ -115,72 +115,72 @@ if ($taskid) $task = new Task($db); $projectstatic = new Project($db); $userstatic = new User($db); - + if ($task->fetch($taskid) >= 0 ) { $result=$projectstatic->fetch($task->fk_project); if (! empty($projectstatic->socid)) $projectstatic->societe->fetch($projectstatic->socid); - + $head=task_prepare_head($task); - + dol_fiche_head($head, 'task', $langs->trans("Task"),0,'projecttask'); - + if ($_GET["action"] == 'edit' && $user->rights->projet->task->creer) { print '
'; print ''; print ''; print ''; - + print '
'.$langs->trans("Ref").''; - print $html->showrefnav($task,'ref','',1,'ref','ref'); + print $html->showrefnav($task,'id','',1,'rowid','ref','',''); print '
'.$langs->trans("Label").''.$task->label.'
'.$langs->trans("Project").''; print $projectstatic->getNomUrl(1); @@ -150,31 +149,6 @@ if ($id > 0 || ! empty($ref)) if ($projectstatic->societe->id > 0) print $projectstatic->societe->getNomUrl(1); else print' '; print '
'.$langs->trans("TaskExecutive").''; - $contact = $task->liste_contact(4,'internal'); - $num=sizeof($contact); - if ($num) - { - $i = 0; - while ($i < $num) - { - if ($contact[$i]['code'] == 'TASKEXECUTIVE') - { - $userstatic->id = $contact[$i]['id']; - $userstatic->fetch(); - print $userstatic->getNomUrl(1); - print '
'; - } - $i++; - } - } - else - { - print $langs->trans('SharedTask'); - } - print '
'.$langs->trans("NotePublic").' :
'; - + if ($mesg) print $mesg.'
'; - + // Ref print ''; print ''; - + // Label print ''; print ''; - + // Project print ''; - + // Third party print ''; - + // Task parent print ''; - + // Date start print ''; - + // Date end print ''; - + // Progress print ''; - + // Description print ''; print ''; - + print ''; @@ -192,7 +192,7 @@ if ($taskid) /* * Fiche tache en mode visu */ - + if ($_GET["action"] == 'delete') { $ret=$html->form_confirm($_SERVER["PHP_SELF"]."?id=".$_GET["id"],$langs->trans("DeleteATask"),$langs->trans("ConfirmDeleteATask"),"confirm_delete"); @@ -200,7 +200,7 @@ if ($taskid) } print '
'.$langs->trans("Ref").''.$task->ref.'
'.$langs->trans("Label").'
'.$langs->trans("Project").''; print $projectstatic->getNomUrl(1); print '
'.$langs->trans("Company").''; if ($projectstatic->societe->id) print $projectstatic->societe->getNomUrl(1); else print ' '; print '
'.$langs->trans("ChildOfTask").''; print $formother->selectProjectTasks($task->fk_task_parent,$projectstatic->id, 'task_parent', $user->admin?0:1, 0); print '
'.$langs->trans("DateStart").''; print $html->select_date($task->date_start,'dateo'); print '
'.$langs->trans("DateEnd").''; print $html->select_date($task->date_end?$task->date_end:-1,'datee'); print '
'.$langs->trans("Progress").''; print $formother->select_percent($task->progress,'progress'); print '
'.$langs->trans("Description").''; print ''; print '
'; print '   '; print '
'; - + // Ref print ''; print ''; - + // Label print ''; - + // Project print ''; - + // Third party print ''; - - // Task executive - print ''; - + // Date start print ''; - + // Date end print ''; - + // Progress print ''; - + // Description print ''; - + print '
'; print $langs->trans("Ref"); @@ -208,74 +208,49 @@ if ($taskid) print $html->showrefnav($task,'id','',1,'rowid','ref','',''); print '
'.$langs->trans("Label").''.$task->label.'
'.$langs->trans("Project").''; print $projectstatic->getNomUrl(1); print '
'.$langs->trans("Company").''; if ($projectstatic->societe->id) print $projectstatic->societe->getNomUrl(1); else print ' '; print '
'.$langs->trans("TaskExecutive").''; - $contact = $task->liste_contact(4,'internal'); - $num=sizeof($contact); - if ($num) - { - $i = 0; - while ($i < $num) - { - if ($contact[$i]['code'] == 'TASKEXECUTIVE') - { - $userstatic->id = $contact[$i]['id']; - $userstatic->fetch(); - print $userstatic->getNomUrl(1); - print '
'; - } - $i++; - } - } - else - { - print $langs->trans('SharedTask'); - } - print '
'.$langs->trans("DateStart").''; print dol_print_date($task->date_start,'day'); print '
'.$langs->trans("DateEnd").''; print dol_print_date($task->date_end,'day'); print '
'.$langs->trans("Progress").''; print $task->progress.' %'; print '
'.$langs->trans("Description").''; print nl2br($task->description); print '
'; print ''; - + /* * Actions */ print '
'; - + // Modify if ($user->rights->projet->task->creer) { @@ -285,7 +260,7 @@ if ($taskid) { print ''.$langs->trans('Modify').''; } - + // Delete if ($user->rights->projet->task->supprimer) { @@ -295,7 +270,7 @@ if ($taskid) { print ''.$langs->trans('Delete').''; } - + print '
'; } } diff --git a/htdocs/projet/tasks/time.php b/htdocs/projet/tasks/time.php index dbb07caa810..d37992a192d 100644 --- a/htdocs/projet/tasks/time.php +++ b/htdocs/projet/tasks/time.php @@ -55,7 +55,7 @@ if ($_GET["id"] > 0) $task = new Task($db); $projectstatic = new Project($db); $userstatic = new User($db); - + if ($task->fetch($_GET["id"]) >= 0 ) { $result=$projectstatic->fetch($task->fk_project); @@ -92,34 +92,9 @@ if ($_GET["id"] > 0) if ($projectstatic->societe->id) print $projectstatic->societe->getNomUrl(1); else print ' '; print ''; - - // Task executive - print ''.$langs->trans("TaskExecutive").''; - $contact = $task->liste_contact(4,'internal'); - $num=sizeof($contact); - if ($num) - { - $i = 0; - while ($i < $num) - { - if ($contact[$i]['code'] == 'TASKEXECUTIVE') - { - $userstatic->id = $contact[$i]['id']; - $userstatic->fetch(); - print $userstatic->getNomUrl(1); - print '
'; - } - $i++; - } - } - else - { - print $langs->trans('SharedTask'); - } - print ''; /* - * List of time spent + * List of time spent */ $sql = "SELECT t.task_date, t.task_duration, t.fk_user, u.login, u.rowid"; $sql .= " FROM ".MAIN_DB_PREFIX."projet_task_time as t";