From c19dae384a9dc53113ef153b338329f183c1bf11 Mon Sep 17 00:00:00 2001 From: Aris Feryanto Date: Mon, 22 Aug 2011 10:30:15 +0800 Subject: [PATCH] Grid edit: fix bug - browse foreign value not work --- js/makegrid.js | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/js/makegrid.js b/js/makegrid.js index 70e9b9adb1..e7f2d32f5a 100644 --- a/js/makegrid.js +++ b/js/makegrid.js @@ -654,7 +654,13 @@ function PMA_makegrid(t, enableResize, enableReorder, enableVisib, enableGridEdi g.isCellEditActive = false; g.currentEditCell = null; // destroy datepicker in edit area, if exist - $(g.cEdit).find('.hasDatepicker').datepicker('destroy'); + var $dp = $(g.cEdit).find('.hasDatepicker'); + if ($dp.length > 0) { + $dp.datepicker('destroy'); + // change the cursor in edit box back to normal + // (the cursor become a hand pointer when we add datepicker) + $(g.cEdit).find('.edit_box').css('cursor', 'inherit'); + } }, /** @@ -785,11 +791,13 @@ function PMA_makegrid(t, enableResize, enableReorder, enableVisib, enableGridEdi g.lastXHR = $.post('sql.php', post_params, function(data) { g.lastXHR = null; $editArea.removeClass('edit_area_loading'); - // save original_data - var value = $(data.dropdown).val(); - $td.data('original_data', value); - // update the text input field, in case where the "Relational display column" is checked - $(g.cEdit).find('.edit_box').val(value); + if ($(data.dropdown).is('select')) { + // save original_data + var value = $(data.dropdown).val(); + $td.data('original_data', value); + // update the text input field, in case where the "Relational display column" is checked + $(g.cEdit).find('.edit_box').val(value); + } $editArea.append(data.dropdown); $editArea.append('
' + g.cellEditHint + '
'); @@ -942,6 +950,11 @@ function PMA_makegrid(t, enableResize, enableReorder, enableVisib, enableGridEdi } }); + // cancel any click on the datepicker element + $editArea.find('> *').click(function(e) { + e.stopPropagation(); + }); + // force to restore modified $input_field value after adding datepicker // (after adding a datepicker, the input field doesn't display the time anymore, only the date) if (!is_null) { @@ -1572,9 +1585,6 @@ function PMA_makegrid(t, enableResize, enableReorder, enableVisib, enableGridEdi e.preventDefault(); } }); - $(g.cEdit).find('.edit_area').click(function(e) { - e.stopPropagation(); - }); $('html').click(function(e) { // hide edit cell if the click is not from g.cEdit if ($(e.target).parents().index(g.cEdit) == -1) {