From 7a680bb734846e4938897ba97302c083610a7c0a Mon Sep 17 00:00:00 2001 From: aB0t Date: Fri, 21 Jun 2024 01:32:05 +0200 Subject: [PATCH] Release of v3.2.2-alpha5 Add repositories for better integration with gitea. Refactored the Data classes. Add new Data classes. --- CHANGELOG.md | 9 +- README.md | 14 +- admin/README.txt | 14 +- admin/access.xml | 23 + admin/assets/css/repositories.css | 13 + admin/assets/css/repository.css | 13 + admin/assets/images/icons/repositories.png | Bin 0 -> 20768 bytes admin/config.xml | 139 +- admin/controller.php | 1 + admin/controllers/repositories.php | 50 + admin/controllers/repository.php | 329 ++++ admin/helpers/componentbuilder.php | 4 + .../en-GB/en-GB.com_componentbuilder.ini | 188 +- .../en-GB/en-GB.com_componentbuilder.sys.ini | 24 + admin/layouts/field/database_right.php | 1 - admin/layouts/fieldtype/fields_fullwidth.php | 2 +- .../joomla_component/details_right.php | 6 - admin/layouts/repository/details_above.php | 46 + admin/layouts/repository/details_left.php | 45 + admin/layouts/repository/details_right.php | 45 + .../layouts/repository}/index.html | 0 admin/layouts/repository/publishing.php | 47 + admin/layouts/repository/publlshing.php | 47 + admin/models/componentbuilder.php | 7 +- admin/models/field.php | 61 +- admin/models/fields.php | 13 +- .../models/fields/repositoriesfilterbase.php | 71 + .../fields/repositoriesfilterorganisation.php | 71 + .../fields/repositoriesfilterrepository.php | 71 + .../fields/repositoriesfiltertarget.php | 75 + admin/models/fields/superpowerpaths.php | 83 +- admin/models/fieldtype.php | 13 +- admin/models/forms/field.xml | 100 +- admin/models/forms/fieldtype.xml | 2 - admin/models/forms/filter_repositories.xml | 103 + admin/models/forms/joomla_component.xml | 1553 +++++++-------- admin/models/forms/repository.xml | 302 +++ admin/models/joomla_component.php | 312 ++- admin/models/joomla_components.php | 65 +- admin/models/powers.php | 70 +- admin/models/repositories.php | 464 +++++ admin/models/repository.php | 916 +++++++++ admin/sql/install.mysql.utf8.sql | 114 +- admin/sql/uninstall.mysql.utf8.sql | 1 + admin/tables/repository.php | 336 ++++ admin/views/admin_view/tmpl/edit.php | 368 ++-- admin/views/class_method/tmpl/edit.php | 10 +- admin/views/class_property/tmpl/edit.php | 10 +- admin/views/custom_admin_view/tmpl/edit.php | 100 +- admin/views/custom_code/tmpl/edit.php | 144 +- admin/views/dynamic_get/tmpl/edit.php | 454 ++--- admin/views/field/tmpl/edit.php | 118 +- admin/views/fieldtype/tmpl/edit.php | 378 ++-- admin/views/fieldtype/view.html.php | 2 +- admin/views/help_document/tmpl/edit.php | 90 +- admin/views/joomla_component/tmpl/edit.php | 178 +- admin/views/joomla_module/tmpl/edit.php | 174 +- admin/views/joomla_plugin/tmpl/edit.php | 212 +- admin/views/layout/tmpl/edit.php | 10 +- admin/views/library/tmpl/edit.php | 176 +- admin/views/power/tmpl/edit.php | 10 +- admin/views/power/view.html.php | 2 +- .../views/repositories}/index.html | 0 admin/views/repositories/tmpl/default.php | 74 + .../repositories/tmpl/default_batch_body.php | 21 + .../tmpl/default_batch_footer.php | 25 + .../views/repositories/tmpl/default_body.php | 110 ++ .../views/repositories/tmpl/default_foot.php | 18 + .../views/repositories/tmpl/default_head.php | 65 + .../repositories/tmpl/default_toolbar.php | 48 + .../views/repositories/tmpl}/index.html | 0 admin/views/repositories/view.html.php | 328 ++++ admin/views/repository/submitbutton.js | 25 + admin/views/repository/tmpl/edit.php | 105 + .../views/repository/tmpl}/index.html | 0 admin/views/repository/view.html.php | 215 ++ admin/views/server/tmpl/edit.php | 86 +- admin/views/site_view/tmpl/edit.php | 110 +- admin/views/template/tmpl/edit.php | 10 +- componentbuilder.xml | 6 +- componentbuilder_update_server.xml | 6 +- .../VDM.Joomla/src/Abstraction/Grep.php | 16 +- .../VDM.Joomla/src/Abstraction/Model.php | 106 +- .../src/Componentbuilder/Compiler/Config.php | 196 +- .../src/Componentbuilder/Compiler/Factory.php | 6 +- .../src/Componentbuilder/Compiler/Power.php | 56 +- .../Compiler/Service/JoomlaPower.php | 62 +- .../Compiler/Service/Power.php | 95 +- .../Interfaces/SuperInterface.php | 52 - .../Componentbuilder/JoomlaPower/Config.php | 69 +- .../JoomlaPower/Database/Insert.php | 34 - .../JoomlaPower/Database/Load.php | 34 - .../JoomlaPower/Database/Update.php | 34 - .../Componentbuilder/JoomlaPower/Factory.php | 8 +- .../src/Componentbuilder/JoomlaPower/Grep.php | 33 +- .../JoomlaPower/Model/Load.php | 37 - .../JoomlaPower/Model/Upsert.php | 38 - .../JoomlaPower/Service/Database.php | 135 -- .../JoomlaPower/Service/JoomlaPower.php | 3 +- .../Componentbuilder/JoomlaPower/Super.php | 6 +- .../src/Componentbuilder/Power/Config.php | 148 +- .../src/Componentbuilder/Power/Factory.php | 8 +- .../Power/Generator/Search.php | 6 +- .../src/Componentbuilder/Power/Grep.php | 54 +- .../Power/Service/Database.php | 135 -- .../Power/Service/Generator.php | 2 +- .../Componentbuilder/Power/Service/Power.php | 3 +- .../src/Componentbuilder/Power/Super.php | 168 +- .../VDM.Joomla/src/Componentbuilder/Table.php | 1746 +++++++++-------- .../Utilities/FilterHelper.php | 36 + .../Componentbuilder/Utilities/RepoHelper.php | 78 + .../VDM.Joomla/src/Data/Action/Delete.php | 112 ++ .../Power/Database => Data/Action}/Insert.php | 66 +- .../Power/Database => Data/Action}/Load.php | 66 +- .../Power/Database => Data/Action}/Update.php | 88 +- .../Power/Model => Data/Action}/index.html | 0 .../vendor_jcb/VDM.Joomla/src/Data/Item.php | 254 +++ .../vendor_jcb/VDM.Joomla/src/Data/Items.php | 351 ++++ .../vendor_jcb/VDM.Joomla/src/Data/Remote.php | 169 ++ .../VDM.Joomla/src/Database/Delete.php | 132 ++ .../VDM.Joomla/src/Database/Load.php | 46 +- .../src/Interfaces/Data/DeleteInterface.php | 60 + .../Data}/InsertInterface.php | 25 +- .../src/Interfaces/Data/ItemInterface.php | 86 + .../src/Interfaces/Data/ItemsInterface.php | 85 + .../Data}/LoadInterface.php | 31 +- .../src/Interfaces/Data/RemoteInterface.php | 69 + .../Data}/UpdateInterface.php | 36 +- .../VDM.Joomla/src/Interfaces/Data/index.html | 1 + .../src/Interfaces/DeleteInterface.php | 43 + .../src/Interfaces/ModelInterface.php | 40 +- .../Power => }/Model/Load.php | 29 +- .../Power => }/Model/Upsert.php | 28 +- .../VDM.Joomla/src/Model/index.html | 1 + .../VDM.Joomla/src/Service/Data.php | 162 ++ .../Service/Database.php | 19 +- .../VDM.Joomla/src/Service/Model.php | 75 + .../VDM.Joomla/src/Service/index.html | 1 + media/js/admin_view.js | 400 ++-- media/js/class_method.js | 38 +- media/js/class_property.js | 38 +- media/js/custom_admin_view.js | 100 +- media/js/custom_code.js | 84 +- media/js/dynamic_get.js | 1374 ++++++------- media/js/field.js | 287 ++- media/js/fieldtype.js | 826 ++++---- media/js/help_document.js | 304 +-- media/js/joomla_component.js | 219 +-- media/js/joomla_module.js | 166 +- media/js/joomla_plugin.js | 214 +- media/js/layout.js | 10 +- media/js/library.js | 432 ++-- media/js/power.js | 10 +- media/js/repository.js | 11 + media/js/server.js | 546 +++--- media/js/site_view.js | 128 +- media/js/template.js | 10 +- script.php | 221 ++- .../en-GB/en-GB.com_componentbuilder.ini | 1 + 159 files changed, 12830 insertions(+), 7619 deletions(-) create mode 100644 admin/assets/css/repositories.css create mode 100644 admin/assets/css/repository.css create mode 100644 admin/assets/images/icons/repositories.png create mode 100644 admin/controllers/repositories.php create mode 100644 admin/controllers/repository.php create mode 100644 admin/layouts/repository/details_above.php create mode 100644 admin/layouts/repository/details_left.php create mode 100644 admin/layouts/repository/details_right.php rename {libraries/vendor_jcb/VDM.Joomla/src/Componentbuilder/Interfaces/Database => admin/layouts/repository}/index.html (100%) create mode 100644 admin/layouts/repository/publishing.php create mode 100644 admin/layouts/repository/publlshing.php create mode 100644 admin/models/fields/repositoriesfilterbase.php create mode 100644 admin/models/fields/repositoriesfilterorganisation.php create mode 100644 admin/models/fields/repositoriesfilterrepository.php create mode 100644 admin/models/fields/repositoriesfiltertarget.php create mode 100644 admin/models/forms/filter_repositories.xml create mode 100644 admin/models/forms/repository.xml create mode 100644 admin/models/repositories.php create mode 100644 admin/models/repository.php create mode 100644 admin/tables/repository.php rename {libraries/vendor_jcb/VDM.Joomla/src/Componentbuilder/JoomlaPower/Database => admin/views/repositories}/index.html (100%) create mode 100644 admin/views/repositories/tmpl/default.php create mode 100644 admin/views/repositories/tmpl/default_batch_body.php create mode 100644 admin/views/repositories/tmpl/default_batch_footer.php create mode 100644 admin/views/repositories/tmpl/default_body.php create mode 100644 admin/views/repositories/tmpl/default_foot.php create mode 100644 admin/views/repositories/tmpl/default_head.php create mode 100644 admin/views/repositories/tmpl/default_toolbar.php rename {libraries/vendor_jcb/VDM.Joomla/src/Componentbuilder/JoomlaPower/Model => admin/views/repositories/tmpl}/index.html (100%) create mode 100644 admin/views/repositories/view.html.php create mode 100644 admin/views/repository/submitbutton.js create mode 100644 admin/views/repository/tmpl/edit.php rename {libraries/vendor_jcb/VDM.Joomla/src/Componentbuilder/Power/Database => admin/views/repository/tmpl}/index.html (100%) create mode 100644 admin/views/repository/view.html.php delete mode 100644 libraries/vendor_jcb/VDM.Joomla/src/Componentbuilder/Interfaces/SuperInterface.php delete mode 100644 libraries/vendor_jcb/VDM.Joomla/src/Componentbuilder/JoomlaPower/Database/Insert.php delete mode 100644 libraries/vendor_jcb/VDM.Joomla/src/Componentbuilder/JoomlaPower/Database/Load.php delete mode 100644 libraries/vendor_jcb/VDM.Joomla/src/Componentbuilder/JoomlaPower/Database/Update.php delete mode 100644 libraries/vendor_jcb/VDM.Joomla/src/Componentbuilder/JoomlaPower/Model/Load.php delete mode 100644 libraries/vendor_jcb/VDM.Joomla/src/Componentbuilder/JoomlaPower/Model/Upsert.php delete mode 100644 libraries/vendor_jcb/VDM.Joomla/src/Componentbuilder/JoomlaPower/Service/Database.php delete mode 100644 libraries/vendor_jcb/VDM.Joomla/src/Componentbuilder/Power/Service/Database.php create mode 100644 libraries/vendor_jcb/VDM.Joomla/src/Componentbuilder/Utilities/RepoHelper.php create mode 100644 libraries/vendor_jcb/VDM.Joomla/src/Data/Action/Delete.php rename libraries/vendor_jcb/VDM.Joomla/src/{Componentbuilder/Power/Database => Data/Action}/Insert.php (66%) rename libraries/vendor_jcb/VDM.Joomla/src/{Componentbuilder/Power/Database => Data/Action}/Load.php (70%) rename libraries/vendor_jcb/VDM.Joomla/src/{Componentbuilder/Power/Database => Data/Action}/Update.php (53%) rename libraries/vendor_jcb/VDM.Joomla/src/{Componentbuilder/Power/Model => Data/Action}/index.html (100%) create mode 100644 libraries/vendor_jcb/VDM.Joomla/src/Data/Item.php create mode 100644 libraries/vendor_jcb/VDM.Joomla/src/Data/Items.php create mode 100644 libraries/vendor_jcb/VDM.Joomla/src/Data/Remote.php create mode 100644 libraries/vendor_jcb/VDM.Joomla/src/Database/Delete.php create mode 100644 libraries/vendor_jcb/VDM.Joomla/src/Interfaces/Data/DeleteInterface.php rename libraries/vendor_jcb/VDM.Joomla/src/{Componentbuilder/Interfaces/Database => Interfaces/Data}/InsertInterface.php (80%) create mode 100644 libraries/vendor_jcb/VDM.Joomla/src/Interfaces/Data/ItemInterface.php create mode 100644 libraries/vendor_jcb/VDM.Joomla/src/Interfaces/Data/ItemsInterface.php rename libraries/vendor_jcb/VDM.Joomla/src/{Componentbuilder/Power/Database => Interfaces/Data}/LoadInterface.php (78%) create mode 100644 libraries/vendor_jcb/VDM.Joomla/src/Interfaces/Data/RemoteInterface.php rename libraries/vendor_jcb/VDM.Joomla/src/{Componentbuilder/Interfaces/Database => Interfaces/Data}/UpdateInterface.php (65%) create mode 100644 libraries/vendor_jcb/VDM.Joomla/src/Interfaces/Data/index.html create mode 100644 libraries/vendor_jcb/VDM.Joomla/src/Interfaces/DeleteInterface.php rename libraries/vendor_jcb/VDM.Joomla/src/{Componentbuilder/Power => }/Model/Load.php (84%) rename libraries/vendor_jcb/VDM.Joomla/src/{Componentbuilder/Power => }/Model/Upsert.php (86%) create mode 100644 libraries/vendor_jcb/VDM.Joomla/src/Model/index.html create mode 100644 libraries/vendor_jcb/VDM.Joomla/src/Service/Data.php rename libraries/vendor_jcb/VDM.Joomla/src/{Componentbuilder => }/Service/Database.php (79%) create mode 100644 libraries/vendor_jcb/VDM.Joomla/src/Service/Model.php create mode 100644 libraries/vendor_jcb/VDM.Joomla/src/Service/index.html create mode 100644 media/js/repository.js diff --git a/CHANGELOG.md b/CHANGELOG.md index 47d658998..c33b83af7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,12 +1,15 @@ -# v3.2.2-alpha4 +# v3.2.2-alpha5 -- Update the Schema class to also update null mismatching if needed +- Add repositories for better integration with gitea +- Refactored the Data classes +- Add new Data classes # v3.2.2-alpha - Fix auto build from SQL in Joomla 4 and 5. - Fix permission issue for admin views. -- Add extending options to interfaces. +- Add extending options to interfaces. +- Update the Schema class to also update null mismatching if needed # v3.2.1 diff --git a/README.md b/README.md index b8c6bfd2d..983eed31a 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ The Component Builder for [Joomla](https://extensions.joomla.org/extension/compo Whether you're a seasoned [Joomla](https://extensions.joomla.org/extension/component-builder/) developer, or have just started, Component Builder will save you lots of time and money. A real must have! -You can install it quite easily and with no limitations. On [gitea](https://git.vdm.dev/joomla/Component-Builder/tags) is the latest release (3.2.2-alpha4) with **ALL** its features and **ALL** concepts totally open-source and free! +You can install it quite easily and with no limitations. On [gitea](https://git.vdm.dev/joomla/Component-Builder/tags) is the latest release (3.2.2-alpha5) with **ALL** its features and **ALL** concepts totally open-source and free! > Watch Quick Build of a Hello World component in [JCB on Youtube](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=45) @@ -144,14 +144,14 @@ TODO + *Author*: [Llewellyn van der Merwe](mailto:joomla@vdm.io) + *Name*: [Component Builder](https://git.vdm.dev/joomla/Component-Builder) + *First Build*: 30th April, 2015 -+ *Last Build*: 7th June, 2024 -+ *Version*: 3.2.2-alpha4 ++ *Last Build*: 20th June, 2024 ++ *Version*: 3.2.2-alpha5 + *Copyright*: Copyright (C) 2015 Vast Development Method. All rights reserved. + *License*: GNU General Public License version 2 or later; see LICENSE.txt -+ *Line count*: **765384** -+ *Field count*: **2100** -+ *File count*: **5304** -+ *Folder count*: **471** ++ *Line count*: **773763** ++ *Field count*: **2104** ++ *File count*: **5362** ++ *Folder count*: **474** > This **component** was build with a [Joomla](https://extensions.joomla.org/extension/component-builder/) [Automated Component Builder](https://www.joomlacomponentbuilder.com). > Developed by [Llewellyn van der Merwe](mailto:joomla@vdm.io) diff --git a/admin/README.txt b/admin/README.txt index b8c6bfd2d..983eed31a 100644 --- a/admin/README.txt +++ b/admin/README.txt @@ -9,7 +9,7 @@ The Component Builder for [Joomla](https://extensions.joomla.org/extension/compo Whether you're a seasoned [Joomla](https://extensions.joomla.org/extension/component-builder/) developer, or have just started, Component Builder will save you lots of time and money. A real must have! -You can install it quite easily and with no limitations. On [gitea](https://git.vdm.dev/joomla/Component-Builder/tags) is the latest release (3.2.2-alpha4) with **ALL** its features and **ALL** concepts totally open-source and free! +You can install it quite easily and with no limitations. On [gitea](https://git.vdm.dev/joomla/Component-Builder/tags) is the latest release (3.2.2-alpha5) with **ALL** its features and **ALL** concepts totally open-source and free! > Watch Quick Build of a Hello World component in [JCB on Youtube](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=45) @@ -144,14 +144,14 @@ TODO + *Author*: [Llewellyn van der Merwe](mailto:joomla@vdm.io) + *Name*: [Component Builder](https://git.vdm.dev/joomla/Component-Builder) + *First Build*: 30th April, 2015 -+ *Last Build*: 7th June, 2024 -+ *Version*: 3.2.2-alpha4 ++ *Last Build*: 20th June, 2024 ++ *Version*: 3.2.2-alpha5 + *Copyright*: Copyright (C) 2015 Vast Development Method. All rights reserved. + *License*: GNU General Public License version 2 or later; see LICENSE.txt -+ *Line count*: **765384** -+ *Field count*: **2100** -+ *File count*: **5304** -+ *Folder count*: **471** ++ *Line count*: **773763** ++ *Field count*: **2104** ++ *File count*: **5362** ++ *Folder count*: **474** > This **component** was build with a [Joomla](https://extensions.joomla.org/extension/component-builder/) [Automated Component Builder](https://www.joomlacomponentbuilder.com). > Developed by [Llewellyn van der Merwe](mailto:joomla@vdm.io) diff --git a/admin/access.xml b/admin/access.xml index 8bc3e282b..eb7688b8b 100644 --- a/admin/access.xml +++ b/admin/access.xml @@ -521,6 +521,18 @@ + + + + + + + + + + + + @@ -814,6 +826,17 @@ +
+ + + + + + + + + +
diff --git a/admin/assets/css/repositories.css b/admin/assets/css/repositories.css new file mode 100644 index 000000000..2731fc5aa --- /dev/null +++ b/admin/assets/css/repositories.css @@ -0,0 +1,13 @@ +/** + * @package Joomla.Component.Builder + * + * @created 30th April, 2015 + * @author Llewellyn van der Merwe + * @git Joomla Component Builder + * @copyright Copyright (C) 2015 Vast Development Method. All rights reserved. + * @license GNU General Public License version 2 or later; see LICENSE.txt + */ + +/* CSS Document */ + + diff --git a/admin/assets/css/repository.css b/admin/assets/css/repository.css new file mode 100644 index 000000000..2731fc5aa --- /dev/null +++ b/admin/assets/css/repository.css @@ -0,0 +1,13 @@ +/** + * @package Joomla.Component.Builder + * + * @created 30th April, 2015 + * @author Llewellyn van der Merwe + * @git Joomla Component Builder + * @copyright Copyright (C) 2015 Vast Development Method. All rights reserved. + * @license GNU General Public License version 2 or later; see LICENSE.txt + */ + +/* CSS Document */ + + diff --git a/admin/assets/images/icons/repositories.png b/admin/assets/images/icons/repositories.png new file mode 100644 index 0000000000000000000000000000000000000000..32d7a05590e4b488e1fbf2628fbdfd605f211714 GIT binary patch literal 20768 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 - - - -