Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 450b516

Browse files
committed
1205: Created a new action "Override email template in a project theme"
1 parent c8f351a commit 450b516

File tree

2 files changed

+77
-0
lines changed

2 files changed

+77
-0
lines changed

‎resources/META-INF/plugin.xml‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,9 @@
132132
<action id="OverrideTemplateInTheme.Menu" class="com.magento.idea.magento2plugin.actions.generation.OverrideTemplateInThemeAction">
133133
<add-to-group group-id="ProjectViewPopupMenu"/>
134134
</action>
135+
<action id="OverrideEmailTemplateInTheme.Menu" class="com.magento.idea.magento2plugin.actions.generation.OverrideEmailTemplateInThemeAction">
136+
<add-to-group group-id="ProjectViewPopupMenu"/>
137+
</action>
135138
<action id="OverrideLayoutInTheme.Menu" class="com.magento.idea.magento2plugin.actions.generation.OverrideLayoutInThemeAction">
136139
<add-to-group group-id="ProjectViewPopupMenu"/>
137140
</action>
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
/*
2+
* Copyright © Magento, Inc. All rights reserved.
3+
* See COPYING.txt for license details.
4+
*/
5+
6+
package com.magento.idea.magento2plugin.actions.generation;
7+
8+
import com.intellij.openapi.actionSystem.AnActionEvent;
9+
import com.intellij.openapi.project.Project;
10+
import com.intellij.openapi.vfs.VirtualFile;
11+
import com.intellij.psi.PsiFile;
12+
import com.magento.idea.magento2plugin.MagentoIcons;
13+
import com.magento.idea.magento2plugin.actions.generation.dialog.OverrideTemplateInThemeDialog;
14+
import com.magento.idea.magento2plugin.magento.packages.Areas;
15+
import org.jetbrains.annotations.NotNull;
16+
17+
public class OverrideEmailTemplateInThemeAction extends OverrideFileInThemeAction {
18+
19+
public static final String ACTION_NAME = "Override email template in a project theme";
20+
public static final String ACTION_TEMPLATE_DESCRIPTION = "Override email template file in project theme";
21+
public static final String EMAIL_DIRECTORY = "email";
22+
public static final String HTML = "html";
23+
24+
public OverrideEmailTemplateInThemeAction() {
25+
super(ACTION_NAME, ACTION_TEMPLATE_DESCRIPTION, MagentoIcons.MODULE);
26+
}
27+
28+
@Override
29+
public void actionPerformed(final @NotNull AnActionEvent event) {
30+
final Project project = event.getProject();
31+
32+
if (project == null || psiFile == null) {
33+
return;
34+
}
35+
OverrideTemplateInThemeDialog.open(project, psiFile);
36+
}
37+
38+
@Override
39+
protected boolean isOverrideAllowed(
40+
final @NotNull PsiFile file,
41+
final @NotNull Project project
42+
) {
43+
final VirtualFile virtualFile = file.getVirtualFile();
44+
45+
if (virtualFile == null) {
46+
return false;
47+
}
48+
final String fileExtension = virtualFile.getExtension();
49+
50+
if (fileExtension == null) {
51+
return false;
52+
}
53+
54+
if(!HTML.equals(fileExtension)) {
55+
return false;
56+
}
57+
58+
return isEmailTemplateFile(virtualFile);
59+
}
60+
61+
private boolean isEmailTemplateFile(final @NotNull VirtualFile virtualFile) {
62+
final VirtualFile directory = virtualFile.getParent();
63+
64+
if (directory == null) {
65+
return false;
66+
}
67+
68+
if (EMAIL_DIRECTORY.equals(directory.getName())) {
69+
return Areas.getAreaByString(directory.getParent().getName()) != null;
70+
} else {
71+
return isEmailTemplateFile(directory);
72+
}
73+
}
74+
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /