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

contributte / datagrid / 8780667983

13 Mar 2024 12:24PM UTC coverage: 34.102%. Remained the same
8780667983

push

github

web-flow
[7.x] Next (#1060)

* PHP 8.0

* Translator: switch from ITranslator to Translator (#973)

* [7.x] Bootstrap 5 + PHP 8 + vanilla javascript (#1021)

* Bootstrap 5

* Bootstrap 5 (docs)

* Bootstrap 5

* form-control -> form-select

* Bump bootstrap-select for Bootstrap 5 support

* Removed `input-sm` from Bootstrap 3

See https://getbootstrap.com/docs/4.0/migration/#forms-1

* Bootstrap 5: When selectpicker, replace form-select classes with form-control and refresh it

* Hide `underline` also for `dropdown-item`. And merged into one CSS rule.

* Update the filterMultiSelect initialization

* Text-align: left -> start

Co-authored-by: Radim Vaculík <radim.vaculik@gmail.com>
Co-authored-by: Jaroslav Líbal <jaroslav.libal@neatous.cz>

* [7.x] phpstan-deprecation-rules (#1061)

* Fix sort

* Add method for setting custom Action href, v6.x (#853)

* [7.x] Nextras ORM 4 support, closes #984

* Fix ElasticsearchDataSource.php data source (#1041)

* Error: Typed property Ublaboo\DataGrid\InlineEdit\InlineEdit::$itemID must not be accessed before initialization

* composer: allow-plugins: php-http/discovery

* ItemDetailForm: $httpPost: Typed property must not be accessed...

* phpstan: revert  --memory-limit=4G

* NetteDatabaseSelectionHelper: Context -> Explorer, getSupplementalDriver -> getDriver

* Update README.md

* Templates: fix variables

* data-bs-toggle attribute for multiaction button (#1072)

* dependabot.yml (#1078)

* Allow nette/utils:4.0 (#1077)

* Add onColumnShow and onColumnHide event methods (#1076)

* Add onColumnShow and onColumnHide event methods

* Add native type array

* Removed duplicity

* Return value of BackedEnum when reading Doctrine entity property. (#1081)

* Return value of BackedEnum when reading array value (#1083)

* Added method to check if filter is on default values; Closes #1082 (#1084)

* ublaboo -> contributte (#1067) (#1075)

* Delete depe... (continued)

117 of 435 new or added lines in 54 files covered. (26.9%)

1455 existing lines in 67 files now uncovered.

1124 of 3296 relevant lines covered (34.1%)

0.34 hits per line

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

0.0
/src/Toolbar/ToolbarButton.php
1
<?php declare(strict_types = 1);
2

3
namespace Contributte\Datagrid\Toolbar;
4

5
use Contributte\Datagrid\Datagrid;
6
use Contributte\Datagrid\Exception\DatagridColumnRendererException;
7
use Contributte\Datagrid\Traits\TButtonClass;
8
use Contributte\Datagrid\Traits\TButtonIcon;
9
use Contributte\Datagrid\Traits\TButtonRenderer;
10
use Contributte\Datagrid\Traits\TButtonText;
11
use Contributte\Datagrid\Traits\TButtonTitle;
12
use Contributte\Datagrid\Traits\TButtonTryAddIcon;
13
use Contributte\Datagrid\Traits\TLink;
14
use Nette\Utils\Html;
15

16
class ToolbarButton
17
{
18

19
        use TButtonTryAddIcon;
20
        use TButtonClass;
21
        use TButtonIcon;
22
        use TButtonRenderer;
23
        use TButtonText;
24
        use TButtonTitle;
25
        use TLink;
26

27
        protected array $attributes = [];
28

29
        protected ?string $confirmDialog = null;
30

31
        /**
32
         * Toolbar button constructor
33
         */
NEW
34
        public function __construct(protected Datagrid $grid, protected string $href, string $text, protected array $params = [])
×
35
        {
UNCOV
36
                $this->text = $text;
×
37
        }
38

39
        /**
40
         * Render toolbar button
41
         */
42
        public function renderButton(): Html
43
        {
44
                try {
45
                        // Renderer function may be used
46
                        return $this->useRenderer();
×
NEW
47
                } catch (DatagridColumnRendererException) {
×
48
                        // Do not use renderer
49
                }
50

UNCOV
51
                $link = $this->createLink($this->grid, $this->href, $this->params);
×
52

UNCOV
53
                $a = Html::el('a')->href($link);
×
54

UNCOV
55
                $this->tryAddIcon($a, $this->getIcon(), $this->getText());
×
56

57
                if ($this->attributes !== []) {
×
UNCOV
58
                        $a->addAttributes($this->attributes);
×
59
                }
60

UNCOV
61
                $a->addText($this->grid->getTranslator()->translate($this->text));
×
62

UNCOV
63
                if ($this->getTitle() !== null) {
×
UNCOV
64
                        $a->setAttribute(
×
UNCOV
65
                                'title',
×
UNCOV
66
                                $this->grid->getTranslator()->translate($this->getTitle())
×
67
                        );
68
                }
69

UNCOV
70
                $a->setAttribute('class', $this->getClass());
×
71

UNCOV
72
                if ($this->confirmDialog !== null) {
×
UNCOV
73
                        $a->setAttribute('data-datagrid-confirm', $this->confirmDialog);
×
74
                }
75

UNCOV
76
                return $a;
×
77
        }
78

79
        /**
80
         * @return static
81
         */
82
        public function addAttributes(array $attrs): static
83
        {
UNCOV
84
                $this->attributes += $attrs;
×
85

UNCOV
86
                return $this;
×
87
        }
88

89
        /**
90
         * Add Confirm dialog
91
         */
92
        public function setConfirmDialog(string $confirmDialog): self
93
        {
UNCOV
94
                $this->confirmDialog = $confirmDialog;
×
95

UNCOV
96
                return $this;
×
97
        }
98

99
}
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

© 2025 Coveralls, Inc