mirror of
https://github.com/openvk/openvk
synced 2025-04-23 00:23:01 +03:00
Изменены фавиконки (поменьше стали) У миниплеера ползунок теперь в стиле bsdn и большого плеера, добавлен ползунок громкости Добавлена кнопка добавления аудио в группу (у миниплеера) Если вы смотрите аудио группы, которой можете управлять, появляется кнопка "удалить аудио из группы" Снизу плейлиста в списке теперь показывается автор. При прикреплении аудиозаписей к посту теперь есть поиск "по композиции" и "по исполнителю" Добавил explicit.svg, который я забыл добавить в предыдущем коммите. Вкладочки немного переделаны При наведении на кнопки "трек вперёд" или "трек назад" показывается название предыдущего или следующего трека соответственно
106 lines
3.8 KiB
XML
106 lines
3.8 KiB
XML
{extends "../@layout.xml"}
|
|
|
|
{block title}
|
|
{_new_playlist}
|
|
{/block}
|
|
|
|
{block header}
|
|
{if !$_GET["owner"]}
|
|
<a href="{$thisUser->getURL()}">{$thisUser->getCanonicalName()}</a>
|
|
»
|
|
<a href="/audios{$thisUser->getId()}">{_audios}</a>
|
|
{else}
|
|
<a href="{$club->getURL()}">{$club->getCanonicalName()}</a>
|
|
»
|
|
<a href="/audios-{$club->getId()}">{_audios}</a>
|
|
{/if}
|
|
»
|
|
{_new_playlist}
|
|
{/block}
|
|
|
|
{block content}
|
|
<style>
|
|
textarea[name='description'] {
|
|
padding: 4px;
|
|
}
|
|
|
|
.playlistInfo {
|
|
width: 76%;
|
|
margin-left: 8px;
|
|
}
|
|
</style>
|
|
|
|
<div style="display:flex;">
|
|
<div class="playlistCover" onclick="document.querySelector(`#newPlaylistForm input[name='cover']`).click()">
|
|
<a>
|
|
<img src="/assets/packages/static/openvk/img/song.jpg">
|
|
</a>
|
|
</div>
|
|
|
|
<div class="playlistInfo">
|
|
<input type="text" name="title" placeholder="{_title}" maxlength="128" />
|
|
<br /><br />
|
|
<textarea placeholder="{_description}" name="description" maxlength="2048" />
|
|
<br /><br />
|
|
</div>
|
|
</div>
|
|
|
|
<hr />
|
|
<div style="margin-top: 19px;">
|
|
<input id="playlist_query" type="text" style="height: 26px;" placeholder="{_header_search}">
|
|
<div class="playlistAudiosContainer" style="display:table;clear:both;width:100%;margin-top: 10px;">
|
|
<div id="newPlaylistAudios" n:foreach="$audios as $audio">
|
|
<div style="width: 78%;float: left;">
|
|
{include "player.xml", audio => $audio, hideButtons => true}
|
|
</div>
|
|
<div class="attachAudio addToPlaylist" data-id="{$audio->getId()}" style="width: 22%;">
|
|
<span>{_add_to_playlist}</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="showMoreAudiosPlaylist" data-page="2" {if !is_null($_GET["owner"])}data-club="{abs($_GET['owner'])}"{/if} n:if="$pagesCount > 1">
|
|
{_show_more_audios}
|
|
</div>
|
|
</div>
|
|
|
|
<form method="post" id="newPlaylistForm" enctype="multipart/form-data">
|
|
<input type="hidden" name="title" maxlength="128" />
|
|
<input type="hidden" name="hash" value="{$csrfToken}" />
|
|
<textarea style="display:none;" name="description" maxlength="2048" />
|
|
<input type="hidden" name="audios">
|
|
<input type="file" style="display:none;" name="cover" accept=".jpg,.png">
|
|
|
|
<div style="float: right;margin-top: 9px;">
|
|
<button class="button" type="submit">{_create}</button>
|
|
</div>
|
|
</form>
|
|
|
|
<script>
|
|
document.querySelector("input[name='audios']").value = ""
|
|
|
|
u("#newPlaylistForm").on("submit", (e) => {
|
|
document.querySelector("#newPlaylistForm input[name='title']").value = document.querySelector(".playlistInfo input[name='title']").value
|
|
document.querySelector("#newPlaylistForm textarea[name='description']").value = document.querySelector(".playlistInfo textarea[name='description']").value
|
|
})
|
|
|
|
u("#newPlaylistForm input[name='cover']").on("change", (e) => {
|
|
if(!e.currentTarget.files[0].type.startsWith("image/")) {
|
|
fastError(tr("not_a_photo"))
|
|
return
|
|
}
|
|
|
|
let image = URL.createObjectURL(e.currentTarget.files[0])
|
|
|
|
document.querySelector(".playlistCover img").src = image
|
|
document.querySelector(".playlistCover img").style.display = "block"
|
|
})
|
|
|
|
u(".playlistCover img").on("click", (e) => {
|
|
document.querySelector("#newPlaylistForm input[name='cover']").value = ""
|
|
e.currentTarget.href = ""
|
|
})
|
|
|
|
document.querySelector("#newPlaylistForm input[name='cover']").value = ""
|
|
</script>
|
|
{/block}
|