diff --git a/src/Plugin.php b/src/Plugin.php index b0975c1..01a0ab2 100755 --- a/src/Plugin.php +++ b/src/Plugin.php @@ -9,6 +9,7 @@ use craft\base\Plugin as BasePlugin; use craft\elements\Entry; use craft\events\DefineHtmlEvent; +use craft\helpers\UrlHelper; use craft\web\Controller; use craft\web\View; use fostercommerce\entrytyperules\assetbundles\entrytyperules\EntryTypeRulesAsset; @@ -73,6 +74,8 @@ public function getSettingsResponse(): mixed [ 'settings' => $this->getSettings(), 'overrides' => $overrides, + 'sectionsUrl' => UrlHelper::cpUrl('settings/sections'), + 'entriesUrl' => UrlHelper::cpUrl('entries'), ] ); } diff --git a/src/assetbundles/entrytyperules/EntryTypeRulesAsset.php b/src/assetbundles/entrytyperules/EntryTypeRulesAsset.php index 6ee8034..07826ea 100755 --- a/src/assetbundles/entrytyperules/EntryTypeRulesAsset.php +++ b/src/assetbundles/entrytyperules/EntryTypeRulesAsset.php @@ -1,4 +1,5 @@ - - {{ "Warning"|t('entry-type-rules') }}: - {{ "The Entry Type Rules plugin settings are being overridden in the 'config/entry-type-rules.php' file."|t('entry-type-rules') }} -

-
- {% endif %} - - {{ actionInput('entry-type-rules/settings/save-settings') }} - - {{ forms.hidden({ - name: 'pluginHandle', - value: 'entry-type-rules'}) - }} - - {% for section in sections | filter(section => section.type != 'single') %} - - {% if not loop.first %}
{% endif %} - -
-

{{ section.name ~ ' ' ~ section.type|capitalize ~ ' ' ~ "Section"|t('entry-type-rules') }}

- - - - - - - - - - {% for entryType in section.entryTypes %} - {% set entryTypeCount = craft.entries.section(section.handle).type(entryType.handle).count %} - {% set limitValue = settings.sections[section.handle][entryType.handle].limit|default('') %} - - - - - - {% endfor %} - -
- - {{ "Entry Type"|t('entry-type-rules') }} - {{ "The entry type and its current total entry count."|t('entry-type-rules') }} - - - - {{ "Limit"|t('entry-type-rules') }} - - {{ "Limit the number of entries for the entry type."|t('entry-type-rules') }}
- {{ "Leave blank or set to zero to remove limits for the entry type."|t('entry-type-rules') }} -
-
-
- - {{ "User Groups"|t('entry-type-rules') }} - - {{ "Limit which user groups can add new entries for the entry type."|t('entry-type-rules') }}
- {{ "Admin users will always be able to add new entries."|t('entry-type-rules') }} -
-
-
- {{ entryType.name }} {{ entryType.handle }}
- - {{ "Entries"|t('entry-type-rules') }}: {{ entryTypeCount }} - - -
-
- {{ forms.textField({ - id: (entryType.handle ~ '_limit'), - name: ('sections[' ~ section.handle ~ ']['~ entryType.handle ~ '][limit]'), - type: 'number', - size: 5, - min: 0, - value: limitValue, - placeholder: '0', - unit: "Entries"|t('entry-type-rules'), - }) }} -
-
- {{ forms.checkboxSelectField({ - id: (entryType.handle ~ '_userGroups'), - name: ('sections[' ~ section.handle ~ ']['~ entryType.handle ~ '][userGroups]'), - options: groupOptions, - showAllOption: true, - allValue: '', - values: settings.sections[section.handle][entryType.handle].userGroups|default('') - }) }} -
-
- - {% endfor %} + {% if sections is empty %} +
+

{{ 'configureSections'|t('entry-type-rules', {'url' : sectionsUrl })|raw }}

+
+ {% elseif not craft.entries.count() %} +
+

{{ 'configureEntries'|t('entry-type-rules', {'url' : entriesUrl })|raw }}

+
+ {% else %} + + {% if configOverride %} +

+ + {{ "Warning"|t('entry-type-rules') }}: + {{ "The Entry Type Rules plugin settings are being overridden in the 'config/entry-type-rules.php' file."|t('entry-type-rules') }} +

+
+ {% endif %} + + {{ actionInput('entry-type-rules/settings/save-settings') }} + + {{ forms.hidden({ + name: 'pluginHandle', + value: 'entry-type-rules'}) + }} + + {% for section in sections | filter(section => section.type != 'single') %} + + {% if not loop.first %}
{% endif %} + +
+

{{ section.name ~ ' ' ~ section.type|capitalize ~ ' ' ~ "Section"|t('entry-type-rules') }}

+ + + + + + + + + + {% for entryType in section.entryTypes %} + {% set entryTypeCount = craft.entries.section(section.handle).type(entryType.handle).count %} + {% set limitValue = settings.sections[section.handle][entryType.handle].limit|default('') %} + + + + + + {% endfor %} + +
+ + {{ "Entry Type"|t('entry-type-rules') }} + {{ "The entry type and its current total entry count."|t('entry-type-rules') }} + + + + {{ "Limit"|t('entry-type-rules') }} + + {{ "Limit the number of entries for the entry type."|t('entry-type-rules') }}
+ {{ "Leave blank or set to zero to remove limits for the entry type."|t('entry-type-rules') }} +
+
+
+ + {{ "User Groups"|t('entry-type-rules') }} + + {{ "Limit which user groups can add new entries for the entry type."|t('entry-type-rules') }}
+ {{ "Admin users will always be able to add new entries."|t('entry-type-rules') }} +
+
+
+ {{ entryType.name }} {{ entryType.handle }}
+ + {{ "Entries"|t('entry-type-rules') }}: {{ entryTypeCount }} + + +
+
+ {{ forms.textField({ + id: (entryType.handle ~ '_limit'), + name: ('sections[' ~ section.handle ~ ']['~ entryType.handle ~ '][limit]'), + type: 'number', + size: 5, + min: 0, + value: limitValue, + placeholder: '0', + unit: "Entries"|t('entry-type-rules'), + }) }} +
+
+ {{ forms.checkboxSelectField({ + id: (entryType.handle ~ '_userGroups'), + name: ('sections[' ~ section.handle ~ ']['~ entryType.handle ~ '][userGroups]'), + options: groupOptions, + showAllOption: true, + allValue: '', + values: settings.sections[section.handle][entryType.handle].userGroups|default('') + }) }} +
+
+ + {% endfor %} + {% endif %} {% endblock %} diff --git a/src/translations/en/entry-type-rules.php b/src/translations/en/entry-type-rules.php index 2739c4a..9a0130c 100755 --- a/src/translations/en/entry-type-rules.php +++ b/src/translations/en/entry-type-rules.php @@ -1,4 +1,5 @@ 'Limit which user groups can add new entries for the entry type.', 'Admin users will always be able to add new entries.' => 'Admin users will always be able to add new entries.', 'Entries' => 'Entries', + 'configureSections' => 'You need to configure some Sections first.', + 'configureEntries' => 'You need to create some entries first.

', ];