You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
48 lines
1.3 KiB
48 lines
1.3 KiB
/* |
|
* Copyright (c) 2016 |
|
* |
|
* This file is licensed under the Affero General Public License version 3 |
|
* or later. |
|
* |
|
* See the COPYING-README file. |
|
* |
|
*/ |
|
|
|
(function () { |
|
var SidebarPreview = function () { |
|
}; |
|
|
|
SidebarPreview.prototype = { |
|
attach: function (manager) { |
|
manager.addPreviewHandler('text', this.handlePreview.bind(this)); |
|
}, |
|
|
|
handlePreview: function (model, $thumbnailDiv, $thumbnailContainer, fallback) { |
|
var previewWidth = $thumbnailContainer.parent().width() + 50; // 50px for negative margins |
|
var previewHeight = previewWidth / (16 / 9); |
|
|
|
this.getFileContent(model.getFullPath()).then(function (content) { |
|
$thumbnailDiv.removeClass('icon-loading icon-32'); |
|
$thumbnailContainer.addClass('large'); |
|
$thumbnailContainer.addClass('text'); |
|
var $textPreview = $('<pre/>').text(content); |
|
$thumbnailDiv.children('.stretcher').remove(); |
|
$thumbnailDiv.append($textPreview); |
|
$thumbnailContainer.css("max-height", previewHeight); |
|
}, function () { |
|
fallback(); |
|
}); |
|
}, |
|
|
|
getFileContent: function (path) { |
|
return $.ajax({ |
|
url: OC.linkToRemoteBase('files' + path), |
|
headers: { |
|
'Range': 'bytes=0-10240' |
|
} |
|
}); |
|
} |
|
}; |
|
|
|
OC.Plugins.register('OCA.Files.SidebarPreviewManager', new SidebarPreview()); |
|
})();
|
|
|