Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/server.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
Diffstat (limited to 'apps')
-rw-r--r--apps/files/js/filelist.js19
-rw-r--r--apps/files/lib/app.php17
-rw-r--r--apps/files/tests/ajax_rename.php63
3 files changed, 73 insertions, 26 deletions
diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js
index 66453740f5d..b8ae00ac494 100644
--- a/apps/files/js/filelist.js
+++ b/apps/files/js/filelist.js
@@ -422,12 +422,27 @@ var FileList={
}
tr.find('.fileactions').effect('highlight', {}, 5000);
tr.effect('highlight', {}, 5000);
+ // remove loading mark and recover old image
+ td.css('background-image', oldBackgroundImage);
+ }
+ else {
+ var fileInfo = result.data;
+ tr.attr('data-mime', fileInfo.mime);
+ tr.attr('data-etag', fileInfo.etag);
+ if (fileInfo.isPreviewAvailable) {
+ Files.lazyLoadPreview(fileInfo.directory + '/' + fileInfo.name, result.data.mime, function(previewpath) {
+ tr.find('td.filename').attr('style','background-image:url('+previewpath+')');
+ }, null, null, result.data.etag);
+ }
+ else {
+ tr.find('td.filename').removeClass('preview').attr('style','background-image:url('+fileInfo.icon+')');
+ }
}
// reinsert row
tr.detach();
FileList.insertElement( tr.attr('data-file'), tr.attr('data-type'),tr );
- // remove loading mark and recover old image
- td.css('background-image', oldBackgroundImage);
+ // update file actions in case the extension changed
+ FileActions.display( tr.find('td.filename'), true);
}
});
}
diff --git a/apps/files/lib/app.php b/apps/files/lib/app.php
index f5ac11b2168..ea94ea43ef3 100644
--- a/apps/files/lib/app.php
+++ b/apps/files/lib/app.php
@@ -76,12 +76,19 @@ class App {
$this->view->rename($dir . '/' . $oldname, $dir . '/' . $newname)
) {
// successful rename
- $result['success'] = true;
- $result['data'] = array(
- 'dir' => $dir,
- 'file' => $oldname,
- 'newname' => $newname
+ $meta = $this->view->getFileInfo($dir . '/' . $newname);
+ $fileinfo = array(
+ 'id' => $meta['fileid'],
+ 'mime' => $meta['mimetype'],
+ 'size' => $meta['size'],
+ 'etag' => $meta['etag'],
+ 'directory' => $dir,
+ 'name' => $newname,
+ 'isPreviewAvailable' => \OC::$server->getPreviewManager()->isMimeSupported($meta['mimetype']),
+ 'icon' => \OCA\Files\Helper::determineIcon($meta)
);
+ $result['success'] = true;
+ $result['data'] = $fileinfo;
} else {
// rename failed
$result['data'] = array(
diff --git a/apps/files/tests/ajax_rename.php b/apps/files/tests/ajax_rename.php
index 3735b0a49c8..350ff5d3687 100644
--- a/apps/files/tests/ajax_rename.php
+++ b/apps/files/tests/ajax_rename.php
@@ -38,13 +38,14 @@ class Test_OC_Files_App_Rename extends \PHPUnit_Framework_TestCase {
$l10nMock->expects($this->any())
->method('t')
->will($this->returnArgument(0));
- $viewMock = $this->getMock('\OC\Files\View', array('rename', 'normalizePath'), array(), '', false);
+ $viewMock = $this->getMock('\OC\Files\View', array('rename', 'normalizePath', 'getFileInfo'), array(), '', false);
$viewMock->expects($this->any())
->method('normalizePath')
->will($this->returnArgument(0));
$viewMock->expects($this->any())
->method('rename')
->will($this->returnValue(true));
+ $this->viewMock = $viewMock;
$this->files = new \OCA\Files\App($viewMock, $l10nMock);
}
@@ -79,17 +80,28 @@ class Test_OC_Files_App_Rename extends \PHPUnit_Framework_TestCase {
$oldname = 'Shared';
$newname = 'new_name';
+ $this->viewMock->expects($this->any())
+ ->method('getFileInfo')
+ ->will($this->returnValue(array(
+ 'fileid' => 123,
+ 'type' => 'dir',
+ 'mimetype' => 'httpd/unix-directory',
+ 'size' => 18,
+ 'etag' => 'abcdef',
+ 'directory' => '/',
+ 'name' => 'new_name',
+ )));
+
$result = $this->files->rename($dir, $oldname, $newname);
- $expected = array(
- 'success' => true,
- 'data' => array(
- 'dir' => $dir,
- 'file' => $oldname,
- 'newname' => $newname
- )
- );
- $this->assertEquals($expected, $result);
+ $this->assertTrue($result['success']);
+ $this->assertEquals(123, $result['data']['id']);
+ $this->assertEquals('new_name', $result['data']['name']);
+ $this->assertEquals('/test', $result['data']['directory']);
+ $this->assertEquals(18, $result['data']['size']);
+ $this->assertEquals('httpd/unix-directory', $result['data']['mime']);
+ $this->assertEquals(\OC_Helper::mimetypeIcon('dir'), $result['data']['icon']);
+ $this->assertFalse($result['data']['isPreviewAvailable']);
}
/**
@@ -117,16 +129,29 @@ class Test_OC_Files_App_Rename extends \PHPUnit_Framework_TestCase {
$oldname = 'oldname';
$newname = 'newname';
+ $this->viewMock->expects($this->any())
+ ->method('getFileInfo')
+ ->will($this->returnValue(array(
+ 'fileid' => 123,
+ 'type' => 'dir',
+ 'mimetype' => 'httpd/unix-directory',
+ 'size' => 18,
+ 'etag' => 'abcdef',
+ 'directory' => '/',
+ 'name' => 'new_name',
+ )));
+
+
$result = $this->files->rename($dir, $oldname, $newname);
- $expected = array(
- 'success' => true,
- 'data' => array(
- 'dir' => $dir,
- 'file' => $oldname,
- 'newname' => $newname
- )
- );
- $this->assertEquals($expected, $result);
+ $this->assertTrue($result['success']);
+ $this->assertEquals(123, $result['data']['id']);
+ $this->assertEquals('newname', $result['data']['name']);
+ $this->assertEquals('/', $result['data']['directory']);
+ $this->assertEquals(18, $result['data']['size']);
+ $this->assertEquals('httpd/unix-directory', $result['data']['mime']);
+ $this->assertEquals('abcdef', $result['data']['etag']);
+ $this->assertEquals(\OC_Helper::mimetypeIcon('dir'), $result['data']['icon']);
+ $this->assertFalse($result['data']['isPreviewAvailable']);
}
}