From 0d312def27da85c56acd75c8017edd7ebb2a5ed5 Mon Sep 17 00:00:00 2001 From: Victor Woeltjen Date: Tue, 26 Apr 2016 16:37:44 -0700 Subject: [PATCH] [Persistence] Add PersistingMutationListener ...to automatically trigger persistence after mutation. #825 --- .../src/runs/PersistingMutationListener.js | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 platform/core/src/runs/PersistingMutationListener.js diff --git a/platform/core/src/runs/PersistingMutationListener.js b/platform/core/src/runs/PersistingMutationListener.js new file mode 100644 index 0000000000..54df8b4e56 --- /dev/null +++ b/platform/core/src/runs/PersistingMutationListener.js @@ -0,0 +1,42 @@ +/***************************************************************************** + * Open MCT Web, Copyright (c) 2014-2015, United States Government + * as represented by the Administrator of the National Aeronautics and Space + * Administration. All rights reserved. + * + * Open MCT Web 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 Web 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. + *****************************************************************************/ +/*global define*/ + +define([], function () { + 'use strict'; + + /** + * Listens for mutation on domain objects and triggers mutation when + * it occurs. + * @param {Topic} topic the `topic` service; used to listen for mutation + * @memberof platform/core + */ + function PersistingMutationListener(topic) { + var mutationTopic = topic('mutation'); + mutationTopic.listen(function (domainObject) { + var persistence = domainObject.getCapability('persistence'); + persistence.persist(); + }); + } + + return PersistingMutationListener; +});