add title filter for Quest listing
This commit is contained in:
parent
e495738691
commit
0076e9b629
3 changed files with 17 additions and 9 deletions
|
|
@ -84,6 +84,7 @@
|
||||||
// Set filters
|
// Set filters
|
||||||
$selectedQuestgroup = null;
|
$selectedQuestgroup = null;
|
||||||
$selectedQuesttype = null;
|
$selectedQuesttype = null;
|
||||||
|
$selectedTitle = null;
|
||||||
$page = 1;
|
$page = 1;
|
||||||
if($this->request->getRequestMethod() == 'GET')
|
if($this->request->getRequestMethod() == 'GET')
|
||||||
{
|
{
|
||||||
|
|
@ -91,6 +92,8 @@
|
||||||
$selectedQuestgroup = !empty($selectedQuestgroup) ? $selectedQuestgroup : null;
|
$selectedQuestgroup = !empty($selectedQuestgroup) ? $selectedQuestgroup : null;
|
||||||
$selectedQuesttype = $this->request->getGetParam('questtype');
|
$selectedQuesttype = $this->request->getGetParam('questtype');
|
||||||
$selectedQuesttype = !empty($selectedQuesttype) ? $selectedQuesttype : null;
|
$selectedQuesttype = !empty($selectedQuesttype) ? $selectedQuesttype : null;
|
||||||
|
$selectedTitle = $this->request->getGetParam('title');
|
||||||
|
$selectedTitle = !empty($selectedTitle) ? $selectedTitle : null;
|
||||||
$page = $this->request->getGetParam('page');
|
$page = $this->request->getGetParam('page');
|
||||||
$page = !empty($page) ? intval($page) : 1;
|
$page = !empty($page) ? intval($page) : 1;
|
||||||
}
|
}
|
||||||
|
|
@ -98,8 +101,8 @@
|
||||||
// Get Quests
|
// Get Quests
|
||||||
$limit = ($all != 'all') ? \nre\configs\AppConfig::$misc['lists_limit'] : null;
|
$limit = ($all != 'all') ? \nre\configs\AppConfig::$misc['lists_limit'] : null;
|
||||||
$offset = ($all != 'all') ? max((intval($page) - 1), 0) * $limit : 0;
|
$offset = ($all != 'all') ? max((intval($page) - 1), 0) * $limit : 0;
|
||||||
$questsCount = $this->Quests->getCountForQuestsForSeminaryByOpenSubmissions($seminary['id'], $selectedQuestgroup, $selectedQuesttype);
|
$questsCount = $this->Quests->getCountForQuestsForSeminaryByOpenSubmissions($seminary['id'], $selectedQuestgroup, $selectedQuesttype, $selectedTitle);
|
||||||
$quests = $this->Quests->getQuestsForSeminaryByOpenSubmissions($seminary['id'], $selectedQuestgroup, $selectedQuesttype, $limit, $offset);
|
$quests = $this->Quests->getQuestsForSeminaryByOpenSubmissions($seminary['id'], $selectedQuestgroup, $selectedQuesttype, $selectedTitle, $limit, $offset);
|
||||||
foreach($quests as &$quest)
|
foreach($quests as &$quest)
|
||||||
{
|
{
|
||||||
// Get Questtype
|
// Get Questtype
|
||||||
|
|
@ -121,6 +124,7 @@
|
||||||
$this->set('questtypes', $questtypes);
|
$this->set('questtypes', $questtypes);
|
||||||
$this->set('selectedQuestgroup', $selectedQuestgroup);
|
$this->set('selectedQuestgroup', $selectedQuestgroup);
|
||||||
$this->set('selectedQuesttype', $selectedQuesttype);
|
$this->set('selectedQuesttype', $selectedQuesttype);
|
||||||
|
$this->set('selectedTitle', $selectedTitle);
|
||||||
$this->set('quests', $quests);
|
$this->set('quests', $quests);
|
||||||
$this->set('questsCount', $questsCount);
|
$this->set('questsCount', $questsCount);
|
||||||
$this->set('all', $all);
|
$this->set('all', $all);
|
||||||
|
|
|
||||||
|
|
@ -376,7 +376,7 @@
|
||||||
* @param int $questtypeId ID of Questtype (optional)
|
* @param int $questtypeId ID of Questtype (optional)
|
||||||
* @return int Count of Quests for this Seminary
|
* @return int Count of Quests for this Seminary
|
||||||
*/
|
*/
|
||||||
public function getCountForQuestsForSeminaryByOpenSubmissions($seminaryId, $questgroupId=null, $questtypeId=null)
|
public function getCountForQuestsForSeminaryByOpenSubmissions($seminaryId, $questgroupId=null, $questtypeId=null, $title=null)
|
||||||
{
|
{
|
||||||
$data = $this->db->query(
|
$data = $this->db->query(
|
||||||
'SELECT count(DISTINCT quests.id) AS c '.
|
'SELECT count(DISTINCT quests.id) AS c '.
|
||||||
|
|
@ -384,7 +384,8 @@
|
||||||
'INNER JOIN quests ON quests.questgroup_id = questgroups.id '.
|
'INNER JOIN quests ON quests.questgroup_id = questgroups.id '.
|
||||||
'WHERE questgroups.seminary_id = ? '.
|
'WHERE questgroups.seminary_id = ? '.
|
||||||
(!empty($questgroupId) ? sprintf('AND questgroups.id = %d ', $questgroupId) : null).
|
(!empty($questgroupId) ? sprintf('AND questgroups.id = %d ', $questgroupId) : null).
|
||||||
(!empty($questtypeId) ? sprintf('AND quests.questtype_id = %d ', $questtypeId) : null),
|
(!empty($questtypeId) ? sprintf('AND quests.questtype_id = %d ', $questtypeId) : null).
|
||||||
|
(!empty($title) ? sprintf('AND quests.title LIKE \'%%%s%%\' ', $title) : null),
|
||||||
'i',
|
'i',
|
||||||
$seminaryId
|
$seminaryId
|
||||||
);
|
);
|
||||||
|
|
@ -408,7 +409,7 @@
|
||||||
* @param int $offset Offset (optional)
|
* @param int $offset Offset (optional)
|
||||||
* @return array Quests for this Seminary
|
* @return array Quests for this Seminary
|
||||||
*/
|
*/
|
||||||
public function getQuestsForSeminaryByOpenSubmissions($seminaryId, $questgroupId=null, $questtypeId=null, $limit=null, $offset=0)
|
public function getQuestsForSeminaryByOpenSubmissions($seminaryId, $questgroupId=null, $questtypeId=null, $title=null, $limit=null, $offset=0)
|
||||||
{
|
{
|
||||||
return $this->db->query(
|
return $this->db->query(
|
||||||
'SELECT DISTINCT quests.id, quests.questgroup_id, quests.questtype_id, quests.title, quests.url, quests.xps, quests.task, quests.wrong_text, quests.questsmedia_id, questgroups.title AS questgroup_title, questgroups.url AS questgroup_url, ('.
|
'SELECT DISTINCT quests.id, quests.questgroup_id, quests.questtype_id, quests.title, quests.url, quests.xps, quests.task, quests.wrong_text, quests.questsmedia_id, questgroups.title AS questgroup_title, questgroups.url AS questgroup_url, ('.
|
||||||
|
|
@ -425,6 +426,7 @@
|
||||||
'WHERE questgroups.seminary_id = ? '.
|
'WHERE questgroups.seminary_id = ? '.
|
||||||
(!empty($questgroupId) ? sprintf('AND questgroups.id = %d ', $questgroupId) : null).
|
(!empty($questgroupId) ? sprintf('AND questgroups.id = %d ', $questgroupId) : null).
|
||||||
(!empty($questtypeId) ? sprintf('AND quests.questtype_id = %d ', $questtypeId) : null).
|
(!empty($questtypeId) ? sprintf('AND quests.questtype_id = %d ', $questtypeId) : null).
|
||||||
|
(!empty($title) ? sprintf('AND quests.title LIKE \'%%%s%%\' ', $title) : null).
|
||||||
'ORDER BY opensubmissionscount DESC '.
|
'ORDER BY opensubmissionscount DESC '.
|
||||||
(!empty($limit) ? sprintf('LIMIT %d, %d', $offset, $limit) : null),
|
(!empty($limit) ? sprintf('LIMIT %d, %d', $offset, $limit) : null),
|
||||||
'ii',
|
'ii',
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@
|
||||||
|
|
||||||
<form method="get" class="logreg admnqf">
|
<form method="get" class="logreg admnqf">
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<legend>Filter</legend>
|
<legend><?=_('Filter')?></legend>
|
||||||
<label for="questgroup"><?=_('Questgroup')?>:</label>
|
<label for="questgroup"><?=_('Questgroup')?>:</label>
|
||||||
<select id="questgroup" name="questgroup">
|
<select id="questgroup" name="questgroup">
|
||||||
<option value=""><?=_('all')?></option>
|
<option value=""><?=_('all')?></option>
|
||||||
|
|
@ -44,6 +44,8 @@
|
||||||
</option>
|
</option>
|
||||||
<?php endforeach ?>
|
<?php endforeach ?>
|
||||||
</select>
|
</select>
|
||||||
|
<label for="title"><?=_('Title')?>:</label>
|
||||||
|
<input type="text" id="title" name="title" placeholder="<?=_('Title')?>" value="<?=$selectedTitle?>" />
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<input type="submit" value="<?=_('Apply filters')?>" />
|
<input type="submit" value="<?=_('Apply filters')?>" />
|
||||||
</form>
|
</form>
|
||||||
|
|
@ -77,8 +79,8 @@
|
||||||
</ul>
|
</ul>
|
||||||
<?php if(is_null($all) && ($page*$limit) < $questsCount) : ?>
|
<?php if(is_null($all) && ($page*$limit) < $questsCount) : ?>
|
||||||
<nav class="admin">
|
<nav class="admin">
|
||||||
<li><a id="show-more" href="<?=$linker->link(null,3,true,array('page'=>$page+1,'questgroup'=>$selectedQuestgroup,'questtype'=>$selectedQuesttype))?>"><?=_('Show more')?></a></li>
|
<li><a id="show-more" href="<?=$linker->link(null,3,true,array('page'=>$page+1,'questgroup'=>$selectedQuestgroup,'questtype'=>$selectedQuesttype,'title'=>$selectedTitle))?>"><?=_('Show more')?></a></li>
|
||||||
<li><a id="show-all" href="<?=$linker->link('all',3,true,array('questgroup'=>$selectedQuestgroup,'questtype'=>$selectedQuesttype))?>"><?=_('Show all')?></a></li>
|
<li><a id="show-all" href="<?=$linker->link('all',3,true,array('questgroup'=>$selectedQuestgroup,'questtype'=>$selectedQuesttype,'title'=>$selectedTitle))?>"><?=_('Show all')?></a></li>
|
||||||
</nav>
|
</nav>
|
||||||
<?php endif ?>
|
<?php endif ?>
|
||||||
|
|
||||||
|
|
@ -88,7 +90,7 @@
|
||||||
var linkSubmissions = "<?=$linker->link(array('submissions','SEMINARY','QUESTGROUP','QUEST'),1)?>";
|
var linkSubmissions = "<?=$linker->link(array('submissions','SEMINARY','QUESTGROUP','QUEST'),1)?>";
|
||||||
var linkQuestgroup = "<?=$linker->link(array('questgroups','questgroup','SEMINARY','QUESTGROUP'))?>";
|
var linkQuestgroup = "<?=$linker->link(array('questgroups','questgroup','SEMINARY','QUESTGROUP'))?>";
|
||||||
var linkQuest = "<?=$linker->link(array('quest','SEMINARY','QUESTGROUP','QUEST'),1)?>";
|
var linkQuest = "<?=$linker->link(array('quest','SEMINARY','QUESTGROUP','QUEST'),1)?>";
|
||||||
var linkPage = "<?=$linker->link(null,3,true,array('page'=>'PAGE','questgroup'=>$selectedQuestgroup,'questtype'=>$selectedQuesttype))?>";
|
var linkPage = "<?=$linker->link(null,3,true,array('page'=>'PAGE','questgroup'=>$selectedQuestgroup,'questtype'=>$selectedQuesttype,'title'=>$selectedTitle))?>";
|
||||||
|
|
||||||
$("#show-more").click(function(event) {
|
$("#show-more").click(function(event) {
|
||||||
if(request) {
|
if(request) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue