<?php
/**
* Retrieve a backup row from the database using it's ID.
*
* Returns the following data as an array:
*
* [ BUName, Dir_Src, Dir_Dest, Files_Ex, Bu_Type, BuRunning, BuError, LastRunDt ]
*
*/
function get_bu_item( $id ){
if(!is_numeric($id) ) return null;
$id=(int)$id;
[$table, $colIdxs] = rpc( 'f:getbu_list_all', "where BUID=$id" );
if( count( $table )==0 ) return null;
$row = $table[0];
return array(
$row[ $colIdxs['BUName']],
$row[ $colIdxs['Dir_Src']],
$row[ $colIdxs['Dir_Dest']],
$row[ $colIdxs['Files_Ex']],
$row[ $colIdxs['BuType']],
$row[ $colIdxs['BuRunning']],
$row[ $colIdxs['BuError']],
$row[ $colIdxs['LastRunDt']],
$row[ $colIdxs['Res_User']],
$row[ $colIdxs['Res_Pwd']]
);
}
/**
* This page provides the UI for a backup item for both new items and editing items for both
* database style and files. So there are 4 combinations:
*
* $bDbStyle = true, $db_id = 0: Create new database backup item
* $bDbStyle = false, $db_id = 0: Create new files backup item
* $bDbStyle = true, $db_id != 0: Edit an existing database backup item
* $bDbStyle = false, $db_id != 0: Edit an existing files backup item
*
*/
function getbu_cf_content( $bDbStyle = false, $db_id = 0 ){
$id_line='';
$header_cont='';
$lab1_cont = '';
$exfiles_cont = '';
$btn_new_bu = '';
$item_data = null;
$bu_name_value = '';
$bu_src_value = '';
$bu_dest_value = '';
$bu_ex_files = '';
$lastRunTime = '';
$bu_error_list = '';
if($db_id>0){
$id_line = "<div>ID</div><div>$db_id</div>";
$item_data = get_bu_item( $db_id ); // [ BUName, Dir_Src, Dir_Dest, Files_Ex, Bu_Type, BuRunning, BuError, LastRunDt, Res_User, Res_Pwd ]
$bu_name_value = "value='{$item_data[0]}'";
$bu_src_value = "value='{$item_data[1]}'";
$bu_dest_value = "value='{$item_data[2]}'";
$bu_ex_files = $item_data[3];
$db_usr_name_value = "value='{$item_data[8]}'";
$db_usr_pwd_value = "value='{$item_data[9]}'";
$bu_error_list = str_replace( "\n", '<br>', $item_data[6]);
$bu_error_list = "<div>Errors</div><div>$bu_error_list</div>";
$lastRunTime = "<div>Last Run (UTC)</div><div>{$item_data[7]}</div>";
}
if($bDbStyle){
if($db_id>0){
$header_cont = '<div class="section_header" >Edit Database Backup Item</div>';
$btn_new_bu = "btn_edit_bu_db','$db_id";
}else{
$header_cont = '<div class="section_header" >Create New Database Backup Item</div>';
$btn_new_bu = 'btn_new_bu_db';
}
$db_usr_pwd = '<div>DB User Name</div>';
$db_usr_pwd .= "<div><input id=\"db_usr_name\" type=\"text\" $db_usr_name_value ></div>";
$db_usr_pwd .= '<div>DB Password</div>';
$db_usr_pwd .= "<div><input id=\"db_usr_pwd\" type=\"password\" $db_usr_pwd_value ></div>";
$lab1_cont = '<div>Database name</div>';
$test_row_html = '';
$test_btn_html = '';
}else{
if($db_id>0){
$header_cont = '<div class="section_header" >Edit File Backup Item</div>';
$btn_new_bu = "btn_edit_bu_file','$db_id";
}else{
$header_cont = '<div class="section_header" >Create New File Backup Item</div>';
$btn_new_bu = 'btn_new_bu_file';
}
$lab1_cont = '<div>Source File/Dir</div>';
$exfiles_cont = "<div>Exclude Files</div><div><textarea id=\"new_bu_exf\" rows=\"4\" >$bu_ex_files</textarea></div>";
$test_row_html = '<div>Test output</div><div><textarea id="ta_testoutput" rows="8" readonly ></textarea></div>';
$test_btn_html = "<button class=\"btn_exec\" onclick=\"btn_clk_nav(this, 'btn_run_bu')\" >Test</button>";
}
$content = <<<'EOD'
$header_cont
<div class="content_section_text" style="min-height: 350px;" >
<div class="two-col-panel">
$id_line
<div>Backup Name</div>
<div><input id="new_bu_name" type="text" $bu_name_value > (optional)</div>
$db_usr_pwd
$lab1_cont
<div><input id="new_bu_source" type="text" $bu_src_value ></div>
<div>Destination Dir</div>
<div><input id="new_bu_dest" type="text" $bu_dest_value ></div>
$exfiles_cont
<div></div>
<div>
$test_btn_html
<button class="btn_exec" onclick="btn_clk_nav(this, '$btn_new_bu')" >Save</button>
<button class="btn_exec" onclick="btn_clk_nav(this, 'btn_cancel_new_bu')" >Cancel</button>
</div>
$test_row_html
$lastRunTime
$bu_error_list
</div>
</div>
EOD;
$content = str_replace('$db_usr_pwd', $db_usr_pwd, $content);
$content = str_replace('$test_btn_html', $test_btn_html, $content);
$content = str_replace('$test_row_html', $test_row_html, $content);
$content = str_replace('$bu_error_list', $bu_error_list, $content);
$content = str_replace('$lastRunTime', $lastRunTime, $content);
$content = str_replace('btn_run_bu\'', "btn_run_bu', $db_id", $content);
$content = str_replace('$bu_name_value', $bu_name_value, $content);
$content = str_replace('$bu_src_value', $bu_src_value, $content);
$content = str_replace('$bu_dest_value', $bu_dest_value, $content);
$content = str_replace('$id_line', $id_line, $content);
$content = str_replace('$btn_new_bu', $btn_new_bu, $content);
$content = str_replace('$exfiles_cont', $exfiles_cont, $content);
$content = str_replace('$lab1_cont', $lab1_cont, $content);
$content = str_replace('$header_cont', $header_cont, $content);
return $content;
}
?>