summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKarl 'vollmerk' Vollmer <vollmer@ampache.org>2009-03-15 22:46:28 +0000
committerKarl 'vollmerk' Vollmer <vollmer@ampache.org>2009-03-15 22:46:28 +0000
commit1a475806e052e5c7d7115887002f98a3c2be500f (patch)
tree307290b1b1161ae72cb300469ca273a81d764214
parent4979ca79f67ae1328c14b186617b8cca5ce5e364 (diff)
downloadampache-1a475806e052e5c7d7115887002f98a3c2be500f.tar.gz
ampache-1a475806e052e5c7d7115887002f98a3c2be500f.tar.bz2
ampache-1a475806e052e5c7d7115887002f98a3c2be500f.zip
fix democratic play interface feedback issues and make the wizard actually work
-rw-r--r--democratic.php26
-rwxr-xr-xdocs/CHANGELOG2
-rw-r--r--lib/class/democratic.class.php32
-rw-r--r--server/democratic.ajax.php20
-rw-r--r--themes/classic/images/blankalbum.jpgbin0 -> 6943 bytes
-rw-r--r--themes/greysme/images/blankalbum.jpgbin0 -> 6943 bytes
6 files changed, 72 insertions, 8 deletions
diff --git a/democratic.php b/democratic.php
index 6bee39d5..eda7bf63 100644
--- a/democratic.php
+++ b/democratic.php
@@ -63,10 +63,25 @@ switch ($_REQUEST['action']) {
access_denied();
break;
}
+
+ $democratic = Democratic::get_current_playlist();
- // Create the playlist
- Democratic::create($_POST);
- header("Location: " . Config::get('web_path') . "/democratic.php?action=manage_playlists");
+ // If we don't have anything currently create something
+ if (!$democratic->id) {
+ // Create the playlist
+ Democratic::create($_POST);
+ $democratic = Democratic::get_current_playlist();
+ }
+ else {
+ $democratic->update($_POST);
+ }
+
+ // Now check for additional things we might have to do
+ if ($_POST['force_democratic']) {
+ Democratic::set_user_preferences();
+ }
+
+ header("Location: " . Config::get('web_path') . "/democratic.php?action=show");
break;
case 'manage_playlists':
if (!Access::check('interface','75')) {
@@ -82,6 +97,11 @@ switch ($_REQUEST['action']) {
case 'show_playlist':
default:
$democratic = Democratic::get_current_playlist();
+ if (!$democratic->id) {
+ require_once Config::get('prefix') . '/templates/show_democratic.inc.php';
+ break;
+ }
+
$democratic->set_parent();
$democratic->format();
require_once Config::get('prefix') . '/templates/show_democratic.inc.php';
diff --git a/docs/CHANGELOG b/docs/CHANGELOG
index 91b90ef7..8f392194 100755
--- a/docs/CHANGELOG
+++ b/docs/CHANGELOG
@@ -4,6 +4,8 @@
--------------------------------------------------------------------------
v.3.5-Alpha3
+ - Added Configuration 'Wizard' for democratic play
+ - Fixed interface feedback issues with democratic play actions
- Add extension to image urls for the API will add to others as
needed due to additional query requirement. Needed to fix
some DLNA devices
diff --git a/lib/class/democratic.class.php b/lib/class/democratic.class.php
index b41e1524..4e4a9011 100644
--- a/lib/class/democratic.class.php
+++ b/lib/class/democratic.class.php
@@ -88,6 +88,7 @@ class Democratic extends tmpPlaylist {
return false;
} // is_enabled
+
/**
* set_parent
* This returns the tmpPlaylist for this democratic play instance
@@ -107,6 +108,30 @@ class Democratic extends tmpPlaylist {
} // set_parent
/**
+ * set_user_preferences
+ * This sets up a (or all) user(s) to use democratic play. This sets their play method
+ * and playlist method (clear on send) If no user is passed it does it for everyone and
+ * also locks down the ability to change to admins only
+ */
+ public static function set_user_preferences($user=NULL) {
+
+ //FIXME: Code in single user stuff
+
+ $preference_id = Preference::id_from_name('play_type');
+ Preference::update_level($preference_id,'75');
+ Preference::update_all($preference_id,'democratic');
+
+ $allow_demo = Preference::id_from_name('allow_democratic_playback');
+ Preference::update_all($allow_demo,'1');
+
+ $play_method = Preference::id_from_name('playlist_method');
+ Preference::update_all($play_method,'clear');
+
+ return true;
+
+ } // set_user_preferences
+
+ /**
* format
* This makes the objects variables all purrty so that they can be displayed
*/
@@ -492,8 +517,15 @@ class Democratic extends tmpPlaylist {
*/
public function update($data) {
+ $name = Dba::escape($data['name']);
+ $base = Dba::escape($data['democratic']);
+ $cool = Dba::escape($data['cooldown']);
+ $id = Dba::escape($this->id);
+ $sql = "UPDATE `democratic` SET `name`='$name', `base_playlist`='$base',`cooldown`='$cool' WHERE `id`='$id'";
+ $db_results = Dba::write($sql);
+ return true;
} // update
diff --git a/server/democratic.ajax.php b/server/democratic.ajax.php
index aa21995d..04306999 100644
--- a/server/democratic.ajax.php
+++ b/server/democratic.ajax.php
@@ -31,9 +31,14 @@ switch ($_REQUEST['action']) {
$democratic->remove_vote($_REQUEST['row_id']);
ob_start();
- $objects = $democratic->get_items();
+ $object_ids = $democratic->get_items();
+ Browse::set_type('democratic');
+ Browse::reset();
+ Browse::set_static_content(1);
+ Browse::show_objects($object_ids);
+
require_once Config::get('prefix') . '/templates/show_democratic_playlist.inc.php';
- $results['democratic_playlist'] = ob_get_contents();
+ $results['browse_content'] = ob_get_contents();
ob_end_clean();
break;
@@ -44,9 +49,14 @@ switch ($_REQUEST['action']) {
$democratic->add_vote($_REQUEST['object_id'],$_REQUEST['type']);
ob_start();
- $objects = $democratic->get_items();
+ $object_ids = $democratic->get_items();
+ Browse::set_type('democratic');
+ Browse::reset();
+ Browse::set_static_content(1);
+ Browse::show_objects($object_ids);
+
require_once Config::get('prefix') . '/templates/show_democratic_playlist.inc.php';
- $results['democratic_playlist'] = ob_get_contents();
+ $results['browse_content'] = ob_get_contents();
ob_end_clean();
break;
@@ -65,7 +75,7 @@ switch ($_REQUEST['action']) {
Browse::reset();
Browse::set_static_content(1);
Browse::show_objects($object_ids);
- $results['democratic_playlist'] = ob_get_contents();
+ $results['browse_content'] = ob_get_contents();
ob_end_clean();
break;
diff --git a/themes/classic/images/blankalbum.jpg b/themes/classic/images/blankalbum.jpg
new file mode 100644
index 00000000..33e89a0d
--- /dev/null
+++ b/themes/classic/images/blankalbum.jpg
Binary files differ
diff --git a/themes/greysme/images/blankalbum.jpg b/themes/greysme/images/blankalbum.jpg
new file mode 100644
index 00000000..33e89a0d
--- /dev/null
+++ b/themes/greysme/images/blankalbum.jpg
Binary files differ