@openeventkit/event-site 1.0.13 → 1.0.19

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.
Files changed (57) hide show
  1. package/gatsby-browser.js +2 -2
  2. package/gatsby-config.js +39 -27
  3. package/gatsby-node.js +23 -18
  4. package/package.json +2 -2
  5. package/src/cms/cms.js +2 -2
  6. package/src/cms/config/collections/configurationsCollection/index.js +1 -1
  7. package/src/cms/config/collections/configurationsCollection/navbar/index.js +0 -1
  8. package/src/cms/config/collections/configurationsCollection/siteSettings/index.js +0 -1
  9. package/src/cms/config/collections/contentPagesCollection/index.js +65 -0
  10. package/src/cms/config/collections/contentPagesCollection/typeDefs.js +8 -0
  11. package/src/cms/config/collections/defaultPagesCollection/index.js +2 -2
  12. package/src/cms/config/collections/defaultPagesCollection/lobbyPage/index.js +67 -0
  13. package/src/cms/config/collections/defaultPagesCollection/lobbyPage/typeDefs.js +21 -0
  14. package/src/cms/config/collections/defaultPagesCollection/marketingPage/index.js +1 -1
  15. package/src/cms/config/collections/defaultPagesCollection/marketingPage/typeDefs.js +1 -1
  16. package/src/cms/config/collections/typeDefs.js +3 -1
  17. package/src/cms/config/fields.js +0 -4
  18. package/src/cms/config/index.js +4 -2
  19. package/src/cms/config/patterns.js +3 -4
  20. package/src/cms/preview-templates/{CustomPagePreview.js → ContentPagePreview.js} +5 -5
  21. package/src/components/DisqusComponent.js +3 -5
  22. package/src/components/FullSchedule.js +5 -4
  23. package/src/components/LiteScheduleComponent.js +34 -36
  24. package/src/components/LiveEventWidgetComponent.js +29 -24
  25. package/src/components/Navbar/index.js +1 -0
  26. package/src/components/{page-header/index.jsx → PageHeader/index.js} +9 -5
  27. package/src/components/RegistrationLiteComponent.js +66 -56
  28. package/src/components/UpcomingEventsComponent.js +46 -48
  29. package/src/content/lobby-page/index.json +1 -0
  30. package/src/pages/a/[...].js +15 -14
  31. package/src/pages/index.js +1 -1
  32. package/src/reducers/presentations-reducer.js +1 -1
  33. package/src/reducers/setting-reducer.js +3 -4
  34. package/src/styles/style.scss +1 -1
  35. package/src/templates/{custom-page.js → content-page.js} +10 -8
  36. package/src/templates/event-page.js +247 -247
  37. package/src/templates/lobby-page.js +178 -0
  38. package/src/templates/maintenance-page.js +5 -5
  39. package/src/templates/poster-detail-page.js +2 -5
  40. package/src/templates/posters-page.js +1 -1
  41. package/src/utils/filePath.js +13 -7
  42. package/src/utils/phasesUtils.js +1 -1
  43. package/src/utils/useMarketingSettings.js +10 -8
  44. package/static/admin/config.yml.template +1 -2
  45. package/src/content/disqus-settings.json +0 -1
  46. package/src/content/home-settings.json +0 -1
  47. package/src/content/marketing-settings.json +0 -1
  48. package/src/pages/custom-pages/about-event.md +0 -16
  49. package/src/pages/custom-pages/contact.md +0 -8
  50. package/src/pages/custom-pages/footer-content.md +0 -8
  51. package/src/pages/custom-pages/help.md +0 -8
  52. package/src/pages/custom-pages/past-events.md +0 -8
  53. package/src/pages/custom-pages/who-we-are.md +0 -8
  54. package/src/templates/home-page.js +0 -170
  55. /package/src/components/{page-header → PageHeader}/index.module.scss +0 -0
  56. /package/src/{content → defaults}/colors.json +0 -0
  57. /package/src/{content → defaults}/posters-filters.json +0 -0
@@ -0,0 +1,178 @@
1
+ import React from "react";
2
+ import PropTypes from "prop-types";
3
+ import { navigate } from "gatsby";
4
+ import { connect } from "react-redux";
5
+
6
+ import Layout from "../components/Layout";
7
+ import withOrchestra from "../utils/widgetOrchestra";
8
+
9
+ import AdvertiseComponent from "../components/AdvertiseComponent";
10
+ import LiteScheduleComponent from "../components/LiteScheduleComponent";
11
+ import UpcomingEventsComponent from "../components/UpcomingEventsComponent";
12
+ import DisqusComponent from "../components/DisqusComponent";
13
+ import LiveEventWidgetComponent from "../components/LiveEventWidgetComponent";
14
+ import SpeakersWidgetComponent from "../components/SpeakersWidgetComponent";
15
+ import SponsorComponent from "../components/SponsorComponent";
16
+ import Link from "../components/Link";
17
+ import AccessTracker, {
18
+ AttendeesWidget,
19
+ } from "../components/AttendeeToAttendeeWidgetComponent";
20
+ import AttendanceTrackerComponent from "../components/AttendanceTrackerComponent";
21
+ import PageHeader from "../components/PageHeader";
22
+
23
+ import { getUserProfile } from "../actions/user-actions";
24
+
25
+ export const LobbyPageTemplate = class extends React.Component {
26
+
27
+ constructor(props) {
28
+ super(props);
29
+ this.onEventChange = this.onEventChange.bind(this);
30
+ }
31
+
32
+ onEventChange(ev) {
33
+ navigate(`/a/event/${ev.id}`);
34
+ }
35
+
36
+ onViewAllMyEventsClick() {
37
+ navigate("/a/my-schedule")
38
+ }
39
+
40
+ render() {
41
+ const {
42
+ user,
43
+ summit,
44
+ lobbyPageSettings: {
45
+ hero,
46
+ centerColumn,
47
+ liveNowFeaturedEventId
48
+ },
49
+ lastDataSync
50
+ } = this.props;
51
+
52
+ return (
53
+ <>
54
+ { hero &&
55
+ <PageHeader
56
+ title={hero.title}
57
+ subtitle={hero.subTitle}
58
+ backgroundImageSrc={hero.image?.src}
59
+ />
60
+ }
61
+ <div className="px-5 py-5 mb-6">
62
+ <div className="columns">
63
+ <div className="column is-one-quarter">
64
+ <h2><b>Community</b></h2>
65
+ <SponsorComponent page="lobby"/>
66
+ <AdvertiseComponent section="lobby" column="left"/>
67
+ </div>
68
+ <div className="column is-half">
69
+ <h2><b>Today</b></h2>
70
+ <LiveEventWidgetComponent
71
+ id={`lobby_page_live_event_${lastDataSync}`}
72
+ key={`lobby_page_live_event_${lastDataSync}`}
73
+ onlyPresentations={true}
74
+ featuredEventId={liveNowFeaturedEventId}
75
+ onEventClick={(ev) => this.onEventChange(ev)}
76
+ style={{marginBottom: "15px"}}
77
+ />
78
+ <DisqusComponent
79
+ page="lobby"
80
+ summit={summit}
81
+ className="disqus-container-lobby"
82
+ title="Public conversation"
83
+ skipTo="#upcoming-events"
84
+ />
85
+ <UpcomingEventsComponent
86
+ id={`lobby_page_upcomming_events_${lastDataSync}`}
87
+ key={`lobby_page_upcomming_events_${lastDataSync}`}
88
+ title="Up Next"
89
+ eventCount={4}
90
+ renderEventLink={(event) => <Link to={`/a/event/${event.id}`}>{event.title}</Link>}
91
+ allEventsLink={<Link to="/a/schedule">View all <span
92
+ className="sr-only">events</span></Link>}
93
+ />
94
+ {centerColumn?.speakers?.showTodaySpeakers &&
95
+ <SpeakersWidgetComponent
96
+ title="Today's Speakers"
97
+ id={`home_page_today_speakers_${lastDataSync}`}
98
+ key={`home_page_today_speakers_${lastDataSync}`}
99
+ bigPics={true}
100
+ />
101
+ }
102
+ {centerColumn?.speakers?.showFeatureSpeakers &&
103
+ <SpeakersWidgetComponent
104
+ title="Featured Speakers"
105
+ id={`lobby_page_featured_speakers_${lastDataSync}`}
106
+ key={`lobby_page_featured_speakers_${lastDataSync}`}
107
+ bigPics={false}
108
+ featured={true}
109
+ date={null}
110
+ />
111
+ }
112
+ <AdvertiseComponent section="lobby" column="center"/>
113
+ </div>
114
+ <div className="column is-one-quarter pb-6">
115
+ <h2><b>My Info</b></h2>
116
+ <AccessTracker/>
117
+ <AttendeesWidget user={user}/>
118
+ <LiteScheduleComponent
119
+ id={`lobby_page_lite_schedule_${lastDataSync}`}
120
+ key={`lobby_page_lite_schedule_${lastDataSync}`}
121
+ onEventClick={(ev) => this.onEventChange(ev)}
122
+ onViewAllEventsClick={() => this.onViewAllMyEventsClick()}
123
+ title="My Schedule"
124
+ yourSchedule={true}
125
+ showNav={true}
126
+ eventCount={10}
127
+ />
128
+ <AdvertiseComponent section="lobby" column="right"/>
129
+ </div>
130
+ </div>
131
+ </div>
132
+ </>
133
+ )
134
+ }
135
+ };
136
+
137
+ const OrchestedTemplate = withOrchestra(LobbyPageTemplate);
138
+
139
+ const LobbyPage = (
140
+ {
141
+ location,
142
+ user,
143
+ getUserProfile,
144
+ summit,
145
+ lastDataSync,
146
+ lobbyPageSettings
147
+ }
148
+ ) => (
149
+ <Layout location={location}>
150
+ <AttendanceTrackerComponent sourceName="LOBBY"/>
151
+ <OrchestedTemplate
152
+ user={user}
153
+ getUserProfile={getUserProfile}
154
+ summit={summit}
155
+ lastDataSync={lastDataSync}
156
+ lobbyPageSettings={lobbyPageSettings}
157
+ />
158
+ </Layout>
159
+ );
160
+
161
+ LobbyPage.propTypes = {
162
+ user: PropTypes.object,
163
+ getUserProfile: PropTypes.func
164
+ };
165
+
166
+ LobbyPageTemplate.propTypes = {
167
+ user: PropTypes.object,
168
+ getUserProfile: PropTypes.func
169
+ };
170
+
171
+ const mapStateToProps = ({userState, summitState, settingState}) => ({
172
+ user: userState,
173
+ summit: summitState.summit,
174
+ lastDataSync: settingState.lastDataSync,
175
+ lobbyPageSettings: settingState.lobbyPageSettings,
176
+ });
177
+
178
+ export default connect(mapStateToProps, {getUserProfile})(LobbyPage);
@@ -1,10 +1,10 @@
1
- import React from 'react';
2
- import PropTypes from 'prop-types';
3
- import maintenanceMode from '../content/maintenance.json';
1
+ import * as React from "react";
2
+ import PropTypes from "prop-types";
3
+ import maintenanceMode from "content/maintenance.json";
4
4
 
5
- import HeroComponent from '../components/HeroComponent';
5
+ import HeroComponent from "../components/HeroComponent";
6
6
 
7
- import '../styles/bulma.scss';
7
+ import "../styles/bulma.scss";
8
8
 
9
9
  const MaintenancePageTemplate = ({
10
10
  title,
@@ -27,7 +27,7 @@ import { castPresentationVote, uncastPresentationVote } from '../actions/user-ac
27
27
  import { PHASES } from '../utils/phasesUtils';
28
28
  import { isAuthorizedBadge } from '../utils/authorizedGroups';
29
29
 
30
- import useMarketingSettings from "@utils/useMarketingSettings";
30
+ import useMarketingSettings, { MARKETING_SETTINGS_KEYS } from "@utils/useMarketingSettings";
31
31
 
32
32
  export const PosterDetailPage = ({
33
33
  location,
@@ -138,10 +138,7 @@ export const PosterDetailPage = ({
138
138
  setPreviousVotingPeriods(votingPeriods);
139
139
  }, [posterTrackGroups, votingPeriods]);
140
140
 
141
- const {
142
- MARKETING_SETTINGS_KEYS,
143
- getSettingByKey
144
- } = useMarketingSettings();
141
+ const { getSettingByKey } = useMarketingSettings();
145
142
 
146
143
  if (loading) return <HeroComponent title="Loading poster" />;
147
144
 
@@ -2,7 +2,7 @@ import React, { useState, useEffect, useCallback, useRef } from 'react';
2
2
  import { connect } from 'react-redux';
3
3
  import { navigate } from "gatsby";
4
4
  import Layout from '../components/Layout';
5
- import PageHeader from '../components/page-header';
5
+ import PageHeader from '../components/PageHeader';
6
6
  import PosterGrid from '../components/poster-grid';
7
7
  import ScheduleFilters from '../components/ScheduleFilters';
8
8
  import PosterHeaderFilter from '../components/poster-header-filter';
@@ -1,13 +1,17 @@
1
1
  const DATA_DIR_PATH = "src/data";
2
2
  const STATIC_CONTENT_DIR_PATH = "src/content";
3
+ const DEFAULTS_DIR_PATH = "src/defaults";
4
+ const CONTENT_PAGES_DIR_PATH = "src/pages/content-pages";
3
5
  const STYLES_DIR_PATH = "src/styles";
6
+ const DEFAULT_COLORS_FILE_PATH = `${DEFAULTS_DIR_PATH}/colors.json`;
7
+ const COLORS_FILE_PATH = `${DATA_DIR_PATH}/colors.json`;
4
8
  const COLORS_SASS_FILE_PATH = `${STYLES_DIR_PATH}/colors.scss`
5
- const COLORS_FILE_PATH = `${STATIC_CONTENT_DIR_PATH}/colors.json`;
6
9
  const SITE_SETTINGS_DIR_PATH = `${STATIC_CONTENT_DIR_PATH}/site-settings`;
7
10
  const SITE_SETTINGS_FILE_PATH = `${SITE_SETTINGS_DIR_PATH}/index.json`;
8
11
  const MARKETING_PAGE_DIR_PATH = `${STATIC_CONTENT_DIR_PATH}/marketing-page`;
9
12
  const MARKETING_PAGE_FILE_PATH = `${MARKETING_PAGE_DIR_PATH}/index.json`;
10
- const HOME_SETTINGS_FILE_PATH = `${STATIC_CONTENT_DIR_PATH}/home-settings.json`;
13
+ const LOBBY_PAGE_DIR_PATH = `${STATIC_CONTENT_DIR_PATH}/lobby-page`;
14
+ const LOBBY_PAGE_FILE_PATH = `${LOBBY_PAGE_DIR_PATH}/index.json`;
11
15
  const ADS_FILE_PATH = `${STATIC_CONTENT_DIR_PATH}/ads/index.json`;
12
16
  const NAVBAR_DIR_PATH = `${STATIC_CONTENT_DIR_PATH}/navbar`;
13
17
  const NAVBAR_FILE_PATH = `${NAVBAR_DIR_PATH}/index.json`;
@@ -27,26 +31,29 @@ const SPEAKERS_IDX_FILE_PATH = `${DATA_DIR_PATH}/${SPEAKERS_IDX_FILE_NAME}`;
27
31
  const VOTEABLE_PRESENTATIONS_FILE_NAME = "voteable-presentations.json";
28
32
  const VOTEABLE_PRESENTATIONS_FILE_PATH = `${DATA_DIR_PATH}/${VOTEABLE_PRESENTATIONS_FILE_NAME}`;
29
33
  const POSTERS_PAGES_FILE_PATH = `${STATIC_CONTENT_DIR_PATH}/posters-pages.json`;
30
- const POSTERS_FILTERS_FILE_PATH = `${STATIC_CONTENT_DIR_PATH}/posters-filters.json`;
31
- const MARKETING_SETTINGS_FILE_PATH = `${STATIC_CONTENT_DIR_PATH}/marketing-settings.json`;
34
+ const MARKETING_SETTINGS_FILE_PATH = `${DATA_DIR_PATH}/marketing-settings.json`;
32
35
  const MAINTENANCE_FILE_PATH = `${STATIC_CONTENT_DIR_PATH}/maintenance.json`;
33
36
 
34
37
  exports.REQUIRED_DIR_PATHS = [
35
38
  DATA_DIR_PATH,
36
39
  STATIC_CONTENT_DIR_PATH,
40
+ CONTENT_PAGES_DIR_PATH,
37
41
  STYLES_DIR_PATH,
38
42
  SITE_SETTINGS_DIR_PATH,
39
43
  MARKETING_PAGE_DIR_PATH,
44
+ LOBBY_PAGE_DIR_PATH,
40
45
  NAVBAR_DIR_PATH,
41
46
  FOOTER_DIR_PATH
42
47
  ];
43
48
  exports.STATIC_CONTENT_DIR_PATH = STATIC_CONTENT_DIR_PATH;
44
- exports.COLORS_SASS_FILE_PATH = COLORS_SASS_FILE_PATH;
49
+ exports.DEFAULT_COLORS_FILE_PATH = DEFAULT_COLORS_FILE_PATH;
45
50
  exports.COLORS_FILE_PATH = COLORS_FILE_PATH;
51
+ exports.COLORS_SASS_FILE_PATH = COLORS_SASS_FILE_PATH;
46
52
  exports.SITE_SETTINGS_DIR_PATH = SITE_SETTINGS_DIR_PATH;
47
53
  exports.SITE_SETTINGS_FILE_PATH = SITE_SETTINGS_FILE_PATH;
54
+ exports.CONTENT_PAGES_DIR_PATH = CONTENT_PAGES_DIR_PATH;
48
55
  exports.MARKETING_PAGE_FILE_PATH = MARKETING_PAGE_FILE_PATH;
49
- exports.HOME_SETTINGS_FILE_PATH = HOME_SETTINGS_FILE_PATH;
56
+ exports.LOBBY_PAGE_FILE_PATH = LOBBY_PAGE_FILE_PATH;
50
57
  exports.ADS_FILE_PATH = ADS_FILE_PATH;
51
58
  exports.NAVBAR_FILE_PATH = NAVBAR_FILE_PATH;
52
59
  exports.FOOTER_FILE_PATH = FOOTER_FILE_PATH;
@@ -64,6 +71,5 @@ exports.SPEAKERS_IDX_FILE_PATH = SPEAKERS_IDX_FILE_PATH;
64
71
  exports.VOTEABLE_PRESENTATIONS_FILE_NAME = VOTEABLE_PRESENTATIONS_FILE_NAME;
65
72
  exports.VOTEABLE_PRESENTATIONS_FILE_PATH = VOTEABLE_PRESENTATIONS_FILE_PATH;
66
73
  exports.POSTERS_PAGES_FILE_PATH = POSTERS_PAGES_FILE_PATH;
67
- exports.POSTERS_FILTERS_FILE_PATH = POSTERS_FILTERS_FILE_PATH;
68
74
  exports.MARKETING_SETTINGS_FILE_PATH = MARKETING_SETTINGS_FILE_PATH;
69
75
  exports.MAINTENANCE_FILE_PATH = MAINTENANCE_FILE_PATH;
@@ -2,7 +2,7 @@ import {
2
2
  MARKETING_SETTINGS_KEYS
3
3
  } from "./useMarketingSettings";
4
4
 
5
- import marketingSettings from "content/marketing-settings.json";
5
+ import marketingSettings from "data/marketing-settings.json";
6
6
 
7
7
  const summitDeltaStartTime = marketingSettings.find(
8
8
  (setting) => setting.key === MARKETING_SETTINGS_KEYS.summitDeltaStartTime
@@ -11,7 +11,13 @@ export const MARKETING_SETTINGS_KEYS = {
11
11
  activityCtaText: "ACTIVITY_CTA_TEXT",
12
12
  regLiteAllowPromoCodes: "REG_LITE_ALLOW_PROMO_CODES",
13
13
  regLiteCompanyInputPlaceholder: "REG_LITE_COMPANY_INPUT_PLACEHOLDER",
14
- regLiteCompanyDDLPlaceholder: "REG_LITE_COMPANY_DDL_PLACEHOLDER"
14
+ regLiteCompanyDDLPlaceholder: "REG_LITE_COMPANY_DDL_PLACEHOLDER",
15
+ regLiteInitialOrderComplete1stParagraph: "REG_LITE_INITIAL_ORDER_COMPLETE_STEP_1ST_PARAGRAPH",
16
+ regLiteInitialOrderComplete2ndParagraph: "REG_LITE_INITIAL_ORDER_COMPLETE_STEP_2ND_PARAGRAPH",
17
+ regLiteInitialOrderCompleteButton: "REG_LITE_INITIAL_ORDER_COMPLETE_BTN_LABEL",
18
+ regLiteOrderComplete1stParagraph: "REG_LITE_ORDER_COMPLETE_STEP_1ST_PARAGRAPH",
19
+ regLiteOrderComplete2ndParagraph: "REG_LITE_ORDER_COMPLETE_STEP_2ND_PARAGRAPH",
20
+ regLiteOrderCompleteButton: "REG_LITE_ORDER_COMPLETE_BTN_LABEL",
15
21
  }
16
22
 
17
23
  const marketingSettingsQuery = graphql`
@@ -29,7 +35,7 @@ const useMarketingSettings = () => {
29
35
  const { allMarketingSettingsJson } = useStaticQuery(marketingSettingsQuery);
30
36
  const getSettingByKey = (key) =>
31
37
  allMarketingSettingsJson.nodes.find(setting => setting.key === key)?.value;
32
- return { MARKETING_SETTINGS_KEYS, getSettingByKey };
38
+ return { getSettingByKey };
33
39
  };
34
40
 
35
41
  export default useMarketingSettings;
@@ -37,16 +43,12 @@ export default useMarketingSettings;
37
43
  // HOC for use on class based components
38
44
  export const withMarketingSettings = (Component) => (
39
45
  (props) => {
40
- const {
41
- MARKETING_SETTINGS_KEYS,
42
- getSettingByKey
43
- } = useMarketingSettings();
46
+ const { getSettingByKey } = useMarketingSettings();
44
47
  return (
45
48
  <Component
46
49
  {...props}
47
- MARKETING_SETTINGS_KEYS={MARKETING_SETTINGS_KEYS}
48
50
  getMarketingSettingByKey={getSettingByKey}
49
51
  />
50
52
  );
51
53
  }
52
- );
54
+ );
@@ -201,8 +201,7 @@ collections:
201
201
  {label: "Image", name: "image", widget: object, required: false, fields: [
202
202
  {label: "File", name: "file", widget: image, default: '', required: false},
203
203
  {label: "Alt", name: "alt", widget: string, required: false},
204
- ]},
205
- {label: "Copy", name: copy, widget: text, required: false}
204
+ ]}
206
205
  ]}
207
206
  - {label: "Featured Event - Live Event Widget", name: live_now_featured_event_id, widget: number, required: false, default: null}
208
207
  - name: "marketing"
@@ -1 +0,0 @@
1
- {"threads_by":"event","disqus_threads_by":"event"}
@@ -1 +0,0 @@
1
- {"centerColumn":{"speakers":{"showTodaySpeakers":true,"showFeatureSpeakers":false}},"homeHero":{"title":"Lobby Title","subTitle":"Lobby Subtitle"}}
@@ -1 +0,0 @@
1
- [{"id":9,"created":1597087807,"modified":1597087807,"key":"color_primary","value":"#6d6e71","type":"TEXT","file":null,"show_id":13,"selection_plan_id":0},{"id":10,"created":1597087843,"modified":1597087843,"key":"color_primary_contrast","value":"#f1f2f2","type":"TEXT","file":null,"show_id":13,"selection_plan_id":0},{"id":11,"created":1597088097,"modified":1597088097,"key":"color_secondary","value":"#00CEC4","type":"TEXT","file":null,"show_id":13,"selection_plan_id":0},{"id":12,"created":1597088124,"modified":1597088124,"key":"color_secondary_contrast","value":"#ff5e32","type":"TEXT","file":null,"show_id":13,"selection_plan_id":0},{"id":13,"created":1597088158,"modified":1597088158,"key":"color_text_dark","value":"#333333","type":"TEXT","file":null,"show_id":13,"selection_plan_id":0},{"id":14,"created":1597088190,"modified":1597088190,"key":"color_text_light","value":"#ffffff","type":"TEXT","file":null,"show_id":13,"selection_plan_id":0},{"id":15,"created":1597088218,"modified":1597972142,"key":"hero_title","value":"YOCO Summit. Live Now!","type":"TEXT","file":null,"show_id":13,"selection_plan_id":0},{"id":16,"created":1597088247,"modified":1598130870,"key":"hero_subtitle","value":"virtual · pacific time","type":"TEXT","file":null,"show_id":13,"selection_plan_id":0},{"id":17,"created":1597088278,"modified":1597088278,"key":"disqus_threads_by","value":"event","type":"TEXT","file":null,"show_id":13,"selection_plan_id":0},{"id":201,"created":1624487665,"modified":1624487665,"key":"SCHEDULE_EVENT_COLOR_ORIGIN","value":"TRACK","type":"TEXT","file":null,"show_id":13,"selection_plan_id":0},{"id":249,"created":1630617286,"modified":1634140170,"key":"SCHEDULE_FILTER_BY_DATE_ENABLED","value":"1","type":"TEXT","file":null,"show_id":13,"selection_plan_id":0},{"id":250,"created":1630617287,"modified":1630617287,"key":"SCHEDULE_FILTER_BY_DATE_LABEL","value":"Date","type":"TEXT","file":null,"show_id":13,"selection_plan_id":0},{"id":251,"created":1630617760,"modified":1645661767,"key":"SCHEDULE_FILTER_BY_TRACK_ENABLED","value":"0","type":"TEXT","file":null,"show_id":13,"selection_plan_id":0},{"id":252,"created":1630617761,"modified":1630617761,"key":"SCHEDULE_FILTER_BY_TRACK_LABEL","value":"Categories","type":"TEXT","file":null,"show_id":13,"selection_plan_id":0},{"id":253,"created":1630617762,"modified":1630617762,"key":"SCHEDULE_FILTER_BY_TAGS_ENABLED","value":"1","type":"TEXT","file":null,"show_id":13,"selection_plan_id":0},{"id":254,"created":1630617762,"modified":1630617762,"key":"SCHEDULE_FILTER_BY_TAGS_LABEL","value":"Tags","type":"TEXT","file":null,"show_id":13,"selection_plan_id":0},{"id":255,"created":1630617764,"modified":1630617764,"key":"SCHEDULE_FILTER_BY_COMPANY_ENABLED","value":"1","type":"TEXT","file":null,"show_id":13,"selection_plan_id":0},{"id":256,"created":1630617764,"modified":1630617764,"key":"SCHEDULE_FILTER_BY_COMPANY_LABEL","value":"Company","type":"TEXT","file":null,"show_id":13,"selection_plan_id":0},{"id":257,"created":1630617766,"modified":1645661769,"key":"SCHEDULE_FILTER_BY_SPEAKERS_ENABLED","value":"0","type":"TEXT","file":null,"show_id":13,"selection_plan_id":0},{"id":258,"created":1630617766,"modified":1630617766,"key":"SCHEDULE_FILTER_BY_SPEAKERS_LABEL","value":"Speakers","type":"TEXT","file":null,"show_id":13,"selection_plan_id":0},{"id":259,"created":1630617767,"modified":1630617767,"key":"SCHEDULE_FILTER_BY_EVENT_TYPES_ENABLED","value":"1","type":"TEXT","file":null,"show_id":13,"selection_plan_id":0},{"id":260,"created":1630617768,"modified":1630617768,"key":"SCHEDULE_FILTER_BY_EVENT_TYPES_LABEL","value":"Activity Types","type":"TEXT","file":null,"show_id":13,"selection_plan_id":0},{"id":261,"created":1630617769,"modified":1630617769,"key":"SCHEDULE_FILTER_BY_TITLE_ENABLED","value":"1","type":"TEXT","file":null,"show_id":13,"selection_plan_id":0},{"id":262,"created":1630617769,"modified":1630617769,"key":"SCHEDULE_FILTER_BY_TITLE_LABEL","value":"Title","type":"TEXT","file":null,"show_id":13,"selection_plan_id":0},{"id":319,"created":1637106558,"modified":1637106558,"key":"color_text_input_hints","value":"#c4c4c4","type":"TEXT","file":null,"show_id":13,"selection_plan_id":0},{"id":320,"created":1637106580,"modified":1637106580,"key":"color_accent","value":"#ff5e32","type":"TEXT","file":null,"show_id":13,"selection_plan_id":0},{"id":446,"created":1659056069,"modified":1659056069,"key":"test","value":"Overview of the development efforts being worked on within the ORV3 Blind Mate Liquid Cooling Interfaces Group. The group is working on blind-mate quick connect valves, blind-mate manifolds, ORV3 frame interfaces, blind-mate liquid cooled IT gear interfaces and concepts, hoses and tubing solutions to work with the blind-mate valves, and various white papers. This presentation will help provide the community context in terms how the various efforts relate prior to more detailed discussions planned later in the Summit. The contributing suppliers and their respective expertise will be discussed. We will provide a brief update on the progress in each area. This effort is being developed under an OCP CLA.","type":"TEXT","file":null,"show_id":13,"selection_plan_id":0},{"id":447,"created":1659056103,"modified":1659056103,"key":"test2","value":"<p>Overview of the development efforts being worked on &nbsp;within the&nbsp;ORV3 Blind Mate Liquid Cooling Interfaces Group. The group is &nbsp;working on blind-mate quick connect valves, blind-mate manifolds, ORV3 &nbsp;frame interfaces, blind-mate liquid cooled IT gear interfaces and &nbsp;concepts, hoses and tubing solutions to work with the blind-mate valves, &nbsp;and various white papers.&nbsp;This presentation will help provide the &nbsp;community context in terms how the various efforts relate prior to more &nbsp;detailed discussions planned later in the Summit. The contributing &nbsp;suppliers and their respective expertise will be discussed.&nbsp; We will &nbsp;provide a brief update on the progress in each area.&nbsp; This&nbsp;effort is &nbsp;being developed under an OCP&nbsp;CLA. &nbsp;</p>","type":"TEXTAREA","file":null,"show_id":13,"selection_plan_id":0},{"id":448,"created":1659056251,"modified":1659056251,"key":"test3","value":"","type":"FILE","file":"https://object-storage-ca-ymq-1.vexxhost.net/swift/v1/6e4619c416ff4bd19e1c087f27a43eea/marketing-api/YOCO_Virtual_Summit-SpeakersYOCO_Virtual_Summit-SpeakersYOCO_Virtual_Summit-SpeakersYOCO_Virtual_Summit-SpeakersYOCO_Virtual_Summit-SpeakersYOCO_Virtual_Summit-SpeakersYOCO_Virtual_Summit-SpeakersYOCO_Virtual_Summit-Speakers.csv","show_id":13,"selection_plan_id":0},{"id":497,"created":1675278272,"modified":1681712983,"key":"CFP_SPEAKERS_SINGULAR_LABEL","value":"","type":"TEXT","file":null,"show_id":13,"selection_plan_id":12},{"id":498,"created":1675278688,"modified":1681712982,"key":"CFP_SPEAKERS_PLURAL_LABEL","value":"","type":"TEXT","file":null,"show_id":13,"selection_plan_id":12},{"id":561,"created":1679606234,"modified":1681741209,"key":"REG_LITE_COMPANY_INPUT_PLACEHOLDER","value":"Enter your company","type":"TEXT","file":null,"show_id":13,"selection_plan_id":0},{"id":562,"created":1679606234,"modified":1681741209,"key":"REG_LITE_COMPANY_DDL_PLACEHOLDER","value":"Select a company","type":"TEXT","file":null,"show_id":13,"selection_plan_id":0},{"id":563,"created":1679606234,"modified":1681741209,"key":"REG_LITE_ALLOW_PROMO_CODES","value":"1","type":"TEXT","file":null,"show_id":13,"selection_plan_id":0},{"id":573,"created":1679677936,"modified":1679687880,"key":"registration_in_person_disclaimer","value":"<p>TEST! Information here will show up during the Registration process. &nbsp;<br>\r\n<br>\r\nI agree to the YOCO Event Terms &amp; Conditions.</p>\r\n<p><strong>Cookies</strong></p>\r\n<p>We use cookies to personalize content, to provide social media features and to analyze our traffic. We also share information about your use of our site with our social media, solution providers, members, sponsors and analytics partners who may combine it with other information that you’ve provided to them or that they’ve collected from your use of their services. You consent to our cookies if you continue to use this website.&nbsp;&nbsp;</p>","type":"TEXTAREA","file":null,"show_id":13,"selection_plan_id":0},{"id":574,"created":1680191479,"modified":1681712983,"key":"CFP_PRESENTATION_SUMMARY_HIDE_TRACK_SELECTION","value":"0","type":"TEXT","file":null,"show_id":13,"selection_plan_id":12},{"id":575,"created":1680191479,"modified":1681712983,"key":"CFP_PRESENTATION_SUMMARY_HIDE_ACTIVITY_TYPE_SELECTION","value":"0","type":"TEXT","file":null,"show_id":13,"selection_plan_id":12},{"id":579,"created":1680191994,"modified":1681712982,"key":"CFP_PRESENTATION_EDITION_DEFAULT_TAB","value":"uploads","type":"TEXT","file":null,"show_id":13,"selection_plan_id":12},{"id":580,"created":1680191994,"modified":1681712982,"key":"CFP_PRESENTATION_EDITION_CUSTOM_MESSAGE","value":"<p>This is a custom message you can display to speakers.</p>","type":"TEXTAREA","file":null,"show_id":13,"selection_plan_id":12},{"id":603,"created":1681712958,"modified":1681712958,"key":"CFP_PRESENTATION_SUMMARY_SOCIAL_SUMMARY_LABEL","value":"","type":"TEXT","file":null,"show_id":13,"selection_plan_id":12},{"id":604,"created":1681712958,"modified":1681712958,"key":"CFP_PRESENTATION_SUMMARY_TITLE_LABEL","value":"","type":"TEXT","file":null,"show_id":13,"selection_plan_id":12},{"id":605,"created":1681712958,"modified":1681712958,"key":"CFP_PRESENTATIONS_PLURAL_LABEL","value":"","type":"TEXT","file":null,"show_id":13,"selection_plan_id":12},{"id":606,"created":1681712959,"modified":1681712959,"key":"CFP_PRESENTATION_SUMMARY_LINKS_LABEL","value":"","type":"TEXT","file":null,"show_id":13,"selection_plan_id":12},{"id":607,"created":1681712959,"modified":1681712959,"key":"CFP_PRESENTATION_SUMMARY_ABSTRACT_LABEL","value":"","type":"TEXT","file":null,"show_id":13,"selection_plan_id":12},{"id":608,"created":1681712959,"modified":1681712959,"key":"CFP_PRESENTATIONS_SINGULAR_LABEL","value":"","type":"TEXT","file":null,"show_id":13,"selection_plan_id":12}]
@@ -1,16 +0,0 @@
1
- ---
2
- templateKey: custom-page
3
- userRequirement: NONE
4
- title: About the event
5
- ---
6
- YOU DECIDE!
7
-
8
- In the FNvirtual platform, the top navigation is up to you! The “About this event” section could be a great way to share the story behind your meeting. How did it come to be? What were the driving forces or key turning points? Maybe include a timeline, or some big highlights that happened throughout the years. Would you rather use this real estate for something else? No problem! Just name the tab something else and point it in a totally different direction!
9
-
10
- ---
11
-
12
- The YOCO Summit was created to showcase our new FNvirtual event platform. YOCO—short for “Your Company”—was dreamed up by our creative team, allowing us to play with a faux brand in the full environment. YOCO has its own guidelines, voice, and visual identity. Pretty spiffy for a company that doesn’t exist, eh?
13
-
14
- [Check out our branding guidelines!](https://www.dropbox.com/s/w7qiav79lnnl93r/__FNvirtual-YOCO-site-guidelines.pdf?dl=0)
15
-
16
- By the way, did you notice the “sponsor” and brand partner ads peppered throughout the site? Some are real companies that we know and love; others are faux brands we created so as to not step on another company’s branded toes. We think it works pretty well. How about you? Email us at [info@fntech.com](mailto:info@fntech.com)!
@@ -1,8 +0,0 @@
1
- ---
2
- templateKey: custom-page
3
- userRequirement: NONE
4
- title: Contact
5
- ---
6
- YOU DECIDE!
7
-
8
- This can be your company contact info, the event group, a combination (like your info and your brand partners or top sponsors), or a totally different set of details that you’d like linked to your top navigation. Flexibility is what we’re all about!
@@ -1,8 +0,0 @@
1
- ---
2
- templateKey: custom-page
3
- userRequirement: NONE
4
- title: Footer Content
5
- ---
6
- YOU DECIDE!
7
-
8
- The footer in FNvirtual can contain any common info you’d like. Things like social media links, corporate info, how to join the organization, service providers, supporters, blog links, mailing list subscriptions, and how to become part of the team are all standard fare. Think of this space as an easy-access place to hold all the important tidbits that don’t necessarily need to be front and center.
@@ -1,8 +0,0 @@
1
- ---
2
- templateKey: custom-page
3
- userRequirement: NONE
4
- title: Help
5
- ---
6
- YOU DECIDE!
7
-
8
- Whether this goes to our tech support group, your internal events team, the registration folks, or all of the above, having a simple “help” tab in the top navigation ensures your attendees have a direct link to someone who can assist immediately.
@@ -1,8 +0,0 @@
1
- ---
2
- templateKey: custom-page
3
- userRequirement: NONE
4
- title: Past Events
5
- ---
6
- YOU DECIDE!
7
-
8
- Do you want to link to past event happy face videos or recaps? Or news articles about your previous events? Maybe a photo gallery highlighting attendee benefits? Yes, yes and yes! Whatever is important for you to share, this is the place. The top navigation bar can link out to all types of info--in the FNvirtual platform, one your company website, or anywhere else in the world wide web!
@@ -1,8 +0,0 @@
1
- ---
2
- templateKey: custom-page
3
- userRequirement: NONE
4
- title: Who we are
5
- ---
6
- YOU DECIDE!
7
-
8
- Have a vision or mission statement you’d like to share? Maybe a photo gallery of your leadership or internal event team? This is the perfect place to pop it in! Want this to be something totally different? No worries. You hold the keys to the top navigation; we can make it whatever you want it to be!
@@ -1,170 +0,0 @@
1
- import React from 'react'
2
- import PropTypes from 'prop-types'
3
- import {navigate} from 'gatsby'
4
- import {connect} from 'react-redux'
5
-
6
- import Layout from '../components/Layout'
7
- import withOrchestra from "../utils/widgetOrchestra";
8
-
9
- import AdvertiseComponent from '../components/AdvertiseComponent'
10
- import LiteScheduleComponent from '../components/LiteScheduleComponent'
11
- import UpcomingEventsComponent from '../components/UpcomingEventsComponent'
12
- import DisqusComponent from '../components/DisqusComponent'
13
- import LiveEventWidgetComponent from '../components/LiveEventWidgetComponent'
14
- import SpeakersWidgetComponent from '../components/SpeakersWidgetComponent'
15
- import SponsorComponent from '../components/SponsorComponent'
16
- import Link from '../components/Link'
17
- import AccessTracker, {
18
- AttendeesWidget,
19
- } from "../components/AttendeeToAttendeeWidgetComponent"
20
- import AttendanceTrackerComponent from '../components/AttendanceTrackerComponent'
21
- import PageHeader from '../components/page-header'
22
-
23
- import {getUserProfile} from '../actions/user-actions';
24
-
25
-
26
- export const HomePageTemplate = class extends React.Component {
27
-
28
- constructor(props) {
29
- super(props);
30
- this.onEventChange = this.onEventChange.bind(this);
31
- }
32
-
33
- onEventChange(ev) {
34
- navigate(`/a/event/${ev.id}`);
35
- }
36
-
37
- onViewAllMyEventsClick() {
38
- navigate('/a/my-schedule')
39
- }
40
-
41
- render() {
42
- const {user, summit, homeSettings, lastDataSync} = this.props;
43
-
44
- return (
45
- <React.Fragment>
46
- <PageHeader
47
- title={homeSettings.homeHero.title}
48
- subtitle={homeSettings.homeHero.subTitle}
49
- backgroundImage={homeSettings.homeHero.image?.file}
50
- />
51
- <div className="px-5 py-5 mb-6">
52
- <div className="columns">
53
- <div className="column is-one-quarter">
54
- <h2><b>Community</b></h2>
55
- <SponsorComponent page='lobby'/>
56
- <AdvertiseComponent section='lobby' column="left"/>
57
- </div>
58
- <div className="column is-half">
59
- <h2><b>Today</b></h2>
60
- <LiveEventWidgetComponent
61
- id={`home_page_live_event_${lastDataSync}`}
62
- key={`home_page_live_event_${lastDataSync}`}
63
- onlyPresentations={true}
64
- featuredEventId={homeSettings.live_now_featured_event_id}
65
- onEventClick={(ev) => this.onEventChange(ev)}
66
- style={{marginBottom: '15px'}}
67
- />
68
- <DisqusComponent
69
- page="lobby"
70
- summit={summit}
71
- className="disqus-container-home"
72
- title="Public conversation"
73
- skipTo="#upcoming-events"
74
- />
75
- <UpcomingEventsComponent
76
- id={`home_page_upcomming_events_${lastDataSync}`}
77
- key={`home_page_upcomming_events_${lastDataSync}`}
78
- title="Up Next"
79
- eventCount={4}
80
- renderEventLink={(event) => <Link to={`/a/event/${event.id}`}>{event.title}</Link>}
81
- allEventsLink={<Link to="/a/schedule">View all <span
82
- className="sr-only">events</span></Link>}
83
- />
84
- {homeSettings.centerColumn.speakers.showTodaySpeakers &&
85
- <SpeakersWidgetComponent
86
- title="Today's Speakers"
87
- id={`home_page_today_speakers_${lastDataSync}`}
88
- key={`home_page_today_speakers_${lastDataSync}`}
89
- bigPics={true}
90
- />
91
- }
92
- {homeSettings.centerColumn.speakers.showFeatureSpeakers &&
93
- <SpeakersWidgetComponent
94
- title="Featured Speakers"
95
- id={`home_page_featured_speakers_${lastDataSync}`}
96
- key={`home_page_featured_speakers_${lastDataSync}`}
97
- bigPics={false}
98
- featured={true}
99
- date={null}
100
- />
101
- }
102
- <AdvertiseComponent section='lobby' column="center"/>
103
- </div>
104
- <div className="column is-one-quarter pb-6">
105
- <h2><b>My Info</b></h2>
106
- <AccessTracker/>
107
- <AttendeesWidget user={user}/>
108
- <LiteScheduleComponent
109
- id={`home_page_lite_schedule_${lastDataSync}`}
110
- key={`home_page_lite_schedule_${lastDataSync}`}
111
- onEventClick={(ev) => this.onEventChange(ev)}
112
- onViewAllEventsClick={() => this.onViewAllMyEventsClick()}
113
- title='My Schedule'
114
- yourSchedule={true}
115
- showNav={true}
116
- eventCount={10}
117
- />
118
- <AdvertiseComponent section='lobby' column="right"/>
119
- </div>
120
- </div>
121
- </div>
122
- </React.Fragment>
123
- )
124
- }
125
- };
126
-
127
- const OrchestedTemplate = withOrchestra(HomePageTemplate);
128
-
129
- const HomePage = (
130
- {
131
- location,
132
- user,
133
- getUserProfile,
134
- homeSettings,
135
- summit,
136
- lastDataSync
137
- }
138
- ) => {
139
- return (
140
- <Layout location={location}>
141
- <AttendanceTrackerComponent sourceName="LOBBY"/>
142
- <OrchestedTemplate
143
- user={user}
144
- getUserProfile={getUserProfile}
145
- homeSettings={homeSettings}
146
- summit={summit}
147
- lastDataSync={lastDataSync}
148
- />
149
- </Layout>
150
- )
151
- };
152
-
153
- HomePage.propTypes = {
154
- user: PropTypes.object,
155
- getUserProfile: PropTypes.func
156
- };
157
-
158
- HomePageTemplate.propTypes = {
159
- user: PropTypes.object,
160
- getUserProfile: PropTypes.func
161
- };
162
-
163
- const mapStateToProps = ({userState, summitState, settingState}) => ({
164
- user: userState,
165
- summit: summitState.summit,
166
- homeSettings: settingState.homeSettings,
167
- lastDataSync: settingState.lastDataSync,
168
- });
169
-
170
- export default connect(mapStateToProps, {getUserProfile})(HomePage);
File without changes
File without changes