1
0
Fork 0
mirror of https://github.com/Yetangitu/ampache synced 2025-10-03 17:59:21 +02:00

Actions on rows are now displayed on mouse-hover. Removed all unused parameters. Song/artists/albums title are displayed correctly (truncate has been removed). Add to an existing playlist implementation started.

This commit is contained in:
SUTJael 2014-01-15 20:47:49 +01:00
parent 98cb39e9dd
commit 7c2f8b0f26
49 changed files with 716 additions and 1349 deletions

View file

@ -340,7 +340,7 @@ class Album extends database_object
foreach ($data as $key=>$value) { $this->$key = $value; }
/* Truncate the string if it's to long */
$this->f_name = UI::truncate($this->full_name,AmpConfig::get('ellipse_threshold_album'));
$this->f_name = $this->full_name;
$this->f_link_src = $web_path . '/albums.php?action=show&album=' . scrub_out($this->id);
$this->f_name_link = "<a href=\"" . $this->f_link_src . "\" title=\"" . scrub_out($this->full_name) . "\">" . scrub_out($this->f_name);
@ -355,7 +355,6 @@ class Album extends database_object
if ($this->artist_count == '1') {
$artist = trim(trim($this->artist_prefix) . ' ' . trim($this->artist_name));
$this->f_artist_name = $artist;
$artist = scrub_out(UI::truncate($artist), AmpConfig::get('ellipse_threshold_artist'));
$this->f_artist_link = "<a href=\"$web_path/artists.php?action=show&amp;artist=" . $this->artist_id . "\" title=\"" . scrub_out($this->artist_name) . "\">" . $artist . "</a>";
$this->f_artist = $artist;
} else {

View file

@ -82,10 +82,7 @@ class Art extends database_object
*/
public static function _auto_init()
{
if (!isset($_SESSION['art_enabled'])) {
$_SESSION['art_enabled'] = (AmpConfig::get('bandwidth') > 25);
}
self::$enabled = make_bool($_SESSION['art_enabled']);
self::$enabled = true;
}
/**

View file

@ -259,7 +259,7 @@ class Artist extends database_object
public function format()
{
/* Combine prefix and name, trim then add ... if needed */
$name = UI::truncate(trim($this->prefix . " " . $this->name),AmpConfig::get('ellipse_threshold_artist'));
$name = trim($this->prefix . " " . $this->name);
$this->f_name = $name;
$this->f_full_name = trim(trim($this->prefix) . ' ' . trim($this->name));

View file

@ -321,8 +321,7 @@ abstract class Catalog extends database_object
*/
public function format()
{
$this->f_name = UI::truncate($this->name,
AmpConfig::get('ellipse_threshold_title'));
$this->f_name = $this->name;
$this->f_name_link = '<a href="' . AmpConfig::get('web_path') .
'/admin/catalog.php?action=show_customize_catalog&catalog_id=' .
$this->id . '" title="' . scrub_out($this->name) . '">' .

View file

@ -393,37 +393,6 @@ class Playlist extends playlist_object
} // set_items
/**
* normalize_tracks
* this takes the crazy out of order tracks
* and numbers them in a liner fashion, not allowing for
* the same track # twice, this is an optional function
*/
public function normalize_tracks()
{
/* First get all of the songs in order of their tracks */
$sql = "SELECT `id` FROM `playlist_data` WHERE `playlist` = ? ORDER BY `track` ASC";
$db_results = Dba::read($sql, array($this->id));
$i = 1;
$results = array();
while ($r = Dba::fetch_assoc($db_results)) {
$new_data = array();
$new_data['id'] = $r['id'];
$new_data['track'] = $i;
$results[] = $new_data;
$i++;
} // end while results
foreach ($results as $data) {
self::update_track_number($data['id'], $data['track']);
} // foreach re-ordered results
return true;
} // normalize_tracks
/**
* delete_track
* this deletes a single track, you specify the playlist_data.id here

View file

@ -39,7 +39,7 @@ abstract class playlist_object extends database_object
*/
public function format()
{
$this->f_name = UI::truncate($this->name,AmpConfig::get('ellipse_threshold_title'));
$this->f_name = $this->name;
$this->f_type = ($this->type == 'private') ? UI::get_icon('lock', T_('Private')) : '';
$client = new User($this->user);

View file

@ -835,15 +835,15 @@ class Song extends database_object implements media
// Format the album name
$this->f_album_full = $this->get_album_name();
$this->f_album = UI::truncate($this->f_album_full,AmpConfig::get('ellipse_threshold_album'));
$this->f_album = $this->f_album_full;
// Format the artist name
$this->f_artist_full = $this->get_artist_name();
$this->f_artist = UI::truncate($this->f_artist_full,AmpConfig::get('ellipse_threshold_artist'));
$this->f_artist = $this->f_artist_full;
// Format the title
$this->f_title_full = $this->title;
$this->f_title = UI::truncate($this->title,AmpConfig::get('ellipse_threshold_title'));
$this->f_title = $this->title;
// Create Links for the different objects
$this->link = AmpConfig::get('web_path') . "/song.php?action=show_song&song_id=" . $this->id;

View file

@ -183,11 +183,11 @@ class Song_Preview extends database_object implements media
// Format the artist name
$this->f_artist_full = $this->get_artist_name();
$this->f_artist = UI::truncate($this->f_artist_full, AmpConfig::get('ellipse_threshold_artist'));
$this->f_artist = $this->f_artist_full;
// Format the title
$this->f_title_full = $this->title;
$this->f_title = UI::truncate($this->title, AmpConfig::get('ellipse_threshold_title'));
$this->f_title = $this->title;
// Create Links for the different objects
$this->link = "#";

View file

@ -573,7 +573,6 @@ class Tag extends database_object
$colors = array('#0000FF',
'#00FF00', '#FFFF00', '#00FFFF','#FF00FF','#FF0000');
$prefs = 'tag company';
// $prefs = AmpConfig::get('tags_userlist');
$ulist = explode(' ', $prefs);
$req = '';

View file

@ -312,35 +312,6 @@ END;
require AmpConfig::get('prefix') . '/templates/show_box_bottom.inc.php';
}
/**
* truncate
*
* Limit text to a certain length; adds an ellipsis if truncation was
* required.
*/
public static function truncate($text, $max = 27)
{
// If they want <3, we're having none of that
if ($max <= 3) {
debug_event('UI', "truncate called with $max, refusing to do stupid things to $text", 2);
return $text;
}
if (self::check_iconv()) {
$charset = AmpConfig::get('site_charset');
if (iconv_strlen($text, $charset) > $max) {
$text = iconv_substr($text, 0, $max - 3, $charset);
$text .= iconv('ISO-8859-1', $charset, '...');
}
} else {
if (strlen($text) > $max) {
$text = substr($text, 0, $max - 3) . '...';
}
}
return $text;
}
/**
* update_text
*

View file

@ -355,6 +355,9 @@ class Update
$update_string = '- Add beautiful stream url setting.<br />';
$version[] = array('version' => '360035','description' => $update_string);
$update_string = '- Remove unused parameters.<br />';
$version[] = array('version' => '360036','description' => $update_string);
return $version;
}
@ -2034,4 +2037,30 @@ class Update
return true;
}
/**
* update_360035
*
* Remove some unused parameters
*/
public static function update_360036()
{
$sql = "DELETE FROM `preference` WHERE `name` LIKE 'ellipse_threshold_%'";
Dba::write($sql);
$sql = "DELETE FROM `preference` WHERE `name` = 'min_object_count'";
Dba::write($sql);
$sql = "DELETE FROM `preference` WHERE `name` = 'bandwidth'";
Dba::write($sql);
$sql = "DELETE FROM `preference` WHERE `name` = 'features'";
Dba::write($sql);
$sql = "DELETE FROM `preference` WHERE `name` = 'tags_userlist'";
Dba::write($sql);
return true;
}
}

View file

@ -18,9 +18,85 @@
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//
/*********************/
/* Edit modal dialog */
/*********************/
/************************************************************/
/* Dialog selection to add song to an existing/new playlist */
/************************************************************/
function showPlaylistDialog(item_type, item_id) {
/*var parent = this;
parent.songId = song_id;
parent.dialog_buttons = {};
this.dialog_buttons[jsSaveTitle] = function() {
$.ajax({
url : parent.saveUrl,
type : 'POST',
data : $(parent.editFormId).serializeArray(),
success : function(resp){
var new_id = $.trim(resp.lastChild.textContent);
$("#editdialog").dialog("close");
// 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");
}
});
}
this.dialog_buttons[jsCancelTitle] = function() {
$("#editdialog").dialog("close");
}
$(parent.editDialogId).dialog({
title: edit_title,
modal: true,
dialogClass: 'editdialogstyle',
resizable: false,
width: 600,
autoOpen: false,
open: function () {
$(this).load(parent.contentUrl, function() {
$(this).dialog('option', 'position', 'center');
if ($('#edit_tags').length > 0) {
$("#edit_tags").tagit({
allowSpaces: true,
singleField: true,
singleFieldDelimiter: ',',
availableTags: parent.editTagChoices
});
}
});
},
close: function (e) {
$(this).empty();
$(this).dialog("destroy");
},
buttons: dialog_buttons
});
$("#editdialog").dialog("open");*/
}
/*
$(window).resize(function() {
$("#editdialog").dialog("option", "position", ['center', 'center']);
});
*/
/***************************************************/
/* Edit modal dialog for artists, albums and songs */
/***************************************************/
function showEditDialog(edit_type, edit_id, edit_form_id, edit_title, edit_tag_choices, refresh_row_prefix, refresh_action) {
var parent = this;

View file

@ -262,22 +262,6 @@ function create_preference_input($name,$value)
echo "\t<option value=\"default\"$default>" . T_('Default') . "</option>\n";
echo "</select>\n";
break;
case 'bandwidth':
${"bandwidth_$value"} = ' selected="selected"';
echo "<select name=\"$name\">\n";
echo "\t<option value=\"25\"$bandwidth_25>" . T_('Low') . "</option>\n";
echo "\t<option value=\"50\"$bandwidth_50>" . T_('Medium') . "</option>\n";
echo "\t<option value=\"75\"$bandwidth_75>" . T_('High') . "</option>\n";
echo "</select>\n";
break;
case 'features':
${"features_$value"} = ' selected="selected"';
echo "<select name=\"$name\">\n";
echo "\t<option value=\"25\"$features_25>" . T_('Low') . "</option>\n";
echo "\t<option value=\"50\"$features_50>" . T_('Medium') . "</option>\n";
echo "\t<option value=\"75\"$features_75>" . T_('High') . "</option>\n";
echo "</select>\n";
break;
case 'transcode':
${$value} = ' selected="selected"';
echo "<select name=\"$name\">\n";

View file

@ -473,7 +473,7 @@ class Catalog_dropbox extends Catalog
public function format()
{
parent::format();
$this->f_info = UI::truncate($this->apikey, AmpConfig::get('ellipse_threshold_title'));
$this->f_info = $this->apikey;
$this->f_full_info = $this->apikey;
}

View file

@ -703,7 +703,7 @@ class Catalog_local extends Catalog
public function format()
{
parent::format();
$this->f_info = UI::truncate($this->path, AmpConfig::get('ellipse_threshold_title'));
$this->f_info = $this->path;
$this->f_full_info = $this->path;
}

View file

@ -360,7 +360,7 @@ class Catalog_remote extends Catalog
public function format()
{
parent::format();
$this->f_info = UI::truncate($this->uri, AmpConfig::get('ellipse_threshold_title'));
$this->f_info = $this->uri;
$this->f_full_info = $this->uri;
}

View file

@ -408,7 +408,7 @@ class Catalog_soundcloud extends Catalog
public function format()
{
parent::format();
$this->f_info = UI::truncate($this->userid, AmpConfig::get('ellipse_threshold_title'));
$this->f_info = $this->userid;
$this->f_full_info = $this->userid;
}

View file

@ -366,7 +366,7 @@ class Catalog_subsonic extends Catalog
public function format()
{
parent::format();
$this->f_info = UI::truncate($this->uri, AmpConfig::get('ellipse_threshold_title'));
$this->f_info = $this->uri;
$this->f_full_info = $this->uri;
}

View file

@ -114,8 +114,6 @@ switch ($_REQUEST['action']) {
case 'set_track_numbers':
debug_event('playlist', 'Set track numbers called.', '5');
$playlist = new Playlist($_REQUEST['playlist_id']);
/* Make sure they have permission */
if (!$playlist->has_access()) {
UI::access_denied();
@ -128,6 +126,7 @@ switch ($_REQUEST['action']) {
debug_event('playlist', $key.'='.$_GET[$key], '5');
}
$playlist = new Playlist($_REQUEST['playlist_id']);
if (isset($_GET['order'])) {
$songs = explode(";", $_GET['order']);
$track = 1;
@ -139,8 +138,16 @@ switch ($_REQUEST['action']) {
}
}
break;
case 'add_song':
if (!$playlist->has_access()) {
UI::access_denied();
break;
}
$playlist = new Playlist($_REQUEST['playlist_id']);
$playlist->add_songs(array($_REQUEST['song_id']));
break;
case 'prune_empty':
/* Make sure they have permission */
if (!$GLOBALS['user']->has_access(100)) {
UI::access_denied();
break;
@ -152,18 +159,6 @@ switch ($_REQUEST['action']) {
$body = '';
show_confirmation($title,$body,$url);
break;
case 'normalize_tracks':
$playlist = new Playlist($_REQUEST['playlist_id']);
/* Make sure they have permission */
if (!$playlist->has_access()) {
UI::access_denied();
break;
}
/* Normalize the tracks */
$playlist->normalize_tracks();
$object_ids = $playlist->get_items();
default:
require_once AmpConfig::get('prefix') . '/templates/show_playlist.inc.php';
break;

View file

@ -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','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');
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'),(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'),(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'),(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'),(80,'features','50','Features',5,'integer','interface');
/*!40000 ALTER TABLE `preference` ENABLE KEYS */;
UNLOCK TABLES;

View file

@ -50,7 +50,7 @@ if (AmpConfig::get('use_rss')) { ?>
<script src="<?php echo $web_path; ?>/modules/jscroll/jquery.jscroll.min.js" language="javascript" type="text/javascript"></script>
<script src="<?php echo $web_path; ?>/lib/javascript/base.js" language="javascript" type="text/javascript"></script>
<script src="<?php echo $web_path; ?>/lib/javascript/ajax.js" language="javascript" type="text/javascript"></script>
<script src="<?php echo $web_path; ?>/lib/javascript/edit-dialog.js" language="javascript" type="text/javascript"></script>
<script src="<?php echo $web_path; ?>/lib/javascript/tools.js" language="javascript" type="text/javascript"></script>
<?php
// If iframes, we check in javascript that parent container exist, otherwise we redirect to index. Otherwise iframed Web Player will look broken.
if (AmpConfig::get('iframes') && $_SERVER['REQUEST_METHOD'] != 'POST') {

View file

@ -38,7 +38,7 @@
$playlist->format();
?>
<li>
<?php echo Ajax::text('?page=playlist&action=append&playlist_id=' . $playlist->id,$playlist->f_name,'rb_append_playlist_' . $playlist->id); ?>
<?php echo Ajax::text('?page=playlist&action=append&playlist_id=' . $playlist->id, $playlist->f_name, 'rb_append_playlist_' . $playlist->id); ?>
</li>
<?php } ?>
</ul>

View file

@ -20,18 +20,16 @@
*
*/
?>
<?php if (AmpConfig::get('directplay')) { ?>
<td class="cel_directplay">
<td class="cel_play">
<span class="cel_play_content">&nbsp;</span>
<div class="cel_play_hover">
<?php if (AmpConfig::get('directplay')) { ?>
<?php echo Ajax::button('?page=stream&action=directplay&playtype=album&album_id=' . $album->id,'play', T_('Play album'),'play_album_' . $album->id); ?>
<?php if (Stream_Playlist::check_autoplay_append()) { ?>
<?php echo Ajax::button('?page=stream&action=directplay&playtype=album&album_id=' . $album->id . '&append=true','play_add', T_('Play add album'),'addplay_album_' . $album->id); ?>
<?php } ?>
</td>
<?php } ?>
<td class="cel_add">
<?php echo Ajax::button('?action=basket&type=album&id=' . $album->id,'add', T_('Add'),'add_album_' . $album->id); ?>
<?php echo Ajax::button('?action=basket&type=album_random&id=' . $album->id,'random', T_('Random'),'random_album_' . $album->id); ?>
</div>
</td>
<?php
if (Art::is_enabled()) {
@ -44,6 +42,15 @@ if (Art::is_enabled()) {
</td>
<?php } ?>
<td class="cel_album"><?php echo $album->f_name_link; ?></td>
<td class="cel_add">
<span class="cel_item_add">
<?php echo Ajax::button('?action=basket&type=album&id=' . $album->id,'add', T_('Add to temporary playlist'),'add_album_' . $album->id); ?>
<?php echo Ajax::button('?action=basket&type=album_random&id=' . $album->id,'random', T_('Random to temporary playlist'),'random_album_' . $album->id); ?>
<a id="<?php echo 'add_playlist_'.$album->id ?>" onclick="showPlaylistDialog('album', '<?php echo $album->id ?>')">
<?php echo UI::get_icon('playlist_add', T_('Add to existing playlist')); ?>
</a>
</span>
</td>
<td class="cel_artist"><?php echo $album->f_artist_link; ?></td>
<td class="cel_songs"><?php echo $album->song_count; ?></td>
<td class="cel_year"><?php echo $album->year; ?></td>

View file

@ -22,19 +22,17 @@
$web_path = AmpConfig::get('web_path');
$tags_list = Tag::get_display(Tag::get_tags());
$thcount = 7;
$thcount = 8;
?>
<?php if ($browse->get_show_header()) require AmpConfig::get('prefix') . '/templates/list_header.inc.php'; ?>
<table class="tabledata" cellpadding="0" cellspacing="0">
<tr class="th-top">
<?php if (AmpConfig::get('directplay')) { ++$thcount; ?>
<th class="cel_directplay"><?php echo T_('Play'); ?></th>
<?php } ?>
<th class="cel_add"><?php echo T_('Add'); ?></th>
<th class="cel_play"></th>
<?php if (Art::is_enabled()) { ++$thcount; ?>
<th class="cel_cover"><?php echo T_('Cover'); ?></th>
<?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_add"></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>
@ -66,14 +64,12 @@ $thcount = 7;
</tr>
<?php } ?>
<tr class="th-bottom">
<?php if (AmpConfig::get('directplay')) { ?>
<th class="cel_directplay"><?php echo T_('Play'); ?></th>
<?php } ?>
<th class="cel_add"><?php echo T_('Add'); ?></th>
<th class="cel_play"></th>
<?php if (Art::is_enabled()) { ?>
<th class="cel_cover"><?php echo T_('Cover'); ?></th>
<?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_add"></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>

View file

@ -20,19 +20,27 @@
*
*/
?>
<?php if (AmpConfig::get('directplay')) { ?>
<td class="cel_directplay">
<td class="cel_play">
<span class="cel_play_content">&nbsp;</span>
<div class="cel_play_hover">
<?php if (AmpConfig::get('directplay')) { ?>
<?php echo Ajax::button('?page=stream&action=directplay&playtype=artist&artist_id=' . $artist->id,'play', T_('Play artist'),'play_artist_' . $artist->id); ?>
<?php if (Stream_Playlist::check_autoplay_append()) { ?>
<?php if (Stream_Playlist::check_autoplay_append()) { ?>
<?php echo Ajax::button('?page=stream&action=directplay&playtype=artist&artist_id=' . $artist->id . '&append=true','play_add', T_('Play add artist'),'addplay_artist_' . $artist->id); ?>
<?php } ?>
<?php } ?>
</td>
<?php } ?>
<td class="cel_add">
<?php echo Ajax::button('?action=basket&type=artist&id=' . $artist->id,'add', T_('Add'),'add_artist_' . $artist->id); ?>
<?php echo Ajax::button('?action=basket&type=artist_random&id=' . $artist->id,'random', T_('Random'),'random_artist_' . $artist->id); ?>
</div>
</td>
<td class="cel_artist"><?php echo $artist->f_name_link; ?></td>
<td class="cel_add">
<span class="cel_item_add">
<?php echo Ajax::button('?action=basket&type=artist&id=' . $artist->id,'add', T_('Add to temporary playlist'),'add_artist_' . $artist->id); ?>
<?php echo Ajax::button('?action=basket&type=artist_random&id=' . $artist->id,'random', T_('Random to temporary playlist'),'random_artist_' . $artist->id); ?>
<a id="<?php echo 'add_playlist_'.$artist->id ?>" onclick="showPlaylistDialog('artist', '<?php echo $artist->id ?>')">
<?php echo UI::get_icon('playlist_add', T_('Add to existing playlist')); ?>
</a>
</span>
</td>
<td class="cel_songs"><?php echo $artist->songs; ?></td>
<td class="cel_albums"><?php echo $artist->albums; ?></td>
<td class="cel_time"><?php echo $artist->f_time; ?></td>

View file

@ -24,16 +24,14 @@ session_start();
$web_path = AmpConfig::get('web_path');
$tags_list = Tag::get_display(Tag::get_tags());
$thcount = 7;
$thcount = 8;
?>
<?php if ($browse->get_show_header()) require AmpConfig::get('prefix') . '/templates/list_header.inc.php'; ?>
<table class="tabledata" cellpadding="0" cellspacing="0">
<tr class="th-top">
<?php if (AmpConfig::get('directplay')) { ++$thcount; ?>
<th class="cel_directplay"><?php echo T_('Play'); ?></th>
<?php } ?>
<th class="cel_add"><?php echo T_('Add'); ?></th>
<th class="cel_play"></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_add"></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>
@ -44,7 +42,7 @@ $thcount = 7;
<?php if (AmpConfig::get('userflags')) { ++$thcount; ?>
<th class="cel_userflag"><?php echo T_('Flag'); ?></th>
<?php } ?>
<th class="cel_action"> <?php echo T_('Action'); ?> </th>
<th class="cel_action"><?php echo T_('Action'); ?></th>
</tr>
<?php
// Cache the ratings we are going to use
@ -66,14 +64,12 @@ $thcount = 7;
</tr>
<?php } ?>
<tr class="th-bottom">
<?php if (AmpConfig::get('directplay')) { ?>
<th class="cel_directplay"><?php echo T_('Play'); ?></th>
<?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_play"></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_add"></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 (AmpConfig::get('ratings')) { ?>
<th class="cel_rating"><?php echo T_('Rating'); ?></th>

View file

@ -20,15 +20,23 @@
*
*/
?>
<?php if (AmpConfig::get('directplay')) { ?>
<td class="cel_directplay">
<td class="cel_play">
<span class="cel_play_content">&nbsp;</span>
<div class="cel_play_hover">
<?php if (AmpConfig::get('directplay')) { ?>
<?php echo Ajax::button('?page=stream&action=directplay&playtype=live_stream&stream_id=' . $radio->id, 'play', T_('Play live stream'),'play_live_stream_' . $radio->id); ?>
</td>
<?php } ?>
<td class="cel_add">
<?php echo Ajax::button('?action=basket&type=live_stream&id=' . $radio->id,'add', T_('Add'),'add_radio_' . $radio->id); ?>
</div>
</td>
<td class="cel_streamname"><?php echo $radio->f_name_link; ?></td>
<td class="cel_add">
<span class="cel_item_add">
<?php echo Ajax::button('?action=basket&type=live_stream&id=' . $radio->id,'add', T_('Add to temporary playlist'),'add_radio_' . $radio->id); ?>
<a id="<?php echo 'add_playlist_'.$radio->id ?>" onclick="showPlaylistDialog('radio', '<?php echo $radio->id ?>')">
<?php echo UI::get_icon('playlist_add', T_('Add to existing playlist')); ?>
</a>
</span>
</td>
<td class="cel_streamurl"><?php echo $radio->f_url_link; ?></td>
<td class="cel_codec"><?php echo $radio->codec; ?></td>
<td class="cel_action">

View file

@ -21,16 +21,13 @@
*/
$web_path = AmpConfig::get('web_path');
$thcount = 5;
?>
<?php if ($browse->get_show_header()) require AmpConfig::get('prefix') . '/templates/list_header.inc.php'; ?>
<table class="tabledata" cellpadding="0" cellspacing="0">
<tr class="th-top">
<?php if (AmpConfig::get('directplay')) { ++$thcount; ?>
<th class="cel_directplay"><?php echo T_('Play'); ?></th>
<?php } ?>
<th class="cel_add"><?php echo T_('Add'); ?></th>
<th class="cel_play"></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_add"></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>
@ -46,15 +43,13 @@ $thcount = 5;
<?php } //end foreach ($artists as $artist) ?>
<?php if (!count($object_ids)) { ?>
<tr>
<td colspan="<?php echo $thcount; ?>"><span class="nodata"><?php echo T_('No live stream found'); ?></span></td>
<td colspan="6"><span class="nodata"><?php echo T_('No live stream found'); ?></span></td>
</tr>
<?php } ?>
<tr class="th-bottom">
<?php if (AmpConfig::get('directplay')) { ?>
<th class="cel_directplay"><?php echo T_('Play'); ?></th>
<?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_play"></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_add"></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>

View file

@ -24,9 +24,9 @@
UI::show_box_top("Song Lyrics" , 'box box_lyrics_song');
/* Prepare the variables */
$title = scrub_out(UI::truncate($song->title));
$album = scrub_out(UI::truncate($song->f_album_full));
$artist = scrub_out(UI::truncate($song->f_artist_full));
$title = scrub_out($song->title);
$album = scrub_out($song->f_album_full);
$artist = scrub_out($song->f_artist_full);
?>
<div class="album_art">
<?php

View file

@ -29,7 +29,7 @@
<div class="np_cell cel_similar_artist">
<?php
if (is_null($a['id'])) {
echo scrub_out(UI::truncate($a['name']), AmpConfig::get('ellipse_threshold_artist'));
echo scrub_out($a['name']);
} else {
$artist = new Artist($a['id']);
$artist->format();

View file

@ -35,12 +35,6 @@ UI::show_box_top('<div id="playlist_row_' . $playlist->id . '">' . $title . '</d
?>
<div id="information_actions">
<ul>
<li>
<a href="<?php echo AmpConfig::get('web_path'); ?>/playlist.php?action=normalize_tracks&amp;playlist_id=<?php echo $playlist->id; ?>">
<?php echo UI::get_icon('statistics', T_('Normalize Tracks')); ?>
&nbsp;&nbsp;<?php echo T_('Normalize Tracks'); ?>
</a>
</li>
<li>
<a onclick="submitNewItemsOrder('<?php echo $playlist->id; ?>', 'reorder_playlist_table', 'track_',
'<?php echo AmpConfig::get('web_path'); ?>/playlist.php?action=set_track_numbers&playlist_id=<?php echo $playlist->id; ?>', 'refresh_playlist_songs')">

View file

@ -20,19 +20,27 @@
*
*/
?>
<?php if (AmpConfig::get('directplay')) { ?>
<td class="cel_directplay">
<td class="cel_play">
<span class="cel_play_content">&nbsp;</span>
<div class="cel_play_hover">
<?php if (AmpConfig::get('directplay')) { ?>
<?php echo Ajax::button('?page=stream&action=directplay&playtype=playlist&playlist_id=' . $playlist->id,'play', T_('Play playlist'),'play_playlist_' . $playlist->id); ?>
<?php if (Stream_Playlist::check_autoplay_append()) { ?>
<?php echo Ajax::button('?page=stream&action=directplay&playtype=playlist&playlist_id=' . $playlist->id . '&append=true','play_add', T_('Play add playlist'),'addplay_playlist_' . $playlist->id); ?>
<?php } ?>
</td>
<?php } ?>
<td class="cel_add">
<?php echo Ajax::button('?action=basket&type=playlist&id=' . $playlist->id,'add', T_('Add'),'add_playlist_' . $playlist->id); ?>
<?php echo Ajax::button('?action=basket&type=playlist_random&id=' . $playlist->id,'random', T_('Random'),'random_playlist_' . $playlist->id); ?>
</div>
</td>
<td class="cel_playlist"><?php echo $playlist->f_link; ?></td>
<td class="cel_add">
<span class="cel_item_add">
<?php echo Ajax::button('?action=basket&type=playlist&id=' . $playlist->id,'add', T_('Add to temporary playlist'),'add_playlist_' . $playlist->id); ?>
<?php echo Ajax::button('?action=basket&type=playlist_random&id=' . $playlist->id,'random', T_('Random to temporary playlist'),'random_playlist_' . $playlist->id); ?>
<a id="<?php echo 'add_playlist_'.$playlist->id ?>" onclick="showPlaylistDialog('playlist', '<?php echo $playlist->id ?>')">
<?php echo UI::get_icon('playlist_add', T_('Add to existing playlist')); ?>
</a>
</span>
</td>
<td class="cel_type"><?php echo $playlist->f_type; ?></td>
<td class="cel_songs"><?php echo $count; ?></td>
<td class="cel_owner"><?php echo scrub_out($playlist->f_user); ?></td>

View file

@ -20,20 +20,29 @@
*
*/
?>
<?php if (AmpConfig::get('directplay')) { ?>
<td class="cel_directplay">
<td class="cel_play">
<span class="cel_play_content"><?php echo '<b>'.$playlist_track.'</b>'; ?></span>
<div class="cel_play_hover">
<?php if (AmpConfig::get('directplay')) { ?>
<?php echo Ajax::button('?page=stream&action=directplay&playtype=song&song_id=' . $song->id, 'play', T_('Play song'),'play_playlist_song_' . $song->id); ?>
<?php if (Stream_Playlist::check_autoplay_append()) { ?>
<?php echo Ajax::button('?page=stream&action=directplay&playtype=song&song_id=' . $song->id . '&append=true','play_add', T_('Play add song'),'addplay_song_' . $song->id); ?>
<?php } ?>
</td>
<?php } ?>
<td class="cel_add"><?php echo Ajax::button('?action=basket&type=song&id=' . $song->id,'add', T_('Add'),'playlist_add_' . $song->id); ?></td>
<td class="cel_track"><?php echo $playlist_track; ?></td>
</div>
</td>
<td class="cel_song"><?php echo $song->f_link; ?></td>
<td class="cel_add">
<span class="cel_item_add">
<?php echo Ajax::button('?action=basket&type=song&id=' . $song->id,'add', T_('Add to temporary playlist'),'playlist_add_' . $song->id); ?>
<a id="<?php echo 'add_playlist_'.$song->id ?>" onclick="showPlaylistDialog('song', '<?php echo $song->id ?>')">
<?php echo UI::get_icon('playlist_add', T_('Add to existing playlist')); ?>
</a>
</span>
</td>
<td class="cel_artist"><?php echo $song->f_artist_link; ?></td>
<td class="cel_album"><?php echo $song->f_album_link; ?></td>
<td class="cel_genre"><?php echo $song->f_tags; ?></td>
<td class="cel_tags"><?php echo $song->f_tags; ?></td>
<td class="cel_time"><?php echo $song->f_time; ?></td>
<?php if (AmpConfig::get('ratings')) { ?>
<td class="cel_rating" id="rating_<?php echo $song->id; ?>_song"><?php Rating::show($song->id,'song'); ?></td>

View file

@ -26,15 +26,12 @@ $web_path = AmpConfig::get('web_path');
<form method="post" id="reorder_playlist_<?php echo $playlist->id; ?>">
<table id="reorder_playlist_table" class="tabledata" cellpadding="0" cellspacing="0">
<tr class="th-top">
<?php if (AmpConfig::get('directplay')) { ?>
<th class="cel_directplay"><?php echo T_('Play'); ?></th>
<?php } ?>
<th class="cel_add"><?php echo T_('Add'); ?></th>
<th class="cel_track"><?php echo T_('Track'); ?></th>
<th class="cel_play"></th>
<th class="cel_song"><?php echo T_('Song Title'); ?></th>
<th class="cel_add"></th>
<th class="cel_artist"><?php echo T_('Artist'); ?></th>
<th class="cel_album"><?php echo T_('Album'); ?></th>
<th class="cel_genre"><?php echo T_('Genre'); ?></th>
<th class="cel_tags"><?php echo T_('Tags'); ?></th>
<th class="cel_time"><?php echo T_('Time'); ?></th>
<?php if (AmpConfig::get('ratings')) {
Rating::build_cache('song', array_map(create_function('$i', 'return $i[\'object_id\'];'), $object_ids));
@ -63,15 +60,12 @@ $web_path = AmpConfig::get('web_path');
</tbody>
<tr class="th-bottom">
<?php if (AmpConfig::get('directplay')) { ?>
<th class="cel_directplay"><?php echo T_('Play'); ?></th>
<?php } ?>
<th class="cel_add"><?php echo T_('Add'); ?></th>
<th class="cel_track"><?php echo T_('Track'); ?></th>
<th class="cel_play"><?php echo T_('Play'); ?></th>
<th class="cel_song"><?php echo T_('Song Title'); ?></th>
<th class="cel_add"></th>
<th class="cel_artist"><?php echo T_('Artist'); ?></th>
<th class="cel_album"><?php echo T_('Album'); ?></th>
<th class="cel_genre"><?php echo T_('Genre'); ?></th>
<th class="cel_tags"><?php echo T_('Tags'); ?></th>
<th class="cel_time"><?php echo T_('Time'); ?></th>
<?php if (AmpConfig::get('ratings')) { ?>
<th class="cel_rating"><?php echo T_('Rating'); ?></th>

View file

@ -23,11 +23,9 @@
<?php if ($browse->get_show_header()) require AmpConfig::get('prefix') . '/templates/list_header.inc.php' ?>
<table class="tabledata" cellpadding="0" cellspacing="0">
<tr class="th-top">
<?php if (AmpConfig::get('directplay')) { ?>
<th class="cel_directplay"><?php echo T_('Play'); ?></th>
<?php } ?>
<th class="cel_add"><?php echo T_('Add'); ?></th>
<th class="cel_play"></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_add"></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>
@ -45,15 +43,13 @@
<?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>
<td colspan="7"><span class="nodata"><?php echo T_('No playlist found'); ?></span></td>
</tr>
<?php } ?>
<tr class="th-bottom">
<?php if (AmpConfig::get('directplay')) { ?>
<th class="cel_directplay"><?php echo T_('Play'); ?></th>
<?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_play"></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_add"></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>

View file

@ -22,15 +22,12 @@
$link = AmpConfig::get('use_rss') ? ' ' . Ampache_RSS::get_display('recently_played') : '';
UI::show_box_top(T_('Recently Played') . $link, 'box box_recently_played');
$thcount = 7;
?>
<table class="tabledata" cellpadding="0" cellspacing="0">
<tr class="th-top">
<?php if (AmpConfig::get('directplay')) { ++$thcount; ?>
<th class="cel_directplay"><?php echo T_('Play'); ?></th>
<?php } ?>
<th class="cel_add"><?php echo T_('Add'); ?></th>
<th class="cel_play"></th>
<th class="cel_song"><?php echo T_('Song'); ?></th>
<th class="cel_add"></th>
<th class="cel_album"><?php echo T_('Album'); ?></th>
<th class="cel_artist"><?php echo T_('Artist'); ?></th>
<th class="cel_username"><?php echo T_('Username'); ?></th>
@ -88,18 +85,26 @@ $thcount = 7;
$song->format();
?>
<tr class="<?php echo UI::flip_class(); ?>">
<td class="cel_play">
<span class="cel_play_content">&nbsp;</span>
<div class="cel_play_hover">
<?php if (AmpConfig::get('directplay')) { ?>
<td class="cel_directplay">
<?php echo Ajax::button('?page=stream&action=directplay&playtype=song&song_id=' . $song->id,'play', T_('Play song'),'play_song_' . $song->id); ?>
<?php if (Stream_Playlist::check_autoplay_append()) { ?>
<?php echo Ajax::button('?page=stream&action=directplay&playtype=song&song_id=' . $song->id . '&append=true','play_add', T_('Play add song'),'addplay_song_' . $song->id); ?>
<?php } ?>
</td>
<?php } ?>
<td class="cel_add">
<?php echo Ajax::button('?action=basket&type=song&id='.$song->id, 'add', T_('Add'), 'add_'.$song->id); ?>
</div>
</td>
<td class="cel_song"><?php echo $song->f_link; ?></td>
<td class="cel_add">
<span class="cel_item_add">
<?php echo Ajax::button('?action=basket&type=song&id='.$song->id, 'add', T_('Add to temporary playlist'), 'add_'.$song->id); ?>
<a id="<?php echo 'add_playlist_'.$song->id ?>" onclick="showPlaylistDialog('song', '<?php echo $song->id ?>')">
<?php echo UI::get_icon('playlist_add', T_('Add to existing playlist')); ?>
</a>
</span>
</td>
<td class="cel_album"><?php echo $song->f_album_link; ?></td>
<td class="cel_artist"><?php echo $song->f_artist_link; ?></td>
<td class="cel_username">
@ -117,18 +122,16 @@ $thcount = 7;
<?php } ?>
<?php if (!count($data)) { ?>
<tr>
<td colspan="<?php echo $thcount ?>"><span class="nodata"><?php echo T_('No recently item found'); ?></span></td>
<td colspan=""><span class="nodata"><?php echo T_('No recently item found'); ?></span></td>
</tr>
<?php } ?>
<tr class="th-bottom">
<?php if (AmpConfig::get('directplay')) { ?>
<th class="cel_directplay"><?php echo T_('Play'); ?></th>
<?php } ?>
<th class="cel_add"><?php echo T_('Add'); ?></th>
<th class="cel_username"><?php echo T_('Username'); ?></th>
<th class="cel_play"></th>
<th class="cel_song"><?php echo T_('Song'); ?></th>
<th class="cel_add"></th>
<th class="cel_album"><?php echo T_('Album'); ?></th>
<th class="cel_artist"><?php echo T_('Artist'); ?></th>
<th class="cel_username"><?php echo T_('Username'); ?></th>
<th class="cel_lastplayed"><?php echo T_('Last Played'); ?></th>
<th class="cel_agent"><?php echo T_('Agent'); ?></th>
</tr>

View file

@ -20,16 +20,14 @@
*
*/
$thcount = 7;
$thcount = 8;
?>
<?php UI::show_box_top(T_('Similar Artists'), 'info-box'); ?>
<table class="tabledata" cellpadding="0" cellspacing="0">
<tr class="th-top">
<?php if (AmpConfig::get('directplay')) { ++$thcount; ?>
<th class="cel_directplay"><?php echo T_('Play'); ?></th>
<?php } ?>
<th class="cel_add"><?php echo T_('Add'); ?></th>
<th class="cel_play"></th>
<th class="cel_artist"><?php echo T_('Artist'); ?></th>
<th class="cel_add"></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>
@ -63,11 +61,9 @@ $thcount = 7;
</tr>
<?php } ?>
<tr class="th-bottom">
<?php if (AmpConfig::get('directplay')) { ?>
<th class="cel_directplay"><?php echo T_('Play'); ?></th>
<?php } ?>
<th class="cel_add"><?php echo T_('Add'); ?></th>
<th class="cel_play"></th>
<th class="cel_artist"><?php echo T_('Artist'); ?></th>
<th class="cel_add"></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>

View file

@ -20,18 +20,26 @@
*
*/
?>
<?php if (AmpConfig::get('directplay')) { ?>
<td class="cel_directplay">
<td class="cel_play">
<span class="cel_play_content">&nbsp;</span>
<div class="cel_play_hover">
<?php if (AmpConfig::get('directplay')) { ?>
<?php echo Ajax::button('?page=stream&action=directplay&playtype=smartplaylist&playlist_id=' . $playlist->id,'play', T_('Play playlist'),'play_playlist_' . $playlist->id); ?>
<?php if (Stream_Playlist::check_autoplay_append()) { ?>
<?php echo Ajax::button('?page=stream&action=directplay&playtype=smartplaylist&playlist_id=' . $playlist->id . '&append=true','play_add', T_('Play add playlist'),'addplay_playlist_' . $playlist->id); ?>
<?php } ?>
</td>
<?php } ?>
<td class="cel_add">
<?php echo Ajax::button('?action=basket&type=smartplaylist&id=' . $playlist->id,'add', T_('Add'),'add_playlist_' . $playlist->id); ?>
</div>
</td>
<td class="cel_playlist"><?php echo $playlist->f_link; ?></td>
<td class="cel_add">
<span class="cel_item_add">
<?php echo Ajax::button('?action=basket&type=smartplaylist&id=' . $playlist->id,'add', T_('Add to temporary playlist'),'add_playlist_' . $playlist->id); ?>
<a id="<?php echo 'add_playlist_'.$playlist->id ?>" onclick="showPlaylistDialog('smartplaylist', '<?php echo $playlist->id ?>')">
<?php echo UI::get_icon('playlist_add', T_('Add to existing playlist')); ?>
</a>
</span>
</td>
<td class="cel_type"><?php echo $playlist->f_type; ?></td>
<td class="cel_owner"><?php echo scrub_out($playlist->f_user); ?></td>
<td class="cel_action">

View file

@ -21,16 +21,13 @@
*/
$tags_list = Tag::get_display(Tag::get_tags());
$thcount = 5;
?>
<?php if ($browse->get_show_header()) require AmpConfig::get('prefix') . '/templates/list_header.inc.php' ?>
<table class="tabledata" cellpadding="0" cellspacing="0">
<tr class="th-top">
<?php if (AmpConfig::get('directplay')) { ++$thcount; ?>
<th class="cel_directplay"><?php echo T_('Play'); ?></th>
<?php } ?>
<th class="cel_add"><?php echo T_('Add'); ?></th>
<th class="cel_play"></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_add"></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>
@ -46,15 +43,13 @@ $thcount = 5;
<?php } // end foreach ($playlists as $playlist) ?>
<?php if (!count($object_ids)) { ?>
<tr class="<?php echo UI::flip_class(); ?>">
<td colspan="<?php echo $thcount; ?>"><span class="nodata"><?php echo T_('No smart playlist found'); ?></span></td>
<td colspan="6"><span class="nodata"><?php echo T_('No smart playlist found'); ?></span></td>
</tr>
<?php } ?>
<tr class="th-bottom">
<?php if (AmpConfig::get('directplay')) { ?>
<th class="cel_directplay"><?php echo T_('Play'); ?></th>
<?php } ?>
<th class="cel_add"><?php echo T_('Add'); ?></th>
<th class="cel_play"></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_add"></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>

View file

@ -21,23 +21,31 @@
*/
?>
<?php if (AmpConfig::get('echonest_api_key')) { ?>
<?php if (AmpConfig::get('directplay')) { ?>
<td class="cel_directplay">
<?php if (!empty($song->file)) { ?>
<td class="cel_play">
<span class="cel_play_content">&nbsp;</span>
<div class="cel_play_hover">
<?php if (AmpConfig::get('directplay') && !empty($song->file)) { ?>
<?php echo Ajax::button('?page=stream&action=directplay&playtype=song_preview&id=' . $song->id,'play_preview', T_('Play song Preview'),'play_song_' . $song->id); ?>
<?php if (Stream_Playlist::check_autoplay_append()) { ?>
<?php if (Stream_Playlist::check_autoplay_append()) { ?>
<?php echo Ajax::button('?page=stream&action=directplay&playtype=song_preview&id=' . $song->id . '&append=true','play_add_preview', T_('Play Add Song Preview'),'addplay_song_' . $song->id); ?>
<?php } ?>
<?php } ?>
</td>
<?php } ?>
<td class="cel_add">
<?php if (!empty($song->file)) { ?>
<?php echo Ajax::button('?action=basket&type=song_preview&id=' . $song->id,'add', T_('Add Song Preview'),'add_' . $song->id); ?>
<?php } ?>
<?php } ?>
</div>
</td>
<?php } ?>
<td class="cel_song"><?php echo $song->title; ?></td>
<?php if (AmpConfig::get('echonest_api_key')) { ?>
<td class="cel_add">
<span class="cel_item_add">
<?php if (!empty($song->file)) { ?>
<?php echo Ajax::button('?action=basket&type=song_preview&id=' . $song->id,'add', T_('Add to temporary playlist'),'add_' . $song->id); ?>
<a id="<?php echo 'add_playlist_'.$song->id ?>" onclick="showPlaylistDialog('song_preview', '<?php echo $song->id ?>')">
<?php echo UI::get_icon('playlist_add', T_('Add to existing playlist')); ?>
</a>
<?php } ?>
</span>
</td>
<?php } ?>
<td class="cel_song"><?php echo $song->title; ?></a></td>
<td class="cel_artist"><?php echo $song->f_artist_link; ?></td>
<td class="cel_album"><?php echo $song->f_album_link; ?></td>
<td class="cel_track"><?php echo $song->track; ?></td>

View file

@ -23,12 +23,12 @@
<table class="tabledata" cellpadding="0" cellspacing="0">
<tr class="th-top">
<?php if (AmpConfig::get('echonest_api_key')) { ?>
<?php if (AmpConfig::get('directplay')) { ++$thcount; ?>
<th class="cel_directplay"><?php echo T_('Play'); ?></th>
<?php } ?>
<th class="cel_add"><?php echo T_('Add'); ?></th>
<th class="cel_play"></th>
<?php } ?>
<th class="cel_song"><?php echo T_('Song Title'); ?></th>
<?php if (AmpConfig::get('echonest_api_key')) { ?>
<th class="cel_add"></th>
<?php } ?>
<th class="cel_artist"><?php echo T_('Artist'); ?></th>
<th class="cel_album"><?php echo T_('Album'); ?></th>
<th class="cel_track"><?php echo T_('Track'); ?></th>

View file

@ -20,22 +20,29 @@
*
*/
?>
<?php if (AmpConfig::get('directplay')) { ?>
<td class="cel_directplay">
<?php echo Ajax::button('?page=stream&action=directplay&playtype=song&song_id=' . $song->id,'play', T_('Play song'),'play_song_' . $song->id); ?>
<?php if (Stream_Playlist::check_autoplay_append()) { ?>
<?php echo Ajax::button('?page=stream&action=directplay&playtype=song&song_id=' . $song->id . '&append=true','play_add', T_('Play add song'),'addplay_song_' . $song->id); ?>
<td class="cel_play">
<span class="cel_play_content"><?php if (isset($argument) && $argument) { echo '<b>'.$song->f_track.'</b>'; } ?></span>
<div class="cel_play_hover">
<?php if (AmpConfig::get('directplay')) { ?>
<?php echo Ajax::button('?page=stream&action=directplay&playtype=song&song_id=' . $song->id, 'play', T_('Play song'), 'play_song_' . $song->id); ?>
<?php if (Stream_Playlist::check_autoplay_append()) { ?>
<?php echo Ajax::button('?page=stream&action=directplay&playtype=song&song_id=' . $song->id . '&append=true', 'play_add', T_('Play add song'), 'addplay_song_' . $song->id); ?>
<?php } ?>
<?php } ?>
</div>
</td>
<?php } ?>
<td class="cel_song"><?php echo $song->f_link; ?></td>
<td class="cel_add">
<?php echo Ajax::button('?action=basket&type=song&id=' . $song->id,'add', T_('Add'),'add_' . $song->id); ?>
<span class="cel_item_add">
<?php echo Ajax::button('?action=basket&type=song&id=' . $song->id,'add', T_('Add to temporary playlist'),'add_' . $song->id); ?>
<a id="<?php echo 'add_playlist_'.$song->id ?>" onclick="showPlaylistDialog('song', '<?php echo $song->id ?>')">
<?php echo UI::get_icon('playlist_add', T_('Add to existing playlist')); ?>
</a>
</span>
</td>
<td class="cel_song"><?php echo $song->f_link; ?></a></td>
<td class="cel_artist"><?php echo $song->f_artist_link; ?></td>
<td class="cel_album"><?php echo $song->f_album_link; ?></td>
<td class="cel_tags"><?php echo $song->f_tags; ?></td>
<td class="cel_track"><?php echo $song->f_track; ?></td>
<td class="cel_time"><?php echo $song->f_time; ?></td>
<?php if (AmpConfig::get('ratings')) { ?>
<td class="cel_rating" id="rating_<?php echo $song->id; ?>_song"><?php Rating::show($song->id,'song'); ?></td>

View file

@ -0,0 +1,128 @@
<?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.
*
*/
?>
<div id="musicbox" class="musicbox absolute box-shadow" style="top: 450px; left: 1439px; display: block;">
<div id="head-add" class="header_add p_10 relative">
<div style="display: block;">
<div class="floatl block_cover">
<div class="cover" style="margin-bottom:0">
<img class="img_main" src="http://cdn-images.deezer.com/images/cover/e8cd709b7505068baec252a3d24ed920/30x30-000000-80-0-0.jpg" width="30" height="30" alt="">
</div>
</div>
<div class="floatl label">
<dl>
<dt class="to_e">Dying Kings</dt>
<dd class="to_e">WE ARE MATCH</dd>
</dl>
</div>
</div>
<p style="display: none;"></p>
<div class="clearfix"></div>
</div>
<div class="list_playlists">
<p class="" style="height30px;line-height:30px"><b>Ajouter à une playlist existante</b></p>
<div id="add-content" style="height: 110px;">
<div class="tinyscroll_viewport">
<div class="tinyscroll_overview" style="top: 0px;">
<ul id="add-playlist-content"><li id="add-playlist" data-id="11714796">
<a href="javascript:void(0);" onclick="musicbox.addToPlaylist($(this).parent().attr('data-id')); return false;" style="overflow:hidden;height:22px;line-height:22px">Autre</a>
</li><li id="add-playlist" data-id="8445567">
<a href="javascript:void(0);" onclick="musicbox.addToPlaylist($(this).parent().attr('data-id')); return false;" style="overflow:hidden;height:22px;line-height:22px">Cascada Perfect Day</a>
</li><li id="add-playlist" data-id="49229476">
<a href="javascript:void(0);" onclick="musicbox.addToPlaylist($(this).parent().attr('data-id')); return false;" style="overflow:hidden;height:22px;line-height:22px">Groupe</a>
</li><li id="add-playlist" data-id="13358479">
<a href="javascript:void(0);" onclick="musicbox.addToPlaylist($(this).parent().attr('data-id')); return false;" style="overflow:hidden;height:22px;line-height:22px">Hit Dance</a>
</li><li id="add-playlist" data-id="33847922">
<a href="javascript:void(0);" onclick="musicbox.addToPlaylist($(this).parent().attr('data-id')); return false;" style="overflow:hidden;height:22px;line-height:22px">Manix</a>
</li><li id="add-playlist" data-id="13710068">
<a href="javascript:void(0);" onclick="musicbox.addToPlaylist($(this).parent().attr('data-id')); return false;" style="overflow:hidden;height:22px;line-height:22px">max puissant</a>
</li><li id="add-playlist" data-id="11714814">
<a href="javascript:void(0);" onclick="musicbox.addToPlaylist($(this).parent().attr('data-id')); return false;" style="overflow:hidden;height:22px;line-height:22px">Playlist Christophe</a>
</li><li id="add-playlist" data-id="26402207">
<a href="javascript:void(0);" onclick="musicbox.addToPlaylist($(this).parent().attr('data-id')); return false;" style="overflow:hidden;height:22px;line-height:22px">ROCK</a>
</li></ul>
</div>
</div>
</div>
<div id="bottom-add" class="options_musicbox">
<ul>
<li id="btn-new-list">
<a href="javascript:void(0)" class="to_e" style="display:block" onclick="musicbox.openCreatePlaylist(); return false;">
<i class="icn icon icon-playlist pull-left"></i>
<span>Créer une nouvelle playlist</span>
<input id="input-new-title" style="display: none; height: 19px; width: 142px; border: 1px solid rgb(205, 205, 205); background-color: rgb(238, 238, 238); background-position: initial initial; background-repeat: initial initial;" type="text" class="floatl m_0 mt_5 p_0 pl_7 rad_2" value="Nouvelle playlist" onfocus="this.select();" onblur="if (this.value == '') { this.value = 'Nouvelle playlist'; }" onkeypress="if(event.keyCode == 13) { musicbox.createPlaylist($(this)); }">
</a>
</li>
</ul>
<div class="clearfix"></div>
</div>
</div>
</div>
<div>
<form method="post" id="edit_album_<?php echo $album->id; ?>" class="edit_dialog_content">
<table class="tabledata" cellspacing="0" cellpadding="0">
<tr>
<td class="edit_dialog_content_header"><?php echo T_('Name') ?></td>
<td><input type="text" name="name" value="<?php echo scrub_out($album->full_name); ?>" /></td>
</tr>
<tr>
<td class="edit_dialog_content_header"><?php echo T_('Artist') ?></td>
<td>
<?php
/*if ($album->artist_count == '1') {*/
show_artist_select('artist', $album->artist_id);
/*} else {
echo T_('Various');
}*/
?>
</td>
</tr>
<tr>
<td class="edit_dialog_content_header"><?php echo T_('Year') ?></td>
<td><input type="text" name="year" value="<?php echo scrub_out($album->year); ?>" /></td>
</tr>
<tr>
<td class="edit_dialog_content_header"><?php echo T_('Disk') ?></td>
<td><input type="text" name="disk" value="<?php echo scrub_out($album->disk); ?>" /></td>
</tr>
<tr>
<td class="edit_dialog_content_header"><?php echo T_('MusicBrainz ID') ?></td>
<td><input type="text" name="mbid" value="<?php echo $album->mbid; ?>" /></td>
</tr>
<tr>
<td class="edit_dialog_content_header"><?php echo T_('Tags') ?></td>
<td>
<input type="text" name="edit_tags" id="edit_tags" value="<?php echo Tag::get_display($album->tags); ?>" />
</td>
</tr>
<tr>
<td class="edit_dialog_content_header"></td>
<td><input type="checkbox" name="apply_childs" value="checked" /><?php echo T_(' Apply tags to all childs (override tags for songs)') ?></td>
</tr>
</table>
<input type="hidden" name="id" value="<?php echo $album->id; ?>" />
<input type="hidden" name="type" value="album_row" />
</form>
</div>

View file

@ -27,15 +27,12 @@ $thcount = 8;
<?php if ($browse->get_show_header()) require AmpConfig::get('prefix') . '/templates/list_header.inc.php'; ?>
<table id="reorder_songs_table" class="tabledata" cellpadding="0" cellspacing="0">
<tr class="th-top">
<?php if (AmpConfig::get('directplay')) { ++$thcount; ?>
<th class="cel_directplay"><?php echo T_('Play'); ?></th>
<?php } ?>
<th class="cel_add"><?php echo T_('Add'); ?></th>
<th class="cel_play"></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_add"></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>
<th class="cel_album"><?php echo Ajax::text('?page=browse&action=set_sort&browse_id=' . $browse->id . '&sort=album', T_('Album'), 'sort_song_album'); ?></th>
<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 (AmpConfig::get('ratings')) {
++$thcount;
@ -74,23 +71,20 @@ $thcount = 8;
<?php } ?>
<tr class="th-bottom">
<?php if (AmpConfig::get('directplay')) { ?>
<th class="cel_directplay"><?php echo T_('Play'); ?></th>
<?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>
<th class="cel_album"><?php echo Ajax::text('?page=browse&action=set_sort&browse_id=' . $browse->id . '&type=song&sort=album', T_('Album'),'sort_song_album_bottom'); ?></th>
<th class="cel_play"></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_add"></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>
<th class="cel_album"><?php echo Ajax::text('?page=browse&action=set_sort&browse_id=' . $browse->id . '&sort=album', T_('Album'), 'sort_song_album'); ?></th>
<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>
<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 (AmpConfig::get('ratings')) { ?>
<th class="cel_rating"><?php echo T_('Rating'); ?></th>
<?php } ?>
<?php if (AmpConfig::get('userflags')) { ?>
<th class="cel_userflag"><?php echo T_('Flag'); ?></th>
<th class="cel_userflag"></th>
<?php } ?>
<th class="cel_action"><?php echo T_('Action'); ?></th>
<th class="cel_action"></th>
<?php if (isset($argument) && $argument) { ?>
<th class="cel_drag"></th>
<?php } ?>

View file

@ -20,18 +20,26 @@
*
*/
?>
<?php if (AmpConfig::get('directplay')) { ?>
<td class="cel_directplay">
<td class="cel_play">
<span class="cel_play_content">&nbsp;</span>
<div class="cel_play_hover">
<?php if (AmpConfig::get('directplay')) { ?>
<?php echo Ajax::button('?page=stream&action=directplay&playtype=video&video_id=' . $video->id,'play', T_('Play video'),'play_video_' . $video->id); ?>
<?php if (Stream_Playlist::check_autoplay_append()) { ?>
<?php if (Stream_Playlist::check_autoplay_append()) { ?>
<?php echo Ajax::button('?page=stream&action=directplay&playtype=video&video_id=' . $video->id . '&append=true','play_add', T_('Play add video'),'addplay_video_' . $video->id); ?>
<?php } ?>
<?php } ?>
</td>
<?php } ?>
<td class="cel_add">
<?php echo Ajax::button('?action=basket&type=video&id=' . $video->id,'add', T_('Add'),'add_video_' . $video->id); ?>
</div>
</td>
<td class="cel_title"><?php echo $video->f_title; ?></td>
<td class="cel_add">
<span class="cel_item_add">
<?php echo Ajax::button('?action=basket&type=video&id=' . $video->id,'add', T_('Add to temporary playlist'),'add_video_' . $video->id); ?>
<a id="<?php echo 'add_playlist_'.$video->id ?>" onclick="showPlaylistDialog('video', '<?php echo $video->id ?>')">
<?php echo UI::get_icon('playlist_add', T_('Add to existing playlist')); ?>
</a>
</span>
</td>
<td class="cel_codec"><?php echo $video->f_codec; ?></td>
<td class="cel_resolution"><?php echo $video->f_resolution; ?></td>
<td class="cel_length"><?php echo $video->f_length; ?></td>

View file

@ -22,15 +22,12 @@
$web_path = AmpConfig::get('web_path');
if ($browse->get_show_header()) require AmpConfig::get('prefix') . '/templates/list_header.inc.php';
$thcount = 7;
?>
<table class="tabledata" cellpadding="0" cellspacing="0">
<tr class="th-top">
<?php if (AmpConfig::get('directplay')) { ++$thcount; ?>
<th class="cel_directplay"><?php echo T_('Play'); ?></th>
<?php } ?>
<th class="cel_add"><?php echo T_('Add'); ?></th>
<th class="cel_play"></th>
<th class="cel_title"><?php echo Ajax::text('?page=browse&action=set_sort&browse_id=' . $browse->id . '&type=video&sort=title', T_('Title'),'sort_video_title'); ?></th>
<th class="cel_add"></th>
<th class="cel_codec"><?php echo Ajax::text('?page=browse&action=set_sort&browse_id=' . $browse->id . '&type=video&sort=codec', T_('Codec'),'sort_video_codec'); ?></th>
<th class="cel_resolution"><?php echo Ajax::text('?page=browse&action=set_sort&browse_id=' . $browse->id . '&type=video&sort=resolution', T_('Resolution'),'sort_video_rez'); ?></th>
<th class="cel_length"><?php echo Ajax::text('?page=browse&action=set_sort&browse_id=' . $browse->id . '&type=video&sort=length', T_('Time'),'sort_video_length'); ?></th>
@ -49,15 +46,13 @@ $thcount = 7;
<?php } //end foreach ?>
<?php if (!count($object_ids)) { ?>
<tr class="<?php echo UI::flip_class(); ?>">
<td colspan="<?php echo $thcount ?>"><span class="nodata"><?php echo T_('No video found'); ?></span></td>
<td colspan="8"><span class="nodata"><?php echo T_('No video found'); ?></span></td>
</tr>
<?php } ?>
<tr class="th-bottom">
<?php if (AmpConfig::get('directplay')) { ?>
<th class="cel_directplay"><?php echo T_('Play'); ?></th>
<?php } ?>
<th class="cel_add"><?php echo T_('Add'); ?></th>
<th class="cel_play"></th>
<th class="cel_title"><?php echo Ajax::text('?page=browse&action=set_sort&browse_id=' . $browse->id . '&type=video&sort=title', T_('Title'),'sort_video_title'); ?></th>
<th class="cel_add"></th>
<th class="cel_codec"><?php echo Ajax::text('?page=browse&action=set_sort&browse_id=' . $browse->id . '&type=video&sort=codec', T_('Codec'),'sort_video_codec'); ?></th>
<th class="cel_resolution"><?php echo Ajax::text('?page=browse&action=set_sort&browse_id=' . $browse->id . '&type=video&sort=resolution', T_('Resolution'),'sort_video_rez'); ?></th>
<th class="cel_length"><?php echo Ajax::text('?page=browse&action=set_sort&browse_id=' . $browse->id . '&type=video&sort=length', T_('Time'),'sort_video_length'); ?></th>

View file

@ -1,966 +0,0 @@
/* vim:set tabstop=8 softtabstop=8 shiftwidth=8 noexpandtab: */
/**
*
* 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.
*
*/
/***********************************************
General style rules
***********************************************/
html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,font,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td
{
border:0;
outline:0;
font-size:100%;
vertical-align:baseline;
background:transparent;
margin:0;
padding:0;
}
body
{
line-height:1;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
font-size:12px;
color:#111;
background:#e8e8e8;
}
blockquote,q
{
quotes:none;
}
blockquote:before,blockquote:after,q:before,q:after
{
content:none;
}
:focus
{
outline:0;
}
del
{
text-decoration:line-through;
}
table
{
border-collapse:collapse;
border-spacing:0;
}
.error
{
color:#c33;
}
a
{
color:#111;
text-decoration:none;
}
h3
{
font-size:20px;
}
hr {
border-top: 1px solid #bbb;
border-bottom: 1px solid #eee;
border-right: 0;
border-left: 0;
}
/***********************************************
Wrappers
***********************************************/
#maincontainer
{
width:1100px;
}
#sidebar
{
width:140px;
}
#content
{
margin-top:32px;
margin-left:160px;
width:945px;
}
.box
{
margin-top:5px;
}
#rightbar
{
width:100%;
position:fixed;
clear:both;
bottom: 0;
background: #333;
z-index: 10;
}
#footer
{
width: 1100px;
margin-top: 20px;
margin-bottom: 120px;
}
/***********************************************
Header
***********************************************/
#header
{
background:#222;
line-height:30px;
height:50px;
padding:7px;
}
#header .box-inside
{
width:550px;
text-align:right;
float:right;
}
#header .clearfix
{
clear:none;
}
#header .box-inside input
{
border:2px solid #666;
border-radius:2px;
background:#000;
font-weight:700;
color:#eee;
font-size:10px;
width:120px;
padding:4px;
}
#header input.button
{
width:80px;
background:#222;
}
#header #advSearchBtn
{
color:#aaa;
padding:4px;
}
#header #loginInfo
{
color:#eee;
}
#header #loginInfo a
{
color:#ccc;
}
/***********************************************
Sidebar
***********************************************/
#sidebar-page
{
position:absolute;
padding-bottom:0.5em;
width:140px;
left:7px;
}
#sidebar-tabs
{
width:140px;
background:#e8e8e8;
float:left;
padding:7px;
margin-left: 8px;
}
#sidebar-tabs li.sb1
{
float:left;
margin-right:5px;
}
#sidebar-tabs .sb2 li
{
background:#fff;
border-radius:4px;
margin-top:7px;
padding:7px;
}
#sidebar-tabs .sb2 li h4
{
font-weight:700;
display:block;
border-radius:3px;
background:#ddd;
color:#222;
padding:5px;
}
#sidebar-tabs .sb2 li ul li
{
background:#fff;
border-radius:0;
margin-top:0;
padding:0;
}
#sidebar-tabs .sb2 li ul li a
{
font-weight:700;
display:block;
border-radius:3px;
padding:5px;
}
#sidebar-tabs .sb2 li ul li a:hover
{
background:#d2e6f9;
}
#sidebar-tabs .sb2 #browse_filters li
{
background:#f9f9f9;
}
#sidebar-tabs .sb2 #browse_filters #multi_alpha_filterLabel
{
margin:5px 3px 0;
display: block;
}
#sidebar-tabs .sb2 #browse_filters #multi_alpha_filter
{
border:1px solid #bbb;
border-radius:2px;
padding:4px;
width: 115px;
}
/***********************************************
Rightbar
***********************************************/
#rightbar
{
background:#ddd;
padding:7px;
border-top: 3px solid #999;
}
#rightbar #rb_action
{
width: 130px;
float: left;
}
#rightbar #rb_action li
{
display: inline;
}
#rightbar #rb_action .submenu
{
display:none;
position:absolute;
width:120px;
padding:0.6em;
background: #fff;
}
#rightbar #rb_action .submenu li a {
padding: 1px;
border-bottom: 1px solid #ccc;
display: block;
}
#rightbar #rb_action li:hover .submenu
{
display:block;
}
#rightbar #rb_current_playlist
{
float: left;
width: 800px;
height: 40px;
}
#rightbar #rb_current_playlist li
{
border: 1px solid #aaa;
border-radius: 4px;
color: #333;
padding: 2px 5px;
float: left;
margin: 2px;
}
#rightbar #rb_current_playlist li a
{
}
#rightbar #rb_current_playlist .even {
background: #d3d3d3;
}
#rightbar #rb_current_playlist li img
{
}
#rightbar #rb_current_playlist li .delitem img {
vertical-align: top;
width: 13px;
opacity: 0.6;
}
/***********************************************
Content
***********************************************/
#ajax-loading
{
position:absolute;
background:#444;
text-align:center;
width:90px;
top:0;
color:#bbb;
margin:0 auto;
padding: 3px 1px 3px 10px;
border: 2px solid #333;
border-top: 0px;
border-left: 0px;
background: #444 url(../images/ajax-loader.gif) no-repeat 2px;
display: none;
}
.box-content h3.box-title,.browse_content .box h3.box-title
{
display:block;
background:#888;
color:#eee;
border-bottom:1px solid #335b0d;
border-top-right-radius:3px;
border-top-left-radius:3px;
font-weight:400;
padding:7px;
}
.browse_content .box.browse_song h3.box-title
{
background:#66B717;
}
.browse_content .box.browse_album h3.box-title
{
background:#09c;
}
.browse_content .box.browse_artist h3.box-title
{
background:#c60;
}
.list-header
{
border-left:1px solid #bbb;
border-right:1px solid #bbb;
border-bottom: 1px solid #bbb;
padding:7px;
}
table.tabledata
{
width:100%;
text-align:left;
border:1px solid #bbb;
}
table.tabledata th
{
border:1px solid #bbb;
border-left:1px solid #ccc;
border-right:1px solid #ccc;
background:#eee;
font-weight:700;
font-size:11px;
color:#444;
padding:7px 10px;
}
.browse_content table.tabledata th, .browse_content table.tabledata
{
border-top: 0px;
}
table.tabledata tbody
{
background:#fff;
}
table .th-bottom {
border-top: 1px solid #ccc;
}
table.tabledata tbody td
{
vertical-align:middle;
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
padding:4px 10px;
}
.browse_content table.tabledata tbody tr:hover
{
background:#b3d6f7;
}
table.tabledata tbody .odd
{
background:#eee;
}
table.tabledata tbody .cel_directplay
{
width:14px;
text-align: center;
}
table.tabledata tbody .cel_add
{
width:14px;
text-align: center;
}
table.tabledata tbody .cel_artist
{
min-width:120px;
}
table.tabledata tbody .cel_action
{
width:70px;
}
table.tabledata tbody td.cel_rating
{
min-width:93px;
padding:4px 3px;
}
table.tabledata tbody .cel_tags
{
max-width:80px;
}
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;
}
table.tabledata .cel_agent {
text-align: right;
}
table.tabledata .cel_agent img:hover {
cursor: help;
}
.box_preferences h4
{
font-size:15px;
background:#555;
color:#eee;
font-weight:400;
border:1px solid #333;
padding:5px;
}
/***********************************************
Content (info-box)
***********************************************/
#content .info-box h3
{
margin-top:10px;
}
#content .info-box .box-content div.star-rating
{
width:150px;
max-width:150px;
}
/* Random album (homepage) */
#random_selection .random_album
{
float:left;
width:125px;
margin-bottom: 10px;
text-align: center;
}
#random_selection .random_album div {
display: inline;
}
#random_selection .random_album img {
border: 4px double #ccc;
}
#random_selection .random_album .star-rating
{
float: left;
}
#random_selection .random_album .play_album
{
float: left;
margin-left: 7px;
}
#random_selection .random_album .play_album a img
{
border: 0px;
}
#random_selection .box-bottom
{
clear:left;
}
/***********************************************
Content (Tag cloud)
***********************************************/
.box-content #tag_filter
{
padding:5px 0px;
}
.clearfix {
clear: left;
}
.box-bottom {
clear: both;
}
span.fatalerror {
color: #c60;
padding: 5px;
display: block;
}
span.nodata {
padding: 5px;
display: block;
font-style: italic;
}
.box-content #tag_filter span
{
padding: 2px 6px;
border: 1px solid #bbb;
margin: 1px;
float: left;
background: #e8e8e8;
}
.box-content #tag_filter span:hover
{
background: #ddd;
color: #222;
border: 1px solid #888;
}
/***********************************************
Content (inline edit)
***********************************************/
.inline-edit select {
max-width: 200px;
}
/***********************************************
Content (information-actions)
***********************************************/
#information_actions
{
margin-top:10px;
width:300px;
}
#information_actions h3
{
/* only showing up in album view, so strange..bug*/
}
#content .info-box .box-content .album_art
{
float: right;
border: 4px double #ccc;
}
#information_actions ul li
{
border-bottom:1px solid #ccc;
padding:3px 0;
}
#information_actions .star-rating li
{
padding:0;
}
#information_actions li img
{
vertical-align:top;
}
#information_actions li a
{
vertical-align:bottom;
}
#information_actions li a:hover
{
color:#09c;
}
/************************************************/
/* Styles for the star ratings */
/************************************************/
.star-rating
{
position:relative;
}
.dynamic-star-rating
{
width:95px;
}
.star-rating ul,
.star-rating a:hover,
.star-rating .current-rating
{
background: url(../images/ratings/star_rating.png) left -1000px repeat-x;
}
.star-rating ul
{
position:relative;
width:80px;
height:15px;
overflow:hidden;
list-style:none;
margin:0;
padding:0;
background-position: left top;
}
.star-rating li
{
display: inline;
}
.star-rating a, .star-rating span,
.star-rating .current-rating
{
position:absolute;
top:0;
left:0;
text-indent:-1000em;
height:15px;
line-height:15px;
outline:none;
overflow:hidden;
border:none;
}
.star-rating .star1 { width:20%; z-index:6; }
.star-rating .star2 { width:40%; z-index:5; }
.star-rating .star3 { width:60%; z-index:4; }
.star-rating .star4 { width:80%; z-index:3; }
.star-rating .star5 { width:100%; z-index:2;}
.star-rating .current-rating { z-index:1; background-position: left bottom; }
.star-rating a.star0
{
left:0px;
width:16px;
background: url(../../../images/ratings/x_off.gif) left top;
}
.dynamic-star-rating a:hover
{
background-position: left center;
}
.dynamic-star-rating a:hover.star0
{
background: url(../../../images/ratings/x.gif) left top;
}
.dynamic-star-rating ul
{
left:16px;
}
/***********************************************
Content (Track view)
***********************************************/
dl.song_details
{
padding: 0.5em;
}
dl.song_details dd
{
margin: 0 0 0 95px;
padding: 0 0 0.5em 0;
}
dl.song_details dt
{
float: left;
clear: left;
width: 80px;
text-align: right;
font-weight: bold;
color: #c60;
}
dl.song_details a:hover
{
color: #09c;
text-decoration: underline;
}
/***********************************************
Footer
***********************************************/
#footer
{
text-align:right;
}
#footer a:hover {
color: #09c;
text-decoration: underline;
}
/***********************************************
Login
***********************************************/
#loginPage #header
{
padding-left: 20px;
border: 1px solid #000;
}
#loginPage #maincontainer {
width: 470px;
margin: 40px auto 0;
background: #fff;
border: 1px solid #ddd;
}
#loginPage #loginbox {
padding: 20px;
}
#loginPage #loginbox h2
{
display: none;
}
#loginPage #loginbox label
{
float: left;
width: 110px;
font-weight: bold;
color: #333;
text-align: right;
vertical-align: middle;
line-height: 30px;
margin-right: 20px;
}
#loginPage #loginbox .loginfield input
{
padding: 5px;
border: 1px solid #ccc;
width: 170px;
color: #444;
font-size: 12px;
outline: 0px;
vertical-align: middle;
}
#loginPage #loginbox a.button
{
color: #777;
cursor: pointer;
padding: 4px 10px;
}
#loginPage #loginbox a:hover
{
color: #111;
}
#loginPage .loginfield
{
width: 400px;
}
#loginPage span.error
{
display: block;
clear: left;
padding: 10px;
background: #ff9999;
border: 1px solid #cc3333;
font-weight: bold;
color: #990000;
text-align: center;
margin-bottom: 10px;
}
#loginPage .formValidation
{
clear: left;
background: #eee;
padding: 5px 10px;
border: 1px solid #ddd;
text-align: center;
}
#loginPage #loginbox input.button
{
padding: 4px 10px;
border: 1px solid #bbb;
font-weight: bold;
color: #333;
background: #e9e9e9;
cursor: pointer;
}
#loginPage input#rememberme
{
margin-top: 7px;
}
#loginPage input#lostpasswordbutton
{
margin-left: 130px;
}
#loginPage #loginbox input.button:hover
{
background: #ddd;
border: 1px solid #aaa;
}
#loginPage #footer
{
width: 470px;
margin: 10px auto;
color: #888;
}
#loginPage #footer a
{
color: #555;
}
/***********************************************
Server settings
***********************************************/
table.tabledata .cel_php_setting, table.tabledata .cel_configuration, .cel_preference
{
width: 200px;
}
/***********************************************
Other
***********************************************/
ol,ul,#rightbar ul
{
list-style:none;
}
ins,#rightbar a
{
text-decoration:none;
}
.clearfix,#content .info-box .box-content,#additional_information
{
clear:both;
}
#header #headerlogo
{
float:left;
}
#header .box-inside div,#header .box-inside form,#rightbar,.star-rating li
{
display:inline;
}
.list-header a:hover
{
text-decoration:underline;
}
#localplay-control span,.box-content #tag_filter span
{
cursor:pointer;
}

View file

@ -477,16 +477,16 @@ hr {
table.tabledata
{
width:100%;
table-layout: fixed;
text-align:left;
border:1px solid #bbb;
color: #eee;
margin-bottom: 20px;
}
table.tabledata th
{
border:1px solid #bbb;
/*border:1px solid #bbb;
border-left:1px solid #ccc;
border-right:1px solid #ccc;
border-right:1px solid #ccc;*/
background:#eee;
font-weight:700;
font-size:11px;
@ -494,6 +494,11 @@ table.tabledata th
padding:7px 10px;
}
table.tabledata tr
{
height: 25px;
}
.browse_content table.tabledata th, .browse_content table.tabledata
{
border-top: 0px;
@ -510,11 +515,12 @@ table .th-bottom {
table.tabledata tbody td
{
vertical-align:middle;
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
padding:4px 10px;
vertical-align: middle;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
padding: 3px 10px 3px 0;
color: #686868;
}
.browse_content table.tabledata tbody tr:hover
@ -527,37 +533,64 @@ table.tabledata tbody .odd
background:#eee;
}
table.tabledata tbody .cel_directplay
{
width:14px;
text-align: center;
table.tabledata tbody .cel_play {
max-width: 40px;
width: 40px !important;
text-align: right;
}
table.tabledata tbody .cel_add
{
width:14px;
text-align: center;
table.tabledata tbody .cel_play_content {
display: block;
}
table.tabledata tbody .cel_artist
{
min-width:120px;
table.tabledata tbody .cel_play_hover {
display: none;
}
table.tabledata tbody .cel_action
{
width:70px;
table.tabledata tbody tr:hover .cel_play_hover, table.tabledata tbody tr:focus .cel_play_hover {
display: block;
}
table.tabledata tbody tr:hover .cel_play_content, table.tabledata tbody tr:focus .cel_play_content {
display: none;
}
table.tabledata tbody td.cel_rating
{
min-width:93px;
padding:4px 3px;
table.tabledata tbody .cel_add {
max-width: 60px;
width: 60px !important;
text-align: right;
}
table.tabledata tbody .cel_tags
{
max-width:250px;
table.tabledata tbody .cel_item_add {
display: none;
}
table.tabledata tbody tr:hover .cel_item_add, table.tabledata tbody tr:focus .cel_item_add {
display: block;
}
table.tabledata tbody .cel_time {
min-width: 40px;
width: 40px !important;
}
table.tabledata tbody .cel_action {
width: 130px !important;
max-width: 130px;
}
table.tabledata tbody td.cel_rating {
width: 100px !important;
max-width: 100px;
}
table.tabledata tbody td.cel_userflag {
width: 40px !important;
max-width: 40px;
}
table.tabledata tbody .cel_tags {
width: 150px !important;
max-width: 150px;
}
table.tabledata tbody .cel_cover img
@ -1170,3 +1203,98 @@ ins,#rightbar a
{
cursor:pointer;
}
.shout {
clear: float;
width: 400px;
height: auto;
padding-right: 40px;
padding-bottom: 20px;
}
.shoutbox-item {
width: 100%;
height: 100%;
font-size: 12px;
line-height: normal;
position: relative;
}
.shoutbox-data {
min-height: 75px;
}
.shoutbox-img {
float: left;
display:inline;
padding-right: 10px;
}
.shoutbox-info {
display:inline;
}
.shoutbox-object {
font-weight: bold;
}
.shoutbox-date {
color: #D6D6D6;
}
.shoutbox-text {
padding-top: 10px;
word-wrap: break-word;
}
.shoutbox-footer {
width: 100%;
padding-top: 5px;
}
.shoutbox-actions {
display:inline;
}
.shoutbox-user {
font-size: 10px;
display:inline;
text-align: right;
float: right;
}
.noty_ampache {
color: #ffffff;
background-color: #222;
}
.browse-options {
float: right;
}
.browse-options form {
display: inline;
}
.browse-options input[type=text] {
width: 50px;
}
.jscroll-next {
width:50%;
display:block;
border:1px solid #ccc;
-webkit-border-radius:10px;
-moz-border-radius:10px;
border-radius: 10px;
background-color:#eee;
color:#999;
font-weight:bold;
text-align:center;
padding:10px 0;
cursor:pointer;
margin: auto;
}
.jscroll-next:hover {
color:#666;
}

View file

@ -1012,30 +1012,64 @@ table.tabledata tbody .odd {
background-color: rgba(255,255,255,0.1);
}
table.tabledata tbody .cel_directplay
{
min-width: 40px;
table.tabledata tbody .cel_play {
max-width: 40px;
width: 40px !important;
text-align: right;
}
table.tabledata tbody .cel_play_content {
display: block;
}
table.tabledata tbody .cel_play_hover {
display: none;
}
table.tabledata tbody tr:hover .cel_play_hover, table.tabledata tbody tr:focus .cel_play_hover {
display: block;
}
table.tabledata tbody tr:hover .cel_play_content, table.tabledata tbody tr:focus .cel_play_content {
display: none;
}
table.tabledata tbody .cel_add {
min-width: 40px;
width: 40px !important;
max-width: 60px;
width: 60px !important;
text-align: right;
}
table.tabledata tbody .cel_artist {
table.tabledata tbody .cel_item_add {
display: none;
}
table.tabledata tbody tr:hover .cel_item_add, table.tabledata tbody tr:focus .cel_item_add {
display: block;
}
table.tabledata tbody .cel_time {
min-width: 40px;
width: 40px !important;
}
table.tabledata tbody .cel_action {
width: 130px !important;
max-width: 130px;
}
table.tabledata tbody td.cel_rating {
width: 100px !important;
max-width: 100px;
}
table.tabledata tbody td.cel_userflag {
width: 40px !important;
max-width: 40px;
}
table.tabledata tbody .cel_tags {
max-width:80px;
width: 150px !important;
max-width: 150px;
}
table.tabledata tbody .cel_cover img {