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.
- 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 +10 -10
- 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 +16 -16
- 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 +84 -59
- 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 +8 -8
- 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 +203 -124
- 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 +203 -163
- 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 +50 -25
- package/lib/class/inode_list.js +4 -4
- package/lib/class/migration.js +4 -4
- package/lib/class/model.js +182 -168
- 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 +73 -67
- 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 +413 -374
- package/lib/{init/functions.js → core/alchemy_functions.js} +171 -108
- 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 +39 -52
- 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 -973
- package/lib/stages.js +0 -513
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* The DataProvider class
|
|
3
3
|
*
|
|
4
|
-
* @author Jelle De Loecker
|
|
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 {
|
|
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.
|
|
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
|
|
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@
|
|
48
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
48
49
|
* @since 1.0.0
|
|
49
50
|
* @version 1.0.0
|
|
50
51
|
*
|
|
51
|
-
* @param {
|
|
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 {
|
|
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@
|
|
95
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
95
96
|
* @since 1.0.0
|
|
96
97
|
* @version 1.0.0
|
|
97
98
|
*
|
|
98
|
-
* @param {
|
|
99
|
+
* @param {string} key Name of the property
|
|
99
100
|
* @param {Function} method The method to set
|
|
100
|
-
* @param {
|
|
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 {
|
|
142
|
-
* @param {
|
|
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@
|
|
164
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
164
165
|
* @since 1.0.0
|
|
165
166
|
* @version 1.0.4
|
|
166
167
|
*
|
|
167
|
-
* @param {
|
|
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 {
|
|
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@
|
|
196
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
196
197
|
* @since 1.0.0
|
|
197
198
|
* @version 1.0.0
|
|
198
199
|
*
|
|
199
|
-
* @param {
|
|
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@
|
|
228
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
228
229
|
* @since 1.0.6
|
|
229
230
|
* @version 1.1.0
|
|
230
231
|
*
|
|
231
|
-
* @param {
|
|
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@
|
|
241
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
241
242
|
* @since 1.0.0
|
|
242
|
-
* @version 1.
|
|
243
|
+
* @version 1.4.0
|
|
243
244
|
*
|
|
244
|
-
* @param {Object|
|
|
245
|
+
* @param {Function|Object|string} model_param
|
|
245
246
|
*/
|
|
246
|
-
Document.setStatic(function getDocumentClass(
|
|
247
|
+
Document.setStatic(function getDocumentClass(model_param) {
|
|
247
248
|
|
|
248
|
-
if (!
|
|
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
|
|
253
|
+
let model = typeof model_param == 'function' ? model_param : alchemy.getModel(model_param, false);
|
|
253
254
|
|
|
254
|
-
if (
|
|
255
|
-
|
|
256
|
-
}
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
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
|
-
|
|
263
|
-
let document_name = model_name;
|
|
263
|
+
let model_name = model.model_name;
|
|
264
264
|
|
|
265
|
-
if (class_cache.has(
|
|
266
|
-
return class_cache.get(
|
|
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
|
|
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.
|
|
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
|
|
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 {
|
|
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@
|
|
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 {
|
|
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@
|
|
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@
|
|
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@
|
|
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@
|
|
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@
|
|
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@
|
|
558
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
548
559
|
* @since 1.1.0
|
|
549
560
|
* @version 1.1.0
|
|
550
561
|
*
|
|
551
|
-
* @type {
|
|
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@
|
|
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@
|
|
610
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
600
611
|
* @since 1.0.6
|
|
601
612
|
* @version 1.1.0
|
|
602
613
|
*
|
|
603
|
-
* @param {
|
|
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
|
|
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 {
|
|
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
|
|
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
|
|
679
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
669
680
|
* @since 1.3.13
|
|
670
681
|
* @version 1.3.14
|
|
671
682
|
*
|
|
672
|
-
* @return {
|
|
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
|
|
697
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
687
698
|
* @since 1.3.13
|
|
688
699
|
* @version 1.3.14
|
|
689
700
|
*
|
|
690
|
-
* @return {
|
|
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
|
|
810
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
800
811
|
* @since 1.3.10
|
|
801
812
|
* @version 1.3.10
|
|
802
813
|
*
|
|
803
|
-
* @param {
|
|
804
|
-
* @param {
|
|
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
|
|
835
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
825
836
|
* @since 1.3.0
|
|
826
837
|
* @version 1.3.10
|
|
827
838
|
*
|
|
828
|
-
* @param {
|
|
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
|
|
850
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
840
851
|
* @since 1.3.10
|
|
841
852
|
* @version 1.3.10
|
|
842
853
|
*
|
|
843
|
-
* @param {
|
|
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@
|
|
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
|
|
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@
|
|
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
|
|
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
|
|
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
|
|
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
|
|
1392
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
1382
1393
|
* @since 1.0.4
|
|
1383
1394
|
* @version 1.1.0
|
|
1384
1395
|
*
|
|
1385
|
-
* @param {
|
|
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
|
|
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
|
|
1426
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
1416
1427
|
* @since 1.0.4
|
|
1417
1428
|
* @version 1.0.4
|
|
1418
1429
|
*
|
|
1419
|
-
* @return {
|
|
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
|
|
1448
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
1438
1449
|
* @since 1.0.4
|
|
1439
1450
|
* @version 1.0.4
|
|
1440
1451
|
*
|
|
1441
|
-
* @return {
|
|
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
|
|
1462
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
1452
1463
|
* @since 1.0.5
|
|
1453
1464
|
* @version 1.0.5
|
|
1454
1465
|
*
|
|
1455
|
-
* @param {
|
|
1466
|
+
* @param {string} name The field name
|
|
1456
1467
|
*
|
|
1457
|
-
* @return {
|
|
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
|
|
1477
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
1467
1478
|
* @since 1.0.4
|
|
1468
1479
|
* @version 1.3.0
|
|
1469
1480
|
*
|
|
1470
|
-
* @param {
|
|
1481
|
+
* @param {string} name The optional field name
|
|
1471
1482
|
*
|
|
1472
|
-
* @return {
|
|
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
|
|
1552
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
1542
1553
|
* @since 1.1.0
|
|
1543
1554
|
* @version 1.1.0
|
|
1544
1555
|
*
|
|
1545
|
-
* @return {
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
1699
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
1689
1700
|
* @since 1.0.6
|
|
1690
1701
|
* @version 1.0.6
|
|
1691
1702
|
*
|