Merge branch 'open320' into nem_prototype

This commit is contained in:
Henry 2015-12-10 14:39:34 -08:00
commit 02e89f9c73
3 changed files with 71 additions and 3 deletions

View File

@ -94,6 +94,10 @@
{
"category": "view",
"implementation": "policies/EditableViewPolicy.js"
},
{
"category": "view",
"implementation": "policies/EditablePanelPolicy.js"
}
],
"templates": [

View File

@ -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.<View, DomainObject>}
*/
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;
}
);

View File

@ -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.