Skip to content

Commit 8ebc2f6

Browse files
committed
Add view My Ideas sort option to quick links
Fix tests
1 parent 0644563 commit 8ebc2f6

5 files changed

Lines changed: 46 additions & 6 deletions

File tree

controller/base.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,5 +144,6 @@ protected function display_search_ideas()
144144
'S_SEARCHBOX_ACTION' => append_sid("{$this->root_path}search.{$this->php_ext}"),
145145
'S_SEARCH_IDEAS_HIDDEN_FIELDS' => build_hidden_fields(array('fid' => array($this->config['ideas_forum_id']))),
146146
));
147+
'U_SEARCH_MY_IDEAS' => $this->helper->route('phpbb_ideas_list_controller', ['sort' => ideas::SORT_MYIDEAS, 'status' => '-1']),
147148
}
148149
}

factory/ideas.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ class ideas
2626
const SORT_TITLE = 'title';
2727
const SORT_TOP = 'top';
2828
const SORT_VOTES = 'votes';
29+
const SORT_MYIDEAS = 'egosearch';
2930
const SUBJECT_LENGTH = 120;
3031

3132
/** @var array Idea status names and IDs */
@@ -198,6 +199,11 @@ protected function query_sort($sort, $direction)
198199
$this->sql['ORDER_BY'] = 'i.idea_votes_up + i.idea_votes_down ' . $direction;
199200
break;
200201

202+
case self::SORT_MYIDEAS:
203+
$this->sql['WHERE'][] = 'i.idea_author = ' . (int) $this->user->data['user_id'];
204+
$this->sql['ORDER_BY'] = "i.idea_date DESC";
205+
break;
206+
201207
case self::SORT_TOP:
202208
$this->sql['WHERE'][] = 'i.idea_votes_up > i.idea_votes_down';
203209
// no break
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{% if S_REGISTERED_USER and U_SEARCH_MY_IDEAS %}
2+
<li>
3+
<a href="{{ U_SEARCH_MY_IDEAS }}" role="menuitem">
4+
<i class="icon fa-lightbulb-o fa-fw icon-gray" aria-hidden="true"></i><span>{{ lang('LIST_EGOSEARCH') }}</span>
5+
</a>
6+
</li>
7+
{% endif %}

tests/controller/list_controller_test.php

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,19 @@ public function controller_test_data()
140140
'status' => \phpbb\ideas\factory\ideas::$statuses,
141141
),
142142
),
143+
// My ideas list
144+
array(
145+
200,
146+
'list_body.html',
147+
array(
148+
'sort' => \phpbb\ideas\factory\ideas::SORT_MYIDEAS,
149+
'status' => -1,
150+
),
151+
array(
152+
'sort' => \phpbb\ideas\factory\ideas::SORT_MYIDEAS,
153+
'status' => \phpbb\ideas\factory\ideas::$statuses,
154+
),
155+
),
143156
);
144157
}
145158

tests/functional/ideas_test.php

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -53,25 +53,38 @@ public function test_new_idea()
5353
*/
5454
public function test_view_ideas_lists()
5555
{
56-
// Access new ideas list
56+
// Test new ideas list
5757
$crawler = self::request('GET', "app.php/ideas/list?sid={$this->sid}");
5858
$this->assertContainsLang('OPEN_IDEAS', $crawler->filter('h2')->text());
5959
$this->assertNotContainsLang('NO_IDEAS_DISPLAY', $crawler->filter('.topiclist.forums')->text());
6060

61-
// Access top ideas list
61+
// Test top ideas list
6262
$crawler = self::request('GET', "app.php/ideas/list/top?sid={$this->sid}");
63-
$this->assertContainsLang('TOP_IDEAS', $crawler->filter('h2')->text());
63+
$this->assertContainsLang('LIST_TOP', $crawler->filter('h2')->text());
6464
$this->assertNotContainsLang('NO_IDEAS_DISPLAY', $crawler->filter('.topiclist.forums')->text());
6565

66-
// Access all ideas list
66+
// Test all ideas list
6767
$crawler = self::request('GET', "app.php/ideas/list/date?status=-1&sid={$this->sid}");
6868
$this->assertContainsLang('ALL_IDEAS', $crawler->filter('h2')->text());
6969
$this->assertNotContainsLang('NO_IDEAS_DISPLAY', $crawler->filter('.topiclist.forums')->text());
7070

71-
// Access implemented ideas list (should be empty list)
71+
// Test implemented ideas list (should be empty list)
7272
$crawler = self::request('GET', "app.php/ideas/list/date?status=3&sid={$this->sid}");
73-
$this->assertContainsLang('IMPLEMENTED', $crawler->filter('h2')->text());
73+
$this->assertContainsLang('LIST_IMPLEMENTED', $crawler->filter('h2')->text());
7474
$this->assertContainsLang('NO_IDEAS_DISPLAY', $crawler->filter('.topiclist.forums')->text());
75+
76+
// Test my ideas list is empty when logged out
77+
$crawler = self::request('GET', "app.php/ideas/list/egosearch?status=-1&sid={$this->sid}");
78+
$this->assertNotContainsLang('LIST_EGOSEARCH', $crawler->filter('#quick-links')->text());
79+
$this->assertContainsLang('LIST_EGOSEARCH', $crawler->filter('h2')->text());
80+
$this->assertContainsLang('NO_IDEAS_DISPLAY', $crawler->filter('.topiclist.forums')->text());
81+
82+
// Test my ideas list works when logged in
83+
$this->login();
84+
$crawler = self::request('GET', "app.php/ideas/list/egosearch?status=-1&sid={$this->sid}");
85+
$this->assertContainsLang('LIST_EGOSEARCH', $crawler->filter('#quick-links')->text());
86+
$this->assertContainsLang('LIST_EGOSEARCH', $crawler->filter('h2')->text());
87+
$this->assertNotContainsLang('NO_IDEAS_DISPLAY', $crawler->filter('.topiclist.forums')->text());
7588
}
7689

7790
/**

0 commit comments

Comments
 (0)