alchemymvc 1.3.21 → 1.4.0-alpha.1

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.
Files changed (155) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +3 -3
  3. package/lib/app/behaviour/publishable_behaviour.js +5 -5
  4. package/lib/app/behaviour/revision_behaviour.js +10 -10
  5. package/lib/app/behaviour/sluggable_behaviour.js +14 -14
  6. package/lib/app/conduit/electron_conduit.js +9 -9
  7. package/lib/app/conduit/http_conduit.js +13 -13
  8. package/lib/app/conduit/loopback_conduit.js +15 -15
  9. package/lib/app/conduit/socket_conduit.js +43 -43
  10. package/lib/app/config/routes.js +26 -0
  11. package/lib/app/controller/00-default_app_controller.js +21 -0
  12. package/lib/app/controller/alchemy_info_controller.js +12 -12
  13. package/lib/app/datasource/mongo_datasource.js +16 -16
  14. package/lib/app/element/00-default_app_element.js +19 -0
  15. package/lib/app/element/time_ago.js +5 -5
  16. package/lib/app/helper/00-default_app_helper.js +11 -0
  17. package/lib/app/helper/alchemy_helper.js +22 -22
  18. package/lib/app/helper/backed_map.js +1 -1
  19. package/lib/app/helper/breadcrumb.js +10 -10
  20. package/lib/app/helper/client_collection.js +3 -3
  21. package/lib/app/helper/cron.js +29 -29
  22. package/lib/app/helper/enum_values.js +6 -6
  23. package/lib/app/helper/pagination_helper.js +36 -36
  24. package/lib/app/helper/router_helper.js +35 -35
  25. package/lib/app/helper/socket_helper.js +57 -57
  26. package/lib/app/helper/syncable.js +84 -59
  27. package/lib/app/helper_component/paginate_component.js +9 -9
  28. package/lib/app/helper_controller/component.js +1 -1
  29. package/lib/app/helper_controller/conduit.js +31 -31
  30. package/lib/app/helper_controller/controller.js +54 -39
  31. package/lib/app/helper_datasource/00-nosql_datasource.js +624 -70
  32. package/lib/app/helper_datasource/05-fallback_datasource.js +10 -10
  33. package/lib/app/helper_datasource/idb_datasource.js +6 -6
  34. package/lib/app/helper_datasource/indexed_db.js +22 -22
  35. package/lib/app/helper_datasource/remote_datasource.js +5 -5
  36. package/lib/app/helper_error/http_error.js +4 -4
  37. package/lib/app/helper_error/model_error.js +2 -2
  38. package/lib/app/helper_error/validation_error.js +12 -12
  39. package/lib/app/helper_field/00-objectid_field.js +7 -7
  40. package/lib/app/helper_field/05-string_field.js +16 -12
  41. package/lib/app/helper_field/06-text_field.js +2 -4
  42. package/lib/app/helper_field/10-number_field.js +9 -12
  43. package/lib/app/helper_field/11-date_field.js +15 -15
  44. package/lib/app/helper_field/15-local_temporal_field.js +10 -10
  45. package/lib/app/helper_field/20-decimal_field.js +8 -9
  46. package/lib/app/helper_field/belongsto_field.js +1 -1
  47. package/lib/app/helper_field/big_int_field.js +8 -8
  48. package/lib/app/helper_field/boolean_field.js +9 -11
  49. package/lib/app/helper_field/datetime_field.js +3 -3
  50. package/lib/app/helper_field/enum_field.js +13 -8
  51. package/lib/app/helper_field/fixed_decimal_field.js +6 -7
  52. package/lib/app/helper_field/geopoint_field.js +9 -10
  53. package/lib/app/helper_field/habtm_field.js +3 -3
  54. package/lib/app/helper_field/hasoneparent_field.js +1 -1
  55. package/lib/app/helper_field/html_field.js +2 -4
  56. package/lib/app/helper_field/integer_field.js +8 -11
  57. package/lib/app/helper_field/local_date_field.js +5 -5
  58. package/lib/app/helper_field/local_date_time_field.js +5 -5
  59. package/lib/app/helper_field/local_time_field.js +5 -5
  60. package/lib/app/helper_field/mixed_field.js +5 -5
  61. package/lib/app/helper_field/object_field.js +8 -8
  62. package/lib/app/helper_field/password_field.js +3 -3
  63. package/lib/app/helper_field/regexp_field.js +7 -9
  64. package/lib/app/helper_field/schema_field.js +91 -88
  65. package/lib/app/helper_field/settings_field.js +92 -0
  66. package/lib/app/helper_field/time_field.js +6 -6
  67. package/lib/app/helper_field/url_field.js +2 -4
  68. package/lib/app/helper_model/00-base_criteria.js +662 -0
  69. package/lib/app/helper_model/05-criteria_expressions.js +605 -0
  70. package/lib/app/helper_model/10-model_criteria.js +1182 -0
  71. package/lib/app/helper_model/data_provider.js +2 -2
  72. package/lib/app/helper_model/document.js +103 -92
  73. package/lib/app/helper_model/document_list.js +14 -14
  74. package/lib/app/helper_model/field_config.js +11 -11
  75. package/lib/app/helper_model/field_set.js +17 -17
  76. package/lib/app/helper_model/model.js +203 -124
  77. package/lib/app/helper_model/remote_data_provider.js +2 -2
  78. package/lib/app/helper_validator/00_validator.js +16 -16
  79. package/lib/app/helper_validator/not_empty_validator.js +9 -9
  80. package/lib/app/model/00-default_app_model.js +18 -0
  81. package/lib/app/model/05-system_model.js +27 -0
  82. package/lib/app/model/{alchemy_migration_model.js → system_migration_model.js} +4 -4
  83. package/lib/app/model/system_setting_model.js +154 -0
  84. package/lib/app/model/{alchemy_task_history_model.js → system_task_history_model.js} +7 -7
  85. package/lib/app/model/{alchemy_task_model.js → system_task_model.js} +11 -11
  86. package/lib/bootstrap.js +22 -312
  87. package/lib/class/accumulator.js +5 -5
  88. package/lib/class/behaviour.js +5 -5
  89. package/lib/class/component.js +3 -3
  90. package/lib/class/conduit.js +203 -163
  91. package/lib/class/controller.js +42 -42
  92. package/lib/class/datasource.js +74 -79
  93. package/lib/class/document.js +74 -95
  94. package/lib/class/document_list.js +5 -5
  95. package/lib/class/element.js +17 -17
  96. package/lib/class/error.js +3 -3
  97. package/lib/class/field.js +169 -91
  98. package/lib/class/field_value.js +6 -6
  99. package/lib/class/helper.js +3 -3
  100. package/lib/class/inode.js +17 -17
  101. package/lib/class/inode_dir.js +12 -12
  102. package/lib/class/inode_file.js +50 -25
  103. package/lib/class/inode_list.js +4 -4
  104. package/lib/class/migration.js +4 -4
  105. package/lib/class/model.js +182 -168
  106. package/lib/class/path_definition.js +22 -22
  107. package/lib/class/path_evaluator.js +5 -5
  108. package/lib/class/path_param_definition.js +7 -7
  109. package/lib/class/plugin.js +312 -0
  110. package/lib/class/postponement.js +29 -29
  111. package/lib/class/reciprocal.js +8 -8
  112. package/lib/class/route.js +33 -33
  113. package/lib/class/router.js +73 -73
  114. package/lib/class/schema.js +21 -21
  115. package/lib/class/schema_client.js +73 -67
  116. package/lib/class/session.js +63 -29
  117. package/lib/class/session_scene.js +4 -4
  118. package/lib/class/sitemap.js +16 -16
  119. package/lib/class/task.js +39 -39
  120. package/lib/class/task_service.js +43 -47
  121. package/lib/{init → core}/alchemy.js +413 -374
  122. package/lib/{init/functions.js → core/alchemy_functions.js} +171 -108
  123. package/lib/core/alchemy_load_functions.js +715 -0
  124. package/lib/core/base.js +50 -62
  125. package/lib/core/client_alchemy.js +144 -152
  126. package/lib/core/client_base.js +39 -52
  127. package/lib/core/discovery.js +16 -18
  128. package/lib/core/middleware.js +54 -43
  129. package/lib/core/{routing.js → prefix.js} +14 -16
  130. package/lib/core/setting.js +1684 -0
  131. package/lib/core/stage.js +758 -0
  132. package/lib/scripts/create_constants.js +119 -0
  133. package/lib/{init/languages.js → scripts/create_languages.js} +5 -5
  134. package/lib/scripts/create_settings.js +449 -0
  135. package/lib/scripts/create_shared_constants.js +95 -0
  136. package/lib/scripts/create_stages.js +55 -0
  137. package/lib/scripts/init_alchemy.js +51 -0
  138. package/lib/{init/requirements.js → scripts/preload_modules.js} +15 -2
  139. package/lib/scripts/setup_devwatch.js +238 -0
  140. package/lib/stages/00-load_core.js +342 -0
  141. package/lib/stages/05-load_app.js +57 -0
  142. package/lib/stages/10-datasource.js +61 -0
  143. package/lib/stages/15-tasks.js +27 -0
  144. package/lib/stages/20-settings.js +68 -0
  145. package/lib/stages/50-routes.js +218 -0
  146. package/lib/stages/90-server.js +347 -0
  147. package/package.json +5 -7
  148. package/lib/app/helper_model/criteria.js +0 -2294
  149. package/lib/app/helper_model/db_query.js +0 -1488
  150. package/lib/app/routes.js +0 -11
  151. package/lib/core/socket.js +0 -171
  152. package/lib/init/constants.js +0 -158
  153. package/lib/init/devwatch.js +0 -238
  154. package/lib/init/load_functions.js +0 -973
  155. package/lib/stages.js +0 -513
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * The DataProvider class
3
3
  *
4
- * @author Jelle De Loecker <jelle@elevenways.be>
4
+ * @author Jelle De Loecker <jelle@elevenways.be>
5
5
  * @since 1.2.2
6
6
  * @version 1.2.2
7
7
  */
@@ -17,7 +17,7 @@ const DataProvider = Function.inherits('Alchemy.Base', 'Alchemy.DataProvider', f
17
17
  * @version 1.2.2
18
18
  *
19
19
  * @param {Object} obj
20
- * @param {Boolean|String} cloned
20
+ * @param {boolean|string} cloned
21
21
  *
22
22
  * @return {DataProvider}
23
23
  */
@@ -8,10 +8,11 @@ if (Blast.isBrowser) {
8
8
  Blast.once('hawkejs_init', function gotScene(hawkejs, variables, settings, renderer) {
9
9
 
10
10
  let DocClass,
11
- config;
11
+ config,
12
+ key;
12
13
 
13
14
  for (config of hawkejs.scene.exposed.model_info) {
14
- DocClass = Document.getDocumentClass(config.name);
15
+ DocClass = Document.getDocumentClass(config.model_name);
15
16
 
16
17
  for (key in config.schema.dict) {
17
18
  DocClass.setFieldGetter(key);
@@ -30,7 +31,7 @@ if (Blast.isBrowser) {
30
31
  *
31
32
  * @constructor
32
33
  *
33
- * @author Jelle De Loecker <jelle@develry.be>
34
+ * @author Jelle De Loecker <jelle@elevenways.be>
34
35
  * @since 1.0.0
35
36
  * @version 1.0.6
36
37
  *
@@ -44,14 +45,14 @@ var Document = Function.inherits('Alchemy.Client.Base', 'Alchemy.Client.Document
44
45
  /**
45
46
  * Set a property
46
47
  *
47
- * @author Jelle De Loecker <jelle@develry.be>
48
+ * @author Jelle De Loecker <jelle@elevenways.be>
48
49
  * @since 1.0.0
49
50
  * @version 1.0.0
50
51
  *
51
- * @param {String} key Name of the property
52
+ * @param {string} key Name of the property
52
53
  * @param {Function} getter Optional getter function
53
54
  * @param {Function} setter Optional setter function
54
- * @param {Boolean} on_server Also set on the server implementation
55
+ * @param {boolean} on_server Also set on the server implementation
55
56
  */
56
57
  Document.setStatic(function setProperty(key, getter, setter, on_server) {
57
58
 
@@ -91,13 +92,13 @@ Document.setStatic(function setProperty(key, getter, setter, on_server) {
91
92
  /**
92
93
  * Set a method
93
94
  *
94
- * @author Jelle De Loecker <jelle@develry.be>
95
+ * @author Jelle De Loecker <jelle@elevenways.be>
95
96
  * @since 1.0.0
96
97
  * @version 1.0.0
97
98
  *
98
- * @param {String} key Name of the property
99
+ * @param {string} key Name of the property
99
100
  * @param {Function} method The method to set
100
- * @param {Boolean} on_server Also set on the server implementation
101
+ * @param {boolean} on_server Also set on the server implementation
101
102
  */
102
103
  Document.setStatic(function setMethod(key, method, on_server) {
103
104
 
@@ -138,8 +139,8 @@ Document.setStatic(function setMethod(key, method, on_server) {
138
139
  * @since 1.3.21
139
140
  * @version 1.3.21
140
141
  *
141
- * @param {String} name Name of the property
142
- * @param {Boolean} on_server Also set on the server implementation
142
+ * @param {string} name Name of the property
143
+ * @param {boolean} on_server Also set on the server implementation
143
144
  */
144
145
  Document.setStatic(function setComputedFieldGetter(name, on_server) {
145
146
  this.setProperty(name, function getComputedFieldValue() {
@@ -160,14 +161,14 @@ Document.setStatic(function setComputedFieldGetter(name, on_server) {
160
161
  /**
161
162
  * Set a getter for this field
162
163
  *
163
- * @author Jelle De Loecker <jelle@develry.be>
164
+ * @author Jelle De Loecker <jelle@elevenways.be>
164
165
  * @since 1.0.0
165
166
  * @version 1.0.4
166
167
  *
167
- * @param {String} name Name of the property
168
+ * @param {string} name Name of the property
168
169
  * @param {Function} getter Optional getter function
169
170
  * @param {Function} setter Optional setter function
170
- * @param {Boolean} on_server Also set on the server implementation
171
+ * @param {boolean} on_server Also set on the server implementation
171
172
  */
172
173
  Document.setStatic(function setFieldGetter(name, getter, setter, on_server) {
173
174
 
@@ -192,11 +193,11 @@ Document.setStatic(function setFieldGetter(name, getter, setter, on_server) {
192
193
  /**
193
194
  * Set the getter for an alias
194
195
  *
195
- * @author Jelle De Loecker <jelle@develry.be>
196
+ * @author Jelle De Loecker <jelle@elevenways.be>
196
197
  * @since 1.0.0
197
198
  * @version 1.0.0
198
199
  *
199
- * @param {String} name
200
+ * @param {string} name
200
201
  */
201
202
  Document.setStatic(function setAliasGetter(name) {
202
203
 
@@ -224,11 +225,11 @@ Document.setStatic(function setAliasGetter(name) {
224
225
  /**
225
226
  * Find class for JSON-Dry
226
227
  *
227
- * @author Jelle De Loecker <jelle@develry.be>
228
+ * @author Jelle De Loecker <jelle@elevenways.be>
228
229
  * @since 1.0.6
229
230
  * @version 1.1.0
230
231
  *
231
- * @param {String} class_name
232
+ * @param {string} class_name
232
233
  */
233
234
  Document.setStatic(function getClassForUndry(class_name) {
234
235
  return this.getDocumentClass(class_name);
@@ -237,44 +238,54 @@ Document.setStatic(function getClassForUndry(class_name) {
237
238
  /**
238
239
  * Create document class for specific model
239
240
  *
240
- * @author Jelle De Loecker <jelle@develry.be>
241
+ * @author Jelle De Loecker <jelle@elevenways.be>
241
242
  * @since 1.0.0
242
- * @version 1.3.1
243
+ * @version 1.4.0
243
244
  *
244
- * @param {Object|String} model
245
+ * @param {Function|Object|string} model_param
245
246
  */
246
- Document.setStatic(function getDocumentClass(model) {
247
+ Document.setStatic(function getDocumentClass(model_param) {
247
248
 
248
- if (!model) {
249
+ if (!model_param) {
249
250
  throw new Error('Can not get Hawkejs.Document class for non-existing model');
250
251
  }
251
252
 
252
- let model_name;
253
+ let model = typeof model_param == 'function' ? model_param : alchemy.getModel(model_param, false);
253
254
 
254
- if (typeof model == 'function') {
255
- model_name = model.name;
256
- } else if (typeof model == 'string') {
257
- model_name = model;
258
- } else {
259
- model_name = model.model_name;
255
+ if (!model) {
256
+ throw new Error('There is no model named "' + model_param + '"');
257
+ }
258
+
259
+ if (model.is_namespace) {
260
+ return;
260
261
  }
261
262
 
262
- // Construct the name of the document class
263
- let document_name = model_name;
263
+ let model_name = model.model_name;
264
264
 
265
- if (class_cache.has(document_name)) {
266
- return class_cache.get(document_name);
265
+ if (class_cache.has(model_name)) {
266
+ return class_cache.get(model_name);
267
267
  }
268
268
 
269
+ // Construct the name of the document class constructor
270
+ let document_name = model.name;
271
+
269
272
  // Construct the path to this class
270
- let doc_path = 'Alchemy.Client.Document.' + document_name;
273
+ let target_ns = 'Alchemy.Client.Document';
274
+ let doc_path = target_ns;
275
+
276
+ if (model.model_namespace) {
277
+ doc_path += '.' + model.model_namespace;
278
+ target_ns += '.' + model.model_namespace;
279
+ }
280
+
281
+ doc_path += '.' + document_name;
271
282
 
272
283
  // Get the class
273
284
  let DocClass = Object.path(Blast.Classes, doc_path);
274
285
 
275
286
  if (DocClass == null) {
276
287
  let doc_constructor = Function.create(document_name, function DocumentConstructor(record, options) {
277
- DocumentConstructor.wrapper.super.call(this, record, options);
288
+ DocumentConstructor.super.call(this, record, options);
278
289
  });
279
290
 
280
291
  let parent,
@@ -310,7 +321,7 @@ Document.setStatic(function getDocumentClass(model) {
310
321
  parent_path += '.' + parent;
311
322
  }
312
323
 
313
- DocClass = Function.inherits(parent_path, doc_constructor);
324
+ DocClass = Function.inherits(parent_path, target_ns, doc_constructor);
314
325
 
315
326
  DocClass.setProperty('$model_name', model_name, null, false);
316
327
 
@@ -329,12 +340,12 @@ Document.setStatic(function getDocumentClass(model) {
329
340
  /**
330
341
  * unDry an object
331
342
  *
332
- * @author Jelle De Loecker <jelle@develry.be>
343
+ * @author Jelle De Loecker <jelle@elevenways.be>
333
344
  * @since 1.0.0
334
345
  * @version 1.2.5
335
346
  *
336
347
  * @param {Object} obj
337
- * @param {Boolean|String} cloned
348
+ * @param {boolean|string} cloned
338
349
  *
339
350
  * @return {Document}
340
351
  */
@@ -430,13 +441,13 @@ Document.setStatic(function unDry(obj, cloned) {
430
441
  /**
431
442
  * Is the given argument a Document?
432
443
  *
433
- * @author Jelle De Loecker <jelle@develry.be>
444
+ * @author Jelle De Loecker <jelle@elevenways.be>
434
445
  * @since 1.0.5
435
446
  * @version 1.0.5
436
447
  *
437
448
  * @param {Object} obj
438
449
  *
439
- * @return {Boolean}
450
+ * @return {boolean}
440
451
  */
441
452
  Document.setStatic(function isDocument(obj) {
442
453
 
@@ -459,7 +470,7 @@ Document.setStatic(function isDocument(obj) {
459
470
  /**
460
471
  * Get the model instance
461
472
  *
462
- * @author Jelle De Loecker <jelle@develry.be>
473
+ * @author Jelle De Loecker <jelle@elevenways.be>
463
474
  * @since 1.0.0
464
475
  * @version 1.1.3
465
476
  */
@@ -475,7 +486,7 @@ Document.setProperty(function $model() {
475
486
  /**
476
487
  * Get the primary key value
477
488
  *
478
- * @author Jelle De Loecker <jelle@develry.be>
489
+ * @author Jelle De Loecker <jelle@elevenways.be>
479
490
  * @since 1.1.0
480
491
  * @version 1.1.0
481
492
  */
@@ -498,7 +509,7 @@ Document.setProperty(function $pk() {
498
509
  /**
499
510
  * Set some properties to null
500
511
  *
501
- * @author Jelle De Loecker <jelle@develry.be>
512
+ * @author Jelle De Loecker <jelle@elevenways.be>
502
513
  * @since 1.1.0
503
514
  * @version 1.1.0
504
515
  */
@@ -511,7 +522,7 @@ Document.setProperty('$record', null);
511
522
  * This will be used when comparing 2 documents.
512
523
  * You normally don't need to access this.
513
524
  *
514
- * @author Jelle De Loecker <jelle@develry.be>
525
+ * @author Jelle De Loecker <jelle@elevenways.be>
515
526
  * @since 1.0.4
516
527
  * @version 1.0.4
517
528
  */
@@ -528,7 +539,7 @@ Document.setProperty(function $attributes() {
528
539
  * Extra values that will also be sent to the client.
529
540
  * These values won't be used when comparing 2 documents
530
541
  *
531
- * @author Jelle De Loecker <jelle@develry.be>
542
+ * @author Jelle De Loecker <jelle@elevenways.be>
532
543
  * @since 1.1.0
533
544
  * @version 1.1.0
534
545
  */
@@ -544,11 +555,11 @@ Document.setProperty(function $hold() {
544
555
  /**
545
556
  * Get the $model_alias name
546
557
  *
547
- * @author Jelle De Loecker <jelle@develry.be>
558
+ * @author Jelle De Loecker <jelle@elevenways.be>
548
559
  * @since 1.1.0
549
560
  * @version 1.1.0
550
561
  *
551
- * @type {String}
562
+ * @type {string}
552
563
  */
553
564
  Document.setProperty(function $model_alias() {
554
565
 
@@ -564,7 +575,7 @@ Document.setProperty(function $model_alias() {
564
575
  /**
565
576
  * Get the $main data
566
577
  *
567
- * @author Jelle De Loecker <jelle@develry.be>
578
+ * @author Jelle De Loecker <jelle@elevenways.be>
568
579
  * @since 1.1.0
569
580
  * @version 1.1.0
570
581
  *
@@ -596,11 +607,11 @@ Document.setProperty(function $main() {
596
607
  /**
597
608
  * Is this a new & unsaved record?
598
609
  *
599
- * @author Jelle De Loecker <jelle@develry.be>
610
+ * @author Jelle De Loecker <jelle@elevenways.be>
600
611
  * @since 1.0.6
601
612
  * @version 1.1.0
602
613
  *
603
- * @param {Boolean}
614
+ * @param {boolean}
604
615
  */
605
616
  Document.setProperty(function is_new_record() {
606
617
 
@@ -618,13 +629,13 @@ Document.setProperty(function is_new_record() {
618
629
  /**
619
630
  * Compare to another object
620
631
  *
621
- * @author Jelle De Loecker <jelle@develry.be>
632
+ * @author Jelle De Loecker <jelle@elevenways.be>
622
633
  * @since 1.0.4
623
634
  * @version 1.0.4
624
635
  *
625
636
  * @param {Object} other
626
637
  *
627
- * @return {Boolean}
638
+ * @return {boolean}
628
639
  */
629
640
  Document.setMethod(Blast.alikeSymbol, function alike(other, seen) {
630
641
 
@@ -642,7 +653,7 @@ Document.setMethod(Blast.alikeSymbol, function alike(other, seen) {
642
653
  /**
643
654
  * Return an object for json-drying this document
644
655
  *
645
- * @author Jelle De Loecker <jelle@develry.be>
656
+ * @author Jelle De Loecker <jelle@elevenways.be>
646
657
  * @since 1.0.0
647
658
  * @version 1.1.0
648
659
  *
@@ -665,11 +676,11 @@ Document.setMethod(function toDry() {
665
676
  /**
666
677
  * Get the displaytitle of this document, or null
667
678
  *
668
- * @author Jelle De Loecker <jelle@elevenways.be>
679
+ * @author Jelle De Loecker <jelle@elevenways.be>
669
680
  * @since 1.3.13
670
681
  * @version 1.3.14
671
682
  *
672
- * @return {String}
683
+ * @return {string}
673
684
  */
674
685
  Document.setMethod(function getDisplayTitleOrNull() {
675
686
 
@@ -683,11 +694,11 @@ Document.setMethod(function getDisplayTitleOrNull() {
683
694
  /**
684
695
  * Get the displaytitle of this document
685
696
  *
686
- * @author Jelle De Loecker <jelle@elevenways.be>
697
+ * @author Jelle De Loecker <jelle@elevenways.be>
687
698
  * @since 1.3.13
688
699
  * @version 1.3.14
689
700
  *
690
- * @return {String}
701
+ * @return {string}
691
702
  */
692
703
  Document.setMethod(function getDisplayTitle() {
693
704
 
@@ -796,12 +807,12 @@ Document.setMethod(function setDataRecord(record, options) {
796
807
  /**
797
808
  * Get the translated document for the given prefix with only the given field
798
809
  *
799
- * @author Jelle De Loecker <jelle@elevenways.be>
810
+ * @author Jelle De Loecker <jelle@elevenways.be>
800
811
  * @since 1.3.10
801
812
  * @version 1.3.10
802
813
  *
803
- * @param {String} field_name
804
- * @param {String} prefix
814
+ * @param {string} field_name
815
+ * @param {string} prefix
805
816
  */
806
817
  Document.setMethod(async function getTranslatedDocumentOfPrefix(field_name, prefix) {
807
818
 
@@ -821,11 +832,11 @@ Document.setMethod(async function getTranslatedDocumentOfPrefix(field_name, pref
821
832
  * Get the translated value of a certain field.
822
833
  * If this document has already been translated, a new instance will be queried
823
834
  *
824
- * @author Jelle De Loecker <jelle@elevenways.be>
835
+ * @author Jelle De Loecker <jelle@elevenways.be>
825
836
  * @since 1.3.0
826
837
  * @version 1.3.10
827
838
  *
828
- * @param {String} prefix
839
+ * @param {string} prefix
829
840
  */
830
841
  Document.setMethod(async function getTranslatedValueOfField(field_name, prefix) {
831
842
  let doc = await this.getTranslatedDocumentOfPrefix(field_name, prefix);
@@ -836,11 +847,11 @@ Document.setMethod(async function getTranslatedValueOfField(field_name, prefix)
836
847
  * Get the translated value of a certain field.
837
848
  * If this document has already been translated, a new instance will be queried
838
849
  *
839
- * @author Jelle De Loecker <jelle@elevenways.be>
850
+ * @author Jelle De Loecker <jelle@elevenways.be>
840
851
  * @since 1.3.10
841
852
  * @version 1.3.10
842
853
  *
843
- * @param {String} prefix
854
+ * @param {string} prefix
844
855
  */
845
856
  Document.setMethod(async function getTranslatedValueOfFieldForRoute(field_name, prefix) {
846
857
  let doc = await this.getTranslatedDocumentOfPrefix(field_name, prefix);
@@ -868,7 +879,7 @@ Document.setMethod(async function refreshValues() {
868
879
  /**
869
880
  * Set the values
870
881
  *
871
- * @author Jelle De Loecker <jelle@develry.be>
882
+ * @author Jelle De Loecker <jelle@elevenways.be>
872
883
  * @since 1.1.0
873
884
  * @version 1.1.0
874
885
  *
@@ -1090,7 +1101,7 @@ Document.setMethod(function recomputeValues() {
1090
1101
  /**
1091
1102
  * Get the clean options
1092
1103
  *
1093
- * @author Jelle De Loecker <jelle@develry.be>
1104
+ * @author Jelle De Loecker <jelle@elevenways.be>
1094
1105
  * @since 1.0.0
1095
1106
  * @version 1.0.0
1096
1107
  *
@@ -1110,7 +1121,7 @@ Document.setMethod(function getCleanOptions() {
1110
1121
  /**
1111
1122
  * Save the updates to the record
1112
1123
  *
1113
- * @author Jelle De Loecker <jelle@develry.be>
1124
+ * @author Jelle De Loecker <jelle@elevenways.be>
1114
1125
  * @since 0.2.0
1115
1126
  * @version 1.3.0
1116
1127
  *
@@ -1217,7 +1228,7 @@ Document.setMethod(function save(data, options, callback) {
1217
1228
  /**
1218
1229
  * Check and do a datasource inform
1219
1230
  *
1220
- * @author Jelle De Loecker <jelle@develry.be>
1231
+ * @author Jelle De Loecker <jelle@elevenways.be>
1221
1232
  * @since 1.1.0
1222
1233
  * @version 1.1.0
1223
1234
  *
@@ -1271,7 +1282,7 @@ Document.setMethod(function checkAndInformDatasource(options, callback) {
1271
1282
  /**
1272
1283
  * Inform the datasource of this document
1273
1284
  *
1274
- * @author Jelle De Loecker <jelle@develry.be>
1285
+ * @author Jelle De Loecker <jelle@elevenways.be>
1275
1286
  * @since 1.0.0
1276
1287
  * @version 1.1.0
1277
1288
  *
@@ -1363,7 +1374,7 @@ Document.setMethod(function informDatasource(options, callback) {
1363
1374
  /**
1364
1375
  * Store the current data as the original record
1365
1376
  *
1366
- * @author Jelle De Loecker <jelle@elevenways.be>
1377
+ * @author Jelle De Loecker <jelle@elevenways.be>
1367
1378
  * @since 1.0.4
1368
1379
  * @version 1.3.1
1369
1380
  */
@@ -1378,11 +1389,11 @@ Document.setMethod(function storeCurrentDataAsOriginalRecord() {
1378
1389
  /**
1379
1390
  * Mark the given field as changed
1380
1391
  *
1381
- * @author Jelle De Loecker <jelle@develry.be>
1392
+ * @author Jelle De Loecker <jelle@elevenways.be>
1382
1393
  * @since 1.0.4
1383
1394
  * @version 1.1.0
1384
1395
  *
1385
- * @param {String} field_name The name of the field that changed
1396
+ * @param {string} field_name The name of the field that changed
1386
1397
  * @param {Mixed} value The new value of the field
1387
1398
  */
1388
1399
  Document.setMethod(function markChangedField(field_name, value) {
@@ -1401,7 +1412,7 @@ Document.setMethod(function markChangedField(field_name, value) {
1401
1412
  /**
1402
1413
  * Mark the document as being unchanged
1403
1414
  *
1404
- * @author Jelle De Loecker <jelle@develry.be>
1415
+ * @author Jelle De Loecker <jelle@elevenways.be>
1405
1416
  * @since 1.1.0
1406
1417
  * @version 1.1.0
1407
1418
  */
@@ -1412,11 +1423,11 @@ Document.setMethod(function markUnchanged() {
1412
1423
  /**
1413
1424
  * Does this document need saving?
1414
1425
  *
1415
- * @author Jelle De Loecker <jelle@develry.be>
1426
+ * @author Jelle De Loecker <jelle@elevenways.be>
1416
1427
  * @since 1.0.4
1417
1428
  * @version 1.0.4
1418
1429
  *
1419
- * @return {Boolean}
1430
+ * @return {boolean}
1420
1431
  */
1421
1432
  Document.setMethod(function needsToBeSaved() {
1422
1433
 
@@ -1434,11 +1445,11 @@ Document.setMethod(function needsToBeSaved() {
1434
1445
  /**
1435
1446
  * Does this document have object fields?
1436
1447
  *
1437
- * @author Jelle De Loecker <jelle@develry.be>
1448
+ * @author Jelle De Loecker <jelle@elevenways.be>
1438
1449
  * @since 1.0.4
1439
1450
  * @version 1.0.4
1440
1451
  *
1441
- * @return {Boolean}
1452
+ * @return {boolean}
1442
1453
  */
1443
1454
  Document.setMethod(function hasObjectFields() {
1444
1455
  // @TODO: implement schema checks
@@ -1448,13 +1459,13 @@ Document.setMethod(function hasObjectFields() {
1448
1459
  /**
1449
1460
  * Does this document have a value for the given field?
1450
1461
  *
1451
- * @author Jelle De Loecker <jelle@develry.be>
1462
+ * @author Jelle De Loecker <jelle@elevenways.be>
1452
1463
  * @since 1.0.5
1453
1464
  * @version 1.0.5
1454
1465
  *
1455
- * @param {String} name The field name
1466
+ * @param {string} name The field name
1456
1467
  *
1457
- * @return {Boolean}
1468
+ * @return {boolean}
1458
1469
  */
1459
1470
  Document.setMethod(function hasFieldValue(name) {
1460
1471
  return Object.hasProperty(this.$main, name);
@@ -1463,13 +1474,13 @@ Document.setMethod(function hasFieldValue(name) {
1463
1474
  /**
1464
1475
  * Has this document changed since it was created?
1465
1476
  *
1466
- * @author Jelle De Loecker <jelle@develry.be>
1477
+ * @author Jelle De Loecker <jelle@elevenways.be>
1467
1478
  * @since 1.0.4
1468
1479
  * @version 1.3.0
1469
1480
  *
1470
- * @param {String} name The optional field name
1481
+ * @param {string} name The optional field name
1471
1482
  *
1472
- * @return {Boolean}
1483
+ * @return {boolean}
1473
1484
  */
1474
1485
  Document.setMethod(function hasChanged(name) {
1475
1486
 
@@ -1538,11 +1549,11 @@ Document.setMethod(function hasChanged(name) {
1538
1549
  /**
1539
1550
  * Has this document beel validated?
1540
1551
  *
1541
- * @author Jelle De Loecker <jelle@develry.be>
1552
+ * @author Jelle De Loecker <jelle@elevenways.be>
1542
1553
  * @since 1.1.0
1543
1554
  * @version 1.1.0
1544
1555
  *
1545
- * @return {Boolean}
1556
+ * @return {boolean}
1546
1557
  */
1547
1558
  Document.setMethod(function hasValidated() {
1548
1559
  return this.$attributes.validated;
@@ -1551,7 +1562,7 @@ Document.setMethod(function hasValidated() {
1551
1562
  /**
1552
1563
  * Reset this document to the initial values
1553
1564
  *
1554
- * @author Jelle De Loecker <jelle@develry.be>
1565
+ * @author Jelle De Loecker <jelle@elevenways.be>
1555
1566
  * @since 1.0.4
1556
1567
  * @version 1.0.4
1557
1568
  *
@@ -1587,7 +1598,7 @@ Document.setMethod(function resetFields(fields) {
1587
1598
  /**
1588
1599
  * Keep these fields, and remove the others
1589
1600
  *
1590
- * @author Jelle De Loecker <jelle@develry.be>
1601
+ * @author Jelle De Loecker <jelle@elevenways.be>
1591
1602
  * @since 1.1.0
1592
1603
  * @version 1.1.0
1593
1604
  */
@@ -1605,7 +1616,7 @@ Document.setMethod(function keepFields(fields) {
1605
1616
  /**
1606
1617
  * Get a list of possible validation violations
1607
1618
  *
1608
- * @author Jelle De Loecker <jelle@develry.be>
1619
+ * @author Jelle De Loecker <jelle@elevenways.be>
1609
1620
  * @since 1.1.0
1610
1621
  * @version 1.1.0
1611
1622
  *
@@ -1622,7 +1633,7 @@ Document.setMethod(function getViolations() {
1622
1633
  /**
1623
1634
  * Validate the document, throws an error if it fails
1624
1635
  *
1625
- * @author Jelle De Loecker <jelle@develry.be>
1636
+ * @author Jelle De Loecker <jelle@elevenways.be>
1626
1637
  * @since 1.0.5
1627
1638
  * @version 1.1.0
1628
1639
  *
@@ -1647,7 +1658,7 @@ if (Blast.isNode) {
1647
1658
  /**
1648
1659
  * Get the local version of this document, if it exists
1649
1660
  *
1650
- * @author Jelle De Loecker <jelle@develry.be>
1661
+ * @author Jelle De Loecker <jelle@elevenways.be>
1651
1662
  * @since 1.0.6
1652
1663
  * @version 1.1.0
1653
1664
  *
@@ -1685,7 +1696,7 @@ Document.setMethod(function getLocalVersion() {
1685
1696
  /**
1686
1697
  * Get the local version of this document, if it exists
1687
1698
  *
1688
- * @author Jelle De Loecker <jelle@develry.be>
1699
+ * @author Jelle De Loecker <jelle@elevenways.be>
1689
1700
  * @since 1.0.6
1690
1701
  * @version 1.0.6
1691
1702
  *