Work on feature to assign several users to an event.
This commit is contained in:
parent
9f2b0b4f29
commit
f19e469b5f
@ -55,6 +55,10 @@ $contactid=GETPOST('contactid','int');
|
|||||||
$origin=GETPOST('origin','alpha');
|
$origin=GETPOST('origin','alpha');
|
||||||
$originid=GETPOST('originid','int');
|
$originid=GETPOST('originid','int');
|
||||||
|
|
||||||
|
$fulldayevent=GETPOST('fullday');
|
||||||
|
$datep=dol_mktime($fulldayevent?'00':GETPOST("aphour"), $fulldayevent?'00':GETPOST("apmin"), 0, GETPOST("apmonth"), GETPOST("apday"), GETPOST("apyear"));
|
||||||
|
$datef=dol_mktime($fulldayevent?'23':GETPOST("p2hour"), $fulldayevent?'59':GETPOST("p2min"), $fulldayevent?'59':'0', GETPOST("p2month"), GETPOST("p2day"), GETPOST("p2year"));
|
||||||
|
|
||||||
// Security check
|
// Security check
|
||||||
$socid = GETPOST('socid','int');
|
$socid = GETPOST('socid','int');
|
||||||
$id = GETPOST('id','int');
|
$id = GETPOST('id','int');
|
||||||
@ -63,6 +67,7 @@ $result = restrictedArea($user, 'agenda', $id, 'actioncomm&societe', 'myactions|
|
|||||||
if ($user->societe_id && $socid) $result = restrictedArea($user,'societe',$socid);
|
if ($user->societe_id && $socid) $result = restrictedArea($user,'societe',$socid);
|
||||||
|
|
||||||
$error=GETPOST("error");
|
$error=GETPOST("error");
|
||||||
|
$donotclearsession=0;
|
||||||
|
|
||||||
$cactioncomm = new CActionComm($db);
|
$cactioncomm = new CActionComm($db);
|
||||||
$object = new ActionComm($db);
|
$object = new ActionComm($db);
|
||||||
@ -82,6 +87,19 @@ $hookmanager->initHooks(array('actioncard'));
|
|||||||
* Actions
|
* Actions
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
if (GETPOST('addassignedtouser'))
|
||||||
|
{
|
||||||
|
// Add a new user
|
||||||
|
if (GETPOST('affectedto') > 0)
|
||||||
|
{
|
||||||
|
$assignedtouser=array();
|
||||||
|
if (!empty($_SESSION['assignedtouser'])) $assignedtouser=dol_json_decode($_SESSION['assignedtouser'], true);
|
||||||
|
$assignedtouser[GETPOST('affectedto')]=array('transparency'=>GETPOST('transparency'),'mandatory'=>1);
|
||||||
|
$_SESSION['assignedtouser']=dol_json_encode($assignedtouser);
|
||||||
|
}
|
||||||
|
$donotclearsession=1;
|
||||||
|
$action='create';
|
||||||
|
}
|
||||||
// Add action
|
// Add action
|
||||||
if ($action == 'add_action')
|
if ($action == 'add_action')
|
||||||
{
|
{
|
||||||
@ -104,12 +122,11 @@ if ($action == 'add_action')
|
|||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
$fulldayevent=GETPOST('fullday');
|
|
||||||
$percentage=in_array(GETPOST('status'),array(-1,100))?GETPOST('status'):GETPOST("percentage"); // If status is -1 or 100, percentage is not defined and we must use status
|
$percentage=in_array(GETPOST('status'),array(-1,100))?GETPOST('status'):GETPOST("percentage"); // If status is -1 or 100, percentage is not defined and we must use status
|
||||||
|
|
||||||
// Clean parameters
|
// Clean parameters
|
||||||
$datep=dol_mktime($fulldayevent?'00':$_POST["aphour"], $fulldayevent?'00':$_POST["apmin"], 0, $_POST["apmonth"], $_POST["apday"], $_POST["apyear"]);
|
$datep=dol_mktime($fulldayevent?'00':GETPOST("aphour"), $fulldayevent?'00':GETPOST("apmin"), 0, GETPOST("apmonth"), GETPOST("apday"), GETPOST("apyear"));
|
||||||
$datef=dol_mktime($fulldayevent?'23':$_POST["p2hour"], $fulldayevent?'59':$_POST["p2min"], $fulldayevent?'59':'0', $_POST["p2month"], $_POST["p2day"], $_POST["p2year"]);
|
$datef=dol_mktime($fulldayevent?'23':GETPOST("p2hour"), $fulldayevent?'59':GETPOST("p2min"), $fulldayevent?'59':'0', GETPOST("p2month"), GETPOST("p2day"), GETPOST("p2year"));
|
||||||
|
|
||||||
// Check parameters
|
// Check parameters
|
||||||
if (! $datef && $percentage == 100)
|
if (! $datef && $percentage == 100)
|
||||||
@ -519,15 +536,16 @@ if ($action == 'create')
|
|||||||
print '<tr><td>'.$langs->trans("EventOnFullDay").'</td><td><input type="checkbox" id="fullday" name="fullday" '.(GETPOST('fullday')?' checked="checked"':'').'></td></tr>';
|
print '<tr><td>'.$langs->trans("EventOnFullDay").'</td><td><input type="checkbox" id="fullday" name="fullday" '.(GETPOST('fullday')?' checked="checked"':'').'></td></tr>';
|
||||||
|
|
||||||
// Date start
|
// Date start
|
||||||
$datep=$object->datep;
|
$datep=($datep?$datep:$object->datep);
|
||||||
if (GETPOST('datep','int',1)) $datep=dol_stringtotime(GETPOST('datep','int',1),0);
|
if (GETPOST('datep','int',1)) $datep=dol_stringtotime(GETPOST('datep','int',1),0);
|
||||||
print '<tr><td width="30%" class="nowrap"><span class="fieldrequired">'.$langs->trans("DateActionStart").'</span></td><td>';
|
print '<tr><td width="30%" class="nowrap"><span class="fieldrequired">'.$langs->trans("DateActionStart").'</span></td><td>';
|
||||||
if (GETPOST("afaire") == 1) $form->select_date($datep,'ap',1,1,0,"action",1,1,0,0,'fulldayend');
|
if (GETPOST("afaire") == 1) $form->select_date($datep,'ap',1,1,0,"action",1,1,0,0,'fulldayend');
|
||||||
else if (GETPOST("afaire") == 2) $form->select_date($datep,'ap',1,1,1,"action",1,1,0,0,'fulldayend');
|
else if (GETPOST("afaire") == 2) $form->select_date($datep,'ap',1,1,1,"action",1,1,0,0,'fulldayend');
|
||||||
else $form->select_date($datep,'ap',1,1,1,"action",1,1,0,0,'fulldaystart');
|
else $form->select_date($datep,'ap',1,1,1,"action",1,1,0,0,'fulldaystart');
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
// Date end
|
// Date end
|
||||||
$datef=$object->datef;
|
$datef=($datef?$datef:$object->datef);
|
||||||
if (GETPOST('datef','int',1)) $datef=dol_stringtotime(GETPOST('datef','int',1),0);
|
if (GETPOST('datef','int',1)) $datef=dol_stringtotime(GETPOST('datef','int',1),0);
|
||||||
print '<tr><td><span id="dateend"'.(GETPOST("actioncode") == 'AC_RDV'?' class="fieldrequired"':'').'>'.$langs->trans("DateActionEnd").'</span></td><td>';
|
print '<tr><td><span id="dateend"'.(GETPOST("actioncode") == 'AC_RDV'?' class="fieldrequired"':'').'>'.$langs->trans("DateActionEnd").'</span></td><td>';
|
||||||
if (GETPOST("afaire") == 1) $form->select_date($datef,'p2',1,1,1,"action",1,1,0,0,'fulldayend');
|
if (GETPOST("afaire") == 1) $form->select_date($datef,'p2',1,1,1,"action",1,1,0,0,'fulldayend');
|
||||||
@ -539,29 +557,29 @@ if ($action == 'create')
|
|||||||
print '<tr><td width="10%">'.$langs->trans("Status").' / '.$langs->trans("Percentage").'</td>';
|
print '<tr><td width="10%">'.$langs->trans("Status").' / '.$langs->trans("Percentage").'</td>';
|
||||||
print '<td>';
|
print '<td>';
|
||||||
$percent=-1;
|
$percent=-1;
|
||||||
if (isset($_GET['status']) || isset($_POST['status']))
|
if (isset($_GET['status']) || isset($_POST['status'])) $percent=GETPOST('status');
|
||||||
{
|
else if (isset($_GET['percentage']) || isset($_POST['percentage'])) $percent=GETPOST('percentage');
|
||||||
$percent=GETPOST('status');
|
|
||||||
}
|
|
||||||
else if (isset($_GET['percentage']) || isset($_POST['percentage']))
|
|
||||||
{
|
|
||||||
$percent=GETPOST('percentage');
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (GETPOST("afaire") == 1) $percent=0;
|
if (GETPOST('complete') == '0' || GETPOST("afaire") == 1) $percent='0';
|
||||||
else if (GETPOST("afaire") == 2) $percent=100;
|
else if (GETPOST('complete') == 100 || GETPOST("afaire") == 2) $percent=100;
|
||||||
}
|
}
|
||||||
$formactions->form_select_status_action('formaction',$percent,1,'complete');
|
$formactions->form_select_status_action('formaction',$percent,1,'complete');
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
// Location
|
// Location
|
||||||
print '<tr><td>'.$langs->trans("Location").'</td><td colspan="3"><input type="text" name="location" size="50" value="'.$object->location.'"></td></tr>';
|
print '<tr><td>'.$langs->trans("Location").'</td><td colspan="3"><input type="text" name="location" size="50" value="'.(GETPOST('location')?GETPOST('location'):$object->location).'"></td></tr>';
|
||||||
|
|
||||||
// Assigned to
|
// Assigned to
|
||||||
$var=false;
|
$var=false;
|
||||||
print '<tr><td class="nowrap">'.$langs->trans("ActionAffectedTo").'</td><td>';
|
print '<tr><td class="nowrap">'.$langs->trans("ActionAffectedTo").'</td><td>';
|
||||||
$form->select_users(GETPOST("affectedto")?GETPOST("affectedto"):(! empty($object->usertodo->id) && $object->usertodo->id > 0 ? $object->usertodo->id : $user->id),'affectedto',1);
|
if (empty($donotclearsession))
|
||||||
|
{
|
||||||
|
$assignedtouser=GETPOST("affectedtouser")?GETPOST("affectedtouser"):(! empty($object->usertodo->id) && $object->usertodo->id > 0 ? $object->usertodo->id : $user->id);
|
||||||
|
$_SESSION['assignedtouser']=dol_json_encode(array($assignedtouser=>array('transparency'=>1,'mandatory'=>1)));
|
||||||
|
}
|
||||||
|
//print $form->select_dolusers_forevent('affectedto',1);
|
||||||
|
print $form->select_dolusers(GETPOST("affectedto")?GETPOST("affectedto"):(! empty($object->usertodo->id) && $object->usertodo->id > 0 ? $object->usertodo->id : $user->id),'affectedto',1);
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
print '</table>';
|
print '</table>';
|
||||||
@ -579,7 +597,7 @@ if ($action == 'create')
|
|||||||
if ($conf->global->AGENDA_ENABLE_DONEBY)
|
if ($conf->global->AGENDA_ENABLE_DONEBY)
|
||||||
{
|
{
|
||||||
print '<tr><td class="nowrap">'.$langs->trans("ActionDoneBy").'</td><td>';
|
print '<tr><td class="nowrap">'.$langs->trans("ActionDoneBy").'</td><td>';
|
||||||
$form->select_users(GETPOST("doneby")?GETPOST("doneby"):(! empty($object->userdone->id) && $percent==100?$object->userdone->id:0),'doneby',1);
|
print $form->select_dolusers(GETPOST("doneby")?GETPOST("doneby"):(! empty($object->userdone->id) && $percent==100?$object->userdone->id:0),'doneby',1);
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -652,7 +670,7 @@ if ($action == 'create')
|
|||||||
// Description
|
// Description
|
||||||
print '<tr><td valign="top">'.$langs->trans("Description").'</td><td>';
|
print '<tr><td valign="top">'.$langs->trans("Description").'</td><td>';
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
|
||||||
$doleditor=new DolEditor('note',(GETPOST('note')?GETPOST('note'):$object->note),'',240,'dolibarr_notes','In',true,true,$conf->fckeditor->enabled,ROWS_7,90);
|
$doleditor=new DolEditor('note',(GETPOST('note')?GETPOST('note'):$object->note),'',180,'dolibarr_notes','In',true,true,$conf->fckeditor->enabled,ROWS_6,90);
|
||||||
$doleditor->Create();
|
$doleditor->Create();
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
|
|||||||
@ -1273,6 +1273,49 @@ class Form
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return select list of users. Selected users are stored into session.
|
||||||
|
*
|
||||||
|
* @param string $htmlname Field name in form
|
||||||
|
* @param int $show_empty 0=liste sans valeur nulle, 1=ajoute valeur inconnue
|
||||||
|
* @param array $exclude Array list of users id to exclude
|
||||||
|
* @param int $disabled If select list must be disabled
|
||||||
|
* @param array $include Array list of users id to include or 'hierarchy' to have only supervised users
|
||||||
|
* @param array $enableonly Array list of users id to be enabled. All other must be disabled
|
||||||
|
* @param int $force_entity 0 or Id of environment to force
|
||||||
|
* @param int $maxlength Maximum length of string into list (0=no limit)
|
||||||
|
* @param int $showstatus 0=show user status only if status is disabled, 1=always show user status into label, -1=never show user status
|
||||||
|
* @param string $morefilter Add more filters into sql request
|
||||||
|
* @return string HTML select string
|
||||||
|
* @see select_dolgroups
|
||||||
|
*/
|
||||||
|
function select_dolusers_forevent($htmlname='userid', $show_empty=0, $exclude='', $disabled=0, $include='', $enableonly='', $force_entity=0, $maxlength=0, $showstatus=0, $morefilter='')
|
||||||
|
{
|
||||||
|
global $conf,$user,$langs;
|
||||||
|
|
||||||
|
$userstatic=new User($this->db);
|
||||||
|
|
||||||
|
// Method with no ajax
|
||||||
|
//$out.='<form method="POST" action="'.$_SERVER["PHP_SELF"].'">';
|
||||||
|
$out.=$this->select_dolusers('', $htmlname, $show_empty, $exclude, $disabled, $include, $enableonly, $force_entity, $maxlength, $showstatus, $morefilter);
|
||||||
|
$out.='<input type="submit" class="button" name="addassignedtouser" value="'.dol_escape_htmltag($langs->trans("Add")).'">';
|
||||||
|
$assignedtouser=array();
|
||||||
|
if (!empty($_SESSION['assignedtouser'])) $assignedtouser=dol_json_decode($_SESSION['assignedtouser'], true);
|
||||||
|
if (count($assignedtouser)) $out.='<br>';
|
||||||
|
foreach($assignedtouser as $key => $value)
|
||||||
|
{
|
||||||
|
$userstatic->fetch($key);
|
||||||
|
$out.=$userstatic->getNomUrl(1);
|
||||||
|
//$out.=' '.($value['mandatory']?$langs->trans("Mandatory"):$langs->trans("Optional"));
|
||||||
|
//$out.=' '.($value['transparency']?$langs->trans("Busy"):$langs->trans("NotBusy"));
|
||||||
|
$out.='<br>';
|
||||||
|
}
|
||||||
|
|
||||||
|
//$out.='</form>';
|
||||||
|
return $out;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return list of products for customer in Ajax if Ajax activated or go to select_produits_list
|
* Return list of products for customer in Ajax if Ajax activated or go to select_produits_list
|
||||||
*
|
*
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user