diff --git a/build/perl/virtualmin/dolibarr.pl b/build/perl/virtualmin/dolibarr.pl
index 589e2a3f55c..a28fc430caa 100644
--- a/build/perl/virtualmin/dolibarr.pl
+++ b/build/perl/virtualmin/dolibarr.pl
@@ -30,7 +30,7 @@ return "Regis Houssin";
# script_dolibarr_versions()
sub script_dolibarr_versions
{
-return ( "7.0.0", "6.0.5", "5.0.7" );
+return ( "9.0.0", "8.0.3", "7.0.4", "6.0.8", "5.0.7" );
}
sub script_dolibarr_release
@@ -263,15 +263,16 @@ if ($upgrade) {
local @params = ( [ "action", "upgrade" ],
[ "versionfrom", $upgrade->{'version'} ],
[ "versionto", $ver ],
+ [ "installlock", "444" ],
);
local $p = $ver >= 3.8 ? "step5" : "etape5";
local $err = &call_dolibarr_wizard_page(\@params, $p, $d, $opts);
return (-1, "Dolibarr wizard failed : $err") if ($err);
- # Remove the installation directory.
- local $dinstall = "$opts->{'dir'}/install";
- $dinstall =~ s/\/$//;
- $out = &run_as_domain_user($d, "rm -rf ".quotemeta($dinstall));
+ # Remove the installation directory. (deprecated)
+ # local $dinstall = "$opts->{'dir'}/install";
+ # $dinstall =~ s/\/$//;
+ # $out = &run_as_domain_user($d, "rm -rf ".quotemeta($dinstall));
}
else {
@@ -306,15 +307,18 @@ else {
[ "login", "admin" ],
[ "pass", $dompass ],
[ "pass_verif", $dompass ],
+ [ "installlock", "444" ],
);
local $p = $ver >= 3.8 ? "step5" : "etape5";
local $err = &call_dolibarr_wizard_page(\@params, $p, $d, $opts);
return (-1, "Dolibarr wizard failed : $err") if ($err);
- # Remove the installation directory and protect config file.
- local $dinstall = "$opts->{'dir'}/install";
- $dinstall =~ s/\/$//;
- $out = &run_as_domain_user($d, "rm -rf ".quotemeta($dinstall));
+ # Remove the installation directory (deprecated)
+ # local $dinstall = "$opts->{'dir'}/install";
+ # $dinstall =~ s/\/$//;
+ # $out = &run_as_domain_user($d, "rm -rf ".quotemeta($dinstall));
+
+ # Protect config file
&set_permissions_as_domain_user($d, 0644, $cfile);
&set_permissions_as_domain_user($d, 0755, $cfiledir);
}
@@ -386,6 +390,8 @@ sub script_dolibarr_check_latest
{
local ($ver) = @_;
local @vers = &osdn_package_versions("dolibarr",
+ $ver >= 9.0 ? "dolibarr\\-(9\\.0\\.[0-9\\.]+)\\.tgz" :
+ $ver >= 8.0 ? "dolibarr\\-(8\\.0\\.[0-9\\.]+)\\.tgz" :
$ver >= 7.0 ? "dolibarr\\-(7\\.0\\.[0-9\\.]+)\\.tgz" :
$ver >= 6.0 ? "dolibarr\\-(6\\.0\\.[0-9\\.]+)\\.tgz" :
$ver >= 5.0 ? "dolibarr\\-(5\\.0\\.[0-9\\.]+)\\.tgz" :
diff --git a/htdocs/admin/bank.php b/htdocs/admin/bank.php
index 497d4748da8..031e4200268 100644
--- a/htdocs/admin/bank.php
+++ b/htdocs/admin/bank.php
@@ -397,7 +397,7 @@ print '
';
*/
//if (! empty($conf->global->MAIN_FEATURES_LEVEL))
//{
-print load_fiche_titre($langs->trans("BankAccountReleveModule"), '', '');
+print load_fiche_titre($langs->trans("Other"), '', '');
print "
\n";
diff --git a/htdocs/admin/barcode.php b/htdocs/admin/barcode.php
index 431d93e2a96..6cf9c84d265 100644
--- a/htdocs/admin/barcode.php
+++ b/htdocs/admin/barcode.php
@@ -63,7 +63,7 @@ if ($action == 'setcoder')
$resql=$db->query($sqlp);
if (! $resql) dol_print_error($db);
}
-else if ($action == 'update')
+elseif ($action == 'update')
{
$location = GETPOST('GENBARCODE_LOCATION','alpha');
$res = dolibarr_set_const($db, "GENBARCODE_LOCATION",$location,'chaine',0,'',$conf->entity);
@@ -71,17 +71,8 @@ else if ($action == 'update')
$res = dolibarr_set_const($db, "PRODUIT_DEFAULT_BARCODE_TYPE", $coder_id,'chaine',0,'',$conf->entity);
$coder_id = GETPOST('GENBARCODE_BARCODETYPE_THIRDPARTY','alpha');
$res = dolibarr_set_const($db, "GENBARCODE_BARCODETYPE_THIRDPARTY", $coder_id,'chaine',0,'',$conf->entity);
-}
-else if ($action == 'updateengine')
-{
- // TODO Update engines.
-}
-if ($action && $action != 'setcoder' && $action != 'setModuleOptions')
-{
- if (! $res > 0) $error++;
-
- if (! $error)
+ if ($res > 0)
{
setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
}
@@ -90,6 +81,42 @@ if ($action && $action != 'setcoder' && $action != 'setModuleOptions')
setEventMessages($langs->trans("Error"), null, 'errors');
}
}
+elseif ($action == 'updateengine')
+{
+ $sql = "SELECT rowid, coder";
+ $sql.= " FROM ".MAIN_DB_PREFIX."c_barcode_type";
+ $sql.= " WHERE entity = ".$conf->entity;
+ $sql.= " ORDER BY code";
+
+ $resql=$db->query($sql);
+ if ($resql)
+ {
+ $num = $db->num_rows($resql);
+ $i = 0;
+
+ while ($i < $num)
+ {
+ $obj = $db->fetch_object($resql);
+
+ if (GETPOST('coder'.$obj->rowid, 'alpha'))
+ {
+ $coder = GETPOST('coder'.$obj->rowid,'alpha');
+ $code_id = $obj->rowid;
+
+ $sqlp = "UPDATE ".MAIN_DB_PREFIX."c_barcode_type";
+ $sqlp.= " SET coder = '" . $coder."'";
+ $sqlp.= " WHERE rowid = ". $code_id;
+ $sqlp.= " AND entity = ".$conf->entity;
+
+ $upsql=$db->query($sqlp);
+ if (! $upsql) dol_print_error($db);
+ }
+
+ $i++;
+ }
+ }
+}
+
/*
* View
@@ -161,9 +188,12 @@ foreach($dirbarcode as $reldir)
print '
';
print load_fiche_titre($langs->trans("BarcodeEncodeModule"),'','');
-//print "';
}
-//print '';
print "
";
diff --git a/htdocs/admin/emailcollector_card.php b/htdocs/admin/emailcollector_card.php
index ff037f67aa1..2fb5013b4f9 100644
--- a/htdocs/admin/emailcollector_card.php
+++ b/htdocs/admin/emailcollector_card.php
@@ -380,11 +380,24 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea
$sourcedir = $object->source_directory;
$targetdir = ($object->target_directory ? $object->target_directory : ''); // Can be '[Gmail]/Trash' or 'mytag'
- $connectstringserver = $object->getConnectStringIMAP();
- $connectstringsource = $connectstringserver.imap_utf7_encode($sourcedir);
- $connectstringtarget = $connectstringserver.imap_utf7_encode($targetdir);
+ $connection = null;
+ $connectstringserver = '';
+ $connectstringsource = '';
+ $connectstringtarget = '';
+
+ 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->user, $object->password);
+ $connection = imap_open($connectstringsource, $object->user, $object->password);
+ }
+ else
+ {
+ $morehtml .= 'IMAP functions not available on your PHP';
+ }
+
if (! $connection)
{
$morehtml .= 'Failed to open IMAP connection '.$connectstringsource;
@@ -395,8 +408,11 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea
$morehtml .= imap_num_msg($connection);
}
- imap_close($connection);
-
+ if ($connection)
+ {
+ imap_close($connection);
+ }
+
dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref.''.$morehtml.'
', '', 0, '', '', 0, '');
print '';
diff --git a/htdocs/admin/tools/dolibarr_export.php b/htdocs/admin/tools/dolibarr_export.php
index 3c242e8048f..55be556afb9 100644
--- a/htdocs/admin/tools/dolibarr_export.php
+++ b/htdocs/admin/tools/dolibarr_export.php
@@ -517,7 +517,6 @@ print '
';