From cfb98986cd4a876c8276df1bdb424a7d90e15d90 Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Tue, 17 Aug 2021 17:36:26 +1200 Subject: [PATCH] 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);