diff --git a/ChangeLog b/ChangeLog index d42ee9084e..bcbf7fd059 100644 --- a/ChangeLog +++ b/ChangeLog @@ -26,6 +26,7 @@ phpMyAdmin - ChangeLog - bug #4253 "New" text in navigation frame acts like a database - bug #4262 Cannot define a column with fractional seconds - bug #4265 Missing datepicker icon for DATETIME(length) +- bug #4257 Hide fractional seconds when applicable 4.1.6.0 (2014-01-26) - bug #4232 User not found after creating the user diff --git a/js/functions.js b/js/functions.js index 91b06e842a..1f2cdb7b00 100644 --- a/js/functions.js +++ b/js/functions.js @@ -858,8 +858,25 @@ function insertValueQuery() function addDateTimePicker() { if ($.timepicker !== undefined) { $('input.datefield, input.datetimefield').each(function () { - PMA_addDatepicker($(this)); - }); + + no_decimals = $(this).parent().data('decimals'); + var showMillisec = false; + var showMicrosec = false; + var timeFormat = 'HH:mm:ss'; + // check for decimal places of seconds + if (($(this).parent().data('decimals') > 0) && ($(this).parent().data('type').indexOf('time') != -1)){ + showMillisec = true; + timeFormat = 'HH:mm:ss.lc'; + if ($(this).parent().data('decimals') > 3) { + showMicrosec = true; + } + } + PMA_addDatepicker($(this), { + showMillisec: showMillisec, + showMicrosec: showMicrosec, + timeFormat: timeFormat, + }); + }) } } diff --git a/js/jquery/jquery-ui-timepicker-addon.js b/js/jquery/jquery-ui-timepicker-addon.js index 1a22b0cbb6..2b839bf4cb 100644 --- a/js/jquery/jquery-ui-timepicker-addon.js +++ b/js/jquery/jquery-ui-timepicker-addon.js @@ -2125,4 +2125,4 @@ */ $.timepicker.version = "1.3.1"; -})(jQuery); +})(jQuery); \ No newline at end of file diff --git a/js/makegrid.js b/js/makegrid.js index bd71cd7758..fa9a90a2ae 100644 --- a/js/makegrid.js +++ b/js/makegrid.js @@ -628,6 +628,15 @@ function PMA_makegrid(t, enableResize, enableReorder, enableVisib, enableGridEdi var new_html = data.isNeedToRecheck ? data.truncatableFieldValue : $this_field.data('value'); + + //remove decimal places if column type not supported + if (($this_field.data('decimals') == 0) && ( $this_field.data('type').indexOf('time') != -1)){ + new_html = new_html.substring(0, new_html.indexOf('.')); + } + //remove addtional decimal places + if (($this_field.data('decimals') > 0) && ( $this_field.data('type').indexOf('time') != -1)){ + new_html = new_html.substring(0, new_html.length - (6 - $this_field.data('decimals'))); + } if ($this_field.is('.truncated')) { if (new_html.length > g.maxTruncatedLen) { new_html = new_html.substring(0, g.maxTruncatedLen) + '...'; @@ -973,7 +982,24 @@ function PMA_makegrid(t, enableResize, enableReorder, enableVisib, enableGridEdi if ($td.is('.datefield')) { showTimeOption = false; } + + var showMillisec = false; + var showMicrosec = false; + var timeFormat = 'HH:mm:ss'; + // check for decimal places of seconds + if (($td.data('decimals') > 0) && ($td.data('type').indexOf('time') != -1)){ + showMillisec = true; + timeFormat = 'HH:mm:ss.lc'; + if ($td.data('decimals') > 3) { + showMicrosec = true; + } + + } + PMA_addDatepicker($editArea, { + showMillisec: showMillisec, + showMicrosec: showMicrosec, + timeFormat: timeFormat, altField: $input_field, showTimepicker: showTimeOption, onSelect: function (dateText, inst) { @@ -1000,15 +1026,34 @@ function PMA_makegrid(t, enableResize, enableReorder, enableVisib, enableGridEdi parseInt(current_datetime_value.substring(5, 7)) - 1, parseInt(current_datetime_value.substring(8, 10)) ); - if (current_datetime_value.match(/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\.\d{6}$/)) { - var hour = current_datetime_value.substring(11, 13); - var min = current_datetime_value.substring(14, 16); - var sec = current_datetime_value.substring(17, 19); - var milli = current_datetime_value.substring(20, 23); - var micro = current_datetime_value.substring(23); + var no_decimals = $td.data('decimals'); + + var hour = current_datetime_value.substring(11, 13); + var min = current_datetime_value.substring(14, 16); + var sec = current_datetime_value.substring(17, 19); + if (current_datetime_value.match("^\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}\\.\\d{"+ no_decimals +"}$")) { + if (no_decimals > 3){ + var milli = current_datetime_value.substring(20, 23); + var micro = current_datetime_value.substring(23); + for (var i = 0; i < 6-no_decimals ; i++) { + micro += "0"; + } + } + if (no_decimals <= 3){ + var milli = current_datetime_value.substring(20); + for (var i = 0; i < 3-no_decimals ; i++) { + milli += "0"; + } + var micro = "000"; + } + date.setHours(hour, min, sec, milli); date.setMicroseconds(micro); } + if (current_datetime_value.match("^\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}")) { + console.log("G"); + date.setHours(hour, min, sec); + } $editArea.datetimepicker('setDate', date); } $editArea.append('