diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php index a55952e28ac..29bfd1673ce 100644 --- a/htdocs/core/class/html.form.class.php +++ b/htdocs/core/class/html.form.class.php @@ -4729,8 +4729,8 @@ class Form // You can set MAIN_POPUP_CALENDAR to 'eldy' or 'jquery' $usecalendar='combo'; - if (! empty($conf->use_javascript_ajax) && (empty($conf->global->MAIN_POPUP_CALENDAR) || $conf->global->MAIN_POPUP_CALENDAR != "none")) $usecalendar=empty($conf->global->MAIN_POPUP_CALENDAR)?'eldy':$conf->global->MAIN_POPUP_CALENDAR; - if ($conf->browser->phone) $usecalendar='combo'; + if (! empty($conf->use_javascript_ajax) && (empty($conf->global->MAIN_POPUP_CALENDAR) || $conf->global->MAIN_POPUP_CALENDAR != "none")) $usecalendar=empty($conf->global->MAIN_POPUP_CALENDAR)?'jquery':$conf->global->MAIN_POPUP_CALENDAR; + //if (! empty($conf->browser->phone)) $usecalendar='combo'; if ($d) { @@ -4772,9 +4772,21 @@ class Form { if (! $disabled) { - print ""; + $retstring.=""; } // Zone de saisie manuelle de la date @@ -4786,14 +4798,20 @@ class Form // Icone calendrier if (! $disabled) { - //$retstring.=''; + /* Not required. Managed by option buttonImage of jquery + $retstring.=img_object($langs->trans("SelectDate"),'calendarday','id="'.$prefix.'id" class="datecallink"'); + $retstring.="";*/ + } + else + { + $retstring.=''; } - else $retstring.=''; $retstring.=''."\n"; $retstring.=''."\n"; @@ -4801,7 +4819,7 @@ class Form } else { - print "Bad value of MAIN_POPUP_CALENDAR"; + $retstring.="Bad value of MAIN_POPUP_CALENDAR"; } } // Show date with combo selects diff --git a/htdocs/core/js/lib_head.js.php b/htdocs/core/js/lib_head.js.php index 478d66f2c2a..28b908aa13c 100644 --- a/htdocs/core/js/lib_head.js.php +++ b/htdocs/core/js/lib_head.js.php @@ -46,7 +46,7 @@ else header('Cache-Control: no-cache'); ?> /* - * ================================================================= + * ================================================================= * Purpose: * Pour la saisie des dates par calendrier Input: base "/theme/eldy" dateFieldID * "dateo" Nom du champ format "dd/MM/yyyy" Format issu de Dolibarr de @@ -63,7 +63,7 @@ function showDP(base,dateFieldID,format,codelang) showDP.datefieldID=dateFieldID; // Must be after the close var dateField=getObjectFromID(dateFieldID); - + // get positioning var thetop=getTop(dateField)+dateField.offsetHeight; @@ -86,7 +86,7 @@ function showDP(base,dateFieldID,format,codelang) showDP.box.style.position="absolute"; showDP.box.style.top=thetop + "px"; showDP.box.style.left=theleft + "px"; - + if (dateField.value) // Si il y avait valeur initiale dans champ { selDate=getDateFromFormat(dateField.value,format); @@ -129,7 +129,7 @@ function resetDP(base,dateFieldID,format,codelang) var dateField=getObjectFromID(dateFieldID); dateField.value = formatDate(new Date(), format); dpChangeDay(dateFieldID,format); - + var alreadybox=getObjectFromID("DPCancel"); if (alreadybox) showDP(base,dateFieldID,format,codelang); } @@ -147,25 +147,26 @@ function loadMonth(base,month,year,ymd,codelang) } var req=null; - + req=loadXMLDoc(theURL,null,false); if (req.responseText == '') alert('Failed to get URL '.theURL); // alert(theURL+' - '+req.responseText); // L'url doit avoir la meme racine // que la pages et elements sinon pb de securite. - showDP.box.innerHTML=req.responseText; + showDP.box.innerHTML=req.responseText; } function closeDPBox() { document.body.removeChild(showDP.box); displaySelectBoxes(); - showDP.box=null; - showDP.datefieldID=null; + showDP.box=null; + showDP.datefieldID=null; } function dpChangeDay(dateFieldID,format) { showDP.datefieldID=dateFieldID; + console.log("Call dpChangeDay, we save date into detailed fields."); var thefield=getObjectFromID(showDP.datefieldID); var thefieldday=getObjectFromID(showDP.datefieldID+"day"); @@ -200,7 +201,7 @@ function dpClickDay(year,month,day,format) var thefieldmonth=getObjectFromID(showDP.datefieldID+"month"); var thefieldyear=getObjectFromID(showDP.datefieldID+"year"); - var dt = new Date(year, month-1, day); + var dt = new Date(year, month-1, day); thefield.value=formatDate(dt,format); if(thefield.onchange) thefield.onchange.call(thefield); @@ -238,7 +239,7 @@ function getTop(theitem){ offsetTop += offsetTrail.offsetTop; offsetTrail = offsetTrail.offsetParent; } - if (navigator.userAgent.indexOf("Mac") != -1 && typeof document.body.leftMargin != "undefined") + if (navigator.userAgent.indexOf("Mac") != -1 && typeof document.body.leftMargin != "undefined") offsetTop += document.body.TopMargin; return offsetTop; } @@ -251,7 +252,7 @@ function getLeft(theitem){ offsetLeft += offsetTrail.offsetLeft; offsetTrail = offsetTrail.offsetParent; } - if (navigator.userAgent.indexOf("Mac") != -1 && typeof document.body.leftMargin != "undefined") + if (navigator.userAgent.indexOf("Mac") != -1 && typeof document.body.leftMargin != "undefined") offsetLeft += document.body.leftMargin; return offsetLeft; } @@ -260,16 +261,16 @@ function getLeft(theitem){ // Create XMLHttpRequest object and load url // Used by calendar or other ajax processes // Return req built or false if error -function loadXMLDoc(url,readyStateFunction,async) +function loadXMLDoc(url,readyStateFunction,async) { // req must be defined by caller with // var req = false; - + // branch for native XMLHttpRequest object (Mozilla, Safari...) if (window.XMLHttpRequest) { req = new XMLHttpRequest(); - + // if (req.overrideMimeType) { // req.overrideMimeType('text/xml'); // } @@ -286,7 +287,7 @@ function loadXMLDoc(url,readyStateFunction,async) try { req = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {} - } + } } // If XMLHttpRequestObject req is ok, call URL @@ -321,9 +322,9 @@ function loadXMLDoc(url,readyStateFunction,async) */ function hideSelectBoxes() { var brsVersion = parseInt(window.navigator.appVersion.charAt(0), 10); - if (brsVersion <= 6 && window.navigator.userAgent.indexOf("MSIE 6") > -1) - { - for(var i = 0; i < document.all.length; i++) + if (brsVersion <= 6 && window.navigator.userAgent.indexOf("MSIE 6") > -1) + { + for(var i = 0; i < document.all.length; i++) { if(document.all[i].tagName) if(document.all[i].tagName == "SELECT") @@ -337,9 +338,9 @@ function hideSelectBoxes() { */ function displaySelectBoxes() { var brsVersion = parseInt(window.navigator.appVersion.charAt(0), 10); - if (brsVersion <= 6 && window.navigator.userAgent.indexOf("MSIE 6") > -1) - { - for(var i = 0; i < document.all.length; i++) + if (brsVersion <= 6 && window.navigator.userAgent.indexOf("MSIE 6") > -1) + { + for(var i = 0; i < document.all.length; i++) { if(document.all[i].tagName) if(document.all[i].tagName == "SELECT") @@ -351,7 +352,7 @@ function displaySelectBoxes() { /* - * ================================================================= + * ================================================================= * Function: * formatDate (javascript object Date(), format) Purpose: Returns a date in the * output format specified. The format string can use the following tags: Field | @@ -366,10 +367,10 @@ function displaySelectBoxes() { function formatDate(date,format) { // alert('formatDate date='+date+' format='+format); - + // Force parametres en chaine format=format+""; - + var result=""; var year=date.getYear()+""; if (year.length < 4) { year=""+(year-0+1900); } @@ -402,7 +403,7 @@ function formatDate(date,format) else if (substr == 'mm') { result=result+(minute<0||minute>9?"":"0")+minute; } else if (substr == 'ss') { result=result+(seconde<0||seconde>9?"":"0")+seconde; } else { result=result+substr; } - + i+=substr.length; } @@ -412,22 +413,22 @@ function formatDate(date,format) /* - * ================================================================= + * ================================================================= * Function: * getDateFromFormat(date_string, format_string) Purpose: This function takes a * date string and a format string. It parses the date string with format and it * returns the date as a javascript Date() object. If date does not match - * format, it returns 0. The format string can use the following tags: + * format, it returns 0. The format string can use the following tags: * Field | Tags * -------------+----------------------------------- - * Year | yyyy (4 digits), yy (2 digits) - * Month | MM (2 digits) - * Day of Month | dd (2 digits) - * Hour (1-12) | hh (2 digits) - * Hour (0-23) | HH (2 digits) - * Minute | mm (2 digits) + * Year | yyyy (4 digits), yy (2 digits) + * Month | MM (2 digits) + * Day of Month | dd (2 digits) + * Hour (1-12) | hh (2 digits) + * Hour (0-23) | HH (2 digits) + * Minute | mm (2 digits) * Second | ss (2 digits) - * Author: Laurent Destailleur + * Author: Laurent Destailleur * Licence: GPL * ================================================================== */ @@ -440,7 +441,7 @@ function getDateFromFormat(val,format) format=format+""; if (val == '') return 0; - + var now=new Date(); var year=now.getYear(); if (year.length < 4) { year=""+(year-0+1900); } var month=now.getMonth()+1; @@ -466,37 +467,37 @@ function getDateFromFormat(val,format) } // alert('substr='+substr); - if (substr == "yyyy") year=getIntegerInString(val,d,4,4); - if (substr == "yy") year=""+(getIntegerInString(val,d,2,2)-0+1900); - if (substr == "MM" ||substr == "M") - { - month=getIntegerInString(val,d,1,2); - d -= 2- month.length; - } - if (substr == "dd") - { - day=getIntegerInString(val,d,1,2); - d -= 2- day.length; - } - if (substr == "HH" ||substr == "hh" ) - { - hour=getIntegerInString(val,d,1,2); - d -= 2- hour.length; - } - if (substr == "mm"){ - minute=getIntegerInString(val,d,1,2); - d -= 2- minute.length; - } - if (substr == "ss") - { - seconde=getIntegerInString(val,d,1,2); - d -= 2- seconde.length; - } - + if (substr == "yyyy") year=getIntegerInString(val,d,4,4); + if (substr == "yy") year=""+(getIntegerInString(val,d,2,2)-0+1900); + if (substr == "MM" ||substr == "M") + { + month=getIntegerInString(val,d,1,2); + d -= 2- month.length; + } + if (substr == "dd") + { + day=getIntegerInString(val,d,1,2); + d -= 2- day.length; + } + if (substr == "HH" ||substr == "hh" ) + { + hour=getIntegerInString(val,d,1,2); + d -= 2- hour.length; + } + if (substr == "mm"){ + minute=getIntegerInString(val,d,1,2); + d -= 2- minute.length; + } + if (substr == "ss") + { + seconde=getIntegerInString(val,d,1,2); + d -= 2- seconde.length; + } + i+=substr.length; d+=substr.length; } - + // Check if format param are ok if (year==null||year<1) { return 0; } if (month==null||(month<1)||(month>12)) { return 0; } @@ -504,15 +505,15 @@ function getDateFromFormat(val,format) if (hour==null||(hour<0)||(hour>24)) { return 0; } if (minute==null||(minute<0)||(minute>60)) { return 0; } if (seconde==null||(seconde<0)||(seconde>60)) { return 0; } - + // alert(year+' '+month+' '+day+' '+hour+' '+minute+' '+seconde); return new Date(year,month-1,day,hour,minute,seconde); } /* - * ================================================================= + * ================================================================= * Function: - * stringIsInteger(string) + * stringIsInteger(string) * Purpose: Return true if string is an integer * ================================================================== */ @@ -530,9 +531,9 @@ function stringIsInteger(str) } /* - * ================================================================= + * ================================================================= * Function: - * getIntegerInString(string,pos,minlength,maxlength) + * getIntegerInString(string,pos,minlength,maxlength) * Purpose: Return part of string from position i that is integer * ================================================================== */ @@ -549,10 +550,10 @@ function getIntegerInString(str,i,minlength,maxlength) /* - * ================================================================= + * ================================================================= * Purpose: - * Clean string to have it url encoded - * Input: s + * Clean string to have it url encoded + * Input: s * Author: Laurent Destailleur * Licence: GPL * ================================================================== @@ -566,11 +567,11 @@ function urlencode(s) { /* - * ================================================================= + * ================================================================= * Purpose: * Applique un delai avant execution. Used for autocompletion of companies. - * Input: funct, delay - * Author: Regis Houssin + * Input: funct, delay + * Author: Regis Houssin * Licence: GPL * ================================================================== */ @@ -581,11 +582,11 @@ function urlencode(s) { /* - * ================================================================= + * ================================================================= * Purpose: * Clean values of a "Sortable.serialize". Used by drag and drop. - * Input: expr - * Author: Regis Houssin + * Input: expr + * Author: Regis Houssin * Licence: GPL * ================================================================== */ @@ -599,12 +600,12 @@ function cleanSerialize(expr) { /* - * ================================================================= + * ================================================================= * Purpose: Display a temporary message in input text fields (For showing help message on * input field). * Input: fieldId * Input: message - * Author: Regis Houssin + * Author: Regis Houssin * Licence: GPL * ================================================================== */ @@ -617,11 +618,11 @@ function displayMessage(fieldId,message) { } /* - * ================================================================= + * ================================================================= * Purpose: Hide a temporary message in input text fields (For showing help message on - * input field). - * Input: fiedId - * Input: message + * input field). + * Input: fiedId + * Input: message * Author: Regis Houssin * Licence: GPL * ================================================================== @@ -673,7 +674,7 @@ function setConstant(url, code, input, entity, strict) { $(newvalue).removeClass("butAction"); $(newvalue).addClass("butActionRefused"); } - }); + }); // Show another element } else if (type == "showhide" || type == "show") { $.each(data, function(key, value) { @@ -734,7 +735,7 @@ function delConstant(url, code, input, entity, strict) { $(newvalue).removeClass("butActionRefused"); $(newvalue).addClass("butAction"); } - }); + }); // Hide another element } else if (type == "showhide" || type == "hide") { $.each(data, function(key, value) { @@ -816,13 +817,13 @@ function confirmConstantAction(action, url, code, input, box, entity, yesButton, } } -/* - * ================================================================= +/* + * ================================================================= * This is to allow to transform all select box into ajax autocomplete box - * with just one line: + * with just one line: * $(function() { $( "#idofmylist" ).combobox(); }); - * Do not use it on large combo boxes - * ================================================================= + * Do not use it on large combo boxes + * ================================================================= */ (function( $ ) { $.widget( "ui.combobox", { @@ -933,11 +934,11 @@ function confirmConstantAction(action, url, code, input, box, entity, yesButton, /** * Function to output a dialog bog for copy/paste - * + * * @param string text Text to put into copy/paste area * @param string text2 Text to put under the copy/paste area */ -function copyToClipboard(text,text2) +function copyToClipboard(text,text2) { text = text.replace(/
/g,"\n"); var newElem = '

'+text2; @@ -951,7 +952,7 @@ function copyToClipboard(text,text2) /** * Show a popup HTML page. Use the "window.open" function. - * + * * @param string url Url * @param string title Title of popup * @return boolean False @@ -983,7 +984,7 @@ function document_preview(file, type, title) { var ValidImageTypes = ["image/gif", "image/jpeg", "image/png"]; console.log("document_preview A click was done. file="+file+", type="+type+", title="+title); - + if ($.inArray(type, ValidImageTypes) < 0) { var width='85%'; var object_width='100%'; @@ -1034,13 +1035,13 @@ function document_preview(file, type, title) } /* - * Provide a function to get an URL GET parameter in javascript - * + * Provide a function to get an URL GET parameter in javascript + * * @param string name Name of parameter * @param mixed valueifnotfound Value if not found * @return string Value */ -function getParameterByName(name, valueifnotfound) +function getParameterByName(name, valueifnotfound) { name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]"); var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"), @@ -1098,7 +1099,7 @@ function getParameterByName(name, valueifnotfound) } })(); -// Another solution, easier, to build a javascript rounding function +// Another solution, easier, to build a javascript rounding function function dolroundjs(number, decimals) { return +(Math.round(number + "e+" + decimals) + "e-" + decimals); } @@ -1146,10 +1147,10 @@ function price2numjs(amount) { amount = amount.replace(dec, '.'); //console.log("amount before="+amount+" rouding="+rounding) var res = Math.round10(amount, - rounding); - // Other solution is + // Other solution is // var res = dolroundjs(amount, rounding) console.log("res="+res) return res; } - + diff --git a/htdocs/main.inc.php b/htdocs/main.inc.php index c100583dd76..f2f0aba9579 100644 --- a/htdocs/main.inc.php +++ b/htdocs/main.inc.php @@ -1318,7 +1318,7 @@ function top_htmlhead($head, $title='', $disablejs=0, $disablehead=0, $arrayofjs // Add datepicker default options if (! defined('DISABLE_DATE_PICKER')) { - print ''."\n"; + print ''."\n"; } // JS forced by modules (relative url starting with /)