@ibiz-template/runtime 0.6.2 → 0.6.3

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 (55) hide show
  1. package/dist/index.esm.js +116 -17
  2. package/dist/index.system.min.js +1 -1
  3. package/out/constant/view-mode.d.ts +4 -0
  4. package/out/constant/view-mode.d.ts.map +1 -1
  5. package/out/constant/view-mode.js +4 -0
  6. package/out/controller/control/caption-bar/caption-bar.controller.d.ts +7 -0
  7. package/out/controller/control/caption-bar/caption-bar.controller.d.ts.map +1 -1
  8. package/out/controller/control/caption-bar/caption-bar.controller.js +14 -3
  9. package/out/controller/control/form/edit-form/edit-form.controller.d.ts.map +1 -1
  10. package/out/controller/control/form/edit-form/edit-form.controller.js +6 -3
  11. package/out/controller/control/form/form/form.controller.d.ts +19 -0
  12. package/out/controller/control/form/form/form.controller.d.ts.map +1 -1
  13. package/out/controller/control/form/form/form.controller.js +37 -1
  14. package/out/controller/control/form/form-detail/form-tab-panel/form-tab-panel.controller.d.ts +8 -0
  15. package/out/controller/control/form/form-detail/form-tab-panel/form-tab-panel.controller.d.ts.map +1 -1
  16. package/out/controller/control/form/form-detail/form-tab-panel/form-tab-panel.controller.js +13 -0
  17. package/out/controller/control/gantt/gantt.controller.d.ts.map +1 -1
  18. package/out/controller/control/gantt/gantt.controller.js +4 -4
  19. package/out/controller/control/tree/tree.controller.d.ts +1 -0
  20. package/out/controller/control/tree/tree.controller.d.ts.map +1 -1
  21. package/out/controller/control/tree/tree.controller.js +3 -0
  22. package/out/de-logic/de-logic-param/de-logic-param.js +1 -1
  23. package/out/engine/md-view.engine.d.ts.map +1 -1
  24. package/out/engine/md-view.engine.js +4 -0
  25. package/out/global/global-util/global-util.d.ts.map +1 -1
  26. package/out/global/global-util/global-util.js +12 -2
  27. package/out/interface/common/i-modal-options/i-modal-options.d.ts +8 -0
  28. package/out/interface/common/i-modal-options/i-modal-options.d.ts.map +1 -1
  29. package/out/interface/controller/controller/control/i-caption-bar.controller.d.ts +7 -0
  30. package/out/interface/controller/controller/control/i-caption-bar.controller.d.ts.map +1 -1
  31. package/out/model/panel/panel-field.js +1 -1
  32. package/out/service/dto/method.dto.d.ts.map +1 -1
  33. package/out/service/dto/method.dto.js +13 -0
  34. package/out/ui-logic/ui-logic-node/append-param-node/append-param-node.d.ts.map +1 -1
  35. package/out/ui-logic/ui-logic-node/append-param-node/append-param-node.js +1 -0
  36. package/out/ui-logic/ui-logic-node/bind-param-node/bind-param-node.d.ts.map +1 -1
  37. package/out/ui-logic/ui-logic-node/bind-param-node/bind-param-node.js +1 -0
  38. package/out/ui-logic/ui-logic-node/copy-param-node/copy-param-node.d.ts.map +1 -1
  39. package/out/ui-logic/ui-logic-node/copy-param-node/copy-param-node.js +1 -0
  40. package/out/ui-logic/ui-logic-node/data-set-node/data-set-node.d.ts.map +1 -1
  41. package/out/ui-logic/ui-logic-node/data-set-node/data-set-node.js +1 -0
  42. package/out/ui-logic/ui-logic-node/de-action-node/de-action-node.d.ts.map +1 -1
  43. package/out/ui-logic/ui-logic-node/de-action-node/de-action-node.js +1 -0
  44. package/out/ui-logic/ui-logic-node/execute-de-logic-node/execute-de-logic-node.d.ts.map +1 -1
  45. package/out/ui-logic/ui-logic-node/execute-de-logic-node/execute-de-logic-node.js +1 -0
  46. package/out/ui-logic/ui-logic-node/msg-box-node/msg-box-node.d.ts.map +1 -1
  47. package/out/ui-logic/ui-logic-node/msg-box-node/msg-box-node.js +1 -2
  48. package/out/ui-logic/ui-logic-node/renew-param-node/renew-param-node.d.ts.map +1 -1
  49. package/out/ui-logic/ui-logic-node/renew-param-node/renew-param-node.js +1 -0
  50. package/out/ui-logic/ui-logic-node/reset-param-node/reset-param-node.d.ts.map +1 -1
  51. package/out/ui-logic/ui-logic-node/reset-param-node/reset-param-node.js +1 -0
  52. package/out/ui-logic/ui-logic-node/sort-param-node/sort-param-node.d.ts.map +1 -1
  53. package/out/ui-logic/ui-logic-node/sort-param-node/sort-param-node.js +1 -0
  54. package/out/ui-logic/ui-logic-param/ui-logic-param.js +1 -1
  55. package/package.json +3 -3
package/dist/index.esm.js CHANGED
@@ -1097,7 +1097,7 @@ var ChildKeys = ["panelItems", "panelTabPages", "rootPanelItems"];
1097
1097
  function _getAllPanelField(model) {
1098
1098
  let childItems = [];
1099
1099
  for (const key of ChildKeys) {
1100
- if (model[key]) {
1100
+ if (model[key] && model[key].length && model[key].length > 0) {
1101
1101
  childItems = model[key];
1102
1102
  break;
1103
1103
  }
@@ -2495,6 +2495,7 @@ var ViewCallTag = /* @__PURE__ */ ((ViewCallTag2) => {
2495
2495
  // src/constant/view-mode.ts
2496
2496
  var ViewMode = /* @__PURE__ */ ((ViewMode2) => {
2497
2497
  ViewMode2["ROUTE"] = "ROUTE";
2498
+ ViewMode2["ROUTE_MODAL"] = "ROUTE_MODAL";
2498
2499
  ViewMode2["MODAL"] = "MODAL";
2499
2500
  ViewMode2["DRAWER"] = "DRAWER";
2500
2501
  ViewMode2["EMBED"] = "EMBED";
@@ -8176,6 +8177,9 @@ var MethodDto = class {
8176
8177
  * @return {*} {Promise<IData>}
8177
8178
  */
8178
8179
  async get(context, data, ignore = false) {
8180
+ if (context.srfsimple === true) {
8181
+ return data;
8182
+ }
8179
8183
  const params = {};
8180
8184
  const uiDomain = ibiz.uiDomainManager.get(context.srfsessionid);
8181
8185
  for (let i = 0; i < this.fields.length; i++) {
@@ -8260,6 +8264,14 @@ var MethodDto = class {
8260
8264
  * @return {*} {Promise<IDataEntity[]>}
8261
8265
  */
8262
8266
  async sets(context, data) {
8267
+ if (context.srfsimple === true) {
8268
+ if (data && data.length > 0) {
8269
+ return data.map((item) => {
8270
+ return this.service.createEntity(item);
8271
+ });
8272
+ }
8273
+ return [];
8274
+ }
8263
8275
  const uiDomain = ibiz.uiDomainManager.get(context.srfsessionid);
8264
8276
  return Promise.all(
8265
8277
  data.map(async (datum) => {
@@ -10602,7 +10614,7 @@ var DELogicParam = class {
10602
10614
  } else if (m.entityListParam) {
10603
10615
  ctx.params[tag] = [];
10604
10616
  } else if (m.entityPageParam) {
10605
- throw new ModelError12(m, "\u672A\u652F\u6301\u7684\u903B\u8F91\u53C2\u6570\u7C7B\u578B: \u5206\u9875\u67E5\u8BE2\u7ED3\u679C");
10617
+ ctx.params[tag] = {};
10606
10618
  } else if (m.entityParam) {
10607
10619
  ctx.params[tag] = {};
10608
10620
  } else if (m.lastReturnParam) {
@@ -17989,11 +18001,20 @@ var CaptionBarController = class extends ControlController {
17989
18001
  await super.onCreated();
17990
18002
  this.view.evt.on("onViewInfoChange", ({ caption: _caption, dataInfo }) => {
17991
18003
  this.state.caption = "".concat(this.view.model.caption).concat(dataInfo ? "-".concat(dataInfo) : "");
17992
- if (this.view.modal.mode === "ROUTE") {
17993
- ibiz.util.setBrowserTitle(this.state.caption);
17994
- }
18004
+ this.setBrowserTabTitle();
17995
18005
  });
17996
18006
  }
18007
+ /**
18008
+ * 设置浏览器标签页标题
18009
+ *
18010
+ * @author chitanda
18011
+ * @date 2024-02-29 10:02:02
18012
+ */
18013
+ setBrowserTabTitle() {
18014
+ if (this.view.modal.mode === "ROUTE" /* ROUTE */ || this.view.modal.mode === "ROUTE_MODAL" /* ROUTE_MODAL */) {
18015
+ ibiz.util.setBrowserTitle(this.state.caption);
18016
+ }
18017
+ }
17997
18018
  };
17998
18019
 
17999
18020
  // src/controller/control/toolbar/toolbar.controllerr.ts
@@ -18505,6 +18526,7 @@ var DEActionNode2 = class extends UILogicNode {
18505
18526
  );
18506
18527
  if (res.ok) {
18507
18528
  ctx.params[retDEUILogicParamId] = res.data;
18529
+ ctx.setLastReturn(ctx.params[retDEUILogicParamId]);
18508
18530
  }
18509
18531
  ibiz.log.debug(
18510
18532
  "\u754C\u9762\u903B\u8F91\u8282\u70B9\uFF08\u5B9E\u4F53\u884C\u4E3A\uFF09\uFF1A".concat(this.model.id, "-\u754C\u9762\u884C\u4E3A\u6240\u5C5E\u5B9E\u4F53\uFF1A").concat(dstAppDataEntityId, "-\u5B9E\u4F53\u884C\u4E3A\u6807\u8BC6\uFF1A").concat(dstAppDEActionId, "-\u53C2\u6570\u540D\u79F0\uFF1A").concat(retDEUILogicParamId, "-\u503C\uFF1A"),
@@ -18816,6 +18838,7 @@ var BindParamNode2 = class extends UILogicNode {
18816
18838
  }
18817
18839
  const srcVal = handleSrcVal2(ctx, this.model);
18818
18840
  ctx.params[dstDEUILogicParamId] = srcVal;
18841
+ ctx.setLastReturn(ctx.params[dstDEUILogicParamId]);
18819
18842
  ibiz.log.debug(
18820
18843
  "\u754C\u9762\u903B\u8F91\u8282\u70B9\uFF08\u7ED1\u5B9A\u53C2\u6570\uFF09\uFF1A".concat(this.model.id, "-\u53C2\u6570\u540D\u79F0\uFF1A").concat(dstDEUILogicParamId, "-\u503C\uFF1A"),
18821
18844
  srcVal
@@ -18843,8 +18866,7 @@ var MsgBoxNode = class extends UILogicNode {
18843
18866
  if (!buttonsType) {
18844
18867
  throw new RuntimeModelError39(this.model, "\u7F3A\u5C11\u6309\u94AE\u7C7B\u578B\u7684\u914D\u7F6E");
18845
18868
  }
18846
- let { title } = this.model;
18847
- let { message } = this.model;
18869
+ let { title, message } = this.model;
18848
18870
  if (msgBoxParamId) {
18849
18871
  const param = ctx.params[msgBoxParamId];
18850
18872
  if (param.title) {
@@ -18928,6 +18950,7 @@ var ResetParamNode2 = class extends UILogicNode {
18928
18950
  throw new RuntimeModelError41(this.model, "\u7F3A\u5C11\u76EE\u6807\u53C2\u6570\u5BF9\u8C61\u914D\u7F6E");
18929
18951
  }
18930
18952
  ctx.resetParam(dstDEUILogicParamId);
18953
+ ctx.setLastReturn(ctx.params[dstDEUILogicParamId]);
18931
18954
  ibiz.log.debug(
18932
18955
  "\u754C\u9762\u903B\u8F91\u8282\u70B9\uFF08\u91CD\u7F6E\u53C2\u6570\uFF09\uFF1A".concat(this.model.id, "-\u91CD\u7F6E\u53C2\u6570\uFF1A").concat(dstDEUILogicParamId)
18933
18956
  );
@@ -18948,6 +18971,7 @@ var CopyParamNode2 = class extends UILogicNode {
18948
18971
  }
18949
18972
  const srcVal = handleSrcVal2(ctx, this.model);
18950
18973
  ctx.params[dstDEUILogicParamId] = clone23(srcVal);
18974
+ ctx.setLastReturn(ctx.params[dstDEUILogicParamId]);
18951
18975
  ibiz.log.debug(
18952
18976
  "\u754C\u9762\u903B\u8F91\u8282\u70B9\uFF08\u62F7\u8D1D\u53C2\u6570\uFF09\uFF1A".concat(this.model.id, "-\u53C2\u6570\u540D\u79F0\uFF1A").concat(dstDEUILogicParamId, "-\u503C\uFF1A"),
18953
18977
  srcVal
@@ -18981,6 +19005,7 @@ var AppendParamNode2 = class extends UILogicNode {
18981
19005
  0,
18982
19006
  ...srcVal.slice(_srcIndex, _srcSize)
18983
19007
  );
19008
+ ctx.setLastReturn(ctx.params[dstDEUILogicParamId]);
18984
19009
  ibiz.log.debug(
18985
19010
  "\u754C\u9762\u903B\u8F91\u8282\u70B9\uFF08\u9644\u52A0\u5230\u6570\u7EC4\uFF09\uFF1A".concat(this.model.id, "-\u9644\u52A0\u53C2\u6570\uFF1A"),
18986
19011
  ctx.params,
@@ -19003,6 +19028,7 @@ var SortParamNode2 = class extends UILogicNode {
19003
19028
  arr.sort((a, b) => {
19004
19029
  return dstSortDir === "ASC" ? a[key] - b[key] : b[key] - a[key];
19005
19030
  });
19031
+ ctx.setLastReturn(ctx.params[dstDEUILogicParamId]);
19006
19032
  ibiz.log.debug(
19007
19033
  "\u754C\u9762\u903B\u8F91\u8282\u70B9\uFF08\u6392\u5E8F\u6570\u7EC4\u53C2\u6570\uFF09\uFF1A".concat(this.model.id, "-\u6392\u5E8F\u5C5E\u6027\uFF1A").concat(dstFieldName, "-\u6392\u5E8F\u6A21\u5F0F\uFF1A").concat(dstSortDir, "-\u53C2\u6570\u540D\u79F0\uFF1A").concat(dstDEUILogicParamId, "-\u6392\u5E8F\u540E\u6570\u7EC4\uFF1A"),
19008
19034
  arr
@@ -19019,6 +19045,7 @@ var RenewParamNode2 = class extends UILogicNode {
19019
19045
  throw new RuntimeModelError45(this.model, "\u7F3A\u5C11\u76EE\u6807\u53C2\u6570\u5BF9\u8C61\u914D\u7F6E");
19020
19046
  }
19021
19047
  ctx.renewParam(dstDEUILogicParamId);
19048
+ ctx.setLastReturn(ctx.params[dstDEUILogicParamId]);
19022
19049
  ibiz.log.debug(
19023
19050
  "\u754C\u9762\u903B\u8F91\u8282\u70B9\uFF08\u91CD\u65B0\u5EFA\u7ACB\u53C2\u6570\uFF09\uFF1A".concat(this.model.id, "-\u91CD\u5EFA\u53C2\u6570\uFF1A").concat(dstDEUILogicParamId)
19024
19051
  );
@@ -19048,6 +19075,7 @@ var DataSetNode2 = class extends UILogicNode {
19048
19075
  );
19049
19076
  if (res.ok) {
19050
19077
  ctx.params[retDEUILogicParamId] = res.data;
19078
+ ctx.setLastReturn(ctx.params[dstDEUILogicParamId]);
19051
19079
  }
19052
19080
  ibiz.log.debug(
19053
19081
  "\u754C\u9762\u903B\u8F91\u8282\u70B9\uFF08\u6570\u636E\u96C6\u5408\uFF09\uFF1A".concat(this.model.id, "-\u6570\u636E\u96C6\u5B9E\u4F53\u6807\u8BC6\uFF1A").concat(dstAppDataEntityId, "-\u6570\u636E\u96C6\u6807\u8BC6\uFF1A").concat(dstAppDEDataSetId, "-\u53C2\u6570\u540D\u79F0\uFF1A").concat(retDEUILogicParamId, "-\u503C\uFF1A"),
@@ -19131,6 +19159,7 @@ var ExecuteDELogicNode = class extends UILogicNode {
19131
19159
  );
19132
19160
  if (retDEUILogicParamId) {
19133
19161
  ctx.params[retDEUILogicParamId] = result;
19162
+ ctx.setLastReturn(ctx.params[retDEUILogicParamId]);
19134
19163
  }
19135
19164
  ibiz.log.debug(
19136
19165
  "\u754C\u9762\u903B\u8F91\u8282\u70B9\uFF08\u6267\u884C\u5B9E\u4F53\u903B\u8F91\uFF09\uFF1A".concat(this.model.id, "-\u5B9E\u4F53\u903B\u8F91\u6807\u8BC6\uFF1A").concat(dstAppDELogicId, "-\u5B9E\u4F53\u903B\u8F91\u6240\u5C5E\u5B9E\u4F53\uFF1A").concat(dstAppDataEntityId, "-\u53C2\u6570\u540D\u79F0\uFF1A").concat(retDEUILogicParamId, "-\u503C\uFF1A"),
@@ -19215,7 +19244,7 @@ var UILogicParam = class {
19215
19244
  } else if (m.entityListParam) {
19216
19245
  ctx.params[tag] = [];
19217
19246
  } else if (m.entityPageParam) {
19218
- throw new ModelError24(m, "\u672A\u652F\u6301\u7684\u903B\u8F91\u53C2\u6570\u7C7B\u578B: \u5206\u9875\u67E5\u8BE2\u7ED3\u679C");
19247
+ ctx.params[tag] = {};
19219
19248
  } else if (m.entityParam) {
19220
19249
  ctx.params[tag] = {};
19221
19250
  } else if (m.lastReturnParam) {
@@ -22177,6 +22206,13 @@ var FormController = class extends ControlController {
22177
22206
  * @type {FormMDCtrlController[]}
22178
22207
  */
22179
22208
  this.formMDCtrls = [];
22209
+ /**
22210
+ * 计数器对象
22211
+ * @author lxm
22212
+ * @date 2024-01-18 05:12:35
22213
+ * @type {AppCounter}
22214
+ */
22215
+ this.counters = {};
22180
22216
  }
22181
22217
  get _evt() {
22182
22218
  return this.evt;
@@ -22299,6 +22335,7 @@ var FormController = class extends ControlController {
22299
22335
  async onCreated() {
22300
22336
  await super.onCreated();
22301
22337
  await this.initDetailControllers();
22338
+ await this.initCounter();
22302
22339
  this.dataChangeNotify = debounceAndAsyncMerge(
22303
22340
  this.dataChangeNotify.bind(this),
22304
22341
  (arr1, arr2) => {
@@ -22436,6 +22473,36 @@ var FormController = class extends ControlController {
22436
22473
  );
22437
22474
  super.initControlScheduler(actualLogics);
22438
22475
  }
22476
+ async onDestroyed() {
22477
+ await super.onDestroyed();
22478
+ Object.values(this.counters).forEach((counter) => counter.destroy());
22479
+ }
22480
+ /**
22481
+ * 初始化计数器
22482
+ * @author lxm
22483
+ * @date 2024-01-18 05:12:02
22484
+ * @protected
22485
+ * @return {*} {Promise<void>}
22486
+ */
22487
+ async initCounter() {
22488
+ this.counters = {};
22489
+ const { appCounterRefs } = this.model;
22490
+ if (appCounterRefs && appCounterRefs.length > 0) {
22491
+ try {
22492
+ await Promise.all(
22493
+ appCounterRefs.map(async (counterRef) => {
22494
+ const counter = await CounterService.getCounterByRef(
22495
+ counterRef,
22496
+ this.context
22497
+ );
22498
+ this.counters[counterRef.id] = counter;
22499
+ })
22500
+ );
22501
+ } catch (error) {
22502
+ console.error(error);
22503
+ }
22504
+ }
22505
+ }
22439
22506
  };
22440
22507
 
22441
22508
  // src/controller/control/form/search-form/search-form.service.ts
@@ -24487,6 +24554,19 @@ var FormTabPanelController = class extends FormDetailController {
24487
24554
  onTabChange(tabId) {
24488
24555
  this.state.activeTab = tabId;
24489
24556
  }
24557
+ /**
24558
+ * 根据id去表单控制器里取得计数器对象
24559
+ * @return {*}
24560
+ * @author: zhujiamin
24561
+ * @Date: 2023-07-10 15:14:21
24562
+ */
24563
+ getCounter(id) {
24564
+ const { counters } = this.form;
24565
+ if (counters && counters[id]) {
24566
+ return counters[id];
24567
+ }
24568
+ return null;
24569
+ }
24490
24570
  };
24491
24571
 
24492
24572
  // src/controller/control/form/edit-form/edit-form.controller.ts
@@ -25203,10 +25283,13 @@ var EditFormController = class extends FormController {
25203
25283
  if (!this.model.enableAutoSave) {
25204
25284
  return;
25205
25285
  }
25206
- const { demand } = this.model;
25286
+ const { autoSaveMode } = this.model;
25207
25287
  const saveParam = { silent: true, noFillBack: true };
25208
- if (demand) {
25209
- saveParam.data = this.getDiffData();
25288
+ switch (autoSaveMode) {
25289
+ case 3:
25290
+ saveParam.data = this.getDiffData();
25291
+ break;
25292
+ default:
25210
25293
  }
25211
25294
  try {
25212
25295
  await this.save(saveParam);
@@ -30574,6 +30657,8 @@ var TreeController = class extends MDControlController {
30574
30657
  }
30575
30658
  return needRefresh;
30576
30659
  }
30660
+ onDataChange(_msg) {
30661
+ }
30577
30662
  };
30578
30663
 
30579
30664
  // src/controller/control/wizard-panel/wizard-panel.controller.ts
@@ -34023,13 +34108,13 @@ var GanttController = class extends TreeGridExController {
34023
34108
  context,
34024
34109
  params
34025
34110
  }) {
34026
- var _a;
34111
+ var _a, _b;
34027
34112
  const nodeData = data[0];
34028
34113
  const nodeModel = this.getNodeModel(nodeData._nodeId);
34029
34114
  const { appDataEntityId } = nodeModel;
34030
34115
  const deName = calcDeCodeNameById(appDataEntityId);
34031
- context[deName.toLowerCase()] = nodeData.srfkey;
34032
- const result = await ((_a = this.viewScheduler) == null ? void 0 : _a.triggerCustom(
34116
+ context[deName.toLowerCase()] = (_a = nodeData._deData) == null ? void 0 : _a.srfkey;
34117
+ const result = await ((_b = this.viewScheduler) == null ? void 0 : _b.triggerCustom(
34033
34118
  "".concat(nodeModel.id.toLowerCase(), "_opendata"),
34034
34119
  {
34035
34120
  context,
@@ -34041,7 +34126,10 @@ var GanttController = class extends TreeGridExController {
34041
34126
  }
34042
34127
  ));
34043
34128
  if (result === -1) {
34044
- throw new RuntimeModelError71(nodeModel, "\u7F3A\u5C11opendata\u7684\u89C6\u56FE\u903B\u8F91");
34129
+ throw new RuntimeModelError71(
34130
+ nodeModel,
34131
+ "\u7F3A\u5C11".concat(nodeModel.id.toLowerCase(), "_opendata\u7684\u89C6\u56FE\u903B\u8F91")
34132
+ );
34045
34133
  } else {
34046
34134
  return {
34047
34135
  cancel: result ? result.ok : true
@@ -35468,6 +35556,9 @@ var MDViewEngine = class extends ViewEngineBase {
35468
35556
  this.load();
35469
35557
  }
35470
35558
  }
35559
+ if (this.view.context.srfsimple == null) {
35560
+ this.view.context.srfsimple = true;
35561
+ }
35471
35562
  }
35472
35563
  /**
35473
35564
  * 多数据部件激活事件处理
@@ -35862,10 +35953,18 @@ var GlobalUtil = class {
35862
35953
  */
35863
35954
  setBrowserTitle(title) {
35864
35955
  const app = ibiz.hub.getApp();
35956
+ let tabTitle = "";
35957
+ if (ibiz.env.AppTitle) {
35958
+ tabTitle = ibiz.env.AppTitle;
35959
+ } else if (app.model.title) {
35960
+ tabTitle = app.model.title;
35961
+ } else {
35962
+ tabTitle = sourceTitle;
35963
+ }
35865
35964
  if (title) {
35866
- document.title = "".concat(app.model.title || ibiz.env.AppTitle || sourceTitle, " - ").concat(title);
35965
+ document.title = "".concat(tabTitle, " - ").concat(title);
35867
35966
  } else {
35868
- document.title = app.model.title || ibiz.env.AppTitle || sourceTitle;
35967
+ document.title = tabTitle;
35869
35968
  }
35870
35969
  }
35871
35970
  };