diff --git a/app/js/app-menu.js b/app/js/app-menu.js index 471ec534..ebbeb1b1 100644 --- a/app/js/app-menu.js +++ b/app/js/app-menu.js @@ -13,7 +13,7 @@ module.exports = function() { var dynamicResize = appUtilities.dynamicResize.bind(appUtilities); var layoutPropertiesView, generalPropertiesView,neighborhoodQueryView, pathsBetweenQueryView, pathsFromToQueryView, commonStreamQueryView, pathsByURIQueryView, promptSaveView, promptConfirmationView, - promptMapTypeView, promptInvalidTypeWarning, promtErrorPD2AF, promptInvalidFileView, promptFileConversionErrorView, promptInvalidURIWarning, reactionTemplateView, gridPropertiesView, fontPropertiesView, fileSaveView,saveUserPreferencesView, loadUserPreferencesView; + promptMapTypeView, promptInvalidTypeWarning, promtErrorPD2AF, promptInvalidFileView, promptFileConversionErrorView, promptInvalidURIWarning, reactionTemplateView, gridPropertiesView, fontPropertiesView, fileSaveView,saveUserPreferencesView, loadUserPreferencesView, sifMapWarning; function validateSBGNML(xml) { $.ajax({ @@ -158,6 +158,7 @@ module.exports = function() { promptMapTypeView = appUtilities.promptMapTypeView = new BackboneViews.PromptMapTypeView({el: '#prompt-mapType-table'}); promptInvalidFileView = appUtilities.promptInvalidFileView = new BackboneViews.PromptInvalidFileView({el: '#prompt-invalidFile-table'}); promptInvalidTypeWarning = appUtilities.promptInvalidTypeWarning = new BackboneViews.PromptInvalidTypeWarning({el: '#prompt-errorInvalidType-table'}); + sifMapWarning = appUtilities.sifMapWarning = new BackboneViews.SifMapWarning({el: '#errorSifMap-table'}); promtErrorPD2AF = appUtilities.promtErrorPD2AF = new BackboneViews.PromtErrorPD2AF({el: '#prompt-errorPD2AF-table'}); promptFileConversionErrorView = appUtilities.promptFileConversionErrorView = new BackboneViews.PromptFileConversionErrorView({el: '#prompt-fileConversionError-table'}); reactionTemplateView = appUtilities.reactionTemplateView = new BackboneViews.ReactionTemplateView({el: '#sbgn-bricks-table'}); @@ -450,10 +451,22 @@ module.exports = function() { }); $("#import-sif-style").click(function () { + //Check if current map type is SIF + var mapType = appUtilities.getActiveChiseInstance().elementUtilities.mapType; + if (mapType != "SIF") { + sifMapWarning.render(); + return; + } $("#sif-style-input").trigger('click'); }); $("#import-sif-layout").click(function () { + //Check if current map type is SIF + var mapType = appUtilities.getActiveChiseInstance().elementUtilities.mapType; + if (mapType != "SIF") { + sifMapWarning.render(); + return; + } $("#sif-layout-input").trigger('click'); }); diff --git a/app/js/backbone-views.js b/app/js/backbone-views.js index 09a138af..82fe96fc 100644 --- a/app/js/backbone-views.js +++ b/app/js/backbone-views.js @@ -3225,7 +3225,7 @@ var FileSaveView = Backbone.View.extend({ self.template = _.template($("#file-save-template").html()); // Check for unsupported conversions - map_type = appUtilities.getActiveChiseInstance().elementUtilities.mapType; + mapType = appUtilities.getActiveChiseInstance().elementUtilities.mapType; var unsupportedConversions = { "PD": ["sif", "sifLayout"], "AF": ["sif", "sifLayout", "sbml", "celldesigner", "gpml"], @@ -3235,7 +3235,7 @@ var FileSaveView = Backbone.View.extend({ "HybridAny": ["sbgn", "sif", "sifLayout", "sbml", "celldesigner", "gpml"] }; - if (unsupportedConversions[map_type] && unsupportedConversions[map_type].includes(fileformat)) { + if (unsupportedConversions[mapType] && unsupportedConversions[mapType].includes(fileformat)) { var exportErrorView = new ExportErrorView({el: "#exportError-table",}); exportErrorView.render(); document.getElementById("export-error-message").innerText = "Not applicable for the current map type!"; @@ -3331,6 +3331,20 @@ var FileSaveView = Backbone.View.extend({ var saveAsFcn = chiseInstance.saveAsNwt; if (fileformat === "sbgn") { + if (chiseInstance.elementUtilities.mapType === "SBML") { + console.log("fileformat is sbgn and maptype is SBML"); + chiseInstance.saveAsSbgnmlForSBML(filename, function () { + var promptSbmlConversionErrorView = + new PromptSbmlConversionErrorView({ + el: "#prompt-sbmlConversionError-table", + }); + promptSbmlConversionErrorView.render(); + document.getElementById("file-conversion-error-message").innerText = + "Conversion service is not available!"; + } + ); + return; + } saveAsFcn = chiseInstance.saveAsSbgnml; } @@ -3394,14 +3408,27 @@ var FileSaveView = Backbone.View.extend({ "Conversion service is not available!"; }); } else if (fileformat === "sbml") { - chiseInstance.saveAsSbml(filename, function (data, errorMessage) { - var promptSbmlConversionErrorView = - new PromptSbmlConversionErrorView({ - el: "#prompt-sbmlConversionError-table", - }); - promptSbmlConversionErrorView.render(data, errorMessage); - //document.getElementById("file-conversion-error-message").innerText = "Conversion service is not available!"; - }); + + if (mapType === "PD") { + chiseInstance.saveAsSbml(filename, function (data, errorMessage) { + var promptSbmlConversionErrorView = + new PromptSbmlConversionErrorView({ + el: "#prompt-sbmlConversionError-table", + }); + promptSbmlConversionErrorView.render(data, errorMessage); + //document.getElementById("file-conversion-error-message").innerText = "Conversion service is not available!"; + }); + } else if (mapType === "SBML") { + chiseInstance.saveSbmlForSBML(filename, function (data, errorMessage) { + var promptSbmlConversionErrorView = + new PromptSbmlConversionErrorView({ + el: "#prompt-sbmlConversionError-table", + }); + promptSbmlConversionErrorView.render(data, errorMessage); + //document.getElementById("file-conversion-error-message").innerText = "Conversion service is not available!"; + }); + } + } else if (fileformat === "gpml") { chiseInstance.saveAsGpml(filename, function (data, errorMessage) { var promptSbmlConversionErrorView = @@ -4335,6 +4362,30 @@ var PromptInvalidTypeWarning = Backbone.View.extend({ return this; }, }); + +var SifMapWarning = Backbone.View.extend({ + initialize: function () { + var self = this; + self.template = _.template($("#sifMapWarning-template").html()); + }, + render: function () { + var self = this; + self.template = _.template($("#sifMapWarning-template").html()); + + $(self.el).html(self.template); + $(self.el).modal("show"); + + $(document) + .off("click", "#sifMapWarning-confirm") + .on("click", "#sifMapWarning-confirm", function (evt) { + $(self.el).modal("toggle"); + }); + + return this; + }, +}); + + var PromtErrorPD2AF = Backbone.View.extend({ initialize: function () { var self = this; @@ -6940,6 +6991,7 @@ module.exports = { PromptMapTypeView: PromptMapTypeView, PromptInvalidFileView: PromptInvalidFileView, PromptInvalidTypeWarning: PromptInvalidTypeWarning, + SifMapWarning: SifMapWarning, PromtErrorPD2AF: PromtErrorPD2AF, PromptFileConversionErrorView: PromptFileConversionErrorView, ExportErrorView: ExportErrorView, diff --git a/index.html b/index.html index 8a726534..7b932133 100644 --- a/index.html +++ b/index.html @@ -2588,6 +2588,13 @@ > + + +