Merge branch 'ui_optis_0606'

This commit is contained in:
Felix Hamann 2018-06-07 11:48:30 +02:00
commit 38b879eab8
13 changed files with 116 additions and 90 deletions

View File

@ -49,3 +49,5 @@ SubmissionAlreadyExistsFor user@Text: #{user} hat bereits eine Abgabe zu diesem
EMailUnknown email@Text: E-Mail #{email} gehört zu keinem bekannten Benutzer.
NotAParticipant user@Text tid@TermIdentifier csh@Text: #{user} ist nicht im Kurs #{termToText tid}-#{csh} angemeldet.
HomeHeading: Startseite
TermsHeading: Semesterübersicht

View File

@ -1,7 +1,7 @@
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE OverloadedLists #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE TemplateHaskell, QuasiQuotes #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE ViewPatterns #-}
@ -434,11 +434,14 @@ instance Yesod UniWorX where
-- value passed to hamletToRepHtml cannot be a widget, this allows
-- you to use normal widget features in default-layout.
let
navbar :: Widget
navbar = $(widgetFile "widgets/navbar")
asidenav :: Widget
asidenav = $(widgetFile "widgets/asidenav")
contentHeadline :: Maybe Widget
contentHeadline = pageHeading =<< mcurrentRoute
breadcrumbs :: Widget
breadcrumbs = $(widgetFile "widgets/breadcrumbs")
pageactionprime :: Widget
@ -465,7 +468,7 @@ instance Yesod UniWorX where
$(widgetFile "standalone/showHide")
$(widgetFile "standalone/inputs")
withUrlRenderer $(hamletFile "templates/default-layout-wrapper.hamlet")
-- The page to be redirected to when authentication is required.
authRoute _ = Just $ AuthR LoginR
@ -595,6 +598,14 @@ pageActions (TermCourseListR _) =
pageActions _ = []
pageHeading :: Route UniWorX -> Maybe Widget
pageHeading HomeR
= Just [whamlet|_{MsgHomeHeading}|]
pageHeading TermShowR
= Just [whamlet|_{MsgTermsHeading}|]
pageHeading _
= Nothing
defaultLinks :: [MenuTypes]
defaultLinks = -- Define the menu items of the header.
[ NavbarRight $ MenuItem
@ -622,21 +633,15 @@ defaultLinks = -- Define the menu items of the header.
, menuItemAccessCallback' = isJust <$> maybeAuthPair
}
, NavbarAside $ MenuItem
{ menuItemLabel = "Aktuelle Veranstaltungen"
{ menuItemLabel = "Veranstaltungen"
, menuItemIcon = Just "book"
, menuItemRoute = CourseListR -- should be CourseListActiveR or similar in the future
, menuItemAccessCallback' = return True
}
, NavbarAside $ MenuItem
{ menuItemLabel = "Alte Veranstaltungen"
, menuItemIcon = Just "book"
, menuItemRoute = CourseListR -- should be CourseListInactiveR or similar in the future
, menuItemAccessCallback' = return True
}
, NavbarAside $ MenuItem
{ menuItemLabel = "Veranstaltungen"
, menuItemIcon = Just "book"
, menuItemRoute = CourseListR
{ menuItemLabel = "Semester"
, menuItemIcon = Nothing
, menuItemRoute = CourseListR -- should be TermListR ,,,
, menuItemAccessCallback' = return True
}
, NavbarAside $ MenuItem

View File

@ -32,3 +32,6 @@
.glyphicon--logout::before {
content: '\e163';
}
.glyphicon--none::before {
content: '';
}

View File

@ -1,8 +1,6 @@
.tab-group {
/* box-shadow: 0 0 0 18px white, 0 0 0 20px #b3b7c1; */
border-top: 2px solid #dcdcdc;
padding-top: 30px;
margin-top: 40px;
}
.tab-group-openers {

View File

@ -31,8 +31,13 @@
\ bis #{formatTimeGerWD regTo}
$# if allowed to register
<div .course__registration>
<a href="#">Anmelden
<div .course__registration.container>
<button class="btn btn-primary">
<a href="#">Anmelden
$# if already registered
<div .course__registration.container>
<button class="btn btn-info">
<a href="#">Abmelden
$# <form method=post action=@{CourseR tid csh CShow} enctype=#{regEnctype}>
$# ^{regWidget}
@ -63,11 +68,7 @@
<td>Do 18.04.18
<td>NotGraded
<tr .no-hover.no-stripe>
<td>&nbsp;
<td>&nbsp;
<td>&nbsp;
<td>&nbsp;
<td>
<td colspan="4">
<a href="/course/S2018/ffp/ex/new" #modal-toggler__new-sheet>Neues Übungsblatt anlegen
<div .tab data-tab-name="Übungsgruppen">
<h3 .tab-title>Übungsgruppen
@ -82,16 +83,14 @@
<th>Anmeldung bis
<tbody>
<tr>
<td>
<a href="#">Gruppe 1
<td>Gruppe 1
<td>Montag 10:00 - 12:00
<td>N/A
<td>2/10
<td>Tutor1 Tutoren
<td>Do 21.02.2019, 19:00
<tr>
<td>
<a href="#">Gruppe 2
<td>Gruppe 2
<td>Montag 12:00 - 14:00
<td>N/A
<td>0/10

View File

@ -0,0 +1,3 @@
.course__registration {
margin-top: 20px;
}

View File

@ -13,6 +13,10 @@
$with status2 <- bool status "info" (status == "")
<div class="alert alert-#{status2}">#{msg}
$maybe headline <- contentHeadline
<h1>
^{headline}
<!-- prime page actions -->
^{pageactionprime}

View File

@ -126,12 +126,11 @@ table {
th, td {
text-align: left;
padding: 0 13px 0 7px;
padding: 7px;
vertical-align: baseline;
}
th:first-child,
td:first-child {
padding-left: 0;
border-left: 0;
}
th {
@ -189,21 +188,15 @@ button,
transition: all .1s;
font-size: 16px;
cursor: pointer;
border-radius: 4px;
display: inline-block;
}
input.btn-primary,
button.btn-primary,
a.btn.btn-primary,
.btn.btn-primary {
background-color: var(--primarybase);
}
input.btn-info,
button.btn-info,
a.btn.btn-info,
.btn.btn-info {
background-color: var(--infobase)
a {
color: white;
}
a:hover {
color: white;
}
}
input[type="submit"][disabled],
@ -226,6 +219,20 @@ a.btn:not([disabled]):hover,
color: white;
}
input.btn-primary,
button.btn-primary,
a.btn.btn-primary,
.btn.btn-primary {
background-color: var(--primarybase);
}
input.btn-info,
button.btn-info,
a.btn.btn-info,
.btn.btn-info {
background-color: var(--infobase)
}
input[type="submit"].btn-info:hover,
input[type="button"].btn-info:hover,
button.btn-info:hover,
@ -237,4 +244,3 @@ a.btn.btn-info:hover,
.alert-debug {
background-color: rgb(240, 30, 240);
}

View File

@ -43,21 +43,3 @@
^{modal ".toggler2" (Just "Test Inhalt für Modal")}
<div .btn.toggler2>Klick mich für Content-Test
<noscript>(Für Modals bitte JS aktivieren)</noscript>
<li><br>
Multi-File-Input für bereits hochgeladene Dateien:
<form>
<div .form-group>
<label .form-group__label>Datei(en)
$# file 1
<div .file-checkbox__container>
<label .file-checkbox__label.reactive-label.btn for="f2-1">Datenschutz.txt
<div .checkbox>
<input .file-checkbox id="f2-1" name="f2" value="Datenschutz.txt" type="checkbox">
<label for="f2-1">
$# file 2
<div .file-checkbox__container>
<label .file-checkbox__label.reactive-label.btn for="f2-2">fill-db.hs
<div .checkbox>
<input .file-checkbox id="f2-2" name="f2" value="fill-db.hs" type="checkbox">
<label for="f2-2">

View File

@ -13,7 +13,7 @@ form {
grid-gap: 5px;
justify-content: flex-start;
align-items: center;
margin: 10px 0;
margin: 17px 0;
padding-left: 10px;
border-left: 2px solid transparent;
}
@ -44,20 +44,37 @@ input[type="password"],
input[type="url"],
input[type="number"],
input[type="email"] {
background-color: rgba(0, 0, 0, 0.05);
padding: 7px 3px 7px;
outline: 0;
border: 0;
border-bottom: 2px solid var(--darkbase);
box-shadow: 0 2px 13px rgba(0, 0, 0, 0.05);
color: var(--fontbase);
transition: all .1s;
font-size: 16px;
/* from bulma.css */
background-color: #fff;
border-color: #dbdbdb;
color: #363636;
box-shadow: inset 0 2px 3px 1px rgba(50,50,50,.1);
min-width: 400px;
-webkit-appearance: none;
align-items: center;
border: 1px solid transparent;
border-radius: 4px;
display: inline-flex;
font-size: 1rem;
height: 2.25em;
justify-content: flex-start;
line-height: 1.5;
padding-bottom: calc(.375em - 1px);
padding-left: calc(.625em - 1px);
padding-right: calc(.625em - 1px);
padding-top: calc(.375em - 1px);
position: relative;
vertical-align: top;
}
.form-group--required {
label::before {
content: '*';
position: absolute;
left: -14px;
}
input, textarea {
border-bottom-color: var(--lighterbase);
}
@ -82,32 +99,42 @@ input[type="password"]:focus,
input[type="url"]:focus,
input[type="number"]:focus,
input[type="email"]:focus {
border-bottom-color: var(--lightbase);
/* border-bottom-color: var(--lightbase);
background-color: transparent;
box-shadow: 0 0 13px var(--lighterbase);
box-shadow: 0 0 13px var(--lighterbase); */
border-color: #3273dc;
box-shadow: 0 0 0 0.125em rgba(50,115,220,.25);
outline: 0;
}
/* BUTTON STYLE SEE default-layout.lucius */
/* TEXTAREAS */
textarea {
outline: 0;
border: 0;
padding: 7px 4px;
min-width: 400px;
min-height: 100px;
font-family: var(--fontfamilybase);
font-size: 16px;
color: var(--fontbase);
background-color: rgba(0, 0, 0, 0.05);
box-shadow: 0 2px 13px rgba(0, 0, 0, 0.05);
border-bottom: 2px solid var(--darkbase);
-webkit-appearance: none;
border: 1px solid transparent;
border-radius: 2px;
display: inline-flex;
font-size: 1rem;
height: 170px;
width: 400px;
line-height: 1.5;
padding-bottom: calc(.375em - 1px);
padding-left: calc(.625em - 1px);
padding-right: calc(.625em - 1px);
padding-top: calc(.375em - 1px);
position: relative;
vertical-align: top;
background-color: #fff;
border-color: #dbdbdb;
color: #363636;
box-shadow: inset 0 1px 2px rgba(10,10,10,.1);
}
textarea:focus {
background-color: transparent;
border-bottom-color: var(--lightbase);
box-shadow: 0 0 13px var(--lighterbase);
border-color: #3273dc;
box-shadow: 0 0 0 0.125em rgba(50,115,220,.25);
outline: 0;
}
/* CUSTOM LEGACY CHECKBOX AND RADIO BOXES */

View File

@ -1,4 +1,2 @@
<div .container>
<h1>Semesterübersicht
^{table}

View File

@ -8,8 +8,7 @@ $newline never
$of NavbarAside (MenuItem label mIcon route _)
<li .asidenav__list-item :Just route == mcurrentRoute:.asidenav__list-item--active>
<a .asidenav__link-wrapper href=@{route}>
$if isJust mIcon
<div .glyphicon.glyphicon--#{fromMaybe "" mIcon}>
<div .glyphicon.glyphicon--#{fromMaybe "none" mIcon}>
<div .asidenav__link-label>#{label}
$of _

View File

@ -1,10 +1,10 @@
.page-nav-prime {
background-color: var(--lightgreybase);
padding: 13px;
margin-top: 30px;
}
.page-nav-prime .pagenav__list {
margin: 7px 0 0;
display: block;
}
.page-nav-prime .pagenav__list-item {