From 1ee0e6c1d7484930387438b7ebb15340595b5383 Mon Sep 17 00:00:00 2001 From: Christian Hofmaier Date: Sun, 24 Mar 2019 16:02:18 +0000 Subject: [eventmanager] Add module and functionality - list to show all events, buttons to create/delete events - can add groups/clients to event - can add blacklist to event --- server/models/client.js | 2 ++ server/models/event.js | 26 ++++++++++++++++++++++++++ server/models/group.js | 3 +++ 3 files changed, 31 insertions(+) create mode 100644 server/models/event.js (limited to 'server/models') diff --git a/server/models/client.js b/server/models/client.js index 6483573..502f668 100644 --- a/server/models/client.js +++ b/server/models/client.js @@ -20,6 +20,8 @@ module.exports = (sequelize, DataTypes) => { var GroupXClient = sequelize.define('group_x_client', {}, { timestamps: false, freezeTableName: true }) client.belongsToMany(models.group, { as: 'groups', through: GroupXClient, foreignKey: 'clientId', otherKey: 'groupId' }) client.belongsTo(models.config) + var ClientXEvent = sequelize.define('client_x_event', { blacklist: DataTypes.BOOLEAN }, { timestamps: false, freezeTableName: true }) + client.belongsToMany(models.event, { as: 'events', through: ClientXEvent, foreignKey: 'clientId', otherKey: 'eventId' }) } return client } diff --git a/server/models/event.js b/server/models/event.js new file mode 100644 index 0000000..11a35e7 --- /dev/null +++ b/server/models/event.js @@ -0,0 +1,26 @@ +'use strict' +module.exports = (sequelize, DataTypes) => { + var event = sequelize.define('event', { + id: { + allowNull: false, + autoIncrement: true, + primaryKey: true, + type: DataTypes.INTEGER + }, + name: DataTypes.STRING, + description: DataTypes.STRING(2048), + config: DataTypes.INTEGER, + times: DataTypes.STRING(4096), + important: DataTypes.BOOLEAN + }, { + timestamps: false + }) + event.associate = function (models) { + var ClientXEvent = sequelize.define('client_x_event', { blacklist: DataTypes.BOOLEAN }, { timestamps: false, freezeTableName: true }) + event.belongsToMany(models.client, { as: 'clients', through: ClientXEvent, foreignKey: 'eventId', otherKey: 'clientId' }) + + var GroupXEvent = sequelize.define('group_x_event', { blacklist: DataTypes.BOOLEAN }, { timestamps: false, freezeTableName: true }) + event.belongsToMany(models.group, { as: 'groups', through: GroupXEvent, foreignKey: 'eventId', otherKey: 'groupId' }) + } + return event +} diff --git a/server/models/group.js b/server/models/group.js index 30fc78d..6ff9034 100644 --- a/server/models/group.js +++ b/server/models/group.js @@ -15,11 +15,14 @@ module.exports = (sequelize, DataTypes) => { group.associate = function (models) { var GroupXGroup = sequelize.define('group_x_group', {}, { timestamps: false, freezeTableName: true }) var GroupXClient = sequelize.define('group_x_client', {}, { timestamps: false, freezeTableName: true }) + var GroupXEvent = sequelize.define('group_x_event', { blacklist: DataTypes.BOOLEAN }, { timestamps: false, freezeTableName: true }) group.belongsToMany(group, { as: 'parents', through: GroupXGroup, foreignKey: 'childId', otherKey: 'parentId' }) group.belongsToMany(group, { as: 'subgroups', through: GroupXGroup, foreignKey: 'parentId', otherKey: 'childId' }) group.belongsToMany(models.client, { as: 'clients', through: GroupXClient, foreignKey: 'groupId', otherKey: 'clientId' }) + group.belongsToMany(models.event, { as: 'events', through: GroupXEvent, foreignKey: 'groupId', otherKey: 'eventId' }) group.belongsTo(models.config) group.hasMany(models.iprange, { as: 'ipranges' }) + } return group } -- cgit v1.2.3-55-g7522