From cb7711cc9f76fe4211538bad74de68c57cd07e83 Mon Sep 17 00:00:00 2001 From: Udo Walter Date: Tue, 31 Jul 2018 02:20:37 +0000 Subject: [groups] add edit form for groups; add description to groups and clients --- server/api/clients.js | 22 +++-- server/api/groups.js | 63 ++++++------ server/migrations/20180717132233-create-group.js | 3 + server/migrations/20180717132333-create-client.js | 3 + server/models/client.js | 1 + server/models/group.js | 3 +- webapp/src/components/GroupModule.vue | 48 ++++----- webapp/src/components/GroupModuleClientList.vue | 80 +++++++++------ webapp/src/components/GroupModuleClientView.vue | 32 ++++++ webapp/src/components/GroupModuleEditDialog.vue | 83 ---------------- webapp/src/components/GroupModuleGroupList.vue | 75 +++++++------- webapp/src/components/GroupModuleGroupView.vue | 114 ++++++++++++++++++++-- webapp/src/store/groups.js | 114 ++++++++++++++++------ 13 files changed, 397 insertions(+), 244 deletions(-) create mode 100644 webapp/src/components/GroupModuleClientView.vue delete mode 100644 webapp/src/components/GroupModuleEditDialog.vue diff --git a/server/api/clients.js b/server/api/clients.js index 37e207b..d494fd0 100644 --- a/server/api/clients.js +++ b/server/api/clients.js @@ -2,17 +2,19 @@ var path = require('path') var db = require(path.join(__appdir, 'lib', 'sequelize')) -module.exports = { - get: { - - getInfo: function (req, res) { - db.client.findOne({ where: { id: req.query.id } }).then(client => { - res.send(client) - }) - } - +// GET Requests +module.exports.get = { + getList: function (req, res) { + db.client.findAll({ attributes: ['id', 'name'] }).then(list => { + res.send(list) + }) }, - post: { + getGroups: function (req, res) { + db.client.findOne({ where: { id: req.query.id } }).then(client => { + client.getGroups().then(groups => { + res.send(groups) + }) + }) } } diff --git a/server/api/groups.js b/server/api/groups.js index ff29799..fa2c1ca 100644 --- a/server/api/groups.js +++ b/server/api/groups.js @@ -2,41 +2,44 @@ var path = require('path') var db = require(path.join(__appdir, 'lib', 'sequelize')) -module.exports = { - get: { - - getParents: function (req, res) { - const id = req.query.id > 0 ? req.query.id : null - db.group.findOne({ where: { id: id }, include: ['parents'] }).then(group => { - group.getParents().then(parents => { - res.send(parents.map(x => ({ id: x.id, name: x.name }))) - }) - }) - }, - - getSubGroups: function (req, res) { - const id = req.query.id > 0 ? req.query.id : null - db.group.findAll({ where: { '$parents.id$': id }, include: ['parents'] }).then(result => { - res.send(result) - }) - }, +// GET Requests +module.exports.get = { + getList: function (req, res) { + db.group.findAll({ attributes: ['id', 'name'] }).then(list => { + res.send(list) + }) + }, - getClients: function (req, res) { - const id = req.query.id > 0 ? req.query.id : null - db.client.findAll({ where: { '$groups.id$': id }, include: ['groups'] }).then(result => { - res.send(result) + getParents: function (req, res) { + const id = req.query.id > 0 ? req.query.id : null + db.group.findOne({ where: { id: id }, include: ['parents'] }).then(group => { + group.getParents().then(parents => { + res.send(parents) }) - } + }) + }, + getSubGroups: function (req, res) { + const id = req.query.id > 0 ? req.query.id : null + db.group.findAll({ where: { '$parents.id$': id }, include: ['parents'] }).then(subgroups => { + res.send(subgroups) + }) }, - post: { - update: function (req, res) { - const id = req.body.id > 0 ? req.body.id : null - if (!id) res.end() - db.group.update({ name: req.body.name }, { where: { id: id } }) - res.end() - } + getClients: function (req, res) { + const id = req.query.id > 0 ? req.query.id : null + db.client.findAll({ where: { '$groups.id$': id }, include: ['groups'] }).then(clients => { + res.send(clients) + }) + } +} +// POST Requests +module.exports.post = { + update: function (req, res) { + const id = req.body.id > 0 ? req.body.id : null + if (!id) res.end() + db.group.update({ name: req.body.name }, { where: { id: id } }) + res.end() } } diff --git a/server/migrations/20180717132233-create-group.js b/server/migrations/20180717132233-create-group.js index 720a1e7..71258dd 100644 --- a/server/migrations/20180717132233-create-group.js +++ b/server/migrations/20180717132233-create-group.js @@ -10,6 +10,9 @@ module.exports = { }, name: { type: Sequelize.STRING + }, + description: { + type: Sequelize.STRING } }) }, diff --git a/server/migrations/20180717132333-create-client.js b/server/migrations/20180717132333-create-client.js index 79552c4..955f2f9 100644 --- a/server/migrations/20180717132333-create-client.js +++ b/server/migrations/20180717132333-create-client.js @@ -11,6 +11,9 @@ module.exports = { name: { type: Sequelize.STRING }, + description: { + type: Sequelize.STRING + }, ip: { type: Sequelize.STRING }, diff --git a/server/models/client.js b/server/models/client.js index 1086023..483d1e6 100644 --- a/server/models/client.js +++ b/server/models/client.js @@ -8,6 +8,7 @@ module.exports = (sequelize, DataTypes) => { type: DataTypes.INTEGER }, name: DataTypes.STRING, + description: DataTypes.STRING, ip: DataTypes.STRING, mac: DataTypes.STRING, uuid: DataTypes.STRING diff --git a/server/models/group.js b/server/models/group.js index 223df07..e988497 100644 --- a/server/models/group.js +++ b/server/models/group.js @@ -7,7 +7,8 @@ module.exports = (sequelize, DataTypes) => { primaryKey: true, type: DataTypes.INTEGER }, - name: DataTypes.STRING + name: DataTypes.STRING, + description: DataTypes.STRING }, { timestamps: false }) diff --git a/webapp/src/components/GroupModule.vue b/webapp/src/components/GroupModule.vue index 123f847..b690628 100644 --- a/webapp/src/components/GroupModule.vue +++ b/webapp/src/components/GroupModule.vue @@ -12,60 +12,64 @@ - -