function show_form($all) { if ($all) { echo "<a href=manage_app_versions.php>Don't show deprecated app versions</a>\n"; } else { echo "<a href=manage_app_versions.php?all=1>Show deprecated app versions</a>\n"; } $_platforms = BoincPlatform::enum(""); foreach ($_platforms as $platform) { $platforms[$platform->id] = $platform; } $_apps = BoincApp::enum(""); foreach ($_apps as $app) { $apps[$app->id] = $app; } start_table(""); table_header("ID #<br><p class=\"text-muted\">click for details</p>", "Application<br><p class=\"text-muted\">click for details</p>", "Version", "Platform", "Plan class", "minimum<br>client version", "maximum<br>client version", "beta?", "deprecated?", ""); $clause = $all ? "true" : "deprecated = 0"; $avs = BoincAppVersion::enum("{$clause} order by appid, platformid, plan_class, version_num"); $i = 0; foreach ($avs as $av) { // grey out deprecated versions // $f1 = $f2 = ''; if ($av->deprecated) { $f1 = "<font color='GREY'>"; $f2 = "</font>"; } $all_value = $all ? 1 : 0; echo "<tr class=row{$i}><form action=manage_app_versions.php?all={$all_value}#av_{$av->id} method=POST>\n"; $i = 1 - $i; echo "<input type=hidden name=id value={$av->id}>"; echo " <TD>{$f1} <a id='av_{$av->id}' href=db_action.php?table=app_version&id={$av->id}>{$av->id}</a> {$f2}</TD>\n"; $app = $apps[$av->appid]; echo " <TD>{$f1} <a href=app_details.php?appid={$app->id}>{$app->name}</a> {$f2}</TD>\n"; echo " <TD>{$f1} {$av->version_num} {$f2}</TD>\n"; $platform = $platforms[$av->platformid]; echo " <TD>{$f1} {$platform->name} {$f2}</TD>\n"; echo " <td><input type=text name=plan_class size=12 value='{$av->plan_class}'></td>\n"; $v = $av->min_core_version; echo " <TD><input type='text' size='4' name=min_core_version value='{$v}'></TD>\n"; $v = $av->max_core_version; echo " <TD><input type='text' size='4' name=max_core_version value='{$v}'></TD>\n"; $v = ''; if ($av->beta) { $v = ' CHECKED '; } echo " <TD> <input name=beta type='checkbox' {$v}></TD>\n"; $v = ''; if ($av->deprecated) { $v = ' CHECKED '; } echo " <TD> <input name=deprecated type='checkbox' {$v}></TD>\n"; echo "<td><input class=\"btn btn-default\" name=submit type=submit value=Update>"; echo "</tr></form>"; } end_table(); }
function do_updates() { $apps = BoincApp::enum(""); foreach ($apps as $app) { $id = $app->id; // Change deprecated status? // $field = "deprecated_" . $id; $new_v = post_str($field, true) == 'on' ? 1 : 0; $old_v = $app->deprecated; if ($new_v != $old_v) { $app->update("deprecated={$new_v}"); } $field = "weight_" . $id; $new_v = $_POST[$field] + 0; $old_v = $app->weight; if ($new_v != $old_v) { $app->update("weight={$new_v}"); } $field = "homogeneous_redundancy_" . $id; $new_v = $_POST[$field]; $old_v = $app->homogeneous_redundancy; if ($new_v != $old_v) { $app->update("homogeneous_redundancy={$new_v}"); } $field = "homogeneous_app_version_" . $id; $new_v = post_str($field, true) == 'on' ? 1 : 0; $old_v = $app->homogeneous_app_version; if ($new_v != $old_v) { $app->update("homogeneous_app_version={$new_v}"); } $field = "non_cpu_intensive_" . $id; $new_v = post_str($field, true) == 'on' ? 1 : 0; $old_v = $app->non_cpu_intensive; if ($new_v != $old_v) { $app->update("non_cpu_intensive={$new_v}"); } } // Adding a new application if (post_str('add_app', true)) { $name = mysql_real_escape_string($_POST['add_name']); $user_friendly_name = mysql_real_escape_string($_POST['add_user_friendly_name']); if (empty($name) || empty($user_friendly_name)) { $commands .= "<p><font color='red'>\n To add a new application please supply both a brief name and a\n longer 'user-friendly' name.</font></p>\n "; } else { $now = time(); $cmd = "INSERT INTO app (name,user_friendly_name,create_time) " . "VALUES ('{$name}', '{$user_friendly_name}',{$now})"; $commands .= "<P><pre>{$cmd}</pre>\n"; mysql_query($cmd); } } }
function show_form() { $_platforms = BoincPlatform::enum(""); foreach ($_platforms as $platform) { $platforms[$platform->id] = $platform; } $_apps = BoincApp::enum(""); foreach ($_apps as $app) { $apps[$app->id] = $app; } start_table(""); table_header("ID #<br><span class=note>click for details</span>", "Application<br><span class=note>click for details</span>", "Version", "Platform", "Plan Class", "minimum<br>client version", "maximum<br>client version", "beta?", "deprecated?", ""); $avs = BoincAppVersion::enum("true order by appid, platformid, plan_class, version_num"); $i = 0; foreach ($avs as $av) { // grey out deprecated versions // $f1 = $f2 = ''; if ($av->deprecated) { $f1 = "<font color='GREY'>"; $f2 = "</font>"; } echo "<tr class=row{$i}><form action=manage_app_versions.php method=POST>\n"; $i = 1 - $i; echo "<input type=hidden name=id value={$av->id}>"; echo " <TD>{$f1} <a href=db_action.php?table=app_version&id={$av->id}>{$av->id}</a> {$f2}</TD>\n"; $app = $apps[$av->appid]; echo " <TD>{$f1} <a href=app_details.php?appid={$app->id}>{$app->name}</a> {$f2}</TD>\n"; echo " <TD>{$f1} {$av->version_num} {$f2}</TD>\n"; $platform = $platforms[$av->platformid]; echo " <TD>{$f1} {$platform->name} {$f2}</TD>\n"; echo " <td>{$f1} {$av->plan_class} {$f2}</td>\n"; $v = $av->min_core_version; echo " <TD><input type='text' size='4' name=min_core_version value='{$v}'></TD>\n"; $v = $av->max_core_version; echo " <TD><input type='text' size='4' name=max_core_version value='{$v}'></TD>\n"; $v = ''; if ($av->beta) { $v = ' CHECKED '; } echo " <TD> <input name=beta type='checkbox' {$v}></TD>\n"; $v = ''; if ($av->deprecated) { $v = ' CHECKED '; } echo " <TD> <input name=deprecated type='checkbox' {$v}></TD>\n"; echo "<td><input name=submit type=submit value=Update>"; echo "</tr></form>"; } end_table(); }
function handle_edit_action() { $user_id = get_int('user_id'); $us = BoincUserSubmit::lookup_userid($user_id); if (!$us) { error_page("user not found"); } BoincUserSubmitApp::delete_user($user_id); $submit_all = get_str('submit_all'); if ($submit_all) { $us->update("submit_all=1"); } else { $us->update("submit_all=0"); $apps = BoincApp::enum("deprecated=0"); foreach ($apps as $app) { $x = "app_{$app->id}"; if (get_str($x, true)) { BoincUserSubmitApp::insert("(user_id, app_id) values ({$user_id}, {$app->id})"); } } } $quota = (double) get_str('quota'); if ($quota != $us->quota) { $us->update("quota={$quota}"); } page_head("Update successful"); echo "<a href=manage_project.php>Return to project-wide management functions</a>"; page_tail(); }
function get_job_status() { $s = unserialize(get_cached_data(STATUS_PAGE_TTL, "job_status")); if ($s) { return $s; } $s = new StdClass(); $apps = BoincApp::enum("deprecated=0"); foreach ($apps as $app) { $info = BoincDB::get()->lookup_fields("result", "stdClass", "ceil(avg(elapsed_time)/3600*100)/100 as avg,\n ceil(min(elapsed_time)/3600*100)/100 as min,\n ceil(max(elapsed_time)/3600*100)/100 as max,\n count(distinct userid) as users", "appid = {$app->id}\n AND validate_state=1\n AND received_time > (unix_timestamp()-86400)\n "); $app->info = $info; $app->unsent = BoincResult::count("appid={$app->id} and server_state=2"); $app->in_progress = BoincResult::count("appid={$app->id} and server_state=4"); } $s->apps = $apps; $s->results_ready_to_send = BoincResult::count("server_state=2"); $s->results_in_progress = BoincResult::count("server_state=4"); $s->results_need_file_delete = BoincResult::count("file_delete_state=1"); $s->wus_need_validate = BoincWorkunit::count("need_validate=1"); $s->wus_need_assimilate = BoincWorkunit::count("assimilate_state=1"); $s->wus_need_file_delete = BoincWorkunit::count("file_delete_state=1"); $x = BoincDB::get()->lookup_fields("workunit", "stdClass", "MIN(transition_time) as min", "TRUE"); $gap = (time() - $x->min) / 3600; if ($gap < 0 || $x->min == 0) { $gap = 0; } $s->transitioner_backlog = $gap; $s->users_with_recent_credit = BoincUser::count("expavg_credit>1"); $s->users_with_credit = BoincUser::count("total_credit>1"); $s->users_past_24_hours = BoincUser::count("create_time > (unix_timestamp() - 86400)"); $s->hosts_with_recent_credit = BoincHost::count("expavg_credit>1"); $s->hosts_with_credit = BoincHost::count("total_credit>1"); $s->hosts_past_24_hours = BoincHost::count("create_time > (unix_timestamp() - 86400)"); $s->flops = BoincUser::sum("expavg_credit") / 200; $s->db_revision = null; if (file_exists("../../db_revision")) { $s->db_revision = trim(file_get_contents("../../db_revision")); } $s->cached_time = time(); $e = set_cached_data(STATUS_PAGE_TTL, serialize($s), "job_status"); if ($e) { echo "set_cached_data(): {$e}\n"; } return $s; }
function get_cached_apps() { $apps = unserialize(get_cached_data(3600, "get_cached_apps")); if ($apps == false) { $apps = BoincApp::enum("deprecated=0"); set_cached_data(3600, serialize($apps), "get_cached_apps"); } return $apps; }
$av = $x->on_frac; if ($x->gpu_active_frac) { $av *= $x->gpu_active_frac; } else { $av *= $x->active_frac; } } else { $av = $x->on_frac * $x->active_frac; } $a[] = 1 / $x->et_avg * $av; } _mysql_free_result($result); sort($a); $n = count($a); $f = fopen("../../size_census_" . $app->name, "w"); for ($i = 1; $i < $app->n_size_classes; $i++) { $k = (int) ($i * $n / $app->n_size_classes); fprintf($f, "%e\n", $a[$k]); } fclose($f); } echo "Starting: ", time_str(time()), "\n"; if ($argc == 2 && $argv[1] == "--all_apps") { $apps = BoincApp::enum("deprecated=0"); } else { $apps = BoincApp::enum("deprecated=0 and n_size_classes>1"); } foreach ($apps as $app) { do_app($app); } echo "Finished: ", time_str(time()), "\n";
// along with BOINC. If not, see <http://www.gnu.org/licenses/>. require_once "../inc/boinc_db.inc"; require_once "../inc/util.inc"; check_get_args(array("xml")); $platforms = BoincPlatform::enum("deprecated=0"); $xml = get_str('xml', true); if ($xml) { require_once '../inc/xml.inc'; xml_header(); echo "<app_versions>\n"; } else { page_head(tra("Applications")); echo tra("%1 currently has the following applications. When you participate in %1, work for one or more of these applications will be assigned to your computer. The current version of the application will be downloaded to your computer. This happens automatically; you don't have to do anything.", PROJECT) . "<br><br>\n "; start_table(); } $apps = BoincApp::enum("deprecated=0"); foreach ($apps as $app) { if ($xml) { echo "<application>\n"; echo " <name>{$app->user_friendly_name}</name>\n"; echo " <id>{$app->id}</id>\n"; } else { echo "\n <tr><th colspan=4>{$app->user_friendly_name}</th></tr>\n <tr>\n <th>" . tra("Platform") . "</th>\n <th>" . tra("Version") . "</th>\n <th>" . tra("Installation time") . "</th>\n </tr>\n "; } foreach ($platforms as $platform) { $avs = latest_avs_app_platform($app->id, $platform->id); foreach ($avs as $av) { $create_time_f = pretty_time_str($av->create_time); if ($xml) { echo " <version>\n"; echo " <platform_short>{$platform->name}</platform_short>\n";
function show_list($is_team, $appid, $is_total) { $x = $is_team ? "teams" : "participants"; page_head("Top {$x} by application"); $apps = BoincApp::enum("deprecated=0"); if (!$appid) { $appid = $apps[0]->id; } start_table(); show_header($is_team, $apps, $appid, $is_total); $x = $is_total ? "total" : "expavg"; if ($is_team) { $items = BoincCreditTeam::enum("appid={$appid} order by {$x} desc"); } else { $items = BoincCreditUser::enum("appid={$appid} order by {$x} desc"); } $i = 0; foreach ($items as $item) { show_row($item, $apps, $is_team, $i); $i++; } end_table(); page_tail(); }
function eligible_apps() { global $user; $apps = BoincApp::enum("deprecated = 0"); $user_submit = BoincUserSubmit::lookup_userid($user->id); if (!$user_submit) { return null; } $a = array(); foreach ($apps as $app) { if ($user_submit->submit_all) { $a[] = $app; } else { if (BoincUserSubmitApp::lookup("user_id={$user->id} and app_id={$app->id}")) { $a[] = $app; } } } return $a; }
function handle_main($user) { global $submit_urls; $user_submit = BoincUserSubmit::lookup_userid($user->id); if (!$user_submit) { error_page("Ask the project admins for permission to submit jobs"); } page_head("Job submission and control"); if (isset($submit_urls)) { // show links to per-app job submission pages // echo "<h2>Submit jobs</h2>\n <ul>\n "; foreach ($submit_urls as $appname => $submit_url) { $appname = BoincDb::escape_string($appname); $app = BoincApp::lookup("name='{$appname}'"); if (!$app) { error_page("bad submit_url name: {$appname}"); } $usa = BoincUserSubmitApp::lookup("user_id={$user->id} and app_id={$app->id}"); if ($usa || $user_submit->submit_all) { echo "<li> <a href={$submit_url}> {$app->user_friendly_name} </a>"; } } echo "</ul>\n"; } // show links to admin pages if relevant // $usas = BoincUserSubmitApp::enum("user_id={$user->id}"); $app_admin = false; foreach ($usas as $usa) { if ($usa->manage) { $app_admin = true; break; } } if ($user_submit->manage_all || $app_admin) { echo "<h2>Administrative functions</h2><ul>\n"; if ($user_submit->manage_all) { echo "<li>All applications<br>\n <a href=submit.php?action=admin&app_id=0>Batches</a>\n ·\n <a href=manage_project.php>Users</a>\n "; $apps = BoincApp::enum("deprecated=0"); foreach ($apps as $app) { echo "<li>{$app->user_friendly_name}<br>\n <a href=submit.php?action=admin&app_id={$app->id}>Batches</a>\n ·\n <a href=manage_app.php?app_id={$app->id}&action=app_version_form>Versions</a>\n "; } } else { foreach ($usas as $usa) { $app = BoincApp::lookup_id($usa->app_id); echo "<li>{$app->user_friendly_name}<br>\n <a href=submit.php?action=admin&app_id={$app->id}>Batches</a>\n "; if ($usa->manage) { echo "·\n <a href=manage_app.php?app_id={$app->id}&action=app_version_form>Versions</a>\n "; } } } echo "</ul>\n"; } $batches = BoincBatch::enum("user_id = {$user->id} order by id desc"); show_batches($batches, PAGE_SIZE, $user, null); page_tail(); }
function show_form() { echo "\n <h2>Edit applications</h2>\n "; start_table(); table_header("ID", "Name and description<br><p class=\"text-muted\">Click for details</p>", "Created", "weight<br><a href=https://boinc.berkeley.edu/trac/wiki/BackendPrograms#feeder><p class=\"text-muted\">details</p></a>", "shmem items", "HR type<br><a href=https://boinc.berkeley.edu/trac/wiki/HomogeneousRedundancy><p class=\"text-muted\">details</p></a>", "homogeneous app version?<br><a href=https://boinc.berkeley.edu/trac/wiki/HomogeneousAppVersion><p class=\"text-muted\">details</p></a>", "deprecated?", "Non-CPU-intensive?", "Beta?", "Exact fraction done?", ""); $total_weight = BoincApp::sum("weight", "where deprecated=0"); $swi = parse_config(get_config(), "<shmem_work_items>"); if (!$swi) { $swi = 100; } $apps = BoincApp::enum(""); $i = 0; foreach ($apps as $app) { // grey-out deprecated versions $f1 = $f2 = ''; if ($app->deprecated == 1) { $f1 = "<font color='GREY'>"; $f2 = "</font>"; } echo "<tr class=row{$i}><form action=manage_apps.php method=POST>"; $i = 1 - $i; echo "<input type=hidden name=id value={$app->id}>"; echo " <TD align='center'>{$f1} {$app->id} {$f2}</TD>\n"; echo " <TD align='left'>{$f1}<a href=app_details.php?appid={$app->id}>{$app->name}</a><br> {$app->user_friendly_name} {$f2}</TD>\n"; echo " <TD align='center'>{$f1} " . date_str($app->create_time) . "{$f2}</TD>\n"; $v = $app->weight; echo " <TD align='center'>\n <input type='text' size='4' name='weight' value='{$v}'></TD>\n"; if ($app->deprecated || $total_weight == 0) { echo '<td></td>'; } else { echo '<td align="right">' . round($app->weight / $total_weight * $swi) . '</td>'; } $v = $app->homogeneous_redundancy; echo " <TD align='center'>\n <input name='homogeneous_redundancy' value='{$v}'></TD>\n "; $v = ''; if ($app->homogeneous_app_version) { $v = ' CHECKED '; } echo " <TD align='center'>\n <input name='homogeneous_app_version' type='checkbox' {$v}></TD>\n "; $v = ''; if ($app->deprecated) { $v = ' CHECKED '; } echo " <TD align='center'>\n <input name='deprecated' type='checkbox' {$v}></TD>\n "; $v = ''; if ($app->non_cpu_intensive) { $v = ' CHECKED '; } echo " <TD align='center'>\n <input name='non_cpu_intensive' type='checkbox' {$v}></TD>\n "; $v = ''; if ($app->beta) { $v = ' CHECKED '; } echo " <TD align='center'>\n <input name='beta' type='checkbox' {$v}></TD>\n "; $v = ''; if ($app->fraction_done_exact) { $v = ' CHECKED '; } echo " <TD align='center'>\n <input name='fraction_done_exact' type='checkbox' {$v}></TD>\n "; echo "<td><input class=\"btn btn-default\" type=submit name=submit value=Update>"; echo "</tr></form>"; } end_table(); // Entry form to create a new application // echo "<P>\n <h2>Add an application</h2>\n To add an application enter the short name and description\n ('user friendly name') below. You can then edit the\n application when it appears in the table above.\n <p>\n <form action=manage_apps.php method=POST>\n "; start_table("align='center' "); table_header("Name", "Description", " "); echo "<TR>\n <TD> <input type='text' size='12' name='add_name' value=''></TD>\n <TD> <input type='text' size='35' name='add_user_friendly_name' value=''></TD>\n <TD align='center' >\n <input type='submit' name='add_app' value='Add Application'></TD>\n </TR>\n"; end_table(); echo "</form><p>\n"; }
$color = "#ff0000"; } else { $color = "#ff9900"; } echo "<li><span style=\"color: " . $color . "\">\n There are " . $uotd_candidates . " remaining candidates for User of the Day.\n </span></li>\n "; } echo "</ul>\n"; if (function_exists('admin_index_extra')) { admin_index_extra(); } echo "\n <p>\n <table border=\"0\"><tr valign=\"top\">\n <td><b>Browse database:</b>\n <ul> \n <li><a href=\"db_form.php?table=result&detail=low\">Results</a></li>\n <li><a href=\"db_form.php?table=workunit\">Workunits</a></li>\n <li><a href=\"db_form.php?table=host&detail=low\">Hosts</a></li>\n <li><a href=\"db_form.php?table=user\">Users</a> (<a href=\"list_new_users.php\">recently registered</a>)</li>\n <li><a href=\"db_form.php?table=team\">Teams</a></li>\n <li><a href=\"db_action.php?table=app\">Applications</a></li>\n <li><a href=\"db_form.php?table=app_version\">Application versions</a></li>\n <li><a href=\"db_action.php?table=platform\">Platforms</a></li>\n <li><a href=dbinfo.php>DB row counts and disk usage</a>\n <li><a href=\"show_log.php?f=mysql*.log&l=-20\">Tail MySQL logs</a>\n </ul>\n \n\n </td> \n <td><b>Computing</b>\n <ul>\n <li><a href=\"manage_apps.php\">Manage applications</a></li>\n <li><a href=\"manage_app_versions.php\">Manage application versions</a></li>\n <li> Manage jobs\n <ul>\n <li><a href=\"cancel_wu_form.php\">Cancel jobs by ID</a>\n <li><a href=\"cancel_workunits.php\">Cancel jobs by SQL clause</a>\n <li><a href=transition_all.php>Transition jobs</a>\n <p class=\"text-muted\">(this can 'unstick' old jobs)</p>\n <li><a href=\"revalidate.php\">Re-validate jobs</a>\n <li><a href=assign.php>Assigned jobs</a>\n </ul>\n <li><a href=\"job_times.php\">FLOP count statistics</a>\n <li><a href=\"{$stripchart_cgi_url}/stripchart.cgi\">Stripcharts</a>\n <li><a href=\"show_log.php\">Show/Grep logs</a>\n <li>\n <form method=\"get\" action=\"clear_host.php\">\n <input class=\"btn btn-default\" type=\"submit\" value=\"Clear RPC seqno\">\n host ID: \n <input type=\"text\" size=\"5\" name=\"hostid\">\n </form>\n </ul>\n \n </td> \n <td><b>User management</b>\n <ul>\n <li><a href=" . URL_BASE . "/forum_index.php>Post news item</a></li>\n <li><a href=\"profile_screen_form.php\">Screen user profiles </a></li>\n <li><a href=\"badge_admin.php\">Badges</a></li>\n <li><a href=\"manage_special_users.php\">User privileges</a></li>\n <li><a href=" . URL_BASE . "/manage_project.php>User job submission privileges</a></li>\n <li><a href=\"mass_email.php\">Send mass email to a selected set of users</a></li>\n <li><form action=\"manage_user.php\">\n <input class=\"btn btn-default\" type=\"submit\" value=\"Manage user\">\n ID: <input name=\"userid\">\n </form>\n </li>\n </ul>\n </td>\n </tr>\n </table>\n"; // Result Summaries: $show_deprecated = get_str("show_deprecated", true); $show_only = array("all"); // Add all appids you want to display, or "all" $apps = BoincApp::enum(""); foreach ($apps as $app) { if (in_array($app->id, $show_only) || in_array("all", $show_only) && (!$app->deprecated || $show_deprecated)) { echo "\n <b>Results for <tt>{$app->name}</tt>:</b>\n <ul>\n"; for ($i = 0; $i < 2; $i++) { if ($i) { $secs = 7 * 86400; $period = " 7 days"; } else { $secs = 86400; $period = "24 hours"; } echo "\n <li> Past {$period}:\n <a href=\"result_summary.php?appid={$app->id}&nsecs={$secs}\">\n summary\n </a> |\n <a href=\"pass_percentage_by_platform.php?appid={$app->id}&nsecs={$secs}\">\n summary per app version\n </a> | \n <a href=\"failure_result_summary_by_host.php?appid={$app->id}&nsecs={$secs}\">\n failures broken down by (app version, host)\n </a> |\n <a href=\"failure_result_summary_by_platform.php?appid={$app->id}&nsecs={$secs}\">\n failures broken down by (app version, error)\n </a>\n"; } echo " </ul> "; }
// along with BOINC. If not, see <http://www.gnu.org/licenses/>. // top-level management page; // shows links to the various functions available to the user. // If the only option is managing a particular app, // redirect to that page require_once "../inc/submit_db.inc"; require_once "../inc/util.inc"; $user = get_logged_in_user(); $bus = BoincUserSubmit::lookup_userid($user->id); if (!$bus) { die("no access"); } if ($bus->manage_all) { page_head("Management functions"); echo "\n <a href=manage_project.php>Project-wide management</a>\n "; $apps = BoincApp::enum(null); echo "\n <p>Application-specific management:\n <ul>\n "; foreach ($apps as $app) { echo "\n <li><a href=manage_app.php?app_id={$app->id}>{$app->name}</a>\n "; } echo "</ul>\n"; page_tail(); exit; } $apps = BoincUserSubmit::enum("user_id={$user->id} and manage<>1"); switch (count($apps)) { case 0: error_page("Nothing to manage"); case 1: $app = $apps[0]; Header("Location: manage_app.php?app_id={$app->id}");
function show_app_select() { admin_page_head("Show FLOPS distribution"); echo "Select an application:\n <form action=job_times.php>\n "; $apps = BoincApp::enum("deprecated=0"); foreach ($apps as $app) { echo "<br><input type=radio name=appid value={$app->id}>\n {$app->user_friendly_name}\n "; } echo "<br><br><input type=submit value=OK>"; admin_page_tail(); }
function handle_edit_action() { $user_id = get_int('user_id'); $us = BoincUserSubmit::lookup_userid($user_id); if (!$us) { error_page("user not found"); } BoincUserSubmitApp::delete_user($user_id); $submit_all = get_str('submit_all'); if ($submit_all) { $us->update("submit_all=1"); } else { $us->update("submit_all=0"); $apps = BoincApp::enum("deprecated=0"); foreach ($apps as $app) { $x = "app_{$app->id}"; if (get_str($x, true)) { BoincUserSubmitApp::insert("(user_id, app_id) values ({$user_id}, {$app->id})"); } } } $quota = (double) get_str('quota'); if ($quota != $us->quota) { $us->update("quota={$quota}"); } $mj = (int) get_str('max_jobs_in_progress'); if ($mj != $us->max_jobs_in_progress) { $us->update("max_jobs_in_progress={$mj}"); } header('Location: manage_project.php'); }