From c085d0d56a495e1e3a92131430ad0243a00ac71f Mon Sep 17 00:00:00 2001 From: Atul Pratap Singh Date: Fri, 13 Mar 2015 22:22:36 +0530 Subject: [PATCH] datepicker: correct position on clicking on icon and prevent closing on outside click Signed-off-by: Atul Pratap Singh --- js/functions.js | 10 +++++++++- js/makegrid.js | 5 +++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/js/functions.js b/js/functions.js index 7e9ea31389..e5353b5ee3 100644 --- a/js/functions.js +++ b/js/functions.js @@ -336,7 +336,15 @@ function PMA_addDatepicker($this_element, type, options) // Remember that we came from the datepicker; this is used // in tbl_change.js by verificationsAfterFieldChange() $this_element.data('comes_from', 'datepicker'); - + if ($(input).closest('.cEdit').length > 0) { + setTimeout(function () { + inst.dpDiv.css({ + top: 0, + left: 0, + position: 'relative' + }); + }, 0); + } // Fix wrong timepicker z-index, doesn't work without timeout setTimeout(function () { $('#ui-timepicker-div').css('z-index', $('#ui-datepicker-div').css('z-index')); diff --git a/js/makegrid.js b/js/makegrid.js index d676d50fb3..d08ea11c17 100644 --- a/js/makegrid.js +++ b/js/makegrid.js @@ -700,6 +700,7 @@ function PMA_makegrid(t, enableResize, enableReorder, enableVisib, enableGridEdi // destroy datepicker in edit area, if exist var $dp = $(g.cEdit).find('.hasDatepicker'); if ($dp.length > 0) { + $(document).bind('mousedown', $.datepicker._checkExternalClick); $dp.datepicker('destroy'); // change the cursor in edit box back to normal // (the cursor become a hand pointer when we add datepicker) @@ -1025,6 +1026,10 @@ function PMA_makegrid(t, enableResize, enableReorder, enableVisib, enableGridEdi }); $input_field.datepicker("show"); + // unbind the mousedown event to prevent the problem of + // datepicker getting closed, needs to be checked for any + // change in names when updating + $(document).unbind('mousedown', $.datepicker._checkExternalClick); //move ui-datepicker-div inside cEdit div var datepicker_div = $('#ui-datepicker-div');