@journeyapps-labs/reactor-mod-data-browser 2.2.0 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (112) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/@types/core/AbstractConnection.d.ts +2 -0
  3. package/dist/@types/core/SchemaModelDefinition.d.ts +4 -1
  4. package/dist/@types/core/SchemaModelObject.d.ts +15 -8
  5. package/dist/@types/core/query/AbstractQuery.d.ts +5 -10
  6. package/dist/@types/core/query/AbstractSerializableQuery.d.ts +11 -0
  7. package/dist/@types/core/query/Page.d.ts +2 -7
  8. package/dist/@types/core/query/query-changed/ChangedModelQuery.d.ts +15 -0
  9. package/dist/@types/core/query/query-simple/SimplePage.d.ts +12 -0
  10. package/dist/@types/core/query/{SimpleQuery.d.ts → query-simple/SimpleQuery.d.ts} +8 -8
  11. package/dist/@types/core/query/widgets/BelongsToDisplayWidget.d.ts +1 -3
  12. package/dist/@types/core/query/widgets/CellDisplayWidget.d.ts +1 -2
  13. package/dist/@types/core/query/widgets/ColumnDisplayWidget.d.ts +1 -0
  14. package/dist/@types/core/query/widgets/SmartBelongsToDisplayWidget.d.ts +10 -0
  15. package/dist/@types/core/query/widgets/SmartCellDisplayWidget.d.ts +7 -0
  16. package/dist/@types/core/query/widgets/SmartColumnWidget.d.ts +2 -1
  17. package/dist/@types/entities/QueryEntityDefinition.d.ts +3 -3
  18. package/dist/@types/forms/SchemaModelForm.d.ts +32 -1
  19. package/dist/@types/forms/TypeEngine.d.ts +20 -0
  20. package/dist/@types/forms/inputs/DirtyWrapperInput.d.ts +15 -0
  21. package/dist/@types/index.d.ts +1 -1
  22. package/dist/@types/panels/model/ModelPanelFactory.d.ts +2 -2
  23. package/dist/@types/panels/query/QueryPanelFactory.d.ts +2 -1
  24. package/dist/DataBrowserModule.js +2 -0
  25. package/dist/DataBrowserModule.js.map +1 -1
  26. package/dist/actions/schema-definitions/CreateModelAction.js +2 -1
  27. package/dist/actions/schema-definitions/CreateModelAction.js.map +1 -1
  28. package/dist/actions/schema-definitions/QuerySchemaModelAction.js +1 -1
  29. package/dist/actions/schema-definitions/QuerySchemaModelAction.js.map +1 -1
  30. package/dist/core/AbstractConnection.js +15 -0
  31. package/dist/core/AbstractConnection.js.map +1 -1
  32. package/dist/core/SchemaModelDefinition.js +52 -13
  33. package/dist/core/SchemaModelDefinition.js.map +1 -1
  34. package/dist/core/SchemaModelObject.js +90 -50
  35. package/dist/core/SchemaModelObject.js.map +1 -1
  36. package/dist/core/query/AbstractQuery.js +2 -8
  37. package/dist/core/query/AbstractQuery.js.map +1 -1
  38. package/dist/core/query/AbstractSerializableQuery.js +13 -0
  39. package/dist/core/query/AbstractSerializableQuery.js.map +1 -0
  40. package/dist/core/query/Page.js +6 -15
  41. package/dist/core/query/Page.js.map +1 -1
  42. package/dist/core/query/query-changed/ChangedModelQuery.js +31 -0
  43. package/dist/core/query/query-changed/ChangedModelQuery.js.map +1 -0
  44. package/dist/core/query/query-simple/SimplePage.js +18 -0
  45. package/dist/core/query/query-simple/SimplePage.js.map +1 -0
  46. package/dist/core/query/{SimpleQuery.js → query-simple/SimpleQuery.js} +26 -25
  47. package/dist/core/query/query-simple/SimpleQuery.js.map +1 -0
  48. package/dist/core/query/widgets/BelongsToDisplayWidget.js +5 -16
  49. package/dist/core/query/widgets/BelongsToDisplayWidget.js.map +1 -1
  50. package/dist/core/query/widgets/CellDisplayWidget.js +11 -4
  51. package/dist/core/query/widgets/CellDisplayWidget.js.map +1 -1
  52. package/dist/core/query/widgets/ColumnDisplayWidget.js +3 -3
  53. package/dist/core/query/widgets/ColumnDisplayWidget.js.map +1 -1
  54. package/dist/core/query/widgets/SmartBelongsToDisplayWidget.js +29 -0
  55. package/dist/core/query/widgets/SmartBelongsToDisplayWidget.js.map +1 -0
  56. package/dist/core/query/widgets/SmartCellDisplayWidget.js +20 -0
  57. package/dist/core/query/widgets/SmartCellDisplayWidget.js.map +1 -0
  58. package/dist/core/query/widgets/SmartColumnWidget.js +11 -1
  59. package/dist/core/query/widgets/SmartColumnWidget.js.map +1 -1
  60. package/dist/entities/QueryEntityDefinition.js +3 -3
  61. package/dist/entities/QueryEntityDefinition.js.map +1 -1
  62. package/dist/entities/SchemaModelObjectEntityDefinition.js +28 -8
  63. package/dist/entities/SchemaModelObjectEntityDefinition.js.map +1 -1
  64. package/dist/forms/SchemaModelForm.js +153 -74
  65. package/dist/forms/SchemaModelForm.js.map +1 -1
  66. package/dist/forms/TypeEngine.js +135 -0
  67. package/dist/forms/TypeEngine.js.map +1 -0
  68. package/dist/forms/inputs/DirtyWrapperInput.js +72 -0
  69. package/dist/forms/inputs/DirtyWrapperInput.js.map +1 -0
  70. package/dist/index.js +1 -1
  71. package/dist/index.js.map +1 -1
  72. package/dist/panels/model/ModelPanelFactory.js +11 -7
  73. package/dist/panels/model/ModelPanelFactory.js.map +1 -1
  74. package/dist/panels/model/ModelPanelWidget.js +21 -4
  75. package/dist/panels/model/ModelPanelWidget.js.map +1 -1
  76. package/dist/panels/query/QueryPanelFactory.js +4 -0
  77. package/dist/panels/query/QueryPanelFactory.js.map +1 -1
  78. package/dist/panels/query/TableControlsWidget.js +42 -9
  79. package/dist/panels/query/TableControlsWidget.js.map +1 -1
  80. package/dist/tsconfig.tsbuildinfo +1 -1
  81. package/dist-module/bundle.js +64 -35
  82. package/dist-module/bundle.js.map +1 -1
  83. package/package.json +8 -6
  84. package/src/DataBrowserModule.ts +2 -0
  85. package/src/actions/schema-definitions/CreateModelAction.ts +2 -1
  86. package/src/actions/schema-definitions/QuerySchemaModelAction.ts +1 -1
  87. package/src/core/AbstractConnection.ts +18 -1
  88. package/src/core/SchemaModelDefinition.ts +57 -14
  89. package/src/core/SchemaModelObject.ts +62 -46
  90. package/src/core/query/AbstractQuery.ts +10 -21
  91. package/src/core/query/AbstractSerializableQuery.ts +23 -0
  92. package/src/core/query/Page.ts +6 -21
  93. package/src/core/query/query-changed/ChangedModelQuery.ts +35 -0
  94. package/src/core/query/query-simple/SimplePage.ts +29 -0
  95. package/src/core/query/{SimpleQuery.tsx → query-simple/SimpleQuery.tsx} +41 -39
  96. package/src/core/query/widgets/BelongsToDisplayWidget.tsx +6 -19
  97. package/src/core/query/widgets/CellDisplayWidget.tsx +24 -13
  98. package/src/core/query/widgets/ColumnDisplayWidget.tsx +12 -3
  99. package/src/core/query/widgets/SmartBelongsToDisplayWidget.tsx +46 -0
  100. package/src/core/query/widgets/SmartCellDisplayWidget.tsx +29 -0
  101. package/src/core/query/widgets/SmartColumnWidget.tsx +18 -2
  102. package/src/entities/QueryEntityDefinition.ts +6 -6
  103. package/src/entities/SchemaModelObjectEntityDefinition.ts +34 -8
  104. package/src/forms/SchemaModelForm.tsx +145 -96
  105. package/src/forms/TypeEngine.ts +160 -0
  106. package/src/forms/inputs/DirtyWrapperInput.tsx +75 -0
  107. package/src/index.ts +1 -1
  108. package/src/panels/model/ModelPanelFactory.tsx +11 -9
  109. package/src/panels/model/ModelPanelWidget.tsx +45 -9
  110. package/src/panels/query/QueryPanelFactory.tsx +5 -0
  111. package/src/panels/query/TableControlsWidget.tsx +85 -17
  112. package/dist/core/query/SimpleQuery.js.map +0 -1
@@ -1,3 +1,4 @@
1
+ import { JourneyAPIAdapter } from '@journeyapps/db';
1
2
  import { SchemaModelObject } from './SchemaModelObject';
2
3
  import { BaseObserver } from '@journeyapps-labs/common-utils';
3
4
  import { queue } from 'async';
@@ -10,30 +11,44 @@ export class SchemaModelDefinition extends BaseObserver {
10
11
  this.queue = queue(async (id) => {
11
12
  let collection = await this.getCollection();
12
13
  try {
13
- let model = await collection.first(id);
14
- if (model) {
15
- let object = new SchemaModelObject({
16
- model,
17
- definition: this
18
- });
19
- this.cache.set(id, object);
14
+ let models = await this.executeQuery(collection.where(`id = ?`, id));
15
+ if (models[0]) {
16
+ this.cache.set(id, models[0]);
20
17
  this.enqueued.delete(id);
21
- this.iterateListeners((cb) => { var _a; return (_a = cb.resolved) === null || _a === void 0 ? void 0 : _a.call(cb, { object }); });
18
+ this.iterateListeners((cb) => { var _a; return (_a = cb.resolved) === null || _a === void 0 ? void 0 : _a.call(cb, { object: models[0] }); });
22
19
  }
23
20
  else {
21
+ this.enqueued.delete(id);
24
22
  this.iterateListeners((cb) => { var _a; return (_a = cb.failed) === null || _a === void 0 ? void 0 : _a.call(cb, { object_id: id }); });
25
23
  }
26
24
  }
27
25
  catch (ex) {
26
+ this.enqueued.delete(id);
28
27
  this.iterateListeners((cb) => { var _a; return (_a = cb.failed) === null || _a === void 0 ? void 0 : _a.call(cb, { object_id: id }); });
29
28
  throw ex;
30
29
  }
31
30
  }, 6);
32
31
  }
33
- async resolve(id) {
34
- if (this.cache.has(id)) {
35
- return this.cache.get(id);
36
- }
32
+ async search(text) {
33
+ let collection = await this.getCollection();
34
+ let adapter = collection.adapter;
35
+ // @ts-ignore
36
+ let res = await adapter.apiPost(`${adapter.credentials.api4Url()}objects/${this.definition.name}/search.json`, {
37
+ query: text
38
+ });
39
+ return res.objects
40
+ .map((o) => {
41
+ return JourneyAPIAdapter.apiToInternalFormat(this.definition, o);
42
+ })
43
+ .map((o) => {
44
+ return new SchemaModelObject({
45
+ definition: this,
46
+ model: o,
47
+ adapter: collection.adapter
48
+ });
49
+ });
50
+ }
51
+ async load(id) {
37
52
  if (!this.enqueued.has(id)) {
38
53
  this.enqueued.add(id);
39
54
  this.queue.push(id);
@@ -55,6 +70,12 @@ export class SchemaModelDefinition extends BaseObserver {
55
70
  });
56
71
  });
57
72
  }
73
+ async resolve(id) {
74
+ if (this.cache.has(id)) {
75
+ return this.cache.get(id);
76
+ }
77
+ return this.load(id);
78
+ }
58
79
  get key() {
59
80
  return this.definition.name;
60
81
  }
@@ -70,6 +91,24 @@ export class SchemaModelDefinition extends BaseObserver {
70
91
  get definition() {
71
92
  return this.options.definition;
72
93
  }
94
+ async executeQuery(query) {
95
+ let collection = await this.getCollection();
96
+ let results = await collection.adapter.executeQuery(query);
97
+ return results.map((m) => {
98
+ if (!this.cache.has(m.id)) {
99
+ const model = new SchemaModelObject({
100
+ definition: this,
101
+ model: m,
102
+ adapter: collection.adapter
103
+ });
104
+ this.cache.set(m.id, model);
105
+ return model;
106
+ }
107
+ let model = this.cache.get(m.id);
108
+ model.setData(m);
109
+ return model;
110
+ });
111
+ }
73
112
  async getCollection() {
74
113
  const conn = await this.connection.getConnection();
75
114
  return conn[this.definition.name];
@@ -78,7 +117,7 @@ export class SchemaModelDefinition extends BaseObserver {
78
117
  const collection = await this.getCollection();
79
118
  return new SchemaModelObject({
80
119
  definition: this,
81
- model: collection.create()
120
+ adapter: collection.adapter
82
121
  });
83
122
  }
84
123
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SchemaModelDefinition.js","sourceRoot":"","sources":["../../src/core/SchemaModelDefinition.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SchemaModelDefinition.js","sourceRoot":"","sources":["../../src/core/SchemaModelDefinition.ts"],"names":[],"mappings":"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"}
@@ -1,70 +1,110 @@
1
1
  import { __classPrivateFieldGet, __classPrivateFieldSet, __esDecorate, __runInitializers } from "tslib";
2
- import { inject, MediaEngine } from '@journeyapps-labs/reactor-mod';
2
+ import { DatabaseObject } from '@journeyapps/db';
3
+ import { action, observable } from 'mobx';
3
4
  let SchemaModelObject = (() => {
4
- var _a, _SchemaModelObject_mediaEngine_accessor_storage;
5
- let _mediaEngine_decorators;
6
- let _mediaEngine_initializers = [];
7
- let _mediaEngine_extraInitializers = [];
5
+ var _a, _SchemaModelObject_data_accessor_storage, _SchemaModelObject_model_accessor_storage, _SchemaModelObject_updated_at_accessor_storage, _SchemaModelObject_patch_accessor_storage;
6
+ let _instanceExtraInitializers = [];
7
+ let _data_decorators;
8
+ let _data_initializers = [];
9
+ let _data_extraInitializers = [];
10
+ let _model_decorators;
11
+ let _model_initializers = [];
12
+ let _model_extraInitializers = [];
13
+ let _updated_at_decorators;
14
+ let _updated_at_initializers = [];
15
+ let _updated_at_extraInitializers = [];
16
+ let _patch_decorators;
17
+ let _patch_initializers = [];
18
+ let _patch_extraInitializers = [];
19
+ let _setData_decorators;
8
20
  return _a = class SchemaModelObject {
9
- get mediaEngine() { return __classPrivateFieldGet(this, _SchemaModelObject_mediaEngine_accessor_storage, "f"); }
10
- set mediaEngine(value) { __classPrivateFieldSet(this, _SchemaModelObject_mediaEngine_accessor_storage, value, "f"); }
21
+ get data() { return __classPrivateFieldGet(this, _SchemaModelObject_data_accessor_storage, "f"); }
22
+ set data(value) { __classPrivateFieldSet(this, _SchemaModelObject_data_accessor_storage, value, "f"); }
23
+ get model() { return __classPrivateFieldGet(this, _SchemaModelObject_model_accessor_storage, "f"); }
24
+ set model(value) { __classPrivateFieldSet(this, _SchemaModelObject_model_accessor_storage, value, "f"); }
25
+ get updated_at() { return __classPrivateFieldGet(this, _SchemaModelObject_updated_at_accessor_storage, "f"); }
26
+ set updated_at(value) { __classPrivateFieldSet(this, _SchemaModelObject_updated_at_accessor_storage, value, "f"); }
27
+ get patch() { return __classPrivateFieldGet(this, _SchemaModelObject_patch_accessor_storage, "f"); }
28
+ set patch(value) { __classPrivateFieldSet(this, _SchemaModelObject_patch_accessor_storage, value, "f"); }
11
29
  constructor(options) {
30
+ this.options = (__runInitializers(this, _instanceExtraInitializers), options);
31
+ _SchemaModelObject_data_accessor_storage.set(this, __runInitializers(this, _data_initializers, void 0));
32
+ _SchemaModelObject_model_accessor_storage.set(this, (__runInitializers(this, _data_extraInitializers), __runInitializers(this, _model_initializers, void 0)));
33
+ _SchemaModelObject_updated_at_accessor_storage.set(this, (__runInitializers(this, _model_extraInitializers), __runInitializers(this, _updated_at_initializers, void 0)));
34
+ _SchemaModelObject_patch_accessor_storage.set(this, (__runInitializers(this, _updated_at_extraInitializers), __runInitializers(this, _patch_initializers, void 0)));
35
+ __runInitializers(this, _patch_extraInitializers);
12
36
  this.options = options;
13
- _SchemaModelObject_mediaEngine_accessor_storage.set(this, __runInitializers(this, _mediaEngine_initializers, void 0));
14
- this._mediaCache = __runInitializers(this, _mediaEngine_extraInitializers);
15
- this._mediaCache = new Map();
16
- }
17
- get definition() {
18
- return this.options.definition;
19
- }
20
- get model() {
21
- return this.options.model;
37
+ if (options.model) {
38
+ this.setData(options.model);
39
+ }
40
+ this.patch = new Map();
22
41
  }
23
- async displayValue() {
42
+ async applyPatches() {
24
43
  if (!this.model) {
25
- return null;
26
- }
27
- let val = this.model.toString();
28
- if (val) {
29
- return val;
44
+ const collection = await this.definition.getCollection();
45
+ this.model = collection.create();
30
46
  }
31
- /*
32
- there are scenarios where the FormatStringScope has not yet completed setting up its state +
33
- parsing the format string directive. We therefore poll for a bit until we get the value. Ideally
34
- we need a better way to determine when the scope is ready, but could not find one yet.
35
- */
36
- for (let i = 0; i < 10; i++) {
37
- await new Promise((resolve) => setTimeout(resolve, 40));
38
- let val = this.model.toString();
39
- if (val) {
40
- return val;
47
+ for (let entry of this.patch.entries()) {
48
+ if (this.definition.definition.belongsTo[entry[0]]) {
49
+ this.model[entry[0]](entry[1].model);
50
+ }
51
+ else {
52
+ this.model[entry[0]] = entry[1];
41
53
  }
42
54
  }
43
- return null;
55
+ this.patch.clear();
56
+ }
57
+ async save() {
58
+ await this.definition.connection.batchSave([this]);
44
59
  }
45
- async getMedia(field) {
46
- if (this._mediaCache.has(field)) {
47
- return this._mediaCache.get(field);
60
+ clearEdits() {
61
+ this.patch.clear();
62
+ }
63
+ revert(field) {
64
+ this.patch.delete(field);
65
+ }
66
+ set(field, value) {
67
+ var _b;
68
+ if (((_b = this.model) === null || _b === void 0 ? void 0 : _b[field]) === value) {
69
+ this.patch.delete(field);
48
70
  }
49
- let media = this.model[field];
50
- if (!(media === null || media === void 0 ? void 0 : media.uploaded())) {
51
- return null;
71
+ else {
72
+ this.patch.set(field, value);
52
73
  }
53
- let url = new URL(media.url());
54
- let mediaObject = this.mediaEngine.getMediaTypeForPath(url.pathname).generateMedia({
55
- content: await media.toArrayBuffer(),
56
- name: media.id,
57
- uid: media.id
58
- });
59
- this._mediaCache.set(field, mediaObject);
60
- return mediaObject;
74
+ }
75
+ setData(data) {
76
+ this.data = data;
77
+ this.model = new DatabaseObject(this.options.adapter, this.definition.definition, data.id);
78
+ // @ts-ignore
79
+ this.model.resolve(data);
80
+ this.updated_at = new Date(data._updated_at);
81
+ }
82
+ async reload() {
83
+ await this.definition.load(this.id);
84
+ }
85
+ get definition() {
86
+ return this.options.definition;
87
+ }
88
+ get id() {
89
+ return this.data.id;
61
90
  }
62
91
  },
63
- _SchemaModelObject_mediaEngine_accessor_storage = new WeakMap(),
92
+ _SchemaModelObject_data_accessor_storage = new WeakMap(),
93
+ _SchemaModelObject_model_accessor_storage = new WeakMap(),
94
+ _SchemaModelObject_updated_at_accessor_storage = new WeakMap(),
95
+ _SchemaModelObject_patch_accessor_storage = new WeakMap(),
64
96
  (() => {
65
97
  const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
66
- _mediaEngine_decorators = [inject(MediaEngine)];
67
- __esDecorate(_a, null, _mediaEngine_decorators, { kind: "accessor", name: "mediaEngine", static: false, private: false, access: { has: obj => "mediaEngine" in obj, get: obj => obj.mediaEngine, set: (obj, value) => { obj.mediaEngine = value; } }, metadata: _metadata }, _mediaEngine_initializers, _mediaEngine_extraInitializers);
98
+ _data_decorators = [observable];
99
+ _model_decorators = [observable];
100
+ _updated_at_decorators = [observable];
101
+ _patch_decorators = [observable];
102
+ _setData_decorators = [action];
103
+ __esDecorate(_a, null, _data_decorators, { kind: "accessor", name: "data", static: false, private: false, access: { has: obj => "data" in obj, get: obj => obj.data, set: (obj, value) => { obj.data = value; } }, metadata: _metadata }, _data_initializers, _data_extraInitializers);
104
+ __esDecorate(_a, null, _model_decorators, { kind: "accessor", name: "model", static: false, private: false, access: { has: obj => "model" in obj, get: obj => obj.model, set: (obj, value) => { obj.model = value; } }, metadata: _metadata }, _model_initializers, _model_extraInitializers);
105
+ __esDecorate(_a, null, _updated_at_decorators, { kind: "accessor", name: "updated_at", static: false, private: false, access: { has: obj => "updated_at" in obj, get: obj => obj.updated_at, set: (obj, value) => { obj.updated_at = value; } }, metadata: _metadata }, _updated_at_initializers, _updated_at_extraInitializers);
106
+ __esDecorate(_a, null, _patch_decorators, { kind: "accessor", name: "patch", static: false, private: false, access: { has: obj => "patch" in obj, get: obj => obj.patch, set: (obj, value) => { obj.patch = value; } }, metadata: _metadata }, _patch_initializers, _patch_extraInitializers);
107
+ __esDecorate(_a, null, _setData_decorators, { kind: "method", name: "setData", static: false, private: false, access: { has: obj => "setData" in obj, get: obj => obj.setData }, metadata: _metadata }, null, _instanceExtraInitializers);
68
108
  if (_metadata) Object.defineProperty(_a, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
69
109
  })(),
70
110
  _a;
@@ -1 +1 @@
1
- {"version":3,"file":"SchemaModelObject.js","sourceRoot":"","sources":["../../src/core/SchemaModelObject.ts"],"names":[],"mappings":";AAEA,OAAO,EAAiB,MAAM,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;IAOtE,iBAAiB;;;;;sBAAjB,iBAAiB;YAE5B,IAAS,WAAW,iGAAc;YAAlC,IAAS,WAAW,sGAAc;YAIlC,YAAmB,OAAiC;gBAAjC,YAAO,GAAP,OAAO,CAA0B;gBAJ3C,sHAAyB;gBAE1B,gBAAW,2DAA6B;gBAG9C,IAAI,CAAC,WAAW,GAAG,IAAI,GAAG,EAAE,CAAC;YAC/B,CAAC;YAED,IAAI,UAAU;gBACZ,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;YACjC,CAAC;YAED,IAAI,KAAK;gBACP,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;YAC5B,CAAC;YAED,KAAK,CAAC,YAAY;gBAChB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;oBAChB,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;gBAChC,IAAI,GAAG,EAAE,CAAC;oBACR,OAAO,GAAG,CAAC;gBACb,CAAC;gBACD;;;;mBAIG;gBACH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC5B,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;oBACxD,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;oBAChC,IAAI,GAAG,EAAE,CAAC;wBACR,OAAO,GAAG,CAAC;oBACb,CAAC;gBACH,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;YAED,KAAK,CAAC,QAAQ,CAAC,KAAa;gBAC1B,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;oBAChC,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACrC,CAAC;gBACD,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAgB,CAAC;gBAC7C,IAAI,CAAC,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,QAAQ,EAAE,CAAA,EAAE,CAAC;oBACvB,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,IAAI,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;gBAC/B,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC;oBACjF,OAAO,EAAE,MAAM,KAAK,CAAC,aAAa,EAAE;oBACpC,IAAI,EAAE,KAAK,CAAC,EAAE;oBACd,GAAG,EAAE,KAAK,CAAC,EAAE;iBACd,CAAC,CAAC;gBAEH,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;gBACzC,OAAO,WAAW,CAAC;YACrB,CAAC;;;;;uCAzDA,MAAM,CAAC,WAAW,CAAC;YACpB,oLAAS,WAAW,6BAAX,WAAW,iGAAc;;;;;SAFvB,iBAAiB"}
1
+ {"version":3,"file":"SchemaModelObject.js","sourceRoot":"","sources":["../../src/core/SchemaModelObject.ts"],"names":[],"mappings":"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"}
@@ -5,14 +5,8 @@ export class AbstractQuery {
5
5
  this.connection = connection;
6
6
  this.id = v4();
7
7
  }
8
- serialize() {
9
- return {
10
- type: this.type,
11
- connection_id: this.connection.id
12
- };
13
- }
14
- async deserialize(connectionStore, data) {
15
- this.connection = await connectionStore.waitForReadyForConnection(data.connection_id);
8
+ async batchSave() {
9
+ await this.connection.batchSave(this.getDirtyObjects());
16
10
  }
17
11
  }
18
12
  //# sourceMappingURL=AbstractQuery.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractQuery.js","sourceRoot":"","sources":["../../../src/core/query/AbstractQuery.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAC;AAS1B,MAAM,OAAgB,aAAa;IAGjC,YACY,IAAY,EACZ,UAA8B;QAD9B,SAAI,GAAJ,IAAI,CAAQ;QACZ,eAAU,GAAV,UAAU,CAAoB;QAExC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC;IACjB,CAAC;IAYD,SAAS;QACP,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,aAAa,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE;SAC7B,CAAC;IACT,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,eAAgC,EAAE,IAAO;QACzD,IAAI,CAAC,UAAU,GAAG,MAAM,eAAe,CAAC,yBAAyB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACxF,CAAC;CACF"}
1
+ {"version":3,"file":"AbstractQuery.js","sourceRoot":"","sources":["../../../src/core/query/AbstractQuery.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAC;AAI1B,MAAM,OAAgB,aAAa;IAGjC,YACS,IAAY,EACZ,UAA8B;QAD9B,SAAI,GAAJ,IAAI,CAAQ;QACZ,eAAU,GAAV,UAAU,CAAoB;QAErC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,SAAS;QACb,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;IAC1D,CAAC;CAaF"}
@@ -0,0 +1,13 @@
1
+ import { AbstractQuery } from './AbstractQuery';
2
+ export class AbstractSerializableQuery extends AbstractQuery {
3
+ serialize() {
4
+ return {
5
+ type: this.type,
6
+ connection_id: this.connection.id
7
+ };
8
+ }
9
+ async deserialize(connectionStore, data) {
10
+ this.connection = await connectionStore.waitForReadyForConnection(data.connection_id);
11
+ }
12
+ }
13
+ //# sourceMappingURL=AbstractSerializableQuery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AbstractSerializableQuery.js","sourceRoot":"","sources":["../../../src/core/query/AbstractSerializableQuery.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAQhD,MAAM,OAAgB,yBAEpB,SAAQ,aAAa;IACrB,SAAS;QACP,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,aAAa,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE;SAC7B,CAAC;IACT,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,eAAgC,EAAE,IAAO;QACzD,IAAI,CAAC,UAAU,GAAG,MAAM,eAAe,CAAC,yBAAyB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACxF,CAAC;CACF"}
@@ -1,5 +1,4 @@
1
1
  import { __classPrivateFieldGet, __classPrivateFieldSet, __esDecorate, __runInitializers } from "tslib";
2
- import { SchemaModelObject } from '../SchemaModelObject';
3
2
  import { observable } from 'mobx';
4
3
  let Page = (() => {
5
4
  var _a, _Page_models_accessor_storage, _Page_loading_accessor_storage;
@@ -26,21 +25,13 @@ let Page = (() => {
26
25
  get index() {
27
26
  return this.options.index;
28
27
  }
29
- async load() {
30
- this.loading = true;
31
- let collection = await this.options.collection();
32
- let query = collection.all();
33
- this.options.filters.forEach((f) => {
34
- query = f.augment(query);
28
+ reset() {
29
+ this.models.forEach((m) => {
30
+ m.patch.clear();
35
31
  });
36
- let models = await query.limit(this.options.limit).skip(this.options.offset).toArray();
37
- this.models = models.map((m) => {
38
- return new SchemaModelObject({
39
- definition: this.options.definition,
40
- model: m
41
- });
42
- });
43
- this.loading = false;
32
+ }
33
+ getDirtyObjects() {
34
+ return this.models.filter((m) => m.patch.size > 0);
44
35
  }
45
36
  asRows() {
46
37
  return this.models.map((m) => {
@@ -1 +1 @@
1
- {"version":3,"file":"Page.js","sourceRoot":"","sources":["../../../src/core/query/Page.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAGzD,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;IAkBrB,IAAI;;;;;;;;sBAAJ,IAAI;YAEf,IAAS,MAAM,+EAAsB;YAArC,IAAS,MAAM,oFAAsB;YAGrC,IAAS,OAAO,gFAAU;YAA1B,IAAS,OAAO,qFAAU;YAE1B,YAAsB,OAAoB;gBAApB,YAAO,GAAP,OAAO,CAAa;gBALjC,+FAA4B;gBAG5B,uJAAiB;;gBAEJ,YAAO,GAAP,OAAO,CAAa;gBACxC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;gBACpB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;aAClB;YAED,IAAI,KAAK;gBACP,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;YAC5B,CAAC;YAED,KAAK,CAAC,IAAI;gBACR,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;gBACpB,IAAI,UAAU,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;gBACjD,IAAI,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;gBAE7B,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;oBACjC,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBAC3B,CAAC,CAAC,CAAC;gBAEH,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC;gBACvF,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;oBAC7B,OAAO,IAAI,iBAAiB,CAAC;wBAC3B,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU;wBACnC,KAAK,EAAE,CAAC;qBACT,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACvB,CAAC;YAED,MAAM;gBACJ,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;oBAC3B,OAAO;wBACL,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE;wBACf,KAAK,EAAE,CAAC,CAAC,KAAK;wBACd,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU;wBACnC,KAAK,EAAE,CAAC;qBACT,CAAC;gBACJ,CAAC,CAAC,CAAC;YACL,CAAC;;;;;;kCA3CA,UAAU;mCAGV,UAAU;YAFX,qKAAS,MAAM,6BAAN,MAAM,uFAAsB;YAGrC,wKAAS,OAAO,6BAAP,OAAO,yFAAU;;;;;SALf,IAAI"}
1
+ {"version":3,"file":"Page.js","sourceRoot":"","sources":["../../../src/core/query/Page.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;IAarB,IAAI;;;;;;;;sBAAJ,IAAI;YAEf,IAAS,MAAM,+EAAsB;YAArC,IAAS,MAAM,oFAAsB;YAGrC,IAAS,OAAO,gFAAU;YAA1B,IAAS,OAAO,qFAAU;YAE1B,YAAsB,OAAoB;gBAApB,YAAO,GAAP,OAAO,CAAa;gBALjC,+FAA4B;gBAG5B,uJAAiB;;gBAEJ,YAAO,GAAP,OAAO,CAAa;gBACxC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;gBACpB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;aAClB;YAED,IAAI,KAAK;gBACP,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;YAC5B,CAAC;YAED,KAAK;gBACH,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;oBACxB,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;gBAClB,CAAC,CAAC,CAAC;YACL,CAAC;YAED,eAAe;gBACb,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;YACrD,CAAC;YAED,MAAM;gBACJ,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;oBAC3B,OAAO;wBACL,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE;wBACf,KAAK,EAAE,CAAC,CAAC,KAAK;wBACd,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU;wBACnC,KAAK,EAAE,CAAC;qBACT,CAAC;gBACJ,CAAC,CAAC,CAAC;YACL,CAAC;;;;;;kCAlCA,UAAU;mCAGV,UAAU;YAFX,qKAAS,MAAM,6BAAN,MAAM,uFAAsB;YAGrC,wKAAS,OAAO,6BAAP,OAAO,yFAAU;;;;;SALf,IAAI"}
@@ -0,0 +1,31 @@
1
+ import { AbstractQuery } from '../AbstractQuery';
2
+ import { Page } from '../Page';
3
+ export class ChangedModelQuery extends AbstractQuery {
4
+ constructor(query) {
5
+ super(query.type, query.connection);
6
+ this.query = query;
7
+ }
8
+ getDirtyObjects() {
9
+ return this.query.getDirtyObjects();
10
+ }
11
+ getSimpleName() {
12
+ return `Changed models`;
13
+ }
14
+ async load() { }
15
+ getColumns() {
16
+ return this.query.getColumns();
17
+ }
18
+ get totalPages() {
19
+ return 1;
20
+ }
21
+ getPage(number) {
22
+ let page = new Page({
23
+ definition: this.query.options.definition,
24
+ index: 0
25
+ });
26
+ page.loading = false;
27
+ page.models = this.query.getDirtyObjects();
28
+ return page;
29
+ }
30
+ }
31
+ //# sourceMappingURL=ChangedModelQuery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChangedModelQuery.js","sourceRoot":"","sources":["../../../../src/core/query/query-changed/ChangedModelQuery.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAG/B,MAAM,OAAO,iBAAkB,SAAQ,aAAa;IAClD,YAAsB,KAAkB;QACtC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;QADhB,UAAK,GAAL,KAAK,CAAa;IAExC,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;IACtC,CAAC;IACD,aAAa;QACX,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IACD,KAAK,CAAC,IAAI,KAAkB,CAAC;IAE7B,UAAU;QACR,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;IACjC,CAAC;IACD,IAAI,UAAU;QACZ,OAAO,CAAC,CAAC;IACX,CAAC;IACD,OAAO,CAAC,MAAc;QACpB,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC;YAClB,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU;YACzC,KAAK,EAAE,CAAC;SACT,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;QAC3C,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
@@ -0,0 +1,18 @@
1
+ import { Page } from '../Page';
2
+ export class SimplePage extends Page {
3
+ constructor(options2) {
4
+ super(options2);
5
+ this.options2 = options2;
6
+ }
7
+ async load() {
8
+ this.loading = true;
9
+ let collection = await this.options.definition.getCollection();
10
+ let query = collection.all();
11
+ this.options2.filters.forEach((f) => {
12
+ query = f.augment(query);
13
+ });
14
+ this.models = await this.options.definition.executeQuery(query.limit(this.options2.limit).skip(this.options2.offset));
15
+ this.loading = false;
16
+ }
17
+ }
18
+ //# sourceMappingURL=SimplePage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SimplePage.js","sourceRoot":"","sources":["../../../../src/core/query/query-simple/SimplePage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAe,MAAM,SAAS,CAAC;AAS5C,MAAM,OAAO,UAAW,SAAQ,IAAI;IAClC,YAAsB,QAA2B;QAC/C,KAAK,CAAC,QAAQ,CAAC,CAAC;QADI,aAAQ,GAAR,QAAQ,CAAmB;IAEjD,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,UAAU,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;QAC/D,IAAI,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;QAE7B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YAClC,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,YAAY,CACtD,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAC5D,CAAC;QACF,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACvB,CAAC;CACF"}
@@ -1,18 +1,18 @@
1
1
  import { __classPrivateFieldGet, __classPrivateFieldSet, __esDecorate, __runInitializers } from "tslib";
2
- import { AbstractQuery } from './AbstractQuery';
3
- import { ActionSource, inject } from '@journeyapps-labs/reactor-mod';
4
- import { ConnectionStore } from '../../stores/ConnectionStore';
5
- import { Page } from './Page';
2
+ import { inject } from '@journeyapps-labs/reactor-mod';
3
+ import { ConnectionStore } from '../../../stores/ConnectionStore';
6
4
  import * as _ from 'lodash';
7
5
  import * as React from 'react';
8
6
  import { action, observable } from 'mobx';
9
- import { CellDisplayWidget } from './widgets/CellDisplayWidget';
10
- import { BelongsToDisplayWidget } from './widgets/BelongsToDisplayWidget';
11
- import { EditSchemaModelAction } from '../../actions/schema-model/EditSchemaModelAction';
12
- import { SmartColumnWidget } from './widgets/SmartColumnWidget';
7
+ import { CellDisplayWidget } from '../widgets/CellDisplayWidget';
8
+ import { SmartColumnWidget } from '../widgets/SmartColumnWidget';
9
+ import { SmartCellDisplayWidget } from '../widgets/SmartCellDisplayWidget';
10
+ import { SimplePage } from './SimplePage';
11
+ import { AbstractSerializableQuery } from '../AbstractSerializableQuery';
12
+ import { SmartBelongsToDisplayWidget } from '../widgets/SmartBelongsToDisplayWidget';
13
13
  let SimpleQuery = (() => {
14
14
  var _a, _SimpleQuery_connStore_accessor_storage, _SimpleQuery__totalPages_accessor_storage, _SimpleQuery__pages_accessor_storage;
15
- let _classSuper = AbstractQuery;
15
+ let _classSuper = AbstractSerializableQuery;
16
16
  let _instanceExtraInitializers = [];
17
17
  let _connStore_decorators;
18
18
  let _connStore_initializers = [];
@@ -43,13 +43,9 @@ let SimpleQuery = (() => {
43
43
  this._pages = [];
44
44
  this.simple_filters = new Map();
45
45
  }
46
- async getCollection() {
47
- let connection = await this.connection.getConnection();
48
- return connection[this.options.definition.definition.name];
49
- }
50
46
  async load() {
51
47
  this._pages = [];
52
- let collection = await this.getCollection();
48
+ let collection = await this.options.definition.getCollection();
53
49
  let query = collection.all();
54
50
  this.simple_filters.forEach((f) => {
55
51
  query = f.augment(query);
@@ -59,10 +55,9 @@ let SimpleQuery = (() => {
59
55
  }
60
56
  getPage(number) {
61
57
  if (!this._pages[number]) {
62
- let page = new Page({
58
+ let page = new SimplePage({
63
59
  offset: number * this.options.limit,
64
60
  limit: this.options.limit,
65
- collection: () => this.getCollection(),
66
61
  definition: this.options.definition,
67
62
  index: number,
68
63
  filters: Array.from(this.simple_filters.values())
@@ -91,24 +86,27 @@ let SimpleQuery = (() => {
91
86
  noWrap: true,
92
87
  shrink: true
93
88
  },
89
+ {
90
+ key: 'updated_at',
91
+ display: 'Updated at',
92
+ noWrap: true,
93
+ shrink: true,
94
+ accessor: (cell, row) => {
95
+ return React.createElement(CellDisplayWidget, { name: "updated_at", cell: row.model.updated_at, row: row });
96
+ }
97
+ },
94
98
  ..._.map(this.options.definition.definition.belongsToIdVars, (a) => {
95
99
  return {
96
100
  key: a.name,
97
- display: a.name,
101
+ display: (React.createElement(SmartColumnWidget, { variable: this.options.definition.definition.belongsToVars[a.relationship], type: this.options.definition.definition.belongsTo[a.relationship].foreignType, filterChanged: (filter) => { } })),
98
102
  noWrap: true,
99
103
  shrink: true,
100
104
  accessor: (cell, row) => {
101
- return (React.createElement(BelongsToDisplayWidget, { open: (object) => {
102
- EditSchemaModelAction.get().fireAction({
103
- source: ActionSource.BUTTON,
104
- targetEntity: object
105
- });
106
- }, relationship: row.model.definition.definition.belongsTo[a.relationship], connection: this.connection, id: row.model.model[a.name] }));
105
+ return React.createElement(SmartBelongsToDisplayWidget, { variable_id: a, row: row, connection: this.connection });
107
106
  }
108
107
  };
109
108
  }),
110
109
  ..._.map(this.options.definition.definition.attributes, (a) => {
111
- // @ts-ignore FIXME, remove when `display` supports JSX.Element as a type
112
110
  return {
113
111
  key: a.name,
114
112
  display: (React.createElement(SmartColumnWidget, { variable: a, filter: this.simple_filters.get(a), filterChanged: (filter) => {
@@ -124,7 +122,7 @@ let SimpleQuery = (() => {
124
122
  noWrap: true,
125
123
  shrink: true,
126
124
  accessor: (cell, row) => {
127
- return React.createElement(CellDisplayWidget, { variable: a, cell: cell, row: row });
125
+ return React.createElement(SmartCellDisplayWidget, { name: a.name, row: row });
128
126
  }
129
127
  };
130
128
  })
@@ -133,6 +131,9 @@ let SimpleQuery = (() => {
133
131
  getSimpleName() {
134
132
  return `Query: ${this.options.definition.definition.label}`;
135
133
  }
134
+ getDirtyObjects() {
135
+ return _.flatMap(this._pages.filter((p) => !!p), (page) => page.getDirtyObjects());
136
+ }
136
137
  },
137
138
  _SimpleQuery_connStore_accessor_storage = new WeakMap(),
138
139
  _SimpleQuery__totalPages_accessor_storage = new WeakMap(),
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SimpleQuery.js","sourceRoot":"","sources":["../../../../src/core/query/query-simple/SimpleQuery.tsx"],"names":[],"mappings":"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"}
@@ -2,7 +2,8 @@ import * as React from 'react';
2
2
  import { useEffect, useState } from 'react';
3
3
  import { IconWidget, styled, TableButtonWidget } from '@journeyapps-labs/reactor-mod';
4
4
  import { copyTextToClipboard } from '@journeyapps-labs/lib-reactor-utils';
5
- export const BelongsToDisplayWidget = (props) => {
5
+ import { observer } from 'mobx-react';
6
+ export const BelongsToDisplayWidget = observer((props) => {
6
7
  const [object, setObject] = useState(null);
7
8
  const [broken, setBroken] = useState(false);
8
9
  useEffect(() => {
@@ -28,24 +29,12 @@ export const BelongsToDisplayWidget = (props) => {
28
29
  if (!object) {
29
30
  return React.createElement(S.Spinner, { spin: true, icon: "spinner" });
30
31
  }
31
- return (React.createElement(S.Container, null,
32
- React.createElement(BelongsToStringWidget, { model: object }),
32
+ return (React.createElement(S.Container, { className: props.className },
33
+ object.data.display,
33
34
  React.createElement(TableButtonWidget, { icon: "arrow-right", action: () => {
34
35
  props.open(object);
35
36
  } })));
36
- };
37
- export const BelongsToStringWidget = ({ model }) => {
38
- const [display, setDisplay] = useState();
39
- useEffect(() => {
40
- model.displayValue().then((value) => {
41
- setDisplay(value);
42
- });
43
- }, []);
44
- if (!display) {
45
- return React.createElement(S.Spinner, { spin: true, icon: "spinner" });
46
- }
47
- return React.createElement("span", null, display);
48
- };
37
+ });
49
38
  var S;
50
39
  (function (S) {
51
40
  S.Warning = styled(TableButtonWidget) `