@reldens/cms 0.3.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/reldens-cms.js +1 -1
- package/install/css/installer.css +1 -2
- package/install/img/favicon.ico +0 -0
- package/install/img/loading.gif +0 -0
- package/install/index.html +5 -7
- package/lib/installer.js +28 -25
- package/lib/manager.js +2 -2
- package/package.json +2 -2
package/bin/reldens-cms.js
CHANGED
|
Binary file
|
|
Binary file
|
package/install/index.html
CHANGED
|
@@ -35,13 +35,11 @@
|
|
|
35
35
|
</div>
|
|
36
36
|
<h3 class="form-title">- Database Configuration -</h3>
|
|
37
37
|
<div class="db-basic-config-notice">
|
|
38
|
-
<span>
|
|
39
|
-
|
|
40
|
-
<
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
</ul>
|
|
44
|
-
</span>
|
|
38
|
+
<span>Default configuration:</span>
|
|
39
|
+
<ul>
|
|
40
|
+
<li>Client: mysql - Port: 3306</li>
|
|
41
|
+
<li>Database Driver: prisma</li>
|
|
42
|
+
</ul>
|
|
45
43
|
</div>
|
|
46
44
|
<div class="input-box db-storage-driver">
|
|
47
45
|
<label for="db-storage-driver">Storage Driver</label>
|
package/lib/installer.js
CHANGED
|
@@ -66,12 +66,11 @@ class Installer
|
|
|
66
66
|
if('' === req._parsedUrl.pathname || '/' === req._parsedUrl.pathname){
|
|
67
67
|
let installerIndexPath = FileHandler.joinPaths(this.installerPath, 'index.html');
|
|
68
68
|
if(!FileHandler.exists(installerIndexPath)){
|
|
69
|
-
return res.status(500).send('Installer template not found');
|
|
69
|
+
return res.status(500).send('Installer template not found.');
|
|
70
70
|
}
|
|
71
|
-
let content = FileHandler.readFile(installerIndexPath
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
return res.send(mustache.render(content, req.session?.templateVariables || this.fetchDefaults()));
|
|
71
|
+
let content = FileHandler.readFile(installerIndexPath);
|
|
72
|
+
let contentParams = req.session?.templateVariables || this.fetchDefaults();
|
|
73
|
+
return res.send(mustache.render(content, contentParams));
|
|
75
74
|
}
|
|
76
75
|
next();
|
|
77
76
|
}
|
|
@@ -111,27 +110,35 @@ class Installer
|
|
|
111
110
|
return res.redirect('/?error=connection-failed');
|
|
112
111
|
}
|
|
113
112
|
if(!sc.isObjectFunction(dbDriver, 'rawQuery')){
|
|
114
|
-
Logger.error('Method "rawQuery" not found');
|
|
113
|
+
Logger.error('Method "rawQuery" not found.');
|
|
115
114
|
return res.redirect('/?error=raw-query-not-found');
|
|
116
115
|
}
|
|
117
116
|
let installSqlPath = FileHandler.joinPaths(this.migrationsPath, 'install.sql');
|
|
118
117
|
if(!FileHandler.exists(installSqlPath)){
|
|
119
|
-
Logger.error('SQL installation file not found');
|
|
118
|
+
Logger.error('SQL installation file not found.');
|
|
120
119
|
return res.redirect('/?error=sql-file-not-found');
|
|
121
120
|
}
|
|
122
|
-
await this.executeQueryFile(dbDriver, installSqlPath);
|
|
121
|
+
let queryTablesResult = await this.executeQueryFile(dbDriver, installSqlPath);
|
|
122
|
+
if(!queryTablesResult){
|
|
123
|
+
Logger.error('Tables creation failed.');
|
|
124
|
+
return res.redirect('/?error=sql-tables-creation-failed');
|
|
125
|
+
}
|
|
123
126
|
Logger.info('Installed tables.');
|
|
124
127
|
let defaultUserSqlPath = FileHandler.joinPaths(this.migrationsPath, 'default-user.sql');
|
|
125
128
|
try {
|
|
126
129
|
if(FileHandler.exists(defaultUserSqlPath)){
|
|
127
|
-
await this.executeQueryFile(dbDriver, defaultUserSqlPath);
|
|
130
|
+
let queryUserResult = await this.executeQueryFile(dbDriver, defaultUserSqlPath);
|
|
131
|
+
if(!queryUserResult){
|
|
132
|
+
Logger.error('Default user creation failed.');
|
|
133
|
+
return res.redirect('/?error=sql-default-user-error');
|
|
134
|
+
}
|
|
128
135
|
Logger.info('Created default user.');
|
|
129
136
|
}
|
|
130
|
-
let
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
137
|
+
let entitiesGenerationResult = await this.generateEntities(dbDriver);
|
|
138
|
+
if(!entitiesGenerationResult){
|
|
139
|
+
Logger.error('Entities generation error.');
|
|
140
|
+
return res.redirect('/?error=installation-entities-generation-failed');
|
|
141
|
+
}
|
|
135
142
|
Logger.info('Generated entities.');
|
|
136
143
|
} catch (error) {
|
|
137
144
|
Logger.error('Installation error: '+error.message);
|
|
@@ -155,18 +162,16 @@ class Installer
|
|
|
155
162
|
|
|
156
163
|
async executeQueryFile(dbDriver, filePath)
|
|
157
164
|
{
|
|
158
|
-
let sqlContent = FileHandler.readFile(filePath
|
|
159
|
-
encoding: this.encoding
|
|
160
|
-
});
|
|
165
|
+
let sqlContent = FileHandler.readFile(filePath);
|
|
161
166
|
if(!sqlContent){
|
|
162
167
|
throw new Error('Could not read SQL file: '+filePath);
|
|
163
168
|
}
|
|
164
169
|
return await dbDriver.rawQuery(sqlContent.toString());
|
|
165
170
|
}
|
|
166
171
|
|
|
167
|
-
async generateEntities(
|
|
172
|
+
async generateEntities(server)
|
|
168
173
|
{
|
|
169
|
-
let generator = new EntitiesGenerator({
|
|
174
|
+
let generator = new EntitiesGenerator({server, projectPath: this.projectRoot});
|
|
170
175
|
let success = await generator.generate();
|
|
171
176
|
if(!success){
|
|
172
177
|
Logger.error('Entities generation failed.');
|
|
@@ -197,9 +202,7 @@ class Installer
|
|
|
197
202
|
Logger.error('ENV template not found: '+envTemplatePath);
|
|
198
203
|
return false;
|
|
199
204
|
}
|
|
200
|
-
let envTemplate = FileHandler.readFile(envTemplatePath
|
|
201
|
-
encoding: this.encoding
|
|
202
|
-
});
|
|
205
|
+
let envTemplate = FileHandler.readFile(envTemplatePath);
|
|
203
206
|
let envContent = mustache.render(envTemplate, {
|
|
204
207
|
dbClient: templateVariables['db-client'],
|
|
205
208
|
dbHost: templateVariables['db-host'],
|
|
@@ -211,7 +214,7 @@ class Installer
|
|
|
211
214
|
adminPath: templateVariables['app-admin-path'],
|
|
212
215
|
adminSecret: Encryptor.generateSecretKey(),
|
|
213
216
|
host: templateVariables['app-host'] || 'http://localhost',
|
|
214
|
-
port: templateVariables['app-port'] || '
|
|
217
|
+
port: templateVariables['app-port'] || '8000'
|
|
215
218
|
});
|
|
216
219
|
return FileHandler.writeFile(this.envFilePath, envContent);
|
|
217
220
|
}
|
|
@@ -267,10 +270,10 @@ class Installer
|
|
|
267
270
|
{
|
|
268
271
|
return {
|
|
269
272
|
'app-host': process.env.RELDENS_CMS_HOST || 'http://localhost',
|
|
270
|
-
'app-port': process.env.RELDENS_CMS_PORT || '
|
|
273
|
+
'app-port': process.env.RELDENS_CMS_PORT || '8000',
|
|
271
274
|
'app-admin-path': process.env.RELDENS_CMS_ADMIN_PATH || '/reldens-admin',
|
|
272
275
|
'db-storage-driver': 'prisma',
|
|
273
|
-
'db-client': process.env.RELDENS_CMS_DB_CLIENT || '
|
|
276
|
+
'db-client': process.env.RELDENS_CMS_DB_CLIENT || 'mysql',
|
|
274
277
|
'db-host': process.env.RELDENS_CMS_DB_HOST || 'localhost',
|
|
275
278
|
'db-port': process.env.RELDENS_CMS_DB_PORT || '3306',
|
|
276
279
|
'db-name': process.env.RELDENS_CMS_DB_NAME || 'reldens_cms',
|
package/lib/manager.js
CHANGED
|
@@ -40,11 +40,11 @@ class Manager
|
|
|
40
40
|
{
|
|
41
41
|
return {
|
|
42
42
|
host: process.env.RELDENS_CMS_HOST || 'http://localhost',
|
|
43
|
-
port: Number(process.env.RELDENS_CMS_PORT ||
|
|
43
|
+
port: Number(process.env.RELDENS_CMS_PORT || 8000),
|
|
44
44
|
adminPath: process.env.RELDENS_CMS_ADMIN_PATH || '/reldens-admin',
|
|
45
45
|
adminSecret: process.env.RELDENS_CMS_ADMIN_SECRET || '',
|
|
46
46
|
database: {
|
|
47
|
-
client: process.env.RELDENS_CMS_DB_CLIENT || '
|
|
47
|
+
client: process.env.RELDENS_CMS_DB_CLIENT || 'mysql',
|
|
48
48
|
host: process.env.RELDENS_CMS_DB_HOST || 'localhost',
|
|
49
49
|
port: Number(process.env.RELDENS_CMS_DB_PORT || 3306),
|
|
50
50
|
name: process.env.RELDENS_CMS_DB_NAME || 'reldens_cms',
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@reldens/cms",
|
|
3
3
|
"scope": "@reldens",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.5.0",
|
|
5
5
|
"description": "Reldens - CMS",
|
|
6
6
|
"author": "Damian A. Pastorini",
|
|
7
7
|
"license": "MIT",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
},
|
|
34
34
|
"dependencies": {
|
|
35
35
|
"@reldens/server-utils": "^0.16.0",
|
|
36
|
-
"@reldens/storage": "^0.
|
|
36
|
+
"@reldens/storage": "^0.38.0",
|
|
37
37
|
"@reldens/utils": "^0.47.0",
|
|
38
38
|
"dotenv": "^16.5.0",
|
|
39
39
|
"mustache": "^4.2.0"
|