diff --git a/dist/pvv.sql b/dist/pvv.sql index f4c8076..684cbfd 100644 --- a/dist/pvv.sql +++ b/dist/pvv.sql @@ -1,5 +1,3 @@ - - CREATE TABLE "events" ( "id" INTEGER PRIMARY KEY AUTOINCREMENT, "name" TEXT, @@ -9,3 +7,12 @@ CREATE TABLE "events" ( "location" TEXT, "description" TEXT ); + +CREATE TABLE "projects" ( +"id" INTEGER PRIMARY KEY AUTOINCREMENT, +"name" TEXT, +"owner" TEXT, +"owneruname" TEXT, +"description" TEXT, +"active" BOOLEAN +); \ No newline at end of file diff --git a/pvv.sql b/pvv.sql new file mode 100644 index 0000000..684cbfd --- /dev/null +++ b/pvv.sql @@ -0,0 +1,18 @@ +CREATE TABLE "events" ( +"id" INTEGER PRIMARY KEY AUTOINCREMENT, +"name" TEXT, +"start" TEXT, +"stop" TEXT, +"organiser" TEXT, +"location" TEXT, +"description" TEXT +); + +CREATE TABLE "projects" ( +"id" INTEGER PRIMARY KEY AUTOINCREMENT, +"name" TEXT, +"owner" TEXT, +"owneruname" TEXT, +"description" TEXT, +"active" BOOLEAN +); \ No newline at end of file diff --git a/src/pvv/side/project.php b/src/pvv/side/project.php new file mode 100644 index 0000000..990499b --- /dev/null +++ b/src/pvv/side/project.php @@ -0,0 +1,35 @@ +id = $id; + $this->name = $name; + $this->descr = $descr; + $this->owner = $owner; + $this->owneruname = $owneruname; + $this->active = $active; + } + + public function getID(){ + return $this->id; + } + + public function getName(){ + return $this->name; + } + + public function getDescription(){ + return $this->descr; + } + + public function getOwner(){ + return $this->owner; + } + + public function getOwnerUName(){ + return $this->owneruname; + } +} \ No newline at end of file diff --git a/src/pvv/side/projectmanager.php b/src/pvv/side/projectmanager.php new file mode 100644 index 0000000..338c88d --- /dev/null +++ b/src/pvv/side/projectmanager.php @@ -0,0 +1,51 @@ +pdo = $pdo; + } + + public function getAll() { + $query = 'SELECT * FROM projects ORDER BY id ASC'; + $statement = $this->pdo->prepare($query); + $statement->execute(); + + $projects = []; + foreach($statement->fetchAll() as $dbProj){ + $project = new Project( + $dbProj['id'], + $dbProj['name'], + $dbProj['description'], + $dbProj['owner'], + $dbProj['owneruname'], + $dbProj['active'] + ); + $projects[] = $project; + } + + return $projects; + } + + public function getByID($id){ + $query = 'SELECT * FROM projects WHERE id=:id LIMIT 1'; + $statement = $this->pdo->prepare($query); + $statement->bindParam(':id', $id, PDO::PARAM_INT); + $statement->execute(); + + $dbProj = $statement->fetch(); + $project = new Project( + $dbProj['id'], + $dbProj['name'], + $dbProj['description'], + $dbProj['owner'], + $dbProj['active'] + ); + + return $project; + } +} \ No newline at end of file diff --git a/src/pvv/side/simpleevent.php b/src/pvv/side/simpleevent.php index 8e8dd76..b23edea 100644 --- a/src/pvv/side/simpleevent.php +++ b/src/pvv/side/simpleevent.php @@ -3,7 +3,7 @@ namespace pvv\side; class SimpleEvent extends Event { - private $name, $start, $end, $org, $loc; + private $id, $name, $descr, $start, $end, $org, $loc; public function __construct($id, $name,\DateTimeImmutable $start,\DateTimeImmutable $end,$org, $loc, $descr, $isDBEvent = false){ $this->id = $id; diff --git a/www/admin/aktiviteter/delete.php b/www/admin/aktiviteter/delete.php index decc81c..8be6c8f 100644 --- a/www/admin/aktiviteter/delete.php +++ b/www/admin/aktiviteter/delete.php @@ -12,4 +12,4 @@ $statement->execute(); header('Location: ' . $_SERVER['HTTP_REFERER']); ?> -Om du ikke ble automatisk omdirigert tilbake klikk her \ No newline at end of file +Om du ikke ble omdirigert tilbake klikk her \ No newline at end of file diff --git a/www/admin/aktiviteter/edit.php b/www/admin/aktiviteter/edit.php index 43fde74..fcdc3e2 100644 --- a/www/admin/aktiviteter/edit.php +++ b/www/admin/aktiviteter/edit.php @@ -68,15 +68,15 @@ if($new == 0){

Beskrivelse

+ +

Starttid (YYYY-MM-DD HH:MM:SS)

getStart()->format('Y-m-d H:00:00') . '">
' ?>

Sluttid (YYYY-MM-DD HH:MM:SS)

getStop()->format('Y-m-d H:00:00') . '">
' ?> -
-

Organisert av

getOrganiser(). '" class="boxinput">' ?>
diff --git a/www/admin/aktiviteter/index.php b/www/admin/aktiviteter/index.php index c92bc31..ed4c74b 100644 --- a/www/admin/aktiviteter/index.php +++ b/www/admin/aktiviteter/index.php @@ -24,6 +24,7 @@ if(isset($_GET['page'])){ @@ -56,7 +57,9 @@ if(isset($_GET['page'])){

getName() . " (ID: " . $eventID . ")"; ?>

-

getStart()->format("(Y-m-d H:i:s)") . " - " . $event->getStop()->format("(Y-m-d H:i:s)"); ?>

+

+ getStart()->format("(Y-m-d H:i:s)") . " - " . $event->getStop()->format("(Y-m-d H:i:s)"); ?> +

getDescription(), "

\n

"); ?>

diff --git a/www/admin/index.php b/www/admin/index.php index c50a42d..b992629 100644 --- a/www/admin/index.php +++ b/www/admin/index.php @@ -9,11 +9,12 @@
  • kalender
  • aktiviteter
  • +
  • prosjekter
  • kontakt
  • wiki
  • -
    Stor­-gutt­-leketøy
    +
    Stor-­gutt-­leketøy
    diff --git a/www/aktiviteter/index.php b/www/aktiviteter/index.php index 6597498..0ad5960 100644 --- a/www/aktiviteter/index.php +++ b/www/aktiviteter/index.php @@ -80,6 +80,7 @@ foreach($events as $event) {
  • kalender
  • aktiviteter
  • +
  • prosjekter
  • kontakt
  • wiki
  • diff --git a/www/anime/index.php b/www/anime/index.php index dd05fbb..83ec42f 100755 --- a/www/anime/index.php +++ b/www/anime/index.php @@ -50,6 +50,7 @@ $nextEvent = $activity->getNextEventFrom(new DateTimeImmutable);
  • kalender
  • aktiviteter
  • +
  • prosjekter
  • kontakt
  • wiki
  • diff --git a/www/brettspill/index.php b/www/brettspill/index.php index 69ec687..6827060 100755 --- a/www/brettspill/index.php +++ b/www/brettspill/index.php @@ -55,6 +55,7 @@ $nextEvent = $activity->getNextEventFrom(new DateTimeImmutable);
  • kalender
  • aktiviteter
  • +
  • prosjekter
  • kontakt
  • wiki
  • diff --git a/www/css/admin.css b/www/css/admin.css index 7269e54..6773c48 100644 --- a/www/css/admin.css +++ b/www/css/admin.css @@ -47,10 +47,6 @@ header.admin { text-decoration: none; } -.no-chin { - margin-bottom: 0; -} - .gridsplit { display: grid; grid-template-columns: 75% 25%; @@ -78,17 +74,6 @@ header.admin { grid-column: 1 / -1; } -.noborder { - border: none; -} - -.subnote { - margin-top: 0; - color: gray; - font-size: .7em; - font-style: italic; -} - .float-right { float: right; } diff --git a/www/css/style.css b/www/css/style.css index b5b6686..75407bf 100644 --- a/www/css/style.css +++ b/www/css/style.css @@ -119,12 +119,26 @@ a.btn:active { color: #048; padding: .2em .4em; border-radius: .2em; - white-space: nowrap; display: inline-block; margin-bottom: .25em; resize: none; } +.noborder { + border: none !important; +} + +.subnote { + margin-top: 0; + color: gray; + font-size: .7em; + font-style: italic; +} + +.no-chin { + margin-bottom: 0; +} + .icon.subscribe { color: white; background: #082; diff --git a/www/index.php b/www/index.php index 4793ee0..491a0f7 100644 --- a/www/index.php +++ b/www/index.php @@ -93,6 +93,7 @@ For å bli med i våre prosjekter og komitéer må du søke.
  • kalender
  • aktiviteter
  • +
  • prosjekter
  • kontakt
  • wiki
  • diff --git a/www/kalender/index.php b/www/kalender/index.php index e8f1e9f..de19806 100644 --- a/www/kalender/index.php +++ b/www/kalender/index.php @@ -103,6 +103,7 @@ $days_in_month = date('t', mktime(0, 0, 0, $month, 1, $year));
  • kalender
  • aktiviteter
  • +
  • prosjekter
  • kontakt
  • wiki
  • diff --git a/www/kontakt/index.php b/www/kontakt/index.php index 3ee010a..b48b432 100755 --- a/www/kontakt/index.php +++ b/www/kontakt/index.php @@ -41,6 +41,7 @@ Det er også mulig å ta i bruk analog kontakt ved å møte opp prosjekter-->
  • kalender
  • aktiviteter
  • +
  • prosjekter
  • kontakt
  • wiki
  • diff --git a/www/kurs/index.php b/www/kurs/index.php index 56e57b3..bf5df35 100644 --- a/www/kurs/index.php +++ b/www/kurs/index.php @@ -55,6 +55,7 @@ $agenda = new \pvv\side\Agenda([
  • kurs
  • kalender
  • aktiviteter
  • +
  • prosjekter
  • sosiale
  • kontakt
  • wiki
  • diff --git a/www/nerdepitsa/index.php b/www/nerdepitsa/index.php index c84df82..56d510f 100755 --- a/www/nerdepitsa/index.php +++ b/www/nerdepitsa/index.php @@ -51,6 +51,7 @@ $nextEvent = $activity->getNextEventFrom(new DateTimeImmutable);
  • hjem
  • aktiviteter
  • +
  • prosjekter
  • kontakt
  • wiki
  • diff --git a/www/om/index.html b/www/om/index.html index 8ee132b..9f101e1 100644 --- a/www/om/index.html +++ b/www/om/index.html @@ -60,6 +60,7 @@ p {hyphens: auto;}
  • kalender
  • aktiviteter
  • +
  • prosjekter
  • kontakt
  • wiki
  • diff --git a/www/prosjekt/index.php b/www/prosjekt/index.php index a91087e..c00bca7 100644 --- a/www/prosjekt/index.php +++ b/www/prosjekt/index.php @@ -1,4 +1,6 @@ setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); -$agenda = new \pvv\side\Agenda([ - new \pvv\side\social\NerdepitsaActivity, - new \pvv\side\social\AnimekveldActivity, - new \pvv\side\social\BrettspillActivity, - new \pvv\side\DBActivity($pdo), - ]); ?> +$projectManager = new \pvv\side\ProjectManager($pdo); +$projects = $projectManager->getAll(); +?> Prosjektverkstedet @@ -23,10 +22,6 @@ $agenda = new \pvv\side\Agenda([
    Prosjekt­verk­stedet
    - -
    @@ -42,26 +37,42 @@ include '../../inc/ticker.php';
    -

    Projekter

    -

    - Lyst til å gjøre noe kult? Her er de prosjektene som PVVere er ivrige i å gjøre. Mangler det noe, eller brenner du for noe annet? Sett opp et prosjekt da!
    + +

    PVV har for øyeblikket ingen aktive prosjekter. Tenker du at noe bør gjøres? Har du en kul ide for noe PVV kan samarbeide om? Sett opp et prosjekt!


    - Lag prosjekt -

    -
      -
    • Fikse Brzeczyszczykiewicz

      -

      - Skjermen på bokhyllen vår, Brzeczyszczykiewicz, sluttet å virke etter noen oppdateringer. Denne vil jeg gjerne fikse sammen med en gjeng. -

      -
    • + Lag prosjekt + +

      Lyst til å gjøre noe kult? Her er et utvalg av de prosjektene som PVVere har laget. Mangler det noe, eller brenner du for noe annet? Sett opp et prosjekt!

      +
      + Lag prosjekt -
    • Lage hjemmeside

      -

      - PVV trenger en fin hjemmeside! Hadde vært kult om noen ville være med meg å ordne denne. -

      -
    • +
        + + +
      • +

        getID() . "\">" . $project->getName() . ""; ?>

        +

        getOwner(); ?>

        + +

        getDescription(); ?>

        +
        +
      • + + +
      +
    @@ -89,7 +100,7 @@ include '../../inc/ticker.php';
  • Styret

    - Styret bestemmer hvilke kurs, hackehelger og innkjøp som skal fåretaes. Er det noen som kan få ordnet opp i noe er det Styret. Intressert? Vi velger styret på halvårsmøtene på starten av semestrene. Kom og bli med da vel! + Styret bestemmer hvilke kurs, hackehelger og innkjøp som skal foretas. Er det noen som kan få ordnet opp i noe er det Styret. Intressert? Vi velger styret på halvårsmøtene på starten av semestrene. Kom og bli med da vel!

  • @@ -100,9 +111,9 @@ include '../../inc/ticker.php'; + \ No newline at end of file diff --git a/www/prosjekt/ny.php b/www/prosjekt/ny.php new file mode 100644 index 0000000..46b5f97 --- /dev/null +++ b/www/prosjekt/ny.php @@ -0,0 +1,67 @@ +requireAuth(); +$attrs = $as->getAttributes(); + +$pdo = new \PDO($dbDsn, $dbUser, $dbPass); +$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); +$projectManager = new \pvv\side\ProjectManager($pdo); + +$project = new \pvv\side\Project( + 0, + 'Nytt Prosjekt', + '', + $attrs["cn"][0], + $attrs["uid"][0], + 1 +); +?> + + + + + + + + + +
    Prosjekter
    + +
    + +
    +

    Nytt prosjekt

    + +
    +

    Prosjektnavn

    +

    Gi prosjektet ditt et passende navn

    + getName() . '" class="boxinput">' ?>
    + +

    Beskrivelse

    +

    Hva går prosjektet ditt ut på?

    + + +
    +
    + + +
    +
    +
    + +
    \ No newline at end of file diff --git a/www/prosjekt/update.php b/www/prosjekt/update.php new file mode 100644 index 0000000..95ac2db --- /dev/null +++ b/www/prosjekt/update.php @@ -0,0 +1,57 @@ +setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); + +if(!isset($_POST['title']) or !isset($_POST['desc'])){ + header('Location: ' . $_SERVER['HTTP_REFERER']); + exit(); +} + +require_once(__DIR__ . '/../../vendor/simplesamlphp/simplesamlphp/lib/_autoload.php'); +$as = new SimpleSAML_Auth_Simple('default-sp'); +$as->requireAuth(); +$attrs = $as->getAttributes(); + +$id = 0; +if(isset($_POST['id'])){ + $id = $_POST['id']; + $active = $_POST['active']; +} + +$title = $_POST['title']; +$desc = $_POST['desc']; +$owner = $attrs['cn'][0]; +$owneruname = $attrs['uid'][0]; + +$statement; +if($id == 0){ + $query = 'INSERT INTO projects (name, owner, owneruname, description, active) VALUES (:title, :owner, :owneruname, :desc, 1)'; + $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(':owneruname', $owneruname, PDO::PARAM_STR); +}else{ + $query = 'UPDATE projects SET name=:title, owner=:owner, owneruname=:owneruname, description=:desc 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(':owneruname', $owneruname, PDO::PARAM_STR); + $statement->bindParam(':id', $id, PDO::PARAM_INT); +} + +$statement->execute(); + +header('Location: ..'); +?> + +Om du ikke ble omdirigert tilbake klikk her \ No newline at end of file