@openui5/sap.ui.rta 1.115.1 → 1.117.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.
Files changed (178) hide show
  1. package/.eslintrc.json +33 -2
  2. package/.reuse/dep5 +0 -5
  3. package/THIRDPARTY.txt +1 -7
  4. package/package.json +6 -6
  5. package/src/sap/ui/rta/.library +1 -1
  6. package/src/sap/ui/rta/Client.js +60 -59
  7. package/src/sap/ui/rta/RuntimeAuthoring.js +256 -254
  8. package/src/sap/ui/rta/Utils.js +42 -42
  9. package/src/sap/ui/rta/api/startAdaptation.js +2 -2
  10. package/src/sap/ui/rta/appVariant/AppVariantDialog.js +3 -3
  11. package/src/sap/ui/rta/appVariant/AppVariantManager.js +27 -27
  12. package/src/sap/ui/rta/appVariant/AppVariantUtils.js +100 -103
  13. package/src/sap/ui/rta/appVariant/Feature.js +75 -77
  14. package/src/sap/ui/rta/appVariant/S4HanaCloudBackend.js +6 -7
  15. package/src/sap/ui/rta/appVariant/Utils.js +17 -17
  16. package/src/sap/ui/rta/appVariant/manageApps/webapp/controller/ManageApps.controller.js +36 -36
  17. package/src/sap/ui/rta/command/AddIFrame.js +7 -7
  18. package/src/sap/ui/rta/command/AddProperty.js +7 -7
  19. package/src/sap/ui/rta/command/AddXML.js +1 -1
  20. package/src/sap/ui/rta/command/AddXMLAtExtensionPoint.js +7 -7
  21. package/src/sap/ui/rta/command/AppDescriptorCommand.js +18 -18
  22. package/src/sap/ui/rta/command/BaseCommand.js +1 -2
  23. package/src/sap/ui/rta/command/BindProperty.js +1 -1
  24. package/src/sap/ui/rta/command/Combine.js +1 -1
  25. package/src/sap/ui/rta/command/CommandFactory.js +11 -11
  26. package/src/sap/ui/rta/command/CompositeCommand.js +1 -1
  27. package/src/sap/ui/rta/command/ControlVariantConfigure.js +28 -3
  28. package/src/sap/ui/rta/command/ControlVariantSave.js +1 -1
  29. package/src/sap/ui/rta/command/ControlVariantSaveAs.js +26 -24
  30. package/src/sap/ui/rta/command/ControlVariantSetTitle.js +7 -7
  31. package/src/sap/ui/rta/command/ControlVariantSwitch.js +11 -11
  32. package/src/sap/ui/rta/command/CreateContainer.js +2 -2
  33. package/src/sap/ui/rta/command/CustomAdd.js +1 -1
  34. package/src/sap/ui/rta/command/FlexCommand.js +30 -30
  35. package/src/sap/ui/rta/command/LREPSerializer.js +20 -10
  36. package/src/sap/ui/rta/command/LocalReset.js +1 -1
  37. package/src/sap/ui/rta/command/Move.js +1 -1
  38. package/src/sap/ui/rta/command/Property.js +1 -1
  39. package/src/sap/ui/rta/command/Remove.js +1 -1
  40. package/src/sap/ui/rta/command/Rename.js +1 -1
  41. package/src/sap/ui/rta/command/Resize.js +1 -1
  42. package/src/sap/ui/rta/command/Reveal.js +1 -1
  43. package/src/sap/ui/rta/command/Settings.js +1 -1
  44. package/src/sap/ui/rta/command/Split.js +1 -1
  45. package/src/sap/ui/rta/command/Stack.js +4 -4
  46. package/src/sap/ui/rta/command/appDescriptor/AddLibrary.js +1 -1
  47. package/src/sap/ui/rta/command/compVariant/CompVariantContent.js +1 -1
  48. package/src/sap/ui/rta/command/compVariant/CompVariantSaveAs.js +1 -1
  49. package/src/sap/ui/rta/command/compVariant/CompVariantSwitch.js +1 -1
  50. package/src/sap/ui/rta/command/compVariant/CompVariantUpdate.js +1 -1
  51. package/src/sap/ui/rta/enablement/TestDelegate.js +92 -92
  52. package/src/sap/ui/rta/enablement/elementActionTest.js +230 -112
  53. package/src/sap/ui/rta/library.js +2 -2
  54. package/src/sap/ui/rta/messagebundle.properties +11 -1
  55. package/src/sap/ui/rta/messagebundle_ar.properties +5 -0
  56. package/src/sap/ui/rta/messagebundle_bg.properties +5 -0
  57. package/src/sap/ui/rta/messagebundle_ca.properties +5 -0
  58. package/src/sap/ui/rta/messagebundle_cs.properties +5 -0
  59. package/src/sap/ui/rta/messagebundle_cy.properties +5 -0
  60. package/src/sap/ui/rta/messagebundle_da.properties +5 -0
  61. package/src/sap/ui/rta/messagebundle_de.properties +6 -1
  62. package/src/sap/ui/rta/messagebundle_el.properties +5 -0
  63. package/src/sap/ui/rta/messagebundle_en.properties +5 -0
  64. package/src/sap/ui/rta/messagebundle_en_GB.properties +5 -0
  65. package/src/sap/ui/rta/messagebundle_en_US_sappsd.properties +5 -0
  66. package/src/sap/ui/rta/messagebundle_en_US_saprigi.properties +5 -0
  67. package/src/sap/ui/rta/messagebundle_en_US_saptrc.properties +6 -1
  68. package/src/sap/ui/rta/messagebundle_es.properties +5 -0
  69. package/src/sap/ui/rta/messagebundle_es_MX.properties +5 -0
  70. package/src/sap/ui/rta/messagebundle_et.properties +5 -0
  71. package/src/sap/ui/rta/messagebundle_fi.properties +5 -0
  72. package/src/sap/ui/rta/messagebundle_fr.properties +5 -0
  73. package/src/sap/ui/rta/messagebundle_fr_CA.properties +5 -0
  74. package/src/sap/ui/rta/messagebundle_hi.properties +5 -0
  75. package/src/sap/ui/rta/messagebundle_hr.properties +5 -0
  76. package/src/sap/ui/rta/messagebundle_hu.properties +5 -0
  77. package/src/sap/ui/rta/messagebundle_id.properties +5 -0
  78. package/src/sap/ui/rta/messagebundle_it.properties +5 -0
  79. package/src/sap/ui/rta/messagebundle_iw.properties +5 -0
  80. package/src/sap/ui/rta/messagebundle_ja.properties +5 -0
  81. package/src/sap/ui/rta/messagebundle_kk.properties +5 -0
  82. package/src/sap/ui/rta/messagebundle_ko.properties +5 -0
  83. package/src/sap/ui/rta/messagebundle_lt.properties +5 -0
  84. package/src/sap/ui/rta/messagebundle_lv.properties +5 -0
  85. package/src/sap/ui/rta/messagebundle_ms.properties +5 -0
  86. package/src/sap/ui/rta/messagebundle_nl.properties +5 -0
  87. package/src/sap/ui/rta/messagebundle_no.properties +5 -0
  88. package/src/sap/ui/rta/messagebundle_pl.properties +5 -0
  89. package/src/sap/ui/rta/messagebundle_pt.properties +5 -0
  90. package/src/sap/ui/rta/messagebundle_pt_PT.properties +5 -0
  91. package/src/sap/ui/rta/messagebundle_ro.properties +5 -0
  92. package/src/sap/ui/rta/messagebundle_ru.properties +5 -0
  93. package/src/sap/ui/rta/messagebundle_sh.properties +5 -0
  94. package/src/sap/ui/rta/messagebundle_sk.properties +5 -0
  95. package/src/sap/ui/rta/messagebundle_sl.properties +5 -0
  96. package/src/sap/ui/rta/messagebundle_sv.properties +5 -0
  97. package/src/sap/ui/rta/messagebundle_th.properties +5 -0
  98. package/src/sap/ui/rta/messagebundle_tr.properties +5 -0
  99. package/src/sap/ui/rta/messagebundle_uk.properties +5 -0
  100. package/src/sap/ui/rta/messagebundle_vi.properties +5 -0
  101. package/src/sap/ui/rta/messagebundle_zh_CN.properties +5 -0
  102. package/src/sap/ui/rta/messagebundle_zh_TW.properties +5 -0
  103. package/src/sap/ui/rta/plugin/AddXMLAtExtensionPoint.js +44 -44
  104. package/src/sap/ui/rta/plugin/BaseCreate.js +29 -29
  105. package/src/sap/ui/rta/plugin/Combine.js +9 -9
  106. package/src/sap/ui/rta/plugin/ControlVariant.js +21 -21
  107. package/src/sap/ui/rta/plugin/CreateContainer.js +6 -6
  108. package/src/sap/ui/rta/plugin/CutPaste.js +46 -46
  109. package/src/sap/ui/rta/plugin/DragDrop.js +2 -2
  110. package/src/sap/ui/rta/plugin/EasyAdd.js +4 -4
  111. package/src/sap/ui/rta/plugin/EasyRemove.js +5 -5
  112. package/src/sap/ui/rta/plugin/LocalReset.js +25 -25
  113. package/src/sap/ui/rta/plugin/Plugin.js +20 -20
  114. package/src/sap/ui/rta/plugin/RTAElementMover.js +42 -42
  115. package/src/sap/ui/rta/plugin/Remove.js +11 -11
  116. package/src/sap/ui/rta/plugin/Rename.js +7 -7
  117. package/src/sap/ui/rta/plugin/RenameHandler.js +17 -17
  118. package/src/sap/ui/rta/plugin/Resize.js +62 -62
  119. package/src/sap/ui/rta/plugin/Selection.js +14 -14
  120. package/src/sap/ui/rta/plugin/Settings.js +20 -20
  121. package/src/sap/ui/rta/plugin/Split.js +7 -7
  122. package/src/sap/ui/rta/plugin/Stretch.js +4 -4
  123. package/src/sap/ui/rta/plugin/additionalElements/ActionExtractor.js +94 -87
  124. package/src/sap/ui/rta/plugin/additionalElements/AddElementsDialog.js +18 -18
  125. package/src/sap/ui/rta/plugin/additionalElements/AdditionalElementsAnalyzer.js +98 -99
  126. package/src/sap/ui/rta/plugin/additionalElements/AdditionalElementsPlugin.js +144 -144
  127. package/src/sap/ui/rta/plugin/additionalElements/AdditionalElementsUtils.js +3 -4
  128. package/src/sap/ui/rta/plugin/additionalElements/CommandBuilder.js +67 -67
  129. package/src/sap/ui/rta/plugin/iframe/AddIFrame.js +38 -39
  130. package/src/sap/ui/rta/plugin/iframe/AddIFrameDialog.fragment.xml +1 -0
  131. package/src/sap/ui/rta/plugin/iframe/AddIFrameDialog.js +29 -29
  132. package/src/sap/ui/rta/plugin/iframe/AddIFrameDialogController.js +5 -5
  133. package/src/sap/ui/rta/plugin/iframe/urlCleaner.js +1 -1
  134. package/src/sap/ui/rta/service/Action.js +36 -37
  135. package/src/sap/ui/rta/service/ControllerExtension.js +4 -4
  136. package/src/sap/ui/rta/service/Outline.js +59 -59
  137. package/src/sap/ui/rta/service/Property.js +125 -125
  138. package/src/sap/ui/rta/service/Receiver.js +78 -77
  139. package/src/sap/ui/rta/service/Selection.js +6 -6
  140. package/src/sap/ui/rta/service/SupportTools.js +188 -37
  141. package/src/sap/ui/rta/service/index.js +1 -1
  142. package/src/sap/ui/rta/themes/base/FlexSupportExtension.less +14 -0
  143. package/src/sap/ui/rta/themes/base/library.source.less +2 -1
  144. package/src/sap/ui/rta/toolbar/Adaptation.js +81 -26
  145. package/src/sap/ui/rta/toolbar/AdaptationRenderer.js +1 -1
  146. package/src/sap/ui/rta/toolbar/Base.js +17 -15
  147. package/src/sap/ui/rta/toolbar/BaseRenderer.js +1 -2
  148. package/src/sap/ui/rta/toolbar/Fiori.js +8 -8
  149. package/src/sap/ui/rta/toolbar/FioriLike.js +1 -1
  150. package/src/sap/ui/rta/toolbar/OverflowToolbarButton.js +4 -4
  151. package/src/sap/ui/rta/toolbar/Personalization.js +2 -2
  152. package/src/sap/ui/rta/toolbar/Standalone.js +1 -1
  153. package/src/sap/ui/rta/toolbar/contextBased/ManageAdaptations.js +13 -6
  154. package/src/sap/ui/rta/toolbar/contextBased/ManageAdaptationsDialog.fragment.xml +2 -8
  155. package/src/sap/ui/rta/toolbar/contextBased/SaveAsAdaptation.js +2 -3
  156. package/src/sap/ui/rta/toolbar/contextBased/SaveAsAdaptationDialog.fragment.xml +0 -2
  157. package/src/sap/ui/rta/toolbar/translation/Translation.js +41 -41
  158. package/src/sap/ui/rta/toolbar/versioning/Versioning.js +9 -9
  159. package/src/sap/ui/rta/util/Animation.js +5 -5
  160. package/src/sap/ui/rta/util/BindingsExtractor.js +33 -33
  161. package/src/sap/ui/rta/util/PluginManager.js +25 -25
  162. package/src/sap/ui/rta/util/PopupManager.js +27 -27
  163. package/src/sap/ui/rta/util/ReloadManager.js +1 -1
  164. package/src/sap/ui/rta/util/ServiceEventBus.js +3 -4
  165. package/src/sap/ui/rta/util/StylesLoader.js +9 -9
  166. package/src/sap/ui/rta/util/UrlParser.js +19 -19
  167. package/src/sap/ui/rta/util/adaptationStarter.js +34 -31
  168. package/src/sap/ui/rta/util/changeVisualization/ChangeIndicator.js +23 -19
  169. package/src/sap/ui/rta/util/changeVisualization/ChangeIndicatorRegistry.js +61 -61
  170. package/src/sap/ui/rta/util/changeVisualization/ChangeVisualization.js +76 -63
  171. package/src/sap/ui/rta/util/changeVisualization/commands/CombineVisualization.js +6 -6
  172. package/src/sap/ui/rta/util/changeVisualization/commands/CreateContainerVisualization.js +1 -1
  173. package/src/sap/ui/rta/util/changeVisualization/commands/SplitVisualization.js +1 -1
  174. package/src/sap/ui/rta/util/hasStableId.js +2 -2
  175. package/src/sap/ui/rta/util/showMessageBox.js +4 -5
  176. package/src/sap/ui/rta/util/validateFlexEnabled.js +5 -5
  177. package/src/sap/ui/rta/util/validateStableIds.js +8 -8
  178. package/ui5.yaml +1 -1
@@ -23,7 +23,7 @@ sap.ui.define([
23
23
  "sap/ui/fl/Cache",
24
24
  "sap/ui/fl/Layer",
25
25
  "sap/ui/thirdparty/sinon-4",
26
- "sap/ui/fl/library" //we have to ensure to load fl, so that change handler gets registered
26
+ "sap/ui/fl/library" // we have to ensure to load fl, so that change handler gets registered
27
27
  ], function(
28
28
  UIComponent,
29
29
  ComponentContainer,
@@ -57,7 +57,7 @@ sap.ui.define([
57
57
  * E.g. <code>elementActionTest.only("Remove");</code>
58
58
  *
59
59
  * @author SAP SE
60
- * @version 1.115.1
60
+ * @version 1.117.0
61
61
  *
62
62
  * @static
63
63
  * @since 1.42
@@ -75,6 +75,7 @@ sap.ui.define([
75
75
  * @param {string} mOptions.action.name - Name of the action - e.g. 'remove', 'move', 'rename'
76
76
  * @param {string} [mOptions.action.controlId] - Id of the control the action is executed with - may be the parent of the control being 'touched'
77
77
  * @param {function():sap.ui.core.Control} [mOptions.action.control] - Function returning the control instance on which the change is being applied
78
+ * @param {function():sap.ui.core.Control} [mOptions.action.designtimeActionControl] - Function returning the control where the designtime action is defined
78
79
  * @param {string} [mOptions.action.label] - Check the result of "getLabel" function from the action in the control designtime metadata
79
80
  * @param {function} mOptions.action.parameter - Function(oView) returning the parameter object of the action to be executed
80
81
  * @param {function} [mOptions.before] - Function(assert) hook before test execution is started
@@ -109,21 +110,25 @@ sap.ui.define([
109
110
  // Do QUnit tests
110
111
  QUnit.module(sMsg, function() {
111
112
  QUnit.test("When using the 'elementActionTest' function to test if your control is ready for UI adaptation at runtime", function(assert) {
112
- assert.ok(mOptions.afterAction, "then you implement a function to check if your action has been successful: See the afterAction parameter.");
113
- assert.ok(mOptions.afterUndo, "then you implement a function to check if the undo has been successful: See the afterUndo parameter.");
114
- assert.ok(mOptions.afterRedo, "then you implement a function to check if the redo has been successful: See the afterRedo parameter.");
115
- assert.ok(mOptions.xmlView, "then you provide an XML view to test on: See the.xmlView parameter.");
113
+ assert.ok(mOptions.afterAction,
114
+ "then you implement a function to check if your action has been successful: See the afterAction parameter.");
115
+ assert.ok(mOptions.afterUndo,
116
+ "then you implement a function to check if the undo has been successful: See the afterUndo parameter.");
117
+ assert.ok(mOptions.afterRedo,
118
+ "then you implement a function to check if the redo has been successful: See the afterRedo parameter.");
119
+ assert.ok(mOptions.xmlView,
120
+ "then you provide an XML view to test on: See the.xmlView parameter.");
116
121
 
117
122
  var oXmlView = new DOMParser().parseFromString(mOptions.xmlView.viewContent, "application/xml").documentElement;
118
123
  assert.ok(oXmlView.tagName.match("View$"), "then you use the sap.ui.core.mvc View tag as the first tag in your view");
119
124
 
120
125
  assert.ok(mOptions.action, "then you provide an action: See the action parameter.");
121
126
  assert.ok(mOptions.action.name, "then you provide an action name: See the action.name parameter.");
122
- assert.ok(mOptions.action.controlId || mOptions.action.control, "then you provide the control or control's id to operate the action on: See the action.controlId.");
127
+ assert.ok(mOptions.action.controlId || mOptions.action.control,
128
+ "then you provide the control or control's id to operate the action on: See the action.controlId.");
123
129
  });
124
130
  });
125
131
 
126
-
127
132
  var UI_COMPONENT_NAME = "sap.ui.rta.control.enabling.comp";
128
133
  var SYNC = false;
129
134
  var ASYNC = true;
@@ -142,7 +147,8 @@ sap.ui.define([
142
147
  mViewSettings.id = this.createId("view");
143
148
 
144
149
  if (mViewSettings.async === undefined) {
145
- // async = true will trigger the xml preprocessors on the xml view, but if defined preprocessors need async, we will always trigger async
150
+ // async = true will trigger the xml preprocessors on the xml view,
151
+ // but if defined preprocessors need async, we will always trigger async
146
152
  mViewSettings.async = this.getComponentData().async;
147
153
  }
148
154
  mViewSettings.definition = mViewSettings.viewContent;
@@ -188,107 +194,213 @@ sap.ui.define([
188
194
 
189
195
  return aActions.reduce(function(oLastPromise, oAction) {
190
196
  return oLastPromise
191
- .then(buildCommand.bind(this, assert, oAction))
192
- .then(function(oCommand) {
193
- aCommands.push(oCommand);
194
- // Execute commands one by one to allow change dependencies
195
- return oCommand.execute();
196
- });
197
- }.bind(this), Promise.resolve())
198
- .then(function() {
199
- return aCommands;
197
+ .then(buildCommand.bind(this, assert, oAction))
198
+ .then(function(oCommand) {
199
+ aCommands.push(oCommand);
200
+ // Execute commands one by one to allow change dependencies
201
+ return oCommand.execute();
200
202
  });
203
+ }.bind(this), Promise.resolve())
204
+ .then(function() {
205
+ return aCommands;
206
+ });
207
+ }
208
+
209
+ function getControlFromActionMap(mAction) {
210
+ if (typeof mAction.control === "function") {
211
+ return mAction.control(this.oView);
212
+ }
213
+ return this.oView.byId(mAction.controlId);
214
+ }
215
+
216
+ function getDesigntimeActionControl(mAction) {
217
+ return mAction.designtimeActionControl
218
+ ? mAction.designtimeActionControl(this.oView)
219
+ : undefined;
220
+ }
221
+
222
+ function startDesigntime() {
223
+ this.oDesignTime = new DesignTime({
224
+ rootElements: [
225
+ this.oView
226
+ ]
227
+ });
228
+ return new Promise(function(resolve) {
229
+ this.oDesignTime.attachEventOnce("synced", resolve);
230
+ }.bind(this));
231
+ }
232
+
233
+ function getParameterMap(vParameter) {
234
+ if (vParameter) {
235
+ return typeof vParameter === "function" ? vParameter(this.oView) : vParameter;
236
+ }
237
+ return {};
238
+ }
239
+
240
+ /**
241
+ * Checks if the provided action can be found in the calculated designtime metadata. According to the
242
+ * action.name sometimes the elementdesigntime metadata or the aggregationdesigntime metadata is required
243
+ * for the check.
244
+ *
245
+ * @param {object} assert - QUnit Assert
246
+ * @param {object} oAction - Test action parameters
247
+ * @param {sap.ui.core.Control} oControl - Targeting control
248
+ * @param {sap.ui.core.Control} oMovedElement - Moved element, only available with action.name move
249
+ * @param {object} oElementDesignTimeMetadata - Element designtime metadata
250
+ * @param {object} oAggregationDesignTimeMetadata - Aggregation designtime metadata
251
+ */
252
+ function checkDesigntimeMetadata(
253
+ assert,
254
+ oAction,
255
+ oControl,
256
+ oMovedElement,
257
+ oElementDesignTimeMetadata,
258
+ oAggregationDesignTimeMetadata
259
+ ) {
260
+ if (Array.isArray(oAction.name)) {
261
+ var oAddAction = oElementDesignTimeMetadata.getAction(
262
+ oAction.name[0],
263
+ oControl,
264
+ oAction.name[1]
265
+ );
266
+ assert.ok(oAddAction,
267
+ "the " + oAction[0] + " via " + oAction.name[1] + " action is available in the designtime"
268
+ );
269
+ } else if (oAction.name === "createContainer" || oAction.name === "addIFrame") {
270
+ assert.ok(oAggregationDesignTimeMetadata.getAction(oAction.name, oControl),
271
+ "the " + oAction.name + "action is available in the calculated designtime metadata during execution");
272
+ } else if (oAction.name === "move") {
273
+ assert.ok(oElementDesignTimeMetadata.getAction(oAction.name, oMovedElement),
274
+ "the " + oAction.name + "action is available in the calculated designtime metadata during execution");
275
+ } else {
276
+ assert.ok(oElementDesignTimeMetadata.getAction(oAction.name, oControl),
277
+ "the " + oAction.name + "action is available in the calculated designtime metadata during execution");
278
+ }
201
279
  }
202
280
 
203
281
  function buildCommand(assert, oAction) {
204
- var oControl;
282
+ var oTargetControl;
283
+ var oControlWithDesigntimeActionDefinition;
205
284
  var mParameter;
206
285
  var oElementDesignTimeMetadata;
286
+ var oAggregationDesignTimeMetadata;
207
287
  var sCommandName = oAction.name;
288
+ var oMovedElement;
208
289
  return Promise.resolve()
209
- .then(function() {
210
- if (typeof oAction.control === "function") {
211
- return oAction.control(this.oView);
212
- }
213
- return this.oView.byId(oAction.controlId);
290
+ .then(getControlFromActionMap.bind(this, oAction))
291
+
292
+ .then(function(oRetrievedControl) {
293
+ oTargetControl = oRetrievedControl;
294
+ mParameter = getParameterMap.call(this, oAction.parameter);
295
+ return getDesigntimeActionControl.call(this, oAction);
214
296
  }.bind(this))
297
+
215
298
  .then(function(oRetrievedControl) {
216
- oControl = oRetrievedControl;
217
- return oControl.getMetadata().loadDesignTime(oControl);
218
- })
299
+ oControlWithDesigntimeActionDefinition = oRetrievedControl;
300
+ return startDesigntime.call(this);
301
+ }.bind(this))
302
+
303
+ // gather data for the designtime check and the command factory
219
304
  .then(function() {
220
- if (oAction.parameter) {
221
- if (typeof oAction.parameter === "function") {
222
- mParameter = oAction.parameter(this.oView);
305
+ var oControlOverlay = OverlayRegistry.getOverlay(oControlWithDesigntimeActionDefinition || oTargetControl);
306
+ if (!oControlOverlay) {
307
+ throw new Error(
308
+ "The provided control " + oTargetControl.getId() + "does not have any overlay existing during test execution. "
309
+ + "With this testsetup it is no possible to check for designtime action definition. In some cases it is not "
310
+ + "possible to identify the control with the designtime metadata automatically just by the given 'action.control'. "
311
+ + "In this case please provide the 'action.designtimeActionControl' property with a valid control containing "
312
+ + "the designtime metadata definition for this check."
313
+ );
314
+ }
315
+ oElementDesignTimeMetadata = oControlOverlay.getDesignTimeMetadata();
316
+ var oResponsibleElement = oElementDesignTimeMetadata.getResponsibleElement(oTargetControl);
317
+ var oAggregationOverlay;
318
+ if (mOptions.label) {
319
+ assert.strictEqual(
320
+ oElementDesignTimeMetadata.getLabel(oTargetControl),
321
+ mOptions.label,
322
+ "then the control label is correct"
323
+ );
324
+ }
325
+ if (oAction.name === "move") {
326
+ oMovedElement = mParameter.movedElements[0].element || mParameter.movedElements[0].id;
327
+ var oElementOverlay = OverlayRegistry.getOverlay(oMovedElement);
328
+ var oRelevantContainer = oElementOverlay.getRelevantContainer();
329
+ oTargetControl = oRelevantContainer;
330
+ oElementDesignTimeMetadata = oElementOverlay.getParentAggregationOverlay().getDesignTimeMetadata();
331
+ } else if (Array.isArray(oAction.name)) {
332
+ var aAddActions = oElementDesignTimeMetadata.getActionDataFromAggregations(
333
+ oAction.name[0],
334
+ oTargetControl,
335
+ undefined,
336
+ oAction.name[1]
337
+ );
338
+ oAggregationOverlay = oControlOverlay.getAggregationOverlay(aAddActions[0].aggregation);
339
+ oElementDesignTimeMetadata = oAggregationOverlay.getDesignTimeMetadata();
340
+ sCommandName = "addDelegateProperty";
341
+ } else if (oAction.name === "createContainer" || oAction.name === "addIFrame") {
342
+ var aCreateContainerActions = oElementDesignTimeMetadata.getActionDataFromAggregations(
343
+ oAction.name,
344
+ oControlWithDesigntimeActionDefinition || oTargetControl
345
+ );
346
+ oAggregationOverlay = oControlOverlay.getAggregationOverlay(aCreateContainerActions[0].aggregation);
347
+ oAggregationDesignTimeMetadata = oAggregationOverlay.getDesignTimeMetadata();
348
+ } else if (oResponsibleElement) {
349
+ if (oAction.name === "reveal") {
350
+ oTargetControl = oAction.revealedElement(this.oView);
351
+ oControlOverlay = OverlayRegistry.getOverlay(oAction.revealedElement(this.oView));
352
+ oElementDesignTimeMetadata = oControlOverlay.getDesignTimeMetadata();
353
+ if (oAction.label) {
354
+ var oRevealAction = oElementDesignTimeMetadata.getAction("reveal");
355
+ assert.strictEqual(oRevealAction.getLabel(oTargetControl), oAction.label,
356
+ "then the control label is correct");
357
+ }
223
358
  } else {
224
- mParameter = oAction.parameter;
359
+ oTargetControl = oResponsibleElement;
360
+ oControlOverlay = OverlayRegistry.getOverlay(oTargetControl);
361
+ oElementDesignTimeMetadata = oControlOverlay.getDesignTimeMetadata();
362
+ oTargetControl.getMetadata().loadDesignTime(oTargetControl);
225
363
  }
226
- } else {
227
- mParameter = {};
228
364
  }
365
+ }.bind(this))
229
366
 
230
- Core.applyChanges();
231
- this.oDesignTime = new DesignTime({
232
- rootElements: [
233
- this.oView
234
- ]
235
- });
236
- return new Promise(function(resolve) {
237
- this.oDesignTime.attachEventOnce("synced", function() {
238
- // The "settings" action doesn't require an overlay
239
- if (oAction.name === "settings") {
240
- return resolve();
241
- }
242
- var oControlOverlay = OverlayRegistry.getOverlay(oControl);
243
- oElementDesignTimeMetadata = oControlOverlay.getDesignTimeMetadata();
244
- var oResponsibleElement = oElementDesignTimeMetadata.getAction("getResponsibleElement", oControl);
245
- var oAggregationOverlay;
246
- if (mOptions.label) {
247
- assert.strictEqual(oElementDesignTimeMetadata.getLabel(oControl), mOptions.label, "then the control label is correct");
248
- }
249
- if (oAction.name === "move") {
250
- var oElementOverlay = OverlayRegistry.getOverlay(mParameter.movedElements[0].element || mParameter.movedElements[0].id);
251
- var oRelevantContainer = oElementOverlay.getRelevantContainer();
252
- oControl = oRelevantContainer;
253
- oElementDesignTimeMetadata = oElementOverlay.getParentAggregationOverlay().getDesignTimeMetadata();
254
- } else if (Array.isArray(oAction.name)) {
255
- var aAddActions = oElementDesignTimeMetadata.getActionDataFromAggregations(oAction.name[0], oControl, undefined, oAction.name[1]);
256
- assert.equal(aAddActions.length, 1, "there should be only one aggregation with the possibility to do an add " + oAction.name[1] + " action");
257
- oAggregationOverlay = oControlOverlay.getAggregationOverlay(aAddActions[0].aggregation);
258
- oElementDesignTimeMetadata = oAggregationOverlay.getDesignTimeMetadata();
259
- sCommandName = "addDelegateProperty";
260
- } else if (oResponsibleElement) {
261
- if (oAction.name === "reveal") {
262
- oControl = oAction.revealedElement(this.oView);
263
- oControlOverlay = OverlayRegistry.getOverlay(oAction.revealedElement(this.oView));
264
- oElementDesignTimeMetadata = oControlOverlay.getDesignTimeMetadata();
265
- if (oAction.label) {
266
- var oRevealAction = oElementDesignTimeMetadata.getAction("reveal");
267
- assert.strictEqual(oRevealAction.getLabel(oControl), oAction.label, "then the control label is correct");
268
- }
269
- } else {
270
- oControl = oResponsibleElement;
271
- oControlOverlay = OverlayRegistry.getOverlay(oControl);
272
- oElementDesignTimeMetadata = oControlOverlay.getDesignTimeMetadata();
273
- resolve(oControl.getMetadata().loadDesignTime(oControl));
274
- }
275
- }
276
- resolve();
277
- }.bind(this));
278
- }.bind(this));
367
+ .then(function() {
368
+ // additional check if the required action definition exists
369
+ // into the responsible control designtime metadata
370
+ return checkDesigntimeMetadata.call(
371
+ this,
372
+ assert,
373
+ oAction,
374
+ oTargetControl,
375
+ oMovedElement,
376
+ oElementDesignTimeMetadata,
377
+ oAggregationDesignTimeMetadata
378
+ );
279
379
  }.bind(this))
380
+
280
381
  .then(function() {
281
382
  var oCommandFactory = new CommandFactory({
282
383
  flexSettings: {
283
384
  layer: mOptions.layer || Layer.CUSTOMER
284
385
  }
285
386
  });
286
- return oCommandFactory.getCommandFor(oControl, sCommandName, mParameter, oElementDesignTimeMetadata);
387
+ return oCommandFactory.getCommandFor(
388
+ oTargetControl,
389
+ sCommandName,
390
+ mParameter,
391
+ oElementDesignTimeMetadata
392
+ );
287
393
  })
394
+
288
395
  .then(function(oCommand) {
289
- assert.ok(oCommand, "then the registration for action to change type, the registration for change and control type to change handler is available and " + mOptions.action.name + " is a valid action");
396
+ assert.ok(
397
+ oCommand,
398
+ "then the registration for action to change type, the registration for change and " +
399
+ "control type to change handler is available and " + mOptions.action.name + " is a valid action"
400
+ );
290
401
  return oCommand;
291
402
  })
403
+
292
404
  .catch(function(oMessage) {
293
405
  throw new Error(oMessage);
294
406
  });
@@ -335,7 +447,11 @@ sap.ui.define([
335
447
  changes: aChanges
336
448
  }).then(function(aCondensedChanges) {
337
449
  if (mOptions.changesAfterCondensing !== undefined) {
338
- assert.equal(aCondensedChanges.length, mOptions.changesAfterCondensing, "after condensing the amount of changes is correct");
450
+ assert.equal(
451
+ aCondensedChanges.length,
452
+ mOptions.changesAfterCondensing,
453
+ "after condensing the amount of changes is correct"
454
+ );
339
455
  }
340
456
  var aChangeIds = aCondensedChanges.map(function(oChange) {return oChange.getId();});
341
457
  aCommands.forEach(function(oCommand) {
@@ -373,11 +489,9 @@ sap.ui.define([
373
489
  sandbox.stub(oChangeVisualization, "_collectChanges").resolves(aChanges);
374
490
 
375
491
  return oChangeVisualization._updateChangeRegistry()
376
-
377
492
  .then(function() {
378
493
  return oChangeVisualization._selectChangeCategory(ChangeCategories.ALL);
379
494
  })
380
-
381
495
  .then(function() {
382
496
  var oChangeIndicatorRegistry = oChangeVisualization._oChangeIndicatorRegistry;
383
497
  var oData = oChangeIndicatorRegistry.getSelectorsWithRegisteredChanges();
@@ -396,18 +510,22 @@ sap.ui.define([
396
510
  if (mVisualizationInfo) {
397
511
  if (mVisualizationInfo.affectedControls) {
398
512
  var aAffectedControlIds = mapIds(mVisualizationInfo.affectedControls);
399
- assert.deepEqual(aAffectedControlIds, oRegisteredChange.visualizationInfo.affectedElementIds, "then the affected control ids are correct");
513
+ assert.deepEqual(aAffectedControlIds, oRegisteredChange.visualizationInfo.affectedElementIds,
514
+ "then the affected control ids are correct");
400
515
  }
401
516
  if (mVisualizationInfo.dependentControls) {
402
517
  var aDependentControlIds = mapIds(mVisualizationInfo.dependentControls);
403
- assert.deepEqual(aDependentControlIds, oRegisteredChange.visualizationInfo.dependentElementIds, "then the dependent control ids are correct");
518
+ assert.deepEqual(aDependentControlIds, oRegisteredChange.visualizationInfo.dependentElementIds,
519
+ "then the dependent control ids are correct");
404
520
  }
405
521
  if (mVisualizationInfo.displayControls) {
406
522
  var aDisplayControlIds = mapIds(mVisualizationInfo.displayControls);
407
- assert.deepEqual(aDisplayControlIds, oRegisteredChange.visualizationInfo.displayElementIds, "then the display control ids are correct");
523
+ assert.deepEqual(aDisplayControlIds, oRegisteredChange.visualizationInfo.displayElementIds,
524
+ "then the display control ids are correct");
408
525
  }
409
526
  if (mVisualizationInfo.descriptionPayload) {
410
- assert.deepEqual(mVisualizationInfo.descriptionPayload, oRegisteredChange.visualizationInfo.descriptionPayload, "then the descriptionPayload is correct");
527
+ assert.deepEqual(mVisualizationInfo.descriptionPayload, oRegisteredChange.visualizationInfo.descriptionPayload,
528
+ "then the descriptionPayload is correct");
411
529
  }
412
530
  }
413
531
  });
@@ -439,7 +557,7 @@ sap.ui.define([
439
557
  sandbox.stub(ChangePersistence.prototype, "getCacheKey").resolves("etag-123");
440
558
 
441
559
  return createViewInComponent.call(this, SYNC)
442
- .then(buildCommandsAndApplyChangesOnXML.bind(this, assert, aChanges));
560
+ .then(buildCommandsAndApplyChangesOnXML.bind(this, assert, aChanges));
443
561
  }
444
562
 
445
563
  function buildCommandsAndApplyChangesOnXML(assert, aChanges) {
@@ -451,21 +569,21 @@ sap.ui.define([
451
569
 
452
570
  return aActions.reduce(function(oLastPromise, oAction) {
453
571
  return oLastPromise
454
- .then(buildCommand.bind(this, assert, oAction))
455
- .then(function(oCommand) {
456
- aCommands.push(oCommand);
457
- aChanges.push(oCommand.getPreparedChange());
458
-
459
- // Destroy and recreate component and view to get the changes applied
460
- // Wait for each change to be applied individually to allow dependencies
461
- // between changes of different actions
462
- this.oUiComponentContainer.destroy();
463
- return createViewInComponent.call(this, ASYNC);
464
- }.bind(this));
465
- }.bind(this), Promise.resolve())
466
- .then(function() {
467
- this.aCommands = aCommands;
572
+ .then(buildCommand.bind(this, assert, oAction))
573
+ .then(function(oCommand) {
574
+ aCommands.push(oCommand);
575
+ aChanges.push(oCommand.getPreparedChange());
576
+
577
+ // Destroy and recreate component and view to get the changes applied
578
+ // Wait for each change to be applied individually to allow dependencies
579
+ // between changes of different actions
580
+ this.oUiComponentContainer.destroy();
581
+ return createViewInComponent.call(this, ASYNC);
468
582
  }.bind(this));
583
+ }.bind(this), Promise.resolve())
584
+ .then(function() {
585
+ this.aCommands = aCommands;
586
+ }.bind(this));
469
587
  }
470
588
 
471
589
  // XML View checks
@@ -567,16 +685,16 @@ sap.ui.define([
567
685
  return mOptions.after.call(this.hookContext, assert);
568
686
  },
569
687
  beforeEach: function(assert) {
570
- //no LREP response needed
688
+ // no LREP response needed
571
689
  sandbox.stub(ChangePersistence.prototype, "getChangesForComponent").returns(Promise.resolve([]));
572
- sandbox.stub(ChangePersistence.prototype, "getCacheKey").returns(Cache.NOTAG); //no cache key => no xml view processing
690
+ sandbox.stub(ChangePersistence.prototype, "getCacheKey").returns(Cache.NOTAG); // no cache key => no xml view processing
573
691
  sandbox.stub(Settings, "getInstance").returns(Promise.resolve({_oSettings: {}}));
574
692
 
575
693
  return createViewInComponent.call(this, SYNC)
576
- .then(buildAndExecuteCommands.bind(this, assert))
577
- .then(function(aCommands) {
578
- this.aCommands = aCommands;
579
- }.bind(this));
694
+ .then(buildAndExecuteCommands.bind(this, assert))
695
+ .then(function(aCommands) {
696
+ this.aCommands = aCommands;
697
+ }.bind(this));
580
698
  },
581
699
  afterEach: function() {
582
700
  this.oDesignTime.destroy();
@@ -23,14 +23,14 @@ function() {
23
23
  * @namespace
24
24
  * @alias sap.ui.rta
25
25
  * @author SAP SE
26
- * @version 1.115.1
26
+ * @version 1.117.0
27
27
  * @since 1.50
28
28
  * @private
29
29
  * @experimental This class is experimental and provides only limited functionality. Also the API might be changed in future.
30
30
  */
31
31
  var thisLib = sap.ui.getCore().initLibrary({
32
32
  name: "sap.ui.rta",
33
- version: "1.115.1",
33
+ version: "1.117.0",
34
34
  dependencies: ["sap.ui.core", "sap.m", "sap.ui.fl", "sap.ui.dt"],
35
35
  types: [],
36
36
  interfaces: [],
@@ -568,8 +568,18 @@ SAC_DIALOG_HEADER=Save as New Adaptation
568
568
  DAC_DIALOG_HEADER=Delete Adaptation
569
569
  #XTIT: Context-Based Adaptation Delete Dialog description
570
570
  DAC_DIALOG_DESCRIPTION=Do you really want to delete this adaptation?
571
- #XTIT: Context-Based Adaptation dialog to delete and unsaved changes description
571
+ #XMSG: Context-Based Adaptation dialog to delete but unsaved changes exist description
572
572
  DAC_DATA_LOSS_DIALOG_DESCRIPTION=You have unsaved UI changes. Deleting this adaptation will also delete the UI changes. Do you really want to delete this adaptation?
573
+ #XTIT: Context-Based Adaptation Migration Dialog title
574
+ DAC_DIALOG_MIGRATION_HEADER=Migrate Views
575
+ #XMSG: Context-Based Adaptation Migration Dialog description
576
+ DAC_DIALOG_MIGRATION_DESCRIPTION=We noticed that you've already assigned roles to views in this application. If you want to create an adaptation, you need to migrate these views to adaptations.\n After the migration, every view that was assigned to a role will be included in an adaptation.
577
+ #XMSG: Context-Based Adaptation Migration Dialog description
578
+ DAC_DIALOG_MIGRATION_DIRTY_DESCRIPTION=We noticed that you've already assigned roles to views in this application. If you want to create an adaptation, you need to migrate these views to adaptations.\n After the migration, every view that was assigned to a role will be included in an adaptation.\n\n You have unsaved UI changes. These are saved before migration.
579
+ #XMSG: Context-Based Adaptation Migration Successful Dialog description
580
+ DAC_DIALOG_MIGRATION_SUCCESSFULL_DESCRIPTION=Views have been successfully migrated.\n You can now switch to the created adaptations and verify them.
581
+ #XMSG: Context-Based Adaptation Migration Error Dialog description
582
+ DAC_DIALOG_MIGRATION_ERROR_DESCRIPTION=An Error occurred during the migration. Please try again later or contact your administrator.
573
583
  #XTITT: Context-Based Adaptation Manage Dialog title
574
584
  MANAGE_ADAPTATIONS_DIALOG_HEADER=Manage Adaptations
575
585
  #XTIT: Text for Manage Adaptations Button in RTA toolbar
@@ -288,6 +288,11 @@ SAC_DIALOG_HEADER=\u062D\u0641\u0638 \u0643\u062A\u0647\u064A\u0626\u0629 \u062C
288
288
  DAC_DIALOG_HEADER=\u062D\u0630\u0641 \u0627\u0644\u062A\u0647\u064A\u0626\u0629
289
289
  DAC_DIALOG_DESCRIPTION=\u0647\u0644 \u062A\u0631\u064A\u062F \u062D\u0630\u0641 \u0647\u0630\u0647 \u0627\u0644\u062A\u0647\u064A\u0626\u0629 \u0628\u0627\u0644\u0641\u0639\u0644\u061F
290
290
  DAC_DATA_LOSS_DIALOG_DESCRIPTION=\u0644\u062F\u064A\u0643 \u062A\u063A\u064A\u064A\u0631\u0627\u062A \u063A\u064A\u0631 \u0645\u062D\u0641\u0648\u0638\u0629 \u0641\u064A \u0648\u0627\u062C\u0647\u0629 \u0627\u0644\u0645\u0633\u062A\u062E\u062F\u0645. \u0633\u064A\u0624\u062F\u064A \u062D\u0630\u0641 \u0647\u0630\u0647 \u0627\u0644\u062A\u0647\u064A\u0626\u0629 \u0623\u064A\u0636\u064B\u0627 \u0625\u0644\u0649 \u062D\u0630\u0641 \u062A\u063A\u064A\u064A\u0631\u0627\u062A \u0648\u0627\u062C\u0647\u0629 \u0627\u0644\u0645\u0633\u062A\u062E\u062F\u0645. \u0647\u0644 \u062A\u0631\u064A\u062F \u062D\u0630\u0641 \u0647\u0630\u0647 \u0627\u0644\u062A\u0647\u064A\u0626\u0629 \u0628\u0627\u0644\u062A\u0623\u0643\u064A\u062F\u061F
291
+ DAC_DIALOG_MIGRATION_HEADER=\u062A\u0631\u062D\u064A\u0644 \u0637\u0631\u0642 \u0627\u0644\u0639\u0631\u0636
292
+ DAC_DIALOG_MIGRATION_DESCRIPTION=\u0644\u0642\u062F \u0644\u0627\u062D\u0638\u0646\u0627 \u0623\u0646\u0643 \u0642\u0645\u062A \u0628\u0627\u0644\u0641\u0639\u0644 \u0628\u062A\u0639\u064A\u064A\u0646 \u0623\u062F\u0648\u0627\u0631 \u0644\u0637\u0631\u0642 \u0627\u0644\u0639\u0631\u0636 \u0641\u064A \u0647\u0630\u0627 \u0627\u0644\u062A\u0637\u0628\u064A\u0642. \u0625\u0630\u0627 \u0643\u0646\u062A \u062A\u0631\u063A\u0628 \u0641\u064A \u0625\u0646\u0634\u0627\u0621 \u062A\u0647\u064A\u0626\u0629\u060C \u0641\u0623\u0646\u062A \u0628\u062D\u0627\u062C\u0629 \u0625\u0644\u0649 \u062A\u0631\u062D\u064A\u0644 \u0637\u0631\u0642 \u0627\u0644\u0639\u0631\u0636 \u0647\u0630\u0647 \u0625\u0644\u0649 \u0639\u0645\u0644\u064A\u0627\u062A \u0627\u0644\u062A\u0647\u064A\u0626\u0629.\n\u0628\u0639\u062F \u0627\u0644\u062A\u0631\u062D\u064A\u0644\u060C \u0633\u064A\u062A\u0645 \u062A\u0639\u064A\u064A\u0646 \u0643\u0644 \u0637\u0631\u064A\u0642\u0629 \u0639\u0631\u0636 \u062A\u0645 \u062A\u0639\u064A\u064A\u0646\u0647\u0627 \u0644\u062F\u0648\u0631 \u0641\u064A \u0627\u0644\u062A\u0647\u064A\u0626\u0629.
293
+ DAC_DIALOG_MIGRATION_DIRTY_DESCRIPTION=\u0644\u0642\u062F \u0644\u0627\u062D\u0638\u0646\u0627 \u0623\u0646\u0643 \u0642\u0645\u062A \u0628\u0627\u0644\u0641\u0639\u0644 \u0628\u062A\u0639\u064A\u064A\u0646 \u0623\u062F\u0648\u0627\u0631 \u0644\u0637\u0631\u0642 \u0627\u0644\u0639\u0631\u0636 \u0641\u064A \u0647\u0630\u0627 \u0627\u0644\u062A\u0637\u0628\u064A\u0642. \u0625\u0630\u0627 \u0643\u0646\u062A \u062A\u0631\u063A\u0628 \u0641\u064A \u0625\u0646\u0634\u0627\u0621 \u062A\u0647\u064A\u0626\u0629\u060C \u0641\u0623\u0646\u062A \u0628\u062D\u0627\u062C\u0629 \u0625\u0644\u0649 \u062A\u0631\u062D\u064A\u0644 \u0637\u0631\u0642 \u0627\u0644\u0639\u0631\u0636 \u0647\u0630\u0647 \u0625\u0644\u0649 \u0639\u0645\u0644\u064A\u0627\u062A \u0627\u0644\u062A\u0647\u064A\u0626\u0629.\n\u0628\u0639\u062F \u0627\u0644\u062A\u0631\u062D\u064A\u0644\u060C \u0633\u064A\u062A\u0645 \u062A\u0639\u064A\u064A\u0646 \u0643\u0644 \u0637\u0631\u064A\u0642\u0629 \u0639\u0631\u0636 \u062A\u0645 \u062A\u0639\u064A\u064A\u0646\u0647\u0627 \u0644\u062F\u0648\u0631 \u0641\u064A \u0627\u0644\u062A\u0647\u064A\u0626\u0629.\n\n\u0644\u062F\u064A\u0643 \u062A\u063A\u064A\u064A\u0631\u0627\u062A \u063A\u064A\u0631 \u0645\u062D\u0641\u0648\u0638\u0629 \u0641\u064A \u0648\u0627\u062C\u0647\u0629 \u0627\u0644\u0645\u0633\u062A\u062E\u062F\u0645. \u0633\u064A\u062A\u0645 \u062A\u062C\u0627\u0647\u0644 \u0647\u0630\u0647 \u0642\u0628\u0644 \u0627\u0644\u062A\u0631\u062D\u064A\u0644.
294
+ DAC_DIALOG_MIGRATION_SUCCESSFULL_DESCRIPTION=\u062A\u0645 \u062A\u0631\u062D\u064A\u0644 \u0637\u0631\u0642 \u0627\u0644\u0639\u0631\u0636 \u0628\u0646\u062C\u0627\u062D.\n\u064A\u0645\u0643\u0646\u0643 \u0627\u0644\u0622\u0646 \u0627\u0644\u062A\u0628\u062F\u064A\u0644 \u0625\u0644\u0649 \u0639\u0645\u0644\u064A\u0627\u062A \u0627\u0644\u062A\u0647\u064A\u0626\u0629 \u0627\u0644\u062A\u064A \u062A\u0645 \u0625\u0646\u0634\u0627\u0624\u0647\u0627 \u0648\u0627\u0644\u062A\u062D\u0642\u0642 \u0645\u0646\u0647\u0627.
295
+ DAC_DIALOG_MIGRATION_ERROR_DESCRIPTION=\u062D\u062F\u062B \u062E\u0637\u0623 \u0623\u062B\u0646\u0627\u0621 \u0627\u0644\u062A\u0631\u062D\u064A\u0644. \u0627\u0644\u0631\u062C\u0627\u0621 \u0625\u0639\u0627\u062F\u0629 \u0627\u0644\u0645\u062D\u0627\u0648\u0644\u0629 \u0644\u0627\u062D\u0642\u064B\u0627 \u0623\u0648 \u0627\u0644\u0627\u062A\u0635\u0627\u0644 \u0628\u0627\u0644\u0645\u0633\u0624\u0648\u0644 \u0644\u062F\u064A\u0643.
291
296
  MANAGE_ADAPTATIONS_DIALOG_HEADER=\u0625\u062F\u0627\u0631\u0629 \u0639\u0645\u0644\u064A\u0627\u062A \u0627\u0644\u062A\u0647\u064A\u0626\u0629
292
297
  BTN_MANAGE_APP_CTX=\u0625\u062F\u0627\u0631\u0629 \u0639\u0645\u0644\u064A\u0627\u062A \u0627\u0644\u062A\u0647\u064A\u0626\u0629
293
298
  TXT_MANAGE_APP_CTX=\u0639\u0631\u0636 \u0623\u0648 \u062A\u062D\u0631\u064A\u0631 \u0623\u0648 \u062D\u0630\u0641 \u0639\u0645\u0644\u064A\u0627\u062A \u0627\u0644\u062A\u0647\u064A\u0626\u0629
@@ -288,6 +288,11 @@ SAC_DIALOG_HEADER=\u0417\u0430\u043F\u0430\u0437\u0432\u0430\u043D\u0435 \u043A\
288
288
  DAC_DIALOG_HEADER=\u0418\u0437\u0442\u0440\u0438\u0432\u0430\u043D\u0435 \u043D\u0430 \u0430\u0434\u0430\u043F\u0442\u0438\u0440\u0430\u043D\u0435\u0442\u043E
289
289
  DAC_DIALOG_DESCRIPTION=\u041D\u0430\u0438\u0441\u0442\u0438\u043D\u0430 \u043B\u0438 \u0436\u0435\u043B\u0430\u0435\u0442\u0435 \u0434\u0430 \u0438\u0437\u0442\u0440\u0438\u0435\u0442\u0435 \u0442\u043E\u0432\u0430 \u0430\u0434\u0430\u043F\u0442\u0438\u0440\u0430\u043D\u0435?
290
290
  DAC_DATA_LOSS_DIALOG_DESCRIPTION=\u0418\u043C\u0430 \u043D\u0435\u0437\u0430\u043F\u0430\u0437\u0435\u043D\u0438 \u043F\u0440\u043E\u043C\u0435\u043D\u0438 \u043F\u043E UI. \u0410\u043A\u043E \u0438\u0437\u0442\u0440\u0438\u0435\u0442\u0435 \u0442\u043E\u0432\u0430 \u0430\u0434\u0430\u043F\u0442\u0438\u0440\u0430\u043D\u0435, \u043F\u0440\u043E\u043C\u0435\u043D\u0438\u0442\u0435 \u043F\u043E UI \u0441\u044A\u0449\u043E \u0449\u0435 \u0431\u044A\u0434\u0430\u0442 \u0438\u0437\u0442\u0440\u0438\u0442\u0438. \u041D\u0430\u0438\u0441\u0442\u0438\u043D\u0430 \u043B\u0438 \u0438\u0441\u043A\u0430\u0442\u0435 \u0434\u0430 \u0438\u0437\u0442\u0440\u0438\u0435\u0442\u0435 \u0430\u0434\u0430\u043F\u0442\u0438\u0440\u0430\u043D\u0435\u0442\u043E?
291
+ DAC_DIALOG_MIGRATION_HEADER=\u041C\u0438\u0433\u0440\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 \u0438\u0437\u0433\u043B\u0435\u0434\u0438
292
+ DAC_DIALOG_MIGRATION_DESCRIPTION=\u0417\u0430\u0431\u0435\u043B\u044F\u0437\u0430\u0445\u043C\u0435, \u0447\u0435 \u0432\u0435\u0447\u0435 \u0441\u0442\u0435 \u043F\u0440\u0438\u0441\u044A\u0435\u0434\u0438\u043D\u0438\u043B\u0438 \u0440\u043E\u043B\u0438 \u043A\u044A\u043C \u0438\u0437\u0433\u043B\u0435\u0434\u0438\u0442\u0435 \u0432 \u0442\u043E\u0432\u0430 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435. \u0410\u043A\u043E \u0438\u0441\u043A\u0430\u0442\u0435 \u0434\u0430 \u0441\u044A\u0437\u0434\u0430\u0434\u0435\u0442\u0435 \u0430\u0434\u0430\u043F\u0442\u0430\u0446\u0438\u044F, \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u043C\u0438\u0433\u0440\u0438\u0440\u0430\u0442\u0435 \u0442\u0435\u0437\u0438 \u0438\u0437\u0433\u043B\u0435\u0434\u0438 \u043A\u044A\u043C \u0430\u0434\u0430\u043F\u0442\u0430\u0446\u0438\u0438\u0442\u0435.\n\u0421\u043B\u0435\u0434 \u043C\u0438\u0433\u0440\u0438\u0440\u0430\u043D\u0435\u0442\u043E, \u0432\u0441\u0435\u043A\u0438 \u0438\u0437\u0433\u043B\u0435\u0434, \u043F\u0440\u0438\u0441\u044A\u0435\u0434\u0438\u043D\u0435\u043D \u043A\u044A\u043C \u0440\u043E\u043B\u044F, \u0449\u0435 \u0431\u044A\u0434\u0435 \u0432\u043A\u043B\u044E\u0447\u0435\u043D \u0432 \u0430\u0434\u0430\u043F\u0442\u0430\u0446\u0438\u044F.
293
+ DAC_DIALOG_MIGRATION_DIRTY_DESCRIPTION=\u0417\u0430\u0431\u0435\u043B\u044F\u0437\u0430\u0445\u043C\u0435, \u0447\u0435 \u0432\u0435\u0447\u0435 \u0441\u0442\u0435 \u043F\u0440\u0438\u0441\u044A\u0435\u0434\u0438\u043D\u0438\u043B\u0438 \u0440\u043E\u043B\u0438 \u043A\u044A\u043C \u0438\u0437\u0433\u043B\u0435\u0434\u0438\u0442\u0435 \u0432 \u0442\u043E\u0432\u0430 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435. \u0410\u043A\u043E \u0438\u0441\u043A\u0430\u0442\u0435 \u0434\u0430 \u0441\u044A\u0437\u0434\u0430\u0434\u0435\u0442\u0435 \u0430\u0434\u0430\u043F\u0442\u0430\u0446\u0438\u044F, \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u043C\u0438\u0433\u0440\u0438\u0440\u0430\u0442\u0435 \u0442\u0435\u0437\u0438 \u0438\u0437\u0433\u043B\u0435\u0434\u0438 \u043A\u044A\u043C \u0430\u0434\u0430\u043F\u0442\u0430\u0446\u0438\u0438\u0442\u0435.\n\u0421\u043B\u0435\u0434 \u043C\u0438\u0433\u0440\u0438\u0440\u0430\u043D\u0435\u0442\u043E, \u0432\u0441\u0435\u043A\u0438 \u0438\u0437\u0433\u043B\u0435\u0434, \u043F\u0440\u0438\u0441\u044A\u0435\u0434\u0438\u043D\u0435\u043D \u043A\u044A\u043C \u0440\u043E\u043B\u044F, \u0449\u0435 \u0431\u044A\u0434\u0435 \u0432\u043A\u043B\u044E\u0447\u0435\u043D \u0432 \u0430\u0434\u0430\u043F\u0442\u0430\u0446\u0438\u044F.\n\n\u041E\u0442\u043C\u0435\u043D\u0438\u043B\u0438 \u0441\u0442\u0435 \u0437\u0430\u043F\u0430\u0437\u0432\u0430\u043D\u0435\u0442\u043E \u043D\u0430 \u043F\u0440\u043E\u043C\u0435\u043D\u0438\u0442\u0435 \u043D\u0430 \u043F\u043E\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043B\u0441\u043A\u0438\u044F \u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441. \u0422\u043E\u0432\u0430 \u0449\u0435 \u0431\u044A\u0434\u0435 \u043E\u0442\u0445\u0432\u044A\u0440\u043B\u0435\u043D\u043E \u043F\u0440\u0435\u0434\u0438 \u043C\u0438\u0433\u0440\u0438\u0440\u0430\u043D\u0435\u0442\u043E.
294
+ DAC_DIALOG_MIGRATION_SUCCESSFULL_DESCRIPTION=\u0418\u0437\u0433\u043B\u0435\u0434\u0438\u0442\u0435 \u0441\u0430 \u043C\u0438\u0433\u0440\u0438\u0440\u0430\u043D\u0438 \u0443\u0441\u043F\u0435\u0448\u043D\u043E.\n\u0412\u0435\u0447\u0435 \u043C\u043E\u0436\u0435\u0442\u0435 \u0434\u0430 \u043F\u0440\u0435\u0432\u043A\u043B\u044E\u0447\u0438\u0442\u0435 \u043A\u044A\u043C \u0441\u044A\u0437\u0434\u0430\u0434\u0435\u043D\u0438\u0442\u0435 \u0430\u0434\u0430\u043F\u0442\u0430\u0446\u0438\u0438 \u0438 \u0434\u0430 \u0433\u0438 \u043F\u043E\u0442\u0432\u044A\u0440\u0434\u0438\u0442\u0435.
295
+ DAC_DIALOG_MIGRATION_ERROR_DESCRIPTION=\u0412\u044A\u0437\u043D\u0438\u043A\u043D\u0430 \u0433\u0440\u0435\u0448\u043A\u0430 \u043F\u0440\u0438 \u043C\u0438\u0433\u0440\u0438\u0440\u0430\u043D\u0435. \u041C\u043E\u043B\u044F, \u043E\u043F\u0438\u0442\u0430\u0439\u0442\u0435 \u043E\u0442\u043D\u043E\u0432\u043E \u043F\u043E-\u043A\u044A\u0441\u043D\u043E, \u0438\u043B\u0438 \u0441\u0435 \u0441\u0432\u044A\u0440\u0436\u0435\u0442\u0435 \u0441 \u0432\u0430\u0448\u0438\u044F \u0430\u0434\u043C\u0438\u043D\u0438\u0441\u0442\u0440\u0430\u0442\u043E\u0440.
291
296
  MANAGE_ADAPTATIONS_DIALOG_HEADER=\u0423\u043F\u0440\u0430\u0432\u043B\u044F\u0432\u0430\u043D\u0435 \u043D\u0430 \u0430\u0434\u0430\u043F\u0442\u0438\u0440\u0430\u043D\u0438\u044F
292
297
  BTN_MANAGE_APP_CTX=\u0423\u043F\u0440\u0430\u0432\u043B\u044F\u0432\u0430\u043D\u0435 \u043D\u0430 \u0430\u0434\u0430\u043F\u0442\u0438\u0440\u0430\u043D\u0438\u044F
293
298
  TXT_MANAGE_APP_CTX=\u041F\u0440\u0435\u0433\u043B\u0435\u0434, \u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u0430\u043D\u0435 \u0438\u043B\u0438 \u0438\u0437\u0442\u0440\u0438\u0432\u0430\u043D\u0435 \u043D\u0430 \u0430\u0434\u0430\u043F\u0442\u0438\u0440\u0430\u043D\u0438\u044F
@@ -288,6 +288,11 @@ SAC_DIALOG_HEADER=Desar com a nova adaptaci\u00F3
288
288
  DAC_DIALOG_HEADER=Suprimir adaptaci\u00F3
289
289
  DAC_DIALOG_DESCRIPTION=Segur que voleu suprimir aquesta adaptaci\u00F3?
290
290
  DAC_DATA_LOSS_DIALOG_DESCRIPTION=Teniu modificacions a la IU sense desar. Si suprimiu aquesta adaptaci\u00F3, tamb\u00E9 se suprimiran les modificacions de la IU. Segur que voleu suprimir aquesta adaptaci\u00F3?
291
+ DAC_DIALOG_MIGRATION_HEADER=Migrar vistes
292
+ DAC_DIALOG_MIGRATION_DESCRIPTION=Hem detectat que ja heu assignat rols a vistes en aquesta aplicaci\u00F3. Si voleu crear una adaptaci\u00F3, heu de migrar les vistes a adaptacions.\nDespr\u00E9s de la migraci\u00F3, cadascuna de les vistes que s'havia assignat a un rol s'inclour\u00E0 en una adaptaci\u00F3.
293
+ DAC_DIALOG_MIGRATION_DIRTY_DESCRIPTION=Hem detectat que ja heu assignat rols a vistes en aquesta aplicaci\u00F3. Si voleu crear una adaptaci\u00F3, heu de migrar les vistes a adaptacions.\nDespr\u00E9s de la migraci\u00F3, cadascuna de les vistes que s'havia assignat a un rol s'inclour\u00E0 en una adaptaci\u00F3.\n\nTeniu modificacions d'IU no desades. Es descartaran abans de la migraci\u00F3.
294
+ DAC_DIALOG_MIGRATION_SUCCESSFULL_DESCRIPTION=Les vistes s'han migrat correctament.\nAra podeu canviar a les adaptacions que s'han creat i verificar-les.
295
+ DAC_DIALOG_MIGRATION_ERROR_DESCRIPTION=S'ha produ\u00EFt un error durant la migraci\u00F3. Torneu a provar-ho m\u00E9s endavant o adreceu-vos a l'administrador.
291
296
  MANAGE_ADAPTATIONS_DIALOG_HEADER=Gestionar adaptacions
292
297
  BTN_MANAGE_APP_CTX=Gestionar adaptacions
293
298
  TXT_MANAGE_APP_CTX=Visualitzar, editar o suprimir adaptacions
@@ -288,6 +288,11 @@ SAC_DIALOG_HEADER=Ulo\u017Eit jako novou \u00FApravu
288
288
  DAC_DIALOG_HEADER=Odstranit \u00FApravu
289
289
  DAC_DIALOG_DESCRIPTION=Chcete opravdu tuto \u00FApravu odstranit?
290
290
  DAC_DATA_LOSS_DIALOG_DESCRIPTION=M\u00E1te neulo\u017Een\u00E9 zm\u011Bny u\u017Eivatelsk\u00E9ho rozhran\u00ED. Odstran\u011Bn\u00EDm t\u00E9to \u00FApravy se odstran\u00ED tak\u00E9 zm\u011Bny u\u017Eivatelsk\u00E9ho rozhran\u00ED. Opravdu chcete odstranit tuto \u00FApravu?
291
+ DAC_DIALOG_MIGRATION_HEADER=Migrovat pohledy
292
+ DAC_DIALOG_MIGRATION_DESCRIPTION=V\u0161imli jsme si, \u017Ee jste v t\u00E9to aplikaci ji\u017E p\u0159i\u0159adili role pohled\u016Fm. Chcete-li vytvo\u0159it p\u0159izp\u016Fsoben\u00ED, mus\u00EDte tyto pohledy migrovat na p\u0159izp\u016Fsoben\u00ED. Po migraci bude ka\u017Ed\u00FD pohled, kter\u00FD byl p\u0159i\u0159azen k roli, zahrnut do p\u0159izp\u016Fsoben\u00ED.
293
+ DAC_DIALOG_MIGRATION_DIRTY_DESCRIPTION=V\u0161imli jsme si, \u017Ee jste v t\u00E9to aplikaci ji\u017E p\u0159i\u0159adili role pohled\u016Fm. Chcete-li vytvo\u0159it p\u0159izp\u016Fsoben\u00ED, mus\u00EDte tyto pohledy migrovat na p\u0159izp\u016Fsoben\u00ED.\n Po migraci bude ka\u017Ed\u00FD pohled, kter\u00FD byl p\u0159i\u0159azen k roli, zahrnut do p\u0159izp\u016Fsoben\u00ED.\n\nM\u00E1te neulo\u017Een\u00E9 zm\u011Bny u\u017Eivatelsk\u00E9ho rozhran\u00ED. Ty budou p\u0159ed migrac\u00ED zahozeny.
294
+ DAC_DIALOG_MIGRATION_SUCCESSFULL_DESCRIPTION=Pohledy byly \u00FAsp\u011B\u0161n\u011B migrov\u00E1ny.\nNyn\u00ED m\u016F\u017Eete p\u0159epnout na p\u0159izp\u016Fsoben\u00ED, je\u017E byla vytvo\u0159ena, a ov\u011B\u0159it je.
295
+ DAC_DIALOG_MIGRATION_ERROR_DESCRIPTION=P\u0159i migraci do\u0161lo k chyb\u011B. Pokuste se znova pozd\u011Bji nebo kontaktujte spr\u00E1vce syst\u00E9mu.
291
296
  MANAGE_ADAPTATIONS_DIALOG_HEADER=Spravovat \u00FApravy
292
297
  BTN_MANAGE_APP_CTX=Spravovat \u00FApravy
293
298
  TXT_MANAGE_APP_CTX=Zobrazit, upravit nebo odstranit \u00FApravy
@@ -288,6 +288,11 @@ SAC_DIALOG_HEADER=Cadw fel Addasiad Newydd
288
288
  DAC_DIALOG_HEADER=Dileu Addasiad
289
289
  DAC_DIALOG_DESCRIPTION=Ydych chi wir am ddileu\u2019r addasiad hwn?
290
290
  DAC_DATA_LOSS_DIALOG_DESCRIPTION=Mae gennych newidiadau UI heb eu cadw. Bydd dileu'r addasiad hwn yn dileu'r newidiadau UI hefyd. Ydych chi wir am ddileu'r addasiad hwn?
291
+ DAC_DIALOG_MIGRATION_HEADER=Mudo Gweddau
292
+ DAC_DIALOG_MIGRATION_DESCRIPTION=Rydym wedi sylwi eich bod eisoes wedi neilltuo rolau i weddau yn y rhaglen hon. Os ydych chi eisiau creu addasiad, mae angen i chi symud y gweddau hyn i addasiadau.\nAr \u00F4l mudo, bydd pob gwedd a neilltuwyd i r\u00F4l yn cael ei gynnwys mewn addasiad.
293
+ DAC_DIALOG_MIGRATION_DIRTY_DESCRIPTION=Rydym wedi sylwi eich bod eisoes wedi neilltuo rolau i weddau yn y rhaglen hon. Os ydych chi eisiau creu addasiad, mae angen i chi symud y gweddau hyn i addasiadau.\nAr \u00F4l mudo, bydd pob gwedd a neilltuwyd i r\u00F4l yn cael ei gynnwys mewn addasiad.\n\nMae gennych newidiadau UI heb eu cadw. Bydd y rhain yn cael eu dileu cyn mudo.
294
+ DAC_DIALOG_MIGRATION_SUCCESSFULL_DESCRIPTION=Mae gweddau wedi'u mudo'n llwyddiannus.\nGallwch nawr newid i'r addasiadau sydd wedi'u creu a'u dilysu nhw.
295
+ DAC_DIALOG_MIGRATION_ERROR_DESCRIPTION=Roedd gwall wrth fudo. Rhowch gynnig arall arni rywbryd eto neu cysylltwch \u00E2'ch gweinyddwr.
291
296
  MANAGE_ADAPTATIONS_DIALOG_HEADER=Rheoli Addasiadau
292
297
  BTN_MANAGE_APP_CTX=Rheoli Addasiadau
293
298
  TXT_MANAGE_APP_CTX=Gweld, golygu neu ddileu addasiadau
@@ -288,6 +288,11 @@ SAC_DIALOG_HEADER=Gem som ny tilpasning
288
288
  DAC_DIALOG_HEADER=Slet tilpasning
289
289
  DAC_DIALOG_DESCRIPTION=Er du sikker p\u00E5, at du vil slette denne tilpasning?
290
290
  DAC_DATA_LOSS_DIALOG_DESCRIPTION=Du har ikkegemte UI-\u00E6ndringer. Hvis du sletter denne tilpasning, slettes UI-\u00E6ndringerne ogs\u00E5. Er du sikker p\u00E5, at du vil slette denne tilpasning?
291
+ DAC_DIALOG_MIGRATION_HEADER=Migrer views
292
+ DAC_DIALOG_MIGRATION_DESCRIPTION=Vi har bem\u00E6rket, at du allerede har allokeret roller til views i denne applikation. Hvis du vil oprette en tilpasning, skal du migrere disse views til tilpasninger.\nEfter migrering inkluderes ethvert view, der blev allokeret til en rolle, i en tilpasning.
293
+ DAC_DIALOG_MIGRATION_DIRTY_DESCRIPTION=Vi har bem\u00E6rket, at du allerede har allokeret roller til views i denne applikation. Hvis du vil oprette en tilpasning, skal du migrere disse views til tilpasninger.\nEfter migrering inkluderes ethvert view, der blev allokeret til en rolle, i en tilpasning.\n\nDu har ikkegemte UI-\u00E6ndringer. Disse forkastes f\u00F8r migrering.
294
+ DAC_DIALOG_MIGRATION_SUCCESSFULL_DESCRIPTION=Views er migreret uden fejl.\nDu kan nu skifte til de tilpasninger, der er oprettet, og bekr\u00E6fte dem.
295
+ DAC_DIALOG_MIGRATION_ERROR_DESCRIPTION=Der opstod en fejl under migrering. Pr\u00F8v igen senere, eller kontakt din administrator.
291
296
  MANAGE_ADAPTATIONS_DIALOG_HEADER=Administrer tilpasninger
292
297
  BTN_MANAGE_APP_CTX=Administrer tilpasninger
293
298
  TXT_MANAGE_APP_CTX=Vis, rediger eller slet tilpasninger
@@ -288,6 +288,11 @@ SAC_DIALOG_HEADER=Als neue Anpassung sichern
288
288
  DAC_DIALOG_HEADER=Anpassung l\u00F6schen
289
289
  DAC_DIALOG_DESCRIPTION=M\u00F6chten Sie diese Anpassung wirklich l\u00F6schen?
290
290
  DAC_DATA_LOSS_DIALOG_DESCRIPTION=Sie haben ungesicherte UI-\u00C4nderungen. Durch das L\u00F6schen dieser Anpassung werden auch die UI-\u00C4nderungen gel\u00F6scht. M\u00F6chten Sie diese Anpassung wirklich l\u00F6schen?
291
+ DAC_DIALOG_MIGRATION_HEADER=Ansichten migrieren
292
+ DAC_DIALOG_MIGRATION_DESCRIPTION=Wir haben festgestellt, dass Sie Ansichten in dieser Anwendung bereits Rollen zugeordnet haben. Wenn Sie eine Anpassung anlegen m\u00F6chten, m\u00FCssen Sie diese Ansichten in die Anpassung migrieren.\nNach der Migration ist jede Ansicht, die einer Rolle zugeordnet war, in einer Anpassung enthalten.
293
+ DAC_DIALOG_MIGRATION_DIRTY_DESCRIPTION=Wir haben festgestellt, dass Sie Ansichten in dieser Anwendung bereits Rollen zugeordnet haben. Wenn Sie eine Anpassung anlegen m\u00F6chten, m\u00FCssen Sie diese Ansichten in die Anpassung migrieren.\nNach der Migration ist jede Ansicht, die einer Rolle zugeordnet war, in einer Anpassung enthalten.\n\nSie haben ungesicherte UI-\u00C4nderungen. Diese werden vor der Migration verworfen.
294
+ DAC_DIALOG_MIGRATION_SUCCESSFULL_DESCRIPTION=Die Ansichten wurden erfolgreich migriert.\nSie k\u00F6nnen nun zu den angelegten Anpassungen wechseln und sie \u00FCberpr\u00FCfen.
295
+ DAC_DIALOG_MIGRATION_ERROR_DESCRIPTION=W\u00E4hrend der Migration ist ein Fehler aufgetreten. Bitte versuchen Sie es sp\u00E4ter erneut, oder wenden Sie sich an Ihren Administrator.
291
296
  MANAGE_ADAPTATIONS_DIALOG_HEADER=Anpassungen verwalten
292
297
  BTN_MANAGE_APP_CTX=Anpassungen verwalten
293
298
  TXT_MANAGE_APP_CTX=Anpassungen anzeigen, bearbeiten oder l\u00F6schen
@@ -306,7 +311,7 @@ MENU_BTN_SHARE=Teilen
306
311
  MENU_BTN_EDIT=Bearbeiten
307
312
  MAA_DIALOG_DELETE=L\u00F6schen
308
313
  TXT_SELECT_FIRST_PRIO=Vor allen einf\u00FCgen (Priorit\u00E4t '1')
309
- TXT_SELECT_PRIO=Nach ''{0}'' einf\u00FCgen (Priorit\u00E4t''{1}'')
314
+ TXT_SELECT_PRIO=Nach ''{0}'' einf\u00FCgen (Priorit\u00E4t ''{1}'')
310
315
  SAVE_AS_DIALOG_PLACEHOLDER_DESCRIPTION_TEXT=Beschreibung eingeben
311
316
  TXT_TABLE_CONTEXT_CELL_ROLE=Rolle
312
317
  TXT_TABLE_CONTEXT_CELL_ROLES=Rollen