summaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authorThomas Müller <thomas.mueller@tmit.eu>2014-05-05 10:12:40 +0200
committerThomas Müller <thomas.mueller@tmit.eu>2014-05-05 10:12:40 +0200
commit341fcdc37a74b630ef7d47b5f0b336622c072ddc (patch)
treee2fbd468eebcbf93edf243fd0fa66ce24d2aeb74 /apps
parentd2754af7c39b2573db455e38e7700a338d979631 (diff)
parentd163441f3e1d011c117eca54eb9d23c0b58a23a8 (diff)
downloadnextcloud-server-341fcdc37a74b630ef7d47b5f0b336622c072ddc.tar.gz
nextcloud-server-341fcdc37a74b630ef7d47b5f0b336622c072ddc.zip
Merge pull request #8407 from owncloud/scale-pics-on-public-sharing-master
Images on public sharing get downscaled to increase use experience - thi...
Diffstat (limited to 'apps')
-rw-r--r--apps/files_sharing/ajax/publicpreview.php8
-rw-r--r--apps/files_sharing/appinfo/routes.php8
-rw-r--r--apps/files_sharing/js/public.js106
-rw-r--r--apps/files_sharing/templates/public.php1
-rw-r--r--apps/files_trashbin/appinfo/routes.php5
-rw-r--r--apps/files_versions/appinfo/routes.php3
6 files changed, 78 insertions, 53 deletions
diff --git a/apps/files_sharing/ajax/publicpreview.php b/apps/files_sharing/ajax/publicpreview.php
index d12d212a2e6..d8c892f1b7f 100644
--- a/apps/files_sharing/ajax/publicpreview.php
+++ b/apps/files_sharing/ajax/publicpreview.php
@@ -16,6 +16,7 @@ $maxX = array_key_exists('x', $_GET) ? (int) $_GET['x'] : '36';
$maxY = array_key_exists('y', $_GET) ? (int) $_GET['y'] : '36';
$scalingUp = array_key_exists('scalingup', $_GET) ? (bool) $_GET['scalingup'] : true;
$token = array_key_exists('t', $_GET) ? (string) $_GET['t'] : '';
+$keepAspect = array_key_exists('a', $_GET) ? true : false;
if($token === ''){
\OC_Response::setStatus(400); //400 Bad Request
@@ -70,6 +71,10 @@ if(substr($path, 0, 1) === '/') {
$path = substr($path, 1);
}
+if ($keepAspect === true) {
+ $maxY = $maxX;
+}
+
if($maxX === 0 || $maxY === 0) {
\OC_Response::setStatus(400); //400 Bad Request
\OC_Log::write('core-preview', 'x and/or y set to 0', \OC_Log::DEBUG);
@@ -84,8 +89,9 @@ try{
$preview->setMaxX($maxX);
$preview->setMaxY($maxY);
$preview->setScalingUp($scalingUp);
+ $preview->setKeepAspect($keepAspect);
- $preview->show();
+ $preview->showPreview();
} catch (\Exception $e) {
\OC_Response::setStatus(500);
\OC_Log::write('core', $e->getmessage(), \OC_Log::DEBUG);
diff --git a/apps/files_sharing/appinfo/routes.php b/apps/files_sharing/appinfo/routes.php
index 06e454b7d77..7c2834dc9c2 100644
--- a/apps/files_sharing/appinfo/routes.php
+++ b/apps/files_sharing/appinfo/routes.php
@@ -1,9 +1,9 @@
<?php
/** @var $this \OCP\Route\IRouter */
-$this->create('core_ajax_public_preview', '/publicpreview.png')->action(
-function() {
- require_once __DIR__ . '/../ajax/publicpreview.php';
-});
+$this->create('core_ajax_public_preview', '/publicpreview')->action(
+ function() {
+ require_once __DIR__ . '/../ajax/publicpreview.php';
+ });
// OCS API
diff --git a/apps/files_sharing/js/public.js b/apps/files_sharing/js/public.js
index ae2412f6a3b..0b4dec81764 100644
--- a/apps/files_sharing/js/public.js
+++ b/apps/files_sharing/js/public.js
@@ -12,10 +12,11 @@
$(document).ready(function() {
+ var mimetype = $('#mimetype').val();
+
if (typeof FileActions !== 'undefined') {
- var mimetype = $('#mimetype').val();
// Show file preview if previewer is available, images are already handled by the template
- if (mimetype.substr(0, mimetype.indexOf('/')) != 'image' && $('.publicpreview').length === 0) {
+ if (mimetype.substr(0, mimetype.indexOf('/')) !== 'image' && $('.publicpreview').length === 0) {
// Trigger default action if not download TODO
var action = FileActions.getDefault(mimetype, 'file', OC.PERMISSION_READ);
if (typeof action !== 'undefined') {
@@ -24,57 +25,74 @@ $(document).ready(function() {
}
}
- // override since the format is different
- Files.getDownloadUrl = function(filename, dir) {
- if ($.isArray(filename)) {
- filename = JSON.stringify(filename);
- }
- var path = dir || FileList.getCurrentDirectory();
+ // dynamically load image previews
+ if (mimetype.substr(0, mimetype.indexOf('/')) === 'image' ) {
+
var params = {
- service: 'files',
- t: $('#sharingToken').val(),
- path: path,
- files: filename,
- download: null
+ x: $(document).width() * window.devicePixelRatio,
+ a: 'true',
+ file: encodeURIComponent($('#dir').val() + $('#filename').val()),
+ t: $('#sharingToken').val()
};
- return OC.filePath('', '', 'public.php') + '?' + OC.buildQueryString(params);
- };
- Files.getAjaxUrl = function(action, params) {
- params = params || {};
- params.t = $('#sharingToken').val();
- return OC.filePath('files_sharing', 'ajax', action + '.php') + '?' + OC.buildQueryString(params);
- };
+ var img = $('<img class="publicpreview">');
+ img.attr('src', OC.filePath('files_sharing', 'ajax', 'publicpreview.php') + '?' + OC.buildQueryString(params));
+ img.appendTo('#imgframe');
+ }
- FileList.linkTo = function(dir) {
- var params = {
- service: 'files',
- t: $('#sharingToken').val(),
- dir: dir
+ // override since the format is different
+ if (typeof Files !== 'undefined') {
+ Files.getDownloadUrl = function(filename, dir) {
+ if ($.isArray(filename)) {
+ filename = JSON.stringify(filename);
+ }
+ var path = dir || FileList.getCurrentDirectory();
+ var params = {
+ service: 'files',
+ t: $('#sharingToken').val(),
+ path: path,
+ files: filename,
+ download: null
+ };
+ return OC.filePath('', '', 'public.php') + '?' + OC.buildQueryString(params);
};
- return OC.filePath('', '', 'public.php') + '?' + OC.buildQueryString(params);
- };
- Files.generatePreviewUrl = function(urlSpec) {
- urlSpec.t = $('#dirToken').val();
- return OC.generateUrl('/apps/files_sharing/ajax/publicpreview.php?') + $.param(urlSpec);
- };
+ Files.getAjaxUrl = function(action, params) {
+ params = params || {};
+ params.t = $('#sharingToken').val();
+ return OC.filePath('files_sharing', 'ajax', action + '.php') + '?' + OC.buildQueryString(params);
+ };
- var file_upload_start = $('#file_upload_start');
- file_upload_start.on('fileuploadadd', function(e, data) {
- var fileDirectory = '';
- if(typeof data.files[0].relativePath !== 'undefined') {
- fileDirectory = data.files[0].relativePath;
- }
+ FileList.linkTo = function(dir) {
+ var params = {
+ service: 'files',
+ t: $('#sharingToken').val(),
+ dir: dir
+ };
+ return OC.filePath('', '', 'public.php') + '?' + OC.buildQueryString(params);
+ };
- // Add custom data to the upload handler
- data.formData = {
- requesttoken: $('#publicUploadRequestToken').val(),
- dirToken: $('#dirToken').val(),
- subdir: $('input#dir').val(),
- file_directory: fileDirectory
+ Files.generatePreviewUrl = function(urlSpec) {
+ urlSpec.t = $('#dirToken').val();
+ return OC.generateUrl('/apps/files_sharing/ajax/publicpreview.php?') + $.param(urlSpec);
};
- });
+
+ var file_upload_start = $('#file_upload_start');
+ file_upload_start.on('fileuploadadd', function(e, data) {
+ var fileDirectory = '';
+ if(typeof data.files[0].relativePath !== 'undefined') {
+ fileDirectory = data.files[0].relativePath;
+ }
+
+ // Add custom data to the upload handler
+ data.formData = {
+ requesttoken: $('#publicUploadRequestToken').val(),
+ dirToken: $('#dirToken').val(),
+ subdir: $('input#dir').val(),
+ file_directory: fileDirectory
+ };
+ });
+ }
$(document).on('click', '#directLink', function() {
$(this).focus();
diff --git a/apps/files_sharing/templates/public.php b/apps/files_sharing/templates/public.php
index f3c75134a5f..9471752b6b5 100644
--- a/apps/files_sharing/templates/public.php
+++ b/apps/files_sharing/templates/public.php
@@ -30,7 +30,6 @@
<?php else: ?>
<?php if (substr($_['mimetype'], 0, strpos($_['mimetype'], '/')) == 'image'): ?>
<div id="imgframe">
- <img src="<?php p($_['downloadURL']); ?>" alt="" />
</div>
<?php elseif (substr($_['mimetype'], 0, strpos($_['mimetype'], '/')) == 'video'): ?>
<div id="imgframe">
diff --git a/apps/files_trashbin/appinfo/routes.php b/apps/files_trashbin/appinfo/routes.php
index b1c3f02741e..42398a06c8b 100644
--- a/apps/files_trashbin/appinfo/routes.php
+++ b/apps/files_trashbin/appinfo/routes.php
@@ -1,5 +1,6 @@
<?php
-$this->create('core_ajax_trashbin_preview', '/preview.png')->action(
+/** @var $this \OCP\Route\IRouter */
+$this->create('core_ajax_trashbin_preview', '/preview')->action(
function() {
require_once __DIR__ . '/../ajax/preview.php';
-}); \ No newline at end of file
+});
diff --git a/apps/files_versions/appinfo/routes.php b/apps/files_versions/appinfo/routes.php
index 8d2abaa89e5..80fe0e5d617 100644
--- a/apps/files_versions/appinfo/routes.php
+++ b/apps/files_versions/appinfo/routes.php
@@ -8,7 +8,8 @@
// Register with the capabilities API
OC_API::register('get', '/cloud/capabilities', array('OCA\Files_Versions\Capabilities', 'getCapabilities'), 'files_versions', OC_API::USER_AUTH);
-$this->create('core_ajax_versions_preview', '/preview.png')->action(
+/** @var $this \OCP\Route\IRouter */
+$this->create('core_ajax_versions_preview', '/preview')->action(
function() {
require_once __DIR__ . '/../ajax/preview.php';
});