[dev] changed gollem move/copy functionality

mike.varghese at ascellatech.com mike.varghese at ascellatech.com
Thu Jul 31 15:09:26 PDT 2003


Here are some changes I made to gollem (the ones I mentioned previously)
to allow for move/copy to any folder in gollem.  Hope this works.  Email
me with any problems.  Thanks.


-Mike

Ascella Technologies Inc., http://www.ascellatech.com
-------------- next part --------------
Index: gollem/manager.php
===================================================================
RCS file: /repository/gollem/manager.php,v
retrieving revision 1.76
diff -r1.76 manager.php
129,138c129
< case 'move_file':
<     preg_match('/^\[(.+)\]:(.*)/', Horde::getFormData('targetFolder'), $dest);
<     if (empty($dest)) {
<         $target_backend_key = $backend_key;
<         $dest = Horde::getFormData('targetFolder');
<     } else {
<         $target_backend_key = $dest[1];
<         $dest = $dest[2];
<     }
< 
---
> case 'cut_items':
141a133
>         $_SESSION['gollem']['cut']['selected'] = true;
143,167c135,137
<             if ($target_backend_key == $backend_key) {
<                 $result = $vfs[$backend_key]->move(Gollem::getDir($backend_key), $item, $dest);
<                 if (!is_a($result, 'PEAR_Error')) {
<                     $notification->push(sprintf(_("%s was sucesfully moved to %s."), $item, $dest), 'horde.success');
<                 } else {
<                     $notification->push(sprintf(_("Cannot move '%s': %s"), $item, $result->getMessage()), 'horde.error');
<                 }
<             } else {
<                 $data = $vfs[$backend_key]->read(Gollem::getDir($backend_key), $item);
<                 if (!is_a($data, 'PEAR_Error')) {
<                     $result = $vfs[$target_backend_key]->writeData($dest, $item, $data, false);
<                     if (!is_a($result, 'PEAR_Error')) {
<                         $result = $vfs[$backend_key]->deleteFile(Gollem::getDir($backend_key), $item);
<                         if (!is_a($result, 'PEAR_Error')) {
<                             $notification->push(sprintf(_("%s was sucesfully moved to %s."), $item, $dest), 'horde.success');
<                         } else {
<                             $notification->push(sprintf(_("%s was succesfully copied, but not deleted: %s"), $item, $result->getMessage()), 'horde.error');
<                         }
<                     } else {
<                         $notification->push(sprintf(_("Cannot write '%s': %s"), $item, $result->getMessage()), 'horde.error');
<                     }
<                 } else {
<                     $notification->push(sprintf(_("Cannot read '%s': %s"), $item, $result->getMessage()), 'horde.error');
<                 }
<             }
---
>             $_SESSION['gollem']['cut']['names'][$item] = $item;
>             $_SESSION['gollem']['cut']['path'] = Gollem::getDir($backend_key);
>             $notification->push(sprintf(_("Item cut to clipboard: %s"), $item), 'horde.success');
169,176d138
<     }
<     break;
< 
< case 'copy_file':
<     preg_match('/^\[(.+)\]:(.*)/', Horde::getFormData('targetFolder'), $dest);
<     if (empty($dest)) {
<         $target_backend_key = $backend_key;
<         $dest = Horde::getFormData('targetFolder');
178,179c140
<         $target_backend_key = $dest[1];
<         $dest = $dest[2];
---
>         $notification->push(_("Cannot cut items onto clipboard."), 'horde.error');
180a142
>     break;
181a144
> case 'copy_items':
184a148
>         $_SESSION['gollem']['copy']['selected'] = true;
186,187c150,166
<             if ($target_backend_key == $backend_key) {
<                 $result = $vfs[$backend_key]->copy(Gollem::getDir($backend_key), $item, $dest);
---
>             $_SESSION['gollem']['copy']['names'][$item] = $item;
>             $_SESSION['gollem']['copy']['path'] = Gollem::getDir($backend_key);
>             $notification->push(sprintf(_("Item copied to clipboard: %s"), $item),'horde.success');
>         }
>     } else {
>         $notification->push(_("Cannot copy items onto clipboard."), 'horde.error');
>     }
>     break;
> 
> case 'paste_items':
>     if ($_SESSION['gollem']['cut']['selected']) {
>         $dest = Gollem::getDir($backend_key);
>         $items = $_SESSION['gollem']['cut']['names'];
>         if (is_array($items) &&
>             count($items)) {
>             foreach ($items as $item) {
>                 $result = $vfs[$backend_key]->move($_SESSION['gollem']['cut']['path'],$item, $dest);
189c168
<                     $notification->push(sprintf(_("%s was sucesfully copied to %s."), $item, $dest), 'horde.success');
---
>                     $notification->push(sprintf(_("%s was sucesfully pasted."), $item, $dest), 'horde.success');
191c170
<                     $notification->push(sprintf(_("Cannot copy '%s': %s"), $item, $result->getMessage()), 'horde.error');
---
>                     $notification->push(sprintf(_("Cannot paste '%s' (clipboard cleared): %s"), $item, $result->getMessage()), 'horde.error');
193,201c172,185
<             } else {
<                 $data = $vfs[$backend_key]->read(Gollem::getDir($backend_key), $item);
<                 if (!is_a($data, 'PEAR_Error')) {
<                     $result = $vfs[$target_backend_key]->writeData($dest, $item, $data, false);
<                     if (!is_a($result, 'PEAR_Error')) {
<                         $notification->push(sprintf(_("%s was sucesfully copied to %s."), $item, $dest), 'horde.success');
<                     } else {
<                         $notification->push(sprintf(_("Cannot write '%s': %s"), $item, $result->getMessage()), 'horde.error');
<                     }
---
>             }
>         }
>         $_SESSION['gollem']['cut']['selected'] = false;
>         $_SESSION['gollem']['cut']['names'] = array();
>         $_SESSION['gollem']['cut']['path'] = '';
>     } else {
>         $dest = Gollem::getDir($backend_key);
>         $items = $_SESSION['gollem']['copy']['names'];
>         if (is_array($items) &&
>             count($items)) {
>             foreach ($items as $item) {
>                 $result = $vfs[$backend_key]->copy($_SESSION['gollem']['copy']['path'],$item, $dest);
>                 if (!is_a($result, 'PEAR_Error')) {
>                     $notification->push(sprintf(_("%s was sucesfully pasted."), $item, $dest), 'horde.success');
203c187
<                     $notification->push(sprintf(_("Cannot read '%s': %s"), $item, $result->getMessage()), 'horde.error');
---
>                     $notification->push(sprintf(_("Cannot paste '%s' (clipboard cleared): %s"), $item, $result->getMessage()), 'horde.error');
206a191,193
>         $_SESSION['gollem']['copy']['selected'] = false;
>         $_SESSION['gollem']['copy']['names'] = array();
>         $_SESSION['gollem']['copy']['path'] = '';
208d194
< 
293a280,291
>             $on_clipboard = false;
>             $copy_path = isset($_SESSION['gollem']['copy']['path']) ?
>                          $_SESSION['gollem']['copy']['path'] : NULL;
>             $cut_path = isset($_SESSION['gollem']['cut']['path']) ?
>                         $_SESSION['gollem']['cut']['path'] : NULL;
>             if ($copy_path == Gollem::getDir($backend_key) ||
>                 $cut_path == Gollem::getDir($backend_key)) {
>                 if ((isset($_SESSION['gollem']['copy']['names'][$item['name']]) ||
>                     isset($_SESSION['gollem']['cut']['names'][$item['name']])) ) {
>                     $on_clipboard = true;
>                 }
>             }
Index: gollem/templates/manager/actions.inc
===================================================================
RCS file: /repository/gollem/templates/manager/actions.inc,v
retrieving revision 1.21
diff -r1.21 actions.inc
12,20c12
<     <td width="100%" align="right" nowrap="nowrap">
<       <?php echo Horde::link('', _("Move"), 'widget', '', $backend_key . "_Transfer('move_file', $j[$backend_key]); return false;") . _("Move") ?></a> |
<       <?php echo Horde::link('', _("Copy"), 'widget', '', $backend_key . "_Transfer('copy_file', $j[$backend_key]); return false;") . _("Copy") ?></a>
<       <select name="targetFolders<?php echo ($j[$backend_key] == 1) ? 1 : 2; ?>">
<         <?php if (!is_a($folder_options, 'PEAR_Error')) echo $folder_options ?>
<       </select>
<     </td>
< 
<     <td align="left" nowrap="nowrap">
---
>     <td align="right" nowrap="nowrap">
29a22,25
>         <?php if ((!$_SESSION['gollem']['cut']['selected']) && (!$_SESSION['gollem']['copy']['selected'])): ?>
>             <option value="cut_items"><?php echo _("Cut Items") ?></option>
>             <option value="copy_items"><?php echo _("Copy Items") ?></option>
>         <?php endif; ?>
30a27,29
>         <?php if (($_SESSION['gollem']['cut']['selected']) || ($_SESSION['gollem']['copy']['selected'])): ?>
>             <option value="paste_items"><?php echo _("Paste Items") ?></option>
>         <?php endif; ?>
Index: gollem/templates/manager/file_summaries.inc
===================================================================
RCS file: /repository/gollem/templates/manager/file_summaries.inc,v
retrieving revision 1.29
diff -r1.29 file_summaries.inc
0a1
> <?php if (!$on_clipboard) : ?>
1a3,5
> <?php else: ?>
> <tr class="deleted">
> <?php endif; ?>
2a7
>     <?php if (!$on_clipboard): ?>
3a9
>     <?php endif; ?>
18c24
<     <td nowrap="nowrap"><?php echo $link ?></td>
---
>     <td nowrap="nowrap"><?php echo $link; ?></td>
Index: gollem/templates/manager/javascript.inc
===================================================================
RCS file: /repository/gollem/templates/manager/javascript.inc,v
retrieving revision 1.14
diff -r1.14 javascript.inc
33,53d32
< function <?php echo $backend_key ?>_Transfer(actID, whichForm)
< {
<     if (<?php echo $backend_key ?>_AnySelected()) {
<         if (whichForm == 1) {
<             document.<?php echo $backend_key ?>_manager.targetFolder.value = document.<?php echo $backend_key ?>_manager.targetFolders1[document.<?php echo $backend_key ?>_manager.targetFolders1.selectedIndex].value;
<         } else {
<             document.<?php echo $backend_key ?>_manager.targetFolder.value = document.<?php echo $backend_key ?>_manager.targetFolders2[document.<?php echo $backend_key ?>_manager.targetFolders2.selectedIndex].value;
<         }
< 
<         if (document.<?php echo $backend_key ?>_manager.targetFolder.value == 'none') {
<             window.alert('Please select a target folder.');
<             return false;
<         }
< 
<         document.<?php echo $backend_key ?>_manager.actionID.value = actID;
<         document.<?php echo $backend_key ?>_manager.submit();
<      } else {
<         window.alert('You must select at least one file first.');
<      }
< }
< 
73a53,54
>     } else if (action == 'paste_items') {
>         <?php echo $backend_key ?>_pasteItems();
81a63,66
>     } else if (action == 'cut_items') {
>         <?php echo $backend_key ?>_cutItems();
>     } else if (action == 'copy_items') {
>         <?php echo $backend_key ?>_copyItems();
144a130,147
> }
> 
> function <?php echo $backend_key ?>_cutItems()
> {
>     document.<?php echo $backend_key ?>_manager.actionID.value = 'cut_items';
>     document.<?php echo $backend_key ?>_manager.submit();
> }
> 
> function <?php echo $backend_key ?>_copyItems()
> {
>     document.<?php echo $backend_key ?>_manager.actionID.value = 'copy_items';
>     document.<?php echo $backend_key ?>_manager.submit();
> }
> 
> function <?php echo $backend_key ?>_pasteItems()
> {
>     document.<?php echo $backend_key ?>_manager.actionID.value = 'paste_items';
>     document.<?php echo $backend_key ?>_manager.submit();



More information about the dev mailing list