diff --git a/platform/entanglement/src/actions/AbstractComposeAction.js b/platform/entanglement/src/actions/AbstractComposeAction.js index 4373fe2ca3..0c39cebe49 100644 --- a/platform/entanglement/src/actions/AbstractComposeAction.js +++ b/platform/entanglement/src/actions/AbstractComposeAction.js @@ -21,7 +21,9 @@ *****************************************************************************/ define( - function () { + ['./CancelError'], + function (CancelError) { + var CANCEL_MESSAGE = "User cancelled location selection."; /** * Common interface exposed by services which support move, copy, @@ -142,8 +144,8 @@ define( ).then(function (newParentObj) { return composeService.perform(object, newParentObj); }, function () { - return Promise.reject({ message: "cancelled" }); - }); + return Promise.reject(new CancelError(CANCEL_MESSAGE)); + }.bind(this)); }; AbstractComposeAction.appliesTo = function (context) { diff --git a/platform/entanglement/src/actions/CancelError.js b/platform/entanglement/src/actions/CancelError.js new file mode 100644 index 0000000000..3c72302d91 --- /dev/null +++ b/platform/entanglement/src/actions/CancelError.js @@ -0,0 +1,32 @@ +/***************************************************************************** + * Open MCT, Copyright (c) 2014-2017, United States Government + * as represented by the Administrator of the National Aeronautics and Space + * Administration. All rights reserved. + * + * Open MCT is licensed under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + * + * Open MCT includes source code licensed under additional open source + * licenses. See the Open Source Licenses file (LICENSES.md) included with + * this source code distribution or the Licensing information page available + * at runtime from the About dialog for additional information. + *****************************************************************************/ + +define(function () { + function CancelError() { + Error.apply(this, arguments); + this.name = CancelError; + } + + CancelError.prototype = Object.create(Error.prototype); + + return CancelError; +}); diff --git a/platform/entanglement/src/actions/CopyAction.js b/platform/entanglement/src/actions/CopyAction.js index 0c2e241be2..016bbac471 100644 --- a/platform/entanglement/src/actions/CopyAction.js +++ b/platform/entanglement/src/actions/CopyAction.js @@ -21,8 +21,8 @@ *****************************************************************************/ define( - ['./AbstractComposeAction'], - function (AbstractComposeAction) { + ['./AbstractComposeAction', './CancelError'], + function (AbstractComposeAction, CancelError) { /** * The CopyAction is available from context menus and allows a user to @@ -117,7 +117,8 @@ define( } function error(errorDetails) { - if (errorDetails && (errorDetails.message === "cancelled")) { + // No need to notify user of their own cancellation + if (errorDetails instanceof CancelError) { return; }