summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--images/icon_server_lightning.pngbin0 -> 729 bytes
-rw-r--r--lib/class/localplay.class.php12
-rw-r--r--localplay.php57
-rw-r--r--templates/show_localplay_edit_instance.inc.php37
-rw-r--r--templates/show_localplay_instances.inc.php3
-rw-r--r--templates/sidebar_localplay.inc.php1
6 files changed, 75 insertions, 35 deletions
diff --git a/images/icon_server_lightning.png b/images/icon_server_lightning.png
new file mode 100644
index 00000000..b0f4e46c
--- /dev/null
+++ b/images/icon_server_lightning.png
Binary files differ
diff --git a/lib/class/localplay.class.php b/lib/class/localplay.class.php
index 15f945f2..43d4bca1 100644
--- a/lib/class/localplay.class.php
+++ b/lib/class/localplay.class.php
@@ -540,6 +540,18 @@ class Localplay {
} // get_instance
/**
+ * update_instance
+ * This updates the specified instance with a named array of data (_POST most likely)
+ */
+ public function update_instance($uid,$data) {
+
+ $data = $this->_player->update_instance($uid);
+
+ return $data;
+
+ } // update_instance
+
+ /**
* add_instance
* This adds a new instance for the current controller type
*/
diff --git a/localplay.php b/localplay.php
index d2fc1217..989f75e9 100644
--- a/localplay.php
+++ b/localplay.php
@@ -32,7 +32,7 @@ if (!Config::get('allow_localplay_playback') || !$GLOBALS['user']->has_access('2
switch ($_REQUEST['action']) {
case 'show_add_instance':
// This requires 50 or better
- if (!$GLOBALS['user']->has_access('50')) { access_denied(); break; }
+ if (!Access::check('localplay','75')) { access_denied(); break; }
// Get the current localplay fields
$localplay = new Localplay($GLOBALS['user']->prefs['localplay_controller']);
@@ -41,20 +41,42 @@ switch ($_REQUEST['action']) {
break;
case 'add_instance':
// This requires 50 or better!
- if (!$GLOBALS['user']->has_access('50')) { access_denied(); break; }
+ if (!Access::check('localplay','75')) { access_denied(); break; }
// Setup the object
$localplay = new Localplay($GLOBALS['user']->prefs['localplay_controller']);
$localplay->add_instance($_POST);
break;
+ case 'update_instance':
+ // Make sure they gots them rights
+ if (!Access::check('localplay','75')) { access_denied(); break; }
+ $localplay = new Localplay($GLOBALS['user']->prefs['localplay_controller']);
+ $localplay->update_instance($_REQUEST['instance'],$_POST);
+ header("Location:" . Config::get('web_path') . "/localplay.php?action=show_instances");
+ break;
+ case 'edit_instance':
+ // Check to make sure they've got the access
+ if (!Access::check('localplay','75')) { access_denied(); break; }
+ $localplay = new Localplay($GLOBALS['user']->prefs['localplay_controller']);
+ $instance = $localplay->get_instance($_REQUEST['instance']);
+ $fields = $localplay->get_instance_fields();
+ require_once Config::get('prefix') . '/templates/show_localplay_edit_instance.inc.php';
+ break;
+ case 'test_instance':
+ // Check to make sure they've got the rights
+ if (!Access::check('localplay','75')) { access_denied(); break; }
+ break;
case 'show_instances':
// First build the localplay object and then get the instances
+ if (!Access::check('localplay','5')) { access_denied(); break; }
$localplay = new Localplay($GLOBALS['user']->prefs['localplay_controller']);
$instances = $localplay->get_instances();
$fields = $localplay->get_instance_fields();
require_once Config::get('prefix') . '/templates/show_localplay_instances.inc.php';
break;
+ default:
case 'show_playlist':
+ if (!Access::check('localplay','5')) { access_denied(); break; }
// Init and then connect to our localplay instance
$localplay = new Localplay($GLOBALS['user']->prefs['localplay_controller']);
$localplay->connect();
@@ -64,37 +86,6 @@ switch ($_REQUEST['action']) {
require_once Config::get('prefix') . '/templates/show_localplay_status.inc.php';
require_once Config::get('prefix') . '/templates/show_localplay_playlist.inc.php';
break;
- case 'delete_song':
- $song_id = scrub_in($_REQUEST['song_id']);
- $songs = array($song_id);
- $localplay = init_localplay();
- $localplay->delete($songs);
- $url = $web_path . '/localplay.php';
- $title = _('Song(s) Removed from Playlist');
- $body = '';
- show_confirmation($title,$body,$url);
- break;
- case 'delete_all':
- $localplay = init_localplay();
- $localplay->delete_all();
- $url = $web_path . '/localplay.php';
- $title = _('Song(s) Removed from Playlist');
- $body = '';
- show_confirmation($title,$body,$url);
- break;
- case 'repeat':
- $localplay = init_localplay();
- $localplay->repeat(make_bool($_REQUEST['value']));
- require_once (conf('prefix') . '/templates/show_localplay.inc.php');
- break;
- case 'random':
- $localplay = init_localplay();
- $localplay->random(make_bool($_REQUEST['value']));
- require_once (conf('prefix') . '/templates/show_localplay.inc.php');
- break;
- default:
- // Rien a faire?
- break;
} // end switch action
diff --git a/templates/show_localplay_edit_instance.inc.php b/templates/show_localplay_edit_instance.inc.php
new file mode 100644
index 00000000..b6060671
--- /dev/null
+++ b/templates/show_localplay_edit_instance.inc.php
@@ -0,0 +1,37 @@
+<?php
+/*
+
+ Copyright (c) 2001 - 2007 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
+ as published by the Free Software Foundation; version 2
+ of the License.
+
+ 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(_('Edit Localplay Instance')); ?>
+<form method="post" action="<?php echo Config::get('web_path'); ?>/localplay.php?action=update_instance&amp;instance=<?php echo intval($_REQUEST['instance']); ?>">
+<table cellpadding="3" cellspacing="0" class="tabledata">
+<?php foreach ($fields as $key=>$field) { ?>
+<tr>
+ <td><?php echo $field['description']; ?></td>
+ <td><input type="textbox" name="<?php echo $key; ?>" value="<?php echo scrub_out($instance->$key); ?>" /></td>
+</tr>
+<?php } ?>
+</table>
+ <div class="formValidation">
+ <input type="submit" value="<?php echo _('Update Instance'); ?>" />
+ </div>
+</form>
+<?php show_box_bottom(); ?>
diff --git a/templates/show_localplay_instances.inc.php b/templates/show_localplay_instances.inc.php
index 4c519392..ef9b84c1 100644
--- a/templates/show_localplay_instances.inc.php
+++ b/templates/show_localplay_instances.inc.php
@@ -36,8 +36,9 @@
<td><?php echo $instance[$key]; ?></td>
<?php } ?>
<td>
+ <a href="<?php echo Config::get('web_path'); ?>/localplay.php?action=test_instance&instance=<?php echo $uid; ?>"><?php echo get_user_icon('server_lightning',_('Check Instance')); ?></a>
+ <a href="<?php echo Config::get('web_path'); ?>/localplay.php?action=edit_instance&instance=<?php echo $uid; ?>"><?php echo get_user_icon('edit',_('Edit Instance')); ?></a>
<?php echo Ajax::button('?page=localplay&action=delete_instance&instance=' . $uid,'delete',_('Delete'),'delete_instance_' . $uid); ?>
-
</td>
</tr>
<?php } ?>
diff --git a/templates/sidebar_localplay.inc.php b/templates/sidebar_localplay.inc.php
index 01c198ee..92371b16 100644
--- a/templates/sidebar_localplay.inc.php
+++ b/templates/sidebar_localplay.inc.php
@@ -29,7 +29,6 @@
if ($uid == $current_instance) {
$class = ' class="active_instance"';
}
- i
?>
<li id="sb_localplay_instances_<?php echo $uid; ?>"<?php echo $class; ?>><?php echo Ajax::text('?page=localplay&action=set_instance&instance=' . $uid,$name,'localplay_instance_' . $uid); ?></li>
<?php } ?>