@sapui5/sap.suite.ui.generic.template 1.149.0 → 1.150.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/VisualFilterDialogController.js +4 -4
- 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/ControllerImplementation.js +6 -3
- package/src/sap/suite/ui/generic/template/ListReport/manifest.json +1 -1
- package/src/sap/suite/ui/generic/template/ListReport/view/fragments/DefaultVariant.fragment.xml +12 -13
- package/src/sap/suite/ui/generic/template/ObjectPage/Component.js +7 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/controller/ControllerImplementation.js +39 -5
- package/src/sap/suite/ui/generic/template/ObjectPage/controller/PasteHandler.js +100 -18
- package/src/sap/suite/ui/generic/template/ObjectPage/controller/ValueHelpDataFetcher.js +178 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n.properties +6 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_ar.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_bg.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_ca.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_cnr.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_cs.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_cy.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_da.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_de.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_el.properties +5 -1
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_en.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_en_GB.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_en_US_sappsd.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_en_US_saprigi.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_es.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_es_MX.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_et.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_fi.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_fr.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_fr_CA.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_hi.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_hr.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_hu.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_id.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_it.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_iw.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_ja.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_kk.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_ko.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_lt.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_lv.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_mk.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_ms.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_nl.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_no.properties +6 -2
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_pl.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_pt.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_pt_PT.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_ro.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_ru.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_sh.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_sk.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_sl.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_sr.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_sv.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_th.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_tr.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_uk.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_vi.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_zh_CN.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_zh_TW.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/manifest.json +1 -1
- package/src/sap/suite/ui/generic/template/ObjectPage/view/fragments/Actions.fragment.xml +9 -11
- 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/utils/designtimeUtils.js +2 -2
- package/src/sap/suite/ui/generic/template/genericUtilities/controlStateWrapperFactory/SmartFilterBarWrapper.js +48 -8
- package/src/sap/suite/ui/generic/template/js/AnnotationHelper.js +0 -1
- package/src/sap/suite/ui/generic/template/lib/AppComponent.js +1 -1
- package/src/sap/suite/ui/generic/template/lib/CRUDManager.js +24 -14
- package/src/sap/suite/ui/generic/template/lib/CommonEventHandlers.js +22 -3
- package/src/sap/suite/ui/generic/template/lib/MessageUtils.js +4 -3
- package/src/sap/suite/ui/generic/template/lib/ai/EasyFill/EasyFillAIOrchestrator.js +43 -9
- package/src/sap/suite/ui/generic/template/lib/ai/EasyFill/EasyFillApplyHandler.js +67 -218
- package/src/sap/suite/ui/generic/template/lib/ai/EasyFill/EasyFillDialogController.js +55 -8
- package/src/sap/suite/ui/generic/template/lib/ai/EasyFill/EasyFillFieldCollector.js +214 -35
- package/src/sap/suite/ui/generic/template/lib/ai/EasyFill/EasyFillFormRenderer.js +93 -18
- package/src/sap/suite/ui/generic/template/lib/ai/EasyFill/EasyFillHandler.js +421 -46
- package/src/sap/suite/ui/generic/template/lib/ai/EasyFill/EasyFillTableRenderer.js +512 -63
- package/src/sap/suite/ui/generic/template/lib/ai/EasyFill/fragments/EasyFillDialog.fragment.xml +33 -22
- package/src/sap/suite/ui/generic/template/lib/ai/EasyFilterBarHandler.js +90 -73
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n.properties +27 -3
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ar.properties +18 -2
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_bg.properties +18 -2
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ca.properties +18 -2
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_cnr.properties +18 -2
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_cs.properties +18 -2
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_cy.properties +18 -2
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_da.properties +18 -2
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_de.properties +18 -2
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_el.properties +18 -2
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_en.properties +18 -2
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_en_GB.properties +18 -2
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_en_US_saprigi.properties +18 -2
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_es.properties +18 -2
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_es_MX.properties +18 -2
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_et.properties +18 -2
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_fi.properties +18 -2
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_fr.properties +20 -4
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_fr_CA.properties +18 -2
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_hi.properties +18 -2
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_hr.properties +19 -3
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_hu.properties +18 -2
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_id.properties +18 -2
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_it.properties +18 -2
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_iw.properties +18 -2
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ja.properties +18 -2
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_kk.properties +18 -2
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ko.properties +18 -2
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_lt.properties +18 -2
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_lv.properties +18 -2
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_mk.properties +18 -2
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ms.properties +18 -2
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_nl.properties +18 -2
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_no.properties +18 -2
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_pl.properties +18 -2
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_pt.properties +18 -2
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_pt_PT.properties +18 -2
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ro.properties +18 -2
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ru.properties +18 -2
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_sh.properties +18 -2
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_sk.properties +18 -2
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_sl.properties +36 -20
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_sr.properties +18 -2
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_sv.properties +29 -13
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_th.properties +18 -2
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_tr.properties +18 -2
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_uk.properties +18 -2
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_vi.properties +18 -2
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_zh_CN.properties +18 -2
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_zh_TW.properties +18 -2
- 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 +22 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
sap.ui.define([
|
|
2
2
|
"sap/m/Button", "sap/m/Label", "sap/m/Dialog", "sap/m/Bar", "sap/m/SearchField", "sap/m/Text",
|
|
3
|
-
"sap/m/Toolbar", "sap/m/ToolbarSpacer", "sap/m/Title", "sap/m/VBox", "sap/m/HBox", "sap/m/CheckBox",
|
|
3
|
+
"sap/m/Toolbar", "sap/m/ToolbarSpacer", "sap/m/Title", "sap/m/VBox", "sap/m/HBox", "sap/m/CheckBox", "sap/m/FlexItemData",
|
|
4
4
|
"sap/m/Link", "sap/m/List", "sap/m/CustomListItem", "sap/m/StandardListItem", "sap/m/Popover",
|
|
5
5
|
"sap/ui/layout/GridData",
|
|
6
6
|
"sap/ui/core/mvc/Controller", "sap/suite/ui/generic/template/AnalyticalListPage/util/FilterUtil",
|
|
@@ -21,7 +21,7 @@ sap.ui.define([
|
|
|
21
21
|
"sap/m/DynamicDateRange",
|
|
22
22
|
"sap/suite/ui/generic/template/genericUtilities/metadataAnalyser"
|
|
23
23
|
], function(Button, Label, Dialog, Bar, SearchField, Text, Toolbar, ToolbarSpacer, Title,
|
|
24
|
-
VBox, HBox, CheckBox, Link, List, CustomListItem, StandardListItem, Popover,
|
|
24
|
+
VBox, HBox, CheckBox, FlexItemData, Link, List, CustomListItem, StandardListItem, Popover,
|
|
25
25
|
GridData, Controller, FilterUtil, V4Terms, Filter, DropDownController, DynamicDateRangeController, OverflowToolbarButton, JSONModel,
|
|
26
26
|
OverflowToolbar, OverflowToolbarLayoutData, CustomData, Device, SapMLibrary, SapCoreLibrary, FilterOperator, DatePicker, FeLogger, InvisibleText, deepEqual, StableIdHelper, extend, deepExtend, DynamicDateRange, metadataAnalyser) {
|
|
27
27
|
"use strict";
|
|
@@ -346,8 +346,8 @@ sap.ui.define([
|
|
|
346
346
|
}).data("idx", i).attachSelect(null, that._onCheckBoxSelect, that)
|
|
347
347
|
]
|
|
348
348
|
}).setAlignItems("Center"));
|
|
349
|
-
item[0].
|
|
350
|
-
item[1].
|
|
349
|
+
item[0].setLayoutData(new FlexItemData({ growFactor: 0, shrinkFactor: 0, baseSize: "8rem" }));
|
|
350
|
+
item[1].setLayoutData(new FlexItemData({ growFactor: 1, shrinkFactor: 1, minWidth: "0px" }));
|
|
351
351
|
}
|
|
352
352
|
var oChartBox = new HBox({
|
|
353
353
|
items : item
|
|
@@ -939,9 +939,12 @@ sap.ui.define([
|
|
|
939
939
|
var oTempModel = oTemplateUtils.oComponentUtils.getTemplatePrivateModel();
|
|
940
940
|
if (oTempModel.getProperty("/listReport/filterMode") === "easyFilter") {
|
|
941
941
|
oSmartFilterbar.setVisible(false);
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
942
|
+
// Only show gray overlay when data in table is present.
|
|
943
|
+
// filters scenario where gray overlay shows up when No data Illustrated msg is rendered
|
|
944
|
+
if (oTempModel.getProperty("/generic/bDataAreShownInTable")) {
|
|
945
|
+
oTempModel.setProperty("/listReport/firstSelection", true);
|
|
946
|
+
oTempModel.setProperty("/generic/bDataAreShownInTable", false);
|
|
947
|
+
}
|
|
945
948
|
} else {
|
|
946
949
|
PXFeedback.triggerPXIntegration("toggleSwitchV2");
|
|
947
950
|
oSmartFilterbar.setVisible(true);
|
package/src/sap/suite/ui/generic/template/ListReport/view/fragments/DefaultVariant.fragment.xml
CHANGED
|
@@ -15,19 +15,18 @@
|
|
|
15
15
|
<core:Fragment fragmentName="sap.suite.ui.generic.template.fragments.GlobalActions" type="XML"/>
|
|
16
16
|
</template:repeat>
|
|
17
17
|
<!--Enable the filter switch only if the easy filter is enabled-->
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
</FlexBox>
|
|
18
|
+
<SegmentedButton id = "template::FilterSwitchButton"
|
|
19
|
+
visible="{= ${_templPriv>/listReport/isHeaderExpanded} && ${_templPrivGlobal>/generic/fioriAI/isEasyFilterEnabled} }"
|
|
20
|
+
selectedKey="{_templPriv>/listReport/filterMode}"
|
|
21
|
+
selectionChange="._templateEventHandlers.onFilterSwitch">
|
|
22
|
+
<layoutData>
|
|
23
|
+
<OverflowToolbarLayoutData priority="NeverOverflow"/>
|
|
24
|
+
</layoutData>
|
|
25
|
+
<items>
|
|
26
|
+
<SegmentedButtonItem icon="sap-icon://filter-fields" tooltip="{i18n>ST_MANUAL_FILTER}" key="classic"/>
|
|
27
|
+
<SegmentedButtonItem icon="sap-icon://ai" tooltip="{i18n>ST_EASY_FILTER}" key="easyFilter"/>
|
|
28
|
+
</items>
|
|
29
|
+
</SegmentedButton>
|
|
31
30
|
<MenuButton id="{= ${parameter>/stableId}.getStableId({type: 'ListReportAction', subType: 'Share'}) }"
|
|
32
31
|
icon="sap-icon://action"
|
|
33
32
|
type="Transparent"
|
|
@@ -60,6 +60,13 @@ sap.ui.define(["sap/suite/ui/generic/template/lib/TemplateAssembler",
|
|
|
60
60
|
}
|
|
61
61
|
var oTemplateModel = oComponentUtils.getTemplatePrivateModel();
|
|
62
62
|
oTemplateModel.setProperty("/objectPage/displayMode", iDisplayMode);
|
|
63
|
+
// Expose showRelatedApps into _templPriv so the Related Apps button's visibility
|
|
64
|
+
// can be bound at runtime rather than resolved at XML template preprocessing time.
|
|
65
|
+
// This ensures the app descriptor change (appdescr_ui_generic_app_changePageConfiguration)
|
|
66
|
+
// is reflected after a key user enables the feature via RTA and the app reloads.
|
|
67
|
+
if (oTemplateModel.getProperty("/objectPage/showRelatedApps") === undefined) {
|
|
68
|
+
oTemplateModel.setProperty("/objectPage/showRelatedApps", oComponent.getShowRelatedApps());
|
|
69
|
+
}
|
|
63
70
|
},
|
|
64
71
|
showConfirmationOnDraftActivate: function () {
|
|
65
72
|
return oComponent.getShowConfirmationOnDraftActivate();
|
|
@@ -607,9 +607,17 @@ sap.ui.define([
|
|
|
607
607
|
var oURLParserPromise = UShellContainer.getServiceAsync("URLParsing");
|
|
608
608
|
var oAllPromises = Promise.allSettled([oSiblingContextPromise, oURLParserPromise]);
|
|
609
609
|
oBusyHelper.setBusy(oAllPromises.then(function (aResults) {
|
|
610
|
-
var oSiblingContext = aResults[0].value,
|
|
610
|
+
var oSiblingContext = aResults[0].status === "fulfilled" ? aResults[0].value : null,
|
|
611
611
|
oURLParser = aResults[1].value;
|
|
612
|
-
var sPath
|
|
612
|
+
var sPath;
|
|
613
|
+
if (oSiblingContext && oSiblingContext.sDeepPath && oURLParser) {
|
|
614
|
+
sPath = sCurrentUrl.split(oURLParser.getHash(sCurrentUrl))[0] + oURLParser.getShellHash(sCurrentUrl) + "&" + oSiblingContext.sDeepPath;
|
|
615
|
+
} else if (oURLParser) {
|
|
616
|
+
sPath = sCurrentUrl.split(oURLParser.getHash(sCurrentUrl))[0] + oURLParser.getShellHash(sCurrentUrl);
|
|
617
|
+
} else {
|
|
618
|
+
sPath = sCurrentUrl;
|
|
619
|
+
}
|
|
620
|
+
|
|
613
621
|
switch (target) {
|
|
614
622
|
case "Email":
|
|
615
623
|
sap.m.URLHelper.triggerEmail(null, sSubject, sPath);
|
|
@@ -646,11 +654,37 @@ sap.ui.define([
|
|
|
646
654
|
oURLParserPromise = UShellContainer.getServiceAsync("URLParsing"),
|
|
647
655
|
oAllPromises = Promise.allSettled([oSiblingContextPromise, oCurrentUrlPromise, oURLParserPromise]);
|
|
648
656
|
return oAllPromises.then(function (aResults) {
|
|
649
|
-
|
|
657
|
+
|
|
658
|
+
var oSiblingContext = aResults[0].status === "fulfilled" ? aResults[0].value : null,
|
|
650
659
|
sCurrentUrl = aResults[1].value,
|
|
651
660
|
oURLParser = aResults[2].value,
|
|
652
|
-
sPath
|
|
653
|
-
sUrl
|
|
661
|
+
sPath,
|
|
662
|
+
sUrl;
|
|
663
|
+
|
|
664
|
+
|
|
665
|
+
// Calculate sPath
|
|
666
|
+
if (oSiblingContext && oSiblingContext.sDeepPath && oURLParser) {
|
|
667
|
+
// When we have both sibling context AND URL parser
|
|
668
|
+
sPath = sCurrentUrl.split(oURLParser.getHash(sCurrentUrl))[0] + oURLParser.getShellHash(sCurrentUrl) + "&" + oSiblingContext.sDeepPath;
|
|
669
|
+
} else if (oURLParser) {
|
|
670
|
+
// When we only have URL parser (no sibling context)
|
|
671
|
+
sPath = sCurrentUrl.split(oURLParser.getHash(sCurrentUrl))[0] + oURLParser.getShellHash(sCurrentUrl);
|
|
672
|
+
} else {
|
|
673
|
+
// Fallback when no URL parser
|
|
674
|
+
sPath = sCurrentUrl;
|
|
675
|
+
}
|
|
676
|
+
|
|
677
|
+
// Calculate sUrl
|
|
678
|
+
if (oSiblingContext && oSiblingContext.sDeepPath) {
|
|
679
|
+
if (oURLParser) {
|
|
680
|
+
sUrl = "#" + oURLParser.getShellHash(document.URL) + "&" + oSiblingContext.sDeepPath;
|
|
681
|
+
} else {
|
|
682
|
+
sUrl = oSiblingContext.sDeepPath;
|
|
683
|
+
}
|
|
684
|
+
} else {
|
|
685
|
+
sUrl = "";
|
|
686
|
+
}
|
|
687
|
+
|
|
654
688
|
return {
|
|
655
689
|
serviceUrl: "",
|
|
656
690
|
appTitle: oAppManifest ? oAppManifest.title : "",
|
|
@@ -2,8 +2,19 @@ sap.ui.define([
|
|
|
2
2
|
"sap/ui/base/Object",
|
|
3
3
|
"sap/base/util/extend",
|
|
4
4
|
"sap/m/MessageBox",
|
|
5
|
+
"sap/ui/core/Element",
|
|
6
|
+
"sap/ui/model/ValidateException",
|
|
7
|
+
"./ValueHelpDataFetcher",
|
|
5
8
|
"sap/suite/ui/generic/template/genericUtilities/testableHelper" // Add this import
|
|
6
|
-
], function (
|
|
9
|
+
], function (
|
|
10
|
+
BaseObject,
|
|
11
|
+
extend,
|
|
12
|
+
MessageBox,
|
|
13
|
+
Element,
|
|
14
|
+
ValidateException,
|
|
15
|
+
ValueHelpDataFetcher,
|
|
16
|
+
testableHelper
|
|
17
|
+
) {
|
|
7
18
|
"use strict";
|
|
8
19
|
|
|
9
20
|
function getMethods(oController, oTemplateUtils) {
|
|
@@ -15,14 +26,14 @@ sap.ui.define([
|
|
|
15
26
|
};
|
|
16
27
|
var selectionType, aColumnData, aReadOnlyFields, aFieldControl;
|
|
17
28
|
|
|
18
|
-
/**
|
|
29
|
+
/**
|
|
19
30
|
This class handles paste on OP table
|
|
20
31
|
|
|
21
32
|
Here we have two methods "fnHandleBeforePaste" and "fnHandlePaste" which are attached with SmartTable events "beforePaste" and "paste".
|
|
22
|
-
|
|
23
|
-
-
|
|
33
|
+
|
|
34
|
+
- Operation based on Cell Selection mentioned below
|
|
24
35
|
1) No Cell Selection paste - Here we add new columns if inline creation are active.
|
|
25
|
-
2) Single Cell Selection paste - Here if clipboard have X*Y grid it will paste to X columns and Y rows to the target selected cells and
|
|
36
|
+
2) Single Cell Selection paste - Here if clipboard have X*Y grid it will paste to X columns and Y rows to the target selected cells and
|
|
26
37
|
add extra rows if enough rows not present at bottom of selected cell.
|
|
27
38
|
3) Multi Cell Selection paste - Here we paste to the selected X*Y grid.
|
|
28
39
|
- If clipboard data row are more then selected row then we add new rows only if selection contains empty rows as well.
|
|
@@ -30,11 +41,11 @@ sap.ui.define([
|
|
|
30
41
|
|
|
31
42
|
fnHandleBeforePaste Handles below situation :-
|
|
32
43
|
- Trims out required column based on Ignored fields which means only visible columns would be shown.
|
|
33
|
-
|
|
44
|
+
|
|
34
45
|
fnHandlePaste - Handles Pre-condition check like (type missing or potential readonly columns with field control, NonInsertableProperties) and then do paste operations.
|
|
35
46
|
*/
|
|
36
47
|
|
|
37
|
-
/**
|
|
48
|
+
/**
|
|
38
49
|
* Returns the Create button for the given SmartTable if it exists (otherwise a faulty value is returned)
|
|
39
50
|
* @param {Object} oSmartTable The smart table object.
|
|
40
51
|
*/
|
|
@@ -118,7 +129,7 @@ sap.ui.define([
|
|
|
118
129
|
/**
|
|
119
130
|
* It trims out ignore field and selected area based on selection type
|
|
120
131
|
* Set the Selection type to global variable.
|
|
121
|
-
*
|
|
132
|
+
*
|
|
122
133
|
* @param {string} sSmartTableId Smart table Id
|
|
123
134
|
* @param {sap.ui.base.Event} oEvent beforePaste event
|
|
124
135
|
*/
|
|
@@ -128,11 +139,81 @@ sap.ui.define([
|
|
|
128
139
|
oEvent.preventDefault();
|
|
129
140
|
return;
|
|
130
141
|
}
|
|
142
|
+
// Store column data in global variable. Used in fnShowToastAfterPaste method after paste.
|
|
131
143
|
aColumnData = oEvent.getParameter("columnInfos");
|
|
132
144
|
var oSelection = getSelectedRowsAndColumns(sSmartTableId);
|
|
133
145
|
fnSetSelectionType(oSelection);
|
|
134
146
|
fnRemoveIgnored(aColumnData);
|
|
135
147
|
filterColumnsForPaste(oSelection, aColumnData);
|
|
148
|
+
handleDescriptionOnlyValueHelp(sSmartTableId, aColumnData);
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
/**
|
|
152
|
+
* Handles columns that have SmartFiled with Value Help and UI.TextArrangement = UI.TextArrangementType/TextOnly.
|
|
153
|
+
* It causes paste have description instead of id. Purpose of this function provide means
|
|
154
|
+
* to convert description back to id.
|
|
155
|
+
* @param {string} sSmartTableId SmartTable ID
|
|
156
|
+
* @param {array} aColumnData array with paste column data
|
|
157
|
+
*/
|
|
158
|
+
function handleDescriptionOnlyValueHelp(sSmartTableId, aColumnData) {
|
|
159
|
+
if (!aColumnData || !aColumnData.length) {
|
|
160
|
+
return;
|
|
161
|
+
}
|
|
162
|
+
var oModel = oController.getOwnerComponent().getModel(),
|
|
163
|
+
oResourceBundle = oController.getOwnerComponent().getModel("i18n").getResourceBundle(),
|
|
164
|
+
oMetaModel = oModel.getMetaModel(),
|
|
165
|
+
oEntitySet = oMetaModel.getODataEntitySet(oController.byId(sSmartTableId).getEntitySet()),
|
|
166
|
+
oEntityType = oMetaModel.getODataEntityType(oEntitySet.entityType);
|
|
167
|
+
aColumnData.forEach(function(oColumnInfo) {
|
|
168
|
+
if (!oColumnInfo.columnId){
|
|
169
|
+
return;
|
|
170
|
+
}
|
|
171
|
+
var oColumn = Element.getElementById(oColumnInfo.columnId),
|
|
172
|
+
oColumnP13nData = oColumn.data("p13nData");
|
|
173
|
+
if (!(oColumnP13nData.displayBehaviour === "descriptionOnly" && oColumnP13nData.description)) {
|
|
174
|
+
return;
|
|
175
|
+
}
|
|
176
|
+
// Column have SmartField with Value Help and UI.TextArrangement = UI.TextArrangementType/TextOnly
|
|
177
|
+
delete oColumnInfo.type; // remove type and typeInstance, so customParseFunction will be used
|
|
178
|
+
delete oColumnInfo.typeInstance;
|
|
179
|
+
oColumnInfo.customParseFunction = async function(vValue) {
|
|
180
|
+
var sPropertyPath = oMetaModel.getODataProperty(oEntityType, oColumnP13nData.leadingProperty, true),
|
|
181
|
+
oPropertyContext = oMetaModel.createBindingContext(sPropertyPath),
|
|
182
|
+
oValueList = await oMetaModel.getODataValueLists(oPropertyContext);
|
|
183
|
+
if (!oValueList
|
|
184
|
+
|| !oValueList[""]
|
|
185
|
+
|| !oValueList[""].CollectionPath
|
|
186
|
+
|| !oValueList[""].CollectionPath.String) {
|
|
187
|
+
return vValue;
|
|
188
|
+
}
|
|
189
|
+
var oValueListEntitySet = oMetaModel.getODataEntitySet(oValueList[""].CollectionPath.String),
|
|
190
|
+
oValueListEntityType = oMetaModel.getODataEntityType(oValueListEntitySet?.entityType);
|
|
191
|
+
if ((oValueList[""].SearchSupported?.Bool === "false")
|
|
192
|
+
|| (oValueListEntitySet && oValueListEntitySet["Org.OData.Capabilities.V1.SearchRestrictions"]?.Searchable?.Bool === "false")) {
|
|
193
|
+
// Value help is not searchable or Value help entity set is not searchable
|
|
194
|
+
return vValue;
|
|
195
|
+
}
|
|
196
|
+
var aResults = await ValueHelpDataFetcher.resolveTokensValues({
|
|
197
|
+
sAppId: oController.getOwnerComponent().getAppComponent().getId(),
|
|
198
|
+
oModel: oModel,
|
|
199
|
+
oValueList: oValueList[""],
|
|
200
|
+
oValueListEntityType: oValueListEntityType,
|
|
201
|
+
sKey: oColumnP13nData.leadingProperty,
|
|
202
|
+
sSearchValue: vValue
|
|
203
|
+
});
|
|
204
|
+
if (aResults.length === 0) {
|
|
205
|
+
throw new ValidateException(oResourceBundle.getText("PASTE_HELPER_PASTE_ERROR_INVALID_VALUES", [vValue]));
|
|
206
|
+
}
|
|
207
|
+
if (aResults.length > 1) {
|
|
208
|
+
const sPotentialValues = aResults.map((oEntry) => `${oEntry.value}(${oEntry.description})`).join(", ");
|
|
209
|
+
throw new ValidateException(oResourceBundle.getText("PASTE_HELPER_PASTE_ERROR_AMBIGUOUS_VALUES", [sPotentialValues]));
|
|
210
|
+
}
|
|
211
|
+
// Value was successfully mapped to ID
|
|
212
|
+
// Replace description property to ID property
|
|
213
|
+
oColumnInfo.property = oColumnP13nData.leadingProperty;
|
|
214
|
+
return aResults[0].value;
|
|
215
|
+
};
|
|
216
|
+
});
|
|
136
217
|
}
|
|
137
218
|
|
|
138
219
|
// Show message dialog when data parsing error would be there.
|
|
@@ -157,7 +238,7 @@ sap.ui.define([
|
|
|
157
238
|
|
|
158
239
|
/**
|
|
159
240
|
* function will remove NonInsertableProperties propeties from record need to be added.
|
|
160
|
-
*
|
|
241
|
+
*
|
|
161
242
|
* @param {*} oSmartTable smart table object instance
|
|
162
243
|
* @param {*} aNewRecords List of new records to be added.
|
|
163
244
|
*/
|
|
@@ -245,7 +326,7 @@ sap.ui.define([
|
|
|
245
326
|
|
|
246
327
|
/**
|
|
247
328
|
* Analyse selected record and segregate record to be added and update
|
|
248
|
-
*
|
|
329
|
+
*
|
|
249
330
|
* @param {Object} oSelection Object having selected rows and columns.
|
|
250
331
|
* @param {Object} oResult Contains parse and error list.
|
|
251
332
|
* @param {string} sSmartTableId smarttable stable id
|
|
@@ -382,14 +463,14 @@ sap.ui.define([
|
|
|
382
463
|
var sMessage = sNonPastedColumns ? oTemplateUtils.oCommonUtils.getText(bMultipleColumns ? "PARTIAL_PASTE_PLURAL" : "PARTIAL_PASTE", [sNonPastedColumns]) : oTemplateUtils.oCommonUtils.getText("PASTE_COMPLETE");
|
|
383
464
|
oTemplateUtils.oServices.oApplication.showMessageToast(sMessage, {duration: 5000});
|
|
384
465
|
}
|
|
385
|
-
|
|
466
|
+
|
|
386
467
|
|
|
387
468
|
/**
|
|
388
469
|
* fnHandlePaste method will get called after fnHandleBeforePaste do all kind of column triming
|
|
389
|
-
*
|
|
470
|
+
*
|
|
390
471
|
* It will do pre-validation check whether pasting is feasible or not.
|
|
391
472
|
* fnHandlePaste method analyse the parsed data and execute paste if table data parsing is successful.
|
|
392
|
-
*
|
|
473
|
+
*
|
|
393
474
|
* @param {string} sSmartTableId Smart table Id
|
|
394
475
|
* @param {sap.ui.base.Event} oEvent paste event
|
|
395
476
|
*/
|
|
@@ -405,11 +486,12 @@ sap.ui.define([
|
|
|
405
486
|
fnShowToastAfterPaste();
|
|
406
487
|
}
|
|
407
488
|
}
|
|
408
|
-
testableHelper.
|
|
409
|
-
testableHelper.
|
|
410
|
-
testableHelper.
|
|
411
|
-
testableHelper.
|
|
412
|
-
testableHelper.
|
|
489
|
+
testableHelper.testable(fnExecutePaste, "pasteHandler_fnExecutePaste");
|
|
490
|
+
testableHelper.testable(fnShowToastAfterPaste, "pasteHandler_fnShowToastAfterPaste");
|
|
491
|
+
testableHelper.testable(fnSetSelectionType, "pasteHandler_fnSetSelectionType");
|
|
492
|
+
testableHelper.testable(fnRemoveIgnored, "pasteHandler_fnRemoveIgnored");
|
|
493
|
+
testableHelper.testable(filterColumnsForPaste, "pasteHandler_filterColumnsForPaste");
|
|
494
|
+
testableHelper.testable(handleDescriptionOnlyValueHelp, "pasteHandler_handleDescriptionOnlyValueHelp");
|
|
413
495
|
return {
|
|
414
496
|
handlePaste: fnHandlePaste,
|
|
415
497
|
handleBeforePaste: fnHandleBeforePaste
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
sap.ui.define(
|
|
2
|
+
[
|
|
3
|
+
"sap/ui/model/FilterOperator",
|
|
4
|
+
"sap/ui/model/Filter",
|
|
5
|
+
"sap/suite/ui/generic/template/js/AnnotationHelper"
|
|
6
|
+
],
|
|
7
|
+
function (
|
|
8
|
+
FilterOperator,
|
|
9
|
+
Filter,
|
|
10
|
+
AnnotationHelper
|
|
11
|
+
) {
|
|
12
|
+
"use strict";
|
|
13
|
+
|
|
14
|
+
const tokenCache = new Map();
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Resolves search string to ValueHelp values
|
|
18
|
+
* @param {object} oParams object containing search parameters
|
|
19
|
+
* @param {string} [oParams.sAppId] application id
|
|
20
|
+
* @param {sap.ui.model.odata.v2.ODataModel} [oParams.oModel] model
|
|
21
|
+
* @param {string} [oParams.oValueList] ValueHelp main property annotation
|
|
22
|
+
* @param {string} [oParams.oValueListEntityType] ValueHelp entity type
|
|
23
|
+
* @param {string} [oParams.sKey] main type ID property
|
|
24
|
+
* @param {string} [oParams.sSearchValue] search string
|
|
25
|
+
* @returns promise with array of {value, description} objects for passed search string
|
|
26
|
+
*/
|
|
27
|
+
async function resolveTokensValues(oParams) {
|
|
28
|
+
const cacheKey = `${oParams?.sAppId}::${oParams?.sSearchValue}::${oParams?.oValueList?.CollectionPath?.String}`;
|
|
29
|
+
if (!tokenCache.has(cacheKey)) {
|
|
30
|
+
const oPromise = searchForTokensValues(oParams);
|
|
31
|
+
tokenCache.set(cacheKey, oPromise);
|
|
32
|
+
}
|
|
33
|
+
return tokenCache.get(cacheKey);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
function cleanCache() {
|
|
37
|
+
tokenCache.clear();
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Resolves search string to ValueHelp values
|
|
42
|
+
* @param {object} oParams object containing search parameters
|
|
43
|
+
* @param {string} [oParams.sAppId] application id
|
|
44
|
+
* @param {sap.ui.model.odata.v2.ODataModel} [oParams.oModel] model
|
|
45
|
+
* @param {string} [oParams.oValueList] ValueHelp main property annotation
|
|
46
|
+
* @param {string} [oParams.oValueListEntityType] ValueHelp entity type
|
|
47
|
+
* @param {string} [oParams.sKey] main type ID property
|
|
48
|
+
* @param {string} [oParams.sSearchValue] search string
|
|
49
|
+
* @returns array of {value, description} objects for passed search string
|
|
50
|
+
*/
|
|
51
|
+
async function searchForTokensValues (oParams) {
|
|
52
|
+
if (!oParams?.oValueList?.CollectionPath?.String) {
|
|
53
|
+
// ValueHelp EntitySet is missing
|
|
54
|
+
return [];
|
|
55
|
+
}
|
|
56
|
+
const oKeyValueListParam = oParams.oValueList?.Parameters?.find((oEntry) => oEntry.RecordType === "com.sap.vocabularies.Common.v1.ValueListParameterInOut" && oEntry?.LocalDataProperty?.PropertyPath === oParams.sKey && oEntry?.ValueListProperty?.String),
|
|
57
|
+
sKey = oKeyValueListParam?.ValueListProperty?.String;
|
|
58
|
+
if (!sKey) {
|
|
59
|
+
// No key property is found in ValueHelp in main property. As we don't know which property to use in ValueHelp entity type we return empty array
|
|
60
|
+
return [];
|
|
61
|
+
}
|
|
62
|
+
const oModel = oParams.oModel,
|
|
63
|
+
oMetaModel = oModel.getMetaModel(),
|
|
64
|
+
oKeyProperty = oMetaModel.getODataProperty(oParams.oValueListEntityType, sKey),
|
|
65
|
+
// ValueHelp key description
|
|
66
|
+
sDescription = oKeyProperty && oKeyProperty["com.sap.vocabularies.Common.v1.Text"]?.Path;
|
|
67
|
+
|
|
68
|
+
const sPath = `/${oParams.oValueList.CollectionPath.String}`,
|
|
69
|
+
select = getSelectParameter(sKey, sDescription),
|
|
70
|
+
search = getSearchParameter(oParams.sSearchValue),
|
|
71
|
+
oFilter = getFilter(oKeyProperty, sKey, oParams.sSearchValue);
|
|
72
|
+
|
|
73
|
+
// Flag. Indicates if search have any value or not exceed key property max length
|
|
74
|
+
const bSearchByKeyPossible = !search || (search.length > (oKeyProperty?.maxLength ? parseInt(oKeyProperty.maxLength, 10) : search.length));
|
|
75
|
+
|
|
76
|
+
const [aValueHelpKeyQuery, aValueHelpSearchQuery] = await Promise.allSettled([
|
|
77
|
+
bSearchByKeyPossible ? [] : getValueHelpQuerySearch(oModel, sPath, oFilter, { select }), // search by key property
|
|
78
|
+
getValueHelpQuerySearch(oModel, sPath, undefined, { custom: { search }, select }) // fuzzy search using search string
|
|
79
|
+
]);
|
|
80
|
+
|
|
81
|
+
// Map function for ValueHelp found contexts
|
|
82
|
+
const mapFunction = (oContext) => {
|
|
83
|
+
const oData = oContext.getObject();
|
|
84
|
+
return { value: oData[sKey], description: sDescription ? oData[sDescription] : undefined };
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
if (aValueHelpKeyQuery.status === "fulfilled" && aValueHelpKeyQuery.value.length > 0) {
|
|
88
|
+
// Found values using key property
|
|
89
|
+
return aValueHelpKeyQuery.value.map(mapFunction);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
if (aValueHelpSearchQuery.status === "fulfilled" && aValueHelpSearchQuery.value.length > 0) {
|
|
93
|
+
// Found values using generic search
|
|
94
|
+
// Perform additional filtering using description field
|
|
95
|
+
return aValueHelpSearchQuery.value
|
|
96
|
+
.map(mapFunction)
|
|
97
|
+
.filter((oEntry) => oEntry.description && oEntry.description.toLowerCase() === oParams.sSearchValue?.toLowerCase());
|
|
98
|
+
}
|
|
99
|
+
return [];
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* Perform search on entity set
|
|
104
|
+
* @param {sap.ui.model.odata.v2.ODataModel} oModel model
|
|
105
|
+
* @param {string} sPath entity set path
|
|
106
|
+
* @param {sap.ui.model.Filter} oFilter filter object
|
|
107
|
+
* @param {object} oParams additional parameters for model.bindList
|
|
108
|
+
* @returns received contexts
|
|
109
|
+
*/
|
|
110
|
+
function getValueHelpQuerySearch(oModel, sPath, oFilter, oParams) {
|
|
111
|
+
return new Promise((resolve) => {
|
|
112
|
+
const oListBinding = oModel.bindList(sPath, undefined, undefined, oFilter, oParams);
|
|
113
|
+
oListBinding.initialize();
|
|
114
|
+
const aFirstResult = oListBinding.getContexts();
|
|
115
|
+
if (aFirstResult.bExpectMore) {
|
|
116
|
+
oListBinding.attachChange((oEvent) => {
|
|
117
|
+
resolve(oEvent.getSource().getContexts());
|
|
118
|
+
oListBinding.destroy();
|
|
119
|
+
});
|
|
120
|
+
} else {
|
|
121
|
+
resolve(aFirstResult);
|
|
122
|
+
oListBinding.destroy();
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* Generate search parameter
|
|
129
|
+
* @param {string} sKey key property
|
|
130
|
+
* @param {string} sDescription key property description
|
|
131
|
+
* @returns select string
|
|
132
|
+
*/
|
|
133
|
+
function getSelectParameter(sKey, sDescription) {
|
|
134
|
+
return [sKey, sDescription]
|
|
135
|
+
.filter((sPath) => sPath && !sPath.includes("/"))
|
|
136
|
+
.join(",");
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
/**
|
|
140
|
+
* Clean and normalize search string
|
|
141
|
+
* @param {string} sSearchValue search string
|
|
142
|
+
* @returns normalized search string
|
|
143
|
+
*/
|
|
144
|
+
function getSearchParameter(sSearchValue) {
|
|
145
|
+
if (!sSearchValue) {
|
|
146
|
+
return undefined;
|
|
147
|
+
}
|
|
148
|
+
if (sSearchValue === "OR") {
|
|
149
|
+
return `"${sSearchValue}"`;
|
|
150
|
+
}
|
|
151
|
+
const sConvertedSearchValue = sSearchValue.replace(/["();]/g, " "); // these are the specific characters that fail on both, CAP and RAP: "();
|
|
152
|
+
if (sConvertedSearchValue === "" || sConvertedSearchValue === " ") {
|
|
153
|
+
return undefined;
|
|
154
|
+
}
|
|
155
|
+
return sConvertedSearchValue.trim();
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
/**
|
|
159
|
+
* Crate search filter for key property
|
|
160
|
+
* @param {object} oKeyProperty ValueHelp key property object
|
|
161
|
+
* @param {string} sKey key property
|
|
162
|
+
* @param {string} sSearchValue search string
|
|
163
|
+
* @returns {sap.ui.model.Filter} filter object
|
|
164
|
+
*/
|
|
165
|
+
function getFilter(oKeyProperty, sKey, sSearchValue) {
|
|
166
|
+
let filterValue = sSearchValue;
|
|
167
|
+
if (oKeyProperty && oKeyProperty["com.sap.vocabularies.Common.v1.IsUpperCase"]?.Bool === "true") {
|
|
168
|
+
filterValue = filterValue.toUpperCase();
|
|
169
|
+
}
|
|
170
|
+
return new Filter({path: sKey, operator: FilterOperator.EQ, value1: filterValue});
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
return {
|
|
174
|
+
resolveTokensValues,
|
|
175
|
+
cleanCache
|
|
176
|
+
};
|
|
177
|
+
}
|
|
178
|
+
);
|
|
@@ -55,6 +55,12 @@ OK=OK
|
|
|
55
55
|
# XBUT,30
|
|
56
56
|
ADD=Add
|
|
57
57
|
|
|
58
|
+
# YMSG: Text in message box content when the value cannot be mapped to the expected code list entry
|
|
59
|
+
PASTE_HELPER_PASTE_ERROR_INVALID_VALUES=The pasted value doesn''t match any existing values.
|
|
60
|
+
|
|
61
|
+
# YMSG: Text in message box content when the value resolves to multiple code list entries
|
|
62
|
+
PASTE_HELPER_PASTE_ERROR_AMBIGUOUS_VALUES=The pasted value matches multiple values. Please choose one of the following values: {0}.
|
|
63
|
+
|
|
58
64
|
# XBUT,50: text for segmented buttons: <variant text> (<item count>)
|
|
59
65
|
SEG_BUTTON_TEXT={0} ({1})
|
|
60
66
|
|
|
@@ -35,6 +35,10 @@ OK=\u0645\u0648\u0627\u0641\u0642
|
|
|
35
35
|
|
|
36
36
|
ADD=\u0625\u0636\u0627\u0641\u0629
|
|
37
37
|
|
|
38
|
+
PASTE_HELPER_PASTE_ERROR_INVALID_VALUES=\u0644\u0627 \u062A\u0637\u0627\u0628\u0642 \u0627\u0644\u0642\u064A\u0645\u0629 \u0627\u0644\u0645\u0644\u0635\u0642\u0629 \u0623\u064A \u0642\u064A\u0645 \u0645\u0648\u062C\u0648\u062F\u0629.
|
|
39
|
+
|
|
40
|
+
PASTE_HELPER_PASTE_ERROR_AMBIGUOUS_VALUES=\u062A\u062A\u0637\u0627\u0628\u0642 \u0627\u0644\u0642\u064A\u0645\u0629 \u0627\u0644\u0645\u0644\u0635\u0642\u0629 \u0645\u0639 \u0642\u064A\u0645 \u0645\u062A\u0639\u062F\u062F\u0629. \u064A\u0631\u062C\u0649 \u0627\u062E\u062A\u064A\u0627\u0631 \u0625\u062D\u062F\u0649 \u0627\u0644\u0642\u064A\u0645 \u0627\u0644\u062A\u0627\u0644\u064A\u0629\: {0}.
|
|
41
|
+
|
|
38
42
|
SEG_BUTTON_TEXT={0} ({1})
|
|
39
43
|
|
|
40
44
|
CREATE_DRAFT_MESSAGE_TEXT=\u0642\u0645 \u0628\u0625\u0646\u0634\u0627\u0621 \u0627\u0644\u0643\u0627\u0626\u0646.
|
|
@@ -35,6 +35,10 @@ OK=OK
|
|
|
35
35
|
|
|
36
36
|
ADD=\u0414\u043E\u0431\u0430\u0432\u044F\u043D\u0435
|
|
37
37
|
|
|
38
|
+
PASTE_HELPER_PASTE_ERROR_INVALID_VALUES=\u041F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0430\u0442\u0430 \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442 \u043D\u0435 \u0441\u044A\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0430 \u043D\u0430 \u043D\u0438\u0442\u043E \u0435\u0434\u043D\u0430 \u043E\u0442 \u0441\u044A\u0449\u0435\u0441\u0442\u0432\u0443\u0432\u0430\u0449\u0438\u0442\u0435 \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442\u0438.
|
|
39
|
+
|
|
40
|
+
PASTE_HELPER_PASTE_ERROR_AMBIGUOUS_VALUES=\u041F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u0430\u0442\u0430 \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442 \u0441\u044A\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0430 \u043D\u0430 \u043D\u044F\u043A\u043E\u043B\u043A\u043E \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442\u0438. \u041C\u043E\u043B\u044F, \u0438\u0437\u0431\u0435\u0440\u0435\u0442\u0435 \u0435\u0434\u043D\u0430 \u043E\u0442 \u0441\u043B\u0435\u0434\u043D\u0438\u0442\u0435 \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442\u0438\: {0}.
|
|
41
|
+
|
|
38
42
|
SEG_BUTTON_TEXT={0} ({1})
|
|
39
43
|
|
|
40
44
|
CREATE_DRAFT_MESSAGE_TEXT=\u0421\u044A\u0437\u0434\u0430\u0432\u0430\u043D\u0435 \u043D\u0430 \u043E\u0431\u0435\u043A\u0442.
|
|
@@ -35,6 +35,10 @@ OK=D'acord
|
|
|
35
35
|
|
|
36
36
|
ADD=Afegir
|
|
37
37
|
|
|
38
|
+
PASTE_HELPER_PASTE_ERROR_INVALID_VALUES=El valor enganxat no coincideix amb cap valor existent.
|
|
39
|
+
|
|
40
|
+
PASTE_HELPER_PASTE_ERROR_AMBIGUOUS_VALUES=El valor enganxat coincideix amb diversos valors. Seleccioneu-ne un d''aquests\: {0}.
|
|
41
|
+
|
|
38
42
|
SEG_BUTTON_TEXT={0} ({1})
|
|
39
43
|
|
|
40
44
|
CREATE_DRAFT_MESSAGE_TEXT=Crear l'objecte.
|
|
@@ -35,6 +35,10 @@ OK=OK
|
|
|
35
35
|
|
|
36
36
|
ADD=Dodaj
|
|
37
37
|
|
|
38
|
+
PASTE_HELPER_PASTE_ERROR_INVALID_VALUES=Zalijepljena vrijednost se ne podudara s postoje\u0107im vrijednostima.
|
|
39
|
+
|
|
40
|
+
PASTE_HELPER_PASTE_ERROR_AMBIGUOUS_VALUES=Zalijepljena vrijednost se podudara s vi\u0161estrukim vrijednostima. Izaberite jednu od sljede\u0107ih vrijednosti\: {0}.
|
|
41
|
+
|
|
38
42
|
SEG_BUTTON_TEXT={0} ({1})
|
|
39
43
|
|
|
40
44
|
CREATE_DRAFT_MESSAGE_TEXT=Kreirajte objekat.
|