From f58461d95763fbc5aaae3bc749b5f254b184425f Mon Sep 17 00:00:00 2001 From: "m.mezhensky" Date: Wed, 8 Jul 2020 15:31:35 +0300 Subject: [PATCH 01/50] #186: Extend the new Magento 2 module generation with the ability to set module sequence(s). --- .../generation/data/ModuleXmlData.java | 9 ++++++++ .../generation/dialog/NewModuleDialog.java | 1 + .../generator/ModuleXmlGenerator.java | 22 ++++++++++++++++++- .../php/MagentoModuleGenerator.java | 9 ++++++++ .../magento/files/ModuleXml.java | 1 + 5 files changed, 41 insertions(+), 1 deletion(-) diff --git a/src/com/magento/idea/magento2plugin/actions/generation/data/ModuleXmlData.java b/src/com/magento/idea/magento2plugin/actions/generation/data/ModuleXmlData.java index 3719eec19..0b4c507e6 100644 --- a/src/com/magento/idea/magento2plugin/actions/generation/data/ModuleXmlData.java +++ b/src/com/magento/idea/magento2plugin/actions/generation/data/ModuleXmlData.java @@ -6,21 +6,26 @@ import com.intellij.psi.PsiDirectory; +import java.util.List; + public class ModuleXmlData { private final String packageName; private final String moduleName; private PsiDirectory baseDir; + private final List moduleDependencies; private boolean createModuleDirs; public ModuleXmlData( String packageName, String moduleName, PsiDirectory baseDir, + List moduleDependencies, boolean createModuleDirs ) { this.packageName = packageName; this.moduleName = moduleName; this.baseDir = baseDir; + this.moduleDependencies = moduleDependencies; this.createModuleDirs = createModuleDirs; } @@ -36,6 +41,10 @@ public PsiDirectory getBaseDir() { return this.baseDir; } + public List getModuleDependencies() { + return moduleDependencies; + } + public boolean getCreateModuleDirs() { return this.createModuleDirs; } diff --git a/src/com/magento/idea/magento2plugin/actions/generation/dialog/NewModuleDialog.java b/src/com/magento/idea/magento2plugin/actions/generation/dialog/NewModuleDialog.java index 1ae175cb0..cb4864ae8 100644 --- a/src/com/magento/idea/magento2plugin/actions/generation/dialog/NewModuleDialog.java +++ b/src/com/magento/idea/magento2plugin/actions/generation/dialog/NewModuleDialog.java @@ -188,6 +188,7 @@ private void generateModuleXml() { getPackageName(), getModuleName(), getBaseDir(), + getModuleDependencies(), true ), project).generate(NewModuleAction.actionName, true); } diff --git a/src/com/magento/idea/magento2plugin/actions/generation/generator/ModuleXmlGenerator.java b/src/com/magento/idea/magento2plugin/actions/generation/generator/ModuleXmlGenerator.java index f08601561..ac41ce621 100644 --- a/src/com/magento/idea/magento2plugin/actions/generation/generator/ModuleXmlGenerator.java +++ b/src/com/magento/idea/magento2plugin/actions/generation/generator/ModuleXmlGenerator.java @@ -14,9 +14,11 @@ import com.magento.idea.magento2plugin.actions.generation.generator.util.FileFromTemplateGenerator; import com.magento.idea.magento2plugin.magento.files.ModuleXml; import com.magento.idea.magento2plugin.magento.packages.Package; -import java.util.Properties; import org.jetbrains.annotations.NotNull; +import java.util.List; +import java.util.Properties; + public class ModuleXmlGenerator extends FileGenerator { private final ModuleXmlData moduleXmlData; @@ -70,5 +72,23 @@ public PsiFile generate(final String actionName) { protected void fillAttributes(final Properties attributes) { attributes.setProperty("PACKAGE", moduleXmlData.getPackageName()); attributes.setProperty("MODULE_NAME", moduleXmlData.getModuleName()); + attributes.setProperty("SEQUENCES", this.getDependenciesString(moduleXmlData.getModuleDependencies())); + } + + private String getDependenciesString(List dependenciesList) { + String result = ""; + Object[] dependencies = dependenciesList.toArray(); + boolean noDependency = dependencies.length == 1 && dependencies[0].equals(ModuleXml.NO_DEPENDENCY_LABEL); + + if (noDependency) { + return result; + } + + for (int i = 0; i < dependencies.length; i++) { + String dependency = dependencies[i].toString(); + result = result.concat(""); + } + + return result; } } diff --git a/src/com/magento/idea/magento2plugin/generation/php/MagentoModuleGenerator.java b/src/com/magento/idea/magento2plugin/generation/php/MagentoModuleGenerator.java index 6646ae5dc..2a884fd5b 100644 --- a/src/com/magento/idea/magento2plugin/generation/php/MagentoModuleGenerator.java +++ b/src/com/magento/idea/magento2plugin/generation/php/MagentoModuleGenerator.java @@ -4,11 +4,14 @@ */ package com.magento.idea.magento2plugin.generation.php; +import com.google.gson.JsonElement; +import com.google.gson.JsonParser; import com.intellij.ide.util.projectWizard.WebProjectTemplate; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.module.Module; import com.intellij.openapi.project.Project; import com.intellij.openapi.startup.StartupManager; +import com.intellij.openapi.util.Pair; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.platform.ProjectGeneratorPeer; import com.intellij.psi.PsiDirectory; @@ -24,11 +27,16 @@ import com.magento.idea.magento2plugin.actions.generation.generator.ModuleRegistrationPhpGenerator; import com.magento.idea.magento2plugin.actions.generation.generator.ModuleXmlGenerator; import com.magento.idea.magento2plugin.init.ConfigurationManager; +import com.magento.idea.magento2plugin.magento.files.ComposerJson; import com.magento.idea.magento2plugin.project.Settings; import org.jetbrains.annotations.Nls; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; + +import java.io.FileNotFoundException; +import java.io.FileReader; import java.util.ArrayList; +import java.util.List; public class MagentoModuleGenerator extends WebProjectTemplate { public static String ACTION_NAME = "Magento 2 Module"; @@ -107,6 +115,7 @@ private void generateModuleXml(@NotNull Project project, @NotNull PsiDirectory b settings.getPackageName(), settings.getModuleName(), baseDir, + new ArrayList<>(), false ); ModuleXmlGenerator moduleXmlGenerator = new ModuleXmlGenerator(moduleXmlData, project); diff --git a/src/com/magento/idea/magento2plugin/magento/files/ModuleXml.java b/src/com/magento/idea/magento2plugin/magento/files/ModuleXml.java index 87db5d361..3202eba71 100644 --- a/src/com/magento/idea/magento2plugin/magento/files/ModuleXml.java +++ b/src/com/magento/idea/magento2plugin/magento/files/ModuleXml.java @@ -11,6 +11,7 @@ public class ModuleXml implements ModuleFileInterface { public static String FILE_NAME = "module.xml"; public static String MODULE_ATTR_NAME = "name"; public static String TEMPLATE = "Magento Module Xml"; + public static String NO_DEPENDENCY_LABEL = "None"; private static ModuleXml INSTANCE = null; public static ModuleXml getInstance() { From 725539402b185983a95c48ec8b527d4ce4031aab Mon Sep 17 00:00:00 2001 From: Serhiy Zhovnir Date: Sat, 24 Oct 2020 12:51:27 +0300 Subject: [PATCH 02/50] #issue-179 Added email template generation --- resources/META-INF/plugin.xml | 1 + .../Magento Module Email Template Xml.xml.ft | 1 + ...Magento Module Email Template Xml.xml.html | 52 ++++ ...Magento Module Email Template Html.html.ft | 7 + ...gento Module Email Template Html.html.html | 37 +++ .../Magento Module Email Templates Xml.xml.ft | 4 + ...agento Module Email Templates Xml.xml.html | 17 ++ resources/magento2/common.properties | 7 +- .../generation/NewEmailTemplateAction.java | 53 ++++ .../data/EmailTemplateHtmlData.java | 82 ++++++ .../data/EmailTemplatesXmlData.java | 96 +++++++ .../dialog/NewEmailTemplateDialog.form | 166 ++++++++++++ .../dialog/NewEmailTemplateDialog.java | 241 ++++++++++++++++++ .../ModuleEmailTemplateHtmlGenerator.java | 82 ++++++ .../ModuleEmailTemplatesXmlGenerator.java | 194 ++++++++++++++ .../util/FindOrCreateEmailTemplatesXml.java | 82 ++++++ .../magento/files/EmailTemplateHtml.java | 52 ++++ .../magento/files/EmailTemplatesXml.java | 51 ++++ .../magento/packages/Package.java | 1 + .../custom_email_template_html.html | 6 + .../custom_email_template_text.html | 5 + .../email_templates.xml | 9 + .../email_templates.xml | 7 + .../email_templates.xml | 7 + .../ModuleEmailTemplateHtmlGeneratorTest.java | 102 ++++++++ .../ModuleEmailTemplatesXmlGeneratorTest.java | 116 +++++++++ 26 files changed, 1477 insertions(+), 1 deletion(-) create mode 100644 resources/fileTemplates/code/Magento Module Email Template Xml.xml.ft create mode 100644 resources/fileTemplates/code/Magento Module Email Template Xml.xml.html create mode 100644 resources/fileTemplates/internal/Magento Module Email Template Html.html.ft create mode 100644 resources/fileTemplates/internal/Magento Module Email Template Html.html.html create mode 100644 resources/fileTemplates/internal/Magento Module Email Templates Xml.xml.ft create mode 100644 resources/fileTemplates/internal/Magento Module Email Templates Xml.xml.html create mode 100644 src/com/magento/idea/magento2plugin/actions/generation/NewEmailTemplateAction.java create mode 100644 src/com/magento/idea/magento2plugin/actions/generation/data/EmailTemplateHtmlData.java create mode 100644 src/com/magento/idea/magento2plugin/actions/generation/data/EmailTemplatesXmlData.java create mode 100644 src/com/magento/idea/magento2plugin/actions/generation/dialog/NewEmailTemplateDialog.form create mode 100644 src/com/magento/idea/magento2plugin/actions/generation/dialog/NewEmailTemplateDialog.java create mode 100644 src/com/magento/idea/magento2plugin/actions/generation/generator/ModuleEmailTemplateHtmlGenerator.java create mode 100644 src/com/magento/idea/magento2plugin/actions/generation/generator/ModuleEmailTemplatesXmlGenerator.java create mode 100644 src/com/magento/idea/magento2plugin/actions/generation/generator/util/FindOrCreateEmailTemplatesXml.java create mode 100644 src/com/magento/idea/magento2plugin/magento/files/EmailTemplateHtml.java create mode 100644 src/com/magento/idea/magento2plugin/magento/files/EmailTemplatesXml.java create mode 100644 testData/actions/generation/generator/ModuleEmailTemplateHtmlGenerator/generateEmailTemplateHtml/custom_email_template_html.html create mode 100644 testData/actions/generation/generator/ModuleEmailTemplateHtmlGenerator/generateEmailTemplateText/custom_email_template_text.html create mode 100644 testData/actions/generation/generator/ModuleEmailTemplatesXmlGenerator/addTwoEmailTemplatesToEmailTemplatesXmlFile/email_templates.xml create mode 100644 testData/actions/generation/generator/ModuleEmailTemplatesXmlGenerator/generateEmailTemplateHtmlXml/email_templates.xml create mode 100644 testData/actions/generation/generator/ModuleEmailTemplatesXmlGenerator/generateEmailTemplateTextXml/email_templates.xml create mode 100644 tests/com/magento/idea/magento2plugin/actions/generation/generator/ModuleEmailTemplateHtmlGeneratorTest.java create mode 100644 tests/com/magento/idea/magento2plugin/actions/generation/generator/ModuleEmailTemplatesXmlGeneratorTest.java diff --git a/resources/META-INF/plugin.xml b/resources/META-INF/plugin.xml index 11e9c1026..2f8b96bcc 100644 --- a/resources/META-INF/plugin.xml +++ b/resources/META-INF/plugin.xml @@ -65,6 +65,7 @@ + diff --git a/resources/fileTemplates/code/Magento Module Email Template Xml.xml.ft b/resources/fileTemplates/code/Magento Module Email Template Xml.xml.ft new file mode 100644 index 000000000..359f7d77a --- /dev/null +++ b/resources/fileTemplates/code/Magento Module Email Template Xml.xml.ft @@ -0,0 +1 @@ +