diff options
-rw-r--r-- | democratic.php | 26 | ||||
-rwxr-xr-x | docs/CHANGELOG | 2 | ||||
-rw-r--r-- | lib/class/democratic.class.php | 32 | ||||
-rw-r--r-- | server/democratic.ajax.php | 20 | ||||
-rw-r--r-- | themes/classic/images/blankalbum.jpg | bin | 0 -> 6943 bytes | |||
-rw-r--r-- | themes/greysme/images/blankalbum.jpg | bin | 0 -> 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 Binary files differnew file mode 100644 index 00000000..33e89a0d --- /dev/null +++ b/themes/classic/images/blankalbum.jpg diff --git a/themes/greysme/images/blankalbum.jpg b/themes/greysme/images/blankalbum.jpg Binary files differnew file mode 100644 index 00000000..33e89a0d --- /dev/null +++ b/themes/greysme/images/blankalbum.jpg |