1
0
Fork 0
mirror of https://github.com/Yetangitu/ampache synced 2025-10-05 19:41:55 +02:00

added sorting to the video browse, also made the api add_lt, add_gt work for artist and album (untested)

This commit is contained in:
Karl 'vollmerk' Vollmer 2009-03-08 23:42:52 +00:00
parent 04bcb58be9
commit 35d6670bd5
4 changed files with 53 additions and 22 deletions

View file

@ -4,6 +4,8 @@
-------------------------------------------------------------------------- --------------------------------------------------------------------------
v.3.5-Alpha3 v.3.5-Alpha3
- Add sorting to Video Browse
- Changed to new Query backend for Browsing and Dynamic Playlists
-------------------------------------------------------------------------- --------------------------------------------------------------------------
v.3.5-Alpha2 03/08/2009 v.3.5-Alpha2 03/08/2009

View file

@ -263,7 +263,8 @@ class Query {
switch (self::$type) { switch (self::$type) {
case 'album': case 'album':
$valid_array = array('show_art','starts_with','exact_match','alpha_match','add','update'); $valid_array = array('add_lt','add_gt','update_lt','update_gt','show_art',
'starts_with','exact_match','alpha_match');
break; break;
case 'artist': case 'artist':
case 'song': case 'song':
@ -281,6 +282,9 @@ class Query {
case 'tag': case 'tag':
$valid_array = array('object_type'); $valid_array = array('object_type');
break; break;
case 'video':
$valid_array = array('starts_with','exact_match','alpha_match');
break;
default: default:
$valid_array = array(); $valid_array = array();
break; break;
@ -363,7 +367,7 @@ class Query {
$valid_array = array('name','call_sign','frequency'); $valid_array = array('name','call_sign','frequency');
break; break;
case 'video': case 'video':
$valid_array = array('title','video_codec','audio_codec'); $valid_array = array('title','resolution','length','codec');
break; break;
case 'user': case 'user':
$valid_array = array('fullname','username','last_seen','create_date'); $valid_array = array('fullname','username','last_seen','create_date');
@ -756,9 +760,6 @@ class Query {
$sql = self::get_base_sql(); $sql = self::get_base_sql();
// No matter what we have to check the catalog based filters... maybe I'm not sure about this
//$where_sql .= self::sql_filter('catalog','');
$filter_sql = self::get_filter_sql(); $filter_sql = self::get_filter_sql();
$join_sql = self::get_join_sql(); $join_sql = self::get_join_sql();
$having_sql = self::get_having_sql(); $having_sql = self::get_having_sql();
@ -811,7 +812,8 @@ class Query {
$filter_sql = ''; $filter_sql = '';
if (self::$type == 'song') { switch (self::$type) {
case 'song':
switch($filter) { switch($filter) {
case 'exact_match': case 'exact_match':
$filter_sql = " `song`.`title` = '" . Dba::escape($value) . "' AND "; $filter_sql = " `song`.`title` = '" . Dba::escape($value) . "' AND ";
@ -852,9 +854,8 @@ class Query {
// Rien a faire // Rien a faire
break; break;
} // end list of sqlable filters } // end list of sqlable filters
break;
} // if it is a song case 'album':
elseif (self::$type == 'album') {
switch($filter) { switch($filter) {
case 'exact_match': case 'exact_match':
$filter_sql = " `album`.`name` = '" . Dba::escape($value) . "' AND "; $filter_sql = " `album`.`name` = '" . Dba::escape($value) . "' AND ";
@ -888,8 +889,8 @@ class Query {
// Rien a faire // Rien a faire
break; break;
} }
} // end album break;
elseif (self::$type == 'artist') { case 'artist':
switch($filter) { switch($filter) {
case 'exact_match': case 'exact_match':
$filter_sql = " `artist`.`name` = '" . Dba::escape($value) . "' AND "; $filter_sql = " `artist`.`name` = '" . Dba::escape($value) . "' AND ";
@ -920,8 +921,8 @@ class Query {
// Rien a faire // Rien a faire
break; break;
} // end filter } // end filter
} // end artist break;
elseif (self::$type == 'live_stream') { case 'live_stream':
switch ($filter) { switch ($filter) {
case 'alpha_match': case 'alpha_match':
$filter_sql = " `live_stream`.`name` LIKE '%" . Dba::escape($value) . "%' AND "; $filter_sql = " `live_stream`.`name` LIKE '%" . Dba::escape($value) . "%' AND ";
@ -933,8 +934,8 @@ class Query {
// Rien a faire // Rien a faire
break; break;
} // end filter } // end filter
} // end live_stream break;
elseif (self::$type == 'playlist') { case 'playlist':
switch ($filter) { switch ($filter) {
case 'alpha_match': case 'alpha_match':
$filter_sql = " `playlist`.`name` LIKE '%" . Dba::escape($value) . "%' AND "; $filter_sql = " `playlist`.`name` LIKE '%" . Dba::escape($value) . "%' AND ";
@ -950,7 +951,21 @@ class Query {
// Rien a faire // Rien a faire
break; break;
} // end filter } // end filter
} // end playlist break;
case 'video':
switch ($filter) {
case 'alpha_match':
$filter_sql = " `video`.`title` LIKE '%" . Dba::escape($value) . "%' AND ";
break;
case 'starts_with':
$filter_sql = " `video`.`title` LIKE '" . Dba::escape($value) . "%' AND ";
break;
default:
// Rien a faire
break;
} // end filter
break;
} // end switch on type
return $filter_sql; return $filter_sql;
@ -1085,7 +1100,16 @@ class Query {
case 'title': case 'title':
$sql = "`video`.`title`"; $sql = "`video`.`title`";
break; break;
} case 'resolution':
$sql = "`video`.`resolution_x`";
break;
case 'length':
$sql = "`video`.`time`";
break;
case 'codec':
$sql = "`video`.`video_codec`";
break;
} // end switch on field
break; break;
default: default:
// Rien a faire // Rien a faire

View file

@ -1713,7 +1713,12 @@ class Update {
$sql = "ALTER TABLE `now_playing` ADD `object_type` VARCHAR ( 255 ) NOT NULL AFTER `object_id`"; $sql = "ALTER TABLE `now_playing` ADD `object_type` VARCHAR ( 255 ) NOT NULL AFTER `object_id`";
$db_results = Dba::write($sql); $db_results = Dba::write($sql);
$sql = "ALTER TABLE `video` ADD `addition_time` INT( 11 ) UNSIGNED NOT NULL AFTER `mime`";
$db_results = Dba::write($sql);
$sql = "ALTER TABLE `video` ADD `update_time` INT( 11 ) UNSIGNED NULL AFTER `addition_time`";
$db_results = Dba::write($sql);
//self::set_version('db_version','350008'); //self::set_version('db_version','350008');

View file

@ -33,10 +33,10 @@ $web_path = Config::get('web_path');
</colgroup> </colgroup>
<tr class="th-top"> <tr class="th-top">
<th class="cel_add"><?php echo _('Add'); ?></th> <th class="cel_add"><?php echo _('Add'); ?></th>
<th class="cel_title"><?php echo _('Title'); ?></th> <th class="cel_title"><?php echo Ajax::text('?page=browse&action=set_sort&type=video&sort=title',_('Title'),'sort_video_title'); ?></th>
<th class="cel_codec"><?php echo _('Codec'); ?></th> <th class="cel_codec"><?php echo Ajax::text('?page=browse&action=set_sort&type=video&sort=codec',_('Codec'),'sort_video_codec'); ?></th>
<th class="cel_resolution"><?php echo _('Resolution'); ?></th> <th class="cel_resolution"><?php echo Ajax::text('?page=browse&action=set_sort&type=video&sort=resolution',_('Resolution'),'sort_video_rez'); ?></th>
<th class="cel_length"><?php echo _('Length'); ?></th> <th class="cel_length"><?php echo Ajax::text('?page=browse&action=set_sort&type=video&sort=length',_('Length'),'sort_video_length'); ?></th>
<th class="cel_tags"><?php echo _('Tags'); ?></th> <th class="cel_tags"><?php echo _('Tags'); ?></th>
</tr> </tr>
<?php <?php