mirror of
https://gitlab.com/upRootNutrition/website.git
synced 2025-06-16 04:25:11 -05:00
feat: lots of work
This commit is contained in:
parent
d0617b7a90
commit
49dabb8496
17 changed files with 903 additions and 69 deletions
0
frontend/src/Config/Data/Language.elm
Normal file → Executable file
0
frontend/src/Config/Data/Language.elm
Normal file → Executable file
210
frontend/src/Config/Helpers/ArticleFormat.elm
Normal file
210
frontend/src/Config/Helpers/ArticleFormat.elm
Normal file
|
@ -0,0 +1,210 @@
|
||||||
|
module Config.Helpers.ArticleFormat exposing (..)
|
||||||
|
|
||||||
|
import Config.Data.Identity exposing (pageNames)
|
||||||
|
import Config.Helpers.CardFormat exposing (..)
|
||||||
|
import Config.Helpers.Format exposing (..)
|
||||||
|
import Config.Helpers.ToolTip exposing (..)
|
||||||
|
import Config.Pages.Headers.Types exposing (..)
|
||||||
|
import Config.Style.Colour exposing (colourTheme)
|
||||||
|
import Config.Style.Transitions
|
||||||
|
exposing
|
||||||
|
( hoverFontDarkOrange
|
||||||
|
, transitionStyleFast
|
||||||
|
, transitionStyleSlow
|
||||||
|
)
|
||||||
|
import Effect exposing (Effect)
|
||||||
|
import Element as E exposing (..)
|
||||||
|
import Element.Background as B
|
||||||
|
import Element.Border as D
|
||||||
|
import Element.Font as F
|
||||||
|
import Html
|
||||||
|
import Html.Attributes as H exposing (style)
|
||||||
|
|
||||||
|
|
||||||
|
bodyFormat : List (Attribute msg)
|
||||||
|
bodyFormat =
|
||||||
|
[ spacing 10
|
||||||
|
, paddingEach
|
||||||
|
{ top = 10
|
||||||
|
, bottom = 0
|
||||||
|
, left = 0
|
||||||
|
, right = 0
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
chunkMaker : List String -> Element msg
|
||||||
|
chunkMaker items =
|
||||||
|
column [ alignLeft, spacing 10 ] <|
|
||||||
|
List.map
|
||||||
|
(\item ->
|
||||||
|
paragraph
|
||||||
|
[ F.color colourTheme.textLightGrey
|
||||||
|
, paragraphSpacing
|
||||||
|
, paragraphFontSize
|
||||||
|
, F.alignLeft
|
||||||
|
, width fill
|
||||||
|
]
|
||||||
|
[ text item ]
|
||||||
|
)
|
||||||
|
items
|
||||||
|
|
||||||
|
|
||||||
|
titleMaker : String -> Element msg
|
||||||
|
titleMaker title =
|
||||||
|
el
|
||||||
|
[ paragraphSpacing
|
||||||
|
, paragraphFontSize
|
||||||
|
, F.bold
|
||||||
|
, F.center
|
||||||
|
, width fill
|
||||||
|
, F.color colourTheme.textLightOrange
|
||||||
|
, F.size 18
|
||||||
|
, paddingEach
|
||||||
|
{ top = 10
|
||||||
|
, bottom = 10
|
||||||
|
, left = 0
|
||||||
|
, right = 0
|
||||||
|
}
|
||||||
|
]
|
||||||
|
<|
|
||||||
|
text title
|
||||||
|
|
||||||
|
|
||||||
|
highlightedBlockMaker : String -> List String -> Element msg
|
||||||
|
highlightedBlockMaker title items =
|
||||||
|
column
|
||||||
|
[ paddingEach
|
||||||
|
{ top = 15
|
||||||
|
, bottom = 15
|
||||||
|
, left = 20
|
||||||
|
, right = 20
|
||||||
|
}
|
||||||
|
, B.color colourTheme.backgroundLightGrey
|
||||||
|
, D.rounded 10
|
||||||
|
, width fill
|
||||||
|
, spacing 8
|
||||||
|
]
|
||||||
|
[ paragraph
|
||||||
|
[ F.bold
|
||||||
|
, F.size 18
|
||||||
|
]
|
||||||
|
[ text title ]
|
||||||
|
, column
|
||||||
|
[]
|
||||||
|
<|
|
||||||
|
List.indexedMap
|
||||||
|
(\index item ->
|
||||||
|
row
|
||||||
|
[ spacing 10
|
||||||
|
, width fill
|
||||||
|
]
|
||||||
|
[ column
|
||||||
|
[ width <| px 30
|
||||||
|
, alignTop
|
||||||
|
]
|
||||||
|
[ el [ alignRight, F.size 18 ] <| text "• " ]
|
||||||
|
, column
|
||||||
|
[ spacing 10
|
||||||
|
, width fill
|
||||||
|
, alignRight
|
||||||
|
]
|
||||||
|
[ paragraph
|
||||||
|
[ width fill
|
||||||
|
, F.size 16
|
||||||
|
, F.alignLeft
|
||||||
|
]
|
||||||
|
[ row
|
||||||
|
[ alignLeft ]
|
||||||
|
[ paragraph [ alignLeft ]
|
||||||
|
[ text item
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
)
|
||||||
|
items
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
textEntry : String -> Element msg
|
||||||
|
textEntry item =
|
||||||
|
el
|
||||||
|
[ alignLeft ]
|
||||||
|
<|
|
||||||
|
paragraph [] [ text item ]
|
||||||
|
|
||||||
|
|
||||||
|
bulletPointMaker : List String -> Element msg
|
||||||
|
bulletPointMaker items =
|
||||||
|
column [ spacing 10 ] <|
|
||||||
|
List.indexedMap
|
||||||
|
(\index item ->
|
||||||
|
row
|
||||||
|
[ spacing 10
|
||||||
|
, width fill
|
||||||
|
]
|
||||||
|
[ column
|
||||||
|
[ width <| px 30
|
||||||
|
, alignTop
|
||||||
|
]
|
||||||
|
[ el [ alignRight, F.size 18 ] <| text "• " ]
|
||||||
|
, column
|
||||||
|
[ spacing 10
|
||||||
|
, width fill
|
||||||
|
, alignRight
|
||||||
|
]
|
||||||
|
[ paragraph
|
||||||
|
[ width fill
|
||||||
|
, F.size 16
|
||||||
|
, F.alignLeft
|
||||||
|
]
|
||||||
|
[ row
|
||||||
|
[ alignLeft ]
|
||||||
|
[ paragraph [ alignLeft ]
|
||||||
|
[ text item
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
)
|
||||||
|
items
|
||||||
|
|
||||||
|
|
||||||
|
numberMaker : List String -> Element msg
|
||||||
|
numberMaker items =
|
||||||
|
column [ spacing 10 ] <|
|
||||||
|
List.indexedMap
|
||||||
|
(\index item ->
|
||||||
|
row
|
||||||
|
[ spacing 10
|
||||||
|
, width fill
|
||||||
|
]
|
||||||
|
[ column
|
||||||
|
[ width <| px 30
|
||||||
|
, alignTop
|
||||||
|
]
|
||||||
|
[ el [ alignRight ] <| text (String.fromInt (index + 1) ++ ". ") ]
|
||||||
|
, column
|
||||||
|
[ spacing 10
|
||||||
|
, width fill
|
||||||
|
, alignRight
|
||||||
|
]
|
||||||
|
[ paragraph
|
||||||
|
[ width fill
|
||||||
|
, F.size 16
|
||||||
|
, F.alignLeft
|
||||||
|
]
|
||||||
|
[ row
|
||||||
|
[ alignLeft ]
|
||||||
|
[ paragraph [ alignLeft ]
|
||||||
|
[ text item
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
)
|
||||||
|
items
|
|
@ -18,8 +18,53 @@ servicesDebateAnalysis =
|
||||||
, serviceRate = "$80/hr"
|
, serviceRate = "$80/hr"
|
||||||
, serviceDescription =
|
, serviceDescription =
|
||||||
[ { point = "Have your own debates analyzed for constructive feedback." }
|
[ { point = "Have your own debates analyzed for constructive feedback." }
|
||||||
, { point = "Receive advice to improve as a debater." }
|
, { point = "Receive advice to improve your debate and public speaking skills." }
|
||||||
, { point = "Participate in mock debates, staged debates, and other exercises." }
|
, { point = "Gain valuable insights that help you become a stronger reasoner." }
|
||||||
, { point = "Gain comfort with debate and verbal confrontation." }
|
, { point = "Gain comfort with debate and verbal confrontation." }
|
||||||
]
|
]
|
||||||
|
, serviceArticle =
|
||||||
|
{ articleTitles =
|
||||||
|
{ title1 = "Benefits"
|
||||||
|
, title2 = "Requirements"
|
||||||
|
, title3 = ""
|
||||||
|
, title4 = ""
|
||||||
|
, title5 = ""
|
||||||
|
, title6 = ""
|
||||||
|
, title7 = ""
|
||||||
|
, title8 = ""
|
||||||
|
, title9 = ""
|
||||||
|
, title10 = ""
|
||||||
|
}
|
||||||
|
, articleParagraph =
|
||||||
|
[ "The Debate Analysis services offers personalized feedback to help you improve your debate skills. I work with clients by reviewing their pre-recorded debates, providing detailed critiques, and offering practical advice tailored to their style. Through this process, you'll gain valuable insights into areas of improvement, from your argument structure to your delivery and confidence."
|
||||||
|
]
|
||||||
|
, articleListEntries =
|
||||||
|
{ list1 =
|
||||||
|
[ "Have your own debates analyzed for constructive feedback. This allows you to receive targeted guidance on how to improve your debating technique and strategy."
|
||||||
|
, "Receive advice to improve as a debater. This service provides personalized recommendations to help you develop and refine your debating abilities."
|
||||||
|
, "Gain comfort with debate and verbal confrontation. The service aims to help you become more confident and adept at handling the challenges of public debate."
|
||||||
|
]
|
||||||
|
, list2 =
|
||||||
|
[ "Your debate recording must be submitted at least three days prior to the session."
|
||||||
|
, "Your debate recording must not exceed one hour in length unless otherwise agreed to."
|
||||||
|
, "Your debate recording must be in either video or audio format, as text debates are ineligible."
|
||||||
|
]
|
||||||
|
, list3 =
|
||||||
|
[]
|
||||||
|
, list4 =
|
||||||
|
[]
|
||||||
|
, list5 =
|
||||||
|
[]
|
||||||
|
, list6 =
|
||||||
|
[]
|
||||||
|
, list7 =
|
||||||
|
[]
|
||||||
|
, list8 =
|
||||||
|
[]
|
||||||
|
, list9 =
|
||||||
|
[]
|
||||||
|
, list10 =
|
||||||
|
[]
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
67
frontend/src/Config/Pages/Services/Services/DebateCoaching.elm
Executable file
67
frontend/src/Config/Pages/Services/Services/DebateCoaching.elm
Executable file
|
@ -0,0 +1,67 @@
|
||||||
|
module Config.Pages.Services.Services.DebateCoaching exposing (..)
|
||||||
|
|
||||||
|
import Config.Helpers.Converters exposing (formatName)
|
||||||
|
import Config.Pages.Services.Types exposing (..)
|
||||||
|
import Route.Path as Path
|
||||||
|
|
||||||
|
|
||||||
|
servicesDebateCoaching : Service
|
||||||
|
servicesDebateCoaching =
|
||||||
|
let
|
||||||
|
name : String
|
||||||
|
name =
|
||||||
|
"Debate Coaching"
|
||||||
|
in
|
||||||
|
{ serviceImage = formatName name
|
||||||
|
, serviceLink = Path.toString Path.Services_Coaching
|
||||||
|
, serviceName = name
|
||||||
|
, serviceRate = "$60/hr"
|
||||||
|
, serviceDescription =
|
||||||
|
[ { point = "Participate in a structured course with five one-hour modules." }
|
||||||
|
, { point = "Learn critical thinking, debate strategy, formal logic, and more" }
|
||||||
|
, { point = "Receive personalized and generalizable advice." }
|
||||||
|
, { point = "Improve debate understanding and performance." }
|
||||||
|
]
|
||||||
|
, serviceArticle =
|
||||||
|
{ articleTitles =
|
||||||
|
{ title1 = "What You Get"
|
||||||
|
, title2 = "What We Need"
|
||||||
|
, title3 = "Module 1"
|
||||||
|
, title4 = "Module 2"
|
||||||
|
, title5 = "Module 3"
|
||||||
|
, title6 = "Module 4"
|
||||||
|
, title7 = "Module 5"
|
||||||
|
, title8 = ""
|
||||||
|
, title9 = ""
|
||||||
|
, title10 = ""
|
||||||
|
}
|
||||||
|
, articleParagraph =
|
||||||
|
[ "This service is designed to help you "
|
||||||
|
]
|
||||||
|
, articleListEntries =
|
||||||
|
{ list1 =
|
||||||
|
[ "A five-module course covering critical thinking, debate strategy, and propositional logic, designed to strengthen your debating skills."
|
||||||
|
, "Personalized feedback and guidance to boost your strategic thinking, verbal comfort, and overall debate effectiveness."
|
||||||
|
, "Optional mock debates and staged confrontations, helping you gain experience and confidence in real-world debates."
|
||||||
|
]
|
||||||
|
, list2 =
|
||||||
|
[""]
|
||||||
|
, list3 =
|
||||||
|
["Learn about the most common logical fallacies.", ""]
|
||||||
|
, list4 =
|
||||||
|
[]
|
||||||
|
, list5 =
|
||||||
|
[]
|
||||||
|
, list6 =
|
||||||
|
[]
|
||||||
|
, list7 =
|
||||||
|
[]
|
||||||
|
, list8 =
|
||||||
|
[]
|
||||||
|
, list9 =
|
||||||
|
[]
|
||||||
|
, list10 =
|
||||||
|
[]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,25 +0,0 @@
|
||||||
module Config.Pages.Services.Services.DebateTutoring exposing (..)
|
|
||||||
|
|
||||||
import Config.Helpers.Converters exposing (formatName)
|
|
||||||
import Config.Pages.Services.Types exposing (..)
|
|
||||||
import Route.Path as Path
|
|
||||||
|
|
||||||
|
|
||||||
servicesDebateTutoring : Service
|
|
||||||
servicesDebateTutoring =
|
|
||||||
let
|
|
||||||
name : String
|
|
||||||
name =
|
|
||||||
"Debate Coaching"
|
|
||||||
in
|
|
||||||
{ serviceImage = formatName name
|
|
||||||
, serviceLink = Path.toString Path.Services_Coaching
|
|
||||||
, serviceName = name
|
|
||||||
, serviceRate = "$60/hr"
|
|
||||||
, serviceDescription =
|
|
||||||
[ { point = "Participate in a structured course with five one-hour modules." }
|
|
||||||
, { point = "Learn critical thinking, debate strategy, formal logic, and more" }
|
|
||||||
, { point = "Receive personalized and generalizable advice." }
|
|
||||||
, { point = "Improve debate understanding and performance." }
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,10 +1,11 @@
|
||||||
module Config.Pages.Services.Services.ElmBuilds exposing (..)
|
module Config.Pages.Services.Services.ElmBuilds exposing (..)
|
||||||
|
|
||||||
import Element exposing (..)
|
|
||||||
import Config.Pages.Services.Types exposing (..)
|
|
||||||
import Config.Helpers.Converters exposing (formatName)
|
import Config.Helpers.Converters exposing (formatName)
|
||||||
|
import Config.Pages.Services.Types exposing (..)
|
||||||
|
import Element exposing (..)
|
||||||
import Route.Path as Path
|
import Route.Path as Path
|
||||||
|
|
||||||
|
|
||||||
servicesElmBuilds : Service
|
servicesElmBuilds : Service
|
||||||
servicesElmBuilds =
|
servicesElmBuilds =
|
||||||
let
|
let
|
||||||
|
@ -22,4 +23,44 @@ servicesElmBuilds =
|
||||||
, { point = "Help with integration and server integration." }
|
, { point = "Help with integration and server integration." }
|
||||||
, { point = "Receive unlimited revisions before finalization." }
|
, { point = "Receive unlimited revisions before finalization." }
|
||||||
]
|
]
|
||||||
|
, serviceArticle =
|
||||||
|
{ articleTitles =
|
||||||
|
{ title1 = "What You Get"
|
||||||
|
, title2 = "What We Need"
|
||||||
|
, title3 = ""
|
||||||
|
, title4 = ""
|
||||||
|
, title5 = ""
|
||||||
|
, title6 = ""
|
||||||
|
, title7 = ""
|
||||||
|
, title8 = ""
|
||||||
|
, title9 = ""
|
||||||
|
, title10 = ""
|
||||||
|
}
|
||||||
|
, articleParagraph =
|
||||||
|
[]
|
||||||
|
, articleListEntries =
|
||||||
|
{ list1 =
|
||||||
|
[ ""
|
||||||
|
]
|
||||||
|
, list2 =
|
||||||
|
[ ""
|
||||||
|
]
|
||||||
|
, list3 =
|
||||||
|
[]
|
||||||
|
, list4 =
|
||||||
|
[]
|
||||||
|
, list5 =
|
||||||
|
[]
|
||||||
|
, list6 =
|
||||||
|
[]
|
||||||
|
, list7 =
|
||||||
|
[]
|
||||||
|
, list8 =
|
||||||
|
[]
|
||||||
|
, list9 =
|
||||||
|
[]
|
||||||
|
, list10 =
|
||||||
|
[]
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,9 +1,10 @@
|
||||||
module Config.Pages.Services.Services.NixBuilds exposing (..)
|
module Config.Pages.Services.Services.NixBuilds exposing (..)
|
||||||
|
|
||||||
import Config.Pages.Services.Types exposing (..)
|
|
||||||
import Config.Helpers.Converters exposing (formatName)
|
import Config.Helpers.Converters exposing (formatName)
|
||||||
|
import Config.Pages.Services.Types exposing (..)
|
||||||
import Route.Path as Path
|
import Route.Path as Path
|
||||||
|
|
||||||
|
|
||||||
servicesNixBuilds : Service
|
servicesNixBuilds : Service
|
||||||
servicesNixBuilds =
|
servicesNixBuilds =
|
||||||
let
|
let
|
||||||
|
@ -21,4 +22,44 @@ servicesNixBuilds =
|
||||||
, { point = "Assistance with the Nix programming language." }
|
, { point = "Assistance with the Nix programming language." }
|
||||||
, { point = "Receive unlimited revisions before finalization." }
|
, { point = "Receive unlimited revisions before finalization." }
|
||||||
]
|
]
|
||||||
|
, serviceArticle =
|
||||||
|
{ articleTitles =
|
||||||
|
{ title1 = "What You Get"
|
||||||
|
, title2 = "What We Need"
|
||||||
|
, title3 = ""
|
||||||
|
, title4 = ""
|
||||||
|
, title5 = ""
|
||||||
|
, title6 = ""
|
||||||
|
, title7 = ""
|
||||||
|
, title8 = ""
|
||||||
|
, title9 = ""
|
||||||
|
, title10 = ""
|
||||||
|
}
|
||||||
|
, articleParagraph =
|
||||||
|
[]
|
||||||
|
, articleListEntries =
|
||||||
|
{ list1 =
|
||||||
|
[ ""
|
||||||
|
]
|
||||||
|
, list2 =
|
||||||
|
[ ""
|
||||||
|
]
|
||||||
|
, list3 =
|
||||||
|
[]
|
||||||
|
, list4 =
|
||||||
|
[]
|
||||||
|
, list5 =
|
||||||
|
[]
|
||||||
|
, list6 =
|
||||||
|
[]
|
||||||
|
, list7 =
|
||||||
|
[]
|
||||||
|
, list8 =
|
||||||
|
[]
|
||||||
|
, list9 =
|
||||||
|
[]
|
||||||
|
, list10 =
|
||||||
|
[]
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,4 +22,44 @@ servicesNutritionScience =
|
||||||
, { point = "Gain access to nutrition science interpretation cheat-sheets." }
|
, { point = "Gain access to nutrition science interpretation cheat-sheets." }
|
||||||
, { point = "Simplify and streamline the research appraisal process." }
|
, { point = "Simplify and streamline the research appraisal process." }
|
||||||
]
|
]
|
||||||
|
, serviceArticle =
|
||||||
|
{ articleTitles =
|
||||||
|
{ title1 = "What You Get"
|
||||||
|
, title2 = "What We Need"
|
||||||
|
, title3 = ""
|
||||||
|
, title4 = ""
|
||||||
|
, title5 = ""
|
||||||
|
, title6 = ""
|
||||||
|
, title7 = ""
|
||||||
|
, title8 = ""
|
||||||
|
, title9 = ""
|
||||||
|
, title10 = ""
|
||||||
|
}
|
||||||
|
, articleParagraph =
|
||||||
|
[]
|
||||||
|
, articleListEntries =
|
||||||
|
{ list1 =
|
||||||
|
[ ""
|
||||||
|
]
|
||||||
|
, list2 =
|
||||||
|
[ ""
|
||||||
|
]
|
||||||
|
, list3 =
|
||||||
|
[]
|
||||||
|
, list4 =
|
||||||
|
[]
|
||||||
|
, list5 =
|
||||||
|
[]
|
||||||
|
, list6 =
|
||||||
|
[]
|
||||||
|
, list7 =
|
||||||
|
[]
|
||||||
|
, list8 =
|
||||||
|
[]
|
||||||
|
, list9 =
|
||||||
|
[]
|
||||||
|
, list10 =
|
||||||
|
[]
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
module Config.Pages.Services.Types exposing (..)
|
module Config.Pages.Services.Types exposing (..)
|
||||||
|
|
||||||
|
import Element as E exposing (..)
|
||||||
|
|
||||||
|
|
||||||
type alias Service =
|
type alias Service =
|
||||||
{ serviceImage : String
|
{ serviceImage : String
|
||||||
|
@ -7,6 +9,57 @@ type alias Service =
|
||||||
, serviceName : String
|
, serviceName : String
|
||||||
, serviceRate : String
|
, serviceRate : String
|
||||||
, serviceDescription : List Description
|
, serviceDescription : List Description
|
||||||
|
, serviceArticle : Article
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
type alias Article =
|
||||||
|
{ articleParagraph : List String
|
||||||
|
, articleTitles : Title
|
||||||
|
, articleListEntries : ArticleList
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
type alias Title =
|
||||||
|
{ title1 : String
|
||||||
|
, title2 : String
|
||||||
|
, title3 : String
|
||||||
|
, title4 : String
|
||||||
|
, title5 : String
|
||||||
|
, title6 : String
|
||||||
|
, title7 : String
|
||||||
|
, title8 : String
|
||||||
|
, title9 : String
|
||||||
|
, title10 : String
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
type alias ArticleList =
|
||||||
|
{ list1 : List String
|
||||||
|
, list2 : List String
|
||||||
|
, list3 : List String
|
||||||
|
, list4 : List String
|
||||||
|
, list5 : List String
|
||||||
|
, list6 : List String
|
||||||
|
, list7 : List String
|
||||||
|
, list8 : List String
|
||||||
|
, list9 : List String
|
||||||
|
, list10 : List String
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
type alias Bulletpoint =
|
||||||
|
{ entry : String
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
type alias Numbered =
|
||||||
|
{ entry : String
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
type alias Highlighted =
|
||||||
|
{ entry : String
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -549,6 +549,13 @@ nutriDex inner =
|
||||||
{ svgAttributes =
|
{ svgAttributes =
|
||||||
[ SvgAttr.viewBox "0 0 269 254"
|
[ SvgAttr.viewBox "0 0 269 254"
|
||||||
, SvgAttr.fill "currentColor"
|
, SvgAttr.fill "currentColor"
|
||||||
|
|
||||||
|
-- , SvgAttr.width "100%"
|
||||||
|
-- , SvgAttr.height "100%"
|
||||||
|
, SvgAttr.viewBox "0 0 269 254"
|
||||||
|
, SvgAttr.version "1.1"
|
||||||
|
, SvgAttr.xmlSpace "preserve"
|
||||||
|
, SvgAttr.style "fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5;"
|
||||||
]
|
]
|
||||||
, svg =
|
, svg =
|
||||||
[ Svg.g
|
[ Svg.g
|
||||||
|
@ -559,7 +566,9 @@ nutriDex inner =
|
||||||
]
|
]
|
||||||
[ path
|
[ path
|
||||||
[ SvgAttr.d "M2438.06,573.79L2421.04,607.88"
|
[ SvgAttr.d "M2438.06,573.79L2421.04,607.88"
|
||||||
, SvgAttr.fill "currentColor"
|
, SvgAttr.stroke "currentColor"
|
||||||
|
, SvgAttr.fill "none"
|
||||||
|
, SvgAttr.style "stroke-width:26.21px;"
|
||||||
]
|
]
|
||||||
[]
|
[]
|
||||||
]
|
]
|
||||||
|
@ -568,7 +577,9 @@ nutriDex inner =
|
||||||
]
|
]
|
||||||
[ path
|
[ path
|
||||||
[ SvgAttr.d "M2384.94,593.791L2428.07,593.791"
|
[ SvgAttr.d "M2384.94,593.791L2428.07,593.791"
|
||||||
, SvgAttr.fill "currentColor"
|
, SvgAttr.fill "none"
|
||||||
|
, SvgAttr.stroke "currentColor"
|
||||||
|
, SvgAttr.style "stroke-width:15.37px;"
|
||||||
]
|
]
|
||||||
[]
|
[]
|
||||||
]
|
]
|
||||||
|
@ -577,7 +588,9 @@ nutriDex inner =
|
||||||
]
|
]
|
||||||
[ path
|
[ path
|
||||||
[ SvgAttr.d "M2439.01,851.153L2458.28,851.153"
|
[ SvgAttr.d "M2439.01,851.153L2458.28,851.153"
|
||||||
, SvgAttr.fill "currentColor"
|
, SvgAttr.fill "none"
|
||||||
|
, SvgAttr.stroke "currentColor"
|
||||||
|
, SvgAttr.style "stroke-width:10.94px;"
|
||||||
]
|
]
|
||||||
[]
|
[]
|
||||||
]
|
]
|
||||||
|
@ -595,7 +608,9 @@ nutriDex inner =
|
||||||
]
|
]
|
||||||
[ path
|
[ path
|
||||||
[ SvgAttr.d "M2344.65,603.881L2362.65,634.203L2338.66,673.941L2384.94,673.941"
|
[ SvgAttr.d "M2344.65,603.881L2362.65,634.203L2338.66,673.941L2384.94,673.941"
|
||||||
, SvgAttr.fill "currentColor"
|
, SvgAttr.fill "none"
|
||||||
|
, SvgAttr.stroke "currentColor"
|
||||||
|
, SvgAttr.style "stroke-width:15.37px;"
|
||||||
]
|
]
|
||||||
[]
|
[]
|
||||||
]
|
]
|
||||||
|
@ -604,8 +619,9 @@ nutriDex inner =
|
||||||
]
|
]
|
||||||
[ path
|
[ path
|
||||||
[ SvgAttr.d "M2423.66,877.745L2456.6,877.745"
|
[ SvgAttr.d "M2423.66,877.745L2456.6,877.745"
|
||||||
, SvgAttr.style "none"
|
, SvgAttr.fill "none"
|
||||||
, SvgAttr.fill "currentColor"
|
, SvgAttr.stroke "currentColor"
|
||||||
|
, SvgAttr.style "stroke-width:10.94px;"
|
||||||
]
|
]
|
||||||
[]
|
[]
|
||||||
]
|
]
|
||||||
|
|
0
frontend/src/Layouts/Navbar.elm
Normal file → Executable file
0
frontend/src/Layouts/Navbar.elm
Normal file → Executable file
|
@ -11,7 +11,7 @@ import Config.Pages.Headers.Helpers exposing (headerMaker)
|
||||||
import Config.Pages.Headers.Pages.Services exposing (servicesHeader)
|
import Config.Pages.Headers.Pages.Services exposing (servicesHeader)
|
||||||
import Config.Pages.Services.Helpers exposing (..)
|
import Config.Pages.Services.Helpers exposing (..)
|
||||||
import Config.Pages.Services.Services.DebateAnalysis exposing (..)
|
import Config.Pages.Services.Services.DebateAnalysis exposing (..)
|
||||||
import Config.Pages.Services.Services.DebateTutoring exposing (..)
|
import Config.Pages.Services.Services.DebateCoaching exposing (..)
|
||||||
import Config.Pages.Services.Services.ElmBuilds exposing (..)
|
import Config.Pages.Services.Services.ElmBuilds exposing (..)
|
||||||
import Config.Pages.Services.Services.NixBuilds exposing (..)
|
import Config.Pages.Services.Services.NixBuilds exposing (..)
|
||||||
import Config.Pages.Services.Services.NutritionScience exposing (..)
|
import Config.Pages.Services.Services.NutritionScience exposing (..)
|
||||||
|
@ -123,7 +123,7 @@ servicesList device =
|
||||||
List.map serviceMaker
|
List.map serviceMaker
|
||||||
)
|
)
|
||||||
[ servicesDebateAnalysis
|
[ servicesDebateAnalysis
|
||||||
, servicesDebateTutoring
|
, servicesDebateCoaching
|
||||||
, servicesNutritionScience
|
, servicesNutritionScience
|
||||||
, servicesNixBuilds
|
, servicesNixBuilds
|
||||||
, servicesElmBuilds
|
, servicesElmBuilds
|
||||||
|
|
|
@ -1,9 +1,30 @@
|
||||||
module Pages.Services.Analysis exposing (Model, Msg, page)
|
module Pages.Services.Analysis exposing (Model, Msg, page)
|
||||||
|
|
||||||
|
import Config.Helpers.ArticleFormat exposing (..)
|
||||||
|
import Config.Helpers.CardFormat exposing (..)
|
||||||
|
import Config.Helpers.Format exposing (..)
|
||||||
|
import Config.Helpers.Response exposing (pageList, topLevelContainer)
|
||||||
|
import Config.Helpers.ToolTip exposing (..)
|
||||||
|
import Config.Pages.Headers.Types exposing (..)
|
||||||
|
import Config.Pages.Services.Services.DebateAnalysis exposing (..)
|
||||||
|
import Config.Style.Colour exposing (colourTheme)
|
||||||
|
import Config.Style.Transitions
|
||||||
|
exposing
|
||||||
|
( hoverFontDarkOrange
|
||||||
|
, transitionStyleFast
|
||||||
|
, transitionStyleSlow
|
||||||
|
)
|
||||||
import Effect exposing (Effect)
|
import Effect exposing (Effect)
|
||||||
import Route exposing (Route)
|
import Element as E exposing (..)
|
||||||
|
import Element.Background as B
|
||||||
|
import Element.Border as D
|
||||||
|
import Element.Font as F
|
||||||
import Html
|
import Html
|
||||||
|
import Html.Attributes as H exposing (style)
|
||||||
|
import Layouts
|
||||||
import Page exposing (Page)
|
import Page exposing (Page)
|
||||||
|
import Route exposing (Route)
|
||||||
|
import Route.Path as Path
|
||||||
import Shared
|
import Shared
|
||||||
import View exposing (View)
|
import View exposing (View)
|
||||||
|
|
||||||
|
@ -14,8 +35,14 @@ page shared route =
|
||||||
{ init = init
|
{ init = init
|
||||||
, update = update
|
, update = update
|
||||||
, subscriptions = subscriptions
|
, subscriptions = subscriptions
|
||||||
, view = view
|
, view = view shared
|
||||||
}
|
}
|
||||||
|
|> Page.withLayout toLayout
|
||||||
|
|
||||||
|
|
||||||
|
toLayout : Model -> Layouts.Layout Msg
|
||||||
|
toLayout model =
|
||||||
|
Layouts.Navbar {}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -63,6 +90,53 @@ subscriptions model =
|
||||||
-- VIEW
|
-- VIEW
|
||||||
|
|
||||||
|
|
||||||
view : Model -> View Msg
|
view : Shared.Model -> Model -> View Msg
|
||||||
view model =
|
view shared model =
|
||||||
View.fromString "Pages.Services.Analysis"
|
{ title = "services (analysis)"
|
||||||
|
, attributes = []
|
||||||
|
, element = analysisContainer shared.device
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
analysisContainer : Device -> Element msg
|
||||||
|
analysisContainer device =
|
||||||
|
topLevelContainer (analysisList device)
|
||||||
|
|
||||||
|
|
||||||
|
analysisList : Device -> Element msg
|
||||||
|
analysisList device =
|
||||||
|
column pageList <|
|
||||||
|
List.concat
|
||||||
|
(case ( device.class, device.orientation ) of
|
||||||
|
_ ->
|
||||||
|
[ [ serviceMaker ] ]
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
serviceMaker : Element msg
|
||||||
|
serviceMaker =
|
||||||
|
row
|
||||||
|
topLevelBox
|
||||||
|
[ cardMaker
|
||||||
|
[ cardTitleMaker (String.toUpper servicesDebateAnalysis.serviceName)
|
||||||
|
, cardFormatter
|
||||||
|
[ cardContentSpacing
|
||||||
|
[ column
|
||||||
|
fieldSpacer
|
||||||
|
[ cardSubTitleMaker
|
||||||
|
[ column
|
||||||
|
bodyFormat
|
||||||
|
[ chunkMaker servicesDebateAnalysis.serviceArticle.articleParagraph
|
||||||
|
, titleMaker servicesDebateAnalysis.serviceArticle.articleTitles.title1
|
||||||
|
|
||||||
|
-- , highlightedBlockMaker
|
||||||
|
, numberMaker servicesDebateAnalysis.serviceArticle.articleListEntries.list1
|
||||||
|
, titleMaker servicesDebateAnalysis.serviceArticle.articleTitles.title2
|
||||||
|
, bulletPointMaker servicesDebateAnalysis.serviceArticle.articleListEntries.list2
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
|
|
@ -1,19 +1,34 @@
|
||||||
module Pages.Services.Coaching exposing (Model, Msg, page)
|
module Pages.Services.Coaching exposing (Model, Msg, page)
|
||||||
|
|
||||||
-- import Config.Pages.Services.Coaching.Helpers exposing (instructionMaker)
|
import Config.Helpers.ArticleFormat exposing (..)
|
||||||
|
import Config.Helpers.CardFormat exposing (..)
|
||||||
import Config.Data.Identity exposing (pageNames)
|
import Config.Helpers.Format exposing (..)
|
||||||
import Config.Helpers.Response
|
import Config.Helpers.Response
|
||||||
exposing
|
exposing
|
||||||
( pageList
|
( pageList
|
||||||
, topLevelContainer
|
, topLevelContainer
|
||||||
)
|
)
|
||||||
|
import Config.Helpers.ToolTip exposing (..)
|
||||||
|
import Config.Pages.Headers.Types exposing (..)
|
||||||
|
import Config.Pages.Services.Services.DebateCoaching exposing (servicesDebateCoaching)
|
||||||
|
import Config.Style.Colour exposing (colourTheme)
|
||||||
|
import Config.Style.Transitions
|
||||||
|
exposing
|
||||||
|
( hoverFontDarkOrange
|
||||||
|
, transitionStyleFast
|
||||||
|
, transitionStyleSlow
|
||||||
|
)
|
||||||
import Effect exposing (Effect)
|
import Effect exposing (Effect)
|
||||||
import Element as E exposing (..)
|
import Element as E exposing (..)
|
||||||
|
import Element.Background as B
|
||||||
|
import Element.Border as D
|
||||||
|
import Element.Font as F
|
||||||
import Html
|
import Html
|
||||||
|
import Html.Attributes as H exposing (style)
|
||||||
import Layouts
|
import Layouts
|
||||||
import Page exposing (Page)
|
import Page exposing (Page)
|
||||||
import Route exposing (Route)
|
import Route exposing (Route)
|
||||||
|
import Route.Path as Path
|
||||||
import Shared
|
import Shared
|
||||||
import View exposing (View)
|
import View exposing (View)
|
||||||
|
|
||||||
|
@ -81,22 +96,50 @@ subscriptions model =
|
||||||
|
|
||||||
view : Shared.Model -> Model -> View Msg
|
view : Shared.Model -> Model -> View Msg
|
||||||
view shared model =
|
view shared model =
|
||||||
{ title = pageNames.pageContact ++ " ( )"
|
{ title = "services (coaching)"
|
||||||
, attributes = []
|
, attributes = []
|
||||||
, element = coachContainer shared.device
|
, element = coachingContainer shared.device
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
coachContainer : Device -> Element msg
|
coachingContainer : Device -> Element msg
|
||||||
coachContainer device =
|
coachingContainer device =
|
||||||
topLevelContainer (coachList device)
|
topLevelContainer (coachingList device)
|
||||||
|
|
||||||
|
|
||||||
coachList : Device -> Element msg
|
coachingList : Device -> Element msg
|
||||||
coachList device =
|
coachingList device =
|
||||||
column pageList <|
|
column pageList <|
|
||||||
List.concat
|
List.concat
|
||||||
(case ( device.class, device.orientation ) of
|
(case ( device.class, device.orientation ) of
|
||||||
_ ->
|
_ ->
|
||||||
[ [] ]
|
[ [ serviceMaker ] ]
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
serviceMaker : Element msg
|
||||||
|
serviceMaker =
|
||||||
|
row
|
||||||
|
topLevelBox
|
||||||
|
[ cardMaker
|
||||||
|
[ cardTitleMaker (String.toUpper servicesDebateCoaching.serviceName)
|
||||||
|
, cardFormatter
|
||||||
|
[ cardContentSpacing
|
||||||
|
[ column
|
||||||
|
fieldSpacer
|
||||||
|
[ cardSubTitleMaker
|
||||||
|
[ column
|
||||||
|
bodyFormat
|
||||||
|
[ chunkMaker servicesDebateCoaching.serviceArticle.articleParagraph
|
||||||
|
, titleMaker servicesDebateCoaching.serviceArticle.articleTitles.title1
|
||||||
|
, highlightedBlockMaker servicesDebateCoaching.serviceArticle.articleTitles.title3 servicesDebateCoaching.serviceArticle.articleListEntries.list3
|
||||||
|
, numberMaker servicesDebateCoaching.serviceArticle.articleListEntries.list1
|
||||||
|
, titleMaker servicesDebateCoaching.serviceArticle.articleTitles.title2
|
||||||
|
, bulletPointMaker servicesDebateCoaching.serviceArticle.articleListEntries.list2
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
|
|
@ -1,9 +1,34 @@
|
||||||
module Pages.Services.Elm exposing (Model, Msg, page)
|
module Pages.Services.Elm exposing (Model, Msg, page)
|
||||||
|
|
||||||
|
import Config.Helpers.ArticleFormat exposing (..)
|
||||||
|
import Config.Helpers.CardFormat exposing (..)
|
||||||
|
import Config.Helpers.Format exposing (..)
|
||||||
|
import Config.Helpers.Response
|
||||||
|
exposing
|
||||||
|
( pageList
|
||||||
|
, topLevelContainer
|
||||||
|
)
|
||||||
|
import Config.Helpers.ToolTip exposing (..)
|
||||||
|
import Config.Pages.Headers.Types exposing (..)
|
||||||
|
import Config.Pages.Services.Services.ElmBuilds exposing (servicesElmBuilds)
|
||||||
|
import Config.Style.Colour exposing (colourTheme)
|
||||||
|
import Config.Style.Transitions
|
||||||
|
exposing
|
||||||
|
( hoverFontDarkOrange
|
||||||
|
, transitionStyleFast
|
||||||
|
, transitionStyleSlow
|
||||||
|
)
|
||||||
import Effect exposing (Effect)
|
import Effect exposing (Effect)
|
||||||
import Route exposing (Route)
|
import Element as E exposing (..)
|
||||||
|
import Element.Background as B
|
||||||
|
import Element.Border as D
|
||||||
|
import Element.Font as F
|
||||||
import Html
|
import Html
|
||||||
|
import Html.Attributes as H exposing (style)
|
||||||
|
import Layouts
|
||||||
import Page exposing (Page)
|
import Page exposing (Page)
|
||||||
|
import Route exposing (Route)
|
||||||
|
import Route.Path as Path
|
||||||
import Shared
|
import Shared
|
||||||
import View exposing (View)
|
import View exposing (View)
|
||||||
|
|
||||||
|
@ -14,8 +39,14 @@ page shared route =
|
||||||
{ init = init
|
{ init = init
|
||||||
, update = update
|
, update = update
|
||||||
, subscriptions = subscriptions
|
, subscriptions = subscriptions
|
||||||
, view = view
|
, view = view shared
|
||||||
}
|
}
|
||||||
|
|> Page.withLayout toLayout
|
||||||
|
|
||||||
|
|
||||||
|
toLayout : Model -> Layouts.Layout Msg
|
||||||
|
toLayout model =
|
||||||
|
Layouts.Navbar {}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -63,6 +94,51 @@ subscriptions model =
|
||||||
-- VIEW
|
-- VIEW
|
||||||
|
|
||||||
|
|
||||||
view : Model -> View Msg
|
view : Shared.Model -> Model -> View Msg
|
||||||
view model =
|
view shared model =
|
||||||
View.fromString "Pages.Services.Elm"
|
{ title = "services (elmBuilds)"
|
||||||
|
, attributes = []
|
||||||
|
, element = elmBuildsContainer shared.device
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
elmBuildsContainer : Device -> Element msg
|
||||||
|
elmBuildsContainer device =
|
||||||
|
topLevelContainer (elmBuildsList device)
|
||||||
|
|
||||||
|
|
||||||
|
elmBuildsList : Device -> Element msg
|
||||||
|
elmBuildsList device =
|
||||||
|
column pageList <|
|
||||||
|
List.concat
|
||||||
|
(case ( device.class, device.orientation ) of
|
||||||
|
_ ->
|
||||||
|
[ [ serviceMaker ] ]
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
serviceMaker : Element msg
|
||||||
|
serviceMaker =
|
||||||
|
row
|
||||||
|
topLevelBox
|
||||||
|
[ cardMaker
|
||||||
|
[ cardTitleMaker (String.toUpper servicesElmBuilds.serviceName)
|
||||||
|
, cardFormatter
|
||||||
|
[ cardContentSpacing
|
||||||
|
[ column
|
||||||
|
fieldSpacer
|
||||||
|
[ cardSubTitleMaker
|
||||||
|
[ column
|
||||||
|
bodyFormat
|
||||||
|
[-- chunkMaker
|
||||||
|
-- , titleMaker
|
||||||
|
-- , highlightedBlockMaker
|
||||||
|
-- , bulletPointMaker
|
||||||
|
-- , numberMaker
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
|
|
@ -1,9 +1,34 @@
|
||||||
module Pages.Services.Nix exposing (Model, Msg, page)
|
module Pages.Services.Nix exposing (Model, Msg, page)
|
||||||
|
|
||||||
|
import Config.Helpers.ArticleFormat exposing (..)
|
||||||
|
import Config.Helpers.CardFormat exposing (..)
|
||||||
|
import Config.Helpers.Format exposing (..)
|
||||||
|
import Config.Helpers.Response
|
||||||
|
exposing
|
||||||
|
( pageList
|
||||||
|
, topLevelContainer
|
||||||
|
)
|
||||||
|
import Config.Helpers.ToolTip exposing (..)
|
||||||
|
import Config.Pages.Headers.Types exposing (..)
|
||||||
|
import Config.Pages.Services.Services.NixBuilds exposing (servicesNixBuilds)
|
||||||
|
import Config.Style.Colour exposing (colourTheme)
|
||||||
|
import Config.Style.Transitions
|
||||||
|
exposing
|
||||||
|
( hoverFontDarkOrange
|
||||||
|
, transitionStyleFast
|
||||||
|
, transitionStyleSlow
|
||||||
|
)
|
||||||
import Effect exposing (Effect)
|
import Effect exposing (Effect)
|
||||||
import Route exposing (Route)
|
import Element as E exposing (..)
|
||||||
|
import Element.Background as B
|
||||||
|
import Element.Border as D
|
||||||
|
import Element.Font as F
|
||||||
import Html
|
import Html
|
||||||
|
import Html.Attributes as H exposing (style)
|
||||||
|
import Layouts
|
||||||
import Page exposing (Page)
|
import Page exposing (Page)
|
||||||
|
import Route exposing (Route)
|
||||||
|
import Route.Path as Path
|
||||||
import Shared
|
import Shared
|
||||||
import View exposing (View)
|
import View exposing (View)
|
||||||
|
|
||||||
|
@ -14,8 +39,15 @@ page shared route =
|
||||||
{ init = init
|
{ init = init
|
||||||
, update = update
|
, update = update
|
||||||
, subscriptions = subscriptions
|
, subscriptions = subscriptions
|
||||||
, view = view
|
, view = view shared
|
||||||
}
|
}
|
||||||
|
|> Page.withLayout toLayout
|
||||||
|
|
||||||
|
|
||||||
|
toLayout : Model -> Layouts.Layout Msg
|
||||||
|
toLayout model =
|
||||||
|
Layouts.Navbar {}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -63,6 +95,51 @@ subscriptions model =
|
||||||
-- VIEW
|
-- VIEW
|
||||||
|
|
||||||
|
|
||||||
view : Model -> View Msg
|
view : Shared.Model -> Model -> View Msg
|
||||||
view model =
|
view shared model =
|
||||||
View.fromString "Pages.Services.Nix"
|
{ title = "services (nixConfigs)"
|
||||||
|
, attributes = []
|
||||||
|
, element = elmBuildsContainer shared.device
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
elmBuildsContainer : Device -> Element msg
|
||||||
|
elmBuildsContainer device =
|
||||||
|
topLevelContainer (elmBuildsList device)
|
||||||
|
|
||||||
|
|
||||||
|
elmBuildsList : Device -> Element msg
|
||||||
|
elmBuildsList device =
|
||||||
|
column pageList <|
|
||||||
|
List.concat
|
||||||
|
(case ( device.class, device.orientation ) of
|
||||||
|
_ ->
|
||||||
|
[ [ serviceMaker ] ]
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
serviceMaker : Element msg
|
||||||
|
serviceMaker =
|
||||||
|
row
|
||||||
|
topLevelBox
|
||||||
|
[ cardMaker
|
||||||
|
[ cardTitleMaker (String.toUpper servicesNixBuilds.serviceName)
|
||||||
|
, cardFormatter
|
||||||
|
[ cardContentSpacing
|
||||||
|
[ column
|
||||||
|
fieldSpacer
|
||||||
|
[ cardSubTitleMaker
|
||||||
|
[ column
|
||||||
|
bodyFormat
|
||||||
|
[-- chunkMaker
|
||||||
|
-- , titleMaker
|
||||||
|
-- , highlightedBlockMaker
|
||||||
|
-- , bulletPointMaker
|
||||||
|
-- , numberMaker
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
|
|
@ -1,9 +1,34 @@
|
||||||
module Pages.Services.Nutrition exposing (Model, Msg, page)
|
module Pages.Services.Nutrition exposing (Model, Msg, page)
|
||||||
|
|
||||||
|
import Config.Helpers.ArticleFormat exposing (..)
|
||||||
|
import Config.Helpers.CardFormat exposing (..)
|
||||||
|
import Config.Helpers.Format exposing (..)
|
||||||
|
import Config.Helpers.Response
|
||||||
|
exposing
|
||||||
|
( pageList
|
||||||
|
, topLevelContainer
|
||||||
|
)
|
||||||
|
import Config.Helpers.ToolTip exposing (..)
|
||||||
|
import Config.Pages.Headers.Types exposing (..)
|
||||||
|
import Config.Pages.Services.Services.NutritionScience exposing (servicesNutritionScience)
|
||||||
|
import Config.Style.Colour exposing (colourTheme)
|
||||||
|
import Config.Style.Transitions
|
||||||
|
exposing
|
||||||
|
( hoverFontDarkOrange
|
||||||
|
, transitionStyleFast
|
||||||
|
, transitionStyleSlow
|
||||||
|
)
|
||||||
import Effect exposing (Effect)
|
import Effect exposing (Effect)
|
||||||
import Route exposing (Route)
|
import Element as E exposing (..)
|
||||||
|
import Element.Background as B
|
||||||
|
import Element.Border as D
|
||||||
|
import Element.Font as F
|
||||||
import Html
|
import Html
|
||||||
|
import Html.Attributes as H exposing (style)
|
||||||
|
import Layouts
|
||||||
import Page exposing (Page)
|
import Page exposing (Page)
|
||||||
|
import Route exposing (Route)
|
||||||
|
import Route.Path as Path
|
||||||
import Shared
|
import Shared
|
||||||
import View exposing (View)
|
import View exposing (View)
|
||||||
|
|
||||||
|
@ -14,8 +39,14 @@ page shared route =
|
||||||
{ init = init
|
{ init = init
|
||||||
, update = update
|
, update = update
|
||||||
, subscriptions = subscriptions
|
, subscriptions = subscriptions
|
||||||
, view = view
|
, view = view shared
|
||||||
}
|
}
|
||||||
|
|> Page.withLayout toLayout
|
||||||
|
|
||||||
|
|
||||||
|
toLayout : Model -> Layouts.Layout Msg
|
||||||
|
toLayout model =
|
||||||
|
Layouts.Navbar {}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -63,6 +94,51 @@ subscriptions model =
|
||||||
-- VIEW
|
-- VIEW
|
||||||
|
|
||||||
|
|
||||||
view : Model -> View Msg
|
view : Shared.Model -> Model -> View Msg
|
||||||
view model =
|
view shared model =
|
||||||
View.fromString "Pages.Services.Nutrition"
|
{ title = "services (nutritionChat)"
|
||||||
|
, attributes = []
|
||||||
|
, element = nutritionContainer shared.device
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
nutritionContainer : Device -> Element msg
|
||||||
|
nutritionContainer device =
|
||||||
|
topLevelContainer (nutritionList device)
|
||||||
|
|
||||||
|
|
||||||
|
nutritionList : Device -> Element msg
|
||||||
|
nutritionList device =
|
||||||
|
column pageList <|
|
||||||
|
List.concat
|
||||||
|
(case ( device.class, device.orientation ) of
|
||||||
|
_ ->
|
||||||
|
[ [ serviceMaker ] ]
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
serviceMaker : Element msg
|
||||||
|
serviceMaker =
|
||||||
|
row
|
||||||
|
topLevelBox
|
||||||
|
[ cardMaker
|
||||||
|
[ cardTitleMaker (String.toUpper servicesNutritionScience.serviceName)
|
||||||
|
, cardFormatter
|
||||||
|
[ cardContentSpacing
|
||||||
|
[ column
|
||||||
|
fieldSpacer
|
||||||
|
[ cardSubTitleMaker
|
||||||
|
[ column
|
||||||
|
bodyFormat
|
||||||
|
[-- chunkMaker
|
||||||
|
-- , titleMaker
|
||||||
|
-- , highlightedBlockMaker
|
||||||
|
-- , bulletPointMaker
|
||||||
|
-- , numberMaker
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue