Commit c8bae63e authored by Joshua Gould's avatar Joshua Gould

paste

parent b47362de
This source diff could not be displayed because it is too large. You can view the blob instead.
morpheus.LandingPage = function(pageOptions) { morpheus.LandingPage = function (pageOptions) {
pageOptions = $.extend({}, { pageOptions = $.extend({}, {
el : $('#vis') el: $('#vis')
}, pageOptions); }, pageOptions);
this.pageOptions = pageOptions; this.pageOptions = pageOptions;
var _this = this; var _this = this;
...@@ -11,7 +11,7 @@ morpheus.LandingPage = function(pageOptions) { ...@@ -11,7 +11,7 @@ morpheus.LandingPage = function(pageOptions) {
html.push('<div name="help" class="pull-right"></div>'); html.push('<div name="help" class="pull-right"></div>');
html html
.push('<div style="margin-bottom:10px;"><img src="//www.broadinstitute.org/cancer/software/morpheus/images/icon.svg" alt="logo" /> <span style="font-size:16px;font-family:Roboto,sans-serif;">Morpheus</span></div>'); .push('<div style="margin-bottom:10px;"><img src="//www.broadinstitute.org/cancer/software/morpheus/images/icon.svg" alt="logo" /> <span style="font-size:16px;font-family:Roboto,sans-serif;">Morpheus</span></div>');
html.push('<h4>Open your own file</h4>'); html.push('<h4>Open your own file</h4>');
html.push('<div name="formRow" class="center-block"></div>'); html.push('<div name="formRow" class="center-block"></div>');
...@@ -23,12 +23,12 @@ morpheus.LandingPage = function(pageOptions) { ...@@ -23,12 +23,12 @@ morpheus.LandingPage = function(pageOptions) {
new morpheus.HelpMenu().$el.appendTo($el.find('[name=help]')); new morpheus.HelpMenu().$el.appendTo($el.find('[name=help]'));
var formBuilder = new morpheus.FormBuilder(); var formBuilder = new morpheus.FormBuilder();
formBuilder.append({ formBuilder.append({
name : 'file', name: 'file',
showLabel : false, showLabel: false,
value : '', value: '',
type : 'file', type: 'file',
required : true, required: true,
help : morpheus.DatasetUtil.DATASET_FILE_FORMATS help: morpheus.DatasetUtil.DATASET_FILE_FORMATS
}); });
formBuilder.$form.appendTo($el.find('[name=formRow]')); formBuilder.$form.appendTo($el.find('[name=formRow]'));
this.formBuilder = formBuilder; this.formBuilder = formBuilder;
...@@ -37,23 +37,23 @@ morpheus.LandingPage = function(pageOptions) { ...@@ -37,23 +37,23 @@ morpheus.LandingPage = function(pageOptions) {
}; };
morpheus.LandingPage.prototype = { morpheus.LandingPage.prototype = {
dispose : function() { dispose: function () {
this.formBuilder.setValue('file', ''); this.formBuilder.setValue('file', '');
this.$el.hide(); this.$el.hide();
$(window) $(window)
.off( .off(
'paste.morpheus drop.morpheus dragover.morpheus dragenter.morpheus beforeunload.morpheus'); 'paste.morpheus drop.morpheus dragover.morpheus dragenter.morpheus beforeunload.morpheus');
$(window).on('beforeunload.morpheus', function() { $(window).on('beforeunload.morpheus', function () {
return 'Are you sure you want to close Morpheus?'; return 'Are you sure you want to close Morpheus?';
}); });
this.formBuilder.off('change'); this.formBuilder.off('change');
}, },
show : function() { show: function () {
var _this = this; var _this = this;
if (!this.sampleDatasets) { if (!this.sampleDatasets) {
this.sampleDatasets = new morpheus.SampleDatasets({ this.sampleDatasets = new morpheus.SampleDatasets({
$el : this.$sampleDatasetsEl, $el: this.$sampleDatasetsEl,
callback : function(heatMapOptions) { callback: function (heatMapOptions) {
_this.open(heatMapOptions); _this.open(heatMapOptions);
} }
}); });
...@@ -61,42 +61,48 @@ morpheus.LandingPage.prototype = { ...@@ -61,42 +61,48 @@ morpheus.LandingPage.prototype = {
this.$el.show(); this.$el.show();
this.formBuilder.on('change', function(e) { this.formBuilder.on('change', function (e) {
var value = e.value; var value = e.value;
if (value !== '' && value != null) { if (value !== '' && value != null) {
_this.openFile(value); _this.openFile(value);
} }
}); });
$(window).on('paste.morpheus', function(e) { $(window).on('paste.morpheus', function (e) {
var tagName = e.target.tagName;
if (tagName == 'INPUT' || tagName == 'SELECT' || tagName == 'TEXTAREA') {
return;
}
var text = e.originalEvent.clipboardData.getData('text/plain'); var text = e.originalEvent.clipboardData.getData('text/plain');
if (text != null && text.length > 0) { if (text != null && text.length > 0) {
var blob = new Blob([ text ]); var blob = new Blob([text]);
var url = window.URL.createObjectURL(blob); var url = window.URL.createObjectURL(blob);
e.preventDefault(); e.preventDefault();
e.stopPropagation(); e.stopPropagation();
_this.openFile(url); _this.openFile(url);
} }
}).on('dragover.morpheus dragenter.morpheus', function(e) {
}).on('dragover.morpheus dragenter.morpheus', function (e) {
e.preventDefault(); e.preventDefault();
e.stopPropagation(); e.stopPropagation();
}).on( }).on(
'drop.morpheus', 'drop.morpheus',
function(e) { function (e) {
if (e.originalEvent.dataTransfer if (e.originalEvent.dataTransfer
&& e.originalEvent.dataTransfer.files.length) { && e.originalEvent.dataTransfer.files.length) {
e.preventDefault(); e.preventDefault();
e.stopPropagation(); e.stopPropagation();
var files = e.originalEvent.dataTransfer.files; var files = e.originalEvent.dataTransfer.files;
_this.openFile(files[0]); _this.openFile(files[0]);
} else if (e.originalEvent.dataTransfer) { } else if (e.originalEvent.dataTransfer) {
var url = e.originalEvent.dataTransfer.getData('URL'); var url = e.originalEvent.dataTransfer.getData('URL');
e.preventDefault(); e.preventDefault();
e.stopPropagation(); e.stopPropagation();
_this.openFile(url); _this.openFile(url);
} }
}); });
}, },
open : function(options) { open: function (options) {
this.dispose(); this.dispose();
if (this.heatmap == null) { if (this.heatmap == null) {
options.landingPage = this; options.landingPage = this;
...@@ -108,21 +114,20 @@ morpheus.LandingPage.prototype = { ...@@ -108,21 +114,20 @@ morpheus.LandingPage.prototype = {
new morpheus.HeatMap(options); new morpheus.HeatMap(options);
} }
}, },
openFile : function(value) { openFile: function (value) {
var _this = this; var _this = this;
var options = { var options = {
dataset : value dataset: value
}; };
var fileName = morpheus.Util.getFileName(value); var fileName = morpheus.Util.getFileName(value);
morpheus.OpenDatasetTool.fileExtensionPrompt(fileName, function( morpheus.OpenDatasetTool.fileExtensionPrompt(fileName, function (readOptions) {
readOptions) {
if (readOptions) { if (readOptions) {
var dataset = options.dataset; var dataset = options.dataset;
options.dataset = { options.dataset = {
file : dataset, file: dataset,
options : {} options: {}
}; };
for ( var key in readOptions) { for (var key in readOptions) {
options.dataset.options[key] = readOptions[key]; options.dataset.options[key] = readOptions[key];
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment