From 6938b888b3b9b1e757571f7c4cc40729e8d99742 Mon Sep 17 00:00:00 2001 From: Martin Donnelly Date: Sun, 25 Mar 2018 02:13:25 +0100 Subject: [PATCH] #2 Have nearby items display a page Nearby will now open on a page when clicked on Moved templates to a template file Using Yahoo fujicons instead of material icons --- fonts/fujicons.css | 205 ++++++++++++++++++++++++++++++++++++ fonts/fujicons.ttf | Bin 0 -> 127756 bytes gulp/build.js | 6 ++ gulpfile.js | 2 +- package-lock.json | 2 +- server.js | 2 +- server/RightByMe.js | 2 +- src/service-worker.js | 2 +- src/v1/index.html | 8 +- src/v1/js/Forecast.js | 6 +- src/v1/js/Nearby.js | 7 +- src/v1/js/News.js | 2 +- src/v1/js/NewsList.js | 2 +- src/v1/js/RightByMe.js | 57 ++-------- src/v1/js/Traffic.js | 6 +- src/v1/js/VenueDetail.js | 106 +++++++++++++++++++ src/v1/js/Weather.js | 4 +- src/v1/js/app.js | 5 +- src/v1/js/libs/panel.js | 4 +- src/v1/js/libs/reducers.js | 2 +- src/v1/js/libs/templates.js | 67 ++++++++++++ 21 files changed, 420 insertions(+), 77 deletions(-) create mode 100644 fonts/fujicons.css create mode 100755 fonts/fujicons.ttf create mode 100644 src/v1/js/VenueDetail.js create mode 100644 src/v1/js/libs/templates.js diff --git a/fonts/fujicons.css b/fonts/fujicons.css new file mode 100644 index 0000000..1f0cf7f --- /dev/null +++ b/fonts/fujicons.css @@ -0,0 +1,205 @@ +@font-face { + font-family: 'Fujicons'; + font-style: normal; + font-weight: 400; + src: url(fujicons.ttf) format('truetype'); + unicode-range: U+0-10FFFF; +} + + +.fa { + display: inline-block; + font: normal normal normal 14px/1 Fujicons; + font-size: inherit; + text-rendering: auto; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} +/* makes the font 33% larger relative to the icon container */ +.fa-lg { + font-size: 1.33333333em; + line-height: 0.75em; + vertical-align: -15%; +} +.fa-2x { + font-size: 2em; +} +.fa-3x { + font-size: 3em; +} +.fa-4x { + font-size: 4em; +} +.fa-5x { + font-size: 5em; +} +.fa-fw { + width: 1.28571429em; + text-align: center; +} +.fa-ul { + padding-left: 0; + margin-left: 2.14285714em; + list-style-type: none; +} +.fa-ul > li { + position: relative; +} +.fa-li { + position: absolute; + left: -2.14285714em; + width: 2.14285714em; + top: 0.14285714em; + text-align: center; +} +.fa-li.fa-lg { + left: -1.85714286em; +} +.fa-border { + padding: .2em .25em .15em; + border: solid 0.08em #eeeeee; + border-radius: .1em; +} +.fa-pull-left { + float: left; +} +.fa-pull-right { + float: right; +} +.fa.fa-pull-left { + margin-right: .3em; +} +.fa.fa-pull-right { + margin-left: .3em; +} +/* Deprecated as of 4.4.0 */ +.pull-right { + float: right; +} +.pull-left { + float: left; +} +.fa.pull-left { + margin-right: .3em; +} +.fa.pull-right { + margin-left: .3em; +} +.fa-spin { + -webkit-animation: fa-spin 2s infinite linear; + animation: fa-spin 2s infinite linear; +} +.fa-pulse { + -webkit-animation: fa-spin 1s infinite steps(8); + animation: fa-spin 1s infinite steps(8); +} +@-webkit-keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} +@keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} +.fa-rotate-90 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)"; + -webkit-transform: rotate(90deg); + -ms-transform: rotate(90deg); + transform: rotate(90deg); +} +.fa-rotate-180 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)"; + -webkit-transform: rotate(180deg); + -ms-transform: rotate(180deg); + transform: rotate(180deg); +} +.fa-rotate-270 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)"; + -webkit-transform: rotate(270deg); + -ms-transform: rotate(270deg); + transform: rotate(270deg); +} +.fa-flip-horizontal { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)"; + -webkit-transform: scale(-1, 1); + -ms-transform: scale(-1, 1); + transform: scale(-1, 1); +} +.fa-flip-vertical { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; + -webkit-transform: scale(1, -1); + -ms-transform: scale(1, -1); + transform: scale(1, -1); +} +:root .fa-rotate-90, +:root .fa-rotate-180, +:root .fa-rotate-270, +:root .fa-flip-horizontal, +:root .fa-flip-vertical { + filter: none; +} +.fa-stack { + position: relative; + display: inline-block; + width: 2em; + height: 2em; + line-height: 2em; + vertical-align: middle; +} +.fa-stack-1x, +.fa-stack-2x { + position: absolute; + left: 0; + width: 100%; + text-align: center; +} +.fa-stack-1x { + line-height: inherit; +} +.fa-stack-2x { + font-size: 2em; +} +.fa-inverse { + color: #ffffff; +} + + +.fa-back:before { + content: ""; +} + +.fa-forward:before { + content: ""; +} + +.fa-globe:before { + content: "\EA12" +} + +.fa-up:before { + content: "\E925" +} + +.fa-down:before { + content: "\E922" +} + +.fa-work:before { + content: "\E998" +} + +.fa-home:before { + content: "\EA1E" +} diff --git a/fonts/fujicons.ttf b/fonts/fujicons.ttf new file mode 100755 index 0000000000000000000000000000000000000000..a323b194f1746d37b67f4d54502831876fb7b499 GIT binary patch literal 127756 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 tSb^D`3b75vSc4~R { } }); -app.get('/nearbydetail', cache('15 minutes'), (req, res) => { +app.get('/nearbydetail'/*, cache('15 minutes')*/, (req, res) => { if (req.query.hasOwnProperty('id')) rightbyme.doGetMoreDetail(req.query.id) .then((d) => { diff --git a/server/RightByMe.js b/server/RightByMe.js index cfb59e8..9b56a6c 100644 --- a/server/RightByMe.js +++ b/server/RightByMe.js @@ -103,7 +103,7 @@ function doYelpSearch(data = {}) { yelpSearch.latitude = payLoad.latitude; yelpSearch.longitude = payLoad.longitude; - // yelpSearch.radius = 250; + yelpSearch.radius = 250; yelpSearch.sort_by = 'distance'; logger.debug(yelpSearch); client.search(yelpSearch).then(response => { diff --git a/src/service-worker.js b/src/service-worker.js index 41c11ea..9dacf22 100644 --- a/src/service-worker.js +++ b/src/service-worker.js @@ -11,7 +11,7 @@ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. -const CACHE_VERSION = { 'version': '0.0.483' }; +const CACHE_VERSION = { 'version': '0.0.538' }; const dataCacheName = 'jubileeData-v1'; const cacheName = 'jubilee-final-1'; const filesToCache = [ diff --git a/src/v1/index.html b/src/v1/index.html index ad2b83b..3067ec0 100644 --- a/src/v1/index.html +++ b/src/v1/index.html @@ -7,8 +7,8 @@ Jubilee - + @@ -31,8 +31,8 @@
@@ -64,7 +64,7 @@
Latest news
diff --git a/src/v1/js/Forecast.js b/src/v1/js/Forecast.js index 7a3780e..6b99f85 100644 --- a/src/v1/js/Forecast.js +++ b/src/v1/js/Forecast.js @@ -62,8 +62,8 @@ const ForecastView = Backbone.View.extend({
<%=summary%>
- vertical_align_top<%=tempMax%>° - vertical_align_bottom<%=tempMin%>° + <%=tempMax%>° + <%=tempMin%>°
<%=temperature%>°
@@ -186,7 +186,7 @@ const ForecastView = Backbone.View.extend({ const currently = this.model.get('currently'); const forcastToday = { 'today':this.model.get('forcastToday'), 'daily':this.model.get('dailyForecast') }; const details = this.model.get('details'); -html.push('
'); +html.push('
'); html.push(this.templateCurrently(currently)); html.push(this.templateForecast(forcastToday)); html.push(this.templateDetails(details)); diff --git a/src/v1/js/Nearby.js b/src/v1/js/Nearby.js index bc0ca88..68fb729 100644 --- a/src/v1/js/Nearby.js +++ b/src/v1/js/Nearby.js @@ -25,7 +25,7 @@ const fsItemView = Backbone.View.extend({ 'tagName': 'div', 'className': 'itemRow mui--align-middle', 'template': _.template(` -<%= name %> <%= category %> `), +<%= name %> <%= category %> `), 'initialize': function() { this.render(); }, @@ -36,6 +36,7 @@ const fsItemView = Backbone.View.extend({ }, 'render': function() { + console.log(this.model.attributes); this.$el.html(this.template(this.model.toJSON())); } }); @@ -136,7 +137,7 @@ const NearbyView = Backbone.View.extend({ this.fsCollection.bind('reset', this.render, this); this.eventBus.on('focused', this.focused, this); - this.other = $(''); + this.other = $(''); }, 'events': { 'click .itemRow': 'doClick' @@ -176,7 +177,7 @@ const NearbyView = Backbone.View.extend({ console.log('Do click', d); const id = get(d, 'currentTarget.dataset.id', ''); console.log(id); - + this.eventBus.trigger('showVenueDetail', id); const fsdetail = new FSDetailView({ 'fsID':id }); }, 'focused': function() { console.log('>> Nearby received focus msg'); diff --git a/src/v1/js/News.js b/src/v1/js/News.js index 5a8a5b8..09b2e35 100644 --- a/src/v1/js/News.js +++ b/src/v1/js/News.js @@ -108,7 +108,7 @@ const NewsView = Backbone.View.extend({
Latest news
`), diff --git a/src/v1/js/NewsList.js b/src/v1/js/NewsList.js index ec560c4..70d7b08 100644 --- a/src/v1/js/NewsList.js +++ b/src/v1/js/NewsList.js @@ -18,7 +18,7 @@ const newsCollection = new NewsCollection(); const NewsItemView = Backbone.View.extend({ 'tagName': 'div', - 'className' : 'newsItem mui-container', + 'className' : 'newsItem', 'template': _.template(`
<%=title%>
diff --git a/src/v1/js/RightByMe.js b/src/v1/js/RightByMe.js index 08095f9..8ba8fa3 100644 --- a/src/v1/js/RightByMe.js +++ b/src/v1/js/RightByMe.js @@ -4,6 +4,7 @@ const Backbone = require('backbone'); const request = require('request'); const { get, isEmpty } = require('lodash'); const { maybePluralize } = require('./libs/utils'); +const templates = require('./libs/templates'); const ByMeModel = Backbone.Model.extend({ 'initialize': function() { @@ -77,53 +78,7 @@ const ByMeView = Backbone.View.extend({ 'id':'byme', 'className': '', 'template': _.template('
'), - 'yelpTemplate': _.template(`
-
- -
-
-<%= yelp.reviewCount %> review -
-
- -
-
- `), - 'tipsTemplate': _.template(` -
-
Tips
-
- <%_.forEach(tips, function(i) {%> -
- <%=i %> -
- <%}) %> -
-
- `), - 'imagesTemplate': _.template(` -
-
- <%_.forEach(images, function(i) {%> -
- -
- <%}) %> -
-
- `), - 'tweetsTemplate': _.template(` -
-
Tweets
-
- <%_.forEach(tweets, function(i) {%> -
- <%=i %> -
- <%}) %> -
-
- `), + 'initialize': function(options) { this.eventBus = options.eventBus; this.location = options.location; @@ -169,16 +124,16 @@ const ByMeView = Backbone.View.extend({ // this.imagesTemplate(this.model.toJSON()), this.yelpTemplate(this.model.toJSON()), this.tipsTemplate(this.model.toJSON()) if (!isEmpty(m.images)) - contents.push(this.imagesTemplate(m)); + contents.push(templates.imagesTemplate(m)); if (!isEmpty(m.yelp)) - contents.push(this.yelpTemplate(m)); + contents.push(templates.yelpTemplate(m)); if (!isEmpty(m.tips)) - contents.push(this.tipsTemplate(m)); + contents.push(templates.tipsTemplate(m)); if (!isEmpty(m.tweets)) - contents.push(this.tweetsTemplate(m)); + contents.push(templates.tweetsTemplate(m)); this.$el.html(contents.join('')); // console.log(this.el); diff --git a/src/v1/js/Traffic.js b/src/v1/js/Traffic.js index 65aaf7a..8a54631 100644 --- a/src/v1/js/Traffic.js +++ b/src/v1/js/Traffic.js @@ -37,9 +37,9 @@ const TrafficModel = Backbone.Model.extend({ console.log('((hour >= 7) && (hour <= 9))', ((hour >= 7) && (hour <= 9))); console.log('((hour >= 17) && (hour <= 19))', ((hour >= 17) && (hour <= 19))); let delay; - if (day === 0 || day === 6) + if (day === 0 || day === 6) delay = toHour(); - else + else delay = ( ((hour >= 7) && (hour <= 9)) || ((hour >= 17) && (hour <= 19)) ) ? 600000 : toHour(); console.log('Delay', delay); @@ -141,7 +141,7 @@ const TrafficView = Backbone.View.extend({ }, 'template': _.template(`
-
<%= dest.toLowerCase() %> <%=readable%> to <%= dest.toLowerCase() %>
+
mui--align-middle "> <%=readable%> to <%= dest.toLowerCase() %>
<%=traffic %>
diff --git a/src/v1/js/VenueDetail.js b/src/v1/js/VenueDetail.js new file mode 100644 index 0000000..1f38fcf --- /dev/null +++ b/src/v1/js/VenueDetail.js @@ -0,0 +1,106 @@ +const $ = require('jquery'); +const _ = require('underscore'); +const Backbone = require('backbone'); +const request = require('request'); +const { get, isEmpty } = require('lodash'); +const { createPanel, addPanel } = require('./libs/panel'); + +const templates = require('./libs/templates'); + +const VenueDetailModel = Backbone.Model.extend({ + 'initialize': function() { + this.listenTo(this, 'change:id', this.newId); + }, + 'newId': function() { + console.log('>> ID changed:', this.get('id')); + this.getVenue(); + }, + 'getVenue': function() { + const id = this.get('id'); + request({ + 'url': `${window.loc}/nearbydetail`, + 'method': 'GET', + 'qs': { + 'id': id + } + }, function(err, res, body) { + console.log('statusCode', res.statusCode); + if (err) + console.error(err); + else{ + // console.log(body); + const fsJSON = JSON.parse(body); + // console.log(fsJSON); + + this.set('details', fsJSON); + // console.log(body); + } + }.bind(this)); + } + +}); + +const VenueDetailView = Backbone.View.extend({ + 'initialize': function(options) { + this.eventBus = options.eventBus; + + this.model.bind('change:details', this.doRender, this); + this.eventBus.on('showVenueDetail', this.showNewsPanel, this); + }, + + 'showNewsPanel': function(id) { + console.log('Showing venue details', id); + const prevId = this.model.get('id'); + + this.model.set('id', id); + + this.$newPanel = createPanel({ 'title':'Venue details', 'divId':'VenueDetail' }); + + this.$el = addPanel(this.$newPanel); + + this.$el.empty(); + this.$newPanel.show(); + + if (prevId === id) + this.doRender(); + }, + 'events': { + 'click .closebutton': 'doClick' + }, + 'doClick': function(d) { + console.log('Do click', d); + const id = get(d, 'currentTarget', ''); + console.log(id); + // this.eventBus.trigger('showNews', id); + }, + 'doClose': function(d) { + console.log('close??'); + }, + 'doRender': function() { + const contents = []; + const m = this.model.get('details'); + // this.imagesTemplate(this.model.toJSON()), this.yelpTemplate(this.model.toJSON()), this.tipsTemplate(this.model.toJSON()) + + contents.push(templates.venueTitle(m)); + + if (!isEmpty(m.images)) + contents.push(templates.imagesTemplate(m)); + + if (!isEmpty(m.yelp)) + contents.push(templates.yelpTemplate(m)); + + if (!isEmpty(m.tips)) + contents.push(templates.tipsTemplate(m)); + + if (!isEmpty(m.tweets)) + contents.push(templates.tweetsTemplate(m)); + + contents.push(templates.openInFS(m)); + this.$el.html(contents.join('')); + + } + +}); + +module.exports = { VenueDetailModel, VenueDetailView }; + diff --git a/src/v1/js/Weather.js b/src/v1/js/Weather.js index 8bb8004..68d43a6 100644 --- a/src/v1/js/Weather.js +++ b/src/v1/js/Weather.js @@ -40,7 +40,7 @@ const weatherItemView = Backbone.View.extend({ For <%=city%> to <%= readdate %>
`), 'initialize': function() { @@ -201,7 +201,7 @@ const WeatherView = Backbone.View.extend({ console.log('>> Weather received focus msg'); if (!this.model.has('log')) { console.log('No log yet'); - + return ; } const now = new Date().getTime(); diff --git a/src/v1/js/app.js b/src/v1/js/app.js index b3174c3..d400364 100644 --- a/src/v1/js/app.js +++ b/src/v1/js/app.js @@ -14,6 +14,7 @@ const { NewsModel, NewsView } = require('./News'); const { NewsCardModel, NewsCardView } = require('./NewsViewer'); const { NewsListModel, NewsListView } = require('./NewsList'); const { ByMeModel, ByMeView } = require('./RightByMe'); +const { VenueDetailModel, VenueDetailView } = require('./VenueDetail'); const { AgendaModel, AgendaView } = require('./Agenda'); const { TrafficModel, TrafficView } = require('./Traffic'); var app = app || {}; @@ -60,7 +61,7 @@ else app.newsCard = new NewsCardView({ 'model': new NewsCardModel(), 'eventBus': app.eventBus }); - app.newsList = new NewsListView({'model': new NewsListModel(), 'eventBus' : app.eventBus}); + app.newsList = new NewsListView({ 'model': new NewsListModel(), 'eventBus' : app.eventBus }); app.news = new NewsView({ 'model': new NewsModel(), 'eventBus': app.eventBus, 'el':'#newsShell' }); @@ -70,6 +71,8 @@ else app.traffic = new TrafficView({ 'model': new TrafficModel(), 'eventBus': app.eventBus, 'location': app.locationModel, 'el':'#traffic' }); + app.newsCard = new VenueDetailView({ 'model': new VenueDetailModel(), 'eventBus': app.eventBus }); + app.updateOnlineStatus = function(event) { if (navigator.onLine) // handle online status diff --git a/src/v1/js/libs/panel.js b/src/v1/js/libs/panel.js index 63b4850..dd00ddc 100644 --- a/src/v1/js/libs/panel.js +++ b/src/v1/js/libs/panel.js @@ -10,7 +10,7 @@ function createPanel(params) {
@@ -22,7 +22,7 @@ function createPanel(params) {
-
+
diff --git a/src/v1/js/libs/reducers.js b/src/v1/js/libs/reducers.js index fe35174..08b8d29 100644 --- a/src/v1/js/libs/reducers.js +++ b/src/v1/js/libs/reducers.js @@ -88,7 +88,7 @@ const reduceNearby = function(item) { obj.id = get(item, 'venue.id', ''); obj.name = get(item, 'venue.name', ''); obj.category = get(categories[0], 'name', ''); - obj.icon = `${get(categories[0], 'icon.prefix', '')}${get(categories[0], 'icon.suffix', '')}`; + obj.icon = `${get(categories[0], 'icon.prefix', '')}32${get(categories[0], 'icon.suffix', '')}`; return obj; }; diff --git a/src/v1/js/libs/templates.js b/src/v1/js/libs/templates.js new file mode 100644 index 0000000..0092f0b --- /dev/null +++ b/src/v1/js/libs/templates.js @@ -0,0 +1,67 @@ +const _ = require('underscore'); + +const templates = { + + 'empty': _.template('
'), + 'yelpTemplate': _.template(`
+
+ +
+
+<%= yelp.reviewCount %> review +
+
+ +
+
+ `), + 'tipsTemplate': _.template(` +
+
+
Tips
+
+
+
+ <%_.forEach(tips, function(i) {%> +
+ <%=i %> +
+ <%}) %> +
+
+ `), + 'imagesTemplate': _.template(` +
+
+ <%_.forEach(images, function(i) {%> +
+ +
+ <%}) %> +
+
+ `), + 'tweetsTemplate': _.template(` +
+
+
Tweets
+
+
+
+ <%_.forEach(tweets, function(i) {%> +
+ <%=i %> +
+ <%}) %> +
+
+ `), + 'venueTitle' : _.template(` +
<%=name %>
+ `), + 'openInFS' : _.template(` + + `) +}; + +module.exports = templates;