<?php

$page = 'storagedetails_edit';
$title = "Storage details";
require '../header.php';
ensureMember();
$project = new Project(filter_var($_GET['id'], FILTER_SANITIZE_STRING));
$projectslogs = fRecordSet::build('ProjectsLog', array('project_id=' => $project->getId()), array('id' => 'asc'));
$states = fRecordSet::build('ProjectState', array(), array('id' => 'asc'));
$projectUser = new User($project->getUserId());
// has the project owner set the status to removed or extended?
if (isset($_POST['remove']) || isset($_POST['extend']) && $user->getId() == $project->getUserId()) {
    try {
        fRequest::validateCSRFToken($_POST['token']);
        if (isset($_POST['remove']) && $project->canTransitionStates($project->getState(), 'Removed')) {
            $project->setState('Removed');
        } else {
            if (isset($_POST['extend']) && $project->canTransitionStates($project->getState(), 'Extended')) {
                $project->setState('Extended');
            }
        }
        $project->store();
        $project->submitLog('Status changed to ' . $project->getState(), $user->getId());
        fURL::redirect("/storage/{$project->getId()}");
    } catch (fValidationException $e) {
        echo $e->printMessage();
    } catch (fSQLException $e) {
        echo '<div class="alert alert-danger">An unexpected error occurred, please try again later</div>';
    }
}
// has another member updated the status?