From 41aef80e858aa2b7808a4de87acbe6c28544fc53 Mon Sep 17 00:00:00 2001 From: mrilyew <99399973+mrilyew@users.noreply.github.com> Date: Sat, 15 Mar 2025 18:53:17 +0300 Subject: [PATCH] add uploaded tab --- Web/Presenters/AudioPresenter.php | 13 +++++++++++++ Web/Presenters/templates/Audio/List.xml | 14 ++++++++++++++ Web/Presenters/templates/Audio/tabs.xml | 3 ++- Web/routes.yml | 2 ++ Web/static/css/main.css | 4 ++++ Web/static/js/al_music.js | 3 +++ locales/en.strings | 1 + locales/ru.strings | 1 + 8 files changed, 40 insertions(+), 1 deletion(-) diff --git a/Web/Presenters/AudioPresenter.php b/Web/Presenters/AudioPresenter.php index db341f83..2719fb2b 100644 --- a/Web/Presenters/AudioPresenter.php +++ b/Web/Presenters/AudioPresenter.php @@ -78,6 +78,10 @@ final class AudioPresenter extends OpenVKPresenter } elseif ($mode === "new") { $audios = $this->audios->getNew(); $audiosCount = $audios->size(); + } elseif ($mode === "uploaded") { + $stream = $this->audios->getByUploader($this->user->identity); + $audios = $stream->page($page, $perPage); + $audiosCount = $stream->size(); } elseif ($mode === "playlists") { if ($owner < 0) { $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 { $audio = $this->audios->getByOwnerAndVID($owner, $id); @@ -841,6 +850,10 @@ final class AudioPresenter extends OpenVKPresenter $audios = [$found_audio]; $audiosCount = 1; break; + case "uploaded": + $stream = $this->audios->getByUploader($this->user->identity); + $audios = $stream->page($page, $perPage); + $audiosCount = $stream->size(); } $pagesCount = ceil($audiosCount / $perPage); diff --git a/Web/Presenters/templates/Audio/List.xml b/Web/Presenters/templates/Audio/List.xml index 606022fe..fe078cef 100644 --- a/Web/Presenters/templates/Audio/List.xml +++ b/Web/Presenters/templates/Audio/List.xml @@ -9,6 +9,8 @@ {/if} {elseif $mode == 'new'} {_audio_new} + {elseif $mode == 'uploaded'} + {_my_audios_small_uploaded} {elseif $mode == 'popular'} {_audio_popular} {elseif $mode == 'alone_audio'} @@ -32,6 +34,12 @@ +
+ {_my_audios_small} + » + {_my_audios_small_uploaded} +
+
{_audios} » @@ -68,6 +76,12 @@ entity_id: {$ownerId}, page: {$page} } + {elseif $mode == 'uploaded'} + window.__current_page_audio_context = { + name: 'uploaded', + entity_id: 0, + page: {$page} + } {elseif $mode == 'alone_audio'} window.__current_page_audio_context = { name: 'alone_audio', diff --git a/Web/Presenters/templates/Audio/tabs.xml b/Web/Presenters/templates/Audio/tabs.xml index 8ff7bb1b..b818d44b 100644 --- a/Web/Presenters/templates/Audio/tabs.xml +++ b/Web/Presenters/templates/Audio/tabs.xml @@ -2,6 +2,7 @@
{_my_music} + {_my_audios_small_uploaded} {* TODO: show upload link as and plusick (little plus) in button up*} {_upload_audio} {_audio_new} @@ -13,7 +14,7 @@ {_new_playlist} - {if !$isMy && $mode !== 'popular' && $mode !== 'new' && $mode != 'alone_audio'} + {if !$isMy && $mode !== 'popular' && $mode !== 'new' && $mode != 'alone_audio' && $mode != 'uploaded'}
{if $ownerId > 0}{_music_user}{else}{_music_club}{/if} diff --git a/Web/routes.yml b/Web/routes.yml index 8014b0ef..9738b740 100644 --- a/Web/routes.yml +++ b/Web/routes.yml @@ -201,6 +201,8 @@ routes: handler: "Audio->upload" - url: "/audios{num}" handler: "Audio->list" + - url: "/audios/uploaded" + handler: "Audio->uploaded" - url: "/audio{num}/listen" handler: "Audio->listen" - url: "/audio{num}_{num}" diff --git a/Web/static/css/main.css b/Web/static/css/main.css index 81601b67..ac2e5457 100644 --- a/Web/static/css/main.css +++ b/Web/static/css/main.css @@ -3039,6 +3039,10 @@ a.poll-retract-vote { gap: 1px; } +.verticalGrayTabsPad { + padding: 0px 0px 0px 8px; +} + .searchList hr, .verticalGrayTabs hr { width: 153px; margin-left: 0px; diff --git a/Web/static/js/al_music.js b/Web/static/js/al_music.js index fc35174e..94ba615f 100644 --- a/Web/static/js/al_music.js +++ b/Web/static/js/al_music.js @@ -235,6 +235,9 @@ window.player = new class { 'query': this.context.object.query, })) break + case "uploaded": + form_data.append('context', this.context.object.name) + break case 'alone_audio': form_data.append('context', this.context.object.name) form_data.append('context_entity', this.context.object.entity_id) diff --git a/locales/en.strings b/locales/en.strings index b7f75d91..a4ab2411 100644 --- a/locales/en.strings +++ b/locales/en.strings @@ -948,6 +948,7 @@ "audio_search" = "Search"; "my_audios_small" = "My audios"; +"my_audios_small_uploaded" = "Uploaded"; "my_playlists" = "My playlists"; "playlists" = "Playlists"; "audios_explicit" = "Contains obscene language"; diff --git a/locales/ru.strings b/locales/ru.strings index 58608b1f..1315f82b 100644 --- a/locales/ru.strings +++ b/locales/ru.strings @@ -903,6 +903,7 @@ "audio_search" = "Поиск"; "my_audios_small" = "Мои аудиозаписи"; +"my_audios_small_uploaded" = "Загруженное"; "my_playlists" = "Мои плейлисты"; "playlists" = "Плейлисты"; "audios_explicit" = "Содержит нецензурную лексику";