From 00f90d108473e8f146c2d8f6fc6262617c6df8ab Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Sat, 31 Jul 2021 17:21:25 +1200 Subject: [PATCH 01/32] 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 02/32] 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 03/32] 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()} From f0a0c0c11daeb6fd033f6feac539a888730f81eb Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Sat, 31 Jul 2021 17:21:25 +1200 Subject: [PATCH 04/32] 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 f0557c47e..7603e19ac 100644 --- a/client/homebrew/pages/userPage/brewItem/brewItem.jsx +++ b/client/homebrew/pages/userPage/brewItem/brewItem.jsx @@ -112,6 +112,7 @@ const BrewItem = createClass({

{brew.title}

{brew.description}


+
@@ -120,6 +121,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 36d0aa576..b865d9193 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 7b0f5cec977da236e608ffafb94b15560a27db30 Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Sun, 15 Aug 2021 20:17:50 +1200 Subject: [PATCH 05/32] Add support for Google Brews. --- server/googleActions.js | 32 +++++++++++++++++++------------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/server/googleActions.js b/server/googleActions.js index eab6babf3..291747349 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 } @@ -191,11 +194,12 @@ GoogleActions = { 'description' : `${brew.description}`, 'parents' : [folderId], 'properties' : { //AppProperties is not accessible - 'shareId' : nanoid(12), - 'editId' : nanoid(12), - 'title' : brew.title, - 'views' : '0', - 'renderer' : brew.renderer || 'legacy' + 'shareId' : nanoid(12), + 'editId' : nanoid(12), + 'title' : brew.title, + 'views' : '0', + 'pageCount' : (brew.text.match(/\\page/g) || []).length + 1, + 'renderer' : brew.renderer || 'legacy' } }; @@ -230,6 +234,7 @@ GoogleActions = { updatedAt : new Date(), gDrive : true, googleId : obj.data.id, + pageCount : fileMetadata.properties.pageCount || 1, title : brew.title, description : brew.description, @@ -301,6 +306,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 1edc62d0235b7f5344c3e02c96c21d238c790e55 Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Sun, 15 Aug 2021 20:32:23 +1200 Subject: [PATCH 06/32] 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 7603e19ac..bd91e0796 100644 --- a/client/homebrew/pages/userPage/brewItem/brewItem.jsx +++ b/client/homebrew/pages/userPage/brewItem/brewItem.jsx @@ -121,9 +121,11 @@ const BrewItem = createClass({ {brew.views} - - {brew.pageCount || 1} - + {(brew?.pageCount>1) && + + {brew.pageCount} + + } {moment(brew.updatedAt).fromNow()} From c907d327791579b4d65640b37461327b011dea3f Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Tue, 17 Aug 2021 15:50:40 +1200 Subject: [PATCH 07/32] Update server/googleActions.js Co-authored-by: Trevor Buckner --- server/googleActions.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/googleActions.js b/server/googleActions.js index 291747349..e310e27cf 100644 --- a/server/googleActions.js +++ b/server/googleActions.js @@ -116,7 +116,7 @@ GoogleActions = { updatedAt : file.modifiedTime, gDrive : true, googleId : file.id, - pageCount : file.properties?.pageCount || 1, + pageCount : file.properties.pageCount, title : file.properties.title, description : file.description, From 6489a294360cd2313e858af27baabb902297d9e5 Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Tue, 17 Aug 2021 15:51:05 +1200 Subject: [PATCH 08/32] Update server/googleActions.js Co-authored-by: Trevor Buckner --- server/googleActions.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/googleActions.js b/server/googleActions.js index e310e27cf..c398b11ae 100644 --- a/server/googleActions.js +++ b/server/googleActions.js @@ -306,7 +306,7 @@ GoogleActions = { createdAt : obj.data.createdTime, updatedAt : obj.data.modifiedTime, lastViewed : obj.data.properties.lastViewed, - pageCount : obj.data.properties?.pageCount || 1, + pageCount : obj.data.properties.pageCount, 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 3b7a52a60f3f0059d736c96473c11db3f2980d69 Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Tue, 17 Aug 2021 16:02:50 +1200 Subject: [PATCH 09/32] Update client/homebrew/pages/userPage/brewItem/brewItem.jsx Co-authored-by: Trevor Buckner --- client/homebrew/pages/userPage/brewItem/brewItem.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/homebrew/pages/userPage/brewItem/brewItem.jsx b/client/homebrew/pages/userPage/brewItem/brewItem.jsx index bd91e0796..3bf4392df 100644 --- a/client/homebrew/pages/userPage/brewItem/brewItem.jsx +++ b/client/homebrew/pages/userPage/brewItem/brewItem.jsx @@ -121,7 +121,7 @@ const BrewItem = createClass({ {brew.views} - {(brew?.pageCount>1) && + {brew.pageCount && {brew.pageCount} From a99cf75b2ebb6dc1e3845a58de60ba44c01ae32d Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Tue, 17 Aug 2021 17:07:19 +1200 Subject: [PATCH 10/32] Lint fix. --- server/googleActions.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/googleActions.js b/server/googleActions.js index c398b11ae..8f301d487 100644 --- a/server/googleActions.js +++ b/server/googleActions.js @@ -306,7 +306,7 @@ GoogleActions = { createdAt : obj.data.createdTime, updatedAt : obj.data.modifiedTime, lastViewed : obj.data.properties.lastViewed, - pageCount : obj.data.properties.pageCount, + pageCount : obj.data.properties.pageCount, 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 a13759130d1bc4790f16243d1b204ae86b0ed0c3 Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Tue, 17 Aug 2021 17:36:26 +1200 Subject: [PATCH 11/32] Push `pageCount` to NewPage and EditPage --- client/homebrew/pages/editPage/editPage.jsx | 21 ++++++++++++--------- client/homebrew/pages/newPage/newPage.jsx | 2 ++ server/googleActions.js | 6 +++--- server/homebrew.api.js | 2 -- 4 files changed, 17 insertions(+), 14 deletions(-) diff --git a/client/homebrew/pages/editPage/editPage.jsx b/client/homebrew/pages/editPage/editPage.jsx index 0967e05e2..f7acb45dc 100644 --- a/client/homebrew/pages/editPage/editPage.jsx +++ b/client/homebrew/pages/editPage/editPage.jsx @@ -191,16 +191,19 @@ const EditPage = createClass({ this.setState((prevState)=>({ isSaving : true, errors : null, - htmlErrors : Markdown.validate(prevState.brew.text) + htmlErrors : Markdown.validate(prevState.brew.text), })); const transfer = this.state.saveGoogle == _.isNil(this.state.brew.googleId); + const brew = this.state.brew; + brew.pageCount = ((brew.renderer=='legacy' ? brew.text.match(/\\page/g) : brew.text.match(/^\\page/gm)) || []).length + 1; + if(this.state.saveGoogle) { if(transfer) { const res = await request .post('/api/newGoogle/') - .send(this.state.brew) + .send(brew) .catch((err)=>{ console.log(err.status === 401 ? 'Not signed in!' @@ -211,7 +214,7 @@ const EditPage = createClass({ if(!res) { return; } console.log('Deleting Local Copy'); - await request.delete(`/api/${this.state.brew.editId}`) + await request.delete(`/api/${brew.editId}`) .send() .catch((err)=>{ console.log('Error deleting Local Copy'); @@ -221,8 +224,8 @@ const EditPage = createClass({ history.replaceState(null, null, `/edit/${this.savedBrew.googleId}${this.savedBrew.editId}`); //update URL to match doc ID } else { const res = await request - .put(`/api/updateGoogle/${this.state.brew.editId}`) - .send(this.state.brew) + .put(`/api/updateGoogle/${brew.editId}`) + .send(brew) .catch((err)=>{ console.log(err.status === 401 ? 'Not signed in!' @@ -236,14 +239,14 @@ const EditPage = createClass({ } else { if(transfer) { const res = await request.post('/api') - .send(this.state.brew) + .send(brew) .catch((err)=>{ console.log('Error creating Local Copy'); this.setState({ errors: err }); return; }); - await request.get(`/api/removeGoogle/${this.state.brew.googleId}${this.state.brew.editId}`) + await request.get(`/api/removeGoogle/${brew.googleId}${brew.editId}`) .send() .catch((err)=>{ console.log('Error Deleting Google Brew'); @@ -253,8 +256,8 @@ const EditPage = createClass({ history.replaceState(null, null, `/edit/${this.savedBrew.editId}`); //update URL to match doc ID } else { const res = await request - .put(`/api/update/${this.state.brew.editId}`) - .send(this.state.brew) + .put(`/api/update/${brew.editId}`) + .send(brew) .catch((err)=>{ console.log('Error Updating Local Brew'); this.setState({ errors: err }); diff --git a/client/homebrew/pages/newPage/newPage.jsx b/client/homebrew/pages/newPage/newPage.jsx index e77fbc987..cebfed133 100644 --- a/client/homebrew/pages/newPage/newPage.jsx +++ b/client/homebrew/pages/newPage/newPage.jsx @@ -161,6 +161,8 @@ const NewPage = createClass({ brew.text = brew.text.slice(index + 5); }; + brew.pageCount=((brew.renderer=='legacy' ? brew.text.match(/\\page/g) : brew.text.match(/^\\page/gm)) || []).length + 1; + if(this.state.saveGoogle) { const res = await request .post('/api/newGoogle/') diff --git a/server/googleActions.js b/server/googleActions.js index 8f301d487..fe91ee9be 100644 --- a/server/googleActions.js +++ b/server/googleActions.js @@ -162,7 +162,7 @@ GoogleActions = { renderer : brew.renderer, tags : brew.tags, systems : brew.systems.join(), - pageCount : (brew.text.match(/\\page/g) || []).length + 1 + pageCount : brew.pageCount } }, media : { mimeType : 'text/plain', @@ -198,7 +198,7 @@ GoogleActions = { 'editId' : nanoid(12), 'title' : brew.title, 'views' : '0', - 'pageCount' : (brew.text.match(/\\page/g) || []).length + 1, + 'pageCount' : brew.pageCount, 'renderer' : brew.renderer || 'legacy' } }; @@ -234,7 +234,7 @@ GoogleActions = { updatedAt : new Date(), gDrive : true, googleId : obj.data.id, - pageCount : fileMetadata.properties.pageCount || 1, + pageCount : fileMetadata.properties.pageCount, title : brew.title, description : brew.description, diff --git a/server/homebrew.api.js b/server/homebrew.api.js index b865d9193..36d0aa576 100644 --- a/server/homebrew.api.js +++ b/server/homebrew.api.js @@ -38,7 +38,6 @@ 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; @@ -67,7 +66,6 @@ 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); From f1d19d2d63291ed445bcfd49719ffe043f132a8f Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Tue, 17 Aug 2021 18:01:07 +1200 Subject: [PATCH 12/32] Eliminate spacer div in BrewItem --- client/homebrew/pages/userPage/brewItem/brewItem.jsx | 2 -- client/homebrew/pages/userPage/brewItem/brewItem.less | 6 +++--- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/client/homebrew/pages/userPage/brewItem/brewItem.jsx b/client/homebrew/pages/userPage/brewItem/brewItem.jsx index 3bf4392df..56629f201 100644 --- a/client/homebrew/pages/userPage/brewItem/brewItem.jsx +++ b/client/homebrew/pages/userPage/brewItem/brewItem.jsx @@ -112,8 +112,6 @@ const BrewItem = createClass({

{brew.title}

{brew.description}


-
-
{brew.authors.join(', ')} diff --git a/client/homebrew/pages/userPage/brewItem/brewItem.less b/client/homebrew/pages/userPage/brewItem/brewItem.less index 7d806e841..6e47458e3 100644 --- a/client/homebrew/pages/userPage/brewItem/brewItem.less +++ b/client/homebrew/pages/userPage/brewItem/brewItem.less @@ -21,6 +21,9 @@ margin-bottom : 5px; font-size : 2.2em; } + .description{ + padding-bottom : 30px; + } .info{ position: absolute; bottom: 0px; @@ -69,7 +72,4 @@ padding : 0px; margin : -5px; } - .spacer { - height : 25px; - } } From 2e68cd77fae7e711e69455e7d43132ec1cf306d3 Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Sat, 31 Jul 2021 17:21:25 +1200 Subject: [PATCH 13/32] Add a page count to User page --- client/homebrew/pages/userPage/brewItem/brewItem.jsx | 3 +++ client/homebrew/pages/userPage/brewItem/brewItem.less | 3 +++ server/homebrew.api.js | 2 ++ 3 files changed, 8 insertions(+) diff --git a/client/homebrew/pages/userPage/brewItem/brewItem.jsx b/client/homebrew/pages/userPage/brewItem/brewItem.jsx index 56629f201..41ed37ffe 100644 --- a/client/homebrew/pages/userPage/brewItem/brewItem.jsx +++ b/client/homebrew/pages/userPage/brewItem/brewItem.jsx @@ -124,6 +124,9 @@ const BrewItem = createClass({ {brew.pageCount} } + + {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 6e47458e3..5122ea6ce 100644 --- a/client/homebrew/pages/userPage/brewItem/brewItem.less +++ b/client/homebrew/pages/userPage/brewItem/brewItem.less @@ -72,4 +72,7 @@ padding : 0px; margin : -5px; } + .spacer { + height : 25px; + } } diff --git a/server/homebrew.api.js b/server/homebrew.api.js index 36d0aa576..b865d9193 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); From eca58bb27e06e451f0dc3594502b10575634ac31 Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Tue, 17 Aug 2021 17:36:26 +1200 Subject: [PATCH 14/32] Push `pageCount` to NewPage and EditPage --- server/homebrew.api.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/server/homebrew.api.js b/server/homebrew.api.js index b865d9193..36d0aa576 100644 --- a/server/homebrew.api.js +++ b/server/homebrew.api.js @@ -38,7 +38,6 @@ 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; @@ -67,7 +66,6 @@ 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); From 2a7bde7e4411fca461b1b9082ba8a95f646cc6ca Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Tue, 17 Aug 2021 18:01:07 +1200 Subject: [PATCH 15/32] Eliminate spacer div in BrewItem --- client/homebrew/pages/userPage/brewItem/brewItem.less | 3 --- 1 file changed, 3 deletions(-) diff --git a/client/homebrew/pages/userPage/brewItem/brewItem.less b/client/homebrew/pages/userPage/brewItem/brewItem.less index 5122ea6ce..6e47458e3 100644 --- a/client/homebrew/pages/userPage/brewItem/brewItem.less +++ b/client/homebrew/pages/userPage/brewItem/brewItem.less @@ -72,7 +72,4 @@ padding : 0px; margin : -5px; } - .spacer { - height : 25px; - } } From 6573ada881ff671bfcb7dfb540bec67ee1fc69ab Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Tue, 17 Aug 2021 19:25:39 +1200 Subject: [PATCH 16/32] Eliminate hanging comma --- client/homebrew/pages/editPage/editPage.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/homebrew/pages/editPage/editPage.jsx b/client/homebrew/pages/editPage/editPage.jsx index f7acb45dc..1f77d785c 100644 --- a/client/homebrew/pages/editPage/editPage.jsx +++ b/client/homebrew/pages/editPage/editPage.jsx @@ -191,7 +191,7 @@ const EditPage = createClass({ this.setState((prevState)=>({ isSaving : true, errors : null, - htmlErrors : Markdown.validate(prevState.brew.text), + htmlErrors : Markdown.validate(prevState.brew.text) })); const transfer = this.state.saveGoogle == _.isNil(this.state.brew.googleId); From cdaa0b3ac2da35ffa00515416fe7404b35b783a9 Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Tue, 17 Aug 2021 19:26:03 +1200 Subject: [PATCH 17/32] Eliminate duplicate section --- client/homebrew/pages/userPage/brewItem/brewItem.jsx | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/client/homebrew/pages/userPage/brewItem/brewItem.jsx b/client/homebrew/pages/userPage/brewItem/brewItem.jsx index 41ed37ffe..69e755b6b 100644 --- a/client/homebrew/pages/userPage/brewItem/brewItem.jsx +++ b/client/homebrew/pages/userPage/brewItem/brewItem.jsx @@ -120,13 +120,10 @@ const BrewItem = createClass({ {brew.views} {brew.pageCount && - + {brew.pageCount} } - - {brew.pageCount || 1} - {moment(brew.updatedAt).fromNow()} From a908c5f5d5e0ac30682d04cc38fe224e6b1d913b Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Sat, 31 Jul 2021 17:21:25 +1200 Subject: [PATCH 18/32] Add a page count to User page --- client/homebrew/pages/userPage/brewItem/brewItem.jsx | 1 + client/homebrew/pages/userPage/brewItem/brewItem.less | 3 +++ server/homebrew.api.js | 2 ++ server/homebrew.model.js | 11 ++++++----- 4 files changed, 12 insertions(+), 5 deletions(-) diff --git a/client/homebrew/pages/userPage/brewItem/brewItem.jsx b/client/homebrew/pages/userPage/brewItem/brewItem.jsx index 50ab397c3..2d07ea152 100644 --- a/client/homebrew/pages/userPage/brewItem/brewItem.jsx +++ b/client/homebrew/pages/userPage/brewItem/brewItem.jsx @@ -107,6 +107,7 @@ const BrewItem = createClass({

{brew.title}

{brew.description}


+
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 36d0aa576..b865d9193 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 df07e0401adeff7963e9701710425f38cca35a4b Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Sun, 15 Aug 2021 20:17:50 +1200 Subject: [PATCH 19/32] Add support for Google Brews. --- server/googleActions.js | 32 +++++++++++++++++++------------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/server/googleActions.js b/server/googleActions.js index eab6babf3..291747349 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 } @@ -191,11 +194,12 @@ GoogleActions = { 'description' : `${brew.description}`, 'parents' : [folderId], 'properties' : { //AppProperties is not accessible - 'shareId' : nanoid(12), - 'editId' : nanoid(12), - 'title' : brew.title, - 'views' : '0', - 'renderer' : brew.renderer || 'legacy' + 'shareId' : nanoid(12), + 'editId' : nanoid(12), + 'title' : brew.title, + 'views' : '0', + 'pageCount' : (brew.text.match(/\\page/g) || []).length + 1, + 'renderer' : brew.renderer || 'legacy' } }; @@ -230,6 +234,7 @@ GoogleActions = { updatedAt : new Date(), gDrive : true, googleId : obj.data.id, + pageCount : fileMetadata.properties.pageCount || 1, title : brew.title, description : brew.description, @@ -301,6 +306,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 7e30fb19d4208d22cd7d9c0870172a50861108bf Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Tue, 17 Aug 2021 15:50:40 +1200 Subject: [PATCH 20/32] Update server/googleActions.js Co-authored-by: Trevor Buckner --- server/googleActions.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/googleActions.js b/server/googleActions.js index 291747349..e310e27cf 100644 --- a/server/googleActions.js +++ b/server/googleActions.js @@ -116,7 +116,7 @@ GoogleActions = { updatedAt : file.modifiedTime, gDrive : true, googleId : file.id, - pageCount : file.properties?.pageCount || 1, + pageCount : file.properties.pageCount, title : file.properties.title, description : file.description, From e0e86dff7cdbaad7a27dfd209322d8a8e38f13d2 Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Tue, 17 Aug 2021 15:51:05 +1200 Subject: [PATCH 21/32] Update server/googleActions.js Co-authored-by: Trevor Buckner --- server/googleActions.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/googleActions.js b/server/googleActions.js index e310e27cf..c398b11ae 100644 --- a/server/googleActions.js +++ b/server/googleActions.js @@ -306,7 +306,7 @@ GoogleActions = { createdAt : obj.data.createdTime, updatedAt : obj.data.modifiedTime, lastViewed : obj.data.properties.lastViewed, - pageCount : obj.data.properties?.pageCount || 1, + pageCount : obj.data.properties.pageCount, 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 0fd7921a5034387e0ca2d250a31cdc5be9fe1ddf Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Tue, 17 Aug 2021 17:07:19 +1200 Subject: [PATCH 22/32] Lint fix. --- server/googleActions.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/googleActions.js b/server/googleActions.js index c398b11ae..8f301d487 100644 --- a/server/googleActions.js +++ b/server/googleActions.js @@ -306,7 +306,7 @@ GoogleActions = { createdAt : obj.data.createdTime, updatedAt : obj.data.modifiedTime, lastViewed : obj.data.properties.lastViewed, - pageCount : obj.data.properties.pageCount, + pageCount : obj.data.properties.pageCount, 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 cfb98986cd4a876c8276df1bdb424a7d90e15d90 Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Tue, 17 Aug 2021 17:36:26 +1200 Subject: [PATCH 23/32] Push `pageCount` to NewPage and EditPage --- client/homebrew/pages/editPage/editPage.jsx | 21 ++++++++++++--------- client/homebrew/pages/newPage/newPage.jsx | 2 ++ server/googleActions.js | 6 +++--- server/homebrew.api.js | 2 -- 4 files changed, 17 insertions(+), 14 deletions(-) diff --git a/client/homebrew/pages/editPage/editPage.jsx b/client/homebrew/pages/editPage/editPage.jsx index 0967e05e2..f7acb45dc 100644 --- a/client/homebrew/pages/editPage/editPage.jsx +++ b/client/homebrew/pages/editPage/editPage.jsx @@ -191,16 +191,19 @@ const EditPage = createClass({ this.setState((prevState)=>({ isSaving : true, errors : null, - htmlErrors : Markdown.validate(prevState.brew.text) + htmlErrors : Markdown.validate(prevState.brew.text), })); const transfer = this.state.saveGoogle == _.isNil(this.state.brew.googleId); + const brew = this.state.brew; + brew.pageCount = ((brew.renderer=='legacy' ? brew.text.match(/\\page/g) : brew.text.match(/^\\page/gm)) || []).length + 1; + if(this.state.saveGoogle) { if(transfer) { const res = await request .post('/api/newGoogle/') - .send(this.state.brew) + .send(brew) .catch((err)=>{ console.log(err.status === 401 ? 'Not signed in!' @@ -211,7 +214,7 @@ const EditPage = createClass({ if(!res) { return; } console.log('Deleting Local Copy'); - await request.delete(`/api/${this.state.brew.editId}`) + await request.delete(`/api/${brew.editId}`) .send() .catch((err)=>{ console.log('Error deleting Local Copy'); @@ -221,8 +224,8 @@ const EditPage = createClass({ history.replaceState(null, null, `/edit/${this.savedBrew.googleId}${this.savedBrew.editId}`); //update URL to match doc ID } else { const res = await request - .put(`/api/updateGoogle/${this.state.brew.editId}`) - .send(this.state.brew) + .put(`/api/updateGoogle/${brew.editId}`) + .send(brew) .catch((err)=>{ console.log(err.status === 401 ? 'Not signed in!' @@ -236,14 +239,14 @@ const EditPage = createClass({ } else { if(transfer) { const res = await request.post('/api') - .send(this.state.brew) + .send(brew) .catch((err)=>{ console.log('Error creating Local Copy'); this.setState({ errors: err }); return; }); - await request.get(`/api/removeGoogle/${this.state.brew.googleId}${this.state.brew.editId}`) + await request.get(`/api/removeGoogle/${brew.googleId}${brew.editId}`) .send() .catch((err)=>{ console.log('Error Deleting Google Brew'); @@ -253,8 +256,8 @@ const EditPage = createClass({ history.replaceState(null, null, `/edit/${this.savedBrew.editId}`); //update URL to match doc ID } else { const res = await request - .put(`/api/update/${this.state.brew.editId}`) - .send(this.state.brew) + .put(`/api/update/${brew.editId}`) + .send(brew) .catch((err)=>{ console.log('Error Updating Local Brew'); this.setState({ errors: err }); diff --git a/client/homebrew/pages/newPage/newPage.jsx b/client/homebrew/pages/newPage/newPage.jsx index e77fbc987..cebfed133 100644 --- a/client/homebrew/pages/newPage/newPage.jsx +++ b/client/homebrew/pages/newPage/newPage.jsx @@ -161,6 +161,8 @@ const NewPage = createClass({ brew.text = brew.text.slice(index + 5); }; + brew.pageCount=((brew.renderer=='legacy' ? brew.text.match(/\\page/g) : brew.text.match(/^\\page/gm)) || []).length + 1; + if(this.state.saveGoogle) { const res = await request .post('/api/newGoogle/') diff --git a/server/googleActions.js b/server/googleActions.js index 8f301d487..fe91ee9be 100644 --- a/server/googleActions.js +++ b/server/googleActions.js @@ -162,7 +162,7 @@ GoogleActions = { renderer : brew.renderer, tags : brew.tags, systems : brew.systems.join(), - pageCount : (brew.text.match(/\\page/g) || []).length + 1 + pageCount : brew.pageCount } }, media : { mimeType : 'text/plain', @@ -198,7 +198,7 @@ GoogleActions = { 'editId' : nanoid(12), 'title' : brew.title, 'views' : '0', - 'pageCount' : (brew.text.match(/\\page/g) || []).length + 1, + 'pageCount' : brew.pageCount, 'renderer' : brew.renderer || 'legacy' } }; @@ -234,7 +234,7 @@ GoogleActions = { updatedAt : new Date(), gDrive : true, googleId : obj.data.id, - pageCount : fileMetadata.properties.pageCount || 1, + pageCount : fileMetadata.properties.pageCount, title : brew.title, description : brew.description, diff --git a/server/homebrew.api.js b/server/homebrew.api.js index b865d9193..36d0aa576 100644 --- a/server/homebrew.api.js +++ b/server/homebrew.api.js @@ -38,7 +38,6 @@ 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; @@ -67,7 +66,6 @@ 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); From ee006b6b1642e40c168e47db713674e63649c054 Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Tue, 17 Aug 2021 18:01:07 +1200 Subject: [PATCH 24/32] Eliminate spacer div in BrewItem --- client/homebrew/pages/userPage/brewItem/brewItem.jsx | 2 -- client/homebrew/pages/userPage/brewItem/brewItem.less | 6 +++--- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/client/homebrew/pages/userPage/brewItem/brewItem.jsx b/client/homebrew/pages/userPage/brewItem/brewItem.jsx index 2d07ea152..c0aee59ad 100644 --- a/client/homebrew/pages/userPage/brewItem/brewItem.jsx +++ b/client/homebrew/pages/userPage/brewItem/brewItem.jsx @@ -107,8 +107,6 @@ const BrewItem = createClass({

{brew.title}

{brew.description}


-
-
{brew.authors.join(', ')} diff --git a/client/homebrew/pages/userPage/brewItem/brewItem.less b/client/homebrew/pages/userPage/brewItem/brewItem.less index 7d806e841..6e47458e3 100644 --- a/client/homebrew/pages/userPage/brewItem/brewItem.less +++ b/client/homebrew/pages/userPage/brewItem/brewItem.less @@ -21,6 +21,9 @@ margin-bottom : 5px; font-size : 2.2em; } + .description{ + padding-bottom : 30px; + } .info{ position: absolute; bottom: 0px; @@ -69,7 +72,4 @@ padding : 0px; margin : -5px; } - .spacer { - height : 25px; - } } From 42da4b4c43b045732787ea2359b048a2d32323b1 Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Sat, 31 Jul 2021 17:21:25 +1200 Subject: [PATCH 25/32] Add a page count to User page --- .../pages/userPage/brewItem/brewItem.jsx | 17 ++++++++++------- .../pages/userPage/brewItem/brewItem.less | 3 +++ server/homebrew.api.js | 2 ++ 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/client/homebrew/pages/userPage/brewItem/brewItem.jsx b/client/homebrew/pages/userPage/brewItem/brewItem.jsx index c0aee59ad..3b27b302b 100644 --- a/client/homebrew/pages/userPage/brewItem/brewItem.jsx +++ b/client/homebrew/pages/userPage/brewItem/brewItem.jsx @@ -114,13 +114,16 @@ const BrewItem = createClass({ {brew.views} - - - {moment(brew.updatedAt).fromNow()} + {brew.pageCount && + + {brew.pageCount} + + } + + {brew.pageCount || 1} + + + {moment(brew.updatedAt).fromNow()} {this.renderGoogleDriveIcon()}
diff --git a/client/homebrew/pages/userPage/brewItem/brewItem.less b/client/homebrew/pages/userPage/brewItem/brewItem.less index 6e47458e3..5122ea6ce 100644 --- a/client/homebrew/pages/userPage/brewItem/brewItem.less +++ b/client/homebrew/pages/userPage/brewItem/brewItem.less @@ -72,4 +72,7 @@ padding : 0px; margin : -5px; } + .spacer { + height : 25px; + } } diff --git a/server/homebrew.api.js b/server/homebrew.api.js index 36d0aa576..b865d9193 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); From 2c6c148da84e3bfdac9bdf0d09f2f7505d2d6c9e Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Tue, 17 Aug 2021 17:36:26 +1200 Subject: [PATCH 26/32] Push `pageCount` to NewPage and EditPage --- server/homebrew.api.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/server/homebrew.api.js b/server/homebrew.api.js index b865d9193..36d0aa576 100644 --- a/server/homebrew.api.js +++ b/server/homebrew.api.js @@ -38,7 +38,6 @@ 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; @@ -67,7 +66,6 @@ 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); From 18cd851674e40a1a66727d4c2e7fdeac48a28881 Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Tue, 17 Aug 2021 18:01:07 +1200 Subject: [PATCH 27/32] Eliminate spacer div in BrewItem --- client/homebrew/pages/userPage/brewItem/brewItem.less | 3 --- 1 file changed, 3 deletions(-) diff --git a/client/homebrew/pages/userPage/brewItem/brewItem.less b/client/homebrew/pages/userPage/brewItem/brewItem.less index 5122ea6ce..6e47458e3 100644 --- a/client/homebrew/pages/userPage/brewItem/brewItem.less +++ b/client/homebrew/pages/userPage/brewItem/brewItem.less @@ -72,7 +72,4 @@ padding : 0px; margin : -5px; } - .spacer { - height : 25px; - } } From 4218078502384206bf27a71140172d5d17cb4ad7 Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Tue, 17 Aug 2021 19:25:39 +1200 Subject: [PATCH 28/32] Eliminate hanging comma --- client/homebrew/pages/editPage/editPage.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/homebrew/pages/editPage/editPage.jsx b/client/homebrew/pages/editPage/editPage.jsx index f7acb45dc..1f77d785c 100644 --- a/client/homebrew/pages/editPage/editPage.jsx +++ b/client/homebrew/pages/editPage/editPage.jsx @@ -191,7 +191,7 @@ const EditPage = createClass({ this.setState((prevState)=>({ isSaving : true, errors : null, - htmlErrors : Markdown.validate(prevState.brew.text), + htmlErrors : Markdown.validate(prevState.brew.text) })); const transfer = this.state.saveGoogle == _.isNil(this.state.brew.googleId); From 15f4aef7ef882830eebcc827b874584b50724672 Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Tue, 17 Aug 2021 19:26:03 +1200 Subject: [PATCH 29/32] Eliminate duplicate section --- client/homebrew/pages/userPage/brewItem/brewItem.jsx | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/client/homebrew/pages/userPage/brewItem/brewItem.jsx b/client/homebrew/pages/userPage/brewItem/brewItem.jsx index 3b27b302b..c096dd438 100644 --- a/client/homebrew/pages/userPage/brewItem/brewItem.jsx +++ b/client/homebrew/pages/userPage/brewItem/brewItem.jsx @@ -115,13 +115,10 @@ const BrewItem = createClass({ {brew.views}
{brew.pageCount && - + {brew.pageCount} } - - {brew.pageCount || 1} - {moment(brew.updatedAt).fromNow()} From 7a081e1147a862465fa61d171fbc1944e4649911 Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Wed, 18 Aug 2021 16:20:27 +1200 Subject: [PATCH 30/32] Property alignment in `googleActions.js` --- server/googleActions.js | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/server/googleActions.js b/server/googleActions.js index fe91ee9be..2594344d8 100644 --- a/server/googleActions.js +++ b/server/googleActions.js @@ -109,15 +109,14 @@ GoogleActions = { const brews = obj.data.files.map((file)=>{ return { - text : '', - shareId : file.properties.shareId, - editId : file.properties.editId, - createdAt : file.createdTime, - updatedAt : file.modifiedTime, - gDrive : true, - googleId : file.id, - pageCount : file.properties.pageCount, - + text : '', + shareId : file.properties.shareId, + editId : file.properties.editId, + createdAt : file.createdTime, + updatedAt : file.modifiedTime, + gDrive : true, + googleId : file.id, + pageCount : file.properties.pageCount, title : file.properties.title, description : file.description, views : file.properties.views, From cb8c3a016ab37112a45ef9df399f009e72057509 Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Wed, 18 Aug 2021 16:25:08 +1200 Subject: [PATCH 31/32] BETTER property alignment in `googleActions` --- server/googleActions.js | 35 +++++++++++++++++------------------ 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/server/googleActions.js b/server/googleActions.js index 2594344d8..04cda42a9 100644 --- a/server/googleActions.js +++ b/server/googleActions.js @@ -109,24 +109,23 @@ GoogleActions = { const brews = obj.data.files.map((file)=>{ return { - text : '', - shareId : file.properties.shareId, - editId : file.properties.editId, - createdAt : file.createdTime, - updatedAt : file.modifiedTime, - gDrive : true, - googleId : file.id, - pageCount : file.properties.pageCount, - title : file.properties.title, - description : file.description, - 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 - systems : [] - }; - }); - + text : '', + shareId : file.properties.shareId, + editId : file.properties.editId, + createdAt : file.createdTime, + updatedAt : file.modifiedTime, + gDrive : true, + googleId : file.id, + pageCount : file.properties.pageCount, + title : file.properties.title, + description : file.description, + 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 + systems : [] + }; + }); return brews; }, From a834c79b4958f93546d4e00c83714be01a7f29a7 Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Wed, 18 Aug 2021 18:07:17 +1200 Subject: [PATCH 32/32] Fix BrewItem locations and overlapping. --- .../pages/userPage/brewItem/brewItem.jsx | 13 ++++++++----- .../pages/userPage/brewItem/brewItem.less | 19 ++++++++++--------- 2 files changed, 18 insertions(+), 14 deletions(-) diff --git a/client/homebrew/pages/userPage/brewItem/brewItem.jsx b/client/homebrew/pages/userPage/brewItem/brewItem.jsx index c096dd438..be0583f88 100644 --- a/client/homebrew/pages/userPage/brewItem/brewItem.jsx +++ b/client/homebrew/pages/userPage/brewItem/brewItem.jsx @@ -104,13 +104,12 @@ const BrewItem = createClass({ const dateFormatString = 'YYYY-MM-DD HH:mm:ss'; return
-

{brew.title}

-

{brew.description}

+
+

{brew.title}

+

{brew.description}

+

- - {brew.authors.join(', ')} - {brew.views} @@ -123,6 +122,10 @@ const BrewItem = createClass({ {moment(brew.updatedAt).fromNow()} {this.renderGoogleDriveIcon()} +
+ + {brew.authors.join(', ')} +
diff --git a/client/homebrew/pages/userPage/brewItem/brewItem.less b/client/homebrew/pages/userPage/brewItem/brewItem.less index 6e47458e3..b5250ae8c 100644 --- a/client/homebrew/pages/userPage/brewItem/brewItem.less +++ b/client/homebrew/pages/userPage/brewItem/brewItem.less @@ -10,27 +10,28 @@ min-height : 105px; margin-right : 15px; margin-bottom : 15px; - padding : 5px 15px 5px 8px; + padding : 5px 15px 2px 8px; padding-right : 15px; border : 1px solid #c9ad6a; border-radius : 5px; -webkit-column-break-inside : avoid; page-break-inside : avoid; break-inside : avoid; - h4{ - margin-bottom : 5px; - font-size : 2.2em; - } - .description{ - padding-bottom : 30px; + .text { + min-height : 54px; + h4{ + margin-bottom : 5px; + font-size : 2.2em; + } } .info{ - position: absolute; - bottom: 0px; + position: initial; + bottom: 2px; margin-bottom: 4px; font-family : ScalySans; font-size : 1.2em; &>span{ + display : float; margin-right : 12px; } }