@steedos/objectql 2.2.52-beta.6 → 2.2.53-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (187) hide show
  1. package/LICENSE.txt +2 -5
  2. package/lib/actions/field_updates.js +7 -7
  3. package/lib/actions/field_updates.js.map +1 -1
  4. package/lib/actions/index.js +3 -3
  5. package/lib/actions/index.js.map +1 -1
  6. package/lib/actions/workflow_notifications.js +6 -6
  7. package/lib/actions/workflow_notifications.js.map +1 -1
  8. package/lib/actions/workflow_rule.js +9 -9
  9. package/lib/actions/workflow_rule.js.map +1 -1
  10. package/lib/broker.d.ts +7 -0
  11. package/lib/broker.js +41 -0
  12. package/lib/broker.js.map +1 -0
  13. package/lib/driver/field-encrytion/index.js +1 -1
  14. package/lib/driver/field-encrytion/index.js.map +1 -1
  15. package/lib/driver/field-encrytion/mongosharedconst.d.ts +2 -1
  16. package/lib/driver/index.js +2 -2
  17. package/lib/driver/index.js.map +1 -1
  18. package/lib/driver/meteorMongo.d.ts +1 -1
  19. package/lib/driver/meteorMongo.js +32 -32
  20. package/lib/driver/mongo.d.ts +1 -1
  21. package/lib/driver/mongo.js +39 -40
  22. package/lib/driver/mongo.js.map +1 -1
  23. package/lib/driver/mysql.d.ts +1 -1
  24. package/lib/driver/mysql.js +9 -2
  25. package/lib/driver/mysql.js.map +1 -1
  26. package/lib/driver/oracle.d.ts +1 -1
  27. package/lib/driver/oracle.js +11 -4
  28. package/lib/driver/oracle.js.map +1 -1
  29. package/lib/driver/postgres.d.ts +1 -1
  30. package/lib/driver/postgres.js +9 -2
  31. package/lib/driver/postgres.js.map +1 -1
  32. package/lib/driver/sqlite3.d.ts +1 -1
  33. package/lib/driver/sqlite3.js +9 -2
  34. package/lib/driver/sqlite3.js.map +1 -1
  35. package/lib/driver/sqlserver.d.ts +1 -1
  36. package/lib/driver/sqlserver.js +11 -4
  37. package/lib/driver/sqlserver.js.map +1 -1
  38. package/lib/dynamic-load/actions.js +7 -7
  39. package/lib/dynamic-load/actions.js.map +1 -1
  40. package/lib/dynamic-load/approval_process.js +1 -1
  41. package/lib/dynamic-load/approval_process.js.map +1 -1
  42. package/lib/dynamic-load/button.js +5 -7
  43. package/lib/dynamic-load/button.js.map +1 -1
  44. package/lib/dynamic-load/chart.js +2 -2
  45. package/lib/dynamic-load/client_script.js +19 -18
  46. package/lib/dynamic-load/client_script.js.map +1 -1
  47. package/lib/dynamic-load/field.js +5 -7
  48. package/lib/dynamic-load/field.js.map +1 -1
  49. package/lib/dynamic-load/index.js +21 -21
  50. package/lib/dynamic-load/index.js.map +1 -1
  51. package/lib/dynamic-load/layout.js +6 -7
  52. package/lib/dynamic-load/layout.js.map +1 -1
  53. package/lib/dynamic-load/listview.js +4 -5
  54. package/lib/dynamic-load/listview.js.map +1 -1
  55. package/lib/dynamic-load/method.js +1 -1
  56. package/lib/dynamic-load/method.js.map +1 -1
  57. package/lib/dynamic-load/object_translations.js +7 -7
  58. package/lib/dynamic-load/object_translations.js.map +1 -1
  59. package/lib/dynamic-load/package.js +21 -15
  60. package/lib/dynamic-load/package.js.map +1 -1
  61. package/lib/dynamic-load/page.js +2 -2
  62. package/lib/dynamic-load/permission.js +4 -4
  63. package/lib/dynamic-load/permission.js.map +1 -1
  64. package/lib/dynamic-load/permissionset.js +20 -20
  65. package/lib/dynamic-load/permissionset.js.map +1 -1
  66. package/lib/dynamic-load/preload_data.js +21 -21
  67. package/lib/dynamic-load/preload_data.js.map +1 -1
  68. package/lib/dynamic-load/profile.js +23 -23
  69. package/lib/dynamic-load/profile.js.map +1 -1
  70. package/lib/dynamic-load/query.js +2 -2
  71. package/lib/dynamic-load/restrictionRules.js +2 -2
  72. package/lib/dynamic-load/shareRules.js +2 -2
  73. package/lib/dynamic-load/tab.js +2 -2
  74. package/lib/dynamic-load/tabs.js +4 -4
  75. package/lib/dynamic-load/translations.js +9 -9
  76. package/lib/dynamic-load/translations.js.map +1 -1
  77. package/lib/dynamic-load/trigger.js +2 -2
  78. package/lib/dynamic-load/trigger.js.map +1 -1
  79. package/lib/dynamic-load/workflow.js +3 -3
  80. package/lib/dynamic-load/workflow.js.map +1 -1
  81. package/lib/formula/core.d.ts +1 -1
  82. package/lib/formula/core.js +87 -54
  83. package/lib/formula/core.js.map +1 -1
  84. package/lib/formula/field_formula.js +12 -12
  85. package/lib/formula/index.js +13 -13
  86. package/lib/formula/index.js.map +1 -1
  87. package/lib/formula/recompute.js +13 -13
  88. package/lib/formula/recompute.js.map +1 -1
  89. package/lib/formula/type.d.ts +1 -0
  90. package/lib/formula/type.js.map +1 -1
  91. package/lib/formula/util.d.ts +1 -1
  92. package/lib/formula/util.js +4 -3
  93. package/lib/formula/util.js.map +1 -1
  94. package/lib/index.d.ts +2 -1
  95. package/lib/index.js +22 -20
  96. package/lib/index.js.map +1 -1
  97. package/lib/metadata-register/_base.js +12 -12
  98. package/lib/metadata-register/app.js +8 -8
  99. package/lib/metadata-register/chart.js +1 -1
  100. package/lib/metadata-register/chart.js.map +1 -1
  101. package/lib/metadata-register/index.js +48 -48
  102. package/lib/metadata-register/layout.js +10 -10
  103. package/lib/metadata-register/object.js +10 -10
  104. package/lib/metadata-register/page.js +1 -1
  105. package/lib/metadata-register/page.js.map +1 -1
  106. package/lib/metadata-register/permissionFields.js +1 -1
  107. package/lib/metadata-register/permissionFields.js.map +1 -1
  108. package/lib/metadata-register/permissionset.js +6 -6
  109. package/lib/metadata-register/process.js +1 -1
  110. package/lib/metadata-register/process.js.map +1 -1
  111. package/lib/metadata-register/processTrigger.js +1 -1
  112. package/lib/metadata-register/processTrigger.js.map +1 -1
  113. package/lib/metadata-register/profile.js +6 -6
  114. package/lib/metadata-register/query.js +1 -1
  115. package/lib/metadata-register/query.js.map +1 -1
  116. package/lib/metadata-register/restrictionRules.js +1 -1
  117. package/lib/metadata-register/restrictionRules.js.map +1 -1
  118. package/lib/metadata-register/shareRules.js +1 -1
  119. package/lib/metadata-register/shareRules.js.map +1 -1
  120. package/lib/metadata-register/tab.js +1 -1
  121. package/lib/metadata-register/tab.js.map +1 -1
  122. package/lib/metadata-register/tabs.js +10 -10
  123. package/lib/services/datasourceServiceFactory.js +2 -2
  124. package/lib/services/helpers/graphql/index.js +160 -112
  125. package/lib/services/helpers/graphql/index.js.map +1 -1
  126. package/lib/services/index.js +4 -4
  127. package/lib/services/index.js.map +1 -1
  128. package/lib/services/objectService.js +142 -142
  129. package/lib/services/objectService.js.map +1 -1
  130. package/lib/services/objectServiceDispatcher.js +89 -89
  131. package/lib/services/objectServiceDispatcher.js.map +1 -1
  132. package/lib/services/objectServiceFactory.js +2 -2
  133. package/lib/summary/core.d.ts +2 -2
  134. package/lib/summary/core.js +34 -22
  135. package/lib/summary/core.js.map +1 -1
  136. package/lib/summary/field_summary.js +10 -10
  137. package/lib/summary/index.js +16 -8
  138. package/lib/summary/index.js.map +1 -1
  139. package/lib/summary/recompute.js +17 -9
  140. package/lib/summary/recompute.js.map +1 -1
  141. package/lib/summary/type.d.ts +1 -0
  142. package/lib/summary/type.js.map +1 -1
  143. package/lib/ts-types/index.js +3 -3
  144. package/lib/ts-types/index.js.map +1 -1
  145. package/lib/typeorm/driver.d.ts +1 -1
  146. package/lib/typeorm/driver.js +42 -69
  147. package/lib/typeorm/driver.js.map +1 -1
  148. package/lib/typeorm/index.js +1 -1
  149. package/lib/typeorm/index.js.map +1 -1
  150. package/lib/typeorm/util.js +5 -5
  151. package/lib/typeorm/util.js.map +1 -1
  152. package/lib/types/app.js +21 -21
  153. package/lib/types/app.js.map +1 -1
  154. package/lib/types/config.js +2 -2
  155. package/lib/types/connection.js +10 -10
  156. package/lib/types/datasource.js +64 -64
  157. package/lib/types/datasource.js.map +1 -1
  158. package/lib/types/field.js +1 -1
  159. package/lib/types/field.js.map +1 -1
  160. package/lib/types/field_permission.js +6 -6
  161. package/lib/types/index.js +10 -10
  162. package/lib/types/index.js.map +1 -1
  163. package/lib/types/list_view.js +1 -1
  164. package/lib/types/list_view.js.map +1 -1
  165. package/lib/types/object.js +167 -153
  166. package/lib/types/object.js.map +1 -1
  167. package/lib/types/object_dynamic_load.js +10 -10
  168. package/lib/types/object_events.js +2 -2
  169. package/lib/types/object_layouts.js +4 -4
  170. package/lib/types/object_permission.js +1 -1
  171. package/lib/types/object_permission.js.map +1 -1
  172. package/lib/types/restrictionRule.js +4 -4
  173. package/lib/types/schema.js +8 -8
  174. package/lib/types/shareRule.js +4 -4
  175. package/lib/types/validation_rules.js +3 -3
  176. package/lib/types/validation_rules.js.map +1 -1
  177. package/lib/util/convert.js +2 -3
  178. package/lib/util/convert.js.map +1 -1
  179. package/lib/util/index.js +18 -16
  180. package/lib/util/index.js.map +1 -1
  181. package/package.json +22 -36
  182. package/lib/edition/index.d.ts +0 -1
  183. package/lib/edition/index.js +0 -12
  184. package/lib/edition/index.js.map +0 -1
  185. package/lib/edition/isPlatformEnterPrise.d.ts +0 -1
  186. package/lib/edition/isPlatformEnterPrise.js +0 -28
  187. package/lib/edition/isPlatformEnterPrise.js.map +0 -1
@@ -7,10 +7,10 @@ var convert_1 = require("../util/convert");
7
7
  var datasource_1 = require("../types/datasource");
8
8
  var LocalDataSourceServices = {};
9
9
  function createDataSourceService(broker, dataSource) {
10
- return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
10
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
11
11
  var dataSourceName, serviceName, service;
12
12
  var _a;
13
- return (0, tslib_1.__generator)(this, function (_b) {
13
+ return tslib_1.__generator(this, function (_b) {
14
14
  switch (_b.label) {
15
15
  case 0:
16
16
  dataSourceName = dataSource.name;
@@ -3,7 +3,7 @@
3
3
  * @Author: sunhaolin@hotoa.com
4
4
  * @Date: 2022-06-15 15:49:44
5
5
  * @LastEditors: sunhaolin@hotoa.com
6
- * @LastEditTime: 2022-06-21 18:50:27
6
+ * @LastEditTime: 2022-07-07 16:53:26
7
7
  * @Description:
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
@@ -27,22 +27,22 @@ function generateActionGraphqlProp(actionName, objectConfig) {
27
27
  }
28
28
  switch (actionName) {
29
29
  case 'graphqlCount':
30
- gplObj.query = gql(templateObject_1 || (templateObject_1 = (0, tslib_1.__makeTemplateObject)(["\n type Query {\n ", "__count(fields: JSON, filters: JSON, top: Int, skip: Int, sort: String): Int\n }\n "], ["\n type Query {\n ", "__count(fields: JSON, filters: JSON, top: Int, skip: Int, sort: String): Int\n }\n "])), objectName);
30
+ gplObj.query = gql(templateObject_1 || (templateObject_1 = tslib_1.__makeTemplateObject(["\n type Query {\n ", "__count(fields: JSON, filters: JSON, top: Int, skip: Int, sort: String): Int\n }\n "], ["\n type Query {\n ", "__count(fields: JSON, filters: JSON, top: Int, skip: Int, sort: String): Int\n }\n "])), objectName);
31
31
  break;
32
32
  case 'graphqlFind':
33
- gplObj.query = gql(templateObject_2 || (templateObject_2 = (0, tslib_1.__makeTemplateObject)(["\n type Query {\n ", "(fields: JSON, filters: JSON, top: Int, skip: Int, sort: String): [", "]\n }\n "], ["\n type Query {\n ", "(fields: JSON, filters: JSON, top: Int, skip: Int, sort: String): [", "]\n }\n "])), objectName, objectName);
33
+ gplObj.query = gql(templateObject_2 || (templateObject_2 = tslib_1.__makeTemplateObject(["\n type Query {\n ", "(fields: JSON, filters: JSON, top: Int, skip: Int, sort: String): [", "]\n }\n "], ["\n type Query {\n ", "(fields: JSON, filters: JSON, top: Int, skip: Int, sort: String): [", "]\n }\n "])), objectName, objectName);
34
34
  break;
35
35
  case 'findOne':
36
- gplObj.query = gql(templateObject_3 || (templateObject_3 = (0, tslib_1.__makeTemplateObject)(["\n type Query {\n ", "__", "(id: JSON): ", "\n }\n "], ["\n type Query {\n ", "__", "(id: JSON): ", "\n }\n "])), objectName, actionName, objectName);
36
+ gplObj.query = gql(templateObject_3 || (templateObject_3 = tslib_1.__makeTemplateObject(["\n type Query {\n ", "__", "(id: JSON): ", "\n }\n "], ["\n type Query {\n ", "__", "(id: JSON): ", "\n }\n "])), objectName, actionName, objectName);
37
37
  break;
38
38
  case 'insert':
39
- gplObj.mutation = gql(templateObject_4 || (templateObject_4 = (0, tslib_1.__makeTemplateObject)(["\n type Mutation {\n ", "__", "(doc: JSON): ", "\n }\n "], ["\n type Mutation {\n ", "__", "(doc: JSON): ", "\n }\n "])), objectName, actionName, objectName);
39
+ gplObj.mutation = gql(templateObject_4 || (templateObject_4 = tslib_1.__makeTemplateObject(["\n type Mutation {\n ", "__", "(doc: JSON): ", "\n }\n "], ["\n type Mutation {\n ", "__", "(doc: JSON): ", "\n }\n "])), objectName, actionName, objectName);
40
40
  break;
41
41
  case 'update':
42
- gplObj.mutation = gql(templateObject_5 || (templateObject_5 = (0, tslib_1.__makeTemplateObject)(["\n type Mutation {\n ", "__", "(id: JSON, doc: JSON): ", "\n }\n "], ["\n type Mutation {\n ", "__", "(id: JSON, doc: JSON): ", "\n }\n "])), objectName, actionName, objectName);
42
+ gplObj.mutation = gql(templateObject_5 || (templateObject_5 = tslib_1.__makeTemplateObject(["\n type Mutation {\n ", "__", "(id: JSON, doc: JSON): ", "\n }\n "], ["\n type Mutation {\n ", "__", "(id: JSON, doc: JSON): ", "\n }\n "])), objectName, actionName, objectName);
43
43
  break;
44
44
  case 'delete':
45
- gplObj.mutation = gql(templateObject_6 || (templateObject_6 = (0, tslib_1.__makeTemplateObject)(["\n type Mutation {\n ", "__", "(id: JSON): JSON\n }\n "], ["\n type Mutation {\n ", "__", "(id: JSON): JSON\n }\n "])), objectName, actionName);
45
+ gplObj.mutation = gql(templateObject_6 || (templateObject_6 = tslib_1.__makeTemplateObject(["\n type Mutation {\n ", "__", "(id: JSON): JSON\n }\n "], ["\n type Mutation {\n ", "__", "(id: JSON): JSON\n }\n "])), objectName, actionName);
46
46
  break;
47
47
  default:
48
48
  // console.error(`need to handle action: ${actionName}`);
@@ -69,20 +69,25 @@ function generateSettingsGraphql(objectConfig) {
69
69
  type += "".concat(name, ": JSON ");
70
70
  return;
71
71
  }
72
+ var isLookup = (field.type == "lookup" || field.type == "master_detail") &&
73
+ field.reference_to && _.isString(field.reference_to);
74
+ var isFile = field.type == "image" || field.type == "file";
72
75
  if (consts_1.BASIC_TYPE_MAPPING[field.type]) {
73
76
  type += "".concat(name, ": ").concat(consts_1.BASIC_TYPE_MAPPING[field.type], " ");
74
77
  }
75
- else if ((field.type == "lookup" || field.type == "master_detail") &&
76
- field.reference_to &&
77
- _.isString(field.reference_to)) {
78
+ else if (isLookup || isFile) {
78
79
  var refTo = field.reference_to;
79
- // 判断能否根据refTo找到对象,如果找到则说明对象已加载,否则return
80
+ var referenceToField = field.reference_to_field;
81
+ if (isFile) {
82
+ // TODO: cfs_images_filerecord对象不存在,需要额外处理
83
+ refTo = field.type == "image" ? "cfs_images_filerecord" : "cfs_files_filerecord";
84
+ }
80
85
  var objMetaData = getLocalService(refTo);
81
86
  if (refTo != objectName && (!objMetaData || objMetaData.settings.deleted)) {
82
87
  return;
83
88
  }
84
89
  if (field.multiple) {
85
- type += "".concat(name, ": [String] ");
90
+ type += "".concat(name, ": [JSON] ");
86
91
  type += "".concat(name).concat(consts_1.EXPAND_SUFFIX, ": [").concat(refTo, "] ");
87
92
  resolvers[objectName]["".concat(name).concat(consts_1.EXPAND_SUFFIX)] = {
88
93
  action: "".concat((0, __1.getObjectServiceName)(refTo), ".").concat(consts_1.GRAPHQL_ACTION_PREFIX).concat(consts_1.EXPAND_SUFFIX, "_multiple"),
@@ -91,11 +96,12 @@ function generateSettingsGraphql(objectConfig) {
91
96
  _a),
92
97
  params: {
93
98
  objectName: refTo,
99
+ referenceToField: referenceToField
94
100
  },
95
101
  };
96
102
  }
97
103
  else {
98
- type += "".concat(name, ": String ");
104
+ type += "".concat(name, ": JSON ");
99
105
  type += "".concat(name).concat(consts_1.EXPAND_SUFFIX, ": ").concat(refTo, " ");
100
106
  resolvers[objectName]["".concat(name).concat(consts_1.EXPAND_SUFFIX)] = {
101
107
  action: "".concat((0, __1.getObjectServiceName)(refTo), ".").concat(consts_1.GRAPHQL_ACTION_PREFIX).concat(consts_1.EXPAND_SUFFIX),
@@ -104,6 +110,7 @@ function generateSettingsGraphql(objectConfig) {
104
110
  _b),
105
111
  params: {
106
112
  objectName: refTo,
113
+ referenceToField: referenceToField
107
114
  },
108
115
  };
109
116
  }
@@ -130,7 +137,7 @@ function generateSettingsGraphql(objectConfig) {
130
137
  };
131
138
  // define _display type
132
139
  var _display_type = _getDisplayType(_display_type_name, fields);
133
- type = gql(templateObject_7 || (templateObject_7 = (0, tslib_1.__makeTemplateObject)(["\n ", "\n ", "\n "], ["\n ", "\n ", "\n "])), _display_type, type);
140
+ type = gql(templateObject_7 || (templateObject_7 = tslib_1.__makeTemplateObject(["\n ", "\n ", "\n "], ["\n ", "\n ", "\n "])), _display_type, type);
134
141
  // _related
135
142
  if (objectConfig.enable_files) {
136
143
  var relatedObjName = "cms_files";
@@ -182,10 +189,10 @@ function generateSettingsGraphql(objectConfig) {
182
189
  }
183
190
  exports.generateSettingsGraphql = generateSettingsGraphql;
184
191
  function dealWithRelatedFields(objectConfig, graphql) {
185
- return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
192
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
186
193
  var steedosSchema, objectName, obj, relationsInfo, detailsInfo, lookupsInfo, relatedInfos, relatedInfos_1, relatedInfos_1_1, info, infos, detailObjectApiName, detailFieldName, relatedFieldName, relatedType;
187
194
  var e_1, _a;
188
- return (0, tslib_1.__generator)(this, function (_b) {
195
+ return tslib_1.__generator(this, function (_b) {
189
196
  switch (_b.label) {
190
197
  case 0:
191
198
  steedosSchema = (0, __2.getSteedosSchema)();
@@ -198,7 +205,7 @@ function dealWithRelatedFields(objectConfig, graphql) {
198
205
  lookupsInfo = relationsInfo.lookup_details || [];
199
206
  relatedInfos = detailsInfo.concat(lookupsInfo);
200
207
  try {
201
- for (relatedInfos_1 = (0, tslib_1.__values)(relatedInfos), relatedInfos_1_1 = relatedInfos_1.next(); !relatedInfos_1_1.done; relatedInfos_1_1 = relatedInfos_1.next()) {
208
+ for (relatedInfos_1 = tslib_1.__values(relatedInfos), relatedInfos_1_1 = relatedInfos_1.next(); !relatedInfos_1_1.done; relatedInfos_1_1 = relatedInfos_1.next()) {
202
209
  info = relatedInfos_1_1.value;
203
210
  if (!info.startsWith("__")) {
204
211
  infos = info.split(".");
@@ -242,14 +249,14 @@ function getGraphqlActions(objectConfig) {
242
249
  var objName = objectConfig.name;
243
250
  actions["".concat(consts_1.GRAPHQL_ACTION_PREFIX).concat(consts_1.EXPAND_SUFFIX, "_multiple")] = {
244
251
  handler: function (ctx) {
245
- return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
246
- var _a, ids, objectName, filters, selector, steedosSchema, obj, resolveInfo, fieldNames;
247
- return (0, tslib_1.__generator)(this, function (_b) {
248
- _a = ctx.params, ids = _a.ids, objectName = _a.objectName;
252
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
253
+ var _a, ids, objectName, referenceToField, filters, selector, steedosSchema, obj, resolveInfo, fieldNames;
254
+ return tslib_1.__generator(this, function (_b) {
255
+ _a = ctx.params, ids = _a.ids, objectName = _a.objectName, referenceToField = _a.referenceToField;
249
256
  if (_.isEmpty(ids)) {
250
257
  return [2 /*return*/, null];
251
258
  }
252
- filters = [["_id", "in", ids]];
259
+ filters = [[referenceToField || "_id", "in", ids]];
253
260
  selector = { filters: filters };
254
261
  steedosSchema = (0, __2.getSteedosSchema)();
255
262
  obj = steedosSchema.getObject(objectName);
@@ -265,18 +272,18 @@ function getGraphqlActions(objectConfig) {
265
272
  };
266
273
  actions["".concat(consts_1.GRAPHQL_ACTION_PREFIX).concat(consts_1.EXPAND_SUFFIX)] = {
267
274
  handler: function (ctx) {
268
- return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
269
- var _a, id, objectName, steedosSchema, obj, selector, resolveInfo, fieldNames;
270
- return (0, tslib_1.__generator)(this, function (_b) {
275
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
276
+ var _a, id, objectName, referenceToField, steedosSchema, obj, selector, resolveInfo, fieldNames;
277
+ return tslib_1.__generator(this, function (_b) {
271
278
  switch (_b.label) {
272
279
  case 0:
273
- _a = ctx.params, id = _a.id, objectName = _a.objectName;
280
+ _a = ctx.params, id = _a.id, objectName = _a.objectName, referenceToField = _a.referenceToField;
274
281
  if (!id) {
275
282
  return [2 /*return*/];
276
283
  }
277
284
  steedosSchema = (0, __2.getSteedosSchema)();
278
285
  obj = steedosSchema.getObject(objectName);
279
- selector = { filters: [["_id", "=", id]] };
286
+ selector = { filters: [[referenceToField || "_id", "=", id]] };
280
287
  resolveInfo = ctx.meta.resolveInfo;
281
288
  fieldNames = (0, getQueryFields_1.getQueryFields)(resolveInfo);
282
289
  if (!_.isEmpty(fieldNames)) {
@@ -300,9 +307,9 @@ function getGraphqlActions(objectConfig) {
300
307
  ].includes(objName)) {
301
308
  actions["".concat(consts_1.GRAPHQL_ACTION_PREFIX).concat(consts_1.RELATED_PREFIX, "_enabled")] = {
302
309
  handler: function (ctx) {
303
- return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
310
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
304
311
  var params, _parentId, _related_params, objectName, parentObjectName, foreignKey, userSession, steedosSchema, object, filters;
305
- return (0, tslib_1.__generator)(this, function (_a) {
312
+ return tslib_1.__generator(this, function (_a) {
306
313
  switch (_a.label) {
307
314
  case 0:
308
315
  params = ctx.params;
@@ -330,9 +337,9 @@ function getGraphqlActions(objectConfig) {
330
337
  }
331
338
  actions["".concat(consts_1.GRAPHQL_ACTION_PREFIX).concat(consts_1.RELATED_PREFIX)] = {
332
339
  handler: function (ctx) {
333
- return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
340
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
334
341
  var params, _parentId, _related_params, objectName, parentObjectName, fieldName, referenceToParentFieldName, userSession, steedosSchema, object, parentObj, parent, filters, _idValue, resolveInfo, fieldNames;
335
- return (0, tslib_1.__generator)(this, function (_a) {
342
+ return tslib_1.__generator(this, function (_a) {
336
343
  switch (_a.label) {
337
344
  case 0:
338
345
  params = ctx.params;
@@ -369,9 +376,9 @@ function getGraphqlActions(objectConfig) {
369
376
  };
370
377
  actions["".concat(consts_1.GRAPHQL_ACTION_PREFIX).concat(consts_1.DISPLAY_PREFIX)] = {
371
378
  handler: function (ctx) {
372
- return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
379
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
373
380
  var params, _id, objectName, fields, userSession, steedosSchema, obj, selector, resolveInfo, fieldNames, doc, result;
374
- return (0, tslib_1.__generator)(this, function (_a) {
381
+ return tslib_1.__generator(this, function (_a) {
375
382
  switch (_a.label) {
376
383
  case 0:
377
384
  params = ctx.params;
@@ -441,9 +448,9 @@ function getTranslatedFieldConfig(translatedObject, name) {
441
448
  return translatedObject.fields[name.replace(/__label$/, "")];
442
449
  }
443
450
  function translateToDisplay(objectName, doc, userSession) {
444
- return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
451
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
445
452
  var lng, steedosSchema, object, objConfig, fields, displayObj, utcOffset, _loop_1, _a, _b, _i, name;
446
- return (0, tslib_1.__generator)(this, function (_c) {
453
+ return tslib_1.__generator(this, function (_c) {
447
454
  switch (_c.label) {
448
455
  case 0:
449
456
  lng = (0, __2.getUserLocale)(userSession);
@@ -458,29 +465,29 @@ function translateToDisplay(objectName, doc, userSession) {
458
465
  displayObj = { _id: doc._id };
459
466
  utcOffset = userSession.utcOffset;
460
467
  _loop_1 = function (name) {
461
- var field, fType, label, map_1, value, translatedField, translatedFieldOptions, labels_1, i, lookupLabel, refTo, refValue, refObj, nameFieldKey, refRecords, refRecord, masterDetailLabel, refTo, refValue, refObj, nameFieldKey, refRecords, refRecord;
462
- return (0, tslib_1.__generator)(this, function (_d) {
468
+ var field, fType, label, map_1, value, translatedField, translatedFieldOptions, labels_1, i, lookupLabel, refTo, refValue, refObj, nameFieldKey, refRecords, refRecord, masterDetailLabel, refTo, refValue, refObj, nameFieldKey, refRecords, refRecord, fileLabel, value, fileObjectName, fileObject, fileNameFieldKey, fileRecords, fileRecord;
469
+ return tslib_1.__generator(this, function (_d) {
463
470
  switch (_d.label) {
464
471
  case 0:
465
- if (!Object.prototype.hasOwnProperty.call(fields, name)) return [3 /*break*/, 27];
472
+ if (!Object.prototype.hasOwnProperty.call(fields, name)) return [3 /*break*/, 38];
466
473
  field = fields[name];
467
- if (!_.has(doc, name)) return [3 /*break*/, 26];
474
+ if (!_.has(doc, name)) return [3 /*break*/, 37];
468
475
  fType = field.type;
469
476
  if (!(fType == "text")) return [3 /*break*/, 1];
470
477
  displayObj[name] = doc[name] || "";
471
- return [3 /*break*/, 25];
478
+ return [3 /*break*/, 36];
472
479
  case 1:
473
480
  if (!(fType == "textarea")) return [3 /*break*/, 2];
474
481
  displayObj[name] = doc[name] || "";
475
- return [3 /*break*/, 25];
482
+ return [3 /*break*/, 36];
476
483
  case 2:
477
484
  if (!(fType == "html_text")) return [3 /*break*/, 3];
478
485
  displayObj[name] = doc[name] || "";
479
- return [3 /*break*/, 25];
486
+ return [3 /*break*/, 36];
480
487
  case 3:
481
488
  if (!(fType == "html")) return [3 /*break*/, 4];
482
489
  displayObj[name] = doc[name] || "";
483
- return [3 /*break*/, 25];
490
+ return [3 /*break*/, 36];
484
491
  case 4:
485
492
  if (!(fType == "select")) return [3 /*break*/, 5];
486
493
  label = "";
@@ -502,7 +509,7 @@ function translateToDisplay(objectName, doc, userSession) {
502
509
  label = map_1[value];
503
510
  }
504
511
  displayObj[name] = label;
505
- return [3 /*break*/, 25];
512
+ return [3 /*break*/, 36];
506
513
  case 5:
507
514
  if (!(fType == "boolean")) return [3 /*break*/, 6];
508
515
  if (doc[name]) {
@@ -511,42 +518,48 @@ function translateToDisplay(objectName, doc, userSession) {
511
518
  else {
512
519
  displayObj[name] = "";
513
520
  }
514
- return [3 /*break*/, 25];
521
+ return [3 /*break*/, 36];
515
522
  case 6:
516
523
  if (!(fType == "date")) return [3 /*break*/, 7];
517
- displayObj[name] = moment(doc[name])
518
- .utcOffset(utcOffset)
519
- .format("YYYY-MM-DD");
520
- return [3 /*break*/, 25];
524
+ // 注意日期类型存的是utc0点,不需要执行utcOffset
525
+ displayObj[name] = doc[name] ? moment.utc(doc[name])
526
+ .format("YYYY-MM-DD") : '';
527
+ return [3 /*break*/, 36];
521
528
  case 7:
522
529
  if (!(fType == "datetime")) return [3 /*break*/, 8];
523
- displayObj[name] = moment(doc[name])
530
+ displayObj[name] = doc[name] ? moment(doc[name])
524
531
  .utcOffset(utcOffset)
525
- .format("YYYY-MM-DD H:mm");
526
- return [3 /*break*/, 25];
532
+ .format("YYYY-MM-DD HH:mm") : '';
533
+ return [3 /*break*/, 36];
527
534
  case 8:
528
- if (!(fType == "number")) return [3 /*break*/, 9];
529
- displayObj[name] = doc[name] || "";
530
- return [3 /*break*/, 25];
535
+ if (!(fType == "time")) return [3 /*break*/, 9];
536
+ // 注意时间类型走的是utc时间,不需要执行utcOffset
537
+ displayObj[name] = doc[name] ? moment.utc(doc[name])
538
+ .format("HH:mm") : '';
539
+ return [3 /*break*/, 36];
531
540
  case 9:
532
- if (!(fType == "currency")) return [3 /*break*/, 10];
541
+ if (!(fType == "number")) return [3 /*break*/, 10];
533
542
  displayObj[name] = doc[name] || "";
534
- return [3 /*break*/, 25];
543
+ return [3 /*break*/, 36];
535
544
  case 10:
536
- if (!(fType == "percent")) return [3 /*break*/, 11];
537
- displayObj[name] = "".concat(doc[name] * 100, "%");
538
- return [3 /*break*/, 25];
545
+ if (!(fType == "currency")) return [3 /*break*/, 11];
546
+ displayObj[name] = doc[name] || "";
547
+ return [3 /*break*/, 36];
539
548
  case 11:
540
- if (!(fType == "password")) return [3 /*break*/, 12];
549
+ if (!(fType == "percent")) return [3 /*break*/, 12];
550
+ displayObj[name] = "".concat(doc[name] * 100, "%");
551
+ return [3 /*break*/, 36];
552
+ case 12:
553
+ if (!(fType == "password")) return [3 /*break*/, 13];
541
554
  displayObj[name] = "";
542
555
  if (_.isString(doc[name])) {
543
556
  for (i = 0; i < doc[name].length; i++) {
544
557
  displayObj[name] += "*";
545
558
  }
546
559
  }
547
- return [3 /*break*/, 25];
548
- case 12:
549
- if (!(fType == "lookup" && _.isString(field.reference_to))) return [3 /*break*/, 18];
560
+ return [3 /*break*/, 36];
561
+ case 13:
562
+ if (!(fType == "lookup" && _.isString(field.reference_to))) return [3 /*break*/, 19];
550
563
  lookupLabel = "";
551
564
  refTo = field.reference_to;
552
565
  refValue = doc[name];
@@ -555,32 +568,32 @@ function translateToDisplay(objectName, doc, userSession) {
555
568
  }
556
569
  refObj = steedosSchema.getObject(refTo);
557
570
  return [4 /*yield*/, refObj.getNameFieldKey()];
558
- case 13:
571
+ case 14:
559
572
  nameFieldKey = _d.sent();
560
- if (!field.multiple) return [3 /*break*/, 15];
573
+ if (!field.multiple) return [3 /*break*/, 16];
561
574
  return [4 /*yield*/, refObj.find({
562
575
  filters: ["_id", "in", refValue],
563
576
  fields: [nameFieldKey],
564
577
  })];
565
- case 14:
578
+ case 15:
566
579
  refRecords = _d.sent();
567
580
  lookupLabel = _.pluck(refRecords, nameFieldKey).join(",");
568
- return [3 /*break*/, 17];
569
- case 15: return [4 /*yield*/, refObj.find({
581
+ return [3 /*break*/, 18];
582
+ case 16: return [4 /*yield*/, refObj.find({
570
583
  filters: ["_id", "=", refValue],
571
584
  fields: [nameFieldKey],
572
585
  })];
573
- case 16:
586
+ case 17:
574
587
  refRecord = (_d.sent())[0];
575
588
  if (refRecord) {
576
589
  lookupLabel = refRecord[nameFieldKey];
577
590
  }
578
- _d.label = 17;
579
- case 17:
580
- displayObj[name] = lookupLabel;
581
- return [3 /*break*/, 25];
591
+ _d.label = 18;
582
592
  case 18:
583
- if (!(fType == "master_detail" && _.isString(field.reference_to))) return [3 /*break*/, 24];
593
+ displayObj[name] = lookupLabel;
594
+ return [3 /*break*/, 36];
595
+ case 19:
596
+ if (!(fType == "master_detail" && _.isString(field.reference_to))) return [3 /*break*/, 25];
584
597
  masterDetailLabel = "";
585
598
  refTo = field.reference_to;
586
599
  refValue = doc[name];
@@ -589,59 +602,94 @@ function translateToDisplay(objectName, doc, userSession) {
589
602
  }
590
603
  refObj = steedosSchema.getObject(refTo);
591
604
  return [4 /*yield*/, refObj.getNameFieldKey()];
592
- case 19:
605
+ case 20:
593
606
  nameFieldKey = _d.sent();
594
- if (!field.multiple) return [3 /*break*/, 21];
607
+ if (!field.multiple) return [3 /*break*/, 22];
595
608
  return [4 /*yield*/, refObj.find({
596
609
  filters: ["_id", "in", refValue],
597
610
  fields: [nameFieldKey],
598
611
  })];
599
- case 20:
612
+ case 21:
600
613
  refRecords = _d.sent();
601
614
  masterDetailLabel = _.pluck(refRecords, nameFieldKey).join(",");
602
- return [3 /*break*/, 23];
603
- case 21: return [4 /*yield*/, refObj.find({
615
+ return [3 /*break*/, 24];
616
+ case 22: return [4 /*yield*/, refObj.find({
604
617
  filters: ["_id", "=", refValue],
605
618
  fields: [nameFieldKey],
606
619
  })];
607
- case 22:
620
+ case 23:
608
621
  refRecord = (_d.sent())[0];
609
622
  if (refRecord) {
610
623
  masterDetailLabel = refRecord[nameFieldKey];
611
624
  }
612
- _d.label = 23;
613
- case 23:
614
- displayObj[name] = masterDetailLabel;
615
- return [3 /*break*/, 25];
625
+ _d.label = 24;
616
626
  case 24:
617
- if (fType == "autonumber") {
618
- displayObj[name] = doc[name] || "";
619
- }
620
- else if (fType == "url") {
621
- displayObj[name] = doc[name] || "";
622
- }
623
- else if (fType == "email") {
624
- displayObj[name] = doc[name] || "";
625
- }
626
- else if (fType == "formula") {
627
- displayObj[name] = doc[name] || "";
628
- }
629
- else if (fType == "summary") {
630
- displayObj[name] = doc[name] || "";
631
- }
632
- else if (fType == "image") {
633
- displayObj[name] = doc[name] || "";
627
+ displayObj[name] = masterDetailLabel;
628
+ return [3 /*break*/, 36];
629
+ case 25:
630
+ if (!(fType == "autonumber")) return [3 /*break*/, 26];
631
+ displayObj[name] = doc[name] || "";
632
+ return [3 /*break*/, 36];
633
+ case 26:
634
+ if (!(fType == "url")) return [3 /*break*/, 27];
635
+ displayObj[name] = doc[name] || "";
636
+ return [3 /*break*/, 36];
637
+ case 27:
638
+ if (!(fType == "email")) return [3 /*break*/, 28];
639
+ displayObj[name] = doc[name] || "";
640
+ return [3 /*break*/, 36];
641
+ case 28:
642
+ if (!(fType == "formula")) return [3 /*break*/, 29];
643
+ displayObj[name] = doc[name] || "";
644
+ return [3 /*break*/, 36];
645
+ case 29:
646
+ if (!(fType == "summary")) return [3 /*break*/, 30];
647
+ displayObj[name] = doc[name] || "";
648
+ return [3 /*break*/, 36];
649
+ case 30:
650
+ if (!(fType == "image" || fType == "file")) return [3 /*break*/, 35];
651
+ fileLabel = "";
652
+ value = doc[name];
653
+ if (!value) {
654
+ return [2 /*return*/, "continue"];
634
655
  }
635
- else {
636
- console.error("Graphql Display: need to handle new field type ".concat(field.type, " for ").concat(objectName, "."));
637
- displayObj[name] = doc[name] || "";
656
+ fileObjectName = fType == "image" ? "cfs_images_filerecord" : "cfs_files_filerecord";
657
+ fileObject = steedosSchema.getObject(fileObjectName);
658
+ fileNameFieldKey = "original.name";
659
+ if (!field.multiple) return [3 /*break*/, 32];
660
+ return [4 /*yield*/, fileObject.find({
661
+ filters: ["_id", "in", value],
662
+ fields: [fileNameFieldKey],
663
+ })];
664
+ case 31:
665
+ fileRecords = _d.sent();
666
+ fileLabel = _.map(fileRecords, function (fileRecord) {
667
+ var _a;
668
+ return (_a = fileRecord.original) === null || _a === void 0 ? void 0 : _a.name;
669
+ }).join(",");
670
+ return [3 /*break*/, 34];
671
+ case 32: return [4 /*yield*/, fileObject.find({
672
+ filters: ["_id", "=", value],
673
+ fields: [fileNameFieldKey],
674
+ })];
675
+ case 33:
676
+ fileRecord = (_d.sent())[0];
677
+ if (fileRecord) {
678
+ fileLabel = fileRecord["original"]["name"];
638
679
  }
639
- _d.label = 25;
640
- case 25: return [3 /*break*/, 27];
641
- case 26:
680
+ _d.label = 34;
681
+ case 34:
682
+ displayObj[name] = fileLabel;
683
+ return [3 /*break*/, 36];
684
+ case 35:
685
+ console.error("Graphql Display: need to handle new field type ".concat(field.type, " for ").concat(objectName, "."));
686
+ displayObj[name] = doc[name] || "";
687
+ _d.label = 36;
688
+ case 36: return [3 /*break*/, 38];
689
+ case 37:
642
690
  displayObj[name] = ""; // 如果值为空,均返回空字符串
643
- _d.label = 27;
644
- case 27: return [2 /*return*/];
691
+ _d.label = 38;
692
+ case 38: return [2 /*return*/];
645
693
  }
646
694
  });
647
695
  };
@@ -685,7 +733,7 @@ function getLocalService(objectApiName) {
685
733
  return steedosSchema.broker.getLocalService((0, __1.getObjectServiceName)(objectApiName));
686
734
  }
687
735
  exports.getLocalService = getLocalService;
688
- (0, tslib_1.__exportStar)(require("./getQueryFields"), exports);
689
- (0, tslib_1.__exportStar)(require("./consts"), exports);
736
+ tslib_1.__exportStar(require("./getQueryFields"), exports);
737
+ tslib_1.__exportStar(require("./consts"), exports);
690
738
  var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7;
691
739
  //# sourceMappingURL=index.js.map