Groundwork for project members

Tools for adding/removing members are coming soon (tm)
This commit is contained in:
Markus 2018-02-24 21:09:15 +01:00
parent d984dfb89c
commit 30c8aa2032
7 changed files with 58 additions and 20 deletions

9
dist/pvv.sql vendored
View File

@ -11,13 +11,20 @@ CREATE TABLE "events" (
CREATE TABLE "projects" ( CREATE TABLE "projects" (
"id" INTEGER PRIMARY KEY AUTOINCREMENT, "id" INTEGER PRIMARY KEY AUTOINCREMENT,
"name" TEXT, "name" TEXT,
"description" TEXT,
"owner" TEXT, "owner" TEXT,
"owneruname" TEXT, "owneruname" TEXT,
"owneremail" TEXT, "owneremail" TEXT,
"description" TEXT,
"active" BOOLEAN "active" BOOLEAN
); );
CREATE TABLE "projectmembers" (
"projectid" INTEGER,
"membername" TEXT,
"memberuname" TEXT,
"role" TEXT
)
CREATE TABLE "users" ( CREATE TABLE "users" (
"uname" TEXT, "uname" TEXT,
"groups" INT DEFAULT 0 "groups" INT DEFAULT 0

9
dist/pvv_mysql.sql vendored
View File

@ -11,13 +11,20 @@ CREATE TABLE events (
CREATE TABLE projects ( CREATE TABLE projects (
`id` INTEGER PRIMARY KEY AUTO_INCREMENT, `id` INTEGER PRIMARY KEY AUTO_INCREMENT,
`name` TEXT, `name` TEXT,
`description` TEXT,
`owner` TEXT, `owner` TEXT,
`owneruname` TEXT, `owneruname` TEXT,
`owneremail` TEXT, `owneremail` TEXT,
`description` TEXT,
`active` BOOLEAN `active` BOOLEAN
); );
CREATE TABLE projectmembers (
`projectid` INTEGER,
`name` TEXT,
`uname` TEXT,
`role` TEXT
)
CREATE TABLE users ( CREATE TABLE users (
`uname` TEXT, `uname` TEXT,
`groups` INT DEFAULT 0 `groups` INT DEFAULT 0

View File

@ -74,4 +74,18 @@ class ProjectManager{
return $projects; return $projects;
} }
public function getProjectMembers($id){
$query = 'SELECT * FROM projectmembers WHERE projectid=:id';
$statement = $this->pdo->prepare($query);
$statement->bindParam(':id', $id, PDO::PARAM_STR);
$statement->execute();
$members = [];
foreach($statement->fetchAll() as $dbUsr){
$members[] = ['name' => $dbUsr['name'], 'uname' => $dbUsr['uname'], 'role' => $dbUsr['role']];
}
return $members;
}
} }

View File

@ -65,35 +65,36 @@
border-left: 0; border-left: 0;
} }
.projectowner { .projectmember {
margin-bottom: 1em;
padding: 0 .5em 0 .5em; padding: 0 .5em 0 .5em;
overflow: hidden; overflow: hidden;
border-left: 4px solid #35a; border-left: 4px solid #35a;
} }
.projectowner p { .projectmember p {
margin: 0; margin: 0;
} }
.projectowner p { .projectmember p {
font-size: .8em; font-size: .8em;
} }
.projectowner p:first-child { .projectmember p:first-child {
font-size: 1em; font-size: 1em;
margin-bottom: .2em; margin-bottom: .2em;
} }
.owneruname, .owneremail { .memberuname, .memberemail {
display: inline-block; display: inline-block;
color: #888; color: #888;
} }
.owneruname { .memberuname {
float: left; float: left;
} }
.owneremail { .memberemail {
float: right; float: right;
} }

View File

@ -75,6 +75,7 @@ if($new == 0){
<textarea name="desc" style="width:100%" rows="8" class="boxinput"><?= implode($project->getDescription(), "\n"); ?></textarea> <textarea name="desc" style="width:100%" rows="8" class="boxinput"><?= implode($project->getDescription(), "\n"); ?></textarea>
<?= '<input type="hidden" name="id" value="' . $project->getID() . '" />' ?> <?= '<input type="hidden" name="id" value="' . $project->getID() . '" />' ?>
<input type="hidden" name="active" value="1"/>
<div style="margin-top: 2em;"> <div style="margin-top: 2em;">
<hr class="ruler"> <hr class="ruler">

View File

@ -11,6 +11,8 @@ if(isset($_GET['id'])){
$projectManager = new \pvv\side\ProjectManager($pdo); $projectManager = new \pvv\side\ProjectManager($pdo);
$project = $projectManager->getByID($projectID); $project = $projectManager->getByID($projectID);
$members = $projectManager->getProjectMembers($projectID);
?> ?>
<head> <head>
@ -36,15 +38,24 @@ $project = $projectManager->getByID($projectID);
<div class="gridl"> <div class="gridl">
<div class="projectlead"> <div class="projectlead">
<h2>Prosjektledelse</h2> <h2>Prosjektledelse</h2>
<div class="projectowner"> <div class="projectmember">
<p>Prosjekteier</p> <p>Prosjekteier</p>
<p class="ownername"><?= $project->getOwner() ?></p> <p class="membername"><?= $project->getOwner() ?></p>
<p class="owneruname"><?= $project->getOwnerUName(); ?></p> <p class="memberuname"><?= $project->getOwnerUName(); ?></p>
<p class="owneremail"><?= $project->getOwnerEmail(); ?></p> <p class="memberemail"><?= $project->getOwnerEmail(); ?></p>
</div> </div>
</div> </div>
<h2>Medlemmer</h2> <div class="projectmembers">
<h2>Medlemmer</h2>
<?php foreach($members as $i => $data){ ?>
<div class="projectmember">
<p><?= $data['role'] ?></p>
<p class="membername"><?= $data['name'] ?></p>
<p class="memberuname"><?= $data['uname'] ?></p>
</div>
<?php } ?>
</div>
</div> </div>
</main> </main>
</body> </body>

View File

@ -16,11 +16,8 @@ $as = new SimpleSAML_Auth_Simple('default-sp');
$as->requireAuth(); $as->requireAuth();
$attrs = $as->getAttributes(); $attrs = $as->getAttributes();
$id = 0; $id = $_POST['id'];
if(isset($_POST['id'])){ $active = $_POST['active'];
$id = $_POST['id'];
$active = $_POST['active'];
}
$title = $_POST['title']; $title = $_POST['title'];
$desc = $_POST['desc']; $desc = $_POST['desc'];
@ -30,7 +27,7 @@ $owneremail = $attrs['mail'][0];
$statement; $statement;
if($id == 0){ if($id == 0){
$query = 'INSERT INTO projects (name, owner, owneruname, owneremail, description, active) VALUES (:title, :owner, :owneruname, :desc, 1)'; $query = 'INSERT INTO projects (name, owner, owneruname, owneremail, description, active) VALUES (:title, :owner, :owneruname, :owneremail, :desc, 1)';
$statement = $pdo->prepare($query); $statement = $pdo->prepare($query);
$statement->bindParam(':title', $title, PDO::PARAM_STR); $statement->bindParam(':title', $title, PDO::PARAM_STR);