generator-aristos
Version:
create aristos cms fast with yeoman generator.
186 lines (175 loc) • 5.91 kB
JavaScript
const errorAddEvent = require("../../../../important/AristosStuff/AristosLogger/AristosLogger")
.addError;
/* task model Queries */
const CountTasks = require("../models/queries/tasks/CountTasks");
const FindAllTasks = require("../models/queries/tasks/FindAllTasks");
const DeleteTask = require("../models/queries/tasks/DeleteTasks");
const CreateTask = require("../models/queries/tasks/CreateTasks");
const EditTask = require("../models/queries/tasks/EditTasks");
const FindOneTaskByID = require("../models/queries/tasks/FindOneTaskByID");
const CompleteTask = require("../models/queries/tasks/CompleteTask");
/* media model Queries */
const FindAllMedia = require("../../../../important/admin/adminModels/queries/media/FindAllMedia");
/* User Model Queries */
const FindOneUserByID = require("../../../../important/admin/adminModels/queries/user/FindOneUserWithID");
const FindUserByParams = require("../../../../important/admin/adminModels/queries/user/FindUserWithParam");
module.exports = {
index(req, res, next) {
Promise.all([FindAllTasks(), CountTasks()]).then(result => {
res.render(
"../../../expansion/upgrade/project-management/views/project-management",
{
content: "",
tasks: result[0],
count: result[1]
}
);
});
} /* end of index function */,
addIndex(req, res, index) {
let taskName,
content,
assigned = "";
let completed = 0;
Promise.all([FindUserByParams({ admin: 1 }), FindAllMedia()]).then(
result => {
res.render(
"../../../expansion/upgrade/project-management/views/tasks/add_task",
{
content: "",
taskName: taskName,
content: content,
assigned: assigned,
completed: completed,
user: result[0],
media: result[1]
}
);
}
);
} /* end of add index function */,
create(req, res, next) {
const User = FindOneUserByID(req.session.passport.user);
User.then(user => {
if (user.admin === 1) {
let errors = [];
if (!req.body.taskName) {
errors.push({ text: "Title must have a value." });
}
if (!req.body.content) {
errors.push({ text: "Content must have a value." });
}
let taskName = req.body.taskName;
let content = req.body.content;
let assigned = req.body.assigned;
if (errors.length > 0) {
Promise.all([FindUserByParams({ admin: 1 }), FindAllMedia()]).then(
result => {
return res.render(
"../../../expansion/upgrade/project-management/views/tasks/add_task",
{
errors: errors,
taskName: taskName,
assigned: assigned,
content: content,
user: result[0],
media: result[1]
}
);
}
);
} else {
const TaskProps = {
title: taskName,
assigned: assigned,
content: content,
completed: 0
};
CreateTask(TaskProps);
req.flash("success_msg", "Task added!");
res.redirect("/admin/project-management");
}
} else {
res.redirect("/users/login");
}
});
} /* end of create function */,
editIndex(req, res, next) {
Promise.all([
FindUserByParams({ admin: 1 }),
FindOneTaskByID(req.params.id),
FindAllMedia()
]).then(result => {
res.render(
"../../../expansion/upgrade/project-management/views/tasks/edit_task",
{
content: "",
taskName: result[1].title,
assigned: result[1].assigned,
content: result[1].content,
user: result[0],
id: result[1]._id,
media: result[2]
}
);
});
} /* end of edit index function */,
edit(req, res, next) {
const User = FindOneUserByID(req.session.passport.user);
User.then(user => {
if (user.admin === 1) {
let errors = [];
if (!req.body.taskName) {
errors.push({ text: "Title must have a value." });
}
if (!req.body.content) {
errors.push({ text: "Content must have a value." });
}
let taskName = req.body.taskName;
let content = req.body.content;
let assigned = req.body.assigned;
let id = req.params.id;
if (errors.length > 0) {
Promise.all([FindUSerByParams({ admin: 1 }), FindAllMedia()]).then(
result => {
return res.render(
"../../../expansion/upgrade/project-management/views/tasks/add_task",
{
errors: errors,
taskName: taskName,
assigned: assigned,
content: content,
user: result[0],
media: result[2]
}
);
}
);
} else {
const TaskProps = {
title: taskName,
content: content,
assigned: assigned
};
EditTask(id, TaskProps);
req.flash("success_msg", "Task Edited!");
res.redirect("/admin/project-management");
}
} else {
res.redirect("/users/login");
}
});
} /* end of edit function */,
/* need to change to query model */
complete(req, res, next) {
CompleteTask(req.params.id).then(stuff => {
req.flash("success_msg", "Task Completed!");
res.redirect("/admin/project-management");
});
} /* end of complete function */,
delete(req, res, next) {
DeleteTask(req.params.id);
req.flash("success_msg", "Task Deleted!");
res.redirect("/admin/project-management");
} /* end of delete function */
};