From 45aea5a8b33beae7f531d46fd0f651d9c45060cb Mon Sep 17 00:00:00 2001 From: Piotr Gawron <piotr.gawron@uni.lu> Date: Thu, 2 Aug 2018 17:20:18 +0200 Subject: [PATCH] configurationAdminPanel separates options into tabs --- frontend-js/src/main/js/Configuration.js | 5 + .../js/gui/admin/ConfigurationAdminPanel.js | 163 ++++++++---------- .../gui/admin/ConfigurationAdminPanel-test.js | 29 ++-- ...-datatable-length=10&token=ADMIN_TOKEN_ID& | 1 + 4 files changed, 93 insertions(+), 105 deletions(-) create mode 100644 frontend-js/testFiles/apiCalls/users/admin.updatePreferences/PATCH_preferences.gui-preferences.admin-configuration-datatable-length=10&token=ADMIN_TOKEN_ID& diff --git a/frontend-js/src/main/js/Configuration.js b/frontend-js/src/main/js/Configuration.js index 871d070dcc..be283044b0 100644 --- a/frontend-js/src/main/js/Configuration.js +++ b/frontend-js/src/main/js/Configuration.js @@ -309,6 +309,11 @@ Configuration.prototype.getPrivilegeTypes = function () { return this._privilegeTypes; }; +/** + * + * @param name + * @returns {PrivilegeType} + */ Configuration.prototype.getPrivilegeType = function (name) { var self = this; var privilegeTypes = self.getPrivilegeTypes(); diff --git a/frontend-js/src/main/js/gui/admin/ConfigurationAdminPanel.js b/frontend-js/src/main/js/gui/admin/ConfigurationAdminPanel.js index 4d19d6bb4b..425efcb4bc 100644 --- a/frontend-js/src/main/js/gui/admin/ConfigurationAdminPanel.js +++ b/frontend-js/src/main/js/gui/admin/ConfigurationAdminPanel.js @@ -1,18 +1,13 @@ "use strict"; -/* exported Promise*/ - var AbstractAdminPanel = require('./AbstractAdminPanel'); var PrivilegeType = require('../../map/data/PrivilegeType'); var Functions = require('../../Functions'); var GuiConnector = require('../../GuiConnector'); -/* exported logger */ -// noinspection JSUnusedLocalSymbols var logger = require('../../logger'); -// noinspection JSUnusedLocalSymbols var Promise = require("bluebird"); var xss = require("xss"); @@ -31,6 +26,7 @@ function ConfigurationAdminPanel(params) { AbstractAdminPanel.call(this, params); var self = this; + $(self.getElement()).removeClass("pre-scrollable"); $(self.getElement()).addClass("minerva-configuration-tab"); self._createGui(); @@ -45,21 +41,57 @@ ConfigurationAdminPanel.prototype.constructor = ConfigurationAdminPanel; */ ConfigurationAdminPanel.prototype._createGui = function () { var self = this; - var configurationDiv = Functions.createElement({ - type: "div" - }); - self.getElement().appendChild(configurationDiv); + self.getGuiUtils().initTabContent(self); - configurationDiv.appendChild(Functions.createElement({ - type: "h3", - content: 'Configuration category: <select name="categorySelect"></select>', - xss: false - })); - configurationDiv.appendChild(Functions.createElement({ - type: "br" - })); + $(self.getElement()).on("click", "[name='saveOption']", function () { + var button = this; + return self.saveOption($(button).attr("data")).then(null, GuiConnector.alert); + }); + $(self.getElement()).on("input", ".minerva-color-input", function () { + var input = this; + var value = $(input).val(); + var type = $(input).attr("data"); + if (value.length !== 6) { + value = "FFFFFF"; + } + $("[name='edit-color-" + type + "']", self.getElement()).css("background-color", "#" + value); + }); + $(self.getElement()).on("click", ".minerva-color-button", function () { + var button = this; + var value = $(button).css("background-color"); + var type = $(button).attr("data"); + // noinspection JSUnusedGlobalSymbols + var colorPicker = $(button).parent().spectrum({ + color: value, + move: function (color) { + var value = color.toHexString().replace("#", ''); + $("[name='edit-" + type + "']", self.getElement()).val(value); + $("[name='edit-color-" + type + "']", self.getElement()).css("background-color", "#" + value); + }, + hide: function () { + colorPicker.spectrum("destroy"); + } + }); + return new Promise.delay(1).then(function () { + colorPicker.show(); + colorPicker.spectrum("show"); + }); + }); +}; +/** + * + * @param {ConfigurationOption[]} options + * @param {string} type + */ +ConfigurationAdminPanel.prototype.createOptionsTable = function (options, type) { + var self = this; + + var configurationDiv = Functions.createElement({ + type: "div", + className: "pre-scrollable" + }); var configurationTable = Functions.createElement({ type: "table", name: "configurationTable", @@ -69,10 +101,8 @@ ConfigurationAdminPanel.prototype._createGui = function () { configurationDiv.appendChild(configurationTable); // noinspection JSUnusedGlobalSymbols - $(configurationTable).DataTable({ + var dataTable = $(configurationTable).DataTable({ columns: [{ - title: 'Category' - }, { title: 'Name' }, { title: 'Value' @@ -95,40 +125,19 @@ ConfigurationAdminPanel.prototype._createGui = function () { } }); - $(configurationTable).on("click", "[name='saveOption']", function () { - var button = this; - return self.saveOption($(button).attr("data")).then(null, GuiConnector.alert); - }); - $(configurationTable).on("input", ".minerva-color-input", function () { - var input = this; - var value = $(input).val(); - var type = $(input).attr("data"); - if (value.length !== 6) { - value = "FFFFFF"; + var data = []; + + for (var i = 0; i < options.length; i++) { + var option = options[i]; + if (option.getGroup() === type) { + var rowData = self.optionToTableRow(option); + data.push(rowData); } - $("[name='edit-color-" + type + "']", configurationTable).css("background-color", "#" + value); - }); - $(configurationTable).on("click", ".minerva-color-button", function () { - var button = this; - var value = $(button).css("background-color"); - var type = $(button).attr("data"); - // noinspection JSUnusedGlobalSymbols - var colorPicker = $(button).parent().spectrum({ - color: value, - move: function (color) { - var value = color.toHexString().replace("#", ''); - $("[name='edit-" + type + "']", configurationTable).val(value); - $("[name='edit-color-" + type + "']", configurationTable).css("background-color", "#" + value); - }, - hide: function () { - colorPicker.spectrum("destroy"); - } - }); - return new Promise.delay(1).then(function () { - colorPicker.show(); - colorPicker.spectrum("show"); - }); - }); + } + + dataTable.clear().rows.add(data).draw(); + + self.getGuiUtils().addTab(self, {name: type, content: configurationDiv}); }; /** @@ -141,61 +150,42 @@ ConfigurationAdminPanel.prototype.init = function () { var configuration = self.getConfiguration(); var privilege = configuration.getPrivilegeType(PrivilegeType.CONFIGURATION_MANAGE); if (user.hasPrivilege(privilege)) { - self.setOptions(configuration.getOptions(), true); + self.setOptions(configuration.getOptions()); } else { self.disablePanel("You have no privilege to manage configuration"); } + }).then(function(){ }); }; /** * * @param {ConfigurationOption[]} options - * @param {boolean} editable */ -ConfigurationAdminPanel.prototype.setOptions = function (options, editable) { +ConfigurationAdminPanel.prototype.setOptions = function (options) { var self = this; - var dataTable = $("[name='configurationTable']", self.getElement()).DataTable(); - var data = []; - - var categoryDropDown = $("[name='categorySelect']", self.getElement()); - categoryDropDown.empty(); var categories = {"": true}; - categoryDropDown.append('<option value=""></option>'); for (var i = 0; i < options.length; i++) { var option = options[i]; - var rowData = self.optionToTableRow(option, editable); - data.push(rowData); var group = option.getGroup(); if (categories[group] === undefined && group !== undefined) { categories[group] = true; - categoryDropDown.append('<option value="' + group + '">' + group + '</option>') + self.createOptionsTable(options, group); } } - categoryDropDown.change(function () { - logger.warn($(this).val()); - dataTable.column(0).search($(this).val()).draw(); - }); - - dataTable.clear().rows.add(data).draw(); }; /** * * @param {ConfigurationOption} option - * @param {boolean} editable * @returns {Array} */ -ConfigurationAdminPanel.prototype.optionToTableRow = function (option, editable) { +ConfigurationAdminPanel.prototype.optionToTableRow = function (option) { var value = option.getValue(); var row = []; var editOption; - var disabled = ''; - if (!editable) { - disabled = " disabled "; - } if (option.getValueType() === "STRING" || option.getValueType() === "INTEGER" || @@ -221,14 +211,9 @@ ConfigurationAdminPanel.prototype.optionToTableRow = function (option, editable) logger.warn("Don't know how to handle: " + option.getValueType()); editOption = "<input name='edit-" + option.getType() + "' value='" + value + "' readonly/>"; } - var group = option.getGroup(); - if (group === undefined) { - group = ""; - } - row[0] = group; - row[1] = option.getCommonName(); - row[2] = editOption; - row[3] = "<button name='saveOption' data='" + option.getType() + "' " + disabled + "><i class='fa fa-save' style='font-size:17px'></i></button>"; + row[0] = option.getCommonName(); + row[1] = editOption; + row[2] = "<button name='saveOption' data='" + option.getType() + "' ><i class='fa fa-save' style='font-size:17px'></i></button>"; return row; }; @@ -262,9 +247,11 @@ ConfigurationAdminPanel.prototype.saveOption = function (type) { */ ConfigurationAdminPanel.prototype.destroy = function () { var self = this; - var table = $("[name='configurationTable']", self.getElement())[0]; - if ($.fn.DataTable.isDataTable(table)) { - $(table).DataTable().destroy(); + var tables = $("[name='configurationTable']", self.getElement()); + for (var i = 0; i < tables.length; i++) { + if ($.fn.DataTable.isDataTable(tables[i])) { + $(tables[i]).DataTable().destroy(); + } } }; diff --git a/frontend-js/src/test/js/gui/admin/ConfigurationAdminPanel-test.js b/frontend-js/src/test/js/gui/admin/ConfigurationAdminPanel-test.js index 88c7e88371..e587f9681a 100644 --- a/frontend-js/src/test/js/gui/admin/ConfigurationAdminPanel-test.js +++ b/frontend-js/src/test/js/gui/admin/ConfigurationAdminPanel-test.js @@ -10,10 +10,14 @@ var logger = require('../../logger'); var chai = require('chai'); var assert = chai.assert; -function createConfigurationTab(configuration) { +/** + * + * @returns {ConfigurationAdminPanel} + */ +function createConfigurationTab() { return new ConfigurationAdminPanel({ element: testDiv, - configuration: configuration, + configuration: helper.getConfiguration(), serverConnector: ServerConnector }); } @@ -23,11 +27,8 @@ describe('ConfigurationAdminPanel', function () { describe('init', function () { it('admin', function () { helper.loginAsAdmin(); - var mapTab; - return ServerConnector.getConfiguration().then(function (configuration) { - mapTab = createConfigurationTab(configuration); - return mapTab.init(); - }).then(function () { + var mapTab = createConfigurationTab(); + return mapTab.init().then(function () { assert.equal(0, logger.getWarnings().length); assert.ok($("[name='saveOption']", testDiv).length > 0); assert.notOk($("[name='saveOption']", testDiv).prop('disabled')); @@ -36,11 +37,8 @@ describe('ConfigurationAdminPanel', function () { }); it('no access', function () { helper.loginWithoutAccess(); - var mapTab; - return ServerConnector.getConfiguration().then(function (configuration) { - mapTab = createConfigurationTab(configuration); - return mapTab.init(); - }).then(function () { + var mapTab = createConfigurationTab(); + return mapTab.init().then(function () { assert.equal(0, logger.getWarnings().length); assert.equal($("[name='saveOption']", testDiv).length, 0); return mapTab.destroy(); @@ -49,11 +47,8 @@ describe('ConfigurationAdminPanel', function () { }); it('saveOption', function () { helper.loginAsAdmin(); - var mapTab; - return ServerConnector.getConfiguration().then(function (configuration) { - mapTab = createConfigurationTab(configuration); - return mapTab.init(); - }).then(function () { + var mapTab = createConfigurationTab(); + return mapTab.init().then(function () { return mapTab.saveOption(ConfigurationType.DEFAULT_MAP); }).then(function () { return mapTab.destroy(); diff --git a/frontend-js/testFiles/apiCalls/users/admin.updatePreferences/PATCH_preferences.gui-preferences.admin-configuration-datatable-length=10&token=ADMIN_TOKEN_ID& b/frontend-js/testFiles/apiCalls/users/admin.updatePreferences/PATCH_preferences.gui-preferences.admin-configuration-datatable-length=10&token=ADMIN_TOKEN_ID& new file mode 100644 index 0000000000..c194425b27 --- /dev/null +++ b/frontend-js/testFiles/apiCalls/users/admin.updatePreferences/PATCH_preferences.gui-preferences.admin-configuration-datatable-length=10&token=ADMIN_TOKEN_ID& @@ -0,0 +1 @@ +{"preferences":{"annotators-parameters":{},"element-annotators":{"lcsb.mapviewer.model.map.BioEntity":[],"lcsb.mapviewer.model.map.compartment.BottomSquareCompartment":["Gene Ontology"],"lcsb.mapviewer.model.map.compartment.Compartment":["Gene Ontology"],"lcsb.mapviewer.model.map.compartment.LeftSquareCompartment":["Gene Ontology"],"lcsb.mapviewer.model.map.compartment.OvalCompartment":["Gene Ontology"],"lcsb.mapviewer.model.map.compartment.PathwayCompartment":["Gene Ontology"],"lcsb.mapviewer.model.map.compartment.RightSquareCompartment":["Gene Ontology"],"lcsb.mapviewer.model.map.compartment.SquareCompartment":["Gene Ontology"],"lcsb.mapviewer.model.map.compartment.TopSquareCompartment":["Gene Ontology"],"lcsb.mapviewer.model.map.reaction.Reaction":[],"lcsb.mapviewer.model.map.reaction.type.BooleanLogicGateReaction":[],"lcsb.mapviewer.model.map.reaction.type.DissociationReaction":[],"lcsb.mapviewer.model.map.reaction.type.HeterodimerAssociationReaction":[],"lcsb.mapviewer.model.map.reaction.type.KnownTransitionOmittedReaction":[],"lcsb.mapviewer.model.map.reaction.type.NegativeInfluenceReaction":[],"lcsb.mapviewer.model.map.reaction.type.PositiveInfluenceReaction":[],"lcsb.mapviewer.model.map.reaction.type.ReducedModulationReaction":[],"lcsb.mapviewer.model.map.reaction.type.ReducedPhysicalStimulationReaction":[],"lcsb.mapviewer.model.map.reaction.type.ReducedTriggerReaction":[],"lcsb.mapviewer.model.map.reaction.type.StateTransitionReaction":[],"lcsb.mapviewer.model.map.reaction.type.TranscriptionReaction":[],"lcsb.mapviewer.model.map.reaction.type.TranslationReaction":[],"lcsb.mapviewer.model.map.reaction.type.TransportReaction":[],"lcsb.mapviewer.model.map.reaction.type.TruncationReaction":[],"lcsb.mapviewer.model.map.reaction.type.UnknownNegativeInfluenceReaction":[],"lcsb.mapviewer.model.map.reaction.type.UnknownPositiveInfluenceReaction":[],"lcsb.mapviewer.model.map.reaction.type.UnknownReducedModulationReaction":[],"lcsb.mapviewer.model.map.reaction.type.UnknownReducedPhysicalStimulationReaction":[],"lcsb.mapviewer.model.map.reaction.type.UnknownReducedTriggerReaction":[],"lcsb.mapviewer.model.map.reaction.type.UnknownTransitionReaction":[],"lcsb.mapviewer.model.map.species.AntisenseRna":[],"lcsb.mapviewer.model.map.species.Chemical":["Chebi"],"lcsb.mapviewer.model.map.species.Complex":["Gene Ontology"],"lcsb.mapviewer.model.map.species.Degraded":[],"lcsb.mapviewer.model.map.species.Drug":[],"lcsb.mapviewer.model.map.species.Element":[],"lcsb.mapviewer.model.map.species.Gene":["HGNC"],"lcsb.mapviewer.model.map.species.GenericProtein":["Biocompendium","HGNC"],"lcsb.mapviewer.model.map.species.Ion":["Chebi"],"lcsb.mapviewer.model.map.species.IonChannelProtein":["Biocompendium","HGNC"],"lcsb.mapviewer.model.map.species.Phenotype":["Gene Ontology"],"lcsb.mapviewer.model.map.species.Protein":["Biocompendium","HGNC"],"lcsb.mapviewer.model.map.species.ReceptorProtein":["Biocompendium","HGNC"],"lcsb.mapviewer.model.map.species.Rna":["HGNC"],"lcsb.mapviewer.model.map.species.SimpleMolecule":["Chebi"],"lcsb.mapviewer.model.map.species.Species":[],"lcsb.mapviewer.model.map.species.TruncatedProtein":["Biocompendium","HGNC"],"lcsb.mapviewer.model.map.species.Unknown":[]},"element-required-annotations":{"lcsb.mapviewer.model.map.BioEntity":{"annotation-list":[],"require-at-least-one":true},"lcsb.mapviewer.model.map.compartment.BottomSquareCompartment":{"annotation-list":[],"require-at-least-one":true},"lcsb.mapviewer.model.map.compartment.Compartment":{"annotation-list":[],"require-at-least-one":true},"lcsb.mapviewer.model.map.compartment.LeftSquareCompartment":{"annotation-list":[],"require-at-least-one":true},"lcsb.mapviewer.model.map.compartment.OvalCompartment":{"annotation-list":[],"require-at-least-one":true},"lcsb.mapviewer.model.map.compartment.PathwayCompartment":{"annotation-list":[],"require-at-least-one":true},"lcsb.mapviewer.model.map.compartment.RightSquareCompartment":{"annotation-list":[],"require-at-least-one":true},"lcsb.mapviewer.model.map.compartment.SquareCompartment":{"annotation-list":[],"require-at-least-one":true},"lcsb.mapviewer.model.map.compartment.TopSquareCompartment":{"annotation-list":[],"require-at-least-one":true},"lcsb.mapviewer.model.map.reaction.Reaction":{"annotation-list":["PUBMED"],"require-at-least-one":true},"lcsb.mapviewer.model.map.reaction.type.BooleanLogicGateReaction":{"annotation-list":["PUBMED"],"require-at-least-one":true},"lcsb.mapviewer.model.map.reaction.type.DissociationReaction":{"annotation-list":["PUBMED"],"require-at-least-one":true},"lcsb.mapviewer.model.map.reaction.type.HeterodimerAssociationReaction":{"annotation-list":["PUBMED"],"require-at-least-one":true},"lcsb.mapviewer.model.map.reaction.type.KnownTransitionOmittedReaction":{"annotation-list":["PUBMED"],"require-at-least-one":true},"lcsb.mapviewer.model.map.reaction.type.NegativeInfluenceReaction":{"annotation-list":["PUBMED"],"require-at-least-one":true},"lcsb.mapviewer.model.map.reaction.type.PositiveInfluenceReaction":{"annotation-list":["PUBMED"],"require-at-least-one":true},"lcsb.mapviewer.model.map.reaction.type.ReducedModulationReaction":{"annotation-list":["PUBMED"],"require-at-least-one":true},"lcsb.mapviewer.model.map.reaction.type.ReducedPhysicalStimulationReaction":{"annotation-list":["PUBMED"],"require-at-least-one":true},"lcsb.mapviewer.model.map.reaction.type.ReducedTriggerReaction":{"annotation-list":["PUBMED"],"require-at-least-one":true},"lcsb.mapviewer.model.map.reaction.type.StateTransitionReaction":{"annotation-list":["PUBMED"],"require-at-least-one":true},"lcsb.mapviewer.model.map.reaction.type.TranscriptionReaction":{"annotation-list":["PUBMED"],"require-at-least-one":true},"lcsb.mapviewer.model.map.reaction.type.TranslationReaction":{"annotation-list":["PUBMED"],"require-at-least-one":true},"lcsb.mapviewer.model.map.reaction.type.TransportReaction":{"annotation-list":["PUBMED"],"require-at-least-one":true},"lcsb.mapviewer.model.map.reaction.type.TruncationReaction":{"annotation-list":["PUBMED"],"require-at-least-one":true},"lcsb.mapviewer.model.map.reaction.type.UnknownNegativeInfluenceReaction":{"annotation-list":["PUBMED"],"require-at-least-one":true},"lcsb.mapviewer.model.map.reaction.type.UnknownPositiveInfluenceReaction":{"annotation-list":["PUBMED"],"require-at-least-one":true},"lcsb.mapviewer.model.map.reaction.type.UnknownReducedModulationReaction":{"annotation-list":["PUBMED"],"require-at-least-one":true},"lcsb.mapviewer.model.map.reaction.type.UnknownReducedPhysicalStimulationReaction":{"annotation-list":["PUBMED"],"require-at-least-one":true},"lcsb.mapviewer.model.map.reaction.type.UnknownReducedTriggerReaction":{"annotation-list":["PUBMED"],"require-at-least-one":true},"lcsb.mapviewer.model.map.reaction.type.UnknownTransitionReaction":{"annotation-list":["PUBMED"],"require-at-least-one":true},"lcsb.mapviewer.model.map.species.AntisenseRna":{"annotation-list":[],"require-at-least-one":true},"lcsb.mapviewer.model.map.species.Chemical":{"annotation-list":["CHEBI","PUBCHEM","PUBCHEM_SUBSTANCE"],"require-at-least-one":true},"lcsb.mapviewer.model.map.species.Complex":{"annotation-list":[],"require-at-least-one":true},"lcsb.mapviewer.model.map.species.Degraded":{"annotation-list":[],"require-at-least-one":true},"lcsb.mapviewer.model.map.species.Drug":{"annotation-list":[],"require-at-least-one":true},"lcsb.mapviewer.model.map.species.Element":{"annotation-list":[],"require-at-least-one":true},"lcsb.mapviewer.model.map.species.Gene":{"annotation-list":["HGNC","HGNC_SYMBOL"],"require-at-least-one":true},"lcsb.mapviewer.model.map.species.GenericProtein":{"annotation-list":["HGNC","HGNC_SYMBOL"],"require-at-least-one":true},"lcsb.mapviewer.model.map.species.Ion":{"annotation-list":["CHEBI","PUBCHEM","PUBCHEM_SUBSTANCE"],"require-at-least-one":true},"lcsb.mapviewer.model.map.species.IonChannelProtein":{"annotation-list":["HGNC","HGNC_SYMBOL"],"require-at-least-one":true},"lcsb.mapviewer.model.map.species.Phenotype":{"annotation-list":[],"require-at-least-one":true},"lcsb.mapviewer.model.map.species.Protein":{"annotation-list":["HGNC","HGNC_SYMBOL"],"require-at-least-one":true},"lcsb.mapviewer.model.map.species.ReceptorProtein":{"annotation-list":["HGNC","HGNC_SYMBOL"],"require-at-least-one":true},"lcsb.mapviewer.model.map.species.Rna":{"annotation-list":["HGNC","HGNC_SYMBOL"],"require-at-least-one":true},"lcsb.mapviewer.model.map.species.SimpleMolecule":{"annotation-list":["CHEBI","PUBCHEM","PUBCHEM_SUBSTANCE"],"require-at-least-one":true},"lcsb.mapviewer.model.map.species.Species":{"annotation-list":[],"require-at-least-one":true},"lcsb.mapviewer.model.map.species.TruncatedProtein":{"annotation-list":["HGNC","HGNC_SYMBOL","CHEMBL_COMPOUND"],"require-at-least-one":true},"lcsb.mapviewer.model.map.species.Unknown":{"annotation-list":[],"require-at-least-one":true}},"element-valid-annotations":{"lcsb.mapviewer.model.map.BioEntity":["PUBMED"],"lcsb.mapviewer.model.map.compartment.BottomSquareCompartment":["GO","MESH_2012","PUBMED"],"lcsb.mapviewer.model.map.compartment.Compartment":["GO","MESH_2012","PUBMED"],"lcsb.mapviewer.model.map.compartment.LeftSquareCompartment":["GO","MESH_2012","PUBMED"],"lcsb.mapviewer.model.map.compartment.OvalCompartment":["GO","MESH_2012","PUBMED"],"lcsb.mapviewer.model.map.compartment.PathwayCompartment":["GO","MESH_2012","PUBMED"],"lcsb.mapviewer.model.map.compartment.RightSquareCompartment":["GO","MESH_2012","PUBMED"],"lcsb.mapviewer.model.map.compartment.SquareCompartment":["GO","MESH_2012","PUBMED"],"lcsb.mapviewer.model.map.compartment.TopSquareCompartment":["GO","MESH_2012","PUBMED"],"lcsb.mapviewer.model.map.reaction.Reaction":["KEGG_PATHWAY","KEGG_REACTION","PUBMED","REACTOME"],"lcsb.mapviewer.model.map.reaction.type.BooleanLogicGateReaction":["KEGG_PATHWAY","KEGG_REACTION","PUBMED","REACTOME"],"lcsb.mapviewer.model.map.reaction.type.DissociationReaction":["KEGG_PATHWAY","KEGG_REACTION","PUBMED","REACTOME"],"lcsb.mapviewer.model.map.reaction.type.HeterodimerAssociationReaction":["KEGG_PATHWAY","KEGG_REACTION","PUBMED","REACTOME"],"lcsb.mapviewer.model.map.reaction.type.KnownTransitionOmittedReaction":["KEGG_PATHWAY","KEGG_REACTION","PUBMED","REACTOME"],"lcsb.mapviewer.model.map.reaction.type.NegativeInfluenceReaction":["KEGG_PATHWAY","KEGG_REACTION","PUBMED","REACTOME"],"lcsb.mapviewer.model.map.reaction.type.PositiveInfluenceReaction":["KEGG_PATHWAY","KEGG_REACTION","PUBMED","REACTOME"],"lcsb.mapviewer.model.map.reaction.type.ReducedModulationReaction":["KEGG_PATHWAY","KEGG_REACTION","PUBMED","REACTOME"],"lcsb.mapviewer.model.map.reaction.type.ReducedPhysicalStimulationReaction":["KEGG_PATHWAY","KEGG_REACTION","PUBMED","REACTOME"],"lcsb.mapviewer.model.map.reaction.type.ReducedTriggerReaction":["KEGG_PATHWAY","KEGG_REACTION","PUBMED","REACTOME"],"lcsb.mapviewer.model.map.reaction.type.StateTransitionReaction":["KEGG_PATHWAY","KEGG_REACTION","PUBMED","REACTOME"],"lcsb.mapviewer.model.map.reaction.type.TranscriptionReaction":["KEGG_PATHWAY","KEGG_REACTION","PUBMED","REACTOME"],"lcsb.mapviewer.model.map.reaction.type.TranslationReaction":["KEGG_PATHWAY","KEGG_REACTION","PUBMED","REACTOME"],"lcsb.mapviewer.model.map.reaction.type.TransportReaction":["KEGG_PATHWAY","KEGG_REACTION","PUBMED","REACTOME"],"lcsb.mapviewer.model.map.reaction.type.TruncationReaction":["KEGG_PATHWAY","KEGG_REACTION","PUBMED","REACTOME"],"lcsb.mapviewer.model.map.reaction.type.UnknownNegativeInfluenceReaction":["KEGG_PATHWAY","KEGG_REACTION","PUBMED","REACTOME"],"lcsb.mapviewer.model.map.reaction.type.UnknownPositiveInfluenceReaction":["KEGG_PATHWAY","KEGG_REACTION","PUBMED","REACTOME"],"lcsb.mapviewer.model.map.reaction.type.UnknownReducedModulationReaction":["KEGG_PATHWAY","KEGG_REACTION","PUBMED","REACTOME"],"lcsb.mapviewer.model.map.reaction.type.UnknownReducedPhysicalStimulationReaction":["KEGG_PATHWAY","KEGG_REACTION","PUBMED","REACTOME"],"lcsb.mapviewer.model.map.reaction.type.UnknownReducedTriggerReaction":["KEGG_PATHWAY","KEGG_REACTION","PUBMED","REACTOME"],"lcsb.mapviewer.model.map.reaction.type.UnknownTransitionReaction":["KEGG_PATHWAY","KEGG_REACTION","PUBMED","REACTOME"],"lcsb.mapviewer.model.map.species.AntisenseRna":["PUBMED"],"lcsb.mapviewer.model.map.species.Chemical":["CHEBI","HMDB","KEGG_COMPOUND","PUBCHEM","PUBCHEM_SUBSTANCE","PUBMED"],"lcsb.mapviewer.model.map.species.Complex":["CHEMBL_TARGET","EC","GO","INTERPRO","MESH_2012","PUBMED"],"lcsb.mapviewer.model.map.species.Degraded":["PUBMED"],"lcsb.mapviewer.model.map.species.Drug":["CHEBI","CHEMBL_COMPOUND","DRUGBANK","HMDB","PUBMED"],"lcsb.mapviewer.model.map.species.Element":["PUBMED"],"lcsb.mapviewer.model.map.species.Gene":["ENSEMBL","ENTREZ","HGNC","HGNC_SYMBOL","KEGG_GENES","MGD","PANTHER","PUBMED","REFSEQ","UNIPROT"],"lcsb.mapviewer.model.map.species.GenericProtein":["CHEMBL_TARGET","EC","ENSEMBL","ENTREZ","HGNC","HGNC_SYMBOL","INTERPRO","KEGG_GENES","MGD","PANTHER","PUBMED","REFSEQ","UNIPROT","UNIPROT_ISOFORM"],"lcsb.mapviewer.model.map.species.Ion":["CHEBI","HMDB","KEGG_COMPOUND","PUBCHEM","PUBCHEM_SUBSTANCE","PUBMED"],"lcsb.mapviewer.model.map.species.IonChannelProtein":["CHEMBL_TARGET","EC","ENSEMBL","ENTREZ","HGNC","HGNC_SYMBOL","INTERPRO","KEGG_GENES","MGD","PANTHER","PUBMED","REFSEQ","UNIPROT","UNIPROT_ISOFORM"],"lcsb.mapviewer.model.map.species.Phenotype":["GO","MESH_2012","OMIM","PUBMED"],"lcsb.mapviewer.model.map.species.Protein":["CHEMBL_TARGET","EC","ENSEMBL","ENTREZ","HGNC","HGNC_SYMBOL","INTERPRO","KEGG_GENES","MGD","PANTHER","PUBMED","REFSEQ","UNIPROT","UNIPROT_ISOFORM","CHEMBL_COMPOUND"],"lcsb.mapviewer.model.map.species.ReceptorProtein":["CHEMBL_TARGET","EC","ENSEMBL","ENTREZ","HGNC","HGNC_SYMBOL","INTERPRO","KEGG_GENES","MGD","PANTHER","PUBMED","REFSEQ","UNIPROT","UNIPROT_ISOFORM"],"lcsb.mapviewer.model.map.species.Rna":["ENSEMBL","ENTREZ","HGNC","HGNC_SYMBOL","KEGG_GENES","MGD","PANTHER","PUBMED","REFSEQ","UNIPROT"],"lcsb.mapviewer.model.map.species.SimpleMolecule":["CHEBI","HMDB","KEGG_COMPOUND","PUBCHEM","PUBCHEM_SUBSTANCE","PUBMED"],"lcsb.mapviewer.model.map.species.Species":["PUBMED"],"lcsb.mapviewer.model.map.species.TruncatedProtein":["CHEMBL_TARGET","EC","ENSEMBL","ENTREZ","HGNC","HGNC_SYMBOL","INTERPRO","KEGG_GENES","MGD","PANTHER","PUBMED","REFSEQ","UNIPROT","UNIPROT_ISOFORM","CHEMBL_COMPOUND"],"lcsb.mapviewer.model.map.species.Unknown":["PUBMED"]},"gui-preferences":{"admin-projects-datatable-length":"10"},"project-upload":{"annotate-model":false,"auto-resize":true,"cache-data":false,"sbgn":false,"semantic-zooming":false,"validate-miriam":true}}} \ No newline at end of file -- GitLab