mirror of
https://github.com/nasa/openmct.git
synced 2025-06-13 20:58:15 +00:00
[Common UI] Use popupService from mct-popup
This commit is contained in:
@ -133,7 +133,7 @@
|
|||||||
{
|
{
|
||||||
"key": "mctPopup",
|
"key": "mctPopup",
|
||||||
"implementation": "directives/MCTPopup.js",
|
"implementation": "directives/MCTPopup.js",
|
||||||
"depends": [ "$window", "$document", "$compile", "$interval" ]
|
"depends": [ "$compile", "popupService" ]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "mctScrollX",
|
"key": "mctScrollX",
|
||||||
|
@ -41,37 +41,22 @@ define(
|
|||||||
*
|
*
|
||||||
* @constructor
|
* @constructor
|
||||||
* @memberof platform/commonUI/general
|
* @memberof platform/commonUI/general
|
||||||
* @param $window the window object (as injected by Angular)
|
|
||||||
* @param $document the jqLite-wrapped document
|
|
||||||
* @param $compile Angular's $compile service
|
* @param $compile Angular's $compile service
|
||||||
|
* @param {platform/commonUI/general.PopupService} popupService
|
||||||
*/
|
*/
|
||||||
function MCTPopup($window, $document, $compile) {
|
function MCTPopup($compile, popupService) {
|
||||||
function link(scope, element, attrs, ctrl, transclude) {
|
function link(scope, element, attrs, ctrl, transclude) {
|
||||||
var body = $document.find('body'),
|
var div = $compile(TEMPLATE)(scope),
|
||||||
popup = $compile(TEMPLATE)(scope),
|
|
||||||
winDim = [$window.innerWidth, $window.innerHeight],
|
|
||||||
rect = element.parent()[0].getBoundingClientRect(),
|
rect = element.parent()[0].getBoundingClientRect(),
|
||||||
position = [ rect.left, rect.top ],
|
position = [ rect.left, rect.top ],
|
||||||
isLeft = position[0] <= (winDim[0] / 2),
|
popup = popupService.display(div, position);
|
||||||
isTop = position[1] <= (winDim[1] / 2);
|
|
||||||
|
|
||||||
popup.css('position', 'absolute');
|
|
||||||
popup.css(
|
|
||||||
isLeft ? 'left' : 'right',
|
|
||||||
(isLeft ? position[0] : (winDim[0] - position[0])) + 'px'
|
|
||||||
);
|
|
||||||
popup.css(
|
|
||||||
isTop ? 'top' : 'bottom',
|
|
||||||
(isTop ? position[1] : (winDim[1] - position[1])) + 'px'
|
|
||||||
);
|
|
||||||
body.append(popup);
|
|
||||||
|
|
||||||
transclude(function (clone) {
|
transclude(function (clone) {
|
||||||
popup.append(clone);
|
div.append(clone);
|
||||||
});
|
});
|
||||||
|
|
||||||
scope.$on('$destroy', function () {
|
scope.$on('$destroy', function () {
|
||||||
popup.remove();
|
popup.dismiss();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user