summaryrefslogtreecommitdiffstats
path: root/apps/files_sharing
diff options
context:
space:
mode:
Diffstat (limited to 'apps/files_sharing')
-rw-r--r--apps/files_sharing/css/public.css4
-rw-r--r--apps/files_sharing/js/public.js191
-rw-r--r--apps/files_sharing/js/share.js5
-rw-r--r--apps/files_sharing/public.php3
4 files changed, 126 insertions, 77 deletions
diff --git a/apps/files_sharing/css/public.css b/apps/files_sharing/css/public.css
index 67d84701946..8abeb8b0340 100644
--- a/apps/files_sharing/css/public.css
+++ b/apps/files_sharing/css/public.css
@@ -2,6 +2,10 @@
left: 0;
}
+#filestable {
+ margin-top: 90px;
+}
+
#preview {
background: #fff;
text-align: center;
diff --git a/apps/files_sharing/js/public.js b/apps/files_sharing/js/public.js
index 0b4dec81764..6ee54968e1e 100644
--- a/apps/files_sharing/js/public.js
+++ b/apps/files_sharing/js/public.js
@@ -9,94 +9,141 @@
*/
/* global OC, FileActions, FileList, Files */
+OCA.Sharing = {};
+if (!OCA.Files) {
+ OCA.Files = {};
+}
+OCA.Sharing.PublicApp = {
+ _initialized: false,
-$(document).ready(function() {
+ initialize: function($el) {
+ if (this._initialized) {
+ return;
+ }
+ this._initialized = true;
+ // file list mode ?
+ if ($el.find('#filestable')) {
+ this.fileList = new OCA.Files.FileList($el);
+ }
- var mimetype = $('#mimetype').val();
+ var mimetype = $('#mimetype').val();
- if (typeof FileActions !== 'undefined') {
- // Show file preview if previewer is available, images are already handled by the template
- 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') {
- action($('#filename').val());
+ if (typeof FileActions !== 'undefined') {
+ // Show file preview if previewer is available, images are already handled by the template
+ 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') {
+ action($('#filename').val());
+ }
}
}
- }
- // dynamically load image previews
- if (mimetype.substr(0, mimetype.indexOf('/')) === 'image' ) {
+ // dynamically load image previews
+ if (mimetype.substr(0, mimetype.indexOf('/')) === 'image' ) {
- var params = {
- x: $(document).width() * window.devicePixelRatio,
- a: 'true',
- file: encodeURIComponent($('#dir').val() + $('#filename').val()),
- t: $('#sharingToken').val()
- };
+ var params = {
+ x: $(document).width() * window.devicePixelRatio,
+ a: 'true',
+ file: encodeURIComponent($('#dir').val() + $('#filename').val()),
+ t: $('#sharingToken').val()
+ };
- var img = $('<img class="publicpreview">');
- img.attr('src', OC.filePath('files_sharing', 'ajax', 'publicpreview.php') + '?' + OC.buildQueryString(params));
- img.appendTo('#imgframe');
- }
+ var img = $('<img class="publicpreview">');
+ img.attr('src', OC.filePath('files_sharing', 'ajax', 'publicpreview.php') + '?' + OC.buildQueryString(params));
+ img.appendTo('#imgframe');
+ }
- // 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
+ if (this.fileList) {
+ // TODO: move this to a separate PublicFileList class that extends OCA.Files.FileList (+ unit tests)
+ this.fileList.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.getAjaxUrl = function(action, params) {
- params = params || {};
- params.t = $('#sharingToken').val();
- return OC.filePath('files_sharing', 'ajax', action + '.php') + '?' + OC.buildQueryString(params);
- };
+ this.fileList.getAjaxUrl = function(action, params) {
+ params = params || {};
+ params.t = $('#sharingToken').val();
+ return OC.filePath('files_sharing', 'ajax', action + '.php') + '?' + OC.buildQueryString(params);
+ };
- FileList.linkTo = function(dir) {
- var params = {
- service: 'files',
- t: $('#sharingToken').val(),
- dir: dir
+ this.fileList.linkTo = function(dir) {
+ var params = {
+ service: 'files',
+ t: $('#sharingToken').val(),
+ dir: dir
+ };
+ 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);
- };
-
- 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
+ this.fileList.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
+ };
+ });
+
+ this.fileActions = _.extend({}, OCA.Files.FileActions);
+ this.fileActions.registerDefaultActions(this.fileList);
+ delete this.fileActions.actions.all.Share;
+ this.fileList.setFileActions(this.fileActions);
+
+ this.fileList.changeDirectory($('#dir').val() || '/', false, true);
+
+ // URL history handling
+ this.fileList.$el.on('changeDirectory', _.bind(this._onDirectoryChanged, this));
+ OC.Util.History.addOnPopStateHandler(_.bind(this._onUrlChanged, this));
+ }
+
+ $(document).on('click', '#directLink', function() {
+ $(this).focus();
+ $(this).select();
});
- }
- $(document).on('click', '#directLink', function() {
- $(this).focus();
- $(this).select();
- });
+ // legacy
+ window.FileList = this.fileList;
+ },
+ _onDirectoryChanged: function(e) {
+ OC.Util.History.pushState({
+ service: 'files',
+ t: $('#sharingToken').val(),
+ // arghhhh, why is this not called "dir" !?
+ path: e.dir
+ });
+ },
+
+ _onUrlChanged: function(params) {
+ this.fileList.changeDirectory(params.path || params.dir, false, true);
+ }
+};
+
+$(document).ready(function() {
+ var App = OCA.Sharing.PublicApp;
+ App.initialize($('#preview'));
});
+
diff --git a/apps/files_sharing/js/share.js b/apps/files_sharing/js/share.js
index 3c7c9239a6c..ac46ab7b9e5 100644
--- a/apps/files_sharing/js/share.js
+++ b/apps/files_sharing/js/share.js
@@ -11,10 +11,9 @@
/* global OC, t, FileList, FileActions */
$(document).ready(function() {
- var disableSharing = $('#disableSharing').data('status'),
- sharesLoaded = false;
+ var sharesLoaded = false;
- if (typeof OC.Share !== 'undefined' && typeof FileActions !== 'undefined' && !disableSharing) {
+ if (typeof OC.Share !== 'undefined' && typeof FileActions !== 'undefined') {
var oldCreateRow = FileList._createRow;
FileList._createRow = function(fileData) {
var tr = oldCreateRow.apply(this, arguments);
diff --git a/apps/files_sharing/public.php b/apps/files_sharing/public.php
index e17ffc48036..a73d97f4fef 100644
--- a/apps/files_sharing/public.php
+++ b/apps/files_sharing/public.php
@@ -149,7 +149,7 @@ if (isset($path)) {
$freeSpace=OCP\Util::freeSpace($path);
$uploadLimit=OCP\Util::uploadLimit();
- $folder = new OCP\Template('files', 'index', '');
+ $folder = new OCP\Template('files', 'list', '');
$folder->assign('dir', $getPath);
$folder->assign('dirToken', $linkItem['token']);
$folder->assign('permissions', OCP\PERMISSION_READ);
@@ -162,7 +162,6 @@ if (isset($path)) {
$folder->assign('uploadLimit', $uploadLimit); // PHP upload limit
$folder->assign('allowZipDownload', intval(OCP\Config::getSystemValue('allowZipDownload', true)));
$folder->assign('usedSpacePercent', 0);
- $folder->assign('disableSharing', true);
$folder->assign('trash', false);
$tmpl->assign('folder', $folder->fetchPage());
$allowZip = OCP\Config::getSystemValue('allowZipDownload', true);