@sapui5/sap.suite.ui.generic.template 1.139.0 → 1.140.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.
- package/package.json +1 -1
- package/src/sap/suite/ui/generic/template/.library +1 -1
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/controller/ControllerImplementation.js +7 -9
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_ar.properties +0 -2
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_bg.properties +0 -2
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_ca.properties +0 -2
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_cnr.properties +0 -2
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_cs.properties +0 -2
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_cy.properties +0 -2
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_da.properties +0 -2
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_de.properties +0 -2
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_el.properties +0 -2
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_en.properties +0 -2
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_en_GB.properties +0 -2
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_en_US_saprigi.properties +0 -2
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_es.properties +0 -2
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_es_MX.properties +0 -2
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_et.properties +0 -2
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_fi.properties +0 -2
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_fr.properties +0 -2
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_fr_CA.properties +0 -2
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_hi.properties +0 -2
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_hr.properties +0 -2
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_hu.properties +0 -2
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_id.properties +0 -2
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_it.properties +0 -2
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_iw.properties +0 -2
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_ja.properties +0 -2
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_kk.properties +0 -2
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_ko.properties +0 -2
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_lt.properties +0 -2
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_lv.properties +0 -2
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_mk.properties +0 -2
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_ms.properties +0 -2
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_nl.properties +0 -2
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_no.properties +0 -2
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_pl.properties +0 -2
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_pt.properties +0 -2
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_pt_PT.properties +0 -2
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_ro.properties +0 -2
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_ru.properties +0 -2
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_sh.properties +0 -2
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_sk.properties +0 -2
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_sl.properties +0 -2
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_sr.properties +0 -2
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_sv.properties +0 -2
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_th.properties +0 -2
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_tr.properties +0 -2
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_uk.properties +0 -2
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_vi.properties +0 -2
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_zh_CN.properties +0 -2
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_zh_TW.properties +0 -2
- 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/controller/IappStateHandler.js +34 -33
- package/src/sap/suite/ui/generic/template/ListReport/manifest.json +1 -1
- package/src/sap/suite/ui/generic/template/ListReport/view/fragments/SmartTable.fragment.xml +1 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/annotationHelpers/AnnotationHelperActionButtons.js +26 -2
- package/src/sap/suite/ui/generic/template/ObjectPage/controller/ControllerImplementation.js +65 -23
- package/src/sap/suite/ui/generic/template/ObjectPage/controller/RelatedAppsHandler.js +1 -1
- package/src/sap/suite/ui/generic/template/ObjectPage/controller/SectionTitleHandler.js +16 -12
- package/src/sap/suite/ui/generic/template/ObjectPage/manifest.json +1 -1
- package/src/sap/suite/ui/generic/template/ObjectPage/view/Details.view.xml +2 -3
- package/src/sap/suite/ui/generic/template/ObjectPage/view/fragments/Actions.fragment.xml +18 -2
- package/src/sap/suite/ui/generic/template/ObjectPage/view/fragments/SmartForm.fragment.xml +1 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/view/fragments/SmartTable.fragment.xml +1 -0
- 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/designtime/controls/DynamicPage.designtime.js +2 -2
- package/src/sap/suite/ui/generic/template/designtime/controls/ObjectPageLayout.designtime.js +2 -2
- package/src/sap/suite/ui/generic/template/designtime/controls/SmartFilterBar.designtime.js +2 -2
- package/src/sap/suite/ui/generic/template/designtime/controls/SmartTable.designtime.js +2 -2
- package/src/sap/suite/ui/generic/template/designtime/utils/designtimeUtils.js +6 -1
- package/src/sap/suite/ui/generic/template/fragments/AINotice.fragment.xml +24 -0
- package/src/sap/suite/ui/generic/template/genericUtilities/polyFill.js +6 -7
- package/src/sap/suite/ui/generic/template/js/AnnotationHelper.js +61 -0
- package/src/sap/suite/ui/generic/template/lib/AppComponent.js +3 -2
- package/src/sap/suite/ui/generic/template/lib/CommonUtils.js +2 -2
- package/src/sap/suite/ui/generic/template/lib/ai/EasyFill/EasyFillHandler.js +407 -0
- package/src/sap/suite/ui/generic/template/lib/ai/EasyFill/fragments/EasyFillDialog.fragment.xml +82 -0
- package/src/sap/suite/ui/generic/template/lib/ai/EasyFill/fragments/EasyFillNonUpdatableSmartForm.fragment.xml +18 -0
- package/src/sap/suite/ui/generic/template/lib/ai/EasyFill/fragments/EasyFillUpdatebleSmartForm.fragment.xml +15 -0
- package/src/sap/suite/ui/generic/template/lib/ai/EasyFilterBarHandler.js +40 -5
- package/src/sap/suite/ui/generic/template/lib/ai/FioriAIHandler.js +2 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n.properties +72 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ar.properties +48 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_bg.properties +48 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ca.properties +48 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_cnr.properties +48 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_cs.properties +48 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_cy.properties +48 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_da.properties +48 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_de.properties +48 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_el.properties +48 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_en.properties +48 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_en_GB.properties +48 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_en_US_saprigi.properties +48 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_es.properties +48 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_es_MX.properties +48 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_et.properties +48 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_fi.properties +48 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_fr.properties +48 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_fr_CA.properties +48 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_hi.properties +48 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_hr.properties +48 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_hu.properties +48 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_id.properties +51 -3
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_it.properties +48 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_iw.properties +48 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ja.properties +48 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_kk.properties +48 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ko.properties +49 -1
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_lt.properties +48 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_lv.properties +48 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_mk.properties +48 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ms.properties +48 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_nl.properties +48 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_no.properties +48 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_pl.properties +48 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_pt.properties +48 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_pt_PT.properties +48 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ro.properties +48 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ru.properties +48 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_sh.properties +48 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_sk.properties +48 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_sl.properties +48 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_sr.properties +48 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_sv.properties +48 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_th.properties +48 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_tr.properties +48 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_uk.properties +48 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_vi.properties +48 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_zh_CN.properties +48 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_zh_TW.properties +48 -0
- 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/themes/base/ObjectPage.less +51 -0
|
@@ -84,12 +84,12 @@ sap.ui.define([
|
|
|
84
84
|
var aPageVariantControlStateWrappers = []; // controls handled from page variant management if used: smartTable, searchfield, partly multiple views
|
|
85
85
|
|
|
86
86
|
// SmartTable state: Table Settings and (in case of control level variant management) selected variant and whether it's dirty
|
|
87
|
-
// In case of multipleViews with multiple tables (mode "multi"), each tab has an own table or chart, which has an own state, so multipleViewsHandler has to take care of
|
|
87
|
+
// In case of multipleViews with multiple tables (mode "multi"), each tab has an own table or chart, which has an own state, so multipleViewsHandler has to take care of
|
|
88
88
|
// storing/restoring their states (in its part of the appState stored in genericData.tableTabData)
|
|
89
|
-
// In this case, mutliViewsHandler exchanges oState.oPresentationControlHandler (setting it always to the current visible one), so don't rely on that to get the wrapper.
|
|
89
|
+
// In this case, mutliViewsHandler exchanges oState.oPresentationControlHandler (setting it always to the current visible one), so don't rely on that to get the wrapper.
|
|
90
90
|
// Using the id (without providing optional parameter sQuickVariantKey) returns the smartTable only in single table case.
|
|
91
91
|
var oSmartTable = oController.byId(StableIdHelper.getStableId({type: "ListReportTable", subType: "SmartTable"}));
|
|
92
|
-
if (oSmartTable){ // in multipleViews case (with multiple tables) currently multipleViews handler handles complete state information
|
|
92
|
+
if (oSmartTable){ // in multipleViews case (with multiple tables) currently multipleViews handler handles complete state information
|
|
93
93
|
aControlStateWrappers.push(oTemplateUtils.oCommonUtils.getControlStateWrapper(oSmartTable));
|
|
94
94
|
}
|
|
95
95
|
|
|
@@ -128,7 +128,7 @@ sap.ui.define([
|
|
|
128
128
|
|
|
129
129
|
// List of handlers to react on (app or adaptation) extension state changes. Only one entry expected (handler in SFB wrapper). Currently, extensions are only possible in
|
|
130
130
|
// SFB - if extensions at other places are needed, the similar handler might differ depending on whether page variant management is used.
|
|
131
|
-
var aExtensionStateChangeHandlers = [];
|
|
131
|
+
var aExtensionStateChangeHandlers = [];
|
|
132
132
|
function customAppStateChange() {
|
|
133
133
|
aExtensionStateChangeHandlers.forEach(function(fnHandler) {
|
|
134
134
|
fnHandler();
|
|
@@ -239,7 +239,7 @@ sap.ui.define([
|
|
|
239
239
|
|
|
240
240
|
|
|
241
241
|
// Wrapper to control whether data is loaded
|
|
242
|
-
|
|
242
|
+
|
|
243
243
|
function fnGetDataLoadedWrapper(){
|
|
244
244
|
// Wrapper to control whether data is expected to be loaded - controls the state, but does not trigger loading data on restore!
|
|
245
245
|
var oTemplatePrivateModel = oTemplateUtils.oComponentUtils.getTemplatePrivateModel();
|
|
@@ -247,15 +247,15 @@ sap.ui.define([
|
|
|
247
247
|
// - startup with iAppState: anyway setState will be called
|
|
248
248
|
// - other startup cases: applyInitialLoadBehavior calls setState explicitly
|
|
249
249
|
// - navigation
|
|
250
|
-
|
|
250
|
+
|
|
251
251
|
function fnSetState(bState){
|
|
252
252
|
oTemplatePrivateModel.setProperty("/generic/bDataAreShownInTable", bState);
|
|
253
253
|
}
|
|
254
|
-
|
|
254
|
+
|
|
255
255
|
function fnGetState(){
|
|
256
256
|
return oTemplatePrivateModel.getProperty("/generic/bDataAreShownInTable");
|
|
257
257
|
}
|
|
258
|
-
|
|
258
|
+
|
|
259
259
|
function fnSetDataShown(bDataShown, fnHandler){
|
|
260
260
|
if (bDataShown === fnGetState()){
|
|
261
261
|
return;
|
|
@@ -263,7 +263,7 @@ sap.ui.define([
|
|
|
263
263
|
fnSetState(bDataShown);
|
|
264
264
|
fnHandler();
|
|
265
265
|
}
|
|
266
|
-
|
|
266
|
+
|
|
267
267
|
return {
|
|
268
268
|
getLocalId: function(){
|
|
269
269
|
return "$dataLoaded";
|
|
@@ -271,7 +271,7 @@ sap.ui.define([
|
|
|
271
271
|
setState: fnSetState,
|
|
272
272
|
getState: fnGetState,
|
|
273
273
|
attachStateChanged: function(fnHandler){
|
|
274
|
-
// changing from data not loaded to data loaded:
|
|
274
|
+
// changing from data not loaded to data loaded:
|
|
275
275
|
// - when SFB triggers search
|
|
276
276
|
oState.oSmartFilterbar.attachSearch(fnSetDataShown.bind(null, true, fnHandler));
|
|
277
277
|
|
|
@@ -286,7 +286,7 @@ sap.ui.define([
|
|
|
286
286
|
}
|
|
287
287
|
};
|
|
288
288
|
}
|
|
289
|
-
|
|
289
|
+
|
|
290
290
|
var oDataLoadedWrapper = fnGetDataLoadedWrapper();
|
|
291
291
|
aControlStateWrappers.push(oDataLoadedWrapper);
|
|
292
292
|
// oDataLoadedWrapper.attachStateChanged(changeIappState);
|
|
@@ -396,7 +396,7 @@ sap.ui.define([
|
|
|
396
396
|
if (Device.system.phone) {
|
|
397
397
|
collapseHeader();
|
|
398
398
|
}
|
|
399
|
-
// Ideally, oDataLoadedWrapper should ensure to keep its state correct. However, currently we have no means to attach to the command - i.e. oDataLoadedWrapper only
|
|
399
|
+
// Ideally, oDataLoadedWrapper should ensure to keep its state correct. However, currently we have no means to attach to the command - i.e. oDataLoadedWrapper only
|
|
400
400
|
// attaches to SFB's search event, which is only triggered when user presses the go button. When keyboard shortcut is used instead, this handler would be called (as it
|
|
401
401
|
// is attached to the command), but SFB's search event would not be triggered. As workaround, we additionally set data loaded state to true here and inform explicitly
|
|
402
402
|
// the the state has changed.
|
|
@@ -440,7 +440,7 @@ sap.ui.define([
|
|
|
440
440
|
}
|
|
441
441
|
}
|
|
442
442
|
}
|
|
443
|
-
|
|
443
|
+
|
|
444
444
|
/*
|
|
445
445
|
This method is called when an LR app is the target of an external navigation and the XAppState data contains a presentationVariant.
|
|
446
446
|
The sorting from this presentationVariant is then applied to the table.
|
|
@@ -460,13 +460,13 @@ sap.ui.define([
|
|
|
460
460
|
fnAdaptOtherControlsToAppState(oAppData.controlStates);
|
|
461
461
|
if (areDataShownInTable()){
|
|
462
462
|
// fnAdaptOtherControlsToAppState only (synchronously) sets the state including the information whether data should be loaded - if this is the case, the actual loading
|
|
463
|
-
// (which happens asynchronous of course) still needs to be triggered
|
|
463
|
+
// (which happens asynchronous of course) still needs to be triggered
|
|
464
464
|
loadData();
|
|
465
465
|
} else {
|
|
466
466
|
// hide placeholder already here, if no data is to be loaded - in case data is loaded, it will be hidden in data received event
|
|
467
467
|
oTemplateUtils.oComponentUtils.hidePlaceholder();
|
|
468
|
-
}
|
|
469
|
-
|
|
468
|
+
}
|
|
469
|
+
|
|
470
470
|
// special case: when restoring an old app state with data loaded, but in the meantime a filter not set in that state has been changed to mandatory, SFB.search would not
|
|
471
471
|
// trigger a request (but instead only mark that filter) - thus hiding placeholder now to avoid it to stay forever
|
|
472
472
|
// TODO: refactor: Still in that case our internal data shows data are loaded - ideally, that should not be the case
|
|
@@ -603,7 +603,7 @@ sap.ui.define([
|
|
|
603
603
|
|
|
604
604
|
function fnAdaptToAppStateStartUpWithParameters(oAppData, oURLParameters, sPreferredQuickVariantSelectionKey){
|
|
605
605
|
handleVariantIdPassedViaURLParams(oURLParameters);
|
|
606
|
-
|
|
606
|
+
|
|
607
607
|
var oSFBUiState = oState.oSmartFilterbar.getUiState();
|
|
608
608
|
var oSFBSemanticDates = oSFBUiState.getSemanticDates();
|
|
609
609
|
//oStartupObject to be passed to the extension where urlParameters and selectedQuickVariantSelectionKey are optional
|
|
@@ -766,23 +766,24 @@ sap.ui.define([
|
|
|
766
766
|
default:
|
|
767
767
|
throw new FeError(sClassName, "Invalid navigation type: " + sNavType);
|
|
768
768
|
}
|
|
769
|
-
|
|
769
|
+
|
|
770
770
|
// common to all startup cases (except iAppState)
|
|
771
771
|
if (areDataShownInTable()){
|
|
772
772
|
// trigger search if needed
|
|
773
773
|
oState.oSmartFilterbar.search();
|
|
774
|
-
// For desktop devices, expand the header for Standard and Custom variants and for tablet and mobile devices,
|
|
774
|
+
// For desktop devices, expand the header for Standard and Custom variants and for tablet and mobile devices,
|
|
775
775
|
// collapse the header only if search is triggered.
|
|
776
776
|
if (Device.system.desktop) {
|
|
777
777
|
oTemplateUtils.oCommonUtils.getControlStateWrapper(oController.byId(StableIdHelper.getStableId({type: "ListReportPage", subType: "DynamicPage"}))).setHeaderState(oController, true);
|
|
778
778
|
} else {
|
|
779
779
|
collapseHeader();
|
|
780
780
|
}
|
|
781
|
-
}
|
|
782
|
-
|
|
781
|
+
}
|
|
782
|
+
if (!areDataShownInTable() || Object.keys(oState.oSmartFilterbar.verifySearchAllowed()).length > 0) {
|
|
783
|
+
// if no data are loaded or search is not allowed, place holder has to be hidden now - otherwise it will be hidden when data is received
|
|
783
784
|
oTemplateUtils.oComponentUtils.hidePlaceholder();
|
|
784
785
|
}
|
|
785
|
-
|
|
786
|
+
|
|
786
787
|
// ensure first iAppState is created
|
|
787
788
|
changeIappState();
|
|
788
789
|
}
|
|
@@ -999,14 +1000,14 @@ sap.ui.define([
|
|
|
999
1000
|
}
|
|
1000
1001
|
|
|
1001
1002
|
// provide data load settings including defaulting
|
|
1002
|
-
// ideally, this should be implemented in a generic way in template assembler, so that generated getters also return default values for objects if not explicitely set in
|
|
1003
|
+
// ideally, this should be implemented in a generic way in template assembler, so that generated getters also return default values for objects if not explicitely set in
|
|
1003
1004
|
// manifest (i.e. it should be sufficient to define the default in component - no need to individually implement defaulting!)
|
|
1004
1005
|
function getDataLoadSettings(){
|
|
1005
1006
|
// general default
|
|
1006
1007
|
var oDefaultDataLoadSettings = {loadDataOnAppLaunch: "ifAnyFilterExist"};
|
|
1007
1008
|
|
|
1008
1009
|
// intension is boolean, but unfortunately faulty values are (historically) not treated consistently
|
|
1009
|
-
var bEnableAutoBindingMultiViews = oState.oMultipleViewsHandler.getOriginalEnableAutoBinding();
|
|
1010
|
+
var bEnableAutoBindingMultiViews = oState.oMultipleViewsHandler.getOriginalEnableAutoBinding();
|
|
1010
1011
|
|
|
1011
1012
|
// if multiple views settings is not defined (also the case in single views case), general default is taken. Unlike other faulty values, null is treated like undefined
|
|
1012
1013
|
if (bEnableAutoBindingMultiViews !== undefined && bEnableAutoBindingMultiViews !== null){
|
|
@@ -1016,13 +1017,13 @@ sap.ui.define([
|
|
|
1016
1017
|
|
|
1017
1018
|
var oManifestDataLoadSettings = oController.getOwnerComponent().getDataLoadSettings();
|
|
1018
1019
|
// (historically) explicit setting empty string (not an allowed value according to definition in component!) is treated like undefined (including adopting multiple views
|
|
1019
|
-
// settings. Other not allowed values (any other sting) were ignored, i.e. returning undefined from getInitialLoadBehaviourSettings, thus setting undefined to
|
|
1020
|
-
// oSmartVariantManagement.setExecuteOnStandard (which actually only sets the default) and finally using the value returned from
|
|
1020
|
+
// settings. Other not allowed values (any other sting) were ignored, i.e. returning undefined from getInitialLoadBehaviourSettings, thus setting undefined to
|
|
1021
|
+
// oSmartVariantManagement.setExecuteOnStandard (which actually only sets the default) and finally using the value returned from
|
|
1021
1022
|
// oSmartVariantManagement.getExecuteOnStandard (only different from overall default (false), if user has explicitly set it)
|
|
1022
1023
|
if (oManifestDataLoadSettings && oManifestDataLoadSettings.loadDataOnAppLaunch === ""){
|
|
1023
1024
|
oManifestDataLoadSettings.loadDataOnAppLaunch = undefined;
|
|
1024
1025
|
}
|
|
1025
|
-
|
|
1026
|
+
|
|
1026
1027
|
// explicit setting has highest priority
|
|
1027
1028
|
return extend(oDefaultDataLoadSettings, oManifestDataLoadSettings);
|
|
1028
1029
|
}
|
|
@@ -1031,7 +1032,7 @@ sap.ui.define([
|
|
|
1031
1032
|
// - sets default value for flag whether standard variant should be execute on select
|
|
1032
1033
|
// - determines whether we actually should load data
|
|
1033
1034
|
function applyInitialLoadBehavior(bDataLoadCausedByNavigation){
|
|
1034
|
-
// cases definitely determining to load data initially
|
|
1035
|
+
// cases definitely determining to load data initially
|
|
1035
1036
|
// - worklist
|
|
1036
1037
|
// - livemode
|
|
1037
1038
|
// - master detail (i.e. bLoadListAndFirstEntryOnStartup is set)
|
|
@@ -1040,17 +1041,17 @@ sap.ui.define([
|
|
|
1040
1041
|
|
|
1041
1042
|
var sLoadBehaviour = getDataLoadSettings().loadDataOnAppLaunch;
|
|
1042
1043
|
if (!oSmartVariantManagement || oController.getOwnerComponent().getVariantManagementHidden()){
|
|
1043
|
-
// No VM ->
|
|
1044
|
+
// No VM ->
|
|
1044
1045
|
bShouldDataBeLoaded = bShouldDataBeLoaded || sLoadBehaviour === "always";
|
|
1045
1046
|
bShouldDataBeLoaded = bShouldDataBeLoaded || (sLoadBehaviour === "ifAnyFilterExist" && oSmartFilterbar.getFiltersWithValues().length > 0);
|
|
1046
1047
|
// behavior of last patch set would translate to the following - seems not to be correct (in case of setting ifAnyFilterExist but no filters provided)
|
|
1047
1048
|
// bShouldDataBeLoaded = bShouldDataBeLoaded || sLoadBehaviour !== "never";
|
|
1048
1049
|
} else {
|
|
1049
|
-
// in case of a (visible) SVM, we need to set the default value
|
|
1050
|
-
// default value for standard variant
|
|
1050
|
+
// in case of a (visible) SVM, we need to set the default value
|
|
1051
|
+
// default value for standard variant
|
|
1051
1052
|
// - true if one of the conditions above is fulfilled
|
|
1052
|
-
// - or for any manifest setting but "never"
|
|
1053
|
-
// (Remark: "ifAnyFilterExist" leads to mark the standard variant true, even if no filter is provided - this looks ok for startup, as the text shown to the user
|
|
1053
|
+
// - or for any manifest setting but "never"
|
|
1054
|
+
// (Remark: "ifAnyFilterExist" leads to mark the standard variant true, even if no filter is provided - this looks ok for startup, as the text shown to the user
|
|
1054
1055
|
// contains the condition, but if reselecting the standard variant, it will also select without filters!
|
|
1055
1056
|
// TODO: check, how to solve that inconsistency)
|
|
1056
1057
|
// - but in both cases not, if a mandatory filter is missing
|
|
@@ -51,6 +51,7 @@
|
|
|
51
51
|
<core:CustomData key="headerInfo" value="{path: 'header>', formatter: 'AH.buildHeaderInfoCustomData'}"/>
|
|
52
52
|
<core:CustomData key="dateFormatSettings" value='\{"UTC":true,"style":"medium"\}' />
|
|
53
53
|
<core:CustomData key="useUTCDateTime" value="true" />
|
|
54
|
+
<core:CustomData key="defaultTextInEditModeSource" value="ValueList" />
|
|
54
55
|
<template:if test="{parts: [{path: 'entityType>'}, {path: 'tabItem>annotationPath'}], formatter: 'AH.tabItemHasPresentationVariant'}">
|
|
55
56
|
<template:then>
|
|
56
57
|
<core:CustomData key="lineItemQualifier"
|
|
@@ -106,7 +106,7 @@ sap.ui.define([
|
|
|
106
106
|
|
|
107
107
|
// Returns the visibility for the EDIT button on the object page
|
|
108
108
|
function getEditActionButtonVisibility(oInterface, mRestrictions, oEntitySet, oAppComponent, oTreeNode, aAncestortreeNodes) {
|
|
109
|
-
var sGeneralExpression = "!${ui>/editable}";
|
|
109
|
+
var sGeneralExpression = "!${ui>/editable}"; // logical condition for the edit button
|
|
110
110
|
|
|
111
111
|
//oTreeNode.isDraft is use to show "Hide Draft Values" or "Show Draft Values" button in List Report table toolbar and "Display Saved version/Return to Draft" button in Object page header for a draft application.
|
|
112
112
|
var sToggleExpression = "";
|
|
@@ -135,6 +135,29 @@ sap.ui.define([
|
|
|
135
135
|
}
|
|
136
136
|
getEditActionButtonVisibility.requiresIContext = true;
|
|
137
137
|
|
|
138
|
+
// Returns the visibility for the EasyFill button
|
|
139
|
+
function getEasyFillButtonVisibility(oInterface, mRestrictions, oEntitySet, oAppComponent, oTreeNode, aAncestortreeNodes) {
|
|
140
|
+
var sGeneralExpression = "{_templPrivGlobal>/generic/fioriAI/isEasyFillEnabled}"; // Ensure whether AI resource has been loaded for the EasyFill functionality
|
|
141
|
+
|
|
142
|
+
//oTreeNode.isDraft is use to show "Hide Draft Values" or "Show Draft Values" button in List Report table toolbar and "Display Saved version/Return to Draft" button in Object page header for a draft application.
|
|
143
|
+
var sFCLExpression = getFCLPathExpression(oAppComponent, oTreeNode, "Edit");
|
|
144
|
+
var sPathExpression = getPathExpression(oInterface, oEntitySet, mRestrictions, "Updatable"); // if there is an updatable path, add it to the condition
|
|
145
|
+
var aParentPath = [], sParentPath = "";
|
|
146
|
+
// for Draft enabled application, check if any parent entity set has update restriction
|
|
147
|
+
if (oTreeNode.isDraft) {
|
|
148
|
+
aAncestortreeNodes.forEach( function (oAncestorNode) {
|
|
149
|
+
if (oAncestorNode.level > 0) {
|
|
150
|
+
var oParentEntitySet = oAncestorNode.entitySetDefinition;
|
|
151
|
+
var mParentUpdateRestriction = oParentEntitySet && oParentEntitySet["Org.OData.Capabilities.V1.UpdateRestrictions"];
|
|
152
|
+
aParentPath.push(getParentPathExpression(oInterface, oParentEntitySet, mParentUpdateRestriction, "Updatable", oAncestorNode));
|
|
153
|
+
}
|
|
154
|
+
});
|
|
155
|
+
sParentPath = fnCombineByAnd.apply(null, aParentPath);
|
|
156
|
+
}
|
|
157
|
+
return fnCombineByAnd(sGeneralExpression, sFCLExpression, sPathExpression, sParentPath);
|
|
158
|
+
}
|
|
159
|
+
getEasyFillButtonVisibility.requiresIContext = true;
|
|
160
|
+
|
|
138
161
|
// Returns the visibility for the DELETE button on main object page
|
|
139
162
|
function getDeleteActionButtonVisibility(oInterface, mRestrictions, oEntitySet, oAppComponent, oTreeNode){
|
|
140
163
|
var sGeneralExpression; // logical condition for the delete button
|
|
@@ -204,6 +227,7 @@ sap.ui.define([
|
|
|
204
227
|
getActionControlBreakoutVisibility: getActionControlBreakoutVisibility,
|
|
205
228
|
getCallAction: getCallAction,
|
|
206
229
|
getDatafieldForActionVisibility: getDatafieldForActionVisibility,
|
|
207
|
-
getDraftAdminDataAccess: getDraftAdminDataAccess
|
|
230
|
+
getDraftAdminDataAccess: getDraftAdminDataAccess,
|
|
231
|
+
getEasyFillButtonVisibility
|
|
208
232
|
};
|
|
209
233
|
}, /* bExport= */ true);
|
|
@@ -35,6 +35,7 @@ sap.ui.define([
|
|
|
35
35
|
"sap/suite/ui/generic/template/ObjectPage/controller/PasteHandler",
|
|
36
36
|
"sap/suite/ui/generic/template/lib/insights/InsightsHandler",
|
|
37
37
|
"sap/suite/ui/generic/template/lib/cards/DTCardHelper",
|
|
38
|
+
"sap/suite/ui/generic/template/lib/ai/EasyFill/EasyFillHandler",
|
|
38
39
|
"sap/ui/core/Element"
|
|
39
40
|
], function (
|
|
40
41
|
ControllerExtension,
|
|
@@ -73,6 +74,7 @@ sap.ui.define([
|
|
|
73
74
|
PasteHandler,
|
|
74
75
|
InsightsHandler,
|
|
75
76
|
DTCardHelper,
|
|
77
|
+
EasyFillHandler,
|
|
76
78
|
Element
|
|
77
79
|
) {
|
|
78
80
|
"use strict";
|
|
@@ -794,38 +796,47 @@ sap.ui.define([
|
|
|
794
796
|
var oEditPromises = oTemplateUtils.oServices.oCRUDManager.editEntity(bUnconditional);
|
|
795
797
|
oEditPromises.then(function (oEditAndSiblingInfo) {
|
|
796
798
|
if (oEditAndSiblingInfo.draftAdministrativeData) {
|
|
797
|
-
fnExpiredLockDialog(oEditAndSiblingInfo.draftAdministrativeData.CreatedByUserDescription || oEditAndSiblingInfo.draftAdministrativeData.CreatedByUser);
|
|
799
|
+
fnExpiredLockDialog(oEditAndSiblingInfo.draftAdministrativeData.CreatedByUserDescription || oEditAndSiblingInfo.draftAdministrativeData.CreatedByUser).catch(Function.prototype);
|
|
798
800
|
} else {
|
|
799
801
|
fnStartEditing(oEditAndSiblingInfo);
|
|
800
802
|
}
|
|
801
803
|
});
|
|
804
|
+
return oEditPromises;
|
|
802
805
|
}
|
|
803
806
|
|
|
804
807
|
// This method is called when the user wants to edit an entity, for which a non-locking draft of another user exists.
|
|
805
808
|
// The method asks the user, whether he wants to continue editing anyway. If this is the case editing is triggered.
|
|
806
809
|
// sCreatedByUser is the name of the user possessing the non-locking draft
|
|
807
810
|
fnExpiredLockDialog = function (sCreatedByUser) {
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
811
|
+
return new Promise((resolve,reject)=>{
|
|
812
|
+
var oUnsavedChangesDialog;
|
|
813
|
+
oTemplateUtils.oCommonUtils.getDialogFragmentAsync(
|
|
814
|
+
"sap.suite.ui.generic.template.ObjectPage.view.fragments.UnsavedChangesDialog", {
|
|
815
|
+
onEdit: async function () {
|
|
816
|
+
oUnsavedChangesDialog.close();
|
|
817
|
+
try {
|
|
818
|
+
const oResponse = await fnEditEntity(true);
|
|
819
|
+
resolve(oResponse.context);
|
|
820
|
+
} catch (error) {
|
|
821
|
+
reject(error);
|
|
822
|
+
}
|
|
823
|
+
},
|
|
824
|
+
onCancel: function () {
|
|
825
|
+
oUnsavedChangesDialog.close();
|
|
826
|
+
reject();
|
|
827
|
+
}
|
|
828
|
+
}, "Dialog",undefined,true).then(function (oFragment) {
|
|
829
|
+
oUnsavedChangesDialog = oFragment;
|
|
830
|
+
// always access i18n text from the Main Object page level
|
|
831
|
+
var oDraftLockTextPromise = oTemplateUtils.oComponentUtils.getMainComponentUtils();
|
|
832
|
+
var oBusyHelper = oTemplateUtils.oServices.oApplication.getBusyHelper();
|
|
833
|
+
oBusyHelper.setBusy(oDraftLockTextPromise);
|
|
834
|
+
oDraftLockTextPromise.then(function (oMainUtils) {
|
|
835
|
+
var sDialogContentText = oMainUtils.getText("DRAFT_LOCK_EXPIRED", [sCreatedByUser]);
|
|
836
|
+
var oDialogModel = oUnsavedChangesDialog.getModel("Dialog");
|
|
837
|
+
oDialogModel.setProperty("/unsavedChangesQuestion", sDialogContentText);
|
|
838
|
+
oUnsavedChangesDialog.open();
|
|
839
|
+
});
|
|
829
840
|
});
|
|
830
841
|
});
|
|
831
842
|
};
|
|
@@ -1938,6 +1949,7 @@ sap.ui.define([
|
|
|
1938
1949
|
oState.oSectionTitleHandler.adjustSubSectionTitle(oSubSection);
|
|
1939
1950
|
// Add accessible name to the SmartForm in the first subsection if all titles are hidden, because accessible name will not propogate to the form control
|
|
1940
1951
|
oState.oSectionTitleHandler.addAccessibleName(oSubSection);
|
|
1952
|
+
oState.oSectionTitleHandler.setHeaderSmartFormAriaLabelBy(oSubSection);
|
|
1941
1953
|
}
|
|
1942
1954
|
}
|
|
1943
1955
|
|
|
@@ -2363,7 +2375,7 @@ sap.ui.define([
|
|
|
2363
2375
|
oState.oMessageStripHelper = new MessageStripHelper(oMultipleViewsHandler, oController, oTemplateUtils, oBase.state.messageButtonHelper);
|
|
2364
2376
|
oState.oInlineCreationRowsHelper = new InlineCreationRowsHelper(oObjectPage, oTemplateUtils, fnGetSmartTableCreationMode, oController, oState.oMessageStripHelper);
|
|
2365
2377
|
oState.oSectionTitleHandler = new SectionTitleHandler(oController, oObjectPage, oTemplateUtils);
|
|
2366
|
-
|
|
2378
|
+
oState.oEasyFillHandler = new EasyFillHandler(oState, oController, oTemplateUtils, oObjectPage);
|
|
2367
2379
|
var oTemplatePrivateModel = oTemplateUtils.oComponentUtils.getTemplatePrivateModel();
|
|
2368
2380
|
|
|
2369
2381
|
|
|
@@ -2529,6 +2541,9 @@ sap.ui.define([
|
|
|
2529
2541
|
onSummarize: function () {
|
|
2530
2542
|
oTemplateUtils.oServices.oFioriAIHandler.fioriaiLib.summarize.summarize({view: oController.getView()});
|
|
2531
2543
|
},
|
|
2544
|
+
onEasyFillEdit: function (oEvent) {
|
|
2545
|
+
oState.oEasyFillHandler.onEasyFillButtonClick(oEvent);
|
|
2546
|
+
},
|
|
2532
2547
|
|
|
2533
2548
|
onEdit: function (oEvent) {
|
|
2534
2549
|
var oEditButton = oController.byId("edit");
|
|
@@ -2539,6 +2554,33 @@ sap.ui.define([
|
|
|
2539
2554
|
}
|
|
2540
2555
|
oTemplateUtils.oCommonUtils.executeIfControlReady(fnEditEntity, "edit");
|
|
2541
2556
|
},
|
|
2557
|
+
onEditByEasyFill: function() {
|
|
2558
|
+
return new Promise((resolve, reject) => {
|
|
2559
|
+
try {
|
|
2560
|
+
oTemplateUtils.oServices.oApplication.performAfterSideEffectExecution(async function () {
|
|
2561
|
+
try {
|
|
2562
|
+
const oEditAndSiblingInfo = await oTemplateUtils.oServices.oCRUDManager.editEntity(false);
|
|
2563
|
+
if (oEditAndSiblingInfo.draftAdministrativeData) {
|
|
2564
|
+
const user = oEditAndSiblingInfo.draftAdministrativeData.CreatedByUserDescription || oEditAndSiblingInfo.draftAdministrativeData.CreatedByUser;
|
|
2565
|
+
try {
|
|
2566
|
+
const oContext = await fnExpiredLockDialog(user);
|
|
2567
|
+
resolve(oContext);
|
|
2568
|
+
} catch (error) {
|
|
2569
|
+
reject(error);
|
|
2570
|
+
}
|
|
2571
|
+
} else {
|
|
2572
|
+
fnStartEditing(oEditAndSiblingInfo);
|
|
2573
|
+
resolve(oEditAndSiblingInfo.context);
|
|
2574
|
+
}
|
|
2575
|
+
} catch (e) {
|
|
2576
|
+
reject(e);
|
|
2577
|
+
}
|
|
2578
|
+
});
|
|
2579
|
+
} catch (e) {
|
|
2580
|
+
reject(e);
|
|
2581
|
+
}
|
|
2582
|
+
});
|
|
2583
|
+
},
|
|
2542
2584
|
onValidateDraft: onValidateDraft,
|
|
2543
2585
|
onSave: onSave,
|
|
2544
2586
|
onSaveAndContinueEdit: onSaveAndContinueEdit,
|
|
@@ -105,7 +105,7 @@ sap.ui.define([
|
|
|
105
105
|
if (bHasRelatedAppSettings) {
|
|
106
106
|
// Iterate through oRelatedAppSettings and add all related apps into the set
|
|
107
107
|
for (const sKey in oRelatedAppsSettings) {
|
|
108
|
-
if (oRelatedAppsSettings.hasOwnProperty(sKey)) {
|
|
108
|
+
if (sKey && oRelatedAppsSettings.hasOwnProperty(sKey)) {
|
|
109
109
|
const sSemanticObject = oRelatedAppsSettings[sKey].semanticObject;
|
|
110
110
|
aSemanticObjects.push(sSemanticObject);
|
|
111
111
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
sap.ui.define(["sap/ui/base/Object", "sap/base/util/extend", "sap/suite/ui/generic/template/genericUtilities/controlHelper", "sap/ui/core/library",
|
|
2
|
-
"sap/suite/ui/generic/template/genericUtilities/FeLogger"
|
|
3
|
-
], function(BaseObject, extend, controlHelper, SapCoreLibrary, FeLogger) {
|
|
2
|
+
"sap/suite/ui/generic/template/genericUtilities/FeLogger", "sap/ui/core/Element", "sap/ui/core/InvisibleText"
|
|
3
|
+
], function(BaseObject, extend, controlHelper, SapCoreLibrary, FeLogger, Element, InvisibleText) {
|
|
4
4
|
"use strict";
|
|
5
5
|
|
|
6
6
|
var STYLE_CLASS_FOR_ADJUSTMENT = "sapUiTableOnObjectPageAdjustmentsForSection";
|
|
@@ -174,9 +174,8 @@ sap.ui.define(["sap/ui/base/Object", "sap/base/util/extend", "sap/suite/ui/gener
|
|
|
174
174
|
oSmartForm.addAriaLabelledBy(sAnchorBarSectionHeaderId);
|
|
175
175
|
}
|
|
176
176
|
|
|
177
|
-
function
|
|
178
|
-
var oSubSectionInfoObject = oTemplateUtils.oInfoObjectHandler.getControlInformation(oFirstSubSection.getId())
|
|
179
|
-
oSection = oFirstSubSection.getParent();
|
|
177
|
+
function fnSetHeaderSmartFormAriaLabelBy(oFirstSubSection) {
|
|
178
|
+
var oSubSectionInfoObject = oTemplateUtils.oInfoObjectHandler.getControlInformation(oFirstSubSection.getId());
|
|
180
179
|
oFirstSubSection.getBlocks().concat(oFirstSubSection.getMoreBlocks())
|
|
181
180
|
.reduce(function(accBlock, currentBlock) {
|
|
182
181
|
if (!currentBlock.getContent || !currentBlock.getContent() || !currentBlock.getContent().length) {
|
|
@@ -193,12 +192,17 @@ sap.ui.define(["sap/ui/base/Object", "sap/base/util/extend", "sap/suite/ui/gener
|
|
|
193
192
|
.forEach(function(entry) {
|
|
194
193
|
if (!oSubSectionInfoObject) {
|
|
195
194
|
// Case: header is editable. manifest.json, editableHeaderContent=true
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
195
|
+
var sInvisibleTextID = `${entry.getId()}-ariaLabelBy-InvisibleText`,
|
|
196
|
+
oInvisibleText = Element.getElementById(sInvisibleTextID);
|
|
197
|
+
if (!oInvisibleText) {
|
|
198
|
+
var customData = !entry.getCustomData() ? [] : entry.getCustomData().filter(function(entry) {return entry.getKey() === "smartFormAriaLabel";});
|
|
199
|
+
if (customData.length && customData[0].getValue()) {
|
|
200
|
+
oInvisibleText = new InvisibleText({id : sInvisibleTextID, text: customData[0].getValue()}).toStatic();
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
if (oInvisibleText) {
|
|
204
|
+
entry._suggestTitleId(oInvisibleText.getId()); // set Section title id that will be used for aria
|
|
205
|
+
}
|
|
202
206
|
return;
|
|
203
207
|
}
|
|
204
208
|
});
|
|
@@ -209,7 +213,7 @@ sap.ui.define(["sap/ui/base/Object", "sap/base/util/extend", "sap/suite/ui/gener
|
|
|
209
213
|
setAsTitleOwner: fnSetAsTitleOwner,
|
|
210
214
|
adjustSubSectionTitle: fnAdjustSubSectionTitle,
|
|
211
215
|
addAccessibleName: fnAddAccessibleName,
|
|
212
|
-
|
|
216
|
+
setHeaderSmartFormAriaLabelBy: fnSetHeaderSmartFormAriaLabelBy //
|
|
213
217
|
};
|
|
214
218
|
}
|
|
215
219
|
|
|
@@ -170,9 +170,8 @@
|
|
|
170
170
|
<uxap:landmarkInfo>
|
|
171
171
|
<uxap:ObjectPageAccessibleLandmarkInfo
|
|
172
172
|
rootRole="None"
|
|
173
|
-
rootLabel=""
|
|
174
|
-
footerRole="ContentInfo"
|
|
175
|
-
footerLabel="{i18n>FOOTER_REGION_LABEL_ARIA}"/>
|
|
173
|
+
rootLabel=" "
|
|
174
|
+
footerRole="ContentInfo"/>
|
|
176
175
|
</uxap:landmarkInfo>
|
|
177
176
|
</uxap:ObjectPageLayout>
|
|
178
177
|
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
ariaDescribedBy="{:= ${parameter>/stableId}.getStableId({type: 'ObjectPageAction', subType: 'EditText'})}"
|
|
22
22
|
fesr:press="fe:edit"
|
|
23
23
|
importance="High"
|
|
24
|
-
visible="{= ${editAction>visible} || ${parts: [{path: 'entitySet>Org.OData.Capabilities.V1.UpdateRestrictions'}, {path: 'entitySet>'}, {path: 'appSettings>/'}, {path: 'parameter>/treeNode'}, {path: 'parameter>/treeNodeAncestors'}], formatter: 'AHActionButtons.getEditActionButtonVisibility'} }">
|
|
24
|
+
visible="{= ${editAction>visible} || ${parts: [{path: 'entitySet>Org.OData.Capabilities.V1.UpdateRestrictions'}, {path: 'entitySet>'}, {path: 'appSettings>/'}, {path: 'parameter>/treeNode'}, {path: 'parameter>/treeNodeAncestors'}, {value: 'false'}], formatter: 'AHActionButtons.getEditActionButtonVisibility'} }">
|
|
25
25
|
<template:if test="${editAction>isStandardAction}">
|
|
26
26
|
<uxap:customData>
|
|
27
27
|
<core:CustomData key="CrossNavigation" value="{parameter>/treeNode/page/navigation/edit/target}"/>
|
|
@@ -132,7 +132,23 @@
|
|
|
132
132
|
type="Ghost"
|
|
133
133
|
dt:designtime="not-adaptable"
|
|
134
134
|
visible="{_templPrivGlobal>/generic/fioriAI/isSummarizationEnabled}" />
|
|
135
|
-
|
|
135
|
+
<template:if test="{= !${parameter>/manifest/sap.ui.generic.app/pages/0/component/settings/treeTable}}">
|
|
136
|
+
<template:if test="{parts: [{path: 'entitySet>Org.OData.Capabilities.V1.UpdateRestrictions'}, {path: 'entitySet>'}, {path: 'parameter>/treeNode/page/navigation/edit/target'}, {path: 'parameter>/treeNodeAncestors'}, {path: 'parameter>/isDraftEnabled'}], formatter: 'AHActionButtons.isEditButtonRequired'}">
|
|
137
|
+
<uxap:ObjectPageHeaderActionButton
|
|
138
|
+
id="EasyFill"
|
|
139
|
+
text="{i18n>EASY_FILL_TITLE}"
|
|
140
|
+
icon="sap-icon://ai"
|
|
141
|
+
hideText="false"
|
|
142
|
+
importance="High"
|
|
143
|
+
enabled="{ui>/enabled}"
|
|
144
|
+
dt:designtime="not-adaptable"
|
|
145
|
+
press="._templateEventHandlers.onEasyFillEdit"
|
|
146
|
+
ariaHasPopup="Dialog"
|
|
147
|
+
type="Ghost"
|
|
148
|
+
visible="{parts: [{path: 'entitySet>Org.OData.Capabilities.V1.UpdateRestrictions'}, {path: 'entitySet>'}, {path: 'appSettings>/'}, {path: 'parameter>/treeNode'}, {path: 'parameter>/treeNodeAncestors'}], formatter: 'AHActionButtons.getEasyFillButtonVisibility'}"
|
|
149
|
+
/>
|
|
150
|
+
</template:if>
|
|
151
|
+
</template:if>
|
|
136
152
|
<template:if test="{parameter>/settings/showRelatedApps}">
|
|
137
153
|
<uxap:ObjectPageHeaderActionButton id="{:= ${parameter>/stableId}.getStableId({type: 'ObjectPageAction', subType: 'RelatedApps'}) }"
|
|
138
154
|
text="{i18n>RELATED_APPS}"
|
|
@@ -21,6 +21,7 @@
|
|
|
21
21
|
<core:CustomData key="defaultDropDownDisplayBehaviour" value="descriptionOnly" />
|
|
22
22
|
<core:CustomData key="defaultTextInEditModeSource" value="ValueListNoValidation" />
|
|
23
23
|
<core:CustomData key="dateFormatSettings" value='\{"UTC":true,"style":"medium"\}' />
|
|
24
|
+
<core:CustomData key="smartFormAriaLabel" value="{parts: [{path: 'facet>'}, {path: 'entitySet>name'}], formatter: 'AH.getSmartFormTitle'}" />
|
|
24
25
|
</sfo:customData>
|
|
25
26
|
<sfo:layout>
|
|
26
27
|
<template:if test="{= ${appSettings>/useColumnLayoutForSmartForm} !== false}">
|
|
@@ -62,6 +62,7 @@
|
|
|
62
62
|
<core:CustomData key="dateFormatSettings"
|
|
63
63
|
value='\{"UTC":true,"style":"medium"\}' />
|
|
64
64
|
<core:CustomData key="useUTCDateTime" value="true" />
|
|
65
|
+
<core:CustomData key="defaultTextInEditModeSource" value="ValueList" />
|
|
65
66
|
<template:if test="{= ${objectPageTableSettings>value/lineItemQualifier}}">
|
|
66
67
|
<core:CustomData key="lineItemQualifier"
|
|
67
68
|
value="{= ${objectPageTableSettings>value/lineItemQualifier}}" />
|
|
@@ -60,7 +60,7 @@ sap.ui.define([
|
|
|
60
60
|
* @returns {DesigntimeSetting[]} The designtime metadata
|
|
61
61
|
*/
|
|
62
62
|
function getAllDesigntimeSettings(oControl) {
|
|
63
|
-
let oResourceBundle =
|
|
63
|
+
let oResourceBundle = designtimeUtils.getResourceBundle(oControl);
|
|
64
64
|
|
|
65
65
|
/**
|
|
66
66
|
* @type {DesigntimeSetting}
|
|
@@ -309,7 +309,7 @@ sap.ui.define([
|
|
|
309
309
|
actions: {
|
|
310
310
|
settings: {
|
|
311
311
|
fe: {
|
|
312
|
-
name: "
|
|
312
|
+
name: designtimeUtils.getResourceBundle(oControl).getText("RTA_CONTEXT_MENU_CONFIG"),
|
|
313
313
|
icon: "sap-icon://developer-settings",
|
|
314
314
|
handler: fnOpenTableConfigurationDialog
|
|
315
315
|
}
|
package/src/sap/suite/ui/generic/template/designtime/controls/ObjectPageLayout.designtime.js
CHANGED
|
@@ -88,7 +88,7 @@ sap.ui.define([
|
|
|
88
88
|
* @returns {DesigntimeSetting[]}
|
|
89
89
|
*/
|
|
90
90
|
let getAllDesigntimeSettings = function getAllDesigntimeSettings(oControl) {
|
|
91
|
-
let oResourceBundle =
|
|
91
|
+
let oResourceBundle = designtimeUtils.getResourceBundle(oControl);
|
|
92
92
|
|
|
93
93
|
/**
|
|
94
94
|
* @type {DesigntimeSetting}
|
|
@@ -219,7 +219,7 @@ sap.ui.define([
|
|
|
219
219
|
actions: {
|
|
220
220
|
settings: {
|
|
221
221
|
fe: {
|
|
222
|
-
name: "
|
|
222
|
+
name: designtimeUtils.getResourceBundle(oControl).getText("RTA_CONTEXT_MENU_CONFIG"),
|
|
223
223
|
icon: "sap-icon://developer-settings",
|
|
224
224
|
handler: fnOpenObjectPageConfigurationDialog
|
|
225
225
|
}
|