diff --git a/main/webapp/modules/core/langs/translation-en.json b/main/webapp/modules/core/langs/translation-en.json index ae836fb8d..37a9d6028 100644 --- a/main/webapp/modules/core/langs/translation-en.json +++ b/main/webapp/modules/core/langs/translation-en.json @@ -510,6 +510,8 @@ "remove-prop": "remove", "configure-prop": "configure", "no-settings": "No settings are available for this property.", + "extend-not-reconciled": "This operation is only available on reconciled columns.", + "extend-not-supported": "This reconciliation service does not support data extension. Try removing the service and adding it again. If the problem persists, contact the service provider.", "add-col-fetch": "Add column by fetching URLs based on column", "throttle-delay": "Throttle delay", "milli": "milliseconds", diff --git a/main/webapp/modules/core/scripts/dialogs/extend-data-preview-dialog.js b/main/webapp/modules/core/scripts/dialogs/extend-data-preview-dialog.js index 89d906f23..f31652f18 100644 --- a/main/webapp/modules/core/scripts/dialogs/extend-data-preview-dialog.js +++ b/main/webapp/modules/core/scripts/dialogs/extend-data-preview-dialog.js @@ -62,19 +62,19 @@ function ExtendReconciledDataPreviewDialog(column, columnIndex, rowIndices, onDo DialogSystem.dismissUntil(self._level - 1); }); - var dismissBusy = DialogSystem.showBusy(); var type = (column.reconConfig) && (column.reconConfig.type) ? column.reconConfig.type.id : ""; this._proposePropertiesUrl = null; this._fetchColumnUrl = null; this._serviceMetadata = null; + var extend = null; if ("reconConfig" in column) { var service = column.reconConfig.service; this._service = service; var serviceMetadata = ReconciliationManager.getServiceFromUrl(service); this._serviceMetadata = serviceMetadata; if ("extend" in serviceMetadata) { - var extend = serviceMetadata.extend; + extend = serviceMetadata.extend; if ("propose_properties" in extend) { var endpoint = extend.propose_properties; this._proposePropertiesUrl = endpoint.service_url + endpoint.service_path; @@ -82,10 +82,17 @@ function ExtendReconciledDataPreviewDialog(column, columnIndex, rowIndices, onDo } } - ExtendReconciledDataPreviewDialog.getAllProperties(this._proposePropertiesUrl, type, function(properties) { - dismissBusy(); - self._show(properties); - }); + if (this._serviceMetadata === null) { + alert($.i18n._('core-views')["extend-not-reconciled"]); + } else if(extend === null) { + alert($.i18n._('core-views')["extend-not-supported"]); + } else { + var dismissBusy = DialogSystem.showBusy(); + ExtendReconciledDataPreviewDialog.getAllProperties(this._proposePropertiesUrl, type, function(properties) { + dismissBusy(); + self._show(properties); + }); + } } ExtendReconciledDataPreviewDialog.getAllProperties = function(url, typeID, onDone) { @@ -189,7 +196,7 @@ ExtendReconciledDataPreviewDialog.prototype._update = function() { }, "json" ).fail(function(data) { - console.log(data); + alert($.i18n._("core-views")["internal-err"]); }); } }; @@ -292,7 +299,7 @@ ExtendReconciledDataPreviewDialog.prototype._renderPreview = function(data) { ExtendReconciledDataPreviewDialog.prototype._removeProperty = function(id) { for(var i = this._extension.properties.length - 1; i >= 0; i--) { var property = this._extension.properties[i]; - if (property.id == id) { + if (property.id === id) { this._extension.properties.splice(i, 1); } } @@ -302,7 +309,7 @@ ExtendReconciledDataPreviewDialog.prototype._removeProperty = function(id) { ExtendReconciledDataPreviewDialog.prototype._findProperty = function(id) { var properties = this._extension.properties; for(var i = properties.length - 1; i >= 0; i--) { - if (properties[i].id == id) { + if (properties[i].id === id) { return properties[i]; } } @@ -332,7 +339,7 @@ ExtendReconciledDataPreviewDialog.prototype._constrainProperty = function(id) { } var tr = $('