mirror of
https://github.com/nasa/openmct.git
synced 2025-06-19 07:38:15 +00:00
Inline edit object names (#1700)
* Inline edit object name. Change the title-label span to a conteneditable span to allow editing object names inline. Implement a controller to handle updaing the name. Add tests. Fixes #1679 [Front-end] Add span contenteditable to input styling [Front-end] Styling for contenteditable span styling for span[contenteditable].s-status-editing in _controls.scss; removed s-filter class; [Front-end] min-width added to .s-inline-edit * [Frontend] Style tweaks, cleanup and simplification Fixes #1679 Style sanding on .s-inline-edit; added :focus outline:0 to select in _controls.scss; New .s-input-inline class; removed ng-class from object-header.html, uses :focus instead; refactoring of input-related mixins; Bring Time Conductor real-time inputs into parity Apply .s-input-inline to TC inputs; finesse .s-input-inline selector; Prevent nested inline inputs from editing Fixed nested editing prevention selector * Create an object header template for objects inside a frame. Fix code review requests. Fixes 1679
This commit is contained in:
committed by
Pete Richards
parent
a3a55d3b48
commit
1419c75503
75
platform/commonUI/browse/src/ObjectHeaderController.js
Normal file
75
platform/commonUI/browse/src/ObjectHeaderController.js
Normal file
@ -0,0 +1,75 @@
|
||||
/*****************************************************************************
|
||||
* Open MCT, Copyright (c) 2014-2017, 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(
|
||||
[],
|
||||
function () {
|
||||
|
||||
/**
|
||||
* Controller to provide the ability to inline edit an object name.
|
||||
*
|
||||
* @constructor
|
||||
* @memberof platform/commonUI/browse
|
||||
*/
|
||||
function ObjectHeaderController($scope) {
|
||||
this.$scope = $scope;
|
||||
$scope.editing = false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Updates the object name on blur and enter keypress events.
|
||||
*
|
||||
* @param event the mouse event
|
||||
*/
|
||||
ObjectHeaderController.prototype.updateName = function (event) {
|
||||
if (event && (event.type === 'blur' || event.which === 13)) {
|
||||
var name = event.currentTarget.innerHTML;
|
||||
|
||||
if (name.length === 0) {
|
||||
name = "Unnamed " + this.$scope.domainObject.getCapability("type").typeDef.name;
|
||||
event.currentTarget.innerHTML = name;
|
||||
}
|
||||
|
||||
if (name !== this.$scope.domainObject.model.name) {
|
||||
this.$scope.domainObject.getCapability('mutation').mutate(function (model) {
|
||||
model.name = name;
|
||||
});
|
||||
}
|
||||
|
||||
this.$scope.editing = false;
|
||||
|
||||
if (event.which === 13) {
|
||||
event.currentTarget.blur();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Marks the status of the field as editing.
|
||||
*/
|
||||
ObjectHeaderController.prototype.edit = function () {
|
||||
this.$scope.editing = true;
|
||||
};
|
||||
|
||||
return ObjectHeaderController;
|
||||
}
|
||||
);
|
Reference in New Issue
Block a user