$current_screen, 'plural' => 'jobs', 'singular' => 'job' ) ); } function check_permissions() { if ( !current_user_can( 10 ) ) wp_die( __( 'No rights' ) ); } function prepare_items() { global $mode; $this->items=get_option('backwpup_jobs'); $mode = empty( $_REQUEST['mode'] ) ? 'list' : $_REQUEST['mode']; } function pagination( $which ) { global $mode; parent::pagination( $which ); if ( 'top' == $which ) $this->view_switcher( $mode ); } function no_items() { _e( 'No Jobs.','backwpup'); } function get_bulk_actions() { $actions = array(); $actions['delete'] = __( 'Delete' ); return $actions; } function get_columns() { $posts_columns = array(); $posts_columns['cb'] = ''; $posts_columns['id'] = __('ID','backwpup'); $posts_columns['jobname'] = __('Job Name','backwpup'); $posts_columns['type'] = __('Type','backwpup'); $posts_columns['info'] = __('Information','backwpup'); $posts_columns['next'] = __('Next Run','backwpup'); $posts_columns['last'] = __('Last Run','backwpup'); return $posts_columns; } function get_sortable_columns() { return array(); } function get_hidden_columns() { return (array) get_user_option( 'backwpup_jobs_columnshidden' ); } function display_rows() { $style = ''; foreach ( $this->items as $jobid => $jobvalue ) { $jobvalue=backwpup_check_job_vars($jobvalue);//Set and check job settings $style = ( ' class="alternate"' == $style ) ? '' : ' class="alternate"'; echo "\n\t", $this->single_row( $jobid, $jobvalue, $style ); } } function single_row( $jobid, $jobvalue, $style = '' ) { global $mode; list( $columns, $hidden ) = $this->get_column_headers(); $r = ""; foreach ( $columns as $column_name => $column_display_name ) { $class = "class=\"$column_name column-$column_name\""; $style = ''; if ( in_array( $column_name, $hidden ) ) $style = ' style="display:none;"'; $attributes = "$class$style"; switch( $column_name ) { case 'cb': $r .= ''; break; case 'id': $r .= "".$jobid.""; break; case 'jobname': $r .= "".esc_html($jobvalue['name']).""; $actions = array(); if (empty($jobvalue['logfile']) and empty($jobvalue['starttime'])) { $actions['edit'] = "" . __('Edit') . ""; $actions['copy'] = "" . __('Copy','backwpup') . ""; $actions['delete'] = "" . __('Delete') . ""; $actions['runnow'] = "" . __('Run Now','backwpup') . ""; } else { $actions['clear'] = "" . __('Abort','backwpup') . ""; } $action_count = count($actions); $i = 0; $r .= '
'; foreach ( $actions as $action => $linkaction ) { ++$i; ( $i == $action_count ) ? $sep = '' : $sep = ' | '; $r .= "$linkaction$sep"; } $r .= '
'; $r .= ''; break; case 'type': $r .= ""; $r .= backwpup_backup_types($jobvalue['type'],false); $r .= ""; break; case 'info': $r .= ""; if (in_array('FILE',explode('+',$jobvalue['type']))) { $files=backwpup_calc_file_size($jobvalue); $r .= __("Files Size:","backwpup")." ".backwpup_formatBytes($files['size'])."
"; if ( 'excerpt' == $mode ) { $r .= __("Files count:","backwpup")." ".$files['num']."
"; } } if (in_array('DB',explode('+',$jobvalue['type'])) or in_array('OPTIMIZE',explode('+',$jobvalue['type'])) or in_array('CHECK',explode('+',$jobvalue['type']))) { $dbsize=backwpup_calc_db_size($jobvalue); $r .= "DB Size: ".backwpup_formatBytes($dbsize['size'])."
"; if ( 'excerpt' == $mode ) { $r .= __("DB Tables:","backwpup")." ".$dbsize['num']."
"; $r .= __("DB Rows:","backwpup")." ".$dbsize['rows']."
"; } } $r .= ""; break; case 'next': $r .= ""; if ($jobvalue['starttime']>0 and empty($jobvalue['stoptime'])) { $runtime=current_time('timestamp')-$jobvalue['starttime']; $r .= __('Running since:','backwpup').' '.$runtime.' '.__('sec.','backwpup'); } elseif ($jobvalue['activated']) { $r .= date(get_option('date_format'),$jobvalue['cronnextrun']).'
'. date(get_option('time_format'),$jobvalue['cronnextrun']); } else { $r .= __('Inactive','backwpup'); } if ( 'excerpt' == $mode ) { $r .= '
'.__('Cron:','backwpup').' '.$jobvalue['cron']; } $r .= ""; break; case 'last': $r .= ""; if ($jobvalue['lastrun']) { $r .= date_i18n(get_option('date_format'),$jobvalue['lastrun']).'
'. date_i18n(get_option('time_format'),$jobvalue['lastrun']); if (isset($jobvalue['lastruntime'])) $r .= '
'.__('Runtime:','backwpup').' '.$jobvalue['lastruntime'].' '.__('sec.','backwpup'); } else { $r .= __('None','backwpup'); } $r .= ""; break; } } $r .= ''; return $r; } } class BackWPup_Logs_Table extends WP_List_Table { function BackWPup_Logs_Table() { global $current_screen; parent::WP_List_Table( array( 'screen' => $current_screen, 'plural' => 'logs', 'singular' => 'log' ) ); } function check_permissions() { if ( !current_user_can( 10 ) ) wp_die( __( 'No rights' ) ); } function prepare_items() { $per_page = (int) get_user_option( 'backwpup_logs_per_page' ); if ( empty( $per_page ) || $per_page < 1 ) $per_page = 20; //load logs $cfg=get_option('backwpup'); $logfiles=array(); if ( $dir = @opendir( $cfg['dirlogs'] ) ) { while (($file = readdir( $dir ) ) !== false ) { if (is_file($cfg['dirlogs'].'/'.$file) and 'backwpup_log_' == substr($file,0,strlen('backwpup_log_')) and '.html' == substr($file,-5)) $logfiles[]=$file; } closedir( $dir ); rsort($logfiles); } //by page $start=intval( ( $this->get_pagenum() - 1 ) * $per_page ); $end=$start+$per_page; if ($end>count($logfiles)) $end=count($logfiles); for ($i=$start;$i<$end;$i++) { $this->items[] = $logfiles[$i]; } $this->set_pagination_args( array( 'total_items' => count($logfiles), 'per_page' => $per_page ) ); } function no_items() { _e( 'No Logs.','backwpup'); } function get_bulk_actions() { $actions = array(); $actions['delete'] = __( 'Delete' ); return $actions; } function get_columns() { $posts_columns = array(); $posts_columns['cb'] = ''; $posts_columns['id'] = __('Job','backwpup'); $posts_columns['type'] = __('Type','backwpup'); $posts_columns['log'] = __('Backup/Log Date/Time','backwpup'); $posts_columns['status'] = __('Status','backwpup'); $posts_columns['size'] = __('Size','backwpup'); $posts_columns['runtime'] = __('Runtime','backwpup'); return $posts_columns; } function get_sortable_columns() { return array(); } function get_hidden_columns() { return (array) get_user_option( 'backwpup_logs_columnshidden' ); } function display_rows() { $style = ''; $cfg=get_option('backwpup'); foreach ( $this->items as $logfile ) { $style = ( ' class="alternate"' == $style ) ? '' : ' class="alternate"'; $logdata=backwpup_read_logheader($cfg['dirlogs'].$logfile); echo "\n\t", $this->single_row( $cfg['dirlogs'].$logfile, $logdata, $style ); } } function single_row( $logfile, $logdata, $style = '' ) { list( $columns, $hidden ) = $this->get_column_headers(); $r = ""; foreach ( $columns as $column_name => $column_display_name ) { $class = "class=\"$column_name column-$column_name\""; $style = ''; if ( in_array( $column_name, $hidden ) ) $style = ' style="display:none;"'; $attributes = "$class$style"; switch($column_name) { case 'cb': $r .= ''; break; case 'id': $r .= "".$logdata['jobid'].""; break; case 'type': $r .= ""; $r .= backwpup_backup_types($logdata['type'],false); $r .= ""; break; case 'log': $name=''; if (is_file($logvalue['backupfile'])) $name=basename($logvalue['backupfile']); $r .= "".date_i18n(get_option('date_format'),$logdata['logtime'])." ".date_i18n(get_option('time_format'),$logdata['logtime']).": ".$logdata['name'].""; $actions = array(); $actions['view'] = "" . __('View','backwpup') . ""; $actions['delete'] = "get_pagenum().'&logfiles[]='.basename($logfile), 'bulk-logs') . "\" onclick=\"return showNotice.warn();\">" . __('Delete') . ""; $actions['download'] = "" . __('Download','backwpup') . ""; $action_count = count($actions); $i = 0; $r .= '
'; foreach ( $actions as $action => $linkaction ) { ++$i; ( $i == $action_count ) ? $sep = '' : $sep = ' | '; $r .= "$linkaction$sep"; } $r .= '
'; $r .= ""; break; case 'status': $r .= ""; if($logdata['errors']>0 or $logdata['warnings']>0) { if ($logdata['errors']>0) $r .= ''.$logdata['errors'].' '.__('ERROR(S)','backwpup').'
'; if ($logdata['warnings']>0) $r .= ''.$logdata['warnings'].' '.__('WARNING(S)','backwpup').''; } else { $r .= ''.__('OK','backwpup').''; } $r .= ""; break; case 'size': $r .= ""; if (!empty($logdata['backupfilesize'])) { $r .= backwpup_formatBytes($logdata['backupfilesize']); } else { $r .= __('only Log','backwpup'); } $r .= ""; break; case 'runtime': $r .= ""; $r .= $logdata['runtime'].' '.__('sec.','backwpup'); $r .= ""; break; } } $r .= ''; return $r; } } class BackWPup_Backups_Table extends WP_List_Table { function BackWPup_Backups_Table() { global $current_screen; parent::WP_List_Table( array( 'screen' => $current_screen, 'plural' => 'backups', 'singular' => 'backup' ) ); } function check_permissions() { if ( !current_user_can( 10 ) ) wp_die( __( 'No rights' ) ); } function prepare_items() { $per_page = (int) get_user_option( 'backwpup_backups_per_page' ); if ( empty( $per_page ) || $per_page < 1 ) $per_page = 20; //load logs if (isset($_GET['paged'])) { $backups=get_option('backwpup_backups_chache'); } else { //Get Backup files $backups=backwpup_get_backup_files(); update_option('backwpup_backups_chache',$backups); } //by page $start=intval( ( $this->get_pagenum() - 1 ) * $per_page ); $end=$start+$per_page; if ($end>count($backups)) $end=count($backups); for ($i=$start;$i<$end;$i++) { $this->items[] = $backups[$i]; } $this->set_pagination_args( array( 'total_items' => count($backups), 'per_page' => $per_page ) ); } function no_items() { _e( 'No Backups.','backwpup'); } function get_bulk_actions() { $actions = array(); $actions['delete'] = __( 'Delete' ); return $actions; } function get_columns() { $posts_columns = array(); $posts_columns['cb'] = ''; $posts_columns['backup'] = __('Backupfile','backwpup'); $posts_columns['size'] = __('Size','backwpup'); return $posts_columns; } function get_sortable_columns() { return array(); } function get_hidden_columns() { return (array) get_user_option( 'backwpup_backups_columnshidden' ); } function display_rows() { $style = ''; $jobs=get_option('backwpup_jobs'); //Load jobs foreach ( $this->items as $backup ) { $style = ( ' class="alternate"' == $style ) ? '' : ' class="alternate"'; echo "\n\t", $this->single_row( $backup, backwpup_check_job_vars($jobs[$backup['jobid']]), $style ); } } function single_row( $backup, $jobvalue, $style = '' ) { list( $columns, $hidden ) = $this->get_column_headers(); $r = ""; foreach ( $columns as $column_name => $column_display_name ) { $class = "class=\"$column_name column-$column_name\""; $style = ''; if ( in_array( $column_name, $hidden ) ) $style = ' style="display:none;"'; $attributes = "$class$style"; switch($column_name) { case 'cb': $r .= ''; break; case 'backup': if ($backup['type']=='FOLDER') { $r .= "".basename($backup['file'])."
".dirname($backup['file'])."/"; } elseif ($backup['type']=='S3') { $r .= "".basename($backup['file'])."
S3://".$jobvalue['awsBucket']."/".dirname($backup['file'])."/"; } elseif ($backup['type']=='FTP') { $r .= "".basename($backup['file'])."
ftp://".$jobvalue['ftphost'].dirname($backup['file'])."/"; } elseif ($backup['type']=='RSC') { $r .= "".basename($backup['file'])."
RSC://".$jobvalue['rscContainer']."/".dirname($backup['file'])."/"; } $actions = array(); $actions['delete'] = "get_pagenum().'&backupfiles[]='.esc_attr($backup['file'].':'.$backup['jobid'].':'.$backup['type']), 'bulk-backups') . "\" onclick=\"if ( confirm('" . esc_js(__("You are about to delete this Backup Archive. \n 'Cancel' to stop, 'OK' to delete.","backwpup")) . "') ) { return true;}return false;\">" . __('Delete') . ""; $actions['download'] = "" . __('Download','backwpup') . ""; $action_count = count($actions); $i = 0; $r .= '
'; foreach ( $actions as $action => $linkaction ) { ++$i; ( $i == $action_count ) ? $sep = '' : $sep = ' | '; $r .= "$linkaction$sep"; } $r .= '
'; $r .= ""; break; case 'size': $r .= ""; if (!empty($backup['filesize']) and $backup['filesize']!=-1) { $r .= backwpup_formatBytes($backup['filesize']); } else { $r .= __('?','backwpup'); } $r .= ""; break; } } $r .= ''; return $r; } } ?>