Issue 8514: Make paging for searcg items work again

Fixes #8514
This commit is contained in:
Michael 2020-05-17 13:51:56 +00:00
parent 78d6137ee3
commit a3c4021f12
8 changed files with 26 additions and 6 deletions

View file

@ -26,6 +26,7 @@ use DOMXPath;
use Friendica\Content\Widget\ContactBlock; use Friendica\Content\Widget\ContactBlock;
use Friendica\Core\Hook; use Friendica\Core\Hook;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Search;
use Friendica\DI; use Friendica\DI;
use Friendica\Model\Contact; use Friendica\Model\Contact;
use Friendica\Util\Network; use Friendica\Util\Network;
@ -917,7 +918,7 @@ class HTML
'$save_label' => $save_label, '$save_label' => $save_label,
'$search_hint' => DI::l10n()->t('@name, !forum, #tags, content'), '$search_hint' => DI::l10n()->t('@name, !forum, #tags, content'),
'$mode' => $mode, '$mode' => $mode,
'$return_url' => urlencode('search?q=' . urlencode($s)), '$return_url' => urlencode(Search::getSearchPath($s)),
]; ];
if (!$aside) { if (!$aside) {

View file

@ -22,6 +22,7 @@
namespace Friendica\Content\Widget; namespace Friendica\Content\Widget;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Search;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\DI; use Friendica\DI;
@ -45,6 +46,7 @@ class SavedSearches
'id' => $saved_search['id'], 'id' => $saved_search['id'],
'term' => $saved_search['term'], 'term' => $saved_search['term'],
'encodedterm' => urlencode($saved_search['term']), 'encodedterm' => urlencode($saved_search['term']),
'searchpath' => Search::getSearchPath($saved_search['term']),
'delete' => DI::l10n()->t('Remove term'), 'delete' => DI::l10n()->t('Remove term'),
'selected' => $search == $saved_search['term'], 'selected' => $search == $saved_search['term'],
]; ];

View file

@ -311,4 +311,19 @@ class Search
{ {
return DI::config()->get('system', 'directory', self::DEFAULT_DIRECTORY); return DI::config()->get('system', 'directory', self::DEFAULT_DIRECTORY);
} }
/**
* Return the search path (either fulltext search or tag search)
*
* @param string $search
* @return string search path
*/
public static function getSearchPath(string $search)
{
if (substr($search, 0, 1) == '#') {
return 'search?tag=' . urlencode(substr($search, 1));
} else {
return 'search?q=' . urlencode($search);
}
}
} }

View file

@ -28,6 +28,7 @@ use Friendica\Content\Widget;
use Friendica\Core\Cache\Duration; use Friendica\Core\Cache\Duration;
use Friendica\Core\Logger; use Friendica\Core\Logger;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Search;
use Friendica\Core\Session; use Friendica\Core\Session;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\DI; use Friendica\DI;
@ -80,7 +81,7 @@ class Index extends BaseSearch
} }
if (local_user()) { if (local_user()) {
DI::page()['aside'] .= Widget\SavedSearches::getHTML('search?q=' . urlencode($search), $search); DI::page()['aside'] .= Widget\SavedSearches::getHTML(Search::getSearchPath($search), $search);
} }
Nav::setSelected('search'); Nav::setSelected('search');

View file

@ -22,6 +22,7 @@
namespace Friendica\Module\Search; namespace Friendica\Module\Search;
use Friendica\BaseModule; use Friendica\BaseModule;
use Friendica\Core\Search;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\DI; use Friendica\DI;
use Friendica\Util\Strings; use Friendica\Util\Strings;
@ -33,7 +34,7 @@ class Saved extends BaseModule
$action = DI::args()->get(2, 'none'); $action = DI::args()->get(2, 'none');
$search = Strings::escapeTags(trim(rawurldecode($_GET['term'] ?? ''))); $search = Strings::escapeTags(trim(rawurldecode($_GET['term'] ?? '')));
$return_url = $_GET['return_url'] ?? 'search?q=' . urlencode($search); $return_url = $_GET['return_url'] ?? Search::getSearchPath($search);
if (local_user() && $search) { if (local_user() && $search) {
switch ($action) { switch ($action) {

View file

@ -11,7 +11,7 @@
{{foreach $saved as $search}} {{foreach $saved as $search}}
<li role="menuitem" class="saved-search-li clear"> <li role="menuitem" class="saved-search-li clear">
<a href="search/saved/remove?term={{$search.encodedterm}}&amp;return_url={{$return_url}}" title="{{$search.delete}}" onclick="return confirmDelete();" id="drop-saved-search-term-{{$search.id}}" class="iconspacer savedsearchdrop"></a> <a href="search/saved/remove?term={{$search.encodedterm}}&amp;return_url={{$return_url}}" title="{{$search.delete}}" onclick="return confirmDelete();" id="drop-saved-search-term-{{$search.id}}" class="iconspacer savedsearchdrop"></a>
<a href="search?q={{$search.encodedterm}}" id="saved-search-term-{{$search.id}}" class="savedsearchterm">{{$search.term}}</a> <a href="{{$search.searchpath}}" id="saved-search-term-{{$search.id}}" class="savedsearchterm">{{$search.term}}</a>
</li> </li>
{{/foreach}} {{/foreach}}
</ul> </ul>

View file

@ -12,7 +12,7 @@
<a href="search/saved/remove?term={{$search.encodedterm}}&amp;return_url={{$return_url}}" title="{{$search.delete}}" onclick="return confirmDelete();" id="drop-saved-search-term-{{$search.id}}" class="savedsearchdrop pull-right widget-action faded-icon"> <a href="search/saved/remove?term={{$search.encodedterm}}&amp;return_url={{$return_url}}" title="{{$search.delete}}" onclick="return confirmDelete();" id="drop-saved-search-term-{{$search.id}}" class="savedsearchdrop pull-right widget-action faded-icon">
<i class="fa fa-trash" aria-hidden="true"></i> <i class="fa fa-trash" aria-hidden="true"></i>
</a> </a>
<a href="search?q={{$search.encodedterm}}" id="saved-search-term-{{$search.id}}" class="savedsearchterm">{{$search.term}}</a> <a href="{{$search.searchpath}}" id="saved-search-term-{{$search.id}}" class="savedsearchterm">{{$search.term}}</a>
</li> </li>
{{/foreach}} {{/foreach}}
</ul> </ul>

View file

@ -4,7 +4,7 @@
<ul id="saved-search-ul"> <ul id="saved-search-ul">
{{foreach $saved as $search}} {{foreach $saved as $search}}
<li class="tool {{if $search.selected}}selected{{/if}}"> <li class="tool {{if $search.selected}}selected{{/if}}">
<a href="search?q={{$search.encodedterm}}" class="label">{{$search.term}}</a> <a href="{{$search.searchpath}}" class="label">{{$search.term}}</a>
<a href="search/saved/remove?term={{$search.encodedterm}}&amp;return_url={{$return_url}}" class="action icon s10 delete" title="{{$search.delete}}" onclick="return confirmDelete();"></a> <a href="search/saved/remove?term={{$search.encodedterm}}&amp;return_url={{$return_url}}" class="action icon s10 delete" title="{{$search.delete}}" onclick="return confirmDelete();"></a>
</li> </li>
{{/foreach}} {{/foreach}}