function av_desc($gavid) { if ($gavid >= 1000000) { $appid = (int) ($gavid / 1000000); $app = BoincApp::lookup_id($appid); if (!$app) { return tra("Anonymous platform, missing app"); } $rsc_type = $gavid % 1000000; $r = rsc_name($rsc_type); return "{$app->user_friendly_name} (" . tra("anonymous platform") . ", {$r})"; } else { $av = BoincAppVersion::lookup_id($gavid); if (!$av) { return tra("Missing app version"); } $app = BoincApp::lookup_id($av->appid); if (!$app) { return tra("Missing app"); } $platform = BoincPlatform::lookup_id($av->platformid); if (!$platform) { return tra("Missing platform"); } $pc = strlen($av->plan_class) ? "({$av->plan_class})" : ""; $v = number_format($av->version_num / 100, 2); return "{$app->user_friendly_name} {$v} {$platform->name} {$pc}"; } }
function app_version_form($app) { page_head("Manage app versions"); echo "\n <form action=manage_app.php>\n <input type=hidden name=action value=app_version_action>\n <input type=hidden name=app_id value={$app->id}>\n "; $avs = BoincAppVersion::enum("appid={$app->id}"); start_table(); table_header("platform", "plan class", "version#", "deprecated"); foreach ($avs as $av) { $platform = BoincPlatform::lookup_id($av->platformid); $c = $av->deprecated ? "checked" : ""; echo "\n <tr>\n <td>{$platform->name}</td>\n <td>{$av->plan_class}</td>\n <td>{$av->version_num}</td>\n <td><input type=checkbox name=dep_{$av->id} {$c}></td>\n </tr>\n "; } echo "\n <tr>\n <td><br></td>\n <td><br></td>\n <td><br></td>\n <td><input class=\"btn btn-default\" type=submit value=Update></td>\n </tr>\n "; end_table(); echo "<form>\n"; page_tail(); }
// You should have received a copy of the GNU Lesser General Public License // along with BOINC. If not, see <http://www.gnu.org/licenses/>. // show details of an app require_once '../inc/util_ops.inc'; $appid = get_int("appid"); $app = BoincApp::lookup_id($appid); if (!$app) { admin_error_page("no such app"); } admin_page_head("Details for {$app->name} ({$app->user_friendly_name})"); start_table(); row2("Min average efficiency", $app->min_avg_pfc); echo "\n <p>\n In the list below, 'Credit scale factor' should\n be roughly 1 for CPU versions, 0.1 for GPU versions.\n If values are far outside this range,\n you may have bad FLOPs estimates.\n In this case, you may want to\n <ol>\n <li> <a href=job_times.php?appid={$appid}>Get a better FLOPs estimate</a>\n <li> <a href=app_reset.php?appid={$appid}>reset credit statistics for this application</a>.\n </ol>\n"; end_table(); echo "<h2>App versions</h2>\n"; $avs = BoincAppVersion::enum("appid={$appid}"); $avs = current_versions($avs); foreach ($avs as $av) { $platform = BoincPlatform::lookup_id($av->platformid); start_table(); row2("ID", $av->id); row2("Platform", $platform->name); row2("Plan class", $av->plan_class); row2("Version num", $av->version_num); row2("Jobs validated", $av->pfc_n); row2("Average efficiency", $av->pfc_avg ? 1 / $av->pfc_avg : "---"); row2("Credit scale factor", $av->pfc_scale); row2("Average credit", $av->expavg_credit); end_table(); } admin_page_tail();
function version_select($appid) { $x = "<select name=app_version_id>\n <option value=0>All\n "; $avs = BoincAppVersion::enum("appid={$appid}"); $avs = current_versions($avs); foreach ($avs as $av) { $platform = BoincPlatform::lookup_id($av->platformid); $n = $platform->name; if (strlen($av->plan_class)) { $n .= " ({$av->plan_class})"; } $x .= "<option value={$av->id}> {$n}\n"; } $x .= "</select>\n"; return $x; }
function show_appl($app_id) { $app = BoincApp::lookup_id($app_id); page_head("App {$app->user_friendly_name} credit"); $avs = BoincAppVersion::enum("appid={$app_id} and deprecated=0"); start_table(); table_header("platform/class/version", "PFC nsamples", "PFC avg", "PFC scale"); $avs = current_versions($avs); foreach ($avs as $av) { $plat = BoincPlatform::lookup_id($av->platformid); table_row("<a href=credit.php?av_id={$av->id}>{$plat->user_friendly_name} {$av->plan_class} {$av->version_num}</a>", $av->pfc_n, $av->pfc_avg, $av->pfc_scale); } end_table(); page_tail(); }