/* $This file is distributed under the terms of the license in /doc/license.txt$ */ var ErrorDisplayWidget = Class.extend({ container: '', body: '', bodyID: 'error-body', messagePlaceholderID: 'variable-error-text', init: function(opts) { this.container = $("#" + opts.containerID); this.body = this.container.find("#" + this.bodyID); }, isErrorConditionTriggered: function(responseData) { if (responseData.error) { return true; } if (responseData[0].pubsMapped === 0) { return true; } return false; }, show: function(errorForType, responseData) { var isZeroPublicationsCase = responseData.error ? true : false; var newErrorMessage = ""; /* * This means that the organization or person has zero publications. * */ if (isZeroPublicationsCase) { newErrorMessage += "No publications in the system have been attributed to this " + errorForType.toLowerCase() + "."; } else { /* * This means that the organization or person has publications but none of them are mapped. * Change the default text. * */ newErrorMessage += this._getUnScienceLocatedErrorMessage(errorForType, responseData[0]); } /* * Now replace the error message with the newly created one. * */ this.body.find("#" + this.messagePlaceholderID).html(newErrorMessage); this.container.show(); }, _getUnScienceLocatedErrorMessage: function(errorForType, responseData) { var totalPublications = responseData.pubsWithNoJournals + responseData.pubsWithInvalidJournals; var newErrorMessage = ""; if (totalPublications > 1) { newErrorMessage = "None of the " + totalPublications + " publications attributed to this " + errorForType.toLowerCase() + " have been 'science-located'."; } else { newErrorMessage = "The publication attributed to this " + errorForType.toLowerCase() + " has not been 'science-located'."; } newErrorMessage += "