• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

AJenbo / agcms / 20972217862

13 Jan 2026 08:53PM UTC coverage: 53.678% (+0.1%) from 53.541%
20972217862

Pull #74

github

web-flow
Merge 4fdfac7ee into 498ff829e
Pull Request #74: Add PHP versions 8.4 to 8.5 to CI matrix

248 of 345 new or added lines in 40 files covered. (71.88%)

6 existing lines in 5 files now uncovered.

2780 of 5179 relevant lines covered (53.68%)

13.06 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/application/inc/Http/Controllers/Admin/RequirementController.php
1
<?php
2

3
namespace App\Http\Controllers\Admin;
4

5
use App\Exceptions\InvalidInput;
6
use App\Http\Request;
7
use App\Models\Requirement;
8
use App\Services\ConfigService;
9
use App\Services\OrmService;
10
use Symfony\Component\HttpFoundation\JsonResponse;
11
use Symfony\Component\HttpFoundation\Response;
12

13
class RequirementController extends AbstractAdminController
14
{
15
    /**
16
     * Index page for requirements.
17
     */
18
    public function index(Request $request): Response
19
    {
20
        $data = $this->basicPageData($request);
×
21
        $data['requirements'] = app(OrmService::class)->getByQuery(Requirement::class, 'SELECT * FROM `krav` ORDER BY navn');
×
22

23
        return $this->render('admin/krav', $data);
×
24
    }
25

26
    public function create(Request $request): JsonResponse
27
    {
28
        $title = $request->getRequestString('title') ?? '';
×
29
        $html = $request->getRequestString('html') ?? '';
×
30
        $html = purifyHTML($html);
×
31

32
        if ('' === $title || '' === $html) {
×
33
            throw new InvalidInput(_('You must enter a name and a text for the requirement.'));
×
34
        }
35

36
        $requirement = new Requirement(['title' => $title, 'html' => $html]);
×
37
        $requirement->save();
×
38

39
        return new JsonResponse(['id' => $requirement->getId()]);
×
40
    }
41

42
    /**
43
     * Page for editing or creating a requirement.
44
     */
45
    public function editPage(Request $request, ?int $id = null): Response
46
    {
47
        $data = $this->basicPageData($request);
×
48
        $data['textWidth'] = ConfigService::getInt('text_width');
×
49
        $data['requirement'] = $id ? app(OrmService::class)->getOne(Requirement::class, $id) : null;
×
50

51
        return $this->render('admin/editkrav', $data);
×
52
    }
53

54
    public function update(Request $request, int $id): JsonResponse
55
    {
56
        $title = $request->getRequestString('title') ?? '';
×
NEW
57
        $html = valstring($request->get('html', ''));
×
58
        $html = purifyHTML($html);
×
59

60
        if ('' === $title || '' === $html) {
×
61
            throw new InvalidInput(_('You must enter a name and a text for the requirement.'));
×
62
        }
63

64
        $requirement = app(OrmService::class)->getOne(Requirement::class, $id);
×
65
        if (!$requirement) {
×
66
            throw new InvalidInput(_('Requirement not found.'), Response::HTTP_NOT_FOUND);
×
67
        }
68

69
        $requirement->setHtml($html)->setTitle($title)->save();
×
70

71
        return new JsonResponse(['id' => $id]);
×
72
    }
73

74
    /**
75
     * Delete a requirement.
76
     */
77
    public function delete(Request $request, int $id): JsonResponse
78
    {
79
        $requirement = app(OrmService::class)->getOne(Requirement::class, $id);
×
80
        if ($requirement) {
×
81
            $requirement->delete();
×
82
        }
83

84
        return new JsonResponse(['id' => 'krav' . $id]);
×
85
    }
86
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc