The branch, master has been updated via 8c5f758e4ad5c2708eabdeae4f1dd81efaddf591 (commit) from ae04356ed298c86901fb4948596b8c0c7fe1f449 (commit)
- Log ----------------------------------------------------------------- commit 8c5f758e4ad5c2708eabdeae4f1dd81efaddf591 Author: Marc Delisle marc@infomarc.info Date: Sun Sep 12 18:58:38 2010 -0400
bug #3057481 Unchecking ignore does not work for duplicated insert rows
-----------------------------------------------------------------------
Summary of changes: js/tbl_change.js | 47 ++++++++++++++++++++++++++++++++++++++++++----- tbl_change.php | 29 ++++++++++++++++------------- 2 files changed, 58 insertions(+), 18 deletions(-)
diff --git a/js/tbl_change.js b/js/tbl_change.js index 4a4e444..52d8432 100644 --- a/js/tbl_change.js +++ b/js/tbl_change.js @@ -222,8 +222,6 @@ function Validator(urlField, multi_edit,theType){ } } } - - dt.className=""; } /* End of datetime validation*/
@@ -261,6 +259,20 @@ function unNullify(urlField, multi_edit) $(document).ready(function() {
/** + * Handles all current checkboxes for Null + * + */ + $('.checkbox_null').bind('click', function(e) { + nullify( + // use hidden fields populated by tbl_change.php + $(this).siblings('.nullify_code').val(), + $(this).closest('tr').find('input:hidden').first().val(), + $(this).siblings('.hashed_field').val(), + $(this).siblings('.multi_edit').val() + ); + }); + + /** * Submission of data to be inserted into table * * @uses PMA_ajaxShowMessage() @@ -302,7 +314,7 @@ $(document).ready(function() { }) // end submission of data to be inserted into table
/** - * Restart Insertion form + * Continue Insertion form */ $("#insert_rows").live('change', function(event) { event.preventDefault(); @@ -352,8 +364,33 @@ $(document).ready(function() { /** generate the new name i.e. funcs[multi_edit][11][foobarbaz] */ var new_name = name_parts[0] + '[' + new_row_index + ']' + name_parts[1];
+ var hashed_field = name_parts[1].match(/[(.+)]/)[1]; $(this).attr('name', new_name); - $(this).attr('value', ''); + + $(this).filter('.textfield') + .attr('value', '') + .unbind('change') + .attr('onchange', null) + .bind('change', function(e) { + Validator( + hashed_field, + new_row_index, + $(this).closest('tr').find('span.column_type').html() + ); + }) + .end(); + + $(this).filter('.checkbox_null') + .bind('click', function(e) { + nullify( + $(this).siblings('.nullify_code').val(), + $(this).closest('tr').find('input:hidden').first().val(), + hashed_field, + '[multi_edit][' + new_row_index + ']' + ); + }) + .end(); + });
//Insert/Clone the ignore checkboxes @@ -378,7 +415,7 @@ $(document).ready(function() {
$(last_checkbox) .clone() - .attr({'id':new_name, 'name': new_name}) + .attr({'id':new_name, 'name': new_name, 'checked': true}) .add('label[for^=insert_ignore]:last') .clone() .attr('for', new_name) diff --git a/tbl_change.php b/tbl_change.php index 6d2e957..3e4d814 100644 --- a/tbl_change.php +++ b/tbl_change.php @@ -431,8 +431,8 @@ foreach ($rows as $row_id => $vrow) { <input type="hidden" name="fields_name<?php echo $field_name_appendix; ?>" value="<?php echo $field['Field_html']; ?>"/> </td> <?php if ($cfg['ShowFieldTypesInDataEditView']) { ?> - <td align="center"<?php echo $field['wrap']; ?>> - <?php echo $field['pma_type']; ?> + <td align="center"<?php echo $field['wrap']; ?>><span class="column_type"> + <?php echo $field['pma_type']; ?></span> </td>
<?php } //End if @@ -614,32 +614,35 @@ foreach ($rows as $row_id => $vrow) { } echo ' />' . "\n";
- echo ' <input type="checkbox" tabindex="' . ($tabindex + $tabindex_for_null) . '"' + echo ' <input type="checkbox" class="checkbox_null" tabindex="' . ($tabindex + $tabindex_for_null) . '"' . ' name="fields_null' . $field_name_appendix . '"'; if ($real_null_value && !$field['first_timestamp']) { echo ' checked="checked"'; } - echo ' id="field_' . ($idindex) . '_2"'; - $onclick = ' onclick="if (this.checked) {nullify('; + echo ' id="field_' . ($idindex) . '_2" />'; + + // nullify_code is needed by the js nullify() function if (strstr($field['True_Type'], 'enum')) { if (strlen($field['Type']) > 20) { - $onclick .= '1, '; + $nullify_code = '1'; } else { - $onclick .= '2, '; + $nullify_code = '2'; } } elseif (strstr($field['True_Type'], 'set')) { - $onclick .= '3, '; + $nullify_code = '3'; } elseif ($foreigners && isset($foreigners[$field['Field']]) && $foreignData['foreign_link'] == false) { // foreign key in a drop-down - $onclick .= '4, '; + $nullify_code = '4'; } elseif ($foreigners && isset($foreigners[$field['Field']]) && $foreignData['foreign_link'] == true) { // foreign key with a browsing icon - $onclick .= '6, '; + $nullify_code = '6'; } else { - $onclick .= '5, '; + $nullify_code = '5'; } - $onclick .= ''' . PMA_escapeJsString($field['Field_html']) . '', '' . $field['Field_md5'] . '', '' . PMA_escapeJsString($vkey) . ''); this.checked = true}; return true" />' . "\n"; - echo $onclick; + // to be able to generate calls to nullify() in jQuery + echo '<input type="hidden" class="nullify_code" name="nullify_code' . $field_name_appendix . '" value="' . $nullify_code . '" />'; + echo '<input type="hidden" class="hashed_field" name="hashed_field' . $field_name_appendix . '" value="' . $field['Field_md5'] . '" />'; + echo '<input type="hidden" class="multi_edit" name="multi_edit' . $field_name_appendix . '" value="' . PMA_escapeJsString($vkey) . '" />'; } echo ' </td>' . "\n";
hooks/post-receive