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

Appearance settings

Commit 450b516

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

File tree

Expand file treeCollapse file tree

2 files changed

+77
-0
lines changed
Filter options
Expand file treeCollapse file tree

2 files changed

+77
-0
lines changed

‎resources/META-INF/plugin.xml

Copy file name to clipboardExpand all lines: resources/META-INF/plugin.xml
+3Lines 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>
+74Lines 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 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.