diff --git a/src/firefly/js/ui/TargetPanelWorker.js b/src/firefly/js/ui/TargetPanelWorker.js index a2ceab632c..bc07c822a4 100644 --- a/src/firefly/js/ui/TargetPanelWorker.js +++ b/src/firefly/js/ui/TargetPanelWorker.js @@ -169,7 +169,7 @@ function resolveObject(posFieldDef, resolver) { else { return { showHelp: false, - feedback: `Could not resolve: ${objName}`, + feedback: `Could not resolve: ${decodeURIComponent(objName)}`, valid: false, wpt: null }; @@ -178,7 +178,7 @@ function resolveObject(posFieldDef, resolver) { else { return { showHelp: false, - feedback: `Could not resolve: ${objName}`, + feedback: `Could not resolve: ${decodeURIComponent(objName)}`, valid: false, wpt: null }; @@ -187,7 +187,7 @@ function resolveObject(posFieldDef, resolver) { ).catch((e) => { // e is undefined when a newer request came in, and promise is rejected if (e) { - let feedback = `Could not resolve: ${objName}`; + let feedback = `Could not resolve: ${decodeURIComponent(objName)}`; if (e.name === 'AbortError') { feedback += '. Unresponsive service.'; } else { diff --git a/src/firefly/js/util/PositionParser.js b/src/firefly/js/util/PositionParser.js index 37cac2308f..3675ebfc01 100644 --- a/src/firefly/js/util/PositionParser.js +++ b/src/firefly/js/util/PositionParser.js @@ -54,11 +54,21 @@ var makePositionParser = function(helper) { isValid = true; } } else { - var map= getPositionMap(s); + const map= getPositionMap(s); _coordSys= getCoordSysFromString(map[COORDINATE_SYS]); _ra = map[RA]; _dec = map[DEC]; - isValid = retPP.getCoordSys() !==CoordinateSys.UNDEFINED && !isNaN(retPP.getRa()) && !isNaN(retPP.getDec()); + const validRa = !isNaN(retPP.getRa()); + const validDec = !isNaN(retPP.getDec()); + // determineType uses the first string to decide if the input is a position or object name. + // "12 mus" (a valid object name in NED) would be classified as a position. + if (!validDec) { + _inputType = PositionParsedInput.Name; + _objName= s; + isValid = true; + } else { + isValid = retPP.getCoordSys() !== CoordinateSys.UNDEFINED && validRa && validDec; + } } } diff --git a/src/firefly/js/util/StringUtils.js b/src/firefly/js/util/StringUtils.js index 813304be73..326462c7b2 100644 --- a/src/firefly/js/util/StringUtils.js +++ b/src/firefly/js/util/StringUtils.js @@ -57,7 +57,7 @@ export function convertExtendedAscii(sbOriginal) { return null; } - const retval= sbOriginal; + let retval= sbOriginal; let origCharAsInt; for (let isb = 0; isb < retval.length; isb++) { @@ -66,15 +66,15 @@ export function convertExtendedAscii(sbOriginal) { switch (origCharAsInt) { case 223: case 224: - retval[isb]= '"'; + retval = replaceAt(retval, isb, '"'); break; case 150: case 151: - retval[isb]= '-'; + retval = replaceAt(retval, isb, '-'); break; default: if (origCharAsInt>127) { - retval[isb]= '?'; + retval = replaceAt(retval, isb, '?'); } break; } @@ -86,31 +86,35 @@ export function convertExtendedAscii(sbOriginal) { case '\u201A': // lower quotation mark case '\u2039': // Single Left-Pointing Quotation Mark case '\u203A': // Single right-Pointing Quotation Mark - retval[isb]= '\''; + retval = replaceAt(retval, isb, '\''); break; case '\u201C': // left double quote case '\u201D': // right double quote case '\u201E': // double low quotation mark - retval[isb]= '"'; + retval = replaceAt(retval, isb, '"'); break; case '\u02DC': - retval[isb]= '~'; + retval = replaceAt(retval, isb, '~'); break; // Small Tilde case '\u2013': // En Dash case '\u2014': // EM Dash - retval[isb]= '-'; + retval = replaceAt(retval, isb, '-'); break; default: if (origCharAsInt>127) { - retval[isb]= '?'; + retval = replaceAt(retval, isb, '?'); } break; } } } - return sbOriginal; + return retval; } + +function replaceAt(str, index, replacement) { + return str.substr(0, index) + replacement+ str.substr(index + replacement.length); +} \ No newline at end of file