diff --git a/CHANGELOG b/CHANGELOG index bc33dd952e88e509592c8af8ec8a9ec48ae0a19c..d1a240b4a58675746722debd6a9cace65c2e6ee1 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -3,6 +3,8 @@ minerva (14.0.0~beta.2) unstable; urgency=low * Bug fix: allow user to remove own comments (#931) * Bug fix: validation of project name length is provided (#950) * Bug fix: after reducing privileges on himself interface is refreshed (#948) + * Bug fix: list of "Copy from" elements in "Select valid annotations" dialog + is shortened to used bio entity typrd (#911) * Bug fix: removing overlays as curator in admin panel fixed (#944) * Bug fix: information about deprecated column is more clear about column names (#838) diff --git a/frontend-js/src/main/js/gui/admin/AbstractAnnotatorsDialog.js b/frontend-js/src/main/js/gui/admin/AbstractAnnotatorsDialog.js index d13c51e0603ecd058527a61fd9412534e86dcd78..4871327e410f749c1dfdca41852bc0171e304503 100644 --- a/frontend-js/src/main/js/gui/admin/AbstractAnnotatorsDialog.js +++ b/frontend-js/src/main/js/gui/admin/AbstractAnnotatorsDialog.js @@ -51,4 +51,32 @@ AbstractAnnotatorsDialog.prototype.getAllChildrenTypesIfNeeded = function (eleme return result; }; +/** + * + * @return {BioEntityTypeTreeNode[]} + */ +AbstractAnnotatorsDialog.prototype.getTypeNodeList = function () { + var types = []; + + var treeData = this.getConfiguration().getElementTypeTree(); + + var queue = [treeData]; + + while (queue.length > 0) { + var node = queue.shift(); + if (node.children !== undefined && node.children.length > 0) { + for (var i = 0; i < node.children.length; i++) { + queue.push(node.children[i]); + } + } else { + types.push(node); + } + } + types.sort(function (a, b) { + return a.text.localeCompare(b.text); + }); + return types; +}; + + module.exports = AbstractAnnotatorsDialog; diff --git a/frontend-js/src/main/js/gui/admin/ChooseAnnotatorsDialog.js b/frontend-js/src/main/js/gui/admin/ChooseAnnotatorsDialog.js index 320eb60e67b85d40d3a100fc62c2cb632134d55a..421a9d0c06adba04e3bbaa0cdc368fbdb23a467d 100644 --- a/frontend-js/src/main/js/gui/admin/ChooseAnnotatorsDialog.js +++ b/frontend-js/src/main/js/gui/admin/ChooseAnnotatorsDialog.js @@ -416,33 +416,6 @@ ChooseAnnotatorsDialog.prototype.createAnnotatorsParams = function (selectedAnno }; -/** - * - * @return {BioEntityTypeTreeNode[]} - */ -ChooseAnnotatorsDialog.prototype.getTypeNodeList = function () { - var types = []; - - var treeData = this.getConfiguration().getElementTypeTree(); - - var queue = [treeData]; - - while (queue.length > 0) { - var node = queue.shift(); - if (node.children !== undefined && node.children.length > 0) { - for (var i = 0; i < node.children.length; i++) { - queue.push(node.children[i]); - } - } else { - types.push(node); - } - } - types.sort(function (a, b) { - return a.text.localeCompare(b.text); - }); - return types; -}; - /** * * @returns {Promise} diff --git a/frontend-js/src/main/js/gui/admin/ChooseValidatorsDialog.js b/frontend-js/src/main/js/gui/admin/ChooseValidatorsDialog.js index 78cfe774507c3cb3d6d9f10ae7c1d45c2604b7dc..f39b87d68d3e5cc051e7006a19d5c0408b0e3713 100644 --- a/frontend-js/src/main/js/gui/admin/ChooseValidatorsDialog.js +++ b/frontend-js/src/main/js/gui/admin/ChooseValidatorsDialog.js @@ -21,7 +21,7 @@ var logger = require('../../logger'); * @param {Object} params * @param {HTMLElement} params.element * @param {CustomMap} params.customMap - * @param {Configuration} [params.configuration] + * @param {Configuration} params.configuration * @param {ServerConnector} [params.serverConnector] * * @constructor @@ -125,16 +125,13 @@ ChooseValidatorsDialog.prototype.setElementType = function (elementType) { var copyFromSelect = Functions.createElement({type: "select", style: "margin:5px"}); element.appendChild(copyFromSelect); var options = [], i; - for (i = 0; i < configuration.getElementTypes().length; i++) { - var type = configuration.getElementTypes()[i]; - var name = type.className; - if (name.indexOf(".") > 0) { - name = name.substr(name.lastIndexOf(".") + 1); - } + var nodeList = self.getTypeNodeList(); + for (i = 0; i < nodeList.length; i++) { + var type = nodeList[i]; options.push(Functions.createElement({ type: "option", - value: type.className, - content: name + value: type.data.className, + content: type.text })); } options.sort(function (a, b) { @@ -143,6 +140,7 @@ ChooseValidatorsDialog.prototype.setElementType = function (elementType) { for (i = 0; i < options.length; i++) { copyFromSelect.appendChild(options[i]); } + element.appendChild(includeChildrenCheckbox); element.appendChild(Functions.createElement({type: "span", content: "Apply to all in subtree"})); diff --git a/frontend-js/src/test/js/gui/admin/ChooseValidatorsDialog-test.js b/frontend-js/src/test/js/gui/admin/ChooseValidatorsDialog-test.js index d9c985baf8423f2c4048293d37351c77043678d5..947487387f7df273d92dcbf0324076dc19204ac3 100644 --- a/frontend-js/src/test/js/gui/admin/ChooseValidatorsDialog-test.js +++ b/frontend-js/src/test/js/gui/admin/ChooseValidatorsDialog-test.js @@ -11,34 +11,31 @@ var Promise = require('bluebird'); var chai = require('chai'); var assert = chai.assert; +function createDialog() { + return new ChooseValidatorsDialog({ + element: testDiv, + customMap: null, + serverConnector: ServerConnector, + configuration: helper.getConfiguration() + }); +} + describe('ChooseValidatorsDialog', function () { it('init', function () { - var dialog = new ChooseValidatorsDialog({ - element: testDiv, - customMap: null, - serverConnector: ServerConnector - }); + var dialog = createDialog(); assert.equal(0, logger.getWarnings().length); return dialog.init(); }); it('setElementType', function () { - var dialog = new ChooseValidatorsDialog({ - element: testDiv, - customMap: null, - serverConnector: ServerConnector - }); + var dialog = createDialog(); return ServerConnector.getConfiguration().then(function (configuration) { return dialog.setElementType(configuration.getReactionTypes()[0]); }) }); it('open', function () { - var dialog = new ChooseValidatorsDialog({ - element: testDiv, - customMap: null, - serverConnector: ServerConnector - }); + var dialog = createDialog(); return dialog.init().then(function () { return dialog.open(); }).then(function () { @@ -52,11 +49,7 @@ describe('ChooseValidatorsDialog', function () { helper.loginAsAdmin(); var originalFunction = ServerConnector.updateUserPreferences; var functionCalled = false; - var dialog = new ChooseValidatorsDialog({ - element: testDiv, - customMap: null, - serverConnector: ServerConnector - }); + var dialog = createDialog(); return dialog.init().then(function () { return dialog.open(); }).then(function () {