mirror of
https://github.com/Yetangitu/ampache
synced 2025-10-05 10:49:37 +02:00
Can now re-order playlist and album songs #53 (new grab icon displayed on sortable list)
Updating only the modified item (not refreshing page anymore) #43 Removed last 'Flag' items found #54 Reborn theme set as default #22 Fix: filters are now working Fix: Artist edition
This commit is contained in:
parent
f16e1267fe
commit
a53d308b6c
46 changed files with 9475 additions and 488 deletions
25
albums.php
25
albums.php
|
@ -164,6 +164,31 @@ switch ($_REQUEST['action']) {
|
|||
$target_url = Config::get('web_path') . '/albums.php?action=show&album=' . $object_id;
|
||||
require_once Config::get('prefix') . '/templates/show_update_items.inc.php';
|
||||
break;
|
||||
case 'set_track_numbers':
|
||||
debug_event('albums', 'Set track numbers called.', '5');
|
||||
|
||||
if (!Access::check('interface','75')) {
|
||||
UI::access_denied();
|
||||
exit;
|
||||
}
|
||||
|
||||
// Retrieving final song order from url
|
||||
foreach ($_GET as $key => $data) {
|
||||
$_GET[$key] = unhtmlentities(scrub_in($data));
|
||||
debug_event('albums', $key.'='.$_GET[$key], '5');
|
||||
}
|
||||
|
||||
if (isset($_GET['order'])) {
|
||||
$songs = explode(";", $_GET['order']);
|
||||
$track = 1;
|
||||
foreach ($songs as $song_id) {
|
||||
if ($song_id != '') {
|
||||
Song::update_track($track, $song_id);
|
||||
++$track;
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
// Browse by Album
|
||||
default:
|
||||
case 'show':
|
||||
|
|
BIN
images/icon_drag.png
Normal file
BIN
images/icon_drag.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 175 B |
|
@ -160,7 +160,7 @@ class Browse extends Query
|
|||
UI::show_box_bottom();
|
||||
break;
|
||||
case 'playlist_song':
|
||||
UI::show_box_top(T_('Playlist Songs') . $match,$class);
|
||||
UI::show_box_top(T_('Playlist Songs') . $match, $class);
|
||||
require_once Config::get('prefix') . '/templates/show_playlist_songs.inc.php';
|
||||
UI::show_box_bottom();
|
||||
break;
|
||||
|
|
|
@ -427,11 +427,11 @@ class Preference
|
|||
if (strlen($results['theme_name']) > 0) {
|
||||
$results['theme_path'] = '/themes/' . $results['theme_name'];
|
||||
}
|
||||
// Default to the fresh theme if we don't get anything from their
|
||||
// Default theme if we don't get anything from their
|
||||
// preferences because we're going to want at least something otherwise
|
||||
// the page is going to be really ugly
|
||||
else {
|
||||
$results['theme_path'] = '/themes/fresh';
|
||||
$results['theme_path'] = '/themes/reborn';
|
||||
}
|
||||
|
||||
Config::set_by_array($results, true);
|
||||
|
|
|
@ -372,7 +372,6 @@ class Song extends database_object implements media
|
|||
}
|
||||
|
||||
return $results;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -497,12 +497,14 @@ class Tag extends database_object
|
|||
*/
|
||||
public static function update_tag_list($tags_comma, $type, $object_id)
|
||||
{
|
||||
if ($tags_comma != '') {
|
||||
debug_event('tag.class', 'Updating tags for values {'.$tags_comma.'} type {'.$type.'} object_id {'.$object_id.'}', '5');
|
||||
|
||||
$ctags = Tag::get_top_tags($type, $object_id);
|
||||
$editedTags = explode(",", $tags_comma);
|
||||
|
||||
foreach ($ctags as $ctid => $ctv) {
|
||||
if ($ctid != '') {
|
||||
$ctag = new Tag($ctid);
|
||||
foreach ($editedTags as $tk => $tv) {
|
||||
if ($ctag->name == $tv) {
|
||||
|
@ -517,12 +519,16 @@ class Tag extends database_object
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Look if we need to add some new tags
|
||||
foreach ($editedTags as $tk => $tv) {
|
||||
debug_event('tag.class', 'Adding new tag {'.$tv.'}', '5');
|
||||
if ($tv != '') {
|
||||
Tag::add($type, $object_id, $tv, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
} // update_tag_list
|
||||
|
||||
/**
|
||||
|
|
|
@ -31,13 +31,13 @@ function load_gettext()
|
|||
$lang = Config::get('lang');
|
||||
$charset = Config::get('site_charset') ?: 'UTF-8';
|
||||
$locale = $lang . '.' . $charset;
|
||||
debug_event('i18n', 'Setting locale to ' . $locale, 5);
|
||||
//debug_event('i18n', 'Setting locale to ' . $locale, 5);
|
||||
T_setlocale(LC_MESSAGES, $locale);
|
||||
/* Bind the Text Domain */
|
||||
T_bindtextdomain('messages', Config::get('prefix') . "/locale/");
|
||||
T_bind_textdomain_codeset('messages', $charset);
|
||||
T_textdomain('messages');
|
||||
debug_event('i18n', 'gettext is ' . (locale_emulation() ? 'emulated' : 'native'), 5);
|
||||
//debug_event('i18n', 'gettext is ' . (locale_emulation() ? 'emulated' : 'native'), 5);
|
||||
} // load_gettext
|
||||
|
||||
/**
|
||||
|
|
|
@ -208,7 +208,7 @@ if (session_id()) {
|
|||
|
||||
/* Add in some variables for ajax done here because we need the user */
|
||||
Config::set('ajax_url', Config::get('web_path') . '/server/ajax.server.php', true);
|
||||
Config::set('ajax_show_edit_url', Config::get('web_path') . '/server/show_edit.server.php', true);
|
||||
Config::set('ajax_server', Config::get('web_path') . '/server', true);
|
||||
|
||||
// Load gettext mojo
|
||||
load_gettext();
|
||||
|
|
|
@ -26,7 +26,6 @@ $(document).ajaxComplete(function () {
|
|||
// ajaxPost
|
||||
// Post the contents of a form.
|
||||
function ajaxPost(url, input, source) {
|
||||
//$('#' + input)
|
||||
if ($(source)) {
|
||||
$(source).off('click', function(){ ajaxPost(url, input, source); });
|
||||
}
|
||||
|
@ -45,23 +44,20 @@ function ajaxPut(url, source) {
|
|||
// ajaxState
|
||||
// Post the contents of a form without doing any observe() things.
|
||||
function ajaxState(url, input) {
|
||||
new Ajax.Request(url, {
|
||||
method: 'post',
|
||||
parameters: $(input).serialize(true),
|
||||
onSuccess: processContents
|
||||
$.ajax({
|
||||
url : url,
|
||||
type : 'POST',
|
||||
data : $('#' + input).serialize(true),
|
||||
success : processContents
|
||||
});
|
||||
} // ajaxState
|
||||
|
||||
|
||||
// processContents
|
||||
// Iterate over a response and do any updates we received.
|
||||
function processContents(data, status) {
|
||||
function processContents(data) {
|
||||
$(data).find('content').each(function () {
|
||||
$('#' + $(this).attr('div')).html($(this).text())
|
||||
/*var text = $.parseHTML($(this).text(), document, true);
|
||||
var dom = $(text);
|
||||
dom.filter('script').each(function(){
|
||||
$.globalEval(this.text || this.textContent || this.innerHtml || '');
|
||||
});*/
|
||||
})
|
||||
$('#' + $(this).attr('div')).html($(this).text());
|
||||
});
|
||||
} // processContents
|
||||
|
||||
|
|
|
@ -19,17 +19,6 @@
|
|||
//
|
||||
$(document).ready(function () {
|
||||
$('.default_hidden').hide();
|
||||
|
||||
$('#sortableplaylist').sortable({
|
||||
axis: 'y',
|
||||
delay: 200,
|
||||
start: function (event, ui) {
|
||||
$(ui.item).data("startindex", ui.item.index());
|
||||
},
|
||||
stop: function (event, ui) {
|
||||
playlistUpdatedIndex(ui.item);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
$(function() {
|
||||
|
|
|
@ -22,12 +22,15 @@
|
|||
/* Edit modal dialog */
|
||||
/*********************/
|
||||
|
||||
function showEditDialog(edit_type, edit_id, edit_form_id, edit_title, edit_tag_choices) {
|
||||
function showEditDialog(edit_type, edit_id, edit_form_id, edit_title, edit_tag_choices, refresh_row_prefix, refresh_action) {
|
||||
var parent = this;
|
||||
parent.editFormId = 'form#' + edit_form_id;
|
||||
parent.contentUrl = jsAjaxShowEditUrl + '?action=show_edit_object&id=' + edit_id + '&type=' + edit_type;
|
||||
parent.contentUrl = jsAjaxServer + '/show_edit.server.php?action=show_edit_object&id=' + edit_id + '&type=' + edit_type;
|
||||
parent.saveUrl = jsAjaxUrl + '?action=edit_object&id=' + edit_id + '&type=' + edit_type;
|
||||
parent.editDialogId = '<div id="editdialog"></div>';
|
||||
parent.refreshRowPrefix = refresh_row_prefix;
|
||||
parent.refreshAction = refresh_action;
|
||||
parent.editId = edit_id;
|
||||
|
||||
// Convert choices string ("tag0,tag1,tag2,...") to choices array
|
||||
parent.editTagChoices = new Array();
|
||||
|
@ -46,9 +49,20 @@ function showEditDialog(edit_type, edit_id, edit_form_id, edit_title, edit_tag_c
|
|||
type : 'POST',
|
||||
data : $(parent.editFormId).serializeArray(),
|
||||
success : function(resp){
|
||||
var new_id = $.trim(resp.lastChild.textContent);
|
||||
$("#editdialog").dialog("close");
|
||||
// Need to replace current div instead of refreshing frame.
|
||||
window.location.reload();
|
||||
|
||||
// resp should contain the new identifier, otherwise we take the same as the edited item
|
||||
if (new_id == '') {
|
||||
new_id = parent.editId;
|
||||
}
|
||||
|
||||
var url = jsAjaxServer + '/refresh_updated.server.php?action=' + parent.refreshAction + '&id=' + new_id;
|
||||
// Reload only table
|
||||
$('#' + parent.refreshRowPrefix + parent.editId).load(url, function() {
|
||||
// Update the current row identifier with new id
|
||||
$('#' + parent.refreshRowPrefix + parent.editId).attr("id", parent.refreshRowPrefix + new_id);
|
||||
});
|
||||
},
|
||||
error : function(resp){
|
||||
$("#editdialog").dialog("close");
|
||||
|
@ -112,7 +126,10 @@ $(document).ready(function () {
|
|||
});
|
||||
});
|
||||
|
||||
function submitPlaylistOrder(playlistUrl, tableid) {
|
||||
function submitNewItemsOrder(itemId, tableid, rowPrefix, updateUrl, refreshAction) {
|
||||
var parent = this;
|
||||
parent.itemId = itemId;
|
||||
parent.refreshAction = refreshAction;
|
||||
|
||||
var table = document.getElementById(tableid);
|
||||
var rowLength = table.rows.length;
|
||||
|
@ -121,16 +138,26 @@ function submitPlaylistOrder(playlistUrl, tableid) {
|
|||
for (var i = 0; i < rowLength; ++i) {
|
||||
var row = table.rows[i];
|
||||
if (row.id != '') {
|
||||
var songid = row.id.replace('track_', '');
|
||||
var songid = row.id.replace(rowPrefix, '');
|
||||
finalOrder += songid + ";"
|
||||
}
|
||||
}
|
||||
|
||||
if (finalOrder != '') {
|
||||
$.ajax({
|
||||
url : playlistUrl,
|
||||
url : updateUrl,
|
||||
type : 'GET',
|
||||
data : 'order=' + finalOrder
|
||||
data : 'order=' + finalOrder,
|
||||
success : function(resp){
|
||||
var url = jsAjaxServer + '/refresh_reordered.server.php?action=' + parent.refreshAction + '&id=' + parent.itemId;
|
||||
// Reload only table
|
||||
$('#reordered_list').load(url, function() {
|
||||
$('#sortableplaylist').sortable({
|
||||
axis: 'y',
|
||||
delay: 200
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
8829
modules/jquery/jquery-2.0.3.js
vendored
Normal file
8829
modules/jquery/jquery-2.0.3.js
vendored
Normal file
File diff suppressed because it is too large
Load diff
1
modules/jquery/jquery-2.0.3.min.map
Normal file
1
modules/jquery/jquery-2.0.3.min.map
Normal file
File diff suppressed because one or more lines are too long
|
@ -138,8 +138,6 @@ switch ($_REQUEST['action']) {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
//require Config::get('prefix') . '/templates/show_playlist.inc.php';
|
||||
break;
|
||||
case 'prune_empty':
|
||||
/* Make sure they have permission */
|
||||
|
|
|
@ -39,6 +39,8 @@ header("Pragma: no-cache");
|
|||
|
||||
$page = isset($_REQUEST['page']) ? $_REQUEST['page'] : null;
|
||||
|
||||
debug_event('ajax.server.php', 'Called for page: {'.$page.'}', '5');
|
||||
|
||||
switch ($page) {
|
||||
case 'stats':
|
||||
require_once Config::get('prefix') . '/server/stats.ajax.php';
|
||||
|
@ -122,6 +124,7 @@ switch ($_REQUEST['action']) {
|
|||
break;
|
||||
}
|
||||
|
||||
$new_id = '';
|
||||
switch ($_POST['type']) {
|
||||
case 'album_row':
|
||||
$key = 'album_' . $_POST['id'];
|
||||
|
@ -130,9 +133,6 @@ switch ($_REQUEST['action']) {
|
|||
$new_id = $album->update($_POST);
|
||||
if ($new_id != $_POST['id']) {
|
||||
$album = new Album($new_id);
|
||||
foreach ($songs as $song_id) {
|
||||
Flag::add($song_id, 'song', 'retag',' Inline Album Update');
|
||||
}
|
||||
}
|
||||
$album->format();
|
||||
break;
|
||||
|
@ -143,16 +143,12 @@ switch ($_REQUEST['action']) {
|
|||
$new_id = $artist->update($_POST);
|
||||
if ($new_id != $_POST['id']) {
|
||||
$artist = new Artist($new_id);
|
||||
foreach ($songs as $song_id) {
|
||||
Flag::add($song_id, 'song', 'retag', 'Inline Artist Update');
|
||||
}
|
||||
}
|
||||
$artist->format();
|
||||
break;
|
||||
case 'song_row':
|
||||
$key = 'song_' . $_POST['id'];
|
||||
$song = new Song($_POST['id']);
|
||||
Flag::add($song->id, 'song', 'retag', 'Inline Single Song Update');
|
||||
$song->update($_POST);
|
||||
$song->format();
|
||||
break;
|
||||
|
@ -165,7 +161,7 @@ switch ($_REQUEST['action']) {
|
|||
break;
|
||||
case 'smartplaylist_row':
|
||||
case 'smartplaylist_title':
|
||||
$key = 'playlist_row_' . $_POST['id'];
|
||||
$key = 'smartplaylist_row_' . $_POST['id'];
|
||||
$playlist->name = $_POST['name'];
|
||||
$playlist->type = $_POST['pl_type'];
|
||||
$playlist->update();
|
||||
|
@ -184,10 +180,7 @@ switch ($_REQUEST['action']) {
|
|||
break;
|
||||
} // end switch on type
|
||||
|
||||
ob_start();
|
||||
require Config::get('prefix') . '/templates/show_' . $_POST['type'] . '.inc.php';
|
||||
$results[$key] = ob_get_contents();
|
||||
ob_end_clean();
|
||||
$results['id'] = $new_id;
|
||||
break;
|
||||
case 'current_playlist':
|
||||
switch ($_REQUEST['type']) {
|
||||
|
|
|
@ -37,6 +37,8 @@ if (isset($_REQUEST['browse_id'])) {
|
|||
$list_uid = scrub_in($_REQUEST['uid']);
|
||||
$browse = new Browse($browse_id);
|
||||
|
||||
debug_event('browse.ajax.php', 'Called for action: {'.$_REQUEST['action'].'}', '5');
|
||||
|
||||
switch ($_REQUEST['action']) {
|
||||
case 'browse':
|
||||
$object_ids = array();
|
||||
|
@ -45,7 +47,7 @@ switch ($_REQUEST['action']) {
|
|||
//(user type a "start with" word and deletes it)
|
||||
if ($_REQUEST['key'] && (isset($_REQUEST['multi_alpha_filter']) OR isset($_REQUEST['value']))) {
|
||||
// Set any new filters we've just added
|
||||
$browse->set_filter($_REQUEST['key'],$_REQUEST['multi_alpha_filter']);
|
||||
$browse->set_filter($_REQUEST['key'], $_REQUEST['multi_alpha_filter']);
|
||||
$browse->set_catalog($_SESSION['catalog']);
|
||||
}
|
||||
|
||||
|
@ -54,7 +56,6 @@ switch ($_REQUEST['action']) {
|
|||
$browse->set_sort($_REQUEST['sort']);
|
||||
}
|
||||
|
||||
|
||||
if ($_REQUEST['catalog_key'] || $SESSION['catalog'] != 0) {
|
||||
$browse->set_filter('catalog',$_REQUEST['catalog_key']);
|
||||
$_SESSION['catalog'] = $_REQUEST['catalog_key'];
|
||||
|
@ -67,9 +68,7 @@ switch ($_REQUEST['action']) {
|
|||
$browse->show_objects();
|
||||
$results['browse_content_' . $browse->get_type()] = ob_get_clean();
|
||||
break;
|
||||
|
||||
case 'set_sort':
|
||||
|
||||
if ($_REQUEST['sort']) {
|
||||
$browse->set_sort($_REQUEST['sort']);
|
||||
}
|
||||
|
@ -97,7 +96,7 @@ switch ($_REQUEST['action']) {
|
|||
$playlist = new Search('song', $_REQUEST['id']);
|
||||
if (!$playlist->has_access()) { exit; }
|
||||
$playlist->delete();
|
||||
$key = 'playlist_row_' . $playlist->id;
|
||||
$key = 'smartplaylist_row_' . $playlist->id;
|
||||
break;
|
||||
case 'live_stream':
|
||||
if (!$GLOBALS['user']->has_access('75')) { exit; }
|
||||
|
|
54
server/refresh_reordered.server.php
Normal file
54
server/refresh_reordered.server.php
Normal file
|
@ -0,0 +1,54 @@
|
|||
<?php
|
||||
/* vim:set softtabstop=4 shiftwidth=4 expandtab: */
|
||||
/**
|
||||
*
|
||||
* LICENSE: GNU General Public License, version 2 (GPLv2)
|
||||
* Copyright 2001 - 2013 Ampache.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License v2
|
||||
* as published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
*/
|
||||
|
||||
define('AJAX_INCLUDE','1');
|
||||
|
||||
require_once '../lib/init.php';
|
||||
|
||||
debug_event('refresh_reordered.server.php', 'Called for action: {'.$_REQUEST['action'].'}', '5');
|
||||
|
||||
/* Switch on the action passed in */
|
||||
switch ($_REQUEST['action']) {
|
||||
case 'refresh_playlist_songs':
|
||||
$playlist = new Playlist($_REQUEST['id']);
|
||||
$playlist->format();
|
||||
$object_ids = $playlist->get_items();
|
||||
$browse = new Browse();
|
||||
$browse->set_type('playlist_song');
|
||||
$browse->add_supplemental_object('playlist', $playlist->id);
|
||||
$browse->set_static_content(true);
|
||||
$browse->show_objects($object_ids);
|
||||
$browse->store();
|
||||
break;
|
||||
case 'refresh_album_songs':
|
||||
$album = new Album($_REQUEST['id']);
|
||||
$album->format();
|
||||
$browse = new Browse();
|
||||
$browse->set_type('song');
|
||||
$browse->set_simple_browse(true);
|
||||
$browse->set_filter('album', $album->id);
|
||||
$browse->set_sort('track', 'ASC');
|
||||
$browse->get_objects();
|
||||
$browse->show_objects();
|
||||
$browse->store();
|
||||
break;
|
||||
} // switch on the action
|
62
server/refresh_updated.server.php
Normal file
62
server/refresh_updated.server.php
Normal file
|
@ -0,0 +1,62 @@
|
|||
<?php
|
||||
/* vim:set softtabstop=4 shiftwidth=4 expandtab: */
|
||||
/**
|
||||
*
|
||||
* LICENSE: GNU General Public License, version 2 (GPLv2)
|
||||
* Copyright 2001 - 2013 Ampache.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License v2
|
||||
* as published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
*/
|
||||
|
||||
define('AJAX_INCLUDE','1');
|
||||
|
||||
require_once '../lib/init.php';
|
||||
|
||||
debug_event('refresh_updated.server.php', 'Called for action: {'.$_REQUEST['action'].'}', '5');
|
||||
|
||||
/* Switch on the action passed in */
|
||||
switch ($_REQUEST['action']) {
|
||||
case 'refresh_song':
|
||||
$song = new Song($_REQUEST['id']);
|
||||
$song->format();
|
||||
require Config::get('prefix') . '/templates/show_song_row.inc.php';
|
||||
break;
|
||||
case 'refresh_album':
|
||||
$album = new Album($_REQUEST['id']);
|
||||
$album->format();
|
||||
require Config::get('prefix') . '/templates/show_album_row.inc.php';
|
||||
break;
|
||||
case 'refresh_artist':
|
||||
$artist = new Artist($_REQUEST['id'], $_SESSION['catalog']);
|
||||
$artist->format();
|
||||
require Config::get('prefix') . '/templates/show_artist_row.inc.php';
|
||||
break;
|
||||
case 'refresh_playlist':
|
||||
$playlist = new Playlist($_REQUEST['id']);
|
||||
$playlist->format();
|
||||
$count = $playlist->get_song_count();
|
||||
require Config::get('prefix') . '/templates/show_playlist_row.inc.php';
|
||||
break;
|
||||
case 'refresh_smartplaylist':
|
||||
$playlist = new Search('song', $_REQUEST['id']);
|
||||
$playlist->format();
|
||||
require Config::get('prefix') . '/templates/show_smartplaylist_row.inc.php';
|
||||
break;
|
||||
case 'refresh_livestream':
|
||||
$radio = new Radio($_REQUEST['id']);
|
||||
$radio->format();
|
||||
require Config::get('prefix') . '/templates/show_live_stream_row.inc.php';
|
||||
break;
|
||||
} // switch on the action
|
|
@ -552,7 +552,7 @@ CREATE TABLE `preference` (
|
|||
|
||||
LOCK TABLES `preference` WRITE;
|
||||
/*!40000 ALTER TABLE `preference` DISABLE KEYS */;
|
||||
INSERT INTO `preference` VALUES (1,'download','0','Allow Downloads',100,'boolean','options'),(4,'popular_threshold','10','Popular Threshold',25,'integer','interface'),(19,'sample_rate','32','Transcode Bitrate',25,'string','streaming'),(22,'site_title','Ampache :: Pour l\'Amour de la Musique','Website Title',100,'string','system'),(23,'lock_songs','0','Lock Songs',100,'boolean','system'),(24,'force_http_play','1','Forces Http play regardless of port',100,'boolean','system'),(25,'http_port','80','Non-Standard Http Port',100,'integer','system'),(41,'localplay_controller','0','Localplay Type',100,'special','options'),(29,'play_type','stream','Type of Playback',25,'special','streaming'),(31,'lang','fr_FR','Language',100,'special','interface'),(32,'playlist_type','m3u','Playlist Type',100,'special','playlist'),(33,'theme_name','fresh','Theme',0,'special','interface'),(34,'ellipse_threshold_album','27','Album Ellipse Threshold',0,'integer','interface'),(35,'ellipse_threshold_artist','27','Artist Ellipse Threshold',0,'integer','interface'),(36,'ellipse_threshold_title','27','Title Ellipse Threshold',0,'integer','interface'),(51,'offset_limit','50','Offset Limit',5,'integer','interface'),(40,'localplay_level','0','Localplay Access',100,'special','options'),(44,'allow_stream_playback','1','Allow Streaming',100,'boolean','system'),(45,'allow_democratic_playback','0','Allow Democratic Play',100,'boolean','system'),(46,'allow_localplay_playback','0','Allow Localplay Play',100,'boolean','system'),(47,'stats_threshold','7','Statistics Day Threshold',25,'integer','interface'),(49,'min_object_count','1','Min Element Count',5,'integer','interface'),(52,'rate_limit','8192','Rate Limit',100,'integer','streaming'),(53,'playlist_method','default','Playlist Method',5,'string','playlist'),(55,'transcode','default','Transcoding',25,'string','streaming'),(57,'tags_userlist','','User to track',0,'string','tags'),(69,'show_lyrics','0','Show Lyrics',0,'boolean','interface'),(70,'mpd_active','0','MPD Active Instance',25,'integer','internal'),(71,'httpq_active','0','HTTPQ Active Instance',25,'integer','internal'),(72,'shoutcast_active','0','Shoutcast Active Instance',25,'integer','internal'),(73,'lastfm_user','','Last.FM Username',25,'string','plugins'),(74,'lastfm_pass','','Last.FM Password',25,'string','plugins'),(75,'lastfm_port','','Last.FM Submit Port',25,'string','internal'),(76,'lastfm_host','','Last.FM Submit Host',25,'string','internal'),(77,'lastfm_url','','Last.FM Submit URL',25,'string','internal'),(78,'lastfm_challenge','','Last.FM Submit Challenge',25,'string','internal'),(79,'bandwidth','50','Bandwidth',5,'integer','interface'),(80,'features','50','Features',5,'integer','interface');
|
||||
INSERT INTO `preference` VALUES (1,'download','0','Allow Downloads',100,'boolean','options'),(4,'popular_threshold','10','Popular Threshold',25,'integer','interface'),(19,'sample_rate','32','Transcode Bitrate',25,'string','streaming'),(22,'site_title','Ampache :: Pour l\'Amour de la Musique','Website Title',100,'string','system'),(23,'lock_songs','0','Lock Songs',100,'boolean','system'),(24,'force_http_play','1','Forces Http play regardless of port',100,'boolean','system'),(25,'http_port','80','Non-Standard Http Port',100,'integer','system'),(41,'localplay_controller','0','Localplay Type',100,'special','options'),(29,'play_type','stream','Type of Playback',25,'special','streaming'),(31,'lang','fr_FR','Language',100,'special','interface'),(32,'playlist_type','m3u','Playlist Type',100,'special','playlist'),(33,'theme_name','reborn','Theme',0,'special','interface'),(34,'ellipse_threshold_album','27','Album Ellipse Threshold',0,'integer','interface'),(35,'ellipse_threshold_artist','27','Artist Ellipse Threshold',0,'integer','interface'),(36,'ellipse_threshold_title','27','Title Ellipse Threshold',0,'integer','interface'),(51,'offset_limit','50','Offset Limit',5,'integer','interface'),(40,'localplay_level','0','Localplay Access',100,'special','options'),(44,'allow_stream_playback','1','Allow Streaming',100,'boolean','system'),(45,'allow_democratic_playback','0','Allow Democratic Play',100,'boolean','system'),(46,'allow_localplay_playback','0','Allow Localplay Play',100,'boolean','system'),(47,'stats_threshold','7','Statistics Day Threshold',25,'integer','interface'),(49,'min_object_count','1','Min Element Count',5,'integer','interface'),(52,'rate_limit','8192','Rate Limit',100,'integer','streaming'),(53,'playlist_method','default','Playlist Method',5,'string','playlist'),(55,'transcode','default','Transcoding',25,'string','streaming'),(57,'tags_userlist','','User to track',0,'string','tags'),(69,'show_lyrics','0','Show Lyrics',0,'boolean','interface'),(70,'mpd_active','0','MPD Active Instance',25,'integer','internal'),(71,'httpq_active','0','HTTPQ Active Instance',25,'integer','internal'),(72,'shoutcast_active','0','Shoutcast Active Instance',25,'integer','internal'),(73,'lastfm_user','','Last.FM Username',25,'string','plugins'),(74,'lastfm_pass','','Last.FM Password',25,'string','plugins'),(75,'lastfm_port','','Last.FM Submit Port',25,'string','internal'),(76,'lastfm_host','','Last.FM Submit Host',25,'string','internal'),(77,'lastfm_url','','Last.FM Submit URL',25,'string','internal'),(78,'lastfm_challenge','','Last.FM Submit Challenge',25,'string','internal'),(79,'bandwidth','50','Bandwidth',5,'integer','interface'),(80,'features','50','Features',5,'integer','interface');
|
||||
/*!40000 ALTER TABLE `preference` ENABLE KEYS */;
|
||||
UNLOCK TABLES;
|
||||
|
||||
|
@ -978,7 +978,7 @@ CREATE TABLE `user_preference` (
|
|||
|
||||
LOCK TABLES `user_preference` WRITE;
|
||||
/*!40000 ALTER TABLE `user_preference` DISABLE KEYS */;
|
||||
INSERT INTO `user_preference` VALUES (-1,1,'1'),(-1,4,'10'),(-1,19,'32'),(-1,22,'Ampache :: Pour l\'Amour de la Musique'),(-1,23,'0'),(-1,24,'1'),(-1,25,'80'),(-1,41,'mpd'),(-1,29,'stream'),(-1,31,'en_US'),(-1,32,'m3u'),(-1,33,'fresh'),(-1,34,'27'),(-1,35,'27'),(-1,36,'27'),(-1,51,'50'),(-1,40,'100'),(-1,44,'1'),(-1,45,'1'),(-1,46,'1'),(-1,47,'7'),(-1,49,'1'),(-1,52,'8192'),(-1,53,'default'),(-1,55,'default'),(-1,57,''),(-1,69,'0'),(-1,70,'0'),(-1,71,'0'),(-1,72,'0'),(-1,73,''),(-1,74,''),(-1,75,''),(-1,76,''),(-1,77,''),(-1,78,''),(1,1,'1'),(1,4,'10'),(1,19,'32'),(1,41,'mpd'),(1,29,'stream'),(1,31,'en_US'),(1,32,'m3u'),(1,33,'fresh'),(1,34,'27'),(1,35,'27'),(1,36,'27'),(1,51,'50'),(1,40,'100'),(1,47,'7'),(1,49,'1'),(1,52,'8192'),(1,53,'default'),(1,55,'default'),(1,57,''),(1,69,'0'),(1,70,'0'),(1,71,'0'),(1,72,'0'),(1,73,''),(1,74,''),(1,75,''),(1,76,''),(1,77,''),(1,78,''),(-1,79,'50'),(-1,80,'50'),(1,79,'50'),(1,80,'50');
|
||||
INSERT INTO `user_preference` VALUES (-1,1,'1'),(-1,4,'10'),(-1,19,'32'),(-1,22,'Ampache :: Pour l\'Amour de la Musique'),(-1,23,'0'),(-1,24,'1'),(-1,25,'80'),(-1,41,'mpd'),(-1,29,'stream'),(-1,31,'en_US'),(-1,32,'m3u'),(-1,33,'reborn'),(-1,34,'27'),(-1,35,'27'),(-1,36,'27'),(-1,51,'50'),(-1,40,'100'),(-1,44,'1'),(-1,45,'1'),(-1,46,'1'),(-1,47,'7'),(-1,49,'1'),(-1,52,'8192'),(-1,53,'default'),(-1,55,'default'),(-1,57,''),(-1,69,'0'),(-1,70,'0'),(-1,71,'0'),(-1,72,'0'),(-1,73,''),(-1,74,''),(-1,75,''),(-1,76,''),(-1,77,''),(-1,78,''),(1,1,'1'),(1,4,'10'),(1,19,'32'),(1,41,'mpd'),(1,29,'stream'),(1,31,'en_US'),(1,32,'m3u'),(1,33,'reborn'),(1,34,'27'),(1,35,'27'),(1,36,'27'),(1,51,'50'),(1,40,'100'),(1,47,'7'),(1,49,'1'),(1,52,'8192'),(1,53,'default'),(1,55,'default'),(1,57,''),(1,69,'0'),(1,70,'0'),(1,71,'0'),(1,72,'0'),(1,73,''),(1,74,''),(1,75,''),(1,76,''),(1,77,''),(1,78,''),(-1,79,'50'),(-1,80,'50'),(1,79,'50'),(1,80,'50');
|
||||
/*!40000 ALTER TABLE `user_preference` ENABLE KEYS */;
|
||||
UNLOCK TABLES;
|
||||
|
||||
|
|
|
@ -71,7 +71,9 @@ function forceIframe()
|
|||
|
||||
// Using the following workaround to set global variable available from any javascript script.
|
||||
var jsAjaxUrl = "<?php echo Config::get('ajax_url') ?>";
|
||||
var jsAjaxShowEditUrl = "<?php echo Config::get('ajax_show_edit_url') ?>";
|
||||
var jsWebPath = "<?php echo Config::get('web_path') ?>";
|
||||
var jsPrefix = "<?php echo Config::get('prefix') ?>";
|
||||
var jsAjaxServer = "<?php echo Config::get('ajax_server') ?>";
|
||||
var jsSaveTitle = "<?php echo T_('Save') ?>";
|
||||
var jsCancelTitle = "<?php echo T_('Cancel') ?>";
|
||||
|
||||
|
|
|
@ -77,6 +77,13 @@ if (Config::get('show_played_times')) {
|
|||
<?php echo Ajax::button('?action=basket&type=album_random&id=' . $album->id,'random', T_('Random'),'play_random_' . $album->id); ?>
|
||||
<?php echo Ajax::text('?action=basket&type=album_random&id=' . $album->id, T_('Add Random from Album'), 'play_random_text_' . $album->id); ?>
|
||||
</li>
|
||||
<li>
|
||||
<a onclick="submitNewItemsOrder('<?php echo $album->id; ?>', 'reorder_songs_table', 'song_',
|
||||
'<?php echo Config::get('web_path'); ?>/albums.php?action=set_track_numbers', 'refresh_album_songs')">
|
||||
<?php echo UI::get_icon('download', T_('Save Tracks Order')); ?>
|
||||
<?php echo T_('Save Tracks Order'); ?>
|
||||
</a>
|
||||
</li>
|
||||
<?php if (Access::check('interface','75')) { ?>
|
||||
<li>
|
||||
<a href="<?php echo $web_path; ?>/albums.php?action=clear_art&album_id=<?php echo $album->id; ?>" onclick="return confirm('<?php echo T_('Do you really want to reset album art?'); ?>');"><?php echo UI::get_icon('delete', T_('Reset Album Art')); ?></a>
|
||||
|
@ -105,6 +112,7 @@ if (Config::get('show_played_times')) {
|
|||
<div id="additional_information">
|
||||
|
||||
</div>
|
||||
<div id='reordered_list'>
|
||||
<?php
|
||||
$browse = new Browse();
|
||||
$browse->set_type('song');
|
||||
|
@ -115,3 +123,4 @@ if (Config::get('show_played_times')) {
|
|||
$browse->show_objects();
|
||||
$browse->store();
|
||||
?>
|
||||
</div>
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
*
|
||||
*/
|
||||
?>
|
||||
|
||||
<?php if (Config::get('directplay')) { ?>
|
||||
<td class="cel_directplay">
|
||||
<?php echo Ajax::button('?page=stream&action=directplay&playtype=album&album_id=' . $album->id,'play', T_('Play album'),'play_album_' . $album->id); ?>
|
||||
|
@ -62,7 +63,7 @@ if (Art::is_enabled()) {
|
|||
</a>
|
||||
<?php } ?>
|
||||
<?php if (Access::check('interface','50')) { ?>
|
||||
<a id="<?php echo 'edit_song_'.$song->id ?>" onclick="showEditDialog('album_row', '<?php echo $album->id ?>', '<?php echo 'edit_album_'.$album->id ?>', '<?php echo T_('Album edit') ?>', '<?php echo Tag::get_display(Tag::get_tags()) ?>')">
|
||||
<a id="<?php echo 'edit_album_'.$album->id ?>" onclick="showEditDialog('album_row', '<?php echo $album->id ?>', '<?php echo 'edit_album_'.$album->id ?>', '<?php echo T_('Album edit') ?>', '<?php echo Tag::get_display(Tag::get_tags()) ?>', 'album_', 'refresh_album')">
|
||||
<?php echo UI::get_icon('edit', T_('Edit')); ?>
|
||||
</a>
|
||||
<?php } ?>
|
||||
|
|
|
@ -24,78 +24,65 @@ $web_path = Config::get('web_path');
|
|||
?>
|
||||
<?php require Config::get('prefix') . '/templates/list_header.inc.php'; ?>
|
||||
<table class="tabledata" cellpadding="0" cellspacing="0">
|
||||
<colgroup>
|
||||
<col id="col_directplay" />
|
||||
<col id="col_add" />
|
||||
<col id="col_cover" />
|
||||
<col id="col_album" />
|
||||
<col id="col_artist" />
|
||||
<col id="col_songs" />
|
||||
<col id="col_year" />
|
||||
<col id="col_tags" />
|
||||
<col id="col_rating" />
|
||||
<col id="col_userflag" />
|
||||
<col id="col_action" />
|
||||
</colgroup>
|
||||
<tr class="th-top">
|
||||
<?php if (Config::get('directplay')) { ?>
|
||||
<tr class="th-top">
|
||||
<?php if (Config::get('directplay')) { ?>
|
||||
<th class="cel_directplay"><?php echo T_('Play'); ?></th>
|
||||
<?php } ?>
|
||||
<?php } ?>
|
||||
<th class="cel_add"><?php echo T_('Add'); ?></th>
|
||||
<?php if (Art::is_enabled()) { ?>
|
||||
<?php if (Art::is_enabled()) { ?>
|
||||
<th class="cel_cover"><?php echo T_('Cover'); ?></th>
|
||||
<?php } ?>
|
||||
<?php } ?>
|
||||
<th class="cel_album"><?php echo Ajax::text('?page=browse&action=set_sort&browse_id=' . $browse->id . '&sort=name', T_('Album'),'album_sort_name'); ?></th>
|
||||
<th class="cel_artist"><?php echo Ajax::text('?page=browse&action=set_sort&browse_id=' . $browse->id . '&sort=artist', T_('Artist'),'album_sort_artist'); ?></th>
|
||||
<th class="cel_songs"><?php echo T_('Songs'); ?></th>
|
||||
<th class="cel_year"><?php echo Ajax::text('?page=browse&action=set_sort&browse_id=' . $browse->id . '&sort=year', T_('Year'),'album_sort_year'); ?></th>
|
||||
<th class="cel_tags"><?php echo T_('Tags'); ?></th>
|
||||
<?php if (Config::get('ratings')) { ?>
|
||||
<?php if (Config::get('ratings')) { ?>
|
||||
<th class="cel_rating"><?php echo T_('Rating'); ?></th>
|
||||
<?php } ?>
|
||||
<?php if (Config::get('userflags')) { ?>
|
||||
<?php } ?>
|
||||
<?php if (Config::get('userflags')) { ?>
|
||||
<th class="cel_userflag"><?php echo T_('Flag'); ?></th>
|
||||
<?php } ?>
|
||||
<?php } ?>
|
||||
<th class="cel_action"><?php echo T_('Actions'); ?></th>
|
||||
</tr>
|
||||
<?php
|
||||
if (Config::get('ratings')) { Rating::build_cache('album',$object_ids); }
|
||||
if (Config::get('userflags')) { Userflag::build_cache('album',$object_ids); }
|
||||
</tr>
|
||||
<?php
|
||||
if (Config::get('ratings')) { Rating::build_cache('album',$object_ids); }
|
||||
if (Config::get('userflags')) { Userflag::build_cache('album',$object_ids); }
|
||||
|
||||
/* Foreach through the albums */
|
||||
foreach ($object_ids as $album_id) {
|
||||
/* Foreach through the albums */
|
||||
foreach ($object_ids as $album_id) {
|
||||
$album = new Album($album_id);
|
||||
$album->format();
|
||||
?>
|
||||
<tr id="album_<?php echo $album->id; ?>" class="<?php echo UI::flip_class(); ?>">
|
||||
?>
|
||||
<tr id="album_<?php echo $album->id; ?>" class="<?php echo UI::flip_class(); ?>">
|
||||
<?php require Config::get('prefix') . '/templates/show_album_row.inc.php'; ?>
|
||||
</tr>
|
||||
<?php } //end foreach ($albums as $album) ?>
|
||||
<?php if (!count($object_ids)) { ?>
|
||||
<tr class="<?php echo UI::flip_class(); ?>">
|
||||
</tr>
|
||||
<?php } //end foreach ($albums as $album) ?>
|
||||
<?php if (!count($object_ids)) { ?>
|
||||
<tr class="<?php echo UI::flip_class(); ?>">
|
||||
<td colspan="7"><span class="nodata"><?php echo T_('No album found'); ?></span></td>
|
||||
</tr>
|
||||
<?php } ?>
|
||||
<tr class="th-bottom">
|
||||
<?php if (Config::get('directplay')) { ?>
|
||||
</tr>
|
||||
<?php } ?>
|
||||
<tr class="th-bottom">
|
||||
<?php if (Config::get('directplay')) { ?>
|
||||
<th class="cel_directplay"><?php echo T_('Play'); ?></th>
|
||||
<?php } ?>
|
||||
<?php } ?>
|
||||
<th class="cel_add"><?php echo T_('Add'); ?></th>
|
||||
<?php if (Art::is_enabled()) { ?>
|
||||
<?php if (Art::is_enabled()) { ?>
|
||||
<th class="cel_cover"><?php echo T_('Cover'); ?></th>
|
||||
<?php } ?>
|
||||
<?php } ?>
|
||||
<th class="cel_album"><?php echo Ajax::text('?page=browse&action=set_sort&browse_id=' . $browse->id . '&sort=name', T_('Album'),'album_sort_name_bottom'); ?></th>
|
||||
<th class="cel_artist"><?php echo Ajax::text('?page=browse&action=set_sort&browse_id=' . $browse->id . '&sort=artist', T_('Artist'),'album_sort_artist'); ?></th>
|
||||
<th class="cel_songs"><?php echo T_('Songs'); ?></th>
|
||||
<th class="cel_year"><?php echo Ajax::text('?page=browse&action=set_sort&browse_id=' . $browse->id . '&sort=year', T_('Year'),'album_sort_year_bottom'); ?></th>
|
||||
<th class="cel_tags"><?php echo T_('Tags'); ?></th>
|
||||
<?php if (Config::get('ratings')) { ?>
|
||||
<?php if (Config::get('ratings')) { ?>
|
||||
<th class="cel_rating"><?php echo T_('Rating'); ?></th>
|
||||
<?php } ?>
|
||||
<?php if (Config::get('userflags')) { ?>
|
||||
<?php } ?>
|
||||
<?php if (Config::get('userflags')) { ?>
|
||||
<th class="cel_userflag"><?php echo T_('Flag'); ?></th>
|
||||
<?php } ?>
|
||||
<?php } ?>
|
||||
<th class="cel_action"><?php echo T_('Actions'); ?></th>
|
||||
</tr>
|
||||
</tr>
|
||||
</table>
|
||||
<?php require Config::get('prefix') . '/templates/list_header.inc.php'; ?>
|
||||
|
|
|
@ -47,7 +47,7 @@
|
|||
</a>
|
||||
<?php } ?>
|
||||
<?php if (Access::check('interface','50')) { ?>
|
||||
<a id="<?php echo 'edit_artist_'.$artist->id ?>" onclick="showEditDialog('artist_row', '<?php echo $artist->id ?>', '<?php echo 'edit_artist_'.$artist->id ?>', '<?php echo T_('Artist edit') ?>', '<?php echo Tag::get_display(Tag::get_tags()) ?>')">
|
||||
<a id="<?php echo 'edit_artist_'.$artist->id ?>" onclick="showEditDialog('artist_row', '<?php echo $artist->id ?>', '<?php echo 'edit_artist_'.$artist->id ?>', '<?php echo T_('Artist edit') ?>', '<?php echo Tag::get_display(Tag::get_tags()) ?>', 'artist_', 'refresh_artist')">
|
||||
<?php echo UI::get_icon('edit', T_('Edit')); ?>
|
||||
</a>
|
||||
<?php } ?>
|
||||
|
|
|
@ -27,71 +27,60 @@ $web_path = Config::get('web_path');
|
|||
?>
|
||||
<?php require Config::get('prefix') . '/templates/list_header.inc.php'; ?>
|
||||
<table class="tabledata" cellpadding="0" cellspacing="0">
|
||||
<colgroup>
|
||||
<col id="col_directplay">
|
||||
<col id="col_add" />
|
||||
<col id="col_artist" />
|
||||
<col id="col_songs" />
|
||||
<col id="col_albums" />
|
||||
<col id="col_tags" />
|
||||
<col id="col_rating" />
|
||||
<col id="col_userflag" />
|
||||
<col id="col_action" />
|
||||
</colgroup>
|
||||
<tr class="th-top">
|
||||
<?php if (Config::get('directplay')) { ?>
|
||||
<tr class="th-top">
|
||||
<?php if (Config::get('directplay')) { ?>
|
||||
<th class="cel_directplay"><?php echo T_('Play'); ?></th>
|
||||
<?php } ?>
|
||||
<?php } ?>
|
||||
<th class="cel_add"><?php echo T_('Add'); ?></th>
|
||||
<th class="cel_artist"><?php echo Ajax::text('?page=browse&action=set_sort&browse_id=' . $browse->id . '&type=artist&sort=name', T_('Artist'),'artist_sort_name'); ?></th>
|
||||
<th class="cel_songs"><?php echo T_('Songs'); ?></th>
|
||||
<th class="cel_albums"><?php echo T_('Albums'); ?></th>
|
||||
<th class="cel_time"><?php echo T_('Time'); ?></th>
|
||||
<th class="cel_tags"><?php echo T_('Tags'); ?></th>
|
||||
<?php if (Config::get('ratings')) { ?>
|
||||
<?php if (Config::get('ratings')) { ?>
|
||||
<th class="cel_rating"><?php echo T_('Rating'); ?></th>
|
||||
<?php } ?>
|
||||
<?php if (Config::get('userflags')) { ?>
|
||||
<?php } ?>
|
||||
<?php if (Config::get('userflags')) { ?>
|
||||
<th class="cel_userflag"><?php echo T_('Flag'); ?></th>
|
||||
<?php } ?>
|
||||
<?php } ?>
|
||||
<th class="cel_action"> <?php echo T_('Action'); ?> </th>
|
||||
</tr>
|
||||
<?php
|
||||
// Cache the ratings we are going to use
|
||||
if (Config::get('ratings')) { Rating::build_cache('artist',$object_ids); }
|
||||
if (Config::get('userflags')) { Userflag::build_cache('artist',$object_ids); }
|
||||
</tr>
|
||||
<?php
|
||||
// Cache the ratings we are going to use
|
||||
if (Config::get('ratings')) { Rating::build_cache('artist',$object_ids); }
|
||||
if (Config::get('userflags')) { Userflag::build_cache('artist',$object_ids); }
|
||||
|
||||
/* Foreach through every artist that has been passed to us */
|
||||
foreach ($object_ids as $artist_id) {
|
||||
/* Foreach through every artist that has been passed to us */
|
||||
foreach ($object_ids as $artist_id) {
|
||||
$artist = new Artist($artist_id, $_SESSION['catalog']);
|
||||
$artist->format();
|
||||
?>
|
||||
<tr id="artist_<?php echo $artist->id; ?>" class="<?php echo UI::flip_class(); ?>">
|
||||
?>
|
||||
<tr id="artist_<?php echo $artist->id; ?>" class="<?php echo UI::flip_class(); ?>">
|
||||
<?php require Config::get('prefix') . '/templates/show_artist_row.inc.php'; ?>
|
||||
</tr>
|
||||
<?php } //end foreach ($artists as $artist) ?>
|
||||
<?php if (!count($object_ids)) { ?>
|
||||
<tr class="<?php echo UI::flip_class(); ?>">
|
||||
</tr>
|
||||
<?php } //end foreach ($artists as $artist) ?>
|
||||
<?php if (!count($object_ids)) { ?>
|
||||
<tr class="<?php echo UI::flip_class(); ?>">
|
||||
<td colspan="5"><span class="nodata"><?php echo T_('No artist found'); ?></span></td>
|
||||
</tr>
|
||||
<?php } ?>
|
||||
<tr class="th-bottom">
|
||||
<?php if (Config::get('directplay')) { ?>
|
||||
</tr>
|
||||
<?php } ?>
|
||||
<tr class="th-bottom">
|
||||
<?php if (Config::get('directplay')) { ?>
|
||||
<th class="cel_directplay"><?php echo T_('Play'); ?></th>
|
||||
<?php } ?>
|
||||
<?php } ?>
|
||||
<th class="cel_add"><?php echo T_('Add'); ?></th>
|
||||
<th class="cel_artist"><?php echo Ajax::text('?page=browse&action=set_sort&type=artist&browse_id=' . $browse->id . '&sort=name', T_('Artist'),'artist_sort_name_bottom'); ?></th>
|
||||
<th class="cel_songs"> <?php echo T_('Songs'); ?> </th>
|
||||
<th class="cel_albums"> <?php echo T_('Albums'); ?> </th>
|
||||
<th class="cel_time"> <?php echo T_('Time'); ?> </th>
|
||||
<th class="cel_tags"><?php echo T_('Tags'); ?></th>
|
||||
<?php if (Config::get('ratings')) { ?>
|
||||
<?php if (Config::get('ratings')) { ?>
|
||||
<th class="cel_rating"><?php echo T_('Rating'); ?></th>
|
||||
<?php } ?>
|
||||
<?php if (Config::get('userflags')) { ?>
|
||||
<?php } ?>
|
||||
<?php if (Config::get('userflags')) { ?>
|
||||
<th class="cel_userflag"><?php echo T_('Flag'); ?></th>
|
||||
<?php } ?>
|
||||
<?php } ?>
|
||||
<th class="cel_action"> <?php echo T_('Action'); ?> </th>
|
||||
</tr>
|
||||
</tr>
|
||||
</table>
|
||||
<?php require Config::get('prefix') . '/templates/list_header.inc.php'; ?>
|
||||
|
|
|
@ -33,7 +33,7 @@
|
|||
<td class="cel_codec"><?php echo $radio->codec; ?></td>
|
||||
<td class="cel_action">
|
||||
<?php if (Access::check('interface','50')) { ?>
|
||||
<a id="<?php echo 'edit_live_stream_'.$radio->id ?>" onclick="showEditDialog('live_stream_row', '<?php echo $radio->id ?>', '<?php echo 'edit_live_stream_'.$radio->id ?>', '<?php echo T_('Live Stream edit') ?>', '')">
|
||||
<a id="<?php echo 'edit_live_stream_'.$radio->id ?>" onclick="showEditDialog('live_stream_row', '<?php echo $radio->id ?>', '<?php echo 'edit_live_stream_'.$radio->id ?>', '<?php echo T_('Live Stream edit') ?>', '', 'live_stream_', 'refresh_livestream')">
|
||||
<?php echo UI::get_icon('edit', T_('Edit')); ?>
|
||||
</a>
|
||||
<?php } ?>
|
||||
|
|
|
@ -25,47 +25,39 @@ $web_path = Config::get('web_path');
|
|||
?>
|
||||
<?php require Config::get('prefix') . '/templates/list_header.inc.php'; ?>
|
||||
<table class="tabledata" cellpadding="0" cellspacing="0">
|
||||
<colgroup>
|
||||
<col id="col_directplay" />
|
||||
<col id="col_add" />
|
||||
<col id="col_streamname" />
|
||||
<col id="col_streamurl" />
|
||||
<col id="col_codec" />
|
||||
<col id="col_action" />
|
||||
</colgroup>
|
||||
<tr class="th-top">
|
||||
<tr class="th-top">
|
||||
<?php if (Config::get('directplay')) { ?>
|
||||
<th class="cel_directplay"><?php echo T_('Play'); ?></th>
|
||||
<?php } ?>
|
||||
<?php } ?>
|
||||
<th class="cel_add"><?php echo T_('Add'); ?></th>
|
||||
<th class="cel_streamname"><?php echo Ajax::text('?page=browse&action=set_sort&browse_id=' . $browse->id . '&sort=name', T_('Name'),'live_stream_sort_name'); ?></th>
|
||||
<th class="cel_streamurl"><?php echo T_('Stream URL'); ?></th>
|
||||
<th class="cel_codec"><?php echo Ajax::text('?page=browse&action=set_sort&browse_id=' . $browse->id . '&sort=codec', T_('Codec'),'live_stream_codec'); ?></th>
|
||||
<th class="cel_action"><?php echo T_('Action'); ?></th>
|
||||
</tr>
|
||||
<?php
|
||||
foreach ($object_ids as $radio_id) {
|
||||
</tr>
|
||||
<?php
|
||||
foreach ($object_ids as $radio_id) {
|
||||
$radio = new Radio($radio_id);
|
||||
$radio->format();
|
||||
?>
|
||||
<tr id="live_stream_<?php echo $radio->id; ?>" class="<?php echo UI::flip_class(); ?>">
|
||||
?>
|
||||
<tr id="live_stream_<?php echo $radio->id; ?>" class="<?php echo UI::flip_class(); ?>">
|
||||
<?php require Config::get('prefix') . '/templates/show_live_stream_row.inc.php'; ?>
|
||||
</tr>
|
||||
<?php } //end foreach ($artists as $artist) ?>
|
||||
<?php if (!count($object_ids)) { ?>
|
||||
<tr>
|
||||
</tr>
|
||||
<?php } //end foreach ($artists as $artist) ?>
|
||||
<?php if (!count($object_ids)) { ?>
|
||||
<tr>
|
||||
<td colspan="6"><span class="nodata"><?php echo T_('No live stream found'); ?></span></td>
|
||||
</tr>
|
||||
<?php } ?>
|
||||
<tr class="th-bottom">
|
||||
</tr>
|
||||
<?php } ?>
|
||||
<tr class="th-bottom">
|
||||
<?php if (Config::get('directplay')) { ?>
|
||||
<th class="cel_directplay"><?php echo T_('Play'); ?></th>
|
||||
<?php } ?>
|
||||
<?php } ?>
|
||||
<th class="cel_add"><?php echo T_('Add'); ?></th>
|
||||
<th class="cel_streamname"><?php echo Ajax::text('?page=browse&action=set_sort&browse_id=' . $browse->id . '&sort=name', T_('Name'),'live_stream_sort_name_bottom'); ?></th>
|
||||
<th class="cel_streamurl"><?php echo T_('Stream URL'); ?></th>
|
||||
<th class="cel_codec"><?php echo Ajax::text('?page=browse&action=set_sort&browse_id=' . $browse->id . '&sort=codec', T_('Codec'),'live_stream_codec_bottom'); ?></th>
|
||||
<th class="cel_action"><?php echo T_('Action'); ?> </th>
|
||||
</tr>
|
||||
</tr>
|
||||
</table>
|
||||
<?php require Config::Get('prefix') . '/templates/list_header.inc.php'; ?>
|
||||
|
|
|
@ -31,31 +31,37 @@ ob_start();
|
|||
require Config::get('prefix') . '/templates/show_playlist_title.inc.php';
|
||||
$title = ob_get_contents();
|
||||
ob_end_clean();
|
||||
UI::show_box_top('<div id="playlist_row_' . $playlist->id . '">' . $title .
|
||||
'</div>', 'info-box');
|
||||
UI::show_box_top('<div id="playlist_row_' . $playlist->id . '">' . $title . '</div>', 'info-box');
|
||||
?>
|
||||
<div id="information_actions">
|
||||
<ul>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="<?php echo Config::get('web_path'); ?>/playlist.php?action=normalize_tracks&playlist_id=<?php echo $playlist->id; ?>"><?php echo UI::get_icon('statistics', T_('Normalize Tracks')); ?></a>
|
||||
<?php echo T_('Normalize Tracks'); ?>
|
||||
<a href="<?php echo Config::get('web_path'); ?>/playlist.php?action=normalize_tracks&playlist_id=<?php echo $playlist->id; ?>">
|
||||
<?php echo UI::get_icon('statistics', T_('Normalize Tracks')); ?>
|
||||
<?php echo T_('Normalize Tracks'); ?>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a onclick="submitPlaylistOrder('<?php echo Config::get('web_path'); ?>/playlist.php?action=set_track_numbers&playlist_id=<?php echo $playlist->id; ?>', 'reorder_playlist_table');"><?php echo UI::get_icon('download', T_('Save Tracks Order')); ?></a>
|
||||
<?php echo T_('Save Tracks Order'); ?>
|
||||
<a onclick="submitNewItemsOrder('<?php echo $playlist->id; ?>', 'reorder_playlist_table', 'track_',
|
||||
'<?php echo Config::get('web_path'); ?>/playlist.php?action=set_track_numbers&playlist_id=<?php echo $playlist->id; ?>', 'refresh_playlist_songs')">
|
||||
<?php echo UI::get_icon('download', T_('Save Tracks Order')); ?>
|
||||
<?php echo T_('Save Tracks Order'); ?>
|
||||
</a>
|
||||
</li>
|
||||
<?php if (Access::check_function('batch_download')) { ?>
|
||||
<?php if (Access::check_function('batch_download')) { ?>
|
||||
<li>
|
||||
<a href="<?php echo Config::get('web_path'); ?>/batch.php?action=playlist&id=<?php echo $playlist->id; ?>"><?php echo UI::get_icon('batch_download', T_('Batch Download')); ?></a>
|
||||
<?php echo T_('Batch Download'); ?>
|
||||
<a href="<?php echo Config::get('web_path'); ?>/batch.php?action=playlist&id=<?php echo $playlist->id; ?>">
|
||||
<?php echo UI::get_icon('batch_download', T_('Batch Download')); ?>
|
||||
<?php echo T_('Batch Download'); ?>
|
||||
</a>
|
||||
</li>
|
||||
<?php } ?>
|
||||
<?php if (Config::get('directplay')) { ?>
|
||||
<?php } ?>
|
||||
<?php if (Config::get('directplay')) { ?>
|
||||
<li>
|
||||
<?php echo Ajax::button('?page=stream&action=directplay&playtype=playlist&playlist_id=' . $playlist->id,'play', T_('Play All'),'directplay_full_' . $playlist->id); ?>
|
||||
<?php echo Ajax::text('?page=stream&action=directplay&playtype=playlist&playlist_id=' . $playlist->id, T_('Play All'),'directplay_full_text_' . $playlist->id); ?>
|
||||
</li>
|
||||
<?php } ?>
|
||||
<?php } ?>
|
||||
<li>
|
||||
<?php echo Ajax::button('?action=basket&type=playlist&id=' . $playlist->id,'add', T_('Add All'),'play_playlist'); ?>
|
||||
<?php echo Ajax::text('?action=basket&type=playlist&id=' . $playlist->id, T_('Add All'),'play_playlist_text'); ?>
|
||||
|
@ -64,18 +70,19 @@ UI::show_box_top('<div id="playlist_row_' . $playlist->id . '">' . $title .
|
|||
<?php echo Ajax::button('?action=basket&type=playlist_random&id=' . $playlist->id,'random', T_('Add Random'),'play_playlist_random'); ?>
|
||||
<?php echo Ajax::text('?action=basket&type=playlist_random&id=' . $playlist->id, T_('Add Random'),'play_playlist_random_text'); ?>
|
||||
</li>
|
||||
<?php if ($playlist->has_access()) { ?>
|
||||
<?php if ($playlist->has_access()) { ?>
|
||||
<li>
|
||||
<a href="<?php echo Config::get('web_path'); ?>/playlist.php?action=delete_playlist&playlist_id=<?php echo $playlist->id; ?>" onclick="return confirm('<?php echo T_('Do you really want to delete the playlist?'); ?>');">
|
||||
<?php echo UI::get_icon('delete'); ?>
|
||||
<?php echo T_('Delete'); ?>
|
||||
<?php echo T_('Delete'); ?>
|
||||
</a>
|
||||
|
||||
</li>
|
||||
<?php } ?>
|
||||
</ul>
|
||||
<?php } ?>
|
||||
</ul>
|
||||
</div>
|
||||
<?php UI::show_box_bottom(); ?>
|
||||
<div id='reordered_list'>
|
||||
<?php
|
||||
$browse = new Browse();
|
||||
$browse->set_type('playlist_song');
|
||||
|
@ -84,3 +91,4 @@ UI::show_box_top('<div id="playlist_row_' . $playlist->id . '">' . $title .
|
|||
$browse->show_objects($object_ids);
|
||||
$browse->store();
|
||||
?>
|
||||
</div>
|
||||
|
|
|
@ -40,7 +40,7 @@
|
|||
</a>
|
||||
<?php } ?>
|
||||
<?php if ($playlist->has_access()) { ?>
|
||||
<a id="<?php echo 'edit_playlist_'.$playlist->id ?>" onclick="showEditDialog('playlist_row', '<?php echo $playlist->id ?>', '<?php echo 'edit_playlist_'.$playlist->id ?>', '<?php echo T_('Playlist edit') ?>', '<?php echo Tag::get_display(Tag::get_tags()) ?>')">
|
||||
<a id="<?php echo 'edit_playlist_'.$playlist->id ?>" onclick="showEditDialog('playlist_row', '<?php echo $playlist->id ?>', '<?php echo 'edit_playlist_'.$playlist->id ?>', '<?php echo T_('Playlist edit') ?>', '', 'playlist_row_', 'refresh_playlist')">
|
||||
<?php echo UI::get_icon('edit', T_('Edit')); ?>
|
||||
</a>
|
||||
<?php echo Ajax::button('?page=browse&action=delete_object&type=playlist&id=' . $playlist->id,'delete', T_('Delete'),'delete_playlist_' . $playlist->id); ?>
|
||||
|
|
|
@ -48,3 +48,6 @@
|
|||
<?php echo Ajax::button('?page=playlist&action=delete_track&playlist_id=' . $playlist->id . '&track_id=' . $object['track_id'],'delete', T_('Delete'),'track_del_' . $object['track_id']); ?>
|
||||
<?php } ?>
|
||||
</td>
|
||||
<td class="cel_drag">
|
||||
<?php echo UI::get_icon('drag', T_('Reorder')); ?>
|
||||
</td>
|
||||
|
|
|
@ -47,6 +47,7 @@ $web_path = Config::get('web_path');
|
|||
<th class="cel_userflag"><?php echo T_('Flag'); ?></th>
|
||||
<?php } ?>
|
||||
<th class="cel_action"><?php echo T_('Action'); ?></th>
|
||||
<th class="cel_drag"></th>
|
||||
</tr>
|
||||
|
||||
<tbody id="sortableplaylist">
|
||||
|
@ -79,6 +80,7 @@ $web_path = Config::get('web_path');
|
|||
<th class="cel_userflag"><?php echo T_('Flag'); ?></th>
|
||||
<?php } ?>
|
||||
<th class="cel_action"><?php echo T_('Action'); ?></th>
|
||||
<th class="cel_drag"></th>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
|
|
|
@ -22,51 +22,42 @@
|
|||
?>
|
||||
<?php require Config::get('prefix') . '/templates/list_header.inc.php' ?>
|
||||
<table class="tabledata" cellpadding="0" cellspacing="0">
|
||||
<colgroup>
|
||||
<col id="col_directplay" />
|
||||
<col id="col_add" />
|
||||
<col id="col_playlist" />
|
||||
<col id="col_type" />
|
||||
<col id="col_songs" />
|
||||
<col id="col_owner" />
|
||||
<col id="col_action" />
|
||||
</colgroup>
|
||||
<tr class="th-top">
|
||||
<?php if (Config::get('directplay')) { ?>
|
||||
<tr class="th-top">
|
||||
<?php if (Config::get('directplay')) { ?>
|
||||
<th class="cel_directplay"><?php echo T_('Play'); ?></th>
|
||||
<?php } ?>
|
||||
<?php } ?>
|
||||
<th class="cel_add"><?php echo T_('Add'); ?></th>
|
||||
<th class="cel_playlist"><?php echo Ajax::text('?page=browse&action=set_sort&browse_id=' . $browse->id . '&type=playlist&sort=name', T_('Playlist Name'),'playlist_sort_name'); ?></th>
|
||||
<th class="cel_type"><?php echo T_('Type'); ?></th>
|
||||
<th class="cel_songs"><?php echo T_('# Songs'); ?></th>
|
||||
<th class="cel_owner"><?php echo Ajax::text('?page=browse&action=set_sort&browse_id=' . $browse->id . '&type=playlist&sort=user', T_('Owner'),'playlist_sort_owner'); ?></th>
|
||||
<th class="cel_action"><?php echo T_('Actions'); ?></th>
|
||||
</tr>
|
||||
<?php
|
||||
foreach ($object_ids as $playlist_id) {
|
||||
</tr>
|
||||
<?php
|
||||
foreach ($object_ids as $playlist_id) {
|
||||
$playlist = new Playlist($playlist_id);
|
||||
$playlist->format();
|
||||
$count = $playlist->get_song_count();
|
||||
?>
|
||||
<tr class="<?php echo UI::flip_class(); ?>" id="playlist_row_<?php echo $playlist->id; ?>">
|
||||
?>
|
||||
<tr class="<?php echo UI::flip_class(); ?>" id="playlist_row_<?php echo $playlist->id; ?>">
|
||||
<?php require Config::get('prefix') . '/templates/show_playlist_row.inc.php'; ?>
|
||||
</tr>
|
||||
<?php } // end foreach ($playlists as $playlist) ?>
|
||||
<?php if (!count($object_ids)) { ?>
|
||||
<tr class="<?php echo UI::flip_class(); ?>">
|
||||
</tr>
|
||||
<?php } // end foreach ($playlists as $playlist) ?>
|
||||
<?php if (!count($object_ids)) { ?>
|
||||
<tr class="<?php echo UI::flip_class(); ?>">
|
||||
<td colspan="6"><span class="nodata"><?php echo T_('No playlist found'); ?></span></td>
|
||||
</tr>
|
||||
<?php } ?>
|
||||
<tr class="th-bottom">
|
||||
<?php if (Config::get('directplay')) { ?>
|
||||
</tr>
|
||||
<?php } ?>
|
||||
<tr class="th-bottom">
|
||||
<?php if (Config::get('directplay')) { ?>
|
||||
<th class="cel_directplay"><?php echo T_('Play'); ?></th>
|
||||
<?php } ?>
|
||||
<?php } ?>
|
||||
<th class="cel_add"><?php echo T_('Add'); ?></th>
|
||||
<th class="cel_playlist"><?php echo Ajax::text('?page=browse&action=set_sort&browse_id=' . $browse->id . '&type=playlist&sort=name', T_('Playlist Name'),'playlist_sort_name_bottom'); ?></th>
|
||||
<th class="cel_type"><?php echo T_('Type'); ?></th>
|
||||
<th class="cel_songs"><?php echo T_('# Songs'); ?></th>
|
||||
<th class="cel_owner"><?php echo Ajax::text('?page=browse&action=set_sort&browse_id=' . $browse->id . '&type=playlist&sort=user', T_('Owner'),'playlist_sort_owner_bottom'); ?></th>
|
||||
<th class="cel_action"><?php echo T_('Actions'); ?></th>
|
||||
</tr>
|
||||
</tr>
|
||||
</table>
|
||||
<?php require Config::get('prefix') . '/templates/list_header.inc.php' ?>
|
||||
|
|
|
@ -25,7 +25,7 @@ ob_start();
|
|||
require Config::get('prefix') . '/templates/show_smartplaylist_title.inc.php';
|
||||
$title = ob_get_contents();
|
||||
ob_end_clean();
|
||||
UI::show_box_top('<div id="playlist_row_' . $playlist->id . '">' . $title .
|
||||
UI::show_box_top('<div id="smartplaylist_row_' . $playlist->id . '">' . $title .
|
||||
'</div>' , 'box box_smartplaylist');
|
||||
?>
|
||||
<div id="information_actions">
|
||||
|
|
|
@ -38,7 +38,7 @@
|
|||
</a>
|
||||
<?php } ?>
|
||||
<?php if ($playlist->has_access()) { ?>
|
||||
<a id="<?php echo 'edit_playlist_'.$playlist->id ?>" onclick="showEditDialog('smartplaylist_row', '<?php echo $playlist->id ?>', '<?php echo 'edit_playlist_'.$playlist->id ?>', '<?php echo T_('Smart Playlist edit') ?>', '<?php echo Tag::get_display(Tag::get_tags()) ?>')">
|
||||
<a id="<?php echo 'edit_playlist_'.$playlist->id ?>" onclick="showEditDialog('smartplaylist_row', '<?php echo $playlist->id ?>', '<?php echo 'edit_playlist_'.$playlist->id ?>', '<?php echo T_('Smart Playlist edit') ?>', '<?php echo Tag::get_display(Tag::get_tags()) ?>', 'smartplaylist_row_', 'refresh_smartplaylist')">
|
||||
<?php echo UI::get_icon('edit', T_('Edit')); ?>
|
||||
</a>
|
||||
<?php echo Ajax::button('?page=browse&action=delete_object&type=smartplaylist&id=' . $playlist->id,'delete', T_('Delete'),'delete_playlist_' . $playlist->id); ?>
|
||||
|
|
|
@ -22,48 +22,39 @@
|
|||
?>
|
||||
<?php require Config::get('prefix') . '/templates/list_header.inc.php' ?>
|
||||
<table class="tabledata" cellpadding="0" cellspacing="0">
|
||||
<colgroup>
|
||||
<col id="col_directplay" />
|
||||
<col id="col_add" />
|
||||
<col id="col_playlist" />
|
||||
<col id="col_type" />
|
||||
<col id="col_songs" />
|
||||
<col id="col_owner" />
|
||||
<col id="col_action" />
|
||||
</colgroup>
|
||||
<tr class="th-top">
|
||||
<?php if (Config::get('directplay')) { ?>
|
||||
<tr class="th-top">
|
||||
<?php if (Config::get('directplay')) { ?>
|
||||
<th class="cel_directplay"><?php echo T_('Play'); ?></th>
|
||||
<?php } ?>
|
||||
<?php } ?>
|
||||
<th class="cel_add"><?php echo T_('Add'); ?></th>
|
||||
<th class="cel_playlist"><?php echo Ajax::text('?page=browse&action=set_sort&browse_id=' . $browse->id . '&type=smartplaylist&sort=name', T_('Playlist Name'),'playlist_sort_name'); ?></th>
|
||||
<th class="cel_type"><?php echo T_('Type'); ?></th>
|
||||
<th class="cel_owner"><?php echo Ajax::text('?page=browse&action=set_sort&browse_id=' . $browse->id . '&type=smartplaylist&sort=user', T_('Owner'),'playlist_sort_owner'); ?></th>
|
||||
<th class="cel_action"><?php echo T_('Actions'); ?></th>
|
||||
</tr>
|
||||
<?php
|
||||
foreach ($object_ids as $playlist_id) {
|
||||
</tr>
|
||||
<?php
|
||||
foreach ($object_ids as $playlist_id) {
|
||||
$playlist = new Search('song', $playlist_id);
|
||||
$playlist->format();
|
||||
?>
|
||||
<tr class="<?php echo UI::flip_class(); ?>" id="playlist_row_<?php echo $playlist->id; ?>">
|
||||
?>
|
||||
<tr class="<?php echo UI::flip_class(); ?>" id="smartplaylist_row_<?php echo $playlist->id; ?>">
|
||||
<?php require Config::get('prefix') . '/templates/show_smartplaylist_row.inc.php'; ?>
|
||||
</tr>
|
||||
<?php } // end foreach ($playlists as $playlist) ?>
|
||||
<?php if (!count($object_ids)) { ?>
|
||||
<tr class="<?php echo UI::flip_class(); ?>">
|
||||
</tr>
|
||||
<?php } // end foreach ($playlists as $playlist) ?>
|
||||
<?php if (!count($object_ids)) { ?>
|
||||
<tr class="<?php echo UI::flip_class(); ?>">
|
||||
<td colspan="6"><span class="nodata"><?php echo T_('No smart playlist found'); ?></span></td>
|
||||
</tr>
|
||||
<?php } ?>
|
||||
<tr class="th-bottom">
|
||||
<?php if (Config::get('directplay')) { ?>
|
||||
</tr>
|
||||
<?php } ?>
|
||||
<tr class="th-bottom">
|
||||
<?php if (Config::get('directplay')) { ?>
|
||||
<th class="cel_directplay"><?php echo T_('Play'); ?></th>
|
||||
<?php } ?>
|
||||
<?php } ?>
|
||||
<th class="cel_add"><?php echo T_('Add'); ?></th>
|
||||
<th class="cel_playlist"><?php echo Ajax::text('?page=browse&action=set_sort&browse_id=' . $browse->id . '&type=playlist&sort=name', T_('Playlist Name'),'playlist_sort_name_bottom'); ?></th>
|
||||
<th class="cel_type"><?php echo T_('Type'); ?></th>
|
||||
<th class="cel_owner"><?php echo Ajax::text('?page=browse&action=set_sort&browse_id=' . $browse->id . '&type=playlist&sort=user', T_('Owner'),'playlist_sort_owner_bottom'); ?></th>
|
||||
<th class="cel_action"><?php echo T_('Actions'); ?></th>
|
||||
</tr>
|
||||
</tr>
|
||||
</table>
|
||||
<?php require Config::get('prefix') . '/templates/list_header.inc.php' ?>
|
||||
|
|
|
@ -50,7 +50,7 @@
|
|||
<?php if (Access::check_function('download')) { ?>
|
||||
<a href="<?php echo Config::get('web_path'); ?>/stream.php?action=download&song_id=<?php echo $song->id; ?>"><?php echo UI::get_icon('download', T_('Download')); ?></a><?php } ?>
|
||||
<?php if (Access::check('interface','75')) { ?>
|
||||
<a id="<?php echo 'edit_song_'.$song->id ?>" onclick="showEditDialog('song_row', '<?php echo $song->id ?>', '<?php echo 'edit_song_'.$song->id ?>', '<?php echo T_('Song edit') ?>', '<?php echo Tag::get_display(Tag::get_tags()) ?>')">
|
||||
<a id="<?php echo 'edit_song_'.$song->id ?>" onclick="showEditDialog('song_row', '<?php echo $song->id ?>', '<?php echo 'edit_song_'.$song->id ?>', '<?php echo T_('Song edit') ?>', '<?php echo Tag::get_display(Tag::get_tags()) ?>', 'song_', 'refresh_song')">
|
||||
<?php echo UI::get_icon('edit', T_('Edit')); ?>
|
||||
</a>
|
||||
<?php $icon = $song->enabled ? 'disable' : 'enable'; ?>
|
||||
|
@ -60,3 +60,6 @@
|
|||
</span>
|
||||
<?php } ?>
|
||||
</td>
|
||||
<td class="cel_drag">
|
||||
<?php echo UI::get_icon('drag', T_('Reorder')); ?>
|
||||
</td>
|
||||
|
|
|
@ -23,23 +23,11 @@
|
|||
$web_path = Config::get('web_path');
|
||||
?>
|
||||
<?php require Config::get('prefix') . '/templates/list_header.inc.php'; ?>
|
||||
<table class="tabledata" cellpadding="0" cellspacing="0">
|
||||
<colgroup>
|
||||
<col id="col_directplay" />
|
||||
<col id="col_add" />
|
||||
<col id="col_song" />
|
||||
<col id="col_artist" />
|
||||
<col id="col_album" />
|
||||
<col id="col_track" />
|
||||
<col id="col_time" />
|
||||
<col id="col_rating" />
|
||||
<col id="col_userflag" />
|
||||
<col id="col_action" />
|
||||
</colgroup>
|
||||
<tr class="th-top">
|
||||
<?php if (Config::get('directplay')) { ?>
|
||||
<table id="reorder_songs_table" class="tabledata" cellpadding="0" cellspacing="0">
|
||||
<tr class="th-top">
|
||||
<?php if (Config::get('directplay')) { ?>
|
||||
<th class="cel_directplay"><?php echo T_('Play'); ?></th>
|
||||
<?php } ?>
|
||||
<?php } ?>
|
||||
<th class="cel_add"><?php echo T_('Add'); ?></th>
|
||||
<th class="cel_song"><?php echo Ajax::text('?page=browse&action=set_sort&browse_id=' . $browse->id . '&sort=title', T_('Song Title'), 'sort_song_title'); ?></th>
|
||||
<th class="cel_artist"><?php echo Ajax::text('?page=browse&action=set_sort&browse_id=' . $browse->id . '&sort=artist', T_('Artist'), 'sort_song_artist'); ?></th>
|
||||
|
@ -47,36 +35,42 @@ $web_path = Config::get('web_path');
|
|||
<th class="cel_tags"><?php echo T_('Tags'); ?></th>
|
||||
<th class="cel_track"><?php echo Ajax::text('?page=browse&action=set_sort&browse_id=' . $browse->id . '&sort=track', T_('Track'), 'sort_song_track'); ?></th>
|
||||
<th class="cel_time"><?php echo Ajax::text('?page=browse&action=set_sort&browse_id=' . $browse->id . '&sort=time', T_('Time'), 'sort_song_time'); ?></th>
|
||||
<?php if (Config::get('ratings')) {
|
||||
<?php if (Config::get('ratings')) {
|
||||
Rating::build_cache('song', $object_ids);
|
||||
?>
|
||||
?>
|
||||
<th class="cel_rating"><?php echo T_('Rating'); ?></th>
|
||||
<?php } ?>
|
||||
<?php if (Config::get('userflags')) {
|
||||
<?php } ?>
|
||||
<?php if (Config::get('userflags')) {
|
||||
Userflag::build_cache('song', $object_ids);
|
||||
?>
|
||||
?>
|
||||
<th class="cel_userflag"><?php echo T_('Flag'); ?></th>
|
||||
<?php } ?>
|
||||
<?php } ?>
|
||||
<th class="cel_action"><?php echo T_('Action'); ?></th>
|
||||
</tr>
|
||||
<?php
|
||||
<th class="cel_drag"></th>
|
||||
</tr>
|
||||
|
||||
<tbody id="sortableplaylist">
|
||||
<?php
|
||||
foreach ($object_ids as $song_id) {
|
||||
$song = new Song($song_id);
|
||||
$song->format();
|
||||
?>
|
||||
<tr class="<?php echo UI::flip_class(); ?>" id="song_<?php echo $song->id; ?>">
|
||||
?>
|
||||
<tr class="<?php echo UI::flip_class(); ?>" id="song_<?php echo $song->id; ?>">
|
||||
<?php require Config::get('prefix') . '/templates/show_song_row.inc.php'; ?>
|
||||
</tr>
|
||||
<?php } ?>
|
||||
</tr>
|
||||
<?php } ?>
|
||||
</tbody>
|
||||
|
||||
<?php if (!count($object_ids)) { ?>
|
||||
<tr class="<?php echo UI::flip_class(); ?>">
|
||||
<td colspan="9"><span class="nodata"><?php echo T_('No song found'); ?></span></td>
|
||||
</tr>
|
||||
<tr class="<?php echo UI::flip_class(); ?>">
|
||||
<td colspan="10"><span class="nodata"><?php echo T_('No song found'); ?></span></td>
|
||||
</tr>
|
||||
<?php } ?>
|
||||
<tr class="th-bottom">
|
||||
<?php if (Config::get('directplay')) { ?>
|
||||
|
||||
<tr class="th-bottom">
|
||||
<?php if (Config::get('directplay')) { ?>
|
||||
<th class="cel_directplay"><?php echo T_('Play'); ?></th>
|
||||
<?php } ?>
|
||||
<?php } ?>
|
||||
<th class="cel_add"><?php echo T_('Add'); ?></th>
|
||||
<th class="cel_song"><?php echo Ajax::text('?page=browse&action=set_sort&browse_id=' . $browse->id . '&type=song&sort=title', T_('Song Title'),'sort_song_title_bottom'); ?></th>
|
||||
<th class="cel_artist"><?php echo Ajax::text('?page=browse&action=set_sort&browse_id=' . $browse->id . '&type=song&sort=artist', T_('Artist'),'sort_song_artist_bottom'); ?></th>
|
||||
|
@ -84,13 +78,14 @@ $web_path = Config::get('web_path');
|
|||
<th class="cel_tags"><?php echo T_('Tags'); ?></th>
|
||||
<th class="cel_track"><?php echo Ajax::text('?page=browse&action=set_sort&browse_id=' . $browse->id . '&type=song&sort=track', T_('Track'),'sort_song_track_bottom'); ?></th>
|
||||
<th class="cel_time"><?php echo Ajax::text('?page=browse&action=set_sort&browse_id=' . $browse->id . '&type=song&sort=time', T_('Time'),'sort_song_time_bottom'); ?></th>
|
||||
<?php if (Config::get('ratings')) { ?>
|
||||
<?php if (Config::get('ratings')) { ?>
|
||||
<th class="cel_rating"><?php echo T_('Rating'); ?></th>
|
||||
<?php } ?>
|
||||
<?php if (Config::get('userflags')) { ?>
|
||||
<?php } ?>
|
||||
<?php if (Config::get('userflags')) { ?>
|
||||
<th class="cel_userflag"><?php echo T_('Flag'); ?></th>
|
||||
<?php } ?>
|
||||
<?php } ?>
|
||||
<th class="cel_action"><?php echo T_('Action'); ?></th>
|
||||
</tr>
|
||||
<th class="cel_drag"></th>
|
||||
</tr>
|
||||
</table>
|
||||
<?php require Config::get('prefix') . '/templates/list_header.inc.php'; ?>
|
||||
|
|
|
@ -582,6 +582,16 @@ a.button{padding:1px 3px;}
|
|||
.tabledata .even:hover, .tabledata .odd:hover {
|
||||
background:#9cf;
|
||||
}
|
||||
|
||||
table.tabledata .cel_drag {
|
||||
max-width: 16px;
|
||||
width: 16px !important;
|
||||
}
|
||||
|
||||
table.tabledata .cel_drag img:hover {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.row-highlight:hover {
|
||||
background:#c33;
|
||||
}
|
||||
|
|
|
@ -497,6 +497,15 @@ table.tabledata tbody .cel_cover img
|
|||
border: 4px double #bbb;
|
||||
}
|
||||
|
||||
table.tabledata .cel_drag {
|
||||
max-width: 16px;
|
||||
width: 16px !important;
|
||||
}
|
||||
|
||||
table.tabledata .cel_drag img:hover {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.box_preferences h4
|
||||
{
|
||||
font-size:15px;
|
||||
|
@ -672,7 +681,7 @@ span.nodata {
|
|||
.star-rating a:hover,
|
||||
.star-rating .current-rating
|
||||
{
|
||||
background: url(../../../themes/fresh/images/ratings/star_rating.png) left -1000px repeat-x;
|
||||
background: url(../images/ratings/star_rating.png) left -1000px repeat-x;
|
||||
}
|
||||
.star-rating ul
|
||||
{
|
||||
|
|
|
@ -565,6 +565,15 @@ table.tabledata tbody .cel_cover img
|
|||
border: 4px double #bbb;
|
||||
}
|
||||
|
||||
table.tabledata .cel_drag {
|
||||
max-width: 16px;
|
||||
width: 16px !important;
|
||||
}
|
||||
|
||||
table.tabledata .cel_drag img:hover {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.box_preferences h4
|
||||
{
|
||||
font-size:15px;
|
||||
|
@ -814,7 +823,7 @@ span.nodata {
|
|||
.star-rating a:hover,
|
||||
.star-rating .current-rating
|
||||
{
|
||||
background: url(../../../themes/fresh/images/ratings/star_rating.png) left -1000px repeat-x;
|
||||
background: url(../images/ratings/star_rating.png) left -1000px repeat-x;
|
||||
}
|
||||
.star-rating ul
|
||||
{
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 47 KiB |
Binary file not shown.
Before Width: | Height: | Size: 47 KiB |
|
@ -382,6 +382,11 @@ input[type=button]:focus:active, input[type=submit]:focus:active {
|
|||
width: 20%;
|
||||
}
|
||||
|
||||
#header #headerlogo img {
|
||||
height: 64px;
|
||||
width: 64px;
|
||||
}
|
||||
|
||||
#header #headerbox {
|
||||
float:left;
|
||||
width: 80%;
|
||||
|
@ -481,7 +486,7 @@ input[type=button]:focus:active, input[type=submit]:focus:active {
|
|||
#loginPage #headerlogo {
|
||||
width: 256px;
|
||||
height: 256px;
|
||||
background: url('../images/login-logo.png') no-repeat center;
|
||||
background: url('../images/ampache.png') no-repeat center;
|
||||
background-size: contain;
|
||||
margin: auto;
|
||||
}
|
||||
|
@ -957,7 +962,7 @@ table.tabledata tbody .th-bottom:focus {
|
|||
color: #fff;
|
||||
background-color: #262626;
|
||||
background-image: none;
|
||||
background-repeat: none;
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
|
||||
table.tabledata tbody .odd {
|
||||
|
@ -973,6 +978,7 @@ table.tabledata tbody .cel_directplay
|
|||
table.tabledata tbody .cel_add {
|
||||
min-width: 40px;
|
||||
width: 40px !important;
|
||||
|
||||
}
|
||||
|
||||
table.tabledata tbody .cel_artist {
|
||||
|
@ -1005,6 +1011,15 @@ table.tabledata tbody .cel_cover img:hover {
|
|||
margin: 0px;
|
||||
}
|
||||
|
||||
table.tabledata .cel_drag {
|
||||
max-width: 16px;
|
||||
width: 16px !important;
|
||||
}
|
||||
|
||||
table.tabledata .cel_drag img:hover {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.box_preferences h4 {
|
||||
font-size: 15px;
|
||||
margin-bottom: 10px;
|
||||
|
@ -1325,7 +1340,7 @@ span.fatalerror {
|
|||
.star-rating ul,
|
||||
.star-rating a:hover,
|
||||
.star-rating .current-rating {
|
||||
background: url(../../../themes/fresh/images/ratings/star_rating.png) left -1000px repeat-x;
|
||||
background: url(../images/ratings/star_rating.png) left -1000px repeat-x;
|
||||
}
|
||||
.star-rating ul {
|
||||
position:relative;
|
||||
|
@ -1449,13 +1464,6 @@ dl.song_details dd {
|
|||
text-decoration: underline;
|
||||
}
|
||||
|
||||
/***********************************************
|
||||
Import playlist
|
||||
***********************************************/
|
||||
div.box-content td {
|
||||
width: 200px;
|
||||
}
|
||||
|
||||
/***********************************************
|
||||
Other
|
||||
***********************************************/
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue