mirror of
https://github.com/friendica/friendica
synced 2024-11-09 16:22:56 +00:00
Improved timeline menu
This commit is contained in:
parent
073da9735d
commit
fac76a33df
4 changed files with 74 additions and 22 deletions
|
@ -560,16 +560,24 @@ class Widget
|
|||
{
|
||||
$channels = [];
|
||||
|
||||
$enabled = DI::pConfig()->get($uid, 'system', 'enabled_timelines', []);
|
||||
|
||||
foreach (DI::TimelineFactory()->getNetworkFeeds('') as $channel) {
|
||||
$channels[] = ['ref' => $channel->code, 'name' => $channel->label];
|
||||
if (empty($enabled) || in_array($channel->code, $enabled)) {
|
||||
$channels[] = ['ref' => $channel->code, 'name' => $channel->label];
|
||||
}
|
||||
}
|
||||
|
||||
foreach (DI::TimelineFactory()->getChannelsForUser($uid) as $channel) {
|
||||
$channels[] = ['ref' => $channel->code, 'name' => $channel->label];
|
||||
if (empty($enabled) || in_array($channel->code, $enabled)) {
|
||||
$channels[] = ['ref' => $channel->code, 'name' => $channel->label];
|
||||
}
|
||||
}
|
||||
|
||||
foreach (DI::TimelineFactory()->getCommunities(true) as $community) {
|
||||
$channels[] = ['ref' => $community->code, 'name' => $community->label];
|
||||
if (empty($enabled) || in_array($community->code, $enabled)) {
|
||||
$channels[] = ['ref' => $community->code, 'name' => $community->label];
|
||||
}
|
||||
}
|
||||
|
||||
return self::filter(
|
||||
|
|
|
@ -118,25 +118,14 @@ class Network extends Timeline
|
|||
|
||||
$module = 'network';
|
||||
|
||||
$this->page['aside'] .= Widget::channels($module, $this->selectedTab, $this->session->getLocalUserId());
|
||||
$this->page['aside'] .= Widget::accountTypes($module, $this->accountTypeString);
|
||||
|
||||
$arr = ['query' => $this->args->getQueryString()];
|
||||
Hook::callAll('network_content_init', $arr);
|
||||
|
||||
$o = '';
|
||||
|
||||
if ($this->timeline->isChannel($this->selectedTab, $this->session->getLocalUserId())) {
|
||||
if (!in_array($this->selectedTab, [TimelineEntity::FOLLOWERS, TimelineEntity::FORYOU]) && $this->config->get('system', 'community_no_sharer')) {
|
||||
$this->page['aside'] .= $this->getNoSharerWidget($module);
|
||||
}
|
||||
|
||||
$items = $this->getChannelItems();
|
||||
} elseif ($this->timeline->isCommunity($this->selectedTab)) {
|
||||
if ($this->session->getLocalUserId() && $this->config->get('system', 'community_no_sharer')) {
|
||||
$this->page['aside'] .= $this->getNoSharerWidget($module);
|
||||
}
|
||||
|
||||
$items = $this->getCommunityItems();
|
||||
} else {
|
||||
$items = $this->getItems();
|
||||
|
@ -146,6 +135,8 @@ class Network extends Timeline
|
|||
$this->page['aside'] .= GroupManager::widget($module . '/group', $this->session->getLocalUserId(), $this->groupContactId);
|
||||
$this->page['aside'] .= Widget::postedByYear($module . '/archive', $this->session->getLocalUserId(), false);
|
||||
$this->page['aside'] .= Widget::networks($module, !$this->groupContactId ? $this->network : '');
|
||||
$this->page['aside'] .= Widget::accountTypes($module, $this->accountTypeString);
|
||||
$this->page['aside'] .= Widget::channels($module, $this->selectedTab, $this->session->getLocalUserId());
|
||||
$this->page['aside'] .= Widget\SavedSearches::getHTML($this->args->getQueryString());
|
||||
$this->page['aside'] .= Widget::fileAs('filed', '');
|
||||
|
||||
|
|
|
@ -80,7 +80,8 @@ class Display extends BaseSettings
|
|||
$theme = !empty($request['theme']) ? trim($request['theme']) : $user['theme'];
|
||||
$mobile_theme = !empty($request['mobile_theme']) ? trim($request['mobile_theme']) : '';
|
||||
$enable_smile = !empty($request['enable_smile']) ? intval($request['enable_smile']) : 0;
|
||||
$network_timelines = !empty($request['network_timelines']) ? $request['network_timelines'] : [];
|
||||
$enable = !empty($request['enable']) ? $request['enable'] : [];
|
||||
$bookmark = !empty($request['bookmark']) ? $request['bookmark'] : [];
|
||||
$channel_languages = !empty($request['channel_languages']) ? $request['channel_languages'] : [];
|
||||
$first_day_of_week = !empty($request['first_day_of_week']) ? intval($request['first_day_of_week']) : 0;
|
||||
$calendar_default_view = !empty($request['calendar_default_view']) ? trim($request['calendar_default_view']) : 'month';
|
||||
|
@ -98,6 +99,20 @@ class Display extends BaseSettings
|
|||
}
|
||||
}
|
||||
|
||||
$enabled_timelines = [];
|
||||
foreach ($enable as $code => $enabled) {
|
||||
if ($enabled) {
|
||||
$enabled_timelines[] = $code;
|
||||
}
|
||||
}
|
||||
|
||||
$network_timelines = [];
|
||||
foreach ($bookmark as $code => $bookmarked) {
|
||||
if ($bookmarked) {
|
||||
$network_timelines[] = $code;
|
||||
}
|
||||
}
|
||||
|
||||
$itemspage_network = !empty($request['itemspage_network']) ?
|
||||
intval($request['itemspage_network']) :
|
||||
$this->config->get('system', 'itemspage_network');
|
||||
|
@ -127,6 +142,7 @@ class Display extends BaseSettings
|
|||
$this->pConfig->set($uid, 'system', 'preview_mode' , $preview_mode);
|
||||
|
||||
$this->pConfig->set($uid, 'system', 'network_timelines' , $network_timelines);
|
||||
$this->pConfig->set($uid, 'system', 'enabled_timelines' , $enabled_timelines);
|
||||
$this->pConfig->set($uid, 'channel', 'languages' , $channel_languages);
|
||||
|
||||
$this->pConfig->set($uid, 'calendar', 'first_day_of_week' , $first_day_of_week);
|
||||
|
@ -224,10 +240,21 @@ class Display extends BaseSettings
|
|||
BBCode::PREVIEW_LARGE => $this->t('Large Image'),
|
||||
];
|
||||
|
||||
$network_timelines = $this->pConfig->get($uid, 'system', 'network_timelines', array_keys($this->getAvailableTimelines($uid, true)));
|
||||
$bookmarked_timelines = $this->pConfig->get($uid, 'system', 'network_timelines', array_keys($this->getAvailableTimelines($uid, true)));
|
||||
$enabled_timelines = $this->pConfig->get($uid, 'system', 'enabled_timelines', array_keys($this->getAvailableTimelines($uid, false)));
|
||||
|
||||
$channel_languages = $this->pConfig->get($uid, 'channel', 'languages', [User::getLanguageCode($uid)]);
|
||||
$languages = $this->l10n->getAvailableLanguages(true);
|
||||
$timelines = $this->getAvailableTimelines($uid);
|
||||
|
||||
$timelines = [];
|
||||
foreach ($this->getAvailableTimelines($uid) as $code => $timeline) {
|
||||
$timelines[] = [
|
||||
'label' => $timeline['label'],
|
||||
'description' => $timeline['description'],
|
||||
'enable' => ["enable[$code]", '', in_array($code, $enabled_timelines)],
|
||||
'bookmark' => ["bookmark[$code]", '', in_array($code, $bookmarked_timelines)],
|
||||
];
|
||||
}
|
||||
|
||||
$first_day_of_week = $this->pConfig->get($uid, 'calendar', 'first_day_of_week', 0);
|
||||
$weekdays = [
|
||||
|
@ -284,7 +311,13 @@ class Display extends BaseSettings
|
|||
'$stay_local' => ['stay_local' , $this->t('Stay local'), $stay_local, $this->t("Don't go to a remote system when following a contact link.")],
|
||||
'$preview_mode' => ['preview_mode' , $this->t('Link preview mode'), $preview_mode, $this->t('Appearance of the link preview that is added to each post with a link.'), $preview_modes, false],
|
||||
|
||||
'$network_timelines' => ['network_timelines[]', $this->t('Timelines for the network page:'), $network_timelines, $this->t('Select all the timelines that you want to see on your network page.'), $timelines, 'multiple'],
|
||||
'$timeline_label' => $this->t('Label'),
|
||||
'$timeline_descriptiom' => $this->t('Description'),
|
||||
'$timeline_enable' => $this->t('Enable'),
|
||||
'$timeline_bookmark' => $this->t('Bookmark'),
|
||||
'$timelines' => $timelines,
|
||||
'$timeline_explanation' => $this->t('Enable timelines that you want to see in the channels widget. Bookmark timelines that you want to see in the top menu.'),
|
||||
|
||||
'$channel_languages' => ['channel_languages[]', $this->t('Channel languages:'), $channel_languages, $this->t('Select all languages that you want to see in your channels.'), $languages, 'multiple'],
|
||||
|
||||
'$first_day_of_week' => ['first_day_of_week' , $this->t('Beginning of week:') , $first_day_of_week , '', $weekdays , false],
|
||||
|
@ -297,7 +330,7 @@ class Display extends BaseSettings
|
|||
$timelines = [];
|
||||
|
||||
foreach ($this->timeline->getNetworkFeeds('') as $channel) {
|
||||
$timelines[$channel->code] = $this->t('%s: %s', $channel->label, $channel->description);
|
||||
$timelines[$channel->code] = ['label' => $channel->label, 'description' => $channel->description];
|
||||
}
|
||||
|
||||
if ($only_network) {
|
||||
|
@ -305,11 +338,11 @@ class Display extends BaseSettings
|
|||
}
|
||||
|
||||
foreach ($this->timeline->getChannelsForUser($uid) as $channel) {
|
||||
$timelines[$channel->code] = $this->t('%s: %s', $channel->label, $channel->description);
|
||||
$timelines[$channel->code] = ['label' => $channel->label, 'description' => $channel->description];
|
||||
}
|
||||
|
||||
foreach ($this->timeline->getCommunities(true) as $community) {
|
||||
$timelines[$community->code] = $this->t('%s: %s', $community->label, $community->description);
|
||||
$timelines[$community->code] = ['label' => $community->label, 'description' => $community->description];
|
||||
}
|
||||
|
||||
return $timelines;
|
||||
|
|
|
@ -84,7 +84,27 @@
|
|||
</div>
|
||||
<div id="timeline-settings-content" class="panel-collapse collapse{{if !$theme && !$mobile_theme && !$theme_config}} in{{/if}}" role="tabpanel" aria-labelledby="timeline-settings">
|
||||
<div class="panel-body">
|
||||
{{include file="field_select.tpl" field=$network_timelines}}
|
||||
{{$timeline_explanation}}
|
||||
<table class="table table-condensed table-striped table-bordered">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{{$timeline_label}}</th>
|
||||
<th>{{$timeline_descriptiom}}</th>
|
||||
<th>{{$timeline_enable}}</th>
|
||||
<th>{{$timeline_bookmark}}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{foreach $timelines as $t}}
|
||||
<tr>
|
||||
<td>{{$t.label}}</td>
|
||||
<td>{{$t.description}}</td>
|
||||
<td>{{include file="field_checkbox.tpl" field=$t.enable}}</td>
|
||||
<td>{{include file="field_checkbox.tpl" field=$t.bookmark}}</td>
|
||||
</tr>
|
||||
{{/foreach}}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="panel-footer">
|
||||
<button type="submit" name="submit" class="btn btn-primary" value="{{$submit}}">{{$submit}}</button>
|
||||
|
|
Loading…
Reference in a new issue