if ($db) {
    date_default_timezone_set('Etc/UTC');
    if ($action == 'add-run' && array_get($_POST, 'metric') && array_get($_POST, 'platform') && array_get($_POST, 'config-type') && array_get($_POST, 'date') && array_get($_POST, 'mean')) {
        add_run(intval($_POST['metric']), intval($_POST['platform']), $_POST['config-type'], $_POST['date'], floatval($_POST['mean']));
    } else {
        if ($action == 'delete-run' && array_get($_POST, 'run') && array_get($_POST, 'build')) {
            delete_run(intval($_POST['run']), intval($_POST['build']));
        } else {
            if ($action) {
                notice("Invalid arguments");
            }
        }
    }
    $metric_id = intval(array_get($_GET, 'metric'));
    $test_name_resolver = new TestNameResolver($db);
    $full_metric_name = $test_name_resolver->full_name_for_metric($metric_id);
    echo "<h2>{$full_metric_name}</h2>";
    $page = new AdministrativePage($db, 'platforms', 'platform', array('name' => array('label' => 'Platform Name'), 'Configurations' => array('subcolumns' => array('ID', 'Type'), 'custom' => function ($platform_row) {
        return generate_rows_for_configurations($platform_row['platform_id']);
    }), 'Baseline Test Runs' => array('subcolumns' => array('Run ID', 'Build ID', 'Time', 'Mean', 'Actions'), 'custom' => function ($platform_row) {
        return generate_rows_for_test_runs($platform_row['platform_id'], 'baseline');
    }), 'Target Test Runs' => array('subcolumns' => array('Run ID', 'Build ID', 'Time', 'Mean', 'Actions'), 'custom' => function ($platform_row) {
        return generate_rows_for_test_runs($platform_row['platform_id'], 'target');
    })));
    function generate_rows_for_configurations($platform_id)
    {
        global $test_name_resolver;
        global $metric_id;
        $rows = array();
        if ($configurations = $test_name_resolver->configurations_for_metric_and_platform($metric_id, $platform_id)) {
            foreach ($configurations as $config) {