Migrate project owners to the project member table

... to keep project membership tidy and centralized
This puts organizer fitlers out of commission for now
This commit is contained in:
2018-02-26 16:24:50 +01:00
parent 54467ab9b9
commit e60195d431
12 changed files with 236 additions and 158 deletions

View File

@@ -48,13 +48,24 @@ $project = new \pvv\side\Project(
if($new == 0){
$project = $projectManager->getByID($projectID);
}
$members = $projectManager->getProjectMembers($projectID);
$owner = [
'name' => '',
'uname' => '',
'mail' => '',
];
foreach($members as $i => $data){
if($data['owner']){
$owner = $data;
}
}
?>
<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>
@@ -82,13 +93,13 @@ if($new == 0){
<div class="gridr noborder">
<p class="subtitle">Prosjektleder (Brukernavn)</p>
<?= '<input type="text" name="organiser" value="' . $project->getOwnerUName(). '" class="boxinput">' ?><br>
<?= '<input type="text" name="organiser" value="' . $owner['uname'] . '" class="boxinput">' ?><br>
<p class="subtitle">Prosjektleder (Navn)</p>
<?= '<input type="text" name="organisername" value="' . $project->getOwner(). '" class="boxinput">' ?>
<?= '<input type="text" name="organisername" value="' . $owner['name'] . '" class="boxinput">' ?>
<p class="subtitle">Prosjektleder E-post</p>
<?= '<input type="text" name="organiseremail" value="' . $project->getOwnerEmail(). '" class="boxinput">' ?><br>
<?= '<input type="text" name="organiseremail" value="' . $owner['mail'] . '" class="boxinput">' ?><br>
<p class="subtitle">Aktiv</p>
<?= '<input type="checkbox" '. ($project->getActive() ? 'checked' : '') . ' name="active"/>' ?>
@@ -96,6 +107,31 @@ if($new == 0){
<?= '<input type="hidden" name="id" value="' . $project->getID() . '" />' ?>
<?php if(!$new){ ?>
<div style="grid-column: span 2;">
<hr class="ruler">
</div>
<h2 style="grid-column: span 2">Prosjektmedlemmer</h2>
<table class="userlist" style="grid-column: span 2;">
<tr><th>Brukernavn</th><th>Navn</th><th>Rolle</th></tr>
<?php foreach($members as $i => $data) { ?>
<tr>
<td><?= $data['uname']; ?></td>
<td><?= $data['name']; ?></td>
<td><?= $data['role']; ?></td>
</tr>
<?php } ?>
<tr class="newuserrow">
<td class="newuserelement"><input type="text" name="newuser_uname"></td>
<td class="newuserelement"><input type="text" name="newuser_name"></td>
<td class="newuserelement"><input type="text" name="newuser_role"></td>
</tr>
</table>
<?php } ?>
<div class="allgrids" style="margin-top: 2em;">
<hr class="ruler">

View File

@@ -33,16 +33,18 @@ 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, $filterOrganiser){
return (preg_match('/.*'.$filterTitle.'.*/i', $project->getName()) and preg_match('/.*'.$filterOrganiser.'.*/i', $project->getOwner()));
function($project) use ($filterTitle){
return (preg_match('/.*'.$filterTitle.'.*/i', $project->getName()));
}
));
?>
@@ -82,13 +84,14 @@ $projects = array_values(array_filter(
$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: ' . $project->getOwner(); ?></p>
<p class="subnote"><?= 'Organisert av: ' . $owner['name']; ?></p>
<p><?= implode($project->getDescription(), "<br>"); ?></p>
</div>
@@ -124,7 +127,7 @@ $projects = array_values(array_filter(
<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="' . $filterOrganiser . '">' ?><br>
<?= '<input type="text" name="organiser" class="boxinput" value="">' ?><br>
<div style="margin-top: 2em;">
<input type="submit" class="btn" value="Filtrer"></input>

View File

@@ -30,36 +30,49 @@ if(isset($_POST['id'])){
$title = $_POST['title'];
$desc = $_POST['desc'];
$owner = $_POST['organisername'];
$name = $_POST['organisername'];
$uname = $_POST['organiser'];
$email = $_POST['organiseremail'];
$mail = $_POST['organiseremail'];
$active = (isset($_POST['active']) ? $_POST['active'] : 0);
$statement;
if($id == 0){
$query = 'INSERT INTO projects (name, owner, owneruname, owneremail, description, active) VALUES (:title, :owner, :uname, :email, :desc, :active)';
$query = 'INSERT INTO projects (name, description, active) VALUES (:title, :desc, :active)';
$statement = $pdo->prepare($query);
$statement->bindParam(':title', $title, PDO::PARAM_STR);
$statement->bindParam(':desc', $desc, PDO::PARAM_STR);
$statement->bindParam(':owner', $owner, PDO::PARAM_STR);
$statement->bindParam(':uname', $uname, PDO::PARAM_STR);
$statement->bindParam(':email', $email, PDO::PARAM_STR);
$statement->bindParam(':active', $active, PDO::PARAM_INT);
$statement->execute();
$ownerQuery = 'INSERT INTO projectmembers (projectid, name, uname, mail, role, lead, owner) VALUES (last_insert_rowid(), :owner, :owneruname, :owneremail, \'Prosjektleder\', 1, 1)';
$statement = $pdo->prepare($ownerQuery);
$statement->bindParam(':owner', $name, PDO::PARAM_STR);
$statement->bindParam(':owneruname', $uname, PDO::PARAM_STR);
$statement->bindParam(':owneremail', $mail, PDO::PARAM_STR);
$statement->execute();
}else{
$query = 'UPDATE projects SET name=:title, owner=:owner, owneruname=:uname, owneremail=:email, description=:desc, active=:active WHERE id=:id';
$query = 'UPDATE projects SET name=:title, description=:desc, active=:active WHERE id=:id';
$statement = $pdo->prepare($query);
$statement->bindParam(':title', $title, PDO::PARAM_STR);
$statement->bindParam(':desc', $desc, PDO::PARAM_STR);
$statement->bindParam(':owner', $owner, PDO::PARAM_STR);
$statement->bindParam(':uname', $uname, PDO::PARAM_STR);
$statement->bindParam(':email', $email, PDO::PARAM_STR);
$statement->bindParam(':active', $active, PDO::PARAM_INT);
$statement->bindParam(':id', $id, PDO::PARAM_INT);
}
$statement->execute();
$statement->execute();
$query = 'UPDATE projectmembers SET name=:name, uname=:uname, mail=:mail';
$statement = $pdo->prepare($query);
$statement->bindParam(':name', $name, PDO::PARAM_STR);
$statement->bindParam(':uname', $uname, PDO::PARAM_STR);
$statement->bindParam(':mail', $mail, PDO::PARAM_STR);
$statement->execute();
}
header('Location: .');
?>