morpheus.Popup = {}; morpheus.Popup.initted = false; morpheus.Popup.init = function() { if (morpheus.Popup.initted) { return; } var client = new Clipboard('a[name=Copy]', { text : function(trigger) { var event = { clipboardData : { setData : function(dataType, data) { this.data = data; } } }; morpheus.Popup.popupCallback(event, 'Copy'); morpheus.Popup.hide(); return event.clipboardData.data; } }); morpheus.Popup.client = client; morpheus.Popup.initted = true; morpheus.Popup.$popupDiv = $(document.createElement('div')); morpheus.Popup.$popupDiv.css('position', 'absolute').css('zIndex', 999) .addClass('dropdown clearfix'); morpheus.Popup.$contextMenu = $(document.createElement('ul')); morpheus.Popup.$contextMenu.addClass('dropdown-menu').css('display', 'block').css('position', 'static').css('margin-bottom', '5px'); morpheus.Popup.$contextMenu.appendTo(morpheus.Popup.$popupDiv); morpheus.Popup.$contextMenu.on('click', 'a', function(e) { e.preventDefault(); var $this = $(this); var name = $.trim($this.text()); if (name !== 'Copy') { morpheus.Popup.popupCallback(e, name); morpheus.Popup.hide(); } }); }; morpheus.Popup.popupInDom = false; morpheus.Popup.hidePopupMenu = function(e) { if (morpheus.Popup.component == e.target) { e.preventDefault(); e.stopPropagation(); } morpheus.Popup.hide(); }; morpheus.Popup.hide = function() { morpheus.Popup.$popupDiv.hide(); $(document.body).off('mousedown', morpheus.Popup.hidePopupMenu); morpheus.Popup.popupCallback = null; morpheus.Popup.component = null; // morpheus.Popup.client.unclip(); }; morpheus.Popup.showPopup = function(menuItems, position, component, callback) { morpheus.Popup.init(); if (morpheus.Popup.component == component) { morpheus.Popup.hide(); return; } morpheus.Popup.popupCallback = callback; morpheus.Popup.component = component; var html = []; for (var i = 0, length = menuItems.length; i < length; i++) { var item = menuItems[i]; if (item.header) { html.push('