Merge branch 'develop' of https://github.com/Dolibarr/dolibarr.git into develop

This commit is contained in:
Florian Henry 2013-10-30 09:08:02 +01:00
commit df9cf49cfb
24 changed files with 165 additions and 81 deletions

View File

@ -39,13 +39,11 @@ For users:
- New: [ task #165 ] Add import/export of multiprices. - New: [ task #165 ] Add import/export of multiprices.
- New: Add Maghreb regions and departments. - New: Add Maghreb regions and departments.
- New: A more responsive desgin for statistic box of home page. - New: A more responsive desgin for statistic box of home page.
- Qual: Implement same rule for return value of all command line scripts (0 when success, <>0 if error).
- New: [ task #1005 ] Adapting to Spanish legislation bill numbering - New: [ task #1005 ] Adapting to Spanish legislation bill numbering
- New: [ task #1011 ] Now supplier order and invoice deal with payment terms and mode. - New: [ task #1011 ] Now supplier order and invoice deal with payment terms and mode.
- New: [ task #1014 ] Add option to recursivly add parent category. - New: [ task #1014 ] Add option to recursivly add parent category.
- New: [ task #1016 ] Can define a specific numbering for deposits. - New: [ task #1016 ] Can define a specific numbering for deposits.
- New: [ task #918 ] Stock replenishment. - New: [ task #918 ] Stock replenishment.
- Fix: [ bug #992 ] Proforma invoices don't have a separated numeric count.
- New : Add pdf link into supplier invoice list and supplier order list. - New : Add pdf link into supplier invoice list and supplier order list.
- New : Genrate auto the PDF for supplier invoice. - New : Genrate auto the PDF for supplier invoice.
- New : Add category into filter webservice thirdparty method getListOfThirdParties. - New : Add category into filter webservice thirdparty method getListOfThirdParties.
@ -60,17 +58,22 @@ For users:
- New: Add hidden option MAIN_VAT_DEFAULT_IF_AUTODETECT_FAILS. - New: Add hidden option MAIN_VAT_DEFAULT_IF_AUTODETECT_FAILS.
- New: Can send an email from thirdparty card. - New: Can send an email from thirdparty card.
- New: Can cancel holidays that were previously validated. - New: Can cancel holidays that were previously validated.
- Fix: [bug #1022] correct margin calculation for credit notes.
- New: Can choose contact on event (action com) creation, and filtred by thirdparty. - New: Can choose contact on event (action com) creation, and filtred by thirdparty.
- New: Add hidden option MAIN_FORCE_DEFAULT_STATE_ID. - New: Add hidden option MAIN_FORCE_DEFAULT_STATE_ID.
- New: Add page to make mass stock movement. - New: Add page to make mass stock movement.
- New: Add field oustanding limit into thirdparty properties. - New: Add field oustanding limit into thirdparty properties.
- New: Can enter a vat payment of zero. - New: Can enter a vat payment of zero.
- New: Add path to installed dir of external modules + Name and web of module provider.
- New: Add option to use a specific mask for uploaded filename
- Qual: Implement same rule for return value of all command line scripts (0 when success, <>0 if error).
- Fix: [ bug #992 ] Proforma invoices don't have a separated numeric count.
- Fix: [ bug #1022 ] correct margin calculation for credit notes.
- Fix: Better management of using ajax for upload form (to solve problem when enabling ajax jquery multifile upload in some cases).
For translators: For translators:
- Qual: Normalized sort order of all languages files with english reference files. - Qual: Normalized sort order of all languages files with english reference files.
- New: Add language code files for South Africa, France new caledonia. - New: Add language code files for South Africa, France new caledonia, Vietnam.
- New: Translate the email to change password. - New: Translate string for email to change password.
For developers: For developers:
- New: DolGraph can build graph with three lines. - New: DolGraph can build graph with three lines.
@ -86,7 +89,6 @@ For developers:
MAIN_MOTD_SETUPPAGE, MAIN_MOTD_SETUPPAGE, MAIN_HOME now accept "|langfile" into translation MAIN_MOTD_SETUPPAGE, MAIN_MOTD_SETUPPAGE, MAIN_HOME now accept "|langfile" into translation
key to use a specific language file. key to use a specific language file.
- New: Make some changes to allow usage of several alternative $dolibarr_main_url_root variables. - New: Make some changes to allow usage of several alternative $dolibarr_main_url_root variables.
Fix also several bugs with old code.
- Qual: All nowrap properties are now using CSS class nowrap. - Qual: All nowrap properties are now using CSS class nowrap.
- Qual: Move hardcoded code of module mailmanspip into trigger. - Qual: Move hardcoded code of module mailmanspip into trigger.
- New: Into POST forms, if you can add a parameter DOL_AUTOSET_COOKIE with a vlue that is list name, - New: Into POST forms, if you can add a parameter DOL_AUTOSET_COOKIE with a vlue that is list name,
@ -97,6 +99,7 @@ For developers:
- New: A trigger can return an array of error strings instead of one error string. - New: A trigger can return an array of error strings instead of one error string.
- New: Add method to use a dictionnary as a combo box. - New: Add method to use a dictionnary as a combo box.
- New: Add update method for web service product. - New: Add update method for web service product.
- Fix also several bugs with old code.
WARNING: Following change may create regression for some external modules, but was necessary to make WARNING: Following change may create regression for some external modules, but was necessary to make
Dolibarr better: Dolibarr better:

View File

@ -8,6 +8,9 @@ script to build a package, ready to be distributed,
with format .DEB (for Debian, Ubuntu, ...). with format .DEB (for Debian, Ubuntu, ...).
##### Prepare linux env to work
# To build a debian package, you need first # To build a debian package, you need first
# With Ubuntu 12.04 # With Ubuntu 12.04
# apt-get install debhelper dpkg-source gpg lintian git-buildpackage pkg-php-tools schroot sbuild dh-linktree dh-make-php # apt-get install debhelper dpkg-source gpg lintian git-buildpackage pkg-php-tools schroot sbuild dh-linktree dh-make-php
@ -41,6 +44,9 @@ END
* Ask to be included into project collab-maint: http://alioth.debian.org/projects/collab-maint/ * Ask to be included into project collab-maint: http://alioth.debian.org/projects/collab-maint/
##### Some interesting command to know
# To translate .po files # To translate .po files
# debconf-updatepo To run into po dir to regenate templates.pot # debconf-updatepo To run into po dir to regenate templates.pot
# podebconf-report-po --from email@email.com To send email to ask translations # podebconf-report-po --from email@email.com To send email to ask translations
@ -66,9 +72,8 @@ END
# gdebi package.deb Install a package + dependencies # gdebi package.deb Install a package + dependencies
##########################################################
To submit a package to Debian: ##### Global view of submit new package to Debian:
- Post an ITP with reportbugs : - Post an ITP with reportbugs :
> reportbug -B debian --email username@domain.tld wnpp > reportbug -B debian --email username@domain.tld wnpp
@ -90,19 +95,28 @@ http://bugs.debian.org/package
########################################################## ##### Testing a package into unstable env
To generate a package
Create a chroot called "unstable-amd64-sbuild" Create a chroot called "unstable-amd64-sbuild"
> sudo sbuild-createchroot --keyring= unstable /srv/chroot/unstable http://ftp.uk.debian.org/debian > sudo sbuild-createchroot --keyring= unstable /srv/chroot/unstable http://ftp.uk.debian.org/debian
Pour lister les env chroot
> schroot -l
Puis pour se connecter Puis pour se connecter
> schroot > schroot -c name_of_chroot
Pour tester un package
> cp *.deb /srv/chroot/unstable/tmp
> schroot -c name_of_chroot
> dpkg -i dolibarr*.deb
> sudo apt-get install -f
##########################################################
##### Create/Maintain TCPDF package
To update tcpdf package: To update tcpdf package:
@ -128,7 +142,7 @@ from origin/upstream and origin/pristine.
Note: If there was errors solved manually, you may need to make a git commit Note: If there was errors solved manually, you may need to make a git commit
* Add an entry into debian/changelog * Add an entry into debian/changelog
> dh "My comment" will add entry. > dch -v x.y.z-1 "My comment" will add entry.
For example: dch -v x.y.z-1 "New upstream release." for a new version For example: dch -v x.y.z-1 "New upstream release." for a new version
Warning: Date must have format reported by "date -R" Warning: Date must have format reported by "date -R"
@ -157,7 +171,8 @@ http://packages.qa.debian.org/t/tcpdf.html
* Package will be into release when test will be moved as stable. * Package will be into release when test will be moved as stable.
##########################################################
##### Create/Maintain dolibarr package
To update dolibarr debian package To update dolibarr debian package
@ -183,7 +198,7 @@ from origin/upstream and origin/pristine.
Note: If there was errors solved manually after get-orig-sources.sh, you may need to make a git commit Note: If there was errors solved manually after get-orig-sources.sh, you may need to make a git commit
* Add an entry into debian/changelog * Add an entry into debian/changelog
> dh "My comment" will add entry. > dch -v x.y.z-1 "My comment" will add entry.
For example: dch -v x.y.z-1 "New upstream release." for a new version For example: dch -v x.y.z-1 "New upstream release." for a new version
Then modify changelog to replace "unstable" with "UNRELEASED". Then modify changelog to replace "unstable" with "UNRELEASED".

View File

@ -23,12 +23,13 @@ To submit a snapshot for building, we should have a service file with content
<service name="download_src_package"> <service name="download_src_package">
<param name="host">www.dolibarr.org</param> <param name="host">www.dolibarr.org</param>
<param name="protocol">http</param> <param name="protocol">http</param>
<param name="path">/files/stable/package_rpm_generic/dolibarr-3.3.2-3.src.rpm</param> <param name="path">/files/stable/package_rpm_generic/dolibarr-x.y.z-3.src.rpm</param>
</service> </service>
</services> </services>
How to have such a service ? How to have such a service file created automatically ?
Try to make "Add file" and select Remote URL and enter http://www.dolibarr.org/files/stable/package_rpm_generic/dolibarr-3.3.2-3.src.rpm Click on "Add file", then select mode "Upload From: Remote URL"
Enter the Remote URL that should looks like this: http://www.dolibarr.org/files/stable/package_rpm_generic/dolibarr-x.y.v-3.src.rpm
Then add into advanded - attributes Then add into advanded - attributes
OBS:Screenshots http://www.dolibarr.org/images/dolibarr_screenshot1.png OBS:Screenshots http://www.dolibarr.org/images/dolibarr_screenshot1.png

View File

@ -464,7 +464,11 @@ echo Restart mysql server
/sbin/service mysqld restart /sbin/service mysqld restart
%else %else
%if 0%{?suse_version} %if 0%{?suse_version}
if [ -f /etc/init.d/mysqld ]; then
/etc/init.d/mysqld restart
else
/sbin/service mysql restart /sbin/service mysql restart
fi
%else %else
if [ -f /etc/init.d/mysqld ]; then if [ -f /etc/init.d/mysqld ]; then
/etc/init.d/mysqld restart /etc/init.d/mysqld restart

View File

@ -288,7 +288,11 @@ fi
# Restart mysql # Restart mysql
echo Restart mysql echo Restart mysql
if [ -f /etc/init.d/mysqld ]; then
/etc/init.d/mysqld restart
else
/sbin/service mysql restart /sbin/service mysql restart
fi
# Show result # Show result
echo echo

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

View File

@ -1,7 +1,7 @@
<?php <?php
/* Copyright (C) 2003-2007 Rodolphe Quiedeville <rodolphe@quiedeville.org> /* Copyright (C) 2003-2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2003 Jean-Louis Bergamo <jlb@j1b.org> * Copyright (C) 2003 Jean-Louis Bergamo <jlb@j1b.org>
* Copyright (C) 2004-2012 Laurent Destailleur <eldy@users.sourceforge.net> * Copyright (C) 2004-2013 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2004 Eric Seigne <eric.seigne@ryxeo.com> * Copyright (C) 2004 Eric Seigne <eric.seigne@ryxeo.com>
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com> * Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com>
* Copyright (C) 2011 Juanjo Menent <jmenent@2byte.es> * Copyright (C) 2011 Juanjo Menent <jmenent@2byte.es>
@ -163,13 +163,12 @@ foreach ($modulesdir as $dir)
$modules[$i] = $objMod; $modules[$i] = $objMod;
$filename[$i]= $modName; $filename[$i]= $modName;
$orders[$i] = $objMod->family."_".$j; // Sort by family, then by module number $orders[$i] = $objMod->family."_".$j; // Sort by family, then by module number
$dirmod[$i] = $dir;
// Set categ[$i]
$special = isset($specialtostring[$objMod->special])?$specialtostring[$objMod->special]:'unknown'; $special = isset($specialtostring[$objMod->special])?$specialtostring[$objMod->special]:'unknown';
if ($objMod->version == 'development' || $objMod->version == 'experimental') $special='expdev'; if ($objMod->version == 'development' || $objMod->version == 'experimental') $special='expdev';
//print "x".$modName." ".$orders[$i]." ".$special."\n<br>";
if (isset($categ[$special])) $categ[$special]++; // Array of all different modules categories if (isset($categ[$special])) $categ[$special]++; // Array of all different modules categories
else $categ[$special]=1; else $categ[$special]=1;
$dirmod[$i] = $dir;
$j++; $j++;
$i++; $i++;
} }
@ -391,7 +390,16 @@ if ($mode != 'marketplace')
// Version // Version
print '<td align="center" valign="top" class="nowrap">'; print '<td align="center" valign="top" class="nowrap">';
print $objMod->getVersion(); $version=$objMod->getVersion();
$dirofmodule=$dirmod[$key];
if ($objMod->isCoreOrExternalModule() == 'external')
{
$text=$langs->trans("ExternalModule",$dirofmodule);
if (! empty($objMod->editor_name) && $objMod->editor_name != 'dolibarr') $text.=' - '.$objMod->editor_name;
if (! empty($objMod->editor_web) && $objMod->editor_web != 'www.dolibarr.org') $text.=' - '.$objMod->editor_web;
print $form->textwithpicto($version, $text, 1, 'help');
}
else print $version;
print "</td>\n"; print "</td>\n";
// Activate/Disable and Setup (2 columns) // Activate/Disable and Setup (2 columns)
@ -401,7 +409,6 @@ if ($mode != 'marketplace')
print '<td align="center" valign="middle">'; print '<td align="center" valign="middle">';
// Module actif
if (! empty($objMod->always_enabled) || ((! empty($conf->multicompany->enabled) && $objMod->core_enabled) && ($user->entity || $conf->entity!=1))) if (! empty($objMod->always_enabled) || ((! empty($conf->multicompany->enabled) && $objMod->core_enabled) && ($user->entity || $conf->entity!=1)))
{ {
print $langs->trans("Required"); print $langs->trans("Required");

View File

@ -362,7 +362,7 @@ if ($resql)
if (($objp->fk_statut > 0 && $objp->fk_statut < 3) || ($objp->fk_statut == 3 && $objp->facturee == 0)) if (($objp->fk_statut > 0 && $objp->fk_statut < 3) || ($objp->fk_statut == 3 && $objp->facturee == 0))
{ {
print '&nbsp;<a href="'.DOL_URL_ROOT.'/commande/orderstoinvoice.php?socid='.$companystatic->id.'">'; print '&nbsp;<a href="'.DOL_URL_ROOT.'/commande/orderstoinvoice.php?socid='.$companystatic->id.'">';
print img_picto($langs->trans("CreateInvoiceForThisCustomer").' : '.$companystatic->nom, 'object_bill', 'hideonsmrtphone').'</a>'; print img_picto($langs->trans("CreateInvoiceForThisCustomer").' : '.$companystatic->nom, 'object_bill', 'hideonsmartphone').'</a>';
} }
} }
} }

View File

@ -3719,9 +3719,10 @@ class Form
* @param int $translate Translate and encode value * @param int $translate Translate and encode value
* @param int $maxlen Length maximum for labels * @param int $maxlen Length maximum for labels
* @param int $disabled Html select box is disabled * @param int $disabled Html select box is disabled
* @param int $sort 'ASC' or 'DESC' =Sort on label, '' or 'NONE'=Do not sort
* @return string HTML select string * @return string HTML select string
*/ */
function selectarray($htmlname, $array, $id='', $show_empty=0, $key_in_label=0, $value_as_key=0, $option='', $translate=0, $maxlen=0, $disabled=0) function selectarray($htmlname, $array, $id='', $show_empty=0, $key_in_label=0, $value_as_key=0, $option='', $translate=0, $maxlen=0, $disabled=0, $sort='')
{ {
global $langs; global $langs;
@ -3736,28 +3737,30 @@ class Form
if (is_array($array)) if (is_array($array))
{ {
// Translate
if ($translate)
{
foreach($array as $key => $value) $array[$key]=$langs->trans($value);
}
// Sort
if ($sort == 'ASC') asort($array);
elseif ($sort == 'DESC') arsort($array);
foreach($array as $key => $value) foreach($array as $key => $value)
{ {
$out.='<option value="'.$key.'"'; $out.='<option value="'.$key.'"';
// Si il faut pre-selectionner une valeur if ($id != '' && $id == $key) $out.=' selected="selected"'; // To preselect a value
if ($id != '' && $id == $key)
{
$out.=' selected="selected"';
}
$out.='>'; $out.='>';
$newval=($translate?$langs->trans(ucfirst($value)):$value);
if ($key_in_label) if ($key_in_label)
{ {
$selectOptionValue = dol_htmlentitiesbr($key.' - '.($maxlen?dol_trunc($newval,$maxlen):$newval)); $selectOptionValue = dol_htmlentitiesbr($key.' - '.($maxlen?dol_trunc($value,$maxlen):$value));
} }
else else
{ {
$selectOptionValue = dol_htmlentitiesbr($maxlen?dol_trunc($newval,$maxlen):$newval); $selectOptionValue = dol_htmlentitiesbr($maxlen?dol_trunc($value,$maxlen):$value);
if ($value == '' || $value == '-') { if ($value == '' || $value == '-') $selectOptionValue='&nbsp;';
$selectOptionValue='&nbsp;';
}
} }
$out.=$selectOptionValue; $out.=$selectOptionValue;
$out.="</option>\n"; $out.="</option>\n";

View File

@ -59,18 +59,22 @@ class FormFile
* @param int $size Length of input file area * @param int $size Length of input file area
* @param Object $object Object to use (when attachment is done on an element) * @param Object $object Object to use (when attachment is done on an element)
* @param string $options Options * @param string $options Options
* @param boolean $useajax Use ajax if enabled * @param boolean $useajax Use fileupload ajax (0=never, 1=if enabled, 2=always whatever is option). 2 should never be used.
* @param string $savingdocmask Mask to use to define output filename. For example 'XXXXX-__YYYYMMDD__-__file__'
* @return int <0 if KO, >0 if OK * @return int <0 if KO, >0 if OK
*/ */
function form_attach_new_file($url, $title='', $addcancel=0, $sectionid=0, $perm=1, $size=50, $object='', $options='', $useajax=true) function form_attach_new_file($url, $title='', $addcancel=0, $sectionid=0, $perm=1, $size=50, $object='', $options='', $useajax=1, $savingdocmask='')
{ {
global $conf,$langs, $hookmanager; global $conf,$langs, $hookmanager;
$hookmanager->initHooks(array('formfile')); $hookmanager->initHooks(array('formfile'));
if (! empty($conf->browser->phone)) return 0; if (! empty($conf->browser->phone)) return 0;
if (! empty($conf->global->MAIN_USE_JQUERY_FILEUPLOAD) && $useajax) if ((! empty($conf->global->MAIN_USE_JQUERY_FILEUPLOAD) && $useajax) || ($useajax==2))
{ {
// TODO: Cheeck this works with 2 forms on same page
// TODO: Cheeck this works with GED module, otherwise, force useajax to 0
// TODO: This does not support option savingdocmask
return $this->_formAjaxFileUpload($object); return $this->_formAjaxFileUpload($object);
} }
else else
@ -133,6 +137,17 @@ class FormFile
$out .= ' ('.$langs->trans("UploadDisabled").')'; $out .= ' ('.$langs->trans("UploadDisabled").')';
} }
$out .= "</td></tr>"; $out .= "</td></tr>";
if ($savingdocmask)
{
$out .= '<tr>';
if (! empty($options)) $out .= '<td>'.$options.'</td>';
$out .= '<td valign="middle" class="nowrap">';
$out .= '<input type="checkbox" checked="checked" name="savingdocmask" value="'.dol_escape_js($savingdocmask).'"> '.$langs->trans("SaveUploadedFileWithMask", preg_replace('/__file__/',$langs->transnoentitiesnoconv("OriginFileName"),$savingdocmask), $langs->transnoentitiesnoconv("OriginFileName"));
$out .= '</td>';
$out .= '</tr>';
}
$out .= "</table>"; $out .= "</table>";
$out .= '</form>'; $out .= '</form>';

View File

@ -994,18 +994,28 @@ function dol_init_file_process($pathtoscan='')
* @param int $allowoverwrite 1=Allow overwrite existing file * @param int $allowoverwrite 1=Allow overwrite existing file
* @param int $donotupdatesession 1=Do no edit _SESSION variable * @param int $donotupdatesession 1=Do no edit _SESSION variable
* @param string $varfiles _FILES var name * @param string $varfiles _FILES var name
* @param string $savingdocmask Mask to use to define output filename. For example 'XXXXX-__YYYYMMDD__-__file__'
* @return void * @return void
*/ */
function dol_add_file_process($upload_dir,$allowoverwrite=0,$donotupdatesession=0,$varfiles='addedfile') function dol_add_file_process($upload_dir, $allowoverwrite=0, $donotupdatesession=0, $varfiles='addedfile', $savingdocmask='')
{ {
global $db,$user,$conf,$langs; global $db,$user,$conf,$langs;
if (! empty($_FILES[$varfiles])) // For view $_FILES[$varfiles]['error'] if (! empty($_FILES[$varfiles])) // For view $_FILES[$varfiles]['error']
{ {
dol_syslog('dol_add_file_process upload_dir='.$upload_dir.' allowoverwrite='.$allowoverwrite.' donotupdatesession='.$donotupdatesession, LOG_DEBUG); dol_syslog('dol_add_file_process upload_dir='.$upload_dir.' allowoverwrite='.$allowoverwrite.' donotupdatesession='.$donotupdatesession.' savingdocmask='.$savingdocmask, LOG_DEBUG);
if (dol_mkdir($upload_dir) >= 0) if (dol_mkdir($upload_dir) >= 0)
{ {
$resupload = dol_move_uploaded_file($_FILES[$varfiles]['tmp_name'], $upload_dir . "/" . $_FILES[$varfiles]['name'], $allowoverwrite, 0, $_FILES[$varfiles]['error'], 0, $varfiles); // Define $destpath (path to file including filename) and $destfile (only filename)
$destpath=$upload_dir . "/" . $_FILES[$varfiles]['name'];
$destfile=$_FILES[$varfiles]['name'];
if ($savingdocmask)
{
$destpath=$upload_dir . "/" . preg_replace('/__file__/',$_FILES[$varfiles]['name'],$savingdocmask);
$destfile=preg_replace('/__file__/',$_FILES[$varfiles]['name'],$savingdocmask);
}
$resupload = dol_move_uploaded_file($_FILES[$varfiles]['tmp_name'], $destpath, $allowoverwrite, 0, $_FILES[$varfiles]['error'], 0, $varfiles);
if (is_numeric($resupload) && $resupload > 0) if (is_numeric($resupload) && $resupload > 0)
{ {
include_once DOL_DOCUMENT_ROOT.'/core/lib/images.lib.php'; include_once DOL_DOCUMENT_ROOT.'/core/lib/images.lib.php';
@ -1013,16 +1023,16 @@ function dol_add_file_process($upload_dir,$allowoverwrite=0,$donotupdatesession=
{ {
include_once DOL_DOCUMENT_ROOT.'/core/class/html.formmail.class.php'; include_once DOL_DOCUMENT_ROOT.'/core/class/html.formmail.class.php';
$formmail = new FormMail($db); $formmail = new FormMail($db);
$formmail->add_attached_files($upload_dir . "/" . $_FILES[$varfiles]['name'],$_FILES[$varfiles]['name'],$_FILES[$varfiles]['type']); $formmail->add_attached_files($destpath, $destfile, $_FILES[$varfiles]['type']);
} }
if (image_format_supported($upload_dir . "/" . $_FILES[$varfiles]['name']) == 1) if (image_format_supported($destpath) == 1)
{ {
// Create small thumbs for image (Ratio is near 16/9) // Create small thumbs for image (Ratio is near 16/9)
// Used on logon for example // Used on logon for example
$imgThumbSmall = vignette($upload_dir . "/" . $_FILES[$varfiles]['name'], 160, 120, '_small', 50, "thumbs"); $imgThumbSmall = vignette($destpath, 160, 120, '_small', 50, "thumbs");
// Create mini thumbs for image (Ratio is near 16/9) // Create mini thumbs for image (Ratio is near 16/9)
// Used on menu or for setup page for example // Used on menu or for setup page for example
$imgThumbMini = vignette($upload_dir . "/" . $_FILES[$varfiles]['name'], 160, 120, '_mini', 50, "thumbs"); $imgThumbMini = vignette($destpath, 160, 120, '_mini', 50, "thumbs");
} }
setEventMessage($langs->trans("FileTransferComplete")); setEventMessage($langs->trans("FileTransferComplete"));

View File

@ -262,7 +262,7 @@ abstract class DolibarrModules
/** /**
* Retourne la version du module. * Return module version.
* Pour les modules a l'etat 'experimental', retourne la traduction de 'experimental' * Pour les modules a l'etat 'experimental', retourne la traduction de 'experimental'
* Pour les modules 'dolibarr', retourne la version de Dolibarr * Pour les modules 'dolibarr', retourne la version de Dolibarr
* Pour les autres modules, retourne la version du module * Pour les autres modules, retourne la version du module
@ -282,6 +282,20 @@ abstract class DolibarrModules
} }
/**
* Return if a module is a core or external module
*
* @return string 'core', 'external' or 'unknown'
*/
function isCoreOrExternalModule()
{
if ($this->version == 'dolibarr') return 'core';
if (! empty($this->version) && ! in_array($this->version,array('experimental','development'))) return 'external';
if (! empty($this->editor_name) || ! empty($this->editor_web)) return 'external';
return 'unknown';
}
/** /**
* Return list of lang files related to module * Return list of lang files related to module
* *

View File

@ -74,8 +74,9 @@ if ($object->fetch($id, $ref))
// Envoi fichier // Envoi fichier
if (GETPOST('sendit') && ! empty($conf->global->MAIN_UPLOAD_DOC)) if (GETPOST('sendit') && ! empty($conf->global->MAIN_UPLOAD_DOC))
{ {
if ($object->id > 0) { if ($object->id > 0)
dol_add_file_process($upload_dir, 0, 1, 'userfile'); {
dol_add_file_process($upload_dir, 0, 1, 'userfile', GETPOST('savingdocmask'));
} }
} }
@ -197,9 +198,10 @@ if ($object->id > 0)
print '</table>'; print '</table>';
print '</div>'; print '</div>';
// Affiche formulaire upload // Affiche formulaire upload
$formfile=new FormFile($db); $formfile=new FormFile($db);
$formfile->form_attach_new_file($_SERVER['PHP_SELF'].'?facid='.$object->id,'',0,0,$user->rights->fournisseur->facture->creer, 50, $object); $formfile->form_attach_new_file($_SERVER['PHP_SELF'].'?facid='.$object->id, '', 0, 0, $user->rights->fournisseur->facture->creer, 50, $object, '', 0, dol_sanitizeFileName($object->ref.'_'.$object->ref_supplier.'___file__'));
// List of document // List of document

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -379,6 +379,7 @@ LinkToTest=Clickable link generated for user <strong>%s</strong> (click phone nu
KeepEmptyToUseDefault=Keep empty to use default value KeepEmptyToUseDefault=Keep empty to use default value
DefaultLink=Default link DefaultLink=Default link
ValueOverwrittenByUserSetup=Warning, this value may be overwritten by user specific setup (each user can set his own clicktodial url) ValueOverwrittenByUserSetup=Warning, this value may be overwritten by user specific setup (each user can set his own clicktodial url)
ExternalModule=External module - Installed into directory %s
# Modules # Modules
Module0Name=Users & groups Module0Name=Users & groups

View File

@ -658,6 +658,8 @@ from=from
toward=toward toward=toward
Access=Access Access=Access
HelpCopyToClipboard=Use Ctrl+C to copy to clipboard HelpCopyToClipboard=Use Ctrl+C to copy to clipboard
SaveUploadedFileWithMask=Save file on server with name "<strong>%s</strong>" (otherwise "%s")
OriginFileName=Nom d'origine
# Week day # Week day
Monday=Monday Monday=Monday

View File

@ -379,6 +379,7 @@ LinkToTest=Lien cliquable généré pour l'utilisateur <strong>%s</strong> (cliq
KeepEmptyToUseDefault=Laisser ce champ vide pour utiliser la valeur par défaut KeepEmptyToUseDefault=Laisser ce champ vide pour utiliser la valeur par défaut
DefaultLink=Lien par défaut DefaultLink=Lien par défaut
ValueOverwrittenByUserSetup=Attention, cette valeur peut être écrasée par une valeur spécifique à la configuration de l'utilisateur (chaque utilisateur pouvant avoir sa propre URL « clicktodial ») ValueOverwrittenByUserSetup=Attention, cette valeur peut être écrasée par une valeur spécifique à la configuration de l'utilisateur (chaque utilisateur pouvant avoir sa propre URL « clicktodial »)
ExternalModule=Module externe - Installé dans le répertoire %s
# Modules # Modules
Module0Name=Utilisateurs & groupes Module0Name=Utilisateurs & groupes

View File

@ -658,6 +658,8 @@ from=de
toward=vers toward=vers
Access=Accès Access=Accès
HelpCopyToClipboard=Utilisez Ctrl+C pour copier dans le presse-papier HelpCopyToClipboard=Utilisez Ctrl+C pour copier dans le presse-papier
SaveUploadedFileWithMask=Sauver le fichier sur le serveur sous le nom "<strong>%s</strong>" (sinon "%s")
OriginFileName=nom du fichier source
# Week day # Week day
Monday=Lundi Monday=Lundi

View File

@ -910,7 +910,7 @@ else
// Type - Size // Type - Size
print '<tr><td>'.$langs->trans("ThirdPartyType").'</td><td>'."\n"; print '<tr><td>'.$langs->trans("ThirdPartyType").'</td><td>'."\n";
print $form->selectarray("typent_id",$formcompany->typent_array(0), $object->typent_id); print $form->selectarray("typent_id", $formcompany->typent_array(0), $object->typent_id, 0, 0, 0, '', 0, 0, 0, (empty($conf->global->SOCIETE_SORT_ON_TYPEENT)?'ASC':$conf->global->SOCIETE_SORT_ON_TYPEENT));
if ($user->admin) print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionnarySetup"),1); if ($user->admin) print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionnarySetup"),1);
print '</td>'; print '</td>';
print '<td>'.$langs->trans("Staff").'</td><td>'; print '<td>'.$langs->trans("Staff").'</td><td>';
@ -1360,7 +1360,7 @@ else
// Type - Size // Type - Size
print '<tr><td>'.$langs->trans("ThirdPartyType").'</td><td>'; print '<tr><td>'.$langs->trans("ThirdPartyType").'</td><td>';
print $form->selectarray("typent_id",$formcompany->typent_array(0), $object->typent_id); print $form->selectarray("typent_id",$formcompany->typent_array(0), $object->typent_id, 0, 0, 0, '', 0, 0, 0, (empty($conf->global->SOCIETE_SORT_ON_TYPEENT)?'ASC':$conf->global->SOCIETE_SORT_ON_TYPEENT));
if ($user->admin) print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionnarySetup"),1); if ($user->admin) print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionnarySetup"),1);
print '</td>'; print '</td>';
print '<td>'.$langs->trans("Staff").'</td><td>'; print '<td>'.$langs->trans("Staff").'</td><td>';