Add dummy open-in-code in drive context menu
This commit is contained in:
@@ -319,6 +319,25 @@ define([], function () {
|
|||||||
return window.innerHeight < 800 || window.innerWidth < 800;
|
return window.innerHeight < 800 || window.innerWidth < 800;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Util.isPlainTextFile = function (metadata) {
|
||||||
|
if (!metadata || !metadata.href) { return; }
|
||||||
|
console.log("%c" + metadata.title + " : " + metadata.fileType, "color: #3a7");
|
||||||
|
console.log(metadata);
|
||||||
|
var href = metadata.roHref || metadata.href;
|
||||||
|
// is it a file ?
|
||||||
|
if (!href || href.indexOf("/file/") === -1) { return false; }
|
||||||
|
// does its type begins with "text/"
|
||||||
|
if (metadata.fileType.indexOf("text/") === 0) { return true; }
|
||||||
|
// no type and no file extension -> let's guess it's plain text
|
||||||
|
var parsedName = /^(\.?.+?)(\.[^.]+)?$/.exec(metadata.title) || [];
|
||||||
|
if (!metadata.fileType && !parsedName[2]) { return true; }
|
||||||
|
// other exceptions
|
||||||
|
if (metadata.fileType === 'application/x-javascript') { return true; }
|
||||||
|
if (metadata.fileType === 'application/xml') { return true; }
|
||||||
|
return false;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
return Util;
|
return Util;
|
||||||
});
|
});
|
||||||
}(self));
|
}(self));
|
||||||
|
|||||||
@@ -81,6 +81,7 @@ define([
|
|||||||
var faCollapseAll = 'fa-minus-square-o';
|
var faCollapseAll = 'fa-minus-square-o';
|
||||||
var faShared = 'fa-shhare-alt';
|
var faShared = 'fa-shhare-alt';
|
||||||
var faReadOnly = 'fa-eye';
|
var faReadOnly = 'fa-eye';
|
||||||
|
var faOpenInCode = 'cptools-code';
|
||||||
var faRename = 'fa-pencil';
|
var faRename = 'fa-pencil';
|
||||||
var faColor = 'cptools-palette';
|
var faColor = 'cptools-palette';
|
||||||
var faTrash = 'fa-trash';
|
var faTrash = 'fa-trash';
|
||||||
@@ -315,6 +316,10 @@ define([
|
|||||||
'tabindex': '-1',
|
'tabindex': '-1',
|
||||||
'data-icon': faReadOnly,
|
'data-icon': faReadOnly,
|
||||||
}, Messages.fc_open_ro)),
|
}, Messages.fc_open_ro)),
|
||||||
|
h('li', h('a.cp-app-drive-context-openincode.dropdown-item', {
|
||||||
|
'tabindex': '-1',
|
||||||
|
'data-icon': faOpenInCode,
|
||||||
|
}, Messages.fc_openInCode || "Open in Code")),
|
||||||
$separator.clone()[0],
|
$separator.clone()[0],
|
||||||
h('li', h('a.cp-app-drive-context-expandall.dropdown-item', {
|
h('li', h('a.cp-app-drive-context-expandall.dropdown-item', {
|
||||||
'tabindex': '-1',
|
'tabindex': '-1',
|
||||||
@@ -1019,6 +1024,11 @@ define([
|
|||||||
} else if ($element.is('.cp-app-drive-element-noreadonly')) {
|
} else if ($element.is('.cp-app-drive-element-noreadonly')) {
|
||||||
hide.push('openro'); // Remove open 'view' mode
|
hide.push('openro'); // Remove open 'view' mode
|
||||||
}
|
}
|
||||||
|
// if it's not a plain text file
|
||||||
|
var metadata = manager.getFileData(manager.find(path));
|
||||||
|
if (!metadata || !Util.isPlainTextFile(metadata)) {
|
||||||
|
hide.push('openincode');
|
||||||
|
}
|
||||||
} else if ($element.is('.cp-app-drive-element-sharedf')) {
|
} else if ($element.is('.cp-app-drive-element-sharedf')) {
|
||||||
if (containsFolder) {
|
if (containsFolder) {
|
||||||
// More than 1 folder selected: cannot create a new subfolder
|
// More than 1 folder selected: cannot create a new subfolder
|
||||||
@@ -1028,6 +1038,7 @@ define([
|
|||||||
}
|
}
|
||||||
containsFolder = true;
|
containsFolder = true;
|
||||||
hide.push('openro');
|
hide.push('openro');
|
||||||
|
hide.push('openincode');
|
||||||
hide.push('hashtag');
|
hide.push('hashtag');
|
||||||
hide.push('delete');
|
hide.push('delete');
|
||||||
//hide.push('deleteowned');
|
//hide.push('deleteowned');
|
||||||
@@ -1040,6 +1051,7 @@ define([
|
|||||||
}
|
}
|
||||||
containsFolder = true;
|
containsFolder = true;
|
||||||
hide.push('openro');
|
hide.push('openro');
|
||||||
|
hide.push('openincode');
|
||||||
hide.push('properties');
|
hide.push('properties');
|
||||||
hide.push('share');
|
hide.push('share');
|
||||||
hide.push('hashtag');
|
hide.push('hashtag');
|
||||||
@@ -1089,7 +1101,7 @@ define([
|
|||||||
show = ['newfolder', 'newsharedfolder', 'newdoc'];
|
show = ['newfolder', 'newsharedfolder', 'newdoc'];
|
||||||
break;
|
break;
|
||||||
case 'tree':
|
case 'tree':
|
||||||
show = ['open', 'openro', 'expandall', 'collapseall', 'color', 'download', 'share', 'rename', 'delete', 'deleteowned', 'removesf', 'properties', 'hashtag'];
|
show = ['open', 'openro', 'openincode', 'expandall', 'collapseall', 'color', 'download', 'share', 'rename', 'delete', 'deleteowned', 'removesf', 'properties', 'hashtag'];
|
||||||
break;
|
break;
|
||||||
case 'default':
|
case 'default':
|
||||||
show = ['open', 'openro', 'share', 'openparent', 'delete', 'deleteowned', 'properties', 'hashtag'];
|
show = ['open', 'openro', 'share', 'openparent', 'delete', 'deleteowned', 'properties', 'hashtag'];
|
||||||
@@ -3525,6 +3537,15 @@ define([
|
|||||||
openFile(null, href);
|
openFile(null, href);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
else if ($(this).hasClass('cp-app-drive-context-openincode')) {
|
||||||
|
paths.forEach(function (p) {
|
||||||
|
console.info("p", p);
|
||||||
|
var el = manager.find(p.path);
|
||||||
|
var metadata = manager.getFileData(el);
|
||||||
|
console.log(el);
|
||||||
|
// open code from template
|
||||||
|
});
|
||||||
|
}
|
||||||
else if ($(this).hasClass('cp-app-drive-context-expandall') ||
|
else if ($(this).hasClass('cp-app-drive-context-expandall') ||
|
||||||
$(this).hasClass('cp-app-drive-context-collapseall')) {
|
$(this).hasClass('cp-app-drive-context-collapseall')) {
|
||||||
if (paths.length !== 1) { return; }
|
if (paths.length !== 1) { return; }
|
||||||
|
|||||||
Reference in New Issue
Block a user