From 2f9bd00d703dde7697e60ffffaa95de9e29019e1 Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Tue, 2 Mar 2021 20:30:11 +1300 Subject: [PATCH] Merge `importPage` functions into `newPage`. --- client/homebrew/homebrew.jsx | 4 +- .../homebrew/pages/importPage/importPage.jsx | 207 ------------------ .../homebrew/pages/importPage/importPage.less | 10 - client/homebrew/pages/newPage/newPage.jsx | 22 +- server.js | 2 +- 5 files changed, 24 insertions(+), 221 deletions(-) delete mode 100644 client/homebrew/pages/importPage/importPage.jsx delete mode 100644 client/homebrew/pages/importPage/importPage.less diff --git a/client/homebrew/homebrew.jsx b/client/homebrew/homebrew.jsx index d7c963c1c..4fa170d7c 100644 --- a/client/homebrew/homebrew.jsx +++ b/client/homebrew/homebrew.jsx @@ -9,7 +9,7 @@ const EditPage = require('./pages/editPage/editPage.jsx'); const UserPage = require('./pages/userPage/userPage.jsx'); const SharePage = require('./pages/sharePage/sharePage.jsx'); const NewPage = require('./pages/newPage/newPage.jsx'); -const ImportPage = require('./pages/importPage/importPage.jsx'); +//const ImportPage = require('./pages/importPage/importPage.jsx'); //const ErrorPage = require('./pages/errorPage/errorPage.jsx'); const PrintPage = require('./pages/printPage/printPage.jsx'); @@ -45,7 +45,7 @@ const Homebrew = createClass({ }/> }/> - }/> + }/> }/> } /> } /> diff --git a/client/homebrew/pages/importPage/importPage.jsx b/client/homebrew/pages/importPage/importPage.jsx deleted file mode 100644 index d64d63d8b..000000000 --- a/client/homebrew/pages/importPage/importPage.jsx +++ /dev/null @@ -1,207 +0,0 @@ -require('./importPage.less'); -const React = require('react'); -const createClass = require('create-react-class'); -const _ = require('lodash'); -const request = require('superagent'); - -const Markdown = require('naturalcrit/markdown.js'); - -const Nav = require('naturalcrit/nav/nav.jsx'); -const Navbar = require('../../navbar/navbar.jsx'); -const AccountNavItem = require('../../navbar/account.navitem.jsx'); -const RecentNavItem = require('../../navbar/recent.navitem.jsx').both; -const IssueNavItem = require('../../navbar/issue.navitem.jsx'); - -const SplitPane = require('naturalcrit/splitPane/splitPane.jsx'); -const Editor = require('../../editor/editor.jsx'); -const BrewRenderer = require('../../brewRenderer/brewRenderer.jsx'); - - -const KEY = 'homebrewery-new'; - -const ImportPage = createClass({ - getDefaultProps : function() { - return { - brew : { - text : '', - shareId : null, - editId : null, - createdAt : null, - updatedAt : null, - gDrive : false, - - title : '', - description : '', - tags : '', - published : false, - authors : [], - systems : [] - } - }; - }, - - getInitialState : function() { - return { - metadata : { - gDrive : false, - title : '', - description : '', - tags : '', - published : false, - authors : [], - systems : [] - }, - - text : this.props.brew.text, - isSaving : false, - saveGoogle : (global.account && global.account.googleId ? true : false), - errors : [] - }; - }, - - componentDidMount : function() { - const storage = localStorage.getItem(KEY); - if(storage){ - this.setState({ - text : storage - }); - } - document.addEventListener('keydown', this.handleControlKeys); - }, - componentWillUnmount : function() { - document.removeEventListener('keydown', this.handleControlKeys); - }, - - handleControlKeys : function(e){ - if(!(e.ctrlKey || e.metaKey)) return; - const S_KEY = 83; - const P_KEY = 80; - if(e.keyCode == S_KEY) this.save(); - if(e.keyCode == P_KEY) this.print(); - if(e.keyCode == P_KEY || e.keyCode == S_KEY){ - e.stopPropagation(); - e.preventDefault(); - } - }, - - handleSplitMove : function(){ - this.refs.editor.update(); - }, - - handleMetadataChange : function(metadata){ - this.setState({ - metadata : _.merge({}, this.state.metadata, metadata) - }); - }, - - handleTextChange : function(text){ - this.setState({ - text : text, - errors : Markdown.validate(text) - }); - localStorage.setItem(KEY, text); - }, - - save : async function(){ - this.setState({ - isSaving : true - }); - - console.log('saving new brew'); - - if(this.state.saveGoogle) { - const res = await request - .post('/api/newGoogle/') - .send(_.merge({}, this.state.metadata, { text: this.state.text })) - .catch((err)=>{ - console.log(err.status === 401 - ? 'Not signed in!' - : 'Error Creating New Google Brew!'); - this.setState({ isSaving: false }); - return; - }); - - const brew = res.body; - localStorage.removeItem(KEY); - window.location = `/edit/${brew.googleId}${brew.editId}`; - } else { - request.post('/api') - .send(_.merge({}, this.state.metadata, { - text : this.state.text - })) - .end((err, res)=>{ - if(err){ - this.setState({ - isSaving : false - }); - return; - } - window.onbeforeunload = function(){}; - const brew = res.body; - localStorage.removeItem(KEY); - window.location = `/edit/${brew.editId}`; - }); - } - - }, - - renderSaveButton : function(){ - if(this.state.isSaving){ - return - save... - ; - } else { - return - save - ; - } - }, - - print : function(){ - localStorage.setItem('print', this.state.text); - window.open('/print?dialog=true&local=print', '_blank'); - }, - - renderLocalPrintButton : function(){ - return - get PDF - ; - }, - - renderNavbar : function(){ - return - - - {this.state.metadata.title} - - - - {this.renderSaveButton()} - {this.renderLocalPrintButton()} - - - - - ; - }, - - render : function(){ - return
- {this.renderNavbar()} -
- - - - -
-
; - } -}); - -module.exports = ImportPage; diff --git a/client/homebrew/pages/importPage/importPage.less b/client/homebrew/pages/importPage/importPage.less deleted file mode 100644 index 041508a61..000000000 --- a/client/homebrew/pages/importPage/importPage.less +++ /dev/null @@ -1,10 +0,0 @@ -.importPage{ - - .saveButton{ - background-color: @orange; - &:hover{ - background-color: @green; - } - } - -} \ No newline at end of file diff --git a/client/homebrew/pages/newPage/newPage.jsx b/client/homebrew/pages/newPage/newPage.jsx index 8d20277f9..ad40d0905 100644 --- a/client/homebrew/pages/newPage/newPage.jsx +++ b/client/homebrew/pages/newPage/newPage.jsx @@ -20,10 +20,30 @@ const BrewRenderer = require('../../brewRenderer/brewRenderer.jsx'); const KEY = 'homebrewery-new'; const NewPage = createClass({ + getDefaultProps : function() { + return { + brew : { + text : '', + shareId : null, + editId : null, + createdAt : null, + updatedAt : null, + gDrive : false, + + title : '', + description : '', + tags : '', + published : false, + authors : [], + systems : [] + } + }; + }, + getInitialState : function() { return { brew : { - text : '', + text : this.props.brew.text, gDrive : false, title : '', description : '', diff --git a/server.js b/server.js index 440751903..b20c2f6c2 100644 --- a/server.js +++ b/server.js @@ -144,7 +144,7 @@ app.get('/edit/:id', (req, res, next)=>{ } }); -//Import Page +//New Page app.get('/new/:id', (req, res, next)=>{ res.header('Cache-Control', 'no-cache, no-store'); //reload the latest saved brew when pressing back button, not the cached version before save. if(req.params.id.length > 12) {