thm-mni-ii / joomdd Goto Github PK
View Code? Open in Web Editor NEWAn MDD infrastructure for Joomla 3 and 4 extensions
License: GNU General Public License v3.0
An MDD infrastructure for Joomla 3 and 4 extensions
License: GNU General Public License v3.0
The language files dont work fine, because it is existing double keys
The lable type makes no sense and should therefore be removed from the type selection in the language and the mapping code in the code generator templates.
There might be a problem with spaces or special characters in the folder and or file name.
For instance, there is an error when the folder name is "com_conference (2)" while extracting information from the manifest file of an extension.
componentHelper and moduleHelper class names are the same right now. Change this in the generator.
If a key-value definition is made, the key keyword seems useless. I recommend to remove it.
In the latest versions of inteliJ and PhpStorm, the wizards are not working. So, new developers are not able to use the plugins properly.
Example Shop: The component zip file (com_exampleshop.zip) in folder pkg_shop ist empty.
We need to improve the documentation for devs to enhance the entry for new collaborators
Implicit ID should be default when not specified in the model with a unique annotation.
If a library is specified within an eJSL model, it throws an validation error, if a sub package is created. This, however, should be possible.
Neben den Joomla Schlüsselwörtern müssen auch weitere Schlüsselwörter blockiert werden. Zum Beispiel führt eine Verwendung des Namens Group zu einem Fehler, da es von MySQL nicht erlaubt ist.
Innerhalb der Tabellennamen führt es durch den Joomla-Prefix zu keinem Problem, aber die verwendeten Alias-Begriffe führen dabei zu einem Fehler. Eventuell kann man dies durch einen festen Prefix vor allen Aliases verhindern.
Type of param in Confi.xml is not mapped and component in package are empty
The readme should only consist of an overview of the project and links to the respective wiki settings. This requires to move the whole documentation stuff to the wiki.
The configarion shema for the menuitem have some failures
The ordering has to be fixed in the frontend part of the J4 generator. Since it is already fixed for the backend part, the code can be used as reference.
You might download the wrong com_myconference folder with the new/update folder inside. Therefore the new/update folder structure should be improved.
The J4 generator should generate JToolbar groups (save, save2new, save2copy) instead of a button for each operation.
Maybe view is a better term than page. An optional language element or an additional editor rule is possible.
We should discuss how we deal with the primary and unique attributes in entity definitions. A unique attribute must be implemented which in turn takes the role as primary attribute in the generated code. This is a weird behavior which should be discussed!
lower/upper should be min/max. The values should only be -1, 0, 1. This requires changes in the language, generator and editor.
To enable an update of a new generated extension, the update mechanism in the generator should be improved. Use "CREATE TABLE IF NOT EXISTS" and "ALTER TABLE" for all Attributes. To enable remove operations, a more sophisticated mechanism is required. This has to be discussed with Wolf and Joe!
In PHPStorm there is no structure view for the eJSL language: entities, pages, extensions.
A PageAction allows the definition of a specific Joomla action which can be performed by clicking a button or link in a component view or model. To this end, the action itself and the position of a button (e.g. Save, Publish, etc.) can be specified in a model.
However, the current generator versions do not translate a page action to a button or link in the generated extension.
Therefore, an adequate reference implementation is needed and the code generator templates have to be refined to enable the generation of PageAction representations (e.g. Buttons) with the required business logic for each particular action.
lower: -1 and upper; 2 should throw a validation error
Special characters and spaces in the file and/or folder name let the request fail.
Paramter like "created-by","id" im Configuration shema for frontend view occurs many time in the xml-shema.
The language allows making use of inheritance between entities. However, if a parent class contains a unique attribute, extending classes still need a unique attribute, too.
The validator should be refined to allow inheritance and the generators must handle inheritance to translate it to correct code.
If an entity attribute references another attribute which in turn is used as reference to the original entity, the generator gets stuck in a loop. Such a behavior can always happen and should be considered e.g. through exception handling in the generator.
If an enity reference is created in a plugin specification, the entity must be defined as a string. However, the auto completion does not create a string. I would recommend to change the type from string to ID in the language definition.
the Jext2ejsl Tools must be actualise to scala 2.12. He dont go in the model file to read the Model information, because when the table dont have the same name wiht the model, he cannot find them.
in the parsing of shop example the table "product" are ignored.
In the table view: "Ordering", "Status" should be optional. Therefore a new language element should be defined to configure if the respective code has to be generated or not. This also requires adaption of the code generators.
*.eJSL files are empty when you don’t click the "Save Model"-Button in the web editor. There should be a warning when you have unsaved changes in your model file.
A DetailPageField can be defined with a HTMLType. To ensure a suitable type for the related entity, a validation constraint must be defined.
The implemented constraint which is violated if an extension package contains another should be removed since this is actually a feature of the eJSL langugae.
jorobo (robo) composer package to replace dates and copyrights etc....
-1 and all other numbers other than 0 and 1 fail. Generator should allow a more sophisticated model.
Teilweise löst das Löschen eines größeren Bereichs des Models einen Absturz von Eclipse hervor. Es tritt besonders dann auf, wenn das Model sehr groß ist. Das Löschen von Abschnitten wird dadurch sehr umständlich gemacht, da ich nicht mehr als 5 Zeilen auf einmal löschen kann.
Der Error ist ein SegmentationFault SIGSEGV
#
# A fatal error has been detected by the Java Runtime Environment:
#
# SIGSEGV (0xb) at pc=0x00007fffc1d77ff1, pid=572, tid=0x0000000000000307
#
# JRE version: Java(TM) SE Runtime Environment (8.0_111-b14) (build 1.8.0_111-b14)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.111-b14 mixed mode bsd-amd64 compressed oops)
# Problematic frame:
# C [libsystem_platform.dylib+0x5ff1] _platform_memmove$VARIANT$Haswell+0x151
#
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# An error report file with more information is saved as:
# /Applications/Eclipse.app/Contents/MacOS/hs_err_pid572.log
#
# If you would like to submit a bug report, please visit:
# http://bugreport.java.com/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#
Language placeholders are not resolved (sometimes?). If no language is defined, the generator currently creates both en-GB languages (normal and sys). However, if no system language is defined in the model, no default system language file is generated.
Therefor it would be better to generate a default sysstem language file, if no one is defined in the model.
the new extracted Extension cannot be generated.
@orionstardev found the following issue:
DetailsPage Item {
*Entities item, location
editFields {
item.^title {
type = Text_Field
field attributes {
Key required="true",
Key filter="HTML"
}
},
........................
}
*ParameterGroups PGViewsettings, PGImages, PGGeneral
<--- causes component crash
*Globalparameters date_format,accept_format
localparameters {
........................
}
Please have look at:
<fieldset name="«e.name.toLowerCase»"
label="«Slug.nameExtensionBind("com",component.name).toUpperCase»_FIELDSET_«page.name.toUpperCase»_«e.name.toUpperCase»"
<--- add missing fieldset tag closing '>' here
«FOR ExtendedParameterGroup e :
page.extendedParametersGroupsListe»<fieldset
name="«e.name.toLowerCase»"
label="«Slug.nameExtensionBind("com",component.name).toUpperCase»_FIELDSET_«page.name.toUpperCase»_«e.name.toUpperCase»" <---
add missing fieldset tag closing '>' here
Add above fix also in code for joomla4.
Image or file cannot be loaded
The database queries are currently only escaped for forms, not for every query. Discuss with Roland and Joe, if this should be done per default for every query or only for vulnerable queries.
When a plugin is modelled with eJSL, the Plugintype must be given before the language specification. I would recommend changing the order of these model elements in the eJSL language definition.
Related: #44
jext2ejsl have to put a circumflex before keywords.
For instance:
Attribute position {
type = Text
}
should be
Attribute **^**position {
type = Text
}
Bei mindestens dem Identifier size bekomme ich einen Fehler, wenn ich ihn als Attribute verwende.
Der angezeigte Fehler lautet: mismatched character '{' expecting '='
Dies führt zu dem besagten Fehler:
Attribute size {
type = Integer Not Null
}
Ohne Leerzeichen kommt kein Fehler:
Attribute size{
type = Integer Not Null
}
Beim ändern des Namens kommt ebenfalls kein Fehler:
Attribute sizee {
type = Integer Not Null
}
The permission tab in the detail page should be optional. This requires an adjustment in the language and the generator.
Die Auswahl des Pfades von 'src-gen' soll in allen GUIs weiter oben und markanter dargestellt werden. Weiterhin sollten übrige Optionen im Wizard standardmässig ausgeblendet werden und default-Werte sollen dafür verwendet werden.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.