@sap-ux/preview-middleware 0.16.164 → 0.16.166
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/dist/client/adp/api-handler.js +1 -12
- package/dist/client/adp/api-handler.ts +10 -17
- package/dist/client/adp/controllers/FileExistsDialog.controller.js +1 -4
- package/dist/client/adp/controllers/FileExistsDialog.controller.ts +1 -7
- package/dist/client/adp/quick-actions/common/add-new-annotation-file.js +27 -13
- package/dist/client/adp/quick-actions/common/add-new-annotation-file.ts +30 -19
- package/dist/client/adp/ui/FileExistsDialog.fragment.xml +14 -4
- package/dist/client/cpe/quick-actions/quick-action-service.js +4 -0
- package/dist/client/cpe/quick-actions/quick-action-service.ts +6 -1
- package/dist/client/messagebundle.properties +6 -5
- package/dist/client/thirdparty/@sap-ux-private/control-property-editor-common.js +2 -1
- package/package.json +4 -4
|
@@ -111,17 +111,7 @@ sap.ui.define(["../utils/error"], function (___utils_error) {
|
|
|
111
111
|
/**
|
|
112
112
|
* Writes a new annotation file to the project's workspace
|
|
113
113
|
*
|
|
114
|
-
* @
|
|
115
|
-
* @returns Generic Promise<T>
|
|
116
|
-
*/
|
|
117
|
-
async function writeAnnotationFile(data) {
|
|
118
|
-
return request(ApiEndpoints.ANNOTATION_FILE, RequestMethod.POST, data);
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
/**
|
|
122
|
-
* Writes a new annotation file to the project's workspace
|
|
123
|
-
*
|
|
124
|
-
* @returns Generic Promise<DataSoruceAnnotationMap>
|
|
114
|
+
* @returns Generic Promise<DataSourceAnnotationMap>
|
|
125
115
|
*/
|
|
126
116
|
async function getDataSourceAnnotationFileMap() {
|
|
127
117
|
return request(ApiEndpoints.ANNOTATION_FILE, RequestMethod.GET);
|
|
@@ -157,7 +147,6 @@ sap.ui.define(["../utils/error"], function (___utils_error) {
|
|
|
157
147
|
__exports.getManifestAppdescr = getManifestAppdescr;
|
|
158
148
|
__exports.readControllers = readControllers;
|
|
159
149
|
__exports.writeController = writeController;
|
|
160
|
-
__exports.writeAnnotationFile = writeAnnotationFile;
|
|
161
150
|
__exports.getDataSourceAnnotationFileMap = getDataSourceAnnotationFileMap;
|
|
162
151
|
__exports.getExistingController = getExistingController;
|
|
163
152
|
__exports.writeChange = writeChange;
|
|
@@ -34,17 +34,20 @@ export interface CodeExtResponse {
|
|
|
34
34
|
isRunningInBAS: boolean;
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
-
export interface
|
|
37
|
+
export interface AnnotationFileDetails {
|
|
38
38
|
annotationExistsInWS: boolean;
|
|
39
39
|
annotationPath: string;
|
|
40
40
|
annotationPathFromRoot: string;
|
|
41
|
-
isRunningInBAS: boolean;
|
|
42
41
|
}
|
|
43
42
|
|
|
44
|
-
interface
|
|
45
|
-
[key: string]: { serviceUrl: string;
|
|
43
|
+
export interface AnnotationDataSourceMap {
|
|
44
|
+
[key: string]: { serviceUrl: string; annotationDetails: AnnotationFileDetails };
|
|
46
45
|
}
|
|
47
46
|
|
|
47
|
+
export interface AnnotationDataSourceResponse {
|
|
48
|
+
isRunningInBAS: boolean;
|
|
49
|
+
annotationDataSourceMap: AnnotationDataSourceMap;
|
|
50
|
+
}
|
|
48
51
|
export interface ControllersResponse {
|
|
49
52
|
controllers: Controllers;
|
|
50
53
|
message: string;
|
|
@@ -154,20 +157,10 @@ export async function writeController<T>(data: T): Promise<T> {
|
|
|
154
157
|
/**
|
|
155
158
|
* Writes a new annotation file to the project's workspace
|
|
156
159
|
*
|
|
157
|
-
* @
|
|
158
|
-
* @returns Generic Promise<T>
|
|
159
|
-
*/
|
|
160
|
-
export async function writeAnnotationFile<T>(data: T): Promise<T> {
|
|
161
|
-
return request<T>(ApiEndpoints.ANNOTATION_FILE, RequestMethod.POST, data);
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
/**
|
|
165
|
-
* Writes a new annotation file to the project's workspace
|
|
166
|
-
*
|
|
167
|
-
* @returns Generic Promise<DataSoruceAnnotationMap>
|
|
160
|
+
* @returns Generic Promise<DataSourceAnnotationMap>
|
|
168
161
|
*/
|
|
169
|
-
export async function getDataSourceAnnotationFileMap(): Promise<
|
|
170
|
-
return request<
|
|
162
|
+
export async function getDataSourceAnnotationFileMap(): Promise<AnnotationDataSourceResponse> {
|
|
163
|
+
return request<AnnotationDataSourceResponse>(ApiEndpoints.ANNOTATION_FILE, RequestMethod.GET);
|
|
171
164
|
}
|
|
172
165
|
|
|
173
166
|
/**
|
|
@@ -24,6 +24,7 @@ sap.ui.define(["sap/ui/model/json/JSONModel", "./BaseDialog.controller", "../../
|
|
|
24
24
|
*/
|
|
25
25
|
setup: async function _setup(dialog) {
|
|
26
26
|
this.dialog = dialog;
|
|
27
|
+
this.setEscapeHandler();
|
|
27
28
|
this.model.setProperty('/filePath', this.options.filePath);
|
|
28
29
|
this.model.setProperty('/filePathFromRoot', this.options.fileName);
|
|
29
30
|
this.model.setProperty('/isRunningInBAS', this.options.isRunningInBAS);
|
|
@@ -43,10 +44,6 @@ sap.ui.define(["sap/ui/model/json/JSONModel", "./BaseDialog.controller", "../../
|
|
|
43
44
|
window.open(`vscode://file${annotationPath}`);
|
|
44
45
|
this.handleDialogClose();
|
|
45
46
|
},
|
|
46
|
-
handleDialogClose: function _handleDialogClose() {
|
|
47
|
-
this.dialog.close();
|
|
48
|
-
this.dialog.destroy();
|
|
49
|
-
},
|
|
50
47
|
/**
|
|
51
48
|
* Builds data that is used in the dialog.
|
|
52
49
|
*/
|
|
@@ -26,7 +26,6 @@ type FileExistModel = JSONModel & {
|
|
|
26
26
|
export default class FileExistsDialog extends BaseDialog<FileExistModel> {
|
|
27
27
|
private options: FileExistsDialogOptions;
|
|
28
28
|
public model: JSONModel;
|
|
29
|
-
private readonly _name: string;
|
|
30
29
|
constructor(name: string, options: FileExistsDialogOptions) {
|
|
31
30
|
super(name);
|
|
32
31
|
this.model = new JSONModel();
|
|
@@ -40,7 +39,7 @@ export default class FileExistsDialog extends BaseDialog<FileExistModel> {
|
|
|
40
39
|
*/
|
|
41
40
|
async setup(dialog: Dialog): Promise<void> {
|
|
42
41
|
this.dialog = dialog;
|
|
43
|
-
|
|
42
|
+
this.setEscapeHandler();
|
|
44
43
|
this.model.setProperty('/filePath', this.options.filePath);
|
|
45
44
|
this.model.setProperty('/filePathFromRoot', this.options.fileName);
|
|
46
45
|
this.model.setProperty('/isRunningInBAS', this.options.isRunningInBAS);
|
|
@@ -63,11 +62,6 @@ export default class FileExistsDialog extends BaseDialog<FileExistModel> {
|
|
|
63
62
|
this.handleDialogClose();
|
|
64
63
|
}
|
|
65
64
|
|
|
66
|
-
handleDialogClose() {
|
|
67
|
-
this.dialog.close();
|
|
68
|
-
this.dialog.destroy();
|
|
69
|
-
}
|
|
70
|
-
|
|
71
65
|
/**
|
|
72
66
|
* Builds data that is used in the dialog.
|
|
73
67
|
*/
|
|
@@ -19,6 +19,7 @@ sap.ui.define([
|
|
|
19
19
|
const getUi5Version = _____utils_version['getUi5Version'];
|
|
20
20
|
const isLowerThanMinimalUi5Version = _____utils_version['isLowerThanMinimalUi5Version'];
|
|
21
21
|
const ADD_NEW_ANNOTATION_FILE = 'add-new-annotation-file';
|
|
22
|
+
const ADD_NEW_ANNOTATION_FILE_TITLE = 'QUICK_ACTION_ADD_NEW_ANNOTATION_FILE';
|
|
22
23
|
class AddNewAnnotationFile extends QuickActionDefinitionBase {
|
|
23
24
|
children = [];
|
|
24
25
|
kind = NESTED_QUICK_ACTION_KIND;
|
|
@@ -29,7 +30,7 @@ sap.ui.define([
|
|
|
29
30
|
return `${ this.context.key }-${ this.type }`;
|
|
30
31
|
}
|
|
31
32
|
constructor(context) {
|
|
32
|
-
super(ADD_NEW_ANNOTATION_FILE, NESTED_QUICK_ACTION_KIND, '
|
|
33
|
+
super(ADD_NEW_ANNOTATION_FILE, NESTED_QUICK_ACTION_KIND, '', context, [DIALOG_ENABLEMENT_VALIDATOR]);
|
|
33
34
|
this.context = context;
|
|
34
35
|
}
|
|
35
36
|
async initialize() {
|
|
@@ -42,34 +43,47 @@ sap.ui.define([
|
|
|
42
43
|
this.isApplicable = false;
|
|
43
44
|
return;
|
|
44
45
|
}
|
|
45
|
-
|
|
46
|
-
|
|
46
|
+
this.annotationDataSourceData = await getDataSourceAnnotationFileMap();
|
|
47
|
+
const {annotationDataSourceMap} = this.annotationDataSourceData;
|
|
48
|
+
if (!Object.keys(this.annotationDataSourceData.annotationDataSourceMap).length) {
|
|
47
49
|
throw new Error('No data sources found in the manifest');
|
|
48
50
|
}
|
|
49
|
-
for (const key in
|
|
50
|
-
if (Object.prototype.hasOwnProperty.call(
|
|
51
|
-
const source =
|
|
51
|
+
for (const key in annotationDataSourceMap) {
|
|
52
|
+
if (Object.prototype.hasOwnProperty.call(annotationDataSourceMap, key)) {
|
|
53
|
+
const source = annotationDataSourceMap[key];
|
|
54
|
+
const {annotationExistsInWS} = source.annotationDetails;
|
|
52
55
|
this.children.push({
|
|
53
56
|
enabled: true,
|
|
54
|
-
label:
|
|
57
|
+
label: annotationExistsInWS ? this.context.resourceBundle.getText('SHOW_ANNOTATION_FILE', [key]) : this.context.resourceBundle.getText('ADD_ANNOTATION_FILE', [key]),
|
|
55
58
|
children: []
|
|
56
59
|
});
|
|
57
60
|
}
|
|
58
61
|
}
|
|
59
62
|
}
|
|
63
|
+
get textKey() {
|
|
64
|
+
let result = ADD_NEW_ANNOTATION_FILE_TITLE;
|
|
65
|
+
const dataSourceIds = Object.keys(this.annotationDataSourceData.annotationDataSourceMap);
|
|
66
|
+
if (dataSourceIds.length === 1) {
|
|
67
|
+
const details = this.annotationDataSourceData.annotationDataSourceMap[dataSourceIds[0]];
|
|
68
|
+
if (details.annotationDetails.annotationExistsInWS) {
|
|
69
|
+
result = 'QUICK_ACTION_SHOW_ANNOTATION_FILE';
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return result;
|
|
73
|
+
}
|
|
60
74
|
async execute(path) {
|
|
75
|
+
const {annotationDataSourceMap, isRunningInBAS} = this.annotationDataSourceData;
|
|
61
76
|
const index = Number(path);
|
|
62
77
|
if (index >= 0) {
|
|
63
|
-
const
|
|
64
|
-
const
|
|
65
|
-
const dataSource = dataSourceAnnotationFileMap?.[dataSourceId];
|
|
78
|
+
const dataSourceId = Object.keys(annotationDataSourceMap)[index];
|
|
79
|
+
const dataSource = annotationDataSourceMap[dataSourceId];
|
|
66
80
|
if (dataSource?.annotationDetails.annotationExistsInWS) {
|
|
67
81
|
const annotationFileDetails = dataSource.annotationDetails;
|
|
68
82
|
const {annotationPath, annotationPathFromRoot} = annotationFileDetails;
|
|
69
83
|
await DialogFactory.createDialog(OverlayRegistry.getOverlay(this.context.view), this.context.rta, DialogNames.FILE_EXISTS, undefined, {
|
|
70
84
|
fileName: annotationPathFromRoot,
|
|
71
85
|
filePath: annotationPath,
|
|
72
|
-
isRunningInBAS:
|
|
86
|
+
isRunningInBAS: isRunningInBAS
|
|
73
87
|
});
|
|
74
88
|
} else if (dataSource) {
|
|
75
89
|
const timestamp = Date.now();
|
|
@@ -82,7 +96,7 @@ sap.ui.define([
|
|
|
82
96
|
annotationsInsertPosition: 'END',
|
|
83
97
|
dataSource: {
|
|
84
98
|
[annotationNameSpace]: {
|
|
85
|
-
uri:
|
|
99
|
+
uri: `annotations/${ annotationFileName }`,
|
|
86
100
|
type: 'ODataAnnotation'
|
|
87
101
|
}
|
|
88
102
|
}
|
|
@@ -106,7 +120,7 @@ sap.ui.define([
|
|
|
106
120
|
kind: NESTED_QUICK_ACTION_KIND,
|
|
107
121
|
id: this.id,
|
|
108
122
|
enabled: this.isApplicable,
|
|
109
|
-
title: this.context.resourceBundle.getText(
|
|
123
|
+
title: this.context.resourceBundle.getText(this.textKey),
|
|
110
124
|
children: this.children
|
|
111
125
|
};
|
|
112
126
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import FlexCommand from 'sap/ui/rta/command/FlexCommand';
|
|
2
2
|
|
|
3
3
|
import { QuickActionContext, NestedQuickActionDefinition } from '../../../cpe/quick-actions/quick-action-definition';
|
|
4
|
+
import type { AnnotationDataSourceResponse } from '../../api-handler';
|
|
4
5
|
import { getDataSourceAnnotationFileMap } from '../../api-handler';
|
|
5
6
|
import {
|
|
6
7
|
NESTED_QUICK_ACTION_KIND,
|
|
@@ -15,6 +16,7 @@ import CommandFactory from 'sap/ui/rta/command/CommandFactory';
|
|
|
15
16
|
import { getUi5Version, isLowerThanMinimalUi5Version } from '../../../utils/version';
|
|
16
17
|
|
|
17
18
|
export const ADD_NEW_ANNOTATION_FILE = 'add-new-annotation-file';
|
|
19
|
+
const ADD_NEW_ANNOTATION_FILE_TITLE = 'QUICK_ACTION_ADD_NEW_ANNOTATION_FILE';
|
|
18
20
|
|
|
19
21
|
/**
|
|
20
22
|
* Add New Annotation File.
|
|
@@ -31,10 +33,9 @@ export class AddNewAnnotationFile
|
|
|
31
33
|
public get id(): string {
|
|
32
34
|
return `${this.context.key}-${this.type}`;
|
|
33
35
|
}
|
|
36
|
+
private annotationDataSourceData: AnnotationDataSourceResponse;
|
|
34
37
|
constructor(protected readonly context: QuickActionContext) {
|
|
35
|
-
super(ADD_NEW_ANNOTATION_FILE, NESTED_QUICK_ACTION_KIND, '
|
|
36
|
-
DIALOG_ENABLEMENT_VALIDATOR
|
|
37
|
-
]);
|
|
38
|
+
super(ADD_NEW_ANNOTATION_FILE, NESTED_QUICK_ACTION_KIND, '', context, [DIALOG_ENABLEMENT_VALIDATOR]);
|
|
38
39
|
}
|
|
39
40
|
|
|
40
41
|
async initialize(): Promise<void> {
|
|
@@ -43,32 +44,42 @@ export class AddNewAnnotationFile
|
|
|
43
44
|
this.isApplicable = false;
|
|
44
45
|
return;
|
|
45
46
|
}
|
|
46
|
-
|
|
47
|
-
|
|
47
|
+
this.annotationDataSourceData = await getDataSourceAnnotationFileMap();
|
|
48
|
+
const { annotationDataSourceMap } = this.annotationDataSourceData;
|
|
49
|
+
if (!Object.keys(this.annotationDataSourceData.annotationDataSourceMap).length) {
|
|
48
50
|
throw new Error('No data sources found in the manifest');
|
|
49
51
|
}
|
|
50
|
-
for (const key in
|
|
51
|
-
if (Object.prototype.hasOwnProperty.call(
|
|
52
|
-
const source =
|
|
52
|
+
for (const key in annotationDataSourceMap) {
|
|
53
|
+
if (Object.prototype.hasOwnProperty.call(annotationDataSourceMap, key)) {
|
|
54
|
+
const source = annotationDataSourceMap[key];
|
|
55
|
+
const { annotationExistsInWS } = source.annotationDetails;
|
|
53
56
|
this.children.push({
|
|
54
57
|
enabled: true,
|
|
55
|
-
label:
|
|
58
|
+
label: annotationExistsInWS
|
|
56
59
|
? this.context.resourceBundle.getText('SHOW_ANNOTATION_FILE', [key])
|
|
57
|
-
: this.context.resourceBundle.getText('
|
|
60
|
+
: this.context.resourceBundle.getText('ADD_ANNOTATION_FILE', [key]),
|
|
58
61
|
children: []
|
|
59
62
|
});
|
|
60
63
|
}
|
|
61
64
|
}
|
|
62
65
|
}
|
|
66
|
+
protected get textKey() {
|
|
67
|
+
let result = ADD_NEW_ANNOTATION_FILE_TITLE;
|
|
68
|
+
const dataSourceIds = Object.keys(this.annotationDataSourceData.annotationDataSourceMap);
|
|
69
|
+
if (dataSourceIds.length === 1) {
|
|
70
|
+
const details = this.annotationDataSourceData.annotationDataSourceMap[dataSourceIds[0]];
|
|
71
|
+
if (details.annotationDetails.annotationExistsInWS) {
|
|
72
|
+
result = 'QUICK_ACTION_SHOW_ANNOTATION_FILE';
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return result;
|
|
76
|
+
}
|
|
63
77
|
async execute(path: string): Promise<FlexCommand[]> {
|
|
78
|
+
const { annotationDataSourceMap, isRunningInBAS } = this.annotationDataSourceData;
|
|
64
79
|
const index = Number(path);
|
|
65
80
|
if (index >= 0) {
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
// So refresh would be required for the cache to be updated.
|
|
69
|
-
const dataSourceAnnotationFileMap = await getDataSourceAnnotationFileMap();
|
|
70
|
-
const dataSourceId = Object.keys(dataSourceAnnotationFileMap)[index];
|
|
71
|
-
const dataSource = dataSourceAnnotationFileMap?.[dataSourceId];
|
|
81
|
+
const dataSourceId = Object.keys(annotationDataSourceMap)[index];
|
|
82
|
+
const dataSource = annotationDataSourceMap[dataSourceId];
|
|
72
83
|
if (dataSource?.annotationDetails.annotationExistsInWS) {
|
|
73
84
|
const annotationFileDetails = dataSource.annotationDetails;
|
|
74
85
|
const { annotationPath, annotationPathFromRoot } = annotationFileDetails;
|
|
@@ -80,7 +91,7 @@ export class AddNewAnnotationFile
|
|
|
80
91
|
{
|
|
81
92
|
fileName: annotationPathFromRoot,
|
|
82
93
|
filePath: annotationPath,
|
|
83
|
-
isRunningInBAS:
|
|
94
|
+
isRunningInBAS: isRunningInBAS
|
|
84
95
|
}
|
|
85
96
|
);
|
|
86
97
|
}
|
|
@@ -99,7 +110,7 @@ export class AddNewAnnotationFile
|
|
|
99
110
|
annotationsInsertPosition: 'END',
|
|
100
111
|
dataSource: {
|
|
101
112
|
[annotationNameSpace]: {
|
|
102
|
-
uri:
|
|
113
|
+
uri: `annotations/${annotationFileName}`,
|
|
103
114
|
type: 'ODataAnnotation'
|
|
104
115
|
}
|
|
105
116
|
}
|
|
@@ -134,7 +145,7 @@ export class AddNewAnnotationFile
|
|
|
134
145
|
kind: NESTED_QUICK_ACTION_KIND,
|
|
135
146
|
id: this.id,
|
|
136
147
|
enabled: this.isApplicable,
|
|
137
|
-
title: this.context.resourceBundle.getText(
|
|
148
|
+
title: this.context.resourceBundle.getText(this.textKey),
|
|
138
149
|
children: this.children
|
|
139
150
|
};
|
|
140
151
|
}
|
|
@@ -4,14 +4,24 @@
|
|
|
4
4
|
xmlns="sap.m"
|
|
5
5
|
xmlns:core="sap.ui.core"
|
|
6
6
|
xmlns:f="sap.ui.layout.form"
|
|
7
|
-
title="{i18n>
|
|
7
|
+
title="{i18n>EXTEND_WITH_ANNOTATION}"
|
|
8
8
|
contentWidth="450px"
|
|
9
9
|
class="sapUiRTABorder"
|
|
10
|
-
type="Message"
|
|
11
10
|
>
|
|
12
11
|
<content>
|
|
13
|
-
<
|
|
14
|
-
|
|
12
|
+
<f:SimpleForm
|
|
13
|
+
id="showFileContentForm"
|
|
14
|
+
editable="true"
|
|
15
|
+
layout="ResponsiveGridLayout"
|
|
16
|
+
labelSpanS="12"
|
|
17
|
+
visible="false"
|
|
18
|
+
singleContainerFullSize="false"
|
|
19
|
+
>
|
|
20
|
+
<f:content>
|
|
21
|
+
<Label id="showFileFoundLabel" text="{i18n>ANNOTATION_FILE_HAS_BEEN_FOUND}" />
|
|
22
|
+
<Text id="showFilePathText" text="{/filePathFromRoot}" />
|
|
23
|
+
</f:content>
|
|
24
|
+
</f:SimpleForm>
|
|
15
25
|
</content>
|
|
16
26
|
<beginButton>
|
|
17
27
|
<Button
|
|
@@ -11,6 +11,7 @@ sap.ui.define([
|
|
|
11
11
|
const SIMPLE_QUICK_ACTION_KIND = ___sap_ux_private_control_property_editor_common['SIMPLE_QUICK_ACTION_KIND'];
|
|
12
12
|
const NESTED_QUICK_ACTION_KIND = ___sap_ux_private_control_property_editor_common['NESTED_QUICK_ACTION_KIND'];
|
|
13
13
|
const updateQuickAction = ___sap_ux_private_control_property_editor_common['updateQuickAction'];
|
|
14
|
+
const externalFileChange = ___sap_ux_private_control_property_editor_common['externalFileChange'];
|
|
14
15
|
const getTextBundle = ____i18n['getTextBundle'];
|
|
15
16
|
const DialogFactory = ____adp_dialog_factory['DialogFactory'];
|
|
16
17
|
class QuickActionService {
|
|
@@ -41,6 +42,9 @@ sap.ui.define([
|
|
|
41
42
|
this.sendAction(updateQuickAction(actionInstance.getActionObject()));
|
|
42
43
|
}
|
|
43
44
|
}
|
|
45
|
+
if (externalFileChange.match(action)) {
|
|
46
|
+
await this.reloadQuickActions(this.controlTreeIndex);
|
|
47
|
+
}
|
|
44
48
|
});
|
|
45
49
|
this.outlineService.onOutlineChange(async event => {
|
|
46
50
|
this.controlTreeIndex = event.detail.controlIndex;
|
|
@@ -10,7 +10,8 @@ import {
|
|
|
10
10
|
NESTED_QUICK_ACTION_KIND,
|
|
11
11
|
QuickActionExecutionPayload,
|
|
12
12
|
QuickActionGroup,
|
|
13
|
-
updateQuickAction
|
|
13
|
+
updateQuickAction,
|
|
14
|
+
externalFileChange
|
|
14
15
|
} from '@sap-ux-private/control-property-editor-common';
|
|
15
16
|
|
|
16
17
|
import { ActionSenderFunction, ControlTreeIndex, Service, SubscribeFunction } from '../types';
|
|
@@ -76,6 +77,10 @@ export class QuickActionService implements Service {
|
|
|
76
77
|
this.sendAction(updateQuickAction(actionInstance.getActionObject()));
|
|
77
78
|
}
|
|
78
79
|
}
|
|
80
|
+
if (externalFileChange.match(action)) {
|
|
81
|
+
await this.reloadQuickActions(this.controlTreeIndex);
|
|
82
|
+
}
|
|
83
|
+
|
|
79
84
|
});
|
|
80
85
|
|
|
81
86
|
this.outlineService.onOutlineChange(async (event) => {
|
|
@@ -7,7 +7,8 @@ QUICK_ACTION_OP_ADD_CUSTOM_SECTION=Add Custom Section
|
|
|
7
7
|
QUICK_ACTION_ADD_CUSTOM_PAGE_ACTION=Add Custom Page Action
|
|
8
8
|
QUICK_ACTION_ADD_CUSTOM_TABLE_ACTION=Add Custom Table Action
|
|
9
9
|
QUICK_ACTION_ADD_CUSTOM_TABLE_COLUMN=Add Custom Table Column
|
|
10
|
-
QUICK_ACTION_ADD_NEW_ANNOTATION_FILE=Add
|
|
10
|
+
QUICK_ACTION_ADD_NEW_ANNOTATION_FILE=Add Local Annotation File
|
|
11
|
+
QUICK_ACTION_SHOW_ANNOTATION_FILE=Show Local Annotation File
|
|
11
12
|
QUICK_ACTION_ENABLE_TABLE_FILTERING=Enable Table Filtering for Page Variants
|
|
12
13
|
QUICK_ACTION_ENABLE_TABLE_EMPTY_ROW_MODE=Enable Empty Row Mode for Tables
|
|
13
14
|
|
|
@@ -47,8 +48,8 @@ TABLE_FILTERING_CHANGE_HAS_ALREADY_BEEN_MADE=This option is disabled because tab
|
|
|
47
48
|
EMPTY_ROW_MODE_IS_ALREADY_ENABLED=This option has been disabled because empty row mode is already enabled for this table
|
|
48
49
|
EMPTY_ROW_MODE_IS_NOT_SUPPORTED=This action is disabled because empty row mode is not supported for analytical and tree tables
|
|
49
50
|
|
|
50
|
-
|
|
51
|
-
SHOW_ANNOTATION_FILE=Show ''{0}''
|
|
52
|
-
|
|
53
|
-
ANNOTATION_FILE_HAS_BEEN_FOUND=An
|
|
51
|
+
ADD_ANNOTATION_FILE=Add Annotation File for ''{0}''
|
|
52
|
+
SHOW_ANNOTATION_FILE=Show Annotation File for ''{0}''
|
|
53
|
+
EXTEND_WITH_ANNOTATION=Extend With Annotation
|
|
54
|
+
ANNOTATION_FILE_HAS_BEEN_FOUND=An annotation file has been found.
|
|
54
55
|
SHOW_FILE_IN_VSCODE=Show File in VSCode
|
|
@@ -8,7 +8,7 @@ sap.ui.define((function () { 'use strict';
|
|
|
8
8
|
|
|
9
9
|
(function (exports) {
|
|
10
10
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
-
exports.setApplicationRequiresReload = exports.executeQuickAction = exports.updateQuickAction = exports.quickActionListChanged = exports.save = exports.redo = exports.undo = exports.appLoaded = exports.setSaveEnablement = exports.setUndoRedoEnablement = exports.applicationModeChanged = exports.setAppMode = exports.storageFileChanged = exports.reloadApplication = exports.showMessage = exports.changeStackModified = exports.propertyChangeFailed = exports.propertyChanged = exports.changeProperty = exports.outlineChanged = exports.deletePropertyChanges = exports.addExtensionPoint = exports.selectControl = exports.controlSelected = exports.iconsLoaded = exports.EXTERNAL_ACTION_PREFIX = exports.NESTED_QUICK_ACTION_KIND = exports.SIMPLE_QUICK_ACTION_KIND = exports.CONTROL_CHANGE_KIND = exports.UNKNOWN_CHANGE_KIND = exports.CONFIGURATION_CHANGE_KIND = exports.PROPERTY_CHANGE_KIND = exports.SAVED_CHANGE_TYPE = exports.PENDING_CHANGE_TYPE = exports.PropertyType = exports.SCENARIO = exports.CHECKBOX_EDITOR_TYPE = exports.DROPDOWN_EDITOR_TYPE = exports.INPUT_EDITOR_TYPE = exports.STRING_VALUE_TYPE = exports.FLOAT_VALUE_TYPE = exports.INTEGER_VALUE_TYPE = exports.BOOLEAN_VALUE_TYPE = void 0;
|
|
11
|
+
exports.externalFileChange = exports.setApplicationRequiresReload = exports.executeQuickAction = exports.updateQuickAction = exports.quickActionListChanged = exports.save = exports.redo = exports.undo = exports.appLoaded = exports.setSaveEnablement = exports.setUndoRedoEnablement = exports.applicationModeChanged = exports.setAppMode = exports.storageFileChanged = exports.reloadApplication = exports.showMessage = exports.changeStackModified = exports.propertyChangeFailed = exports.propertyChanged = exports.changeProperty = exports.outlineChanged = exports.deletePropertyChanges = exports.addExtensionPoint = exports.selectControl = exports.controlSelected = exports.iconsLoaded = exports.EXTERNAL_ACTION_PREFIX = exports.NESTED_QUICK_ACTION_KIND = exports.SIMPLE_QUICK_ACTION_KIND = exports.CONTROL_CHANGE_KIND = exports.UNKNOWN_CHANGE_KIND = exports.CONFIGURATION_CHANGE_KIND = exports.PROPERTY_CHANGE_KIND = exports.SAVED_CHANGE_TYPE = exports.PENDING_CHANGE_TYPE = exports.PropertyType = exports.SCENARIO = exports.CHECKBOX_EDITOR_TYPE = exports.DROPDOWN_EDITOR_TYPE = exports.INPUT_EDITOR_TYPE = exports.STRING_VALUE_TYPE = exports.FLOAT_VALUE_TYPE = exports.INTEGER_VALUE_TYPE = exports.BOOLEAN_VALUE_TYPE = void 0;
|
|
12
12
|
exports.BOOLEAN_VALUE_TYPE = 'boolean';
|
|
13
13
|
exports.INTEGER_VALUE_TYPE = 'integer';
|
|
14
14
|
exports.FLOAT_VALUE_TYPE = 'float';
|
|
@@ -99,6 +99,7 @@ sap.ui.define((function () { 'use strict';
|
|
|
99
99
|
exports.updateQuickAction = createExternalAction('update-quick-action');
|
|
100
100
|
exports.executeQuickAction = createExternalAction('execute-quick-action');
|
|
101
101
|
exports.setApplicationRequiresReload = createExternalAction('set-application-requires-reload');
|
|
102
|
+
exports.externalFileChange = createExternalAction('external-file-change');
|
|
102
103
|
|
|
103
104
|
} (api));
|
|
104
105
|
|
package/package.json
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"bugs": {
|
|
10
10
|
"url": "https://github.com/SAP/open-ux-tools/issues?q=is%3Aopen+is%3Aissue+label%3Abug+label%3Apreview-middleware"
|
|
11
11
|
},
|
|
12
|
-
"version": "0.16.
|
|
12
|
+
"version": "0.16.166",
|
|
13
13
|
"license": "Apache-2.0",
|
|
14
14
|
"author": "@SAP/ux-tools-team",
|
|
15
15
|
"main": "dist/index.js",
|
|
@@ -28,8 +28,8 @@
|
|
|
28
28
|
"@sap-ux/logger": "0.6.0",
|
|
29
29
|
"@sap-ux/feature-toggle": "0.2.3",
|
|
30
30
|
"@sap-ux/btp-utils": "0.17.2",
|
|
31
|
-
"@sap-ux/adp-tooling": "0.12.
|
|
32
|
-
"@sap-ux/control-property-editor-sources": "npm:@sap-ux/control-property-editor@0.5.
|
|
31
|
+
"@sap-ux/adp-tooling": "0.12.108",
|
|
32
|
+
"@sap-ux/control-property-editor-sources": "npm:@sap-ux/control-property-editor@0.5.32",
|
|
33
33
|
"@sap-ux/project-access": "1.28.10"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
"supertest": "6.3.3",
|
|
47
47
|
"@sap-ux-private/playwright": "0.1.0",
|
|
48
48
|
"dotenv": "16.3.1",
|
|
49
|
-
"@private/preview-middleware-client": "npm:@sap-ux-private/preview-middleware-client@0.11.
|
|
49
|
+
"@private/preview-middleware-client": "npm:@sap-ux-private/preview-middleware-client@0.11.48",
|
|
50
50
|
"@sap-ux/axios-extension": "1.18.0",
|
|
51
51
|
"@sap-ux/store": "1.0.0",
|
|
52
52
|
"@sap-ux/ui5-info": "0.8.3",
|