@sapui5/sap.suite.ui.generic.template 1.120.28 → 1.120.29
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.
- package/package.json +1 -1
- package/src/sap/suite/ui/generic/template/.library +1 -1
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n.properties +1 -1
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_ar.properties +1 -1
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_bg.properties +1 -1
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_ca.properties +1 -1
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_cs.properties +1 -1
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_cy.properties +1 -1
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_da.properties +1 -1
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_de.properties +2 -2
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_el.properties +1 -1
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_en.properties +1 -1
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_en_GB.properties +1 -1
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_en_US_saprigi.properties +1 -1
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_es.properties +1 -1
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_es_MX.properties +1 -1
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_et.properties +1 -1
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_fi.properties +1 -1
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_fr.properties +1 -1
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_fr_CA.properties +1 -1
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_hi.properties +1 -1
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_hr.properties +1 -1
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_hu.properties +1 -1
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_id.properties +1 -1
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_it.properties +1 -1
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_iw.properties +1 -1
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_ja.properties +1 -1
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_kk.properties +1 -1
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_ko.properties +1 -1
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_lv.properties +1 -1
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_mk.properties +1 -1
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_ms.properties +1 -1
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_nl.properties +1 -1
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_no.properties +3 -3
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_pl.properties +1 -1
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_pt.properties +1 -1
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_pt_PT.properties +1 -1
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_ro.properties +1 -1
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_ru.properties +1 -1
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_sk.properties +1 -1
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_sv.properties +1 -1
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_th.properties +1 -1
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_tr.properties +1 -1
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_uk.properties +1 -1
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_vi.properties +1 -1
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_zh_CN.properties +1 -1
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_zh_TW.properties +1 -1
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/manifest.json +1 -1
- package/src/sap/suite/ui/generic/template/Canvas/manifest.json +1 -1
- package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_id.properties +1 -1
- package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_ja.properties +6 -6
- package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_mk.properties +2 -2
- package/src/sap/suite/ui/generic/template/ListReport/manifest.json +1 -1
- package/src/sap/suite/ui/generic/template/ObjectPage/controller/ControllerImplementation.js +83 -80
- package/src/sap/suite/ui/generic/template/ObjectPage/controller/SectionTitleHandler.js +51 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n.properties +1 -1
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_da.properties +1 -1
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_de.properties +1 -1
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_en_US_saprigi.properties +1 -1
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_ru.properties +2 -2
- package/src/sap/suite/ui/generic/template/ObjectPage/manifest.json +1 -1
- package/src/sap/suite/ui/generic/template/ObjectPage/view/Details.view.xml +1 -1
- package/src/sap/suite/ui/generic/template/QuickCreate/i18n/i18n_de.properties +1 -1
- package/src/sap/suite/ui/generic/template/QuickCreate/manifest.json +1 -1
- package/src/sap/suite/ui/generic/template/QuickView/manifest.json +1 -1
- package/src/sap/suite/ui/generic/template/lib/AppComponent.js +1 -1
- package/src/sap/suite/ui/generic/template/lib/MessageButtonHelper.js +1 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ja.properties +1 -1
- package/src/sap/suite/ui/generic/template/lib/navigation/NavigationController.js +1 -1
- package/src/sap/suite/ui/generic/template/library.js +1 -1
- package/src/sap/suite/ui/generic/template/manifestMerger/ChangePageConfiguration.js +66 -17
- package/src/sap/suite/ui/generic/template/manifestMerger/MergerUtil.js +5 -4
|
@@ -10,6 +10,7 @@ sap.ui.define([
|
|
|
10
10
|
"sap/suite/ui/generic/template/detailTemplates/detailUtils",
|
|
11
11
|
"sap/suite/ui/generic/template/ObjectPage/controller/MessageSortingHandler",
|
|
12
12
|
"sap/suite/ui/generic/template/ObjectPage/controller/MessageStripHelper",
|
|
13
|
+
"sap/suite/ui/generic/template/ObjectPage/controller/SectionTitleHandler",
|
|
13
14
|
"sap/suite/ui/generic/template/ObjectPage/controller/SideContentHandler",
|
|
14
15
|
"sap/suite/ui/generic/template/ObjectPage/extensionAPI/ExtensionAPI",
|
|
15
16
|
"sap/m/Table",
|
|
@@ -34,10 +35,10 @@ sap.ui.define([
|
|
|
34
35
|
"sap/suite/ui/generic/template/ObjectPage/controller/inlineCreationRows/InlineCreationRowsHelper",
|
|
35
36
|
"sap/suite/ui/generic/template/ObjectPage/controller/RelatedAppsHandler",
|
|
36
37
|
"sap/ui/core/Lib"
|
|
37
|
-
], function (ControllerExtension, MessageBox, Filter, Sorter, ManagedObjectModel, SelectionVariant, controlHelper,
|
|
38
|
-
testableHelper, detailUtils, MessageSortingHandler, MessageStripHelper, SideContentHandler, ExtensionAPI,
|
|
38
|
+
], function (ControllerExtension, MessageBox, Filter, Sorter, ManagedObjectModel, SelectionVariant, controlHelper,
|
|
39
|
+
testableHelper, detailUtils, MessageSortingHandler, MessageStripHelper, SectionTitleHandler, SideContentHandler, ExtensionAPI,
|
|
39
40
|
ResponsiveTable, ShareUtils, FeLogger, MultipleViewsHandler, MessageUtils, KeyCodes, merge, FilterProcessor,
|
|
40
|
-
StableIdHelper, extend, UriParameters, isEmptyObject, Focusable, FeError,
|
|
41
|
+
StableIdHelper, extend, UriParameters, isEmptyObject, Focusable, FeError,
|
|
41
42
|
CreateWithDialogHandler, Device, whitespaceReplacer, deepExtend, CtxMenuHandler, InlineCreationRowsHelper, RelatedAppsHandler, Lib
|
|
42
43
|
) {
|
|
43
44
|
"use strict";
|
|
@@ -101,12 +102,12 @@ sap.ui.define([
|
|
|
101
102
|
// any asynchronous actions triggered by applying the state are not considered - promise is resolved as soon, as synchronous
|
|
102
103
|
// processing is completed
|
|
103
104
|
var fnInitialStateAppliedResolve = null; // resolve function for oStateAppliedAfterBindPromise
|
|
104
|
-
|
|
105
|
+
|
|
105
106
|
var mTablesWithSelectionChangeDuringDraftEdit = Object.create(null); // initialized in draft edit; collects the ids of all tables that have a selection change during the edit session
|
|
106
107
|
|
|
107
108
|
// This represents the global state of object page which affects the data loading of sub-sections.
|
|
108
109
|
// There are different states, for which data loading of a sub-sections might be waiting for,
|
|
109
|
-
// We use this variable to keep track whether those things have completed or not.
|
|
110
|
+
// We use this variable to keep track whether those things have completed or not.
|
|
110
111
|
// This state is reset in every rebind cycle (by method resetWaitForState) and set appropriately (by method setWaitForState) whenever some events happen like, header data available, stateApplied, layoutFinished.
|
|
111
112
|
// Currently structure of this state looks like
|
|
112
113
|
// oWaitForState = {
|
|
@@ -130,7 +131,7 @@ sap.ui.define([
|
|
|
130
131
|
|
|
131
132
|
// Map would contain the SubSections which has come to ViewPort once for the current ObjectPage context
|
|
132
133
|
// and the onSubSectionEnteredExtension is called. When the OP context is changed in the beforeRebind method
|
|
133
|
-
// the Map will be reset the states
|
|
134
|
+
// the Map will be reset the states
|
|
134
135
|
var mSubSectionsInitState = Object.create(null);
|
|
135
136
|
var mSubSectionTitle = Object.create(null);
|
|
136
137
|
|
|
@@ -160,7 +161,7 @@ sap.ui.define([
|
|
|
160
161
|
oTemplateUtils.oServices.oViewDependencyHelper.setAllPagesDirty([oComponent.getId()]);
|
|
161
162
|
oTemplateUtils.oServices.oViewDependencyHelper.unbindChildren(oComponent);
|
|
162
163
|
// Draft activation is a kind of cross navigation -> invalidate paginator info
|
|
163
|
-
|
|
164
|
+
|
|
164
165
|
var bNavToListOnSave = oComponent.getNavToListOnSave();
|
|
165
166
|
var sEditFlow = oTemplateUtils.oServices.oApplication.getEditFlowOfRoot();
|
|
166
167
|
if (sEditFlow === "direct" && bEditNextObject) {
|
|
@@ -168,7 +169,7 @@ sap.ui.define([
|
|
|
168
169
|
} else if (sEditFlow === "direct" && bNavToListOnSave !== false ) {
|
|
169
170
|
oTemplateUtils.oServices.oApplication.invalidatePaginatorInfo();
|
|
170
171
|
oTemplateUtils.oServices.oApplication.navigateAfterActivation(false);
|
|
171
|
-
|
|
172
|
+
|
|
172
173
|
} else {
|
|
173
174
|
oTemplateUtils.oServices.oApplication.invalidatePaginatorInfo();
|
|
174
175
|
var oActiveContext = !bNavToListOnSave && oResponse.context;
|
|
@@ -188,7 +189,7 @@ sap.ui.define([
|
|
|
188
189
|
};
|
|
189
190
|
oTemplateUtils.oComponentUtils.fire(oController, "AfterActivate", oEvent);
|
|
190
191
|
}
|
|
191
|
-
|
|
192
|
+
|
|
192
193
|
// Contains the common code when returning to display mode via save or cancel in a non-draft scenario
|
|
193
194
|
function fnReturnToDisplayNonDraft(){
|
|
194
195
|
if (mTablesWithSelectionChangeDuringDraftEdit){ // will not be fulfilled in the create case
|
|
@@ -198,7 +199,7 @@ sap.ui.define([
|
|
|
198
199
|
mTablesWithSelectionChangeDuringDraftEdit = Object.create(null);
|
|
199
200
|
}
|
|
200
201
|
}
|
|
201
|
-
|
|
202
|
+
|
|
202
203
|
function onValidateDraft(oEvent) {
|
|
203
204
|
var oSourceElement = oEvent.getSource();
|
|
204
205
|
oTemplateUtils.oServices.oApplication.addSideEffectPromise(new Promise(function (fnResolve, fnReject) {
|
|
@@ -351,9 +352,9 @@ sap.ui.define([
|
|
|
351
352
|
fnImpl = onActivateImpl.bind(null, true);
|
|
352
353
|
sButtonId = sBtnId;
|
|
353
354
|
} else {
|
|
354
|
-
fnImpl = onActivateImpl.bind(null, false);
|
|
355
|
+
fnImpl = onActivateImpl.bind(null, false);
|
|
355
356
|
var oSourceElement = vSaveCase.getSource();
|
|
356
|
-
sButtonId = controlHelper.isMenuButton(oSourceElement) ?
|
|
357
|
+
sButtonId = controlHelper.isMenuButton(oSourceElement) ?
|
|
357
358
|
StableIdHelper.getStableId({
|
|
358
359
|
type: "ObjectPageAction",
|
|
359
360
|
subType: "ActivateMenu"}) :
|
|
@@ -402,8 +403,8 @@ sap.ui.define([
|
|
|
402
403
|
* where x is the condition provided by the user
|
|
403
404
|
|
|
404
405
|
* Handling of the filter condition during create:
|
|
405
|
-
* checking the value of dispaly Mode , iDisplayMode = 4 for create
|
|
406
|
-
* if it is a create the filter condition evaluates to the user filter x
|
|
406
|
+
* checking the value of dispaly Mode , iDisplayMode = 4 for create
|
|
407
|
+
* if it is a create the filter condition evaluates to the user filter x
|
|
407
408
|
*/
|
|
408
409
|
var oUserFilter = FilterProcessor.groupFilters(oBindingParams.filters);
|
|
409
410
|
var oTemplatePrivateModel = oTemplateUtils.oComponentUtils.getTemplatePrivateModel();
|
|
@@ -575,7 +576,7 @@ sap.ui.define([
|
|
|
575
576
|
currentUrl: sCurrentUrl,
|
|
576
577
|
appId: oAppManifest.id,
|
|
577
578
|
bEnableCollaborationShareAsCard: (oOwnerComponent.getAppComponent().getObjectPageHeaderType() === "Dynamic" &&
|
|
578
|
-
oTemplatePrivateModel.getProperty("/objectPage/displayMode") < 2) &&
|
|
579
|
+
oTemplatePrivateModel.getProperty("/objectPage/displayMode") < 2) &&
|
|
579
580
|
oOwnerComponent.getAppComponent().getCollaborationSettings().isShareAsCardEnabled !== false &&
|
|
580
581
|
!isSubObjectPage
|
|
581
582
|
|
|
@@ -587,7 +588,7 @@ sap.ui.define([
|
|
|
587
588
|
};
|
|
588
589
|
ShareUtils.openSharePopup(oTemplateUtils.oCommonUtils, oButton, oFragmentController, oController);
|
|
589
590
|
}
|
|
590
|
-
|
|
591
|
+
|
|
591
592
|
var fnDeleteConfirmationOnDelete;
|
|
592
593
|
|
|
593
594
|
function getObjectPageDeleteDialog() {
|
|
@@ -790,7 +791,7 @@ sap.ui.define([
|
|
|
790
791
|
function onDelete() {
|
|
791
792
|
oTemplateUtils.oCommonUtils.executeIfControlReady(onDeleteImpl, "delete");
|
|
792
793
|
}
|
|
793
|
-
|
|
794
|
+
|
|
794
795
|
function isObjectPageScrolledToTop(){
|
|
795
796
|
var aObjectPageSections = oObjectPage.getSections() || [];
|
|
796
797
|
var oFirstVisibleSection = aObjectPageSections.find(function(oSection){
|
|
@@ -841,9 +842,9 @@ sap.ui.define([
|
|
|
841
842
|
});
|
|
842
843
|
}
|
|
843
844
|
var oBusyHelper = oTemplateUtils.oServices.oApplication.getBusyHelper();
|
|
844
|
-
oBusyHelper.setBusy(Promise.allSettled(aWaitForSmartFieldsPromise)); // setting the app busy will trigger the setting of focus finally
|
|
845
|
+
oBusyHelper.setBusy(Promise.allSettled(aWaitForSmartFieldsPromise)); // setting the app busy will trigger the setting of focus finally
|
|
845
846
|
}
|
|
846
|
-
oTemplateUtils.oServices.oApplication.setNextFocus(fnFocusForEdit.bind(null, bMoveToTop));
|
|
847
|
+
oTemplateUtils.oServices.oApplication.setNextFocus(fnFocusForEdit.bind(null, bMoveToTop));
|
|
847
848
|
}
|
|
848
849
|
|
|
849
850
|
var fnExpiredLockDialog; // declare function already here, to avoid usage before declaration
|
|
@@ -988,7 +989,7 @@ sap.ui.define([
|
|
|
988
989
|
var iSuccessfullyDeletedCount = 0;
|
|
989
990
|
var iFailedToDeleteCount;
|
|
990
991
|
var oEntity = oController.getView().getModel().getObject(aContexts[0].getPath());
|
|
991
|
-
|
|
992
|
+
|
|
992
993
|
var oDeletePromise = oTemplateUtils.oServices.oCRUDManager.deleteEntities({
|
|
993
994
|
pathes: aDeleteContextPaths,
|
|
994
995
|
suppressRefreshAllComponents: true,
|
|
@@ -1003,7 +1004,7 @@ sap.ui.define([
|
|
|
1003
1004
|
iFailedToDeleteCount = aFailedPath.length;
|
|
1004
1005
|
}
|
|
1005
1006
|
iSuccessfullyDeletedCount = aDeleteContextPaths.length - iFailedToDeleteCount;
|
|
1006
|
-
|
|
1007
|
+
|
|
1007
1008
|
var sMessage = "";
|
|
1008
1009
|
if (iSuccessfullyDeletedCount > 0) {
|
|
1009
1010
|
var oInnerTable = oSmartTable.getTable();
|
|
@@ -1096,8 +1097,8 @@ sap.ui.define([
|
|
|
1096
1097
|
return;
|
|
1097
1098
|
}
|
|
1098
1099
|
|
|
1099
|
-
// For draft synchronization process, we do not wait until deletion operation is confirmed by the user because if we do, there may be a scenario wherein
|
|
1100
|
-
// the user confirms the deletion just when the activation of the transient context(s) has started but not yet completed. In that case, since transient
|
|
1100
|
+
// For draft synchronization process, we do not wait until deletion operation is confirmed by the user because if we do, there may be a scenario wherein
|
|
1101
|
+
// the user confirms the deletion just when the activation of the transient context(s) has started but not yet completed. In that case, since transient
|
|
1101
1102
|
// context(s) is not yet converted to draft context, it gets deleted from the UI but the rows would have been created in the backend and is also shown
|
|
1102
1103
|
// in the table when table is refreshed. That's why draft synchronization is done at an early point of time which prevents the above mentioned
|
|
1103
1104
|
// complicated situation.
|
|
@@ -1115,19 +1116,19 @@ sap.ui.define([
|
|
|
1115
1116
|
aNonDeletableContexts.push(oContext);
|
|
1116
1117
|
}
|
|
1117
1118
|
});
|
|
1118
|
-
|
|
1119
|
+
|
|
1119
1120
|
var oDialogParameter = {};
|
|
1120
1121
|
oDialogParameter.undeletableCount = 0;
|
|
1121
1122
|
oDialogParameter.tableMode = sTableMode;
|
|
1122
1123
|
if (aContexts.length > 1) {
|
|
1123
1124
|
oDialogParameter.title = oTemplateUtils.oCommonUtils.getText("ST_GENERIC_DELETE_TITLE_WITH_COUNT", [aContexts.length]);
|
|
1124
1125
|
oDialogParameter.text = oTemplateUtils.oCommonUtils.getContextText("DELETE_SELECTED_ITEMS", oSmartTable.getId());
|
|
1125
|
-
|
|
1126
|
+
|
|
1126
1127
|
} else {
|
|
1127
1128
|
oDialogParameter.title = oTemplateUtils.oCommonUtils.getText("ST_GENERIC_DELETE_TITLE");
|
|
1128
1129
|
oDialogParameter.text = oTemplateUtils.oCommonEventHandlers.getSelectedItemContextForDeleteMessage(oSmartTable, aContexts[0], true);
|
|
1129
1130
|
}
|
|
1130
|
-
|
|
1131
|
+
|
|
1131
1132
|
if (aNonDeletableContexts.length > 0) {
|
|
1132
1133
|
oDialogParameter.undeletableText = oTemplateUtils.oCommonUtils.getContextText("DELETE_UNDELETABLE_ITEMS", oSmartTable.getId(), null,
|
|
1133
1134
|
[aNonDeletableContexts.length, aContexts.length]);
|
|
@@ -1137,7 +1138,7 @@ sap.ui.define([
|
|
|
1137
1138
|
oDialogParameter.text = oTemplateUtils.oCommonUtils.getText("DELETE_UNDELETABLE_ITEM");
|
|
1138
1139
|
}
|
|
1139
1140
|
}
|
|
1140
|
-
|
|
1141
|
+
|
|
1141
1142
|
var oBeforeLineItemDeleteProperties = {
|
|
1142
1143
|
sUiElementId: sUiElementId,
|
|
1143
1144
|
aContexts: aContexts
|
|
@@ -1445,7 +1446,7 @@ sap.ui.define([
|
|
|
1445
1446
|
var oSelectedSectionInfo = fnGetSelectedSectionInfo(oEvent);
|
|
1446
1447
|
fnSectionChanged(oSelectedSectionInfo.sNewSectionId, oSelectedSectionInfo.sNewSubSectionId);
|
|
1447
1448
|
}
|
|
1448
|
-
|
|
1449
|
+
|
|
1449
1450
|
function fnFocusOnFirstActionButton(){
|
|
1450
1451
|
setTimeout(function(){
|
|
1451
1452
|
var oObjectHeader = oObjectPage.getHeaderTitle();
|
|
@@ -1455,11 +1456,11 @@ sap.ui.define([
|
|
|
1455
1456
|
return oAction.getVisible() && oAction.getEnabled && oAction.getEnabled();
|
|
1456
1457
|
});
|
|
1457
1458
|
if (oActionButton){
|
|
1458
|
-
controlHelper.focusControl(oActionButton.getId());
|
|
1459
|
+
controlHelper.focusControl(oActionButton.getId());
|
|
1459
1460
|
}
|
|
1460
1461
|
}, 0);
|
|
1461
1462
|
}
|
|
1462
|
-
|
|
1463
|
+
|
|
1463
1464
|
// Returns a Promise that resolves to the control the focus should be set to when entering edit mode
|
|
1464
1465
|
// bFocusAtTop determines whether the search should start at the first subsection of the page or at the currently selected subsection.
|
|
1465
1466
|
// Note that this call also moves the selected section and subsection to the identified control.
|
|
@@ -1482,7 +1483,7 @@ sap.ui.define([
|
|
|
1482
1483
|
if (sSelectedSection === oControl.getId()){
|
|
1483
1484
|
sSelectedSection = null;
|
|
1484
1485
|
}
|
|
1485
|
-
if (sSelectedSection){ // sSelectedSection was not yet processed, but we want to get only sections that come after that
|
|
1486
|
+
if (sSelectedSection){ // sSelectedSection was not yet processed, but we want to get only sections that come after that
|
|
1486
1487
|
return false;
|
|
1487
1488
|
}
|
|
1488
1489
|
oSelectedSection = oControl;
|
|
@@ -1495,7 +1496,7 @@ sap.ui.define([
|
|
|
1495
1496
|
if (sSelectedSubSection){ // sSelectedSubSection was not yet processed, but we want to get only subsections that come after that
|
|
1496
1497
|
return false;
|
|
1497
1498
|
}
|
|
1498
|
-
// Scroll to the given subsection and make sure that controls and bindings for this subsection are initialized (necessary because of lazy loading)
|
|
1499
|
+
// Scroll to the given subsection and make sure that controls and bindings for this subsection are initialized (necessary because of lazy loading)
|
|
1499
1500
|
fnSubSectionEntered(oControl);
|
|
1500
1501
|
oObjectPage.setSelectedSection(oSelectedSection);
|
|
1501
1502
|
oSelectedSection.setSelectedSubSection(oControl);
|
|
@@ -1503,7 +1504,7 @@ sap.ui.define([
|
|
|
1503
1504
|
}
|
|
1504
1505
|
if (controlHelper.isSmartField(oControl)){ // check whether the SmartField is the correct target for focussing
|
|
1505
1506
|
return controlHelper.getSmartFieldIsFocussableForInputPromise(oControl).then(function(bIsFocussable){
|
|
1506
|
-
return bIsFocussable && oControl; // If the SmartField has turned out to be focussable take it. Otherwise no need to investigate the subtree below it.
|
|
1507
|
+
return bIsFocussable && oControl; // If the SmartField has turned out to be focussable take it. Otherwise no need to investigate the subtree below it.
|
|
1507
1508
|
});
|
|
1508
1509
|
}
|
|
1509
1510
|
if (controlHelper.isSmartTable(oControl)){
|
|
@@ -1527,7 +1528,7 @@ sap.ui.define([
|
|
|
1527
1528
|
}
|
|
1528
1529
|
return false;
|
|
1529
1530
|
});
|
|
1530
|
-
|
|
1531
|
+
|
|
1531
1532
|
}
|
|
1532
1533
|
return null;
|
|
1533
1534
|
});
|
|
@@ -1545,10 +1546,10 @@ sap.ui.define([
|
|
|
1545
1546
|
return oTargetControl;
|
|
1546
1547
|
}); // Normalize the return value such that it always is a Promise
|
|
1547
1548
|
}
|
|
1548
|
-
|
|
1549
|
+
|
|
1549
1550
|
function fnFocusForEdit(bFocusAtTop) {
|
|
1550
1551
|
setTimeout(function () {
|
|
1551
|
-
// check if extension is found
|
|
1552
|
+
// check if extension is found
|
|
1552
1553
|
var bhasExtensionFound = oController.hasOwnProperty("focusOnEditExtension");
|
|
1553
1554
|
var oFocusControl;
|
|
1554
1555
|
if (bhasExtensionFound) {
|
|
@@ -1561,7 +1562,7 @@ sap.ui.define([
|
|
|
1561
1562
|
if (oFocusControl && oFocusControl.focus && oFocusControl.getDomRef()) {
|
|
1562
1563
|
//set the focus on the control passed by application
|
|
1563
1564
|
if (controlHelper.isSmartField(oFocusControl)) {
|
|
1564
|
-
// check whether the SmartField is the correct target for focussing
|
|
1565
|
+
// check whether the SmartField is the correct target for focussing
|
|
1565
1566
|
controlHelper.getSmartFieldIsFocussableForInputPromise(oFocusControl).then(function (bIsFocusable) {
|
|
1566
1567
|
if (bIsFocusable) {
|
|
1567
1568
|
controlHelper.focusUI5Control(oFocusControl);
|
|
@@ -1571,7 +1572,7 @@ sap.ui.define([
|
|
|
1571
1572
|
}
|
|
1572
1573
|
});
|
|
1573
1574
|
} else {
|
|
1574
|
-
//if the passed control is not a smart field, check and set the focus on
|
|
1575
|
+
//if the passed control is not a smart field, check and set the focus on
|
|
1575
1576
|
controlHelper.focusUI5Control(oFocusControl);
|
|
1576
1577
|
}
|
|
1577
1578
|
} else {
|
|
@@ -1669,12 +1670,12 @@ sap.ui.define([
|
|
|
1669
1670
|
subType: "CreateWithDialog",
|
|
1670
1671
|
sFacet: sFacetId
|
|
1671
1672
|
});
|
|
1672
|
-
|
|
1673
|
+
|
|
1673
1674
|
var oCreationDialog = sIdForCreateWithDialog && oController.byId(sIdForCreateWithDialog);
|
|
1674
1675
|
var oSmartTable = oTemplateUtils.oCommonUtils.getOwnerControl(oCreateButton, true);
|
|
1675
1676
|
var sSmartTableCreationMode = fnGetSmartTableCreationMode(oSmartTable);
|
|
1676
1677
|
var bIsInlineCreationRowsEnabled = ["creationRows", "creationRowsHiddenInEditMode"].includes(sSmartTableCreationMode);
|
|
1677
|
-
|
|
1678
|
+
|
|
1678
1679
|
if (oCreationDialog) {
|
|
1679
1680
|
oCreateWithDialogHandler.createWithDialog(oCreationDialog, oCreateButton);
|
|
1680
1681
|
} else if (bIsInlineCreationRowsEnabled) {
|
|
@@ -1698,7 +1699,7 @@ sap.ui.define([
|
|
|
1698
1699
|
oLogger.info("Filtering message " + oMessage.getMessage() + " (id: " + oMessage.getId() + ") for table " + oTable.getId() + " returns " + bRet);
|
|
1699
1700
|
return bRet;
|
|
1700
1701
|
}
|
|
1701
|
-
|
|
1702
|
+
|
|
1702
1703
|
function fnDataStateClose(oEvent){
|
|
1703
1704
|
oState.oMessageStripHelper.onClose(oEvent);
|
|
1704
1705
|
}
|
|
@@ -1716,7 +1717,7 @@ sap.ui.define([
|
|
|
1716
1717
|
}
|
|
1717
1718
|
});
|
|
1718
1719
|
}
|
|
1719
|
-
|
|
1720
|
+
|
|
1720
1721
|
function onDataReceivedForTable(oControl) {
|
|
1721
1722
|
setNoDataTextIfRequired(oControl);
|
|
1722
1723
|
}
|
|
@@ -1767,7 +1768,7 @@ sap.ui.define([
|
|
|
1767
1768
|
bHasFiltersOrSearches = oSearchField && oSearchField.getValue().trim();
|
|
1768
1769
|
}
|
|
1769
1770
|
sTextId = bHasFiltersOrSearches ? "NOITEMS_SMARTTABLE_WITH_FILTER" : "NOITEMS_SMARTTABLE";
|
|
1770
|
-
}
|
|
1771
|
+
}
|
|
1771
1772
|
var sNoDataText = oTemplateUtils.oCommonUtils.getContextText(sTextId, sSmartTableId);
|
|
1772
1773
|
oSmartTable.setNoData(sNoDataText);
|
|
1773
1774
|
}
|
|
@@ -1777,7 +1778,7 @@ sap.ui.define([
|
|
|
1777
1778
|
oViewProxy.refreshFacets = function (mRefreshInfos) {
|
|
1778
1779
|
var fnRefreshSubSection = function (oSubSection) {
|
|
1779
1780
|
var oSubSectionInfoObject = oTemplateUtils.oInfoObjectHandler.getControlInformation(oSubSection.getId());
|
|
1780
|
-
if (oSubSectionInfoObject) { // In case editableHeaderContent is enabled in manifest, There will be a HeaderFacet in edit mode for SubSectionInfo is not created. This just needs to be skipped
|
|
1781
|
+
if (oSubSectionInfoObject) { // In case editableHeaderContent is enabled in manifest, There will be a HeaderFacet in edit mode for SubSectionInfo is not created. This just needs to be skipped
|
|
1781
1782
|
oSubSectionInfoObject.refresh(mRefreshInfos, false);
|
|
1782
1783
|
}
|
|
1783
1784
|
};
|
|
@@ -1893,11 +1894,11 @@ sap.ui.define([
|
|
|
1893
1894
|
// This method is part of the infrastructure that ensures that data loading is triggered for all subsections it is needed for.
|
|
1894
1895
|
// This method is called when a state change happens that may must trigger data-loading for additional sub-sections.
|
|
1895
1896
|
// This is: If either a property of oWaitForState is set to true or bWaitForViewPort is set to false.
|
|
1896
|
-
// The method will ensure data loading for all affected sub-sections in an asynchronous way.
|
|
1897
|
+
// The method will ensure data loading for all affected sub-sections in an asynchronous way.
|
|
1897
1898
|
function fnHandleStateChangeForAllSubSections() {
|
|
1898
1899
|
// Check the info objects for all relevant sub-sections.
|
|
1899
1900
|
// If bWaitForViewPort is true (normal case) only sub-sections are relevant which do not wait for the section to have entered the view-port.
|
|
1900
|
-
// Otherwise all sub-sections are relevant.
|
|
1901
|
+
// Otherwise all sub-sections are relevant.
|
|
1901
1902
|
var sCategory = bWaitForViewPort ? "subSectionNotWaitingForViewPort" : "subSection";
|
|
1902
1903
|
var oView = oController.getView();
|
|
1903
1904
|
oTemplateUtils.oInfoObjectHandler.executeForAllInformationObjects(sCategory, function (oSubSectionInfoObj) {
|
|
@@ -1979,8 +1980,9 @@ sap.ui.define([
|
|
|
1979
1980
|
}
|
|
1980
1981
|
}
|
|
1981
1982
|
}
|
|
1983
|
+
oState.oSectionTitleHandler.manageAccessability(oSubSection);
|
|
1982
1984
|
}
|
|
1983
|
-
|
|
1985
|
+
|
|
1984
1986
|
if (oSubSectionInfoObj) { // In case of EditableHeaderFacet Sections & SubSection is created at runtime and there is info object handling
|
|
1985
1987
|
oMultipleViewsHandler.subSectionEntered(oSubSectionInfoObj); // Assigning the SubSection control MultipleViewsHandler. In case not relevant method simply returns
|
|
1986
1988
|
// The loading strategy of a sub-section might depend on the content of oWaitForState (together with the strategy) and whether or not the sub-section is currently in view-port.
|
|
@@ -2157,7 +2159,7 @@ sap.ui.define([
|
|
|
2157
2159
|
}
|
|
2158
2160
|
resolveStateApplied();
|
|
2159
2161
|
};
|
|
2160
|
-
|
|
2162
|
+
|
|
2161
2163
|
oViewProxy.prepareForControlNavigation = function(sTargetControlId){
|
|
2162
2164
|
var bUseIconTabBar = oObjectPage.getUseIconTabBar();
|
|
2163
2165
|
if (!bUseIconTabBar) {
|
|
@@ -2169,23 +2171,23 @@ sap.ui.define([
|
|
|
2169
2171
|
if (bFound){
|
|
2170
2172
|
return oAncestor.getId();
|
|
2171
2173
|
}
|
|
2172
|
-
sTargetSubSectionId = oAncestor.getId();
|
|
2174
|
+
sTargetSubSectionId = oAncestor.getId();
|
|
2173
2175
|
});
|
|
2174
2176
|
var sSelectedSectionId = sTargetSectionId && oObjectPage.getSelectedSection();
|
|
2175
2177
|
if (sTargetSectionId !== sSelectedSectionId) {
|
|
2176
2178
|
oObjectPage.setSelectedSection(sTargetSectionId);
|
|
2177
2179
|
fnSectionChanged(sTargetSectionId, sTargetSubSectionId);
|
|
2178
|
-
}
|
|
2180
|
+
}
|
|
2179
2181
|
};
|
|
2180
|
-
|
|
2182
|
+
|
|
2181
2183
|
// This function implements the method prepareForMessageHandling as described in class sap.suite.ui.generic.template.lib.TemplateAssembler.
|
|
2182
2184
|
// (Nearly) the same functionality is also provided for the message popover (see MessageButtonHost, below)
|
|
2183
2185
|
// However, in this case we have an additional challenge: The content of the popover may change while it is open.
|
|
2184
2186
|
// Therefore, an additional function is provided for the function getPrepareMessageDisplayPromise which is added to the message button host:
|
|
2185
|
-
// If oItemBinding is provided, then the returned Promise resolves to an object which has a single property getSubtitle.
|
|
2187
|
+
// If oItemBinding is provided, then the returned Promise resolves to an object which has a single property getSubtitle.
|
|
2186
2188
|
// This is a function(sMsgId, sFallback) which returns the subtitle for the message with the given id. This is partially redundant with the content of
|
|
2187
2189
|
// property mMessageToSubtitle of oHelperModel. However, the value returned by this function may be updated while the popover is open.
|
|
2188
|
-
// In order to give the popover the chance to react on such changes property heartBeat of oHelperModel will be modified in such cases.
|
|
2190
|
+
// In order to give the popover the chance to react on such changes property heartBeat of oHelperModel will be modified in such cases.
|
|
2189
2191
|
function fnPrepareForMessageHandling(aMessages, oItemBinding, oHelperModel, sBindingPath){
|
|
2190
2192
|
var bNeedsPreparation = aMessages.some(function(oMessage){ // check whether there is at least one message which cannot be positioned on a not-table currently
|
|
2191
2193
|
var sId = oTemplateUtils.oCommonUtils.getPositionableControlId(oMessage.controlIds, true);
|
|
@@ -2222,7 +2224,7 @@ sap.ui.define([
|
|
|
2222
2224
|
if (isEmptyObject(aHiddenColumnInfo.columnKeyToHiddenPath)) {
|
|
2223
2225
|
return;
|
|
2224
2226
|
}
|
|
2225
|
-
|
|
2227
|
+
|
|
2226
2228
|
var aHiddenColumns = aHiddenColumnInfo.staticHiddenColumns.slice(); // start with a copy of the list of statically hidden columns
|
|
2227
2229
|
// Now add the dynamically hidden columns if applicable
|
|
2228
2230
|
var fnOnChange = bFirstTimeForContext && fnExecuteDynamicColumnHide.bind(null, false, oSmartTableInfoObject);
|
|
@@ -2299,7 +2301,7 @@ sap.ui.define([
|
|
|
2299
2301
|
oTemplateUtils.oInfoObjectHandler.initializeSubSectionInfoObject(oSubSectionSettings);
|
|
2300
2302
|
}
|
|
2301
2303
|
}
|
|
2302
|
-
|
|
2304
|
+
|
|
2303
2305
|
function onSelectionChange(oEvent){
|
|
2304
2306
|
var oEventSource = oEvent.getSource();
|
|
2305
2307
|
oTemplateUtils.oCommonUtils.setEnabledToolbarButtons(oEventSource);
|
|
@@ -2335,7 +2337,7 @@ sap.ui.define([
|
|
|
2335
2337
|
});
|
|
2336
2338
|
// reset Wait for state
|
|
2337
2339
|
resetWaitForState();
|
|
2338
|
-
|
|
2340
|
+
|
|
2339
2341
|
// Initialize the information objects for SubSections & child aggregations
|
|
2340
2342
|
fnInitializeSubSections();
|
|
2341
2343
|
|
|
@@ -2353,16 +2355,16 @@ sap.ui.define([
|
|
|
2353
2355
|
var oMessageButtonHost = { // Functionality required by the message popover
|
|
2354
2356
|
controller: oController,
|
|
2355
2357
|
getPrepareMessageDisplayPromise: fnPrepareForMessageHandling
|
|
2356
|
-
};
|
|
2358
|
+
};
|
|
2357
2359
|
oBase.onInit(null, oMessageButtonHost);
|
|
2358
2360
|
fnEnsureTitleTransfer();
|
|
2359
2361
|
oTemplateUtils.oCommonUtils.executeGlobalSideEffect();
|
|
2360
|
-
|
|
2362
|
+
|
|
2361
2363
|
oViewProxy.beforeRebind = function (oWaitForPromise) {
|
|
2362
2364
|
// Reset the mSubSectionInitState map as the binding context is changed
|
|
2363
2365
|
mSubSectionsInitState = Object.create(null);
|
|
2364
2366
|
|
|
2365
|
-
|
|
2367
|
+
|
|
2366
2368
|
resetWaitForState();
|
|
2367
2369
|
oWaitForPromise.then(function () {
|
|
2368
2370
|
setWaitForState("bRebindCompleted");
|
|
@@ -2376,7 +2378,7 @@ sap.ui.define([
|
|
|
2376
2378
|
}
|
|
2377
2379
|
oTemplateUtils.oInfoObjectHandler.executeForAllInformationObjects("subSection", function (oInfoObject) {
|
|
2378
2380
|
// Need to access the SubSection early and could not use the general mechanism of
|
|
2379
|
-
// oInfoObject.getControlAsync as this is resolved only after SubSection enters
|
|
2381
|
+
// oInfoObject.getControlAsync as this is resolved only after SubSection enters
|
|
2380
2382
|
// viewport. As the View Lazy Loading could be applied only to children of subsection, subsection
|
|
2381
2383
|
// control should be rendered on view initialization
|
|
2382
2384
|
var oSubSection = oController.byId(oInfoObject.getId());
|
|
@@ -2386,12 +2388,12 @@ sap.ui.define([
|
|
|
2386
2388
|
}
|
|
2387
2389
|
});
|
|
2388
2390
|
};
|
|
2389
|
-
|
|
2391
|
+
|
|
2390
2392
|
oViewProxy.afterRebind = function () {
|
|
2391
2393
|
oLogger.info("Call of _triggerVisibleSubSectionsEvents (afterRebind)");
|
|
2392
2394
|
oObjectPage._triggerVisibleSubSectionsEvents();
|
|
2393
2395
|
};
|
|
2394
|
-
|
|
2396
|
+
|
|
2395
2397
|
// This is the fallback implementation. Note that certain scenarios are already covered in-place (Edit, Save, Cancel)
|
|
2396
2398
|
oViewProxy.setFocus = function(oBeforeData, oAdditionalData){
|
|
2397
2399
|
var aActiveComponentsBefore = oBeforeData.activeComponents;
|
|
@@ -2413,12 +2415,12 @@ sap.ui.define([
|
|
|
2413
2415
|
var oUiModel = oObjectPage.getModel("ui");
|
|
2414
2416
|
var bEditable = oUiModel.getProperty("/editable");
|
|
2415
2417
|
if (bEditable){
|
|
2416
|
-
fnFocusForEdit(true);
|
|
2418
|
+
fnFocusForEdit(true);
|
|
2417
2419
|
} else {
|
|
2418
2420
|
fnFocusOnFirstActionButton();
|
|
2419
2421
|
}
|
|
2420
2422
|
};
|
|
2421
|
-
|
|
2423
|
+
|
|
2422
2424
|
oObjectPage.attachEvent("subSectionEnteredViewPort", function (oEvent) {
|
|
2423
2425
|
var oSubSection = oEvent.getParameter("subSection");
|
|
2424
2426
|
oLogger.info("Viewport entered ", "Subsection: " + oSubSection.getId());
|
|
@@ -2429,9 +2431,10 @@ sap.ui.define([
|
|
|
2429
2431
|
oState.oCreateWithDialogHandler = oCreateWithDialogHandler;
|
|
2430
2432
|
oMultipleViewsHandler = new MultipleViewsHandler(oController, oTemplateUtils, oTemplateUtils.oComponentUtils.stateChanged);
|
|
2431
2433
|
oState.oMultipleViewsHandler = oMultipleViewsHandler;
|
|
2432
|
-
|
|
2434
|
+
|
|
2433
2435
|
oState.oMessageStripHelper = new MessageStripHelper(oMultipleViewsHandler, oController, oTemplateUtils, oBase.state.messageButtonHelper);
|
|
2434
2436
|
oState.oInlineCreationRowsHelper = new InlineCreationRowsHelper(oObjectPage, oTemplateUtils, fnGetSmartTableCreationMode, oController, oState.oMessageStripHelper);
|
|
2437
|
+
oState.oSectionTitleHandler = new SectionTitleHandler(oTemplateUtils);
|
|
2435
2438
|
|
|
2436
2439
|
var oTemplatePrivateModel = oTemplateUtils.oComponentUtils.getTemplatePrivateModel();
|
|
2437
2440
|
oTemplatePrivateModel.setProperty("/objectPage/aPasteAttachedTables", []);
|
|
@@ -2442,7 +2445,7 @@ sap.ui.define([
|
|
|
2442
2445
|
var oStreamData = oTemplateUtils.oCommonUtils.getStreamData(aStreamEnabledAssociatedEntities[i], oEvent.context);
|
|
2443
2446
|
oTemplateUtils.oCommonUtils.setStreamData(oStreamData, aStreamEnabledAssociatedEntities[i]);
|
|
2444
2447
|
}
|
|
2445
|
-
}
|
|
2448
|
+
}
|
|
2446
2449
|
var oStreamDataSelf = oTemplateUtils.oCommonUtils.getStreamData(null, oEvent.context);
|
|
2447
2450
|
oTemplateUtils.oCommonUtils.setStreamData(oStreamDataSelf);
|
|
2448
2451
|
oTemplateUtils.oComponentUtils.hidePlaceholder();
|
|
@@ -2478,13 +2481,13 @@ sap.ui.define([
|
|
|
2478
2481
|
}, true);
|
|
2479
2482
|
});
|
|
2480
2483
|
},
|
|
2481
|
-
|
|
2484
|
+
|
|
2482
2485
|
addEntry: fnAddEntry,
|
|
2483
|
-
|
|
2486
|
+
|
|
2484
2487
|
onCancelCreateWithPopUpDialog: function () {
|
|
2485
2488
|
oCreateWithDialogHandler.onCancelPopUpDialog();
|
|
2486
2489
|
},
|
|
2487
|
-
|
|
2490
|
+
|
|
2488
2491
|
onSaveCreateWithPopUpDialog: function (oEvent) {
|
|
2489
2492
|
oCreateWithDialogHandler.onSavePopUpDialog(oEvent);
|
|
2490
2493
|
},
|
|
@@ -2517,10 +2520,10 @@ sap.ui.define([
|
|
|
2517
2520
|
},
|
|
2518
2521
|
|
|
2519
2522
|
onSelectionChange: onSelectionChange,
|
|
2520
|
-
|
|
2523
|
+
|
|
2521
2524
|
checkUpdateFinished: function (oEvent) {
|
|
2522
|
-
// in case of the table get refreshed through table filter or sort
|
|
2523
|
-
// onDataReceived may not be called
|
|
2525
|
+
// in case of the table get refreshed through table filter or sort
|
|
2526
|
+
// onDataReceived may not be called
|
|
2524
2527
|
oTemplateUtils.oCommonUtils.setEnabledToolbarButtons(oEvent.getSource());
|
|
2525
2528
|
},
|
|
2526
2529
|
// selectionChange for MultiSelectionPlugin
|
|
@@ -2544,7 +2547,7 @@ sap.ui.define([
|
|
|
2544
2547
|
fnDetachPasteHandlers();
|
|
2545
2548
|
if (!bIsDraftEnabled) {
|
|
2546
2549
|
fnReturnToDisplayNonDraft();
|
|
2547
|
-
}
|
|
2550
|
+
}
|
|
2548
2551
|
if (bIsEditFlowDirect){
|
|
2549
2552
|
oViewProxy.navigateUp();
|
|
2550
2553
|
}
|
|
@@ -2682,7 +2685,7 @@ sap.ui.define([
|
|
|
2682
2685
|
// Attach dataReceived event
|
|
2683
2686
|
oEvent.mParameters.bindingParams.events["dataReceived"] = onDataReceivedForTable.bind(null, oSmartTable);
|
|
2684
2687
|
oState.oInlineCreationRowsHelper.onBeforeRebindControl(oEvent);
|
|
2685
|
-
|
|
2688
|
+
|
|
2686
2689
|
// Set data loading text when data is loading
|
|
2687
2690
|
oSmartTable.setNoData(oTemplateUtils.oCommonUtils.getText("WAITING_SMARTTABLE"));
|
|
2688
2691
|
var oBindingParams = adjustAndProvideBindingParamsForSmartTableOrChart(oEvent);
|
|
@@ -2770,7 +2773,7 @@ sap.ui.define([
|
|
|
2770
2773
|
sectionChange: fnSectionChangedEvent,
|
|
2771
2774
|
onSwitchTabs: fnOnSwitchTabs,
|
|
2772
2775
|
uploadStream: function(oEvent) {
|
|
2773
|
-
oTemplateUtils.oCommonEventHandlers.uploadStream(oEvent);
|
|
2776
|
+
oTemplateUtils.oCommonEventHandlers.uploadStream(oEvent);
|
|
2774
2777
|
},
|
|
2775
2778
|
|
|
2776
2779
|
handleUploadComplete: function(oEvent) {
|
|
@@ -2820,7 +2823,7 @@ sap.ui.define([
|
|
|
2820
2823
|
var oSmartTable = oEvent.getSource();
|
|
2821
2824
|
var oTable = oSmartTable.getTable();
|
|
2822
2825
|
var oInfoObject = oTemplateUtils.oInfoObjectHandler.setInformationWithControl(oSmartTable);
|
|
2823
|
-
// TableObserver is required to get the Smart Table's editable property for Smart
|
|
2826
|
+
// TableObserver is required to get the Smart Table's editable property for Smart
|
|
2824
2827
|
// MultiInput Control
|
|
2825
2828
|
var oModel = new ManagedObjectModel(oSmartTable);
|
|
2826
2829
|
oSmartTable.setModel(oModel, "tableobserver");
|
|
@@ -2831,11 +2834,11 @@ sap.ui.define([
|
|
|
2831
2834
|
// Hide all columns which are statically hidden at initialization of the table
|
|
2832
2835
|
oSmartTable.deactivateColumns(aHiddenColumnInfo.staticHiddenColumns);
|
|
2833
2836
|
}
|
|
2834
|
-
|
|
2837
|
+
|
|
2835
2838
|
oTemplateUtils.oCommonUtils.checkToolbarIntentsSupported(oSmartTable);
|
|
2836
2839
|
var bIsMTable = controlHelper.isMTable(oTable);
|
|
2837
2840
|
if (bIsMTable || controlHelper.isUiTable(oTable)) {
|
|
2838
|
-
var sTableId = oTable.getId();
|
|
2841
|
+
var sTableId = oTable.getId();
|
|
2839
2842
|
var fnOnSubSectionVisibilityChanged = function () {
|
|
2840
2843
|
if (bIsMTable && !mTableThresholdInfo[sTableId]) {
|
|
2841
2844
|
mTableThresholdInfo[sTableId] = oTable.getGrowingThreshold && oTable.getGrowingThreshold(); // store the default growingthreshold value of the table
|
|
@@ -2847,7 +2850,7 @@ sap.ui.define([
|
|
|
2847
2850
|
// By the time table is initialized, the subSectionVisibilityChange event may have already been triggered.
|
|
2848
2851
|
// We ensure that the table occupies whole space whenever applicable by calling this method on table init.
|
|
2849
2852
|
// Subsequently, this method is called every time the subsection visibility is changed.
|
|
2850
|
-
fnOnSubSectionVisibilityChanged();
|
|
2853
|
+
fnOnSubSectionVisibilityChanged();
|
|
2851
2854
|
}
|
|
2852
2855
|
if (fnGetSmartTableCreationMode(oSmartTable) === "inline" && !oSmartTable.data("CrossNavigation")) {
|
|
2853
2856
|
oTable.addEventDelegate({
|
|
@@ -2881,7 +2884,7 @@ sap.ui.define([
|
|
|
2881
2884
|
}
|
|
2882
2885
|
});
|
|
2883
2886
|
}
|
|
2884
|
-
|
|
2887
|
+
|
|
2885
2888
|
oTemplateUtils.oServices.oPresentationControlHandlerFactory.getPresentationControlHandler(oSmartTable).addCellSelector();
|
|
2886
2889
|
},
|
|
2887
2890
|
onBeforeExport: function (oExportEvent) {
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
sap.ui.define([
|
|
2
|
+
"sap/ui/base/Object",
|
|
3
|
+
"sap/base/util/extend",
|
|
4
|
+
"sap/suite/ui/generic/template/genericUtilities/controlHelper"
|
|
5
|
+
], function(BaseObject, extend, controlHelper) {
|
|
6
|
+
"use strict";
|
|
7
|
+
|
|
8
|
+
function getMethods(oTemplateUtils) {
|
|
9
|
+
|
|
10
|
+
function fnManageAccessability(oFirstSubSection) {
|
|
11
|
+
var oSubSectionInfoObject = oTemplateUtils.oInfoObjectHandler.getControlInformation(oFirstSubSection.getId()),
|
|
12
|
+
oSection = oFirstSubSection.getParent();
|
|
13
|
+
oFirstSubSection.getBlocks().concat(oFirstSubSection.getMoreBlocks())
|
|
14
|
+
.reduce(function(accBlock, currentBlock) {
|
|
15
|
+
if (!currentBlock.getContent || !currentBlock.getContent() || !currentBlock.getContent().length) {
|
|
16
|
+
return accBlock;
|
|
17
|
+
}
|
|
18
|
+
currentBlock.getContent().reduce(function(accContent, currentContent) {
|
|
19
|
+
if (controlHelper.isSmartForm(currentContent)) {
|
|
20
|
+
accContent.push(currentContent); // collect all SubSections SmartForms
|
|
21
|
+
}
|
|
22
|
+
return accContent;
|
|
23
|
+
}, accBlock);
|
|
24
|
+
return accBlock;
|
|
25
|
+
}, [])
|
|
26
|
+
.forEach(function(entry) {
|
|
27
|
+
if (!oSubSectionInfoObject) {
|
|
28
|
+
// Case: header is editable. manifest.json, editableHeaderContent=true
|
|
29
|
+
entry._suggestTitleId(oSection.getId() + "-title"); // set Section title id that will be used for aria
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
if (entry.getGroups().length === 1 && entry.getGroups()[0].getTitle && !entry.getGroups()[0].getTitle()) {
|
|
33
|
+
// Case: Section -> one SubSection -> one SmartForm -> one Group. Title is not displayed in this case
|
|
34
|
+
entry._suggestTitleId(oSection.getId() + "-title"); // set title to SubSection title id that will be used for aria
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
// public instance methods
|
|
41
|
+
return {
|
|
42
|
+
manageAccessability: fnManageAccessability
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
return BaseObject.extend("sap.suite.ui.generic.template.ObjectPage.controller.SectionTitleHandler", {
|
|
47
|
+
constructor: function(oController, oObjectPage, oTemplateUtils) {
|
|
48
|
+
extend(this, getMethods(oController, oObjectPage, oTemplateUtils));
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
});
|
|
@@ -131,7 +131,7 @@ NEW_ENTRY_GROUP=New entries
|
|
|
131
131
|
EDIT_BUTTON_DESCRIPTION=Edit:
|
|
132
132
|
|
|
133
133
|
# XACT, 30: Screen reader text for a footer region
|
|
134
|
-
FOOTER_REGION_LABEL_ARIA=Footer
|
|
134
|
+
FOOTER_REGION_LABEL_ARIA=Footer
|
|
135
135
|
|
|
136
136
|
#------------template controller reuse texts---------------------
|
|
137
137
|
#template controller (in TemplateViewController.js) texts are reused in multiple templates
|
|
@@ -118,7 +118,7 @@ SUMMARIZE=Lav sammendrag
|
|
|
118
118
|
|
|
119
119
|
PROGRESS_INDICATOR_DISPLAY_VALUE_UOM_IS_PERCENT={0}%
|
|
120
120
|
|
|
121
|
-
PROGRESS_INDICATOR_DISPLAY_VALUE_NO_UOM={0}
|
|
121
|
+
PROGRESS_INDICATOR_DISPLAY_VALUE_NO_UOM={0} af {1}
|
|
122
122
|
|
|
123
123
|
PROGRESS_INDICATOR_DISPLAY_VALUE_UOM_IS_NOT_PERCENT={0} af {1} {2}
|
|
124
124
|
|