Skip to content

Commit 6176103

Browse files
committed
Use datagrid
1 parent b41dc6f commit 6176103

File tree

2 files changed

+69
-74
lines changed

2 files changed

+69
-74
lines changed

src/Dravencms/AdminModule/Components/Article/ArticleGrid/ArticleGrid.php

Lines changed: 42 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ public function createComponentGrid($name)
9191
{
9292
$grid = $this->baseGridFactory->create($this, $name);
9393

94-
$grid->setModel($this->articleRepository->getArticleQueryBuilder($this->group));
94+
$grid->setDataSource($this->articleRepository->getArticleQueryBuilder($this->group));
9595

9696
if ($this->group->getSortBy() == Group::SORT_BY_POSITION) {
9797
$grid->setDefaultSort(['position' => 'ASC']);
@@ -103,70 +103,56 @@ public function createComponentGrid($name)
103103

104104
$grid->addColumnText('identifier', 'Identifier')
105105
->setSortable()
106-
->setFilterText()
107-
->setSuggestion();
106+
->setFilterText();
108107

109108
$grid->addColumnBoolean('isActive', 'Active');
110109
$grid->addColumnBoolean('isShowName', 'Show name');
111110

112111
if ($this->group->getSortBy() == Group::SORT_BY_POSITION)
113112
{
114-
$grid->addColumnNumber('position', 'Position')
115-
->setSortable()
116-
->setFilterNumber()
117-
->setSuggestion();
118-
$grid->getColumn('position')->cellPrototype->class[] = 'center';
113+
$grid->addColumnPosition('position', 'Position', 'up!', 'down!');
119114
}
120115
elseif ($this->group->getSortBy() == Group::SORT_BY_CREATED_AT)
121116
{
122-
$grid->addColumnDate('createdAt', 'Created', $this->currentLocale->getDateTimeFormat())
117+
$grid->addColumnDateTime('updatedAt', 'Last edit')
118+
->setFormat($this->currentLocale->getDateTimeFormat())
119+
->setAlign('center')
123120
->setSortable()
124121
->setFilterDate();
125-
$grid->getColumn('createdAt')->cellPrototype->class[] = 'center';
126122
}
127123

128124
if ($this->presenter->isAllowed('article', 'edit')) {
125+
126+
$grid->addAction('edit', 'Upravit', 'edit', ['groupId' => 'group.id', 'id'])
127+
->setIcon('pencil')
128+
->setTitle('Upravit')
129+
->setClass('btn btn-xs btn-primary');
130+
131+
/*
129132
$grid->addActionHref('edit', 'Upravit')
130133
->setCustomHref(function($row){
131134
return $this->presenter->link('edit', ['id' => $row->getId(), 'groupId' => $this->group->getId()]);
132135
})
133136
->setIcon('pencil');
137+
*/
134138
}
135139

136140
if ($this->presenter->isAllowed('article', 'delete')) {
137-
$grid->addActionHref('delete', 'Smazat', 'delete!')
138-
->setCustomHref(function($row){
139-
return $this->link('delete!', $row->getId());
140-
})
141-
->setIcon('trash-o')
142-
->setConfirm(function ($row) {
143-
return ['Opravdu chcete smazat article %s ?', $row->getIdentifier()];
144-
});
145-
146-
147-
$operations = ['delete' => 'Smazat'];
148-
$grid->setOperation($operations, [$this, 'gridOperationsHandler'])
149-
->setConfirm('delete', 'Opravu chcete smazat %i articles ?');
141+
$grid->addAction('delete', '', 'delete!')
142+
->setIcon('trash')
143+
->setTitle('Smazat')
144+
->setClass('btn btn-xs btn-danger ajax')
145+
->setConfirm('Do you really want to delete row %s?', 'identifier');
146+
$grid->addGroupAction('Smazat')->onSelect[] = [$this, 'handleDelete'];
150147
}
151-
$grid->setExport();
148+
$grid->addExportCsvFiltered('Csv export (filtered)', 'articles_filtered.csv')
149+
->setTitle('Csv export (filtered)');
150+
$grid->addExportCsv('Csv export', 'articlesall.csv')
151+
->setTitle('Csv export');
152152

153153
return $grid;
154154
}
155155

156-
/**
157-
* @param $action
158-
* @param $ids
159-
*/
160-
public function gridOperationsHandler($action, $ids)
161-
{
162-
switch ($action)
163-
{
164-
case 'delete':
165-
$this->handleDelete($ids);
166-
break;
167-
}
168-
}
169-
170156
/**
171157
* @param $id
172158
* @throws \Exception
@@ -184,6 +170,24 @@ public function handleDelete($id)
184170
$this->onDelete();
185171
}
186172

173+
/**
174+
* @param $id
175+
*/
176+
public function handleUp($id)
177+
{
178+
$articleItem = $this->articleRepository->getOneById($id);
179+
$this->articleRepository->moveUp($articleItem, 1);
180+
}
181+
182+
/**
183+
* @param $id
184+
*/
185+
public function handleDown($id)
186+
{
187+
$articleItem = $this->articleRepository->getOneById($id);
188+
$this->articleRepository->moveDown($articleItem, 1);
189+
}
190+
187191
public function render()
188192
{
189193
$template = $this->template;

src/Dravencms/AdminModule/Components/Article/GroupGrid/GroupGrid.php

Lines changed: 27 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -73,16 +73,15 @@ public function createComponentGrid($name)
7373
{
7474
$grid = $this->baseGridFactory->create($this, $name);
7575

76-
$grid->setModel($this->groupRepository->getGroupQueryBuilder());
76+
$grid->setDataSource($this->groupRepository->getGroupQueryBuilder());
7777

7878
$grid->addColumnText('identifier', 'Identifier')
7979
->setSortable()
80-
->setFilterText()
81-
->setSuggestion();
80+
->setFilterText();
8281

8382
$grid->addColumnText('sortBy', 'Sorted by')
84-
->setCustomRender(function($row){
85-
return Group::$sortByList[$row->sortBy];
83+
->setRenderer(function($row){
84+
return Group::$sortByList[$row->getSortBy()];
8685
})
8786
->setSortable()
8887
->setFilterSelect(Group::$sortByList);
@@ -91,48 +90,40 @@ public function createComponentGrid($name)
9190

9291
if ($this->presenter->isAllowed('article', 'edit')) {
9392

93+
/*
9494
$grid->addActionHref('articles', 'Articles')
9595
->setCustomHref(function($row){
9696
return $this->presenter->link('Article:', ['groupId' => $row->getId()]);
9797
})
98-
->setIcon('bars');
98+
->setIcon('bars');*/
9999

100-
$grid->addActionHref('edit', 'Upravit')
101-
->setIcon('pencil');
102-
}
100+
$grid->addAction('articles', 'Articles', 'Article:default', ['groupId' => 'id'])
101+
->setIcon('bars')
102+
->setTitle('Pictures')
103+
->setClass('btn btn-xs btn-default');
103104

104-
if ($this->presenter->isAllowed('article', 'delete')) {
105-
$grid->addActionHref('delete', 'Smazat', 'delete!')
106-
->setCustomHref(function($row){
107-
return $this->link('delete!', $row->getId());
108-
})
109-
->setIcon('trash-o')
110-
->setConfirm(function ($row) {
111-
return ['Opravdu chcete smazat article group %s ?', $row->getIdentifier()];
112-
});
105+
$grid->addAction('edit', '')
106+
->setIcon('pencil')
107+
->setTitle('Upravit')
108+
->setClass('btn btn-xs btn-primary');
113109

110+
}
114111

115-
$operations = ['delete' => 'Smazat'];
116-
$grid->setOperation($operations, [$this, 'gridOperationsHandler'])
117-
->setConfirm('delete', 'Opravu chcete smazat %i groups ?');
112+
if ($this->presenter->isAllowed('article', 'delete')) {
113+
$grid->addAction('delete', '', 'delete!')
114+
->setIcon('trash')
115+
->setTitle('Smazat')
116+
->setClass('btn btn-xs btn-danger ajax')
117+
->setConfirm('Do you really want to delete row %s?', 'identifier');
118+
$grid->addGroupAction('Smazat')->onSelect[] = [$this, 'handleDelete'];
118119
}
119-
$grid->setExport();
120+
$grid->addExportCsvFiltered('Csv export (filtered)', 'article_group_filtered.csv')
121+
->setTitle('Csv export (filtered)');
122+
$grid->addExportCsv('Csv export', 'article_group_all.csv')
123+
->setTitle('Csv export');
120124

121-
return $grid;
122-
}
123125

124-
/**
125-
* @param $action
126-
* @param $ids
127-
*/
128-
public function gridOperationsHandler($action, $ids)
129-
{
130-
switch ($action)
131-
{
132-
case 'delete':
133-
$this->handleDelete($ids);
134-
break;
135-
}
126+
return $grid;
136127
}
137128

138129
/**

0 commit comments

Comments
 (0)