This repository has been archived on 2024-07-04. You can view files and clone it, but cannot push or open issues or pull requests.
Markus e60195d431 Migrate project owners to the project member table
... to keep project membership tidy and centralized
This puts organizer fitlers out of commission for now
2018-02-26 16:24:50 +01:00

140 lines
3.7 KiB
PHP

<?php
date_default_timezone_set('Europe/Oslo');
setlocale(LC_ALL, 'nb_NO');
require __DIR__ . '/../../../inc/navbar.php';
require __DIR__ . '/../../../src/_autoload.php';
require __DIR__ . '/../../../sql_config.php';
$pdo = new \PDO($dbDsn, $dbUser, $dbPass);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$userManager = new \pvv\admin\UserManager($pdo);
require_once(__DIR__ . '/../../../vendor/simplesamlphp/simplesamlphp/lib/_autoload.php');
$as = new SimpleSAML_Auth_Simple('default-sp');
$as->requireAuth();
$attrs = $as->getAttributes();
$uname = $attrs['uid'][0];
if(!$userManager->hasGroup($uname, 'prosjekt')){
echo 'Her har du ikke lov\'t\'å\'værra!!!';
exit();
}
$projectManager = new \pvv\side\ProjectManager($pdo);
$projects = $projectManager->getAll();
$page = 1;
if(isset($_GET['page'])){
$page = $_GET['page'];
}
$filterTitle = '';
if(isset($_POST['title'])){
$filterTitle = $_POST['title'];
}
/* Temporarily out of service :<
$filterOrganiser = '';
if(isset($_POST['organiser'])){
$filterOrganiser = $_POST['organiser'];
}
*/
// filter
$projects = array_values(array_filter(
$projects,
function($project) use ($filterTitle){
return (preg_match('/.*'.$filterTitle.'.*/i', $project->getName()));
}
));
?>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" href="../../css/normalize.css">
<link rel="stylesheet" href="../../css/style.css">
<link rel="stylesheet" href="../../css/nav.css">
<link rel="stylesheet" href="../../css/events.css">
<link rel="stylesheet" href="../../css/admin.css">
</head>
<body>
<nav>
<?php echo navbar(2, 'admin'); ?>
<?php echo loginbar(null, $pdo); ?>
</nav>
<main>
<h2>Prosjektadministrasjon</h2>
<hr class="ruler">
<div class="gridsplit">
<div class="gridl">
<h2 class="no-chin">Prosjekter</h2>
<ul class="event-list">
<?php
$counter = 0;
$pageLimit = 4;
for($i = ($pageLimit * ($page - 1)); $i < count($projects); $i++){
if($counter == $pageLimit){
break;
}
$project = $projects[$i];
$projectID = $project->getID();
$owner = $projectManager->getProjectOwner($projectID);
?>
<li>
<div class="event admin">
<div class="event-info">
<h3 class="no-chin"><?= $project->getName() . " (ID: " . $projectID . ")"; ?></h3>
<p class="subnote"><?= 'Organisert av: ' . $owner['name']; ?></p>
<p><?= implode($project->getDescription(), "<br>"); ?></p>
</div>
<div class="event-actions">
<?= '<a href="edit.php?id=' . $projectID . '">🖊</a>'; ?>
<?= '<a href="delete.php?id=' . $projectID . '" onclick="return confirm(\'Knallsikker? (ID: ' . $projectID . ')\');">🗑</a>'; ?>
</div>
</div>
</li>
<?php
$counter++;
}
?>
</ul>
<?php
if($page != 1){
echo '<a class="btn float-left" href="?page=' . ($page - 1) . '">Forrige side</a>';
}
if(($counter == $pageLimit) and (($pageLimit * $page) < count($projects))){
echo '<a class="btn float-right" href="?page=' . ($page + 1) . '">Neste side</a>';
}
?>
</div>
<div class="gridr">
<h2>Verktøy</h2>
<a class="btn adminbtn" href="edit.php?new=1">Legg inn nytt prosjekt</a>
<h2>Filter</h2>
<form action="." method="post">
<p class="no-chin">Prosjektnavn</p>
<?= '<input type="text" name="title" class="boxinput" value="' . $filterTitle . '">' ?><br>
<p class="no-chin">Leders brukernavn</p>
<?= '<input type="text" name="organiser" class="boxinput" value="">' ?><br>
<div style="margin-top: 2em;">
<input type="submit" class="btn" value="Filtrer"></input>
</div>
</form>
</div>
</div>
</main>
</body>