Skip to content

Commit b992b91

Browse files
authored
Merge pull request #1279 from magento/5.0.1-forwardport
5.0.1 forwardport
2 parents ed2a70c + cfa711e commit b992b91

File tree

10 files changed

+65
-31
lines changed

10 files changed

+65
-31
lines changed

CHANGELOG.md

+11
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,17 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0).
66

77
## 5.1.0
88

9+
## 5.0.1
10+
11+
### Fixed
12+
13+
- Throwable: Stub index points to a file without PSI [#1232](https://github.com/magento/magento2-phpstorm-plugin/pull/1232)
14+
- Create an entity - The delete button is displayed in a new entity form [#1268](https://github.com/magento/magento2-phpstorm-plugin/pull/1268)
15+
- Create an entity - The translation function is not call on the buttons label [#1273](https://github.com/magento/magento2-phpstorm-plugin/pull/1273)
16+
- Covered possible NullPointerException in InjectAViewModelDialog.java [#1213](https://github.com/magento/magento2-phpstorm-plugin/pull/1213)
17+
- AWT events are not allowed inside write action [#1271](https://github.com/magento/magento2-phpstorm-plugin/pull/1271)
18+
- MapReduceIndexMappingException: java.lang.NumberFormatException: For input string: "" [#1235](https://github.com/magento/magento2-phpstorm-plugin/pull/1235)
19+
920
## 5.0.0
1021

1122
### Added

resources/fileTemplates/internal/Magento Form Button Block Class.php.ft

+7-1
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,14 @@ class ${NAME} extends ${GENERIC_BUTTON} implements ${DATA_PROVIDER_TYPE}
2020
*/
2121
public function getButtonData(): array
2222
{
23+
#if (${GET_ID})
24+
if (!$this->${GET_ID}) {
25+
return [];
26+
}
27+
28+
#end
2329
return $this->wrapButtonSettings(
24-
'${LABEL}',
30+
__('${LABEL}')->getText(),
2531
'${CLASS}',
2632
${ON_CLICK},
2733
${DATA_ATTRS},

src/com/magento/idea/magento2plugin/actions/generation/dialog/InjectAViewModelDialog.java

+6
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,12 @@ protected void onOK() {
141141
exit();
142142
return;
143143
}
144+
145+
if (targetBlockTag.getContainingFile() == null
146+
|| targetBlockTag.getContainingFile().getParent() == null) {
147+
return;
148+
}
149+
144150
final String moduleName = GetModuleNameByDirectoryUtil.execute(
145151
targetBlockTag.getContainingFile().getParent(),
146152
project

src/com/magento/idea/magento2plugin/actions/generation/generator/ModuleGraphQlResolverClassGenerator.java

+28-24
Original file line numberDiff line numberDiff line change
@@ -64,49 +64,53 @@ public ModuleGraphQlResolverClassGenerator(
6464

6565
@Override
6666
public PsiFile generate(final String actionName) {
67-
final PsiFile[] graphQlFile = {null};
68-
WriteCommandAction.runWriteCommandAction(project, () -> {
69-
PhpClass graphQlResolverClass = GetPhpClassByFQN.getInstance(project)
70-
.execute(graphQlResolverFileData.getGraphQlResolverClassFqn());
7167

72-
if (graphQlResolverClass == null) {
73-
graphQlResolverClass = createGraphQlResolverClass(actionName);
74-
}
68+
final PhpClass[] graphQlResolverClass = {GetPhpClassByFQN.getInstance(project)
69+
.execute(graphQlResolverFileData.getGraphQlResolverClassFqn())};
7570

76-
if (graphQlResolverClass == null) {
77-
final String errorMessage = validatorBundle.message(
78-
"validator.file.cantBeCreated",
79-
"GraphQL Resolver Class"
80-
);
81-
JOptionPane.showMessageDialog(
82-
null,
83-
errorMessage,
84-
commonBundle.message("common.error"),
85-
JOptionPane.ERROR_MESSAGE
86-
);
87-
88-
return;
89-
}
71+
if (graphQlResolverClass[0] == null) {
72+
WriteCommandAction.runWriteCommandAction(project, () -> {
73+
graphQlResolverClass[0] = createGraphQlResolverClass(actionName);
74+
});
75+
}
76+
77+
if (graphQlResolverClass[0] == null) {
78+
final String errorMessage = validatorBundle.message(
79+
"validator.file.cantBeCreated",
80+
"GraphQL Resolver Class"
81+
);
82+
JOptionPane.showMessageDialog(
83+
null,
84+
errorMessage,
85+
commonBundle.message("common.error"),
86+
JOptionPane.ERROR_MESSAGE
87+
);
88+
89+
return null;
90+
}
9091

92+
final PsiFile[] graphQlFile = {null};
93+
WriteCommandAction.runWriteCommandAction(project, () -> {
9194
final Properties attributes = new Properties();
9295
final String methodTemplate = PhpCodeUtil.getCodeTemplate(
9396
GraphQlResolverPhp.GRAPHQL_RESOLVER_TEMPLATE_NAME, attributes, project);
9497

95-
graphQlFile[0] = graphQlResolverClass.getContainingFile();
98+
graphQlFile[0] = graphQlResolverClass[0].getContainingFile();
9699
final CodeStyleSettings codeStyleSettings = new CodeStyleSettings(
97100
(PhpFile) graphQlFile[0]
98101
);
99102
codeStyleSettings.adjustBeforeWrite();
100103

101104
final PsiDocumentManager psiDocumentManager = PsiDocumentManager.getInstance(project);
102105
final Document document = psiDocumentManager.getDocument(graphQlFile[0]);
103-
final int insertPos = getInsertPos(graphQlResolverClass);
106+
final int insertPos = getInsertPos(graphQlResolverClass[0]);
104107
document.insertString(insertPos, methodTemplate);
105108
final int endPos = insertPos + methodTemplate.length() + 1;
106109
CodeStyleManager.getInstance(project).reformatText(graphQlFile[0], insertPos, endPos);
107110
psiDocumentManager.commitDocument(document);
108111
codeStyleSettings.restore();
109112
});
113+
110114
return graphQlFile[0];
111115
}
112116

@@ -116,7 +120,7 @@ private int getInsertPos(final PhpClass graphQlResolverClass) {
116120
graphQlResolverClass,
117121
LeafPsiElement.class
118122
);
119-
for (final LeafPsiElement leafPsiElement: leafElements) {
123+
for (final LeafPsiElement leafPsiElement : leafElements) {
120124
if (!MagentoPhpClass.CLOSING_TAG.equals(leafPsiElement.getText())) {
121125
continue;
122126
}

src/com/magento/idea/magento2plugin/actions/generation/generator/UiComponentFormButtonBlockGenerator.java

+3
Original file line numberDiff line numberDiff line change
@@ -208,6 +208,9 @@ protected void fillAttributes(final @NotNull Properties attributes) {
208208
attributes.setProperty("SORT_ORDER", String.valueOf(buttonTypeSettings.getSortOrder()));
209209
attributes.setProperty("ENTITY_NAME", Strings.toLowerCase(entityName));
210210
attributes.setProperty("ENTITY_ID", entityIdField);
211+
if (buttonData.getButtonType().equals(FormButtonBlockFile.TYPE_DELETE)) {
212+
attributes.setProperty("GET_ID", entityIdAccessor);
213+
}
211214

212215
attributes.setProperty("USES", PhpClassGeneratorUtil.formatUses(uses));
213216
}

src/com/magento/idea/magento2plugin/stubs/indexes/PluginIndex.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ private Set<PluginData> getPluginsForType(final XmlTag typeNode) {
9696
final String pluginType = pluginTag.getAttributeValue(ModuleDiXml.TYPE_ATTR);
9797
final String pluginSortOrder = pluginTag.getAttributeValue(ModuleDiXml.SORT_ORDER_ATTR);
9898

99-
if (pluginType != null) {
99+
if (pluginType != null && !pluginType.isEmpty()) {
100100
final PluginData pluginData = getPluginDataObject(pluginType, getIntegerOrZeroValue(pluginSortOrder));
101101
results.add(pluginData);
102102
}
@@ -121,7 +121,7 @@ private PluginData getPluginDataObject(
121121
final String pluginType,
122122
final Integer sortOrder
123123
) {
124-
return new PluginData(pluginType, sortOrder);
124+
return new PluginData(pluginType, sortOrder);
125125
}
126126
};
127127
}

testData/actions/generation/generator/FormButtonBlockGenerator/generateBackButtonBlock/MyBackButton.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ class MyBackButton extends GenericButton implements ButtonProviderInterface
1717
public function getButtonData(): array
1818
{
1919
return $this->wrapButtonSettings(
20-
'Back To Grid',
20+
__('Back To Grid')->getText(),
2121
'back',
2222
sprintf("location.href = '%s';", $this->getUrl('*/*/')),
2323
[],

testData/actions/generation/generator/FormButtonBlockGenerator/generateCustomButtonBlock/MyCustom.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ class MyCustom extends GenericButton implements ButtonProviderInterface
1717
public function getButtonData(): array
1818
{
1919
return $this->wrapButtonSettings(
20-
'Custom Button',
20+
__('Custom Button')->getText(),
2121
'custom',
2222
'',
2323
[],

testData/actions/generation/generator/FormButtonBlockGenerator/generateDeleteButtonBlock/DeleteBlock.php

+5-1
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,12 @@ class DeleteBlock extends GenericButton implements ButtonProviderInterface
1717
*/
1818
public function getButtonData(): array
1919
{
20+
if (!$this->getBookId()) {
21+
return [];
22+
}
23+
2024
return $this->wrapButtonSettings(
21-
'Delete',
25+
__('Delete')->getText(),
2226
'delete',
2327
sprintf("deleteConfirm('%s', '%s')",
2428
__('Are you sure you want to delete this book?'),

testData/actions/generation/generator/FormButtonBlockGenerator/generateSaveButtonBlock/SaveBlock.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ class SaveBlock extends GenericButton implements ButtonProviderInterface
1717
public function getButtonData(): array
1818
{
1919
return $this->wrapButtonSettings(
20-
'Save',
20+
__('Save')->getText(),
2121
'save primary',
2222
'',
2323
[

0 commit comments

Comments
 (0)