@steedos/objectql 2.3.0 → 2.3.1-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.
@@ -50,11 +50,13 @@ function generateSettingsGraphql(objectConfig) {
50
50
  var type = "type ".concat(objectName, " { ").concat(primaryFieldType, " ");
51
51
  var resolvers = {};
52
52
  resolvers[objectName] = {};
53
+ var fieldNamesMap = {};
53
54
  _.each(fields, function (field, name) {
54
55
  var _a, _b;
55
56
  if (name.indexOf(".") > -1) {
56
57
  return;
57
58
  }
59
+ fieldNamesMap[name] = name;
58
60
  if (!field.type) {
59
61
  type += "".concat(name, ": JSON ");
60
62
  return;
@@ -109,27 +111,23 @@ function generateSettingsGraphql(objectConfig) {
109
111
  }
110
112
  });
111
113
  var _display_type_name = "".concat(consts_1.DISPLAY_PREFIX, "_").concat(objectName);
112
- type += "".concat(consts_1.DISPLAY_PREFIX, "(fields: [String]): ").concat(_display_type_name, " ");
114
+ type += "".concat(consts_1.DISPLAY_PREFIX, ": ").concat(_display_type_name, " ");
113
115
  resolvers[objectName][consts_1.DISPLAY_PREFIX] = {
114
116
  action: "".concat((0, __1.getObjectServiceName)(objectName), ".").concat(consts_1.GRAPHQL_ACTION_PREFIX).concat(consts_1.DISPLAY_PREFIX),
115
- rootParams: {
116
- _id: "_id",
117
- },
117
+ rootParams: tslib_1.__assign({ _id: "_id" }, fieldNamesMap),
118
118
  params: {
119
- objectName: objectName,
119
+ '__objectName': objectName,
120
120
  },
121
121
  };
122
122
  var _display_type = _getDisplayType(_display_type_name, fields);
123
123
  type = gql(templateObject_7 || (templateObject_7 = tslib_1.__makeTemplateObject(["\n ", "\n ", "\n "], ["\n ", "\n ", "\n "])), _display_type, type);
124
124
  var _ui_type_name = "".concat(consts_1.UI_PREFIX, "_").concat(objectName);
125
- type += "".concat(consts_1.UI_PREFIX, "(fields: [String]): ").concat(_ui_type_name, " ");
125
+ type += "".concat(consts_1.UI_PREFIX, ": ").concat(_ui_type_name, " ");
126
126
  resolvers[objectName][consts_1.UI_PREFIX] = {
127
127
  action: "".concat((0, __1.getObjectServiceName)(objectName), ".").concat(consts_1.GRAPHQL_ACTION_PREFIX).concat(consts_1.UI_PREFIX),
128
- rootParams: {
129
- _id: "_id",
130
- },
128
+ rootParams: tslib_1.__assign({ _id: "_id" }, fieldNamesMap),
131
129
  params: {
132
- objectName: objectName,
130
+ '__objectName': objectName
133
131
  },
134
132
  };
135
133
  var _ui_type = _getUIType(_ui_type_name, fields);
@@ -371,31 +369,21 @@ function getGraphqlActions(objectConfig) {
371
369
  actions["".concat(consts_1.GRAPHQL_ACTION_PREFIX).concat(consts_1.DISPLAY_PREFIX)] = {
372
370
  handler: function (ctx) {
373
371
  return tslib_1.__awaiter(this, void 0, void 0, function () {
374
- var params, _id, objectName, fields, userSession, steedosSchema, obj, selector, resolveInfo, fieldNames, doc, result;
372
+ var params, __objectName, userSession, selectFieldNames, resolveInfo, fieldNames, result;
375
373
  return tslib_1.__generator(this, function (_a) {
376
374
  switch (_a.label) {
377
375
  case 0:
378
376
  params = ctx.params;
379
- _id = params._id, objectName = params.objectName, fields = params.fields;
377
+ __objectName = params.__objectName;
380
378
  userSession = ctx.meta.user;
381
- steedosSchema = (0, __3.getSteedosSchema)();
382
- obj = steedosSchema.getObject(objectName);
383
- selector = { filters: [["_id", "=", _id]] };
384
- if (fields && fields.length > 0) {
385
- selector.fields = fields;
386
- }
387
- else {
388
- resolveInfo = ctx.meta.resolveInfo;
389
- fieldNames = (0, getQueryFields_1.getQueryFields)(resolveInfo);
390
- if (!_.isEmpty(fieldNames)) {
391
- selector.fields = fieldNames;
392
- }
379
+ selectFieldNames = [];
380
+ resolveInfo = ctx.meta.resolveInfo;
381
+ fieldNames = (0, getQueryFields_1.getQueryFields)(resolveInfo);
382
+ if (!_.isEmpty(fieldNames)) {
383
+ selectFieldNames = fieldNames;
393
384
  }
394
- return [4, obj.find(selector)];
385
+ return [4, translateToDisplay(__objectName, params, userSession, selectFieldNames)];
395
386
  case 1:
396
- doc = (_a.sent())[0];
397
- return [4, translateToDisplay(objectName, doc, userSession)];
398
- case 2:
399
387
  result = _a.sent();
400
388
  return [2, result];
401
389
  }
@@ -406,31 +394,21 @@ function getGraphqlActions(objectConfig) {
406
394
  actions["".concat(consts_1.GRAPHQL_ACTION_PREFIX).concat(consts_1.UI_PREFIX)] = {
407
395
  handler: function (ctx) {
408
396
  return tslib_1.__awaiter(this, void 0, void 0, function () {
409
- var params, _id, objectName, fields, userSession, steedosSchema, obj, selector, resolveInfo, fieldNames, doc, result;
397
+ var params, __objectName, userSession, selectFieldNames, resolveInfo, fieldNames, result;
410
398
  return tslib_1.__generator(this, function (_a) {
411
399
  switch (_a.label) {
412
400
  case 0:
413
401
  params = ctx.params;
414
- _id = params._id, objectName = params.objectName, fields = params.fields;
402
+ __objectName = params.__objectName;
415
403
  userSession = ctx.meta.user;
416
- steedosSchema = (0, __3.getSteedosSchema)();
417
- obj = steedosSchema.getObject(objectName);
418
- selector = { filters: [["_id", "=", _id]] };
419
- if (fields && fields.length > 0) {
420
- selector.fields = fields;
421
- }
422
- else {
423
- resolveInfo = ctx.meta.resolveInfo;
424
- fieldNames = (0, getQueryFields_1.getQueryFields)(resolveInfo);
425
- if (!_.isEmpty(fieldNames)) {
426
- selector.fields = fieldNames;
427
- }
404
+ selectFieldNames = [];
405
+ resolveInfo = ctx.meta.resolveInfo;
406
+ fieldNames = (0, getQueryFields_1.getQueryFields)(resolveInfo);
407
+ if (!_.isEmpty(fieldNames)) {
408
+ selectFieldNames = fieldNames;
428
409
  }
429
- return [4, obj.find(selector)];
410
+ return [4, translateToUI(__objectName, params, userSession, selectFieldNames)];
430
411
  case 1:
431
- doc = (_a.sent())[0];
432
- return [4, translateToUI(objectName, doc, userSession)];
433
- case 2:
434
412
  result = _a.sent();
435
413
  return [2, result];
436
414
  }
@@ -508,26 +486,27 @@ var numberToString = function (number, scale, notThousands) {
508
486
  return "";
509
487
  }
510
488
  };
511
- function translateToDisplay(objectName, doc, userSession) {
489
+ function translateToDisplay(objectName, doc, userSession, selectorFieldNames) {
512
490
  return tslib_1.__awaiter(this, void 0, void 0, function () {
513
- var lng, steedosSchema, object, objConfig, fields, displayObj, utcOffset, _loop_1, _a, _b, _i, name;
514
- return tslib_1.__generator(this, function (_c) {
515
- switch (_c.label) {
491
+ var lng, steedosSchema, object, objConfig, fields, displayObj, utcOffset, _loop_1, selectorFieldNames_1, selectorFieldNames_1_1, name, e_2_1;
492
+ var e_2, _a;
493
+ return tslib_1.__generator(this, function (_b) {
494
+ switch (_b.label) {
516
495
  case 0:
517
496
  lng = (0, __3.getUserLocale)(userSession);
518
497
  steedosSchema = (0, __3.getSteedosSchema)();
519
498
  object = steedosSchema.getObject(objectName);
520
499
  return [4, object.toConfig()];
521
500
  case 1:
522
- objConfig = _c.sent();
501
+ objConfig = _b.sent();
523
502
  fields = objConfig.fields;
524
- (0, i18n_1.translationObject)(lng, objConfig.name, objConfig);
503
+ (0, i18n_1.translationObject)(lng, objConfig.name, objConfig, true);
525
504
  displayObj = { _id: doc._id };
526
505
  utcOffset = userSession.utcOffset;
527
506
  _loop_1 = function (name) {
528
507
  var field, fType, label, map_1, value, translatedField, translatedFieldOptions, labels_1, i, refTo, refField, refValue, refObj, nameFieldKey, refRecords, refRecord, refTo, refField, refValue, refObj, nameFieldKey, refRecords, refRecord, refValue, refTo, refValues, refObj, nameFieldKey, refRecords, fileLabel, value, fileObjectName, fileObject, fileNameFieldKey, fileRecords, fileRecord;
529
- return tslib_1.__generator(this, function (_d) {
530
- switch (_d.label) {
508
+ return tslib_1.__generator(this, function (_c) {
509
+ switch (_c.label) {
531
510
  case 0:
532
511
  if (!Object.prototype.hasOwnProperty.call(fields, name)) return [3, 41];
533
512
  field = fields[name];
@@ -631,14 +610,14 @@ function translateToDisplay(objectName, doc, userSession) {
631
610
  refObj = steedosSchema.getObject(refTo);
632
611
  return [4, refObj.getNameFieldKey()];
633
612
  case 14:
634
- nameFieldKey = _d.sent();
613
+ nameFieldKey = _c.sent();
635
614
  if (!field.multiple) return [3, 16];
636
615
  return [4, refObj.find({
637
616
  filters: [refField, "in", refValue],
638
617
  fields: [nameFieldKey],
639
618
  })];
640
619
  case 15:
641
- refRecords = _d.sent();
620
+ refRecords = _c.sent();
642
621
  displayObj[name] = _.pluck(refRecords, nameFieldKey).join(',');
643
622
  return [3, 18];
644
623
  case 16: return [4, refObj.find({
@@ -646,11 +625,11 @@ function translateToDisplay(objectName, doc, userSession) {
646
625
  fields: [nameFieldKey],
647
626
  })];
648
627
  case 17:
649
- refRecord = (_d.sent())[0];
628
+ refRecord = (_c.sent())[0];
650
629
  if (refRecord) {
651
630
  displayObj[name] = refRecord[nameFieldKey];
652
631
  }
653
- _d.label = 18;
632
+ _c.label = 18;
654
633
  case 18: return [3, 39];
655
634
  case 19:
656
635
  if (!(fType == "master_detail" && _.isString(field.reference_to))) return [3, 25];
@@ -667,14 +646,14 @@ function translateToDisplay(objectName, doc, userSession) {
667
646
  refObj = steedosSchema.getObject(refTo);
668
647
  return [4, refObj.getNameFieldKey()];
669
648
  case 20:
670
- nameFieldKey = _d.sent();
649
+ nameFieldKey = _c.sent();
671
650
  if (!field.multiple) return [3, 22];
672
651
  return [4, refObj.find({
673
652
  filters: [refField, "in", refValue],
674
653
  fields: [nameFieldKey],
675
654
  })];
676
655
  case 21:
677
- refRecords = _d.sent();
656
+ refRecords = _c.sent();
678
657
  displayObj[name] = _.pluck(refRecords, nameFieldKey).join(',');
679
658
  return [3, 24];
680
659
  case 22: return [4, refObj.find({
@@ -682,11 +661,11 @@ function translateToDisplay(objectName, doc, userSession) {
682
661
  fields: [nameFieldKey],
683
662
  })];
684
663
  case 23:
685
- refRecord = (_d.sent())[0];
664
+ refRecord = (_c.sent())[0];
686
665
  if (refRecord) {
687
666
  displayObj[name] = refRecord[nameFieldKey];
688
667
  }
689
- _d.label = 24;
668
+ _c.label = 24;
690
669
  case 24: return [3, 39];
691
670
  case 25:
692
671
  if (!((fType == "master_detail" || fType == "lookup") && field.reference_to && !_.isString(field.reference_to))) return [3, 28];
@@ -702,13 +681,13 @@ function translateToDisplay(objectName, doc, userSession) {
702
681
  refObj = steedosSchema.getObject(refTo);
703
682
  return [4, refObj.getNameFieldKey()];
704
683
  case 26:
705
- nameFieldKey = _d.sent();
684
+ nameFieldKey = _c.sent();
706
685
  return [4, refObj.find({
707
686
  filters: ["_id", "in", refValues],
708
687
  fields: [nameFieldKey]
709
688
  })];
710
689
  case 27:
711
- refRecords = _d.sent();
690
+ refRecords = _c.sent();
712
691
  displayObj[name] = _.pluck(refRecords, nameFieldKey).join(',');
713
692
  return [3, 39];
714
693
  case 28:
@@ -747,7 +726,7 @@ function translateToDisplay(objectName, doc, userSession) {
747
726
  fields: [fileNameFieldKey],
748
727
  })];
749
728
  case 34:
750
- fileRecords = _d.sent();
729
+ fileRecords = _c.sent();
751
730
  fileLabel = _.map(fileRecords, function (fileRecord) {
752
731
  var _a;
753
732
  return (_a = fileRecord.original) === null || _a === void 0 ? void 0 : _a.name;
@@ -758,42 +737,53 @@ function translateToDisplay(objectName, doc, userSession) {
758
737
  fields: [fileNameFieldKey],
759
738
  })];
760
739
  case 36:
761
- fileRecord = (_d.sent())[0];
740
+ fileRecord = (_c.sent())[0];
762
741
  if (fileRecord) {
763
742
  fileLabel = fileRecord["original"]["name"];
764
743
  }
765
- _d.label = 37;
744
+ _c.label = 37;
766
745
  case 37:
767
746
  displayObj[name] = fileLabel;
768
747
  return [3, 39];
769
748
  case 38:
770
749
  console.error("Graphql Display: need to handle new field type ".concat(field.type, " for ").concat(objectName, "."));
771
750
  displayObj[name] = doc[name] || "";
772
- _d.label = 39;
751
+ _c.label = 39;
773
752
  case 39: return [3, 41];
774
753
  case 40:
775
754
  displayObj[name] = "";
776
- _d.label = 41;
755
+ _c.label = 41;
777
756
  case 41: return [2];
778
757
  }
779
758
  });
780
759
  };
781
- _a = [];
782
- for (_b in fields)
783
- _a.push(_b);
784
- _i = 0;
785
- _c.label = 2;
760
+ _b.label = 2;
786
761
  case 2:
787
- if (!(_i < _a.length)) return [3, 5];
788
- name = _a[_i];
789
- return [5, _loop_1(name)];
762
+ _b.trys.push([2, 7, 8, 9]);
763
+ selectorFieldNames_1 = tslib_1.__values(selectorFieldNames), selectorFieldNames_1_1 = selectorFieldNames_1.next();
764
+ _b.label = 3;
790
765
  case 3:
791
- _c.sent();
792
- _c.label = 4;
766
+ if (!!selectorFieldNames_1_1.done) return [3, 6];
767
+ name = selectorFieldNames_1_1.value;
768
+ return [5, _loop_1(name)];
793
769
  case 4:
794
- _i++;
795
- return [3, 2];
796
- case 5: return [2, displayObj];
770
+ _b.sent();
771
+ _b.label = 5;
772
+ case 5:
773
+ selectorFieldNames_1_1 = selectorFieldNames_1.next();
774
+ return [3, 3];
775
+ case 6: return [3, 9];
776
+ case 7:
777
+ e_2_1 = _b.sent();
778
+ e_2 = { error: e_2_1 };
779
+ return [3, 9];
780
+ case 8:
781
+ try {
782
+ if (selectorFieldNames_1_1 && !selectorFieldNames_1_1.done && (_a = selectorFieldNames_1.return)) _a.call(selectorFieldNames_1);
783
+ }
784
+ finally { if (e_2) throw e_2.error; }
785
+ return [7];
786
+ case 9: return [2, displayObj];
797
787
  }
798
788
  });
799
789
  });
@@ -824,49 +814,33 @@ var getFileStorageName = function (type) {
824
814
  break;
825
815
  }
826
816
  };
827
- function translateToUI(objectName, doc, userSession) {
817
+ function translateToUI(objectName, doc, userSession, selectorFieldNames) {
828
818
  var _a, _b;
829
819
  return tslib_1.__awaiter(this, void 0, void 0, function () {
830
- var lng, steedosSchema, object, objConfig, fields, displayObj, utcOffset, _loop_2, _c, _d, _i, name;
831
- return tslib_1.__generator(this, function (_e) {
832
- switch (_e.label) {
820
+ var lng, steedosSchema, object, objConfig, fields, displayObj, _loop_2, selectorFieldNames_2, selectorFieldNames_2_1, name, e_3_1;
821
+ var e_3, _c;
822
+ return tslib_1.__generator(this, function (_d) {
823
+ switch (_d.label) {
833
824
  case 0:
834
825
  lng = (0, __3.getUserLocale)(userSession);
835
826
  steedosSchema = (0, __3.getSteedosSchema)();
836
827
  object = steedosSchema.getObject(objectName);
837
828
  return [4, object.toConfig()];
838
829
  case 1:
839
- objConfig = _e.sent();
830
+ objConfig = _d.sent();
840
831
  fields = objConfig.fields;
841
- (0, i18n_1.translationObject)(lng, objConfig.name, objConfig);
832
+ (0, i18n_1.translationObject)(lng, objConfig.name, objConfig, true);
842
833
  displayObj = { _id: doc._id };
843
- utcOffset = userSession.utcOffset;
844
834
  _loop_2 = function (name) {
845
- var field, fType, label, map_2, value, translatedField, translatedFieldOptions, labels_2, i, refTo_1, refField, refValue, refObj, nameFieldKey_1, refRecords, refRecord, refTo_2, refField, refValue, refObj, nameFieldKey_2, refRecords, refRecord, refValue, refTo_3, refValues, refObj, nameFieldKey_3, refRecords, fileValue, value, storageName_1, fileObjectName, fileObject, fileNameFieldKey, fileRecords, fileRecord;
846
- return tslib_1.__generator(this, function (_f) {
847
- switch (_f.label) {
835
+ var field, fType, label, map_2, value, translatedField, translatedFieldOptions, labels_2, refTo_1, refField, refValue, refObj, nameFieldKey_1, refRecords, refRecord, refTo_2, refField, refValue, refObj, nameFieldKey_2, refRecords, refRecord, refValue, refTo_3, refValues, refObj, nameFieldKey_3, refRecords, fileValue, value, storageName_1, fileObjectName, fileObject, fileNameFieldKey, fileRecords, fileRecord;
836
+ return tslib_1.__generator(this, function (_e) {
837
+ switch (_e.label) {
848
838
  case 0:
849
- if (!Object.prototype.hasOwnProperty.call(fields, name)) return [3, 41];
839
+ if (!Object.prototype.hasOwnProperty.call(fields, name)) return [3, 26];
850
840
  field = fields[name];
851
- if (!_.has(doc, name)) return [3, 40];
841
+ if (!_.has(doc, name)) return [3, 25];
852
842
  fType = field.type;
853
- if (!(fType == "text")) return [3, 1];
854
- displayObj[name] = doc[name] || "";
855
- return [3, 39];
856
- case 1:
857
- if (!(fType == "textarea")) return [3, 2];
858
- displayObj[name] = doc[name] || "";
859
- return [3, 39];
860
- case 2:
861
- if (!(fType == "html_text")) return [3, 3];
862
- displayObj[name] = doc[name] || "";
863
- return [3, 39];
864
- case 3:
865
- if (!(fType == "html")) return [3, 4];
866
- displayObj[name] = doc[name] || "";
867
- return [3, 39];
868
- case 4:
869
- if (!(fType == "select")) return [3, 5];
843
+ if (!(fType == "select")) return [3, 1];
870
844
  label = "";
871
845
  map_2 = {};
872
846
  value = doc[name];
@@ -886,55 +860,9 @@ function translateToUI(objectName, doc, userSession) {
886
860
  label = map_2[value];
887
861
  }
888
862
  displayObj[name] = label;
889
- return [3, 39];
890
- case 5:
891
- if (!(fType == "boolean")) return [3, 6];
892
- if (doc[name]) {
893
- displayObj[name] = "√";
894
- }
895
- else {
896
- displayObj[name] = "";
897
- }
898
- return [3, 39];
899
- case 6:
900
- if (!(fType == "date")) return [3, 7];
901
- displayObj[name] = doc[name] ? moment.utc(doc[name])
902
- .format("YYYY-MM-DD") : '';
903
- return [3, 39];
904
- case 7:
905
- if (!(fType == "datetime")) return [3, 8];
906
- displayObj[name] = doc[name] ? moment(doc[name])
907
- .utcOffset(utcOffset)
908
- .format("YYYY-MM-DD HH:mm") : '';
909
- return [3, 39];
910
- case 8:
911
- if (!(fType == "time")) return [3, 9];
912
- displayObj[name] = doc[name] ? moment.utc(doc[name])
913
- .format("HH:mm") : '';
914
- return [3, 39];
915
- case 9:
916
- if (!(fType == "number")) return [3, 10];
917
- displayObj[name] = doc[name] ? numberToString(doc[name], field.scale) : "";
918
- return [3, 39];
919
- case 10:
920
- if (!(fType == "currency")) return [3, 11];
921
- displayObj[name] = doc[name] ? numberToString(doc[name], field.scale) : "";
922
- return [3, 39];
923
- case 11:
924
- if (!(fType == "percent")) return [3, 12];
925
- displayObj[name] = "".concat(doc[name] * 100, "%");
926
- return [3, 39];
927
- case 12:
928
- if (!(fType == "password")) return [3, 13];
929
- displayObj[name] = "";
930
- if (_.isString(doc[name])) {
931
- for (i = 0; i < doc[name].length; i++) {
932
- displayObj[name] += "*";
933
- }
934
- }
935
- return [3, 39];
936
- case 13:
937
- if (!(fType == "lookup" && _.isString(field.reference_to))) return [3, 19];
863
+ return [3, 24];
864
+ case 1:
865
+ if (!(fType == "lookup" && _.isString(field.reference_to))) return [3, 7];
938
866
  refTo_1 = field.reference_to;
939
867
  refField = field.reference_to_field || '_id';
940
868
  if (refTo_1 === 'users') {
@@ -947,15 +875,15 @@ function translateToUI(objectName, doc, userSession) {
947
875
  }
948
876
  refObj = steedosSchema.getObject(refTo_1);
949
877
  return [4, refObj.getNameFieldKey()];
950
- case 14:
951
- nameFieldKey_1 = _f.sent();
952
- if (!field.multiple) return [3, 16];
878
+ case 2:
879
+ nameFieldKey_1 = _e.sent();
880
+ if (!field.multiple) return [3, 4];
953
881
  return [4, refObj.find({
954
882
  filters: [refField, "in", refValue],
955
883
  fields: [nameFieldKey_1],
956
884
  })];
957
- case 15:
958
- refRecords = _f.sent();
885
+ case 3:
886
+ refRecords = _e.sent();
959
887
  displayObj[name] = _.map(refRecords, function (item) {
960
888
  return {
961
889
  objectName: refTo_1,
@@ -963,13 +891,13 @@ function translateToUI(objectName, doc, userSession) {
963
891
  label: item[nameFieldKey_1]
964
892
  };
965
893
  });
966
- return [3, 18];
967
- case 16: return [4, refObj.find({
894
+ return [3, 6];
895
+ case 4: return [4, refObj.find({
968
896
  filters: [refField, "=", refValue],
969
897
  fields: [nameFieldKey_1],
970
898
  })];
971
- case 17:
972
- refRecord = (_f.sent())[0];
899
+ case 5:
900
+ refRecord = (_e.sent())[0];
973
901
  if (refRecord) {
974
902
  displayObj[name] = {
975
903
  objectName: refTo_1,
@@ -977,10 +905,10 @@ function translateToUI(objectName, doc, userSession) {
977
905
  label: refRecord[nameFieldKey_1]
978
906
  };
979
907
  }
980
- _f.label = 18;
981
- case 18: return [3, 39];
982
- case 19:
983
- if (!(fType == "master_detail" && _.isString(field.reference_to))) return [3, 25];
908
+ _e.label = 6;
909
+ case 6: return [3, 24];
910
+ case 7:
911
+ if (!(fType == "master_detail" && _.isString(field.reference_to))) return [3, 13];
984
912
  refTo_2 = field.reference_to;
985
913
  refField = field.reference_to_field || '_id';
986
914
  if (refTo_2 === 'users') {
@@ -993,15 +921,15 @@ function translateToUI(objectName, doc, userSession) {
993
921
  }
994
922
  refObj = steedosSchema.getObject(refTo_2);
995
923
  return [4, refObj.getNameFieldKey()];
996
- case 20:
997
- nameFieldKey_2 = _f.sent();
998
- if (!field.multiple) return [3, 22];
924
+ case 8:
925
+ nameFieldKey_2 = _e.sent();
926
+ if (!field.multiple) return [3, 10];
999
927
  return [4, refObj.find({
1000
928
  filters: [refField, "in", refValue],
1001
929
  fields: [nameFieldKey_2],
1002
930
  })];
1003
- case 21:
1004
- refRecords = _f.sent();
931
+ case 9:
932
+ refRecords = _e.sent();
1005
933
  displayObj[name] = _.map(refRecords, function (item) {
1006
934
  return {
1007
935
  objectName: refTo_2,
@@ -1009,13 +937,13 @@ function translateToUI(objectName, doc, userSession) {
1009
937
  label: item[nameFieldKey_2]
1010
938
  };
1011
939
  });
1012
- return [3, 24];
1013
- case 22: return [4, refObj.find({
940
+ return [3, 12];
941
+ case 10: return [4, refObj.find({
1014
942
  filters: [refField, "=", refValue],
1015
943
  fields: [nameFieldKey_2],
1016
944
  })];
1017
- case 23:
1018
- refRecord = (_f.sent())[0];
945
+ case 11:
946
+ refRecord = (_e.sent())[0];
1019
947
  if (refRecord) {
1020
948
  displayObj[name] = {
1021
949
  objectName: refTo_2,
@@ -1023,10 +951,10 @@ function translateToUI(objectName, doc, userSession) {
1023
951
  label: refRecord[nameFieldKey_2]
1024
952
  };
1025
953
  }
1026
- _f.label = 24;
1027
- case 24: return [3, 39];
1028
- case 25:
1029
- if (!((fType == "master_detail" || fType == "lookup") && field.reference_to && !_.isString(field.reference_to))) return [3, 28];
954
+ _e.label = 12;
955
+ case 12: return [3, 24];
956
+ case 13:
957
+ if (!((fType == "master_detail" || fType == "lookup") && field.reference_to && !_.isString(field.reference_to))) return [3, 16];
1030
958
  refValue = doc[name];
1031
959
  if (!refValue) {
1032
960
  return [2, "continue"];
@@ -1038,14 +966,14 @@ function translateToUI(objectName, doc, userSession) {
1038
966
  }
1039
967
  refObj = steedosSchema.getObject(refTo_3);
1040
968
  return [4, refObj.getNameFieldKey()];
1041
- case 26:
1042
- nameFieldKey_3 = _f.sent();
969
+ case 14:
970
+ nameFieldKey_3 = _e.sent();
1043
971
  return [4, refObj.find({
1044
972
  filters: ["_id", "in", refValues],
1045
973
  fields: [nameFieldKey_3]
1046
974
  })];
1047
- case 27:
1048
- refRecords = _f.sent();
975
+ case 15:
976
+ refRecords = _e.sent();
1049
977
  displayObj[name] = _.map(refRecords, function (item) {
1050
978
  return {
1051
979
  objectName: refTo_3,
@@ -1053,29 +981,17 @@ function translateToUI(objectName, doc, userSession) {
1053
981
  label: item[nameFieldKey_3]
1054
982
  };
1055
983
  });
1056
- return [3, 39];
1057
- case 28:
1058
- if (!(fType == "autonumber")) return [3, 29];
1059
- displayObj[name] = doc[name] || "";
1060
- return [3, 39];
1061
- case 29:
1062
- if (!(fType == "url")) return [3, 30];
1063
- displayObj[name] = doc[name] || "";
1064
- return [3, 39];
1065
- case 30:
1066
- if (!(fType == "email")) return [3, 31];
1067
- displayObj[name] = doc[name] || "";
1068
- return [3, 39];
1069
- case 31:
1070
- if (!(fType == "formula")) return [3, 32];
1071
- displayObj[name] = doc[name] || "";
1072
- return [3, 39];
1073
- case 32:
1074
- if (!(fType == "summary")) return [3, 33];
1075
- displayObj[name] = doc[name] || "";
1076
- return [3, 39];
1077
- case 33:
1078
- if (!(fType == "image" || fType == "file" || fType === 'avatar')) return [3, 38];
984
+ return [3, 24];
985
+ case 16:
986
+ if (!(fType == "formula")) return [3, 17];
987
+ displayObj[name] = formatBasicFieldValue(field.data_type, field, doc[name], objConfig, userSession);
988
+ return [3, 24];
989
+ case 17:
990
+ if (!(fType == "summary")) return [3, 18];
991
+ displayObj[name] = formatBasicFieldValue('number', field, doc[name], objConfig, userSession);
992
+ return [3, 24];
993
+ case 18:
994
+ if (!(fType == "image" || fType == "file" || fType === 'avatar')) return [3, 23];
1079
995
  fileValue = null;
1080
996
  value = doc[name];
1081
997
  if (!value) {
@@ -1085,13 +1001,13 @@ function translateToUI(objectName, doc, userSession) {
1085
1001
  fileObjectName = "cfs_".concat(storageName_1, "_filerecord");
1086
1002
  fileObject = steedosSchema.getObject(fileObjectName);
1087
1003
  fileNameFieldKey = "original.name";
1088
- if (!field.multiple) return [3, 35];
1004
+ if (!field.multiple) return [3, 20];
1089
1005
  return [4, fileObject.find({
1090
1006
  filters: ["_id", "in", value],
1091
1007
  fields: ['_id', fileNameFieldKey, 'original.size', 'original.type'],
1092
1008
  })];
1093
- case 34:
1094
- fileRecords = _f.sent();
1009
+ case 19:
1010
+ fileRecords = _e.sent();
1095
1011
  fileValue = _.map(fileRecords, function (fileRecord) {
1096
1012
  var _a, _b, _c;
1097
1013
  return {
@@ -1101,13 +1017,13 @@ function translateToUI(objectName, doc, userSession) {
1101
1017
  type: (_c = fileRecord.original) === null || _c === void 0 ? void 0 : _c.type,
1102
1018
  };
1103
1019
  });
1104
- return [3, 37];
1105
- case 35: return [4, fileObject.find({
1020
+ return [3, 22];
1021
+ case 20: return [4, fileObject.find({
1106
1022
  filters: ["_id", "=", value],
1107
1023
  fields: ['_id', fileNameFieldKey, 'original.size', 'original.type'],
1108
1024
  })];
1109
- case 36:
1110
- fileRecord = (_f.sent())[0];
1025
+ case 21:
1026
+ fileRecord = (_e.sent())[0];
1111
1027
  if (fileRecord) {
1112
1028
  fileValue = {
1113
1029
  name: fileRecord["original"]["name"],
@@ -1116,42 +1032,82 @@ function translateToUI(objectName, doc, userSession) {
1116
1032
  type: (_b = fileRecord.original) === null || _b === void 0 ? void 0 : _b.type
1117
1033
  };
1118
1034
  }
1119
- _f.label = 37;
1120
- case 37:
1035
+ _e.label = 22;
1036
+ case 22:
1121
1037
  displayObj[name] = fileValue;
1122
- return [3, 39];
1123
- case 38:
1124
- console.error("Graphql Display: need to handle new field type ".concat(field.type, " for ").concat(objectName, "."));
1125
- displayObj[name] = doc[name] || "";
1126
- _f.label = 39;
1127
- case 39: return [3, 41];
1128
- case 40:
1038
+ return [3, 24];
1039
+ case 23:
1040
+ displayObj[name] = formatBasicFieldValue(fType, field, doc[name], objConfig, userSession);
1041
+ _e.label = 24;
1042
+ case 24: return [3, 26];
1043
+ case 25:
1129
1044
  displayObj[name] = "";
1130
- _f.label = 41;
1131
- case 41: return [2];
1045
+ _e.label = 26;
1046
+ case 26: return [2];
1132
1047
  }
1133
1048
  });
1134
1049
  };
1135
- _c = [];
1136
- for (_d in fields)
1137
- _c.push(_d);
1138
- _i = 0;
1139
- _e.label = 2;
1050
+ _d.label = 2;
1140
1051
  case 2:
1141
- if (!(_i < _c.length)) return [3, 5];
1142
- name = _c[_i];
1143
- return [5, _loop_2(name)];
1052
+ _d.trys.push([2, 7, 8, 9]);
1053
+ selectorFieldNames_2 = tslib_1.__values(selectorFieldNames), selectorFieldNames_2_1 = selectorFieldNames_2.next();
1054
+ _d.label = 3;
1144
1055
  case 3:
1145
- _e.sent();
1146
- _e.label = 4;
1056
+ if (!!selectorFieldNames_2_1.done) return [3, 6];
1057
+ name = selectorFieldNames_2_1.value;
1058
+ return [5, _loop_2(name)];
1147
1059
  case 4:
1148
- _i++;
1149
- return [3, 2];
1150
- case 5: return [2, displayObj];
1060
+ _d.sent();
1061
+ _d.label = 5;
1062
+ case 5:
1063
+ selectorFieldNames_2_1 = selectorFieldNames_2.next();
1064
+ return [3, 3];
1065
+ case 6: return [3, 9];
1066
+ case 7:
1067
+ e_3_1 = _d.sent();
1068
+ e_3 = { error: e_3_1 };
1069
+ return [3, 9];
1070
+ case 8:
1071
+ try {
1072
+ if (selectorFieldNames_2_1 && !selectorFieldNames_2_1.done && (_c = selectorFieldNames_2.return)) _c.call(selectorFieldNames_2);
1073
+ }
1074
+ finally { if (e_3) throw e_3.error; }
1075
+ return [7];
1076
+ case 9: return [2, displayObj];
1151
1077
  }
1152
1078
  });
1153
1079
  });
1154
1080
  }
1081
+ function formatBasicFieldValue(valueType, field, value, objectConfig, userSession) {
1082
+ switch (valueType) {
1083
+ case 'text':
1084
+ case 'textarea':
1085
+ case 'html_text':
1086
+ case 'autonumber':
1087
+ case 'url':
1088
+ case 'email':
1089
+ case 'html':
1090
+ return value || "";
1091
+ case 'boolean':
1092
+ return value ? "√" : "";
1093
+ case 'date':
1094
+ return value ? moment.utc(value).format("YYYY-MM-DD") : '';
1095
+ case 'datetime':
1096
+ return value ? moment(value).utcOffset(userSession.utcOffset).format("YYYY-MM-DD HH:mm") : '';
1097
+ case 'time':
1098
+ return value ? moment.utc(value).format("HH:mm") : '';
1099
+ case 'number':
1100
+ case 'currency':
1101
+ return value ? numberToString(value, field.scale) : "";
1102
+ case 'percent':
1103
+ return "".concat(value * 100, "%");
1104
+ case 'password':
1105
+ return _.isString(value) ? "******" : "";
1106
+ default:
1107
+ console.error("Graphql Display: need to handle new field type ".concat(field.type, " for ").concat(objectConfig.name, "."));
1108
+ return value || "";
1109
+ }
1110
+ }
1155
1111
  function _getUIType(typeName, fields) {
1156
1112
  var type = "type ".concat(typeName, " { _id: String ");
1157
1113
  if (_.has(fields, "_id")) {