From e0e3c07670811871309decb180ff3bc782656616 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 20 Apr 2012 09:43:44 +0200 Subject: [PATCH] Fix: upload dir --- htdocs/projet/tasks/document.php | 276 ++++++++++++++++--------------- 1 file changed, 140 insertions(+), 136 deletions(-) diff --git a/htdocs/projet/tasks/document.php b/htdocs/projet/tasks/document.php index f70fd9f135c04..65a758ee13786 100644 --- a/htdocs/projet/tasks/document.php +++ b/htdocs/projet/tasks/document.php @@ -1,5 +1,7 @@ + * Copyright (C) 2006-2012 Laurent Destailleur + * Copyright (C) 2012 Florian Henry * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -62,21 +64,7 @@ $object = new Task($db); $projectstatic = new Project($db); -if ($id > 0 || ! empty($ref)) -{ - if ($object->fetch($id,$ref) > 0) - { - $projectstatic->fetch($object->fk_project); - - if (! empty($projectstatic->socid)) $projectstatic->societe->fetch($projectstatic->socid); - - $upload_dir = $conf->projet->dir_output.'/'.dol_sanitizeFileName($projectstatic->ref).'/'.dol_sanitizeFileName($object->ref); - } - else - { - dol_print_error($db); - } -} + /* @@ -141,6 +129,22 @@ } } +// Find upload dir after retreive is task if necessary +if ($id > 0 || ! empty($ref)) +{ + if ($object->fetch($id,$ref) > 0) + { + $projectstatic->fetch($object->fk_project); + + if (! empty($projectstatic->socid)) $projectstatic->societe->fetch($projectstatic->socid); + + $upload_dir = $conf->projet->dir_output.'/'.dol_sanitizeFileName($projectstatic->ref).'/'.dol_sanitizeFileName($object->ref); + } + else + { + dol_print_error($db); + } +} /* * View @@ -151,126 +155,126 @@ llxHeader('',$langs->trans('Project')); if ($object->id > 0) -{ - if (! empty($projectstatic->socid)) $projectstatic->societe->fetch($projectstatic->socid); - - $userWrite = $projectstatic->restrictedProjectArea($user,'write'); - - if (! empty($withproject)) - { - // Tabs for project - $tab='tasks'; - $head=project_prepare_head($projectstatic); - dol_fiche_head($head, $tab, $langs->trans("Project"),0,($projectstatic->public?'projectpub':'project')); - - $param=($mode=='mine'?'&mode=mine':''); - - print ''; - - // Ref - print ''; - - print ''; - - 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 = $projectstatic->getProjectsAuthorizedForUser($user,$mine,0); - $projectstatic->next_prev_filter=" rowid in (".(count($projectsListId)?join(',',array_keys($projectsListId)):'0').")"; - } - print $form->showrefnav($projectstatic,'project_ref','',1,'ref','ref','',$param.'&withproject=1'); - print '
'.$langs->trans("Label").''.$projectstatic->title.'
'.$langs->trans("Company").''; - if (! empty($projectstatic->societe->id)) print $projectstatic->societe->getNomUrl(1); - else print ' '; - print '
'.$langs->trans("Visibility").''; - if ($projectstatic->public) print $langs->trans('SharedProject'); - else print $langs->trans('PrivateProject'); - print '
'.$langs->trans("Status").''.$projectstatic->getLibStatut(4).'
'; - - dol_fiche_end(); - - print '
'; - } - - $head = task_prepare_head($object); - dol_fiche_head($head, 'task_document', $langs->trans("Task"), 0, 'projecttask'); - - $param=(GETPOST('withproject')?'&withproject=1':''); - $linkback=GETPOST('withproject')?''.$langs->trans("BackToList").'':''; - - // Files list constructor - $filearray=dol_dir_list($upload_dir,"files",0,'','\.meta$',$sortfield,(strtolower($sortorder)=='desc'?SORT_DESC:SORT_ASC),1); - $totalsize=0; - foreach($filearray as $key => $file) - { - $totalsize+=$file['size']; - } - - print ''; - - // Ref - print ''; - print ''; - - // Label - print ''; - - // Project - if (empty($withproject)) - { - print ''; - - // Third party - print ''; - } - - // Files infos - print ''; - print ''; - - print "
'; - print $langs->trans("Ref"); - print ''; - if (empty($withproject) || empty($projectstatic->id)) - { - $projectsListId = $projectstatic->getProjectsAuthorizedForUser($user,$mine,1); - $object->next_prev_filter=" fk_projet in (".$projectsListId.")"; - } - else $object->next_prev_filter=" fk_projet = ".$projectstatic->id; - print $form->showrefnav($object,'id',$linkback,1,'rowid','ref','',$param); - print '
'.$langs->trans("Label").''.$object->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("NbOfAttachedFiles").''.count($filearray).'
'.$langs->trans("TotalSizeOfAttachedFiles").''.$totalsize.' '.$langs->trans("bytes").'
\n"; - - dol_fiche_end(); - - print '
'; - - dol_htmloutput_mesg($mesg); - - - // Affiche formulaire upload - $formfile=new FormFile($db); - $formfile->form_attach_new_file(DOL_URL_ROOT.'/projet/tasks/document.php?id='.$object->id.($withproject?'&withproject=1':''),'',0,0,$user->rights->projet->creer); - - - // List of document - $param='&id='.$object->id; +{ + if (! empty($projectstatic->socid)) $projectstatic->societe->fetch($projectstatic->socid); + + $userWrite = $projectstatic->restrictedProjectArea($user,'write'); + + if (! empty($withproject)) + { + // Tabs for project + $tab='tasks'; + $head=project_prepare_head($projectstatic); + dol_fiche_head($head, $tab, $langs->trans("Project"),0,($projectstatic->public?'projectpub':'project')); + + $param=($mode=='mine'?'&mode=mine':''); + + print ''; + + // Ref + print ''; + + print ''; + + 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 = $projectstatic->getProjectsAuthorizedForUser($user,$mine,0); + $projectstatic->next_prev_filter=" rowid in (".(count($projectsListId)?join(',',array_keys($projectsListId)):'0').")"; + } + print $form->showrefnav($projectstatic,'project_ref','',1,'ref','ref','',$param.'&withproject=1'); + print '
'.$langs->trans("Label").''.$projectstatic->title.'
'.$langs->trans("Company").''; + if (! empty($projectstatic->societe->id)) print $projectstatic->societe->getNomUrl(1); + else print ' '; + print '
'.$langs->trans("Visibility").''; + if ($projectstatic->public) print $langs->trans('SharedProject'); + else print $langs->trans('PrivateProject'); + print '
'.$langs->trans("Status").''.$projectstatic->getLibStatut(4).'
'; + + dol_fiche_end(); + + print '
'; + } + + $head = task_prepare_head($object); + dol_fiche_head($head, 'task_document', $langs->trans("Task"), 0, 'projecttask'); + + $param=(GETPOST('withproject')?'&withproject=1':''); + $linkback=GETPOST('withproject')?''.$langs->trans("BackToList").'':''; + + // Files list constructor + $filearray=dol_dir_list($upload_dir,"files",0,'','\.meta$',$sortfield,(strtolower($sortorder)=='desc'?SORT_DESC:SORT_ASC),1); + $totalsize=0; + foreach($filearray as $key => $file) + { + $totalsize+=$file['size']; + } + + print ''; + + // Ref + print ''; + print ''; + + // Label + print ''; + + // Project + if (empty($withproject)) + { + print ''; + + // Third party + print ''; + } + + // Files infos + print ''; + print ''; + + print "
'; + print $langs->trans("Ref"); + print ''; + if (empty($withproject) || empty($projectstatic->id)) + { + $projectsListId = $projectstatic->getProjectsAuthorizedForUser($user,$mine,1); + $object->next_prev_filter=" fk_projet in (".$projectsListId.")"; + } + else $object->next_prev_filter=" fk_projet = ".$projectstatic->id; + print $form->showrefnav($object,'id',$linkback,1,'rowid','ref','',$param); + print '
'.$langs->trans("Label").''.$object->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("NbOfAttachedFiles").''.count($filearray).'
'.$langs->trans("TotalSizeOfAttachedFiles").''.$totalsize.' '.$langs->trans("bytes").'
\n"; + + dol_fiche_end(); + + print '
'; + + dol_htmloutput_mesg($mesg); + + + // Affiche formulaire upload + $formfile=new FormFile($db); + $formfile->form_attach_new_file(DOL_URL_ROOT.'/projet/tasks/document.php?id='.$object->id.($withproject?'&withproject=1':''),'',0,0,$user->rights->projet->creer); + + + // List of document + $param='&id='.$object->id; $formfile->list_of_documents($filearray,$object,'projet',$param,0,dol_sanitizeFileName($projectstatic->ref).'/'.dol_sanitizeFileName($object->ref).'/'); } else @@ -283,4 +287,4 @@ llxFooter(); $db->close(); -?> +?> \ No newline at end of file