alchemymvc 1.3.22 → 1.4.0-alpha.2
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/LICENSE +1 -1
- package/README.md +3 -3
- package/lib/app/behaviour/publishable_behaviour.js +5 -5
- package/lib/app/behaviour/revision_behaviour.js +96 -59
- package/lib/app/behaviour/sluggable_behaviour.js +14 -14
- package/lib/app/conduit/electron_conduit.js +9 -9
- package/lib/app/conduit/http_conduit.js +13 -13
- package/lib/app/conduit/loopback_conduit.js +15 -15
- package/lib/app/conduit/socket_conduit.js +43 -43
- package/lib/app/config/routes.js +26 -0
- package/lib/app/controller/00-default_app_controller.js +21 -0
- package/lib/app/controller/alchemy_info_controller.js +12 -12
- package/lib/app/datasource/mongo_datasource.js +27 -18
- package/lib/app/element/00-default_app_element.js +19 -0
- package/lib/app/element/time_ago.js +5 -5
- package/lib/app/helper/00-default_app_helper.js +11 -0
- package/lib/app/helper/alchemy_helper.js +22 -22
- package/lib/app/helper/backed_map.js +1 -1
- package/lib/app/helper/breadcrumb.js +10 -10
- package/lib/app/helper/client_collection.js +3 -3
- package/lib/app/helper/cron.js +29 -29
- package/lib/app/helper/enum_values.js +6 -6
- package/lib/app/helper/pagination_helper.js +36 -36
- package/lib/app/helper/router_helper.js +35 -35
- package/lib/app/helper/socket_helper.js +57 -57
- package/lib/app/helper/syncable.js +62 -62
- package/lib/app/helper_component/paginate_component.js +9 -9
- package/lib/app/helper_controller/component.js +1 -1
- package/lib/app/helper_controller/conduit.js +31 -31
- package/lib/app/helper_controller/controller.js +54 -39
- package/lib/app/helper_datasource/00-nosql_datasource.js +624 -70
- package/lib/app/helper_datasource/05-fallback_datasource.js +10 -10
- package/lib/app/helper_datasource/idb_datasource.js +6 -6
- package/lib/app/helper_datasource/indexed_db.js +22 -22
- package/lib/app/helper_datasource/remote_datasource.js +5 -5
- package/lib/app/helper_error/http_error.js +4 -4
- package/lib/app/helper_error/model_error.js +2 -2
- package/lib/app/helper_error/validation_error.js +12 -12
- package/lib/app/helper_field/00-objectid_field.js +7 -7
- package/lib/app/helper_field/05-string_field.js +16 -12
- package/lib/app/helper_field/06-text_field.js +2 -4
- package/lib/app/helper_field/10-number_field.js +9 -12
- package/lib/app/helper_field/11-date_field.js +15 -15
- package/lib/app/helper_field/15-local_temporal_field.js +10 -10
- package/lib/app/helper_field/20-decimal_field.js +8 -9
- package/lib/app/helper_field/belongsto_field.js +1 -1
- package/lib/app/helper_field/big_int_field.js +8 -8
- package/lib/app/helper_field/boolean_field.js +9 -11
- package/lib/app/helper_field/datetime_field.js +3 -3
- package/lib/app/helper_field/enum_field.js +13 -8
- package/lib/app/helper_field/fixed_decimal_field.js +6 -7
- package/lib/app/helper_field/geopoint_field.js +9 -10
- package/lib/app/helper_field/habtm_field.js +3 -3
- package/lib/app/helper_field/hasoneparent_field.js +1 -1
- package/lib/app/helper_field/html_field.js +2 -4
- package/lib/app/helper_field/integer_field.js +8 -11
- package/lib/app/helper_field/local_date_field.js +5 -5
- package/lib/app/helper_field/local_date_time_field.js +5 -5
- package/lib/app/helper_field/local_time_field.js +5 -5
- package/lib/app/helper_field/mixed_field.js +5 -5
- package/lib/app/helper_field/object_field.js +6 -6
- package/lib/app/helper_field/password_field.js +3 -3
- package/lib/app/helper_field/regexp_field.js +7 -9
- package/lib/app/helper_field/schema_field.js +91 -88
- package/lib/app/helper_field/settings_field.js +92 -0
- package/lib/app/helper_field/time_field.js +6 -6
- package/lib/app/helper_field/url_field.js +2 -4
- package/lib/app/helper_model/00-base_criteria.js +662 -0
- package/lib/app/helper_model/05-criteria_expressions.js +605 -0
- package/lib/app/helper_model/10-model_criteria.js +1182 -0
- package/lib/app/helper_model/data_provider.js +2 -2
- package/lib/app/helper_model/document.js +103 -92
- package/lib/app/helper_model/document_list.js +14 -14
- package/lib/app/helper_model/field_config.js +11 -11
- package/lib/app/helper_model/field_set.js +17 -17
- package/lib/app/helper_model/model.js +201 -123
- package/lib/app/helper_model/remote_data_provider.js +2 -2
- package/lib/app/helper_validator/00_validator.js +16 -16
- package/lib/app/helper_validator/not_empty_validator.js +9 -9
- package/lib/app/model/00-default_app_model.js +18 -0
- package/lib/app/model/05-system_model.js +27 -0
- package/lib/app/model/{alchemy_migration_model.js → system_migration_model.js} +4 -4
- package/lib/app/model/system_setting_model.js +154 -0
- package/lib/app/model/{alchemy_task_history_model.js → system_task_history_model.js} +7 -7
- package/lib/app/model/{alchemy_task_model.js → system_task_model.js} +11 -11
- package/lib/bootstrap.js +22 -312
- package/lib/class/accumulator.js +5 -5
- package/lib/class/behaviour.js +5 -5
- package/lib/class/component.js +3 -3
- package/lib/class/conduit.js +152 -150
- package/lib/class/controller.js +42 -42
- package/lib/class/datasource.js +74 -79
- package/lib/class/document.js +74 -95
- package/lib/class/document_list.js +5 -5
- package/lib/class/element.js +17 -17
- package/lib/class/error.js +3 -3
- package/lib/class/field.js +169 -91
- package/lib/class/field_value.js +6 -6
- package/lib/class/helper.js +3 -3
- package/lib/class/inode.js +17 -17
- package/lib/class/inode_dir.js +12 -12
- package/lib/class/inode_file.js +26 -26
- package/lib/class/inode_list.js +4 -4
- package/lib/class/migration.js +4 -4
- package/lib/class/model.js +146 -165
- package/lib/class/path_definition.js +22 -22
- package/lib/class/path_evaluator.js +5 -5
- package/lib/class/path_param_definition.js +7 -7
- package/lib/class/plugin.js +312 -0
- package/lib/class/postponement.js +29 -29
- package/lib/class/reciprocal.js +8 -8
- package/lib/class/route.js +33 -33
- package/lib/class/router.js +73 -73
- package/lib/class/schema.js +21 -21
- package/lib/class/schema_client.js +105 -82
- package/lib/class/session.js +63 -29
- package/lib/class/session_scene.js +4 -4
- package/lib/class/sitemap.js +16 -16
- package/lib/class/task.js +39 -39
- package/lib/class/task_service.js +43 -47
- package/lib/{init → core}/alchemy.js +411 -373
- package/lib/{init/functions.js → core/alchemy_functions.js} +113 -91
- package/lib/core/alchemy_load_functions.js +715 -0
- package/lib/core/base.js +50 -62
- package/lib/core/client_alchemy.js +144 -152
- package/lib/core/client_base.js +27 -50
- package/lib/core/discovery.js +16 -18
- package/lib/core/middleware.js +54 -43
- package/lib/core/{routing.js → prefix.js} +14 -16
- package/lib/core/setting.js +1684 -0
- package/lib/core/stage.js +758 -0
- package/lib/scripts/create_constants.js +119 -0
- package/lib/{init/languages.js → scripts/create_languages.js} +5 -5
- package/lib/scripts/create_settings.js +449 -0
- package/lib/scripts/create_shared_constants.js +95 -0
- package/lib/scripts/create_stages.js +55 -0
- package/lib/scripts/init_alchemy.js +51 -0
- package/lib/{init/requirements.js → scripts/preload_modules.js} +15 -2
- package/lib/scripts/setup_devwatch.js +238 -0
- package/lib/stages/00-load_core.js +342 -0
- package/lib/stages/05-load_app.js +57 -0
- package/lib/stages/10-datasource.js +61 -0
- package/lib/stages/15-tasks.js +27 -0
- package/lib/stages/20-settings.js +68 -0
- package/lib/stages/50-routes.js +218 -0
- package/lib/stages/90-server.js +347 -0
- package/package.json +5 -7
- package/lib/app/helper_model/criteria.js +0 -2294
- package/lib/app/helper_model/db_query.js +0 -1488
- package/lib/app/routes.js +0 -11
- package/lib/core/socket.js +0 -171
- package/lib/init/constants.js +0 -158
- package/lib/init/devwatch.js +0 -238
- package/lib/init/load_functions.js +0 -979
- package/lib/stages.js +0 -515
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*
|
|
5
5
|
* @constructor
|
|
6
6
|
*
|
|
7
|
-
* @author Jelle De Loecker
|
|
7
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
8
8
|
* @since 1.0.0
|
|
9
9
|
* @version 1.1.3
|
|
10
10
|
*/
|
|
@@ -32,7 +32,7 @@ var Conduit = Function.inherits('Alchemy.Client.Base', 'Alchemy.Client.Conduit',
|
|
|
32
32
|
/**
|
|
33
33
|
* Handle a local url
|
|
34
34
|
*
|
|
35
|
-
* @author Jelle De Loecker
|
|
35
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
36
36
|
* @since 1.1.0
|
|
37
37
|
* @version 1.2.2
|
|
38
38
|
*
|
|
@@ -202,7 +202,7 @@ Conduit.setStatic(function handleUrlLocal(url, options) {
|
|
|
202
202
|
/**
|
|
203
203
|
* When this response was sent
|
|
204
204
|
*
|
|
205
|
-
* @author Jelle De Loecker
|
|
205
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
206
206
|
* @since 1.1.0
|
|
207
207
|
* @version 1.1.0
|
|
208
208
|
*/
|
|
@@ -211,7 +211,7 @@ Conduit.setProperty('ended', false);
|
|
|
211
211
|
/**
|
|
212
212
|
* The "body" property
|
|
213
213
|
*
|
|
214
|
-
* @author Jelle De Loecker
|
|
214
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
215
215
|
* @since 1.0.0
|
|
216
216
|
* @version 1.0.0
|
|
217
217
|
*/
|
|
@@ -230,7 +230,7 @@ Conduit.setProperty(function body() {
|
|
|
230
230
|
/**
|
|
231
231
|
* The "view_render" property
|
|
232
232
|
*
|
|
233
|
-
* @author Jelle De Loecker
|
|
233
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
234
234
|
* @since 1.0.0
|
|
235
235
|
* @version 1.1.0
|
|
236
236
|
*/
|
|
@@ -241,7 +241,7 @@ Conduit.setProperty(function view_render() {
|
|
|
241
241
|
/**
|
|
242
242
|
* The "renderer" property
|
|
243
243
|
*
|
|
244
|
-
* @author Jelle De Loecker
|
|
244
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
245
245
|
* @since 1.1.0
|
|
246
246
|
* @version 1.1.5
|
|
247
247
|
*/
|
|
@@ -269,7 +269,7 @@ Conduit.setProperty(function renderer() {
|
|
|
269
269
|
/**
|
|
270
270
|
* Throw an error when a conduit is checksummed
|
|
271
271
|
*
|
|
272
|
-
* @author Jelle De Loecker
|
|
272
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
273
273
|
* @since 1.1.0
|
|
274
274
|
* @version 1.1.0
|
|
275
275
|
*/
|
|
@@ -280,11 +280,11 @@ Conduit.setMethod(Blast.checksumSymbol, function toChecksum() {
|
|
|
280
280
|
/**
|
|
281
281
|
* Get a parameter from the route, post or get query or cookie
|
|
282
282
|
*
|
|
283
|
-
* @author Jelle De Loecker
|
|
283
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
284
284
|
* @since 0.2.0
|
|
285
285
|
* @version 1.0.0
|
|
286
286
|
*
|
|
287
|
-
* @param {
|
|
287
|
+
* @param {string} name
|
|
288
288
|
* @param {Mixed} value Overrides the value if set
|
|
289
289
|
*/
|
|
290
290
|
Conduit.setMethod(function param(name, value) {
|
|
@@ -325,11 +325,11 @@ Conduit.setMethod(function param(name, value) {
|
|
|
325
325
|
/**
|
|
326
326
|
* Set a variable for ViewRender
|
|
327
327
|
*
|
|
328
|
-
* @author Jelle De Loecker
|
|
328
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
329
329
|
* @since 0.2.0
|
|
330
330
|
* @version 0.2.0
|
|
331
331
|
*
|
|
332
|
-
* @param {
|
|
332
|
+
* @param {string} name
|
|
333
333
|
* @param {Mixed} value
|
|
334
334
|
*/
|
|
335
335
|
Conduit.setMethod(function set(name, value) {
|
|
@@ -344,11 +344,11 @@ Conduit.setMethod(function set(name, value) {
|
|
|
344
344
|
/**
|
|
345
345
|
* Set an internal variable for ViewRender
|
|
346
346
|
*
|
|
347
|
-
* @author Jelle De Loecker
|
|
347
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
348
348
|
* @since 0.2.0
|
|
349
349
|
* @version 0.2.0
|
|
350
350
|
*
|
|
351
|
-
* @param {
|
|
351
|
+
* @param {string} name
|
|
352
352
|
* @param {Mixed} value
|
|
353
353
|
*/
|
|
354
354
|
Conduit.setMethod(function internal(name, value) {
|
|
@@ -363,11 +363,11 @@ Conduit.setMethod(function internal(name, value) {
|
|
|
363
363
|
/**
|
|
364
364
|
* Expose a variable for ViewRender
|
|
365
365
|
*
|
|
366
|
-
* @author Jelle De Loecker
|
|
366
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
367
367
|
* @since 0.2.0
|
|
368
368
|
* @version 0.2.0
|
|
369
369
|
*
|
|
370
|
-
* @param {
|
|
370
|
+
* @param {string} name
|
|
371
371
|
* @param {Mixed} value
|
|
372
372
|
*/
|
|
373
373
|
Conduit.setMethod(function expose(name, value) {
|
|
@@ -382,13 +382,13 @@ Conduit.setMethod(function expose(name, value) {
|
|
|
382
382
|
/**
|
|
383
383
|
* Get the best locale to use for this connection
|
|
384
384
|
*
|
|
385
|
-
* @author Jelle De Loecker
|
|
385
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
386
386
|
* @since 1.0.0
|
|
387
387
|
* @version 1.0.0
|
|
388
388
|
*
|
|
389
389
|
* @param {Array} locales Locales to choose from
|
|
390
390
|
*
|
|
391
|
-
* @return {
|
|
391
|
+
* @return {string}
|
|
392
392
|
*/
|
|
393
393
|
Conduit.setMethod(function chooseBestLocale(locales) {
|
|
394
394
|
|
|
@@ -408,13 +408,13 @@ Conduit.setMethod(function chooseBestLocale(locales) {
|
|
|
408
408
|
/**
|
|
409
409
|
* Check if this request has a permission
|
|
410
410
|
*
|
|
411
|
-
* @author Jelle De Loecker
|
|
411
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
412
412
|
* @since 1.2.5
|
|
413
413
|
* @version 1.2.5
|
|
414
414
|
*
|
|
415
|
-
* @param {
|
|
415
|
+
* @param {string} permission
|
|
416
416
|
*
|
|
417
|
-
* @return {
|
|
417
|
+
* @return {boolean} True if the user has the permission, false otherwise
|
|
418
418
|
*/
|
|
419
419
|
Conduit.setMethod(function hasPermission(permission) {
|
|
420
420
|
|
|
@@ -432,11 +432,11 @@ if (Blast.isNode) {
|
|
|
432
432
|
/**
|
|
433
433
|
* End the call
|
|
434
434
|
*
|
|
435
|
-
* @author Jelle De Loecker
|
|
435
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
436
436
|
* @since 1.0.0
|
|
437
437
|
* @version 1.1.0
|
|
438
438
|
*
|
|
439
|
-
* @param {
|
|
439
|
+
* @param {string} name
|
|
440
440
|
* @param {Mixed} value Overrides the value if set
|
|
441
441
|
*/
|
|
442
442
|
Conduit.setMethod(function end(message) {
|
|
@@ -451,11 +451,11 @@ Conduit.setMethod(function end(message) {
|
|
|
451
451
|
/**
|
|
452
452
|
* Get/set cookies
|
|
453
453
|
*
|
|
454
|
-
* @author Jelle De Loecker
|
|
454
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
455
455
|
* @since 1.0.0
|
|
456
456
|
* @version 1.0.0
|
|
457
457
|
*
|
|
458
|
-
* @param {
|
|
458
|
+
* @param {string} name
|
|
459
459
|
* @param {Mixed} value Overrides the value if set
|
|
460
460
|
*/
|
|
461
461
|
Conduit.setMethod(function cookie(name, value) {
|
|
@@ -465,11 +465,11 @@ Conduit.setMethod(function cookie(name, value) {
|
|
|
465
465
|
/**
|
|
466
466
|
* Throw an error
|
|
467
467
|
*
|
|
468
|
-
* @author Jelle De Loecker
|
|
468
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
469
469
|
* @since 1.0.0
|
|
470
470
|
* @version 1.0.0
|
|
471
471
|
*
|
|
472
|
-
* @param {
|
|
472
|
+
* @param {number} status Response statuscode
|
|
473
473
|
* @param {Error} message Optional error to send
|
|
474
474
|
*/
|
|
475
475
|
Conduit.setMethod(function error(status, message) {
|
|
@@ -484,12 +484,12 @@ Conduit.setMethod(function error(status, message) {
|
|
|
484
484
|
/**
|
|
485
485
|
* Local redirect
|
|
486
486
|
*
|
|
487
|
-
* @author Jelle De Loecker
|
|
487
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
488
488
|
* @since 1.1.0
|
|
489
489
|
* @version 1.1.0
|
|
490
490
|
*
|
|
491
|
-
* @param {
|
|
492
|
-
* @param {
|
|
491
|
+
* @param {number} status 3xx redirection codes. 302 (temporary redirect) by default
|
|
492
|
+
* @param {string|Object} options Options or url
|
|
493
493
|
*/
|
|
494
494
|
Conduit.setMethod(async function redirect(status, options) {
|
|
495
495
|
|
|
@@ -515,7 +515,7 @@ Conduit.setMethod(async function redirect(status, options) {
|
|
|
515
515
|
/**
|
|
516
516
|
* Get the alchemy routes, compile paths
|
|
517
517
|
*
|
|
518
|
-
* @author Jelle De Loecker
|
|
518
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
519
519
|
* @since 1.0.0
|
|
520
520
|
* @version 1.0.0
|
|
521
521
|
*
|
|
@@ -554,7 +554,7 @@ Hawkejs.Scene.setMethod(function getAlchemyRoutes() {
|
|
|
554
554
|
/**
|
|
555
555
|
* Intercept Scene#openUrl calls
|
|
556
556
|
*
|
|
557
|
-
* @author Jelle De Loecker
|
|
557
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
558
558
|
* @since 1.0.0
|
|
559
559
|
* @version 1.1.0
|
|
560
560
|
*
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*
|
|
5
5
|
* @constructor
|
|
6
6
|
*
|
|
7
|
-
* @author Jelle De Loecker
|
|
7
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
8
8
|
* @since 1.0.0
|
|
9
9
|
* @version 1.0.0
|
|
10
10
|
*/
|
|
@@ -16,7 +16,7 @@ var Controller = Function.inherits('Alchemy.Client.Base', 'Alchemy.Client.Contro
|
|
|
16
16
|
/**
|
|
17
17
|
* Map these events to methods
|
|
18
18
|
*
|
|
19
|
-
* @author Jelle De Loecker
|
|
19
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
20
20
|
* @since 1.1.1
|
|
21
21
|
* @version 1.1.1
|
|
22
22
|
*/
|
|
@@ -29,7 +29,7 @@ Controller.mapEventToMethod({
|
|
|
29
29
|
/**
|
|
30
30
|
* Add action object
|
|
31
31
|
*
|
|
32
|
-
* @author Jelle De Loecker
|
|
32
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
33
33
|
* @since 1.0.0
|
|
34
34
|
* @version 1.0.0
|
|
35
35
|
*/
|
|
@@ -46,7 +46,7 @@ Controller.constitute(function addActions() {
|
|
|
46
46
|
/**
|
|
47
47
|
* Add an action
|
|
48
48
|
*
|
|
49
|
-
* @author Jelle De Loecker
|
|
49
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
50
50
|
* @since 1.0.0
|
|
51
51
|
* @version 1.0.0
|
|
52
52
|
*/
|
|
@@ -89,14 +89,14 @@ Controller.setStatic(function setAction(name, fnc, on_server) {
|
|
|
89
89
|
/**
|
|
90
90
|
* Object where components are stored
|
|
91
91
|
*
|
|
92
|
-
* @type
|
|
92
|
+
* @type {Object}
|
|
93
93
|
*/
|
|
94
94
|
Controller.prepareProperty('components', Object);
|
|
95
95
|
|
|
96
96
|
/**
|
|
97
97
|
* The controller name
|
|
98
98
|
*
|
|
99
|
-
* @type
|
|
99
|
+
* @type {string}
|
|
100
100
|
*/
|
|
101
101
|
Controller.prepareProperty('name', function name() {
|
|
102
102
|
return this.constructor.name;
|
|
@@ -105,7 +105,7 @@ Controller.prepareProperty('name', function name() {
|
|
|
105
105
|
/**
|
|
106
106
|
* The model linked to this controller
|
|
107
107
|
*
|
|
108
|
-
* @author Jelle De Loecker
|
|
108
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
109
109
|
* @since 1.0.0
|
|
110
110
|
* @version 1.0.5
|
|
111
111
|
*
|
|
@@ -123,7 +123,7 @@ Controller.prepareProperty(function model() {
|
|
|
123
123
|
/**
|
|
124
124
|
* Alias to the viewRender
|
|
125
125
|
*
|
|
126
|
-
* @type
|
|
126
|
+
* @type {Hawkejs.ViewRender}
|
|
127
127
|
*/
|
|
128
128
|
Controller.setProperty(function view_render() {
|
|
129
129
|
return this.conduit.view_render;
|
|
@@ -132,11 +132,11 @@ Controller.setProperty(function view_render() {
|
|
|
132
132
|
/**
|
|
133
133
|
* Enable a component
|
|
134
134
|
*
|
|
135
|
-
* @author Jelle De Loecker
|
|
135
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
136
136
|
* @since 1.0.0
|
|
137
137
|
* @version 1.0.0
|
|
138
138
|
*
|
|
139
|
-
* @param {
|
|
139
|
+
* @param {string} name The name of the component
|
|
140
140
|
* @param {Object} options
|
|
141
141
|
*/
|
|
142
142
|
Controller.setMethod(function addComponent(name, options) {
|
|
@@ -162,11 +162,11 @@ Controller.setMethod(function addComponent(name, options) {
|
|
|
162
162
|
/**
|
|
163
163
|
* Change the response URL (or disable it)
|
|
164
164
|
*
|
|
165
|
-
* @author Jelle De Loecker
|
|
165
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
166
166
|
* @since 1.3.0
|
|
167
167
|
* @version 1.3.0
|
|
168
168
|
*
|
|
169
|
-
* @param {
|
|
169
|
+
* @param {string|RURL|boolean} new_url
|
|
170
170
|
*/
|
|
171
171
|
Controller.setMethod(function setResponseUrl(new_url) {
|
|
172
172
|
|
|
@@ -179,11 +179,11 @@ Controller.setMethod(function setResponseUrl(new_url) {
|
|
|
179
179
|
/**
|
|
180
180
|
* Set a variable for ViewRender, through conduit
|
|
181
181
|
*
|
|
182
|
-
* @author Jelle De Loecker
|
|
182
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
183
183
|
* @since 0.2.0
|
|
184
184
|
* @version 0.2.0
|
|
185
185
|
*
|
|
186
|
-
* @param {
|
|
186
|
+
* @param {string} name
|
|
187
187
|
* @param {Mixed} value
|
|
188
188
|
*/
|
|
189
189
|
Controller.setMethod(function set(name, value) {
|
|
@@ -198,11 +198,11 @@ Controller.setMethod(function set(name, value) {
|
|
|
198
198
|
/**
|
|
199
199
|
* Set a variable for ViewRender, encode HTML if it's a string
|
|
200
200
|
*
|
|
201
|
-
* @author Jelle De Loecker
|
|
201
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
202
202
|
* @since 0.4.1
|
|
203
203
|
* @version 0.4.1
|
|
204
204
|
*
|
|
205
|
-
* @param {
|
|
205
|
+
* @param {string} name
|
|
206
206
|
* @param {Mixed} value
|
|
207
207
|
*/
|
|
208
208
|
Controller.setMethod(function safeSet(name, value) {
|
|
@@ -221,11 +221,11 @@ Controller.setMethod(function safeSet(name, value) {
|
|
|
221
221
|
/**
|
|
222
222
|
* Set the page title
|
|
223
223
|
*
|
|
224
|
-
* @author Jelle De Loecker
|
|
224
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
225
225
|
* @since 0.4.1
|
|
226
226
|
* @version 0.4.1
|
|
227
227
|
*
|
|
228
|
-
* @param {
|
|
228
|
+
* @param {string} title
|
|
229
229
|
*/
|
|
230
230
|
Controller.setMethod(function setTitle(title) {
|
|
231
231
|
this.set('pagetitle', title);
|
|
@@ -235,11 +235,11 @@ Controller.setMethod(function setTitle(title) {
|
|
|
235
235
|
/**
|
|
236
236
|
* Set an internal variable for ViewRender
|
|
237
237
|
*
|
|
238
|
-
* @author Jelle De Loecker
|
|
238
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
239
239
|
* @since 0.2.0
|
|
240
240
|
* @version 1.0.0
|
|
241
241
|
*
|
|
242
|
-
* @param {
|
|
242
|
+
* @param {string} name
|
|
243
243
|
* @param {Mixed} value
|
|
244
244
|
*/
|
|
245
245
|
Controller.setMethod(function internal(name, value) {
|
|
@@ -254,11 +254,11 @@ Controller.setMethod(function internal(name, value) {
|
|
|
254
254
|
/**
|
|
255
255
|
* Expose a variable for ViewRender
|
|
256
256
|
*
|
|
257
|
-
* @author Jelle De Loecker
|
|
257
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
258
258
|
* @since 0.2.0
|
|
259
259
|
* @version 1.0.0
|
|
260
260
|
*
|
|
261
|
-
* @param {
|
|
261
|
+
* @param {string} name
|
|
262
262
|
* @param {Mixed} value
|
|
263
263
|
*/
|
|
264
264
|
Controller.setMethod(function expose(name, value) {
|
|
@@ -273,12 +273,12 @@ Controller.setMethod(function expose(name, value) {
|
|
|
273
273
|
/**
|
|
274
274
|
* Render the given template
|
|
275
275
|
*
|
|
276
|
-
* @author Jelle De Loecker
|
|
276
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
277
277
|
* @since 1.0.0
|
|
278
278
|
* @version 1.1.0
|
|
279
279
|
*
|
|
280
|
-
* @param
|
|
281
|
-
* @param
|
|
280
|
+
* @param {number} status
|
|
281
|
+
* @param {Array} templates
|
|
282
282
|
*/
|
|
283
283
|
Controller.setMethod(function render(status, templates) {
|
|
284
284
|
|
|
@@ -309,11 +309,11 @@ Controller.setMethod(function render(status, templates) {
|
|
|
309
309
|
/**
|
|
310
310
|
* End the response
|
|
311
311
|
*
|
|
312
|
-
* @author Jelle De Loecker
|
|
312
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
313
313
|
* @since 1.1.0
|
|
314
314
|
* @version 1.1.0
|
|
315
315
|
*
|
|
316
|
-
* @param {
|
|
316
|
+
* @param {string|Object} message
|
|
317
317
|
*/
|
|
318
318
|
Controller.setMethod(function end(message) {
|
|
319
319
|
return this.conduit.end(message);
|
|
@@ -322,12 +322,12 @@ Controller.setMethod(function end(message) {
|
|
|
322
322
|
/**
|
|
323
323
|
* Perform the wanted action and fire expected events
|
|
324
324
|
*
|
|
325
|
-
* @author Jelle De Loecker
|
|
325
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
326
326
|
* @since 0.2.0
|
|
327
|
-
* @version 1.
|
|
327
|
+
* @version 1.4.0
|
|
328
328
|
*
|
|
329
|
-
* @param
|
|
330
|
-
* @param
|
|
329
|
+
* @param {string} name The name of the action to execute
|
|
330
|
+
* @param {Array} args Arguments to apply to the action
|
|
331
331
|
*/
|
|
332
332
|
Controller.setMethod(async function doAction(name, args) {
|
|
333
333
|
|
|
@@ -362,8 +362,8 @@ Controller.setMethod(async function doAction(name, args) {
|
|
|
362
362
|
// @TODO: Add support for objects with language keys
|
|
363
363
|
let title = route.options.title;
|
|
364
364
|
|
|
365
|
-
if (alchemy.settings && alchemy.settings.title_suffix) {
|
|
366
|
-
title += alchemy.settings.title_suffix;
|
|
365
|
+
if (alchemy.settings && alchemy.settings.frontend.title_suffix) {
|
|
366
|
+
title += alchemy.settings.frontend.title_suffix;
|
|
367
367
|
}
|
|
368
368
|
|
|
369
369
|
this.setTitle(title);
|
|
@@ -384,9 +384,24 @@ Controller.setMethod(async function doAction(name, args) {
|
|
|
384
384
|
}
|
|
385
385
|
|
|
386
386
|
try {
|
|
387
|
-
await this.issueEvent('initializing');
|
|
388
|
-
|
|
389
|
-
|
|
387
|
+
let result = await this.issueEvent('initializing');
|
|
388
|
+
|
|
389
|
+
if (result === false) {
|
|
390
|
+
return;
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
result = await this.issueEvent('filtering');
|
|
394
|
+
|
|
395
|
+
if (result === false) {
|
|
396
|
+
return;
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
result = await this.issueEvent('starting', [name]);
|
|
400
|
+
|
|
401
|
+
if (result === false) {
|
|
402
|
+
return;
|
|
403
|
+
}
|
|
404
|
+
|
|
390
405
|
await this.constructor.actions[name].apply(this, args);
|
|
391
406
|
} catch (err) {
|
|
392
407
|
this.conduit.error(err);
|
|
@@ -396,11 +411,11 @@ Controller.setMethod(async function doAction(name, args) {
|
|
|
396
411
|
/**
|
|
397
412
|
* Create client controller class for specific controller name
|
|
398
413
|
*
|
|
399
|
-
* @author Jelle De Loecker <jelle@
|
|
414
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
400
415
|
* @since 1.0.5
|
|
401
416
|
* @version 1.0.5
|
|
402
417
|
*
|
|
403
|
-
* @param {
|
|
418
|
+
* @param {string} controller_name
|
|
404
419
|
*/
|
|
405
420
|
Controller.setStatic(function getClass(controller_name) {
|
|
406
421
|
|
|
@@ -423,7 +438,7 @@ Controller.setStatic(function getClass(controller_name) {
|
|
|
423
438
|
|
|
424
439
|
if (ControllerClass == null) {
|
|
425
440
|
model_constructor = Function.create(class_name, function ControllerConstructor(record, options) {
|
|
426
|
-
ControllerConstructor.
|
|
441
|
+
ControllerConstructor.super.call(this, record, options);
|
|
427
442
|
});
|
|
428
443
|
|
|
429
444
|
// @TODO: inherit from parents
|