[Phpmyadmin-git] [SCM] phpMyAdmin branch, master, updated. RELEASE_3_3_7-10615-g0f156b1

Marc Delisle lem9 at users.sourceforge.net
Sun Oct 17 15:40:24 CEST 2010


The branch, master has been updated
       via  0f156b19dd3692475bd08e9f3b157385771d68b4 (commit)
      from  634db1c81de4545f7d63ff92b66f076b2e329f13 (commit)


- Log -----------------------------------------------------------------
commit 0f156b19dd3692475bd08e9f3b157385771d68b4
Author: Marc Delisle <marc at infomarc.info>
Date:   Sun Oct 17 09:40:15 2010 -0400

    other fixes for inline edit links in vertical mode

-----------------------------------------------------------------------

Summary of changes:
 js/sql.js                           |   78 +++++++++++++++++++----------------
 libraries/display_tbl.lib.php       |   36 ++++------------
 libraries/display_tbl_links.lib.php |   33 +++++++++------
 3 files changed, 71 insertions(+), 76 deletions(-)

diff --git a/js/sql.js b/js/sql.js
index b95418b..457396f 100644
--- a/js/sql.js
+++ b/js/sql.js
@@ -32,8 +32,8 @@ function getFieldName(this_field_obj, disp_mode) {
     else {
         var this_field_index = $(this_field_obj).index();
         if(window.parent.text_dir == 'ltr') {
-            // 4 columns to account for the checkbox, edit, delete and appended inline edit anchors
-            var field_name = $(this_field_obj).parents('table').find('thead').find('th:nth('+ (this_field_index-4 )+') a').text();
+            // 4 columns to account for the checkbox, edit, delete and appended inline edit anchors but index is zero-based so substract 3
+            var field_name = $(this_field_obj).parents('table').find('thead').find('th:nth('+ (this_field_index-3 )+') a').text();
         }
         else {
             var field_name = $(this_field_obj).parents('table').find('thead').find('th:nth('+ this_field_index+') a').text();
@@ -53,27 +53,33 @@ function getFieldName(this_field_obj, disp_mode) {
  */
 function appendInlineAnchor(disp_mode) {
     if(disp_mode == 'vertical') {
-        var $cloned_row = $('.edit_row_anchor').removeClass('edit_row_anchor').parent('tr').clone();
+        // there can be one or two tr containing this class, depending
+        // on the ModifyDeleteAtLeft and ModifyDeleteAtRight cfg parameters 
+        $('#table_results tr').find('.edit_row_anchor').parent().each(function() {
+            var $this_tr = $(this);
+            var $cloned_tr = $this_tr.clone();
 
-        var $img_object = $cloned_row.find('img:first').attr('title', PMA_messages['strInlineEdit']);
+            var $img_object = $cloned_tr.find('img:first').attr('title', PMA_messages['strInlineEdit']);
 
-        $cloned_row.find('td').addClass('edit_row_anchor')
-        .find('a').attr('href', '#')
-        .find('span')
-        .text(PMA_messages['strInlineEdit'])
-        .prepend($img_object);
+            $cloned_tr.find('td')
+             .find('a').attr('href', '#')
+             .find('span')
+             .text(PMA_messages['strInlineEdit'])
+             .prepend($img_object);
 
-        $cloned_row.insertBefore($('.where_clause').parent('tr'));
+            $cloned_tr.insertAfter($this_tr);
+        });
 
-        $("#table_results").find('tr:first').find('th')
-        .attr('rowspan', '4');
+        $("#table_results").find('tr').find(':checkbox').closest('tr').find('th')
+         .attr('rowspan', '4');
     }
     else {
         $('.edit_row_anchor').each(function() {
 
-            $(this).removeClass('edit_row_anchor');
+            $this_td = $(this)
+            $this_td.removeClass('edit_row_anchor');
 
-            var $cloned_anchor = $(this).clone();
+            var $cloned_anchor = $this_td.clone();
 
             var $img_object = $cloned_anchor.find('img').attr('title', PMA_messages['strInlineEdit']);
 
@@ -83,8 +89,7 @@ function appendInlineAnchor(disp_mode) {
             .text(PMA_messages['strInlineEdit'])
             .prepend($img_object);
 
-            $(this).nextAll('.where_clause:eq(0)')
-            .before($cloned_anchor);
+            $this_td.after($cloned_anchor);
         });
 
         $('#rowsDeleteForm').find('thead').find('th').each(function() {
@@ -316,7 +321,7 @@ $(document).ready(function() {
      */
 
     /**
-     * On click, replace the current field with an input/textarea
+     * On click, replace the fields of current row with an input/textarea
      * @memberOf    jQuery
      * @name        inline_edit_start
      * @see         PMA_ajaxShowMessage()
@@ -482,35 +487,38 @@ $(document).ready(function() {
         event.preventDefault();
 
         /**
-         * @var this_row    Object referring to current row that is being edited
+         * @var $this_td    Object referring to the td containing the 
+         * "Inline Edit" link that was clicked to save the row that is 
+         * being edited
+         *
          */
-        var this_row = $(this);
+        var $this_td = $(this);
 
         // Initialize variables
         if(disp_mode == 'vertical') {
             /**
-             * @var this_row_index  Index of the current <td> in the parent <tr>
+             * @var this_td_index  Index of the current <td> in the parent <tr>
              *                      Current <td> is the inline edit anchor.
              */
-            var this_row_index = $(this).index();
+            var this_td_index = $this_td.index();
             /**
              * @var input_siblings  Object referring to all inline editable events from same row
              */
-            var input_siblings = $(this).parents('tbody').find('tr').find('.data_inline_edit:nth('+this_row_index+')');
+            var input_siblings = $this_td.parents('tbody').find('tr').find('.data_inline_edit:nth('+this_td_index+')');
             /**
              * @var where_clause    String containing the WHERE clause to select this row
              */
-            var where_clause = $(this).parents('tbody').find('tr').find('.where_clause:nth('+this_row_index+')').val();
+            var where_clause = $this_td.parents('tbody').find('tr').find('.where_clause:nth('+this_td_index+')').val();
         }
         else {
-            var input_siblings = $(this).parent('tr').find('.data_inline_edit');
-            var where_clause = $(this).parent('tr').find('.where_clause').val();
+            var input_siblings = $this_td.parent('tr').find('.data_inline_edit');
+            var where_clause = $this_td.parent('tr').find('.where_clause').val();
         }
 
         /**
          * @var nonunique   Boolean, whether this row is unique or not
          */
-        if($(this).is('.nonunique')) {
+        if($this_td.is('.nonunique')) {
             var nonunique = 0;
         }
         else {
@@ -540,32 +548,32 @@ $(document).ready(function() {
             /**
              * @var this_field  Object referring to this field (<td>)
              */
-            var this_field = $(this);
+            var $this_field = $(this);
             /**
              * @var field_name  String containing the name of this field.
              * @see getFieldName()
              */
-            var field_name = getFieldName($(this), disp_mode);
+            var field_name = getFieldName($this_field, disp_mode);
 
             /**
              * @var this_field_params   Array temporary storage for the name/value of current field
              */
             var this_field_params = {};
 
-            if($(this).is('.transformed')) {
+            if($this_field.is('.transformed')) {
                 transformation_fields =  true;
             }
 
-            if($(this).is(":not(.relation, .enum)")) {
-                this_field_params[field_name] = $(this).find('textarea').val();
-                if($(this).is('.transformed')) {
+            if($this_field.is(":not(.relation, .enum)")) {
+                this_field_params[field_name] = $this_field.find('textarea').val();
+                if($this_field.is('.transformed')) {
                     $.extend(transform_fields, this_field_params);
                 }
             }
             else {
-                this_field_params[field_name] = $(this).find('select').val();
+                this_field_params[field_name] = $this_field.find('select').val();
 
-                if($(this).is('.relation')) {
+                if($this_field.is('.relation')) {
                     $.extend(relation_fields, this_field_params);
                 }
             }
@@ -619,7 +627,7 @@ $(document).ready(function() {
         $.post('tbl_replace.php', post_params, function(data) {
             if(data.success == true) {
                 PMA_ajaxShowMessage(data.message);
-                $(this_row).removeClass('edit_row_anchor_active').addClass('edit_row_anchor');
+                $this_td.removeClass('edit_row_anchor_active').addClass('edit_row_anchor');
 
                 $(input_siblings).each(function() {
                     // Inline edit post has been successful.
diff --git a/libraries/display_tbl.lib.php b/libraries/display_tbl.lib.php
index 2acf368..0dafdec 100644
--- a/libraries/display_tbl.lib.php
+++ b/libraries/display_tbl.lib.php
@@ -1442,7 +1442,6 @@ function PMA_displayTableBody(&$dt_result, &$is_display, $map, $analyzed_sql) {
             $vertical_display['edit'][$row_no]       = '';
             $vertical_display['delete'][$row_no]     = '';
             $vertical_display['row_delete'][$row_no] = '';
-            $vertical_display['where_clause'][$row_no] = '';
         }
 
         $column_style_vertical = '';
@@ -1466,9 +1465,14 @@ function PMA_displayTableBody(&$dt_result, &$is_display, $map, $analyzed_sql) {
         }
 
         if (isset($edit_url)) {
-            $vertical_display['edit'][$row_no]   .= '    <td align="center" class="' . $alternating_color_class . ' ' . $edit_anchor_class . '" ' . $column_style_vertical . '>' . "\n"
-                                                 . PMA_linkOrButton($edit_url, $edit_str, array(), false)
-                                                 .  '    </td>' . "\n";
+            $vertical_display['edit'][$row_no]   .= '<td align="center" class="' . $alternating_color_class . ' ' . $edit_anchor_class . '" ' . $column_style_vertical . '>' . "\n"
+                . PMA_linkOrButton($edit_url, $edit_str, array(), false);
+            // Generates the 'where_clause' hidden input field 
+            // for inline ajax edit if required
+            if(! empty($where_clause) ) {
+                $vertical_display['edit'][$row_no] .= '<input type="hidden" class="where_clause" value ="' . $where_clause_html . '" />';
+            }
+            $vertical_display['edit'][$row_no]   .= '</td>';
         } else {
             unset($vertical_display['edit'][$row_no]);
         }
@@ -1481,13 +1485,6 @@ function PMA_displayTableBody(&$dt_result, &$is_display, $map, $analyzed_sql) {
             unset($vertical_display['delete'][$row_no]);
         }
 
-        if( !empty($where_clause) ) {
-            $vertical_display['where_clause'][$row_no] = '<input type="hidden" class="where_clause" value ="' . $where_clause_html . '" />';
-        }
-        else {
-            unset($vertical_display['where_clause'][$row_no]);
-        }
-
         echo (($_SESSION['tmp_user_values']['disp_direction'] == 'horizontal' || $_SESSION['tmp_user_values']['disp_direction'] == 'horizontalflipped') ? "\n" : '');
         $row_no++;
     } // end while
@@ -1500,7 +1497,6 @@ function PMA_displayTableBody(&$dt_result, &$is_display, $map, $analyzed_sql) {
 
 /**
  * Do display the result table with the vertical direction mode.
- * Credits for this feature goes to Garvin Hicking <hicking at faktor-e.de>.
  *
  * @return  boolean  always true
  *
@@ -1567,22 +1563,6 @@ function PMA_displayVerticalTable()
         echo '</tr>' . "\n";
     } // end if
 
-    // Generates the 'where_clause' hidden input field for inline ajax edit if required
-    if ( is_array($vertical_display['delete']) && (count($vertical_display['delete']) > 0 ) ) {
-        echo '<tr>' . "\n";
-
-        $foo_counter = 0;
-        foreach ($vertical_display['where_clause'] as $val) {
-            if (($foo_counter != 0) && ($_SESSION['tmp_user_values']['repeat_cells'] != 0) && !($foo_counter % $_SESSION['tmp_user_values']['repeat_cells'])) {
-                echo '<th></th>' . "\n";
-            }
-
-            echo $val;
-            $foo_counter++;
-        } // end while
-        echo '</tr>' . "\n";
-    } // end if
-
     // Displays data
     foreach ($vertical_display['desc'] AS $key => $val) {
 
diff --git a/libraries/display_tbl_links.lib.php b/libraries/display_tbl_links.lib.php
index 7398910..43603de 100644
--- a/libraries/display_tbl_links.lib.php
+++ b/libraries/display_tbl_links.lib.php
@@ -26,9 +26,16 @@ if ($doWriteModifyAt == 'left') {
            . '    </td>' . "\n";
     }
     if (!empty($edit_url)) {
-        echo '    <td class="' . $edit_anchor_class . '" align="center">' . "\n"
-           . PMA_linkOrButton($edit_url, $edit_str, '', FALSE)
-           . '    </td>' . "\n";
+        echo '<td class="' . $edit_anchor_class . '" align="center">'
+           . PMA_linkOrButton($edit_url, $edit_str, '', FALSE);
+        /*
+         * Where clause for selecting this row uniquely is provided as 
+         * a hidden input. Used by jQuery scripts for handling inline editing
+         */
+        if(! empty($where_clause)) {
+            echo '<input type="hidden" class="where_clause" value ="' . $where_clause_html . '" />';
+        }
+        echo '</td>';
     }
     if (!empty($del_url)) {
         echo '    <td align="center">' . "\n"
@@ -42,9 +49,16 @@ if ($doWriteModifyAt == 'left') {
            . '    </td>' . "\n";
     }
     if (!empty($edit_url)) {
-        echo '    <td class="' . $edit_anchor_class . '" align="center">' . "\n"
-           . PMA_linkOrButton($edit_url, $edit_str, '', FALSE)
-           . '    </td>' . "\n";
+        echo '<td class="' . $edit_anchor_class . '" align="center">'
+           . PMA_linkOrButton($edit_url, $edit_str, '', FALSE);
+        /*
+         * Where clause for selecting this row uniquely is provided as 
+         * a hidden input. Used by jQuery scripts for handling inline editing
+         */
+        if(! empty($where_clause)) {
+            echo '<input type="hidden" class="where_clause" value ="' . $where_clause_html . '" />';
+        }
+        echo '    </td>';
     }
     if (!empty($del_url) && $is_display['del_lnk'] != 'kp') {
         echo '    <td align="center">' . "\n"
@@ -54,11 +68,4 @@ if ($doWriteModifyAt == 'left') {
            . '    </td>' . "\n";
     }
 }
-/*
- * Where clause for selecting this row uniquely is provided as a hidden input.
- * Used by jQuery scripts for handling inline editing
- */
-if( !empty($where_clause)) {
-    echo '<input type="hidden" class="where_clause" value ="' . $where_clause_html . '" />';
-}
 ?>


hooks/post-receive
-- 
phpMyAdmin




More information about the Git mailing list