define("ADMIN_MODULE_NAME", "bitrixcloud"); require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_before.php"); IncludeModuleLangFile(__FILE__); /* @global CMain $APPLICATION */ /* @global CUser $USER */ if (!$USER->CanDoOperation("bitrixcloud_backup") || !CModule::IncludeModule("bitrixcloud")) $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED")); $strError = ""; $APPLICATION->SetTitle(GetMessage("BCL_BACKUP_JOB_TITLE")); try { $sTableID = "t_bitrixcloud_backup_job"; $lAdmin = new CAdminList($sTableID); if ($arID = $lAdmin->GroupAction()) { foreach ($arID as $ID) { if ($ID == '') continue; $ID = intval($ID); switch ($_REQUEST['action']) { case "delete": $strError = CBitrixCloudBackup::getInstance()->deleteBackupJob(); break; } } } if ( $_SERVER["REQUEST_METHOD"] === "POST" && check_bitrix_sessid() ) { require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/classes/general/backup.php"); $backup_secret_key = CPasswordStorage::Get('backup_secret_key'); if ($backup_secret_key == '') { $backup_secret_key = randString(10); CPasswordStorage::Set('backup_secret_key', $backup_secret_key); } $time = 0; if (preg_match("/^(\\d{1,2}):(\\d{1,2})\$/", $_POST["TIME"], $match)) $time = $match[1]*3600 + $match[2]*60; $strError = CBitrixCloudBackup::getInstance()->addBackupJob($backup_secret_key, $_POST["URL"], $time, $_POST["WEEK_DAYS"]); if ($strError == "") LocalRedirect("/bitrix/admin/bitrixcloud_backup_job.php?lang=".LANGUAGE_ID); } $arHeaders = array( array( "id" => "URL", "content" => GetMessage("BCL_BACKUP_JOB_URL"), "default" => true, ), array( "id" => "TIME", "content" => GetMessage("BCL_BACKUP_JOB_TIME"), "align" => "right", "default" => true, ), array( "id" => "WEEK_DAYS", "content" => GetMessage("BCL_BACKUP_JOB_WEEK_DAYS"), "default" => true, ), array( "id" => "STATUS", "content" => GetMessage("BCL_BACKUP_JOB_STATUS"), "default" => true, ), array( "id" => "FINISH_TIME", "content" => GetMessage("BCL_BACKUP_JOB_FINISH_TIME"), "align" => "right", "default" => true, ), ); $arJobs = CBitrixCloudBackup::getInstance()->getBackupJob(); if (is_string($arJobs)) throw new CBitrixCloudException($arJobs); $lAdmin->AddHeaders($arHeaders); $rsData = new CDBResult; $rsData->InitFromArray($arJobs); $rsData = new CAdminResult($rsData, $sTableID); while($arRes = $rsData->GetNext()) { $row = $lAdmin->AddRow($arRes["URL"], $arRes); if ($arRes["STATUS"] == "") $status = GetMessage("BCL_BACKUP_JOB_NEVER"); else $status = $arRes["STATUS"]; $row->AddViewField("STATUS", $status); $week_days = array(); foreach($arRes["WEEK_DAYS"] as $dow) { if (HasMessage("DOW_".$dow)) $week_days[] = GetMessage("DOW_".$dow); } $row->AddViewField("WEEK_DAYS", implode(", ", $week_days)); if($_GET["allow_manage"]==="y") { $arActions = array( array( "ICON" => "delete", "TEXT" => GetMessage("BCL_BACKUP_JOB_DELETE"), "ACTION" => "if(confirm('".GetMessage("BCL_BACKUP_JOB_DELETE_CONF")."')) ".$lAdmin->ActionDoGroup($arRes["URL"], "delete"), ), ); $row->AddActions($arActions); } } if(empty($arJobs) && $_GET["allow_manage"]==="y") { $aContext = array( array( "TEXT" => GetMessage("BCL_BACKUP_JOB_ADD"), "LINK" => "javascript:show_upload_form()", "TITLE" => "", "ICON" => "btn_new", ), ); $lAdmin->AddAdminContextMenu($aContext, /*$bShowExcel=*/false); $lAdmin->BeginPrologContent(); if ($strError) CAdminMessage::ShowMessage($strError); $aTabs = array( array( "DIV" => "edit1", "TAB" => GetMessage("BCL_BACKUP_JOB_ADD_TAB"), "ICON"=>"main_user_edit", "TITLE"=>GetMessage("BCL_BACKUP_JOB_ADD_TAB_TITLE"), ), ); $tabControl = new CAdminTabControl("tabControl", $aTabs, true, true); ?>