Issues (208)

oldapp.js (19 issues)

1
// ==========================================
2
//  HELPER Prototype
3
// ==========================================
4
5
String.prototype.endsWith = function(suffix) {
0 ignored issues
show
Compatibility Best Practice introduced by
You are extending the built-in type String. This may have unintended consequences on other objects using this built-in type. Consider subclassing instead.
Loading history...
6
    if (!suffix) return false;
0 ignored issues
show
Coding Style Best Practice introduced by
Curly braces around statements make for more readable code and help prevent bugs when you add further statements.

Consider adding curly braces around all statements when they are executed conditionally. This is optional if there is only one statement, but leaving them out can lead to unexpected behaviour if another statement is added later.

Consider:

if (a > 0)
    b = 42;

If you or someone else later decides to put another statement in, only the first statement will be executed.

if (a > 0)
    console.log("a > 0");
    b = 42;

In this case the statement b = 42 will always be executed, while the logging statement will be executed conditionally.

if (a > 0) {
    console.log("a > 0");
    b = 42;
}

ensures that the proper code will be executed conditionally no matter how many statements are added or removed.

Loading history...
7
    return this.indexOf(suffix, this.length - suffix.length) !== -1;
8
};
9
10
String.prototype.startsWith = function(prefix) {
0 ignored issues
show
Compatibility Best Practice introduced by
You are extending the built-in type String. This may have unintended consequences on other objects using this built-in type. Consider subclassing instead.
Loading history...
11
    if (!prefix) return false;
0 ignored issues
show
Coding Style Best Practice introduced by
Curly braces around statements make for more readable code and help prevent bugs when you add further statements.

Consider adding curly braces around all statements when they are executed conditionally. This is optional if there is only one statement, but leaving them out can lead to unexpected behaviour if another statement is added later.

Consider:

if (a > 0)
    b = 42;

If you or someone else later decides to put another statement in, only the first statement will be executed.

if (a > 0)
    console.log("a > 0");
    b = 42;

In this case the statement b = 42 will always be executed, while the logging statement will be executed conditionally.

if (a > 0) {
    console.log("a > 0");
    b = 42;
}

ensures that the proper code will be executed conditionally no matter how many statements are added or removed.

Loading history...
12
    return this.indexOf(prefix) === 0;
13
};
14
15
String.prototype.capitalize = function() {
0 ignored issues
show
Compatibility Best Practice introduced by
You are extending the built-in type String. This may have unintended consequences on other objects using this built-in type. Consider subclassing instead.
Loading history...
16
    return this.charAt(0).toUpperCase() + this.slice(1);
17
}
18
19
global.Helper = {};
20
21
Helper.parse = function(str){
0 ignored issues
show
The variable Helper seems to be never declared. If this is a global, consider adding a /** global: Helper */ comment.

This checks looks for references to variables that have not been declared. This is most likey a typographical error or a variable has been renamed.

To learn more about declaring variables in Javascript, see the MDN.

Loading history...
22
    if (str.trim) str = str.trim();
0 ignored issues
show
Coding Style Best Practice introduced by
Curly braces around statements make for more readable code and help prevent bugs when you add further statements.

Consider adding curly braces around all statements when they are executed conditionally. This is optional if there is only one statement, but leaving them out can lead to unexpected behaviour if another statement is added later.

Consider:

if (a > 0)
    b = 42;

If you or someone else later decides to put another statement in, only the first statement will be executed.

if (a > 0)
    console.log("a > 0");
    b = 42;

In this case the statement b = 42 will always be executed, while the logging statement will be executed conditionally.

if (a > 0) {
    console.log("a > 0");
    b = 42;
}

ensures that the proper code will be executed conditionally no matter how many statements are added or removed.

Loading history...
23
    if (str === 'true')  return true;
0 ignored issues
show
Coding Style Best Practice introduced by
Curly braces around statements make for more readable code and help prevent bugs when you add further statements.

Consider adding curly braces around all statements when they are executed conditionally. This is optional if there is only one statement, but leaving them out can lead to unexpected behaviour if another statement is added later.

Consider:

if (a > 0)
    b = 42;

If you or someone else later decides to put another statement in, only the first statement will be executed.

if (a > 0)
    console.log("a > 0");
    b = 42;

In this case the statement b = 42 will always be executed, while the logging statement will be executed conditionally.

if (a > 0) {
    console.log("a > 0");
    b = 42;
}

ensures that the proper code will be executed conditionally no matter how many statements are added or removed.

Loading history...
24
    if (str === 'false') return false;
0 ignored issues
show
Coding Style Best Practice introduced by
Curly braces around statements make for more readable code and help prevent bugs when you add further statements.

Consider adding curly braces around all statements when they are executed conditionally. This is optional if there is only one statement, but leaving them out can lead to unexpected behaviour if another statement is added later.

Consider:

if (a > 0)
    b = 42;

If you or someone else later decides to put another statement in, only the first statement will be executed.

if (a > 0)
    console.log("a > 0");
    b = 42;

In this case the statement b = 42 will always be executed, while the logging statement will be executed conditionally.

if (a > 0) {
    console.log("a > 0");
    b = 42;
}

ensures that the proper code will be executed conditionally no matter how many statements are added or removed.

Loading history...
25
    var num = Helper.isNumeric(str) ? parseFloat(str) : NaN;
0 ignored issues
show
The variable Helper seems to be never declared. If this is a global, consider adding a /** global: Helper */ comment.

This checks looks for references to variables that have not been declared. This is most likey a typographical error or a variable has been renamed.

To learn more about declaring variables in Javascript, see the MDN.

Loading history...
26
    return isNaN(num) ? str : num;
27
}
28
29
Helper.isNumeric = function(value) {
30
    return /^\d+(\.\d+)?$/.test(value);
31
}
32
33
Helper.secToTime = function(duration) {
0 ignored issues
show
The variable Helper seems to be never declared. If this is a global, consider adding a /** global: Helper */ comment.

This checks looks for references to variables that have not been declared. This is most likey a typographical error or a variable has been renamed.

To learn more about declaring variables in Javascript, see the MDN.

Loading history...
34
    var seconds = parseInt((duration)%60)
35
        , minutes = parseInt((duration/60)%60)
36
        , hours = parseInt((duration/(60*60))%24);
37
    
38
      hours   = (hours   < 10) ? "0" + hours   : hours;
39
    minutes = (minutes < 10) ? "0" + minutes : minutes;
40
    seconds = (seconds < 10) ? "0" + seconds : seconds;
41
    
42
      return hours + ":" + minutes + ":" + seconds;
43
}
44
45
// ==========================================
46
//  LOG MANAGER
47
// ==========================================
48
49
var winston = require('winston');
50
winston.add(winston.transports.File, { filename: __dirname+'/data/server.log' });
0 ignored issues
show
Consider using the path module for constructing paths since they are otherwise not cross-OS compatible.
Loading history...
51
winston.addColors({ info : 'blue', warn : 'orange', error : 'orange' });
52
53
// Add global function for logging
54
// global.debug = winston.debug;
55
// global.log   = winston.log;
56
// global.info  = winston.info;
57
// global.warn  = winston.warn;
58
// global.error = winston.error;
59
60
// Catch all
61
// process.on('uncaughtException', function (err) {
62
//  error('Caught exception: '+err.stack);
63
// });
64
65
// Starting SARAH
66
// info("==========================================");
67
// info(" STARTING SARAH Server ");
68
// info(" Path: ", __dirname);
69
// debug(" Modules: ", process.env.NODE_PATH);
70
// info("==========================================");
71
72
73
// ==========================================
74
//  SARAH
75
// ==========================================
76
77
// Add SARAH to global functions
78
// require('./server/sarah.js').init();
79
80
81
82
// ==========================================
83
//  EXPRESS SERVER
84
// ==========================================
85
86
// Init Express
87
// var __webapp = __dirname + '/webapp';
88
// var express  = require('express');
89
// var http     = require('http');
90
91
var app      = module.exports = express();
92
var server   = http.createServer(app);
0 ignored issues
show
The variable http seems to be never declared. If this is a global, consider adding a /** global: http */ comment.

This checks looks for references to variables that have not been declared. This is most likey a typographical error or a variable has been renamed.

To learn more about declaring variables in Javascript, see the MDN.

Loading history...
93
94
// SOCKET-IO
95
// var io       = require('socket.io')(server);
96
// SARAH.PluginManager.socket(io);
97
98
// Set EJS Engine
99
// var engine = require('ejs-locals');
100
// app.engine('ejs',  engine);
101
// app.engine('html', engine);
102
// app.set('views', __webapp + '/views');
103
// app.set('view engine', 'ejs');
104
105
// Set Middleware
106
// var multer = require('multer');
107
// var less = require('less-middleware');
108
// var methodOverride = require('method-override');
109
// var serveStatic = require('serve-static');
110
// var cookieParser = require('cookie-parser');
111
// var bodyParser = require('body-parser');
112
// var session = require('express-session');
113
114
app.use(multer({ dest:  __webapp+'/uploads' }))
0 ignored issues
show
The variable __webapp seems to be never declared. If this is a global, consider adding a /** global: __webapp */ comment.

This checks looks for references to variables that have not been declared. This is most likey a typographical error or a variable has been renamed.

To learn more about declaring variables in Javascript, see the MDN.

Loading history...
115
app.use(methodOverride('X-HTTP-Method-Override'));
116
app.use(bodyParser.json());
0 ignored issues
show
The variable bodyParser seems to be never declared. If this is a global, consider adding a /** global: bodyParser */ comment.

This checks looks for references to variables that have not been declared. This is most likey a typographical error or a variable has been renamed.

To learn more about declaring variables in Javascript, see the MDN.

Loading history...
117
app.use(bodyParser.urlencoded({ extended: false }));
118
app.use(cookieParser());
119
app.use(session({
120
    secret: 'sarah',
121
    resave: true,
122
    saveUninitialized: true
123
}));
124
125
// Set local helpers
126
// app.locals.SARAH = SARAH;
127
128
// Serve static files
129
// app.use(less(__webapp + '/static'      , {}, {}, { 'compress' : false }));
130
// app.use(less(SARAH.ConfigManager.PLUGIN, {}, {}, { 'compress' : false }));
131
132
app.use(serveStatic(__webapp + '/static'));
133
134
// ==========================================
135
//  ROUTERS
136
// ==========================================
137
138
139
var static_plugins = serveStatic(SARAH.ConfigManager.PLUGIN);
0 ignored issues
show
The variable SARAH seems to be never declared. If this is a global, consider adding a /** global: SARAH */ comment.

This checks looks for references to variables that have not been declared. This is most likey a typographical error or a variable has been renamed.

To learn more about declaring variables in Javascript, see the MDN.

Loading history...
140
app.use(function(req, res, next){
141
    var path = req.path
142
    if (/^(\/plugin)*\/\w+\/www\/.*$/.test(path)){
143
        if (path.startsWith('/plugin')){
144
            res.redirect(path.substring('/plugin'.length));
145
            return res.end();
146
        }
147
        static_plugins(req, res, next);
0 ignored issues
show
There is no return statement in this branch, but you do return something in other branches. Did you maybe miss it? If you do not want to return anything, consider adding return undefined; explicitly.
Loading history...
148
    }
149
    else { next(); }
0 ignored issues
show
There is no return statement in this branch, but you do return something in other branches. Did you maybe miss it? If you do not want to return anything, consider adding return undefined; explicitly.
Loading history...
150
});
151
152
153
app.use(SARAH.LangManager.Router);
0 ignored issues
show
The variable SARAH seems to be never declared. If this is a global, consider adding a /** global: SARAH */ comment.

This checks looks for references to variables that have not been declared. This is most likey a typographical error or a variable has been renamed.

To learn more about declaring variables in Javascript, see the MDN.

Loading history...
154
app.use(SARAH.PrivacyManager.Router);
155
app.use(SARAH.PortalManager.Router);
156
app.use(SARAH.ConfigManager.Router);
157
app.use(SARAH.PluginManager.Router);
158
app.use(SARAH.ProfileManager.Router);
159
app.use(SARAH.RuleEngine.Router);
160
app.use(SARAH.Marketplace.Router);
161
app.use(SARAH.Router);
162
163
164
// ==========================================
165
//  START CRON
166
// ==========================================
167
168
SARAH.CRONManager.start();
169
170
// ==========================================
171
//  START SERVER
172
// ==========================================
173
174
var webapp = server.listen(SARAH.ConfigManager.Config.http.port);
175
info("Express server listening on port: %s", webapp.address().port);
176