'use strict';
System.register(['angular', 'jquery', 'tether-drop'], function (_export, _context) {
"use strict";
var angular, $, Drop;
return {
setters: [function (_angular) {
angular = _angular.default;
}, function (_jquery) {
$ = _jquery.default;
}, function (_tetherDrop) {
Drop = _tetherDrop.default;
}],
execute: function () {
/** @ngInject */
angular.module('grafana.directives').directive('ackTooltip', function ($sanitize, $compile) {
var buttonTemplate = '';
return {
scope: {
ack: "=",
trigger: "=",
onAck: "=",
context: "="
},
link: function link(scope, element) {
var acknowledges = scope.ack;
var $button = $(buttonTemplate);
$button.appendTo(element);
$button.click(function () {
var tooltip = '
';
if (acknowledges && acknowledges.length) {
tooltip += '
' + '| Time | ' + 'User | ' + '' + '
';
var _iteratorNormalCompletion = true;
var _didIteratorError = false;
var _iteratorError = undefined;
try {
for (var _iterator = acknowledges[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
var ack = _step.value;
tooltip += '| ' + ack.time + ' | ' + '' + ack.user + ' | ' + '' + ack.message + ' |
';
}
} catch (err) {
_didIteratorError = true;
_iteratorError = err;
} finally {
try {
if (!_iteratorNormalCompletion && _iterator.return) {
_iterator.return();
}
} finally {
if (_didIteratorError) {
throw _iteratorError;
}
}
}
tooltip += '
';
} else {
tooltip += 'Add acknowledge';
}
var addAckButtonTemplate = '
' + '
';
tooltip += addAckButtonTemplate;
tooltip += '
';
var drop = new Drop({
target: element[0],
content: tooltip,
position: "bottom left",
classes: 'drop-popover ack-tooltip',
openOn: 'hover',
hoverCloseDelay: 500,
tetherOptions: {
constraints: [{ to: 'window', pin: true, attachment: "both" }]
}
});
drop.open();
drop.on('close', closeDrop);
$('#add-acknowledge-btn').on('click', onAddAckButtonClick);
function onAddAckButtonClick() {
var inputTemplate = '' + '' + '' + '
';
var $input = $(inputTemplate);
var $addAckButton = $('.ack-tooltip .ack-add-button');
$addAckButton.replaceWith($input);
$('.ack-tooltip #cancel-ack-button').on('click', onAckCancelButtonClick);
$('.ack-tooltip #send-ack-button').on('click', onAckSendlButtonClick);
}
function onAckCancelButtonClick() {
$('.ack-tooltip .ack-input-group').replaceWith(addAckButtonTemplate);
$('#add-acknowledge-btn').on('click', onAddAckButtonClick);
}
function onAckSendlButtonClick() {
var message = $('.ack-tooltip #ack-message')[0].value;
var onAck = scope.onAck.bind(scope.context);
onAck(scope.trigger, message).then(function () {
closeDrop();
});
}
function closeDrop() {
setTimeout(function () {
drop.destroy();
});
}
});
$compile(element.contents())(scope);
}
};
});
}
};
});
//# sourceMappingURL=ack-tooltip.directive.js.map