Fixed a wrong timestamp update when adding a file.

When a file was uploaded the timestamp of the containing folder
should get updated, but the timestamp of the first file in the
folder was mistakenly updated.
There are some more wrong timestamps, but still looking for the bug.
This commit is contained in:
Klaus Weidenbach 2014-06-29 16:00:21 +02:00
parent 628f121804
commit 5be3ba8436
2 changed files with 13 additions and 7 deletions

View File

@ -552,9 +552,9 @@ function z_readdir($channel_id, $observer_hash, $pathname, $parent_hash = '') {
/** /**
* @function attach_mkdir($channel,$observer_hash,$arr); * @function attach_mkdir($channel,$observer_hash,$arr);
* *
* @brief Create directory. * @brief Create directory.
* *
* @param $channel channel array of owner * @param $channel channel array of owner
* @param $observer_hash hash of current observer * @param $observer_hash hash of current observer
* @param $arr parameter array to fulfil request * @param $arr parameter array to fulfil request
@ -641,7 +641,7 @@ function attach_mkdir($channel, $observer_hash, $arr = null) {
$path .= $arr['hash']; $path .= $arr['hash'];
$created = datetime_convert(); $created = datetime_convert();
$r = q("INSERT INTO attach ( aid, uid, hash, creator, filename, filetype, filesize, revision, folder, flags, data, created, edited, allow_cid, allow_gid, deny_cid, deny_gid ) $r = q("INSERT INTO attach ( aid, uid, hash, creator, filename, filetype, filesize, revision, folder, flags, data, created, edited, allow_cid, allow_gid, deny_cid, deny_gid )
VALUES ( %d, %d, '%s', '%s', '%s', '%s', %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s' ) ", VALUES ( %d, %d, '%s', '%s', '%s', '%s', %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s' ) ",
@ -678,7 +678,7 @@ function attach_mkdir($channel, $observer_hash, $arr = null) {
$ret['message'] = t('database storage failed.'); $ret['message'] = t('database storage failed.');
return $ret; return $ret;
} }
/** /**

View File

@ -113,8 +113,13 @@ class RedDirectory extends DAV\Node implements DAV\ICollection, DAV\IQuota {
throw new DAV\Exception\NotFound('The file with name: ' . $name . ' could not be found.'); throw new DAV\Exception\NotFound('The file with name: ' . $name . ' could not be found.');
} }
/**
* @brief Returns the name of the directory.
*
* @return string
*/
public function getName() { public function getName() {
logger('RedDirectory::getName returns: ' . basename($this->red_path), LOGGER_DATA); logger('RedDirectory::getName() returns: ' . basename($this->red_path), LOGGER_DATA);
return (basename($this->red_path)); return (basename($this->red_path));
} }
@ -204,7 +209,7 @@ class RedDirectory extends DAV\Node implements DAV\ICollection, DAV\IQuota {
); );
// update the folder's lastmodified timestamp // update the folder's lastmodified timestamp
$e = q("UPDATE attach SET edited = '%s' WHERE folder = '%s' AND uid = %d LIMIT 1", $e = q("UPDATE attach SET edited = '%s' WHERE hash = '%s' AND uid = %d LIMIT 1",
dbesc($edited), dbesc($edited),
dbesc($this->folder_hash), dbesc($this->folder_hash),
intval($c[0]['channel_id']) intval($c[0]['channel_id'])
@ -250,8 +255,9 @@ class RedDirectory extends DAV\Node implements DAV\ICollection, DAV\IQuota {
if ($r) { if ($r) {
$result = attach_mkdir($r[0], $this->auth->observer, array('filename' => $name, 'folder' => $this->folder_hash)); $result = attach_mkdir($r[0], $this->auth->observer, array('filename' => $name, 'folder' => $this->folder_hash));
if (! $result['success']) if (! $result['success']) {
logger('RedDirectory::createDirectory(): ' . print_r($result, true), LOGGER_DEBUG); logger('RedDirectory::createDirectory(): ' . print_r($result, true), LOGGER_DEBUG);
}
} }
} }