diff --git a/livesupport/doc/gettingStarted.html b/livesupport/doc/gettingStarted.html
index eaa404404..886305756 100644
--- a/livesupport/doc/gettingStarted.html
+++ b/livesupport/doc/gettingStarted.html
@@ -3,7 +3,7 @@
Getting started with the LiveSupport development environment
-
+
Preface
@@ -12,8 +12,8 @@ project, Copyright © 2004 Media
Development Loan Fund, under the GNU GPL.
- - Author: $Author: tomas $
- - Version: $Revision: 1.9 $
+ - Author: $Author: sebastian $
+ - Version: $Revision: 1.10 $
- Location: $Source:
/home/cvs/livesupport/doc/gettingStarted.html,v $
@@ -71,7 +71,8 @@ running on the development computer
PHP apache module
PostgreSQL support in PHP
PEAR
- modules: DB, XML_Util, XML_Beautifier, HTML_Common, HTML_QuickForm
+ modules: DB, XML_Util, XML_Beautifier, HTML_Common, HTML_QuickForm,
+ Calendar (available in Beta Version 0.5.2, so use pear install Calendar-0.5.2
)
(may be checked: pear list
and installed by e.g.:
pear install DB
)
diff --git a/livesupport/modules/htmlUI/var/ui_xmlrpcwrapper.class.php b/livesupport/modules/htmlUI/var/ui_xmlrpcwrapper.class.php
deleted file mode 100755
index 70de0c9b6..000000000
--- a/livesupport/modules/htmlUI/var/ui_xmlrpcwrapper.class.php
+++ /dev/null
@@ -1,489 +0,0 @@
-
- * m full method name (include optional prefix)
- * p array of input parameter names
- * r array of result element names (not used there at present)
- * e array of error codes/messages (not used there at present)
- *
- */
-$mdefs = array(
- "AddAudioClipToPlaylistMethod" => array(
- 'm'=>'AddAudioClipToPlaylistMethod',
- 'p'=>array('sessionId'/*string*/, 'playlistId'/*string*/, 'audioClipId'/*string*/, 'relativeOffset'/*int*/),
- 'r'=>array('playlistElementId'/*string*/),
- 'e'=>array(
- '301'=>'invalid argument format',
- '302'=>'missing playlist ID argument',
- '303'=>'missing audio clip ID argument',
- '304'=>'missing relative offset argument',
- '305'=>'playlist not found',
- '306'=>'playlist has not been opened for editing',
- '307'=>'audio clip does not exist',
- '308'=>'two audio clips at the same relative offset',
- '320'=>'missing session ID argument',
- )
- ),
- "CreatePlaylistMethod" => array(
- 'm'=>'CreatePlaylistMethod',
- 'p'=>array('sessionId'/*string*/),
- 'r'=>array('playlist'/*string*/),
- 'e'=>array(
- '201'=>'invalid argument format',
- '202'=>'could not create playlist',
- '220'=>'missing session ID argument',
- )
- ),
- "DeletePlaylistMethod" => array(
- 'm'=>'DeletePlaylistMethod',
- 'p'=>array('sessionId'/*string*/, 'playlistId'/*string*/),
- 'r'=>array(),
- 'e'=>array(
- '901'=>'invalid argument format',
- '902'=>'missing playlist ID argument',
- '903'=>'playlist not found',
- '904'=>'playlist is locked',
- '905'=>'playlist could not be deleted',
- '920'=>'missing session ID argument',
- )
- ),
- "DisplayAudioClipMethod" => array(
- 'm'=>'DisplayAudioClipMethod',
- 'p'=>array('sessionId'/*string*/, 'audioClipId'/*string*/),
- 'r'=>array('audioClip'/*string*/),
- 'e'=>array(
- '601'=>'invalid argument format',
- '602'=>'argument is not an audio clip ID',
- '603'=>'audio clip not found',
- '620'=>'missing session ID argument',
- )
- ),
- "DisplayAudioClipsMethod" => array(
- 'm'=>'DisplayAudioClipsMethod',
- 'p'=>array('sessionId'/*string*/),
- 'r'=>array(array('audioClip'/*string*/)),
- 'e'=>array(
- '1801'=>'invalid argument format',
- '1802'=>'XML-RPC error',
- '1820'=>'missing session ID argument',
- )
- ),
- "DisplayPlaylistMethod" => array(
- 'm'=>'DisplayPlaylistMethod',
- 'p'=>array('sessionId'/*string*/, 'playlistId'/*string*/),
- 'r'=>array('playlist'/*string*/),
- 'e'=>array(
- '1001'=>'invalid argument format',
- '1002'=>'argument is not a playlist ID',
- '1003'=>'playlist not found',
- '1020'=>'missing session ID argument',
- )
- ),
- "DisplayPlaylistsMethod" => array(
- 'm'=>'DisplayPlaylistsMethod',
- 'p'=>array('sessionId'/*string*/),
- 'r'=>array(array('playlist'/*string*/)),
- 'e'=>array(
- '1701'=>'invalid argument format',
- '1702'=>'XML-RPC error',
- '1720'=>'missing session ID argument',
- )
- ),
- "DisplayScheduleMethod" => array(
- 'm'=>'DisplayScheduleMethod',
- 'p'=>array('sessionId'/*string*/, 'from'/*datetime*/, 'to'/*datetime*/),
- 'r'=>array(array('id'/*int*/, 'playlistId'/*string*/, 'start'/*datetime*/, 'end'/*datetime*/)),
- 'e'=>array(
- '1101'=>'invalid argument format',
- '1102'=>"missing or invalid 'from' argument",
- '1103'=>"missing or invalid 'to' argument",
- '1120'=>'missing session ID argument',
- )
- ),
- "GeneratePlayReportMethod" => array(
- 'm'=>'GeneratePlayReportMethod',
- 'p'=>array('sessionId'/*string*/, 'from'/*datetime*/, 'to'/*datetime*/),
- 'r'=>array(array('audioClipId'/*string*/, 'timestamp'/*datetime*/)),
- 'e'=>array(
- '1501'=>'invalid argument format',
- '1502'=>"missing or invalid 'from' argument",
- '1503'=>"missing or invalid 'to' argument",
- '1520'=>'missing session ID argument',
- )
- ),
- "GetSchedulerTimeMethod" => array(
- 'm'=>'GetSchedulerTimeMethod',
- 'p'=>array(),
- 'r'=>array('schedulerTime'/*datetime*/),
- 'e'=>array(
-)
- ),
- "GetVersionMethod" => array(
- 'm'=>'GetVersionMethod',
- 'p'=>array(),
- 'r'=>array('version'/*string*/),
- 'e'=>array()
- ),
- "LoginMethod" => array(
- 'm'=>'LoginMethod',
- 'p'=>array('login'/*string*/, 'password'/*string*/),
- 'r'=>array('sessionId'/*string*/),
- 'e'=>array(
- '2001'=>'invalid argument format',
- '2002'=>'missing login argument',
- '2003'=>'missing password argument',
- '2004'=>'the authentication server reported an error',
- )
- ),
- "LogoutMethod" => array(
- 'm'=>'LogoutMethod',
- 'p'=>array('sessionId'/*string*/),
- 'r'=>array(),
- 'e'=>array(
- '2101'=>'invalid argument format',
- '2120'=>'missing session ID argument',
- '2104'=>'the authentication server reported an error',
- )
- ),
- "OpenPlaylistForEditingMethod" => array(
- 'm'=>'OpenPlaylistForEditingMethod',
- 'p'=>array('sessionId'/*string*/, 'playlistId'/*string*/),
- 'r'=>array('playlist'/*string*/),
- 'e'=>array(
- '101'=>'invalid argument format',
- '102'=>'argument is not a playlist ID',
- '104'=>'could not open playlist for editing',
- '120'=>'missing session ID argument',
- )
- ),
- "RemoveAudioClipFromPlaylistMethod" => array(
- 'm'=>'RemoveAudioClipFromPlaylistMethod',
- 'p'=>array('sessionId'/*string*/, 'playlistId'/*string*/, 'playlistElementId'/*string*/),
- 'r'=>array(),
- 'e'=>array(
- '401'=>'invalid argument format',
- '402'=>'missing playlist ID argument',
- '403'=>'missing relative offset argument',
- '404'=>'playlist does not exist',
- '405'=>'playlist has not been opened for editing',
- '406'=>'no audio clip at the specified relative offset',
- '420'=>'missing session ID argument',
- )
- ),
- "RemoveFromScheduleMethod" => array(
- 'm'=>'RemoveFromScheduleMethod',
- 'p'=>array('sessionId'/*string*/, 'scheduleEntryId'/*string*/),
- 'r'=>array(),
- 'e'=>array(
- '1201'=>'invalid argument format',
- '1202'=>'missing schedule entry ID argument',
- '1203'=>'schedule entry not found',
- '1220'=>'missing session ID argument',
- )
- ),
- "RescheduleMethod" => array(
- 'm'=>'RescheduleMethod',
- 'p'=>array('sessionId'/*string*/, 'scheduleEntryId'/*string*/, 'playtime'/*datetime*/),
- 'r'=>array(),
- 'e'=>array(
- '1301'=>'invalid argument format',
- '1302'=>'missing schedule entry ID argument',
- '1303'=>'missing playtime argument',
- '1304'=>'schedule entry not found',
- '1305'=>'could not reschedule entry',
- '1320'=>'missing session ID argument',
- )
- ),
- "ResetStorageMethod" => array(
- 'm'=>'ResetStorageMethod',
- 'p'=>array(),
- 'r'=>array(),
- 'e'=>array('3001'=>'storage client reported an error'),
- ),
- "RevertEditedPlaylistMethod" => array(
- 'm'=>'RevertEditedPlaylistMethod',
- 'p'=>array('sessionId'/*string*/, 'playlistId'/*string*/),
- 'r'=>array(),
- 'e'=>array(
- '801'=>'invalid argument format',
- '802'=>'argument is not a playlist ID',
- '803'=>'playlist not found',
- '804'=>'could not revert playlist',
- '820'=>'missing session ID argument',
- )
- ),
- "SavePlaylistMethod" => array(
- 'm'=>'SavePlaylistMethod',
- 'p'=>array('sessionId'/*string*/, 'playlistId'/*string*/),
- 'r'=>array(),
- 'e'=>array(
- '701'=>'invalid argument format',
- '702'=>'argument is not a playlist ID',
- '703'=>'playlist not found',
- '705'=>'could not save playlist',
- '720'=>'missing session ID argument',
- )
- ),
- "UpdateFadeInFadeOutMethod" => array(
- 'm'=>'UpdateFadeInFadeOutMethod',
- 'p'=>array('sessionId'/*string*/, 'playlistId'/*string*/, 'playlistElementId'/*string*/, 'fadeIn'/*int*/, 'fadeOut'/*int*/),
- 'r'=>array(),
- 'e'=>array(
- '1601'=>'invalid argument format',
- '1602'=>'missing playlist ID argument',
- '1603'=>'missing playlist element ID argument',
- '1604'=>'missing fade in argument',
- '1605'=>'missing fade out argument',
- '1606'=>'playlist does not exist',
- '1607'=>'playlist has not been opened for editing',
- '1608'=>'error executing setFadeInfo() method',
- '1620'=>'missing session ID argument',
- )
- ),
- "UploadPlaylistMethod" => array(
- 'm'=>'UploadPlaylistMethod',
- 'p'=>array('sessionId'/*string*/, 'playlistId'/*string*/, 'playtime'/*datetime*/),
- 'r'=>array('scheduleEntryId'/*string*/),
- 'e'=>array(
- '1401'=>'invalid argument format',
- '1402'=>'missing playlist ID argument',
- '1403'=>'missing playtime argument',
- '1404'=>'playlist not found',
- '1405'=>'timeframe not available',
- '1406'=>'could not schedule playlist',
- '1420'=>'missing session ID argument',
- )
- ),
- "ValidatePlaylistMethod" => array(
- 'm'=>'ValidatePlaylistMethod',
- 'p'=>array('sessionId'/*string*/, 'playlistId'/*string*/),
- 'r'=>array('valid'/*bool*/),
- 'e'=>array(
- '501'=>'invalid argument format',
- '502'=>'missing playlist ID argument',
- '503'=>'playlist does not exist',
- '504'=>'playlist has not been opened for editing',
- '520'=>'missing session ID argument',
- )
- ),
- "LoginGB" => array(
- 'm'=>'locstor.login',
- 'p'=>array('login'/*string*/, 'pass'/*string*/),
- 'r'=>array('sessid'/*string*/),
- 'e'=>array(
- '2001'=>'invalid argument format',
- '2002'=>'missing login argument',
- '2003'=>'missing password argument',
- '2004'=>'the authentication server reported an error',
- )
- ),
- "LogoutGB" => array(
- 'm'=>'locstor.logout',
- 'p'=>array('sessid'/*string*/),
- 'r'=>array('status'/*boolean*/),
- 'e'=>array(
- '2001'=>'invalid argument format',
- '2002'=>'missing login argument',
- '2003'=>'missing password argument',
- '2004'=>'the authentication server reported an error',
- )
- ),
-);
-
-/* ======================================================== class definitions */
-
-class SchedulerPhpClient{
- /**
- * Databases object reference
- */
- var $dbc = NULL;
- /**
- * Array with methods description
- */
- var $mdefs = array();
- /**
- * Confiduration array from ../conf.php
- */
- var $config = array();
- /**
- * XMLRPC client object reference
- */
- var $client = NULL;
- /**
- * Verbosity flag
- */
- var $verbose = FALSE;
- /**
- * XMLRPC debug flag
- */
- var $debug = 0;
- /**
- * Constructor - pelase DON'T CALL IT, use factory method instead
- *
- * @param dbc object, database object reference
- * @param mdefs array, hash array with methods description
- * @param config array, hash array with configuration
- * @param debug int, XMLRPC debug flag
- * @param verbose boolean, verbosity flag
- * @return this
- */
- function SchedulerPhpClient(
- &$dbc, $mdefs, $config, $debug=0, $verbose=FALSE)
- {
- $this->dbc = $dbc;
- $this->mdefs = $mdefs;
- $this->config = $config;
- $this->debug = $debug;
- $this->verbose = $verbose;
- $confPrefix = "scheduler";
- // $confPrefix = "storage";
- $serverPath =
- "http://{$config["{$confPrefix}UrlHost"]}:{$config["{$confPrefix}UrlPort"]}".
- "{$config["{$confPrefix}UrlPath"]}/{$config["{$confPrefix}XMLRPC"]}";
- #$serverPath = "http://localhost:80/livesupportStorageServerCVS/xmlrpc/xrLocStor.php";
- if($this->verbose) echo "serverPath: $serverPath\n";
- $url = parse_url($serverPath);
- $this->client = new XML_RPC_Client($url['path'], $url['host']);
- }
-
- /**
- * Factory, create object instance
- *
- * In fact it doesn't create instance of SchedulerPhpClient, but
- * dynamically extend this class with set of methods based on $mdefs array
- * (using eval function) and instantiate resulting class
- * SchedulerPhpClientCore instead.
- * Each new method in this subclass accepts parameters according to $mdefs
- * array, call wrapper callMethod(methodname, parameters) and return its
- * result.
- *
- * @param dbc object, database object reference
- * @param mdefs array, hash array with methods description
- * @param config array, hash array with configuration
- * @param debug int, XMLRPC debug flag
- * @param verbose boolean, verbosity flag
- * @return object, created object instance
- */
- function &factory(&$dbc, $mdefs, $config, $debug=0, $verbose=FALSE){
- $f = '';
- foreach($mdefs as $fn=>$farr){
- $f .=
- ' function '.$fn.'(){'."\n".
- ' $pars = func_get_args();'."\n".
- ' $r = $this->callMethod("'.$fn.'", $pars);'."\n".
- ' return $r;'."\n".
- ' }'."\n";
- }
- $e =
- "class SchedulerPhpClientCore extends SchedulerPhpClient{\n".
- "$f\n".
- "}\n";
-# echo $e;
- if(FALSE === eval($e)) return $dbc->raiseError("Eval failed");
- $spc =& new SchedulerPhpClientCore(
- $dbc, $mdefs, $config, $debug, $verbose);
- return $spc;
- }
-
- /**
- * XMLRPC methods wrapper
- * Encode XMLRPC request message, send it, receive and decode response.
- *
- * @param method string, method name
- * @param gettedPars array, returned by func_get_args() in called method
- * @return array, PHP hash with response
- */
- function callMethod($method, $gettedPars)
- {
- $parr = array();
- foreach($this->mdefs[$method]['p'] as $i=>$p){
- $parr[$p] = $gettedPars[$i];
- }
- $fullmethod = $this->mdefs[$method]['m'];
- $msg = new XML_RPC_Message($fullmethod, array(XML_RPC_encode($parr)));
- if($this->verbose){
- echo "parr:\n";
- var_dump($parr);
- echo "message:\n";
- echo $msg->serialize()."\n";
- }
- $this->client->setDebug($this->debug);
- $res = $this->client->send($msg);
- if($res->faultCode() > 0) {
- return $this->dbc->raiseError(
- "SchedulerPhpClient::$method:".$res->faultString()." ".
- $res->faultCode()."\n", $res->faultCode()
- );
- }
- if($verbose){
- echo "result:\n";
- echo $res->serialize();
- }
- $resp = XML_RPC_decode($res->value());
- return $resp;
- }
-
-}
-
-/* ======================================================== class definitions */
-
-/**
- * Example of use:
- *
- */
-
-/*
-// db object handling:
-$dbc = DB::connect($config['dsn'], TRUE);
-$dbc->setFetchMode(DB_FETCHMODE_ASSOC);
-$dbc->setErrorHandling(PEAR_ERROR_RETURN);
-
-// scheduler client instantiation:
-$spc =& SchedulerPhpClient::factory($dbc, $mdefs, $config);
-
-// call of chosen function by name according to key values in $mdefs array:
-// (for testing on storageServer XMLRPC I've changes confPrefix in
-// SchedulerPhpClient constructor from 'scheduler' to 'storage' value)
-$r = $spc->LoginGB('root', 'q'); var_dump($r);
-#$r = $spc->LogoutGB(''); var_dump($r);
-*/
-
-?>
\ No newline at end of file