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

github.com/nextcloud/files_texteditor.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/js
diff options
context:
space:
mode:
authorMorris Jobke <hey@morrisjobke.de>2018-04-16 17:38:34 +0300
committerGitHub <noreply@github.com>2018-04-16 17:38:34 +0300
commit3aafe24e068d8f5e59199f5fe91fb9f4bd3d136a (patch)
tree8488665606a0a9a2156922496c4f6478150fa6e0 /js
parenta6ded9f277f82fe9de555af2819e6e1fe409904f (diff)
parent8ab0443f67a4732b2a1a6dcacb991c18c2eb884c (diff)
Merge pull request #71 from nextcloud/editor_preview
Add endpoint for public editor previews
Diffstat (limited to 'js')
-rw-r--r--js/public-share.js53
1 files changed, 48 insertions, 5 deletions
diff --git a/js/public-share.js b/js/public-share.js
index 7210ded..28edf39 100644
--- a/js/public-share.js
+++ b/js/public-share.js
@@ -1,8 +1,12 @@
// FIXME: Hack for single public file view since it is not attached to the fileslist
$(document).ready(function(){
- if ($('#isPublic').val() &&
- $('#mimetype').val() === 'text/markdown' &&
- $('#filesize').val() < 524288) {
+ var isPublic = $('#isPublic').val();
+ var mimetype = $('#mimetype').val();
+ var filesize = $('#filesize').val();
+
+ if (isPublic &&
+ mimetype === 'text/markdown' &&
+ filesize < 524288) {
var sharingToken = $('#sharingToken').val();
var downloadUrl = OC.generateUrl('/s/{token}/download', {token: sharingToken});
@@ -40,12 +44,12 @@ $(document).ready(function(){
previewElement
.addClass('icon-loading')
- .children().detach();
+ .children().remove();
$.get(downloadUrl).success(function(content) {
previewElement
.removeClass('icon-loading')
- .addClass('preview')
+ .addClass('preview formatted-text')
.html(DOMPurify.sanitize(
marked(content, {
renderer: renderer,
@@ -64,5 +68,44 @@ $(document).ready(function(){
previewElement
.removeClass('icon-loading');
});
+ } else if (isPublic &&
+ mimetype.substr(0, mimetype.indexOf('/')) === 'text') {
+ // Based on default text previews from "files_sharing/js/public.js", but
+ // using the public endpoint from files_texteditor for better character
+ // encoding support.
+ var previewElement = $('#imgframe');
+ previewElement
+ .addClass('icon-loading')
+ .children().remove();
+
+ var bottomMargin = 350;
+ var previewHeight = $(window).height() - bottomMargin;
+ previewHeight = Math.max(200, previewHeight);
+
+ var sharingToken = $('#sharingToken').val();
+ $.ajax({
+ url: OC.generateUrl('/apps/files_texteditor/public/{token}', { token: sharingToken }),
+ headers: {
+ 'Range': 'bytes=0-524288'
+ }
+ }).success(function(content) {
+ var textDiv = $('<div/>').addClass('text-preview default-overridden');
+ textDiv.text(content);
+
+ previewElement
+ .removeClass('icon-loading')
+ .addClass('preview')
+ .append(textDiv);
+
+ var divHeight = textDiv.height();
+ if (content.length > 50000) {
+ var ellipsis = $('<div/>').addClass('ellipsis');
+ ellipsis.html('(&#133;)');
+ ellipsis.appendTo('#imgframe');
+ }
+ if (divHeight > previewHeight) {
+ textDiv.height(previewHeight);
+ }
+ });
}
});