Fix rendering page folder problem.

Ylian Saint-Hilaire committed Oct 22, 2019 at 17:19 UTC 4a79cd61fd73da2412ef4f28f968646b1750d1dd
3 files changed +9 -6
MeshCentralServer.njsproj
-1
@@ -144,7 +144,6 @@
144 <Content Include="agents\compressModules.bat" />
145 <Content Include="agents\MeshAgentOSXPackager.zip" />
146 <Content Include="agents\meshagent_arm" />
147 - <Content Include="agents\meshagent_arm-linaro" />
147 <Content Include="agents\meshagent_arm64" />
148 <Content Include="agents\meshagent_armhf" />
149 <Content Include="agents\meshagent_mips" />
package.json
+1 -1
@@ -1,6 +1,6 @@
1 {
2 "name": "meshcentral",
3 - "version": "0.4.2-x",
3 + "version": "0.4.2-y",
4 "keywords": [
5 "Remote Management",
6 "Intel AMT",
webserver.js
+8 -4
@@ -1600,7 +1600,7 @@ module.exports.CreateWebServer = function (parent, db, args, certificates) {
1600 if (hardwareKeyChallenge) { hwstate = obj.parent.encodeCookie({ u: req.session.tokenusername, p: req.session.tokenpassword, c: req.session.u2fchallenge }, obj.parent.loginCookieEncryptionKey) }
1601
1602 // Render the login page
1603 - render(req, res, getRenderPage('login', req), { loginmode: loginmode, rootCertLink: getRootCertLink(), domainurl: domain.url, title: domain.title, title2: domain.title2, newAccount: newAccountsAllowed, newAccountPass: (((domain.newaccountspass == null) || (domain.newaccountspass == '')) ? 0 : 1), serverDnsName: obj.getWebServerName(domain), serverPublicPort: httpsPort, emailcheck: emailcheck, features: features, sessiontime: args.sessiontime, passRequirements: passRequirements, footer: (domain.footer == null) ? '' : domain.footer, hkey: encodeURIComponent(hardwareKeyChallenge), message: message, passhint: passhint, welcometext: domain.welcometext ? encodeURIComponent(domain.welcometext) : null, hwstate: hwstate });
1603 + render(req, res, getRenderPage('login', req), { loginmode: loginmode, rootCertLink: getRootCertLink(), domainurl: domain.url, title: domain.title, title2: domain.title2, newAccount: newAccountsAllowed, newAccountPass: (((domain.newaccountspass == null) || (domain.newaccountspass == '')) ? 0 : 1), serverDnsName: obj.getWebServerName(domain), serverPublicPort: httpsPort, emailcheck: emailcheck, features: features, sessiontime: args.sessiontime, passRequirements: passRequirements, footer: (domain.footer == null) ? '' : domain.footer, hkey: encodeURIComponent(hardwareKeyChallenge), message: message, passhint: passhint, welcometext: domain.welcometext ? encodeURIComponent(domain.welcometext).split('\'').join('\\\'') : null, hwstate: hwstate });
1604 }
1605
1606 // Handle a post request on the root
@@ -3904,10 +3904,14 @@ module.exports.CreateWebServer = function (parent, db, args, certificates) {
3904
3905 // Get the list of pages with different languages that can be rendered
3906 function getRenderList() {
3907 - if (obj.fs.existsSync('views/translations')) {
3907 + var translateFolder = null;
3908 + if (obj.fs.existsSync('views/translations')) { translateFolder = 'views/translations'; }
3909 + if (obj.fs.existsSync(obj.path.join(__dirname, 'views', 'translations'))) { translateFolder = obj.path.join(__dirname, 'views', 'translations'); }
3910 +
3911 + if (translateFolder != null) {
3912 obj.renderPages = {};
3913 obj.renderLanguages = ['en'];
3910 - var files = obj.fs.readdirSync('views/translations');
3914 + var files = obj.fs.readdirSync(translateFolder);
3915 for (var i in files) {
3916 var name = files[i];
3917 if (name.endsWith('.handlebars')) {
@@ -3915,7 +3919,7 @@ module.exports.CreateWebServer = function (parent, db, args, certificates) {
3919 var xname = name.split('_');
3920 if (xname.length == 2) {
3921 if (obj.renderPages[xname[0]] == null) { obj.renderPages[xname[0]] = {}; }
3918 - obj.renderPages[xname[0]][xname[1]] = obj.path.join('translations', name);
3922 + obj.renderPages[xname[0]][xname[1]] = obj.path.join(translateFolder, name);
3923 if (obj.renderLanguages.indexOf(xname[1]) == -1) { obj.renderLanguages.push(xname[1]); }
3924 }
3925 }