From ba1f86da25e298c66ae14006d58ca47444945bbf Mon Sep 17 00:00:00 2001 From: Sarah Hale Date: Wed, 24 Jun 2015 10:15:09 -0700 Subject: [PATCH] [Events] Restricted when view avaliable Created a new policy to only allow the Messages view to be avaliable for Event Message Generators. #18. --- platform/features/events/bundle.json | 9 ++- .../events/src/EventListController.js | 6 +- .../events/src/policies/MessagesViewPolicy.js | 64 +++++++++++++++++++ 3 files changed, 74 insertions(+), 5 deletions(-) create mode 100644 platform/features/events/src/policies/MessagesViewPolicy.js diff --git a/platform/features/events/bundle.json b/platform/features/events/bundle.json index e925a1f215..deacfab4b9 100644 --- a/platform/features/events/bundle.json +++ b/platform/features/events/bundle.json @@ -26,7 +26,12 @@ "implementation": "directives/MCTDataTable.js", "depends": [ "$window" ] } + ], + "policies": [ + { + "category": "view", + "implementation": "policies/MessagesViewPolicy.js" + } ] } - -} \ No newline at end of file +} diff --git a/platform/features/events/src/EventListController.js b/platform/features/events/src/EventListController.js index 6fea6f97cd..9c028384af 100644 --- a/platform/features/events/src/EventListController.js +++ b/platform/features/events/src/EventListController.js @@ -19,7 +19,7 @@ * this source code distribution or the Licensing information page available * at runtime from the About dialog for additional information. *****************************************************************************/ -/*global define,Promise*/ +/*global define*/ /** * Module defining EventListController. @@ -30,7 +30,7 @@ define( ["./DomainColumn", "./RangeColumn", "./EventListPopulator"], function (DomainColumn, RangeColumn, EventListPopulator) { "use strict"; - + var ROW_COUNT = 100; /** @@ -133,4 +133,4 @@ define( return EventListController; } -); \ No newline at end of file +); diff --git a/platform/features/events/src/policies/MessagesViewPolicy.js b/platform/features/events/src/policies/MessagesViewPolicy.js new file mode 100644 index 0000000000..45b2ef5b27 --- /dev/null +++ b/platform/features/events/src/policies/MessagesViewPolicy.js @@ -0,0 +1,64 @@ +/***************************************************************************** + * 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*/ + +/** + * Module defining MessagesViewPolicy. Created by shale on 06/24/2015. + */ +define( + [], + function () { + "use strict"; + + /** + * Policy controlling when the Messages view should be avaliable. + * @constructor + */ + function MessagesViewPolicy() { + + return { + /** + * Check whether or not a given action is allowed by this + * policy. + * @param {Action} action the action + * @param domainObject the domain object which will be viewed + * @returns {boolean} true if not disallowed + */ + allow: function (view, domainObject) { + // This policy only applies for the Messages view + if (view.key === 'messages') { + // The Messages view is allowed only if the domain + // object is a Event Message Generator + if (domainObject.getModel().type !== 'eventGenerator') { + return false; + } + } + + // Like all policies, allow by default. + return true; + } + }; + } + + return MessagesViewPolicy; + } +); \ No newline at end of file