mirror of
https://github.com/nasa/openmct.git
synced 2024-12-22 22:42:24 +00:00
a768b12985
Set key on represent so that commit function can properly persist configuration per object type. Add tests to EditRepresenter Fixes https://github.com/nasa/openmct/issues/1367
423 lines
15 KiB
JavaScript
423 lines
15 KiB
JavaScript
/*****************************************************************************
|
|
* Open MCT, Copyright (c) 2014-2016, 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([
|
|
"./src/controllers/EditActionController",
|
|
"./src/controllers/EditPanesController",
|
|
"./src/controllers/ElementsController",
|
|
"./src/controllers/EditObjectController",
|
|
"./src/actions/EditAndComposeAction",
|
|
"./src/actions/EditAction",
|
|
"./src/actions/PropertiesAction",
|
|
"./src/actions/RemoveAction",
|
|
"./src/actions/SaveAction",
|
|
"./src/actions/SaveAndStopEditingAction",
|
|
"./src/actions/SaveAsAction",
|
|
"./src/actions/CancelAction",
|
|
"./src/policies/EditActionPolicy",
|
|
"./src/policies/EditableLinkPolicy",
|
|
"./src/policies/EditableMovePolicy",
|
|
"./src/policies/EditContextualActionPolicy",
|
|
"./src/representers/EditRepresenter",
|
|
"./src/representers/EditToolbarRepresenter",
|
|
"./src/capabilities/EditorCapability",
|
|
"./src/capabilities/TransactionCapabilityDecorator",
|
|
"./src/services/TransactionManager",
|
|
"./src/services/TransactionService",
|
|
"./src/creation/CreateMenuController",
|
|
"./src/creation/LocatorController",
|
|
"./src/creation/CreationPolicy",
|
|
"./src/creation/CreateActionProvider",
|
|
"./src/creation/AddActionProvider",
|
|
"./src/creation/CreationService",
|
|
"text!./res/templates/create/locator.html",
|
|
"text!./res/templates/create/create-button.html",
|
|
"text!./res/templates/create/create-menu.html",
|
|
"text!./res/templates/library.html",
|
|
"text!./res/templates/edit-object.html",
|
|
"text!./res/templates/edit-action-buttons.html",
|
|
"text!./res/templates/elements.html",
|
|
"text!./res/templates/topbar-edit.html",
|
|
'legacyRegistry'
|
|
], function (
|
|
EditActionController,
|
|
EditPanesController,
|
|
ElementsController,
|
|
EditObjectController,
|
|
EditAndComposeAction,
|
|
EditAction,
|
|
PropertiesAction,
|
|
RemoveAction,
|
|
SaveAction,
|
|
SaveAndStopEditingAction,
|
|
SaveAsAction,
|
|
CancelAction,
|
|
EditActionPolicy,
|
|
EditableLinkPolicy,
|
|
EditableMovePolicy,
|
|
EditContextualActionPolicy,
|
|
EditRepresenter,
|
|
EditToolbarRepresenter,
|
|
EditorCapability,
|
|
TransactionCapabilityDecorator,
|
|
TransactionManager,
|
|
TransactionService,
|
|
CreateMenuController,
|
|
LocatorController,
|
|
CreationPolicy,
|
|
CreateActionProvider,
|
|
AddActionProvider,
|
|
CreationService,
|
|
locatorTemplate,
|
|
createButtonTemplate,
|
|
createMenuTemplate,
|
|
libraryTemplate,
|
|
editObjectTemplate,
|
|
editActionButtonsTemplate,
|
|
elementsTemplate,
|
|
topbarEditTemplate,
|
|
legacyRegistry
|
|
) {
|
|
|
|
legacyRegistry.register("platform/commonUI/edit", {
|
|
"extensions": {
|
|
"controllers": [
|
|
{
|
|
"key": "EditActionController",
|
|
"implementation": EditActionController,
|
|
"depends": [
|
|
"$scope"
|
|
]
|
|
},
|
|
{
|
|
"key": "EditPanesController",
|
|
"implementation": EditPanesController,
|
|
"depends": [
|
|
"$scope"
|
|
]
|
|
},
|
|
{
|
|
"key": "ElementsController",
|
|
"implementation": ElementsController,
|
|
"depends": [
|
|
"$scope"
|
|
]
|
|
},
|
|
{
|
|
"key": "EditObjectController",
|
|
"implementation": EditObjectController,
|
|
"depends": [
|
|
"$scope",
|
|
"$location",
|
|
"navigationService"
|
|
]
|
|
},
|
|
{
|
|
"key": "CreateMenuController",
|
|
"implementation": CreateMenuController,
|
|
"depends": [
|
|
"$scope"
|
|
]
|
|
},
|
|
{
|
|
"key": "LocatorController",
|
|
"implementation": LocatorController,
|
|
"depends": [
|
|
"$scope",
|
|
"$timeout",
|
|
"objectService"
|
|
]
|
|
}
|
|
],
|
|
"actions": [
|
|
{
|
|
"key": "compose",
|
|
"implementation": EditAndComposeAction
|
|
},
|
|
{
|
|
"key": "edit",
|
|
"implementation": EditAction,
|
|
"depends": [
|
|
"$location",
|
|
"navigationService",
|
|
"$log"
|
|
],
|
|
"description": "Edit",
|
|
"category": "view-control",
|
|
"cssclass": "major icon-pencil"
|
|
},
|
|
{
|
|
"key": "properties",
|
|
"category": [
|
|
"contextual",
|
|
"view-control"
|
|
],
|
|
"implementation": PropertiesAction,
|
|
"cssclass": "major icon-pencil",
|
|
"name": "Edit Properties...",
|
|
"description": "Edit properties of this object.",
|
|
"depends": [
|
|
"dialogService"
|
|
]
|
|
},
|
|
{
|
|
"key": "remove",
|
|
"category": "contextual",
|
|
"implementation": RemoveAction,
|
|
"cssclass": "icon-trash",
|
|
"name": "Remove",
|
|
"description": "Remove this object from its containing object.",
|
|
"depends": [
|
|
"navigationService"
|
|
]
|
|
},
|
|
{
|
|
"key": "save-and-stop-editing",
|
|
"category": "save",
|
|
"implementation": SaveAndStopEditingAction,
|
|
"name": "Save and Finish Editing",
|
|
"cssclass": "icon-save labeled",
|
|
"description": "Save changes made to these objects.",
|
|
"depends": [
|
|
"dialogService",
|
|
"notificationService"
|
|
]
|
|
},
|
|
{
|
|
"key": "save",
|
|
"category": "save",
|
|
"implementation": SaveAction,
|
|
"name": "Save and Continue Editing",
|
|
"cssclass": "icon-save labeled",
|
|
"description": "Save changes made to these objects.",
|
|
"depends": [
|
|
"dialogService",
|
|
"notificationService"
|
|
]
|
|
},
|
|
{
|
|
"key": "save-as",
|
|
"category": "save",
|
|
"implementation": SaveAsAction,
|
|
"name": "Save As...",
|
|
"cssclass": "icon-save labeled",
|
|
"description": "Save changes made to these objects.",
|
|
"depends": [
|
|
"$injector",
|
|
"policyService",
|
|
"dialogService",
|
|
"copyService",
|
|
"notificationService"
|
|
],
|
|
"priority": "mandatory"
|
|
},
|
|
{
|
|
"key": "cancel",
|
|
"category": "conclude-editing",
|
|
"implementation": CancelAction,
|
|
// Because we use the name as label for edit buttons and mct-control buttons need
|
|
// the label to be set to undefined in order to not apply the labeled CSS rule.
|
|
"name": undefined,
|
|
"cssclass": "icon-x no-label",
|
|
"description": "Discard changes made to these objects.",
|
|
"depends": []
|
|
}
|
|
],
|
|
"policies": [
|
|
{
|
|
"category": "action",
|
|
"implementation": EditActionPolicy
|
|
},
|
|
{
|
|
"category": "action",
|
|
"implementation": EditContextualActionPolicy,
|
|
"depends": ["navigationService", "editModeBlacklist", "nonEditContextBlacklist"]
|
|
},
|
|
{
|
|
"category": "action",
|
|
"implementation": EditableMovePolicy
|
|
},
|
|
{
|
|
"category": "action",
|
|
"implementation": EditableLinkPolicy
|
|
},
|
|
{
|
|
"implementation": CreationPolicy,
|
|
"category": "creation"
|
|
}
|
|
],
|
|
"templates": [
|
|
{
|
|
"key": "edit-library",
|
|
"template": libraryTemplate
|
|
}
|
|
],
|
|
"representations": [
|
|
{
|
|
"key": "edit-object",
|
|
"template": editObjectTemplate,
|
|
"uses": [
|
|
"view"
|
|
],
|
|
"gestures": [
|
|
"drop"
|
|
]
|
|
},
|
|
{
|
|
"key": "edit-action-buttons",
|
|
"template": editActionButtonsTemplate,
|
|
"uses": [
|
|
"action"
|
|
]
|
|
},
|
|
{
|
|
"key": "edit-elements",
|
|
"template": elementsTemplate,
|
|
"uses": [
|
|
"composition"
|
|
],
|
|
"gestures": [
|
|
"drop"
|
|
]
|
|
},
|
|
{
|
|
"key": "topbar-edit",
|
|
"template": topbarEditTemplate
|
|
},
|
|
{
|
|
"key": "create-button",
|
|
"template": createButtonTemplate
|
|
},
|
|
{
|
|
"key": "create-menu",
|
|
"template": createMenuTemplate,
|
|
"uses": [
|
|
"action"
|
|
]
|
|
}
|
|
],
|
|
"components": [
|
|
{
|
|
"type": "decorator",
|
|
"provides": "capabilityService",
|
|
"implementation": TransactionCapabilityDecorator,
|
|
"depends": [
|
|
"$q",
|
|
"transactionManager"
|
|
],
|
|
"priority": "fallback"
|
|
},
|
|
{
|
|
"type": "provider",
|
|
"provides": "transactionService",
|
|
"implementation": TransactionService,
|
|
"depends": [
|
|
"$q",
|
|
"$log",
|
|
"cacheService"
|
|
]
|
|
},
|
|
{
|
|
"key": "CreateActionProvider",
|
|
"provides": "actionService",
|
|
"type": "provider",
|
|
"implementation": CreateActionProvider,
|
|
"depends": [
|
|
"typeService",
|
|
"policyService"
|
|
]
|
|
},
|
|
{
|
|
"key": "AddActionProvider",
|
|
"provides": "actionService",
|
|
"type": "provider",
|
|
"implementation": AddActionProvider,
|
|
"depends": [
|
|
"$q",
|
|
"typeService",
|
|
"dialogService",
|
|
"policyService"
|
|
]
|
|
},
|
|
{
|
|
"key": "CreationService",
|
|
"provides": "creationService",
|
|
"type": "provider",
|
|
"implementation": CreationService,
|
|
"depends": [
|
|
"$q",
|
|
"$log"
|
|
]
|
|
}
|
|
|
|
],
|
|
"representers": [
|
|
{
|
|
"implementation": EditRepresenter,
|
|
"depends": [
|
|
"$log"
|
|
]
|
|
},
|
|
{
|
|
"implementation": EditToolbarRepresenter
|
|
}
|
|
],
|
|
"constants": [
|
|
{
|
|
"key": "editModeBlacklist",
|
|
"value": ["copy", "follow", "link", "locate"]
|
|
},
|
|
{
|
|
"key": "nonEditContextBlacklist",
|
|
"value": ["copy", "follow", "properties", "move", "link", "remove", "locate"]
|
|
}
|
|
],
|
|
"capabilities": [
|
|
{
|
|
"key": "editor",
|
|
"name": "Editor Capability",
|
|
"description": "Provides transactional editing capabilities",
|
|
"implementation": EditorCapability,
|
|
"depends": [
|
|
"transactionService"
|
|
]
|
|
}
|
|
],
|
|
"controls": [
|
|
{
|
|
"key": "locator",
|
|
"template": locatorTemplate
|
|
}
|
|
],
|
|
"services": [
|
|
{
|
|
"key": "transactionManager",
|
|
"implementation": TransactionManager,
|
|
"depends": [
|
|
"transactionService"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
});
|
|
});
|