/**
 @ngdoc service
 * @name umbraco.services.overlayService
 *
 * @description
 * <b>Added in Umbraco 8.0</b>. Application-wide service for handling overlays.
 */
(function () {
    "use strict";

    function overlayService(eventsService, backdropService) {

        function open(overlay) {

            var backdropOptions = {};

            // set the default overlay position to center
            if(!overlay.position) {
                overlay.position = "center";
            }

            // option to disable backdrop clicks
            if(overlay.disableBackdropClick) {
                backdropOptions.disableEventsOnClick = true;
            }

            overlay.show = true;
            backdropService.open(backdropOptions);
            eventsService.emit("appState.overlay", overlay);
        }

        function close() {
            backdropService.close();
            eventsService.emit("appState.overlay", null);
        }

        var service = {
            open: open,
            close: close
        };

        return service;

    }

    angular.module("umbraco.services").factory("overlayService", overlayService);

})();
@@ -266,70 +266,277 @@
     
-function open(overlay) %7B%0A%0A            var backdropOptions = %7B%7D
+var currentOverlay = null;%0A%0A        function open(newOverlay) %7B%0A%0A            // prevent two open overlays at the same time%0A            if(currentOverlay) %7B%0A                return;%0A            %7D%0A%0A            var backdropOptions = %7B%7D;%0A            var overlay = newOverlay
 ;%0A%0A 
@@ -944,16 +944,54 @@
 tions);%0A
+            currentOverlay = overlay;%0A
         
@@ -1077,24 +1077,24 @@
 n close() %7B%0A
-
             
@@ -1118,16 +1118,51 @@
 lose();%0A
+            currentOverlay = null;%0A
         

Make sure two overlays can't be open at the same time