From de256835fde43a3e412c98d553754eef5313d048 Mon Sep 17 00:00:00 2001 From: Henry Date: Wed, 9 Dec 2015 15:51:00 -0800 Subject: [PATCH 1/3] [Edit Mode] Edit mode on objects that do not have a view supporting editing should edit properties instead. #320 --- platform/features/clock/bundle.json | 2 ++ platform/features/imagery/bundle.json | 3 ++- platform/features/pages/bundle.json | 3 ++- platform/features/plot/bundle.json | 3 ++- platform/features/rtevents/bundle.json | 1 + platform/features/rtscrolling/bundle.json | 1 + platform/features/scrolling/bundle.json | 3 ++- 7 files changed, 12 insertions(+), 4 deletions(-) diff --git a/platform/features/clock/bundle.json b/platform/features/clock/bundle.json index 5468c46207..ee2bf0def1 100644 --- a/platform/features/clock/bundle.json +++ b/platform/features/clock/bundle.json @@ -54,11 +54,13 @@ { "key": "clock", "type": "clock", + "editable": false, "templateUrl": "templates/clock.html" }, { "key": "timer", "type": "timer", + "editable": false, "templateUrl": "templates/timer.html" } ], diff --git a/platform/features/imagery/bundle.json b/platform/features/imagery/bundle.json index 8d8495aa3a..77d42be3c5 100644 --- a/platform/features/imagery/bundle.json +++ b/platform/features/imagery/bundle.json @@ -8,7 +8,8 @@ "glyph": "\u00E3", "templateUrl": "templates/imagery.html", "priority": "preferred", - "needs": [ "telemetry" ] + "needs": [ "telemetry" ], + "editable": false } ], "policies": [ diff --git a/platform/features/pages/bundle.json b/platform/features/pages/bundle.json index 099b96415b..5a8a3218ef 100644 --- a/platform/features/pages/bundle.json +++ b/platform/features/pages/bundle.json @@ -23,7 +23,8 @@ "templateUrl": "iframe.html", "name": "Page", "type": "example.page", - "key": "example.page" + "key": "example.page", + "editable": false } ], "controllers": [ diff --git a/platform/features/plot/bundle.json b/platform/features/plot/bundle.json index d367c028cb..b89309fc76 100644 --- a/platform/features/plot/bundle.json +++ b/platform/features/plot/bundle.json @@ -9,7 +9,8 @@ "templateUrl": "templates/plot.html", "needs": [ "telemetry" ], "priority": "preferred", - "delegation": true + "delegation": true, + "editable": false } ], "directives": [ diff --git a/platform/features/rtevents/bundle.json b/platform/features/rtevents/bundle.json index d2067bdd79..51d9ec89ae 100644 --- a/platform/features/rtevents/bundle.json +++ b/platform/features/rtevents/bundle.json @@ -10,6 +10,7 @@ "description": "Scrolling list of real time messages.", "templateUrl": "templates/rtmessages.html", "needs": [ "telemetry" ], + "editable": false, "delegation": true } ], diff --git a/platform/features/rtscrolling/bundle.json b/platform/features/rtscrolling/bundle.json index b387a655a2..f0ba65f5b8 100644 --- a/platform/features/rtscrolling/bundle.json +++ b/platform/features/rtscrolling/bundle.json @@ -10,6 +10,7 @@ "description": "Scrolling list of data values.", "templateUrl": "templates/rtscrolling.html", "needs": [ "telemetry" ], + "editable": false, "delegation": true } ], diff --git a/platform/features/scrolling/bundle.json b/platform/features/scrolling/bundle.json index 41b3508535..686a2d1864 100644 --- a/platform/features/scrolling/bundle.json +++ b/platform/features/scrolling/bundle.json @@ -10,7 +10,8 @@ "description": "Scrolling list of data values.", "templateUrl": "templates/scrolling.html", "needs": [ "telemetry" ], - "delegation": true + "delegation": true, + "editable": false } ], "controllers": [ From 2145bcf908353242e67ad7e0a15cadbe79fe2442 Mon Sep 17 00:00:00 2001 From: Henry Date: Wed, 9 Dec 2015 17:25:48 -0800 Subject: [PATCH 2/3] Re-enabled plots and scrolling --- platform/features/plot/bundle.json | 3 +-- platform/features/rtevents/bundle.json | 1 - platform/features/rtscrolling/bundle.json | 1 - platform/features/scrolling/bundle.json | 3 +-- 4 files changed, 2 insertions(+), 6 deletions(-) diff --git a/platform/features/plot/bundle.json b/platform/features/plot/bundle.json index b89309fc76..d367c028cb 100644 --- a/platform/features/plot/bundle.json +++ b/platform/features/plot/bundle.json @@ -9,8 +9,7 @@ "templateUrl": "templates/plot.html", "needs": [ "telemetry" ], "priority": "preferred", - "delegation": true, - "editable": false + "delegation": true } ], "directives": [ diff --git a/platform/features/rtevents/bundle.json b/platform/features/rtevents/bundle.json index 51d9ec89ae..d2067bdd79 100644 --- a/platform/features/rtevents/bundle.json +++ b/platform/features/rtevents/bundle.json @@ -10,7 +10,6 @@ "description": "Scrolling list of real time messages.", "templateUrl": "templates/rtmessages.html", "needs": [ "telemetry" ], - "editable": false, "delegation": true } ], diff --git a/platform/features/rtscrolling/bundle.json b/platform/features/rtscrolling/bundle.json index f0ba65f5b8..b387a655a2 100644 --- a/platform/features/rtscrolling/bundle.json +++ b/platform/features/rtscrolling/bundle.json @@ -10,7 +10,6 @@ "description": "Scrolling list of data values.", "templateUrl": "templates/rtscrolling.html", "needs": [ "telemetry" ], - "editable": false, "delegation": true } ], diff --git a/platform/features/scrolling/bundle.json b/platform/features/scrolling/bundle.json index 686a2d1864..41b3508535 100644 --- a/platform/features/scrolling/bundle.json +++ b/platform/features/scrolling/bundle.json @@ -10,8 +10,7 @@ "description": "Scrolling list of data values.", "templateUrl": "templates/scrolling.html", "needs": [ "telemetry" ], - "delegation": true, - "editable": false + "delegation": true } ], "controllers": [ From 5cc80c737c764dc4077a5d16099d838088fc2295 Mon Sep 17 00:00:00 2001 From: Henry Date: Thu, 10 Dec 2015 14:39:22 -0800 Subject: [PATCH 3/3] Updated editable view policies --- platform/commonUI/edit/bundle.json | 4 ++ .../edit/src/policies/EditablePanelPolicy.js | 63 +++++++++++++++++++ .../edit/src/policies/EditableViewPolicy.js | 7 ++- 3 files changed, 71 insertions(+), 3 deletions(-) create mode 100644 platform/commonUI/edit/src/policies/EditablePanelPolicy.js diff --git a/platform/commonUI/edit/bundle.json b/platform/commonUI/edit/bundle.json index c216a9d877..3edc871d5c 100644 --- a/platform/commonUI/edit/bundle.json +++ b/platform/commonUI/edit/bundle.json @@ -87,6 +87,10 @@ { "category": "view", "implementation": "policies/EditableViewPolicy.js" + }, + { + "category": "view", + "implementation": "policies/EditablePanelPolicy.js" } ], "templates": [ diff --git a/platform/commonUI/edit/src/policies/EditablePanelPolicy.js b/platform/commonUI/edit/src/policies/EditablePanelPolicy.js new file mode 100644 index 0000000000..46468b35f2 --- /dev/null +++ b/platform/commonUI/edit/src/policies/EditablePanelPolicy.js @@ -0,0 +1,63 @@ +/***************************************************************************** + * 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"; + + /** + * Policy controlling which views should be visible in Edit mode. + * @memberof platform/commonUI/edit + * @constructor + * @implements {Policy.} + */ + function EditablePanelPolicy() { + } + + function applicableView(key){ + return ['plot', 'scrolling'].indexOf(key) >= 0; + } + + function editableType(key){ + return key === 'telemetry.panel'; + } + + EditablePanelPolicy.prototype.allow = function (view, domainObject) { + // If a view is flagged as non-editable, only allow it + // while we're not in Edit mode. + if (view && view.editable != false) { + //But show the view if the domain object is in edit mode, + // but is not the object being edited. + if (applicableView(view.key) && !editableType(domainObject.getCapability('type').getKey())){ + return false; + } + } + + // Like all policies, allow by default. + return true; + }; + + return EditablePanelPolicy; + } +); diff --git a/platform/commonUI/edit/src/policies/EditableViewPolicy.js b/platform/commonUI/edit/src/policies/EditableViewPolicy.js index 17194064b0..fed287cded 100644 --- a/platform/commonUI/edit/src/policies/EditableViewPolicy.js +++ b/platform/commonUI/edit/src/policies/EditableViewPolicy.js @@ -36,10 +36,11 @@ define( } EditableViewPolicy.prototype.allow = function (view, domainObject) { - // If a view is flagged as non-editable, only allow it - // while we're not in Edit mode. + // If a view is flagged as non-editable, allow it if the object + // itself is not being edited. For example if we are in browse + // mode, or edit mode and the object is within a layout. if ((view || {}).editable === false) { - return !domainObject.hasCapability('editor'); + return !domainObject.getCapability('status').get('editing'); } // Like all policies, allow by default.