// for date handling
var moment = require('moment');
moment().format();
// helpers
let assetsgroupshelper = require('../../models/assetsgroups');
let assetshelper = require('../../models/assets');
let assetsparameterhelper = require('../../models/assetsparametershelper');
let warehousehelper = require('../../models/warehouses');
let momentHelperObj = require('../../models/momenthelper');
let momenthelper = new momentHelperObj();
/**
* Module offers routes for assets handling
* @module routes/assets
*/
module.exports = {
/**
* Route loading Assets List.
* @function
* @memberof module:routes/assets
* @param {object} req - Express request
* @param {object} res - Express response.
*/
getAssetsList: (req, res) => {
let assets = new assetshelper(req.app.logger);
assets.getListOfAssets((resultAssets) => {
res.render('assets/assets.ejs', {
title: 'ALARMiator | Geräte',
navarea: 'assets',
avatarpath: req.session.avatar,
name: req.session.name,
organizationname: req.session.organization,
session: req.session,
assets: resultAssets
});
});
},
/**
* Route loading Page for adding a new asset.
* @function
* @memberof module:routes/assets
* @param {object} req - Express request
* @param {object} res - Express response.
*/
addAssetsPage: (req, res) => {
let groups = new assetsgroupshelper(req.app.logger);
let warehouses = new warehousehelper(req.app.logger);
groups.getListOfAssetGroups((resultGroups) => {
let assets = new assetshelper(req.app.logger);
assets.getListOfAssetsStates((resultStates) => {
warehouses.getListOfWarehouses((resultWarehouses) => {
//console.log(resultStates.length);
res.render('assets/assets_add.ejs', {
title: 'ALARMiator',
navarea: 'assets',
avatarpath: req.session.avatar,
name: req.session.name,
organizationname: req.session.organization,
session: req.session,
groups: resultGroups,
states: resultStates,
warehouses: resultWarehouses,
message: ''
});
})
})
});
},
/**
* Route storing a new asset to core database and redirecting to asstes list afterwards.
* @function
* @memberof module:routes/assets
* @param {object} req - Express request
* @param {object} res - Express response.
*/
addAssets: (req, res) => {
var assets = new assetshelper(req.app.logger);
assets.addAsset(req.body, (success) => {
if (success) {
res.redirect('/assets/assets/list');
} else {
res.redirect('/assets/assets/list');
}
})
},
/**
* Route for edit Page of an asset.
* @function
* @memberof module:routes/assets
* @param {object} req - Express request
* @param {object} res - Express response.
*/
editAssetsPage: (req, res) => {
let assetId = req.params.id;
let assets = new assetshelper(req.app.logger);
let groups = new assetsgroupshelper(req.app.logger);
let warehouses = new warehousehelper(req.app.logger);
groups.getListOfAssetGroups((resultGroups) => {
assets.getListOfAssetsStates((resultStates) => {
warehouses.getListOfWarehouses((resultWarehouses) => {
assets.getAssetwithId(assetId, (assetRow) => {
if (assetRow === null) {
req.app.logger.error('ROUTES-ASSETS | Error loading asset information from database for id ' + assetId + ': ' + err.message);
res.redirect('/assets/assets/list');
} else {
// Render dates to form representation
if (assetRow[0]['date_bought'] !== null) {
assetRow[0]['date_bought'] = momenthelper.mysqlDateToForm(assetRow[0]['date_bought']);
}
if (assetRow[0]['date_manufactured'] !== null) {
assetRow[0]['date_manufactured'] = momenthelper.mysqlDateToForm(assetRow[0]['date_manufactured']);
}
if (assetRow[0]['date_putOperational'] !== null) {
assetRow[0]['date_putOperational'] = momenthelper.mysqlDateToForm(assetRow[0]['date_putOperational']);
}
if (assetRow[0]['date_outOfService'] !== null) {
assetRow[0]['date_outOfService'] = momenthelper.mysqlDateToForm(assetRow[0]['date_outOfService']);
}
if (assetRow[0]['date_lastMnt'] !== null) {
assetRow[0]['date_lastMnt'] = momenthelper.mysqlDateToForm(assetRow[0]['date_lastMnt']);
}
res.render('assets/assets_edit.ejs', {
title: 'ALARMiator',
navarea: 'assets',
avatarpath: req.session.avatar,
name: req.session.name,
organizationname: req.session.organization,
session: req.session,
groups: resultGroups,
states: resultStates,
warehouses: resultWarehouses,
asset: assetRow[0]
});
}
})
})
})
});
},
/**
* Route for updating an asset in core database and redirecting to assets list afterwards.
* @function
* @memberof module:routes/assets
* @param {object} req - Express request
* @param {object} res - Express response.
*/
editAsset: (req, res) => {
let assetId = req.body.assetId;
let assets = new assetshelper(req.app.logger);
assets.updateAsset(req.body, (success) => {
if (success) {
console.log('editAsset returned with success');
res.redirect('/assets/assets/list');
} else {
res.redirect('/assets/assets/edit/' + assetId);
}
})
},
/**
* Route for deleting an asset from core database.
* @function
* @memberof module:routes/assets
* @param {object} req - Express request
* @param {object} res - Express response.
*/
deleteAsset: (req, res) => {
var assetId = req.params.id;
let query = "DELETE FROM assets WHERE id = ?";
let assets = new assetshelper(req.app.logger);
assets.removeAsset(assetId, (success) => {
if (success) {
res.redirect('/assets/assets/list');
} else {
res.redirect('/assets/assets/list');
}
})
}
};