From dff755f8691306acf2044242de5e0bac8a3ebcc8 Mon Sep 17 00:00:00 2001 From: David Russell Date: Wed, 7 Mar 2018 15:25:06 +0700 Subject: [PATCH] Support for PITCHME.yaml layout setting. --- app/com/gitpitch/models/SlideshowModel.java | 28 ++++++++++++++++-- app/com/gitpitch/utils/YAMLOptions.java | 29 +++++++++++++++++++ .../SlideshowRevealCoreOverrides.scala.html | 20 +++++++++++++ 3 files changed, 75 insertions(+), 2 deletions(-) diff --git a/app/com/gitpitch/models/SlideshowModel.java b/app/com/gitpitch/models/SlideshowModel.java index 24e2d0c..45bd44b 100644 --- a/app/com/gitpitch/models/SlideshowModel.java +++ b/app/com/gitpitch/models/SlideshowModel.java @@ -213,6 +213,20 @@ public class SlideshowModel { return PitchParams.isDarkTheme(fetchTheme()); } + /* + * Return true if "layout" in *-left. + */ + public boolean isLeftLayout() { + return (_yOpts != null) ? _yOpts.isLeftLayout(params()) : false; + } + + /* + * Return true if "layout" in *-right. + */ + public boolean isRightLayout() { + return (_yOpts != null) ? _yOpts.isRightLayout(params()) : false; + } + /* * Return true if "logo" defined in PITCHME.yaml. */ @@ -305,8 +319,18 @@ public class SlideshowModel { * Return "vertical-center" defined in PITCHME.yaml. */ public boolean fetchVerticalCenter() { - return (_yOpts != null) ? - _yOpts.fetchVerticalCenter(params()) : true; + + boolean vc = true; + + if(_yOpts == null) { + vc = true; + } else + if(_yOpts.isTopLayout(params())) { + vc = false; + } else { + vc = _yOpts.fetchVerticalCenter(params()); + } + return vc; } /* diff --git a/app/com/gitpitch/utils/YAMLOptions.java b/app/com/gitpitch/utils/YAMLOptions.java index 51d548e..232c8fd 100644 --- a/app/com/gitpitch/utils/YAMLOptions.java +++ b/app/com/gitpitch/utils/YAMLOptions.java @@ -113,6 +113,27 @@ public final class YAMLOptions { return pp.isValidTheme(theme) ? theme : pp.theme; } + public String fetchLayout(PitchParams pp) { + String layout = _yProps.get(LAYOUT_OPTION); + return isValidLayout(layout) ? layout : DEFAULT_LAYOUT; + } + + private boolean isValidLayout(String layoutName) { + return DEFAULT_LAYOUTS.contains(layoutName); + } + + public boolean isLeftLayout(PitchParams pp) { + return fetchLayout(pp).contains(LEFT); + } + + public boolean isRightLayout(PitchParams pp) { + return fetchLayout(pp).contains(RIGHT); + } + + public boolean isTopLayout(PitchParams pp) { + return fetchLayout(pp).contains(TOP); + } + public String fetchThemeCSS(PitchParams pp) { return new StringBuffer(fetchTheme(pp)).append(DOT_CSS) @@ -424,4 +445,12 @@ public final class YAMLOptions { "Accessible"); private static final String ABS_HTTP = "http"; private static final String DOT_CSS = ".css"; + + private static final String LAYOUT_OPTION = "layout"; + private static final String DEFAULT_LAYOUT = "center"; + private static final List DEFAULT_LAYOUTS = + Arrays.asList("center", "center-left", "center-right", "top", "top-left", "top-right"); + private static final String LEFT = "left"; + private static final String RIGHT = "right"; + private static final String TOP = "top"; } diff --git a/app/com/gitpitch/views/frags/SlideshowRevealCoreOverrides.scala.html b/app/com/gitpitch/views/frags/SlideshowRevealCoreOverrides.scala.html index 1c2dec4..23821dc 100644 --- a/app/com/gitpitch/views/frags/SlideshowRevealCoreOverrides.scala.html +++ b/app/com/gitpitch/views/frags/SlideshowRevealCoreOverrides.scala.html @@ -27,4 +27,24 @@ color: gray !important; background-color: inherit !important; } + @if(ssm.options() != null && + ssm.options().isLeftLayout(ssm.params())) { + .reveal .slides { + text-align: left; + } + .reveal .slides section>* { + margin-left: 0; + margin-right: 0; + } + } + @if(ssm.options() != null && + ssm.options().isRightLayout(ssm.params())) { + .reveal .slides { + text-align: right; + } + .reveal .slides section>* { + margin-left: 0; + margin-right: 0; + } + }