Preview mediatag in the drive and in diffMarked
This commit is contained in:
@@ -80,6 +80,7 @@ define([
|
||||
var faCollapseAll = 'fa-minus-square-o';
|
||||
var faShared = 'fa-shhare-alt';
|
||||
var faReadOnly = 'fa-eye';
|
||||
var faPreview = 'fa-eye';
|
||||
var faOpenInCode = 'cptools-code';
|
||||
var faRename = 'fa-pencil';
|
||||
var faColor = 'cptools-palette';
|
||||
@@ -317,6 +318,10 @@ define([
|
||||
'style': 'display:block;position:static;margin-bottom:5px;'
|
||||
}, [
|
||||
h('span.cp-app-drive-context-noAction.dropdown-item.disabled', Messages.fc_noAction || "No action possible"),
|
||||
h('li', h('a.cp-app-drive-context-preview.dropdown-item', {
|
||||
'tabindex': '-1',
|
||||
'data-icon': faPreview,
|
||||
}, 'PREVIEW')), // XXX
|
||||
h('li', h('a.cp-app-drive-context-open.dropdown-item', {
|
||||
'tabindex': '-1',
|
||||
'data-icon': faFolderOpen,
|
||||
@@ -1042,12 +1047,23 @@ define([
|
||||
return ret;
|
||||
};
|
||||
|
||||
var openFile = function (el, isRo) {
|
||||
var openFile = function (el, isRo, app) {
|
||||
var data = manager.getFileData(el);
|
||||
if (!data || (!data.href && !data.roHref)) {
|
||||
return void logError("Missing data for the file", el, data);
|
||||
}
|
||||
|
||||
var href = isRo ? data.roHref : (data.href || data.roHref);
|
||||
var parsed = Hash.parsePadUrl(href);
|
||||
|
||||
if (parsed.hashData && parsed.hashData.type === 'file' && !app) {
|
||||
common.getMediaTagPreview({
|
||||
href: data.href,
|
||||
password: data.password
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
var priv = metadataMgr.getPrivateData();
|
||||
var useUnsafe = Util.find(priv, ['settings', 'security', 'unsafeLinks']);
|
||||
if (useUnsafe !== false) { // true of undefined: use unsafe links
|
||||
@@ -1055,7 +1071,6 @@ define([
|
||||
}
|
||||
|
||||
// Get hidden hash
|
||||
var parsed = Hash.parsePadUrl(href);
|
||||
var secret = Hash.getSecrets(parsed.type, parsed.hash, data.password);
|
||||
var opts = {};
|
||||
if (isRo) { opts.view = true; }
|
||||
@@ -1175,6 +1190,7 @@ define([
|
||||
if (!$element.is('.cp-border-color-file')) {
|
||||
//hide.push('download');
|
||||
hide.push('openincode');
|
||||
hide.push('preview');
|
||||
}
|
||||
if ($element.is('.cp-border-color-sheet')) {
|
||||
hide.push('download');
|
||||
@@ -1192,6 +1208,9 @@ define([
|
||||
if (!metadata || !Util.isPlainTextFile(metadata.fileType, metadata.title)) {
|
||||
hide.push('openincode');
|
||||
}
|
||||
if (metadata.channel && metadata.channel.length < 48) {
|
||||
hide.push('preview');
|
||||
}
|
||||
if (!metadata.channel || metadata.channel.length > 32 || metadata.rtChannel) {
|
||||
hide.push('makeacopy'); // Not for blobs
|
||||
}
|
||||
@@ -1260,6 +1279,7 @@ define([
|
||||
hide.push('savelocal');
|
||||
hide.push('openincode'); // can't because of race condition
|
||||
hide.push('makeacopy');
|
||||
hide.push('preview');
|
||||
}
|
||||
if (containsFolder && paths.length > 1) {
|
||||
// Cannot open multiple folders
|
||||
@@ -1276,12 +1296,12 @@ define([
|
||||
show = ['newfolder', 'newsharedfolder', 'uploadfiles', 'uploadfolder', 'newdoc'];
|
||||
break;
|
||||
case 'tree':
|
||||
show = ['open', 'openro', 'openincode', 'expandall', 'collapseall',
|
||||
show = ['open', 'openro', 'preview', 'openincode', 'expandall', 'collapseall',
|
||||
'color', 'download', 'share', 'savelocal', 'rename', 'delete', 'makeacopy',
|
||||
'deleteowned', 'removesf', 'access', 'properties', 'hashtag'];
|
||||
break;
|
||||
case 'default':
|
||||
show = ['open', 'openro', 'share', 'openparent', 'delete', 'deleteowned', 'properties', 'access', 'hashtag', 'makeacopy'];
|
||||
show = ['open', 'openro', 'preview', 'share', 'openparent', 'delete', 'deleteowned', 'properties', 'access', 'hashtag', 'makeacopy'];
|
||||
break;
|
||||
case 'trashtree': {
|
||||
show = ['empty'];
|
||||
@@ -3980,11 +4000,15 @@ define([
|
||||
else if ($this.hasClass('cp-app-drive-context-deleteowned')) {
|
||||
deleteOwnedPaths(paths);
|
||||
}
|
||||
else if ($this.hasClass('cp-app-drive-context-preview')) {
|
||||
if (paths.length !== 1) { return; }
|
||||
el = manager.find(paths[0].path);
|
||||
openFile(el);
|
||||
}
|
||||
else if ($this.hasClass('cp-app-drive-context-open')) {
|
||||
paths.forEach(function (p) {
|
||||
var $element = p.element;
|
||||
$element.click();
|
||||
$element.dblclick();
|
||||
var el = manager.find(p.path);
|
||||
openFile(el, false, true);
|
||||
});
|
||||
}
|
||||
else if ($this.hasClass('cp-app-drive-context-openro')) {
|
||||
@@ -3999,7 +4023,7 @@ define([
|
||||
} else {
|
||||
if (!el || manager.isFolder(el)) { return; }
|
||||
}
|
||||
openFile(el, true);
|
||||
openFile(el, true, true);
|
||||
});
|
||||
}
|
||||
else if ($this.hasClass('cp-app-drive-context-makeacopy')) {
|
||||
|
||||
Reference in New Issue
Block a user