fixed copy, move, delete problems in html ui

This commit is contained in:
tomas 2005-01-12 17:56:01 +00:00
parent 798b48c6b3
commit 0bb6923efd
6 changed files with 51 additions and 32 deletions

View file

@ -23,7 +23,7 @@
Author : $Author: tomas $
Version : $Revision: 1.16 $
Version : $Revision: 1.17 $
Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/storageServer/var/BasicStor.php,v $
------------------------------------------------------------------------------*/
@ -50,7 +50,7 @@ require_once "StoredFile.php";
* Core of LiveSupport file storage module
*
* @author $Author: tomas $
* @version $Revision: 1.16 $
* @version $Revision: 1.17 $
* @see Alib
*/
class BasicStor extends Alib{
@ -184,6 +184,8 @@ class BasicStor extends Alib{
return PEAR::raiseError(
"BasicStor::moveFile: destination is not folder ($did)", GBERR_WRTYPE
);
$parid = $this->getParent($id);
if($parid == $did) return TRUE;
$this->_relocateSubtree($id, $did);
}
@ -211,7 +213,6 @@ class BasicStor extends Alib{
*/
function bsDeleteFile($id)
{
$parid = $this->getParent($id);
$res = $this->removeObj($id);
if(PEAR::isError($res)) return $res;
return TRUE;
@ -747,7 +748,7 @@ class BasicStor extends Alib{
";
$this->test_dump = $this->dumpTree($this->storId);
if($this->test_dump==$this->test_correct)
{ $this->test_log.="storageServer: OK\n"; return true; }
{ $this->test_log.="# BasicStor::test: OK\n"; return true; }
else PEAR::raiseError('BasicStor::test:', 1, PEAR_ERROR_DIE, '%s'.
"<pre>\ncorrect:\n.{$this->test_correct}.\n".
"dump:\n.{$this->test_dump}.\n</pre>\n");
@ -874,7 +875,7 @@ class BasicStor extends Alib{
$this->dbc->dropSequence("{$this->mdataTable}_id_seq");
$this->dbc->query("DROP TABLE {$this->filesTable}");
$this->dbc->query("DROP TABLE {$this->accessTable}");
$d = dir($this->storageDir);
$d = @dir($this->storageDir);
while (is_object($d) && (false !== ($entry = $d->read()))){
if(filetype("{$this->storageDir}/$entry")=='dir' &&
$entry!='CVS' && strlen($entry)==3)
@ -894,7 +895,7 @@ class BasicStor extends Alib{
while (false !== ($entry = $d->read())) if(substr($entry,0,1)!='.')
{ unlink("{$this->bufferDir}/$entry"); }
$d->close();
rmdir($this->bufferDir);
@rmdir($this->bufferDir);
}
parent::uninstall();
}

View file

@ -23,7 +23,7 @@
Author : $Author: tomas $
Version : $Revision: 1.20 $
Version : $Revision: 1.21 $
Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/storageServer/var/GreenBox.php,v $
------------------------------------------------------------------------------*/
@ -35,7 +35,7 @@ require_once "BasicStor.php";
* LiveSupport file storage module
*
* @author $Author: tomas $
* @version $Revision: 1.20 $
* @version $Revision: 1.21 $
* @see BasicStor
*/
class GreenBox extends BasicStor{
@ -395,8 +395,9 @@ class GreenBox extends BasicStor{
{
$type = $this->getObjName($oid, 'type');
if($type == 'File'){
$type =
$ftype =
StoredFile::_getType($this->_gunidFromId($oid));
if(!is_null($ftype)) $type=$ftype;
}
return $type;
}
@ -411,6 +412,7 @@ class GreenBox extends BasicStor{
*/
function copyObj($id, $newParid, $after=NULL)
{
$parid = $this->getParent($id);
$nid = parent::copyObj($id, $newParid, $after);
if(PEAR::isError($nid)) return $nid;
switch($this->getObjType($id)){
@ -447,7 +449,7 @@ class GreenBox extends BasicStor{
*/
function removeObj($id)
{
switch($this->getObjType($id)){
switch($ot = $this->getObjType($id)){
case"audioclip":
case"playlist":
case"File":
@ -455,15 +457,21 @@ class GreenBox extends BasicStor{
if(!PEAR::isError($ac)){
$ac->delete();
}
parent::removeObj($id);
$r = parent::removeObj($id);
if(PEAR::isError($r)) return $r;
break;
case"Folder":
parent::removeObj($id);
$r = parent::removeObj($id);
if(PEAR::isError($r)) return $r;
break;
case"Replica":
parent::removeObj($id);
$r = parent::removeObj($id);
if(PEAR::isError($r)) return $r;
break;
default:
return PEAR::raiseError(
"GreenBox::removeObj: unknown obj type ($ot)"
);
}
return TRUE;
}

View file

@ -22,8 +22,8 @@
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Author : $Author: maroy $
Version : $Revision: 1.11 $
Author : $Author: tomas $
Version : $Revision: 1.12 $
Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/storageServer/var/MetaData.php,v $
------------------------------------------------------------------------------*/
@ -128,8 +128,10 @@ class MetaData{
*/
function replace($mdata, $loc='file')
{
if($this->exists) $res = $this->delete();
if($this->exists){
$res = $this->delete();
if(PEAR::isError($res)) return $res;
}
return $this->insert($mdata, $loc);
}
/**

View file

@ -23,7 +23,7 @@
Author : $Author: tomas $
Version : $Revision: 1.13 $
Version : $Revision: 1.14 $
Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/storageServer/var/StoredFile.php,v $
------------------------------------------------------------------------------*/
@ -71,7 +71,7 @@ class StoredFile{
/* ========= 'factory' methods - should be called to construct StoredFile */
/**
* Create instace of StoreFile object and insert new file
* Create instace of StoredFile object and insert new file
*
* @param gb reference to GreenBox object
* @param oid int, local object id in the tree
@ -227,7 +227,7 @@ class StoredFile{
'', '', NULL, $src->_getType()
);
if(PEAR::isError($ac)) return $ac;
$ac->md->replace($src->md->getMetaData());
$ac->md->replace($src->md->getMetaData(), 'string');
return $ac;
}
@ -593,10 +593,11 @@ class StoredFile{
function _getType($gunid=NULL)
{
if(is_null($gunid)) $gunid = $this->gunid;
return $this->dbc->getOne("
$ftype = $this->dbc->getOne("
SELECT ftype FROM {$this->filesTable}
WHERE gunid=x'$gunid'::bigint
");
return $ftype;
}
/**

View file

@ -98,18 +98,18 @@ $tpldata['showMenu']=true;
'</form>';
}
function fmove(id, relPath){
var newPath=prompt('Destination folder (relative path):', relPath);
if(newPath==null) return;
var newPath=prompt('Destination folder (relative path, e.g. "..", "folderName", "../folderName):', relPath);
if(newPath==null || newPath=='') return;
location.href='gbHttp.php?id='+id+'&act=move&newPath='+newPath;
}
function fcopy(id, relPath){
var newPath=prompt('Destination folder (relative path):', relPath);
if(newPath==null) return;
var newPath=prompt('Destination folder (relative path, e.g. "..", "folderName", "../folderName):', relPath);
if(newPath==null || newPath=='') return;
location.href='gbHttp.php?id='+id+'&act=copy&newPath='+newPath;
}
function freplicate(name, id){
var np=prompt('Destination folder (relative path):', id);
if(np==null) return;
var np=prompt('Destination folder (relative path, e.g. "..", "folderName", "../folderName):', id);
if(np==null || np=='') return;
location.href='gbHttp.php?id='+id+'&act=repl&newparid='+np;
}
function newFolder(){
@ -168,8 +168,8 @@ $tpldata['showMenu']=true;
</td><td>
<?php $a=array('Folder'=>'D', 'File'=>'F', 'Replica'=>'R', 'audioclip'=>'A', 'playlist'=>'P'); echo$a[$o['type']]?>
&nbsp;<a href="javascript:frename('<?php echo$o['name']?>', '<?php echo$o['id']?>')" class="button">rename</a>
&nbsp;<a href="javascript:fmove('<?php echo$o['id']?>', '.')" class="button">move</a>
&nbsp;<a href="javascript:fcopy('<?php echo$o['id']?>', '.')" class="button">copy</a>
&nbsp;<a href="javascript:fmove('<?php echo$o['id']?>', '')" class="button">move</a>
&nbsp;<a href="javascript:fcopy('<?php echo$o['id']?>', '')" class="button">copy</a>
<?php /*?>
&nbsp;<a href="javascript:freplicate('<?php echo$o['name']?>', '<?php echo$o['id']?>')" class="button">replicate</a>
<?php */?>

View file

@ -23,7 +23,7 @@
Author : $Author: tomas $
Version : $Revision: 1.10 $
Version : $Revision: 1.11 $
Location : $ $
------------------------------------------------------------------------------*/
@ -33,7 +33,7 @@ require_once"gbHtml_h.php";
* storageServer WWW-form interface
*
* @author $Author: tomas $
* @version $Revision: 1.10 $
* @version $Revision: 1.11 $
* @see Alib
* @see GreenBox
*/
@ -163,13 +163,19 @@ switch($_REQUEST['act']){
case"move":
$newPath = urlencode($_REQUEST['newPath']);
$did = $gb->getObjIdFromRelPath($id, $newPath);
if(PEAR::isError($did)){
$_SESSION['alertMsg'] = $did->getMessage();
$redirUrl = BROWSER."?id=$parid";
break;
}
$parid = $gb->getParent($id);
$r = $gb->moveFile($id, $did, $sessid);
if(PEAR::isError($r)){
$_SESSION['alertMsg'] = $r->getMessage();
$redirUrl = BROWSER."?id=$parid";
break;
}
else $redirUrl = BROWSER."?id=$did";
$redirUrl = BROWSER."?id=$did";
break;
/**
* copy
@ -187,6 +193,7 @@ switch($_REQUEST['act']){
$r = $gb->copyFile($id, $did, $sessid);
if(PEAR::isError($r)){
$_SESSION['alertMsg'] = $r->getMessage();
#$_SESSION['alertMsg'] = $r->getMessage()." ".$r->getUserInfo();
$redirUrl = BROWSER."?id=$parid";
}
else $redirUrl = BROWSER."?id=$did";