owl-cli 7.44.0 → 7.46.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.
@@ -10,8 +10,8 @@
10
10
  //#import @handlers/include/diff.jsx
11
11
  //#import $owl_task_info:services/modelService.jsx
12
12
 
13
- function trim(s){
14
- if(s){
13
+ function trim(s) {
14
+ if (s) {
15
15
  return s.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, '');
16
16
  }
17
17
  return ""
@@ -22,6 +22,11 @@ var @projectCodeService = (function (pigeon) {
22
22
  var listPrefix = '@projectCode'
23
23
 
24
24
  var spec = @spec
25
+ var meta = spec['#meta'];
26
+ var pigeonName = meta["pigeon"];
27
+ if (pigeonName && pigeon.setPigeon) {
28
+ pigeon.setPigeon(pigeonName);
29
+ }
25
30
 
26
31
  var formSpecs = @formSpecs
27
32
 
@@ -37,24 +42,23 @@ var @projectCodeService = (function (pigeon) {
37
42
  getId: function (data) {
38
43
  //默认实现是直接返回一个递增的Id
39
44
  //其他实现方式包括从data中获取数据构造出一个Id
40
- if(data.id){
45
+ if (data.id) {
41
46
  return data.id;
42
47
  }
43
48
  //@idOrig
44
49
  if (idFunc) {
45
50
  return objPrefix + '_' + idFunc(data)
46
- }
47
- else {
51
+ } else {
48
52
  var seq = pigeon.getId(objPrefix)
49
53
  return objPrefix + '_' + seq
50
54
  }
51
55
  },
52
56
 
53
- getSpec:function(){
57
+ getSpec: function () {
54
58
  return spec;
55
59
  },
56
60
 
57
- getFormSpec:function(){
61
+ getFormSpec: function () {
58
62
  return formSpecs;
59
63
  },
60
64
 
@@ -62,16 +66,15 @@ var @projectCodeService = (function (pigeon) {
62
66
  //@lockOrig
63
67
  if (lockFunc) {
64
68
  return lockFunc(data)
65
- }
66
- else {
69
+ } else {
67
70
  return data['id']
68
71
  }
69
72
  },
70
73
 
71
- lock:function(key){
74
+ lock: function (key) {
72
75
  pigeon.lock(key);
73
76
  },
74
- unlock:function(key){
77
+ unlock: function (key) {
75
78
  pigeon.unlock(key);
76
79
  },
77
80
 
@@ -82,7 +85,8 @@ var @projectCodeService = (function (pigeon) {
82
85
  * 适用范围是中小型电商系统的商品分类数,地区管理等
83
86
  *
84
87
  */
85
- getTree(){},
88
+ getTree() {
89
+ },
86
90
 
87
91
  getAllListName: function (data) {
88
92
  return listPrefix + '_all'
@@ -93,29 +97,27 @@ var @projectCodeService = (function (pigeon) {
93
97
  var curData = data
94
98
  for (var i = 0; i < path.length; i++) {
95
99
  var curKey = path[i]
96
- if (typeof(curData) == 'object' && curData != null) {
100
+ if (typeof (curData) == 'object' && curData != null) {
97
101
  curData = curData[curKey]
98
- }
99
- else {
102
+ } else {
100
103
  return null
101
104
  }
102
105
  }
103
106
  return curData
104
107
  },
105
- deleteValue:function(fullkey,data){
108
+ deleteValue: function (fullkey, data) {
106
109
  var path = fullkey.split('.')
107
110
  var curData = data
108
- for (var i = 0; i < path.length-1; i++) {
111
+ for (var i = 0; i < path.length - 1; i++) {
109
112
  var curKey = path[i]
110
- if (typeof(curData) == 'object' && curData != null) {
113
+ if (typeof (curData) == 'object' && curData != null) {
111
114
  curData = curData[curKey]
112
- }
113
- else {
115
+ } else {
114
116
  return null
115
117
  }
116
118
  }
117
- if(curData){
118
- var lastKey = path[path.length-1];
119
+ if (curData) {
120
+ var lastKey = path[path.length - 1];
119
121
  delete curData[lastKey];
120
122
  }
121
123
  },
@@ -148,8 +150,8 @@ var @projectCodeService = (function (pigeon) {
148
150
  }
149
151
  if (v.indexOf('$') == 0) {
150
152
  var fullkey = v.substring(1)
151
- var newValue = f.getValue(fullkey, env);
152
- if(newValue){
153
+ var newValue = f.getValue(fullkey, env);
154
+ if (newValue) {
153
155
  return newValue;
154
156
  }
155
157
  }
@@ -157,11 +159,10 @@ var @projectCodeService = (function (pigeon) {
157
159
  },
158
160
 
159
161
 
160
-
161
- getUniqueObj:function(key,value){
162
- var pigeonKey = objPrefix+ '_' + key + '_' + DigestUtil.md5(value)
162
+ getUniqueObj: function (key, value) {
163
+ var pigeonKey = objPrefix + '_' + key + '_' + DigestUtil.md5(value)
163
164
  var obj = pigeon.getObject(pigeonKey);
164
- if(obj==null){
165
+ if (obj == null) {
165
166
  return null;
166
167
  }
167
168
  var id = obj.id;
@@ -181,7 +182,6 @@ var @projectCodeService = (function (pigeon) {
181
182
  },
182
183
 
183
184
 
184
-
185
185
  saveUniqueValue: function (objId, key, value) {
186
186
  var md5 = DigestUtil.md5(value)
187
187
  var pigeonKey = objPrefix + '_' + key + '_' + md5
@@ -206,19 +206,19 @@ var @projectCodeService = (function (pigeon) {
206
206
  for (var i = 0; i < fields.length; i++) {
207
207
  var field = fields[i]
208
208
  var value = f.getValue(field.key, data)
209
- if(value==null || typeof(value)=='undefined'){
209
+ if (value == null || typeof (value) == 'undefined') {
210
210
  value = field.defaultValue;
211
211
  f.setValue(field.key, value, data)
212
212
  }
213
- if (typeof(value) == 'string' && value.indexOf('$') == 0) {
213
+ if (typeof (value) == 'string' && value.indexOf('$') == 0) {
214
214
  value = f.getEnvValue(value, env)
215
215
  f.setValue(field.key, value, data)
216
216
  }
217
- if(((!value) || typeof(value)=='undefined') && field.autoGen=='true'){
218
- value =$.getUUID()
219
- f.setValue(field.key,value,data);
217
+ if (((!value) || typeof (value) == 'undefined') && field.autoGen == 'true') {
218
+ value = $.getUUID()
219
+ f.setValue(field.key, value, data);
220
220
  }
221
- if ((value==null || typeof(value)=='undefined') && field.required == 'true') {
221
+ if ((value == null || typeof (value) == 'undefined') && field.required == 'true') {
222
222
  return {'state': 'err', msg: field.fieldLabel + '不能为空。', code: 'required'}
223
223
  }
224
224
 
@@ -232,28 +232,28 @@ var @projectCodeService = (function (pigeon) {
232
232
  }
233
233
 
234
234
  var arrFields = flattenedSpecs.details;
235
- for(var j=0; j<arrFields.length; j++){
235
+ for (var j = 0; j < arrFields.length; j++) {
236
236
  var arrFieldInfo = arrFields[j];
237
- var rows = f.getValue(arrFieldInfo.name,data);
238
- if(rows){
239
- for(var k=0; k<rows.length; k++){
237
+ var rows = f.getValue(arrFieldInfo.name, data);
238
+ if (rows) {
239
+ for (var k = 0; k < rows.length; k++) {
240
240
  var row = rows[k];
241
- for(var l=0; l<arrFieldInfo.fields.length; l++){
241
+ for (var l = 0; l < arrFieldInfo.fields.length; l++) {
242
242
  var subField = arrFieldInfo.fields[l];
243
243
  var value = row[subField.origKey];
244
- if(value==null || typeof value=='undefined'){
244
+ if (value == null || typeof value == 'undefined') {
245
245
  value = subField.defaultValue;
246
246
  row[subField.origKey] = value;
247
247
  }
248
- if (typeof(value) == 'string' && value.indexOf('$') == 0) {
248
+ if (typeof (value) == 'string' && value.indexOf('$') == 0) {
249
249
  value = f.getEnvValue(value, env)
250
250
  row[subField.origKey] = value;
251
251
  }
252
- if(((!value) || typeof(value)=='undefined') && subField.autoGen=='true'){
252
+ if (((!value) || typeof (value) == 'undefined') && subField.autoGen == 'true') {
253
253
  value = $.getUUID()
254
254
  row[subField.origKey] = value;
255
255
  }
256
- if ((value==null || typeof(value)=='undefined') && subField.required == 'true') {
256
+ if ((value == null || typeof (value) == 'undefined') && subField.required == 'true') {
257
257
  return {'state': 'err', msg: arrFieldInfo.field.fieldLabel + '.' + subField.fieldLabel + '不能为空。出错的行数为:' + k, code: 'required'}
258
258
  }
259
259
  }
@@ -270,7 +270,7 @@ var @projectCodeService = (function (pigeon) {
270
270
  //对于unique的字段,检查有没有重复
271
271
  if (field.unique === 'true') {
272
272
  var value = f.getValue(field.key, data)
273
- if (!value || (typeof(value) == 'string' && value.indexOf('$') == 0)) {
273
+ if (!value || (typeof (value) == 'string' && value.indexOf('$') == 0)) {
274
274
  value = f.getEnvValue(field.defaultValue, env)
275
275
  if (value) {
276
276
  f.setValue(field.key, value, data)
@@ -280,7 +280,7 @@ var @projectCodeService = (function (pigeon) {
280
280
  throw {'state': 'err', msg: field.fieldLabel + '不能为空。', code: 'required'}
281
281
  }
282
282
 
283
- if(value && typeof(value)=='string'){
283
+ if (value && typeof (value) == 'string') {
284
284
  if (f.isDuplicated(data.id, field.key, value)) {
285
285
  throw {'state': 'err', msg: field.fieldLabel + '不能重复。value=' + value, code: 'duplicated'}
286
286
  }
@@ -300,13 +300,13 @@ var @projectCodeService = (function (pigeon) {
300
300
  //对于unique的字段,检查有没有重复
301
301
  if (field.unique === 'true') {
302
302
  var value = f.getValue(field.key, data)
303
- if (!value || (typeof(value) == 'string' && value.indexOf('$') == 0)) {
303
+ if (!value || (typeof (value) == 'string' && value.indexOf('$') == 0)) {
304
304
  value = f.getEnvValue(field.defaultValue, env)
305
305
  if (value) {
306
306
  f.setValue(field.key, value, data)
307
307
  }
308
308
  }
309
- if(value && typeof(value)=='string'){
309
+ if (value && typeof (value) == 'string') {
310
310
  f.removeUniqueValue(data.id, field.key, value)
311
311
  }
312
312
  }
@@ -339,10 +339,10 @@ var @projectCodeService = (function (pigeon) {
339
339
  }
340
340
  },
341
341
 
342
- getField:function(fullKey){
343
- var matchedField=null;
344
- f.tranverseFields(formSpecs,function(field,ctx){
345
- if(field.key===fullKey){
342
+ getField: function (fullKey) {
343
+ var matchedField = null;
344
+ f.tranverseFields(formSpecs, function (field, ctx) {
345
+ if (field.key === fullKey) {
346
346
  matchedField = field;
347
347
  }
348
348
  });
@@ -352,12 +352,10 @@ var @projectCodeService = (function (pigeon) {
352
352
  formSpec.fields.forEach(function (field) {
353
353
  if (field['_ft'] == 'field') {
354
354
  callback(field, ctx)
355
- }
356
- else if (field['_ft'] == 'subform') {
355
+ } else if (field['_ft'] == 'subform') {
357
356
  var context = {parentField: field}
358
357
  f.tranverseFields(field, callback, context)
359
- }
360
- else if (field['_ft'] == 'array') {
358
+ } else if (field['_ft'] == 'array') {
361
359
  var context = {parentField: field}
362
360
  f.tranverseFields(field, callback, context)
363
361
  }
@@ -370,27 +368,25 @@ var @projectCodeService = (function (pigeon) {
370
368
  }
371
369
  switch (spec.fieldType) {
372
370
  case 'string':
373
- if(typeof value=='number'){
371
+ if (typeof value == 'number') {
374
372
  value = value + '';
375
373
  }
376
374
  return value + ''
377
375
  case 'number':
378
376
  if (isNaN(value)) {
379
377
  return null
380
- }
381
- else {
378
+ } else {
382
379
  value = Number(value)
383
380
  return value
384
381
  }
385
382
  case 'date':
386
- try{
387
- if(isNaN(value)){
383
+ try {
384
+ if (isNaN(value)) {
388
385
  return value;
389
386
  }
390
387
 
391
388
  return new Date(Number(value)).toISOString();
392
- }
393
- catch(e){
389
+ } catch (e) {
394
390
  return null;
395
391
  }
396
392
 
@@ -410,12 +406,12 @@ var @projectCodeService = (function (pigeon) {
410
406
  var obj = JSON.parse(JSON.stringify(data))
411
407
 
412
408
  var newObj = {};
413
- if(indexFields && indexFields.length>0){
414
- for(var i=0; i<indexFields.length; i++){
409
+ if (indexFields && indexFields.length > 0) {
410
+ for (var i = 0; i < indexFields.length; i++) {
415
411
  var key = indexFields[i];
416
- var value = f.getValue(key,obj);
417
- if(value){
418
- f.setValue(key,value,newObj);
412
+ var value = f.getValue(key, obj);
413
+ if (value) {
414
+ f.setValue(key, value, newObj);
419
415
  }
420
416
  }
421
417
  newObj['del'] = obj['del'];
@@ -424,18 +420,17 @@ var @projectCodeService = (function (pigeon) {
424
420
 
425
421
 
426
422
  var fields = formSpecs.fields;
427
- for(var i=0; i<fields.length; i++){
428
- var field= fields[i];
429
- if (field['_ft'] === 'subform' || field['_ft'] === 'array') {
430
- var meta = field.meta;
431
- if(meta.index==='no'){
432
- delete obj[field.key]
433
- }
434
- }
435
- else if (field['_ft'] === 'field') {
436
- if(field.index==='no'){
437
- delete obj[field.key]
438
- }
423
+ for (var i = 0; i < fields.length; i++) {
424
+ var field = fields[i];
425
+ if (field['_ft'] === 'subform' || field['_ft'] === 'array') {
426
+ var meta = field.meta;
427
+ if (meta.index === 'no') {
428
+ delete obj[field.key]
429
+ }
430
+ } else if (field['_ft'] === 'field') {
431
+ if (field.index === 'no') {
432
+ delete obj[field.key]
433
+ }
439
434
 
440
435
  }
441
436
  }
@@ -445,7 +440,7 @@ var @projectCodeService = (function (pigeon) {
445
440
  if (items) {
446
441
  for (var i = 0; i < items.length; i++) {
447
442
  var item = items[i]
448
- if(field.index==='no'){
443
+ if (field.index === 'no') {
449
444
  delete item[field.origKey]
450
445
  continue;
451
446
  }
@@ -454,17 +449,14 @@ var @projectCodeService = (function (pigeon) {
454
449
  item[field.origKey] = value
455
450
  }
456
451
  }
457
- }
458
- else {
459
- if(indexFields && indexFields.length>0){
460
- if(indexFields.indexOf(field.key)==-1){
461
- f.deleteValue(field.key,obj);
452
+ } else {
453
+ if (indexFields && indexFields.length > 0) {
454
+ if (indexFields.indexOf(field.key) == -1) {
455
+ f.deleteValue(field.key, obj);
462
456
  }
463
- }
464
- else if(field.index==='no'){
465
- f.deleteValue(field.key,obj);
466
- }
467
- else{
457
+ } else if (field.index === 'no') {
458
+ f.deleteValue(field.key, obj);
459
+ } else {
468
460
  var value = f.getValue(field.key, obj)
469
461
  value = f.normalizeValue(value, field)
470
462
  f.setValue(field.key, value, obj)
@@ -474,10 +466,10 @@ var @projectCodeService = (function (pigeon) {
474
466
  }, {})
475
467
 
476
468
  //专门处理一下owl_modifyTime和owl_createTime
477
- if(obj.owl_modifyTime){
469
+ if (obj.owl_modifyTime) {
478
470
  obj.owl_modifyTime = new Date(obj.owl_modifyTime).toISOString();
479
471
  }
480
- if(obj.owl_createTime){
472
+ if (obj.owl_createTime) {
481
473
  obj.owl_createTime = new Date(obj.owl_createTime).toISOString();
482
474
  }
483
475
  return obj
@@ -493,7 +485,7 @@ var @projectCodeService = (function (pigeon) {
493
485
  if (data['shopId']) {
494
486
  m.push(data['shopId'])
495
487
  }
496
- if(data['shop_id']){
488
+ if (data['shop_id']) {
497
489
  m.push(data['shop_id'])
498
490
  }
499
491
  data._m = m;
@@ -513,31 +505,29 @@ var @projectCodeService = (function (pigeon) {
513
505
  var r = JSON.parse(s)
514
506
  if (!r.result) {
515
507
  $.log(data.id + ',index error:' + JSON.stringify(s))
516
- }
517
- else {
508
+ } else {
518
509
  // $.log('index ok...')
519
510
  }
520
511
  },
521
512
 
522
- updateParentPath(treeNode){
513
+ updateParentPath(treeNode) {
523
514
  /*工具类,用于更新对应的parentPathIds和pathPathNames*/
524
515
  var parentId = treeNode.parent_id;
525
516
  var parentPathIds = [];
526
517
  var parentPathNames = [];
527
518
  var nSteps = 0;
528
519
  //获得parentId对应的node
529
- while(parentId && parentId!=='0'){
520
+ while (parentId && parentId !== '0') {
530
521
  nSteps++;
531
- if(nSteps>15){
522
+ if (nSteps > 15) {
532
523
  break;
533
524
  }
534
525
  var parentNode = f.get(parentId);
535
- if(parentNode){
526
+ if (parentNode) {
536
527
  parentPathIds.push(parentNode.id);
537
528
  parentPathNames.push(parentNode.name);
538
529
  parentId = parentNode.parent_id;
539
- }
540
- else{
530
+ } else {
541
531
  break;
542
532
  }
543
533
  }
@@ -546,13 +536,13 @@ var @projectCodeService = (function (pigeon) {
546
536
  treeNode.parentPathIds = parentPathIds.reverse();
547
537
  treeNode.fullPathIds = treeNode.parentPathIds.concat([treeNode.id]);
548
538
  treeNode.parentPathNames = parentPathNames.reverse();
549
- if(treeNode.parentPathNames ){
539
+ if (treeNode.parentPathNames) {
550
540
  var sep = "";
551
541
  var meta = spec['#meta'];
552
- if(meta && meta.pathSep){
542
+ if (meta && meta.pathSep) {
553
543
  sep = meta.pathSep;
554
544
  }
555
- treeNode.fullPathName = treeNode.parentPathNames.join(sep)+sep+treeNode.name;
545
+ treeNode.fullPathName = treeNode.parentPathNames.join(sep) + sep + treeNode.name;
556
546
  }
557
547
 
558
548
 
@@ -561,11 +551,11 @@ var @projectCodeService = (function (pigeon) {
561
551
  f.checkData(data);
562
552
  env = env || {}
563
553
  var ret = f.validate(data, env)
564
- if(ret.state!='ok'){
554
+ if (ret.state != 'ok') {
565
555
  throw JSON.stringify(ret);
566
556
  }
567
557
 
568
- if(data.__force !== 'T'){
558
+ if (data.__force !== 'T') {
569
559
  data['owl_createTime'] = new Date().getTime();
570
560
  data['owl_modifyTime'] = new Date().getTime();
571
561
  }
@@ -578,7 +568,7 @@ var @projectCodeService = (function (pigeon) {
578
568
 
579
569
  EventBusService.fire(spec['_t'] + '_add_before', {data: data, env: env})
580
570
  data.id = f.getId(data)
581
- if(meta.isTree){
571
+ if (meta.isTree) {
582
572
  f.updateParentPath(data);
583
573
  }
584
574
  pigeon.lock(f.getLock(data))
@@ -587,26 +577,25 @@ var @projectCodeService = (function (pigeon) {
587
577
  f.addToList(data)
588
578
  f.index(data)
589
579
 
590
- if(meta && meta.enableJDBC){
580
+ if (meta && meta.enableJDBC) {
591
581
  var sqls = insertObject(data);
592
582
  // $.log(sqls.join(";\n"));
593
583
  }
594
584
  // $.log("add,meta.push=" +meta.push + ",id=" + data.id);
595
- if(meta && meta.push){
596
- KafkaUtil.send('owlchange',"add",data.id);
585
+ if (meta && meta.push) {
586
+ KafkaUtil.send('owlchange', "add", data.id);
597
587
  }
598
588
  EventBusService.fire(spec['_t'] + '_add_after', {data: data, env: env})
599
589
  return data
600
- }
601
- finally {
590
+ } finally {
602
591
  pigeon.unlock(f.getLock(data))
603
592
  }
604
593
 
605
594
  },
606
595
 
607
- get: function (id,includeDeleted) {
596
+ get: function (id, includeDeleted) {
608
597
  var meta = spec['#meta'];
609
- if(meta && meta.push) {
598
+ if (meta && meta.push) {
610
599
  var cachedObj = appData.getObservableObject(id);
611
600
  if (cachedObj) {
612
601
  if (cachedObj.del === 'T' && !includeDeleted) {
@@ -615,10 +604,9 @@ var @projectCodeService = (function (pigeon) {
615
604
  return cachedObj;
616
605
  }
617
606
  var obj = pigeon.getObject(id)
618
- if(obj){
619
- appData.setObservableObject(id,obj);
620
- }
621
- else{
607
+ if (obj) {
608
+ appData.setObservableObject(id, obj);
609
+ } else {
622
610
  appData.removeObservableObject(id);
623
611
  }
624
612
 
@@ -626,8 +614,7 @@ var @projectCodeService = (function (pigeon) {
626
614
  return null;
627
615
  }
628
616
  return obj;
629
- }
630
- else{
617
+ } else {
631
618
  var obj = pigeon.getObject(id)
632
619
  if (obj && obj.del === 'T' && !includeDeleted) {
633
620
  return null;
@@ -636,24 +623,22 @@ var @projectCodeService = (function (pigeon) {
636
623
  }
637
624
  },
638
625
 
639
- getEx:function(id,refresh){
640
- if(refresh){
641
- var obj = pigeon.getObject(id);
642
-
643
- if(obj){
644
- appData.setObservableObject(id,obj);
645
- }
646
- else{
647
- appData.removeObservableObject(id);
648
- }
649
- if(obj && obj.del==='T'){
650
- return null;
651
- }
652
- return obj;
653
- }
654
- else{
655
- return f.get(id);
656
- }
626
+ getEx: function (id, refresh) {
627
+ if (refresh) {
628
+ var obj = pigeon.getObject(id);
629
+
630
+ if (obj) {
631
+ appData.setObservableObject(id, obj);
632
+ } else {
633
+ appData.removeObservableObject(id);
634
+ }
635
+ if (obj && obj.del === 'T') {
636
+ return null;
637
+ }
638
+ return obj;
639
+ } else {
640
+ return f.get(id);
641
+ }
657
642
  },
658
643
 
659
644
  saveTempData: function (key, data) {
@@ -673,10 +658,10 @@ var @projectCodeService = (function (pigeon) {
673
658
  var meta = spec['#meta'];
674
659
  // 检查数据是否合法
675
660
  var checkData = meta.checkData;
676
- if(checkData){
677
- if(checkData.maxSize){
661
+ if (checkData) {
662
+ if (checkData.maxSize) {
678
663
  var s = JSON.stringify(data);
679
- if(s.length>checkData.maxSize){
664
+ if (s.length > checkData.maxSize) {
680
665
  throw {code: 'dataTooLarge', msg: '数据太大,超过了' + checkData.maxSize + '字节'}
681
666
  }
682
667
  }
@@ -690,16 +675,16 @@ var @projectCodeService = (function (pigeon) {
690
675
 
691
676
  try {
692
677
  var meta = spec['#meta'];
693
- if(meta.isTree){
678
+ if (meta.isTree) {
694
679
  f.updateParentPath(data);
695
680
  }
696
681
  pigeon.lock(f.getLock(data))
697
- var obj = f.get(data.id,true)
682
+ var obj = f.get(data.id, true)
698
683
  if (!obj) {
699
684
  throw {msg: '对象不存在!id=' + data.id, code: 'notFound'}
700
685
  }
701
686
  if (obj._v != data._v) {
702
- throw {code: 'concurrentupdate', msg: '对象已经修改过,本次修改被拒绝。old._v=' + obj._v + ',new._v=' + data._v+ ", id=" + obj.id}
687
+ throw {code: 'concurrentupdate', msg: '对象已经修改过,本次修改被拒绝。old._v=' + obj._v + ',new._v=' + data._v + ", id=" + obj.id}
703
688
  }
704
689
  var oldObj = JSON.parse(JSON.stringify(obj))
705
690
  //深度合并
@@ -708,9 +693,9 @@ var @projectCodeService = (function (pigeon) {
708
693
  obj['_v'] = Number(obj['_v']) + 1
709
694
  f.validate(obj, env)
710
695
  data._v = obj._v
711
- if(obj.__force!=='T'){
696
+ if (obj.__force !== 'T') {
712
697
  //如果__force为T,则不更新时间,这代表了强制更新,可以用于数据迁移的场景,希望更新时间保留为旧系统时间
713
- obj.owl_modifyTime=new Date().getTime();
698
+ obj.owl_modifyTime = new Date().getTime();
714
699
  }
715
700
 
716
701
  EventBusService.fire(spec['_t'] + '_update_before', {old: oldObj, data: obj, env: env})
@@ -720,37 +705,40 @@ var @projectCodeService = (function (pigeon) {
720
705
  f.saveUniqueFields(data, env)
721
706
  f.index(obj)
722
707
 
723
- if(formSpecs && formSpecs.meta && formSpecs.meta.changeLogEnabled){
724
- var id = oldObj.id;
725
- oldObj.id = id + "vvv" + oldObj._v;
726
- pigeon.saveObject(oldObj.id,oldObj);
727
- oldObj.id = id;
708
+ if (formSpecs && formSpecs.meta && formSpecs.meta.changeLogEnabled) {
709
+ var id = oldObj.id;
710
+ oldObj.id = id + "vvv" + oldObj._v;
711
+ if (formSpecs.meta.logPigeon) {
712
+ pigeon.getPigeon(formSpecs.meta.logPigeon).saveObject(oldObj.id, oldObj);
713
+ } else {
714
+ pigeon.saveObject(oldObj.id, oldObj);
715
+ }
716
+ oldObj.id = id;
728
717
  }
729
-
718
+
730
719
  var meta = spec['#meta'];
731
- if(meta && meta.enableJDBC){
720
+ if (meta && meta.enableJDBC) {
732
721
  var sqls = updateObject(obj);
733
722
  // $.log(sqls.join(";\n"));
734
723
  }
735
- if(meta){
724
+ if (meta) {
736
725
  // $.log("updating meta.push=" + meta.push + ", id=" + obj.id);
737
726
  }
738
727
 
739
- if(meta && meta.push){
728
+ if (meta && meta.push) {
740
729
  // $.log("send owlchange," + obj.id)
741
- KafkaUtil.send('owlchange',"update",obj.id);
730
+ KafkaUtil.send('owlchange', "update", obj.id);
742
731
  }
743
732
  EventBusService.fire(spec['_t'] + '_update_after', {old: oldObj, data: obj, env: env})
744
733
  return data
745
- }
746
- finally {
734
+ } finally {
747
735
  pigeon.unlock(f.getLock(data))
748
736
  }
749
737
  },
750
738
 
751
- del: function (id,userId,ip,ua) {
739
+ del: function (id, userId, ip, ua) {
752
740
  //只做软删除
753
- var data = f.get(id,true)
741
+ var data = f.get(id, true)
754
742
  if (!data) {
755
743
  throw '对象不存在!id=' + id
756
744
  }
@@ -793,17 +781,17 @@ var @projectCodeService = (function (pigeon) {
793
781
  f.removeUniqueFields(data, {})
794
782
  var meta = spec['#meta'];
795
783
 
796
- if(meta && meta.enableJDBC){
784
+ if (meta && meta.enableJDBC) {
797
785
  var sqls = deleteObject(data);
798
786
  // $.log(sqls.join(";\n"));
799
787
  }
800
788
 
801
- if(meta){
789
+ if (meta) {
802
790
  // $.log("del meta.push=" + meta.push + ", id=" + data.id);
803
791
  }
804
792
 
805
- if(meta && meta.push){
806
- KafkaUtil.send('owlchange',"del",data.id);
793
+ if (meta && meta.push) {
794
+ KafkaUtil.send('owlchange', "del", data.id);
807
795
  }
808
796
  EventBusService.fire(spec['_t'] + '_delete_after', {data: data})
809
797
  },
@@ -831,13 +819,13 @@ var @projectCodeService = (function (pigeon) {
831
819
  addExportTask: function (query, env) {
832
820
  var now = new Date().getTime()
833
821
  var taskInfo = {
834
- submitUserId:env.loginId,
822
+ submitUserId: env.loginId,
835
823
  submitTime: now,
836
824
  beginTime: null,
837
825
  processState: 'notstart',
838
- appId:"owl_" + spec['_t'],
839
- params:JSON.stringify(env.params),
840
- taskId:null
826
+ appId: "owl_" + spec['_t'],
827
+ params: JSON.stringify(env.params),
828
+ taskId: null
841
829
  }
842
830
  taskInfo.taskId = '';
843
831
 
@@ -847,7 +835,7 @@ var @projectCodeService = (function (pigeon) {
847
835
  var taskId = JobsService.submitExportTask('@projectCode', 'tasks/export.jsx', {
848
836
  query: query,
849
837
  env: env,
850
- taskInfoId:taskInfo.id
838
+ taskInfoId: taskInfo.id
851
839
  }, now)
852
840
 
853
841
 
@@ -861,7 +849,7 @@ var @projectCodeService = (function (pigeon) {
861
849
  var now = new Date().getTime()
862
850
  var taskInfo = {
863
851
  // loginUser: f.getEnvValue('$loginUser', env),
864
- loginUserId:env.loginUserId,
852
+ loginUserId: env.loginUserId,
865
853
  submitTime: now,
866
854
  startTime: 0,
867
855
  processState: 'processing',
@@ -885,11 +873,11 @@ var @projectCodeService = (function (pigeon) {
885
873
  return taskInfoId
886
874
  },
887
875
 
888
- addZipExportTask : function(env){
876
+ addZipExportTask: function (env) {
889
877
  var now = new Date().getTime()
890
878
  var taskInfo = {
891
879
  // loginUser: f.getEnvValue('$loginUser', env),
892
- loginUserId:env.loginUserId,
880
+ loginUserId: env.loginUserId,
893
881
  submitTime: now,
894
882
  startTime: 0,
895
883
  processState: 'processing',
@@ -912,7 +900,7 @@ var @projectCodeService = (function (pigeon) {
912
900
  },
913
901
 
914
902
  getExportTaskInfo: function (taskInfoId) {
915
- return owl_task_infoService.get(taskInfoId);
903
+ return owl_task_infoService.get(taskInfoId);
916
904
  },
917
905
 
918
906
  updateExportTaskInfo: function (taskInfoId, taskInfo) {
@@ -943,13 +931,13 @@ var @projectCodeService = (function (pigeon) {
943
931
  }
944
932
  },
945
933
 
946
- getAllSize:function(){
934
+ getAllSize: function () {
947
935
  var listName = f.getAllListName();
948
936
  var count = pigeon.getListSize(listName);
949
937
  return count;
950
938
  },
951
939
 
952
- getAllObjects:function(){
940
+ getAllObjects: function () {
953
941
  var result = [];
954
942
  var listName = f.getAllListName()
955
943
  var count = pigeon.getListSize(listName)
@@ -967,71 +955,66 @@ var @projectCodeService = (function (pigeon) {
967
955
  return result;
968
956
  },
969
957
 
970
- getAllObjectsEx:function(from,count){
958
+ getAllObjectsEx: function (from, count) {
971
959
  var listName = f.getAllListName()
972
960
  var allsize = pigeon.getListSize(listName)
973
961
  var pos = from
974
- if(count+pos > allsize){
962
+ if (count + pos > allsize) {
975
963
  count = allsize - pos;
976
964
  }
977
965
  var objs = pigeon.getListObjects(listName, pos, count)
978
966
  return objs;
979
967
  },
980
968
 
981
- createQuery:function(searchArgs){
969
+ createQuery: function (searchArgs) {
982
970
  var filters = [];
983
- for(var k in searchArgs){
971
+ for (var k in searchArgs) {
984
972
  var v = searchArgs[k];
985
- if(typeof v === 'object' && v.type === 'or'){
986
- if(Array.isArray(v.args)){
973
+ if (typeof v === 'object' && v.type === 'or') {
974
+ if (Array.isArray(v.args)) {
987
975
  var shouldClauses = [];
988
- v.args.forEach(function(q){
976
+ v.args.forEach(function (q) {
989
977
  var qFilters = f.createQuery(q);
990
- if(qFilters.length > 0){
978
+ if (qFilters.length > 0) {
991
979
  shouldClauses.push({
992
- "bool":{
993
- filters:qFilters
980
+ "bool": {
981
+ filters: qFilters
994
982
  }
995
983
  })
996
984
  }
997
985
  });
998
986
 
999
- filters.push({bool:{should:shouldClauses}});
1000
- }
1001
- else if(v.args && typeof(v.args)=='object'){
987
+ filters.push({bool: {should: shouldClauses}});
988
+ } else if (v.args && typeof (v.args) == 'object') {
1002
989
  var shouldClauses = [];
1003
990
  var qFilters = f.createQuery(v.args);
1004
- shouldClauses.push({bool:{filters:qFilters}});
1005
- filters.push({bool:{should:shouldClauses}});
991
+ shouldClauses.push({bool: {filters: qFilters}});
992
+ filters.push({bool: {should: shouldClauses}});
1006
993
  }
1007
994
 
1008
- }
1009
- else if(typeof(v)=='object' && Array.isArray(v)){
1010
- var range={}
995
+ } else if (typeof (v) == 'object' && Array.isArray(v)) {
996
+ var range = {}
1011
997
  range[k] = {
1012
- 'gte':v[0],
1013
- 'lte':v[1]
998
+ 'gte': v[0],
999
+ 'lte': v[1]
1014
1000
  }
1015
- filters.push({range:range});
1016
- }
1017
- else if(typeof(v)=='object' && v.type==='terms'){
1001
+ filters.push({range: range});
1002
+ } else if (typeof (v) == 'object' && v.type === 'terms') {
1018
1003
  var terms = {};
1019
- if(v.values){
1004
+ if (v.values) {
1020
1005
  terms[k + ".keyword"] = v.values;
1021
- filters.push({terms:terms});
1006
+ filters.push({terms: terms});
1022
1007
  }
1023
- }
1024
- else{
1008
+ } else {
1025
1009
  var term = {};
1026
- if(typeof v == 'string' ){
1027
- if(v){
1028
- term[k+".keyword"] = trim('' + v)
1029
- filters.push({term:term})
1010
+ if (typeof v == 'string') {
1011
+ if (v) {
1012
+ term[k + ".keyword"] = trim('' + v)
1013
+ filters.push({term: term})
1030
1014
  }
1031
- }
1032
- else if (typeof v == 'number'){
1015
+ } else if (typeof v == 'number') {
1033
1016
  term[k] = trim('' + v)
1034
- filters.push({term:term})
1017
+ filters.push({term: term})
1035
1018
  }
1036
1019
  }
1037
1020
  }
@@ -1039,7 +1022,7 @@ var @projectCodeService = (function (pigeon) {
1039
1022
  },
1040
1023
 
1041
1024
  // 构建通配查询(将 SQL 风格的 % 转为 ES 的 *)
1042
- buildWildcardQuery:function(k, v){
1025
+ buildWildcardQuery: function (k, v) {
1043
1026
  // v 预期包含 % 作为通配符标记,转换为 ES 的 *
1044
1027
  var value = ('' + v).replace(/%/g, '*');
1045
1028
  var field = k + ".keyword";
@@ -1049,181 +1032,167 @@ var @projectCodeService = (function (pigeon) {
1049
1032
  // 在 ES 7.10+ 支持不区分大小写
1050
1033
  case_insensitive: true
1051
1034
  };
1052
- return { wildcard: wildcard };
1035
+ return {wildcard: wildcard};
1053
1036
  },
1054
1037
 
1055
- buildQuery:function(mfilters,searchArgs,keyword,isRecycleBin,meta_fields){
1056
- if(!meta_fields){
1038
+ buildQuery: function (mfilters, searchArgs, keyword, isRecycleBin, meta_fields) {
1039
+ if (!meta_fields) {
1057
1040
  var meta = spec["#meta"];
1058
- if(meta){
1041
+ if (meta) {
1059
1042
  meta_fields = spec["#meta"]["keyword_fields"];
1060
1043
  }
1061
1044
  }
1062
1045
  delete searchArgs.keyword;
1063
1046
  var filters = [];
1064
1047
  var must_not = [{
1065
- term:{
1066
- "del.keyword":'T'
1048
+ term: {
1049
+ "del.keyword": 'T'
1067
1050
  }
1068
1051
  }];
1069
1052
 
1070
- if(isRecycleBin){
1053
+ if (isRecycleBin) {
1071
1054
  must_not = [];
1072
1055
  filters.push({
1073
- term:{
1074
- "del.keyword":'T'
1056
+ term: {
1057
+ "del.keyword": 'T'
1075
1058
  }
1076
1059
  });
1077
1060
  }
1078
- for(var k in searchArgs){
1061
+ for (var k in searchArgs) {
1079
1062
 
1080
1063
  var v = searchArgs[k];
1081
1064
 
1082
1065
  var isNotClause = false;
1083
- if(k.indexOf("!")===0){
1066
+ if (k.indexOf("!") === 0) {
1084
1067
  isNotClause = true;
1085
1068
  k = k.substring(1);
1086
1069
  }
1087
- if(typeof v === 'object' && v.type === 'or'){
1070
+ if (typeof v === 'object' && v.type === 'or') {
1088
1071
  var shouldClauses = [];
1089
- if(Array.isArray(v.args)){
1090
- v.args.forEach(function(q){
1072
+ if (Array.isArray(v.args)) {
1073
+ v.args.forEach(function (q) {
1091
1074
  var shouldQueries = f.createQuery(q);
1092
- if(shouldQueries.length>0){
1093
- shouldClauses.push({bool:{filter:shouldQueries}});
1075
+ if (shouldQueries.length > 0) {
1076
+ shouldClauses.push({bool: {filter: shouldQueries}});
1094
1077
  }
1095
1078
 
1096
1079
  });
1097
- if(isNotClause){
1098
- must_not.push({bool:{should:shouldClauses}});
1099
- }else{
1100
- filters.push({bool:{should:shouldClauses}});
1080
+ if (isNotClause) {
1081
+ must_not.push({bool: {should: shouldClauses}});
1082
+ } else {
1083
+ filters.push({bool: {should: shouldClauses}});
1101
1084
  }
1102
1085
 
1086
+ } else {
1087
+ //do noting,所以 or 语句不支持 单个对象,必须带一个 args 数组
1103
1088
  }
1104
- else{
1105
- //do noting,所以 or 语句不支持 单个对象,必须带一个 args 数组
1106
- }
1107
- }
1108
- else if(typeof(v)=='object' && Array.isArray(v)){
1109
- var range={}
1110
- if(v.length==2){
1089
+ } else if (typeof (v) == 'object' && Array.isArray(v)) {
1090
+ var range = {}
1091
+ if (v.length == 2) {
1111
1092
  range[k] = {
1112
- 'gte':v[0],
1113
- 'lte':v[1]
1093
+ 'gte': v[0],
1094
+ 'lte': v[1]
1114
1095
  }
1115
- }
1116
- else if(v.length==1){
1096
+ } else if (v.length == 1) {
1117
1097
  range[k] = {
1118
- 'gte':v[0]
1098
+ 'gte': v[0]
1119
1099
  }
1120
- }
1121
- else if(v.length==3){
1100
+ } else if (v.length == 3) {
1122
1101
  range[k] = {
1123
- 'lte':v[0]
1102
+ 'lte': v[0]
1124
1103
  }
1125
- }
1126
- else if(v.length==4){
1104
+ } else if (v.length == 4) {
1127
1105
  range[k] = {
1128
- 'gt':v[0],
1129
- 'lt':v[1]
1106
+ 'gt': v[0],
1107
+ 'lt': v[1]
1130
1108
  }
1131
- }
1132
- else if(v.length==5){
1109
+ } else if (v.length == 5) {
1133
1110
  range[k] = {
1134
1111
  'gt': v[0]
1135
1112
  }
1136
- }
1137
- else if(v.length==6) {
1113
+ } else if (v.length == 6) {
1138
1114
  range[k] = {
1139
1115
  'lt': v[0]
1140
1116
  }
1141
1117
  }
1142
1118
 
1143
- if(isNotClause){
1144
- must_not.push({range:range});
1145
- }else{
1146
- filters.push({range:range});
1119
+ if (isNotClause) {
1120
+ must_not.push({range: range});
1121
+ } else {
1122
+ filters.push({range: range});
1147
1123
  }
1148
- }
1149
- else if(typeof(v)=='object' && v.type==='terms'){
1124
+ } else if (typeof (v) == 'object' && v.type === 'terms') {
1150
1125
  var terms = {};
1151
- if(v.values){
1126
+ if (v.values) {
1152
1127
  terms[k + ".keyword"] = v.values;
1153
- if(isNotClause){
1154
- must_not.push({terms:terms});
1155
- }else{
1156
- filters.push({terms:terms});
1128
+ if (isNotClause) {
1129
+ must_not.push({terms: terms});
1130
+ } else {
1131
+ filters.push({terms: terms});
1157
1132
  }
1158
1133
  }
1159
- }
1160
- else if (typeof(v)==='object' && v.type==='exists'){
1161
- if(isNotClause){
1162
- must_not.push({exists:{field:k}});
1163
- }else{
1164
- filters.push({exists:{field:k}});
1134
+ } else if (typeof (v) === 'object' && v.type === 'exists') {
1135
+ if (isNotClause) {
1136
+ must_not.push({exists: {field: k}});
1137
+ } else {
1138
+ filters.push({exists: {field: k}});
1165
1139
  }
1166
- }
1167
- else{
1140
+ } else {
1168
1141
  var term = {};
1169
- if(typeof v == 'string' ){
1170
- if(v){
1171
- term[k+".keyword"] = trim('' + v)
1172
- if(isNotClause){
1173
- if(v.indexOf('%')>-1){
1142
+ if (typeof v == 'string') {
1143
+ if (v) {
1144
+ term[k + ".keyword"] = trim('' + v)
1145
+ if (isNotClause) {
1146
+ if (v.indexOf('%') > -1) {
1174
1147
  must_not.push(f.buildWildcardQuery(k, v));
1148
+ } else {
1149
+ must_not.push({term: term});
1175
1150
  }
1176
- else{
1177
- must_not.push({term:term});
1178
- }
1179
- }else{
1180
- if(v.indexOf('%')>-1){
1151
+ } else {
1152
+ if (v.indexOf('%') > -1) {
1181
1153
  filters.push(f.buildWildcardQuery(k, v));
1182
- }
1183
- else{
1184
- filters.push({term:term});
1154
+ } else {
1155
+ filters.push({term: term});
1185
1156
  }
1186
1157
  }
1187
1158
 
1188
1159
  }
1189
- }
1190
- else if (typeof v == 'number'){
1160
+ } else if (typeof v == 'number') {
1191
1161
  term[k] = trim('' + v)
1192
- if(isNotClause){
1193
- must_not.push({term:term});
1194
- }else{
1195
- filters.push({term:term});
1162
+ if (isNotClause) {
1163
+ must_not.push({term: term});
1164
+ } else {
1165
+ filters.push({term: term});
1196
1166
  }
1197
1167
  }
1198
1168
  }
1199
1169
  }
1200
- if(mfilters && Array.isArray(mfilters) && mfilters.length>0){
1170
+ if (mfilters && Array.isArray(mfilters) && mfilters.length > 0) {
1201
1171
  filters = filters.concat(mfilters);
1202
1172
  }
1203
1173
 
1204
1174
  //getKeyword query
1205
1175
  var keywordQuery = "";
1206
- if(keyword && trim(keyword).length>0){
1176
+ if (keyword && trim(keyword).length > 0) {
1207
1177
  keywordQuery = "\"" + trim(keyword) + "\""
1208
- }
1209
- else{
1178
+ } else {
1210
1179
  keywordQuery = "*"
1211
1180
  }
1212
1181
  var keyword_fields = null;
1213
- if(meta_fields && Array.isArray(meta_fields) && meta_fields.length>0){
1182
+ if (meta_fields && Array.isArray(meta_fields) && meta_fields.length > 0) {
1214
1183
  keyword_fields = meta_fields;
1215
1184
  }
1216
1185
  var queryStringQuery = {
1217
1186
  "query_string": {
1218
- "query":keywordQuery
1187
+ "query": keywordQuery
1219
1188
  }
1220
1189
  }
1221
1190
 
1222
- if(keyword_fields && keyword_fields.length>0){
1191
+ if (keyword_fields && keyword_fields.length > 0) {
1223
1192
  queryStringQuery = {
1224
1193
  "query_string": {
1225
- "query":keywordQuery,
1226
- "fields":keyword_fields,
1194
+ "query": keywordQuery,
1195
+ "fields": keyword_fields,
1227
1196
  }
1228
1197
  }
1229
1198
  }
@@ -1238,86 +1207,86 @@ var @projectCodeService = (function (pigeon) {
1238
1207
  }
1239
1208
  return query;
1240
1209
  },
1241
- count:function(mfilters,searchArgs,keyword,dataSource,isRecycleBin,meta_fields){
1242
- var query = f.buildQuery(mfilters,searchArgs,keyword,isRecycleBin,meta_fields);
1243
- var elasticSearchUrl = $.getEnv( "elasticSearchUrl" );
1210
+ count: function (mfilters, searchArgs, keyword, dataSource, isRecycleBin, meta_fields) {
1211
+ var query = f.buildQuery(mfilters, searchArgs, keyword, isRecycleBin, meta_fields);
1212
+ var elasticSearchUrl = $.getEnv("elasticSearchUrl");
1244
1213
 
1245
- var headers = { "Content-Type": "application/json;charset=utf-8" };
1214
+ var headers = {"Content-Type": "application/json;charset=utf-8"};
1246
1215
  var elasticSearchUser = $.getEnv("elasticSearchUser");
1247
1216
  var elasticSearchPass = $.getEnv("elasticSearchPass");
1248
- if(elasticSearchUser && elasticSearchPass){
1249
- var auth =Base64.encode(elasticSearchUser + ":" + elasticSearchPass);
1217
+ if (elasticSearchUser && elasticSearchPass) {
1218
+ var auth = Base64.encode(elasticSearchUser + ":" + elasticSearchPass);
1250
1219
  var basicAuth = "Basic " + auth;
1251
1220
  headers["Authorization"] = basicAuth;
1252
1221
  }
1253
- var searchUrl = elasticSearchUrl+"/@projectCode/_count";
1254
- if(dataSource){
1222
+ var searchUrl = elasticSearchUrl + "/@projectCode/_count";
1223
+ if (dataSource) {
1255
1224
  searchUrl = elasticSearchUrl + "/" + dataSource + "/_count";
1256
1225
  }
1257
1226
 
1258
1227
  var sndTxt = JSON.stringify(query);
1259
- var s = HttpUtils.postRaw( searchUrl, sndTxt, headers);
1228
+ var s = HttpUtils.postRaw(searchUrl, sndTxt, headers);
1260
1229
  var result = JSON.parse(s);
1261
- if(result.count){
1230
+ if (result.count) {
1262
1231
  return result.count;
1263
1232
  }
1264
1233
  return 0;
1265
1234
  },
1266
- executeSearchQuery:function(query,dataSource){
1267
- var elasticSearchUrl = $.getEnv( "elasticSearchUrl" );
1235
+ executeSearchQuery: function (query, dataSource) {
1236
+ var elasticSearchUrl = $.getEnv("elasticSearchUrl");
1268
1237
 
1269
- var headers = { "Content-Type": "application/json;charset=utf-8" };
1238
+ var headers = {"Content-Type": "application/json;charset=utf-8"};
1270
1239
  var elasticSearchUser = $.getEnv("elasticSearchUser");
1271
1240
  var elasticSearchPass = $.getEnv("elasticSearchPass");
1272
- if(elasticSearchUser && elasticSearchPass){
1273
- var auth =Base64.encode(elasticSearchUser + ":" + elasticSearchPass);
1241
+ if (elasticSearchUser && elasticSearchPass) {
1242
+ var auth = Base64.encode(elasticSearchUser + ":" + elasticSearchPass);
1274
1243
  var basicAuth = "Basic " + auth;
1275
1244
  headers["Authorization"] = basicAuth;
1276
1245
  }
1277
- var searchUrl = elasticSearchUrl+"/@projectCode/_search";
1278
- if(dataSource){
1246
+ var searchUrl = elasticSearchUrl + "/@projectCode/_search";
1247
+ if (dataSource) {
1279
1248
  searchUrl = elasticSearchUrl + "/" + dataSource + "/_search";
1280
1249
  }
1281
1250
 
1282
1251
  var sndTxt = JSON.stringify(query);
1283
- return HttpUtils.postRaw( searchUrl, sndTxt, headers);
1252
+ return HttpUtils.postRaw(searchUrl, sndTxt, headers);
1284
1253
  },
1285
1254
 
1286
- search: function(mfilters, searchArgs, keyword,from, pageSize, sort, dataSource,isRecycleBin,meta_fields){
1287
- var query = f.buildQuery(mfilters,searchArgs,keyword,isRecycleBin,meta_fields);
1288
- var effectiveSort = [{owl_createTime:{order:"desc"}}];
1289
- if(sort){
1255
+ search: function (mfilters, searchArgs, keyword, from, pageSize, sort, dataSource, isRecycleBin, meta_fields) {
1256
+ var query = f.buildQuery(mfilters, searchArgs, keyword, isRecycleBin, meta_fields);
1257
+ var effectiveSort = [{owl_createTime: {order: "desc"}}];
1258
+ if (sort) {
1290
1259
  effectiveSort = sort;
1291
1260
  }
1292
1261
  query.from = from;
1293
1262
  query.size = pageSize;
1294
1263
  query.sort = effectiveSort;
1295
1264
 
1296
- var elasticSearchUrl = $.getEnv( "elasticSearchUrl" );
1265
+ var elasticSearchUrl = $.getEnv("elasticSearchUrl");
1297
1266
 
1298
- var headers = { "Content-Type": "application/json;charset=utf-8" };
1267
+ var headers = {"Content-Type": "application/json;charset=utf-8"};
1299
1268
  var elasticSearchUser = $.getEnv("elasticSearchUser");
1300
1269
  var elasticSearchPass = $.getEnv("elasticSearchPass");
1301
- if(elasticSearchUser && elasticSearchPass){
1302
- var auth =Base64.encode(elasticSearchUser + ":" + elasticSearchPass);
1270
+ if (elasticSearchUser && elasticSearchPass) {
1271
+ var auth = Base64.encode(elasticSearchUser + ":" + elasticSearchPass);
1303
1272
  var basicAuth = "Basic " + auth;
1304
1273
  headers["Authorization"] = basicAuth;
1305
1274
  }
1306
- var searchUrl = elasticSearchUrl+"/@projectCode/_search";
1307
- if(dataSource){
1275
+ var searchUrl = elasticSearchUrl + "/@projectCode/_search";
1276
+ if (dataSource) {
1308
1277
  searchUrl = elasticSearchUrl + "/" + dataSource + "/_search";
1309
1278
  }
1310
1279
 
1311
1280
  var sndTxt = JSON.stringify(query);
1312
- var s = HttpUtils.postRaw( searchUrl, sndTxt, headers);
1281
+ var s = HttpUtils.postRaw(searchUrl, sndTxt, headers);
1313
1282
  var result = JSON.parse(s);
1314
1283
 
1315
- if(!result.hits || !result.hits.hits){
1316
- $.log("error search:sndQuery=" + sndTxt + "------\nresponse:\n" + s );
1284
+ if (!result.hits || !result.hits.hits) {
1285
+ $.log("error search:sndQuery=" + sndTxt + "------\nresponse:\n" + s);
1317
1286
  var ret = {
1318
- state:'err',
1319
- list:[],
1320
- total:{value:0}
1287
+ state: 'err',
1288
+ list: [],
1289
+ total: {value: 0}
1321
1290
  }
1322
1291
  return ret;
1323
1292
  }
@@ -1325,33 +1294,38 @@ var @projectCodeService = (function (pigeon) {
1325
1294
  var hits = result.hits.hits;
1326
1295
  var total = result.hits.total;
1327
1296
 
1328
- var objs = hits.map(function(hit){return hit._source});
1297
+ var objs = hits.map(function (hit) {
1298
+ return hit._source
1299
+ });
1329
1300
 
1330
1301
 
1331
1302
  var ret = {
1332
- state:'ok',
1333
- list:objs,
1334
- total:total
1303
+ state: 'ok',
1304
+ list: objs,
1305
+ total: total
1335
1306
  }
1336
1307
 
1337
1308
  return ret;
1338
1309
 
1339
1310
  },
1340
- getHistory:function(objId, from, size){
1311
+ getHistory: function (objId, from, size) {
1341
1312
  var objs = [];
1342
- var obj = f.get(objId,true);
1313
+ var obj = f.get(objId, true);
1343
1314
  var currentVersion = obj._v;
1344
1315
 
1316
+ var logPigeon = pigeon;
1317
+ if (formSpecs.meta.logPigeon) {
1318
+ logPigeon = pigeon.getPigeon(formSpecs.meta.logPigeon);
1319
+ }
1345
1320
 
1346
-
1347
- for(var i=0; i<size; i++){
1321
+ for (var i = 0; i < size; i++) {
1348
1322
  var ver = currentVersion - i - from;
1349
- if(ver<0){
1323
+ if (ver < 0) {
1350
1324
  break;
1351
1325
  }
1352
1326
  var id = objId + "vvv" + ver;
1353
- var vobj = f.get(id,true);
1354
- if(vobj){
1327
+ var vobj = logPigeon.getObject(id)
1328
+ if (vobj) {
1355
1329
  objs.push(vobj);
1356
1330
  }
1357
1331
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "owl-cli",
3
- "version": "7.44.0",
3
+ "version": "7.46.0",
4
4
  "main": "index.js",
5
5
  "preferGlobal": true,
6
6
  "bin": {