Show Create new Group link in widget even if there's no group membership to display

This commit is contained in:
Hypolite Petovan 2025-01-22 22:14:38 -05:00
parent c426b27287
commit 354e3adc04
2 changed files with 76 additions and 77 deletions

View file

@ -97,52 +97,47 @@ class GroupManager
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
* @throws \ImagickException
*/
public static function widget(int $uid)
public static function widget(int $uid): string
{
$o = '';
//sort by last updated item
$lastitem = true;
$contacts = self::getList($uid, $lastitem, true, true);
$total = count($contacts);
$contacts = self::getList($uid, true, true, true);
$total = count($contacts);
$visibleGroups = 10;
if (DBA::isResult($contacts)) {
$id = 0;
$id = 0;
$entries = [];
$entries = [];
foreach ($contacts as $contact) {
$entry = [
'url' => 'contact/' . $contact['id'] . '/conversations',
'external_url' => Contact::magicLinkByContact($contact),
'name' => $contact['name'],
'cid' => $contact['id'],
'micro' => DI::baseUrl()->remove(Contact::getMicro($contact)),
'id' => ++$id,
];
$entries[] = $entry;
}
$contacts = [];
$tpl = Renderer::getMarkupTemplate('widget/group_list.tpl');
$o .= Renderer::replaceMacros(
$tpl,
[
'$title' => DI::l10n()->t('Groups'),
'$groups' => $entries,
'$link_desc' => DI::l10n()->t('External link to group'),
'$new_group_page' => 'register/',
'$total' => $total,
'$visible_groups' => $visibleGroups,
'$showless' => DI::l10n()->t('show less'),
'$showmore' => DI::l10n()->t('show more'),
'$create_new_group' => DI::l10n()->t('Create new group')]
);
foreach ($contacts as $contact) {
$entry = [
'url' => 'contact/' . $contact['id'] . '/conversations',
'external_url' => Contact::magicLinkByContact($contact),
'name' => $contact['name'],
'cid' => $contact['id'],
'micro' => DI::baseUrl()->remove(Contact::getMicro($contact)),
'id' => ++$id,
];
$entries[] = $entry;
}
return $o;
$tpl = Renderer::getMarkupTemplate('widget/group_list.tpl');
return Renderer::replaceMacros(
$tpl,
[
'$title' => DI::l10n()->t('Groups'),
'$groups' => $entries,
'$link_desc' => DI::l10n()->t('External link to group'),
'$new_group_page' => 'register/',
'$total' => $total,
'$visible_groups' => $visibleGroups,
'$showless' => DI::l10n()->t('show less'),
'$showmore' => DI::l10n()->t('show more'),
'$create_new_group' => DI::l10n()->t('Create new group')
],
);
}
/**

View file

@ -18,49 +18,53 @@ function showHideGroupList() {
}
</script>
<span id="group-list-sidebar-frame">
<span id="group-list-sidebar-inflated" class="widget inflated fakelink" onclick="openCloseWidget('group-list-sidebar', 'group-list-sidebar-inflated');">
<h3>{{$title}}</h3>
</span>
<div id="group-list-sidebar" class="widget">
<div id="sidebar-group-header" class="sidebar-widget-header">
<span class="fakelink" onclick="openCloseWidget('group-list-sidebar', 'group-list-sidebar-inflated');">
<span id="group-list-sidebar-inflated" class="widget inflated fakelink" onclick="openCloseWidget('group-list-sidebar', 'group-list-sidebar-inflated');">
<h3>{{$title}}</h3>
</span>
<a class="group-new-tool pull-right widget-action faded-icon" id="sidebar-new-group" href="{{$new_group_page}}" data-toggle="tooltip" title="{{$create_new_group}}">
<i class="fa fa-plus" aria-hidden="true"></i>
</a>
<div id="group-list-sidebar" class="widget">
<div id="sidebar-group-header" class="sidebar-widget-header">
<span class="fakelink" onclick="openCloseWidget('group-list-sidebar', 'group-list-sidebar-inflated');">
<h3>{{$title}}</h3>
</span>
{{if $groups}}
<a class="group-new-tool pull-right widget-action faded-icon" id="sidebar-new-group" href="{{$new_group_page}}" data-toggle="tooltip" title="{{$create_new_group}}">
<i class="fa fa-plus" aria-hidden="true"></i>
</a>
{{/if}}
</div>
<div id="sidebar-group-list" class="sidebar-widget-list">
{{* The list of available groups *}}
<ul id="group-list-sidebar-ul" role="menu">
{{foreach $groups as $group}}
{{if $group.id <= $visible_groups}}
<li class="group-widget-entry group-{{$group.cid}}" id="group-widget-entry-{{$group.id}}" role="menuitem">
<span class="notify badge pull-right"></span>
<a href="{{$group.external_url}}" title="{{$group.link_desc}}" class="label sparkle" target="_blank" rel="noopener noreferrer">
<img class="group-list-img" src="{{$group.micro}}" alt="{{$group.link_desc}}" />
</a>
<a class="group-widget-link" id="group-widget-link-{{$group.id}}" href="{{$group.url}}">{{$group.name}}</a>
</li>
{{/if}}
{{if $group.id > $visible_groups}}
<li class="group-widget-entry group-{{$group.cid}}" id="group-widget-entry-extended-{{$group.id}}" role="menuitem" style="display: none;">
<span class="notify badge pull-right"></span>
<a href="{{$group.external_url}}" title="{{$group.link_desc}}" class="label sparkle" target="_blank" rel="noopener noreferrer">
<img class="group-list-img" src="{{$group.micro}}" alt="{{$group.link_desc}}" />
</a>
<a class="group-widget-link" id="group-widget-link-{{$group.id}}" href="{{$group.url}}">{{$group.name}}</a>
</li>
{{/if}}
{{foreachelse}}
<li><a href="{{$new_group_page}}"><i class="fa fa-plus" aria-hidden="true"></i> {{$create_new_group}}</a></li>
{{/foreach}}
{{if $total > $visible_groups }}
<li onclick="showHideGroupList(); return false;" id="group-widget-collapse" class="group-widget-link fakelink tool">{{$showmore}}</li>
{{/if}}
</ul>
</div>
</div>
<div id="sidebar-group-list" class="sidebar-widget-list">
{{* The list of available groups *}}
<ul id="group-list-sidebar-ul" role="menu">
{{foreach $groups as $group}}
{{if $group.id <= $visible_groups}}
<li class="group-widget-entry group-{{$group.cid}}" id="group-widget-entry-{{$group.id}}" role="menuitem">
<span class="notify badge pull-right"></span>
<a href="{{$group.external_url}}" title="{{$group.link_desc}}" class="label sparkle" target="_blank" rel="noopener noreferrer">
<img class="group-list-img" src="{{$group.micro}}" alt="{{$group.link_desc}}" />
</a>
<a class="group-widget-link" id="group-widget-link-{{$group.id}}" href="{{$group.url}}">{{$group.name}}</a>
</li>
{{/if}}
{{if $group.id > $visible_groups}}
<li class="group-widget-entry group-{{$group.cid}}" id="group-widget-entry-extended-{{$group.id}}" role="menuitem" style="display: none;">
<span class="notify badge pull-right"></span>
<a href="{{$group.external_url}}" title="{{$group.link_desc}}" class="label sparkle" target="_blank" rel="noopener noreferrer">
<img class="group-list-img" src="{{$group.micro}}" alt="{{$group.link_desc}}" />
</a>
<a class="group-widget-link" id="group-widget-link-{{$group.id}}" href="{{$group.url}}">{{$group.name}}</a>
</li>
{{/if}}
{{/foreach}}
{{if $total > $visible_groups }}
<li onclick="showHideGroupList(); return false;" id="group-widget-collapse" class="group-widget-link fakelink tool">{{$showmore}}</li>
{{/if}}
</ul>
</div>
</div>
</span>
<script>
initWidget('group-list-sidebar', 'group-list-sidebar-inflated');