diff --git a/package.json b/package.json index 951b9a6..df28a42 100644 --- a/package.json +++ b/package.json @@ -7,6 +7,7 @@ "quick": "node scripts/quick.js", "build": "node scripts/build.js", "phb": "node scripts/phb.js", + "genbrews": "node scripts/genbrews.js", "prod": "set NODE_ENV=production&& npm run build", "postinstall": "npm run build", "start": "node server.js", diff --git a/scripts/genbrews.js b/scripts/genbrews.js new file mode 100644 index 0000000..0005304 --- /dev/null +++ b/scripts/genbrews.js @@ -0,0 +1,51 @@ +//Populates the DB with a bunch of brews for UI testing + +const _ = require('lodash'); + +const DB = require('../server/db.js'); +const BrewData = require('../server/brew.data.js'); + + +//TODO: pull in snippets and randomly add them + +const genBrew = () => { + return { + title : 'BrewA', + description : '', + text : '', + authors : _.sampleSize(['userA','userB','userC','userD'], _.random(0, 3)), + systems : _.sampleSize(['5e', '4e', '3.5e', 'Pathfinder'], _.random(0,2)), + views : _.random(0,1000), + published : !!_.random(0,1) + } +} + +const randomBrews = _.times(20, genBrew); + +const specificBrews = [ + { + text : 'Cool test', + authors : ['test'] + } +]; + + +return Promise.resolve() + .then(DB.connect) + .then(BrewData.removeAll) + .then(() => { + console.log('Adding random brews...'); + return Promise.all(_.map(randomBrews, (brew) => { + return BrewData.create(brew); + })); + }) + .then(() => { + console.log('Adding specific brews...'); + return Promise.all(_.map(specificBrews, (brew) => { + return BrewData.create(brew); + })); + }) + .then(() => { + console.log(`\n Added ${randomBrews.length + specificBrews.length} brews.`); + }) + .catch(console.error); diff --git a/server/brew.data.js b/server/brew.data.js index d8281e1..b6a5a85 100644 --- a/server/brew.data.js +++ b/server/brew.data.js @@ -22,7 +22,7 @@ const BrewSchema = mongoose.Schema({ updatedAt : { type: Date, default: Date.now}, lastViewed : { type: Date, default: Date.now}, views : {type:Number, default:0}, - version : {type: Number, default:1} + version : {type: Number, default:1} }, { versionKey: false, toJSON : { @@ -33,6 +33,7 @@ const BrewSchema = mongoose.Schema({ } }); +//Index these fields for fast text searching BrewSchema.index({ title: "text", description: "text" }); BrewSchema.methods.increaseView = function(){ @@ -42,9 +43,6 @@ BrewSchema.methods.increaseView = function(){ const Brew = mongoose.model('Brew', BrewSchema); - - - const BrewData = { schema : BrewSchema, model : Brew, @@ -96,6 +94,12 @@ const BrewData = { return BrewData.get({ editId }); }, + + //TODO: Add a 'core search' which just takes a search object + //TODO: extend the core search with a user search and a term search + //TODO: break these functions off into a 'brew.search.js' file + //TODO: pagniation, sorting and full access should be an 'opts' param + search : (searchTerms, pagination, sorting, fullAccess = true) => { let query = {}; if(searchTerms){ diff --git a/server/db.js b/server/db.js index a9c5400..6cb0986 100644 --- a/server/db.js +++ b/server/db.js @@ -8,14 +8,14 @@ module.exports = { connect : ()=>{ return new Promise((resolve, reject)=>{ if(mongoose.connection.readyState == 1){ - log.info('DB already connected'); + log.warn('DB already connected'); return resolve(); } mongoose.connect(dbPath, (err) => { if(err){ - log.info('Error : Could not connect to a Mongo Database.'); - log.info(' If you are running locally, make sure mongodb.exe is running.'); + log.error('Error : Could not connect to a Mongo Database.'); + log.error(' If you are running locally, make sure mongodb.exe is running.'); return reject(err); } log.info('DB connected.'); diff --git a/shared/homebrewery/brewEditor/metadataEditor/metadataEditor.less b/shared/homebrewery/brewEditor/metadataEditor/metadataEditor.less index c3141f0..2f9812d 100644 --- a/shared/homebrewery/brewEditor/metadataEditor/metadataEditor.less +++ b/shared/homebrewery/brewEditor/metadataEditor/metadataEditor.less @@ -76,4 +76,7 @@ font-size: 0.8em; line-height : 1.5em; } + .thumbnail.field{ + + } } \ No newline at end of file