diff --git a/frontend-js/.idea/dictionaries/piotr_gawron.xml b/frontend-js/.idea/dictionaries/piotr_gawron.xml new file mode 100644 index 0000000000000000000000000000000000000000..efca1ca385e9a2c524561d337471a9927a616985 --- /dev/null +++ b/frontend-js/.idea/dictionaries/piotr_gawron.xml @@ -0,0 +1,28 @@ +<component name="ProjectDictionaryState"> + <dictionary name="piotr.gawron"> + <words> + <w>antisense</w> + <w>biocompendium</w> + <w>chebi</w> + <w>chembl</w> + <w>drugbank</w> + <w>ensembl</w> + <w>entrez</w> + <w>heterodimer</w> + <w>hgnc</w> + <w>hmdb</w> + <w>interpro</w> + <w>isoform</w> + <w>kegg</w> + <w>lcsb</w> + <w>mapviewer</w> + <w>omim</w> + <w>pubchem</w> + <w>pubmed</w> + <w>reactome</w> + <w>refseq</w> + <w>sbgn</w> + <w>uniprot</w> + </words> + </dictionary> +</component> \ No newline at end of file diff --git a/frontend-js/.idea/workspace.xml b/frontend-js/.idea/workspace.xml index 23e9fb403c2b6fe26a55e72865710b3eadae973f..a74db47d9d25a7972d873da6c1b1c2173761479c 100644 --- a/frontend-js/.idea/workspace.xml +++ b/frontend-js/.idea/workspace.xml @@ -6,7 +6,13 @@ </component> <component name="ChangeListManager"> <list default="true" id="c119f0dd-fdda-4d02-a51e-86bc6ef7e50c" name="Default" comment=""> + <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/dictionaries/piotr_gawron.xml" /> + <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/main/js/map/data/UserPreferences.js" /> + <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/test/js/map/data/UserPreferences-test.js" /> + <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/testFiles/preferences.json" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/test/js/helper.js" afterPath="$PROJECT_DIR$/src/test/js/helper.js" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/../rest-api/src/main/java/lcsb/mapviewer/api/users/UserRestImpl.java" afterPath="$PROJECT_DIR$/../rest-api/src/main/java/lcsb/mapviewer/api/users/UserRestImpl.java" /> </list> <ignored path="$PROJECT_DIR$/.tmp/" /> <ignored path="$PROJECT_DIR$/temp/" /> @@ -20,102 +26,98 @@ </component> <component name="FileEditorManager"> <leaf SIDE_TABS_SIZE_LIMIT_KEY="300"> - <file leaf-file-name="ServerConnector.js" pinned="false" current-in-tab="false"> - <entry file="file://$PROJECT_DIR$/src/main/js/ServerConnector.js"> + <file leaf-file-name="OverviewDialog.js" pinned="false" current-in-tab="false"> + <entry file="file://$PROJECT_DIR$/src/main/js/gui/OverviewDialog.js"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="15623"> - <caret line="919" column="18" lean-forward="false" selection-start-line="919" selection-start-column="18" selection-end-line="919" selection-end-column="18" /> + <state relative-caret-position="0"> + <caret line="195" column="65" lean-forward="false" selection-start-line="195" selection-start-column="65" selection-end-line="195" selection-end-column="65" /> <folding /> </state> </provider> </entry> </file> - <file leaf-file-name="SessionData.js" pinned="false" current-in-tab="false"> - <entry file="file://$PROJECT_DIR$/src/main/js/SessionData.js"> + <file leaf-file-name="AbstractExportPanel.js" pinned="false" current-in-tab="false"> + <entry file="file://$PROJECT_DIR$/src/main/js/gui/export/AbstractExportPanel.js"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="935"> - <caret line="55" column="17" lean-forward="false" selection-start-line="55" selection-start-column="17" selection-end-line="55" selection-end-column="17" /> + <state relative-caret-position="153"> + <caret line="9" column="42" lean-forward="false" selection-start-line="9" selection-start-column="42" selection-end-line="9" selection-end-column="42" /> <folding /> </state> </provider> </entry> </file> - <file leaf-file-name="Configuration.js" pinned="false" current-in-tab="false"> - <entry file="file://$PROJECT_DIR$/src/main/js/Configuration.js"> + <file leaf-file-name="PublicationListDialog.js" pinned="false" current-in-tab="false"> + <entry file="file://$PROJECT_DIR$/src/main/js/gui/leftPanel/PublicationListDialog.js"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="697"> - <caret line="41" column="27" lean-forward="false" selection-start-line="41" selection-start-column="27" selection-end-line="41" selection-end-column="27" /> + <state relative-caret-position="1088"> + <caret line="64" column="48" lean-forward="false" selection-start-line="64" selection-start-column="48" selection-end-line="64" selection-end-column="48" /> <folding /> </state> </provider> </entry> </file> - <file leaf-file-name="Functions.js" pinned="false" current-in-tab="false"> - <entry file="file://$PROJECT_DIR$/src/main/js/Functions.js"> + <file leaf-file-name="AbstractInfoWindow.js" pinned="false" current-in-tab="false"> + <entry file="file://$PROJECT_DIR$/src/main/js/map/window/AbstractInfoWindow.js"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="1190"> - <caret line="70" column="9" lean-forward="false" selection-start-line="70" selection-start-column="9" selection-end-line="70" selection-end-column="9" /> + <state relative-caret-position="17"> + <caret line="190" column="16" lean-forward="false" selection-start-line="190" selection-start-column="16" selection-end-line="190" selection-end-column="16" /> <folding /> </state> </provider> </entry> </file> - <file leaf-file-name="OverviewDialog.js" pinned="false" current-in-tab="false"> - <entry file="file://$PROJECT_DIR$/src/main/js/gui/OverviewDialog.js"> + <file leaf-file-name="User.js" pinned="false" current-in-tab="false"> + <entry file="file://$PROJECT_DIR$/src/main/js/map/data/User.js"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="3315"> - <caret line="195" column="65" lean-forward="false" selection-start-line="195" selection-start-column="65" selection-end-line="195" selection-end-column="65" /> + <state relative-caret-position="0"> + <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> <folding /> </state> </provider> </entry> </file> - <file leaf-file-name="AbstractExportPanel.js" pinned="false" current-in-tab="false"> - <entry file="file://$PROJECT_DIR$/src/main/js/gui/export/AbstractExportPanel.js"> + <file leaf-file-name="UserPreferences.js" pinned="false" current-in-tab="false"> + <entry file="file://$PROJECT_DIR$/src/main/js/map/data/UserPreferences.js"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="153"> - <caret line="9" column="42" lean-forward="false" selection-start-line="9" selection-start-column="42" selection-end-line="9" selection-end-column="42" /> + <state relative-caret-position="570"> + <caret line="48" column="0" lean-forward="false" selection-start-line="48" selection-start-column="0" selection-end-line="48" selection-end-column="0" /> <folding /> </state> </provider> </entry> </file> - <file leaf-file-name="PublicationListDialog.js" pinned="false" current-in-tab="false"> - <entry file="file://$PROJECT_DIR$/src/main/js/gui/leftPanel/PublicationListDialog.js"> + <file leaf-file-name="assert.js" pinned="false" current-in-tab="false"> + <entry file="file://$PROJECT_DIR$/node_modules/chai/lib/chai/interface/assert.js"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="1088"> - <caret line="64" column="48" lean-forward="false" selection-start-line="64" selection-start-column="48" selection-end-line="64" selection-end-column="48" /> + <state relative-caret-position="218"> + <caret line="84" column="30" lean-forward="false" selection-start-line="84" selection-start-column="30" selection-end-line="84" selection-end-column="30" /> <folding /> </state> </provider> </entry> </file> - <file leaf-file-name="AbstractInfoWindow.js" pinned="false" current-in-tab="true"> - <entry file="file://$PROJECT_DIR$/src/main/js/map/window/AbstractInfoWindow.js"> + <file leaf-file-name="UserPreferences-test.js" pinned="false" current-in-tab="false"> + <entry file="file://$PROJECT_DIR$/src/test/js/map/data/UserPreferences-test.js"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="246"> - <caret line="190" column="16" lean-forward="true" selection-start-line="190" selection-start-column="16" selection-end-line="190" selection-end-column="16" /> + <state relative-caret-position="204"> + <caret line="12" column="23" lean-forward="true" selection-start-line="12" selection-start-column="23" selection-end-line="12" selection-end-column="23" /> <folding /> </state> </provider> </entry> </file> - <file leaf-file-name="minerva.js" pinned="false" current-in-tab="false"> - <entry file="file://$PROJECT_DIR$/src/main/js/minerva.js"> + <file leaf-file-name="preferences.json" pinned="false" current-in-tab="true"> + <entry file="file://$PROJECT_DIR$/testFiles/preferences.json"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="11135"> - <caret line="655" column="28" lean-forward="false" selection-start-line="655" selection-start-column="28" selection-end-line="655" selection-end-column="28" /> - <folding> - <marker date="1503677591650" expanded="true" signature="16592:16651" ph="..." /> - <marker date="1503677591650" expanded="true" signature="19917:19976" ph="..." /> - <marker date="1503677591650" expanded="true" signature="20784:20843" ph="..." /> - </folding> + <state relative-caret-position="306"> + <caret line="18" column="6" lean-forward="true" selection-start-line="18" selection-start-column="6" selection-end-line="18" selection-end-column="6" /> + <folding /> </state> </provider> </entry> </file> - <file leaf-file-name="dual-listbox.js" pinned="false" current-in-tab="false"> - <entry file="file://$PROJECT_DIR$/node_modules/dual-listbox/dist/dual-listbox.js"> + <file leaf-file-name="Submap-test.js" pinned="false" current-in-tab="false"> + <entry file="file://$PROJECT_DIR$/src/test/js/map/Submap-test.js"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="0"> <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> @@ -128,8 +130,6 @@ </component> <component name="FindInProjectRecents"> <findStrings> - <find>self =</find> - <find>InvalidArgumentError</find> <find>getFileContent</find> <find>getConverter</find> <find>chai</find> @@ -158,6 +158,8 @@ <find>_directeEvidence</find> <find>changedToCustimzed</find> <find>getParamsgetParams</find> + <find>User</find> + <find>fs</find> </findStrings> <replaceStrings> <replace>ValidationError</replace> @@ -168,6 +170,7 @@ <replace>LEGEND_INDICATORS_OL</replace> <replace>_directEvidence</replace> <replace>changedToCustomized</replace> + <replace>UserPreferences</replace> </replaceStrings> <dirStrings> <dir>C:\Users\piotr.gawron\workspace\MapViewer-parent\frontend-js\src\main\js\gui\leftPanel</dir> @@ -180,9 +183,6 @@ <component name="IdeDocumentHistory"> <option name="CHANGED_PATHS"> <list> - <option value="$PROJECT_DIR$/src/main/js/gui/leftPanel/GuiUtils.js" /> - <option value="$PROJECT_DIR$/src/main/js/gui/leftPanel/SearchPanel.js" /> - <option value="$PROJECT_DIR$/src/test/js/map/overlay/UserDbOverlay-test.js" /> <option value="$PROJECT_DIR$/src/test/js/map/overlay/DrugDbOverlay-test.js" /> <option value="$PROJECT_DIR$/src/test/js/map/data/ReferenceGenomeGeneMapping-test.js" /> <option value="$PROJECT_DIR$/src/test/js/map/data/LayoutData-test.js" /> @@ -215,7 +215,6 @@ <option value="$PROJECT_DIR$/src/test/js/ServerConnector-test.js" /> <option value="$PROJECT_DIR$/src/test/js/mocha-config.js" /> <option value="$PROJECT_DIR$/src/test/js/ServerConnector-mock.js" /> - <option value="$PROJECT_DIR$/src/test/js/helper.js" /> <option value="$PROJECT_DIR$/src/test/js/gui/LoginDialog-test.js" /> <option value="$PROJECT_DIR$/src/test/js/gui/CommentDialog-test.js" /> <option value="$PROJECT_DIR$/src/test/js/gui/leftPanel/GenericSearchPanel-test.js" /> @@ -231,6 +230,10 @@ <option value="$PROJECT_DIR$/src/test/js/map/data/IdentifiedElement-test.js" /> <option value="$PROJECT_DIR$/src/test/js/minerva-test.js" /> <option value="$PROJECT_DIR$/src/main/js/GuiConnector.js" /> + <option value="$PROJECT_DIR$/src/test/js/helper.js" /> + <option value="$PROJECT_DIR$/src/main/js/map/data/UserPreferences.js" /> + <option value="$PROJECT_DIR$/src/test/js/map/data/UserPreferences-test.js" /> + <option value="$PROJECT_DIR$/testFiles/preferences.json" /> </list> </option> </component> @@ -238,6 +241,13 @@ <component name="JsBuildToolPackageJson" detection-done="true" sorting="DEFINITION_ORDER"> <package-json value="$PROJECT_DIR$/package.json" /> </component> + <component name="JsFlowSettings"> + <service-enabled>true</service-enabled> + <exe-path /> + <annotation-enable>false</annotation-enable> + <other-services-enabled>true</other-services-enabled> + <auto-save>true</auto-save> + </component> <component name="JsGulpfileManager"> <detection-done>true</detection-done> <sorting>DEFINITION_ORDER</sorting> @@ -325,6 +335,11 @@ <id>XPath</id> </State> </expanded-state> + <selected-state> + <State> + <id>AngularJS</id> + </State> + </selected-state> </profile-state> </entry> </component> @@ -345,7 +360,6 @@ </navigator> <panes> <pane id="Scratches" /> - <pane id="Scope" /> <pane id="ProjectPane"> <subPane> <expand> @@ -353,10 +367,81 @@ <item name="frontend-js" type="b2602c69:ProjectViewProjectNode" /> <item name="frontend-js" type="462c0819:PsiDirectoryNode" /> </path> + <path> + <item name="frontend-js" type="b2602c69:ProjectViewProjectNode" /> + <item name="frontend-js" type="462c0819:PsiDirectoryNode" /> + <item name="src" type="462c0819:PsiDirectoryNode" /> + </path> + <path> + <item name="frontend-js" type="b2602c69:ProjectViewProjectNode" /> + <item name="frontend-js" type="462c0819:PsiDirectoryNode" /> + <item name="src" type="462c0819:PsiDirectoryNode" /> + <item name="main" type="462c0819:PsiDirectoryNode" /> + </path> + <path> + <item name="frontend-js" type="b2602c69:ProjectViewProjectNode" /> + <item name="frontend-js" type="462c0819:PsiDirectoryNode" /> + <item name="src" type="462c0819:PsiDirectoryNode" /> + <item name="main" type="462c0819:PsiDirectoryNode" /> + <item name="js" type="462c0819:PsiDirectoryNode" /> + </path> + <path> + <item name="frontend-js" type="b2602c69:ProjectViewProjectNode" /> + <item name="frontend-js" type="462c0819:PsiDirectoryNode" /> + <item name="src" type="462c0819:PsiDirectoryNode" /> + <item name="main" type="462c0819:PsiDirectoryNode" /> + <item name="js" type="462c0819:PsiDirectoryNode" /> + <item name="map" type="462c0819:PsiDirectoryNode" /> + </path> + <path> + <item name="frontend-js" type="b2602c69:ProjectViewProjectNode" /> + <item name="frontend-js" type="462c0819:PsiDirectoryNode" /> + <item name="src" type="462c0819:PsiDirectoryNode" /> + <item name="main" type="462c0819:PsiDirectoryNode" /> + <item name="js" type="462c0819:PsiDirectoryNode" /> + <item name="map" type="462c0819:PsiDirectoryNode" /> + <item name="data" type="462c0819:PsiDirectoryNode" /> + </path> + <path> + <item name="frontend-js" type="b2602c69:ProjectViewProjectNode" /> + <item name="frontend-js" type="462c0819:PsiDirectoryNode" /> + <item name="src" type="462c0819:PsiDirectoryNode" /> + <item name="test" type="462c0819:PsiDirectoryNode" /> + </path> + <path> + <item name="frontend-js" type="b2602c69:ProjectViewProjectNode" /> + <item name="frontend-js" type="462c0819:PsiDirectoryNode" /> + <item name="src" type="462c0819:PsiDirectoryNode" /> + <item name="test" type="462c0819:PsiDirectoryNode" /> + <item name="js" type="462c0819:PsiDirectoryNode" /> + </path> + <path> + <item name="frontend-js" type="b2602c69:ProjectViewProjectNode" /> + <item name="frontend-js" type="462c0819:PsiDirectoryNode" /> + <item name="src" type="462c0819:PsiDirectoryNode" /> + <item name="test" type="462c0819:PsiDirectoryNode" /> + <item name="js" type="462c0819:PsiDirectoryNode" /> + <item name="map" type="462c0819:PsiDirectoryNode" /> + </path> + <path> + <item name="frontend-js" type="b2602c69:ProjectViewProjectNode" /> + <item name="frontend-js" type="462c0819:PsiDirectoryNode" /> + <item name="src" type="462c0819:PsiDirectoryNode" /> + <item name="test" type="462c0819:PsiDirectoryNode" /> + <item name="js" type="462c0819:PsiDirectoryNode" /> + <item name="map" type="462c0819:PsiDirectoryNode" /> + <item name="data" type="462c0819:PsiDirectoryNode" /> + </path> + <path> + <item name="frontend-js" type="b2602c69:ProjectViewProjectNode" /> + <item name="frontend-js" type="462c0819:PsiDirectoryNode" /> + <item name="testFiles" type="462c0819:PsiDirectoryNode" /> + </path> </expand> <select /> </subPane> </pane> + <pane id="Scope" /> </panes> </component> <component name="PropertiesComponent"> @@ -365,7 +450,7 @@ <property name="nodejs_interpreter_path" value="C:/Program Files/nodejs/node" /> <property name="HbShouldOpenHtmlAsHb" value="" /> <property name="nodejs.mocha.mocha_node_package_dir" value="$PROJECT_DIR$/node_modules/mocha" /> - <property name="settings.editor.selected.configurable" value="reference.settings.ide.settings.spelling" /> + <property name="settings.editor.selected.configurable" value="JavaScript.Libraries" /> <property name="run.code.analysis.last.selected.profile" value="pProject Default" /> <property name="node.js.path.for.package.jscs" value="project" /> <property name="node.js.detected.package.jscs" value="true" /> @@ -379,6 +464,8 @@ </component> <component name="RecentsManager"> <key name="CopyFile.RECENT_KEYS"> + <recent name="C:\Users\piotr.gawron\workspace\MapViewer-parent\frontend-js\src\test\js\map\data" /> + <recent name="C:\Users\piotr.gawron\workspace\MapViewer-parent\frontend-js\src\main\js\map\data" /> <recent name="C:\Users\piotr.gawron\workspace\MapViewer-parent\frontend-js\testFiles\apiCalls\projects\sample" /> <recent name="C:\Users\piotr.gawron\workspace\MapViewer-parent\frontend-js\src\main\js" /> <recent name="C:\Users\piotr.gawron\workspace\MapViewer-parent\frontend-js\src\test\js" /> @@ -396,21 +483,7 @@ </list> </option> </component> - <component name="RunManager" selected="npm.test"> - <configuration name="AddProjectDialog" type="mocha-javascript-test-runner" factoryName="Mocha" temporary="true" nameIsGenerated="true"> - <node-interpreter>project</node-interpreter> - <node-options /> - <working-directory>$PROJECT_DIR$</working-directory> - <pass-parent-env>true</pass-parent-env> - <envs /> - <ui>bdd</ui> - <extra-mocha-options /> - <test-kind>SUITE</test-kind> - <test-file>$PROJECT_DIR$/src/test/js/gui/admin/AddProjectDialog-test.js</test-file> - <test-names> - <name value="AddProjectDialog" /> - </test-names> - </configuration> + <component name="RunManager" selected="Mocha.UserPreferences.constructor"> <configuration name="AddProjectDialog.js" type="NodeJSConfigurationType" factoryName="Node.js" temporary="true" path-to-node="project" path-to-js-file="AddProjectDialog.js" working-dir="$PROJECT_DIR$/src/main/js/gui/admin"> <EXTENSION ID="com.jetbrains.nodejs.remote.docker.NodeJSDockerRunConfigurationExtension"> <option name="envVars"> @@ -488,6 +561,21 @@ <name value="toggleLegend" /> </test-names> </configuration> + <configuration name="UserPreferences.constructor" type="mocha-javascript-test-runner" factoryName="Mocha" temporary="true" nameIsGenerated="true"> + <node-interpreter>project</node-interpreter> + <node-options /> + <working-directory>$PROJECT_DIR$</working-directory> + <pass-parent-env>true</pass-parent-env> + <envs /> + <ui>bdd</ui> + <extra-mocha-options /> + <test-kind>TEST</test-kind> + <test-file>$PROJECT_DIR$/src/test/js/map/data/UserPreferences-test.js</test-file> + <test-names> + <name value="UserPreferences" /> + <name value="constructor" /> + </test-names> + </configuration> <configuration default="true" type="mocha-javascript-test-runner" factoryName="Mocha"> <node-interpreter>project</node-interpreter> <node-options /> @@ -605,19 +693,19 @@ <item index="1" class="java.lang.String" itemvalue="Node.js.test without coverage" /> <item index="2" class="java.lang.String" itemvalue="npm.build-deploy" /> <item index="3" class="java.lang.String" itemvalue="npm.test" /> - <item index="4" class="java.lang.String" itemvalue="Mocha.AddProjectDialog" /> - <item index="5" class="java.lang.String" itemvalue="Mocha.ServerConnector.removeProject.default" /> - <item index="6" class="java.lang.String" itemvalue="Node.js.GuiConnector.js" /> - <item index="7" class="java.lang.String" itemvalue="Node.js.AddProjectDialog.js" /> - <item index="8" class="java.lang.String" itemvalue="Mocha.TopMenu.toggleLegend" /> + <item index="4" class="java.lang.String" itemvalue="Mocha.ServerConnector.removeProject.default" /> + <item index="5" class="java.lang.String" itemvalue="Node.js.GuiConnector.js" /> + <item index="6" class="java.lang.String" itemvalue="Node.js.AddProjectDialog.js" /> + <item index="7" class="java.lang.String" itemvalue="Mocha.TopMenu.toggleLegend" /> + <item index="8" class="java.lang.String" itemvalue="Mocha.UserPreferences.constructor" /> </list> <recent_temporary> <list size="5"> - <item index="0" class="java.lang.String" itemvalue="Mocha.TopMenu.toggleLegend" /> - <item index="1" class="java.lang.String" itemvalue="Mocha.ServerConnector.removeProject.default" /> - <item index="2" class="java.lang.String" itemvalue="Node.js.AddProjectDialog.js" /> - <item index="3" class="java.lang.String" itemvalue="Node.js.GuiConnector.js" /> - <item index="4" class="java.lang.String" itemvalue="Mocha.AddProjectDialog" /> + <item index="0" class="java.lang.String" itemvalue="Mocha.UserPreferences.constructor" /> + <item index="1" class="java.lang.String" itemvalue="Mocha.TopMenu.toggleLegend" /> + <item index="2" class="java.lang.String" itemvalue="Mocha.ServerConnector.removeProject.default" /> + <item index="3" class="java.lang.String" itemvalue="Node.js.AddProjectDialog.js" /> + <item index="4" class="java.lang.String" itemvalue="Node.js.GuiConnector.js" /> </list> </recent_temporary> </component> @@ -640,44 +728,45 @@ <workItem from="1503560609163" duration="22426000" /> <workItem from="1503648028157" duration="9357000" /> <workItem from="1503673204553" duration="8891000" /> - <workItem from="1503992362005" duration="19000" /> + <workItem from="1503992362005" duration="615000" /> + <workItem from="1504003657581" duration="4141000" /> </task> <servers /> </component> <component name="TestHistory"> - <history-entry file="ServerConnector_removeProject_default - 2017.08.25 at 16h 37m 49s.xml"> - <configuration name="ServerConnector.removeProject.default" configurationId="mocha-javascript-test-runner" /> + <history-entry file="UserPreferences_constructor - 2017.08.29 at 13h 30m 06s.xml"> + <configuration name="UserPreferences.constructor" configurationId="mocha-javascript-test-runner" /> </history-entry> - <history-entry file="ServerConnector_removeProject_default - 2017.08.25 at 16h 41m 03s.xml"> - <configuration name="ServerConnector.removeProject.default" configurationId="mocha-javascript-test-runner" /> + <history-entry file="UserPreferences_constructor - 2017.08.29 at 13h 30m 37s.xml"> + <configuration name="UserPreferences.constructor" configurationId="mocha-javascript-test-runner" /> </history-entry> - <history-entry file="ServerConnector_removeProject_default - 2017.08.25 at 16h 42m 01s.xml"> - <configuration name="ServerConnector.removeProject.default" configurationId="mocha-javascript-test-runner" /> + <history-entry file="UserPreferences_constructor - 2017.08.29 at 13h 30m 52s.xml"> + <configuration name="UserPreferences.constructor" configurationId="mocha-javascript-test-runner" /> </history-entry> - <history-entry file="ServerConnector_removeProject_default - 2017.08.25 at 16h 42m 14s.xml"> - <configuration name="ServerConnector.removeProject.default" configurationId="mocha-javascript-test-runner" /> + <history-entry file="UserPreferences_constructor - 2017.08.29 at 13h 40m 57s.xml"> + <configuration name="UserPreferences.constructor" configurationId="mocha-javascript-test-runner" /> </history-entry> - <history-entry file="TopMenu_toggleLegend - 2017.08.25 at 17h 52m 36s.xml"> - <configuration name="TopMenu.toggleLegend" configurationId="mocha-javascript-test-runner" /> + <history-entry file="UserPreferences_constructor - 2017.08.29 at 13h 42m 21s.xml"> + <configuration name="UserPreferences.constructor" configurationId="mocha-javascript-test-runner" /> </history-entry> - <history-entry file="TopMenu_toggleLegend - 2017.08.25 at 17h 53m 16s.xml"> - <configuration name="TopMenu.toggleLegend" configurationId="mocha-javascript-test-runner" /> + <history-entry file="UserPreferences_constructor - 2017.08.29 at 13h 42m 45s.xml"> + <configuration name="UserPreferences.constructor" configurationId="mocha-javascript-test-runner" /> </history-entry> - <history-entry file="TopMenu_toggleLegend - 2017.08.25 at 17h 53m 32s.xml"> - <configuration name="TopMenu.toggleLegend" configurationId="mocha-javascript-test-runner" /> + <history-entry file="UserPreferences_constructor - 2017.08.29 at 13h 44m 20s.xml"> + <configuration name="UserPreferences.constructor" configurationId="mocha-javascript-test-runner" /> </history-entry> - <history-entry file="TopMenu_toggleLegend - 2017.08.25 at 17h 53m 45s.xml"> - <configuration name="TopMenu.toggleLegend" configurationId="mocha-javascript-test-runner" /> + <history-entry file="UserPreferences_constructor - 2017.08.29 at 13h 46m 23s.xml"> + <configuration name="UserPreferences.constructor" configurationId="mocha-javascript-test-runner" /> </history-entry> - <history-entry file="TopMenu_toggleLegend - 2017.08.25 at 17h 55m 56s.xml"> - <configuration name="TopMenu.toggleLegend" configurationId="mocha-javascript-test-runner" /> + <history-entry file="UserPreferences_constructor - 2017.08.29 at 13h 46m 37s.xml"> + <configuration name="UserPreferences.constructor" configurationId="mocha-javascript-test-runner" /> </history-entry> - <history-entry file="TopMenu_toggleLegend - 2017.08.25 at 17h 56m 08s.xml"> - <configuration name="TopMenu.toggleLegend" configurationId="mocha-javascript-test-runner" /> + <history-entry file="UserPreferences_constructor - 2017.08.29 at 14h 03m 14s.xml"> + <configuration name="UserPreferences.constructor" configurationId="mocha-javascript-test-runner" /> </history-entry> </component> <component name="TimeTrackingManager"> - <option name="totallyTimeSpent" value="45863000" /> + <option name="totallyTimeSpent" value="50600000" /> </component> <component name="ToolWindowManager"> <frame x="-8" y="-8" width="1936" height="1176" extended-state="6" /> @@ -687,8 +776,8 @@ <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" /> <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.5679475" sideWeight="0.33802083" order="7" side_tool="true" content_ui="tabs" /> <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="8" side_tool="false" content_ui="tabs" /> + <window_info id="Run" active="true" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.33833176" sideWeight="0.49791667" order="10" side_tool="false" content_ui="tabs" x="-170" y="502" width="1920" height="493" /> <window_info id="npm" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" /> - <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33833176" sideWeight="0.49791667" order="10" side_tool="false" content_ui="tabs" x="-170" y="502" width="1920" height="493" /> <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" /> <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="9" side_tool="false" content_ui="tabs" /> <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="true" content_ui="tabs" /> @@ -736,48 +825,6 @@ <watches-manager /> </component> <component name="editorHistoryManager"> - <entry file="file://$PROJECT_DIR$/src/main/js/map/data/LayoutData.js"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="229"> - <caret line="18" column="17" lean-forward="false" selection-start-line="18" selection-start-column="17" selection-end-line="18" selection-end-column="17" /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/src/main/js/map/data/IdentifiedElement.js"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="229"> - <caret line="80" column="18" lean-forward="false" selection-start-line="80" selection-start-column="18" selection-end-line="80" selection-end-column="18" /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/src/main/js/map/data/BioEntity.js"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="136"> - <caret line="8" column="22" lean-forward="false" selection-start-line="8" selection-start-column="22" selection-end-line="8" selection-end-column="22" /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/src/main/js/map/data/MiRna.js"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="204"> - <caret line="12" column="0" lean-forward="true" selection-start-line="12" selection-start-column="0" selection-end-line="12" selection-end-column="0" /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/src/main/js/map/data/LayoutAlias.js"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="136"> - <caret line="8" column="19" lean-forward="false" selection-start-line="8" selection-start-column="19" selection-end-line="8" selection-end-column="19" /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/src/main/js/map/data/Chemical.js"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="425"> - <caret line="31" column="25" lean-forward="false" selection-start-line="31" selection-start-column="25" selection-end-line="31" selection-end-column="25" /> - </state> - </provider> - </entry> <entry file="file://$PROJECT_DIR$/src/main/js/map/data/LayoutReaction.js"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="102"> @@ -862,13 +909,6 @@ </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/src/test/js/ServerConnector-mock.js"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="229"> - <caret line="51" column="9" lean-forward="false" selection-start-line="51" selection-start-column="9" selection-end-line="51" selection-end-column="9" /> - </state> - </provider> - </entry> <entry file="file://$PROJECT_DIR$/src/test/js/logger.js"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="119"> @@ -876,13 +916,6 @@ </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/src/test/js/helper.js"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="221"> - <caret line="327" column="4" lean-forward="false" selection-start-line="327" selection-start-column="4" selection-end-line="327" selection-end-column="4" /> - </state> - </provider> - </entry> <entry file="file://$PROJECT_DIR$/src/test/js/Functions-test.js"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="375"> @@ -1061,7 +1094,7 @@ </entry> <entry file="file://$PROJECT_DIR$/src/main/js/Configuration.js"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="697"> + <state relative-caret-position="0"> <caret line="41" column="27" lean-forward="false" selection-start-line="41" selection-start-column="27" selection-end-line="41" selection-end-column="27" /> <folding /> </state> @@ -1077,7 +1110,7 @@ </entry> <entry file="file://$PROJECT_DIR$/src/main/js/gui/OverviewDialog.js"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="3315"> + <state relative-caret-position="0"> <caret line="195" column="65" lean-forward="false" selection-start-line="195" selection-start-column="65" selection-end-line="195" selection-end-column="65" /> <folding /> </state> @@ -1101,8 +1134,72 @@ </entry> <entry file="file://$PROJECT_DIR$/src/main/js/map/window/AbstractInfoWindow.js"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="246"> - <caret line="190" column="16" lean-forward="true" selection-start-line="190" selection-start-column="16" selection-end-line="190" selection-end-column="16" /> + <state relative-caret-position="17"> + <caret line="190" column="16" lean-forward="false" selection-start-line="190" selection-start-column="16" selection-end-line="190" selection-end-column="16" /> + <folding /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/src/main/js/map/data/User.js"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="0"> + <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> + <folding /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/src/test/js/helper.js"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="349"> + <caret line="383" column="16" lean-forward="true" selection-start-line="383" selection-start-column="16" selection-end-line="383" selection-end-column="16" /> + <folding /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/src/test/js/ServerConnector-mock.js"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="439"> + <caret line="82" column="0" lean-forward="false" selection-start-line="71" selection-start-column="0" selection-end-line="82" selection-end-column="0" /> + <folding /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/src/test/js/map/Submap-test.js"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="0"> + <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> + <folding /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/src/main/js/map/data/UserPreferences.js"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="570"> + <caret line="48" column="0" lean-forward="false" selection-start-line="48" selection-start-column="0" selection-end-line="48" selection-end-column="0" /> + <folding /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/node_modules/chai/lib/chai/interface/assert.js"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="218"> + <caret line="84" column="30" lean-forward="false" selection-start-line="84" selection-start-column="30" selection-end-line="84" selection-end-column="30" /> + <folding /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/src/test/js/map/data/UserPreferences-test.js"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="204"> + <caret line="12" column="23" lean-forward="true" selection-start-line="12" selection-start-column="23" selection-end-line="12" selection-end-column="23" /> + <folding /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/testFiles/preferences.json"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="306"> + <caret line="18" column="6" lean-forward="true" selection-start-line="18" selection-start-column="6" selection-end-line="18" selection-end-column="6" /> <folding /> </state> </provider> diff --git a/frontend-js/src/main/js/map/data/UserPreferences.js b/frontend-js/src/main/js/map/data/UserPreferences.js new file mode 100644 index 0000000000000000000000000000000000000000..5a2467eaa76ab190321650e56fd53c285b1001bb --- /dev/null +++ b/frontend-js/src/main/js/map/data/UserPreferences.js @@ -0,0 +1,62 @@ +"use strict"; + +/* exported logger */ + +var logger = require('../../logger'); + +function UserPreferences(javaObject) { + if (javaObject !== undefined) { + this.setProjectUpload(javaObject["project-upload"]); + this.setElementAnnotators(javaObject["element-annotators"]); + this.setElementRequiredAnnotations(javaObject["element-required-annotations"]); + this.setElementValidAnnotations(javaObject["element-valid-annotations"]); + } else { + this._projectUpload = {}; + this._elementAnnotators = {}; + this._elementRequiredAnnotations = {}; + this._elementValidAnnotations = {}; + } +} + +UserPreferences.prototype.setProjectUpload = function (projectUpload) { + this._projectUpload = { + autoResize: projectUpload["auto-resize"], + validateMiriam: projectUpload["validate-miriam"], + annotateModel: projectUpload["annotate-model"], + cacheData: projectUpload["cache-data"], + semanticZooming: projectUpload["semantic-zooming"], + sbgn: projectUpload["sbgn"] + }; +}; +UserPreferences.prototype.getProjectUpload = function () { + return this._projectUpload; +}; +UserPreferences.prototype.setElementAnnotators = function (elementAnnotators) { + this._elementAnnotators = elementAnnotators; +}; +UserPreferences.prototype.getElementAnnotators = function (className) { + return this._elementAnnotators[className]; +}; +UserPreferences.prototype.setElementRequiredAnnotations = function (elementRequiredAnnotations) { + this._elementRequiredAnnotations = {}; + for (var key in elementRequiredAnnotations) { + if (elementRequiredAnnotations.hasOwnProperty(key)) { + var data = elementRequiredAnnotations[key]; + this._elementRequiredAnnotations[key] = { + requiredAtLeastOnce: data["require-at-least-one"], + list: data["annotation-list"] + }; + } + } +}; +UserPreferences.prototype.getElementRequiredAnnotations = function (className) { + return this._elementRequiredAnnotations[className]; +}; +UserPreferences.prototype.setElementValidAnnotations = function (elementValidAnnotations) { + this._elementValidAnnotations = elementValidAnnotations; +}; +UserPreferences.prototype.getElementValidAnnotations = function (className) { + return this._elementValidAnnotations[className]; +}; + +module.exports = UserPreferences; diff --git a/frontend-js/src/test/js/helper.js b/frontend-js/src/test/js/helper.js index 8082f7c557a6abb31fc60f5a685b0e4f733b4958..e2a1067d19908b2fb3a1f7cfed9dc4ba1153bd8c 100644 --- a/frontend-js/src/test/js/helper.js +++ b/frontend-js/src/test/js/helper.js @@ -25,6 +25,7 @@ var SearchDbOverlay = require("../../main/js/map/overlay/SearchDbOverlay"); var User = require("../../main/js/map/data/User"); var Cookies = require('js-cookie'); +var fs = require('fs'); var GuiConnector = require('../../main/js/GuiConnector'); @@ -36,78 +37,78 @@ function Helper(configuration) { this.idCounter = 1000000; } -Helper.prototype.setConfiguration = function(configuration) { +Helper.prototype.setConfiguration = function (configuration) { this._configuration = configuration; }; -Helper.prototype.getConfiguration = function() { +Helper.prototype.getConfiguration = function () { return this._configuration; }; -Helper.prototype.createCommentDbOverlay = function(map) { +Helper.prototype.createCommentDbOverlay = function (map) { var result = new CommentDbOverlay({ - map : map, - name : "comment", - allowGeneralSearch : true + map: map, + name: "comment", + allowGeneralSearch: true }); map.registerDbOverlay(result); return result; }; -Helper.prototype.createSearchDbOverlay = function(map) { +Helper.prototype.createSearchDbOverlay = function (map) { var result = new SearchDbOverlay({ - map : map, - name : "search", + map: map, + name: "search", }); map.registerDbOverlay(result); return result; }; -Helper.prototype.createDbOverlay = function(map) { +Helper.prototype.createDbOverlay = function (map) { var result = new AbstractDbOverlay({ - map : map, - name : "search", + map: map, + name: "search", }); - result.clear = function() { + result.clear = function () { logger.debug("Clear mock"); }; map.registerDbOverlay(result); return result; }; -Helper.prototype.createDrugDbOverlay = function(map) { +Helper.prototype.createDrugDbOverlay = function (map) { var result = new DrugDbOverlay({ - map : map, - name : "drug", - allowGeneralSearch : true, - allowSearchById : true, + map: map, + name: "drug", + allowGeneralSearch: true, + allowSearchById: true, }); map.registerDbOverlay(result); return result; }; -Helper.prototype.createChemicalDbOverlay = function(map) { +Helper.prototype.createChemicalDbOverlay = function (map) { var result = new ChemicalDbOverlay({ - map : map, - name : "chemical", - allowGeneralSearch : true, - allowSearchById : true, + map: map, + name: "chemical", + allowGeneralSearch: true, + allowSearchById: true, }); map.registerDbOverlay(result); return result; }; -Helper.prototype.createMiRnaDbOverlay = function(map) { +Helper.prototype.createMiRnaDbOverlay = function (map) { var result = new MiRnaDbOverlay({ - map : map, - name : "mirna", - allowGeneralSearch : true, - allowSearchById : true, + map: map, + name: "mirna", + allowGeneralSearch: true, + allowSearchById: true, }); map.registerDbOverlay(result); return result; }; -Helper.prototype.createComment = function(element) { +Helper.prototype.createComment = function (element) { var elementType = "ALIAS"; var elementId = this.idCounter++; var id = this.idCounter++; @@ -124,25 +125,25 @@ Helper.prototype.createComment = function(element) { } var result = new Comment({ - elementId : elementId, - type : elementType, - modelId : modelId, - icon : "icons/comment.png", - id : id, - pinned : true, - coord : { - x : 321.5, - y : 289.0 + elementId: elementId, + type: elementType, + modelId: modelId, + icon: "icons/comment.png", + id: id, + pinned: true, + coord: { + x: 321.5, + y: 289.0 }, - removed : false, - title : "title fo comment: " + id, - content : "content of the comment # " + id + removed: false, + title: "title fo comment: " + id, + content: "content of the comment # " + id }); return result; }; -Helper.prototype.createProject = function() { +Helper.prototype.createProject = function () { var result = new Project(); result.setProjectId("testId"); result.setId(this.idCounter++); @@ -150,17 +151,17 @@ Helper.prototype.createProject = function() { return result; }; -Helper.prototype.createUser = function() { +Helper.prototype.createUser = function () { var result = new User({ - login : "test_login", - id : this.idCounter++, - name : "some name", - surname : "surname", + login: "test_login", + id: this.idCounter++, + name: "some name", + surname: "surname", }); return result; }; -Helper.prototype.createAlias = function(map) { +Helper.prototype.createAlias = function (map) { var mapId; if (map === undefined) { mapId = this.idCounter++; @@ -168,17 +169,17 @@ Helper.prototype.createAlias = function(map) { mapId = map.getId(); } var result = new Alias({ - idObject : this.idCounter++, - name : "Test element", - type : "RNA", - modelId : mapId, - bounds : { - x : 10.0, - y : 20.0, - width : 30.0, - height : 40.0, + idObject: this.idCounter++, + name: "Test element", + type: "RNA", + modelId: mapId, + bounds: { + x: 10.0, + y: 20.0, + width: 30.0, + height: 40.0, }, - references : [], + references: [], }); if (map !== undefined) { map.getModel().addAlias(result); @@ -186,7 +187,7 @@ Helper.prototype.createAlias = function(map) { return result; }; -Helper.prototype.createLayoutAlias = function(alias) { +Helper.prototype.createLayoutAlias = function (alias) { var id; if (alias instanceof Alias) { id = alias.getId(); @@ -194,17 +195,17 @@ Helper.prototype.createLayoutAlias = function(alias) { id = this.idCounter++; } var result = new LayoutAlias({ - idObject : id, - value : 0.2, - color : { - a : 23 + idObject: id, + value: 0.2, + color: { + a: 23 }, - geneVariations : [ {} ] + geneVariations: [{}] }); return result; }; -Helper.prototype.createLayoutReaction = function(reaction) { +Helper.prototype.createLayoutReaction = function (reaction) { var reactionId; if (reaction instanceof Reaction) { reactionId = reaction.getId(); @@ -213,28 +214,28 @@ Helper.prototype.createLayoutReaction = function(reaction) { } var result = new LayoutReaction({ - idObject : reactionId, - width : 3.4, - color : { - a : 24, + idObject: reactionId, + width: 3.4, + color: { + a: 24, }, - reverse : true + reverse: true }); return result; }; -Helper.prototype.createIdentifiedElement = function(element) { +Helper.prototype.createIdentifiedElement = function (element) { if (element === undefined) { return new IdentifiedElement({ - type : "ALIAS", - id : this.idCounter++, - modelId : this.idCounter++, + type: "ALIAS", + id: this.idCounter++, + modelId: this.idCounter++, }); } return new IdentifiedElement(element); }; -Helper.prototype.createReaction = function(map) { +Helper.prototype.createReaction = function (map) { var mapId = null; if (map !== undefined) { mapId = map.getId(); @@ -242,49 +243,49 @@ Helper.prototype.createReaction = function(map) { mapId = this.idCounter++; } var result = new Reaction({ - idObject : this.idCounter++, - lines : [ { - start : { - x : 434.8904109589041, - y : 85.0 + idObject: this.idCounter++, + lines: [{ + start: { + x: 434.8904109589041, + y: 85.0 }, - end : { - x : 410.8341500923087, - y : 104.95576185524392 + end: { + x: 410.8341500923087, + y: 104.95576185524392 }, - type : "START" + type: "START" }, { - start : { - x : 404.6769250286157, - y : 110.06345991944379 + start: { + x: 404.6769250286157, + y: 110.06345991944379 }, - end : { - x : 380.62066416202026, - y : 130.0192217746877 + end: { + x: 380.62066416202026, + y: 130.0192217746877 }, - type : "END" - } ], - centerPoint : new google.maps.Point(0, 0), - modelId : mapId, - references : [], + type: "END" + }], + centerPoint: new google.maps.Point(0, 0), + modelId: mapId, + references: [], }); return result; }; -Helper.prototype.createOptions = function(project) { +Helper.prototype.createOptions = function (project) { if (project === undefined) { project = this.createProject(); } var options = { - mapDiv : testDiv, - element : testDiv, - project : project, + mapDiv: testDiv, + element: testDiv, + project: project, }; return options; }; -Helper.prototype.createModel = function() { +Helper.prototype.createModel = function () { var result = new Model(); result.setId(this.idCounter++); result.setTileSize(256); @@ -293,16 +294,16 @@ Helper.prototype.createModel = function() { result.setMaxZoom(8); result.setMinZoom(2); result.setCenterLatLng({ - lat : 10, - lng : 20 + lat: 10, + lng: 20 }); result.setTopLeftLatLng({ - lat : 8, - lng : 8 + lat: 8, + lng: 8 }); result.setBottomRightLatLng({ - lat : 30, - lng : 30 + lat: 30, + lng: 30 }); var layout = this.createLayout(); @@ -310,51 +311,51 @@ Helper.prototype.createModel = function() { return result; }; -Helper.prototype.createLayout = function() { +Helper.prototype.createLayout = function () { var id = this.idCounter++; var layout = new LayoutData({ - idObject : id, - name : "testLayout" + id, + idObject: id, + name: "testLayout" + id, }); return layout; }; -Helper.prototype.createGoogleMap = function() { +Helper.prototype.createGoogleMap = function () { var result = new google.maps.Map(testDiv, { - center : { - lat : -34.397, - lng : 150.644 + center: { + lat: -34.397, + lng: 150.644 }, - scrollwheel : false, - zoom : 8 + scrollwheel: false, + zoom: 8 }); return result; }; -Helper.prototype.createCustomMapOptions = function(project) { +Helper.prototype.createCustomMapOptions = function (project) { if (project === undefined) { project = this.createProject(); } var result = new CustomMapOptions({ - markerOptimization : true, - project : project, - element : testDiv, - mapDiv : testDiv, - configuration : this.getConfiguration(), + markerOptimization: true, + project: project, + element: testDiv, + mapDiv: testDiv, + configuration: this.getConfiguration(), }); return result; }; -Helper.prototype.createAbstractCustomMap = function() { +Helper.prototype.createAbstractCustomMap = function () { var options = this.createCustomMapOptions(); var result = new AbstractCustomMap(options.getProject().getModel(), options); return result; }; -Helper.prototype.createCustomMap = function(project) { +Helper.prototype.createCustomMap = function (project) { if (project === null) { throw new Error("Project cannot be null"); } @@ -366,17 +367,29 @@ Helper.prototype.createCustomMap = function(project) { /** * Changes url but saves the cookies. */ -Helper.prototype.setUrl = function(url) { +Helper.prototype.setUrl = function (url) { var cookies = Cookies.get(); global.dom.reconfigure({ - url : url + url: url }); - for ( var cookie in cookies) { + for (var cookie in cookies) { Cookies.set(cookie, cookies[cookie]); } GuiConnector.init(); }; +Helper.prototype.readFile = function (filename) { + return new Promise(function (resolve, reject) { + fs.readFile(filename, 'utf8', function (err, content) { + if (err) { + reject(err); + } else { + resolve(content); + } + }); + }); +}; + Helper.EPSILON = 1e-6; module.exports = Helper; diff --git a/frontend-js/src/test/js/map/data/UserPreferences-test.js b/frontend-js/src/test/js/map/data/UserPreferences-test.js new file mode 100644 index 0000000000000000000000000000000000000000..2f9c8e86e455206c03fe93135dbd7ce5cfea3fdd --- /dev/null +++ b/frontend-js/src/test/js/map/data/UserPreferences-test.js @@ -0,0 +1,30 @@ +"use strict"; + +require("../../mocha-config") +/* exported logger */ + +var UserPreferences = require('../../../../main/js/map/data/UserPreferences'); + +var logger = require('../../logger'); + +var chai = require('chai'); +var assert = chai.assert; + +var fs = require('fs'); +var Promise = require('fs'); + +describe('UserPreferences', function () { + it("constructor", function () { + return helper.readFile("testFiles/preferences.json").then(function (content) { + var object = new UserPreferences(JSON.parse(content)); + assert.ok(object); + assert.notOk(object.getProjectUpload().autoResize); + assert.ok(object.getProjectUpload().cacheData); + + assert.ok(object.getElementAnnotators("lcsb.mapviewer.model.map.species.Protein").length > 0); + assert.ok(object.getElementValidAnnotations("lcsb.mapviewer.model.map.species.Protein").length > 0); + assert.ok(object.getElementRequiredAnnotations("lcsb.mapviewer.model.map.species.Protein").requiredAtLeastOnce); + assert.ok(object.getElementRequiredAnnotations("lcsb.mapviewer.model.map.species.Protein").list.length > 0); + }) + }); +}); diff --git a/frontend-js/testFiles/preferences.json b/frontend-js/testFiles/preferences.json new file mode 100644 index 0000000000000000000000000000000000000000..5f017aff41908460c352cd9f128b38771241ae54 --- /dev/null +++ b/frontend-js/testFiles/preferences.json @@ -0,0 +1,753 @@ +{ + "element-required-annotations": { + "lcsb.mapviewer.model.map.reaction.type.UnknownReducedTriggerReaction": { + "require-at-least-one": true, + "annotation-list": [ + "PUBMED" + ] + }, + "lcsb.mapviewer.model.map.compartment.BottomSquareCompartment": { + "require-at-least-one": true, + "annotation-list": [ + ] + }, + "lcsb.mapviewer.model.map.reaction.type.ReducedPhysicalStimulationReaction": { + "require-at-least-one": true, + "annotation-list": [ + "PUBMED" + ] + }, + "lcsb.mapviewer.model.map.species.Chemical": { + "require-at-least-one": true, + "annotation-list": [ + "CHEBI", + "PUBCHEM", + "PUBCHEM_SUBSTANCE" + ] + }, + "lcsb.mapviewer.model.map.species.Degraded": { + "require-at-least-one": true, + "annotation-list": [ + ] + }, + "lcsb.mapviewer.model.map.compartment.PathwayCompartment": { + "require-at-least-one": true, + "annotation-list": [ + ] + }, + "lcsb.mapviewer.model.map.species.SimpleMolecule": { + "require-at-least-one": true, + "annotation-list": [ + "CHEBI", + "PUBCHEM", + "PUBCHEM_SUBSTANCE" + ] + }, + "lcsb.mapviewer.model.map.reaction.type.BooleanLogicGateReaction": { + "require-at-least-one": true, + "annotation-list": [ + "PUBMED" + ] + }, + "lcsb.mapviewer.model.map.species.ReceptorProtein": { + "require-at-least-one": true, + "annotation-list": [ + "HGNC", + "HGNC_SYMBOL" + ] + }, + "lcsb.mapviewer.model.map.reaction.type.UnknownTransitionReaction": { + "require-at-least-one": true, + "annotation-list": [ + "PUBMED" + ] + }, + "lcsb.mapviewer.model.map.reaction.type.TranscriptionReaction": { + "require-at-least-one": true, + "annotation-list": [ + "PUBMED" + ] + }, + "lcsb.mapviewer.model.map.species.Gene": { + "require-at-least-one": true, + "annotation-list": [ + "HGNC", + "HGNC_SYMBOL" + ] + }, + "lcsb.mapviewer.model.map.compartment.OvalCompartment": { + "require-at-least-one": true, + "annotation-list": [ + ] + }, + "lcsb.mapviewer.model.map.reaction.type.PositiveInfluenceReaction": { + "require-at-least-one": true, + "annotation-list": [ + "PUBMED" + ] + }, + "lcsb.mapviewer.model.map.reaction.type.ReducedTriggerReaction": { + "require-at-least-one": true, + "annotation-list": [ + "PUBMED" + ] + }, + "lcsb.mapviewer.model.map.species.Protein": { + "require-at-least-one": true, + "annotation-list": [ + "HGNC", + "HGNC_SYMBOL" + ] + }, + "lcsb.mapviewer.model.map.reaction.type.UnknownReducedPhysicalStimulationReaction": { + "require-at-least-one": true, + "annotation-list": [ + "PUBMED" + ] + }, + "lcsb.mapviewer.model.map.BioEntity": { + "require-at-least-one": true, + "annotation-list": [ + ] + }, + "lcsb.mapviewer.model.map.species.GenericProtein": { + "require-at-least-one": true, + "annotation-list": [ + "HGNC", + "HGNC_SYMBOL" + ] + }, + "lcsb.mapviewer.model.map.reaction.type.TransportReaction": { + "require-at-least-one": true, + "annotation-list": [ + "PUBMED" + ] + }, + "lcsb.mapviewer.model.map.species.IonChannelProtein": { + "require-at-least-one": true, + "annotation-list": [ + "HGNC", + "HGNC_SYMBOL" + ] + }, + "lcsb.mapviewer.model.map.reaction.type.UnknownReducedModulationReaction": { + "require-at-least-one": true, + "annotation-list": [ + "PUBMED" + ] + }, + "lcsb.mapviewer.model.map.species.Phenotype": { + "require-at-least-one": true, + "annotation-list": [ + ] + }, + "lcsb.mapviewer.model.map.species.Drug": { + "require-at-least-one": true, + "annotation-list": [ + ] + }, + "lcsb.mapviewer.model.map.species.Element": { + "require-at-least-one": true, + "annotation-list": [ + ] + }, + "lcsb.mapviewer.model.map.reaction.type.DissociationReaction": { + "require-at-least-one": true, + "annotation-list": [ + "PUBMED" + ] + }, + "lcsb.mapviewer.model.map.compartment.SquareCompartment": { + "require-at-least-one": true, + "annotation-list": [ + ] + }, + "lcsb.mapviewer.model.map.species.Ion": { + "require-at-least-one": true, + "annotation-list": [ + "CHEBI", + "PUBCHEM", + "PUBCHEM_SUBSTANCE" + ] + }, + "lcsb.mapviewer.model.map.reaction.Reaction": { + "require-at-least-one": true, + "annotation-list": [ + "PUBMED" + ] + }, + "lcsb.mapviewer.model.map.reaction.type.HeterodimerAssociationReaction": { + "require-at-least-one": true, + "annotation-list": [ + "PUBMED" + ] + }, + "lcsb.mapviewer.model.map.compartment.RightSquareCompartment": { + "require-at-least-one": true, + "annotation-list": [ + ] + }, + "lcsb.mapviewer.model.map.reaction.type.TranslationReaction": { + "require-at-least-one": true, + "annotation-list": [ + "PUBMED" + ] + }, + "lcsb.mapviewer.model.map.reaction.type.UnknownPositiveInfluenceReaction": { + "require-at-least-one": true, + "annotation-list": [ + "PUBMED" + ] + }, + "lcsb.mapviewer.model.map.reaction.type.ReducedModulationReaction": { + "require-at-least-one": true, + "annotation-list": [ + "PUBMED" + ] + }, + "lcsb.mapviewer.model.map.species.AntisenseRna": { + "require-at-least-one": true, + "annotation-list": [ + ] + }, + "lcsb.mapviewer.model.map.species.Complex": { + "require-at-least-one": true, + "annotation-list": [ + ] + }, + "lcsb.mapviewer.model.map.species.Unknown": { + "require-at-least-one": true, + "annotation-list": [ + ] + }, + "lcsb.mapviewer.model.map.reaction.type.TruncationReaction": { + "require-at-least-one": true, + "annotation-list": [ + "PUBMED" + ] + }, + "lcsb.mapviewer.model.map.compartment.LeftSquareCompartment": { + "require-at-least-one": true, + "annotation-list": [ + ] + }, + "lcsb.mapviewer.model.map.reaction.type.UnknownNegativeInfluenceReaction": { + "require-at-least-one": true, + "annotation-list": [ + "PUBMED" + ] + }, + "lcsb.mapviewer.model.map.reaction.type.NegativeInfluenceReaction": { + "require-at-least-one": true, + "annotation-list": [ + "PUBMED" + ] + }, + "lcsb.mapviewer.model.map.species.TruncatedProtein": { + "require-at-least-one": true, + "annotation-list": [ + "HGNC", + "HGNC_SYMBOL" + ] + }, + "lcsb.mapviewer.model.map.compartment.Compartment": { + "require-at-least-one": true, + "annotation-list": [ + ] + }, + "lcsb.mapviewer.model.map.compartment.TopSquareCompartment": { + "require-at-least-one": true, + "annotation-list": [ + ] + }, + "lcsb.mapviewer.model.map.species.Species": { + "require-at-least-one": true, + "annotation-list": [ + ] + }, + "lcsb.mapviewer.model.map.species.Rna": { + "require-at-least-one": true, + "annotation-list": [ + "HGNC", + "HGNC_SYMBOL" + ] + }, + "lcsb.mapviewer.model.map.reaction.type.KnownTransitionOmittedReaction": { + "require-at-least-one": true, + "annotation-list": [ + "PUBMED" + ] + }, + "lcsb.mapviewer.model.map.reaction.type.StateTransitionReaction": { + "require-at-least-one": true, + "annotation-list": [ + "PUBMED" + ] + } + }, + "element-valid-annotations": { + "lcsb.mapviewer.model.map.reaction.type.UnknownReducedTriggerReaction": [ + "KEGG_PATHWAY", + "KEGG_REACTION", + "PUBMED", + "REACTOME" + ], + "lcsb.mapviewer.model.map.compartment.BottomSquareCompartment": [ + "GO", + "MESH_2012", + "PUBMED" + ], + "lcsb.mapviewer.model.map.reaction.type.ReducedPhysicalStimulationReaction": [ + "KEGG_PATHWAY", + "KEGG_REACTION", + "PUBMED", + "REACTOME" + ], + "lcsb.mapviewer.model.map.species.Chemical": [ + "CHEBI", + "HMDB", + "KEGG_COMPOUND", + "PUBCHEM", + "PUBCHEM_SUBSTANCE", + "PUBMED" + ], + "lcsb.mapviewer.model.map.species.Degraded": [ + "PUBMED" + ], + "lcsb.mapviewer.model.map.compartment.PathwayCompartment": [ + "GO", + "MESH_2012", + "PUBMED" + ], + "lcsb.mapviewer.model.map.species.SimpleMolecule": [ + "CHEBI", + "HMDB", + "KEGG_COMPOUND", + "PUBCHEM", + "PUBCHEM_SUBSTANCE", + "PUBMED" + ], + "lcsb.mapviewer.model.map.reaction.type.BooleanLogicGateReaction": [ + "KEGG_PATHWAY", + "KEGG_REACTION", + "PUBMED", + "REACTOME" + ], + "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.reaction.type.UnknownTransitionReaction": [ + "KEGG_PATHWAY", + "KEGG_REACTION", + "PUBMED", + "REACTOME" + ], + "lcsb.mapviewer.model.map.reaction.type.TranscriptionReaction": [ + "KEGG_PATHWAY", + "KEGG_REACTION", + "PUBMED", + "REACTOME" + ], + "lcsb.mapviewer.model.map.species.Gene": [ + "ENSEMBL", + "ENTREZ", + "HGNC", + "HGNC_SYMBOL", + "KEGG_GENES", + "MGD", + "PANTHER", + "PUBMED", + "REFSEQ", + "UNIPROT" + ], + "lcsb.mapviewer.model.map.compartment.OvalCompartment": [ + "GO", + "MESH_2012", + "PUBMED" + ], + "lcsb.mapviewer.model.map.reaction.type.PositiveInfluenceReaction": [ + "KEGG_PATHWAY", + "KEGG_REACTION", + "PUBMED", + "REACTOME" + ], + "lcsb.mapviewer.model.map.reaction.type.ReducedTriggerReaction": [ + "KEGG_PATHWAY", + "KEGG_REACTION", + "PUBMED", + "REACTOME" + ], + "lcsb.mapviewer.model.map.species.Protein": [ + "CHEMBL_TARGET", + "EC", + "ENSEMBL", + "ENTREZ", + "HGNC", + "HGNC_SYMBOL", + "INTERPRO", + "KEGG_GENES", + "MGD", + "PANTHER", + "PUBMED", + "REFSEQ", + "UNIPROT", + "UNIPROT_ISOFORM" + ], + "lcsb.mapviewer.model.map.reaction.type.UnknownReducedPhysicalStimulationReaction": [ + "KEGG_PATHWAY", + "KEGG_REACTION", + "PUBMED", + "REACTOME" + ], + "lcsb.mapviewer.model.map.BioEntity": [ + ], + "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.reaction.type.TransportReaction": [ + "KEGG_PATHWAY", + "KEGG_REACTION", + "PUBMED", + "REACTOME" + ], + "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.reaction.type.UnknownReducedModulationReaction": [ + "KEGG_PATHWAY", + "KEGG_REACTION", + "PUBMED", + "REACTOME" + ], + "lcsb.mapviewer.model.map.species.Phenotype": [ + "GO", + "MESH_2012", + "OMIM", + "PUBMED" + ], + "lcsb.mapviewer.model.map.species.Drug": [ + "CHEBI", + "CHEMBL_COMPOUND", + "DRUGBANK", + "HMDB", + "PUBMED" + ], + "lcsb.mapviewer.model.map.species.Element": [ + "PUBMED" + ], + "lcsb.mapviewer.model.map.reaction.type.DissociationReaction": [ + "KEGG_PATHWAY", + "KEGG_REACTION", + "PUBMED", + "REACTOME" + ], + "lcsb.mapviewer.model.map.compartment.SquareCompartment": [ + "GO", + "MESH_2012", + "PUBMED" + ], + "lcsb.mapviewer.model.map.species.Ion": [ + "CHEBI", + "HMDB", + "KEGG_COMPOUND", + "PUBCHEM", + "PUBCHEM_SUBSTANCE", + "PUBMED" + ], + "lcsb.mapviewer.model.map.reaction.Reaction": [ + "KEGG_PATHWAY", + "KEGG_REACTION", + "PUBMED", + "REACTOME" + ], + "lcsb.mapviewer.model.map.reaction.type.HeterodimerAssociationReaction": [ + "KEGG_PATHWAY", + "KEGG_REACTION", + "PUBMED", + "REACTOME" + ], + "lcsb.mapviewer.model.map.compartment.RightSquareCompartment": [ + "GO", + "MESH_2012", + "PUBMED" + ], + "lcsb.mapviewer.model.map.reaction.type.TranslationReaction": [ + "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.ReducedModulationReaction": [ + "KEGG_PATHWAY", + "KEGG_REACTION", + "PUBMED", + "REACTOME" + ], + "lcsb.mapviewer.model.map.species.AntisenseRna": [ + "PUBMED" + ], + "lcsb.mapviewer.model.map.species.Complex": [ + "CHEMBL_TARGET", + "EC", + "GO", + "INTERPRO", + "MESH_2012", + "PUBMED" + ], + "lcsb.mapviewer.model.map.species.Unknown": [ + "PUBMED" + ], + "lcsb.mapviewer.model.map.reaction.type.TruncationReaction": [ + "KEGG_PATHWAY", + "KEGG_REACTION", + "PUBMED", + "REACTOME" + ], + "lcsb.mapviewer.model.map.compartment.LeftSquareCompartment": [ + "GO", + "MESH_2012", + "PUBMED" + ], + "lcsb.mapviewer.model.map.reaction.type.UnknownNegativeInfluenceReaction": [ + "KEGG_PATHWAY", + "KEGG_REACTION", + "PUBMED", + "REACTOME" + ], + "lcsb.mapviewer.model.map.reaction.type.NegativeInfluenceReaction": [ + "KEGG_PATHWAY", + "KEGG_REACTION", + "PUBMED", + "REACTOME" + ], + "lcsb.mapviewer.model.map.species.TruncatedProtein": [ + "CHEMBL_TARGET", + "EC", + "ENSEMBL", + "ENTREZ", + "HGNC", + "HGNC_SYMBOL", + "INTERPRO", + "KEGG_GENES", + "MGD", + "PANTHER", + "PUBMED", + "REFSEQ", + "UNIPROT", + "UNIPROT_ISOFORM" + ], + "lcsb.mapviewer.model.map.compartment.Compartment": [ + "GO", + "MESH_2012", + "PUBMED" + ], + "lcsb.mapviewer.model.map.compartment.TopSquareCompartment": [ + "GO", + "MESH_2012", + "PUBMED" + ], + "lcsb.mapviewer.model.map.species.Species": [ + "PUBMED" + ], + "lcsb.mapviewer.model.map.species.Rna": [ + "ENSEMBL", + "ENTREZ", + "HGNC", + "HGNC_SYMBOL", + "KEGG_GENES", + "MGD", + "PANTHER", + "PUBMED", + "REFSEQ", + "UNIPROT" + ], + "lcsb.mapviewer.model.map.reaction.type.KnownTransitionOmittedReaction": [ + "KEGG_PATHWAY", + "KEGG_REACTION", + "PUBMED", + "REACTOME" + ], + "lcsb.mapviewer.model.map.reaction.type.StateTransitionReaction": [ + "KEGG_PATHWAY", + "KEGG_REACTION", + "PUBMED", + "REACTOME" + ] + }, + "element-annotators": { + "lcsb.mapviewer.model.map.reaction.type.UnknownReducedTriggerReaction": [ + ], + "lcsb.mapviewer.model.map.compartment.BottomSquareCompartment": [ + "Gene Ontology" + ], + "lcsb.mapviewer.model.map.reaction.type.ReducedPhysicalStimulationReaction": [ + ], + "lcsb.mapviewer.model.map.species.Chemical": [ + "Chebi" + ], + "lcsb.mapviewer.model.map.species.Degraded": [ + ], + "lcsb.mapviewer.model.map.compartment.PathwayCompartment": [ + "Gene Ontology" + ], + "lcsb.mapviewer.model.map.species.SimpleMolecule": [ + "Chebi" + ], + "lcsb.mapviewer.model.map.reaction.type.BooleanLogicGateReaction": [ + ], + "lcsb.mapviewer.model.map.species.ReceptorProtein": [ + "Biocompendium", + "HGNC" + ], + "lcsb.mapviewer.model.map.reaction.type.UnknownTransitionReaction": [ + ], + "lcsb.mapviewer.model.map.reaction.type.TranscriptionReaction": [ + ], + "lcsb.mapviewer.model.map.species.Gene": [ + "HGNC" + ], + "lcsb.mapviewer.model.map.compartment.OvalCompartment": [ + "Gene Ontology" + ], + "lcsb.mapviewer.model.map.reaction.type.PositiveInfluenceReaction": [ + ], + "lcsb.mapviewer.model.map.reaction.type.ReducedTriggerReaction": [ + ], + "lcsb.mapviewer.model.map.species.Protein": [ + "Biocompendium", + "HGNC" + ], + "lcsb.mapviewer.model.map.reaction.type.UnknownReducedPhysicalStimulationReaction": [ + ], + "lcsb.mapviewer.model.map.BioEntity": [ + ], + "lcsb.mapviewer.model.map.species.GenericProtein": [ + "Biocompendium", + "HGNC" + ], + "lcsb.mapviewer.model.map.reaction.type.TransportReaction": [ + ], + "lcsb.mapviewer.model.map.species.IonChannelProtein": [ + "Biocompendium", + "HGNC" + ], + "lcsb.mapviewer.model.map.reaction.type.UnknownReducedModulationReaction": [ + ], + "lcsb.mapviewer.model.map.species.Phenotype": [ + "Gene Ontology" + ], + "lcsb.mapviewer.model.map.species.Drug": [ + ], + "lcsb.mapviewer.model.map.species.Element": [ + ], + "lcsb.mapviewer.model.map.reaction.type.DissociationReaction": [ + ], + "lcsb.mapviewer.model.map.compartment.SquareCompartment": [ + "Gene Ontology" + ], + "lcsb.mapviewer.model.map.species.Ion": [ + "Chebi" + ], + "lcsb.mapviewer.model.map.reaction.Reaction": [ + ], + "lcsb.mapviewer.model.map.reaction.type.HeterodimerAssociationReaction": [ + ], + "lcsb.mapviewer.model.map.compartment.RightSquareCompartment": [ + "Gene Ontology" + ], + "lcsb.mapviewer.model.map.reaction.type.TranslationReaction": [ + ], + "lcsb.mapviewer.model.map.reaction.type.UnknownPositiveInfluenceReaction": [ + ], + "lcsb.mapviewer.model.map.reaction.type.ReducedModulationReaction": [ + ], + "lcsb.mapviewer.model.map.species.AntisenseRna": [ + ], + "lcsb.mapviewer.model.map.species.Complex": [ + "Gene Ontology" + ], + "lcsb.mapviewer.model.map.species.Unknown": [ + ], + "lcsb.mapviewer.model.map.reaction.type.TruncationReaction": [ + ], + "lcsb.mapviewer.model.map.compartment.LeftSquareCompartment": [ + "Gene Ontology" + ], + "lcsb.mapviewer.model.map.reaction.type.UnknownNegativeInfluenceReaction": [ + ], + "lcsb.mapviewer.model.map.reaction.type.NegativeInfluenceReaction": [ + ], + "lcsb.mapviewer.model.map.species.TruncatedProtein": [ + "Biocompendium", + "HGNC" + ], + "lcsb.mapviewer.model.map.compartment.Compartment": [ + "Gene Ontology" + ], + "lcsb.mapviewer.model.map.compartment.TopSquareCompartment": [ + "Gene Ontology" + ], + "lcsb.mapviewer.model.map.species.Species": [ + ], + "lcsb.mapviewer.model.map.species.Rna": [ + "HGNC" + ], + "lcsb.mapviewer.model.map.reaction.type.KnownTransitionOmittedReaction": [ + ], + "lcsb.mapviewer.model.map.reaction.type.StateTransitionReaction": [ + ] + }, + "project-upload": { + "auto-resize": false, + "sbgn": false, + "cache-data": true, + "semantic-zooming": false, + "annotate-model": false, + "validate-miriam": false + } +} \ No newline at end of file diff --git a/persist/src/db/11.1.0/fix_db_20170829.sql b/persist/src/db/11.1.0/fix_db_20170829.sql index c5d18a2ac2cca017e749cd449d76970d507c4047..43eead655e216bcbb59e7ed06b9e8befea12e27b 100644 --- a/persist/src/db/11.1.0/fix_db_20170829.sql +++ b/persist/src/db/11.1.0/fix_db_20170829.sql @@ -4,3 +4,10 @@ alter table user_annotation_schema_table add column autoresizemap boolean defaul alter table user_annotation_schema_table add column cachedata boolean default true; alter table user_annotation_schema_table add column semanticzooming boolean default false; alter table class_required_annotation_table RENAME column requireatlestoneannotation to requireatleastoneannotation; + +-- rename config annotation class name +update class_annotator_table set classname ='lcsb.mapviewer.model.map.BioEntity' where classname ='lcsb.mapviewer.model.map.AnnotatedObject'; +update class_required_annotation_table set classname ='lcsb.mapviewer.model.map.BioEntity' where classname ='lcsb.mapviewer.model.map.AnnotatedObject'; +update class_valid_annotation_table set classname ='lcsb.mapviewer.model.map.BioEntity' where classname ='lcsb.mapviewer.model.map.AnnotatedObject'; + + diff --git a/rest-api/src/main/java/lcsb/mapviewer/api/users/UserRestImpl.java b/rest-api/src/main/java/lcsb/mapviewer/api/users/UserRestImpl.java index 0ed3cd9889fe6e0510dbe6773e1e5e8146a50b03..b3dbe1354330db2b53e19797776072ead5ffca71 100644 --- a/rest-api/src/main/java/lcsb/mapviewer/api/users/UserRestImpl.java +++ b/rest-api/src/main/java/lcsb/mapviewer/api/users/UserRestImpl.java @@ -128,7 +128,7 @@ public class UserRestImpl extends BaseRestImpl { private Map<String, Object> prepareValidAnnotations(List<UserClassValidAnnotations> classValidAnnotators) { Map<String, Object> result = new HashMap<>(); for (UserClassValidAnnotations userClassAnnotators : classValidAnnotators) { - result.put(userClassAnnotators.getClassName(), userClassAnnotators.getValidMiriamTypes()); + result.put(userClassAnnotators.getClassName(), new ArrayList<>(userClassAnnotators.getValidMiriamTypes())); } return result; } @@ -158,7 +158,12 @@ public class UserRestImpl extends BaseRestImpl { for (UserClassRequiredAnnotations requiredAnnotations : classRequiredAnnotators) { Map<String, Object> row = new HashMap<>(); row.put("require-at-least-one", requiredAnnotations.getRequireAtLeastOneAnnotation()); - row.put("annotation-list", requiredAnnotations.getRequiredMiriamTypes()); + List<String> miriamTypes = new ArrayList<>(); + + for (MiriamType mt : requiredAnnotations.getRequiredMiriamTypes()) { + miriamTypes.add(mt.name()); + } + row.put("annotation-list", miriamTypes); result.put(requiredAnnotations.getClassName(), row); } return result; @@ -200,7 +205,7 @@ public class UserRestImpl extends BaseRestImpl { private Map<String, Object> prepareElementAnnotators(List<UserClassAnnotators> classAnnotators) { Map<String, Object> result = new HashMap<>(); for (UserClassAnnotators userClassAnnotators : classAnnotators) { - result.put(userClassAnnotators.getClassName(), userClassAnnotators.getAnnotators()); + result.put(userClassAnnotators.getClassName(), new ArrayList<>(userClassAnnotators.getAnnotators())); } return result; }