<?php
/* $Id: tbl_row_action.php,v 2.21 2005/11/26 06:59:49 cybot_tm Exp $ */
// vim: expandtab sw=4 ts=4 sts=4:
require_once('./libraries/common.lib.php');
require_once(
'./libraries/mysql_charsets.lib.php');

/**
 * Avoids undefined variables
 */
if (!isset($pos)) {
    
$pos 0;
}

/**
 * No rows were selected => show again the query and tell that user.
 */
if ((!isset($rows_to_delete) || !is_array($rows_to_delete)) && !isset($mult_btn)) {
    
$disp_message $strNoRowsSelected;
    
$disp_query '';
    require(
'./sql.php');
    require_once(
'./libraries/footer.inc.php');
}

/**
 * Drop multiple rows if required
 */

// workaround for IE problem:
if (isset($submit_mult_delete_x)) {
    
$submit_mult 'row_delete';
} elseif (isset(
$submit_mult_change_x)) {
    
$submit_mult 'row_edit';
} elseif (isset(
$submit_mult_export_x)) {
    
$submit_mult 'row_export';
}

// garvin: If the 'Ask for confirmation' button was pressed, this can only come from 'delete' mode,
// so we set it straight away.
if (isset($mult_btn)) {
    
$submit_mult 'row_delete';
}

switch(
$submit_mult) {
    case 
'row_delete':
    case 
'row_edit':
    case 
'row_export':
        
// leave as is
        
break;

    case 
$GLOBALS['strExport']:
        
$submit_mult 'row_export';
        break;

    case 
$GLOBALS['strDelete']:
    case 
$GLOBALS['strKill']:
        
$submit_mult 'row_delete';
        break;

    default:
    case 
$GLOBALS['strEdit']:
        
$submit_mult 'row_edit';
        break;
}

if (
$submit_mult == 'row_edit') {
    
$js_to_run 'tbl_change.js';
}

if (
$submit_mult == 'row_delete' || $submit_mult == 'row_export') {
    
$js_to_run 'functions.js';
}

require_once(
'./libraries/header.inc.php');

if (!empty(
$submit_mult)) {
    switch(
$submit_mult) {
        case 
'row_edit':
            
$primary_key = array();
            
// garvin: As we got the fields to be edited from the 'rows_to_delete' checkbox, we use the index of it as the
            // indicating primary key. Then we built the array which is used for the tbl_change.php script.
            
foreach ($rows_to_delete AS $i_primary_key => $del_query) {
                
$primary_key[] = urldecode($i_primary_key);
            }
            
            
$active_page 'tbl_change.php';
            include 
'./tbl_change.php';
            break;

        case 
'row_export':
            
// Needed to allow SQL export
            
$single_table TRUE;

            
$primary_key = array();
            
$sql_query urldecode($sql_query);
            
// garvin: As we got the fields to be edited from the 'rows_to_delete' checkbox, we use the index of it as the
            // indicating primary key. Then we built the array which is used for the tbl_change.php script.
            
foreach ($rows_to_delete AS $i_primary_key => $del_query) {
                
$primary_key[] = urldecode($i_primary_key);
            }

            
$active_page 'tbl_properties_export.php';
            include 
'./tbl_properties_export.php';
            break;

        case 
'row_delete':
        default:
            
$action 'tbl_row_action.php';
            
$err_url 'tbl_row_action.php?' PMA_generate_common_url($db$table);
            if (!isset(
$mult_btn)) {
                
$original_sql_query $sql_query;
                
$original_url_query $url_query;
                
$original_pos       $pos;
            }
            require(
'./libraries/mult_submits.inc.php');
            
$url_query PMA_generate_common_url($db$table)
                       . 
'&amp;goto=tbl_properties.php';


            
/**
             * Show result of multi submit operation
             */
            // sql_query is not set when user does not confirm multi-delete
            
if ((!empty($submit_mult) || isset($mult_btn)) && isset($sql_query)) {
                
$disp_message $strSuccess;
                
$disp_query $sql_query;
            }

            if (isset(
$original_sql_query)) {
                
$sql_query $original_sql_query;
            }

            if (isset(
$original_url_query)) {
                
$url_query $original_url_query;
            }

            if (isset(
$original_pos)) {
                
$pos       $original_pos;
            }

            
// this is because sql.php could call tbl_properties_structure
            // which would think it needs to call mult_submits.inc.php:
            
unset($submit_mult);
            unset(
$mult_btn);

            
$active_page 'sql.php';
            require(
'./sql.php');

            
/**
             * Displays the footer
             */
            
require_once('./libraries/footer.inc.php');
        break;
    }
}
?>