@sap-ux/preview-middleware 0.13.20 → 0.13.21

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.
@@ -1,181 +1,181 @@
1
- "use strict";
2
-
3
- sap.ui.define(["sap/m/MessageToast", "sap/ui/core/library", "sap/ui/model/json/JSONModel", "sap/ui/fl/Utils", "../api-handler", "./BaseDialog.controller"], function (MessageToast, sap_ui_core_library, JSONModel, Utils, ___api_handler, __BaseDialog) {
4
- "use strict";
5
-
6
- function _interopRequireDefault(obj) {
7
- return obj && obj.__esModule && typeof obj.default !== "undefined" ? obj.default : obj;
8
- }
9
- /** sap.ui.core */
10
- const ValueState = sap_ui_core_library["ValueState"];
11
- /** sap.ui.base */
12
- const getExistingController = ___api_handler["getExistingController"];
13
- const getManifestAppdescr = ___api_handler["getManifestAppdescr"];
14
- const readControllers = ___api_handler["readControllers"];
15
- const writeChange = ___api_handler["writeChange"];
16
- const writeController = ___api_handler["writeController"];
17
- const BaseDialog = _interopRequireDefault(__BaseDialog);
18
- /**
19
- * @namespace open.ux.preview.client.adp.controllers
20
- */
21
- const ControllerExtension = BaseDialog.extend("open.ux.preview.client.adp.controllers.ControllerExtension", {
22
- constructor: function _constructor(name, overlays, rta) {
23
- BaseDialog.prototype.constructor.call(this, name);
24
- this.rta = rta;
25
- this.overlays = overlays;
26
- this.model = new JSONModel();
27
- },
28
- setup: async function _setup(dialog) {
29
- this.dialog = dialog;
30
- this.setEscapeHandler();
31
- await this.buildDialogData();
32
- this.dialog.setModel(this.model);
33
- this.dialog.open();
34
- },
35
- onControllerNameInputChange: function _onControllerNameInputChange(event) {
36
- const input = event.getSource();
37
- const beginBtn = this.dialog.getBeginButton();
38
- const controllerName = input.getValue();
39
- const controllerList = this.model.getProperty('/controllersList');
40
- const updateDialogState = function (valueState) {
41
- let valueStateText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
42
- input.setValueState(valueState).setValueStateText(valueStateText);
43
- beginBtn.setEnabled(valueState === ValueState.Success);
44
- };
45
- if (controllerName.length <= 0) {
46
- updateDialogState(ValueState.None);
47
- this.model.setProperty('/newControllerName', null);
48
- return;
49
- }
50
- const fileExists = controllerList.some(f => f.controllerName === `${controllerName}.js`);
51
- if (fileExists) {
52
- updateDialogState(ValueState.Error, 'Enter a different name. The controller name that you entered already exists in your project.');
53
- return;
54
- }
55
- const isValidName = /^[a-zA-Z_][a-zA-Z0-9_-]*$/.test(controllerName);
56
- if (!isValidName) {
57
- updateDialogState(ValueState.Error, 'The controller name cannot contain white spaces or special characters.');
58
- return;
59
- }
60
- if (controllerName.length > 64) {
61
- updateDialogState(ValueState.Error, 'A controller file name cannot contain more than 64 characters.');
62
- return;
63
- }
64
- updateDialogState(ValueState.Success);
65
- this.model.setProperty('/newControllerName', controllerName);
66
- },
67
- onCreateBtnPress: async function _onCreateBtnPress(event) {
68
- const source = event.getSource();
69
- const controllerExists = this.model.getProperty('/controllerExists');
70
- if (!controllerExists) {
71
- source.setEnabled(false);
72
- const controllerName = this.model.getProperty('/newControllerName');
73
- const viewId = this.model.getProperty('/viewId');
74
- await this.createNewController(controllerName, viewId);
75
- } else {
76
- const controllerPath = this.model.getProperty('/controllerPath');
77
- window.open(`vscode://file${controllerPath}`);
78
- }
79
- this.handleDialogClose();
80
- },
81
- buildDialogData: async function _buildDialogData() {
82
- const selectorId = this.overlays.getId();
83
- const overlayControl = sap.ui.getCore().byId(selectorId);
84
- const {
85
- controllerName,
86
- viewId
87
- } = this.getControllerInfo(overlayControl);
88
- const {
89
- controllerExists,
90
- controllerPath,
91
- controllerPathFromRoot,
92
- isRunningInBAS
93
- } = await this.getExistingController(controllerName);
94
- if (controllerExists) {
95
- this.updateModelForExistingController(controllerExists, controllerPath, controllerPathFromRoot, isRunningInBAS);
96
- } else {
97
- this.updateModelForNewController(viewId);
98
- await this.getControllers();
99
- }
100
- },
101
- getControllerInfo: function _getControllerInfo(overlayControl) {
102
- const control = overlayControl.getElement();
103
- const view = Utils.getViewForControl(control);
104
- const controllerName = view.getController().getMetadata().getName();
105
- const viewId = view.getId();
106
- return {
107
- controllerName,
108
- viewId
109
- };
110
- },
111
- updateModelForExistingController: function _updateModelForExistingController(controllerExists, controllerPath, controllerPathFromRoot, isRunningInBAS) {
112
- this.model.setProperty('/controllerExists', controllerExists);
113
- this.model.setProperty('/controllerPath', controllerPath);
114
- this.model.setProperty('/controllerPathFromRoot', controllerPathFromRoot);
115
- const content = this.dialog.getContent();
116
- const form = content[0];
117
- form.setVisible(false);
118
- const messageForm = content[1];
119
- messageForm.setVisible(true);
120
- if (isRunningInBAS) {
121
- this.dialog.getBeginButton().setVisible(false);
122
- } else {
123
- this.dialog.getBeginButton().setText('Open in VS Code').setEnabled(true);
124
- }
125
- this.dialog.getEndButton().setText('Close');
126
- },
127
- updateModelForNewController: function _updateModelForNewController(viewId) {
128
- this.model.setProperty('/viewId', viewId);
129
- },
130
- getExistingController: async function _getExistingController(controllerName) {
131
- try {
132
- const data = await getExistingController(controllerName);
133
- return data;
134
- } catch (e) {
135
- MessageToast.show(e.message, {
136
- duration: 5000
137
- });
138
- throw new Error(e.message);
139
- }
140
- },
141
- getControllers: async function _getControllers() {
142
- try {
143
- const {
144
- controllers
145
- } = await readControllers();
146
- this.model.setProperty('/controllersList', controllers);
147
- } catch (e) {
148
- MessageToast.show(e.message, {
149
- duration: 5000
150
- });
151
- throw new Error(e.message);
152
- }
153
- },
154
- createNewController: async function _createNewController(controllerName, viewId) {
155
- try {
156
- const manifest = await getManifestAppdescr();
157
- await writeController({
158
- controllerName,
159
- projectId: manifest.id
160
- });
161
- const controllerRef = {
162
- codeRef: `coding/${controllerName}.js`,
163
- viewId
164
- };
165
- const service = await this.rta.getService('controllerExtension');
166
- const change = await service.add(controllerRef.codeRef, controllerRef.viewId);
167
- change.creation = new Date().toISOString();
168
- await writeChange(change);
169
- MessageToast.show(`Controller extension with name '${controllerName}' was created.`);
170
- } catch (e) {
171
- // We want to update the model incase we have already created a controller file but failed when creating a change file,
172
- // so when the user types the same controller name again he does not get 409 from the server, instead an error is shown in the UI
173
- await this.getControllers();
174
- MessageToast.show(e.message);
175
- throw new Error(e.message);
176
- }
177
- }
178
- });
179
- return ControllerExtension;
1
+ "use strict";
2
+
3
+ sap.ui.define(["sap/m/MessageToast", "sap/ui/core/library", "sap/ui/model/json/JSONModel", "sap/ui/fl/Utils", "../api-handler", "./BaseDialog.controller"], function (MessageToast, sap_ui_core_library, JSONModel, Utils, ___api_handler, __BaseDialog) {
4
+ "use strict";
5
+
6
+ function _interopRequireDefault(obj) {
7
+ return obj && obj.__esModule && typeof obj.default !== "undefined" ? obj.default : obj;
8
+ }
9
+ /** sap.ui.core */
10
+ const ValueState = sap_ui_core_library["ValueState"];
11
+ /** sap.ui.base */
12
+ const getExistingController = ___api_handler["getExistingController"];
13
+ const getManifestAppdescr = ___api_handler["getManifestAppdescr"];
14
+ const readControllers = ___api_handler["readControllers"];
15
+ const writeChange = ___api_handler["writeChange"];
16
+ const writeController = ___api_handler["writeController"];
17
+ const BaseDialog = _interopRequireDefault(__BaseDialog);
18
+ /**
19
+ * @namespace open.ux.preview.client.adp.controllers
20
+ */
21
+ const ControllerExtension = BaseDialog.extend("open.ux.preview.client.adp.controllers.ControllerExtension", {
22
+ constructor: function _constructor(name, overlays, rta) {
23
+ BaseDialog.prototype.constructor.call(this, name);
24
+ this.rta = rta;
25
+ this.overlays = overlays;
26
+ this.model = new JSONModel();
27
+ },
28
+ setup: async function _setup(dialog) {
29
+ this.dialog = dialog;
30
+ this.setEscapeHandler();
31
+ await this.buildDialogData();
32
+ this.dialog.setModel(this.model);
33
+ this.dialog.open();
34
+ },
35
+ onControllerNameInputChange: function _onControllerNameInputChange(event) {
36
+ const input = event.getSource();
37
+ const beginBtn = this.dialog.getBeginButton();
38
+ const controllerName = input.getValue();
39
+ const controllerList = this.model.getProperty('/controllersList');
40
+ const updateDialogState = function (valueState) {
41
+ let valueStateText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
42
+ input.setValueState(valueState).setValueStateText(valueStateText);
43
+ beginBtn.setEnabled(valueState === ValueState.Success);
44
+ };
45
+ if (controllerName.length <= 0) {
46
+ updateDialogState(ValueState.None);
47
+ this.model.setProperty('/newControllerName', null);
48
+ return;
49
+ }
50
+ const fileExists = controllerList.some(f => f.controllerName === `${controllerName}.js`);
51
+ if (fileExists) {
52
+ updateDialogState(ValueState.Error, 'Enter a different name. The controller name that you entered already exists in your project.');
53
+ return;
54
+ }
55
+ const isValidName = /^[a-zA-Z_][a-zA-Z0-9_-]*$/.test(controllerName);
56
+ if (!isValidName) {
57
+ updateDialogState(ValueState.Error, 'The controller name cannot contain white spaces or special characters.');
58
+ return;
59
+ }
60
+ if (controllerName.length > 64) {
61
+ updateDialogState(ValueState.Error, 'A controller file name cannot contain more than 64 characters.');
62
+ return;
63
+ }
64
+ updateDialogState(ValueState.Success);
65
+ this.model.setProperty('/newControllerName', controllerName);
66
+ },
67
+ onCreateBtnPress: async function _onCreateBtnPress(event) {
68
+ const source = event.getSource();
69
+ const controllerExists = this.model.getProperty('/controllerExists');
70
+ if (!controllerExists) {
71
+ source.setEnabled(false);
72
+ const controllerName = this.model.getProperty('/newControllerName');
73
+ const viewId = this.model.getProperty('/viewId');
74
+ await this.createNewController(controllerName, viewId);
75
+ } else {
76
+ const controllerPath = this.model.getProperty('/controllerPath');
77
+ window.open(`vscode://file${controllerPath}`);
78
+ }
79
+ this.handleDialogClose();
80
+ },
81
+ buildDialogData: async function _buildDialogData() {
82
+ const selectorId = this.overlays.getId();
83
+ const overlayControl = sap.ui.getCore().byId(selectorId);
84
+ const {
85
+ controllerName,
86
+ viewId
87
+ } = this.getControllerInfo(overlayControl);
88
+ const {
89
+ controllerExists,
90
+ controllerPath,
91
+ controllerPathFromRoot,
92
+ isRunningInBAS
93
+ } = await this.getExistingController(controllerName);
94
+ if (controllerExists) {
95
+ this.updateModelForExistingController(controllerExists, controllerPath, controllerPathFromRoot, isRunningInBAS);
96
+ } else {
97
+ this.updateModelForNewController(viewId);
98
+ await this.getControllers();
99
+ }
100
+ },
101
+ getControllerInfo: function _getControllerInfo(overlayControl) {
102
+ const control = overlayControl.getElement();
103
+ const view = Utils.getViewForControl(control);
104
+ const controllerName = view.getController().getMetadata().getName();
105
+ const viewId = view.getId();
106
+ return {
107
+ controllerName,
108
+ viewId
109
+ };
110
+ },
111
+ updateModelForExistingController: function _updateModelForExistingController(controllerExists, controllerPath, controllerPathFromRoot, isRunningInBAS) {
112
+ this.model.setProperty('/controllerExists', controllerExists);
113
+ this.model.setProperty('/controllerPath', controllerPath);
114
+ this.model.setProperty('/controllerPathFromRoot', controllerPathFromRoot);
115
+ const content = this.dialog.getContent();
116
+ const form = content[0];
117
+ form.setVisible(false);
118
+ const messageForm = content[1];
119
+ messageForm.setVisible(true);
120
+ if (isRunningInBAS) {
121
+ this.dialog.getBeginButton().setVisible(false);
122
+ } else {
123
+ this.dialog.getBeginButton().setText('Open in VS Code').setEnabled(true);
124
+ }
125
+ this.dialog.getEndButton().setText('Close');
126
+ },
127
+ updateModelForNewController: function _updateModelForNewController(viewId) {
128
+ this.model.setProperty('/viewId', viewId);
129
+ },
130
+ getExistingController: async function _getExistingController(controllerName) {
131
+ try {
132
+ const data = await getExistingController(controllerName);
133
+ return data;
134
+ } catch (e) {
135
+ MessageToast.show(e.message, {
136
+ duration: 5000
137
+ });
138
+ throw new Error(e.message);
139
+ }
140
+ },
141
+ getControllers: async function _getControllers() {
142
+ try {
143
+ const {
144
+ controllers
145
+ } = await readControllers();
146
+ this.model.setProperty('/controllersList', controllers);
147
+ } catch (e) {
148
+ MessageToast.show(e.message, {
149
+ duration: 5000
150
+ });
151
+ throw new Error(e.message);
152
+ }
153
+ },
154
+ createNewController: async function _createNewController(controllerName, viewId) {
155
+ try {
156
+ const manifest = await getManifestAppdescr();
157
+ await writeController({
158
+ controllerName,
159
+ projectId: manifest.id
160
+ });
161
+ const controllerRef = {
162
+ codeRef: `coding/${controllerName}.js`,
163
+ viewId
164
+ };
165
+ const service = await this.rta.getService('controllerExtension');
166
+ const change = await service.add(controllerRef.codeRef, controllerRef.viewId);
167
+ change.creation = new Date().toISOString();
168
+ await writeChange(change);
169
+ MessageToast.show(`Controller extension with name '${controllerName}' was created.`);
170
+ } catch (e) {
171
+ // We want to update the model incase we have already created a controller file but failed when creating a change file,
172
+ // so when the user types the same controller name again he does not get 409 from the server, instead an error is shown in the UI
173
+ await this.getControllers();
174
+ MessageToast.show(e.message);
175
+ throw new Error(e.message);
176
+ }
177
+ }
178
+ });
179
+ return ControllerExtension;
180
180
  });
181
181
  //# sourceMappingURL=ControllerExtension.controller.js.map
@@ -1,92 +1,92 @@
1
- "use strict";
2
-
3
- sap.ui.define(["sap/m/MessageToast", "sap/ui/model/json/JSONModel", "../api-handler", "./BaseDialog.controller", "../utils"], function (MessageToast, JSONModel, ___api_handler, __BaseDialog, ___utils) {
4
- "use strict";
5
-
6
- function _interopRequireDefault(obj) {
7
- return obj && obj.__esModule && typeof obj.default !== "undefined" ? obj.default : obj;
8
- }
9
- const getFragments = ___api_handler["getFragments"];
10
- const BaseDialog = _interopRequireDefault(__BaseDialog);
11
- const notifyUser = ___utils["notifyUser"];
12
- /**
13
- * @namespace open.ux.preview.client.adp.controllers
14
- */
15
- const ExtensionPoint = BaseDialog.extend("open.ux.preview.client.adp.controllers.ExtensionPoint", {
16
- constructor: function _constructor(name, _overlays, rta, data) {
17
- BaseDialog.prototype.constructor.call(this, name);
18
- this.model = new JSONModel();
19
- this.data = data;
20
- this.rta = rta;
21
- },
22
- setup: async function _setup(dialog) {
23
- this.dialog = dialog;
24
- this.setEscapeHandler();
25
- await this.buildDialogData();
26
- this.dialog.setModel(this.model);
27
- this.dialog.open();
28
- },
29
- onCreateBtnPress: function _onCreateBtnPress(event) {
30
- const source = event.getSource();
31
- source.setEnabled(false);
32
- const fragmentName = this.model.getProperty('/newFragmentName');
33
- this.createExtensionPointFragmentChange(fragmentName);
34
- notifyUser(`Note: The '${fragmentName}.fragment.xml' fragment will be created once you save the change.`, 8000);
35
- this.handleDialogClose();
36
- },
37
- onExtensionPointHandler: function _onExtensionPointHandler(event) {
38
- const source = event.getSource();
39
- const selectedItem = source.getSelectedItem();
40
- let extensionPointName = '';
41
- if (selectedItem) {
42
- extensionPointName = selectedItem.getText();
43
- }
44
- this.model.setProperty('/extensionPointName', extensionPointName);
45
- },
46
- buildDialogData: async function _buildDialogData() {
47
- const name = this.data?.name;
48
- if (name) {
49
- const extensionPointList = [{
50
- key: 0,
51
- value: name
52
- }];
53
- this.updateModel(name, 0, extensionPointList, false);
54
- } else {
55
- const extensionPointList = this.data.info.map((v, idx) => {
56
- return {
57
- key: idx,
58
- value: v.name
59
- };
60
- });
61
- const enabled = extensionPointList.length > 1;
62
- this.updateModel(extensionPointList[0].value, 0, extensionPointList, enabled);
63
- }
64
- try {
65
- const {
66
- fragments
67
- } = await getFragments();
68
- this.model.setProperty('/fragmentList', fragments);
69
- } catch (e) {
70
- MessageToast.show(e.message);
71
- throw new Error(e.message);
72
- }
73
- },
74
- updateModel: function _updateModel(name, key, list, enabled) {
75
- this.model.setProperty('/extensionPointName', name);
76
- this.model.setProperty('/extensionPointKey', key);
77
- this.model.setProperty('/extensionPointList', list);
78
- this.model.setProperty('/extensionListEnabled', enabled);
79
- },
80
- createExtensionPointFragmentChange: function _createExtensionPointFragmentChange(fragmentName) {
81
- const extensionPointName = this.model.getProperty('/extensionPointName');
82
- const modifiedValue = {
83
- fragment: `<core:FragmentDefinition xmlns:core='sap.ui.core'></core:FragmentDefinition>`,
84
- fragmentPath: `fragments/${fragmentName}.fragment.xml`,
85
- extensionPointName
86
- };
87
- this.data.deferred.resolve(modifiedValue);
88
- }
89
- });
90
- return ExtensionPoint;
1
+ "use strict";
2
+
3
+ sap.ui.define(["sap/m/MessageToast", "sap/ui/model/json/JSONModel", "../api-handler", "./BaseDialog.controller", "../utils"], function (MessageToast, JSONModel, ___api_handler, __BaseDialog, ___utils) {
4
+ "use strict";
5
+
6
+ function _interopRequireDefault(obj) {
7
+ return obj && obj.__esModule && typeof obj.default !== "undefined" ? obj.default : obj;
8
+ }
9
+ const getFragments = ___api_handler["getFragments"];
10
+ const BaseDialog = _interopRequireDefault(__BaseDialog);
11
+ const notifyUser = ___utils["notifyUser"];
12
+ /**
13
+ * @namespace open.ux.preview.client.adp.controllers
14
+ */
15
+ const ExtensionPoint = BaseDialog.extend("open.ux.preview.client.adp.controllers.ExtensionPoint", {
16
+ constructor: function _constructor(name, _overlays, rta, data) {
17
+ BaseDialog.prototype.constructor.call(this, name);
18
+ this.model = new JSONModel();
19
+ this.data = data;
20
+ this.rta = rta;
21
+ },
22
+ setup: async function _setup(dialog) {
23
+ this.dialog = dialog;
24
+ this.setEscapeHandler();
25
+ await this.buildDialogData();
26
+ this.dialog.setModel(this.model);
27
+ this.dialog.open();
28
+ },
29
+ onCreateBtnPress: function _onCreateBtnPress(event) {
30
+ const source = event.getSource();
31
+ source.setEnabled(false);
32
+ const fragmentName = this.model.getProperty('/newFragmentName');
33
+ this.createExtensionPointFragmentChange(fragmentName);
34
+ notifyUser(`Note: The '${fragmentName}.fragment.xml' fragment will be created once you save the change.`, 8000);
35
+ this.handleDialogClose();
36
+ },
37
+ onExtensionPointHandler: function _onExtensionPointHandler(event) {
38
+ const source = event.getSource();
39
+ const selectedItem = source.getSelectedItem();
40
+ let extensionPointName = '';
41
+ if (selectedItem) {
42
+ extensionPointName = selectedItem.getText();
43
+ }
44
+ this.model.setProperty('/extensionPointName', extensionPointName);
45
+ },
46
+ buildDialogData: async function _buildDialogData() {
47
+ const name = this.data?.name;
48
+ if (name) {
49
+ const extensionPointList = [{
50
+ key: 0,
51
+ value: name
52
+ }];
53
+ this.updateModel(name, 0, extensionPointList, false);
54
+ } else {
55
+ const extensionPointList = this.data.info.map((v, idx) => {
56
+ return {
57
+ key: idx,
58
+ value: v.name
59
+ };
60
+ });
61
+ const enabled = extensionPointList.length > 1;
62
+ this.updateModel(extensionPointList[0].value, 0, extensionPointList, enabled);
63
+ }
64
+ try {
65
+ const {
66
+ fragments
67
+ } = await getFragments();
68
+ this.model.setProperty('/fragmentList', fragments);
69
+ } catch (e) {
70
+ MessageToast.show(e.message);
71
+ throw new Error(e.message);
72
+ }
73
+ },
74
+ updateModel: function _updateModel(name, key, list, enabled) {
75
+ this.model.setProperty('/extensionPointName', name);
76
+ this.model.setProperty('/extensionPointKey', key);
77
+ this.model.setProperty('/extensionPointList', list);
78
+ this.model.setProperty('/extensionListEnabled', enabled);
79
+ },
80
+ createExtensionPointFragmentChange: function _createExtensionPointFragmentChange(fragmentName) {
81
+ const extensionPointName = this.model.getProperty('/extensionPointName');
82
+ const modifiedValue = {
83
+ fragment: `<core:FragmentDefinition xmlns:core='sap.ui.core'></core:FragmentDefinition>`,
84
+ fragmentPath: `fragments/${fragmentName}.fragment.xml`,
85
+ extensionPointName
86
+ };
87
+ this.data.deferred.resolve(modifiedValue);
88
+ }
89
+ });
90
+ return ExtensionPoint;
91
91
  });
92
92
  //# sourceMappingURL=ExtensionPoint.controller.js.map