short_name.inc"; require_once($file); } function show_app($app) { echo "
"; add_app_form(); echo "
"; user_settings(); page_tail(); } function job_duration($inst) { if ($inst->finish_time) { $d = $inst->finish_time - $inst->create_time; $d /= 60; $d = number_format($d, 2); $d = "$d min."; } else { $d = "---"; } return $d; } function job_show_instances($job) { $insts = BossaJobInst::enum("job_id=$job->id"); if (!count($insts)) { echo "---"; return; } start_table(); table_header("User", "Start", "Duration", "Result"); foreach ($insts as $inst) { $user = BoincUser::lookup_id($inst->user_id); $t = time_str($inst->create_time); $d = job_duration($inst); echo "
mysql $db_name < bossa_schema.sqlThen reload this page. "; page_tail(); exit; } } BossaUser::lookup($user); $action = get_str('action', true); switch ($action) { case 'add_app': $name = BossaDb::escape_string(get_str('app_name')); $short_name = get_str('short_name'); $description = BossaDb::escape_string(get_str('description')); $training_course = get_str('training_course', true); if (strlen($training_course)) { $course = BoltCourse::lookup_name($training_course); if (!$course) { error_page("No course named $training_course"); } $courseid = $course->id; } else { $courseid = 0; } $time_estimate = get_str('time_estimate'); $time_limit = get_str('time_limit'); $calibration_frac = get_str('calibration_frac' , true); $now = time(); $app_id = BossaApp::insert("(create_time, name, short_name, description, bolt_course_id, time_estimate, time_limit, calibration_frac) values ($now, '$name', '$short_name', '$description', $courseid, $time_estimate, $time_limit, $calibration_frac)"); if ($courseid) { $course->update("bossa_app_id=$app_id"); } Header('Location: bossa_admin.php'); exit; case 'update_user': $flags = 0; if (get_str('show_all', true)) $flags |= BOLT_FLAGS_SHOW_ALL; if (get_str('debug', true)) $flags |= BOLT_FLAGS_DEBUG; $user->bossa->update("flags=$flags"); $user->bossa->flags = $flags; Header('Location: bossa_admin.php'); exit; case 'show_user': show_user(); exit; case 'show_batches': $app_id = $_GET['app_id']; show_batches($app_id); exit; case 'show_batch': $batch_id = $_GET['batch_id']; show_batch($batch_id); exit; case 'job_show_insts': $job_id = $_GET['job_id']; job_show_insts($job_id); exit; case 'hide': $app_id = get_int('app_id'); $app = BossaApp::lookup_id($app_id); if (!$app) error_page("no such app"); $app->update("hidden=1"); break; case 'unhide': $app_id = get_int('app_id'); $app = BossaApp::lookup_id($app_id); if (!$app) error_page("no such app"); $app->update("hidden=0"); break; case '': show_all(); exit; default: error_page("unknown action $action"); } Header('Location: bossa_admin.php'); ?>