Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 8 additions & 1 deletion src/Admin/Controller/SoldierController.php
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@
#[Route('/soldiers', 'soldier')]
class SoldierController extends AbstractCrudController
{
public const FREE_SOLDIER_LIMIT = 5;

protected string $listTemplate = '@ForumifyMilhqPlugin/admin/soldiers/list/list.html.twig';
protected string $formTemplate = '@ForumifyMilhqPlugin/admin/soldiers/edit/form.html.twig';

Expand Down Expand Up @@ -56,7 +58,7 @@ public function create(Request $request): Response
{
if (!$this->pluginVersionChecker->isVersionInstalled('forumify/forumify-milhq-plugin', ['basic', 'premium'])) {
$soldierCount = $this->soldierRepository->count([]);
if ($soldierCount >= 5) {
if ($soldierCount >= self::FREE_SOLDIER_LIMIT) {
$this->addFlash('error', 'You have exceeded the maximum allowed soldiers for the free version of MILHQ.');
return $this->redirectToRoute($this->getRoute('list'));
}
Expand Down Expand Up @@ -84,6 +86,11 @@ protected function templateParams(array $params = []): array
'soldier' => $soldier,
]);

if (!$this->pluginVersionChecker->isVersionInstalled('forumify/forumify-milhq-plugin', ['basic', 'premium'])) {
$params['freeSoldierCount'] = $this->soldierRepository->count([]);
$params['freeSoldierLimit'] = self::FREE_SOLDIER_LIMIT;
}

return $params;
}
}
3 changes: 2 additions & 1 deletion src/EventSubscriber/SoldierLicenseListener.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@

use Doctrine\Bundle\DoctrineBundle\Attribute\AsEntityListener;
use Doctrine\ORM\Events;
use Forumify\Milhq\Admin\Controller\SoldierController;
use Forumify\Milhq\Entity\Soldier;
use Forumify\Milhq\Repository\SoldierRepository;
use Forumify\Plugin\Service\PluginVersionChecker;
Expand All @@ -27,7 +28,7 @@ public function checkLicense(): void
}

$count = $this->soldierRepository->count([]);
if ($count >= 5) {
if ($count >= SoldierController::FREE_SOLDIER_LIMIT) {
throw new AccessDeniedException('You can only have up to 5 soldiers in the free version of MILHQ.');
}
}
Expand Down
13 changes: 13 additions & 0 deletions templates/admin/soldiers/list/list.html.twig
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,19 @@
{{ 'milhq.admin.soldiers.list.title'|trans }}
{% endblock %}
{% block body %}
{% if freeSoldierLimit is defined %}
{% if freeSoldierCount >= freeSoldierLimit %}
<div class="alert-error mb-4">
<p class="mb-2">{{ 'milhq.admin.soldiers.list.free_limit_reached'|trans({ 'count': freeSoldierCount, 'limit': freeSoldierLimit }) }}</p>
<a href="https://forumify.net/marketplace/product/forumify/forumify-milhq-plugin/9" target="_blank">{{ 'milhq.admin.soldiers.list.upgrade'|trans }}</a>
</div>
{% else %}
<div class="alert-info mb-4">
<p class="mb-2">{{ 'milhq.admin.soldiers.list.free_limit_info'|trans({ 'count': freeSoldierCount, 'limit': freeSoldierLimit }) }}</p>
<a href="https://forumify.net/marketplace/product/forumify/forumify-milhq-plugin/9" target="_blank">{{ 'milhq.admin.soldiers.list.upgrade'|trans }}</a>
</div>
{% endif %}
{% endif %}
<div class="flex justify-between items-center mb-4">
<span class="flex items-center gap-2">
<h2 class="mb-0">{{ 'milhq.admin.soldiers.list.title'|trans }}</h2>
Expand Down
3 changes: 3 additions & 0 deletions translations/messages+intl-icu.en.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,9 @@ milhq:
not_found: 'Soldier can not be found.'
list:
title: 'Soldiers'
free_limit_info: 'You are using the free version of MILHQ, which allows up to {limit} soldiers. You are currently using {count}/{limit} soldiers.'
free_limit_reached: 'You have reached the free soldier limit of {limit}/{limit}. New enlistments will fail until you upgrade.'
upgrade: 'Upgrade MILHQ to unlock unlimited soldiers.'
actions:
service: 'New Service Record'
award: 'New Award'
Expand Down
Loading