diff --git a/htdocs/accountancy/bookkeeping/balance.php b/htdocs/accountancy/bookkeeping/balance.php index 02174ea2524..86ec1162832 100644 --- a/htdocs/accountancy/bookkeeping/balance.php +++ b/htdocs/accountancy/bookkeeping/balance.php @@ -38,7 +38,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php'; // Load translation files required by the page $langs->loadLangs(array("accountancy")); -$page = GETPOST("page"); +$page = GETPOST("page", 'int'); $sortorder = GETPOST("sortorder", 'alpha'); $sortfield = GETPOST("sortfield", 'alpha'); $action = GETPOST('action', 'aZ09'); diff --git a/htdocs/accountancy/bookkeeping/list.php b/htdocs/accountancy/bookkeeping/list.php index d898be2b208..0db4c7b6c24 100644 --- a/htdocs/accountancy/bookkeeping/list.php +++ b/htdocs/accountancy/bookkeeping/list.php @@ -575,8 +575,8 @@ if ($action == 'delmouv') { } if ($action == 'delbookkeepingyear') { $form_question = array(); - $delyear = GETPOST('delyear'); - $deljournal = GETPOST('deljournal'); + $delyear = GETPOST('delyear', 'int'); + $deljournal = GETPOST('deljournal', 'alpha'); if (empty($delyear)) { $delyear = dol_print_date(dol_now(), '%Y'); diff --git a/htdocs/admin/emailcollector_card.php b/htdocs/admin/emailcollector_card.php index 43d0731c434..f6146cb409b 100644 --- a/htdocs/admin/emailcollector_card.php +++ b/htdocs/admin/emailcollector_card.php @@ -418,10 +418,25 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea if (function_exists('imap_open')) { $connectstringserver = $object->getConnectStringIMAP(); - $connectstringsource = $connectstringserver.imap_utf7_encode($sourcedir); - $connectstringtarget = $connectstringserver.imap_utf7_encode($targetdir); - $connection = imap_open($connectstringsource, $object->login, $object->password); + try { + if ($sourcedir) { + //$connectstringsource = $connectstringserver.imap_utf7_encode($sourcedir); + $connectstringsource = $connectstringserver.$object->getEncodedUtf7($sourcedir); + } + if ($targetdir) { + //$connectstringtarget = $connectstringserver.imap_utf7_encode($targetdir); + $connectstringtarget = $connectstringserver.$object->getEncodedUtf7($targetdir); + } + + $connection = imap_open($connectstringsource, $object->login, $object->password); + } + catch(Exception $e) + { + print $e->getMessage(); + } + + $morehtml .= $form->textwithpicto('', 'connect string '.$connectstringserver); } else { @@ -509,11 +524,11 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea else { jQuery("#rulevalue").prop("disabled", false); } jQuery("#rulevalue").attr("placeholder", (jQuery("#filtertype option:selected").attr("data-placeholder"))); '; - $noparam = array(); + /*$noparam = array(); foreach ($arrayoftypes as $key => $value) { if ($value['noparam']) $noparam[] = $key; - } + }*/ print '})'; print ''."\n"; diff --git a/htdocs/admin/mails.php b/htdocs/admin/mails.php index c52f899a03f..546a322fcdf 100644 --- a/htdocs/admin/mails.php +++ b/htdocs/admin/mails.php @@ -315,7 +315,7 @@ if ($action == 'edit') // SuperAdministrator access only if (empty($conf->multicompany->enabled) || ($user->admin && ! $user->entity)) { - print ''; + print ''; print ''; print ''.$langs->trans("SeeLocalSendMailSetup").''; } @@ -388,7 +388,7 @@ if ($action == 'edit') // SuperAdministrator access only if (empty($conf->multicompany->enabled) || ($user->admin && !$user->entity)) { - print ''; + print ''; } else { diff --git a/htdocs/comm/mailing/list.php b/htdocs/comm/mailing/list.php index b38a796d3c7..cbd0c244bb3 100644 --- a/htdocs/comm/mailing/list.php +++ b/htdocs/comm/mailing/list.php @@ -271,6 +271,12 @@ if ($result) print "\n"; $i++; } + if (empty($num)) { + $colspan = 6; + if (!$filteremail) $colspan++; + print ''.$langs->trans("NoRecordFound").''; + } + print ''; print ''; print ''; diff --git a/htdocs/commande/list.php b/htdocs/commande/list.php index 1de1e64e0c7..9e34c745fab 100644 --- a/htdocs/commande/list.php +++ b/htdocs/commande/list.php @@ -80,7 +80,7 @@ $search_total_ttc = GETPOST('search_total_ttc', 'alpha'); $search_categ_cus = trim(GETPOST("search_categ_cus", 'int')); $optioncss = GETPOST('optioncss', 'alpha'); $billed = GETPOST('billed', 'int'); -$viewstatut = GETPOST('viewstatut'); +$viewstatut = GETPOST('viewstatut', 'int'); $search_btn = GETPOST('button_search', 'alpha'); $search_remove_btn = GETPOST('button_removefilter', 'alpha'); $search_project_ref = GETPOST('search_project_ref', 'alpha'); diff --git a/htdocs/compta/bank/bankentries_list.php b/htdocs/compta/bank/bankentries_list.php index bfbafc93bd5..eeb662c6168 100644 --- a/htdocs/compta/bank/bankentries_list.php +++ b/htdocs/compta/bank/bankentries_list.php @@ -698,10 +698,7 @@ if ($resql) print ' '; print ''.$langs->trans("Type").''; print ''.$langs->trans("Numero").''; - //if (! $search_account > 0) - //{ - print ''.$langs->trans("BankAccount").''; - //} + print ''.$langs->trans("BankAccount").''; print ''.$langs->trans("Debit").''; print ''.$langs->trans("Credit").''; /*if (! empty($conf->accounting->enabled)) @@ -824,19 +821,21 @@ if ($resql) $moreforfilter = ''; $moreforfilter .= '
'; - $moreforfilter .= $langs->trans('DateOperationShort').' : '; - $moreforfilter .= '
'.$langs->trans('From').' '; + $moreforfilter .= $langs->trans('DateOperationShort').' :'; + $moreforfilter .= ($conf->browser->layout == 'phone' ? '
' : ' '); + $moreforfilter .= '
'.$langs->trans('From').' '; $moreforfilter .= $form->selectDate($search_dt_start, 'search_start_dt', 0, 0, 1, "search_form", 1, 0).'
'; //$moreforfilter .= ' - '; - $moreforfilter .= '
'.$langs->trans('to').' '.$form->selectDate($search_dt_end, 'search_end_dt', 0, 0, 1, "search_form", 1, 0).'
'; + $moreforfilter .= '
'.$langs->trans('to').' '.$form->selectDate($search_dt_end, 'search_end_dt', 0, 0, 1, "search_form", 1, 0).'
'; $moreforfilter .= '
'; $moreforfilter .= '
'; $moreforfilter .= $langs->trans('DateValueShort').' : '; - $moreforfilter .= '
'.$langs->trans('From').' '; + $moreforfilter .= ($conf->browser->layout == 'phone' ? '
' : ' '); + $moreforfilter .= '
'.$langs->trans('From').' '; $moreforfilter .= $form->selectDate($search_dv_start, 'search_start_dv', 0, 0, 1, "search_form", 1, 0).'
'; //$moreforfilter .= ' - '; - $moreforfilter .= '
'.$langs->trans('to').' '.$form->selectDate($search_dv_end, 'search_end_dv', 0, 0, 1, "search_form", 1, 0).'
'; + $moreforfilter .= '
'.$langs->trans('to').' '.$form->selectDate($search_dv_end, 'search_end_dv', 0, 0, 1, "search_form", 1, 0).'
'; $moreforfilter .= '
'; if (!empty($conf->categorie->enabled)) diff --git a/htdocs/compta/bank/various_payment/card.php b/htdocs/compta/bank/various_payment/card.php index ab93b2f0f97..72226f18cd6 100644 --- a/htdocs/compta/bank/various_payment/card.php +++ b/htdocs/compta/bank/various_payment/card.php @@ -283,7 +283,7 @@ if ($action == 'create') // Label print ''; print $form->editfieldkey('Label', 'label', '', $object, 0, 'string', '', 1).''; - print ''; + print ''; print ''; // Sens @@ -296,7 +296,7 @@ if ($action == 'create') // Amount print ''; print $form->editfieldkey('Amount', 'amount', '', $object, 0, 'string', '', 1).''; - print ''; + print ''; print ''; // Bank @@ -321,7 +321,7 @@ if ($action == 'create') print ''; - print ''."\n"; + print ''."\n"; } // Project @@ -358,13 +358,13 @@ if ($action == 'create') // TODO Remove the fieldrequired and allow instead to edit a various payment to enter accounting code print ''.$langs->trans("AccountAccounting").''; print ''; - print $formaccounting->select_account($accountancy_code, 'accountancy_code', 1, null, 1, 1, ''); + print $formaccounting->select_account($accountancy_code, 'accountancy_code', 1, null, 1, 1); print ''; } else // For external software { print ''.$langs->trans("AccountAccounting").''; - print ''; + print ''; print ''; } @@ -379,14 +379,14 @@ if ($action == 'create') } else { - print ''; + print ''; } print ''; } else // For external software { print ''.$langs->trans("SubledgerAccount").''; - print ''; + print ''; print ''; } diff --git a/htdocs/contact/card.php b/htdocs/contact/card.php index 1c2053df794..ea6ef4d0530 100644 --- a/htdocs/contact/card.php +++ b/htdocs/contact/card.php @@ -622,9 +622,14 @@ else // Name print ''; - print 'lastname).'" autofocus="autofocus">'; - print ''; - print 'firstname).'">'; + print 'lastname).'" autofocus="autofocus">'; + print ''; + + print ''; + print ''; + print 'firstname).'">'; + print ''; // Company if (empty($conf->global->SOCIETE_DISABLE_CONTACTS)) @@ -715,19 +720,24 @@ else // Phone / Fax print ''.img_picto('', 'object_phoning').' '.$form->editfieldkey('PhonePro', 'phone_pro', '', $object, 0).''; print ''; + if ($conf->browser->layout == 'phone') print ''; print ''.img_picto('', 'object_phoning').' '.$form->editfieldkey('PhonePerso', 'phone_perso', '', $object, 0).''; print ''; print ''.img_picto('', 'object_phoning_mobile').' '.$form->editfieldkey('PhoneMobile', 'phone_mobile', '', $object, 0).''; print ''; + if ($conf->browser->layout == 'phone') print ''; print ''.img_picto('', 'object_phoning_fax').' '.$form->editfieldkey('Fax', 'fax', '', $object, 0).''; - print ''; + print ''; + print ''; if (($objsoc->typent_code == 'TE_PRIVATE' || !empty($conf->global->CONTACT_USE_COMPANY_ADDRESS)) && dol_strlen(trim($object->email)) == 0) $object->email = $objsoc->email; // Predefined with third party // Email print ''.img_picto('', 'object_email').' '.$form->editfieldkey('EMail', 'email', '', $object, 0, 'string', '').''; print ''; + print ''; + if (!empty($conf->mailing->enabled)) { $noemail = ''; @@ -743,12 +753,10 @@ else } } + print ''; print ''; print ''.$form->selectyesno('no_email', (GETPOSTISSET("no_email") ?GETPOST("no_email", 'alpha') : $noemail), 1).''; - } - else - { - print ' '; + print ''; } print ''; @@ -842,7 +850,7 @@ else print ''; // Date To Birth - print ''; - print ''; + print ''; } else { - print ''; + print ''; } + print ''; print ''; print "
'; + print '
'; $form = new Form($db); if ($object->birthday) { @@ -854,15 +862,16 @@ else } print ': '; + print ': '; if ($object->birthday_alert) { - print '
"; diff --git a/htdocs/core/class/CMailFile.class.php b/htdocs/core/class/CMailFile.class.php index 335c1b50111..eb15710eb7c 100644 --- a/htdocs/core/class/CMailFile.class.php +++ b/htdocs/core/class/CMailFile.class.php @@ -626,6 +626,7 @@ class CMailFile } // Force parameters + //dol_syslog("CMailFile::sendfile conf->global->".$keyforsmtpserver."=".$conf->global->$keyforsmtpserver." cpnf->global->".$keyforsmtpport."=".$conf->global->$keyforsmtpport, LOG_DEBUG); if (!empty($conf->global->$keyforsmtpserver)) ini_set('SMTP', $conf->global->$keyforsmtpserver); if (!empty($conf->global->$keyforsmtpport)) ini_set('smtp_port', $conf->global->$keyforsmtpport); @@ -776,7 +777,7 @@ class CMailFile else { if (empty($this->error)) $this->error = $result; - dol_syslog("CMailFile::sendfile: mail end error=".$this->error, LOG_ERR); + dol_syslog("CMailFile::sendfile: mail end error with smtps lib to HOST=".$server.", PORT=".$conf->global->$keyforsmtpport."
".$this->error, LOG_ERR); $res = false; } } diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index 00ca3f3d45f..9faa3762111 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -3911,9 +3911,9 @@ function dol_print_error($db = '', $error = '', $errors = null) } if (empty($dolibarr_main_prod)) print $out; - else + else // This should not happen, except if there is a bug somewhere. Enabled and check log in such case. { - print 'This website is currently temporarly offline. This may be due to a maintenance operation. Current status of operation are on next line...

'."\n"; + print 'This website is currently temporarly offline.

This may be due to a maintenance operation. Current status of operation are on next line...

'."\n"; $langs->load("errors"); print $langs->trans("DolibarrHasDetectedError").'. '; print $langs->trans("YouCanSetOptionDolibarrMainProdToZero"); diff --git a/htdocs/core/tpl/login.tpl.php b/htdocs/core/tpl/login.tpl.php index e74f76669cf..6ea964bbc66 100644 --- a/htdocs/core/tpl/login.tpl.php +++ b/htdocs/core/tpl/login.tpl.php @@ -91,7 +91,7 @@ $(document).ready(function () {
- + diff --git a/htdocs/emailcollector/class/emailcollector.class.php b/htdocs/emailcollector/class/emailcollector.class.php index efdb3ea5d3b..55b6907f912 100644 --- a/htdocs/emailcollector/class/emailcollector.class.php +++ b/htdocs/emailcollector/class/emailcollector.class.php @@ -667,22 +667,56 @@ class EmailCollector extends CommonObject /** * Return the connectstring to use with IMAP connection function * + * @param int $norsh Add /norsh to connectstring * @return string */ - public function getConnectStringIMAP() + public function getConnectStringIMAP($ssl = 1, $norsh = 0) { + global $conf; + // Connect to IMAP $flags = '/service=imap'; // IMAP - $flags .= '/ssl'; // '/tls' + if ($ssl) $flags .= '/ssl'; // '/tls' $flags .= '/novalidate-cert'; //$flags.='/readonly'; //$flags.='/debug'; + if ($norsh || ! empty($conf->global->IMPA_FORCE_NORSH)) $flags .= '/norsh'; $connectstringserver = '{'.$this->host.':993'.$flags.'}'; return $connectstringserver; } + /** + * Convert str to UTF-7 imap default mailbox names + * + * @param string $str String to encode + * @return string Encode string + */ + function getEncodedUtf7($str) { + if (function_exists('mb_convert_encoding')) { + # change spaces by entropy because mb_convert fail with spaces + $str=preg_replace("/ /", "xyxy", $str); + # if mb_convert work + if ($str = mb_convert_encoding($str, "UTF-7")) { + # change characters + $str=preg_replace("/\+A/", "&A", $str); + # change to spaces again + $str=preg_replace("/xyxy/", " ", $str); + # return encoded string + return $str; + # else + } else { + # print error and return false + $this->error = "error: is not possible to encode this string '".$str."'"; + return false; + } + } + else { + return $str; + } + } + /** * Action executed by scheduler * CAN BE A CRON TASK. In such a case, paramerts come from the schedule job setup field 'Parameters' @@ -1060,7 +1094,6 @@ class EmailCollector extends CommonObject // If there is a filter on trackid if ($searchfilterdoltrackid > 0) { - //if (empty($headers['X-Dolibarr-TRACKID'])) continue; if (empty($headers['References']) || !preg_match('/@'.preg_quote($host, '/').'/', $headers['References'])) { $nbemailprocessed++; @@ -1074,7 +1107,6 @@ class EmailCollector extends CommonObject $nbemailprocessed++; continue; } - //if (! empty($headers['X-Dolibarr-TRACKID']) continue; } $thirdpartystatic = new Societe($this->db); @@ -1459,78 +1491,85 @@ class EmailCollector extends CommonObject // Create event elseif ($operation['type'] == 'recordevent') { - if ($projectstatic->id > 0) - { - if ($projectfoundby) $descriptionmeta = dol_concatdesc($descriptionmeta, 'Project found from '.$projectfoundby); - } - if ($thirdpartystatic->id > 0) - { - if ($thirdpartyfoundby) $descriptionmeta = dol_concatdesc($descriptionmeta, 'Third party found from '.$thirdpartyfoundby); - } - if ($contactstatic->id > 0) - { - if ($contactfoundby) $descriptionmeta = dol_concatdesc($descriptionmeta, 'Contact/address found from '.$contactfoundby); - } + $alreadycreated = 0; + // TODO Check if $msg ID already in database for $conf->entity - $description = $descriptiontitle; - $description = dol_concatdesc($description, "-----"); - $description = dol_concatdesc($description, $descriptionmeta); - $description = dol_concatdesc($description, "-----"); - $description = dol_concatdesc($description, $messagetext); - $descriptionfull = $description; - $descriptionfull = dol_concatdesc($descriptionfull, "----- Header"); - $descriptionfull = dol_concatdesc($descriptionfull, $header); + if (! $alreadycreated) + { + if ($projectstatic->id > 0) + { + if ($projectfoundby) $descriptionmeta = dol_concatdesc($descriptionmeta, 'Project found from '.$projectfoundby); + } + if ($thirdpartystatic->id > 0) + { + if ($thirdpartyfoundby) $descriptionmeta = dol_concatdesc($descriptionmeta, 'Third party found from '.$thirdpartyfoundby); + } + if ($contactstatic->id > 0) + { + if ($contactfoundby) $descriptionmeta = dol_concatdesc($descriptionmeta, 'Contact/address found from '.$contactfoundby); + } - // Insert record of emails sent - $actioncomm = new ActionComm($this->db); - $actioncomm->type_code = 'AC_OTH_AUTO'; // Type of event ('AC_OTH', 'AC_OTH_AUTO', 'AC_XXX'...) - $actioncomm->code = 'AC_'.$actioncode; - $actioncomm->label = $langs->trans("ActionAC_".$actioncode).' - '.$langs->trans("MailFrom").' '.$from; - $actioncomm->note_private= $descriptionfull; - $actioncomm->fk_project = $projectstatic->id; - $actioncomm->datep = $date; - $actioncomm->datef = $date; - $actioncomm->percentage = -1; // Not applicable - $actioncomm->socid = $thirdpartystatic->id; - $actioncomm->contactid = $contactstatic->id; - $actioncomm->socpeopleassigned = (!empty($contactstatic->id) ? array($contactstatic->id => '') : array()); - $actioncomm->authorid = $user->id; // User saving action - $actioncomm->userownerid = $user->id; // Owner of action - // Fields when action is an email (content should be added into note) - $actioncomm->email_msgid = $msgid; - $actioncomm->email_from = $fromstring; - $actioncomm->email_sender= $sender; - $actioncomm->email_to = $to; - $actioncomm->email_tocc = $sendtocc; - $actioncomm->email_tobcc = $sendtobcc; - $actioncomm->email_subject = $subject; - $actioncomm->errors_to = ''; + $description = $descriptiontitle; + $description = dol_concatdesc($description, "-----"); + $description = dol_concatdesc($description, $descriptionmeta); + $description = dol_concatdesc($description, "-----"); + $description = dol_concatdesc($description, $messagetext); - if (! in_array($fk_element_type, array('societe','contact','project','user'))) - { - $actioncomm->fk_element = $fk_element_id; - $actioncomm->elementtype = $fk_element_type; - } + $descriptionfull = $description; + $descriptionfull = dol_concatdesc($descriptionfull, "----- Header"); + $descriptionfull = dol_concatdesc($descriptionfull, $header); - //$actioncomm->extraparams = $extraparams; + // Insert record of emails sent + $actioncomm = new ActionComm($this->db); + $actioncomm->type_code = 'AC_OTH_AUTO'; // Type of event ('AC_OTH', 'AC_OTH_AUTO', 'AC_XXX'...) + $actioncomm->code = 'AC_'.$actioncode; + $actioncomm->label = $langs->trans("ActionAC_".$actioncode).' - '.$langs->trans("MailFrom").' '.$from; + $actioncomm->note_private= $descriptionfull; + $actioncomm->fk_project = $projectstatic->id; + $actioncomm->datep = $date; + $actioncomm->datef = $date; + $actioncomm->percentage = -1; // Not applicable + $actioncomm->socid = $thirdpartystatic->id; + $actioncomm->contactid = $contactstatic->id; + $actioncomm->socpeopleassigned = (!empty($contactstatic->id) ? array($contactstatic->id => '') : array()); + $actioncomm->authorid = $user->id; // User saving action + $actioncomm->userownerid = $user->id; // Owner of action + // Fields when action is an email (content should be added into note) + $actioncomm->email_msgid = $msgid; + $actioncomm->email_from = $fromstring; + $actioncomm->email_sender= $sender; + $actioncomm->email_to = $to; + $actioncomm->email_tocc = $sendtocc; + $actioncomm->email_tobcc = $sendtobcc; + $actioncomm->email_subject = $subject; + $actioncomm->errors_to = ''; - // Overwrite values with values extracted from source email - $errorforthisaction = $this->overwritePropertiesOfObject($actioncomm, $operation['actionparam'], $messagetext, $subject, $header); + if (! in_array($fk_element_type, array('societe','contact','project','user'))) + { + $actioncomm->fk_element = $fk_element_id; + $actioncomm->elementtype = $fk_element_type; + } - if ($errorforthisaction) - { - $errorforactions++; - } - else - { - $result = $actioncomm->create($user); - if ($result <= 0) - { - $errorforactions++; - $this->errors = $actioncomm->errors; - } - } + //$actioncomm->extraparams = $extraparams; + + // Overwrite values with values extracted from source email + $errorforthisaction = $this->overwritePropertiesOfObject($actioncomm, $operation['actionparam'], $messagetext, $subject, $header); + + if ($errorforthisaction) + { + $errorforactions++; + } + else + { + $result = $actioncomm->create($user); + if ($result <= 0) + { + $errorforactions++; + $this->errors = $actioncomm->errors; + } + } + } } // Create event elseif ($operation['type'] == 'project') diff --git a/htdocs/install/mysql/migration/10.0.0-11.0.0.sql b/htdocs/install/mysql/migration/10.0.0-11.0.0.sql index 03b04979896..90e3b03319c 100644 --- a/htdocs/install/mysql/migration/10.0.0-11.0.0.sql +++ b/htdocs/install/mysql/migration/10.0.0-11.0.0.sql @@ -48,9 +48,18 @@ UPDATE llx_c_units SET label = 'SurfaceUnitm2' WHERE code IN ('M2'); ALTER TABLE llx_adherent_type ADD UNIQUE INDEX uk_adherent_type_libelle (libelle, entity); +ALTER TABLE llx_mailing_cibles MODIFY COLUMN lastname varchar(160); +ALTER TABLE llx_mailing_cibles MODIFY COLUMN firstname varchar(160); + +ALTER TABLE llx_emailcollector_emailcollector ADD COLUMN login varchar(128); +ALTER TABLE llx_emailcollector_emailcollector ADD COLUMN codelastresult varchar(16); +ALTER TABLE llx_emailcollector_emailcollectoraction ADD COLUMN position integer DEFAULT 0; + + -- For v11 + insert into llx_c_type_container (code,label,module,active) values ('menu', 'Menu', 'system', 1); INSERT INTO llx_c_ticket_type (code, pos, label, active, use_default, description) VALUES('HELP', '15', 'Request for functionnal help', 1, 0, NULL); diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang index e7685ef25b9..05c076625f1 100644 --- a/htdocs/langs/en_US/admin.lang +++ b/htdocs/langs/en_US/admin.lang @@ -1905,8 +1905,8 @@ CodeLastResult=Latest result code NbOfEmailsInInbox=Number of emails in source directory LoadThirdPartyFromName=Load third party searching on %s (load only) LoadThirdPartyFromNameOrCreate=Load third party searching on %s (create if not found) -WithDolTrackingID=Dolibarr Tracking ID found -WithoutDolTrackingID=Dolibarr Tracking ID not found +WithDolTrackingID=Dolibarr Reference found in Message ID +WithoutDolTrackingID=Dolibarr Reference not found in Message ID FormatZip=Zip MainMenuCode=Menu entry code (mainmenu) ECMAutoTree=Show automatic ECM tree diff --git a/htdocs/main.inc.php b/htdocs/main.inc.php index 3e623433db8..44a61a9ac39 100644 --- a/htdocs/main.inc.php +++ b/htdocs/main.inc.php @@ -553,7 +553,7 @@ if (!defined('NOLOGIN')) // Validation of login/pass/entity // If ok, the variable login will be returned // If error, we will put error message in session under the name dol_loginmesg - if ($test && $goontestloop && GETPOST('action', 'aZ09') == 'login') + if ($test && $goontestloop && GETPOST('actionlogin', 'aZ09') == 'login') { $login = checkLoginPassEntity($usertotest, $passwordtotest, $entitytotest, $authmode); if ($login) @@ -611,8 +611,8 @@ if (!defined('NOLOGIN')) // End test login / passwords if (! $login || (in_array('ldap', $authmode) && empty($passwordtotest))) // With LDAP we refused empty password because some LDAP are "opened" for anonymous access so connexion is a success. { - // No data to test login, so we show the login page - dol_syslog("--- Access to ".$_SERVER["PHP_SELF"]." - action=".GETPOST('action', 'aZ09').", showing the login form and exit"); + // No data to test login, so we show the login page. + dol_syslog("--- Access to ".$_SERVER["PHP_SELF"]." - action=".GETPOST('action', 'aZ09')." - actionlogin=".GETPOST('actionlogin', 'aZ09')." - showing the login form and exit"); if (defined('NOREDIRECTBYMAINTOLOGIN')) return 'ERROR_NOT_LOGGED'; else dol_loginfunction($langs, $conf, (! empty($mysoc)?$mysoc:'')); exit; diff --git a/htdocs/product/stock/replenishorders.php b/htdocs/product/stock/replenishorders.php index 13f7cca301f..c39f498d9b6 100644 --- a/htdocs/product/stock/replenishorders.php +++ b/htdocs/product/stock/replenishorders.php @@ -54,8 +54,8 @@ $search_dateday = GETPOST('search_dateday', 'int'); $search_date = dol_mktime(0, 0, 0, $search_datemonth, $search_dateday, $search_dateyear); $limit = GETPOST('limit', 'int')?GETPOST('limit', 'int'):$conf->liste_limit; -$sortfield = GETPOST("sortfield"); -$sortorder = GETPOST("sortorder"); +$sortfield = GETPOST("sortfield", 'alpha'); +$sortorder = GETPOST("sortorder", 'alpha'); if (!$sortorder) $sortorder = 'DESC'; if (!$sortfield) $sortfield = 'cf.date_creation'; $page = GETPOST('page', 'int') ? GETPOST('page', 'int') : 0; diff --git a/htdocs/product/stock/valo.php b/htdocs/product/stock/valo.php index 32ffebdba76..e814bdfaac0 100644 --- a/htdocs/product/stock/valo.php +++ b/htdocs/product/stock/valo.php @@ -36,8 +36,8 @@ $sref=GETPOST("sref", 'alpha'); $snom=GETPOST("snom", 'alpha'); $sall=trim((GETPOST('search_all', 'alphanohtml')!='')?GETPOST('search_all', 'alphanohtml'):GETPOST('sall', 'alphanohtml')); -$sortfield = GETPOST("sortfield"); -$sortorder = GETPOST("sortorder"); +$sortfield = GETPOST("sortfield", 'alpha'); +$sortorder = GETPOST("sortorder", 'alpha'); if (! $sortfield) $sortfield="e.ref"; if (! $sortorder) $sortorder="ASC"; $page = $_GET["page"]; diff --git a/htdocs/projet/info.php b/htdocs/projet/info.php index e6d35f5ee9e..c28460e1045 100644 --- a/htdocs/projet/info.php +++ b/htdocs/projet/info.php @@ -38,8 +38,8 @@ $action = GETPOST('action', 'aZ09'); $limit = GETPOST('limit', 'int')?GETPOST('limit', 'int'):$conf->liste_limit; $sortfield = GETPOST("sortfield", "alpha"); -$sortorder = GETPOST("sortorder"); -$page = GETPOST("page"); +$sortorder = GETPOST("sortorder", 'alpha'); +$page = GETPOST("page", 'int'); $page = is_numeric($page) ? $page : 0; $page = $page == -1 ? 0 : $page; if (! $sortfield) $sortfield="a.datep,a.id"; diff --git a/htdocs/projet/list.php b/htdocs/projet/list.php index d5c37b81fa6..63240e9f842 100644 --- a/htdocs/projet/list.php +++ b/htdocs/projet/list.php @@ -61,8 +61,8 @@ $diroutputmassaction = $conf->projet->dir_output.'/temp/massgeneration/'.$user-> $limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit; $sortfield = GETPOST("sortfield", "alpha"); -$sortorder = GETPOST("sortorder"); -$page = GETPOST("page"); +$sortorder = GETPOST("sortorder", 'alpha'); +$page = GETPOST("page", 'int'); $page = is_numeric($page) ? $page : 0; $page = $page == -1 ? 0 : $page; if (!$sortfield) $sortfield = "p.ref"; diff --git a/htdocs/resource/list.php b/htdocs/resource/list.php index 98f30ac22db..e1bf458b6e4 100644 --- a/htdocs/resource/list.php +++ b/htdocs/resource/list.php @@ -93,7 +93,7 @@ if (empty($sortfield)) $sortfield="t.ref"; if (empty($arch)) $arch = 0; $limit = GETPOST('limit', 'int')?GETPOST('limit', 'int'):$conf->liste_limit; -$page = GETPOST("page"); +$page = GETPOST("page", 'int'); if (empty($page) || $page == -1) { $page = 0; } // If $page is not defined, or '' or -1 $offset = $limit * $page ; $pageprev = $page - 1; diff --git a/htdocs/societe/card.php b/htdocs/societe/card.php index 0793282cd86..464f94d71cb 100644 --- a/htdocs/societe/card.php +++ b/htdocs/societe/card.php @@ -1220,6 +1220,8 @@ else print $formcompany->selectProspectCustomerType($selected); print ''; + if ($conf->browser->layout == 'phone') print ''; + print ''.$form->editfieldkey('CustomerCode', 'customer_code', '', $object, 0).''; print ''; + + + if ($conf->browser->layout == 'phone') print ''; + print ''; + if ($conf->browser->layout == 'phone') print ''; + print ''; @@ -1313,6 +1321,7 @@ else // Phone / Fax print ''; print ''; + if ($conf->browser->layout == 'phone') print ''; print ''; print ''; @@ -1374,7 +1383,7 @@ else // } // Prof ids - $i = 1; $j = 0; + $i = 1; $j = 0; $NBCOLS = ($conf->browser->layout == 'phone' ? 1 : 2); while ($i <= 6) { $idprof = $langs->transcountry('ProfId'.$i, $object->country_code); @@ -1382,7 +1391,7 @@ else { $key = 'idprof'.$i; - if (($j % 2) == 0) print ''; + if (($j % $NBCOLS) == 0) print ''; $idprof_mandatory = 'SOCIETE_IDPROF'.($i).'_MANDATORY'; print ''; + if ($conf->browser->layout == 'phone') print ''; print ''; print ''; + if ($conf->browser->layout == 'phone') print ''; print '
'; $tmpcode = $object->code_client; @@ -1241,6 +1243,10 @@ else if (!empty($conf->global->THIRDPARTY_SUPPLIER_BY_DEFAULT)) $default = 1; print $form->selectyesno("fournisseur", (GETPOST('fournisseur', 'int') != '' ?GETPOST('fournisseur', 'int') : (GETPOST("type", 'alpha') == '' ? $default : $object->fournisseur)), 1, 0, (GETPOST("type", 'alpha') == '' ? 1 : 0)); print '
'; if (!empty($conf->fournisseur->enabled) && !empty($user->rights->fournisseur->lire)) { @@ -1283,7 +1289,9 @@ else // Zip / Town print '
'.$form->editfieldkey('Zip', 'zipcode', '', $object, 0).''; print $formcompany->select_ziptown($object->zip, 'zipcode', array('town', 'selectcountry_id', 'state_id'), 0, 0, '', 'maxwidth100 quatrevingtpercent'); - print ''.$form->editfieldkey('Town', 'town', '', $object, 0).''; + print '
'.$form->editfieldkey('Town', 'town', '', $object, 0).''; print $formcompany->select_ziptown($object->town, 'town', array('zipcode', 'selectcountry_id', 'state_id'), 0, 0, '', 'maxwidth100 quatrevingtpercent'); print '
'.img_picto('', 'object_phoning').' '.$form->editfieldkey('Phone', 'phone', '', $object, 0).'
'.img_picto('', 'object_phoning_fax').' '.$form->editfieldkey('Fax', 'fax', '', $object, 0).'
'.$form->editfieldkey($idprof, $key, '', $object, 0, 'string', '', (empty($conf->global->$idprof_mandatory) ? 0 : 1)).''; @@ -1401,6 +1410,7 @@ else print ''; print $form->selectyesno('assujtva_value', GETPOSTISSET('assujtva_value') ?GETPOST('assujtva_value', 'int') : 1, 1); // Assujeti par defaut en creation print '
'.$form->editfieldkey('VATIntra', 'intra_vat', '', $object, 0).''; $s = ''; @@ -1462,6 +1472,7 @@ else print $form->selectarray("typent_id", $formcompany->typent_array(0), $object->typent_id, 0, 0, 0, '', 0, 0, 0, $sortparam); if ($user->admin) print ' '.info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"), 1); print '
'.$form->editfieldkey('Staff', 'effectif_id', '', $object, 0).''; print $form->selectarray("effectif_id", $formcompany->effectif_array(0), $object->effectif_id); if ($user->admin) print ' '.info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"), 1); diff --git a/htdocs/theme/eldy/global.inc.php b/htdocs/theme/eldy/global.inc.php index 03863576379..e076d6eb58a 100644 --- a/htdocs/theme/eldy/global.inc.php +++ b/htdocs/theme/eldy/global.inc.php @@ -293,7 +293,7 @@ hr { border: 0; border-top: 1px solid #ccc; } margin-top: 0; margin-left: 5px; margin-right: 5px; - font-family: ; + font-family: ; display: inline-block; padding: 4px 14px; text-align: center; @@ -529,7 +529,9 @@ body[class*="colorblind-"] .text-success{ .fa-toggle-on, .fa-toggle-off { font-size: 2em; } .websiteselectionsection .fa-toggle-on, .websiteselectionsection .fa-toggle-off, -.asetresetmodule .fa-toggle-on, .asetresetmodule .fa-toggle-off { font-size: 1.5em; vertical-align: text-bottom; } +.asetresetmodule .fa-toggle-on, .asetresetmodule .fa-toggle-off { + font-size: 1.5em; vertical-align: text-bottom; +} /* Themes for badges */ @@ -1263,7 +1265,6 @@ div.fiche>table:first-child { margin-bottom: 15px !important; } div.fichecenter { - /* margin-top: 10px; */ width: 100%; clear: both; /* This is to have div fichecenter that are true rectangles */ } @@ -1630,18 +1631,6 @@ li.tmenusel::after, li.tmenu:hover::after{ border-width: 0px 6px 5px 6px; border-color: transparent transparent #ffffff transparent; } -/* -// Add a bottom arrow -li.tmenusel::before, li.tmenu:hover::before{ - content: ""; - position:absolute; - top:0px; - left:0; - width: 100%; - height: 2px; - background: #fff; -}*/ - .tmenuend .tmenuleft { width: 0px; } .tmenuend { display: none; } @@ -2431,6 +2420,11 @@ div.popuptab { padding-left: 5px; padding-right: 5px; } + +/* ============================================================================== */ +/* Buttons for actions */ +/* ============================================================================== */ + div.tabsAction { margin: 20px 0em 30px 0em; padding: 0em 0em; @@ -3113,7 +3107,9 @@ tr.liste_titre:last-child th.liste_titre, tr.liste_titre:last-child th.liste_tit border-bottom: unset; } - +div.liste_titre { + padding-left: 3px; +} tr.liste_titre_sel th, th.liste_titre_sel, tr.liste_titre_sel td, td.liste_titre_sel, form.liste_titre_sel div { font-family: ; @@ -3246,7 +3242,6 @@ ul.noborder li:nth-child(even):not(.liste_titre) { min-height: 40px; padding-right: 0px; padding-left: 0px; - /*padding-bottom: 25px;*/ padding-bottom: 10px; } .ficheaddleft div.boxstats, .ficheaddright div.boxstats { @@ -3380,9 +3375,6 @@ span.dashboardlineok { } span.dashboardlineko { color: #FFF; - /*color: #8c4446 ! important; - padding-left: 1px;*/ - font-size: 80%; } .dashboardlinelatecoin { @@ -4493,7 +4485,6 @@ td.gminorheading { .ecmfiletree { width: 99%; height: 99%; - /* background: #FFF; */ padding-left: 2px; font-weight: normal; } @@ -5962,6 +5953,11 @@ div.tabsElem a.tab { .text-plus-circle { display: none; } + + table.table-fiche-title .col-title div.titre{ + line-height: unset; + } + } global->THEME_ELDY_ENABLE_PERSONALIZED)) $conf->global->THEME_ELDY_BACKTABCARD1='255,255,255'; // card $conf->global->THEME_ELDY_BACKTABACTIVE='234,234,234'; $conf->global->THEME_ELDY_TEXT='0,0,0'; - $conf->global->THEME_ELDY_FONT_SIZE1='0.86em'; + $conf->global->THEME_ELDY_FONT_SIZE1=$fontsize; $conf->global->THEME_ELDY_FONT_SIZE2='0.75em'; } diff --git a/htdocs/theme/md/style.css.php b/htdocs/theme/md/style.css.php index ea1a70b6c2b..d704ce13cbf 100644 --- a/htdocs/theme/md/style.css.php +++ b/htdocs/theme/md/style.css.php @@ -44,7 +44,6 @@ define('ISLOADEDBYSTEELSHEET', '1'); require __DIR__.'/theme_vars.inc.php'; if (defined('THEME_ONLY_CONSTANT')) return; - session_cache_limiter('public'); @@ -112,7 +111,7 @@ if (empty($conf->global->THEME_ELDY_ENABLE_PERSONALIZED)) $conf->global->THEME_ELDY_BACKTABCARD1 = '255,255,255'; // card $conf->global->THEME_ELDY_BACKTABACTIVE = '234,234,234'; $conf->global->THEME_ELDY_TEXT = '0,0,0'; - $conf->global->THEME_ELDY_FONT_SIZE1 = '14'; + $conf->global->THEME_ELDY_FONT_SIZE1 = $fontsize; $conf->global->THEME_ELDY_FONT_SIZE2 = '11'; } @@ -238,7 +237,7 @@ body { background: rgb(); color: rgb(); - font-size: px; + font-size: ; line-height: 1.3; font-family: ; margin-top: 0; @@ -300,7 +299,6 @@ select#date_startday, select#date_startmonth, select#date_endday, select#date_en margin-right: 4px; } input, input.flat, textarea, textarea.flat, form.flat select, select, select.flat, .dataTables_length label select { - font-size: px; font-family: ; border: none; borderglobal->THEME_HIDE_BORDER_ON_INPUT) ? '-bottom' : ''; ?>: solid 1px rgba(0,0,0,.2); @@ -422,7 +420,7 @@ a.buttonticket { padding-right: 5px; } -/* Used for timesheets */ +/* Used by timesheets */ span.timesheetalreadyrecorded input { border: none; border-bottom: solid 1px rgba(0,0,0,0.1); @@ -434,9 +432,6 @@ td.onholidaymorning, td.onholidayafternoon { td.onholidayallday { background-color: #f4eede; } -td.actionbuttons a { - padding-left: 6px; -} td.leftborder, td.hide0 { border-left: 1px solid #ccc; } @@ -447,6 +442,9 @@ td.rightborder { border-right: 1px solid #ccc; } +td.actionbuttons a { + padding-left: 6px; +} select.flat, form.flat select { font-weight: normal; font-size: unset; @@ -467,8 +465,9 @@ select.flat, form.flat select { .opacitytransp { opacity: 0; } -select:invalid { color: gray; } - +select:invalid { + color: gray; +} input:disabled, textarea:disabled, select[disabled='disabled'] { background:#eee; @@ -514,13 +513,13 @@ div#moretabsList, div#moretabsListaction { hr { border: 0; border-top: 1px solid #ccc; } .button, .buttonDelete, input[name="sbmtConnexion"] { - font-family: ; border-color: #c5c5c5; border-color: rgba(0, 0, 0, 0.15) rgba(0, 0, 0, 0.15) rgba(0, 0, 0, 0.25); display: inline-block; padding: 4px 14px; margin-bottom: 0; margin-top: 0; + font-family: ; text-align: center; cursor: pointer; color: #333333 !important; @@ -567,6 +566,9 @@ hr { border: 0; border-top: 1px solid #ccc; } border: unset; background: unset; } +.button_search:hover, .button_removefilter:hover { + cursor: pointer; +} form { padding:0px; margin:0px; @@ -621,6 +623,19 @@ th .button { textarea.centpercent { width: 96%; } +.small, small { + font-size: 85%; +} + +.h1 .small, .h1 small, .h2 .small, .h2 small, .h3 .small, .h3 small, h1 .small, h1 small, h2 .small, h2 small, h3 .small, h3 small { + font-size: 65%; +} +.h1 .small, .h1 small, .h2 .small, .h2 small, .h3 .small, .h3 small, .h4 .small, .h4 small, .h5 .small, .h5 small, .h6 .small, .h6 small, h1 .small, h1 small, h2 .small, h2 small, h3 .small, h3 small, h4 .small, h4 small, h5 .small, h5 small, h6 .small, h6 small { + font-weight: 400; + line-height: 1; + color: #777; +} + .center { text-align: center; margin: 0px auto; @@ -634,6 +649,12 @@ textarea.centpercent { .justify { text-align: justify; } +.pull-left { + float: left!important; +} +.pull-right { + float: right!important; +} .nowrap { white-space: ; } @@ -722,15 +743,18 @@ body[class*="colorblind-"] .text-success{ color : } -.editfielda span.fa-pencil-alt { +.editfielda span.fa-pencil-alt, .editfielda span.fa-trash { color: #ccc !important; } -.editfielda span.fa-pencil-alt:hover { +.editfielda span.fa-pencil-alt:hover, .editfielda span.fa-trash:hover { color: rgb() !important; } .fa-toggle-on, .fa-toggle-off { font-size: 2em; } -.websiteselectionsection .fa-toggle-on, .websiteselectionsection .fa-toggle-off { font-size: 1.5em; vertical-align: text-bottom; } +.websiteselectionsection .fa-toggle-on, .websiteselectionsection .fa-toggle-off, +.asetresetmodule .fa-toggle-on, .asetresetmodule .fa-toggle-off { + font-size: 1.5em; vertical-align: text-bottom; +} /* Themes for badges */ @@ -768,6 +792,14 @@ div.divsearchfield { padding-bottom: 5px; opacity: 0.6; } +browser->layout == 'phone') { + ?> +.divsearchfieldfilter { + white-space: nowrap; +} + div.confirmmessage { padding-top: 6px; } @@ -804,13 +836,13 @@ select.flat.selectlimit { margin-right: 10px !important; } .marginleftonly { - margin-left: 10px !important; + margin-: 10px !important; } .marginleftonlyshort { - margin-left: 4px !important; + margin-: 4px !important; } .nomarginleft { - margin-left: 0px !important; + margin-: 0px !important; } .margintoponly { margin-top: 10px !important; @@ -871,6 +903,20 @@ select.flat.selectlimit { max-width: 0; overflow: auto; } +.divintdwithtwolinesmax { + width: 75px; + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp: 2; + overflow: hidden; +} +.twolinesmax { + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp: 2; + overflow: hidden; +} + .tablelistofcalendars { margin-top: 25px !important; } @@ -914,6 +960,10 @@ select.flat.selectlimit { color: #505; } +.fa-15 { + font-size: 1.5em; +} + /* DOL_XXX for future usage (when left menu has been removed). If we do not use datatable */ /*.table-responsive { width: calc(100% - 330px); @@ -938,7 +988,7 @@ div.fiche>form>div.div-table-responsive { } .flexcontainer { - browser->browsername, array('chrome', 'firefox'))) echo 'display: inline-flex;' ?> + browser->name, array('chrome', 'firefox'))) echo 'display: inline-flex;' ?> flex-flow: row wrap; justify-content: flex-start; } @@ -1032,6 +1082,16 @@ table[summary="list_of_modules"] .fa-cog { .titlefield { /* width: 25%; */ width: 250px; } .titlefieldmiddle { width: 50%; } .imgmaxwidth180 { max-width: 180px; } +.imgmaxheight50 { max-height: 50px; } + +.width20p { width:20%; } +.width25p { width:25%; } +.width40p { width:40%; } +.width50p { width:50%; } +.width60p { width:60%; } +.width75p { width:75%; } +.width80p { width:80%; } +.width100p { width:100%; } /* Force values for small screen 1400 */ @@ -1047,6 +1107,11 @@ table[summary="list_of_modules"] .fa-cog { .minwidth300imp { min-width: 300px !important; } .minwidth400imp { min-width: 300px !important; } .minwidth500imp { min-width: 300px !important; } + + + .linkedcol-element { + min-width: unset; + } } /* Force values for small screen 1000 */ @@ -1067,10 +1132,10 @@ table[summary="list_of_modules"] .fa-cog { @media only screen and (max-width: 767px) { body { - font-size: ; + font-size: ; } div.refidno { - font-size: !important; + font-size: !important; } } @@ -1078,10 +1143,10 @@ table[summary="list_of_modules"] .fa-cog { @media only screen and (max-width: 570px) { body { - font-size: px; + font-size: ; } div.refidno { - font-size: px !important; + font-size: !important; } .login_vertical_align { @@ -1099,7 +1164,7 @@ table[summary="list_of_modules"] .fa-cog { div.fiche { margin-top: px !important; } - .border tbody tr, .border tbody tr td, div.tabBar table.border tr { + .border tbody tr, .border tbody tr td, div.tabBar table.border tr, div.tabBar table.border tr td, div.tabBar div.border .table-border-row, div.tabBar div.border .table-key-border-col, div.tabBar div.border .table-val-border-col { height: 40px !important; } @@ -1112,6 +1177,9 @@ table[summary="list_of_modules"] .fa-cog { padding-bottom: 5px; } + .login_table .tdinputlogin { + min-width: unset !important; + } input, input[type=text], input[type=password], select, textarea { min-width: 20px; min-height: 1.4em; @@ -1119,6 +1187,7 @@ table[summary="list_of_modules"] .fa-cog { } .hideonsmartphone { display: none; } + .hideonsmartphoneimp { display: none !important; } .noenlargeonsmartphone { width : 50px !important; display: inline !important; } .maxwidthonsmartphone, #search_newcompany.ui-autocomplete-input { max-width: 100px; } .maxwidth50onsmartphone { max-width: 40px; } @@ -1152,7 +1221,7 @@ table[summary="list_of_modules"] .fa-cog { } div.divphotoref { - padding-right: 5px; + padding-: 5px; padding-bottom: 5px; } img.photoref, div.photoref { @@ -1410,6 +1479,9 @@ div.fiche { body.onlinepaymentbody div.fiche { /* For online payment page */ margin: 20px !important; } +div.fiche>table:first-child { + margin-bottom: 15px !important; +} div.fichecenter { width: 100%; clear: both; /* This is to have div fichecenter that are true rectangles */ @@ -1496,17 +1568,13 @@ div.secondcolumn div.box { } /* For table into table into card */ -div.fichehalfright tr.liste_titre:first-child td table.nobordernopadding td, div.nopadding { +div.fichehalfright tr.liste_titre:first-child td table.nobordernopadding td { padding: 0 0 0 0; } div.nopadding { padding: 0 !important; } -/*table.noborder tr.liste_titre td { - padding: 3px !important; -}*/ - .containercenter { display : table; margin : 0px auto; @@ -1575,7 +1643,7 @@ div.heightref { min-height: 80px; } div.divphotoref { - padding-right: 20px; + padding-: 20px; } div.paginationref { padding-bottom: 10px; @@ -1626,7 +1694,7 @@ img.photorefnoborder { .underrefbanner { } .underbanner { - border-bottom: px solid rgb(); + border-bottom: px solid rgb(); } .trextrafieldseparator td { @@ -1922,9 +1990,7 @@ div.mainmenu.website { 'don'=>'accountancy', 'tax'=>'accountancy', 'banque'=>'accountancy', 'facture'=>'accountancy', 'compta'=>'accountancy', 'accounting'=>'accountancy', 'adherent'=>'members', 'import'=>'tools', 'export'=>'tools', 'mailing'=>'tools', 'contrat'=>'commercial', 'ficheinter'=>'commercial', 'ticket'=>'ticket', 'deplacement'=>'commercial', 'fournisseur'=>'companies', - 'barcode'=>'', - 'fckeditor'=>'', - 'categorie'=>'', + 'barcode'=>'', 'fckeditor'=>'', 'categorie'=>'', ); $mainmenuused = 'home'; foreach ($conf->modules as $val) @@ -2507,6 +2573,7 @@ div.tabBar.tabBarNoTop { } */ +/* tabBar used for creation/update/send forms */ div.tabBarWithBottom { padding-bottom: 18px; border-bottom: 1px solid #aaa; @@ -2517,6 +2584,10 @@ div.tabBar table.tableforservicepart2:last-child { .tableforservicepart1 .tdhrthin { height: unset; } +/* Payment Screen : Pointer cursor in the autofill image */ +.AutoFillAmount { + cursor:pointer; +} /* ============================================================================== */ /* Buttons for actions */ @@ -2680,6 +2751,10 @@ tr.nocellnopadd td.nobordernopadding, tr.nocellnopadd td.nocellnopadd margin: 0px 0px 0px 0px; } +table.tableforemailform tr td { + padding-top: 3px; + padding-bottom: 3px; +} table.border, table.bordernooddeven, table.dataTable, .table-border, .table-border-col, .table-key-border-col, .table-val-border-col, div.border { border: 1px solid #f4f4f4; @@ -2690,7 +2765,7 @@ table.borderplus { border: 1px solid #BBB; } -.border tbody tr, .border tbody tr td, div.tabBar table.border tr, div.tabBar table.border tr td, div.tabBar div.border .table-border-row, div.tabBar div.border .table-key-border-col, div.tabBar div.border .table-val-border-col { +.border tbody tr, .bordernooddeven tbody tr, .border tbody tr td, .bordernooddeven tbody tr td, div.tabBar table.border tr, div.tabBar table.border tr td, div.tabBar div.border .table-border-row, div.tabBar div.border .table-key-border-col, div.tabBar div.border .table-val-border-col { height: 26px; } tr.liste_titre.box_titre td table td, .bordernooddeven tr td { @@ -3051,7 +3126,16 @@ ul.noborder li:nth-child(odd):not(.liste_titre) { } -.oddeven, .evenodd, .impair, .nohover .impair:hover, tr.impair td.nohover +.nohover:hover { + background: unset; +} +.nohoverborder:hover { + border: unset; + box-shadow: unset; + -webkit-box-shadow: unset; +} + +.oddeven, .evenodd, .impair, .nohover .impair:hover, tr.impair td.nohover, .tagtr.oddeven { font-family: ; border: 0px; @@ -3063,10 +3147,10 @@ ul.noborder li:nth-child(odd):not(.liste_titre) { background: #; } #GanttChartDIV { - background: #; + background-color: #; } -.oddeven, .evenodd, .pair, .nohover .pair:hover, tr.pair td.nohover { +.oddeven, .evenodd, .pair, .nohover .pair:hover, tr.pair td.nohover, .tagtr.oddeven { font-family: ; margin-bottom: 1px; color: #202020; @@ -3083,7 +3167,7 @@ td.oddeven, table.nohover tr.impair, table.nohover tr.pair, table.nohover tr.imp background-color: # !important; background: # !important; } -td.evenodd, tr.nohoverpair td { +td.evenodd, tr.nohoverpair td, #trlinefordates td { background-color: # !important; background: # !important; } @@ -3388,9 +3472,9 @@ ul.noborder li:nth-child(even):not(.liste_titre) { box-shadow: 0px 0px 8px 0px rgba(0,0,0,0.20); } span.boxstatstext { + /* opacity: 0.7; */ /* a bug if browser make z-index infintie when opacity is set so we disable it */ line-height: 18px; color: #000; - /* opacity: 0.7; */ /* a bug if browser make z-index infintie when opacity is set so we disable it */ } .boxstatsindicator.thumbstat150 { /* If we remove this, box position is ko on ipad */ display: inline-flex; @@ -3499,7 +3583,10 @@ img.boxhandle, img.boxclose { vertical-align: middle; } - +.modulebuilderbox { + border: 1px solid #888; + padding: 16px; +} @@ -3667,6 +3754,9 @@ div.titre, .secondary { color: rgb(); } +table.centpercent.notopnoleftnoright.table-fiche-title { + margin-bottom: 10px !important; +} table.table-fiche-title .col-title div.titre{ line-height: 40px; } @@ -3743,6 +3833,19 @@ div#card-errors { font-size: px !important; } + +/* ============================================================================== */ +/* For content of image preview */ +/* ============================================================================== */ + +/* +.ui-dialog-content.ui-widget-content > object { + max-height: none; + width: auto; margin-left: auto; margin-right: auto; display: block; +} +*/ + + /* ============================================================================== */ /* Formulaire confirmation (When HTML is used) */ /* ============================================================================== */ @@ -3939,6 +4042,9 @@ tr.visible { display: inline-block; padding: 4px 0 4px 0; } +.websitebar .buttonDelete, .websitebar .button { + text-shadow: none; +} .websitebar .button, .websitebar .buttonDelete { padding: 2px 4px 2px 4px !important; @@ -3958,17 +4064,21 @@ tr.visible { float: right; } .websiteselection, .websitetools { - margin-top: 3px; + /* margin-top: 3px; padding-top: 3px; - padding-bottom: 3px; + padding-bottom: 3px; */ } .websiteinputurl { display: inline-block; vertical-align: top; + line-height: 28px; } .websiteiframenoborder { border: 0px; } +span.websitebuttonsitepreview, a.websitebuttonsitepreview { + vertical-align: middle; +} span.websitebuttonsitepreview img, a.websitebuttonsitepreview img { width: 26px; display: inline-block; @@ -3984,6 +4094,14 @@ span.websitebuttonsitepreviewdisabled img, a.websitebuttonsitepreviewdisabled im float: right; padding-top: 8px; } +.websiteselectionsection { + border-left: 1px solid #bbb; + border-right: 1px solid #bbb; + margin-left: 0px; + padding-left: 8px; + margin-right: 5px; +} + /* ============================================================================== */ /* Module agenda */ @@ -4028,6 +4146,8 @@ table.cal_event td.cal_event_right { padding: 4px 4px !important; } .cal_event_busy { } .cal_peruserviewname { max-width: 140px; height: 22px; } +.calendarviewcontainertr { height: 100px; } + .topmenuimage { background-size: 24px auto; } @@ -4262,7 +4382,6 @@ A.none, A.none:active, A.none:visited, A.none:hover { } .ui-widget { font-family:; - font-size:px; } .ui-button { margin-left: -2px; browser->name) ? 'padding-top: 1px;' : ''); ?> } .ui-button-icon-only .ui-button-text { height: 8px; } @@ -4278,6 +4397,10 @@ A.none, A.none:active, A.none:visited, A.none:hover { /* CKEditor */ /* ============================================================================== */ +body.cke_show_borders { + margin: 5px !important; +} + .cke_dialog { border: 1px #bbb solid ! important; } @@ -4387,6 +4510,65 @@ pre#editfilecontentaceeditorid { } +/* ============================================================================== */ +/* Comments */ +/* ============================================================================== */ + +#comment div { + box-sizing:border-box; +} +#comment .comment { + border-radius:7px; + margin-bottom:10px; + overflow:hidden; +} +#comment .comment-table { + display:table; + height:100%; +} +#comment .comment-cell { + display:table-cell; +} +#comment .comment-info { + font-size:0.8em; + border-right:1px solid #dedede; + margin-right:10px; + width:160px; + text-align:center; + background:rgba(255,255,255,0.5); + vertical-align:middle; + padding:10px 2px; +} +#comment .comment-info a { + color:inherit; +} +#comment .comment-right { + vertical-align:top; +} +#comment .comment-description { + padding:10px; + vertical-align:top; +} +#comment .comment-delete { + width: 100px; + text-align:center; + vertical-align:middle; +} +#comment .comment-delete:hover { + background:rgba(250,20,20,0.8); +} +#comment .comment-edit { + width: 100px; + text-align:center; + vertical-align:middle; +} +#comment .comment-edit:hover { + background:rgba(0,184,148,0.8); +} +#comment textarea { + width: 100%; +} + /* ============================================================================== */ /* JSGantt */ @@ -4481,10 +4663,6 @@ ul.filedirelem li { border: solid 1px #f4f4f4; } -.ui-layout-north { - -} - ul.ecmjqft { line-height: 16px; padding: 0px; @@ -4554,6 +4732,7 @@ div#ecm-layout-center { max-width: 1024px; padding-left: 10px !important; padding-right: 10px !important; + word-wrap: break-word; } .jnotify-container .jnotify-notification .jnotify-message { font-weight: normal; @@ -4591,7 +4770,7 @@ div.dolEventError h1, div.dolEventError h2 { /* Maps */ /* ============================================================================== */ -.divmap, #google-visualization-geomap-embed-0, #google-visualization-geomap-embed-1, google-visualization-geomap-embed-2 { +.divmap, #google-visualization-geomap-embed-0, #google-visualization-geomap-embed-1, #google-visualization-geomap-embed-2 { } @@ -5031,7 +5210,7 @@ dl.dropdown { } .dropdown ul { margin: -1px 0 0 0; - text-align: left; + text-align: ; } .dropdown dd { position:relative; @@ -5053,7 +5232,7 @@ dl.dropdown { background-color: #FFF; box-shadow: 1px 1px 10px #aaa; display:none; - right:0px; /* pop is align on right */ + :0px; /* pop is align on right */ padding: 0 0 0 0; position:absolute; top:2px; @@ -5065,13 +5244,14 @@ dl.dropdown { white-space: nowrap; font-weight: normal; padding: 7px 8px 7px 8px; + /* color: rgb(); */ color: #000; } .dropdown dd ul li:hover { background: #eee; } .dropdown dd ul li input[type="checkbox"] { - margin-right: 3px; + margin-: 3px; } .dropdown dd ul li a, .dropdown dd ul li span { padding: 3px; @@ -5125,7 +5305,7 @@ a.ui-link, a.ui-link:hover, .ui-btn:hover, span.ui-btn-text:hover, span.ui-btn-i min-width: .4em; padding-left: 6px; padding-right: 6px; - font-size: px; + font-size: ; /* white-space: normal; */ /* Warning, enable this break the truncate feature */ } .ui-btn-icon-right .ui-btn-inner { @@ -5845,7 +6025,7 @@ border-top-right-radius: 6px; } .titlefield { - width: auto !important; /* We want to ignor the 30%, try to use more if you can */ + width: auto !important; /* We want to ignore the 30%, try to use more if you can */ } .tableforfield>tr>td:first-child, .tableforfield>tbody>tr>td:first-child, div.tableforfield div.tagtr>div.tagtd:first-of-type { /* max-width: 100px; */ /* but no more than 100px */ @@ -5853,6 +6033,10 @@ border-top-right-radius: 6px; .tableforfield>tr>td:nth-child(2), .tableforfield>tbody>tr>td:nth-child(2), div.tableforfield div.tagtr>div.tagtd:nth-child(2) { word-break: break-word; } + + table.table-fiche-title .col-title div.titre{ + line-height: unset; + } } diff --git a/htdocs/theme/md/theme_vars.inc.php b/htdocs/theme/md/theme_vars.inc.php index 6bf6ae20138..720879eadec 100644 --- a/htdocs/theme/md/theme_vars.inc.php +++ b/htdocs/theme/md/theme_vars.inc.php @@ -67,7 +67,7 @@ $colortexttitlenotab='90,90,90'; $colortexttitle='20,20,20'; $colortext='0,0,0'; $colortextlink='0,0,120'; -$fontsize='14'; +$fontsize = '14'; $fontsizesmaller='11'; // text color diff --git a/htdocs/ticket/agenda.php b/htdocs/ticket/agenda.php index 49b901c6d12..c5ffc4b0ab8 100644 --- a/htdocs/ticket/agenda.php +++ b/htdocs/ticket/agenda.php @@ -42,8 +42,8 @@ $action = GETPOST('action', 'aZ09'); $limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit; $sortfield = GETPOST("sortfield", "alpha"); -$sortorder = GETPOST("sortorder"); -$page = GETPOST("page"); +$sortorder = GETPOST("sortorder", 'alpha'); +$page = GETPOST("page", 'int'); $page = is_numeric($page) ? $page : 0; $page = $page == -1 ? 0 : $page; if (!$sortfield) $sortfield = "a.datep,a.id"; diff --git a/htdocs/ticket/messaging.php b/htdocs/ticket/messaging.php index da7bf1aaadc..fd432fa6dde 100644 --- a/htdocs/ticket/messaging.php +++ b/htdocs/ticket/messaging.php @@ -42,8 +42,8 @@ $action = GETPOST('action', 'aZ09'); $limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit; $sortfield = GETPOST("sortfield", "alpha"); -$sortorder = GETPOST("sortorder"); -$page = GETPOST("page"); +$sortorder = GETPOST("sortorder", 'alpha'); +$page = GETPOST("page", 'int'); $page = is_numeric($page) ? $page : 0; $page = $page == -1 ? 0 : $page; if (!$sortfield) $sortfield = "a.datep,a.id";