Merge branch 'open1233' into open-master

This commit is contained in:
Victor Woeltjen 2015-06-29 15:09:40 -07:00
commit 29283e4fb5
5 changed files with 62 additions and 6 deletions

View File

@ -256,6 +256,11 @@ define(
// Position a panel after a drop event
function handleDrop(e, id, position) {
// Don't handle this event if it has already been handled
if (e.defaultPrevented) {
return;
}
e.preventDefault();
// Store the position of this element.
addElement({
type: "fixed.telemetry",

View File

@ -109,6 +109,9 @@ define(
// Position a panel after a drop event
function handleDrop(e, id, position) {
if (e.defaultPrevented) {
return;
}
// Ensure that configuration field is populated
$scope.configuration = $scope.configuration || {};
// Make sure there is a "panels" field in the
@ -129,6 +132,10 @@ define(
}
// Populate template-facing position for this id
populatePosition(id);
// Layout may contain embedded views which will
// listen for drops, so call preventDefault() so
// that they can recognize that this event is handled.
e.preventDefault();
}
// Position panes when the model field changes
@ -220,4 +227,4 @@ define(
return LayoutController;
}
);
);

View File

@ -34,6 +34,7 @@ define(
mockFormatter,
mockDomainObject,
mockSubscription,
mockEvent,
testGrid,
testModel,
testValues,
@ -98,6 +99,10 @@ define(
'subscription',
[ 'unsubscribe', 'getTelemetryObjects', 'getRangeValue', 'getDatum' ]
);
mockEvent = jasmine.createSpyObj(
'event',
[ 'preventDefault' ]
);
testGrid = [ 123, 456 ];
testModel = {
@ -302,7 +307,7 @@ define(
// Notify that a drop occurred
testModel.composition.push('d');
findOn('mctDrop')(
{},
mockEvent,
'd',
{ x: 300, y: 100 }
);
@ -310,12 +315,31 @@ define(
// Should have added an element
expect(testConfiguration.elements.length).toEqual(4);
// ...and prevented default...
expect(mockEvent.preventDefault).toHaveBeenCalled();
// Should have triggered commit (provided by
// EditRepresenter) with some message.
expect(mockScope.commit)
.toHaveBeenCalledWith(jasmine.any(String));
});
it("ignores drops when default has been prevented", function () {
// Avoids redundant drop-handling, WTD-1233
mockEvent.defaultPrevented = true;
// Notify that a drop occurred
testModel.composition.push('d');
findOn('mctDrop')(
mockEvent,
'd',
{ x: 300, y: 100 }
);
// Should NOT have added an element
expect(testConfiguration.elements.length).toEqual(3);
});
it("unsubscribes when destroyed", function () {
// Make an object available
findWatch('domainObject')(mockDomainObject);

View File

@ -28,6 +28,7 @@ define(
describe("The Layout controller", function () {
var mockScope,
mockEvent,
testModel,
testConfiguration,
controller;
@ -37,6 +38,10 @@ define(
"$scope",
[ "$watch", "$on", "commit" ]
);
mockEvent = jasmine.createSpyObj(
'event',
[ 'preventDefault' ]
);
testModel = {
composition: [ "a", "b", "c" ]
@ -144,17 +149,32 @@ define(
// Notify that a drop occurred
testModel.composition.push('d');
mockScope.$on.mostRecentCall.args[1](
{},
mockEvent,
'd',
{ x: 300, y: 100 }
);
expect(testConfiguration.panels.d).toBeDefined();
expect(mockEvent.preventDefault).toHaveBeenCalled();
// Should have triggered commit (provided by
// EditRepresenter) with some message.
expect(mockScope.commit)
.toHaveBeenCalledWith(jasmine.any(String));
});
it("ignores drops when default has been prevented", function () {
// Avoids redundant drop-handling, WTD-1233
mockEvent.defaultPrevented = true;
// Notify that a drop occurred
testModel.composition.push('d');
mockScope.$on.mostRecentCall.args[1](
mockEvent,
'd',
{ x: 300, y: 100 }
);
expect(testConfiguration.panels.d).not.toBeDefined();
});
});
}
);
);

View File

@ -17,7 +17,7 @@
},
{
"key": "ELASTIC_ROOT",
"value": "/elastic",
"value": "http://localhost:9200",
"priority": "fallback"
},
{
@ -43,4 +43,4 @@
}
]
}
}
}