[Display Layout] Add delete button (#2251)

* Add delete button in the toolbar for removing items

* Mutate composition if there are no telemetry objects. Select the parent layout after deleting an item.

* Saving work

* Watch for index in the components and update it in the context.

* Select the parent after a composition is removed.

* Address reviewer's feedback.
- Rename mutatComposition() to removeFromComposition().
- Inline logic for filtering composition
- Use separate branches for each item type in trackItem().

* Address reviewer's requested changes
This commit is contained in:
Pegah Sarram
2018-12-20 13:15:23 -08:00
committed by Pete Richards
parent 47a07da17d
commit 464e5de947
10 changed files with 174 additions and 28 deletions

View File

@ -125,11 +125,41 @@ define([], function () {
let separator = {
control: "separator"
};
let remove = {
control: "button",
domainObject: selectedParent,
icon: "icon-trash",
title: "Delete the selected object",
method: function () {
let removeItem = selection[1].context.removeItem;
let prompt = openmct.overlays.dialog({
iconClass: 'alert',
message: `Warning! This action will remove this item from the Display Layout. Do you want to continue?`,
buttons: [
{
label: 'Ok',
emphasis: 'true',
callback: function () {
removeItem(layoutItem, layoutItemIndex);
prompt.dismiss();
}
},
{
label: 'Cancel',
callback: function () {
prompt.dismiss();
}
}
]
});
}
};
if (layoutItem.type === 'subobject-view') {
if (toolbar.length > 0) {
toolbar.push(separator);
}
toolbar.push({
control: "toggle-button",
domainObject: selectedParent,
@ -147,6 +177,8 @@ define([], function () {
}
]
});
toolbar.push(separator);
toolbar.push(remove);
} else {
const TEXT_SIZE = [9, 10, 11, 12, 13, 14, 15, 16, 20, 24, 30, 36, 48, 72, 96];
let fill = {
@ -263,7 +295,9 @@ define([], function () {
x,
y,
height,
width
width,
separator,
remove
];
} else if (layoutItem.type === 'text-view' ) {
let text = {
@ -286,7 +320,9 @@ define([], function () {
height,
width,
separator,
text
text,
separator,
remove
];
} else if (layoutItem.type === 'box-view') {
toolbar = [
@ -296,7 +332,9 @@ define([], function () {
x,
y,
height,
width
width,
separator,
remove
];
} else if (layoutItem.type === 'image-view') {
let url = {
@ -315,7 +353,9 @@ define([], function () {
height,
width,
separator,
url
url,
separator,
remove
];
} else if (layoutItem.type === 'line-view') {
let x2 = {
@ -340,7 +380,9 @@ define([], function () {
x,
y,
x2,
y2
y2,
separator,
remove
];
}
}