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
package/lib/class/document.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
const Stream = alchemy.use('stream'),
|
|
2
|
+
zlib = alchemy.use('zlib'),
|
|
3
|
+
fs = alchemy.use('fs');
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* The Document class
|
|
7
7
|
*
|
|
8
8
|
* @constructor
|
|
9
9
|
*
|
|
10
|
-
* @author Jelle De Loecker
|
|
10
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
11
11
|
* @since 0.2.0
|
|
12
12
|
* @version 1.1.0
|
|
13
13
|
*
|
|
@@ -25,70 +25,57 @@ var Document = Function.inherits('Alchemy.Base', 'Alchemy.Document', function Do
|
|
|
25
25
|
/**
|
|
26
26
|
* Create document class for specific model
|
|
27
27
|
*
|
|
28
|
-
* @author Jelle De Loecker <jelle@
|
|
28
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
29
29
|
* @since 0.2.0
|
|
30
|
-
* @version 1.0
|
|
30
|
+
* @version 1.4.0
|
|
31
31
|
*
|
|
32
|
-
* @param {Model|
|
|
32
|
+
* @param {Model|string} model_param
|
|
33
33
|
*/
|
|
34
34
|
Document.setStatic(function getDocumentClass(model_param) {
|
|
35
35
|
|
|
36
|
-
var doc_constructor,
|
|
37
|
-
document_name,
|
|
38
|
-
parent_path,
|
|
39
|
-
model_name,
|
|
40
|
-
namespace,
|
|
41
|
-
doc_path,
|
|
42
|
-
DocClass,
|
|
43
|
-
model,
|
|
44
|
-
alias;
|
|
45
|
-
|
|
46
36
|
if (!model_param) {
|
|
47
37
|
throw new Error('No model name was given, can not get Document class');
|
|
48
38
|
}
|
|
49
39
|
|
|
50
|
-
|
|
51
|
-
model = model_param;
|
|
52
|
-
} else {
|
|
53
|
-
model = Model.get(model_param, false);
|
|
54
|
-
}
|
|
40
|
+
let model = typeof model_param == 'function' ? model_param : Model.get(model_param, false);
|
|
55
41
|
|
|
56
42
|
if (!model) {
|
|
57
43
|
throw new Error('There is no model named "' + model_param + '"');
|
|
58
44
|
}
|
|
59
45
|
|
|
60
|
-
//
|
|
61
|
-
|
|
62
|
-
// This happens when we need to do a setDocumentMethod
|
|
63
|
-
if (model.prototype.name) {
|
|
64
|
-
model_name = model.prototype.name;
|
|
65
|
-
} else {
|
|
66
|
-
model_name = model.name;
|
|
67
|
-
}
|
|
46
|
+
// Model name like "System_Task" or "User"
|
|
47
|
+
let model_name = model.model_name || model.name;
|
|
68
48
|
|
|
69
|
-
// Make sure we got a model name
|
|
70
49
|
if (!model_name) {
|
|
71
50
|
throw new Error('Tried to get nameless document class');
|
|
72
51
|
}
|
|
73
52
|
|
|
74
|
-
// Get the namespace
|
|
75
|
-
namespace = 'Alchemy.Document';
|
|
53
|
+
// Get the Document namespace
|
|
54
|
+
let namespace = 'Alchemy.Document';
|
|
55
|
+
|
|
56
|
+
let model_namespace = model.model_namespace;
|
|
57
|
+
|
|
58
|
+
if (model_namespace) {
|
|
59
|
+
namespace += '.' + model_namespace;
|
|
60
|
+
}
|
|
76
61
|
|
|
77
|
-
//
|
|
78
|
-
document_name = model.name;
|
|
62
|
+
// The name of the document class will be the same as the name of the model
|
|
63
|
+
let document_name = model.name;
|
|
79
64
|
|
|
80
|
-
doc_path = namespace + '.' + document_name;
|
|
65
|
+
let doc_path = namespace + '.' + document_name;
|
|
81
66
|
|
|
82
67
|
// Get the document class
|
|
83
|
-
DocClass = Object.path(Classes, doc_path);
|
|
68
|
+
let DocClass = Object.path(Classes, doc_path);
|
|
84
69
|
|
|
85
70
|
if (DocClass == null) {
|
|
86
71
|
|
|
87
72
|
// Create the document constructor function
|
|
88
|
-
doc_constructor = Function.create(document_name, function
|
|
89
|
-
|
|
73
|
+
let doc_constructor = Function.create(document_name, function DocumentConstructor(data, options) {
|
|
74
|
+
DocumentConstructor.super.call(this, data, options);
|
|
90
75
|
});
|
|
91
76
|
|
|
77
|
+
let parent_path;
|
|
78
|
+
|
|
92
79
|
if (!model.super || model.super.name == 'Model' || !model.super.Document) {
|
|
93
80
|
parent_path = 'Alchemy.Document.Document';
|
|
94
81
|
} else {
|
|
@@ -101,6 +88,9 @@ Document.setStatic(function getDocumentClass(model_param) {
|
|
|
101
88
|
DocClass = Function.inherits(parent_path, doc_constructor);
|
|
102
89
|
}
|
|
103
90
|
|
|
91
|
+
// Set a reference to the Model class
|
|
92
|
+
DocClass.Model = model;
|
|
93
|
+
|
|
104
94
|
// Set the getter for this document alias itself
|
|
105
95
|
DocClass.setAliasGetter(model_name);
|
|
106
96
|
|
|
@@ -110,13 +100,12 @@ Document.setStatic(function getDocumentClass(model_param) {
|
|
|
110
100
|
// Set the path to this document
|
|
111
101
|
DocClass.setProperty('path_to_class', doc_path);
|
|
112
102
|
|
|
103
|
+
let alias;
|
|
104
|
+
|
|
113
105
|
// Set association getters
|
|
114
106
|
for (alias in model.schema.associations) {
|
|
115
107
|
DocClass.setAliasGetter(alias);
|
|
116
108
|
}
|
|
117
|
-
|
|
118
|
-
// Set a reference to the Model class
|
|
119
|
-
DocClass.Model = model;
|
|
120
109
|
}
|
|
121
110
|
|
|
122
111
|
return DocClass;
|
|
@@ -125,43 +114,33 @@ Document.setStatic(function getDocumentClass(model_param) {
|
|
|
125
114
|
/**
|
|
126
115
|
* Get the client-side document class
|
|
127
116
|
*
|
|
128
|
-
* @author Jelle De Loecker <jelle@
|
|
117
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
129
118
|
* @since 1.0.0
|
|
130
|
-
* @version 1.
|
|
131
|
-
*
|
|
132
|
-
* @param {String} model_name
|
|
119
|
+
* @version 1.4.0
|
|
133
120
|
*/
|
|
134
|
-
Document.setStatic(function getClientDocumentClass(
|
|
135
|
-
|
|
136
|
-
if (!model_name) {
|
|
137
|
-
model_name = this.prototype.$model_name;
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
return Classes.Alchemy.Client.Document.Document.getDocumentClass(model_name);
|
|
121
|
+
Document.setStatic(function getClientDocumentClass() {
|
|
122
|
+
return Classes.Alchemy.Client.Document.Document.getDocumentClass(this.Model);
|
|
141
123
|
});
|
|
142
124
|
|
|
143
125
|
/**
|
|
144
126
|
* unDry an object
|
|
145
127
|
*
|
|
146
|
-
* @author Jelle De Loecker
|
|
128
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
147
129
|
* @since 1.0.0
|
|
148
130
|
* @version 1.0.6
|
|
149
131
|
*
|
|
150
132
|
* @param {Object} obj
|
|
151
|
-
* @param {
|
|
133
|
+
* @param {boolean|string} cloned
|
|
152
134
|
*
|
|
153
135
|
* @return {Document}
|
|
154
136
|
*/
|
|
155
137
|
Document.setStatic(function unDry(obj, cloned) {
|
|
156
138
|
|
|
157
|
-
var DocClass,
|
|
158
|
-
result;
|
|
159
|
-
|
|
160
139
|
// Get the document class
|
|
161
|
-
DocClass = this.getDocumentClass(obj.$model_name);
|
|
140
|
+
const DocClass = this.getDocumentClass(obj.$model_name);
|
|
162
141
|
|
|
163
142
|
// Create a new instance, without constructing it yet
|
|
164
|
-
result = Object.create(DocClass.prototype);
|
|
143
|
+
const result = Object.create(DocClass.prototype);
|
|
165
144
|
|
|
166
145
|
// Restore the attributes object if there is one
|
|
167
146
|
if (obj.$_attributes) {
|
|
@@ -185,7 +164,7 @@ Document.setStatic(function unDry(obj, cloned) {
|
|
|
185
164
|
* @since 1.3.21
|
|
186
165
|
* @version 1.3.21
|
|
187
166
|
*
|
|
188
|
-
* @param {
|
|
167
|
+
* @param {string} name Name of the property
|
|
189
168
|
* @param {Function} getter Optional getter function
|
|
190
169
|
* @param {Function} setter Optional setter function
|
|
191
170
|
*/
|
|
@@ -208,11 +187,11 @@ Document.setStatic(function setComputedFieldGetter(name) {
|
|
|
208
187
|
/**
|
|
209
188
|
* Set the getter for this field
|
|
210
189
|
*
|
|
211
|
-
* @author Jelle De Loecker <jelle@
|
|
190
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
212
191
|
* @since 0.2.0
|
|
213
192
|
* @version 1.0.4
|
|
214
193
|
*
|
|
215
|
-
* @param {
|
|
194
|
+
* @param {string} name Name of the property
|
|
216
195
|
* @param {Function} getter Optional getter function
|
|
217
196
|
* @param {Function} setter Optional setter function
|
|
218
197
|
*/
|
|
@@ -248,11 +227,11 @@ Document.setStatic(function setFieldGetter(name, getter, setter) {
|
|
|
248
227
|
/**
|
|
249
228
|
* Set the getter for an alias
|
|
250
229
|
*
|
|
251
|
-
* @author Jelle De Loecker <jelle@
|
|
230
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
252
231
|
* @since 0.2.0
|
|
253
232
|
* @version 0.4.0
|
|
254
233
|
*
|
|
255
|
-
* @param {
|
|
234
|
+
* @param {string} name
|
|
256
235
|
*/
|
|
257
236
|
Document.setStatic(function setAliasGetter(name) {
|
|
258
237
|
|
|
@@ -280,13 +259,13 @@ Document.setStatic(function setAliasGetter(name) {
|
|
|
280
259
|
/**
|
|
281
260
|
* Is the given argument a Document?
|
|
282
261
|
*
|
|
283
|
-
* @author Jelle De Loecker <jelle@
|
|
262
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
284
263
|
* @since 1.0.5
|
|
285
264
|
* @version 1.0.5
|
|
286
265
|
*
|
|
287
266
|
* @param {Object} obj
|
|
288
267
|
*
|
|
289
|
-
* @return {
|
|
268
|
+
* @return {boolean}
|
|
290
269
|
*/
|
|
291
270
|
Document.setStatic(function isDocument(obj) {
|
|
292
271
|
|
|
@@ -309,7 +288,7 @@ Document.setStatic(function isDocument(obj) {
|
|
|
309
288
|
/**
|
|
310
289
|
* Get the model instance
|
|
311
290
|
*
|
|
312
|
-
* @author Jelle De Loecker <jelle@
|
|
291
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
313
292
|
* @since 0.2.0
|
|
314
293
|
* @version 1.0.0
|
|
315
294
|
*/
|
|
@@ -325,7 +304,7 @@ Document.setProperty(function $model() {
|
|
|
325
304
|
/**
|
|
326
305
|
* Get the conduit instance
|
|
327
306
|
*
|
|
328
|
-
* @author Jelle De Loecker <jelle@
|
|
307
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
329
308
|
* @since 0.3.3
|
|
330
309
|
* @version 1.2.7
|
|
331
310
|
*/
|
|
@@ -351,7 +330,7 @@ Document.setProperty(function conduit() {
|
|
|
351
330
|
* Clone this document
|
|
352
331
|
* @todo: more speed, custom properties, singularized?
|
|
353
332
|
*
|
|
354
|
-
* @author Jelle De Loecker <jelle@
|
|
333
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
355
334
|
* @since 0.2.0
|
|
356
335
|
* @version 0.2.0
|
|
357
336
|
*/
|
|
@@ -362,7 +341,7 @@ Document.setMethod(function clone() {
|
|
|
362
341
|
/**
|
|
363
342
|
* Clone this document for JSON-dry
|
|
364
343
|
*
|
|
365
|
-
* @author Jelle De Loecker <jelle@
|
|
344
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
366
345
|
* @since 0.2.0
|
|
367
346
|
* @version 1.0.7
|
|
368
347
|
*
|
|
@@ -393,7 +372,7 @@ Document.setMethod(function dryClone(wm, custom_method) {
|
|
|
393
372
|
/**
|
|
394
373
|
* Return an object for json-drying this document
|
|
395
374
|
*
|
|
396
|
-
* @author Jelle De Loecker
|
|
375
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
397
376
|
* @since 1.0.4
|
|
398
377
|
* @version 1.0.4
|
|
399
378
|
*
|
|
@@ -415,7 +394,7 @@ Document.setMethod(function toDry() {
|
|
|
415
394
|
/**
|
|
416
395
|
* Simplify the object for Hawkejs
|
|
417
396
|
*
|
|
418
|
-
* @author Jelle De Loecker
|
|
397
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
419
398
|
* @since 0.2.0
|
|
420
399
|
* @version 1.2.7
|
|
421
400
|
*
|
|
@@ -490,7 +469,7 @@ Document.setMethod(function keepPrivateFields(value) {
|
|
|
490
469
|
/**
|
|
491
470
|
* Return the basic record for JSON
|
|
492
471
|
*
|
|
493
|
-
* @author Jelle De Loecker <jelle@
|
|
472
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
494
473
|
* @since 0.2.0
|
|
495
474
|
* @version 0.2.0
|
|
496
475
|
*/
|
|
@@ -501,7 +480,7 @@ Document.setMethod(function toJSON() {
|
|
|
501
480
|
/**
|
|
502
481
|
* Return the array to util.inspect
|
|
503
482
|
*
|
|
504
|
-
* @author Jelle De Loecker <jelle@
|
|
483
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
505
484
|
* @since 0.2.0
|
|
506
485
|
* @version 0.2.0
|
|
507
486
|
*/
|
|
@@ -512,12 +491,12 @@ Document.setMethod(function inspect(depth) {
|
|
|
512
491
|
/**
|
|
513
492
|
* Get a record field property
|
|
514
493
|
*
|
|
515
|
-
* @author Jelle De Loecker <jelle@
|
|
494
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
516
495
|
* @since 0.2.0
|
|
517
496
|
* @version 1.0.0
|
|
518
497
|
*
|
|
519
|
-
* @param {
|
|
520
|
-
* @param {
|
|
498
|
+
* @param {string} alias Optional alias
|
|
499
|
+
* @param {string} field
|
|
521
500
|
*
|
|
522
501
|
* @return {Mixed}
|
|
523
502
|
*/
|
|
@@ -536,11 +515,11 @@ Document.setMethod(function get(alias, field) {
|
|
|
536
515
|
/**
|
|
537
516
|
* Set an alias object
|
|
538
517
|
*
|
|
539
|
-
* @author Jelle De Loecker <jelle@
|
|
518
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
540
519
|
* @since 0.2.0
|
|
541
520
|
* @version 1.0.0
|
|
542
521
|
*
|
|
543
|
-
* @param {
|
|
522
|
+
* @param {string} alias
|
|
544
523
|
* @param {Object} obj
|
|
545
524
|
*
|
|
546
525
|
* @return {Mixed}
|
|
@@ -562,7 +541,7 @@ Document.setMethod(function setAlias(alias, obj) {
|
|
|
562
541
|
/**
|
|
563
542
|
* Alias for save
|
|
564
543
|
*
|
|
565
|
-
* @author Jelle De Loecker <jelle@
|
|
544
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
566
545
|
* @since 0.2.0
|
|
567
546
|
* @version 0.2.0
|
|
568
547
|
*
|
|
@@ -576,7 +555,7 @@ Document.setMethod(function update(data, callback) {
|
|
|
576
555
|
/**
|
|
577
556
|
* Remove this document
|
|
578
557
|
*
|
|
579
|
-
* @author Jelle De Loecker <jelle@
|
|
558
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
580
559
|
* @since 0.4.1
|
|
581
560
|
* @version 1.1.0
|
|
582
561
|
*
|
|
@@ -600,9 +579,9 @@ Document.setMethod(function remove(callback) {
|
|
|
600
579
|
*
|
|
601
580
|
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
602
581
|
* @since 1.2.3
|
|
603
|
-
* @version 1.
|
|
582
|
+
* @version 1.4.0
|
|
604
583
|
*
|
|
605
|
-
* @param {Criteria|
|
|
584
|
+
* @param {Criteria|string} criteria
|
|
606
585
|
*
|
|
607
586
|
* @return {Criteria}
|
|
608
587
|
*/
|
|
@@ -625,9 +604,9 @@ Document.setMethod(function preparePopulationCriteria(criteria) {
|
|
|
625
604
|
}
|
|
626
605
|
|
|
627
606
|
if (!Classes.Alchemy.Criteria.Criteria.isCriteria(criteria)) {
|
|
628
|
-
let new_criteria = new Classes.Alchemy.Criteria(model);
|
|
607
|
+
let new_criteria = new Classes.Alchemy.Criteria.Model(model);
|
|
629
608
|
new_criteria.model = model;
|
|
630
|
-
new_criteria.
|
|
609
|
+
new_criteria.applyConditions(criteria);
|
|
631
610
|
criteria = new_criteria;
|
|
632
611
|
}
|
|
633
612
|
|
|
@@ -648,7 +627,7 @@ Document.setMethod(function preparePopulationCriteria(criteria) {
|
|
|
648
627
|
/**
|
|
649
628
|
* Add associated data to this record
|
|
650
629
|
*
|
|
651
|
-
* @author Jelle De Loecker <jelle@
|
|
630
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
652
631
|
* @since 0.2.0
|
|
653
632
|
* @version 1.2.3
|
|
654
633
|
*
|
|
@@ -672,13 +651,13 @@ Document.setMethod(['populate', 'addAssociatedData'], function addAssociatedData
|
|
|
672
651
|
/**
|
|
673
652
|
* Get the display field value
|
|
674
653
|
*
|
|
675
|
-
* @author Jelle De Loecker
|
|
654
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
676
655
|
* @since 0.3.0
|
|
677
656
|
* @version 1.3.3
|
|
678
657
|
*
|
|
679
658
|
* @param {Object} options
|
|
680
659
|
*
|
|
681
|
-
* @return {
|
|
660
|
+
* @return {string|undefined}
|
|
682
661
|
*/
|
|
683
662
|
Document.setMethod(function getDisplayFieldValue(options = {}) {
|
|
684
663
|
|
|
@@ -735,7 +714,7 @@ Document.setMethod(async function getPreviousRevision() {
|
|
|
735
714
|
* @since 1.1.0
|
|
736
715
|
* @version 1.1.0
|
|
737
716
|
*
|
|
738
|
-
* @param {
|
|
717
|
+
* @param {number} revisions
|
|
739
718
|
*
|
|
740
719
|
* @return {Pledge<DocumentList>}
|
|
741
720
|
*/
|
|
@@ -766,7 +745,7 @@ Document.setMethod(function getRevisions(revisions) {
|
|
|
766
745
|
/**
|
|
767
746
|
* Revert to the given revision id
|
|
768
747
|
*
|
|
769
|
-
* @author Jelle De Loecker <jelle@
|
|
748
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
770
749
|
* @since 1.1.0
|
|
771
750
|
* @version 1.1.0
|
|
772
751
|
*
|
|
@@ -805,11 +784,11 @@ Document.setMethod(async function revertTo(revision_id) {
|
|
|
805
784
|
/**
|
|
806
785
|
* Revert this document
|
|
807
786
|
*
|
|
808
|
-
* @author Jelle De Loecker <jelle@
|
|
787
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
809
788
|
* @since 1.0.3
|
|
810
789
|
* @version 1.3.4
|
|
811
790
|
*
|
|
812
|
-
* @param {
|
|
791
|
+
* @param {number} revisions
|
|
813
792
|
*
|
|
814
793
|
* @return {Pledge}
|
|
815
794
|
*/
|
|
@@ -864,7 +843,7 @@ Document.setMethod(function revert(revisions) {
|
|
|
864
843
|
/**
|
|
865
844
|
* Export this document by pushing to the writable stream
|
|
866
845
|
*
|
|
867
|
-
* @author Jelle De Loecker <jelle@
|
|
846
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
868
847
|
* @since 1.0.5
|
|
869
848
|
* @version 1.0.5
|
|
870
849
|
*
|
|
@@ -927,7 +906,7 @@ Document.setMethod(function exportToStream(output) {
|
|
|
927
906
|
/**
|
|
928
907
|
* Import a document from a gzipped buffer
|
|
929
908
|
*
|
|
930
|
-
* @author Jelle De Loecker <jelle@
|
|
909
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
931
910
|
* @since 1.0.5
|
|
932
911
|
* @version 1.0.5
|
|
933
912
|
*
|
|
@@ -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
|
*
|
|
@@ -18,7 +18,7 @@ var DocumentList = Function.inherits(['Alchemy.Base', 'Array'], 'Alchemy', funct
|
|
|
18
18
|
/**
|
|
19
19
|
* unDry an object
|
|
20
20
|
*
|
|
21
|
-
* @author Jelle De Loecker
|
|
21
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
22
22
|
* @since 1.0.3
|
|
23
23
|
* @version 1.0.3
|
|
24
24
|
*
|
|
@@ -39,7 +39,7 @@ DocumentList.setStatic(function unDry(obj) {
|
|
|
39
39
|
/**
|
|
40
40
|
* Clone this list
|
|
41
41
|
*
|
|
42
|
-
* @author Jelle De Loecker <jelle@
|
|
42
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
43
43
|
* @since 1.0.3
|
|
44
44
|
* @version 1.0.3
|
|
45
45
|
*
|
|
@@ -61,7 +61,7 @@ DocumentList.setMethod(function clone() {
|
|
|
61
61
|
/**
|
|
62
62
|
* Add associated data to all these records
|
|
63
63
|
*
|
|
64
|
-
* @author Jelle De Loecker <jelle@
|
|
64
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
65
65
|
* @since 1.1.0
|
|
66
66
|
* @version 1.2.3
|
|
67
67
|
*
|
|
@@ -88,7 +88,7 @@ DocumentList.setMethod(['populate', 'addAssociatedData'], function addAssociated
|
|
|
88
88
|
/**
|
|
89
89
|
* Get next page
|
|
90
90
|
*
|
|
91
|
-
* @author Jelle De Loecker <jelle@
|
|
91
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
92
92
|
* @since 0.4.0
|
|
93
93
|
* @version 1.0.3
|
|
94
94
|
*
|
package/lib/class/element.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Custom alchemy elements
|
|
3
3
|
*
|
|
4
|
-
* @author Jelle De Loecker
|
|
4
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
5
5
|
* @since 1.0.0
|
|
6
6
|
* @version 1.0.0
|
|
7
7
|
*/
|
|
@@ -10,7 +10,7 @@ const Element = Function.inherits('Hawkejs.Element', 'Alchemy.Element', 'Element
|
|
|
10
10
|
/**
|
|
11
11
|
* The default element prefix (when element contains no hyphen) is "al"
|
|
12
12
|
*
|
|
13
|
-
* @author Jelle De Loecker
|
|
13
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
14
14
|
* @since 1.0.0
|
|
15
15
|
* @version 1.0.0
|
|
16
16
|
*/
|
|
@@ -19,11 +19,11 @@ Function.getNamespace('Alchemy.Element').setStatic('default_element_prefix', 'al
|
|
|
19
19
|
/**
|
|
20
20
|
* Get the current URL
|
|
21
21
|
*
|
|
22
|
-
* @author Jelle De Loecker
|
|
22
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
23
23
|
* @since 1.1.3
|
|
24
24
|
* @version 1.2.5
|
|
25
25
|
*
|
|
26
|
-
* @return
|
|
26
|
+
* @return {RURL}
|
|
27
27
|
*/
|
|
28
28
|
Element.setMethod(function getCurrentUrl() {
|
|
29
29
|
return this.hawkejs_renderer?.helpers?.Router?.current_url;
|
|
@@ -32,15 +32,15 @@ Element.setMethod(function getCurrentUrl() {
|
|
|
32
32
|
/**
|
|
33
33
|
* Get a resource
|
|
34
34
|
*
|
|
35
|
-
* @author Jelle De Loecker
|
|
35
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
36
36
|
* @since 1.1.3
|
|
37
37
|
* @version 1.1.3
|
|
38
38
|
*
|
|
39
|
-
* @param
|
|
40
|
-
* @param
|
|
41
|
-
* @param
|
|
39
|
+
* @param {Object} options
|
|
40
|
+
* @param {Object} data
|
|
41
|
+
* @param {Function} callback
|
|
42
42
|
*
|
|
43
|
-
* @return
|
|
43
|
+
* @return {Pledge}
|
|
44
44
|
*/
|
|
45
45
|
Element.setMethod(function getResource(options, data, callback) {
|
|
46
46
|
|
|
@@ -60,14 +60,14 @@ Element.setMethod(function getResource(options, data, callback) {
|
|
|
60
60
|
/**
|
|
61
61
|
* Get a client-side model, attach a conduit if possible
|
|
62
62
|
*
|
|
63
|
-
* @author Jelle De Loecker
|
|
63
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
64
64
|
* @since 1.0.4
|
|
65
65
|
* @version 1.0.4
|
|
66
66
|
*
|
|
67
|
-
* @param
|
|
68
|
-
* @param
|
|
67
|
+
* @param {string} model_name
|
|
68
|
+
* @param {Object} options
|
|
69
69
|
*
|
|
70
|
-
* @return
|
|
70
|
+
* @return {Model}
|
|
71
71
|
*/
|
|
72
72
|
Element.setMethod(function getModel(model_name, options) {
|
|
73
73
|
|
|
@@ -105,14 +105,14 @@ Element.setMethod(function getModel(model_name, options) {
|
|
|
105
105
|
/**
|
|
106
106
|
* Default translation implementation
|
|
107
107
|
*
|
|
108
|
-
* @author Jelle De Loecker
|
|
108
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
109
109
|
* @since 1.2.4
|
|
110
110
|
* @version 1.2.4
|
|
111
111
|
*
|
|
112
|
-
* @param
|
|
113
|
-
* @param
|
|
112
|
+
* @param {string} key
|
|
113
|
+
* @param {Object} parameters
|
|
114
114
|
*
|
|
115
|
-
* @return
|
|
115
|
+
* @return {string}
|
|
116
116
|
*/
|
|
117
117
|
Element.setMethod(function __(key, parameters) {
|
|
118
118
|
return key;
|
package/lib/class/error.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* @constructor
|
|
5
5
|
*
|
|
6
|
-
* @author Jelle De Loecker
|
|
6
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
7
7
|
* @since 1.1.0
|
|
8
8
|
* @version 1.1.0
|
|
9
9
|
*/
|
|
@@ -14,11 +14,11 @@ const AlchemyError = Function.inherits('Develry.Error', 'Alchemy.Error', functio
|
|
|
14
14
|
/**
|
|
15
15
|
* Return string interpretation of this error
|
|
16
16
|
*
|
|
17
|
-
* @author Jelle De Loecker
|
|
17
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
18
18
|
* @since 1.1.0
|
|
19
19
|
* @version 1.1.0
|
|
20
20
|
*
|
|
21
|
-
* @return {
|
|
21
|
+
* @return {string}
|
|
22
22
|
*/
|
|
23
23
|
AlchemyError.setMethod(function toString() {
|
|
24
24
|
let result = this.name + ' Error';
|