diff --git a/htdocs/admin/modules.php b/htdocs/admin/modules.php
index 952ac0f902e..f706abec464 100644
--- a/htdocs/admin/modules.php
+++ b/htdocs/admin/modules.php
@@ -1265,7 +1265,7 @@ if ($mode == 'marketplace') {
// Marketplace
print '
'."\n";
$url = 'https://www.dolistore.com';
- print ' | ';
+ print ' | ';
print ''.$langs->trans("DoliStoreDesc").' ';
print img_picto('', 'url', 'class="pictofixedwidth"').''.$url.' | ';
print '';
@@ -1279,7 +1279,7 @@ if ($mode == 'marketplace') {
}
$messagetoadd .= ' Using Shop address MAIN_MODULE_DOLISTORE_SHOP_URL = '.$remotestore->shop_url;
- $messagetoadd .= ' Using Remote API addtess MAIN_MODULE_DOLISTORE_API_URL = '.$remotestore->dolistore_api_url;
+ $messagetoadd .= ' Using Remote API address MAIN_MODULE_DOLISTORE_API_URL = '.$remotestore->dolistore_api_url;
$messagetoadd .= ' Using API public key MAIN_MODULE_DOLISTORE_API_KEY = '.$remotestore->dolistore_api_key;
// Add basic auth if needed
$basicAuthLogin = getDolGlobalString('MAIN_MODULE_DOLISTORE_BASIC_LOGIN');
@@ -1297,7 +1297,7 @@ if ($mode == 'marketplace') {
// Community
print ' |
'."\n";
$url = 'https://github.com/Dolibarr/dolibarr-community-modules';
- print ' | ';
+ print ' | ';
print ''.$langs->trans("CommunityModulesDesc").' ';
print img_picto('', 'url', 'class="pictofixedwidth"').''.$url.' | ';
print '';
diff --git a/htdocs/admin/remotestore/class/externalModules.class.php b/htdocs/admin/remotestore/class/externalModules.class.php
index e43873dbc4a..cc59070fa43 100644
--- a/htdocs/admin/remotestore/class/externalModules.class.php
+++ b/htdocs/admin/remotestore/class/externalModules.class.php
@@ -404,11 +404,11 @@ class ExternalModules
}
// add image or default ?
- if ($product["cover_photo_url"] != '') {
+ if ($product["cover_photo_url"] != '' && $product["cover_photo_url"] != '#') {
$images = 'trans('Version').' '.$product["module_version"]).'">';
$images .= ' ';
} else {
- $images = ' ';
+ $images = ' ';
}
// free or pay ?
@@ -441,39 +441,50 @@ class ExternalModules
// Set and check version
$version = '';
if ($this->version_compare($product["dolibarr_min"], $dolibarrversiontouse) <= 0) {
- if ($this->version_compare($product["dolibarr_max"], $dolibarrversiontouse) >= 0) {
+ if (!empty($product["dolibarr_max"]) && $product["dolibarr_max"] != 'auto' && $product["dolibarr_max"] != 'unknown' && $this->version_compare($product["dolibarr_max"], $dolibarrversiontouse) >= 0) {
//compatible
$version = ''.$langs->trans(
'CompatibleUpTo',
- $product["dolibarr_max"],
- $product["dolibarr_min"],
- $product["dolibarr_max"]
+ $dolibarrversiontouse,
+ (float) $product["dolibarr_min"],
+ (float) $product["dolibarr_max"]
).'';
$compatible = '';
} else {
- //never compatible, module expired
+ // never compatible, module expired
$version = ''.$langs->trans(
'NotCompatible',
$dolibarrversiontouse,
+ (float) $product["dolibarr_min"],
+ (float) $product["dolibarr_max"]
+ ).'';
+ $compatible = 'NotCompatible';
+ }
+ } else {
+ if ($product["dolibarr_min"] == 'auto' || $product["dolibarr_min"] != 'unknown') {
+ // never compatible, module expired
+ $version = ''.$langs->trans(
+ 'NotCompatible',
+ $dolibarrversiontouse,
+ (float) $product["dolibarr_min"],
+ (float) $product["dolibarr_max"]
+ ).'';
+ $compatible = 'NotCompatible';
+ } else {
+ //need update
+ $version = ''.$langs->trans(
+ 'CompatibleAfterUpdate',
+ $dolibarrversiontouse,
$product["dolibarr_min"],
$product["dolibarr_max"]
).'';
$compatible = 'NotCompatible';
}
- } else {
- //need update
- $version = ''.$langs->trans(
- 'CompatibleAfterUpdate',
- $dolibarrversiontouse,
- $product["dolibarr_min"],
- $product["dolibarr_max"]
- ).'';
- $compatible = 'NotCompatible';
}
- //output template
- $html .= ' |
';
- $html .= '';
+ // Output the line
+ $html .= ' ';
+ $html .= '';
$html .= $newapp.$images; // No dol_escape_htmltag, it is already escape html
$html .= ' | ';
$html .= '';
@@ -485,7 +496,7 @@ class ExternalModules
if (empty($product['tms'])) {
$html .= ''.$langs->trans("DateCreation").': '.$langs->trans("Unknown").'';
} else {
- $html .= dol_print_date(dol_stringtotime($product['tms']), 'day');
+ $html .= ''.dol_print_date(dol_stringtotime($product['tms']), 'day').'';
}
$html .= ' - '.$langs->trans('Ref').' '.dol_escape_htmltag($product["ref"]);
//$html .= ' - '.dol_escape_htmltag($langs->trans('Id')).': '.((int) $product["id"]);
@@ -865,7 +876,7 @@ class ExternalModules
continue;
}
$adaptedPackage = [
- 'ref' => str_replace(' ', '', $package['author'].'@'.$package['modulename'].'@'.$package['current_version']),
+ 'ref' => str_replace(' ', '', $package['modulename'].'@'.$package['current_version'].'@'.$package['author']),
'label' => !empty($package['label'][substr($this->lang, 0, 2)])
? $package['label'][substr($this->lang, 0, 2)]
: (!empty($package['label']['en']) ? $package['label']['en'] : $package['modulename']),
diff --git a/htdocs/admin/remotestore/css/store.css b/htdocs/admin/remotestore/css/store.css
index 441bd3a7379..28fe838bde5 100644
--- a/htdocs/admin/remotestore/css/store.css
+++ b/htdocs/admin/remotestore/css/store.css
@@ -3,9 +3,9 @@ table#list_of_modules {
border-spacing: 0px;
}
.imgstore {
- max-height:150px;
- max-width: 150px;
- box-shadow: 5px 5px 20px #ddd;
+ max-height:120px;
+ max-width: 120px;
+ box-shadow: 3px 3px 20px #ddd;
}
div.divsearchfield {
@@ -86,7 +86,8 @@ div.divsearchfield {
.newAppParent{
position: relative;
overflow: hidden;
- min-height: 100px;
+ padding: 10px;
+ /* min-height: 100px; */
}
.newApp, .updatedApp{
background-color: orange;
@@ -115,14 +116,7 @@ div.divsearchfield {
color: orange;
}
.compatible {
- background-image: url("../img/compatible.png");
- background-position: left center;
- background-repeat: no-repeat;
color: green;
- display: inline-block;
- height: 32px;
- line-height: 32px;
- padding-left: 35px;
}
tr.app {
height: 200px;
diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang
index 64690a7e6c1..28e57c05a5a 100644
--- a/htdocs/langs/en_US/admin.lang
+++ b/htdocs/langs/en_US/admin.lang
@@ -4,6 +4,7 @@ BoldLabelOnPDF=Print label of product item in Bold in PDF
Foundation=Foundation
Version=Version
Publisher=Publisher
+Provider=Provider
VersionProgram=Version program
VersionLastInstall=Initial install version
VersionLastUpgrade=Latest version upgrade
@@ -223,7 +224,7 @@ ModulesDevelopYourModule=Develop your own app/modules
ModulesDevelopDesc=You may also develop your own module or find a partner to develop one for you.
DOLISTOREdescriptionLong=Instead of switching on www.dolistore.com web site to find an external module, you can use this embedded tool that will perform the search on the external market place and dolibarr-community-modules repository for you (may be slow, need an internet access)...
FreeModule=Free
-CompatibleUpTo=Compatible with version %s
+CompatibleUpTo=Compatible with version %s (Min %s - Max %s).
NotCompatible=This module does not seem compatible with your Dolibarr %s (Min %s - Max %s).
CompatibleAfterUpdate=This module requires an update to your Dolibarr %s (Min %s - Max %s).
SeeInMarkerPlace=See in Market place
@@ -235,7 +236,7 @@ Updated=Updated
AchatTelechargement=Buy / Download
GoModuleSetupArea=To deploy/install a new module, go to the Module setup area: %s.
DoliStoreDesc=DoliStore, the official market place for Dolibarr ERP/CRM external modules
-CommunityModulesDesc=Dolibarr community modules repository. This repository contains all community modules for Dolibarr ERP CRM.
+CommunityModulesDesc=Dolibarr community modules repository. This repository contains some modules for Dolibarr ERP CRM referenced on the community repository.
DoliPartnersDesc=List of companies providing custom-developed modules or features. Note: since Dolibarr is an open source application, anyone experienced in PHP programming should be able to develop a module.
WebSiteDesc=External websites for more add-on (non-core) modules...
DevelopYourModuleDesc=Some solutions to develop your own module...
diff --git a/htdocs/langs/fr_FR/admin.lang b/htdocs/langs/fr_FR/admin.lang
index 79e769f8e09..1bcbd27c910 100644
--- a/htdocs/langs/fr_FR/admin.lang
+++ b/htdocs/langs/fr_FR/admin.lang
@@ -234,7 +234,7 @@ Updated=Mise à jour effectuée
AchatTelechargement=Acheter/télécharger
GoModuleSetupArea=Pour déployer/installer un nouveau module, rendez vous dans la zone de configuration des modules : %s
DoliStoreDesc=DoliStore, la place de marché officielle des modules et extensions complémentaires pour Dolibarr ERP/CRM
-CommunityModulesDesc=dolibarr-community-modules, This repository contains all community modules for Dolibarr ERP CRM.
+CommunityModulesDesc=Dolibarr community modules repository. This repository contains some modules for Dolibarr ERP CRM referenced on the community repository.
DoliPartnersDesc=Liste de quelques sociétés qui peuvent fournir/développer des modules ou fonctions sur mesure. Remarque: Dolibarr étant une application Open Source, toute société connaissant le langage PHP peut fournir du développement spécifique.
WebSiteDesc=Sites fournisseurs à consulter pour trouver plus de modules (extensions)...
DevelopYourModuleDesc=Quelques pistes pour développer votre propre module/application...
diff --git a/htdocs/takepos/admin/terminal.php b/htdocs/takepos/admin/terminal.php
index c430c572d3c..d4a22225462 100644
--- a/htdocs/takepos/admin/terminal.php
+++ b/htdocs/takepos/admin/terminal.php
@@ -334,7 +334,7 @@ if (isModEnabled('stock')) {
if (!$disabled) {
print '';
}
- if (!getDolGlobalString('CASHDESK_ID_WAREHOUSE'.$terminal)) {
+ if (!$disabled && !getDolGlobalString('CASHDESK_ID_WAREHOUSE'.$terminal)) {
print img_warning($langs->trans("DisableStockChange").' - '.$langs->trans("NoWarehouseDefinedForTerminal"));
}
print ' | '; // Force warehouse (this is not a default value)
diff --git a/htdocs/theme/eldy/global.inc.php b/htdocs/theme/eldy/global.inc.php
index 9b6172215e6..d8bde78df73 100644
--- a/htdocs/theme/eldy/global.inc.php
+++ b/htdocs/theme/eldy/global.inc.php
@@ -2039,6 +2039,7 @@ maxscreenheightless200 {
.titlefield { /* width: 25%; */ min-width: 150px; width: 25%; }
.titlefieldmiddle { width: 45%; }
.titlefieldmax45 { max-width: 45%; min-width: 180px; }
+.imgmaxwidth100 { max-width: 100px; }
.imgmaxwidth180 { max-width: 180px; }
.imgmaxheight50 { max-height: 50px; }
diff --git a/htdocs/theme/md/style.css.php b/htdocs/theme/md/style.css.php
index afebf8d85a3..0aaf34e66e0 100644
--- a/htdocs/theme/md/style.css.php
+++ b/htdocs/theme/md/style.css.php
@@ -2179,6 +2179,7 @@ tr.nobottom td {
.titlefield { /* width: 25%; */ min-width: 150px; width: 25%; }
.titlefieldmiddle { width: 50%; }
.titlefieldmax45 { max-width: 45%; min-width: 180px; }
+.imgmaxwidth100 { max-width: 100px; }
.imgmaxwidth180 { max-width: 180px; }
.imgmaxheight50 { max-height: 50px; }
|