Merge branch '15.0' of git@github.com:Dolibarr/dolibarr.git into 16.0
Conflicts: ChangeLog build/exe/doliwamp/doliwamp.iss htdocs/comm/action/index.php htdocs/comm/action/peruser.php
This commit is contained in:
commit
f6d54ca101
75
ChangeLog
75
ChangeLog
@ -202,6 +202,81 @@ Following changes may create regressions for some external modules, but were nec
|
|||||||
* The context hook 'suppliercard' when on the supplier tab of a thirdparty has been renamed into 'thirdpartysupplier'
|
* The context hook 'suppliercard' when on the supplier tab of a thirdparty has been renamed into 'thirdpartysupplier'
|
||||||
|
|
||||||
|
|
||||||
|
***** ChangeLog for 15.0.3 compared to 15.0.2 *****
|
||||||
|
|
||||||
|
FIX: 15.0: modules cannot declare more than 1 cron job using the same method with different parameters
|
||||||
|
FIX: 15 fix graph ficheinter status
|
||||||
|
FIX: #18704
|
||||||
|
FIX: #20444
|
||||||
|
FIX: #20448 missing preg_replace for vat rate when adding a free line
|
||||||
|
FIX: #20476 migration postgresql 13.0.x to 14.0.x packaging type
|
||||||
|
FIX: #20487 missing letter D in constant THIRDPARTIES_DISABLE_RELATED_…
|
||||||
|
FIX: #20487 missing letter D in constant THIRDPARTIES_DISABLE_RELATED_OBJECT_TAB
|
||||||
|
FIX: #20527 Accountancy - Unbalanced entry proposed when an employee are declared on a social contribution
|
||||||
|
FIX: #20527 Accountancy Unbalanced entry proposed when an employee are declared on social contribution
|
||||||
|
FIX: #20621 signature online with proposal with n page.
|
||||||
|
FIX: #20696
|
||||||
|
FIX: #20828
|
||||||
|
FIX: #20886 : manage durations in list_print_total.tpl.php
|
||||||
|
FIX: #20902
|
||||||
|
FIX: #21051
|
||||||
|
FIX: #21093
|
||||||
|
FIX: #21138
|
||||||
|
FIX: #21140
|
||||||
|
FIX: #21174
|
||||||
|
FIX: #21323
|
||||||
|
FIX: #21472 On the bank transfer lists, a change of page switches to the lists of the direct debit module
|
||||||
|
FIX: #21495
|
||||||
|
FIX: #21518
|
||||||
|
FIX: Accountancy - Label of VAT account is empty
|
||||||
|
FIX: Accountancy - Model account list - Problem of CSRF
|
||||||
|
FIX: Accountancy - Partitioning of the entity on an automatic binding
|
||||||
|
FIX: add missing thead, th and id on table
|
||||||
|
FIX: backport commit 5b3fcc5e43979b1b0789bf81fb8f1b2b59c93056, chkbxlst cannot be emptied
|
||||||
|
FIX: Bank account not set when creating invoice from order
|
||||||
|
FIX: Bank transfer - Link on code supplier invoice was bad
|
||||||
|
FIX: Can convert a partially closed down payment when close for
|
||||||
|
FIX: class center linkedObjectblock order date
|
||||||
|
FIX: count elements in invoice list (Issue #21444)
|
||||||
|
FIX: Customer price non numeric warning when 0 vat.
|
||||||
|
FIX: errors in getLinesArray()
|
||||||
|
FIX: False alert of WAF when there is "set" into some URL action=update.
|
||||||
|
FIX: Intervention graph by status on ficheinter Index page
|
||||||
|
FIX: Intervention url link into Commerce index
|
||||||
|
FIX: Fix get origin from other than supplier proposal when add a new supplier proposal
|
||||||
|
FIX: Fix show errors in card
|
||||||
|
FIX: fourn/commande/card.php Added "$object" parameter to $formfile->showdocuments call
|
||||||
|
FIX: french traductions for payment methods
|
||||||
|
FIX: hook for dol_format_address
|
||||||
|
FIX: Index page for "Sales" give wrong URL link to Intervention
|
||||||
|
FIX: issue Dolibarr#21495 for v15
|
||||||
|
FIX: label and get_substitutionarray_each_var_object on ODT generation
|
||||||
|
FIX: load product stock in inventory lines
|
||||||
|
FIX: missing morecss for multiselectarray
|
||||||
|
FIX: missins time spent list menu
|
||||||
|
FIX: new member subscription: bank account and payment mode might be hidden
|
||||||
|
FIX: ODT generation of BOM document
|
||||||
|
FIX: ODT tags for subobjects {object_subobject_yyy} was not working.
|
||||||
|
FIX: qty received label in Squille PDF model
|
||||||
|
FIX: rank duplicate on mass action invoice from multiple orders
|
||||||
|
FIX: regression + add $forceentity parameter
|
||||||
|
FIX: regression PR #20713
|
||||||
|
FIX: security breach if we have same ref number in multiple entities
|
||||||
|
FIX: selection of type of invoice
|
||||||
|
FIX: Send remind to pay invoice only on validated invoices
|
||||||
|
FIX: Show sellist type of extrafield when none category selected
|
||||||
|
FIX: signature online with proposal with n page.
|
||||||
|
FIX: sql error when PRODUCT_USE_SUPPLIER_PACKAGING enabled.
|
||||||
|
FIX: sql order
|
||||||
|
FIX: trash icon on crontask list to do not work
|
||||||
|
FIX: v15 linked object block center order date
|
||||||
|
FIX: Warning on attribut
|
||||||
|
FIX: We must remove empty values of $features array in fetchByProductCombination2ValuePairs() because some products can use only several attributes in their variations and not necessarily all. In this case, fetch doesn't work without my correction
|
||||||
|
FIX: with callback function
|
||||||
|
FIX: xml file for company with special chars in name
|
||||||
|
FIX: Zatca QR code must use company name/vat
|
||||||
|
|
||||||
|
|
||||||
***** ChangeLog for 15.0.2 compared to 15.0.1 *****
|
***** ChangeLog for 15.0.2 compared to 15.0.1 *****
|
||||||
|
|
||||||
FIX: #19777 #20281
|
FIX: #19777 #20281
|
||||||
|
|||||||
24
build/README
24
build/README
@ -13,32 +13,12 @@ It is here only to build Dolibarr packages, and those generated packages will no
|
|||||||
|
|
||||||
There are several tools:
|
There are several tools:
|
||||||
|
|
||||||
|
--------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
- To build full Dolibarr packages, launch the script
|
- To build full Dolibarr packages, launch the script
|
||||||
> Launch command perl makepack-dolibarr.pl
|
> Launch command perl makepack-dolibarr.pl
|
||||||
|
|
||||||
--------------------------------------------------------------------------------------------------
|
See makepack-howto.txt for prerequisites.
|
||||||
|
|
||||||
|
|
||||||
Prerequisites to build tgz, debian and rpm packages:
|
|
||||||
> apt-get install tar dpkg dpatch p7zip-full rpm zip
|
|
||||||
|
|
||||||
|
|
||||||
--------------------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
Prerequisites to build autoexe DoliWamp package:
|
|
||||||
> apt-get install wine q4wine
|
|
||||||
> Launch "wine cmd" to check a drive Z: pointing to / exists.
|
|
||||||
> Install InnoSetup
|
|
||||||
For example by running isetup-5.5.8.exe (https://www.jrsoftware.org) https://files.jrsoftware.org/is/5/
|
|
||||||
> Install WampServer into "C:\wamp64" to have Apache, PHP and MariaDB
|
|
||||||
For example by running wampserver3.2.0_x64.exe (https://www.wampserver.com).
|
|
||||||
See file build/exe/doliwamp.iss to know the doliwamp version currently setup.
|
|
||||||
> Add path to ISCC into PATH windows var:
|
|
||||||
Launch wine cmd, then regedit and add entry int HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment\PATH
|
|
||||||
> To build manually the .exe from Windows (running from makepack-dolibarr.pl script is however recommanded),
|
|
||||||
open file build/exe/doliwamp.iss and click on button "Compile".
|
|
||||||
The .exe file will be build into directory build.
|
|
||||||
|
|
||||||
--------------------------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|||||||
2
build/exe/doliwamp/.gitignore
vendored
2
build/exe/doliwamp/.gitignore
vendored
@ -1 +1 @@
|
|||||||
/doliwamp.tmp.iss
|
/doliwamp.tmp.iss*
|
||||||
|
|||||||
@ -24,7 +24,6 @@ OutputBaseFilename=__FILENAMEEXEDOLIWAMP__
|
|||||||
;OutputManifestFile=build\doliwampbuild.log
|
;OutputManifestFile=build\doliwampbuild.log
|
||||||
; Define full path from which all relative path are defined
|
; Define full path from which all relative path are defined
|
||||||
; You must modify this to put here your dolibarr root directory
|
; You must modify this to put here your dolibarr root directory
|
||||||
;SourceDir=Z:\home\ldestailleur\git\dolibarrxxx
|
|
||||||
SourceDir=..\..\..
|
SourceDir=..\..\..
|
||||||
AppId=doliwamp
|
AppId=doliwamp
|
||||||
AppPublisher=DoliCloud
|
AppPublisher=DoliCloud
|
||||||
@ -32,7 +31,7 @@ AppPublisherURL=https://www.dolicloud.com
|
|||||||
AppSupportURL=https://www.dolibarr.org
|
AppSupportURL=https://www.dolibarr.org
|
||||||
AppUpdatesURL=https://www.dolibarr.org
|
AppUpdatesURL=https://www.dolibarr.org
|
||||||
AppComments=DoliWamp includes Dolibarr, Apache, PHP and Mysql software.
|
AppComments=DoliWamp includes Dolibarr, Apache, PHP and Mysql software.
|
||||||
AppCopyright=Copyright (C) 2008-2022 Laurent Destailleur (NLTechno), Fabian Rodriguez (Le Goût du Libre)
|
AppCopyright=Copyright (C) 2008-2022 Laurent Destailleur (DoliCloud), Fabian Rodriguez (Le Goût du Libre)
|
||||||
DefaultDirName=c:\dolibarr
|
DefaultDirName=c:\dolibarr
|
||||||
DefaultGroupName=Dolibarr
|
DefaultGroupName=Dolibarr
|
||||||
;LicenseFile=COPYING
|
;LicenseFile=COPYING
|
||||||
@ -81,7 +80,7 @@ Name: "desktopicon"; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:
|
|||||||
Name: "{app}\logs"
|
Name: "{app}\logs"
|
||||||
Name: "{app}\tmp"
|
Name: "{app}\tmp"
|
||||||
Name: "{app}\dolibarr_documents"
|
Name: "{app}\dolibarr_documents"
|
||||||
Name: "{app}\bin\apache\apache2.4.41\logs"
|
Name: "{app}\bin\apache\apache2.4.51\logs"
|
||||||
|
|
||||||
[Files]
|
[Files]
|
||||||
; Stop/start
|
; Stop/start
|
||||||
@ -101,16 +100,10 @@ Source: "build\exe\doliwamp\UsedPort.exe"; DestDir: "{app}\"; Flags: ignoreversi
|
|||||||
|
|
||||||
; Apache, Php, Mysql
|
; Apache, Php, Mysql
|
||||||
; Put here path of Wampserver applications
|
; Put here path of Wampserver applications
|
||||||
; Value OK: apache 2.2.6, php 5.2.5 (5.2.11, 5.3.0 and 5.3.1 fails if php_exif, php_pgsql, php_zip is on), mysql 5.0.45
|
; Value OK: apache 2.4.51, php 7.3.33, mariadb10.6.5 (wampserver3.2.6_x64.exe)
|
||||||
; Value OK: apache 2.2.11, php 5.3.0 (if no php_exif, php_pgsql, php_zip), mysql 5.0.45
|
Source: "C:\wamp64\bin\apache\apache2.4.51\*.*"; DestDir: "{app}\bin\apache\apache2.4.51"; Flags: ignoreversion recursesubdirs; Excludes: "php.ini,httpd.conf,wampserver.conf,*.log,*_log"
|
||||||
; Value OK: apache 2.4.9, php 5.5.12, mysql 5.0.45 instead of 5.6.17 (wampserver2.5-Apache-2.4.9-Mysql-5.6.17-php5.5.12-32b.exe)
|
Source: "C:\wamp64\bin\php\php7.3.33\*.*"; DestDir: "{app}\bin\php\php7.3.33"; Flags: ignoreversion recursesubdirs; Excludes: "php.ini,phpForApache.ini,wampserver.conf,*.log,*_log"
|
||||||
; Value OK: apache 2.4.41, php 7.3.12, mariadb10.4.10 (wampserver3.2.0_x64.exe)
|
Source: "C:\wamp64\bin\mariadb\mariadb10.6.5\*.*"; DestDir: "{app}\bin\mariadb\mariadb10.6.5"; Flags: ignoreversion recursesubdirs; Excludes: "my.ini,data\*,wampserver.conf,*.log,*_log,MySQLInstanceConfig.exe"
|
||||||
;Source: "C:\Program Files\Wamp\bin\apache\apache2.4.9\*.*"; DestDir: "{app}\bin\apache\apache2.4.9"; Flags: ignoreversion recursesubdirs; Excludes: "php.ini,httpd.conf,wampserver.conf,*.log,*_log"
|
|
||||||
Source: "C:\wamp64\bin\apache\apache2.4.41\*.*"; DestDir: "{app}\bin\apache\apache2.4.41"; Flags: ignoreversion recursesubdirs; Excludes: "php.ini,httpd.conf,wampserver.conf,*.log,*_log"
|
|
||||||
;Source: "C:\Program Files\Wamp\bin\php\php5.5.12\*.*"; DestDir: "{app}\bin\php\php5.5.12"; Flags: ignoreversion recursesubdirs; Excludes: "php.ini,phpForApache.ini,wampserver.conf,*.log,*_log"
|
|
||||||
Source: "C:\wamp64\bin\php\php7.3.12\*.*"; DestDir: "{app}\bin\php\php7.3.12"; Flags: ignoreversion recursesubdirs; Excludes: "php.ini,phpForApache.ini,wampserver.conf,*.log,*_log"
|
|
||||||
;Source: "C:\Program Files\Wamp\bin\mysql\mysql5.0.45\*.*"; DestDir: "{app}\bin\mysql\mysql5.0.45"; Flags: ignoreversion recursesubdirs; Excludes: "my.ini,data\*,wampserver.conf,*.log,*_log,MySQLInstanceConfig.exe"
|
|
||||||
Source: "C:\wamp64\bin\mariadb\mariadb10.4.10\*.*"; DestDir: "{app}\bin\mariadb\mariadb10.4.10"; Flags: ignoreversion recursesubdirs; Excludes: "my.ini,data\*,wampserver.conf,*.log,*_log,MySQLInstanceConfig.exe"
|
|
||||||
|
|
||||||
; Mysql data files (does not overwrite if exists)
|
; Mysql data files (does not overwrite if exists)
|
||||||
; We must copy them because the tool mysql_install_db.exe to generate them at first install does not return to prompt so make install hang
|
; We must copy them because the tool mysql_install_db.exe to generate them at first install does not return to prompt so make install hang
|
||||||
@ -125,12 +118,10 @@ Source: "*.*"; DestDir: "{app}\www\dolibarr"; Flags: ignoreversion; Excludes: ".
|
|||||||
|
|
||||||
; Config files
|
; Config files
|
||||||
Source: "build\exe\doliwamp\dolibarr.conf.install"; DestDir: "{app}\alias"; Flags: ignoreversion;
|
Source: "build\exe\doliwamp\dolibarr.conf.install"; DestDir: "{app}\alias"; Flags: ignoreversion;
|
||||||
;Source: "build\exe\doliwamp\httpd.conf.install"; DestDir: "{app}\bin\apache\apache2.4.9\conf"; Flags: ignoreversion;
|
Source: "build\exe\doliwamp\httpd.conf.install"; DestDir: "{app}\bin\apache\apache2.4.51\conf"; Flags: ignoreversion;
|
||||||
Source: "build\exe\doliwamp\httpd.conf.install"; DestDir: "{app}\bin\apache\apache2.4.41\conf"; Flags: ignoreversion;
|
|
||||||
Source: "build\exe\doliwamp\my.ini.install"; DestDir: "{app}\bin\mysql\mysql5.0.45"; Flags: ignoreversion;
|
Source: "build\exe\doliwamp\my.ini.install"; DestDir: "{app}\bin\mysql\mysql5.0.45"; Flags: ignoreversion;
|
||||||
Source: "build\exe\doliwamp\my.ini.install"; DestDir: "{app}\bin\mariadb\mariadb10.4.10"; Flags: ignoreversion;
|
Source: "build\exe\doliwamp\my.ini.install"; DestDir: "{app}\bin\mariadb\mariadb10.6.5"; Flags: ignoreversion;
|
||||||
;Source: "build\exe\doliwamp\php.ini.install"; DestDir: "{app}\bin\php\php5.5.12"; Flags: ignoreversion;
|
Source: "build\exe\doliwamp\php.ini.install"; DestDir: "{app}\bin\php\php7.3.33"; Flags: ignoreversion;
|
||||||
Source: "build\exe\doliwamp\php.ini.install"; DestDir: "{app}\bin\php\php7.3.12"; Flags: ignoreversion;
|
|
||||||
Source: "build\exe\doliwamp\index.php.install"; DestDir: "{app}\www"; Flags: ignoreversion;
|
Source: "build\exe\doliwamp\index.php.install"; DestDir: "{app}\www"; Flags: ignoreversion;
|
||||||
Source: "build\exe\doliwamp\install.forced.php.install"; DestDir: "{app}\www\dolibarr\htdocs\install"; Flags: ignoreversion;
|
Source: "build\exe\doliwamp\install.forced.php.install"; DestDir: "{app}\www\dolibarr\htdocs\install"; Flags: ignoreversion;
|
||||||
Source: "build\exe\doliwamp\openssl.conf"; DestDir: "{app}"; Flags: ignoreversion;
|
Source: "build\exe\doliwamp\openssl.conf"; DestDir: "{app}"; Flags: ignoreversion;
|
||||||
@ -236,12 +227,9 @@ procedure InitializeWizard();
|
|||||||
begin
|
begin
|
||||||
|
|
||||||
//version des applis, a modifier pour chaque version de WampServer 2
|
//version des applis, a modifier pour chaque version de WampServer 2
|
||||||
//apacheVersion := '2.4.9';
|
apacheVersion := '2.4.51';
|
||||||
//phpVersion := '5.5.12' ;
|
phpVersion := '7.3.33' ;
|
||||||
apacheVersion := '2.4.41';
|
mysqlVersion := '10.6.5';
|
||||||
phpVersion := '7.3.12' ;
|
|
||||||
//mysqlVersion := '5.0.45';
|
|
||||||
mysqlVersion := '10.4.10';
|
|
||||||
|
|
||||||
smtpServer := 'localhost';
|
smtpServer := 'localhost';
|
||||||
apachePort := '80';
|
apachePort := '80';
|
||||||
@ -375,9 +363,9 @@ begin
|
|||||||
|
|
||||||
|
|
||||||
// Migration of database
|
// Migration of database
|
||||||
// datadir := pathWithSlashes+'/bin/mariadb/marradb10.4.10/data';
|
// datadir := pathWithSlashes+'/bin/mariadb/mariadb10.6.5/data';
|
||||||
// exedirold := pathWithSlashes+'/bin/mariadb/marradb10.4.10/';
|
// exedirold := pathWithSlashes+'/bin/mariadb/mariadb10.6.5/';
|
||||||
// exedirnew := pathWithSlashes+'/bin/mariadb/marradb10.4.10/';
|
// exedirnew := pathWithSlashes+'/bin/mariadb/mariadb10.6.5/';
|
||||||
|
|
||||||
// If we have a new database version, we should only copy old my.ini file into new directory
|
// If we have a new database version, we should only copy old my.ini file into new directory
|
||||||
// and change only all basedir= strings to use new version. Like this, data dir is still correct.
|
// and change only all basedir= strings to use new version. Like this, data dir is still correct.
|
||||||
@ -1027,7 +1015,7 @@ Filename: "{app}\rundoliwamp.bat"; Description: {cm:LaunchNow}; Flags: shellexec
|
|||||||
|
|
||||||
[UninstallDelete]
|
[UninstallDelete]
|
||||||
Type: files; Name: "{app}\*.*"
|
Type: files; Name: "{app}\*.*"
|
||||||
Type: files; Name: "{app}\bin\mariadb\mariadb10.4.10\*.*"
|
Type: files; Name: "{app}\bin\mariadb\mariadb10.6.5\*.*"
|
||||||
Type: filesandordirs; Name: "{app}\alias"
|
Type: filesandordirs; Name: "{app}\alias"
|
||||||
Type: filesandordirs; Name: "{app}\apps"
|
Type: filesandordirs; Name: "{app}\apps"
|
||||||
Type: filesandordirs; Name: "{app}\bin\apache"
|
Type: filesandordirs; Name: "{app}\bin\apache"
|
||||||
|
|||||||
@ -65,7 +65,7 @@ $DIR||='.'; $DIR =~ s/([^\/\\])[\\\/]+$/$1/;
|
|||||||
|
|
||||||
$SOURCE="$DIR/..";
|
$SOURCE="$DIR/..";
|
||||||
$DESTI="$SOURCE/build";
|
$DESTI="$SOURCE/build";
|
||||||
if ($SOURCE !~ /^\//)
|
if ($SOURCE !~ /^\// && $SOURCE !~ /^[a-z]:/i)
|
||||||
{
|
{
|
||||||
print "Error: Launch the script $PROG.$Extension with its full path from /.\n";
|
print "Error: Launch the script $PROG.$Extension with its full path from /.\n";
|
||||||
print "$PROG.$Extension aborted.\n";
|
print "$PROG.$Extension aborted.\n";
|
||||||
@ -76,15 +76,23 @@ if (! $ENV{"DESTIBETARC"} || ! $ENV{"DESTISTABLE"})
|
|||||||
{
|
{
|
||||||
print "Error: Missing environment variables.\n";
|
print "Error: Missing environment variables.\n";
|
||||||
print "You must define the environment variable DESTIBETARC and DESTISTABLE to point to the\ndirectories where you want to save the generated packages.\n";
|
print "You must define the environment variable DESTIBETARC and DESTISTABLE to point to the\ndirectories where you want to save the generated packages.\n";
|
||||||
|
print "$PROG.$Extension aborted.\n";
|
||||||
|
print "\n";
|
||||||
|
print "You can set them with\n";
|
||||||
|
print "On Linux:\n";
|
||||||
|
print "export DESTIBETARC='/tmp'; export DESTISTABLE='/tmp';\n";
|
||||||
|
print "On Windows:\n";
|
||||||
|
print "set DESTIBETARC=c:/tmp\n";
|
||||||
|
print "set DESTISTABLE=c:/tmp\n";
|
||||||
|
print "\n";
|
||||||
print "Example: DESTIBETARC='/media/HDDATA1_LD/Mes Sites/Web/Dolibarr/dolibarr.org/files/lastbuild'\n";
|
print "Example: DESTIBETARC='/media/HDDATA1_LD/Mes Sites/Web/Dolibarr/dolibarr.org/files/lastbuild'\n";
|
||||||
print "Example: DESTISTABLE='/media/HDDATA1_LD/Mes Sites/Web/Dolibarr/dolibarr.org/files/stable'\n";
|
print "Example: DESTISTABLE='/media/HDDATA1_LD/Mes Sites/Web/Dolibarr/dolibarr.org/files/stable'\n";
|
||||||
print "$PROG.$Extension aborted.\n";
|
|
||||||
sleep 2;
|
sleep 2;
|
||||||
exit 1;
|
exit 1;
|
||||||
}
|
}
|
||||||
if (! -d $ENV{"DESTIBETARC"} || ! -d $ENV{"DESTISTABLE"})
|
if (! -d $ENV{"DESTIBETARC"} || ! -d $ENV{"DESTISTABLE"})
|
||||||
{
|
{
|
||||||
print "Error: Directory of environment variable DESTIBETARC or DESTISTABLE does not exist.\n";
|
print "Error: Directory of environment variable DESTIBETARC ($ENV{'DESTIBETARC'}) or DESTISTABLE ($ENV{'DESTISTABLE'}) does not exist.\n";
|
||||||
print "$PROG.$Extension aborted.\n";
|
print "$PROG.$Extension aborted.\n";
|
||||||
sleep 2;
|
sleep 2;
|
||||||
exit 1;
|
exit 1;
|
||||||
@ -94,7 +102,7 @@ if (! -d $ENV{"DESTIBETARC"} || ! -d $ENV{"DESTISTABLE"})
|
|||||||
# --------------
|
# --------------
|
||||||
if ("$^O" =~ /linux/i || (-d "/etc" && -d "/var" && "$^O" !~ /cygwin/i)) { $OS='linux'; $CR=''; }
|
if ("$^O" =~ /linux/i || (-d "/etc" && -d "/var" && "$^O" !~ /cygwin/i)) { $OS='linux'; $CR=''; }
|
||||||
elsif (-d "/etc" && -d "/Users") { $OS='macosx'; $CR=''; }
|
elsif (-d "/etc" && -d "/Users") { $OS='macosx'; $CR=''; }
|
||||||
elsif ("$^O" =~ /cygwin/i || "$^O" =~ /win32/i) { $OS='windows'; $CR="\r"; }
|
elsif ("$^O" =~ /cygwin/i || "$^O" =~ /win32/i || "$^O" =~ /msys/i) { $OS='windows'; $CR="\r"; }
|
||||||
if (! $OS) {
|
if (! $OS) {
|
||||||
print "Error: Can't detect your OS.\n";
|
print "Error: Can't detect your OS.\n";
|
||||||
print "Can't continue.\n";
|
print "Can't continue.\n";
|
||||||
@ -390,7 +398,7 @@ if ($nboftargetok) {
|
|||||||
$olddir=getcwd();
|
$olddir=getcwd();
|
||||||
chdir("$SOURCE");
|
chdir("$SOURCE");
|
||||||
|
|
||||||
print "Clean $SOURCE/htdocs\n";
|
print "Clean $SOURCE/htdocs/includes/autoload.php\n";
|
||||||
$ret=`rm -f $SOURCE/htdocs/includes/autoload.php`;
|
$ret=`rm -f $SOURCE/htdocs/includes/autoload.php`;
|
||||||
|
|
||||||
$ret=`git ls-files . --exclude-standard --others`;
|
$ret=`git ls-files . --exclude-standard --others`;
|
||||||
@ -1074,28 +1082,52 @@ if ($nboftargetok) {
|
|||||||
print "Remove target $NEWDESTI/$FILENAMEEXEDOLIWAMP.exe...\n";
|
print "Remove target $NEWDESTI/$FILENAMEEXEDOLIWAMP.exe...\n";
|
||||||
unlink "$NEWDESTI/$FILENAMEEXEDOLIWAMP.exe";
|
unlink "$NEWDESTI/$FILENAMEEXEDOLIWAMP.exe";
|
||||||
|
|
||||||
print "Check that in your Wine setup, you have created a Z: drive that point to your / directory.\n";
|
if ($OS eq 'windows') {
|
||||||
|
print "Check that ISCC.exe is in your PATH.\n";
|
||||||
|
} else {
|
||||||
|
print "Check that in your Wine setup, you have created a Z: drive that point to your / directory.\n";
|
||||||
|
}
|
||||||
|
|
||||||
$SOURCEBACK=$SOURCE;
|
$SOURCEBACK=$SOURCE;
|
||||||
$SOURCEBACK =~ s/\//\\/g;
|
$SOURCEBACK =~ s/\//\\/g;
|
||||||
|
|
||||||
print "Prepare file \"$SOURCEBACK\\build\\exe\\doliwamp\\doliwamp.tmp.iss from \"$SOURCEBACK\\build\\exe\\doliwamp\\doliwamp.iss\"\n";
|
print "Prepare file \"$SOURCEBACK\\build\\exe\\doliwamp\\doliwamp.tmp.iss\" from \"$SOURCEBACK\\build\\exe\\doliwamp\\doliwamp.iss\"\n";
|
||||||
$ret=`cat "$SOURCE/build/exe/doliwamp/doliwamp.iss" | sed -e 's/__FILENAMEEXEDOLIWAMP__/$FILENAMEEXEDOLIWAMP/g' > "$SOURCE/build/exe/doliwamp/doliwamp.tmp.iss"`;
|
|
||||||
|
#$ret=`cat "$SOURCE/build/exe/doliwamp/doliwamp.iss" | sed -e 's/__FILENAMEEXEDOLIWAMP__/$FILENAMEEXEDOLIWAMP/g' > "$SOURCE/build/exe/doliwamp/doliwamp.tmp.iss"`;
|
||||||
|
open(IN, '<' . $SOURCE."/build/exe/doliwamp/doliwamp.iss") or die $!;
|
||||||
|
open(OUT, '>' . "$SOURCE/build/exe/doliwamp/doliwamp.tmp.iss") or die $!;
|
||||||
|
while(<IN>)
|
||||||
|
{
|
||||||
|
$_ =~ s/__FILENAMEEXEDOLIWAMP__/$FILENAMEEXEDOLIWAMP/g;
|
||||||
|
print OUT $_;
|
||||||
|
}
|
||||||
|
close(IN);
|
||||||
|
close(OUT);
|
||||||
|
|
||||||
print "Compil exe $FILENAMEEXEDOLIWAMP.exe file from iss file \"$SOURCEBACK\\build\\exe\\doliwamp\\doliwamp.tmp.iss\"\n";
|
print "Compil exe $FILENAMEEXEDOLIWAMP.exe file from iss file \"$SOURCEBACK\\build\\exe\\doliwamp\\doliwamp.tmp.iss\" on OS $OS\n";
|
||||||
$cmd= "wine ISCC.exe \"Z:$SOURCEBACK\\build\\exe\\doliwamp\\doliwamp.tmp.iss\"";
|
|
||||||
|
if ($OS eq 'windows') {
|
||||||
|
$cmd= "ISCC.exe \"$SOURCEBACK\\build\\exe\\doliwamp\\doliwamp.tmp.iss\"";
|
||||||
|
} else {
|
||||||
|
#$cmd= "wine ISCC.exe \"Z:$SOURCEBACK\\build\\exe\\doliwamp\\doliwamp.tmp.iss\"";
|
||||||
|
}
|
||||||
print "$cmd\n";
|
print "$cmd\n";
|
||||||
$ret= `$cmd`;
|
$ret= `$cmd`;
|
||||||
#print "$ret\n";
|
print "ret=$ret\n";
|
||||||
|
|
||||||
# Move to final dir
|
# Move to final dir
|
||||||
print "Move \"$SOURCE\\build\\$FILENAMEEXEDOLIWAMP.exe\" to $NEWDESTI/$FILENAMEEXEDOLIWAMP.exe\n";
|
print "Move \"$SOURCE\\build\\$FILENAMEEXEDOLIWAMP.exe\" to $NEWDESTI/$FILENAMEEXEDOLIWAMP.exe\n";
|
||||||
rename("$SOURCE/build/$FILENAMEEXEDOLIWAMP.exe","$NEWDESTI/$FILENAMEEXEDOLIWAMP.exe");
|
rename("$SOURCE/build/$FILENAMEEXEDOLIWAMP.exe","$NEWDESTI/$FILENAMEEXEDOLIWAMP.exe");
|
||||||
print "Move $SOURCE/build/$FILENAMEEXEDOLIWAMP.exe to $NEWDESTI/$FILENAMEEXEDOLIWAMP.exe\n";
|
print "Move $SOURCE/build/$FILENAMEEXEDOLIWAMP.exe to $NEWDESTI/$FILENAMEEXEDOLIWAMP.exe\n";
|
||||||
$ret=`mv "$SOURCE/build/$FILENAMEEXEDOLIWAMP.exe" "$NEWDESTI/$FILENAMEEXEDOLIWAMP.exe"`;
|
|
||||||
|
use File::Copy;
|
||||||
|
|
||||||
|
#$ret=`mv "$SOURCE/build/$FILENAMEEXEDOLIWAMP.exe" "$NEWDESTI/$FILENAMEEXEDOLIWAMP.exe"`;
|
||||||
|
$ret=move("$SOURCE/build/$FILENAMEEXEDOLIWAMP.exe", "$NEWDESTI/$FILENAMEEXEDOLIWAMP.exe");
|
||||||
|
|
||||||
print "Remove tmp file $SOURCE/build/exe/doliwamp/doliwamp.tmp.iss\n";
|
print "Remove tmp file $SOURCE/build/exe/doliwamp/doliwamp.tmp.iss\n";
|
||||||
$ret=`rm "$SOURCE/build/exe/doliwamp/doliwamp.tmp.iss"`;
|
#$ret=`rm "$SOURCE/build/exe/doliwamp/doliwamp.tmp.iss"`;
|
||||||
|
$ret=unlink("$SOURCE/build/exe/doliwamp/doliwamp.tmp.iss");
|
||||||
|
|
||||||
next;
|
next;
|
||||||
}
|
}
|
||||||
@ -1242,7 +1274,7 @@ if ($nboftargetok) {
|
|||||||
|
|
||||||
print "\n----- Summary -----\n";
|
print "\n----- Summary -----\n";
|
||||||
foreach my $target (sort keys %CHOOSEDTARGET) {
|
foreach my $target (sort keys %CHOOSEDTARGET) {
|
||||||
if ($target eq '-CHKSUM') { print "Checksum was generated"; next; }
|
if ($target eq '-CHKSUM') { print "Checksum was generated\n"; next; }
|
||||||
if ($CHOOSEDTARGET{$target} < 0) {
|
if ($CHOOSEDTARGET{$target} < 0) {
|
||||||
print "Package $target not built (bad requirement).\n";
|
print "Package $target not built (bad requirement).\n";
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@ -1,7 +1,34 @@
|
|||||||
----- Dolibarr Makepack How To -----
|
----- Dolibarr Makepack How To -----
|
||||||
This documentation describe steps to build a BETA or RELEASE versions
|
This documentation describe steps to build a BETA or RELEASE versions
|
||||||
of Dolibarr. There is a chapter for BETA version and a chapter for
|
of Dolibarr. There is a chapter for BETA version and a chapter for RELEASE version.
|
||||||
RELEASE version.
|
|
||||||
|
|
||||||
|
***** Prerequisites For Linux *****
|
||||||
|
|
||||||
|
Prerequisites to build tgz, debian and rpm packages:
|
||||||
|
> apt-get install perl tar dpkg dpatch p7zip-full rpm zip php-cli
|
||||||
|
|
||||||
|
Prerequisites to build autoexe DoliWamp package:
|
||||||
|
> apt-get install wine q4wine
|
||||||
|
> Launch "wine cmd" to check a drive Z: pointing to / exists.
|
||||||
|
> Install InnoSetup
|
||||||
|
For example by running isetup-5.5.8.exe (https://www.jrsoftware.org) https://files.jrsoftware.org/is/5/
|
||||||
|
> Install WampServer into "C:\wamp64" to have Apache, PHP and MariaDB
|
||||||
|
For example by running wampserver3.2.0_x64.exe (https://www.wampserver.com).
|
||||||
|
See file build/exe/doliwamp.iss to know the doliwamp version currently setup.
|
||||||
|
> Add path to ISCC into PATH windows var:
|
||||||
|
Launch wine cmd, then regedit and add entry int HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment\PATH
|
||||||
|
> To build manually the .exe from Windows (running from makepack-dolibarr.pl script is however recommanded),
|
||||||
|
open file build/exe/doliwamp.iss and click on button "Compile".
|
||||||
|
The .exe file will be build into directory build.
|
||||||
|
|
||||||
|
|
||||||
|
***** Prerequisites For Windows *****
|
||||||
|
|
||||||
|
Install Perl
|
||||||
|
Install WampServer-3.2.*-64.exe
|
||||||
|
isetup-5.5.8.exe
|
||||||
|
|
||||||
|
|
||||||
***** Actions to do a BETA *****
|
***** Actions to do a BETA *****
|
||||||
This files describe steps made by Dolibarr packaging team to make a
|
This files describe steps made by Dolibarr packaging team to make a
|
||||||
|
|||||||
@ -67,7 +67,7 @@ Requires: httpd, php >= 5.3.0, php-cli, php-gd, php-ldap, php-imap, php-mbstring
|
|||||||
Requires: mysql-server, mysql
|
Requires: mysql-server, mysql
|
||||||
Requires: php-mysqli >= 4.1.0
|
Requires: php-mysqli >= 4.1.0
|
||||||
%endif
|
%endif
|
||||||
%endif%_datadir/dolibarr/htdocs/eventorganization
|
%endif
|
||||||
|
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
|||||||
@ -111,7 +111,7 @@ $month = GETPOST("month", "int") ?GETPOST("month", "int") : date("m");
|
|||||||
$week = GETPOST("week", "int") ?GETPOST("week", "int") : date("W");
|
$week = GETPOST("week", "int") ?GETPOST("week", "int") : date("W");
|
||||||
$day = GETPOST("day", "int") ?GETPOST("day", "int") : date("d");
|
$day = GETPOST("day", "int") ?GETPOST("day", "int") : date("d");
|
||||||
$pid = GETPOST("search_projectid", "int", 3) ? GETPOST("search_projectid", "int", 3) : GETPOST("projectid", "int", 3);
|
$pid = GETPOST("search_projectid", "int", 3) ? GETPOST("search_projectid", "int", 3) : GETPOST("projectid", "int", 3);
|
||||||
$status = GETPOSTISSET("search_status") ? GETPOST("search_status", 'aZ09') : GETPOST("status", 'aZ09'); // status may be 0, 50, 100, 'todo'
|
$status = GETPOSTISSET("search_status") ? GETPOST("search_status", 'aZ09') : GETPOST("status", 'aZ09'); // status may be 0, 50, 100, 'todo', 'na' or -1
|
||||||
$type = GETPOSTISSET("search_type") ? GETPOST("search_type", 'aZ09') : GETPOST("type", 'aZ09');
|
$type = GETPOSTISSET("search_type") ? GETPOST("search_type", 'aZ09') : GETPOST("type", 'aZ09');
|
||||||
$maxprint = GETPOSTISSET("maxprint") ? GETPOST("maxprint", 'int') : $conf->global->AGENDA_MAX_EVENTS_DAY_VIEW;
|
$maxprint = GETPOSTISSET("maxprint") ? GETPOST("maxprint", 'int') : $conf->global->AGENDA_MAX_EVENTS_DAY_VIEW;
|
||||||
$optioncss = GETPOST('optioncss', 'aZ'); // Option for the css output (always '' except when 'print')
|
$optioncss = GETPOST('optioncss', 'aZ'); // Option for the css output (always '' except when 'print')
|
||||||
@ -759,12 +759,14 @@ if ($type) {
|
|||||||
if ($status == '0') {
|
if ($status == '0') {
|
||||||
$sql .= " AND a.percent = 0";
|
$sql .= " AND a.percent = 0";
|
||||||
}
|
}
|
||||||
if ($status == '-1') {
|
if ($status == '-1' || $status == 'na') {
|
||||||
|
// Not applicable
|
||||||
$sql .= " AND a.percent = -1";
|
$sql .= " AND a.percent = -1";
|
||||||
} // Not applicable
|
}
|
||||||
if ($status == '50') {
|
if ($status == '50') {
|
||||||
|
// Running already started
|
||||||
$sql .= " AND (a.percent > 0 AND a.percent < 100)";
|
$sql .= " AND (a.percent > 0 AND a.percent < 100)";
|
||||||
} // Running already started
|
}
|
||||||
if ($status == 'done' || $status == '100') {
|
if ($status == 'done' || $status == '100') {
|
||||||
$sql .= " AND (a.percent = 100)";
|
$sql .= " AND (a.percent = 100)";
|
||||||
}
|
}
|
||||||
|
|||||||
@ -101,7 +101,7 @@ $month = GETPOST("month", "int") ?GETPOST("month", "int") : date("m");
|
|||||||
$week = GETPOST("week", "int") ?GETPOST("week", "int") : date("W");
|
$week = GETPOST("week", "int") ?GETPOST("week", "int") : date("W");
|
||||||
$day = GETPOST("day", "int") ?GETPOST("day", "int") : date("d");
|
$day = GETPOST("day", "int") ?GETPOST("day", "int") : date("d");
|
||||||
$pid = GETPOSTISSET("search_projectid") ? GETPOST("search_projectid", "int", 3) : GETPOST("projectid", "int", 3);
|
$pid = GETPOSTISSET("search_projectid") ? GETPOST("search_projectid", "int", 3) : GETPOST("projectid", "int", 3);
|
||||||
$status = GETPOSTISSET("search_status") ? GETPOST("search_status", 'aZ09') : GETPOST("status", 'aZ09'); // status may be 0, 50, 100, 'todo'
|
$status = GETPOSTISSET("search_status") ? GETPOST("search_status", 'aZ09') : GETPOST("status", 'aZ09'); // status may be 0, 50, 100, 'todo', 'na' or -1
|
||||||
$type = GETPOSTISSET("search_type") ? GETPOST("search_type", 'alpha') : GETPOST("type", 'alpha');
|
$type = GETPOSTISSET("search_type") ? GETPOST("search_type", 'alpha') : GETPOST("type", 'alpha');
|
||||||
$maxprint = ((GETPOST("maxprint", 'int') != '') ?GETPOST("maxprint", 'int') : $conf->global->AGENDA_MAX_EVENTS_DAY_VIEW);
|
$maxprint = ((GETPOST("maxprint", 'int') != '') ?GETPOST("maxprint", 'int') : $conf->global->AGENDA_MAX_EVENTS_DAY_VIEW);
|
||||||
$optioncss = GETPOST('optioncss', 'aZ'); // Option for the css output (always '' except when 'print')
|
$optioncss = GETPOST('optioncss', 'aZ'); // Option for the css output (always '' except when 'print')
|
||||||
@ -627,12 +627,14 @@ if ($type) {
|
|||||||
if ($status == '0') {
|
if ($status == '0') {
|
||||||
$sql .= " AND a.percent = 0";
|
$sql .= " AND a.percent = 0";
|
||||||
}
|
}
|
||||||
if ($status == '-1') {
|
if ($status == '-1' || $status == 'na') {
|
||||||
|
// Not applicable
|
||||||
$sql .= " AND a.percent = -1";
|
$sql .= " AND a.percent = -1";
|
||||||
} // Not applicable
|
}
|
||||||
if ($status == '50') {
|
if ($status == '50') {
|
||||||
|
// Running already started
|
||||||
$sql .= " AND (a.percent > 0 AND a.percent < 100)";
|
$sql .= " AND (a.percent > 0 AND a.percent < 100)";
|
||||||
} // Running already started
|
}
|
||||||
if ($status == 'done' || $status == '100') {
|
if ($status == 'done' || $status == '100') {
|
||||||
$sql .= " AND (a.percent = 100)";
|
$sql .= " AND (a.percent = 100)";
|
||||||
}
|
}
|
||||||
|
|||||||
@ -548,9 +548,8 @@ if (empty($reshook)) {
|
|||||||
}
|
}
|
||||||
//var_dump($object->array_languages);exit;
|
//var_dump($object->array_languages);exit;
|
||||||
|
|
||||||
if (GETPOST('deletephoto')) {
|
if (!empty($_FILES['photo']['name'])) {
|
||||||
$object->logo = '';
|
$current_logo = $object->logo;
|
||||||
} elseif (!empty($_FILES['photo']['name'])) {
|
|
||||||
$object->logo = dol_sanitizeFileName($_FILES['photo']['name']);
|
$object->logo = dol_sanitizeFileName($_FILES['photo']['name']);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -801,6 +800,13 @@ if (empty($reshook)) {
|
|||||||
}
|
}
|
||||||
if ($file_OK) {
|
if ($file_OK) {
|
||||||
if (image_format_supported($_FILES['photo']['name']) > 0) {
|
if (image_format_supported($_FILES['photo']['name']) > 0) {
|
||||||
|
if ($current_logo != $object->logo) {
|
||||||
|
$fileimg = $dir.'/'.$current_logo;
|
||||||
|
$dirthumbs = $dir.'/thumbs';
|
||||||
|
dol_delete_file($fileimg);
|
||||||
|
dol_delete_dir_recursive($dirthumbs);
|
||||||
|
}
|
||||||
|
|
||||||
dol_mkdir($dir);
|
dol_mkdir($dir);
|
||||||
|
|
||||||
if (@is_dir($dir)) {
|
if (@is_dir($dir)) {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user