braziw-plugin-dbedit
Advanced tools
Comparing version
@@ -0,1 +1,2 @@ | ||
'use strict'; | ||
@@ -2,0 +3,0 @@ module.exports = { |
@@ -0,1 +1,3 @@ | ||
'use strict'; | ||
module.exports = { | ||
@@ -2,0 +4,0 @@ get: function(req, res) { |
@@ -0,1 +1,2 @@ | ||
'use strict'; | ||
@@ -2,0 +3,0 @@ module.exports = { |
@@ -0,32 +1,34 @@ | ||
'use strict'; | ||
module.exports = { | ||
get: function(req, res) { | ||
get: async function(req, res) { | ||
//customizable through get parameters: | ||
var querySort = req.query.sort; | ||
if (querySort) { | ||
querySort = JSON.parse(querySort); | ||
} | ||
var queryCols = req.query.cols; //db columns to add | ||
if (queryCols) { | ||
queryCols = JSON.parse(queryCols); | ||
} | ||
var queryLabels = req.query.labels; //if cols is specified, and this is not, just convert to title case | ||
if (queryLabels) { | ||
queryLabels = JSON.parse(queryLabels); | ||
} | ||
var queryListView = req.query.listView; | ||
var queryPageTitle = req.query.pageTitle; | ||
var queryDisplayName = req.query.displayName; | ||
var querySaveParams = req.query.saveParams || ""; | ||
const querySort = req.query.sort && JSON.parse(req.query.sort); | ||
const queryCols = req.query.cols && JSON.parse(req.query.cols); //db columns to add | ||
const queryLabels = req.query.labels && JSON.parse(req.query.labels); //if cols is specified, and this is not, just convert to title case | ||
const queryListView = req.query.listView; | ||
const queryPageTitle = req.query.pageTitle; | ||
const queryDisplayName = req.query.displayName; | ||
const querySaveParams = req.query.saveParams || ""; | ||
var modelStr = req.query.model; | ||
// this replaces the db query | ||
const queryQuery = req.query.query && JSON.parse(req.query.query); | ||
// this extends the db query | ||
const queryFilter = req.query.filter && JSON.parse(req.query.filter); | ||
const modelStr = req.query.model; | ||
//should be in cache by this time (assumption) | ||
var model = web.cms.dbedit.utils.searchModel(modelStr); | ||
var modelAttr = model.getModelDictionary(); | ||
var modelSchema = modelAttr.schema; | ||
var modelName = modelAttr.name; | ||
var modelDisplayName = queryDisplayName || modelAttr.displayName || modelAttr.name; | ||
var modelConf = web.cms.dbedit.utils.getModelConf(modelName) || {}; | ||
var sortDefault = {}; | ||
const model = web.cms.dbedit.utils.searchModel(modelStr); | ||
const modelAttr = model.getModelDictionary(); | ||
const modelSchema = modelAttr.schema; | ||
const modelName = modelAttr.name; | ||
const modelDisplayName = queryDisplayName || modelAttr.displayName || modelAttr.name; | ||
const modelConf = web.cms.dbedit.utils.getModelConf(modelName) || {}; | ||
const sortDefault = {}; | ||
sortDefault[web.cms.dbedit.conf.updateDtCol] = -1; | ||
@@ -36,8 +38,8 @@ | ||
var cols = queryCols || modelConf.cols; | ||
let cols = queryCols || modelConf.cols; | ||
if (!cols) { | ||
cols = []; | ||
var maxColsDisplay = 4; | ||
var counter = 0; | ||
for (var i in modelSchema) { | ||
const maxColsDisplay = 4; | ||
let counter = 0; | ||
for (let i in modelSchema) { | ||
@@ -53,6 +55,6 @@ cols.push(i); | ||
var labels = queryLabels || modelConf.labels; | ||
let labels = queryLabels || modelConf.labels; | ||
if (!labels) { | ||
labels = []; | ||
for (var i=0; i<cols.length; i++) { | ||
for (let i=0; i<cols.length; i++) { | ||
labels.push(web.cms.dbedit.utils.camelToTitle(cols[i])); | ||
@@ -66,4 +68,4 @@ } | ||
var redirectAfter = encodeURIComponent(req.url); | ||
var handlers = modelConf.handlers; | ||
const redirectAfter = encodeURIComponent(req.url); | ||
let handlers = modelConf.handlers; | ||
if (!handlers) { | ||
@@ -81,4 +83,9 @@ | ||
var query = modelConf.query || {}; //else query everything | ||
web.renderTable(req, model, { | ||
let query = queryQuery || modelConf.query || {}; //else query everything | ||
if (queryFilter) { | ||
query = Object.assign(query, queryFilter); | ||
} | ||
const table = await web.renderTable(req, model, { | ||
query: query, | ||
@@ -89,9 +96,17 @@ columns: cols, | ||
handlers: handlers | ||
}, | ||
function(err, table) { | ||
var listView = queryListView || modelConf.view || web.cms.dbedit.conf.listView; | ||
var pageTitle = queryPageTitle || modelConf.pageTitle || (modelDisplayName + ' List'); | ||
res.render(listView, {table: table, redirectAfter: redirectAfter, saveParams: querySaveParams, pageTitle: pageTitle, modelName: modelName, modelDisplayName: modelDisplayName}); | ||
}); | ||
const listView = queryListView || modelConf.view || web.cms.dbedit.conf.listView; | ||
const pageTitle = queryPageTitle || modelConf.pageTitle || (modelDisplayName + ' List'); | ||
res.render(listView, { | ||
table: table, | ||
redirectAfter: redirectAfter, | ||
saveParams: querySaveParams, | ||
pageTitle: pageTitle, | ||
modelName: modelName, | ||
modelDisplayName: modelDisplayName, | ||
filter: JSON.stringify(queryFilter), | ||
sort: JSON.stringify(querySort) | ||
}); | ||
} | ||
} |
@@ -0,1 +1,2 @@ | ||
'use strict'; | ||
@@ -2,0 +3,0 @@ module.exports = { |
@@ -0,1 +1,3 @@ | ||
'use strict'; | ||
var dbeditUtils = require('./utils/dbeditUtils.js'); | ||
@@ -2,0 +4,0 @@ var fs = require('fs'); |
{ | ||
"name": "braziw-plugin-dbedit", | ||
"version": "2.5.0", | ||
"version": "4.0.0", | ||
"description": "Braziw js Mongo DB object editor / scaffolding.", | ||
@@ -22,3 +22,3 @@ "keywords": [ | ||
"engines": { | ||
"node": ">= 0.10.0" | ||
"node": ">= 10.0.0" | ||
}, | ||
@@ -25,0 +25,0 @@ "dependencies": { |
@@ -0,1 +1,3 @@ | ||
'use strict'; | ||
exports.camelToTitle = function(text) { | ||
@@ -2,0 +4,0 @@ if (!text) { |
Sorry, the diff of this file is not supported yet
14369
7.3%273
4.6%13
-7.14%