cody
Version:
75 lines (57 loc) • 2.04 kB
JavaScript
console.log("loading " + module.id);
var mysql = require("mysql2");
var cody = require("./../index.js");
var fs = require("fs");
var path = require("path");
var util = require("util");
var mysql = require("mysql2");
module.exports = SystemController;
function SystemController(context) {
var self = this;
console.log("SystemController.constructor -> page(" + context.page.itemId + ") = " + context.page.title + ", request = " + context.request);
// init inherited controller
cody.Controller.call(self, context);
}
SystemController.prototype = Object.create( cody.Controller.prototype );
//fetch config values from database
SystemController.prototype.doRequest = function( finish ) {
var self = this;
self.context.fn = "-/cms/system.ejs";
if (self.isRequest("reload")) {
self.app.init(function() {
self.feedback(true, "System reloaded.");
finish();
});
} else if (self.isRequest("Save")) {
self.query("UPDATE cody.websites SET hostname=? WHERE id=?", [this.getParam("hostname"), this.getParam("id")], function (err2, results2) {
self.doList(function() {
self.app.init(function() {
self.feedback(true, "Parameters saved and system reloaded.");
finish();
});
});
});
} else if (self.isRequest("Hosting")) {
self.doList(finish);
} else {
finish();
}
};
SystemController.prototype.doList = function(finish) {
var self = this;
var hostname = self.context.req.headers.host;
if (hostname.indexOf(":") >= 0) {
hostname = (hostname.split(":"))[0];
}
var hostnameA = self.escape("%," + hostname);
var hostnameB = self.escape(hostname + ",%");
hostname = self.escape(hostname);
self.query("SELECT * FROM cody.websites WHERE hostname=" + hostname + " OR hostname LIKE " + hostnameA + " OR hostname LIKE " + hostnameB, function (err, results) {
if (err) throw err;
if (results.length > 0) {
var result = results[0];
self.context.config = result;
finish(self.formView);
}
});
};