Better management of status of events
This commit is contained in:
parent
f95acb24ff
commit
3fbba59f69
@ -333,7 +333,7 @@ To update dolibarr debian package when only files into debian has changed:
|
|||||||
To update dolibarr debian package when only files not into debian has changed:
|
To update dolibarr debian package when only files not into debian has changed:
|
||||||
|
|
||||||
* Manually, add patches into debian/patches and update file debian/series, or do the 2 steps with "quilt import filepatch.patch"
|
* Manually, add patches into debian/patches and update file debian/series, or do the 2 steps with "quilt import filepatch.patch"
|
||||||
* You can test patching of serie with "quilt push" (autant de fois que de patch). Avec "quilt pop -a", on revien a l'état du upstream sans les patch.
|
* You can test patching of serie with "quilt push" (autant de fois que de patch). Avec "quilt pop -a", on revient a l'état du upstream sans les patch.
|
||||||
|
|
||||||
Once files has been prepared, it's time to test:
|
Once files has been prepared, it's time to test:
|
||||||
|
|
||||||
@ -350,7 +350,7 @@ Note: Package is built into directory ../build-area
|
|||||||
Note: To compare 2 packages: debdiff package1.dsc package2.dsc
|
Note: To compare 2 packages: debdiff package1.dsc package2.dsc
|
||||||
|
|
||||||
* Test package (see dedicated chapter to test it with debian unstable env)
|
* Test package (see dedicated chapter to test it with debian unstable env)
|
||||||
> cp ../build-area/* /srv/chroot/unstable/tmp
|
> sudo rm /srv/chroot/unstable/tmp/* >/dev/null 2>&1; cp ../build-area/* /srv/chroot/unstable/tmp
|
||||||
See rest of process into dedicated chapter "To test a package" to test it with debian unstable env
|
See rest of process into dedicated chapter "To test a package" to test it with debian unstable env
|
||||||
|
|
||||||
* If package .deb is ok:
|
* If package .deb is ok:
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/* Copyright (C) 2001-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
/* Copyright (C) 2001-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||||
* Copyright (C) 2004-2015 Laurent Destailleur <eldy@users.sourceforge.net>
|
* Copyright (C) 2004-2016 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
* Copyright (C) 2005 Simon TOSSER <simon@kornog-computing.com>
|
* Copyright (C) 2005 Simon TOSSER <simon@kornog-computing.com>
|
||||||
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com>
|
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com>
|
||||||
* Copyright (C) 2010-2013 Juanjo Menent <jmenent@2byte.es>
|
* Copyright (C) 2010-2013 Juanjo Menent <jmenent@2byte.es>
|
||||||
|
|||||||
@ -514,7 +514,7 @@ class ActionComm extends CommonObject
|
|||||||
$sql.= " a.fk_contact, a.percent as percentage,";
|
$sql.= " a.fk_contact, a.percent as percentage,";
|
||||||
$sql.= " a.fk_element, a.elementtype,";
|
$sql.= " a.fk_element, a.elementtype,";
|
||||||
$sql.= " a.priority, a.fulldayevent, a.location, a.punctual, a.transparency,";
|
$sql.= " a.priority, a.fulldayevent, a.location, a.punctual, a.transparency,";
|
||||||
$sql.= " c.id as type_id, c.code as type_code, c.libelle, c.color as type_color,";
|
$sql.= " c.id as type_id, c.code as type_code, c.libelle as type_label, c.color as type_color, c.picto as type_picto,";
|
||||||
$sql.= " s.nom as socname,";
|
$sql.= " s.nom as socname,";
|
||||||
$sql.= " u.firstname, u.lastname as lastname";
|
$sql.= " u.firstname, u.lastname as lastname";
|
||||||
$sql.= " FROM ".MAIN_DB_PREFIX."actioncomm as a ";
|
$sql.= " FROM ".MAIN_DB_PREFIX."actioncomm as a ";
|
||||||
@ -535,17 +535,18 @@ class ActionComm extends CommonObject
|
|||||||
{
|
{
|
||||||
$obj = $this->db->fetch_object($resql);
|
$obj = $this->db->fetch_object($resql);
|
||||||
|
|
||||||
$this->id = $obj->id;
|
$this->id = $obj->id;
|
||||||
$this->ref = $obj->ref;
|
$this->ref = $obj->ref;
|
||||||
$this->ref_ext = $obj->ref_ext;
|
$this->ref_ext = $obj->ref_ext;
|
||||||
|
|
||||||
// Properties of parent table llx_c_actioncomm (will be deprecated in future)
|
// Properties of parent table llx_c_actioncomm
|
||||||
$this->type_id = $obj->type_id;
|
$this->type_id = $obj->type_id;
|
||||||
$this->type_code = $obj->type_code;
|
$this->type_code = $obj->type_code;
|
||||||
$this->type_color = $obj->type_color;
|
$this->type_color = $obj->type_color;
|
||||||
|
$this->type_picto = $obj->type_picto;
|
||||||
$transcode=$langs->trans("Action".$obj->type_code);
|
$transcode=$langs->trans("Action".$obj->type_code);
|
||||||
$type_libelle=($transcode!="Action".$obj->type_code?$transcode:$obj->libelle);
|
$type_label=($transcode!="Action".$obj->type_code?$transcode:$obj->type_label);
|
||||||
$this->type = $type_libelle;
|
$this->type = $type_label;
|
||||||
|
|
||||||
$this->code = $obj->code;
|
$this->code = $obj->code;
|
||||||
$this->label = $obj->label;
|
$this->label = $obj->label;
|
||||||
@ -1018,7 +1019,7 @@ class ActionComm extends CommonObject
|
|||||||
*/
|
*/
|
||||||
function getLibStatut($mode,$hidenastatus=0)
|
function getLibStatut($mode,$hidenastatus=0)
|
||||||
{
|
{
|
||||||
return $this->LibStatut($this->percentage,$mode,$hidenastatus);
|
return $this->LibStatut($this->percentage,$mode,$hidenastatus,$this->datep);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1027,9 +1028,10 @@ class ActionComm extends CommonObject
|
|||||||
* @param int $percent Percent
|
* @param int $percent Percent
|
||||||
* @param int $mode 0=Long label, 1=Short label, 2=Picto+Short label, 3=Picto, 4=Picto+Short label, 5=Short label+Picto, 6=Picto+Long label, 7=Very short label+Picto
|
* @param int $mode 0=Long label, 1=Short label, 2=Picto+Short label, 3=Picto, 4=Picto+Short label, 5=Short label+Picto, 6=Picto+Long label, 7=Very short label+Picto
|
||||||
* @param int $hidenastatus 1=Show nothing if status is "Not applicable"
|
* @param int $hidenastatus 1=Show nothing if status is "Not applicable"
|
||||||
|
* @param int $datestart Date start of event
|
||||||
* @return string Label
|
* @return string Label
|
||||||
*/
|
*/
|
||||||
function LibStatut($percent,$mode,$hidenastatus=0)
|
function LibStatut($percent,$mode,$hidenastatus=0,$datestart='')
|
||||||
{
|
{
|
||||||
global $langs;
|
global $langs;
|
||||||
|
|
||||||
|
|||||||
@ -35,9 +35,11 @@ class CActionComm
|
|||||||
|
|
||||||
var $code;
|
var $code;
|
||||||
var $type;
|
var $type;
|
||||||
var $libelle;
|
var $libelle; // deprecated
|
||||||
|
var $label;
|
||||||
var $active;
|
var $active;
|
||||||
var $color;
|
var $color;
|
||||||
|
var $picto;
|
||||||
|
|
||||||
var $type_actions=array();
|
var $type_actions=array();
|
||||||
|
|
||||||
@ -60,7 +62,7 @@ class CActionComm
|
|||||||
*/
|
*/
|
||||||
function fetch($id)
|
function fetch($id)
|
||||||
{
|
{
|
||||||
$sql = "SELECT id, code, type, libelle, color, active";
|
$sql = "SELECT id, code, type, libelle as label, color, active, picto";
|
||||||
$sql.= " FROM ".MAIN_DB_PREFIX."c_actioncomm";
|
$sql.= " FROM ".MAIN_DB_PREFIX."c_actioncomm";
|
||||||
if (is_numeric($id)) $sql.= " WHERE id=".$id;
|
if (is_numeric($id)) $sql.= " WHERE id=".$id;
|
||||||
else $sql.= " WHERE code='".$id."'";
|
else $sql.= " WHERE code='".$id."'";
|
||||||
@ -76,7 +78,8 @@ class CActionComm
|
|||||||
$this->id = $obj->id;
|
$this->id = $obj->id;
|
||||||
$this->code = $obj->code;
|
$this->code = $obj->code;
|
||||||
$this->type = $obj->type;
|
$this->type = $obj->type;
|
||||||
$this->libelle = $obj->libelle;
|
$this->libelle = $obj->label; // deprecated
|
||||||
|
$this->label = $obj->label;
|
||||||
$this->active = $obj->active;
|
$this->active = $obj->active;
|
||||||
$this->color = $obj->color;
|
$this->color = $obj->color;
|
||||||
|
|
||||||
@ -114,7 +117,7 @@ class CActionComm
|
|||||||
$repid = array();
|
$repid = array();
|
||||||
$repcode = array();
|
$repcode = array();
|
||||||
|
|
||||||
$sql = "SELECT id, code, libelle, module, type, color";
|
$sql = "SELECT id, code, libelle as label, module, type, color, picto";
|
||||||
$sql.= " FROM ".MAIN_DB_PREFIX."c_actioncomm";
|
$sql.= " FROM ".MAIN_DB_PREFIX."c_actioncomm";
|
||||||
$sql.= " WHERE 1=1";
|
$sql.= " WHERE 1=1";
|
||||||
if ($active != '') $sql.=" AND active=".$active;
|
if ($active != '') $sql.=" AND active=".$active;
|
||||||
@ -155,8 +158,8 @@ class CActionComm
|
|||||||
if ($onlyautoornot && $code == 'AC_OTH') $code='AC_MANUAL';
|
if ($onlyautoornot && $code == 'AC_OTH') $code='AC_MANUAL';
|
||||||
if ($onlyautoornot && $code == 'AC_OTH_AUTO') $code='AC_AUTO';
|
if ($onlyautoornot && $code == 'AC_OTH_AUTO') $code='AC_AUTO';
|
||||||
$transcode=$langs->trans("Action".$code);
|
$transcode=$langs->trans("Action".$code);
|
||||||
$repid[$obj->id] = ($transcode!="Action".$code?$transcode:$langs->trans($obj->libelle));
|
$repid[$obj->id] = ($transcode!="Action".$code?$transcode:$langs->trans($obj->label));
|
||||||
$repcode[$obj->code] = ($transcode!="Action".$code?$transcode:$langs->trans($obj->libelle));
|
$repcode[$obj->code] = ($transcode!="Action".$code?$transcode:$langs->trans($obj->label));
|
||||||
if ($onlyautoornot && preg_match('/^module/',$obj->type) && $obj->module) $repcode[$obj->code].=' ('.$langs->trans("Module").': '.$obj->module.')';
|
if ($onlyautoornot && preg_match('/^module/',$obj->type) && $obj->module) $repcode[$obj->code].=' ('.$langs->trans("Module").': '.$obj->module.')';
|
||||||
}
|
}
|
||||||
$i++;
|
$i++;
|
||||||
|
|||||||
@ -318,7 +318,8 @@ if ($resql)
|
|||||||
print '<tr class="liste_titre">';
|
print '<tr class="liste_titre">';
|
||||||
print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"a.id",$param,"","",$sortfield,$sortorder);
|
print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"a.id",$param,"","",$sortfield,$sortorder);
|
||||||
print_liste_field_titre($langs->trans("Title"),$_SERVER["PHP_SELF"],"a.label",$param,"","",$sortfield,$sortorder);
|
print_liste_field_titre($langs->trans("Title"),$_SERVER["PHP_SELF"],"a.label",$param,"","",$sortfield,$sortorder);
|
||||||
if (! empty($conf->global->AGENDA_USE_EVENT_TYPE)) print_liste_field_titre($langs->trans("Type"),$_SERVER["PHP_SELF"],"c.libelle",$param,"","",$sortfield,$sortorder);
|
//if (! empty($conf->global->AGENDA_USE_EVENT_TYPE))
|
||||||
|
print_liste_field_titre($langs->trans("Type"),$_SERVER["PHP_SELF"],"c.libelle",$param,"","",$sortfield,$sortorder);
|
||||||
print_liste_field_titre($langs->trans("DateStart"),$_SERVER["PHP_SELF"],"a.datep",$param,'','align="center"',$sortfield,$sortorder);
|
print_liste_field_titre($langs->trans("DateStart"),$_SERVER["PHP_SELF"],"a.datep",$param,'','align="center"',$sortfield,$sortorder);
|
||||||
print_liste_field_titre($langs->trans("DateEnd"),$_SERVER["PHP_SELF"],"a.datep2",$param,'','align="center"',$sortfield,$sortorder);
|
print_liste_field_titre($langs->trans("DateEnd"),$_SERVER["PHP_SELF"],"a.datep2",$param,'','align="center"',$sortfield,$sortorder);
|
||||||
print_liste_field_titre($langs->trans("ThirdParty"),$_SERVER["PHP_SELF"],"s.nom",$param,"","",$sortfield,$sortorder);
|
print_liste_field_titre($langs->trans("ThirdParty"),$_SERVER["PHP_SELF"],"s.nom",$param,"","",$sortfield,$sortorder);
|
||||||
@ -331,11 +332,11 @@ if ($resql)
|
|||||||
print '<tr class="liste_titre">';
|
print '<tr class="liste_titre">';
|
||||||
print '<td class="liste_titre"></td>';
|
print '<td class="liste_titre"></td>';
|
||||||
print '<td class="liste_titre"><input type="text" name="search_title" value="'.$search_title.'"></td>';
|
print '<td class="liste_titre"><input type="text" name="search_title" value="'.$search_title.'"></td>';
|
||||||
if (! empty($conf->global->AGENDA_USE_EVENT_TYPE))
|
//if (! empty($conf->global->AGENDA_USE_EVENT_TYPE))
|
||||||
{
|
//{
|
||||||
print '<td class="liste_titre"></td>';
|
print '<td class="liste_titre"></td>';
|
||||||
//print '<td class="liste_titre"><input type="text" name="search_type" value="'.$search_type.'"></td>';
|
//print '<td class="liste_titre"><input type="text" name="search_type" value="'.$search_type.'"></td>';
|
||||||
}
|
//}
|
||||||
print '<td class="liste_titre" align="center">';
|
print '<td class="liste_titre" align="center">';
|
||||||
print $form->select_date($datestart, 'datestart', 0, 0, 1, '', 1, 0, 1);
|
print $form->select_date($datestart, 'datestart', 0, 0, 1, '', 1, 0, 1);
|
||||||
print '</td>';
|
print '</td>';
|
||||||
@ -380,6 +381,7 @@ if ($resql)
|
|||||||
$actionstatic->ref=$obj->id;
|
$actionstatic->ref=$obj->id;
|
||||||
$actionstatic->type_code=$obj->type_code;
|
$actionstatic->type_code=$obj->type_code;
|
||||||
$actionstatic->type_label=$obj->type_label;
|
$actionstatic->type_label=$obj->type_label;
|
||||||
|
$actionstatic->type_picto=$obj->type_picto;
|
||||||
$actionstatic->label=$obj->label;
|
$actionstatic->label=$obj->label;
|
||||||
|
|
||||||
print "<tr ".$bc[$var].">";
|
print "<tr ".$bc[$var].">";
|
||||||
@ -394,12 +396,22 @@ if ($resql)
|
|||||||
print $actionstatic->label;
|
print $actionstatic->label;
|
||||||
print '</td>';
|
print '</td>';
|
||||||
|
|
||||||
|
// Type
|
||||||
|
print '<td>';
|
||||||
if (! empty($conf->global->AGENDA_USE_EVENT_TYPE))
|
if (! empty($conf->global->AGENDA_USE_EVENT_TYPE))
|
||||||
{
|
{
|
||||||
$labeltype=$obj->type_code;
|
if ($actionstatic->type_picto) print img_picto('', $actionstatic->type_picto);
|
||||||
if (! empty($arraylist[$labeltype])) $labeltype=$arraylist[$labeltype];
|
else {
|
||||||
print '<td>'.dol_trunc($labeltype,28).'</td>';
|
if ($actionstatic->type_code == 'AC_TEL') print img_picto('', 'object_phoning').' ';
|
||||||
|
if ($actionstatic->type_code == 'AC_FAX') print img_picto('', 'object_phoning_fax').' ';
|
||||||
|
if ($actionstatic->type_code == 'AC_EMAIL') print img_picto('', 'object_email').' ';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
$labeltype=$obj->type_code;
|
||||||
|
if (empty($conf->global->AGENDA_USE_EVENT_TYPE) && empty($arraylist[$labeltype])) $labeltype='AC_OTH';
|
||||||
|
if (! empty($arraylist[$labeltype])) $labeltype=$arraylist[$labeltype];
|
||||||
|
print dol_trunc($labeltype,28);
|
||||||
|
print '</td>';
|
||||||
|
|
||||||
// Start date
|
// Start date
|
||||||
print '<td align="center" class="nowrap">';
|
print '<td align="center" class="nowrap">';
|
||||||
@ -455,7 +467,8 @@ if ($resql)
|
|||||||
print '</td>';
|
print '</td>';
|
||||||
|
|
||||||
// Status/Percent
|
// Status/Percent
|
||||||
print '<td align="center" class="nowrap">'.$actionstatic->LibStatut($obj->percent,3).'</td>';
|
$datep=$db->jdate($obj->datep);
|
||||||
|
print '<td align="center" class="nowrap">'.$actionstatic->LibStatut($obj->percent,3,1,$datep).'</td>';
|
||||||
|
|
||||||
print '<td></td>';
|
print '<td></td>';
|
||||||
|
|
||||||
|
|||||||
@ -279,11 +279,13 @@ if ($socid > 0)
|
|||||||
print '<br>';
|
print '<br>';
|
||||||
|
|
||||||
print load_fiche_titre($langs->trans("NewGlobalDiscount"),'','');
|
print load_fiche_titre($langs->trans("NewGlobalDiscount"),'','');
|
||||||
|
|
||||||
|
print '<div class="underbanner clearboth"></div>';
|
||||||
print '<table class="border" width="100%">';
|
print '<table class="border" width="100%">';
|
||||||
print '<tr><td width="38%" class="fieldrequired">'.$langs->trans("AmountHT").'</td>';
|
print '<tr><td class="titlefield fieldrequired">'.$langs->trans("AmountHT").'</td>';
|
||||||
print '<td><input type="text" size="5" name="amount_ht" value="'.$_POST["amount_ht"].'">';
|
print '<td><input type="text" size="5" name="amount_ht" value="'.$_POST["amount_ht"].'">';
|
||||||
print '<span class="hideonsmartphone"> '.$langs->trans("Currency".$conf->currency).'</span></td></tr>';
|
print '<span class="hideonsmartphone"> '.$langs->trans("Currency".$conf->currency).'</span></td></tr>';
|
||||||
print '<tr><td width="38%">'.$langs->trans("VAT").'</td>';
|
print '<tr><td>'.$langs->trans("VAT").'</td>';
|
||||||
print '<td>';
|
print '<td>';
|
||||||
print $form->load_tva('tva_tx',GETPOST('tva_tx'),$mysoc,$object);
|
print $form->load_tva('tva_tx',GETPOST('tva_tx'),$mysoc,$object);
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|||||||
@ -62,7 +62,7 @@ class FormActions
|
|||||||
|
|
||||||
$listofstatus = array(
|
$listofstatus = array(
|
||||||
'-1' => $langs->trans("ActionNotApplicable"),
|
'-1' => $langs->trans("ActionNotApplicable"),
|
||||||
'0' => $langs->trans("ActionRunningNotStarted"),
|
'0' => $langs->trans("ActionsToDoShort"),
|
||||||
'50' => $langs->trans("ActionRunningShort"),
|
'50' => $langs->trans("ActionRunningShort"),
|
||||||
'100' => $langs->trans("ActionDoneShort")
|
'100' => $langs->trans("ActionDoneShort")
|
||||||
);
|
);
|
||||||
@ -100,7 +100,7 @@ class FormActions
|
|||||||
}
|
}
|
||||||
else if (defaultvalue == 0) {
|
else if (defaultvalue == 0) {
|
||||||
percentage.val(0);
|
percentage.val(0);
|
||||||
percentage.prop('disabled', true);
|
percentage.removeAttr('disabled'); /* Not disabled, we want to change it to higher value */
|
||||||
$('.hideifna').show();
|
$('.hideifna').show();
|
||||||
}
|
}
|
||||||
else if (defaultvalue == 100) {
|
else if (defaultvalue == 100) {
|
||||||
|
|||||||
@ -947,7 +947,7 @@ function show_actions_todo($conf,$langs,$db,$filterobj,$objcon='',$noprint=0,$ac
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Show html area with actions done
|
* Show html area with actions (done or not, ignore the name of function)
|
||||||
*
|
*
|
||||||
* @param Conf $conf Object conf
|
* @param Conf $conf Object conf
|
||||||
* @param Translate $langs Object langs
|
* @param Translate $langs Object langs
|
||||||
@ -958,14 +958,18 @@ function show_actions_todo($conf,$langs,$db,$filterobj,$objcon='',$noprint=0,$ac
|
|||||||
* @param string $actioncode Filter on actioncode
|
* @param string $actioncode Filter on actioncode
|
||||||
* @param string $donetodo Filter on event 'done' or 'todo' or ''=nofilter.
|
* @param string $donetodo Filter on event 'done' or 'todo' or ''=nofilter.
|
||||||
* @param array $filters Filter on other fields
|
* @param array $filters Filter on other fields
|
||||||
|
* @param string $sortfield Sort field
|
||||||
|
* @param string $sortorder Sort order
|
||||||
* @return mixed Return html part or void if noprint is 1
|
* @return mixed Return html part or void if noprint is 1
|
||||||
* TODO change function to be able to list event linked to an object.
|
* TODO change function to be able to list event linked to an object.
|
||||||
*/
|
*/
|
||||||
function show_actions_done($conf, $langs, $db, $filterobj, $objcon='', $noprint=0, $actioncode='', $donetodo='done', $filters=array())
|
function show_actions_done($conf, $langs, $db, $filterobj, $objcon='', $noprint=0, $actioncode='', $donetodo='done', $filters=array(), $sortfield='a.datep, a.id', $sortorder='DESC')
|
||||||
{
|
{
|
||||||
global $bc,$user,$conf;
|
global $bc,$user,$conf;
|
||||||
global $form;
|
global $form;
|
||||||
|
|
||||||
|
global $param;
|
||||||
|
|
||||||
// Check parameters
|
// Check parameters
|
||||||
if (! is_object($filterobj)) dol_print_error('','BadParameter');
|
if (! is_object($filterobj)) dol_print_error('','BadParameter');
|
||||||
|
|
||||||
@ -983,7 +987,7 @@ function show_actions_done($conf, $langs, $db, $filterobj, $objcon='', $noprint=
|
|||||||
$sql.= " a.note, a.percent,";
|
$sql.= " a.note, a.percent,";
|
||||||
$sql.= " a.fk_element, a.elementtype,";
|
$sql.= " a.fk_element, a.elementtype,";
|
||||||
$sql.= " a.fk_user_author, a.fk_contact,";
|
$sql.= " a.fk_user_author, a.fk_contact,";
|
||||||
$sql.= " c.code as acode, c.libelle,";
|
$sql.= " c.code as acode, c.libelle as alabel, c.picto as apicto,";
|
||||||
$sql.= " u.login, u.rowid as user_id";
|
$sql.= " u.login, u.rowid as user_id";
|
||||||
if (get_class($filterobj) == 'Societe') $sql.= ", sp.lastname, sp.firstname";
|
if (get_class($filterobj) == 'Societe') $sql.= ", sp.lastname, sp.firstname";
|
||||||
if (get_class($filterobj) == 'Adherent') $sql.= ", m.lastname, m.firstname";
|
if (get_class($filterobj) == 'Adherent') $sql.= ", m.lastname, m.firstname";
|
||||||
@ -1002,7 +1006,7 @@ function show_actions_done($conf, $langs, $db, $filterobj, $objcon='', $noprint=
|
|||||||
if ($donetodo == 'todo') $sql.= " AND ((a.percent >= 0 AND a.percent < 100) OR (a.percent = -1 AND a.datep > '".$db->idate($now)."'))";
|
if ($donetodo == 'todo') $sql.= " AND ((a.percent >= 0 AND a.percent < 100) OR (a.percent = -1 AND a.datep > '".$db->idate($now)."'))";
|
||||||
if ($donetodo == 'done') $sql.= " AND (a.percent = 100 OR (a.percent = -1 AND a.datep <= '".$db->idate($now)."'))";
|
if ($donetodo == 'done') $sql.= " AND (a.percent = 100 OR (a.percent = -1 AND a.datep <= '".$db->idate($now)."'))";
|
||||||
if (is_array($filters) && $filters['search_agenda_label']) $sql.= natural_search('a.label', $filters['search_agenda_label']);
|
if (is_array($filters) && $filters['search_agenda_label']) $sql.= natural_search('a.label', $filters['search_agenda_label']);
|
||||||
$sql.= " ORDER BY a.datep DESC, a.id DESC";
|
$sql.= $db->order($sortfield, $sortorder);
|
||||||
|
|
||||||
dol_syslog("company.lib::show_actions_done", LOG_DEBUG);
|
dol_syslog("company.lib::show_actions_done", LOG_DEBUG);
|
||||||
$resql=$db->query($sql);
|
$resql=$db->query($sql);
|
||||||
@ -1028,15 +1032,18 @@ function show_actions_done($conf, $langs, $db, $filterobj, $objcon='', $noprint=
|
|||||||
'dateend'=>$db->jdate($obj->dp2),
|
'dateend'=>$db->jdate($obj->dp2),
|
||||||
'note'=>$obj->label,
|
'note'=>$obj->label,
|
||||||
'percent'=>$obj->percent,
|
'percent'=>$obj->percent,
|
||||||
'acode'=>$obj->acode,
|
'userid'=>$obj->user_id,
|
||||||
'libelle'=>$obj->libelle,
|
|
||||||
'userid'=>$obj->user_id,
|
|
||||||
'login'=>$obj->login,
|
'login'=>$obj->login,
|
||||||
'contact_id'=>$obj->fk_contact,
|
'contact_id'=>$obj->fk_contact,
|
||||||
'lastname'=>$obj->lastname,
|
'lastname'=>$obj->lastname,
|
||||||
'firstname'=>$obj->firstname,
|
'firstname'=>$obj->firstname,
|
||||||
'fk_element'=>$obj->fk_element,
|
'fk_element'=>$obj->fk_element,
|
||||||
'elementtype'=>$obj->elementtype
|
'elementtype'=>$obj->elementtype,
|
||||||
|
// Type of event
|
||||||
|
'acode'=>$obj->acode,
|
||||||
|
'alabel'=>$obj->alabel,
|
||||||
|
'libelle'=>$obj->alabel, // deprecated
|
||||||
|
'apicto'=>$obj->apicto
|
||||||
);
|
);
|
||||||
|
|
||||||
$numaction++;
|
$numaction++;
|
||||||
@ -1049,11 +1056,11 @@ function show_actions_done($conf, $langs, $db, $filterobj, $objcon='', $noprint=
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Add also event from emailings. FIXME This should be replaced by an automatic event
|
||||||
if (! empty($conf->mailing->enabled) && ! empty($objcon->email))
|
if (! empty($conf->mailing->enabled) && ! empty($objcon->email))
|
||||||
{
|
{
|
||||||
$langs->load("mails");
|
$langs->load("mails");
|
||||||
|
|
||||||
// Add also event from emailings. TODO This should be replaced by an automatic event
|
|
||||||
$sql = "SELECT m.rowid as id, mc.date_envoi as da, m.titre as note, '100' as percentage,";
|
$sql = "SELECT m.rowid as id, mc.date_envoi as da, m.titre as note, '100' as percentage,";
|
||||||
$sql.= " 'AC_EMAILING' as acode,";
|
$sql.= " 'AC_EMAILING' as acode,";
|
||||||
$sql.= " u.rowid as user_id, u.login"; // User that valid action
|
$sql.= " u.rowid as user_id, u.login"; // User that valid action
|
||||||
@ -1104,7 +1111,11 @@ function show_actions_done($conf, $langs, $db, $filterobj, $objcon='', $noprint=
|
|||||||
require_once DOL_DOCUMENT_ROOT.'/comm/propal/class/propal.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/comm/propal/class/propal.class.php';
|
||||||
require_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php';
|
||||||
require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php';
|
||||||
$actionstatic=new ActionComm($db);
|
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formactions.class.php';
|
||||||
|
|
||||||
|
$formactions=new FormActions($db);
|
||||||
|
|
||||||
|
$actionstatic=new ActionComm($db);
|
||||||
$userstatic=new User($db);
|
$userstatic=new User($db);
|
||||||
$contactstatic = new Contact($db);
|
$contactstatic = new Contact($db);
|
||||||
|
|
||||||
@ -1128,14 +1139,14 @@ function show_actions_done($conf, $langs, $db, $filterobj, $objcon='', $noprint=
|
|||||||
if (get_class($filterobj) == 'Societe') $out.='</a>';
|
if (get_class($filterobj) == 'Societe') $out.='</a>';
|
||||||
$out.='</td>';
|
$out.='</td>';
|
||||||
}
|
}
|
||||||
$out.='<td>'.$langs->trans("Ref").'</td>';
|
$out.=getTitleFieldOfList($langs->trans("Ref"), 0, $_SERVER["PHP_SELF"], 'a.id', '', $param, '', $sortfield, $sortorder);
|
||||||
$out.='<td>'.$langs->trans("Label").'</td>';
|
$out.='<td>'.$langs->trans("Label").'</td>';
|
||||||
$out.='<td>'.$langs->trans("Date").'</td>';
|
$out.=getTitleFieldOfList($langs->trans("Date"), 0, $_SERVER["PHP_SELF"], 'a.datep, a.id', '', $param, '', $sortfield, $sortorder);
|
||||||
$out.='<td>'.$langs->trans("Type").'</td>';
|
$out.='<td>'.$langs->trans("Type").'</td>';
|
||||||
$out.='<td></td>';
|
$out.='<td></td>';
|
||||||
$out.='<td></td>';
|
$out.='<td></td>';
|
||||||
$out.='<td>'.$langs->trans("By").'</td>';
|
$out.='<td>'.$langs->trans("Owner").'</td>';
|
||||||
$out.='<td align="center">'.$langs->trans("Status").'</td>';
|
$out.=getTitleFieldOfList($langs->trans("Status"), 0, $_SERVER["PHP_SELF"], 'a.percent', '', $param, 'align="center"', $sortfield, $sortorder);
|
||||||
$out.='<td align="center"></td>';
|
$out.='<td align="center"></td>';
|
||||||
$out.='</tr>';
|
$out.='</tr>';
|
||||||
|
|
||||||
@ -1149,11 +1160,7 @@ function show_actions_done($conf, $langs, $db, $filterobj, $objcon='', $noprint=
|
|||||||
$out.='<td><input type="text" name="search_agenda_label" value="'.$filters['search_agenda_label'].'"></td>';
|
$out.='<td><input type="text" name="search_agenda_label" value="'.$filters['search_agenda_label'].'"></td>';
|
||||||
$out.='<td></td>';
|
$out.='<td></td>';
|
||||||
$out.='<td>';
|
$out.='<td>';
|
||||||
if (!empty($conf->global->AGENDA_USE_EVENT_TYPE)) {
|
$out.=$formactions->select_type_actions($actioncode, "actioncode", '', empty($conf->global->AGENDA_USE_EVENT_TYPE)?1:0, 0, 0, 1);
|
||||||
include_once DOL_DOCUMENT_ROOT . '/core/class/html.formactions.class.php';
|
|
||||||
$formactions=new FormActions($db);
|
|
||||||
$out.=$formactions->select_type_actions($actioncode, "actioncode", '', 0, 0, 0, 1);
|
|
||||||
}
|
|
||||||
$out.='</td>';
|
$out.='</td>';
|
||||||
$out.='<td></td>';
|
$out.='<td></td>';
|
||||||
$out.='<td></td>';
|
$out.='<td></td>';
|
||||||
@ -1169,11 +1176,11 @@ function show_actions_done($conf, $langs, $db, $filterobj, $objcon='', $noprint=
|
|||||||
foreach ($histo as $key=>$value)
|
foreach ($histo as $key=>$value)
|
||||||
{
|
{
|
||||||
$var=!$var;
|
$var=!$var;
|
||||||
$actionstatic->fetch($histo[$key]['id']);
|
$actionstatic->fetch($histo[$key]['id']); // TODO Do we need this, we already have a lot of data of line into $histo
|
||||||
|
|
||||||
$out.="<tr ".$bc[$var].">";
|
$out.="<tr ".$bc[$var].">";
|
||||||
|
|
||||||
// done or todo
|
// Done or todo
|
||||||
if ($donetodo)
|
if ($donetodo)
|
||||||
{
|
{
|
||||||
$out.='<td class="nowrap">';
|
$out.='<td class="nowrap">';
|
||||||
@ -1191,7 +1198,7 @@ function show_actions_done($conf, $langs, $db, $filterobj, $objcon='', $noprint=
|
|||||||
{
|
{
|
||||||
$actionstatic->type_code=$histo[$key]['acode'];
|
$actionstatic->type_code=$histo[$key]['acode'];
|
||||||
$transcode=$langs->trans("Action".$histo[$key]['acode']);
|
$transcode=$langs->trans("Action".$histo[$key]['acode']);
|
||||||
$libelle=($transcode!="Action".$histo[$key]['acode']?$transcode:$histo[$key]['libelle']);
|
$libelle=($transcode!="Action".$histo[$key]['acode']?$transcode:$histo[$key]['alabel']);
|
||||||
//$actionstatic->libelle=$libelle;
|
//$actionstatic->libelle=$libelle;
|
||||||
$libelle=$histo[$key]['note'];
|
$libelle=$histo[$key]['note'];
|
||||||
$actionstatic->id=$histo[$key]['id'];
|
$actionstatic->id=$histo[$key]['id'];
|
||||||
@ -1218,7 +1225,17 @@ function show_actions_done($conf, $langs, $db, $filterobj, $objcon='', $noprint=
|
|||||||
}
|
}
|
||||||
$out.="</td>\n";
|
$out.="</td>\n";
|
||||||
|
|
||||||
|
// Type
|
||||||
$out.='<td>';
|
$out.='<td>';
|
||||||
|
if (! empty($conf->global->AGENDA_USE_EVENT_TYPE))
|
||||||
|
{
|
||||||
|
if ($histo[$key]['apicto']) $out.=img_picto('', $histo[$key]['apicto']);
|
||||||
|
else {
|
||||||
|
if ($histo[$key]['acode'] == 'AC_TEL') $out.=img_picto('', 'object_phoning').' ';
|
||||||
|
if ($histo[$key]['acode'] == 'AC_FAX') $out.=img_picto('', 'object_phoning_fax').' ';
|
||||||
|
if ($histo[$key]['acode'] == 'AC_EMAIL') $out.=img_picto('', 'object_email').' ';
|
||||||
|
}
|
||||||
|
}
|
||||||
$out.=$actionstatic->type;
|
$out.=$actionstatic->type;
|
||||||
$out.='</td>';
|
$out.='</td>';
|
||||||
|
|
||||||
@ -1292,7 +1309,7 @@ function show_actions_done($conf, $langs, $db, $filterobj, $objcon='', $noprint=
|
|||||||
$out.='</td>';
|
$out.='</td>';
|
||||||
|
|
||||||
// Statut
|
// Statut
|
||||||
$out.='<td class="nowrap" align="center">'.$actionstatic->LibStatut($histo[$key]['percent'],3).'</td>';
|
$out.='<td class="nowrap" align="center">'.$actionstatic->LibStatut($histo[$key]['percent'],3,1,$histo[$key]['datestart']).'</td>';
|
||||||
|
|
||||||
// Actions
|
// Actions
|
||||||
$out.='<td></td>';
|
$out.='<td></td>';
|
||||||
|
|||||||
@ -29,6 +29,7 @@
|
|||||||
ALTER TABLE llx_product_lot MODIFY COLUMN entity integer DEFAULT 1;
|
ALTER TABLE llx_product_lot MODIFY COLUMN entity integer DEFAULT 1;
|
||||||
UPDATE llx_product_lot SET entity = 1 WHERE entity IS NULL;
|
UPDATE llx_product_lot SET entity = 1 WHERE entity IS NULL;
|
||||||
|
|
||||||
|
ALTER TABLE llx_c_actioncomm ADD COLUMN picto varchar(48);
|
||||||
|
|
||||||
ALTER TABLE llx_facturedet ADD INDEX idx_facturedet_fk_code_ventilation (fk_code_ventilation);
|
ALTER TABLE llx_facturedet ADD INDEX idx_facturedet_fk_code_ventilation (fk_code_ventilation);
|
||||||
ALTER TABLE llx_facture_fourn_det ADD INDEX idx_facture_fourn_det_fk_code_ventilation (fk_code_ventilation);
|
ALTER TABLE llx_facture_fourn_det ADD INDEX idx_facture_fourn_det_fk_code_ventilation (fk_code_ventilation);
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
-- ========================================================================
|
-- ========================================================================
|
||||||
-- Copyright (C) 2001-2002,2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
-- Copyright (C) 2001-2002,2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||||
-- Copyright (C) 2004-2010 Laurent Destailleur <eldy@users.sourceforge.net>
|
-- Copyright (C) 2004-2016 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
-- Copyright (C) 2012 Florian Henry <florian.henry@open-concept.pro>
|
-- Copyright (C) 2012 Florian Henry <florian.henry@open-concept.pro>
|
||||||
--
|
--
|
||||||
-- This program is free software; you can redistribute it and/or modify
|
-- 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
|
-- it under the terms of the GNU General Public License as published by
|
||||||
@ -26,7 +26,8 @@ create table llx_c_actioncomm
|
|||||||
libelle varchar(48) NOT NULL,
|
libelle varchar(48) NOT NULL,
|
||||||
module varchar(16) DEFAULT NULL,
|
module varchar(16) DEFAULT NULL,
|
||||||
active tinyint DEFAULT 1 NOT NULL,
|
active tinyint DEFAULT 1 NOT NULL,
|
||||||
todo tinyint,
|
todo tinyint, -- deprecated
|
||||||
color varchar(9),
|
color varchar(9),
|
||||||
|
picto varchar(48),
|
||||||
position integer NOT NULL DEFAULT 0
|
position integer NOT NULL DEFAULT 0
|
||||||
)ENGINE=innodb;
|
)ENGINE=innodb;
|
||||||
|
|||||||
@ -379,7 +379,7 @@ ActionsToDoShort=To do
|
|||||||
ActionsDoneShort=Done
|
ActionsDoneShort=Done
|
||||||
ActionNotApplicable=Not applicable
|
ActionNotApplicable=Not applicable
|
||||||
ActionRunningNotStarted=To start
|
ActionRunningNotStarted=To start
|
||||||
ActionRunningShort=Started
|
ActionRunningShort=In progress
|
||||||
ActionDoneShort=Finished
|
ActionDoneShort=Finished
|
||||||
ActionUncomplete=Uncomplete
|
ActionUncomplete=Uncomplete
|
||||||
CompanyFoundation=Company/Foundation
|
CompanyFoundation=Company/Foundation
|
||||||
|
|||||||
@ -50,6 +50,17 @@ $socid = GETPOST('socid','int');
|
|||||||
if ($user->societe_id) $socid=$user->societe_id;
|
if ($user->societe_id) $socid=$user->societe_id;
|
||||||
$result = restrictedArea($user, 'societe', $socid, '&societe');
|
$result = restrictedArea($user, 'societe', $socid, '&societe');
|
||||||
|
|
||||||
|
$limit = GETPOST("limit")?GETPOST("limit","int"):$conf->liste_limit;
|
||||||
|
$sortfield = GETPOST("sortfield",'alpha');
|
||||||
|
$sortorder = GETPOST("sortorder",'alpha');
|
||||||
|
$page = GETPOST("page",'int');
|
||||||
|
if ($page == -1) { $page = 0; }
|
||||||
|
$offset = $limit * $page;
|
||||||
|
$pageprev = $page - 1;
|
||||||
|
$pagenext = $page + 1;
|
||||||
|
if (! $sortfield) $sortfield='a.datep, a.id';
|
||||||
|
if (! $sortorder) $sortorder='DESC';
|
||||||
|
|
||||||
// Initialize technical object to manage hooks of thirdparties. Note that conf->hooks_modules contains array array
|
// Initialize technical object to manage hooks of thirdparties. Note that conf->hooks_modules contains array array
|
||||||
$hookmanager->initHooks(array('agendathirdparty'));
|
$hookmanager->initHooks(array('agendathirdparty'));
|
||||||
|
|
||||||
@ -106,37 +117,7 @@ if ($socid)
|
|||||||
print '<div class="fichecenter">';
|
print '<div class="fichecenter">';
|
||||||
|
|
||||||
print '<div class="underbanner clearboth"></div>';
|
print '<div class="underbanner clearboth"></div>';
|
||||||
print '<table class="border centpercent">';
|
|
||||||
|
|
||||||
if (! empty($conf->global->SOCIETE_USEPREFIX)) // Old not used prefix field
|
|
||||||
{
|
|
||||||
print '<tr><td class="titlefield">'.$langs->trans('Prefix').'</td><td colspan="3">'.$object->prefix_comm.'</td></tr>';
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($object->client)
|
|
||||||
{
|
|
||||||
print '<tr><td class="titlefield">';
|
|
||||||
print $langs->trans('CustomerCode').'</td><td colspan="3">';
|
|
||||||
print $object->code_client;
|
|
||||||
if ($object->check_codeclient() <> 0) print ' <font class="error">('.$langs->trans("WrongCustomerCode").')</font>';
|
|
||||||
print '</td></tr>';
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($object->fournisseur)
|
|
||||||
{
|
|
||||||
print '<tr><td class="titlefield">';
|
|
||||||
print $langs->trans('SupplierCode').'</td><td colspan="3">';
|
|
||||||
print $object->code_fournisseur;
|
|
||||||
if ($object->check_codefournisseur() <> 0) print ' <font class="error">('.$langs->trans("WrongSupplierCode").')</font>';
|
|
||||||
print '</td></tr>';
|
|
||||||
}
|
|
||||||
|
|
||||||
print '</table>';
|
|
||||||
|
|
||||||
//print '<br>';
|
|
||||||
|
|
||||||
//print '<div class="underbanner clearboth"></div>';
|
|
||||||
|
|
||||||
$object->info($socid);
|
$object->info($socid);
|
||||||
print dol_print_object_info($object, 1);
|
print dol_print_object_info($object, 1);
|
||||||
|
|
||||||
@ -182,6 +163,11 @@ if ($socid)
|
|||||||
|
|
||||||
if (! empty($conf->agenda->enabled) && (!empty($user->rights->agenda->myactions->read) || !empty($user->rights->agenda->allactions->read) ))
|
if (! empty($conf->agenda->enabled) && (!empty($user->rights->agenda->myactions->read) || !empty($user->rights->agenda->allactions->read) ))
|
||||||
{
|
{
|
||||||
|
$param='&socid='.$socid;
|
||||||
|
if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.$contextpage;
|
||||||
|
if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.$limit;
|
||||||
|
|
||||||
|
|
||||||
print load_fiche_titre($langs->trans("ActionsOnCompany"),'','');
|
print load_fiche_titre($langs->trans("ActionsOnCompany"),'','');
|
||||||
|
|
||||||
// List of todo actions
|
// List of todo actions
|
||||||
@ -193,7 +179,9 @@ if ($socid)
|
|||||||
// List of all actions
|
// List of all actions
|
||||||
$filters=array();
|
$filters=array();
|
||||||
$filters['search_agenda_label']=$search_agenda_label;
|
$filters['search_agenda_label']=$search_agenda_label;
|
||||||
show_actions_done($conf,$langs,$db,$object,null,0,$actioncode, '', $filters);
|
|
||||||
|
// TODO Replace this with smae code then into listactions.php
|
||||||
|
show_actions_done($conf,$langs,$db,$object,null,0,$actioncode, '', $filters, $sortfield, $sortorder);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -334,6 +334,7 @@ input.removedfile {
|
|||||||
textarea:disabled {
|
textarea:disabled {
|
||||||
background:#ddd;
|
background:#ddd;
|
||||||
}
|
}
|
||||||
|
input[type=file ] { background-color: transparent; border-top: none; border-left: none; border-right: none; box-shadow: none; }
|
||||||
input[type=checkbox] { background-color: transparent; border: none; box-shadow: none; }
|
input[type=checkbox] { background-color: transparent; border: none; box-shadow: none; }
|
||||||
input[type=radio] { background-color: transparent; border: none; box-shadow: none; }
|
input[type=radio] { background-color: transparent; border: none; box-shadow: none; }
|
||||||
input[type=image] { background-color: transparent; border: none; box-shadow: none; }
|
input[type=image] { background-color: transparent; border: none; box-shadow: none; }
|
||||||
@ -343,8 +344,9 @@ input:-webkit-autofill {
|
|||||||
-webkit-box-shadow: 0 0 0 50px <?php echo empty($dol_use_jmobile)?'#FBFFEA':'#FFFFFF' ?> inset;
|
-webkit-box-shadow: 0 0 0 50px <?php echo empty($dol_use_jmobile)?'#FBFFEA':'#FFFFFF' ?> inset;
|
||||||
}
|
}
|
||||||
::-webkit-input-placeholder { color:#ccc; }
|
::-webkit-input-placeholder { color:#ccc; }
|
||||||
::-moz-placeholder { color:#ccc; } /* firefox 19+ */
|
:-moz-placeholder { color:#bbb; } /* firefox 18- */
|
||||||
:-ms-input-placeholder { color:#ccc; } /* ie */
|
::-moz-placeholder { color:#bbb; } /* firefox 19+ */
|
||||||
|
:-ms-input-placeholder { color:#ccc; } /* ie */
|
||||||
input:-moz-placeholder { color:#ccc; }
|
input:-moz-placeholder { color:#ccc; }
|
||||||
|
|
||||||
<?php if (! empty($dol_use_jmobile)) { ?>
|
<?php if (! empty($dol_use_jmobile)) { ?>
|
||||||
|
|||||||
@ -341,8 +341,9 @@ input:-webkit-autofill {
|
|||||||
-webkit-box-shadow: 0 0 0 50px <?php echo empty($dol_use_jmobile)?'#FBFFEA':'#FFFFFF' ?> inset;
|
-webkit-box-shadow: 0 0 0 50px <?php echo empty($dol_use_jmobile)?'#FBFFEA':'#FFFFFF' ?> inset;
|
||||||
}
|
}
|
||||||
::-webkit-input-placeholder { color:#ccc; }
|
::-webkit-input-placeholder { color:#ccc; }
|
||||||
::-moz-placeholder { color:#ccc; } /* firefox 19+ */
|
:-moz-placeholder { color:#bbb; } /* firefox 18- */
|
||||||
:-ms-input-placeholder { color:#ccc; } /* ie */
|
::-moz-placeholder { color:#bbb; } /* firefox 19+ */
|
||||||
|
:-ms-input-placeholder { color:#ccc; } /* ie */
|
||||||
input:-moz-placeholder { color:#ccc; }
|
input:-moz-placeholder { color:#ccc; }
|
||||||
|
|
||||||
<?php if (! empty($dol_use_jmobile)) { ?>
|
<?php if (! empty($dol_use_jmobile)) { ?>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user