@openeventkit/event-site 2.0.42 → 2.0.44

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@openeventkit/event-site",
3
3
  "description": "Event Site",
4
- "version": "2.0.42",
4
+ "version": "2.0.44",
5
5
  "author": "Tipit LLC",
6
6
  "dependencies": {
7
7
  "@mui/base": "^5.0.0-alpha.114",
@@ -21,7 +21,7 @@
21
21
  "@types/react": "^16.9.42",
22
22
  "@vimeo/player": "^2.16.3",
23
23
  "ably": "^1.2.34",
24
- "attendee-to-attendee-widget": "3.0.4",
24
+ "attendee-to-attendee-widget": "3.0.5",
25
25
  "awesome-bootstrap-checkbox": "^1.0.1",
26
26
  "axios": "^0.19.2",
27
27
  "babel-preset-gatsby": "^3.9.0",
@@ -0,0 +1,39 @@
1
+ import {
2
+ stringField,
3
+ objectField,
4
+ imageWithAltField
5
+ } from "../../../fields";
6
+
7
+ import {
8
+ EXPO_HALL_PAGE_FILE_PATH
9
+ } from "@utils/filePath";
10
+
11
+ const expoHallPage = {
12
+ label: "Expo Hall Page",
13
+ name: "expo-hall-page",
14
+ file: EXPO_HALL_PAGE_FILE_PATH,
15
+ fields: [
16
+ objectField({
17
+ label: "Hero",
18
+ name: "hero",
19
+ fields: [
20
+ stringField({
21
+ label: "Title",
22
+ name: "title"
23
+ }),
24
+ stringField({
25
+ label: "Subtitle",
26
+ name: "subTitle",
27
+ required: false
28
+ }),
29
+ imageWithAltField({
30
+ label: "Background Image",
31
+ name: "background"
32
+ })
33
+ ]
34
+ })
35
+ ]
36
+ };
37
+
38
+ export default expoHallPage;
39
+
@@ -0,0 +1,15 @@
1
+
2
+ module.exports = `
3
+ type ImageWithAlt {
4
+ src: File @fileByRelativePath
5
+ alt: String
6
+ }
7
+ type ExpoHallPageHero {
8
+ title: String
9
+ subTitle: String
10
+ background: ImageWithAlt
11
+ }
12
+ type ExpoHallPageJson implements Node {
13
+ hero: ExpoHallPageHero
14
+ }
15
+ `;
@@ -4,6 +4,7 @@ import {
4
4
 
5
5
  import marketingPage from "./marketingPage";
6
6
  import lobbyPage from "./lobbyPage";
7
+ import expoHallPage from "./expoHallPage";
7
8
 
8
9
  const defaultPagesCollection = {
9
10
  ...collectionDefaults({
@@ -12,7 +13,8 @@ const defaultPagesCollection = {
12
13
  }),
13
14
  files: [
14
15
  marketingPage,
15
- lobbyPage
16
+ lobbyPage,
17
+ expoHallPage
16
18
  ]
17
19
  };
18
20
 
@@ -60,6 +60,22 @@ const lobbyPage = {
60
60
  label: "Live Event Widget - Featured Event",
61
61
  name: "liveNowFeaturedEventId",
62
62
  required: false
63
+ }),
64
+ objectField({
65
+ label: "Sponsors Widget Button",
66
+ name: "sponsorsWidgetButton",
67
+ fields: [
68
+ stringField({
69
+ label: "Text",
70
+ name: "text",
71
+ required: false
72
+ }),
73
+ stringField({
74
+ label: "Link",
75
+ name: "link",
76
+ required: false
77
+ }),
78
+ ]
63
79
  })
64
80
  ]
65
81
  };
@@ -1,5 +1,9 @@
1
1
 
2
2
  module.exports = `
3
+ type Button {
4
+ text: String
5
+ link: String
6
+ }
3
7
  type ImageWithAlt {
4
8
  src: File @fileByRelativePath
5
9
  alt: String
@@ -20,5 +24,6 @@ module.exports = `
20
24
  hero: LobbyPageHero
21
25
  centerColumn: LobbyPageCenterColumn
22
26
  liveNowFeaturedEventId: String
27
+ sponsorsWidgetButton: Button
23
28
  }
24
29
  `;
@@ -1,7 +1,9 @@
1
1
  const marketingPageTypeDefs = require("./marketingPage/typeDefs");
2
2
  const lobbyPageTypeDefs = require("./lobbyPage/typeDefs");
3
+ const expoHallPageTypeDefs = require("./expoHallPage/typeDefs");
3
4
 
4
5
  module.exports = [
5
6
  marketingPageTypeDefs,
6
- lobbyPageTypeDefs
7
+ lobbyPageTypeDefs,
8
+ expoHallPageTypeDefs
7
9
  ].join("");
@@ -1,17 +1,17 @@
1
- import React from 'react'
1
+ import * as React from "react";
2
2
  import { connect } from "react-redux";
3
3
  import Slider from "react-slick";
4
- import Link from '../components/Link'
5
- import { getSponsorURL } from '../utils/urlFormating'
4
+ import Link from "../components/Link";
5
+ import { getSponsorURL } from "../utils/urlFormating";
6
6
 
7
- import styles from '../styles/sponsor.module.scss'
7
+ import styles from "../styles/sponsor.module.scss";
8
8
 
9
- const SponsorComponent = ({ page, sponsorsState, lobbyButton }) => {
9
+ const SponsorComponent = ({ page, sponsorsState, linkButton }) => {
10
10
  let renderButton = false;
11
11
 
12
12
  let sponsorsByTier = sponsorsState.reduce((memo, x) => {
13
- if (!memo[x['sponsorship'].type.name]) { memo[x['sponsorship'].type.name] = []; }
14
- memo[x['sponsorship'].type.name].push(x);
13
+ if (!memo[x["sponsorship"].type.name]) { memo[x["sponsorship"].type.name] = []; }
14
+ memo[x["sponsorship"].type.name].push(x);
15
15
  return memo;
16
16
  }, {});
17
17
 
@@ -24,16 +24,16 @@ const SponsorComponent = ({ page, sponsorsState, lobbyButton }) => {
24
24
  {Object.values(sponsorsByTier).sort((a, b) => a.order - b.order).map((tier, tierIndex) => {
25
25
  const sponsors = tier.sponsors.sort((a, b) => a.order - b.order);
26
26
  if (!tier) return null;
27
- const template = page === 'lobby' ? tier.lobby_template : page === 'event' ? tier.event_page_template : 'expo-hall';
27
+ const template = page === "lobby" ? tier.lobby_template : page === "event" ? tier.event_page_template : "expo-hall";
28
28
  if (sponsors?.length > 0) {
29
29
  renderButton = true;
30
30
  switch (template) {
31
- case 'big-images': {
32
- if (page === 'lobby' && !tier.should_display_on_lobby_page) {
31
+ case "big-images": {
32
+ if (page === "lobby" && !tier.should_display_on_lobby_page) {
33
33
  return null
34
34
  } else {
35
35
  return (
36
- <div className={`${tierIndex === 0 ? styles.firstContainer : ''} ${styles.bigImageContainer}`} key={tierIndex}>
36
+ <div className={`${tierIndex === 0 ? styles.firstContainer : ""} ${styles.bigImageContainer}`} key={tierIndex}>
37
37
  {tier.widget_title &&
38
38
  <span><b>{tier.widget_title}</b></span>
39
39
  }
@@ -59,17 +59,17 @@ const SponsorComponent = ({ page, sponsorsState, lobbyButton }) => {
59
59
  )
60
60
  }
61
61
  }
62
- case 'small-images': {
63
- if (page === 'lobby' && !tier.should_display_on_lobby_page) {
62
+ case "small-images": {
63
+ if (page === "lobby" && !tier.should_display_on_lobby_page) {
64
64
  return null
65
65
  } else {
66
66
  return (
67
- <div className={`${tierIndex === 0 ? styles.firstContainer : ''} ${styles.smallImageContainer}`} key={tierIndex}>
67
+ <div className={`${tierIndex === 0 ? styles.firstContainer : ""} ${styles.smallImageContainer}`} key={tierIndex}>
68
68
  {tier.widget_title &&
69
69
  <span><b>{tier.widget_title}</b></span>
70
70
  }
71
71
  {sponsors.map((sponsor, index) => {
72
- if (page === 'event' && !sponsor.showLogoInEventPage) return null
72
+ if (page === "event" && !sponsor.showLogoInEventPage) return null
73
73
  return (
74
74
  (!sponsor.company.big_logo && !sponsor.company.logo) ?
75
75
  null
@@ -96,9 +96,9 @@ const SponsorComponent = ({ page, sponsorsState, lobbyButton }) => {
96
96
  )
97
97
  }
98
98
  }
99
- case 'horizontal-images': {
99
+ case "horizontal-images": {
100
100
  return (
101
- <div className={`${tierIndex === 0 ? styles.firstContainer : ''} ${styles.horizontalContainer} px-6`} key={tierIndex}>
101
+ <div className={`${tierIndex === 0 ? styles.firstContainer : ""} ${styles.horizontalContainer} px-6`} key={tierIndex}>
102
102
  {sponsors.map((sponsor, index) => {
103
103
  return (
104
104
  (!sponsor.company.big_logo && !sponsor.company.logo) ?
@@ -125,7 +125,7 @@ const SponsorComponent = ({ page, sponsorsState, lobbyButton }) => {
125
125
  </div>
126
126
  )
127
127
  }
128
- case 'expo-hall': {
128
+ case "expo-hall": {
129
129
  return tier.should_display_on_expo_hall_page === true && (
130
130
  <div className={`${styles.expoContainer} px-6`} key={tierIndex}>
131
131
  {sponsors.map((sponsor, index) => {
@@ -136,7 +136,7 @@ const SponsorComponent = ({ page, sponsorsState, lobbyButton }) => {
136
136
  sponsor.is_published ?
137
137
  <div className={`
138
138
  ${styles.imageBox}
139
- ${tier.expo_hall_template === 'big-images' ? styles.large : tier.expo_hall_template === 'medium-images' ? styles.medium : styles.small}`}
139
+ ${tier.expo_hall_template === "big-images" ? styles.large : tier.expo_hall_template === "medium-images" ? styles.medium : styles.small}`}
140
140
  key={`${tier.type.label}-${index}`}
141
141
  >
142
142
  <Link to={`/a/sponsor/${getSponsorURL(sponsor.id, sponsor.company.name)}`}>
@@ -146,7 +146,7 @@ const SponsorComponent = ({ page, sponsorsState, lobbyButton }) => {
146
146
  : sponsor.external_link ?
147
147
  <div className={`
148
148
  ${styles.imageBox}
149
- ${tier.expo_hall_template === 'big-images' ? styles.large : tier.expo_hall_template === 'medium-images' ? styles.medium : styles.small}`}
149
+ ${tier.expo_hall_template === "big-images" ? styles.large : tier.expo_hall_template === "medium-images" ? styles.medium : styles.small}`}
150
150
  key={`${tier.type.label}-${index}`}
151
151
  >
152
152
  <Link to={sponsor.external_link}>
@@ -156,7 +156,7 @@ const SponsorComponent = ({ page, sponsorsState, lobbyButton }) => {
156
156
  :
157
157
  <div className={`
158
158
  ${styles.imageBox}
159
- ${tier.expo_hall_template === 'big-images' ? styles.large : tier.expo_hall_template === 'medium-images' ? styles.medium : styles.small}`}
159
+ ${tier.expo_hall_template === "big-images" ? styles.large : tier.expo_hall_template === "medium-images" ? styles.medium : styles.small}`}
160
160
  key={`${tier.type.label}-${index}`}
161
161
  >
162
162
  <img src={sponsor.company.big_logo ? sponsor.company.big_logo : sponsor.company.logo} alt={sponsor.company.name} />
@@ -166,23 +166,23 @@ const SponsorComponent = ({ page, sponsorsState, lobbyButton }) => {
166
166
  </div>
167
167
  )
168
168
  }
169
- case 'carousel': {
170
- if (page === 'lobby' && !tier.should_display_on_lobby_page) {
169
+ case "carousel": {
170
+ if (page === "lobby" && !tier.should_display_on_lobby_page) {
171
171
  return null
172
172
  } else {
173
173
  const sliderSettings = {
174
174
  autoplay: true,
175
175
  autoplaySpeed: 5000,
176
176
  infinite: true,
177
- className: 'sponsor-carousel',
177
+ className: "sponsor-carousel",
178
178
  dots: false,
179
179
  slidesToShow: 1,
180
180
  slidesToScroll: 1
181
181
  };
182
182
  return (
183
- <div className={`${tierIndex === 0 ? styles.firstContainer : ''} ${styles.carouselContainer}`} key={tierIndex}>
183
+ <div className={`${tierIndex === 0 ? styles.firstContainer : ""} ${styles.carouselContainer}`} key={tierIndex}>
184
184
  {tier.widget_title &&
185
- <span style={{ marginBottom: '0' }}><b>{tier.widget_title}</b></span>
185
+ <span style={{ marginBottom: "0" }}><b>{tier.widget_title}</b></span>
186
186
  }
187
187
  <Slider {...sliderSettings}>
188
188
  {sponsors.map((sponsor, index) => {
@@ -219,10 +219,10 @@ const SponsorComponent = ({ page, sponsorsState, lobbyButton }) => {
219
219
  return null;
220
220
  }
221
221
  })}
222
- {page === 'lobby' && lobbyButton.text && lobbyButton.link && renderButton &&
223
- <Link className={styles.link} to={lobbyButton.link}>
222
+ {linkButton?.text && linkButton?.link && renderButton &&
223
+ <Link className={styles.link} to={linkButton.link}>
224
224
  <button className={`${styles.button} button is-large`}>
225
- {lobbyButton.text}
225
+ {linkButton.text}
226
226
  </button>
227
227
  </Link>
228
228
  }
@@ -231,8 +231,7 @@ const SponsorComponent = ({ page, sponsorsState, lobbyButton }) => {
231
231
  };
232
232
 
233
233
  const mapStateToProps = ({ sponsorState }) => ({
234
- sponsorsState: sponsorState.sponsors,
235
- lobbyButton: sponsorState.lobbyButton
234
+ sponsorsState: sponsorState.sponsors
236
235
  });
237
236
 
238
- export default connect(mapStateToProps, {})(SponsorComponent);
237
+ export default connect(mapStateToProps, {})(SponsorComponent);
@@ -0,0 +1 @@
1
+ {}
@@ -35,6 +35,10 @@ export const lobbyPageQuery = graphql`
35
35
  }
36
36
  }
37
37
  liveNowFeaturedEventId
38
+ sponsorsWidgetButton {
39
+ text
40
+ link
41
+ }
38
42
  }
39
43
  }
40
44
  `;
@@ -43,15 +47,15 @@ const App = ({ data, isLoggedUser, user, summitPhase }) => {
43
47
  return (
44
48
  <Location>
45
49
  {({ location }) => (
46
- <Router basepath="/a" >
47
- <WithAuthRoute path="/" isLoggedIn={isLoggedUser} location={location}>
48
- <WithAuthzRoute path="/" summitPhase={summitPhase} isLoggedIn={isLoggedUser} user={user} location={location}>
49
- <ShowOpenRoute path="/" summitPhase={summitPhase} isLoggedIn={isLoggedUser} user={user} location={location}>
50
- <LobbyPage path="/" data={data} isLoggedIn={isLoggedUser} user={user} location={location} />
51
- </ShowOpenRoute>
52
- </WithAuthzRoute>
53
- </WithAuthRoute>
54
- </Router>
50
+ <Router basepath="/a" >
51
+ <WithAuthRoute path="/" isLoggedIn={isLoggedUser} location={location}>
52
+ <WithAuthzRoute path="/" summitPhase={summitPhase} isLoggedIn={isLoggedUser} user={user} location={location}>
53
+ <ShowOpenRoute path="/" summitPhase={summitPhase} isLoggedIn={isLoggedUser} user={user} location={location}>
54
+ <LobbyPage path="/" data={data} isLoggedIn={isLoggedUser} user={user} location={location} />
55
+ </ShowOpenRoute>
56
+ </WithAuthzRoute>
57
+ </WithAuthRoute>
58
+ </Router>
55
59
  )}
56
60
  </Location>
57
61
  );
@@ -0,0 +1,76 @@
1
+ import * as React from "react";
2
+ import { graphql } from "gatsby";
3
+ import { Router, Location } from "@reach/router";
4
+ import { connect } from "react-redux";
5
+ import ExpoHallPage from "../../templates/expo-hall-page";
6
+ import WithAuthzRoute from "../../routes/WithAuthzRoute";
7
+ import WithAuthRoute from "../../routes/WithAuthRoute";
8
+ import ShowOpenRoute from "../../routes/ShowOpenRoute";
9
+ import withRealTimeUpdates from "../../utils/real_time_updates/withRealTimeUpdates";
10
+ import withFeedsWorker from "../../utils/withFeedsWorker";
11
+ import Seo from "../../components/Seo";
12
+
13
+ export const expoHallPageQuery = graphql`
14
+ query {
15
+ expoHallPageJson {
16
+ hero {
17
+ title
18
+ subTitle
19
+ background {
20
+ src {
21
+ childImageSharp {
22
+ gatsbyImageData (
23
+ quality: 100
24
+ placeholder: BLURRED
25
+ )
26
+ }
27
+ }
28
+ alt
29
+ }
30
+ }
31
+ }
32
+ }
33
+ `;
34
+
35
+ const App = ({
36
+ data,
37
+ isLoggedUser,
38
+ user,
39
+ summitPhase
40
+ }) => {
41
+ return (
42
+ <Location>
43
+ {({ location }) => (
44
+ <Router basepath="/a" >
45
+ <WithAuthRoute path="/" isLoggedIn={isLoggedUser} location={location}>
46
+ <WithAuthzRoute path="/" summitPhase={summitPhase} isLoggedIn={isLoggedUser} user={user} location={location}>
47
+ <ShowOpenRoute path="/" summitPhase={summitPhase} isLoggedIn={isLoggedUser} user={user} location={location}>
48
+ <ExpoHallPage path="/sponsors/" location={location} data={data}/>
49
+ </ShowOpenRoute>
50
+ </WithAuthzRoute>
51
+ </WithAuthRoute>
52
+ </Router>
53
+ )}
54
+ </Location>
55
+ );
56
+ };
57
+
58
+ const mapStateToProps = ({
59
+ loggedUserState,
60
+ userState, clockState
61
+ }) => ({
62
+ isLoggedUser: loggedUserState.isLoggedUser,
63
+ summitPhase: clockState.summit_phase,
64
+ user: userState
65
+ });
66
+
67
+ export default connect(mapStateToProps, {})(withFeedsWorker(withRealTimeUpdates(App)));
68
+
69
+ export const Head = ({
70
+ location
71
+ }) => (
72
+ <Seo
73
+ title={"Expo Hall"}
74
+ pathname={location.pathname}
75
+ />
76
+ );
@@ -1,14 +1,11 @@
1
1
  import { START_LOADING, STOP_LOADING } from "openstack-uicore-foundation/lib/utils/actions";
2
2
  import { LOGOUT_USER } from "openstack-uicore-foundation/lib/security/actions";
3
- import {RESET_STATE, SYNC_DATA} from "../actions/base-actions-definitions";
3
+ import { RESET_STATE, SYNC_DATA } from "../actions/base-actions-definitions";
4
4
 
5
- import sponsorData from "content/sponsors";
6
- import expoHallData from '../content/expo-hall.json';
5
+ import sponsorData from "content/sponsors.json";
7
6
 
8
7
  const DEFAULT_STATE = {
9
- sponsors: sponsorData,
10
- imageHeader: expoHallData.imageHeader,
11
- lobbyButton: expoHallData.lobbyButton
8
+ sponsors: sponsorData
12
9
  };
13
10
 
14
11
  const sponsorReducer = (state = DEFAULT_STATE, action) => {
@@ -1,40 +1,41 @@
1
- import React from 'react'
1
+ import React from "react";
2
+ import { getSrc } from "gatsby-plugin-image";
3
+ import Layout from "../components/Layout";
4
+ import SponsorComponent from "../components/SponsorComponent";
5
+ import AttendanceTrackerComponent from "../components/AttendanceTrackerComponent";
6
+ import AccessTracker from "../components/AttendeeToAttendeeWidgetComponent";
2
7
 
3
- import { connect } from "react-redux";
4
-
5
- import Layout from '../components/Layout'
6
- import SponsorComponent from '../components/SponsorComponent'
7
- import AttendanceTrackerComponent from '../components/AttendanceTrackerComponent'
8
- import AccessTracker from '../components/AttendeeToAttendeeWidgetComponent'
9
- import styles from '../styles/expo-hero.module.scss'
10
-
11
- const ExpoHallPage = ({ location, imageHeader }) => {
8
+ import styles from "../styles/expo-hero.module.scss";
12
9
 
10
+ const ExpoHallPage = ({
11
+ data,
12
+ location
13
+ }) => {
14
+ const { expoHallPageJson: { hero } } = data;
15
+ const style = hero?.background ? { backgroundImage: `url(${getSrc(hero.background.src)})` } : {};
13
16
  return (
14
17
  <Layout location={location}>
15
18
  <AttendanceTrackerComponent />
16
19
  <AccessTracker />
17
- <section className="hero is-large sponsors-header" style={{ backgroundImage: `url(${imageHeader.file})` }}>
18
- <div className="hero-body">
19
- <div className={styles.heroContainer}>
20
- <h1 className={styles.title}>
21
- Sponsors
22
- </h1>
23
- <span className={styles.subtitle}>
24
- See the schedule to join live sessions and meet representatives from the sponsor companies.
25
- </span>
26
- </div>
20
+ { hero && (hero.background || hero.title || hero.subTitle) &&
21
+ <section className="hero is-large sponsors-header" style={style}>
22
+ <div className="hero-body">
23
+ <div className={styles.heroContainer}>
24
+ <h1 className={styles.title}>
25
+ {hero.title}
26
+ </h1>
27
+ <span className={styles.subtitle}>
28
+ {hero.subTitle}
29
+ </span>
27
30
  </div>
28
- </section>
31
+ </div>
32
+ </section>
33
+ }
29
34
  <section className="section px-6 py-6">
30
35
  <SponsorComponent />
31
36
  </section>
32
37
  </Layout>
33
38
  )
34
- }
35
-
36
- const mapStateToProps = ({ sponsorState }) => ({
37
- imageHeader: sponsorState.imageHeader
38
- });
39
+ };
39
40
 
40
- export default connect(mapStateToProps, {})(ExpoHallPage);
41
+ export default ExpoHallPage;
@@ -46,7 +46,8 @@ export const LobbyPageTemplate = class extends React.Component {
46
46
  lobbyPageJson: {
47
47
  hero,
48
48
  centerColumn,
49
- liveNowFeaturedEventId
49
+ liveNowFeaturedEventId,
50
+ sponsorsWidgetButton
50
51
  }
51
52
  },
52
53
  lastDataSync
@@ -65,7 +66,10 @@ export const LobbyPageTemplate = class extends React.Component {
65
66
  <div className="columns">
66
67
  <div className="column is-one-quarter">
67
68
  <h2><b>Community</b></h2>
68
- <SponsorComponent page="lobby"/>
69
+ <SponsorComponent
70
+ page="lobby"
71
+ linkButton={sponsorsWidgetButton}
72
+ />
69
73
  <AdvertiseComponent section="lobby" column="left"/>
70
74
  </div>
71
75
  <div className="column is-half">
@@ -33,6 +33,7 @@ const VOTEABLE_PRESENTATIONS_FILE_PATH = `${DATA_DIR_PATH}/${VOTEABLE_PRESENTATI
33
33
  const POSTERS_PAGES_FILE_PATH = `${STATIC_CONTENT_DIR_PATH}/posters-pages.json`;
34
34
  const MARKETING_SETTINGS_FILE_PATH = `${DATA_DIR_PATH}/marketing-settings.json`;
35
35
  const MAINTENANCE_FILE_PATH = `${STATIC_CONTENT_DIR_PATH}/maintenance.json`;
36
+ const EXPO_HALL_PAGE_FILE_PATH = `${STATIC_CONTENT_DIR_PATH}/expo-hall-page/index.json`;
36
37
  const SPONSORS_FILE_NAME = "sponsors.json";
37
38
  const SPONSORS_FILE_PATH = `${STATIC_CONTENT_DIR_PATH}/${SPONSORS_FILE_NAME}`;
38
39
 
@@ -75,4 +76,5 @@ exports.VOTEABLE_PRESENTATIONS_FILE_PATH = VOTEABLE_PRESENTATIONS_FILE_PATH;
75
76
  exports.POSTERS_PAGES_FILE_PATH = POSTERS_PAGES_FILE_PATH;
76
77
  exports.MARKETING_SETTINGS_FILE_PATH = MARKETING_SETTINGS_FILE_PATH;
77
78
  exports.MAINTENANCE_FILE_PATH = MAINTENANCE_FILE_PATH;
79
+ exports.EXPO_HALL_PAGE_FILE_PATH = EXPO_HALL_PAGE_FILE_PATH;
78
80
  exports.SPONSORS_FILE_PATH = SPONSORS_FILE_PATH;
@@ -1,10 +0,0 @@
1
- {
2
- "imageHeader": {
3
- "file": "/img/tier1-default-sponsor-headerimage-expopage.png",
4
- "alt": "header"
5
- },
6
- "lobbyButton": {
7
- "text": "Visit the Expo Hall",
8
- "link": "/a/sponsors/"
9
- }
10
- }
@@ -1,365 +0,0 @@
1
- backend:
2
- name: github
3
- branch: main
4
- repo: fntechgit/fnEvent
5
- commit_messages:
6
- create: 'Create {{collection}} “{{slug}}”'
7
- update: 'Update {{collection}} “{{slug}}”'
8
- delete: 'Delete {{collection}} “{{slug}}”'
9
- uploadMedia: '[skip ci] Upload “{{path}}”'
10
- deleteMedia: '[skip ci] Delete “{{path}}”'
11
-
12
- media_folder: static/img
13
- public_folder: /img
14
-
15
- collections:
16
- - name: "configurations"
17
- label: "Configurations"
18
- editor:
19
- preview: false
20
- files:
21
- - file: "src/content/site-settings/index.json"
22
- label: "Site Settings"
23
- name: "site-settings"
24
- fields:
25
- - {label: "Favicons", name: favicons, widget: object, fields: [
26
- {label: "Favicon 180x180", name: favicon180, widget: image},
27
- {label: "Favicon 32x32", name: favicon32, widget: image},
28
- {label: "Favicon 16x16", name: favicon16, widget: image}
29
- ]}
30
- - {label: "Widgets", name: widgets, widget: object, fields: [
31
- {label: "Chat", name: chat, widget: object, fields: [
32
- {label: "Show QA", name: showQA, widget: boolean, required: false, default: false},
33
- {label: "Show Help", name: showHelp, widget: boolean, required: false, default: false},
34
- {label: "Default Filter Criteria", name: defaultScope, widget: select, required: false, default: 'page', options: [
35
- {label: "In this Room", value: "page" },
36
- {label: "All Attendees", value: "show" }
37
- ]}
38
- ]},
39
- {label: "Schedule", name: schedule, widget: object, fields: [
40
- {label: "Allow Clickable Behavior", name: allowClick, widget: boolean, required: false, default: true},
41
- ]}
42
- ]}
43
- - {label: "Site Metadata", name: siteMetadata, widget: object, fields: [
44
- {label: "Title", name: title, widget: string, required: false },
45
- {label: "Description", name: description, widget: string, required: false }
46
- ]}
47
- - file: "src/content/ads.json"
48
- label: "Advertisement"
49
- name: "ads"
50
- fields:
51
- - {label: "Ads", name: "ads", widget: list, fields: [
52
- {label: "Page", name: "section", widget: string},
53
- {label: "Ads", name: "columnAds", widget: list, required: false, fields: [
54
- {label: "Image", name: "image", widget: object, required: false, fields: [
55
- {label: "Src", name: "src", widget: image, required: false, default: ''},
56
- {label: "Alt", name: "alt", widget: string, required: false, default: ''},
57
- ]},
58
- {label: "Button", name: "button", widget: object, required: false, fields: [
59
- {label: "Text", name: "text", widget: string, required: false},
60
- {label: "Link", name: "link", widget: string, required: false}
61
- ]},
62
- {label: "Column", name: "column", widget: select, options: [
63
- {label: "Left", value: "left" },
64
- {label: "Center", value: "center" },
65
- {label: "Right", value: "right" },
66
- ]},
67
- {label: "Specific Event?", name: "eventId", widget: string, required: false, default: 0}
68
- ]},
69
- ]}
70
- - file: "src/content/sponsors-tiers.json"
71
- label: "Sponsors Tiers"
72
- name: "sponsors-tiers"
73
- fields:
74
- - {label: "Tiers", name: "tiers", widget: list, fields: [
75
- {label: "Tier", name: "name", widget: string},
76
- {label: "Widget Title", name: "widgetTitle", widget: string, required: false},
77
- {label: "ID", name: "id", widget: ncw-id, prefix: tier, hidden: true},
78
- {label: "Badge", name: "badge", widget: object, required: false, fields: [
79
- {label: "File", name: "file", widget: image, required: false, default: ''},
80
- {label: "Alt", name: "alt", widget: string, required: false, default: ''},
81
- ]},
82
- {label: "Lobby", name: "lobby", widget: object, fields: [
83
- {label: "Lobby Template", name: "lobbyTemplate", widget: select, required: false, default: 'small-images', options: [
84
- {label: "Big Images", value: "big-images" },
85
- {label: "Small Images", value: "small-images" },
86
- {label: "Horizontal Images", value: "horizontal-images" },
87
- {label: "Carousel", value: "carousel" },
88
- ]},
89
- {label: "Display", name: display, widget: boolean, required: false, default: false}
90
- ]},
91
- {label: "Expo Hall Page", name: "expoHallPage", widget: object, fields: [
92
- {label: "Expo Hall Template", name: "expoHallTemplate", widget: select, required: false, default: 'medium-images', options: [
93
- {label: "Big Images", value: "big-images" },
94
- {label: "Medium Images", value: "medium-images" },
95
- {label: "Small Images", value: "small-images" },
96
- ]},
97
- {label: "Display", name: display, widget: boolean, required: false, default: false}
98
- ]},
99
- {label: "Sponsor Page", name: "sponsorPage", widget: object, fields: [
100
- {label: "Sponsor Page Template", name: "sponsorTemplate", widget: select, required: false, default: 'small-header', options: [
101
- {label: "Big Header", value: "big-header" },
102
- {label: "Small Header", value: "small-header" },
103
- ]},
104
- {label: "Widgets", name: "widgets", widget: object, fields: [
105
- {label: "Disqus", name: disqus, widget: boolean, required: false, default: false},
106
- {label: "Live Event", name: liveEvent, widget: boolean, required: false, default: false},
107
- {label: "Schedule", name: schedule, widget: boolean, required: false, default: false},
108
- {label: "Banner", name: banner, widget: boolean, required: false, default: false}
109
- ]}
110
- ]},
111
- {label: "In Event Template", name: "eventTemplate", widget: select, required: false, default: 'small-images', options: [
112
- {label: "Big Images", value: "big-images" },
113
- {label: "Small Images", value: "small-images" },
114
- {label: "Horizontal Images", value: "horizontal-images" },
115
- ]},
116
- ]}
117
- - {label: "Expo Hall Header Image", name: "imageHeader", widget: object, required: false, fields: [
118
- {label: "File", name: "file", widget: image, default: '', required: false},
119
- {label: "Alt", name: "alt", widget: string, required: false}
120
- ]}
121
- - {label: "Lobby Button", name: lobbyButton, widget: object, fields: [
122
- {label: "Text", name: "text", widget: string, required: false, default: ''},
123
- {label: "Link", name: "link", widget: string, required: false, default: ''}
124
- ]}
125
- - file: "src/content/navbar.json"
126
- label: "Navbar"
127
- name: "navbar"
128
- fields:
129
- - {label: "Navbar", name: "items", widget: list, fields: [
130
- {label: "Title", name: "title", widget: string},
131
- {label: "Link", name: "link", widget: string},
132
- {label: "Display?", name: "display", widget: boolean, required: false},
133
- {label: "Requires Auth?", name: "requiresAuth", widget: boolean, required: false, default: false},
134
- {label: "Show only at Show Time?", name: "showOnlyAtShowTime", widget: boolean, required: false, default: false},
135
- {label: "Show only on page", name: "pageRestriction", widget: select, multiple: true, default: ["ANY"], options: ["ANY", "MARKETING", "LOBBY", "ACTIVITY", "SHOW", "CUSTOM_PAGE"]},
136
- ]}
137
- - file: "src/content/footer/index.json"
138
- label: "Footer"
139
- name: "footer"
140
- fields:
141
- - {label: "Columns", name: "columns", widget: list, fields: [
142
- {label: "Title", name: "title", widget: string},
143
- {label: "Display", name: "display", widget: boolean, required: false},
144
- {label: "Items", name: "items", widget: list, fields: [
145
- {label: "Title", name: "title", widget: string},
146
- {label: "Link", name: "link", widget: string},
147
- ]}
148
- ]}
149
- - {label: "Logo", name: "logo", widget: object, fields: [
150
- {label: "Display", name: "display", widget: boolean, required: false},
151
- ]}
152
- - {label: "Social", name: "social", widget: object, fields: [
153
- {label: "Title", name: "title", widget: string},
154
- {label: "Display", name: "display", widget: boolean, required: false},
155
- {label: "Networks", name: "networks", widget: list, fields: [
156
- {label: "Icon", name: "icon", widget: string},
157
- {label: "Link", name: "link", widget: string},
158
- {label: "Display", name: "display", widget: boolean, required: false},
159
- ]}
160
- ]}
161
- - {label: "Legal", name: "legal", widget: list, fields: [
162
- {label: "Title", name: "title", widget: string},
163
- {label: "Link", name: "link", widget: string},
164
- ]}
165
- - file: "src/content/posters-pages.json"
166
- label: "Posters Pages"
167
- name: "posters-pages"
168
- fields:
169
- - {label: "Posters Pages", name: "postersPages", widget: list, fields: [
170
- {label: "Name", name: "name", widget: string, required: false},
171
- {label: "Track Group Id", name: "trackGroupId", widget: number},
172
- {label: "Title", name: "title", widget: string },
173
- {label: "Subtitle", name: "subtitle", widget: string },
174
- {label: "Background Image", name: "image", widget: image, required: false},
175
- ]}
176
- - file: "src/content/maintenance.json"
177
- label: "Maintenance Mode"
178
- name: "maintenance"
179
- fields:
180
- - {label: "Enabled", name: "enabled", widget: boolean, required: true, default: false}
181
- - {label: "Title", name: title, widget: string, required: true, default: 'Site under maintenance' }
182
- - {label: "Subtitle", name: subtitle, widget: string, default: 'Please reload page shortly'}
183
- - name: "home"
184
- label: "Lobby Site"
185
- editor:
186
- preview: false
187
- files:
188
- - file: "src/content/home-settings.json"
189
- name: "home-settings"
190
- label: "Lobby Settings"
191
- fields:
192
- - {label: "Center Column", name: "centerColumn", widget: object, fields: [
193
- {label: "Speakers", name: "speakers", widget: object, fields: [
194
- {label: "Show Today Speakers", name: "showTodaySpeakers", widget: boolean, required: false},
195
- {label: "Show Feature Speakers", name: "showFeatureSpeakers", widget: boolean, required: false}
196
- ]}
197
- ]}
198
- - {label: "Home Hero", name: homeHero, widget: object, fields: [
199
- {label: "Title", name: title, widget: string},
200
- {label: "Sub Title", name: subTitle, widget: string, required: false},
201
- {label: "Image", name: "image", widget: object, required: false, fields: [
202
- {label: "File", name: "file", widget: image, default: '', required: false},
203
- {label: "Alt", name: "alt", widget: string, required: false},
204
- ]}
205
- ]}
206
- - {label: "Featured Event - Live Event Widget", name: live_now_featured_event_id, widget: number, required: false, default: null}
207
- - name: "marketing"
208
- label: "Marketing Site"
209
- editor:
210
- preview: false
211
- files:
212
- - file: "src/content/marketing-page/index.json"
213
- name: "marketing-site"
214
- label: "Marketing Site"
215
- fields:
216
- - {label: "Hero Banner", name: "heroBanner", widget: "object", fields: [
217
- {label: "Title", name: "title", widget: string},
218
- {label: "Sub Title", name: "subTitle", widget: string, required: false},
219
- {label: "Date", name: "date", widget: string, required: false},
220
- {label: "Date Layout", name: "dateLayout", widget: boolean, required: false},
221
- {label: "Time", name: "time", widget: string, required: false},
222
- {label: "Buttons", name: "buttons", widget: object, fields: [
223
- {label: "Register Button", name: "registerButton", widget: object, fields: [
224
- {label: "Text", name: "text", widget: string},
225
- {label: "Display", name: "display", widget: boolean, required: false},
226
- ]},
227
- {label: "Login Button", name: "loginButton", widget: object, fields: [
228
- {label: "Text", name: "text", widget: string},
229
- {label: "Display", name: "display", widget: boolean, required: false},
230
- ]}
231
- ]},
232
- {label: "Background Image", name: "background", widget: object, required: false, fields: [
233
- {label: "Src", name: "src", widget: image, required: false},
234
- {label: "Alt", name: "alt", widget: string, required: false},
235
- ]},
236
- {label: "Images", name: "images", widget: list, fields: [
237
- {label: "Image", name: "image", widget: image, required: false},
238
- {label: "Alt", name: "alt", widget: string, required: false},
239
- ]},
240
- ]}
241
- - {label: "Countdown", name: "countdown", widget: object, fields: [
242
- {label: "Should Display?", name: display, widget: boolean, required: false},
243
- {label: "Text", name: "text", widget: string}
244
- ]}
245
- - {label: "Widgets", name: "leftColumn", widget: object, fields: [
246
- {label: "Schedule", name: "schedule", widget: object, fields: [
247
- {label: "Display", name: "display", widget: boolean, required: false},
248
- {label: "Title", name: "title", widget: string, required: false},
249
- ]},
250
- {label: "Disqus", name: "disqus", widget: object, fields: [
251
- {label: "Display", name: "display", widget: boolean, required: false},
252
- {label: "Title", name: "title", widget: string, required: false},
253
- ]},
254
- {label: "Image", name: "image", widget: object, fields: [
255
- {label: "Display", name: "display", widget: boolean, required: false},
256
- {label: "Title", name: "title", widget: string, required: false},
257
- {label: "Image", name: "image", widget: object, required: false, fields: [
258
- {label: "Src", name: "src", widget: image, required: false},
259
- {label: "Alt", name: "alt", widget: string, required: false},
260
- ]},
261
- ]},
262
- ]}
263
- - {label: "Redirect to event", name: "eventRedirect", widget: number, required: false, hint: "User will be redirected to this event after login"}
264
- - {label: "Sponsors", name: "sponsors", widget: list, fields: [
265
- {label: "Name", name: title, widget: hidden},
266
- {label: "Size", name: size, widget: select, options: [
267
- {label: "Single", value: 1},
268
- {label: "Double", value: 2}
269
- ]},
270
- {label: "Images", name: "images", widget: list, fields: [
271
- {label: "Src", name: "src", widget: image, required: false},
272
- {label: "Link", name: "link", widget: string, required: false},
273
- {label: "Alt", name: "alt", widget: string, required: false},
274
- ]}
275
- - name: "pages"
276
- label: "Pages"
277
- folder: "src/pages/custom-pages"
278
- create: true
279
- slug: "{{slug}}"
280
- fields:
281
- - {label: "Template Key", name: "templateKey", widget: "hidden", default: "custom-page"}
282
- - {label: Title, name: title, widget: string}
283
- - {label: "User Requirement", name: userRequirement, widget: select, options: ["NONE", "LOGGED_IN", "HAS_TICKET"], default: "NONE"}
284
- - {label: "Body", name: body, widget: markdown}
285
- - name: "sponsors"
286
- label: "Sponsors Data"
287
- editor:
288
- preview: false
289
- files:
290
- - file: "src/content/sponsors.json"
291
- label: "Tier Sponsors"
292
- name: "tier-sponsors"
293
- fields:
294
- - {label: "Tier Sponsors", name: "tierSponsors", widget: list, summary: "{{tier[0].label}}", fields: [
295
- {label: "Tier", name: "tier", widget: ncw-file-relation, collection: configurations, file: sponsorsTiers, target_field: tiers, id_field: id, display_fields: name},
296
- {label: "Sponsors", name: "sponsors", widget: list, fields: [
297
- {label: "Name", name: "name", widget: string },
298
- {label: "External ID", name: "id", widget: number },
299
- {label: "Sponsor ID", name: "sponsorId", widget: number, required: false},
300
- {label: "Company ID", name: "companyId", widget: number, required: false},
301
- {label: "Featured Event ID", name: "featuredEventId", widget: number, required: false},
302
- {label: "Title", name: "title", widget: string, required: false},
303
- {label: "Intro", name: "intro", widget: markdown, required: false},
304
- {label: "Contact Email", name: "email", widget: string, required: false},
305
- {label: "Live Video Chat Link", name: "chatLink", widget: string, required: false},
306
- {label: "Marquee Text", name: "marquee", widget: string, required: false},
307
- {label: "Sponsor Color", name: "sponsorColor", widget: string, required: false},
308
- {label: "Logo", name: "logo", widget: object, required: false, fields: [
309
- { label: "File", name: "file", widget: image, default: '', required: false },
310
- { label: "Alt", name: "alt", widget: string, required: false },
311
- ]},
312
- {label: "Advertise Image", name: "advertiseImage", widget: object, required: false, fields: [
313
- { label: "File", name: "file", widget: image, default: '', required: false },
314
- { label: "Alt", name: "alt", widget: string, required: false },
315
- ]},
316
- {label: "External Link", name: "externalLink", widget: string, required: false},
317
- {label: "Social Networks", name: "socialNetworks", widget: list, fields: [
318
- {label: "Icon", name: "icon", widget: string},
319
- {label: "Link", name: "link", widget: string},
320
- {label: "Display", name: "display", widget: boolean, required: false},
321
- ]},
322
- {label: "Documents", name: "documents", widget: object, fields: [
323
- {label: "Slides", name: "slides", widget: list, fields: [
324
- {label: "Class Name", name: class_name, widget: hidden, default: "PresentationSlide"},
325
- {label: "Name", name: name, widget: string},
326
- {label: "Order", name: order, widget: number},
327
- {label: "Link", name: link, widget: file, default: "/documents/" }
328
- ]},
329
- {label: "Links", name: "links", widget: list, fields: [
330
- {label: "Class Name", name: class_name, widget: hidden, default: "PresentationLink"},
331
- {label: "Name", name: name, widget: string},
332
- {label: "Order", name: order, widget: number},
333
- {label: "Link", name: link, widget: string}
334
- ]},
335
- {label: "Videos", name: "videos", widget: list, fields: [
336
- {label: "Class Name", name: class_name, widget: hidden, default: "PresentationVideo"},
337
- {label: "Name", name: name, widget: string},
338
- {label: "Order", name: order, widget: number},
339
- {label: "Link", name: link, widget: string}
340
- ]},
341
- ]},
342
- {label: "Ads", name: "columnAds", widget: list, required: false, fields: [
343
- {label: "Image", name: "image", widget: image},
344
- {label: "Alt", name: "alt", widget: string, required: false},
345
- {label: "Button Text", name: "text", widget: string, required: false},
346
- {label: "Link", name: "link", widget: string, required: false}
347
- ]},
348
- {label: "Uses Sponsor Page?", name: "usesSponsorPage", widget: boolean, required: false},
349
- {label: "Header Image", name: "headerImage", widget: object, required: false, fields: [
350
- { label: "File", name: "file", widget: image, default: '', required: false},
351
- { label: "Alt", name: "alt", widget: string, required: false},
352
- ]},
353
- {label: "Mobile Header Image", name: "headerImageMobile", widget: object, required: false, fields: [
354
- { label: "File", name: "file", widget: image, default: '', required: false},
355
- { label: "Alt", name: "alt", widget: string, required: false},
356
- ] },
357
- {label: "Side Image", name: "sideImage", widget: object, required: false, fields: [
358
- { label: "File", name: "file", widget: image, default: '', required: false},
359
- { label: "Alt", name: "alt", widget: string, required: false},
360
- ]},
361
- {label: "Video Header", name: "headerVideo", widget: string, required: false},
362
- {label: "Show Logo in Event Page", name: "showLogoInEventPage", widget: boolean, required: false, default: true},
363
- ]}
364
- ]}
365
-