Пример #1
0
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();
}
Пример #2
0
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);
        }
    }
}
Пример #3
0
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();
}
Пример #4
0
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();
}
Пример #5
0
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;
}
Пример #6
0
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;
}
Пример #7
0
            $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";
Пример #8
0
// 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";
Пример #9
0
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();
}
Пример #10
0
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;
}
Пример #11
0
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                &middot;\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                    &middot;\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 "&middot;\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();
}
Пример #12
0
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", "&nbsp;");
    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";
}
Пример #13
0
        $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&amp;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&amp;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&amp;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 = "&nbsp;&nbsp;&nbsp;7 days";
            } else {
                $secs = 86400;
                $period = "24 hours";
            }
            echo "\n                <li> Past {$period}:\n                <a href=\"result_summary.php?appid={$app->id}&amp;nsecs={$secs}\">\n                    summary\n                </a> |\n                <a href=\"pass_percentage_by_platform.php?appid={$app->id}&amp;nsecs={$secs}\">\n                    summary per app version\n                </a> | \n                <a href=\"failure_result_summary_by_host.php?appid={$app->id}&amp;nsecs={$secs}\">\n                    failures broken down by (app version, host)\n                </a> |\n                <a href=\"failure_result_summary_by_platform.php?appid={$app->id}&amp;nsecs={$secs}\">\n                    failures broken down by (app version, error)\n                </a>\n";
        }
        echo " </ul> ";
    }
Пример #14
0
// 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}");
Пример #15
0
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();
}
Пример #16
0
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');
}