Merge remote-tracking branch 'upstream/develop' into actioncomm_category
|
Before Width: | Height: | Size: 1.0 MiB After Width: | Height: | Size: 142 KiB |
|
Before Width: | Height: | Size: 1.0 MiB After Width: | Height: | Size: 122 KiB |
|
Before Width: | Height: | Size: 1.1 MiB After Width: | Height: | Size: 113 KiB |
BIN
dev/initdemo/documents_demo/societe/12/courrier_consult.odt
Normal file
BIN
dev/initdemo/documents_demo/societe/12/logos/person8.jpeg
Normal file
|
After Width: | Height: | Size: 7.0 KiB |
|
Before Width: | Height: | Size: 5.8 KiB |
|
After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 4.2 KiB |
|
Before Width: | Height: | Size: 1.9 KiB |
|
Before Width: | Height: | Size: 4.8 KiB |
BIN
dev/initdemo/documents_demo/societe/12/radiography1.jpg
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
dev/initdemo/documents_demo/societe/12/radiography2-knee.jpg
Normal file
|
After Width: | Height: | Size: 8.7 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 3.5 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 3.8 KiB |
|
Before Width: | Height: | Size: 1.0 MiB After Width: | Height: | Size: 154 KiB |
|
Before Width: | Height: | Size: 1.1 MiB After Width: | Height: | Size: 172 KiB |
|
Before Width: | Height: | Size: 1.0 MiB After Width: | Height: | Size: 147 KiB |
|
Before Width: | Height: | Size: 1.1 MiB After Width: | Height: | Size: 148 KiB |
|
Before Width: | Height: | Size: 1.1 MiB After Width: | Height: | Size: 143 KiB |
|
Before Width: | Height: | Size: 1.0 MiB After Width: | Height: | Size: 142 KiB |
|
Before Width: | Height: | Size: 1.1 MiB After Width: | Height: | Size: 113 KiB |
|
Before Width: | Height: | Size: 1.0 MiB After Width: | Height: | Size: 122 KiB |
|
Before Width: | Height: | Size: 991 KiB After Width: | Height: | Size: 117 KiB |
@ -245,18 +245,6 @@ export list="
|
|||||||
--ignore-table=$base.llx_c_ticketsup_category
|
--ignore-table=$base.llx_c_ticketsup_category
|
||||||
--ignore-table=$base.llx_c_ticketsup_severity
|
--ignore-table=$base.llx_c_ticketsup_severity
|
||||||
--ignore-table=$base.llx_c_ticketsup_type
|
--ignore-table=$base.llx_c_ticketsup_type
|
||||||
--ignore-table=$base.llx_cabinetmed_c_banques
|
|
||||||
--ignore-table=$base.llx_cabinetmed_c_ccam
|
|
||||||
--ignore-table=$base.llx_cabinetmed_c_examconclusion
|
|
||||||
--ignore-table=$base.llx_cabinetmed_cons
|
|
||||||
--ignore-table=$base.llx_cabinetmed_cons_extrafields
|
|
||||||
--ignore-table=$base.llx_cabinetmed_diaglec
|
|
||||||
--ignore-table=$base.llx_cabinetmed_examaut
|
|
||||||
--ignore-table=$base.llx_cabinetmed_exambio
|
|
||||||
--ignore-table=$base.llx_cabinetmed_examenprescrit
|
|
||||||
--ignore-table=$base.llx_cabinetmed_motifcons
|
|
||||||
--ignore-table=$base.llx_cabinetmed_patient
|
|
||||||
--ignore-table=$base.llx_cabinetmed_societe
|
|
||||||
--ignore-table=$base.llx_congespayes
|
--ignore-table=$base.llx_congespayes
|
||||||
--ignore-table=$base.llx_congespayes_config
|
--ignore-table=$base.llx_congespayes_config
|
||||||
--ignore-table=$base.llx_congespayes_events
|
--ignore-table=$base.llx_congespayes_events
|
||||||
@ -300,6 +288,7 @@ export list="
|
|||||||
--ignore-table=$base.llx_m_extrafields
|
--ignore-table=$base.llx_m_extrafields
|
||||||
--ignore-table=$base.llx_monmodule_abcdef
|
--ignore-table=$base.llx_monmodule_abcdef
|
||||||
--ignore-table=$base.llx_notes
|
--ignore-table=$base.llx_notes
|
||||||
|
--ignore-table=$base.llx_packages
|
||||||
--ignore-table=$base.llx_pos_cash
|
--ignore-table=$base.llx_pos_cash
|
||||||
--ignore-table=$base.llx_pos_control_cash
|
--ignore-table=$base.llx_pos_control_cash
|
||||||
--ignore-table=$base.llx_pos_facture
|
--ignore-table=$base.llx_pos_facture
|
||||||
@ -316,6 +305,7 @@ export list="
|
|||||||
--ignore-table=$base.llx_residence_building
|
--ignore-table=$base.llx_residence_building
|
||||||
--ignore-table=$base.llx_residence_building_links
|
--ignore-table=$base.llx_residence_building_links
|
||||||
--ignore-table=$base.llx_societe_rib2
|
--ignore-table=$base.llx_societe_rib2
|
||||||
|
--ignore-table=$base.llx_sellyoursaas_cancellation
|
||||||
--ignore-table=$base.llx_ticketsup
|
--ignore-table=$base.llx_ticketsup
|
||||||
--ignore-table=$base.llx_ultimatepdf
|
--ignore-table=$base.llx_ultimatepdf
|
||||||
--ignore-table=$base.llx_update_modules
|
--ignore-table=$base.llx_update_modules
|
||||||
|
|||||||
@ -7,6 +7,9 @@
|
|||||||
# Usage: txpull.sh (all|xx_XX) [-r dolibarr.file] [-f]
|
# Usage: txpull.sh (all|xx_XX) [-r dolibarr.file] [-f]
|
||||||
#------------------------------------------------------
|
#------------------------------------------------------
|
||||||
|
|
||||||
|
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
|
||||||
|
cd $DIR/../..
|
||||||
|
|
||||||
# Syntax
|
# Syntax
|
||||||
if [ "x$1" = "x" ]
|
if [ "x$1" = "x" ]
|
||||||
then
|
then
|
||||||
|
|||||||
@ -9,6 +9,9 @@
|
|||||||
|
|
||||||
export project='dolibarr'
|
export project='dolibarr'
|
||||||
|
|
||||||
|
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
|
||||||
|
cd $DIR/../..
|
||||||
|
|
||||||
# Syntax
|
# Syntax
|
||||||
if [ "x$1" = "x" ]
|
if [ "x$1" = "x" ]
|
||||||
then
|
then
|
||||||
|
|||||||
@ -37,7 +37,7 @@ include_once DOL_DOCUMENT_ROOT.'/core/class/html.formactions.class.php';
|
|||||||
require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php';
|
||||||
|
|
||||||
// Load translation files required by the page
|
// Load translation files required by the page
|
||||||
$langs->loadLangs(array("users", "companies", "agenda", "commercial"));
|
$langs->loadLangs(array("users", "companies", "agenda", "commercial", "other"));
|
||||||
|
|
||||||
$action = GETPOST('action', 'alpha');
|
$action = GETPOST('action', 'alpha');
|
||||||
$contextpage = GETPOST('contextpage', 'aZ') ?GETPOST('contextpage', 'aZ') : 'actioncommlist'; // To manage different context of search
|
$contextpage = GETPOST('contextpage', 'aZ') ?GETPOST('contextpage', 'aZ') : 'actioncommlist'; // To manage different context of search
|
||||||
|
|||||||
@ -354,7 +354,7 @@ if ($action == 'create')
|
|||||||
|
|
||||||
// Label
|
// Label
|
||||||
print '<tr><td class="fieldrequired">'.$langs->trans("LabelBankCashAccount").'</td>';
|
print '<tr><td class="fieldrequired">'.$langs->trans("LabelBankCashAccount").'</td>';
|
||||||
print '<td><input size="30" type="text" class="flat" name="label" value="'.dol_escape_htmltag(GETPOST("label", 'alpha')).'"></td></tr>';
|
print '<td><input type="text" class="flat maxwidth150onsmartphone" name="label" value="'.dol_escape_htmltag(GETPOST("label", 'alpha')).'"></td></tr>';
|
||||||
|
|
||||||
// Type
|
// Type
|
||||||
print '<tr><td class="fieldrequired">'.$langs->trans("AccountType").'</td>';
|
print '<tr><td class="fieldrequired">'.$langs->trans("AccountType").'</td>';
|
||||||
@ -375,7 +375,7 @@ if ($action == 'create')
|
|||||||
// Status
|
// Status
|
||||||
print '<tr><td class="fieldrequired">'.$langs->trans("Status").'</td>';
|
print '<tr><td class="fieldrequired">'.$langs->trans("Status").'</td>';
|
||||||
print '<td>';
|
print '<td>';
|
||||||
print $form->selectarray("clos", $object->status, (GETPOST("clos", 'int') != '' ?GETPOST("clos", 'int') : $object->clos));
|
print $form->selectarray("clos", $object->status, (GETPOST("clos", 'int') != '' ?GETPOST("clos", 'int') : $object->clos), 0, 0, 0, '', 0, 0, 0, '', 'maxwidth150onsmartphone');
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
// Country
|
// Country
|
||||||
@ -412,7 +412,7 @@ if ($action == 'create')
|
|||||||
// Tags-Categories
|
// Tags-Categories
|
||||||
if ($conf->categorie->enabled)
|
if ($conf->categorie->enabled)
|
||||||
{
|
{
|
||||||
print '<tr><td class="tdtop">'.$langs->trans("Categories").'</td><td>';
|
print '<tr><td>'.$langs->trans("Categories").'</td><td>';
|
||||||
$cate_arbo = $form->select_all_categories(Categorie::TYPE_ACCOUNT, '', 'parent', 64, 0, 1);
|
$cate_arbo = $form->select_all_categories(Categorie::TYPE_ACCOUNT, '', 'parent', 64, 0, 1);
|
||||||
|
|
||||||
$arrayselected = array();
|
$arrayselected = array();
|
||||||
@ -429,7 +429,7 @@ if ($action == 'create')
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Comment
|
// Comment
|
||||||
print '<tr><td class="tdtop">'.$langs->trans("Comment").'</td>';
|
print '<tr><td>'.$langs->trans("Comment").'</td>';
|
||||||
print '<td>';
|
print '<td>';
|
||||||
// Editor wysiwyg
|
// Editor wysiwyg
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
|
||||||
@ -476,31 +476,32 @@ if ($action == 'create')
|
|||||||
|
|
||||||
// If bank account
|
// If bank account
|
||||||
print '<tr><td class="titlefieldcreate">'.$langs->trans("BankName").'</td>';
|
print '<tr><td class="titlefieldcreate">'.$langs->trans("BankName").'</td>';
|
||||||
print '<td><input size="30" type="text" class="flat" name="bank" value="'.(GETPOST('bank') ?GETPOST('bank', 'alpha') : $object->bank).'"></td>';
|
print '<td><input type="text" class="flat minwidth150" name="bank" value="'.(GETPOST('bank') ?GETPOST('bank', 'alpha') : $object->bank).'"></td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
|
|
||||||
// Show fields of bank account
|
// Show fields of bank account
|
||||||
|
$sizecss = '';
|
||||||
foreach ($object->getFieldsToShow() as $val) {
|
foreach ($object->getFieldsToShow() as $val) {
|
||||||
if ($val == 'BankCode') {
|
if ($val == 'BankCode') {
|
||||||
$name = 'code_banque';
|
$name = 'code_banque';
|
||||||
$size = 8;
|
$sizecss = 'minwidth100';
|
||||||
$content = $object->code_banque;
|
$content = $object->code_banque;
|
||||||
} elseif ($val == 'DeskCode') {
|
} elseif ($val == 'DeskCode') {
|
||||||
$name = 'code_guichet';
|
$name = 'code_guichet';
|
||||||
$size = 8;
|
$sizecss = 'minwidth100';
|
||||||
$content = $object->code_guichet;
|
$content = $object->code_guichet;
|
||||||
} elseif ($val == 'BankAccountNumber') {
|
} elseif ($val == 'BankAccountNumber') {
|
||||||
$name = 'number';
|
$name = 'number';
|
||||||
$size = 18;
|
$sizecss = 'minwidth200';
|
||||||
$content = $object->number;
|
$content = $object->number;
|
||||||
} elseif ($val == 'BankAccountNumberKey') {
|
} elseif ($val == 'BankAccountNumberKey') {
|
||||||
$name = 'cle_rib';
|
$name = 'cle_rib';
|
||||||
$size = 3;
|
$sizecss = 'minwidth50';
|
||||||
$content = $object->cle_rib;
|
$content = $object->cle_rib;
|
||||||
}
|
}
|
||||||
|
|
||||||
print '<td>'.$langs->trans($val).'</td>';
|
print '<td>'.$langs->trans($val).'</td>';
|
||||||
print '<td><input size="'.$size.'" type="text" class="flat" name="'.$name.'" value="'.(GETPOST($name) ?GETPOST($name, 'alpha') : $content).'"></td>';
|
print '<td><input type="text" class="flat '.$sizecss.'" name="'.$name.'" value="'.(GETPOST($name) ?GETPOST($name, 'alpha') : $content).'"></td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
}
|
}
|
||||||
$ibankey = FormBank::getIBANLabel($object);
|
$ibankey = FormBank::getIBANLabel($object);
|
||||||
@ -509,22 +510,22 @@ if ($action == 'create')
|
|||||||
|
|
||||||
// IBAN
|
// IBAN
|
||||||
print '<tr><td>'.$langs->trans($ibankey).'</td>';
|
print '<tr><td>'.$langs->trans($ibankey).'</td>';
|
||||||
print '<td><input size="34" maxlength="34" type="text" class="flat" name="iban" value="'.(GETPOST('iban') ?GETPOST('iban', 'alpha') : $object->iban).'"></td></tr>';
|
print '<td><input maxlength="34" type="text" class="flat minwidth300" name="iban" value="'.(GETPOST('iban') ?GETPOST('iban', 'alpha') : $object->iban).'"></td></tr>';
|
||||||
|
|
||||||
print '<tr><td>'.$langs->trans($bickey).'</td>';
|
print '<tr><td>'.$langs->trans($bickey).'</td>';
|
||||||
print '<td><input size="11" maxlength="11" type="text" class="flat" name="bic" value="'.(GETPOST('bic') ?GETPOST('bic', 'alpha') : $object->bic).'"></td></tr>';
|
print '<td><input maxlength="11" type="text" class="flat minwidth150" name="bic" value="'.(GETPOST('bic') ?GETPOST('bic', 'alpha') : $object->bic).'"></td></tr>';
|
||||||
|
|
||||||
print '<tr><td>'.$langs->trans("BankAccountDomiciliation").'</td><td>';
|
print '<tr><td>'.$langs->trans("BankAccountDomiciliation").'</td><td>';
|
||||||
print "<textarea class=\"flat\" name=\"domiciliation\" rows=\"2\" cols=\"40\">";
|
print '<textarea class="flat quatrevingtpercent" name="domiciliation" rows="'.ROWS_2.'">';
|
||||||
print (GETPOST('domiciliation') ?GETPOST('domiciliation') : $object->domiciliation);
|
print (GETPOST('domiciliation') ?GETPOST('domiciliation') : $object->domiciliation);
|
||||||
print "</textarea></td></tr>";
|
print "</textarea></td></tr>";
|
||||||
|
|
||||||
print '<tr><td>'.$langs->trans("BankAccountOwner").'</td>';
|
print '<tr><td>'.$langs->trans("BankAccountOwner").'</td>';
|
||||||
print '<td><input size="30" type="text" class="flat" name="proprio" value="'.(GETPOST('proprio') ?GETPOST('proprio', 'alpha') : $object->proprio).'">';
|
print '<td><input type="text" class="flat minwidth300" name="proprio" value="'.(GETPOST('proprio') ?GETPOST('proprio', 'alpha') : $object->proprio).'">';
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
print '<tr><td class="tdtop">'.$langs->trans("BankAccountOwnerAddress").'</td><td>';
|
print '<tr><td class="tdtop">'.$langs->trans("BankAccountOwnerAddress").'</td><td>';
|
||||||
print "<textarea class=\"flat\" name=\"owner_address\" rows=\"2\" cols=\"40\">";
|
print '<textarea class="flat quatrevingtpercent" name="owner_address" rows="'.ROWS_2.'">';
|
||||||
print (GETPOST('owner_address') ?GETPOST('owner_address', 'alpha') : $object->owner_address);
|
print (GETPOST('owner_address') ?GETPOST('owner_address', 'alpha') : $object->owner_address);
|
||||||
print "</textarea></td></tr>";
|
print "</textarea></td></tr>";
|
||||||
|
|
||||||
|
|||||||
@ -192,6 +192,7 @@ class DolEditor
|
|||||||
$out.= '<!-- Output ckeditor $disallowAnyContent='.$disallowAnyContent.' toolbarname='.$this->toolbarname.' -->'."\n";
|
$out.= '<!-- Output ckeditor $disallowAnyContent='.$disallowAnyContent.' toolbarname='.$this->toolbarname.' -->'."\n";
|
||||||
$out.= '<script type="text/javascript">
|
$out.= '<script type="text/javascript">
|
||||||
$(document).ready(function () {
|
$(document).ready(function () {
|
||||||
|
/* console.log("Run ckeditor"); */
|
||||||
/* if (CKEDITOR.loadFullCore) CKEDITOR.loadFullCore(); */
|
/* if (CKEDITOR.loadFullCore) CKEDITOR.loadFullCore(); */
|
||||||
/* should be editor=CKEDITOR.replace but what if serveral editors ? */
|
/* should be editor=CKEDITOR.replace but what if serveral editors ? */
|
||||||
CKEDITOR.replace(\''.$this->htmlname.'\',
|
CKEDITOR.replace(\''.$this->htmlname.'\',
|
||||||
@ -225,6 +226,7 @@ class DolEditor
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
}';
|
}';
|
||||||
|
|
||||||
if ($this->uselocalbrowser)
|
if ($this->uselocalbrowser)
|
||||||
{
|
{
|
||||||
$out.= ','."\n";
|
$out.= ','."\n";
|
||||||
|
|||||||
@ -3550,7 +3550,7 @@ class Form
|
|||||||
|
|
||||||
$return = '';
|
$return = '';
|
||||||
|
|
||||||
$return .= '<select class="flat" id="select_'.$htmlname.'" name="'.$htmlname.'">';
|
$return .= '<select class="flat maxwidth75" id="select_'.$htmlname.'" name="'.$htmlname.'">';
|
||||||
$options = array(
|
$options = array(
|
||||||
'HT'=>$langs->trans("HT"),
|
'HT'=>$langs->trans("HT"),
|
||||||
'TTC'=>$langs->trans("TTC")
|
'TTC'=>$langs->trans("TTC")
|
||||||
@ -3953,10 +3953,11 @@ class Form
|
|||||||
* - array (list of categories ids)
|
* - array (list of categories ids)
|
||||||
* @param int $outputmode 0=HTML select string, 1=Array
|
* @param int $outputmode 0=HTML select string, 1=Array
|
||||||
* @param int $include [=0] Removed or 1=Keep only
|
* @param int $include [=0] Removed or 1=Keep only
|
||||||
|
* @param string $morecss More CSS
|
||||||
* @return string
|
* @return string
|
||||||
* @see select_categories()
|
* @see select_categories()
|
||||||
*/
|
*/
|
||||||
public function select_all_categories($type, $selected = '', $htmlname = "parent", $maxlength = 64, $markafterid = 0, $outputmode = 0, $include = 0)
|
public function select_all_categories($type, $selected = '', $htmlname = "parent", $maxlength = 64, $markafterid = 0, $outputmode = 0, $include = 0, $morecss = '')
|
||||||
{
|
{
|
||||||
// phpcs:enable
|
// phpcs:enable
|
||||||
global $conf, $langs;
|
global $conf, $langs;
|
||||||
@ -3999,7 +4000,7 @@ class Form
|
|||||||
$cate_arbo = $cat->get_full_arbo($type, $markafterid, $include);
|
$cate_arbo = $cat->get_full_arbo($type, $markafterid, $include);
|
||||||
}
|
}
|
||||||
|
|
||||||
$output = '<select class="flat" name="'.$htmlname.'" id="'.$htmlname.'">';
|
$output = '<select class="flat'.($morecss ? ' '.$morecss : '').'" name="'.$htmlname.'" id="'.$htmlname.'">';
|
||||||
$outarray = array();
|
$outarray = array();
|
||||||
if (is_array($cate_arbo))
|
if (is_array($cate_arbo))
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1099,7 +1099,7 @@ class FormFile
|
|||||||
if ($disablecrop == -1)
|
if ($disablecrop == -1)
|
||||||
{
|
{
|
||||||
$disablecrop = 1;
|
$disablecrop = 1;
|
||||||
if (in_array($modulepart, array('bank', 'bom', 'expensereport', 'holiday', 'member', 'mrp', 'project', 'product', 'produit', 'service', 'societe', 'tax', 'ticket', 'user'))) $disablecrop = 0;
|
if (in_array($modulepart, array('bank', 'bom', 'expensereport', 'holiday', 'member', 'mrp', 'project', 'product', 'produit', 'propal', 'service', 'societe', 'tax', 'ticket', 'user'))) $disablecrop = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Define relative path used to store the file
|
// Define relative path used to store the file
|
||||||
|
|||||||
@ -200,7 +200,7 @@ class FormTicket
|
|||||||
|
|
||||||
// Type
|
// Type
|
||||||
print '<tr><td class="titlefield"><span class="fieldrequired"><label for="selecttype_code">'.$langs->trans("TicketTypeRequest").'</span></label></td><td>';
|
print '<tr><td class="titlefield"><span class="fieldrequired"><label for="selecttype_code">'.$langs->trans("TicketTypeRequest").'</span></label></td><td>';
|
||||||
$this->selectTypesTickets((GETPOST('type_code') ? GETPOST('type_code') : $this->type_code), 'type_code', '', '2');
|
$this->selectTypesTickets((GETPOST('type_code', 'alpha') ? GETPOST('type_code', 'alpha') : $this->type_code), 'type_code', '', '2', 0, 0, 0, 'minwidth150');
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
// Severity
|
// Severity
|
||||||
@ -225,7 +225,7 @@ class FormTicket
|
|||||||
if ($this->withthreadid > 0) {
|
if ($this->withthreadid > 0) {
|
||||||
$subject = $langs->trans('SubjectAnswerToTicket').' '.$this->withthreadid.' : '.$this->topic_title.'';
|
$subject = $langs->trans('SubjectAnswerToTicket').' '.$this->withthreadid.' : '.$this->topic_title.'';
|
||||||
}
|
}
|
||||||
print '<input class="text" size="50" id="subject" name="subject" value="'.(GETPOST('subject', 'alpha') ? GETPOST('subject', 'alpha') : $subject).'" />';
|
print '<input class="text minwidth300" id="subject" name="subject" value="'.(GETPOST('subject', 'alpha') ? GETPOST('subject', 'alpha') : $subject).'" />';
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -376,8 +376,8 @@ class FormTicket
|
|||||||
}
|
}
|
||||||
|
|
||||||
$out = '<tr>';
|
$out = '<tr>';
|
||||||
$out .= '<td width="180">' . $langs->trans("MailFile") . '</td>';
|
$out .= '<td>' . $langs->trans("MailFile") . '</td>';
|
||||||
$out .= '<td colspan="2">';
|
$out .= '<td>';
|
||||||
// TODO Trick to have param removedfile containing nb of image to delete. But this does not works without javascript
|
// TODO Trick to have param removedfile containing nb of image to delete. But this does not works without javascript
|
||||||
$out .= '<input type="hidden" class="removedfilehidden" name="removedfile" value="">' . "\n";
|
$out .= '<input type="hidden" class="removedfilehidden" name="removedfile" value="">' . "\n";
|
||||||
$out .= '<script type="text/javascript" language="javascript">';
|
$out .= '<script type="text/javascript" language="javascript">';
|
||||||
|
|||||||
@ -8372,6 +8372,7 @@ function dolGetButtonTitle($label, $helpText = '', $iconClass = 'fa fa-file', $u
|
|||||||
}
|
}
|
||||||
|
|
||||||
$class = 'btnTitle';
|
$class = 'btnTitle';
|
||||||
|
|
||||||
// hidden conf keep during button transition TODO: remove this block
|
// hidden conf keep during button transition TODO: remove this block
|
||||||
if (!empty($conf->global->MAIN_USE_OLD_TITLE_BUTTON)) {
|
if (!empty($conf->global->MAIN_USE_OLD_TITLE_BUTTON)) {
|
||||||
$class = 'butActionNew';
|
$class = 'butActionNew';
|
||||||
@ -8446,10 +8447,9 @@ function dolGetButtonTitle($label, $helpText = '', $iconClass = 'fa fa-file', $u
|
|||||||
|
|
||||||
$tag = (empty($attr['href']) ? 'span' : 'a');
|
$tag = (empty($attr['href']) ? 'span' : 'a');
|
||||||
|
|
||||||
|
|
||||||
$button = '<'.$tag.' '.$compiledAttributes.' >';
|
$button = '<'.$tag.' '.$compiledAttributes.' >';
|
||||||
$button .= '<span class="'.$iconClass.' valignmiddle btnTitle-icon"></span>';
|
$button .= '<span class="'.$iconClass.' valignmiddle btnTitle-icon"></span>';
|
||||||
$button .= '<span class="valignmiddle text-plus-circle btnTitle-label">'.$label.'</span>';
|
$button .= '<span class="valignmiddle text-plus-circle btnTitle-label'.(empty($params['forcenohideoftext']) ? ' hideonsmartphone' : '').'">'.$label.'</span>';
|
||||||
$button .= '</'.$tag.'>';
|
$button .= '</'.$tag.'>';
|
||||||
|
|
||||||
// hidden conf keep during button transition TODO: remove this block
|
// hidden conf keep during button transition TODO: remove this block
|
||||||
|
|||||||
@ -308,35 +308,94 @@ function dol_imageResizeOrCrop($file, $mode, $newWidth, $newHeight, $src_x = 0,
|
|||||||
*/
|
*/
|
||||||
function dolRotateImage($file_path)
|
function dolRotateImage($file_path)
|
||||||
{
|
{
|
||||||
$exif = @exif_read_data($file_path);
|
return correctExifImageOrientation($file_path, $file_path);
|
||||||
if ($exif === false) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
$orientation = intval(@$exif['Orientation']);
|
|
||||||
if (!in_array($orientation, array(3, 6, 8))) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
$image = @imagecreatefromjpeg($file_path);
|
|
||||||
switch ($orientation) {
|
|
||||||
case 3:
|
|
||||||
$image = @imagerotate($image, 180, 0);
|
|
||||||
break;
|
|
||||||
case 6:
|
|
||||||
$image = @imagerotate($image, 270, 0);
|
|
||||||
break;
|
|
||||||
case 8:
|
|
||||||
$image = @imagerotate($image, 90, 0);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
$success = imagejpeg($image, $file_path);
|
|
||||||
// Free up memory (imagedestroy does not delete files):
|
|
||||||
@imagedestroy($image);
|
|
||||||
return $success;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add exif orientation correction for image
|
||||||
|
*
|
||||||
|
* @param string $fileSource Full path to source image to rotate
|
||||||
|
* @param string $fileDest string : Full path to image to rotate | false return gd img | null the raw image stream will be outputted directly
|
||||||
|
* @param int $quality output image quality
|
||||||
|
* @return bool : true on success or false on failure or gd img if $fileDest is false.
|
||||||
|
*/
|
||||||
|
function correctExifImageOrientation($fileSource, $fileDest, $quality = 95)
|
||||||
|
{
|
||||||
|
if (function_exists('exif_read_data')) {
|
||||||
|
$exif = exif_read_data($fileSource);
|
||||||
|
if ($exif && isset($exif['Orientation'])) {
|
||||||
|
|
||||||
|
$infoImg = getimagesize($fileSource); // Get image infos
|
||||||
|
|
||||||
|
$orientation = $exif['Orientation'];
|
||||||
|
if($orientation != 1){
|
||||||
|
$img = imagecreatefromjpeg($fileSource);
|
||||||
|
$deg = 0;
|
||||||
|
switch ($orientation) {
|
||||||
|
case 3:
|
||||||
|
$deg = 180;
|
||||||
|
break;
|
||||||
|
case 6:
|
||||||
|
$deg = 270;
|
||||||
|
break;
|
||||||
|
case 8:
|
||||||
|
$deg = 90;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if ($deg) {
|
||||||
|
if($infoImg[2] === 'IMAGETYPE_PNG') // In fact there is no exif on PNG but just in case
|
||||||
|
{
|
||||||
|
imagealphablending($img, false);
|
||||||
|
imagesavealpha($img, true);
|
||||||
|
$img = imagerotate($img, $deg, imageColorAllocateAlpha($img, 0, 0, 0, 127));
|
||||||
|
imagealphablending($img, false);
|
||||||
|
imagesavealpha($img, true);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
$img = imagerotate($img, $deg, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// then rewrite the rotated image back to the disk as $fileDest
|
||||||
|
if($fileDest === false){
|
||||||
|
return $img;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// In fact there exif is only for JPG but just in case
|
||||||
|
// Create image on disk
|
||||||
|
$image = false;
|
||||||
|
|
||||||
|
switch($infoImg[2])
|
||||||
|
{
|
||||||
|
case IMAGETYPE_GIF: // 1
|
||||||
|
$image = imagegif($img, $fileDest);
|
||||||
|
break;
|
||||||
|
case IMAGETYPE_JPEG: // 2
|
||||||
|
$image = imagejpeg($img, $fileDest, $quality);
|
||||||
|
break;
|
||||||
|
case IMAGETYPE_PNG: // 3
|
||||||
|
$image = imagepng($img, $fileDest, $quality);
|
||||||
|
break;
|
||||||
|
case IMAGETYPE_BMP: // 6
|
||||||
|
// Not supported by PHP GD
|
||||||
|
break;
|
||||||
|
case IMAGETYPE_WBMP: // 15
|
||||||
|
$image = imagewbmp($img, $fileDest);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Free up memory (imagedestroy does not delete files):
|
||||||
|
@imagedestroy($img);
|
||||||
|
|
||||||
|
return $image;
|
||||||
|
}
|
||||||
|
} // if there is some rotation necessary
|
||||||
|
} // if have the exif orientation info
|
||||||
|
} // if function exists
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a thumbnail from an image file (Supported extensions are gif, jpg, png and bmp).
|
* Create a thumbnail from an image file (Supported extensions are gif, jpg, png and bmp).
|
||||||
@ -379,12 +438,12 @@ function vignette($file, $maxWidth = 160, $maxHeight = 120, $extName = '_small',
|
|||||||
dol_syslog('This file '.$file.' does not seem to be an image format file name.', LOG_WARNING);
|
dol_syslog('This file '.$file.' does not seem to be an image format file name.', LOG_WARNING);
|
||||||
return 'ErrorBadImageFormat';
|
return 'ErrorBadImageFormat';
|
||||||
}
|
}
|
||||||
elseif(!is_numeric($maxWidth) || empty($maxWidth) || $maxWidth < -1){
|
elseif(!is_numeric($maxWidth) || empty($maxWidth) || $maxWidth < -1) {
|
||||||
// Si la largeur max est incorrecte (n'est pas numerique, est vide, ou est inferieure a 0)
|
// Si la largeur max est incorrecte (n'est pas numerique, est vide, ou est inferieure a 0)
|
||||||
dol_syslog('Wrong value for parameter maxWidth', LOG_ERR);
|
dol_syslog('Wrong value for parameter maxWidth', LOG_ERR);
|
||||||
return 'Error: Wrong value for parameter maxWidth';
|
return 'Error: Wrong value for parameter maxWidth';
|
||||||
}
|
}
|
||||||
elseif(!is_numeric($maxHeight) || empty($maxHeight) || $maxHeight < -1){
|
elseif(!is_numeric($maxHeight) || empty($maxHeight) || $maxHeight < -1) {
|
||||||
// Si la hauteur max est incorrecte (n'est pas numerique, est vide, ou est inferieure a 0)
|
// Si la hauteur max est incorrecte (n'est pas numerique, est vide, ou est inferieure a 0)
|
||||||
dol_syslog('Wrong value for parameter maxHeight', LOG_ERR);
|
dol_syslog('Wrong value for parameter maxHeight', LOG_ERR);
|
||||||
return 'Error: Wrong value for parameter maxHeight';
|
return 'Error: Wrong value for parameter maxHeight';
|
||||||
@ -396,6 +455,14 @@ function vignette($file, $maxWidth = 160, $maxHeight = 120, $extName = '_small',
|
|||||||
$imgWidth = $infoImg[0]; // Largeur de l'image
|
$imgWidth = $infoImg[0]; // Largeur de l'image
|
||||||
$imgHeight = $infoImg[1]; // Hauteur de l'image
|
$imgHeight = $infoImg[1]; // Hauteur de l'image
|
||||||
|
|
||||||
|
$ort = false;
|
||||||
|
if (function_exists('exif_read_data')) {
|
||||||
|
$exif = exif_read_data($filetoread);
|
||||||
|
if ($exif && !empty($exif['Orientation'])) {
|
||||||
|
$ort = $exif['Orientation'];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if ($maxWidth == -1) $maxWidth=$infoImg[0]; // If size is -1, we keep unchanged
|
if ($maxWidth == -1) $maxWidth=$infoImg[0]; // If size is -1, we keep unchanged
|
||||||
if ($maxHeight == -1) $maxHeight=$infoImg[1]; // If size is -1, we keep unchanged
|
if ($maxHeight == -1) $maxHeight=$infoImg[1]; // If size is -1, we keep unchanged
|
||||||
|
|
||||||
@ -470,6 +537,52 @@ function vignette($file, $maxWidth = 160, $maxHeight = 120, $extName = '_small',
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$exifAngle = false;
|
||||||
|
if ($ort && !empty($conf->global->MAIN_USE_EXIF_ROTATION)) {
|
||||||
|
switch($ort)
|
||||||
|
{
|
||||||
|
case 3: // 180 rotate left
|
||||||
|
$exifAngle = 180;
|
||||||
|
break;
|
||||||
|
case 6: // 90 rotate right
|
||||||
|
$exifAngle = -90;
|
||||||
|
// changing sizes
|
||||||
|
$trueImgWidth = $infoImg[1];
|
||||||
|
$trueImgHeight = $infoImg[0];
|
||||||
|
break;
|
||||||
|
case 8: // 90 rotate left
|
||||||
|
$exifAngle = 90;
|
||||||
|
// changing sizes
|
||||||
|
$trueImgWidth = $infoImg[1]; // Largeur de l'image
|
||||||
|
$trueImgHeight = $infoImg[0]; // Hauteur de l'image
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($exifAngle)
|
||||||
|
{
|
||||||
|
$rotated = false;
|
||||||
|
|
||||||
|
if($infoImg[2] === 'IMAGETYPE_PNG') // In fact there is no exif on PNG but just in case
|
||||||
|
{
|
||||||
|
imagealphablending($img, false);
|
||||||
|
imagesavealpha($img, true);
|
||||||
|
$rotated = imagerotate($img, $exifAngle, imageColorAllocateAlpha($img, 0, 0, 0, 127));
|
||||||
|
imagealphablending($rotated, false);
|
||||||
|
imagesavealpha($rotated, true);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
$rotated = imagerotate($img, $exifAngle, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
// replace image with good orientation
|
||||||
|
if(!empty($rotated)){
|
||||||
|
$img = $rotated;
|
||||||
|
$imgWidth = $trueImgWidth;
|
||||||
|
$imgHeight = $trueImgHeight;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Initialisation des dimensions de la vignette si elles sont superieures a l'original
|
// Initialisation des dimensions de la vignette si elles sont superieures a l'original
|
||||||
if($maxWidth > $imgWidth){ $maxWidth = $imgWidth; }
|
if($maxWidth > $imgWidth){ $maxWidth = $imgWidth; }
|
||||||
if($maxHeight > $imgHeight){ $maxHeight = $imgHeight; }
|
if($maxHeight > $imgHeight){ $maxHeight = $imgHeight; }
|
||||||
|
|||||||
@ -1282,9 +1282,11 @@ function pdf_getlinedesc($object, $i, $outputlangs, $hideref = 0, $hidedesc = 0,
|
|||||||
if (!empty($prodser->multilangs[$outputlangs->defaultlang]["note"]) && ($textwasmodified || $translatealsoifmodified)) $note = $prodser->multilangs[$outputlangs->defaultlang]["note"];
|
if (!empty($prodser->multilangs[$outputlangs->defaultlang]["note"]) && ($textwasmodified || $translatealsoifmodified)) $note = $prodser->multilangs[$outputlangs->defaultlang]["note"];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
elseif ($object->type == Facture::TYPE_DEPOSIT && $object->element == 'facture') {
|
elseif ($object->element == 'facture' || $object->element == 'facturefourn') {
|
||||||
|
if ($object->type == $object::TYPE_DEPOSIT) {
|
||||||
$desc = str_replace('(DEPOSIT)', $outputlangs->trans('Deposit'), $desc);
|
$desc = str_replace('(DEPOSIT)', $outputlangs->trans('Deposit'), $desc);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Description short of product line
|
// Description short of product line
|
||||||
$libelleproduitservice = $label;
|
$libelleproduitservice = $label;
|
||||||
|
|||||||
@ -119,7 +119,18 @@ elseif ($modulepart == 'project')
|
|||||||
{
|
{
|
||||||
$result = $object->fetch($id);
|
$result = $object->fetch($id);
|
||||||
if ($result <= 0) dol_print_error($db, 'Failed to load object');
|
if ($result <= 0) dol_print_error($db, 'Failed to load object');
|
||||||
$dir = $conf->projet->dir_output; // By default
|
$dir = $conf->project->multidir_output[$object->entity]; // By default
|
||||||
|
}
|
||||||
|
}
|
||||||
|
elseif ($modulepart == 'propal')
|
||||||
|
{
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/comm/propal/class/propal.class.php';
|
||||||
|
$object = new Propal($db);
|
||||||
|
if ($id > 0)
|
||||||
|
{
|
||||||
|
$result = $object->fetch($id);
|
||||||
|
if ($result <= 0) dol_print_error($db, 'Failed to load object');
|
||||||
|
$dir = $conf->propal->multidir_output[$object->entity]; // By default
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
elseif ($modulepart == 'holiday')
|
elseif ($modulepart == 'holiday')
|
||||||
@ -243,6 +254,7 @@ if (empty($backtourl))
|
|||||||
elseif (in_array($modulepart, array('holiday'))) $backtourl = DOL_URL_ROOT."/holiday/document.php?id=".$id.'&file='.urldecode($_POST["file"]);
|
elseif (in_array($modulepart, array('holiday'))) $backtourl = DOL_URL_ROOT."/holiday/document.php?id=".$id.'&file='.urldecode($_POST["file"]);
|
||||||
elseif (in_array($modulepart, array('member'))) $backtourl = DOL_URL_ROOT."/adherents/document.php?id=".$id.'&file='.urldecode($_POST["file"]);
|
elseif (in_array($modulepart, array('member'))) $backtourl = DOL_URL_ROOT."/adherents/document.php?id=".$id.'&file='.urldecode($_POST["file"]);
|
||||||
elseif (in_array($modulepart, array('project'))) $backtourl = DOL_URL_ROOT."/projet/document.php?id=".$id.'&file='.urldecode($_POST["file"]);
|
elseif (in_array($modulepart, array('project'))) $backtourl = DOL_URL_ROOT."/projet/document.php?id=".$id.'&file='.urldecode($_POST["file"]);
|
||||||
|
elseif (in_array($modulepart, array('propal'))) $backtourl = DOL_URL_ROOT."/comm/propal/document.php?id=".$id.'&file='.urldecode($_POST["file"]);
|
||||||
elseif (in_array($modulepart, array('societe'))) $backtourl = DOL_URL_ROOT."/societe/document.php?id=".$id.'&file='.urldecode($_POST["file"]);
|
elseif (in_array($modulepart, array('societe'))) $backtourl = DOL_URL_ROOT."/societe/document.php?id=".$id.'&file='.urldecode($_POST["file"]);
|
||||||
elseif (in_array($modulepart, array('tax'))) $backtourl = DOL_URL_ROOT."/compta/sociales/document.php?id=".$id.'&file='.urldecode($_POST["file"]);
|
elseif (in_array($modulepart, array('tax'))) $backtourl = DOL_URL_ROOT."/compta/sociales/document.php?id=".$id.'&file='.urldecode($_POST["file"]);
|
||||||
elseif (in_array($modulepart, array('ticket'))) $backtourl = DOL_URL_ROOT."/ticket/document.php?id=".$id.'&file='.urldecode($_POST["file"]);
|
elseif (in_array($modulepart, array('ticket'))) $backtourl = DOL_URL_ROOT."/ticket/document.php?id=".$id.'&file='.urldecode($_POST["file"]);
|
||||||
|
|||||||
@ -73,6 +73,7 @@ function llxFooter()
|
|||||||
|
|
||||||
require 'main.inc.php'; // Load $user and permissions
|
require 'main.inc.php'; // Load $user and permissions
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/images.lib.php';
|
||||||
|
|
||||||
$encoding = '';
|
$encoding = '';
|
||||||
$action=GETPOST('action', 'alpha');
|
$action=GETPOST('action', 'alpha');
|
||||||
@ -252,11 +253,20 @@ if ($encoding) header('Content-Encoding: '.$encoding);
|
|||||||
// Add MIME Content-Disposition from RFC 2183 (inline=automatically displayed, attachment=need user action to open)
|
// Add MIME Content-Disposition from RFC 2183 (inline=automatically displayed, attachment=need user action to open)
|
||||||
if ($attachment) header('Content-Disposition: attachment; filename="'.$filename.'"');
|
if ($attachment) header('Content-Disposition: attachment; filename="'.$filename.'"');
|
||||||
else header('Content-Disposition: inline; filename="'.$filename.'"');
|
else header('Content-Disposition: inline; filename="'.$filename.'"');
|
||||||
header('Content-Length: ' . dol_filesize($fullpath_original_file));
|
|
||||||
// Ajout directives pour resoudre bug IE
|
// Ajout directives pour resoudre bug IE
|
||||||
header('Cache-Control: Public, must-revalidate');
|
header('Cache-Control: Public, must-revalidate');
|
||||||
header('Pragma: public');
|
header('Pragma: public');
|
||||||
|
$readfile = true;
|
||||||
|
|
||||||
readfile($fullpath_original_file_osencoded);
|
// on view document, can output images with good orientation according to exif infos
|
||||||
|
if (!$attachment && !empty($conf->global->MAIN_USE_EXIF_ROTATION) && image_format_supported($fullpath_original_file_osencoded) == 1) {
|
||||||
|
$imgres = correctExifImageOrientation($fullpath_original_file_osencoded, null);
|
||||||
|
$readfile = !$imgres;
|
||||||
|
}
|
||||||
|
|
||||||
|
if($readfile){
|
||||||
|
header('Content-Length: ' . dol_filesize($fullpath_original_file));
|
||||||
|
readfile($fullpath_original_file_osencoded);
|
||||||
|
}
|
||||||
|
|
||||||
if (is_object($db)) $db->close();
|
if (is_object($db)) $db->close();
|
||||||
|
|||||||
@ -1670,8 +1670,9 @@ CashDesk=Point of Sale
|
|||||||
CashDeskSetup=Point of Sales module setup
|
CashDeskSetup=Point of Sales module setup
|
||||||
CashDeskThirdPartyForSell=Default generic third party to use for sales
|
CashDeskThirdPartyForSell=Default generic third party to use for sales
|
||||||
CashDeskBankAccountForSell=Default account to use to receive cash payments
|
CashDeskBankAccountForSell=Default account to use to receive cash payments
|
||||||
CashDeskBankAccountForCheque= Default account to use to receive payments by check
|
CashDeskBankAccountForCheque=Default account to use to receive payments by check
|
||||||
CashDeskBankAccountForCB= Default account to use to receive payments by credit cards
|
CashDeskBankAccountForCB=Default account to use to receive payments by credit cards
|
||||||
|
CashDeskBankAccountForSumup=Default bank account to use to receive payments by SumUp
|
||||||
CashDeskDoNotDecreaseStock=Disable stock decrease when a sale is done from Point of Sale (if "no", stock decrease is done for each sale done from POS, irrespective of the option set in module Stock).
|
CashDeskDoNotDecreaseStock=Disable stock decrease when a sale is done from Point of Sale (if "no", stock decrease is done for each sale done from POS, irrespective of the option set in module Stock).
|
||||||
CashDeskIdWareHouse=Force and restrict warehouse to use for stock decrease
|
CashDeskIdWareHouse=Force and restrict warehouse to use for stock decrease
|
||||||
StockDecreaseForPointOfSaleDisabled=Stock decrease from Point of Sale disabled
|
StockDecreaseForPointOfSaleDisabled=Stock decrease from Point of Sale disabled
|
||||||
|
|||||||
@ -56,7 +56,7 @@ NoPageYet=No pages yet
|
|||||||
YouCanCreatePageOrImportTemplate=You can create a new page or import a full website template
|
YouCanCreatePageOrImportTemplate=You can create a new page or import a full website template
|
||||||
SyntaxHelp=Help on specific syntax tips
|
SyntaxHelp=Help on specific syntax tips
|
||||||
YouCanEditHtmlSourceckeditor=You can edit HTML source code using the "Source" button in editor.
|
YouCanEditHtmlSourceckeditor=You can edit HTML source code using the "Source" button in editor.
|
||||||
YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong><?php ?></strong>. The following global variables are available: $conf, $db, $mysoc, $user, $website, $websitepage, $weblangs.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong><?php includeContainer('alias_of_container_to_include'); ?></strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax (Note: do not output any content before a redirect):<br><strong><?php redirectToContainer('alias_of_container_to_redirect_to'); ?></strong><br><br><span class="fa fa-link"></span> To add a link to another page, use the syntax:<br><strong><a href="alias_of_page_to_link_to.php">mylink<a></strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong><a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"></strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong><a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"></strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong><a href="/document.php?hashp=publicsharekeyoffile"></strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open directory for public access), syntax is:<br><strong><img src="/viewimage.php?modulepart=medias&file=[relative_dir/]filename.ext"></strong><br>
|
YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong><?php ?></strong>. The following global variables are available: $conf, $db, $mysoc, $user, $website, $websitepage, $weblangs.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong><?php includeContainer('alias_of_container_to_include'); ?></strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax (Note: do not output any content before a redirect):<br><strong><?php redirectToContainer('alias_of_container_to_redirect_to'); ?></strong><br><br><span class="fa fa-link"></span> To add a link to another page, use the syntax:<br><strong><a href="alias_of_page_to_link_to.php">mylink<a></strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong><a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"></strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong><a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"></strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong><a href="/document.php?hashp=publicsharekeyoffile"></strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open directory for public access), syntax is:<br><strong><img src="/viewimage.php?modulepart=medias&file=[relative_dir/]filename.ext"></strong><br><br>More examples of HTML or dynamic code available on <a href="%s" target="_blank">the wiki documentation</a><br>.
|
||||||
ClonePage=Clone page/container
|
ClonePage=Clone page/container
|
||||||
CloneSite=Clone site
|
CloneSite=Clone site
|
||||||
SiteAdded=Website added
|
SiteAdded=Website added
|
||||||
|
|||||||
@ -232,7 +232,7 @@ require_once 'master.inc.php';
|
|||||||
register_shutdown_function('dol_shutdown');
|
register_shutdown_function('dol_shutdown');
|
||||||
|
|
||||||
// Load debugbar
|
// Load debugbar
|
||||||
if (!empty($conf->debugbar->enabled))
|
if (!empty($conf->debugbar->enabled) && ! GETPOST('dol_use_jmobile') && empty($_SESSION['dol_use_jmobile']))
|
||||||
{
|
{
|
||||||
global $debugbar;
|
global $debugbar;
|
||||||
include_once DOL_DOCUMENT_ROOT.'/debugbar/class/DebugBar.php';
|
include_once DOL_DOCUMENT_ROOT.'/debugbar/class/DebugBar.php';
|
||||||
|
|||||||
@ -1023,7 +1023,9 @@ else
|
|||||||
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formbarcode.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formbarcode.class.php';
|
||||||
$formbarcode = new FormBarCode($db);
|
$formbarcode = new FormBarCode($db);
|
||||||
print $formbarcode->selectBarcodeType($fk_barcode_type, 'fk_barcode_type', 1);
|
print $formbarcode->selectBarcodeType($fk_barcode_type, 'fk_barcode_type', 1);
|
||||||
print '</td><td>'.$langs->trans("BarcodeValue").'</td><td>';
|
print '</td>';
|
||||||
|
if ($conf->browser->layout == 'phone') print '</tr><tr>';
|
||||||
|
print '<td>'.$langs->trans("BarcodeValue").'</td><td>';
|
||||||
$tmpcode = isset($_POST['barcode']) ?GETPOST('barcode') : $object->barcode;
|
$tmpcode = isset($_POST['barcode']) ?GETPOST('barcode') : $object->barcode;
|
||||||
if (empty($tmpcode) && !empty($modBarCodeProduct->code_auto)) $tmpcode = $modBarCodeProduct->getNextValue($object, $type);
|
if (empty($tmpcode) && !empty($modBarCodeProduct->code_auto)) $tmpcode = $modBarCodeProduct->getNextValue($object, $type);
|
||||||
print '<input class="maxwidth100" type="text" name="barcode" value="'.dol_escape_htmltag($tmpcode).'">';
|
print '<input class="maxwidth100" type="text" name="barcode" value="'.dol_escape_htmltag($tmpcode).'">';
|
||||||
@ -1052,10 +1054,13 @@ else
|
|||||||
print '<span class="fa fa-plus-circle valignmiddle paddingleft" title="'.$langs->trans("AddWarehouse").'"></span>';
|
print '<span class="fa fa-plus-circle valignmiddle paddingleft" title="'.$langs->trans("AddWarehouse").'"></span>';
|
||||||
print '</a>';
|
print '</a>';
|
||||||
print '</td>';
|
print '</td>';
|
||||||
|
print '</tr>';
|
||||||
|
|
||||||
// Stock min level
|
// Stock min level
|
||||||
print '<tr><td>'.$form->textwithpicto($langs->trans("StockLimit"), $langs->trans("StockLimitDesc"), 1).'</td><td>';
|
print '<tr><td>'.$form->textwithpicto($langs->trans("StockLimit"), $langs->trans("StockLimitDesc"), 1).'</td><td>';
|
||||||
print '<input name="seuil_stock_alerte" class="maxwidth50" value="'.GETPOST('seuil_stock_alerte').'">';
|
print '<input name="seuil_stock_alerte" class="maxwidth50" value="'.GETPOST('seuil_stock_alerte').'">';
|
||||||
print '</td>';
|
print '</td>';
|
||||||
|
if ($conf->browser->layout == 'phone') print '</tr><tr>';
|
||||||
// Stock desired level
|
// Stock desired level
|
||||||
print '<td>'.$form->textwithpicto($langs->trans("DesiredStock"), $langs->trans("DesiredStockDesc"), 1).'</td><td>';
|
print '<td>'.$form->textwithpicto($langs->trans("DesiredStock"), $langs->trans("DesiredStockDesc"), 1).'</td><td>';
|
||||||
print '<input name="desiredstock" class="maxwidth50" value="'.GETPOST('desiredstock').'">';
|
print '<input name="desiredstock" class="maxwidth50" value="'.GETPOST('desiredstock').'">';
|
||||||
@ -1094,9 +1099,9 @@ else
|
|||||||
if (empty($conf->global->PRODUCT_DISABLE_SIZE))
|
if (empty($conf->global->PRODUCT_DISABLE_SIZE))
|
||||||
{
|
{
|
||||||
print '<tr><td>'.$langs->trans("Length").' x '.$langs->trans("Width").' x '.$langs->trans("Height").'</td><td colspan="3">';
|
print '<tr><td>'.$langs->trans("Length").' x '.$langs->trans("Width").' x '.$langs->trans("Height").'</td><td colspan="3">';
|
||||||
print '<input name="size" size="4" value="'.GETPOST('size').'"> x ';
|
print '<input name="size" class="width50" value="'.GETPOST('size').'"> x ';
|
||||||
print '<input name="sizewidth" size="4" value="'.GETPOST('sizewidth').'"> x ';
|
print '<input name="sizewidth" class="width50" value="'.GETPOST('sizewidth').'"> x ';
|
||||||
print '<input name="sizeheight" size="4" value="'.GETPOST('sizeheight').'">';
|
print '<input name="sizeheight" class="width50" value="'.GETPOST('sizeheight').'">';
|
||||||
print $formproduct->selectMeasuringUnits("size_units", "size", GETPOSTISSET('size_units') ?GETPOST('size_units', 'alpha') : '0', 0, 2);
|
print $formproduct->selectMeasuringUnits("size_units", "size", GETPOSTISSET('size_units') ?GETPOST('size_units', 'alpha') : '0', 0, 2);
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
}
|
}
|
||||||
@ -1140,8 +1145,10 @@ else
|
|||||||
if (empty($conf->global->PRODUCT_DISABLE_CUSTOM_INFO) && empty($type))
|
if (empty($conf->global->PRODUCT_DISABLE_CUSTOM_INFO) && empty($type))
|
||||||
{
|
{
|
||||||
print '<tr><td>'.$langs->trans("CustomCode").'</td><td><input name="customcode" class="maxwidth100onsmartphone" value="'.GETPOST('customcode').'"></td>';
|
print '<tr><td>'.$langs->trans("CustomCode").'</td><td><input name="customcode" class="maxwidth100onsmartphone" value="'.GETPOST('customcode').'"></td>';
|
||||||
|
if ($conf->browser->layout == 'phone') print '</tr><tr>';
|
||||||
// Origin country
|
// Origin country
|
||||||
print '<td>'.$langs->trans("CountryOrigin").'</td><td>';
|
print '<td>'.$langs->trans("CountryOrigin").'</td>';
|
||||||
|
print '<td>';
|
||||||
print $form->select_country(GETPOST('country_id', 'int'), 'country_id');
|
print $form->select_country(GETPOST('country_id', 'int'), 'country_id');
|
||||||
if ($user->admin) print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"), 1);
|
if ($user->admin) print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"), 1);
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
@ -1178,7 +1185,7 @@ else
|
|||||||
|
|
||||||
print '</table>';
|
print '</table>';
|
||||||
|
|
||||||
print '<br>';
|
print '<hr>';
|
||||||
|
|
||||||
if (!empty($conf->global->PRODUIT_MULTIPRICES))
|
if (!empty($conf->global->PRODUIT_MULTIPRICES))
|
||||||
{
|
{
|
||||||
@ -1191,6 +1198,7 @@ else
|
|||||||
print $form->load_tva("tva_tx", $defaultva, $mysoc, $mysoc, 0, 0, '', false, 1);
|
print $form->load_tva("tva_tx", $defaultva, $mysoc, $mysoc, 0, 0, '', false, 1);
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
print '</table>';
|
print '</table>';
|
||||||
|
|
||||||
print '<br>';
|
print '<br>';
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|||||||
@ -1201,7 +1201,7 @@ class Product extends CommonObject
|
|||||||
}
|
}
|
||||||
|
|
||||||
//We also check if it is a child product
|
//We also check if it is a child product
|
||||||
if (!$error && ($prodcomb->fetchByFkProductChild($id) > 0) && ($prodcomb->delete($user) < 0)) {
|
if (!$error && ($prodcomb->fetchByFkProductChild($this->id) > 0) && ($prodcomb->delete($user) < 0)) {
|
||||||
$error++;
|
$error++;
|
||||||
$this->errors[] = 'Error deleting child combination';
|
$this->errors[] = 'Error deleting child combination';
|
||||||
}
|
}
|
||||||
|
|||||||
@ -481,19 +481,21 @@ if ($resql)
|
|||||||
$massactionbutton = $form->selectMassAction('', $arrayofmassactions);
|
$massactionbutton = $form->selectMassAction('', $arrayofmassactions);
|
||||||
|
|
||||||
$newcardbutton = '';
|
$newcardbutton = '';
|
||||||
$rightskey = 'produit';
|
if ($type === "") $perm = ($user->rights->produit->creer || $user->rights->service->creer);
|
||||||
if ($type == Product::TYPE_SERVICE) $rightskey = 'service';
|
elseif ($type == Product::TYPE_SERVICE) $perm = $user->rights->service->creer;
|
||||||
if ($user->rights->{$rightskey}->creer)
|
elseif ($type == Product::TYPE_PRODUCT) $perm = $user->rights->produit->creer;
|
||||||
|
if ($perm)
|
||||||
{
|
{
|
||||||
$oldtype = $type;
|
$oldtype = $type;
|
||||||
|
$params = array();
|
||||||
|
if ($type === "") $params['forcenohideoftext']=1;
|
||||||
if ($type === "") {
|
if ($type === "") {
|
||||||
$newcardbutton .= dolGetButtonTitle($langs->trans('NewProduct'), '', 'fa fa-plus-circle', DOL_URL_ROOT.'/product/card.php?action=create&type=0');
|
$newcardbutton .= dolGetButtonTitle($langs->trans('NewProduct'), '', 'fa fa-plus-circle', DOL_URL_ROOT.'/product/card.php?action=create&type=0', '', 1, $params);
|
||||||
$type = Product::TYPE_SERVICE;
|
$type = Product::TYPE_SERVICE;
|
||||||
}
|
}
|
||||||
$label = 'NewProduct';
|
$label = 'NewProduct';
|
||||||
if ($type == Product::TYPE_SERVICE) $label = 'NewService';
|
if ($type == Product::TYPE_SERVICE) $label = 'NewService';
|
||||||
$newcardbutton .= dolGetButtonTitle($langs->trans($label), '', 'fa fa-plus-circle', DOL_URL_ROOT.'/product/card.php?action=create&type='.$type);
|
$newcardbutton .= dolGetButtonTitle($langs->trans($label), '', 'fa fa-plus-circle', DOL_URL_ROOT.'/product/card.php?action=create&type='.$type, '', 1, $params);
|
||||||
|
|
||||||
$type = $oldtype;
|
$type = $oldtype;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -723,7 +723,9 @@ while ($i < ($limit ? min($num, $limit) : $num))
|
|||||||
print '<td class="right"><input type="text" size="4" name="tobuy'.$i.'" value="'.$stocktobuy.'"></td>';
|
print '<td class="right"><input type="text" size="4" name="tobuy'.$i.'" value="'.$stocktobuy.'"></td>';
|
||||||
|
|
||||||
// Supplier
|
// Supplier
|
||||||
print '<td class="right">'.$form->select_product_fourn_price($prod->id, 'fourn'.$i, $fk_supplier).'</td>';
|
print '<td class="right">';
|
||||||
|
$form->select_product_fourn_price($prod->id, 'fourn'.$i, $fk_supplier);
|
||||||
|
print '</td>';
|
||||||
|
|
||||||
// Fields from hook
|
// Fields from hook
|
||||||
$parameters = array('objp'=>$objp);
|
$parameters = array('objp'=>$objp);
|
||||||
|
|||||||
@ -949,7 +949,7 @@ if (!empty($arrayfields['s.import_key']['checked']))
|
|||||||
print '</td>';
|
print '</td>';
|
||||||
}
|
}
|
||||||
// Action column
|
// Action column
|
||||||
print '<td class="liste_titre right">';
|
print '<td class="liste_titre center">';
|
||||||
$searchpicto = $form->showFilterButtons();
|
$searchpicto = $form->showFilterButtons();
|
||||||
print $searchpicto;
|
print $searchpicto;
|
||||||
print '</td>';
|
print '</td>';
|
||||||
|
|||||||
@ -128,6 +128,7 @@ print '<form action="'.$_SERVER["PHP_SELF"].'" method="post">';
|
|||||||
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||||
print '<input type="hidden" name="action" value="set">';
|
print '<input type="hidden" name="action" value="set">';
|
||||||
|
|
||||||
|
print '<div class="div-table-responsive">';
|
||||||
print '<table class="noborder centpercent">';
|
print '<table class="noborder centpercent">';
|
||||||
|
|
||||||
print '<tr class="liste_titre">';
|
print '<tr class="liste_titre">';
|
||||||
@ -244,20 +245,6 @@ print '<td colspan="2">';
|
|||||||
print $form->selectyesno("TAKEPOS_DIRECT_PAYMENT", $conf->global->TAKEPOS_DIRECT_PAYMENT, 1);
|
print $form->selectyesno("TAKEPOS_DIRECT_PAYMENT", $conf->global->TAKEPOS_DIRECT_PAYMENT, 1);
|
||||||
print "</td></tr>\n";
|
print "</td></tr>\n";
|
||||||
|
|
||||||
// Sumup options
|
|
||||||
if ($conf->global->TAKEPOS_ENABLE_SUMUP) {
|
|
||||||
print '<tr class="oddeven"><td>';
|
|
||||||
print $langs->trans("SumupAffiliate");
|
|
||||||
print '<td colspan="2">';
|
|
||||||
print '<input type="text" name="TAKEPOS_SUMUP_AFFILIATE" value="'.$conf->global->TAKEPOS_SUMUP_AFFILIATE.'"></input>';
|
|
||||||
print "</td></tr>\n";
|
|
||||||
print '<tr class="oddeven"><td>';
|
|
||||||
print $langs->trans("SumupAppId");
|
|
||||||
print '<td colspan="2">';
|
|
||||||
print '<input type="text" name="TAKEPOS_SUMUP_APPID" value="'.$conf->global->TAKEPOS_SUMUP_APPID.'"></input>';
|
|
||||||
print "</td></tr>\n";
|
|
||||||
}
|
|
||||||
|
|
||||||
// Custom Receipt
|
// Custom Receipt
|
||||||
print '<tr class="oddeven"><td>';
|
print '<tr class="oddeven"><td>';
|
||||||
print $langs->trans('CustomReceipt');
|
print $langs->trans('CustomReceipt');
|
||||||
@ -290,6 +277,33 @@ print $form->selectarray('TAKEPOS_EMAIL_TEMPLATE_INVOICE', $arrayofmessagename,
|
|||||||
print "</td></tr>\n";
|
print "</td></tr>\n";
|
||||||
|
|
||||||
print '</table>';
|
print '</table>';
|
||||||
|
print '</div>';
|
||||||
|
|
||||||
|
// Sumup options
|
||||||
|
if ($conf->global->TAKEPOS_ENABLE_SUMUP) {
|
||||||
|
print '<br>';
|
||||||
|
|
||||||
|
print '<div class="div-table-responsive">';
|
||||||
|
print '<table class="noborder centpercent">';
|
||||||
|
|
||||||
|
print '<tr class="liste_titre">';
|
||||||
|
print '<td>'.$langs->trans("Parameters").'</td><td>'.$langs->trans("Value").'</td>';
|
||||||
|
print "</tr>\n";
|
||||||
|
|
||||||
|
print '<tr class="oddeven"><td>';
|
||||||
|
print $langs->trans("SumupAffiliate");
|
||||||
|
print '<td colspan="2">';
|
||||||
|
print '<input type="text" name="TAKEPOS_SUMUP_AFFILIATE" value="'.$conf->global->TAKEPOS_SUMUP_AFFILIATE.'"></input>';
|
||||||
|
print "</td></tr>\n";
|
||||||
|
print '<tr class="oddeven"><td>';
|
||||||
|
print $langs->trans("SumupAppId");
|
||||||
|
print '<td colspan="2">';
|
||||||
|
print '<input type="text" name="TAKEPOS_SUMUP_APPID" value="'.$conf->global->TAKEPOS_SUMUP_APPID.'"></input>';
|
||||||
|
print "</td></tr>\n";
|
||||||
|
|
||||||
|
print '</table>';
|
||||||
|
print '</div>';
|
||||||
|
}
|
||||||
|
|
||||||
print '<br>';
|
print '<br>';
|
||||||
|
|
||||||
|
|||||||
@ -126,6 +126,7 @@ print '<form action="'.$_SERVER["PHP_SELF"].'?terminal='.(empty($terminal) ? 1 :
|
|||||||
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||||
print '<input type="hidden" name="action" value="set">';
|
print '<input type="hidden" name="action" value="set">';
|
||||||
|
|
||||||
|
print '<div class="div-table-responsive">';
|
||||||
print '<table class="noborder centpercent">';
|
print '<table class="noborder centpercent">';
|
||||||
print '<tr class="liste_titre">';
|
print '<tr class="liste_titre">';
|
||||||
print '<td>'.$langs->trans("Parameters").'</td><td>'.$langs->trans("Value").'</td>';
|
print '<td>'.$langs->trans("Parameters").'</td><td>'.$langs->trans("Value").'</td>';
|
||||||
@ -236,6 +237,7 @@ if (!empty($conf->stock->enabled))
|
|||||||
}
|
}
|
||||||
|
|
||||||
print '</table>';
|
print '</table>';
|
||||||
|
print '</div>';
|
||||||
|
|
||||||
if ($atleastonefound == 0 && !empty($conf->banque->enabled))
|
if ($atleastonefound == 0 && !empty($conf->banque->enabled))
|
||||||
{
|
{
|
||||||
|
|||||||
@ -26,6 +26,17 @@ button.calcbutton2.poscolordelete {
|
|||||||
}
|
}
|
||||||
|
|
||||||
button.calcbutton {
|
button.calcbutton {
|
||||||
|
display: inline-block;
|
||||||
|
position: relative;
|
||||||
|
padding: 0;
|
||||||
|
line-height: normal;
|
||||||
|
cursor: pointer;
|
||||||
|
vertical-align: middle;
|
||||||
|
text-align: center;
|
||||||
|
overflow: visible; /* removes extra width in IE */
|
||||||
|
width: calc(25% - 2px);
|
||||||
|
height: 24%;
|
||||||
|
font-weight: bold;
|
||||||
background-color: #8c907e;
|
background-color: #8c907e;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
/* border-color: unset; */
|
/* border-color: unset; */
|
||||||
@ -37,9 +48,6 @@ button.calcbutton2 {
|
|||||||
color: #fff;
|
color: #fff;
|
||||||
background-color: #5555AA;
|
background-color: #5555AA;
|
||||||
border-width: 0px;
|
border-width: 0px;
|
||||||
}
|
|
||||||
|
|
||||||
button.calcbutton {
|
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
position: relative;
|
position: relative;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
@ -48,22 +56,8 @@ button.calcbutton {
|
|||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
overflow: visible; /* removes extra width in IE */
|
overflow: visible; /* removes extra width in IE */
|
||||||
width:24%;
|
width: calc(25% - 2px);
|
||||||
height:24%;
|
height: 24%;
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
button.calcbutton2 {
|
|
||||||
display: inline-block;
|
|
||||||
position: relative;
|
|
||||||
padding: 0;
|
|
||||||
line-height: normal;
|
|
||||||
cursor: pointer;
|
|
||||||
vertical-align: middle;
|
|
||||||
text-align: center;
|
|
||||||
overflow: visible; /* removes extra width in IE */
|
|
||||||
width:24%;
|
|
||||||
height:24%;
|
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -77,8 +71,8 @@ button.calcbutton3 {
|
|||||||
text-align: center;
|
text-align: center;
|
||||||
font-size:120%;
|
font-size:120%;
|
||||||
overflow: visible; /* removes extra width in IE */
|
overflow: visible; /* removes extra width in IE */
|
||||||
width:24%;
|
width: calc(25% - 2px);
|
||||||
height:24%;
|
height: 24%;
|
||||||
}
|
}
|
||||||
|
|
||||||
button.actionbutton {
|
button.actionbutton {
|
||||||
@ -100,6 +94,9 @@ button.actionbutton {
|
|||||||
height:24%;
|
height:24%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.takepospay {
|
||||||
|
font-size: 1.5em;
|
||||||
|
}
|
||||||
|
|
||||||
.fa.fa-trash:before {
|
.fa.fa-trash:before {
|
||||||
font-size: 1.5em;
|
font-size: 1.5em;
|
||||||
@ -156,7 +153,7 @@ div.description{
|
|||||||
text-align:center;
|
text-align:center;
|
||||||
|
|
||||||
padding-top: 30px;
|
padding-top: 30px;
|
||||||
background: -webkit-linear-gradient(top, rgba(255,255,255,0), rgba(255,255,255,1), white);
|
background: -webkit-linear-gradient(top, rgba(255,255,255,0), rgba(255,255,255,0.98), rgba(255,255,255,1));
|
||||||
}
|
}
|
||||||
|
|
||||||
div.catwatermark{
|
div.catwatermark{
|
||||||
@ -324,6 +321,8 @@ div.description_content {
|
|||||||
-webkit-box-orient: vertical;
|
-webkit-box-orient: vertical;
|
||||||
-webkit-line-clamp: 2;
|
-webkit-line-clamp: 2;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
|
padding-left: 2px;
|
||||||
|
padding-right: 2px;
|
||||||
}
|
}
|
||||||
|
|
||||||
@media screen and (min-width: 892px) {
|
@media screen and (min-width: 892px) {
|
||||||
@ -380,11 +379,37 @@ div.description_content {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@media screen and (max-width: 767px){
|
/* For small screens */
|
||||||
|
|
||||||
|
@media screen and (max-width: 767px) {
|
||||||
|
div.container {
|
||||||
|
overflow-x: scroll;
|
||||||
|
}
|
||||||
div.wrapper {
|
div.wrapper {
|
||||||
width: 50%;
|
width: 50%;
|
||||||
}
|
}
|
||||||
div.wrapper2 {
|
div.wrapper2 {
|
||||||
width: 25%;
|
width: 25%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
div.div1, div.div2, div.div3 {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.row1 {
|
||||||
|
height: unset;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.div2 {
|
||||||
|
min-height: unset;
|
||||||
|
}
|
||||||
|
|
||||||
|
button.calcbutton, button.calcbutton2 {
|
||||||
|
min-height: 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.takepospay {
|
||||||
|
font-size: 1.2em;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -45,6 +45,9 @@ $action = GETPOST('action', 'alpha');
|
|||||||
* View
|
* View
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
$arrayofcss = array('/takepos/css/pos.css');
|
||||||
|
$arrayofjs=array();
|
||||||
|
|
||||||
top_htmlhead($head, $title, $disablejs, $disablehead, $arrayofjs, $arrayofcss);
|
top_htmlhead($head, $title, $disablejs, $disablehead, $arrayofjs, $arrayofcss);
|
||||||
|
|
||||||
?>
|
?>
|
||||||
@ -62,13 +65,13 @@ $( document ).ready(function() {
|
|||||||
<body>
|
<body>
|
||||||
<br>
|
<br>
|
||||||
<center>
|
<center>
|
||||||
<input type="text" id="desc" name="desc" style="width:40%;font-size: 200%;" placeholder="<?php echo $langs->trans('Description'); ?>">
|
<input type="text" id="desc" name="desc" class="takepospay" style="width:40%;" placeholder="<?php echo $langs->trans('Description'); ?>">
|
||||||
<?php
|
<?php
|
||||||
if ($action == "freezone") echo '<input type="text" id="number" name="number" style="width:15%;font-size: 200%;" placeholder="'.$langs->trans('Price').'">';
|
if ($action == "freezone") echo '<input type="text" id="number" name="number" class="takepospay" style="width:15%;" placeholder="'.$langs->trans('Price').'">';
|
||||||
if ($action == "addnote") echo '<input type="hidden" id="number" name="number" value="'.$idline.'">';
|
if ($action == "addnote") echo '<input type="hidden" id="number" name="number" value="'.$idline.'">';
|
||||||
?>
|
?>
|
||||||
<input type="hidden" name="place" value="<?php echo $place; ?>">
|
<input type="hidden" name="place" class="takepospay" value="<?php echo $place; ?>">
|
||||||
<input type="button" class="button" style="width:15%; font-size: 200%;" value="OK" onclick="Save();">
|
<input type="button" class="button takepospay clearboth" value="OK" onclick="Save();">
|
||||||
</center>
|
</center>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
|
|||||||
@ -67,6 +67,9 @@ else
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$arrayofcss = array('/takepos/css/pos.css');
|
||||||
|
$arrayofjs=array();
|
||||||
|
|
||||||
top_htmlhead($head, $title, $disablejs, $disablehead, $arrayofjs, $arrayofcss);
|
top_htmlhead($head, $title, $disablejs, $disablehead, $arrayofjs, $arrayofcss);
|
||||||
|
|
||||||
$langs->loadLangs(array("main", "bills", "cashdesk"));
|
$langs->loadLangs(array("main", "bills", "cashdesk"));
|
||||||
@ -178,6 +181,7 @@ else print "var received=0;";
|
|||||||
}
|
}
|
||||||
|
|
||||||
function ValidateSumup() {
|
function ValidateSumup() {
|
||||||
|
console.log("Launch ValidateSumup");
|
||||||
<?php $_SESSION['SMP_CURRENT_PAYMENT'] = "NEW" ?>
|
<?php $_SESSION['SMP_CURRENT_PAYMENT'] = "NEW" ?>
|
||||||
var invoiceid = <?php echo($invoiceid > 0 ? $invoiceid : 0); ?>;
|
var invoiceid = <?php echo($invoiceid > 0 ? $invoiceid : 0); ?>;
|
||||||
var amountpayed = $("#change1").val();
|
var amountpayed = $("#change1").val();
|
||||||
@ -186,7 +190,7 @@ else print "var received=0;";
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Starting sumup app
|
// Starting sumup app
|
||||||
window.open('sumupmerchant://pay/1.0?affiliate-key=<?php echo dolibarr_get_const($db, "TAKEPOS_SUMUP_AFFILIATE")?>&app-id=<?php echo dolibarr_get_const($db, "TAKEPOS_SUMUP_APPID")?>&total=' + amountpayed + '¤cy=EUR&title=' + invoiceid + '&callback=<?php echo DOL_MAIN_URL_ROOT ?>/takepos/smpcb.php');
|
window.open('sumupmerchant://pay/1.0?affiliate-key=<?php echo $conf->global->TAKEPOS_SUMUP_AFFILIATE ?>&app-id=<?php echo $conf->global->TAKEPOS_SUMUP_APPID ?>&total=' + amountpayed + '¤cy=EUR&title=' + invoiceid + '&callback=<?php echo DOL_MAIN_URL_ROOT ?>/takepos/smpcb.php');
|
||||||
|
|
||||||
var loop = window.setInterval(function () {
|
var loop = window.setInterval(function () {
|
||||||
$.ajax('/takepos/smpcb.php?status').done(function (data) {
|
$.ajax('/takepos/smpcb.php?status').done(function (data) {
|
||||||
@ -210,23 +214,23 @@ else print "var received=0;";
|
|||||||
<div style="position:absolute; top:2%; left:5%; height:30%; width:91%;">
|
<div style="position:absolute; top:2%; left:5%; height:30%; width:91%;">
|
||||||
<center>
|
<center>
|
||||||
<div class="paymentbordline paymentbordlinetotal">
|
<div class="paymentbordline paymentbordlinetotal">
|
||||||
<center><span style='font-family: verdana,arial,helvetica; font-size: 200%;'><font color="white"><?php echo $langs->trans('TotalTTC'); ?>: </font><span id="totaldisplay" class="colorwhite"><?php echo price($invoice->total_ttc, 1, '', 1, -1, -1) ?></span></font></span></center>
|
<center><span class="takepospay"><font color="white"><?php echo $langs->trans('TotalTTC'); ?>: </font><span id="totaldisplay" class="colorwhite"><?php echo price($invoice->total_ttc, 1, '', 1, -1, -1) ?></span></font></span></center>
|
||||||
</div>
|
</div>
|
||||||
<?php if ($remaintopay != $invoice->total_ttc) { ?>
|
<?php if ($remaintopay != $invoice->total_ttc) { ?>
|
||||||
<div class="paymentbordline paymentbordlineremain">
|
<div class="paymentbordline paymentbordlineremain">
|
||||||
<center><span style='font-family: verdana,arial,helvetica; font-size: 200%;'><font color="white"><?php echo $langs->trans('RemainToPay'); ?>: </font><span id="remaintopaydisplay" class="colorwhite"><?php echo price($remaintopay, 1, '', 1, -1, -1) ?></span></font></span></center>
|
<center><span class="takepospay"><font color="white"><?php echo $langs->trans('RemainToPay'); ?>: </font><span id="remaintopaydisplay" class="colorwhite"><?php echo price($remaintopay, 1, '', 1, -1, -1) ?></span></font></span></center>
|
||||||
</div>
|
</div>
|
||||||
<?php } ?>
|
<?php } ?>
|
||||||
<div class="paymentbordline paymentbordlinereceived">
|
<div class="paymentbordline paymentbordlinereceived">
|
||||||
<center><span style='font-family: verdana,arial,helvetica; font-size: 200%;'><font color="white"><?php echo $langs->trans("Received"); ?>: </font><span class="change1 colorred"><?php echo price(0) ?></span><input type="hidden" id="change1" class="change1" value="0"></font></span></center>
|
<center><span class="takepospay"><font color="white"><?php echo $langs->trans("Received"); ?>: </font><span class="change1 colorred"><?php echo price(0) ?></span><input type="hidden" id="change1" class="change1" value="0"></font></span></center>
|
||||||
</div>
|
</div>
|
||||||
<div class="paymentbordline paymentbordlinechange">
|
<div class="paymentbordline paymentbordlinechange">
|
||||||
<center><span style='font-family: verdana,arial,helvetica; font-size: 200%;'><font color="white"><?php echo $langs->trans("Change"); ?>: </font><span class="change2 colorwhite"><?php echo price(0) ?></span><input type="hidden" id="change2" class="change2" value="0"></font></span></center>
|
<center><span class="takepospay"><font color="white"><?php echo $langs->trans("Change"); ?>: </font><span class="change2 colorwhite"><?php echo price(0) ?></span><input type="hidden" id="change2" class="change2" value="0"></font></span></center>
|
||||||
</div>
|
</div>
|
||||||
</center>
|
</center>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div style="position:absolute; top:33%; left:5%; height:55%; width:91%;">
|
<div style="position:absolute; top:33%; left:5%; height:55%; width:91%; display: inline-table;">
|
||||||
<?php
|
<?php
|
||||||
$action_buttons = array(
|
$action_buttons = array(
|
||||||
array(
|
array(
|
||||||
@ -299,10 +303,15 @@ while ($i < count($paiements)) {
|
|||||||
$i = $i + 1;
|
$i = $i + 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($conf->global->TAKEPOS_ENABLE_SUMUP && !empty(dolibarr_get_const($db, "CASHDESK_ID_BANKACCOUNT_SUMUP".$_SESSION["takeposterminal"]))) {
|
$keyforsumupbank = "CASHDESK_ID_BANKACCOUNT_SUMUP".$_SESSION["takeposterminal"];
|
||||||
?>
|
if ($conf->global->TAKEPOS_ENABLE_SUMUP) {
|
||||||
<button type="button" class="calcbutton2" onclick="ValidateSumup();">Sumup</button>
|
if (!empty($conf->global->$keyforsumupbank)) {
|
||||||
<?php
|
print '<button type="button" class="calcbutton2" onclick="ValidateSumup();">Sumup</button>';
|
||||||
|
} else {
|
||||||
|
$langs->load("errors");
|
||||||
|
$langs->load("admin");
|
||||||
|
print '<button type="button" class="calcbutton2 disabled" title="'.$langs->trans("SetupNotComplete").'">Sumup</button>';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$class = ($i == 3) ? "calcbutton3" : "calcbutton2";
|
$class = ($i == 3) ? "calcbutton3" : "calcbutton2";
|
||||||
|
|||||||
@ -181,12 +181,14 @@ function PrintCategories(first) {
|
|||||||
$("#catdesc"+i).text("");
|
$("#catdesc"+i).text("");
|
||||||
$("#catimg"+i).attr("src","genimg/empty.png");
|
$("#catimg"+i).attr("src","genimg/empty.png");
|
||||||
$("#catwatermark"+i).hide();
|
$("#catwatermark"+i).hide();
|
||||||
|
$("#catdiv"+i).attr('class', 'wrapper divempty');
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
$("#catdivdesc"+i).show();
|
$("#catdivdesc"+i).show();
|
||||||
$("#catdesc"+i).text(categories[parseInt(i)+parseInt(first)]['label']);
|
$("#catdesc"+i).text(categories[parseInt(i)+parseInt(first)]['label']);
|
||||||
$("#catimg"+i).attr("src","genimg/index.php?query=cat&id="+categories[parseInt(i)+parseInt(first)]['rowid']);
|
$("#catimg"+i).attr("src","genimg/index.php?query=cat&id="+categories[parseInt(i)+parseInt(first)]['rowid']);
|
||||||
$("#catdiv"+i).data("rowid",categories[parseInt(i)+parseInt(first)]['rowid']);
|
$("#catdiv"+i).data("rowid",categories[parseInt(i)+parseInt(first)]['rowid']);
|
||||||
|
$("#catdiv"+i).attr('class', 'wrapper');
|
||||||
$("#catwatermark"+i).show();
|
$("#catwatermark"+i).show();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -264,6 +266,7 @@ function LoadProducts(position, issubcat) {
|
|||||||
$("#proimg"+ishow).attr("title","");
|
$("#proimg"+ishow).attr("title","");
|
||||||
$("#proimg"+ishow).attr("src","genimg/empty.png");
|
$("#proimg"+ishow).attr("src","genimg/empty.png");
|
||||||
$("#prodiv"+ishow).data("rowid","");
|
$("#prodiv"+ishow).data("rowid","");
|
||||||
|
$("#prodiv"+ishow).attr("class","wrapper2 divempty");
|
||||||
$("#prowatermark"+ishow).hide();
|
$("#prowatermark"+ishow).hide();
|
||||||
ishow++; //Next product to show after print data product
|
ishow++; //Next product to show after print data product
|
||||||
}
|
}
|
||||||
@ -275,6 +278,7 @@ function LoadProducts(position, issubcat) {
|
|||||||
$("#proimg"+ishow).attr("src", "genimg/index.php?query=pro&id="+data[idata]['id']);
|
$("#proimg"+ishow).attr("src", "genimg/index.php?query=pro&id="+data[idata]['id']);
|
||||||
$("#prodiv"+ishow).data("rowid", data[idata]['id']);
|
$("#prodiv"+ishow).data("rowid", data[idata]['id']);
|
||||||
$("#prodiv"+ishow).data("iscat", 0);
|
$("#prodiv"+ishow).data("iscat", 0);
|
||||||
|
$("#prodiv"+ishow).attr("class","wrapper2");
|
||||||
$("#prowatermark"+ishow).hide();
|
$("#prowatermark"+ishow).hide();
|
||||||
ishow++; //Next product to show after print data product
|
ishow++; //Next product to show after print data product
|
||||||
}
|
}
|
||||||
@ -797,7 +801,7 @@ $menus[$r++]=array('title'=>'<span class="fa fa-sign-out-alt paddingrightonly"><
|
|||||||
<div class="description_content" id="catdesc<?php echo $count; ?>"></div>
|
<div class="description_content" id="catdesc<?php echo $count; ?>"></div>
|
||||||
</div>
|
</div>
|
||||||
<?php } ?>
|
<?php } ?>
|
||||||
<div class="catwatermark" id='catwatermark<?php echo $count; ?>'>+</div>
|
<div class="catwatermark" id='catwatermark<?php echo $count; ?>'>...</div>
|
||||||
</div>
|
</div>
|
||||||
<?php
|
<?php
|
||||||
$count++;
|
$count++;
|
||||||
@ -832,7 +836,7 @@ $menus[$r++]=array('title'=>'<span class="fa fa-sign-out-alt paddingrightonly"><
|
|||||||
<div class="description_content" id="prodesc<?php echo $count; ?>"></div>
|
<div class="description_content" id="prodesc<?php echo $count; ?>"></div>
|
||||||
</div>
|
</div>
|
||||||
<?php } ?>
|
<?php } ?>
|
||||||
<div class="catwatermark" id='prowatermark<?php echo $count; ?>'>+</div>
|
<div class="catwatermark" id='prowatermark<?php echo $count; ?>'>...</div>
|
||||||
</div>
|
</div>
|
||||||
<?php
|
<?php
|
||||||
$count++;
|
$count++;
|
||||||
|
|||||||
@ -372,6 +372,7 @@ th .button {
|
|||||||
}
|
}
|
||||||
.maxwidthsearch { /* Max width of column with the search picto */
|
.maxwidthsearch { /* Max width of column with the search picto */
|
||||||
width: 54px;
|
width: 54px;
|
||||||
|
min-width: 54px;
|
||||||
}
|
}
|
||||||
.valigntop {
|
.valigntop {
|
||||||
vertical-align: top;
|
vertical-align: top;
|
||||||
@ -5950,14 +5951,13 @@ div.tabsElem a.tab {
|
|||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.text-plus-circle {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.table-fiche-title .col-title div.titre{
|
table.table-fiche-title .col-title div.titre{
|
||||||
line-height: unset;
|
line-height: unset;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
input#addedfile {
|
||||||
|
width: 95%;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
<?php
|
<?php
|
||||||
|
|||||||
@ -594,6 +594,7 @@ th .button {
|
|||||||
}
|
}
|
||||||
.maxwidthsearch { /* Max width of column with the search picto */
|
.maxwidthsearch { /* Max width of column with the search picto */
|
||||||
width: 54px;
|
width: 54px;
|
||||||
|
min-width: 54px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.valigntop {
|
.valigntop {
|
||||||
@ -6040,6 +6041,10 @@ border-top-right-radius: 6px;
|
|||||||
table.table-fiche-title .col-title div.titre{
|
table.table-fiche-title .col-title div.titre{
|
||||||
line-height: unset;
|
line-height: unset;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
input#addedfile {
|
||||||
|
width: 95%;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -6060,15 +6065,11 @@ border-top-right-radius: 6px;
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<?php if (!defined('DISABLE_FONT_AWSOME')) { ?>
|
<?php
|
||||||
<?php include dol_buildpath($path.'/theme/'.$theme.'/main_menu_fa_icons.inc.php', 0); ?>
|
|
||||||
<?php }
|
|
||||||
|
|
||||||
include dol_buildpath($path.'/theme/'.$theme.'/dropdown.inc.php', 0);
|
include dol_buildpath($path.'/theme/'.$theme.'/dropdown.inc.php', 0);
|
||||||
include dol_buildpath($path.'/theme/'.$theme.'/info-box.inc.php', 0);
|
include dol_buildpath($path.'/theme/'.$theme.'/info-box.inc.php', 0);
|
||||||
include dol_buildpath($path.'/theme/'.$theme.'/progress.inc.php', 0);
|
include dol_buildpath($path.'/theme/'.$theme.'/progress.inc.php', 0);
|
||||||
include dol_buildpath($path.'/theme/eldy/timeline.inc.php', 0); // actually md use same style as eldy theme
|
include dol_buildpath($path.'/theme/eldy/timeline.inc.php', 0); // actually md use same style as eldy theme
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (is_object($db)) $db->close();
|
if (is_object($db)) $db->close();
|
||||||
|
|||||||
@ -75,7 +75,7 @@ $object = new Ticket($db);
|
|||||||
$extrafields = new ExtraFields($db);
|
$extrafields = new ExtraFields($db);
|
||||||
$diroutputmassaction = $conf->ticket->dir_output.'/temp/massgeneration/'.$user->id;
|
$diroutputmassaction = $conf->ticket->dir_output.'/temp/massgeneration/'.$user->id;
|
||||||
if ($socid > 0) $hookmanager->initHooks(array('thirdpartyticket'));
|
if ($socid > 0) $hookmanager->initHooks(array('thirdpartyticket'));
|
||||||
elseif ($project > 0) $hookmanager->initHooks(array('projectticket'));
|
elseif ($projectid > 0) $hookmanager->initHooks(array('projectticket'));
|
||||||
else $hookmanager->initHooks(array('ticketlist'));
|
else $hookmanager->initHooks(array('ticketlist'));
|
||||||
// Fetch optionals attributes and labels
|
// Fetch optionals attributes and labels
|
||||||
$extrafields->fetch_name_optionals_label($object->table_element);
|
$extrafields->fetch_name_optionals_label($object->table_element);
|
||||||
@ -149,6 +149,8 @@ if (GETPOST('cancel', 'alpha')) { $action = 'list'; $massaction = ''; }
|
|||||||
if (!GETPOST('confirmmassaction', 'alpha') && $massaction != 'presend' && $massaction != 'confirm_presend') { $massaction = ''; }
|
if (!GETPOST('confirmmassaction', 'alpha') && $massaction != 'presend' && $massaction != 'confirm_presend') { $massaction = ''; }
|
||||||
|
|
||||||
$parameters = array();
|
$parameters = array();
|
||||||
|
if ($socid > 0) $parameters['socid'] = $socid;
|
||||||
|
if ($projectid > 0) $parameters['projectid'] = $projectid;
|
||||||
$reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks
|
$reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks
|
||||||
if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
|
if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
|
||||||
|
|
||||||
|
|||||||
@ -1034,6 +1034,8 @@ class User extends CommonObject
|
|||||||
*/
|
*/
|
||||||
public function setCategories($categories)
|
public function setCategories($categories)
|
||||||
{
|
{
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php';
|
||||||
|
|
||||||
$type_categ = Categorie::TYPE_USER;
|
$type_categ = Categorie::TYPE_USER;
|
||||||
|
|
||||||
// Handle single category
|
// Handle single category
|
||||||
@ -1042,7 +1044,6 @@ class User extends CommonObject
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Get current categories
|
// Get current categories
|
||||||
require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php';
|
|
||||||
$c = new Categorie($this->db);
|
$c = new Categorie($this->db);
|
||||||
$existing = $c->containing($this->id, $type_categ, 'id');
|
$existing = $c->containing($this->id, $type_categ, 'id');
|
||||||
|
|
||||||
@ -1106,9 +1107,9 @@ class User extends CommonObject
|
|||||||
}
|
}
|
||||||
|
|
||||||
// If contact, remove link
|
// If contact, remove link
|
||||||
if ($this->contact_id)
|
if ($this->contactid > 0 || $this->contact_id > 0)
|
||||||
{
|
{
|
||||||
$sql = "UPDATE ".MAIN_DB_PREFIX."socpeople SET fk_user_creat = null WHERE rowid = ".$this->contact_id;
|
$sql = "UPDATE ".MAIN_DB_PREFIX."socpeople SET fk_user_creat = null WHERE rowid = ".(($this->contactid > 0) ? $this->contactid : $this->contact_id);
|
||||||
if (!$error && !$this->db->query($sql))
|
if (!$error && !$this->db->query($sql))
|
||||||
{
|
{
|
||||||
$error++;
|
$error++;
|
||||||
|
|||||||
@ -2452,7 +2452,9 @@ if (!GETPOST('hide_websitemenu'))
|
|||||||
print '<span class="websitehelp">';
|
print '<span class="websitehelp">';
|
||||||
if (GETPOST('editsource', 'alpha') || GETPOST('editcontent', 'alpha'))
|
if (GETPOST('editsource', 'alpha') || GETPOST('editcontent', 'alpha'))
|
||||||
{
|
{
|
||||||
$htmltext = $langs->transnoentitiesnoconv("YouCanEditHtmlSource").'<br>';
|
$url = 'https://wiki.dolibarr.org/index.php/Module_Website';
|
||||||
|
|
||||||
|
$htmltext = $langs->transnoentitiesnoconv("YouCanEditHtmlSource", $url).'<br>';
|
||||||
if ($conf->browser->layout == 'phone')
|
if ($conf->browser->layout == 'phone')
|
||||||
{
|
{
|
||||||
print $form->textwithpicto('', $htmltext, 1, 'help', 'inline-block', 1, 2, 'tooltipsubstitution');
|
print $form->textwithpicto('', $htmltext, 1, 'help', 'inline-block', 1, 2, 'tooltipsubstitution');
|
||||||
|
|||||||