diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang index 658635e639e..994683af906 100644 --- a/htdocs/langs/en_US/admin.lang +++ b/htdocs/langs/en_US/admin.lang @@ -1075,6 +1075,7 @@ LabelUsedByDefault=Label used by default if no translation can be found for code LabelOnDocuments=Label on documents LabelOrTranslationKey=Label or translation key ValueOfConstantKey=Value of a configuration constant +ConstantIsOn=Option %s is on NbOfDays=No. of days AtEndOfMonth=At end of month CurrentNext=Current/Next diff --git a/htdocs/langs/en_US/modulebuilder.lang b/htdocs/langs/en_US/modulebuilder.lang index b1f8fbf6384..6b61f8c06c1 100644 --- a/htdocs/langs/en_US/modulebuilder.lang +++ b/htdocs/langs/en_US/modulebuilder.lang @@ -77,7 +77,7 @@ IsAMeasure=Is a measure DirScanned=Directory scanned NoTrigger=No trigger NoWidget=No widget -GoToApiExplorer=Go to API explorer +GoToApiExplorer=API explorer ListOfMenusEntries=List of menu entries ListOfDictionariesEntries=List of dictionaries entries ListOfPermissionsDefined=List of defined permissions diff --git a/htdocs/modulebuilder/index.php b/htdocs/modulebuilder/index.php index 35201e78952..2404a81b101 100644 --- a/htdocs/modulebuilder/index.php +++ b/htdocs/modulebuilder/index.php @@ -94,6 +94,7 @@ $result = restrictedArea($user, 'modulebuilder', null); $error = 0; +$form = new Form($db); // Define $listofmodules $dirsrootforscan = array($dirread); @@ -101,7 +102,7 @@ $dirsrootforscan = array($dirread); if ($dirread != DOL_DOCUMENT_ROOT && ($conf->global->MAIN_FEATURES_LEVEL >= 2 || !empty($conf->global->MODULEBUILDER_ADD_DOCUMENT_ROOT))) { $dirsrootforscan[] = DOL_DOCUMENT_ROOT; } // Search modules to edit -$textforlistofdirs = ''."\n"; +$textforlistofdirs = ''."\n"; $listofmodules = array(); $i = 0; foreach ($dirsrootforscan as $dirread) @@ -170,6 +171,10 @@ foreach ($dirsrootforscan as $dirread) if (empty($i)) $textforlistofdirs .= $langs->trans("DirScanned").' : '; else $textforlistofdirs .= ', '; $textforlistofdirs .= ''.$dirread.''; + if ($dirread == DOL_DOCUMENT_ROOT) { + if ($conf->global->MAIN_FEATURES_LEVEL >= 2) $textforlistofdirs .= $form->textwithpicto('', $langs->trans("ConstantIsOn", "MAIN_FEATURES_LEVEL")); + if (! empty($conf->global->MODULEBUILDER_ADD_DOCUMENT_ROOT)) $textforlistofdirs .= $form->textwithpicto('', $langs->trans("ConstantIsOn", "MODULEBUILDER_ADD_DOCUMENT_ROOT")); + } $i++; } @@ -1562,7 +1567,7 @@ llxHeader('', $langs->trans("ModuleBuilder"), '', '', 0, 0, '/includes/ace/src/ext-statusbar.js', '/includes/ace/src/ext-language_tools.js', //'/includes/ace/src/ext-chromevox.js' - ), array()); + ), array(), '', 'classforhorizontalscrolloftabs'); $text = $langs->trans("ModuleBuilder"); @@ -2558,6 +2563,7 @@ if ($module == 'initmodule') print ''.$form->textwithpicto($langs->trans("SearchAll"), $langs->trans("SearchAllDesc")).''; print ''.$form->textwithpicto($langs->trans("IsAMeasure"), $langs->trans("IsAMeasureDesc")).''; print ''.$langs->trans("CSSClass").''; + print ''.$langs->trans("CSSViewClass").''; print ''.$langs->trans("KeyForTooltip").''; print ''.$langs->trans("ShowOnCombobox").''; //print ''.$langs->trans("Disabled").''; @@ -2589,6 +2595,7 @@ if ($module == 'initmodule') print ''; print ''; print ''; + print ''; print ''; print ''; //print ''; @@ -2629,6 +2636,7 @@ if ($module == 'initmodule') $propsearchall = $propval['searchall']; $propisameasure = $propval['isameasure']; $propcss = $propval['css']; + $propcssview = $propval['cssview']; $prophelp = $propval['help']; $propshowoncombobox = $propval['showoncombobox']; //$propdisabled=$propval['disabled']; @@ -2637,63 +2645,70 @@ if ($module == 'initmodule') print ''; print ''; - print $propname; + print dol_escape_htmltag($propname); print ''; print ''; - print $proplabel; + print dol_escape_htmltag($proplabel); print ''; - print ''; - print $proptype; + print ''; + print ''.dol_escape_htmltag($proptype).''; print ''; - print ''; + print ''; if ($proparrayofkeyval) { - print json_encode($proparrayofkeyval); + print ''; + print dol_escape_htmltag(json_encode($proparrayofkeyval)); + print ''; } print ''; print ''; - print $propnotnull; + print dol_escape_htmltag($propnotnull); print ''; print ''; - print $propdefault; + print dol_escape_htmltag($propdefault); print ''; print ''; print $propindex ? '1' : ''; print ''; print ''; - print $propforeignkey ? $propforeignkey : ''; + print $propforeignkey ? dol_escape_htmltag($propforeignkey) : ''; print ''; print ''; - print $propposition; + print dol_escape_htmltag($propposition); print ''; print ''; - print $propenabled ? $propenabled : ''; + print $propenabled ? dol_escape_htmltag($propenabled) : ''; print ''; print ''; - print $propvisible ? $propvisible : '0'; + print $propvisible ? dol_escape_htmltag($propvisible) : '0'; print ''; print ''; - print $propnoteditable ? $propnoteditable : ''; + print $propnoteditable ? dol_escape_htmltag($propnoteditable) : ''; print ''; print ''; print $propsearchall ? '1' : ''; print ''; print ''; - print $propisameasure ? $propisameasure : ''; + print $propisameasure ? dol_escape_htmltag($propisameasure) : ''; print ''; print ''; - print $propcss ? $propcss : ''; + print $propcss ? dol_escape_htmltag($propcss) : ''; print ''; print ''; - print $prophelp ? $prophelp : ''; + print $propcssview ? dol_escape_htmltag($propcssview) : ''; + print ''; + print ''; + print $prophelp ? dol_escape_htmltag($prophelp) : ''; print ''; print ''; - print $propshowoncombobox ? $propshowoncombobox : ''; + print $propshowoncombobox ? dol_escape_htmltag($propshowoncombobox) : ''; print ''; /*print ''; print $propdisabled?$propdisabled:''; print '';*/ - print ''; - print $propcomment; + print ''; + print ''; + print dol_escape_htmltag($propcomment); + print ''; print ''; print ''; if ($propname != 'rowid') diff --git a/htdocs/modulebuilder/template/class/myobject.class.php b/htdocs/modulebuilder/template/class/myobject.class.php index cc0b80e1550..399dd3b10b8 100644 --- a/htdocs/modulebuilder/template/class/myobject.class.php +++ b/htdocs/modulebuilder/template/class/myobject.class.php @@ -102,7 +102,7 @@ class MyObject extends CommonObject 'rowid' => array('type'=>'integer', 'label'=>'TechnicalID', 'enabled'=>1, 'visible'=>-2, 'noteditable'=>1, 'notnull'=> 1, 'index'=>1, 'position'=>1, 'comment'=>'Id', 'css'=>'left'), 'ref' => array('type'=>'varchar(128)', 'label'=>'Ref', 'enabled'=>1, 'visible'=>1, 'noteditable'=>0, 'default'=>'', 'notnull'=> 1, 'showoncombobox'=>1, 'index'=>1, 'position'=>10, 'searchall'=>1, 'comment'=>'Reference of object'), 'entity' => array('type'=>'integer', 'label'=>'Entity', 'enabled'=>1, 'visible'=>0, 'notnull'=> 1, 'default'=>1, 'index'=>1, 'position'=>20), - 'label' => array('type'=>'varchar(255)', 'label'=>'Label', 'enabled'=>1, 'visible'=>1, 'position'=>30, 'searchall'=>1, 'css'=>'minwidth200', 'help'=>'Help text', 'showoncombobox'=>1), + 'label' => array('type'=>'varchar(255)', 'label'=>'Label', 'enabled'=>1, 'visible'=>1, 'position'=>30, 'searchall'=>1, 'css'=>'minwidth300', 'cssview'=>'wordbreak', 'help'=>'Help text', 'showoncombobox'=>1), 'amount' => array('type'=>'price', 'label'=>'Amount', 'enabled'=>1, 'visible'=>1, 'default'=>'null', 'position'=>40, 'searchall'=>0, 'isameasure'=>1, 'help'=>'Help text for amount'), 'qty' => array('type'=>'real', 'label'=>'Qty', 'enabled'=>1, 'visible'=>1, 'default'=>'0', 'position'=>45, 'searchall'=>0, 'isameasure'=>1, 'help'=>'Help text for quantity', 'css'=>'maxwidth75imp'), 'fk_soc' => array('type'=>'integer:Societe:societe/class/societe.class.php:1:status=1 AND entity IN (__SHARED_ENTITIES__)', 'label'=>'ThirdParty', 'visible'=> 1, 'enabled'=>1, 'position'=>50, 'notnull'=>-1, 'index'=>1, 'help'=>'LinkToThirparty'), diff --git a/htdocs/theme/eldy/global.inc.php b/htdocs/theme/eldy/global.inc.php index 6669cea2e65..308426ddc98 100644 --- a/htdocs/theme/eldy/global.inc.php +++ b/htdocs/theme/eldy/global.inc.php @@ -191,10 +191,6 @@ input, select { #mainbody input.button:not(.buttongen):not(.bordertransp) { background: var(--butactionbg); color: #FFF !important; - - /* -webkit-box-shadow: 0px 0px 1px 1px rgba(0, 0, 0, 0.2), 0px 0px 0px rgba(60,60,60,0.1); - box-shadow: 0px 0px 1px 1px rgba(0, 0, 0, 0.2), 0px 0px 0px rgba(60,60,60,0.1); */ - border-radius: 3px; border-collapse: collapse; border: none; @@ -220,7 +216,6 @@ input:invalid, select:invalid { /* Focus definitions must be after standard definition */ textarea:focus { - /* v6 box-shadow: 0 0 4px #8091BF; */ border: 1px solid #aaa !important; } input:focus, select:focus { @@ -571,6 +566,9 @@ th .button { .centpercent { width: 100%; } +.centpercentwithoutmenu { + width: calc(100% - 200px); +} .quatrevingtpercent, .inputsearch { width: 80%; } @@ -1495,20 +1493,20 @@ td.showDragHandle { padding-bottom: 20px; } -/* For having horizontal scroll into array (like with smartphone) */ -/* -#id-container { +/* DOL_XXX For having horizontal scroll into array (like with smartphone) */ + +.classforhorizontalscrolloftabs #id-container { width: 100%; } -.side-nav { +.classforhorizontalscrolloftabs .side-nav { display: block; float: left; } -#id-right { +.classforhorizontalscrolloftabs #id-right { width:calc(100% - 210px); display: inline-block; } -*/ + global->THEME_DISABLE_STICKY_TOPMENU)) { ?> diff --git a/htdocs/theme/md/style.css.php b/htdocs/theme/md/style.css.php index b033ee637c2..f81bcff5e83 100644 --- a/htdocs/theme/md/style.css.php +++ b/htdocs/theme/md/style.css.php @@ -1461,6 +1461,22 @@ td.showDragHandle { } +/* DOL_XXX For having horizontal scroll into array (like with smartphone) */ + +.classforhorizontalscrolloftabs #id-container { + width: 100%; +} +.classforhorizontalscrolloftabs .side-nav { + display: block; + float: left; +} +.classforhorizontalscrolloftabs #id-right { + width:calc(100% - 210px); + display: inline-block; +} + + + .side-nav { display: none; @@ -1513,9 +1529,10 @@ td.showDragHandle { ?> } -/* -* Slide animation -*/ + +/** + * Slide animation + */ .side-nav-vert, #id-right { transition: padding-left 0.5s ease, margin-left 0.5s ease; }