summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKarl 'vollmerk' Vollmer <vollmer@ampache.org>2009-02-10 03:49:24 +0000
committerKarl 'vollmerk' Vollmer <vollmer@ampache.org>2009-02-10 03:49:24 +0000
commitaddb6f957fd9fb06d2c90ba78bbd73e6f13e424f (patch)
treec0c44e5aedff216c6ad82a9cc043f871a11d7042
parent58900248ccdb00f5f6f591d4fe9cda3cd607be55 (diff)
downloadampache-addb6f957fd9fb06d2c90ba78bbd73e6f13e424f.tar.gz
ampache-addb6f957fd9fb06d2c90ba78bbd73e6f13e424f.tar.bz2
ampache-addb6f957fd9fb06d2c90ba78bbd73e6f13e424f.zip
broke the advanced random stuff, only ui in place for new stuff...
-rw-r--r--images/icon_thumb_down.pngbin601 -> 0 bytes
-rw-r--r--images/icon_thumb_up.pngbin619 -> 0 bytes
-rw-r--r--images/icon_tick.pngbin0 -> 537 bytes
-rw-r--r--lib/class/song.class.php23
-rw-r--r--random.php2
-rw-r--r--templates/show_democratic_playlist.inc.php6
-rw-r--r--templates/show_random.inc.php107
-rw-r--r--templates/show_random_rules.inc.php43
8 files changed, 109 insertions, 72 deletions
diff --git a/images/icon_thumb_down.png b/images/icon_thumb_down.png
deleted file mode 100644
index 3c832d4c..00000000
--- a/images/icon_thumb_down.png
+++ /dev/null
Binary files differ
diff --git a/images/icon_thumb_up.png b/images/icon_thumb_up.png
deleted file mode 100644
index 2bd16ccf..00000000
--- a/images/icon_thumb_up.png
+++ /dev/null
Binary files differ
diff --git a/images/icon_tick.png b/images/icon_tick.png
new file mode 100644
index 00000000..a9925a06
--- /dev/null
+++ b/images/icon_tick.png
Binary files differ
diff --git a/lib/class/song.class.php b/lib/class/song.class.php
index bfe1e628..2fc034bb 100644
--- a/lib/class/song.class.php
+++ b/lib/class/song.class.php
@@ -353,6 +353,7 @@ class Song extends database_object implements media {
return $array;
} // compare_song_information
+
/**
* update
@@ -735,6 +736,28 @@ class Song extends database_object implements media {
} // format_pattern
/**
+ * get_fields
+ * This returns all of the 'data' fields for this object, we need to filter out some that we don't
+ * want to present to a user, and add some that don't exist directly on the object but are related
+ */
+ public static function get_fields() {
+
+ $fields = get_class_vars('Song');
+
+ unset($fields['id'],$fields['_transcoded'],$fields['_fake'],$fields['cache_hit'],$fields['mime'],$fields['type']);
+
+ // Some additional fields
+ $fields['tag'] = true;
+ $fields['catalog'] = true;
+//FIXME: These are here to keep the ideas, don't want to have to worry about them for now
+// $fields['rating'] = true;
+// $fields['recently Played'] = true;
+
+ return $fields;
+
+ } // get_fields
+
+ /**
* get_from_path
* This returns all of the songs that exist under the specified path
*/
diff --git a/random.php b/random.php
index ef488b76..34ff7c26 100644
--- a/random.php
+++ b/random.php
@@ -36,6 +36,8 @@ switch ($_REQUEST['action']) {
case 'advanced':
default:
require_once Config::get('prefix') . '/templates/show_random.inc.php';
+ require_once Config::get('prefix') . '/templates/show_random_rules.inc.php';
+
break;
} // end switch
diff --git a/templates/show_democratic_playlist.inc.php b/templates/show_democratic_playlist.inc.php
index fe1113da..50fb5cdc 100644
--- a/templates/show_democratic_playlist.inc.php
+++ b/templates/show_democratic_playlist.inc.php
@@ -70,9 +70,9 @@ foreach($object_ids as $row_id=>$object_data) {
<tr class="<?php echo flip_class(); ?>">
<td class="cel_action">
<?php if ($democratic->has_vote($song->id)) { ?>
- <?php echo Ajax::button('?page=democratic&action=delete_vote&row_id=' . $row_id,'thumb_down',_('Remove Vote'),'remove_vote_' . $row_id); ?>
+ <?php echo Ajax::button('?page=democratic&action=delete_vote&row_id=' . $row_id,'delete',_('Remove Vote'),'remove_vote_' . $row_id); ?>
<?php } else { ?>
- <?php echo Ajax::button('?page=democratic&action=add_vote&object_id=' . $song->id . '&type=' . scrub_out($object_data['1']),'thumb_up',_('Add Vote'),'remove_vote_' . $row_id); ?>
+ <?php echo Ajax::button('?page=democratic&action=add_vote&object_id=' . $song->id . '&type=' . scrub_out($object_data['1']),'tick',_('Add Vote'),'remove_vote_' . $row_id); ?>
<?php } ?>
</td>
<td class="cel_votes"><?php echo scrub_out($democratic->get_vote($row_id)); ?></td>
@@ -82,7 +82,7 @@ foreach($object_ids as $row_id=>$object_data) {
<td class="cel_time"><?php echo $song->f_time; ?></td>
<?php if ($GLOBALS['user']->has_access(100)) { ?>
<td class="cel_admin">
- <?php echo Ajax::button('?page=democratic&action=delete&row_id=' . $row_id,'delete',_('Delete'),'delete_row_' . $row_id); ?>
+ <?php echo Ajax::button('?page=democratic&action=delete&row_id=' . $row_id,'disable',_('Delete'),'delete_row_' . $row_id); ?>
</td>
<?php } ?>
</tr>
diff --git a/templates/show_random.inc.php b/templates/show_random.inc.php
index 72094209..e0dc3dfe 100644
--- a/templates/show_random.inc.php
+++ b/templates/show_random.inc.php
@@ -19,91 +19,60 @@
*/
?>
-<?php show_box_top(_('Play Random Selection')); ?>
-<form id="random" method="post" enctype="multipart/form-data" action="<?php echo Config::get('web_path'); ?>/random.php?action=get_advanced">
-<table class="table-data" cellspacing="0" cellpadding="3">
+<?php show_box_top(_('Advanced Random Rules')); ?>
+<table class="tabledata" cellpadding="0" cellspacing="0">
+<colgroup>
+ <col id="col_field" />
+ <col id="col_operator" />
+ <col id="col_value" />
+</colgroup>
+<tr class="th-top">
+ <th class="col_field"><?php echo _('Field'); ?></th>
+ <th class="col_operator"><?php echo _('Operator'); ?></th>
+ <th class="col_value"><?php echo _('Value'); ?></th>
+</tr>
<tr>
- <td><?php echo _('Item count'); ?></td>
+ <td valign="top">
+ <select name="field">
+ <?php
+ $fields = Song::get_fields();
+ foreach ($fields as $key=>$value) {
+ $name = ucfirst(str_replace('_',' ',$key));
+ ?>
+ <option name="<?php echo scrub_out($key); ?>"><?php echo scrub_out($name); ?></option>
+ <?php } ?>
+ </select>
+ </td>
<td>
- <select name="random">
- <option value="1">1</option>
- <option value="5" selected="selected">5</option>
- <option value="10">10</option>
- <option value="20">20</option>
- <option value="30">30</option>
- <option value="50">50</option>
- <option value="100">100</option>
- <option value="500">500</option>
- <option value="1000">1000</option>
- <option value="-1"><?php echo _('All'); ?></option>
+ <select name="operator">
+ <option value="=">=</option>
+ <option value="!=">!=</option>
+ <option value=">">&gt;</option>
+ <option value=">=">&gt;=</option>
+ <option value="<">&lt;</option>
+ <option value="<=">&lt;=</option>
+ <option value="LIKE"><?php echo _('Like'); ?></option>
</select>
</td>
- <td rowspan="5" valign="top"><?php echo _('Tags'); ?></td>
- <td rowspan="5">
+ <td valign="top">
+ <input type="textbox" name="value" />
</td>
</tr>
<tr>
- <td><?php echo _('Length'); ?></td>
<td>
- <select name="length">
- <option value="0"><?php echo _('Unlimited'); ?></option>
- <option value="15"><?php printf(ngettext('%d minute','%d minutes',15), "15"); ?></option>
- <option value="30"><?php printf(ngettext('%d minute','%d minutes',30), "30"); ?></option>
- <option value="60"><?php printf(ngettext('%d hour','%d hours',1), "1"); ?></option>
- <option value="120"><?php printf(ngettext('%d hour','%d hours',2), "2"); ?></option>
- <option value="240"><?php printf(ngettext('%d hour','%d hours',4), "4"); ?></option>
- <option value="480"><?php printf(ngettext('%d hour','%d hours',8), "8"); ?></option>
- <option value="960"><?php printf(ngettext('%d hour','%d hours',16), "16"); ?></option>
- </select>
+ <?php echo Ajax::button('?page=random&action=add_rule','add',_('Add Rule'),'add_random_rule'); ?><?php echo _('Add Rule'); ?>
</td>
-</tr>
-<tr>
- <td><?php echo _('Type'); ?></td>
<td>
- <select name="random_type">
- <option value="normal"><?php echo _('Standard'); ?></option>
- <option value="unplayed"><?php echo _('Less Played'); ?></option>
- <option value="full_album"><?php echo _('Full Albums'); ?></option>
- <option value="full_artist"><?php echo _('Full Artist'); ?></option>
- <?php if (Config::get('ratings')) { ?>
- <option value="high_rating"><?php echo _('Highest Rated'); ?></option>
- <?php } ?>
- </select>
+ <?php echo Ajax::button('?page=random&action=save_rules','download',_('Save Rules'),'save_random_rules'); ?><?php echo _('Save Rules As...'); ?>
</td>
-</tr>
-<tr>
- <td nowrap="nowrap"><?php echo _('From catalog'); ?></td>
<td>
- <?php show_catalog_select('catalog',''); ?>
+ <?php echo Ajax::button('?page=random&action=load_rules','cog',_('Load Saved Rules'),'load_random_rules'); ?><?php echo _('Load Saved Rules'); ?>
</td>
</tr>
<tr>
- <td><?php echo _('Size Limit'); ?></td>
- <td>
- <select name="size_limit">
- <option value="0"><?php echo _('Unlimited'); ?></option>
- <option value="64">64MB</option>
- <option value="128">128MB</option>
- <option value="256">256MB</option>
- <option value="512">512MB</option>
- <option value="1024">1024MB</option>
- </select>
+ <td colspan="3">
+ <div id="rule_status"></div>
</td>
</tr>
</table>
-<div class="formValidation">
- <input type="submit" value="<?php echo _('Enqueue'); ?>" />
-</div>
-</form>
<?php show_box_bottom(); ?>
-<div id="browse">
-<?php
- if (is_array($object_ids)) {
- Browse::reset_filters();
- Browse::set_type('song');
- Browse::save_objects($object_ids);
- Browse::show_objects();
- echo Ajax::observe('window','load',Ajax::action('?action=refresh_rightbar','playlist_refresh_load'));
- }
-?>
-</div>
diff --git a/templates/show_random_rules.inc.php b/templates/show_random_rules.inc.php
new file mode 100644
index 00000000..4e9d30c3
--- /dev/null
+++ b/templates/show_random_rules.inc.php
@@ -0,0 +1,43 @@
+<?php
+/*
+
+ Copyright (c) Ampache.org
+ All rights reserved.
+
+ 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.
+
+*/
+?>
+<?php show_box_top(_('Rules')); ?>
+<table class="tabledata" cellpadding="0" cellspacing="0">
+<colgroup>
+ <col id="col_field" />
+ <col id="col_operator" />
+ <col id="col_value" />
+ <col id="col_action" />
+</colgroup>
+<tr class="th-top">
+ <th class="col_field"><?php echo _('Field'); ?></th>
+ <th class="col_operator"><?php echo _('Operator'); ?></th>
+ <th class="col_value"><?php echo _('Value'); ?></th>
+ <th class="col_action"><?php echo _('Action'); ?></th>
+</tr>
+<tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+</tr>
+</table>
+<?php show_box_bottom(); ?>