From 00f90d108473e8f146c2d8f6fc6262617c6df8ab Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Sat, 31 Jul 2021 17:21:25 +1200 Subject: [PATCH 1/3] Add a page count to User page --- client/homebrew/pages/userPage/brewItem/brewItem.jsx | 4 ++++ client/homebrew/pages/userPage/brewItem/brewItem.less | 3 +++ server/homebrew.api.js | 2 ++ server/homebrew.model.js | 11 ++++++----- 4 files changed, 15 insertions(+), 5 deletions(-) diff --git a/client/homebrew/pages/userPage/brewItem/brewItem.jsx b/client/homebrew/pages/userPage/brewItem/brewItem.jsx index b24bad363..c55933685 100644 --- a/client/homebrew/pages/userPage/brewItem/brewItem.jsx +++ b/client/homebrew/pages/userPage/brewItem/brewItem.jsx @@ -105,6 +105,7 @@ const BrewItem = createClass({

{brew.title}

{brew.description}


+
@@ -113,6 +114,9 @@ const BrewItem = createClass({ {brew.views} + + {brew.pageCount || 1} + {moment(brew.updatedAt).fromNow()} diff --git a/client/homebrew/pages/userPage/brewItem/brewItem.less b/client/homebrew/pages/userPage/brewItem/brewItem.less index efae9d8d3..7d806e841 100644 --- a/client/homebrew/pages/userPage/brewItem/brewItem.less +++ b/client/homebrew/pages/userPage/brewItem/brewItem.less @@ -69,4 +69,7 @@ padding : 0px; margin : -5px; } + .spacer { + height : 25px; + } } diff --git a/server/homebrew.api.js b/server/homebrew.api.js index 1f988761d..00195910a 100644 --- a/server/homebrew.api.js +++ b/server/homebrew.api.js @@ -38,6 +38,7 @@ const newBrew = (req, res)=>{ brew.authors = (req.account) ? [req.account.username] : []; brew.text = mergeBrewText(brew.text, brew.style); + brew.pageCount = (brew.text.match(/\\page/g) || []).length + 1; delete brew.editId; delete brew.shareId; @@ -66,6 +67,7 @@ const updateBrew = (req, res)=>{ .then((brew)=>{ brew = _.merge(brew, req.body); brew.text = mergeBrewText(brew.text, brew.style); + brew.pageCount = (brew.text.match(/\\page/g) || []).length + 1; // Compress brew text to binary before saving brew.textBin = zlib.deflateRawSync(brew.text); diff --git a/server/homebrew.model.js b/server/homebrew.model.js index c2abdf199..acc78a624 100644 --- a/server/homebrew.model.js +++ b/server/homebrew.model.js @@ -4,11 +4,12 @@ const _ = require('lodash'); const zlib = require('zlib'); const HomebrewSchema = mongoose.Schema({ - shareId : { type: String, default: ()=>{return nanoid(12);}, index: { unique: true } }, - editId : { type: String, default: ()=>{return nanoid(12);}, index: { unique: true } }, - title : { type: String, default: '' }, - text : { type: String, default: '' }, - textBin : { type: Buffer }, + shareId : { type: String, default: ()=>{return nanoid(12);}, index: { unique: true } }, + editId : { type: String, default: ()=>{return nanoid(12);}, index: { unique: true } }, + title : { type: String, default: '' }, + text : { type: String, default: '' }, + textBin : { type: Buffer }, + pageCount : { type: Number, default: 1 }, description : { type: String, default: '' }, tags : { type: String, default: '' }, From 3cf05e551fdca5679be5a96757e2555db8c09a7e Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Sun, 15 Aug 2021 20:17:50 +1200 Subject: [PATCH 2/3] Add support for Google Brews. --- server/googleActions.js | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/server/googleActions.js b/server/googleActions.js index 8faa0c720..66deb538a 100644 --- a/server/googleActions.js +++ b/server/googleActions.js @@ -116,10 +116,11 @@ GoogleActions = { updatedAt : file.modifiedTime, gDrive : true, googleId : file.id, + pageCount : file.properties?.pageCount || 1, title : file.properties.title, description : file.description, - views : file.properties.views, + views : file.properties.views, tags : '', published : file.properties.published ? file.properties.published == 'true' : false, authors : [req.account.username], //TODO: properly save and load authors to google drive @@ -154,13 +155,15 @@ GoogleActions = { resource : { name : `${brew.title}.txt`, description : `${brew.description}`, properties : { title : brew.title, - published : brew.published, - lastViewed : brew.lastViewed, - views : brew.views, - version : brew.version, - renderer : brew.renderer, - tags : brew.tags, - systems : brew.systems.join() } + published : brew.published, + lastViewed : brew.lastViewed, + views : brew.views, + version : brew.version, + renderer : brew.renderer, + tags : brew.tags, + systems : brew.systems.join(), + pageCount : (brew.text.match(/\\page/g) || []).length + 1 + } }, media : { mimeType : 'text/plain', body : brew.text } @@ -190,10 +193,11 @@ GoogleActions = { 'description' : `${brew.description}`, 'parents' : [folderId], 'properties' : { //AppProperties is not accessible - 'shareId' : nanoid(12), - 'editId' : nanoid(12), - 'title' : brew.title, - 'views' : '0' + 'shareId' : nanoid(12), + 'editId' : nanoid(12), + 'title' : brew.title, + 'views' : '0', + 'pageCount' : (brew.text.match(/\\page/g) || []).length + 1 } }; @@ -227,6 +231,7 @@ GoogleActions = { updatedAt : new Date(), gDrive : true, googleId : obj.data.id, + pageCount : fileMetadata.properties.pageCount || 1, title : brew.title, description : brew.description, @@ -298,6 +303,7 @@ GoogleActions = { createdAt : obj.data.createdTime, updatedAt : obj.data.modifiedTime, lastViewed : obj.data.properties.lastViewed, + pageCount : obj.data.properties?.pageCount || 1, views : parseInt(obj.data.properties.views) || 0, //brews with no view parameter will return undefined version : parseInt(obj.data.properties.version) || 0, renderer : obj.data.properties.renderer ? obj.data.properties.renderer : 'legacy', From 3489a76a1db228e2b59d9f3ca016897d002fbce9 Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Sun, 15 Aug 2021 20:32:23 +1200 Subject: [PATCH 3/3] Hide pageCount on User Page if the brew only has one page --- client/homebrew/pages/userPage/brewItem/brewItem.jsx | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/client/homebrew/pages/userPage/brewItem/brewItem.jsx b/client/homebrew/pages/userPage/brewItem/brewItem.jsx index c55933685..8a9d90880 100644 --- a/client/homebrew/pages/userPage/brewItem/brewItem.jsx +++ b/client/homebrew/pages/userPage/brewItem/brewItem.jsx @@ -114,9 +114,11 @@ const BrewItem = createClass({ {brew.views} - - {brew.pageCount || 1} - + {(brew?.pageCount>1) && + + {brew.pageCount} + + } {moment(brew.updatedAt).fromNow()}