add uploaded tab

This commit is contained in:
mrilyew 2025-03-15 18:53:17 +03:00
parent 520587cc56
commit 41aef80e85
8 changed files with 40 additions and 1 deletions

View file

@ -78,6 +78,10 @@ final class AudioPresenter extends OpenVKPresenter
} elseif ($mode === "new") { } elseif ($mode === "new") {
$audios = $this->audios->getNew(); $audios = $this->audios->getNew();
$audiosCount = $audios->size(); $audiosCount = $audios->size();
} elseif ($mode === "uploaded") {
$stream = $this->audios->getByUploader($this->user->identity);
$audios = $stream->page($page, $perPage);
$audiosCount = $stream->size();
} elseif ($mode === "playlists") { } elseif ($mode === "playlists") {
if ($owner < 0) { if ($owner < 0) {
$entity = (new Clubs())->get(abs($owner)); $entity = (new Clubs())->get(abs($owner));
@ -130,6 +134,11 @@ final class AudioPresenter extends OpenVKPresenter
} }
} }
function renderUploaded()
{
$this->renderList(null, "uploaded");
}
public function renderEmbed(int $owner, int $id): void public function renderEmbed(int $owner, int $id): void
{ {
$audio = $this->audios->getByOwnerAndVID($owner, $id); $audio = $this->audios->getByOwnerAndVID($owner, $id);
@ -841,6 +850,10 @@ final class AudioPresenter extends OpenVKPresenter
$audios = [$found_audio]; $audios = [$found_audio];
$audiosCount = 1; $audiosCount = 1;
break; break;
case "uploaded":
$stream = $this->audios->getByUploader($this->user->identity);
$audios = $stream->page($page, $perPage);
$audiosCount = $stream->size();
} }
$pagesCount = ceil($audiosCount / $perPage); $pagesCount = ceil($audiosCount / $perPage);

View file

@ -9,6 +9,8 @@
{/if} {/if}
{elseif $mode == 'new'} {elseif $mode == 'new'}
{_audio_new} {_audio_new}
{elseif $mode == 'uploaded'}
{_my_audios_small_uploaded}
{elseif $mode == 'popular'} {elseif $mode == 'popular'}
{_audio_popular} {_audio_popular}
{elseif $mode == 'alone_audio'} {elseif $mode == 'alone_audio'}
@ -32,6 +34,12 @@
</div> </div>
</div> </div>
<div n:if="$mode == 'uploaded'">
{_my_audios_small}
»
{_my_audios_small_uploaded}
</div>
<div n:if="$mode == 'new'"> <div n:if="$mode == 'new'">
{_audios} {_audios}
» »
@ -68,6 +76,12 @@
entity_id: {$ownerId}, entity_id: {$ownerId},
page: {$page} page: {$page}
} }
{elseif $mode == 'uploaded'}
window.__current_page_audio_context = {
name: 'uploaded',
entity_id: 0,
page: {$page}
}
{elseif $mode == 'alone_audio'} {elseif $mode == 'alone_audio'}
window.__current_page_audio_context = { window.__current_page_audio_context = {
name: 'alone_audio', name: 'alone_audio',

View file

@ -2,6 +2,7 @@
<div class="verticalGrayTabs"> <div class="verticalGrayTabs">
<div class='with_padding'> <div class='with_padding'>
<a n:if="isset($thisUser)" n:attr="id => $mode === 'list' && $isMy ? 'used' : 'ki'" href="/audios{$thisUser->getId()}">{_my_music}</a> <a n:if="isset($thisUser)" n:attr="id => $mode === 'list' && $isMy ? 'used' : 'ki'" href="/audios{$thisUser->getId()}">{_my_music}</a>
<a n:attr="id => $mode === 'uploaded' ? 'used' : 'ki'" href="/audios/uploaded">{_my_audios_small_uploaded}</a>
{* TODO: show upload link as and plusick (little plus) in button up*} {* TODO: show upload link as and plusick (little plus) in button up*}
<a n:if="isset($thisUser)" href="/player/upload{if $isMyClub}?gid={abs($ownerId)}{/if}">{_upload_audio}</a> <a n:if="isset($thisUser)" href="/player/upload{if $isMyClub}?gid={abs($ownerId)}{/if}">{_upload_audio}</a>
<a n:if="isset($thisUser)" n:attr="id => $mode === 'new' ? 'used' : 'ki'" href="/search?section=audios">{_audio_new}</a> <a n:if="isset($thisUser)" n:attr="id => $mode === 'new' ? 'used' : 'ki'" href="/search?section=audios">{_audio_new}</a>
@ -13,7 +14,7 @@
<a n:if="isset($thisUser)" href="/audios/newPlaylist">{_new_playlist}</a> <a n:if="isset($thisUser)" href="/audios/newPlaylist">{_new_playlist}</a>
{if !$isMy && $mode !== 'popular' && $mode !== 'new' && $mode != 'alone_audio'} {if !$isMy && $mode !== 'popular' && $mode !== 'new' && $mode != 'alone_audio' && $mode != 'uploaded'}
<hr> <hr>
<a n:if="!$isMy" n:attr="id => $mode === 'list' ? 'used' : 'ki'" href="/audios{$ownerId}">{if $ownerId > 0}{_music_user}{else}{_music_club}{/if}</a> <a n:if="!$isMy" n:attr="id => $mode === 'list' ? 'used' : 'ki'" href="/audios{$ownerId}">{if $ownerId > 0}{_music_user}{else}{_music_club}{/if}</a>

View file

@ -201,6 +201,8 @@ routes:
handler: "Audio->upload" handler: "Audio->upload"
- url: "/audios{num}" - url: "/audios{num}"
handler: "Audio->list" handler: "Audio->list"
- url: "/audios/uploaded"
handler: "Audio->uploaded"
- url: "/audio{num}/listen" - url: "/audio{num}/listen"
handler: "Audio->listen" handler: "Audio->listen"
- url: "/audio{num}_{num}" - url: "/audio{num}_{num}"

View file

@ -3039,6 +3039,10 @@ a.poll-retract-vote {
gap: 1px; gap: 1px;
} }
.verticalGrayTabsPad {
padding: 0px 0px 0px 8px;
}
.searchList hr, .verticalGrayTabs hr { .searchList hr, .verticalGrayTabs hr {
width: 153px; width: 153px;
margin-left: 0px; margin-left: 0px;

View file

@ -235,6 +235,9 @@ window.player = new class {
'query': this.context.object.query, 'query': this.context.object.query,
})) }))
break break
case "uploaded":
form_data.append('context', this.context.object.name)
break
case 'alone_audio': case 'alone_audio':
form_data.append('context', this.context.object.name) form_data.append('context', this.context.object.name)
form_data.append('context_entity', this.context.object.entity_id) form_data.append('context_entity', this.context.object.entity_id)

View file

@ -948,6 +948,7 @@
"audio_search" = "Search"; "audio_search" = "Search";
"my_audios_small" = "My audios"; "my_audios_small" = "My audios";
"my_audios_small_uploaded" = "Uploaded";
"my_playlists" = "My playlists"; "my_playlists" = "My playlists";
"playlists" = "Playlists"; "playlists" = "Playlists";
"audios_explicit" = "Contains obscene language"; "audios_explicit" = "Contains obscene language";

View file

@ -903,6 +903,7 @@
"audio_search" = "Поиск"; "audio_search" = "Поиск";
"my_audios_small" = "Мои аудиозаписи"; "my_audios_small" = "Мои аудиозаписи";
"my_audios_small_uploaded" = "Загруженное";
"my_playlists" = "Мои плейлисты"; "my_playlists" = "Мои плейлисты";
"playlists" = "Плейлисты"; "playlists" = "Плейлисты";
"audios_explicit" = "Содержит нецензурную лексику"; "audios_explicit" = "Содержит нецензурную лексику";