diff --git a/README.md b/README.md
index 4054460dc..8b4a95e65 100644
--- a/README.md
+++ b/README.md
@@ -45,7 +45,7 @@ due to [Automated Component Builder] (https://www.vdm.io/joomla-component-builde
> (if creating a folder and file took **5 seconds** and writing one line of code took **10 seconds**,
> never making one mistake or taking any coffee break.)
-+ *Line count*: **80459**
++ *Line count*: **80468**
+ *File count*: **494**
+ *Folder count*: **97**
diff --git a/admin/assets/images/icons/compiler.png b/admin/assets/images/icons/compiler.png
new file mode 100644
index 000000000..7d383b428
Binary files /dev/null and b/admin/assets/images/icons/compiler.png differ
diff --git a/admin/compiler/com_costbenefitprojection_v3_3_8__J3/media/footable/js/.jshintrc b/admin/compiler/com_costbenefitprojection_v3_3_8__J3/media/footable/js/.jshintrc
deleted file mode 100644
index 6d98f8636..000000000
--- a/admin/compiler/com_costbenefitprojection_v3_3_8__J3/media/footable/js/.jshintrc
+++ /dev/null
@@ -1,29 +0,0 @@
-{
- "curly": false,
- "eqeqeq": false,
- "forin": false,
- "indent": false,
- "newcap": false,
- "plusplus": false,
- "quotmark": false,
- "undef": false,
- "unused": false,
- "strict": false,
- "trailing": false,
- "maxparams": false,
- "maxdepth": false,
- "maxstatements": false,
- "maxcomplexity": false,
- "maxlen": false,
-
- "eqnull": true,
- "loopfunc": true,
- "smarttabs": true,
- "sub": true,
-
- "browser": true,
- "jquery": true,
- "node": true,
-
- "white": false
-}
\ No newline at end of file
diff --git a/admin/helpers/componentbuilder.php b/admin/helpers/componentbuilder.php
index 859a7147c..db8391c51 100644
--- a/admin/helpers/componentbuilder.php
+++ b/admin/helpers/componentbuilder.php
@@ -319,6 +319,11 @@ abstract class ComponentbuilderHelper
$user = JFactory::getUser();
// load the submenus to sidebar
JHtmlSidebar::addEntry(JText::_('COM_COMPONENTBUILDER_SUBMENU_DASHBOARD'), 'index.php?option=com_componentbuilder&view=componentbuilder', $submenu == 'componentbuilder');
+ // Access control (compiler.submenu).
+ if ($user->authorise('compiler.submenu', 'com_componentbuilder'))
+ {
+ JHtmlSidebar::addEntry(JText::_('COM_COMPONENTBUILDER_SUBMENU_COMPILER'), 'index.php?option=com_componentbuilder&view=compiler', $submenu == 'compiler');
+ }
JHtmlSidebar::addEntry(JText::_('COM_COMPONENTBUILDER_SUBMENU_COMPONENTS'), 'index.php?option=com_componentbuilder&view=components', $submenu == 'components');
if ($user->authorise('admin_view.access', 'com_componentbuilder') && $user->authorise('admin_view.submenu', 'com_componentbuilder'))
{
diff --git a/admin/language/en-GB/en-GB.com_componentbuilder.ini b/admin/language/en-GB/en-GB.com_componentbuilder.ini
index 3ca0cf2db..5bc76a450 100644
--- a/admin/language/en-GB/en-GB.com_componentbuilder.ini
+++ b/admin/language/en-GB/en-GB.com_componentbuilder.ini
@@ -1443,6 +1443,7 @@ COM_COMPONENTBUILDER_DASH="Dashboard"
COM_COMPONENTBUILDER_DASHBOARD="Component Builder Dashboard"
COM_COMPONENTBUILDER_DASHBOARD_ADMIN_VIEWS="Admin Views
"
COM_COMPONENTBUILDER_DASHBOARD_ADMIN_VIEW_ADD="Add Admin View
"
+COM_COMPONENTBUILDER_DASHBOARD_COMPILER="Compiler
"
COM_COMPONENTBUILDER_DASHBOARD_COMPONENTS="Components
"
COM_COMPONENTBUILDER_DASHBOARD_COMPONENT_ADD="Add Component
"
COM_COMPONENTBUILDER_DASHBOARD_CUSTOM_ADMIN_VIEWS="Custom Admin Views
"
@@ -2823,6 +2824,7 @@ COM_COMPONENTBUILDER_SNIPPET_USAGE_LABEL="Usage"
COM_COMPONENTBUILDER_SNIPPET_VERSION_DESC="A count of the number of times this Snippet has been revised."
COM_COMPONENTBUILDER_SNIPPET_VERSION_LABEL="Revision"
COM_COMPONENTBUILDER_SUBMENU_ADMIN_VIEWS="Admin Views"
+COM_COMPONENTBUILDER_SUBMENU_COMPILER="Compiler"
COM_COMPONENTBUILDER_SUBMENU_COMPONENTS="Components"
COM_COMPONENTBUILDER_SUBMENU_CUSTOM_ADMIN_VIEWS="Custom Admin Views"
COM_COMPONENTBUILDER_SUBMENU_DASHBOARD="Dashboard"
diff --git a/admin/language/en-GB/en-GB.com_componentbuilder.sys.ini b/admin/language/en-GB/en-GB.com_componentbuilder.sys.ini
index cc8ca531d..fdeb4f482 100644
--- a/admin/language/en-GB/en-GB.com_componentbuilder.sys.ini
+++ b/admin/language/en-GB/en-GB.com_componentbuilder.sys.ini
@@ -2,6 +2,7 @@ COM_COMPONENTBUILDER="Component Builder"
COM_COMPONENTBUILDER_CONFIGURATION="Component Builder Configuration"
COM_COMPONENTBUILDER_MENU="» Component Builder"
COM_COMPONENTBUILDER_MENU_ADMIN_VIEWS="Admin Views"
+COM_COMPONENTBUILDER_MENU_COMPILER="Compiler"
COM_COMPONENTBUILDER_MENU_COMPONENTS="Components"
COM_COMPONENTBUILDER_MENU_CUSTOM_ADMIN_VIEWS="Custom Admin Views"
COM_COMPONENTBUILDER_MENU_DYNAMIC_GETS="Dynamic Gets"
diff --git a/admin/models/componentbuilder.php b/admin/models/componentbuilder.php
index 5a1065712..267325acb 100644
--- a/admin/models/componentbuilder.php
+++ b/admin/models/componentbuilder.php
@@ -44,7 +44,7 @@ class ComponentbuilderModelComponentbuilder extends JModelList
$icons = array();
// view groups array
$viewGroups = array(
- 'main' => array('png.component.add', 'png.components', 'png.admin_view.add', 'png.admin_views', 'png.custom_admin_view.add', 'png.custom_admin_views', 'png.site_view.add', 'png.site_views', 'png.template.add', 'png.templates', 'png.layout.add', 'png.layouts', 'png.dynamic_get.add', 'png.dynamic_gets', 'png.snippet.add', 'png.snippets', 'png.field.add', 'png.fields', 'png.fields.catid', 'png.fieldtype.add', 'png.fieldtypes', 'png.fieldtypes.catid', 'png.help_document.add', 'png.help_documents')
+ 'main' => array('png.compiler', 'png.component.add', 'png.components', 'png.admin_view.add', 'png.admin_views', 'png.custom_admin_view.add', 'png.custom_admin_views', 'png.site_view.add', 'png.site_views', 'png.template.add', 'png.templates', 'png.layout.add', 'png.layouts', 'png.dynamic_get.add', 'png.dynamic_gets', 'png.snippet.add', 'png.snippets', 'png.field.add', 'png.fields', 'png.fields.catid', 'png.fieldtype.add', 'png.fieldtypes', 'png.fieldtypes.catid', 'png.help_document.add', 'png.help_documents')
);
// view access array
$viewAccess = array(
diff --git a/componentbuilder.xml b/componentbuilder.xml
index fe49fd5ec..eee388872 100644
--- a/componentbuilder.xml
+++ b/componentbuilder.xml
@@ -70,6 +70,7 @@