From ab6e9f0b24a7b17d10151c99e098f0e85cf6fd64 Mon Sep 17 00:00:00 2001 From: Aris Feryanto Date: Sun, 28 Oct 2012 23:15:47 +0800 Subject: [PATCH] Grid editing: enable edit box for relational value --- browse_foreigners.php | 4 ++-- js/makegrid.js | 24 +++++++++++++----------- 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/browse_foreigners.php b/browse_foreigners.php index f62c3f1f5b..8cdc7728b0 100644 --- a/browse_foreigners.php +++ b/browse_foreigners.php @@ -111,8 +111,8 @@ function formupdate(fieldmd5, key) { \$inline.removeClass('browse_foreign_clicked') // for grid editing, // puts new value in the previous element which is - // a span with class curr_value - .prev('.curr_value').text(key); + // a span with class curr_value, and trigger .change() + .prev('.curr_value').text(key).change(); // for zoom-search editing, puts new value in the previous // element which is an input field \$inline.prev('input[type=text]').val(key); diff --git a/js/makegrid.js b/js/makegrid.js index 6b8754138b..886eb9ba76 100644 --- a/js/makegrid.js +++ b/js/makegrid.js @@ -835,12 +835,21 @@ function PMA_makegrid(t, enableResize, enableReorder, enableVisib, enableGridEdi $editArea.append(data.dropdown); $editArea.append('
' + g.cellEditHint + '
'); + + // for 'Browse foreign values' options, + // hide the value next to 'Browse foreign values' link + $editArea.find('span.curr_value').hide(); + // handle update for new values selected from new window + $editArea.find('span.curr_value').change(function() { + $(g.cEdit).find('.edit_box').val($(this).text()); + }); }); // end $.post() $editArea.show(); $editArea.find('select').live('change', function(e) { $(g.cEdit).find('.edit_box').val($(this).val()); }); + g.isEditCellTextEditable = true; } else if($td.is('.enum')) { //handle enum fields @@ -1321,17 +1330,10 @@ function PMA_makegrid(t, enableResize, enableReorder, enableVisib, enableGridEdi return $(this).val(); }).get().join(","); } else if ($this_field.is('.relation, .enum')) { - // results from a drop-down - $test_element = $(g.cEdit).find('select'); - if ($test_element.length != 0) { - this_field_params[field_name] = $test_element.val(); - } - - // results from Browse foreign value - $test_element = $(g.cEdit).find('span.curr_value'); - if ($test_element.length != 0) { - this_field_params[field_name] = $test_element.text(); - } + // for relation and enumeration, take the results from edit box value, + // because selected value from drop-down, new window or multiple + // selection list will always be updated to the edit box + this_field_params[field_name] = $(g.cEdit).find('.edit_box').val(); } else { this_field_params[field_name] = $(g.cEdit).find('.edit_box').val(); }