From 90431efbc92d7adaa57a706ff310a43c302b59c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Losada=20Hern=C3=A1ndez?= Date: Tue, 11 Jun 2024 00:33:36 +0200 Subject: [PATCH] "Removed ArchivePage and related files, replaced with VaultPage, updated routes and API endpoints, and made minor changes to theme configuration and error handling." --- client/homebrew/homebrew.jsx | 5 +-- .../basePages/listPage/brewItem/brewItem.jsx | 2 - .../vaultPage.jsx} | 45 +++++++++++-------- .../vaultPage.less} | 2 +- server/admin.api.js | 3 ++ server/app.js | 8 ++-- server/{archive.api.js => vault.api.js} | 13 +++--- themes/themes.json | 2 +- 8 files changed, 43 insertions(+), 37 deletions(-) rename client/homebrew/pages/{archivePage/archivePage.jsx => vaultPage/vaultPage.jsx} (91%) rename client/homebrew/pages/{archivePage/archivePage.less => vaultPage/vaultPage.less} (99%) rename server/{archive.api.js => vault.api.js} (90%) diff --git a/client/homebrew/homebrew.jsx b/client/homebrew/homebrew.jsx index 49f51aec0..b23f47baa 100644 --- a/client/homebrew/homebrew.jsx +++ b/client/homebrew/homebrew.jsx @@ -10,7 +10,7 @@ const UserPage = require('./pages/userPage/userPage.jsx'); const SharePage = require('./pages/sharePage/sharePage.jsx'); const NewPage = require('./pages/newPage/newPage.jsx'); const ErrorPage = require('./pages/errorPage/errorPage.jsx'); -const PrintPage = require('./pages/printPage/printPage.jsx'); +const VaultPage = require('./pages/vaultPage/vaultPage.jsx'); const AccountPage = require('./pages/accountPage/accountPage.jsx'); const WithRoute = (props)=>{ @@ -72,9 +72,8 @@ const Homebrew = createClass({ } /> } /> } /> - } /> - } /> } /> + }/> } /> } /> } /> diff --git a/client/homebrew/pages/basePages/listPage/brewItem/brewItem.jsx b/client/homebrew/pages/basePages/listPage/brewItem/brewItem.jsx index affc227c0..bf0624f1c 100644 --- a/client/homebrew/pages/basePages/listPage/brewItem/brewItem.jsx +++ b/client/homebrew/pages/basePages/listPage/brewItem/brewItem.jsx @@ -117,8 +117,6 @@ const BrewItem = createClass({ }); } const dateFormatString = 'YYYY-MM-DD HH:mm:ss'; - const authors = brew.authors.length > 0 ? brew.authors : 'No authors'; - return
{brew.thumbnail && diff --git a/client/homebrew/pages/archivePage/archivePage.jsx b/client/homebrew/pages/vaultPage/vaultPage.jsx similarity index 91% rename from client/homebrew/pages/archivePage/archivePage.jsx rename to client/homebrew/pages/vaultPage/vaultPage.jsx index 657837392..867812bc5 100644 --- a/client/homebrew/pages/archivePage/archivePage.jsx +++ b/client/homebrew/pages/vaultPage/vaultPage.jsx @@ -1,4 +1,4 @@ -require('./archivePage.less'); +require('./vaultPage.less'); const React = require('react'); const { useState, useEffect, useRef } = React; @@ -14,7 +14,7 @@ const BrewItem = require('../basePages/listPage/brewItem/brewItem.jsx'); const request = require('../../utils/request-middleware.js'); -const ArchivePage = (props) => { +const VaultPage = (props) => { const [title, setTitle] = useState(props.query.title || ''); const [legacy, setLegacy] = useState(props.query.legacy !== 'false'); const [v3, setV3] = useState(props.query.v3 !== 'false'); @@ -29,6 +29,7 @@ const ArchivePage = (props) => { const countRef = useRef(null); const v3Ref = useRef(null); const legacyRef = useRef(null); + const totalBrewsSpanRef = useRef(null); useEffect(() => { validateInput(); @@ -38,6 +39,23 @@ const ArchivePage = (props) => { !totalBrews && loadTotal(); }, []); + useEffect(() => { + console.log(totalBrewsSpanRef); + console.log(totalBrews); + if (totalBrewsSpanRef.current) { + if (title === '') { + totalBrewsSpanRef.current.innerHTML = '0'; + } else { + if (!totalBrews) { + totalBrewsSpanRef.current.innerHTML = + ''; + } else { + totalBrewsSpanRef.current.innerHTML = `${totalBrews}`; + } + } + } + }, [totalBrews, title, () => totalBrewsSpanRef.current]); + const updateStateWithBrews = (brews, page) => { setBrewCollection(brews || null); setPage(parseInt(page) || 1); @@ -65,7 +83,7 @@ const ArchivePage = (props) => { if (title !== '') { try { const response = await request.get( - `/api/archive?title=${title}&page=${page}&count=${count}&v3=${v3}&legacy=${legacy}` + `/api/vault?title=${title}&page=${page}&count=${count}&v3=${v3}&legacy=${legacy}` ); if (response.ok) { updateStateWithBrews(response.body.brews, page); @@ -112,7 +130,7 @@ const ArchivePage = (props) => { if (title) { try { const response = await request.get( - `/api/archive/total?title=${title}&v3=${v3}&legacy=${legacy}` + `/api/vault/total?title=${title}&v3=${v3}&legacy=${legacy}` ); if (response.ok) { @@ -134,7 +152,7 @@ const ArchivePage = (props) => { - Archive: Search for brews + Vault: Search for brews @@ -171,10 +189,7 @@ const ArchivePage = (props) => { pattern=".{3,}" onKeyDown={(e) => { if (e.key === 'Enter') { - if ( - e.target.validity.valid && - e.target.value - ) { + if (e.target.validity.valid && e.target.value) { loadTotal(); loadPage(1, true); } @@ -362,13 +377,7 @@ const ArchivePage = (props) => {
{`Brews found: `} - {title === '' ? ( - '0' - ) : totalBrews ? ( - totalBrews - ) : ( - - )} + {brewCollection.map((brew, index) => ( { }; return ( -
+
{renderNavItems()} @@ -398,4 +407,4 @@ const ArchivePage = (props) => { ); }; -module.exports = ArchivePage; +module.exports = VaultPage; diff --git a/client/homebrew/pages/archivePage/archivePage.less b/client/homebrew/pages/vaultPage/vaultPage.less similarity index 99% rename from client/homebrew/pages/archivePage/archivePage.less rename to client/homebrew/pages/vaultPage/vaultPage.less index 75e9c462e..9f6b8e3df 100644 --- a/client/homebrew/pages/archivePage/archivePage.less +++ b/client/homebrew/pages/vaultPage/vaultPage.less @@ -25,7 +25,7 @@ body { } } -.archivePage { +.vaultPage { overflow-y: hidden; height: 100%; background-color: #2C3E50; diff --git a/server/admin.api.js b/server/admin.api.js index 0b5ecb1fc..66bd58852 100644 --- a/server/admin.api.js +++ b/server/admin.api.js @@ -85,6 +85,7 @@ router.get('/admin/lookup/:id', mw.adminOnly, async (req, res, next)=>{ }); }); + /* Find 50 brews that aren't compressed yet */ router.get('/admin/finduncompressed', mw.adminOnly, (req, res)=>{ const query = uncompressedBrewQuery.clone(); @@ -100,6 +101,7 @@ router.get('/admin/finduncompressed', mw.adminOnly, (req, res)=>{ }); }); + /* Compresses the "text" field of a brew to binary */ router.put('/admin/compress/:id', (req, res)=>{ HomebrewModel.findOne({ _id: req.params.id }) @@ -121,6 +123,7 @@ router.put('/admin/compress/:id', (req, res)=>{ }); }); + router.get('/admin/stats', mw.adminOnly, async (req, res)=>{ try { const totalBrewsCount = await HomebrewModel.countDocuments({}); diff --git a/server/app.js b/server/app.js index cc8c7dfef..b0cb0aca5 100644 --- a/server/app.js +++ b/server/app.js @@ -54,7 +54,7 @@ app.use((req, res, next)=>{ app.use(homebrewApi); app.use(require('./admin.api.js')); -app.use(require('./archive.api.js')); +app.use(require('./vault.api.js')); const HomebrewModel = require('./homebrew.model.js').model; const welcomeText = require('fs').readFileSync('client/homebrew/pages/homePage/welcome_msg.md', 'utf8'); @@ -462,8 +462,8 @@ app.use(async (err, req, res, next)=>{ res.status(err.status || err.response?.status || 500).send(err); return; } - if(err.originalUrl?.startsWith('/archive/')) { - // console.log('archive error'); + if(err.originalUrl?.startsWith('/vault/')) { + // console.log('vault error'); res.status(err.status || err.response?.status || 500).send(err); return; } @@ -490,8 +490,6 @@ app.use(async (err, req, res, next)=>{ res.send(page); }); - - app.use((req, res)=>{ if(!res.headersSent) { console.error('Headers have not been sent, responding with a server error.', req.url); diff --git a/server/archive.api.js b/server/vault.api.js similarity index 90% rename from server/archive.api.js rename to server/vault.api.js index 512b071f1..97d91fc54 100644 --- a/server/archive.api.js +++ b/server/vault.api.js @@ -52,10 +52,10 @@ const buildBrewsQuery = (legacy, v3) => { return brewsQuery; }; -const archive = { +const vault = { findBrews: async (req, res, next) => { try { - console.log(`Query as received in archive api for findBrews:`); + console.log(`Query as received in vault api for findBrews:`); console.table(req.query); const title = req.query.title || ''; @@ -91,7 +91,7 @@ const archive = { } }, findTotal: async (req, res) => { - console.log(`Query as received in archive api for totalBrews:`); + console.log(`Query as received in vault api for totalBrews:`); console.table(req.query); try { const title = req.query.title || ''; @@ -102,9 +102,8 @@ const archive = { const titleQuery = { $and: [brewsQuery, ...titleConditionsArray], }; - const totalBrews = await HomebrewModel.countDocuments(titleQuery); - console.log('when returning, totalbrews is ', totalBrews); + console.log('when returning, totalbrews is ', totalBrews, 'for the query ',JSON.stringify(titleQuery)); return res.json({ totalBrews }); } catch (error) { @@ -114,7 +113,7 @@ const archive = { }, }; -router.get('/api/archive/total', asyncHandler(archive.findTotal)); -router.get('/api/archive', asyncHandler(archive.findBrews)); +router.get('/api/vault/total', asyncHandler(vault.findTotal)); +router.get('/api/vault', asyncHandler(vault.findBrews)); module.exports = router; diff --git a/themes/themes.json b/themes/themes.json index cb0c5593e..bc719185d 100644 --- a/themes/themes.json +++ b/themes/themes.json @@ -34,7 +34,7 @@ "renderer": "V3", "baseTheme": false, "baseSnippets": "5ePHB", - "path": "Journal" + "path": "journal" } } } \ No newline at end of file