Compare commits
18 Commits
calendar-d
...
readd-webm
Author | SHA1 | Date | |
---|---|---|---|
ed4ac6d621 | |||
903952a972 | |||
c62f4d4705 | |||
814e5bc6c7 | |||
f57edf60c1
|
|||
a29d3fe803 | |||
8bcadd1d2d | |||
8a82e2795c | |||
4ee8b73044 | |||
6580cfe546 | |||
a0f9e71d46
|
|||
6e4a79ed3d | |||
37445f42b5 | |||
9717c11af5 | |||
2cab4df4b1 | |||
18c8426246 | |||
4890a0af04
|
|||
7bf2c31db3 |
@ -33,9 +33,5 @@
|
||||
devShells = forAllSystems (system: pkgs: {
|
||||
default = pkgs.callPackage ./nix/shell.nix { inherit pkgs; };
|
||||
});
|
||||
|
||||
# TODO:
|
||||
# - Relicense the project to GPL or something
|
||||
# - Write a module for the project
|
||||
};
|
||||
}
|
||||
|
@ -8,7 +8,7 @@ function navbar($depth, $active = NULL) {
|
||||
//'Aktiviteter' => 'aktiviteter',
|
||||
'Prosjekter' => 'prosjekt',
|
||||
'Kontakt' => 'kontakt',
|
||||
'Webmail' => 'https://webmail.pvv.ntnu.no/roundcube/',
|
||||
'Webmail' => 'webmail',
|
||||
'Galleri' => 'galleri',
|
||||
'Wiki' => 'https://wiki.pvv.ntnu.no/',
|
||||
'Git' => 'https://git.pvv.ntnu.no/',
|
||||
|
@ -20,6 +20,10 @@ pkgs.mkShellNoCC {
|
||||
test -e config.php || cp -v dist/config.local.php config.php
|
||||
|
||||
|
||||
if [ ! -d www/galleri/bilder/slideshow ] ; then
|
||||
mkdir -p www/galleri/bilder/slideshow
|
||||
fi
|
||||
|
||||
if [ ! -d vendor ] ; then
|
||||
composer install || exit $?
|
||||
|
||||
|
@ -6,6 +6,8 @@ use \DateInterval;
|
||||
|
||||
class Agenda {
|
||||
|
||||
private $activities;
|
||||
|
||||
const TODAY = 0;
|
||||
const TOMORROW = 1;
|
||||
const THIS_WEEK = 2;
|
||||
@ -18,7 +20,7 @@ class Agenda {
|
||||
}
|
||||
|
||||
public static function getFormattedDate($date) {
|
||||
return trim(strftime('%A %e. %b %H.%M', $date->getTimeStamp()));
|
||||
return $date->format("l j. M H.i");
|
||||
}
|
||||
|
||||
public function getEventsBetween(DateTimeImmutable $from, DateTimeImmutable $to) {
|
||||
|
@ -5,6 +5,7 @@ use \DateTimeImmutable;
|
||||
use \PDO;
|
||||
|
||||
class DBActivity implements Activity {
|
||||
private $pdo;
|
||||
|
||||
public function __construct(PDO $pdo) {
|
||||
$this->pdo = $pdo;
|
||||
|
@ -24,7 +24,7 @@ abstract class Event {
|
||||
return 'i morgen';
|
||||
}
|
||||
if (Agenda::isThisWeek($this->getStart()) || $this->getStart()->sub(new DateInterval('P4D'))->getTimestamp() < time()) {
|
||||
return strftime('%A', $this->getStart()->getTimestamp());
|
||||
return $this->getStart()->format("l");
|
||||
}
|
||||
if (Agenda::isNextWeek($this->getStart())) {
|
||||
return 'neste uke';
|
||||
@ -32,7 +32,7 @@ abstract class Event {
|
||||
if (Agenda::isThisMonth($this->getStart())) {
|
||||
return 'denne måneden';
|
||||
}
|
||||
return trim(strftime('%e. %B', $this->getStart()->getTimestamp()));
|
||||
return $this->getStart()->format("j. F");
|
||||
}
|
||||
|
||||
public abstract function getStop(); /* : DateTimeImmutable */
|
||||
|
@ -5,7 +5,7 @@ class SimpleEvent extends Event {
|
||||
|
||||
private $id, $name, $descr, $start, $end, $org, $loc;
|
||||
|
||||
public function __construct($id, $name,\DateTimeImmutable $start,\DateTimeImmutable $end,$org, $loc, $descr, $isDBEvent = false){
|
||||
public function __construct($id, $name,\DateTimeImmutable $start,\DateTimeImmutable $end,$org, $loc, $descr, $_isDBEvent = false){
|
||||
$this->id = $id;
|
||||
$this->name = $name;
|
||||
$this->start = $start;
|
||||
@ -13,7 +13,6 @@ class SimpleEvent extends Event {
|
||||
$this->org = $org;
|
||||
$this->loc = $loc;
|
||||
$this->descr = explode("\n", $descr);
|
||||
$this->isDBEvent = $isDBEvent;
|
||||
}
|
||||
|
||||
public function getID(){
|
||||
@ -52,10 +51,6 @@ class SimpleEvent extends Event {
|
||||
return $this->descr;
|
||||
}
|
||||
|
||||
public function isDBEvent() {
|
||||
return $this->isDBEvent;
|
||||
}
|
||||
|
||||
public function getColor() {
|
||||
return "#3b7";
|
||||
}
|
||||
|
@ -38,7 +38,6 @@ class AnimekveldEvent extends Event {
|
||||
'',
|
||||
'Alle kan være med på å anbefale eller veto serier.',
|
||||
'',
|
||||
'I disse tider blir visningene i all hovedsak holdt online på vår <a href="https://discord.gg/cx4aXU7">Discord server</a>'
|
||||
];
|
||||
}
|
||||
|
||||
|
@ -105,7 +105,7 @@ else {
|
||||
</div>
|
||||
|
||||
<p class="subtitle">Beskrivelse (<i>markdown</i>)</p>
|
||||
<textarea name="desc" rows="8" class="boxinput" placeholder="Beskrivese" required><?= implode($event->getDescription(), "\n"); ?></textarea>
|
||||
<textarea name="desc" rows="8" class="boxinput" placeholder="Beskrivelse" required><?= implode("\n", $event->getDescription()); ?></textarea>
|
||||
|
||||
|
||||
</div>
|
||||
|
@ -93,7 +93,7 @@ foreach($members as $i => $data){
|
||||
<?= '<input type="text" name="title" value="' . $project->getName() . '" class="boxinput">' ?><br>
|
||||
|
||||
<p class="subtitle">Beskrivelse (<i>markdown</i>)</p>
|
||||
<textarea name="desc" cols="40" rows="5" class="boxinput"><?= implode($project->getDescription(), "\n"); ?></textarea>
|
||||
<textarea name="desc" cols="40" rows="5" class="boxinput"><?= implode("\n", $project->getDescription()); ?></textarea>
|
||||
</div>
|
||||
|
||||
<div class="gridr noborder">
|
||||
|
@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 17.01 14.258" enable-background="new 0 0 17.01 14.258"><style type="text/css">.st0{fill:#004166;}</style><path class="st0" d="M14.009 8.551l.01-.019.005-.023.003-.014-.001-.006-.004-.022-.007-.021-.002-.006-4.629-8.382-.006-.006-.009-.013-.01-.01-.012-.009-.006-.005-.006-.002-.013-.005-.015-.004-.016-.002-.006-.002h-1.642l-.015.003-.021.004-.02.01-.017.012-.015.017-.009.011-4.233 7.425-.002.006-.007.021-.005.022-.001.006v2.86l.003.014.005.023.009.019.012.018.017.015.011.009.008.003.009.004.039.008h1.421l.038-.008.009-.004.031-.021.001-.001.019-.025 1.017-1.844h5.067l1.007 1.844.019.025.002.001.03.02.009.004.038.008h1.125l.04-.008.011-.005.023-.015.01-.009.015-.023.006-.011.002-.004.649-1.869.009-.014zm-.843 1.734h-.859l.582-1.678h.859l-.582 1.678zm-1.996-1.855l-.015-.018-.017-.012-.019-.01-.023-.005-.014-.003h-5.2l-.015.003-.023.005-.019.01-.018.012-.015.018-.01.011-1.017 1.844h-1.161l5.679-9.944 4.44 8.041h-.846l-3.426-6.236-.006-.007-.014-.017-.018-.015-.006-.006-.012-.003-.022-.007-.021-.002-.021.002-.021.007-.012.003-.007.006-.017.014-.014.018-.006.006-2.776 5.035-.002.005-.006.021-.005.023-.001.005.003.014.005.024.009.018.012.018.017.015.012.01.007.003.008.003.039.007h3.788l.039-.008.009-.004.007-.003.011-.009.018-.015.012-.017.01-.019.005-.023.003-.015-.001-.006-.004-.022-.007-.022-.002-.005-1.842-3.315-.037-.038.768-1.392 3.335 6.073-.572 1.649-.936-1.714-.01-.011zm-7.647-.863l4.186-7.342h1.383l-5.569 9.75v-2.408zm3.619-1.127h2.653l.378.682h-3.407l.376-.682zm.124-.225l1.198-2.173 1.206 2.173h-2.404zM1.197 14.258l-.13-.325h-.729l-.13.325h-.208l.588-1.464h.226l.591 1.464h-.208zm-.494-1.276l-.312.788h.621l-.309-.788zM2.123 14.258v-1.464h.959v.162h-.776v.472h.762v.162h-.762v.667h-.183zM4.22 14.258v-1.302h-.463v-.162h1.111v.162h-.465v1.302h-.183zM5.637 14.258v-1.464h.959v.162h-.777v.472h.762v.162h-.762v.505h.777v.162h-.959zM8.261 14.258l-.373-.582h-.292v.582h-.183v-1.464h.588c.268 0 .459.171.459.441 0 .263-.18.408-.38.426l.395.597h-.214zm.011-1.023c0-.165-.119-.279-.292-.279h-.384v.56h.384c.173 0 .292-.117.292-.281zM9.275 14.258v-1.464h.182v1.302h.681v.162h-.863zM10.613 13.527c0-.433.292-.757.727-.757.432 0 .727.325.727.757 0 .433-.294.758-.727.758-.435-.001-.727-.326-.727-.758zm1.264 0c0-.342-.211-.595-.538-.595-.329 0-.538.252-.538.595 0 .34.209.595.538.595.328 0 .538-.255.538-.595zM12.644 13.527c0-.454.336-.757.753-.757.259 0 .439.114.569.275l-.145.09c-.092-.119-.248-.202-.424-.202-.321 0-.564.246-.564.595 0 .347.244.597.564.597.176 0 .321-.086.393-.158v-.299h-.503v-.162h.685v.529c-.136.151-.336.252-.575.252-.417-.001-.753-.306-.753-.76zM14.84 14.258v-1.464h.182v1.464h-.182zM15.699 13.527c0-.45.332-.757.753-.757.259 0 .439.125.555.29l-.154.086c-.083-.123-.235-.213-.402-.213-.321 0-.564.246-.564.595 0 .347.244.595.564.595.167 0 .318-.088.402-.213l.156.086c-.123.167-.299.29-.558.29-.421-.002-.752-.309-.752-.759z"/></svg>
|
Before (image error) Size: 2.9 KiB |
@ -65,39 +65,23 @@ img.float-right {
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
.calendar-events ul li :not(.date):not(.time) {
|
||||
display: inline-block;
|
||||
width: calc(100% - 7em);
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
.calendar-events ul .date {
|
||||
color: rgba(0, 0, 0, 0.5);
|
||||
font-size: 0.8em;
|
||||
margin-top: 0.2em;
|
||||
}
|
||||
|
||||
.calendar-events > li > p {
|
||||
border-bottom: 0.1em dotted rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
|
||||
.calendar-events ul {
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.calendar-events a,
|
||||
|
||||
.calendar-events ul .time {
|
||||
color: rgba(0, 0, 0, 0.5);
|
||||
float: right;
|
||||
.calendar-events a {
|
||||
color: rgba(0,0,0, 0.85);
|
||||
}
|
||||
|
||||
.calendar-events ul .icon,
|
||||
.calendar-events ul .date {
|
||||
.calendar-events ul .datetime {
|
||||
color: rgba(0, 0, 0, 0.5);
|
||||
float: right;
|
||||
margin-right: 0.5em;
|
||||
margin-left: 0.2em;
|
||||
}
|
||||
|
||||
.calendar-events ul li {
|
||||
margin-bottom: 0.4em;
|
||||
}
|
||||
|
||||
main.contentsplit {
|
||||
|
@ -1,73 +0,0 @@
|
||||
ul#webmail {
|
||||
margin-top: 0;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
table-layout: fixed;
|
||||
display: table;
|
||||
width: 100%;
|
||||
padding: 0;
|
||||
}
|
||||
ul#webmail li {
|
||||
display: table-cell;
|
||||
text-align: center;
|
||||
}
|
||||
ul#webmail li .mailname {
|
||||
font-size: 1.2em;
|
||||
}
|
||||
|
||||
@media all and (min-width: 980px) {
|
||||
ul#webmail {
|
||||
max-width: 1280px;
|
||||
}
|
||||
ul#webmail li {
|
||||
display: table-cell;
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
@media all and (max-width: 980px) {
|
||||
ul#webmail {
|
||||
max-width: 650px;
|
||||
}
|
||||
ul#webmail li {
|
||||
display: table-row;
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
ul#webmail li div {
|
||||
position: relative;
|
||||
background: white;
|
||||
margin: 1em 1em;
|
||||
box-shadow: rgba(0,0,0,.3) 0 .1em .17em;
|
||||
border-radius: .5rem;
|
||||
cursor: pointer;
|
||||
}
|
||||
ul#webmail li:hover div {
|
||||
box-shadow: rgba(0,0,0,.5) 0 .15em .2em;
|
||||
}
|
||||
ul#webmail li div a {
|
||||
padding-top: 10em;
|
||||
display: block;
|
||||
text-decoration: none;
|
||||
color: black;
|
||||
}
|
||||
ul#webmail li#afterlogic div {
|
||||
background: white url('afterlogic.png') no-repeat;
|
||||
background: white url('afterlogic.svg') no-repeat;
|
||||
background-size: auto 8em;
|
||||
background-position: 50% 60%;
|
||||
}
|
||||
ul#webmail li#squirrelmail div {
|
||||
background: white url('squirrelmail.png') no-repeat;
|
||||
background-size: auto 10em;
|
||||
background-position: 50% 0;
|
||||
}
|
||||
ul#webmail li#roundcube div {
|
||||
background: white url('roundcube.png') no-repeat;
|
||||
background-size: auto 10em;
|
||||
background-position: 50% 0;
|
||||
}
|
||||
ul#webmail li#rainloop div {
|
||||
background: white url('rainloop.png') no-repeat;
|
||||
background-size: auto 10em;
|
||||
background-position: 50% 0;
|
||||
}
|
Binary file not shown.
Before ![]() (image error) Size: 4.6 KiB |
Binary file not shown.
Before ![]() (image error) Size: 4.2 KiB |
66
www/css/webmail.css
Normal file
66
www/css/webmail.css
Normal file
@ -0,0 +1,66 @@
|
||||
ul#webmail {
|
||||
margin-top: 0;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
table-layout: fixed;
|
||||
display: table;
|
||||
width: 100%;
|
||||
padding: 0;
|
||||
}
|
||||
ul#webmail li {
|
||||
display: table-cell;
|
||||
text-align: center;
|
||||
}
|
||||
ul#webmail li .mailname {
|
||||
font-size: 1.2em;
|
||||
}
|
||||
|
||||
@media all and (min-width: 980px) {
|
||||
ul#webmail {
|
||||
max-width: 1280px;
|
||||
}
|
||||
ul#webmail li {
|
||||
display: table-cell;
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
@media all and (max-width: 980px) {
|
||||
ul#webmail {
|
||||
max-width: 650px;
|
||||
}
|
||||
ul#webmail li {
|
||||
display: table-row;
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
ul#webmail li div {
|
||||
position: relative;
|
||||
background: white;
|
||||
margin: 1em 1em;
|
||||
box-shadow: rgba(0,0,0,.3) 0 .1em .17em;
|
||||
border-radius: .5rem;
|
||||
cursor: pointer;
|
||||
}
|
||||
ul#webmail li:hover div {
|
||||
box-shadow: rgba(0,0,0,.5) 0 .15em .2em;
|
||||
}
|
||||
ul#webmail li div a {
|
||||
padding-top: 10em;
|
||||
display: block;
|
||||
text-decoration: none;
|
||||
color: black;
|
||||
}
|
||||
ul#webmail li#roundcube div {
|
||||
background: white url('/webmail/roundcube.png') no-repeat;
|
||||
background-size: auto 10em;
|
||||
background-position: 50% 0;
|
||||
}
|
||||
ul#webmail li#snappymail div {
|
||||
background: white url('/webmail/snappymail.png') no-repeat;
|
||||
background-size: auto 10em;
|
||||
background-position: 50% 0;
|
||||
}
|
||||
|
||||
div#lokalmail {
|
||||
font-size: 1.1em;
|
||||
}
|
@ -77,18 +77,20 @@ $doorTime = date("H:i", $doorEntry->time);
|
||||
<?php } else { ?>
|
||||
<strong><?= $event->getName(); ?></strong>
|
||||
<?php } ?>
|
||||
<?php /* <a class="icon subscribe">+</a> */ ?>
|
||||
<?php if ($period !== \pvv\side\Agenda::TODAY) {
|
||||
echo '<span class="time">' . $event->getStart()->format('H:i') . '</span>';
|
||||
if (\pvv\side\Agenda::isThisWeek($event->getStart()) || $event->getStart()->sub(new DateInterval('P3D'))->getTimestamp() < time()) {
|
||||
echo '<span class="date">' . strftime('%a', $event->getStart()->getTimestamp()) . '</span>';
|
||||
} else {
|
||||
echo '<span class="date">' . strftime('%e. %b', $event->getStart()->getTimestamp()) . '</span>';
|
||||
}
|
||||
} else {
|
||||
echo '<span class="time">' . $event->getStart()->format('H:i') . '</span>';
|
||||
}
|
||||
?>
|
||||
|
||||
<span class="datetime">
|
||||
<?php if ($period !== \pvv\side\Agenda::TODAY) {
|
||||
echo $event->getStart()->format('H:i') . " " ;
|
||||
if (\pvv\side\Agenda::isThisWeek($event->getStart()) || $event->getStart()->sub(new DateInterval('P3D'))->getTimestamp() < time()) {
|
||||
echo $event->getStart()->format('D');
|
||||
} else {
|
||||
echo $event->getStart()->format('j. F');
|
||||
}
|
||||
} else {
|
||||
echo $event->getStart()->format('H:i');
|
||||
}
|
||||
?>
|
||||
</span>
|
||||
</li>
|
||||
<?php } ?>
|
||||
</ul>
|
||||
@ -108,7 +110,7 @@ $doorTime = date("H:i", $doorEntry->time);
|
||||
echo $title;
|
||||
}
|
||||
echo "</h1>";
|
||||
|
||||
|
||||
$Parsedown = new Parsedown();
|
||||
echo $Parsedown->text(implode("\n", $motd["content"]));
|
||||
?>
|
||||
|
@ -43,11 +43,11 @@ require_once dirname(dirname(__DIR__)) . implode(DIRECTORY_SEPARATOR, ['', 'inc'
|
||||
|
||||
<p>Vi har en <a href="http://list.pvv.org/mailman/listinfo/aktive">e-postliste for aktive medlemmer</a>. All offisiell informasjon blir sendt på denne listen, og alle arrengementer blir også annonsert her.</p>
|
||||
|
||||
<p>Vi har en <a target="_blank" href="https://matrix.to/#/#pvv:pvv.ntnu.no">Matrix-server</a> for chat, memes, og all annen kommunikasjon. Den er bridget med IRC-kanalen og Discord-guilden vår. Hvis du er medlem kan du bruke vår <a href="https://chat.pvv.ntnu.no">self-hosted web client</a>.</p>
|
||||
<p>Vi har et <a target="_blank" href="https://matrix.to/#/#pvv:pvv.ntnu.no">Matrix Space™</a> for chat, memes, og all annen kommunikasjon. Den er bridget med IRC-kanalen og Discord-serveren vår. Hvis du er medlem kan du bruke vår egen instans av <a href="https://chat.pvv.ntnu.no">Element web</a>.</p>
|
||||
|
||||
<p>Vi har en IRC-kanal på <a href="http://webchat.ircnet.net/">IRCnet</a> kalt #pvv.</p>
|
||||
|
||||
<p>Vi har en <a target="_blank" href="https://discord.gg/8VTBr6Q">Discord-guild</a> for de som foretrekker Discord over Matrix. </p>
|
||||
<p>Vi har en <a target="_blank" href="https://discord.gg/8VTBr6Q">Discord-server</a> for de som foretrekker Discord over Matrix. </p>
|
||||
|
||||
</main>
|
||||
</body>
|
||||
|
@ -79,7 +79,7 @@ if($new == 0){
|
||||
<p class="subtitle no-chin">Beskrivelse (<i style="opacity:0.5;">markdown</i>)</p>
|
||||
<p class="subnote no-chin">Hva går prosjektet ditt ut på?</p>
|
||||
<p class="subnote">De første to linjene blir vist på prosjektkortet, prøv å gjøre de til et fint sammendrag eller intro!</p>
|
||||
<textarea class="tall" name="desc" style="width:100%" rows="8" class="boxinput"><?= implode($project->getDescription(), "\n"); ?></textarea>
|
||||
<textarea class="tall" name="desc" style="width:100%" rows="8" class="boxinput"><?= implode("\n", $project->getDescription()); ?></textarea>
|
||||
|
||||
<?= '<input type="hidden" name="id" value="' . $project->getID() . '" />' ?>
|
||||
<input type="hidden" name="active" value="1"/>
|
||||
|
71
www/spaceapi.php
Normal file
71
www/spaceapi.php
Normal file
@ -0,0 +1,71 @@
|
||||
<?php
|
||||
|
||||
require_once dirname(__DIR__) . implode(DIRECTORY_SEPARATOR, ['', 'inc', 'include.php']);
|
||||
|
||||
header('Content-Type: application/json');
|
||||
header('Access-Control-Allow-Origin: *');
|
||||
|
||||
$pdo = new \PDO($DB_DSN, $DB_USER, $DB_PASS);
|
||||
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
||||
|
||||
$door = new \pvv\side\Door($pdo);
|
||||
$doorEntry = (object)($door->getCurrent());
|
||||
|
||||
?>
|
||||
{
|
||||
"api_compatibility": ["14"],
|
||||
"space": "Programvareverkstedet",
|
||||
"logo": "https://git.pvv.ntnu.no/assets/img/logo.png",
|
||||
"url": "https://www.pvv.ntnu.no/",
|
||||
"location": {
|
||||
"ext_campus": "NTNU Gløshaugen",
|
||||
"ext_room_name": "Oppredning/Gruvedrift, Floor 2, Room 247",
|
||||
"ext_mazemap": "https://link.mazemap.com/2n2HWa7H",
|
||||
"address": "Sem Sælands vei 1, 7034 Trondheim, Norway",
|
||||
"timezone": "Europe/Oslo",
|
||||
"lon": 10.4063852,
|
||||
"lat": 63.4170226
|
||||
},
|
||||
"contact": {
|
||||
"irc": "irc://irc.pvv.ntnu.no/pvv",
|
||||
"email": "pvv@pvv.ntnu.no",
|
||||
"ext_discord": "https://discord.gg/8VTBr6Q",
|
||||
"gopher": "gopher://isvegg.pvv.ntnu.no",
|
||||
"matrix": "#pvv:pvv.ntnu.no"
|
||||
},
|
||||
"issue_report_channels": ["email"],
|
||||
"state": {
|
||||
"open": <?php echo($doorEntry->open ? "true" : "false"); ?>,
|
||||
"lastchange": <?php echo($doorEntry->time ? $doorEntry->time : 0); ?>,
|
||||
"message": "<?php echo($doorEntry->open ? "open for public, members are present" : "closed"); ?>"
|
||||
},
|
||||
"feeds": {
|
||||
"wiki": {
|
||||
"type": "atom",
|
||||
"url": "https://wiki.pvv.ntnu.no/w/api.php?hidebots=1&urlversion=1&action=feedrecentchanges&feedformat=atom"
|
||||
},
|
||||
"calendar": {
|
||||
"type": "html",
|
||||
"url": "https://www.pvv.ntnu.no/hendelser/"
|
||||
}
|
||||
},
|
||||
"projects": [
|
||||
"https://github.com/Programvareverkstedet/",
|
||||
"https://git.pvv.ntnu.no/",
|
||||
"https://www.pvv.ntnu.no/prosjekt/"
|
||||
],
|
||||
"links": [
|
||||
{
|
||||
"name": "YouTube",
|
||||
"url": "https://www.youtube.com/@pvvntnu5640"
|
||||
},
|
||||
{
|
||||
"name": "LinkedIn",
|
||||
"url": "https://www.linkedin.com/company/pvvntnu/"
|
||||
},
|
||||
{
|
||||
"name": "Facebook",
|
||||
"url": "https://www.facebook.com/pvvntnu/"
|
||||
}
|
||||
]
|
||||
}
|
@ -110,7 +110,7 @@ require_once dirname(dirname(__DIR__)) . implode(DIRECTORY_SEPARATOR, ['', 'inc'
|
||||
<div class="serviceContent">
|
||||
<h2 class="serviceTitle">Brukernettsider</h2>
|
||||
<p class="serviceDescription">Alle brukere får automatisk en egen side for html og php. Denne er offentlig på pvv.ntnu.no/~brukernavn.</p>
|
||||
<div class="serviceLink"><a href="https://wiki.pvv.ntnu.no/wiki/Hjemmesider" target="_blank">Gå til dokumentasjon på wiki</a></div>
|
||||
<div class="serviceLink"><a href="https://wiki.pvv.ntnu.no/wiki/Tjenester/Hjemmesider" target="_blank">Gå til dokumentasjon på wiki</a></div>
|
||||
</div>
|
||||
<img class="serviceImage" src="img/php.png" alt="En elephpant">
|
||||
</div>
|
||||
@ -119,7 +119,7 @@ require_once dirname(dirname(__DIR__)) . implode(DIRECTORY_SEPARATOR, ['', 'inc'
|
||||
<div class="serviceContent">
|
||||
<h2 class="serviceTitle">PVV-siden</h2>
|
||||
<p class="serviceDescription">Du befinner deg nå på PVV sin offisielle hjemmeside. Den er skrevet i PHP og kjører på en egen server.</p>
|
||||
<div class="serviceLink"><a href="https://github.com/Programvareverkstedet/nettsiden" target="_blank">Se koden på github</a></div>
|
||||
<div class="serviceLink"><a href="https://git.pvv.ntnu.no/Projects/nettsiden" target="_blank">Se koden på gitea</a></div>
|
||||
</div>
|
||||
<img class="serviceImage" src="../pvv-logo.png" alt="PVV-logo">
|
||||
</div>
|
||||
|
42
www/webmail/index.php
Normal file
42
www/webmail/index.php
Normal file
@ -0,0 +1,42 @@
|
||||
<?php
|
||||
require_once dirname(dirname(__DIR__)) . implode(DIRECTORY_SEPARATOR, ['', 'inc', 'include.php']);
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html lang="no">
|
||||
<head>
|
||||
<style>
|
||||
p {hyphens: auto;}
|
||||
</style>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
|
||||
<link rel="shortcut icon" href="favicon.ico">
|
||||
<link rel="stylesheet" href="../css/normalize.css">
|
||||
<link rel="stylesheet" href="../css/style.css">
|
||||
<link rel="stylesheet" href="../css/webmail.css">
|
||||
<meta name="theme-color" content="#024" />
|
||||
<title>Mailverkstedet</title>
|
||||
</head>
|
||||
<body>
|
||||
<header>Mail­verk­stedet</header>
|
||||
|
||||
<main>
|
||||
<h2>Bruk en av våre webmail-klienter</h2>
|
||||
<ul id="webmail">
|
||||
<li id="roundcube"><div><a href="https://webmail.pvv.ntnu.no/roundcube/"><span class="mailname">Roundcube</span></a>
|
||||
<li id="snappymail"><div><a href="https://snappymail.pvv.ntnu.no/"><span class="mailname">SnappyMail</span></a>
|
||||
</ul>
|
||||
|
||||
<h2>Eller bruk en lokal e-postklient</h2>
|
||||
<div id="lokalmail">
|
||||
Informasjon om oppsett og bruk av e-post finner du på <a href="https://wiki.pvv.ntnu.no/wiki/Drift/Mail">wiki-en vår</a>.
|
||||
<br>
|
||||
Du kan for eksempel bruke en grafisk klient som <a href="https://www.thunderbird.net/">Thunderbird</a>, eller en terminaldrevet klient som <a href="https://neomutt.org/">(neo)</a><a href="http://www.mutt.org/">mutt</a>, <a href="https://aerc-mail.org/">aerc</a> eller <a href="https://alpineapp.email/">alpine</a>.
|
||||
</div>
|
||||
</main>
|
||||
|
||||
<nav>
|
||||
<?= navbar(1, "mail"); ?>
|
||||
<?= loginbar($sp, $pdo); ?>
|
||||
</nav>
|
||||
</body>
|
||||
</html>
|
Before ![]() (image error) Size: 55 KiB After ![]() (image error) Size: 55 KiB ![]() ![]() |
BIN
www/webmail/snappymail.png
Normal file
BIN
www/webmail/snappymail.png
Normal file
Binary file not shown.
After ![]() (image error) Size: 1.8 KiB |
Reference in New Issue
Block a user