protected override void Render( HtmlTextWriter writer )
{
this.AddCssClass( "popover-person" );
HRef = Path.Combine( System.Web.VirtualPathUtility.ToAbsolute( "~" ), string.Format( "Person/{0}", PersonId ) );
this.Attributes["personId"] = PersonId.ToString();
base.RenderBeginTag( writer );
if ( PhotoId.HasValue && PhotoId.Value != 0 )
{
writer.AddAttribute( HtmlTextWriterAttribute.Class, "fa fa-circle" );
writer.RenderBeginTag( HtmlTextWriterTag.I );
writer.RenderEndTag();
}
writer.RenderBeginTag( HtmlTextWriterTag.Strong );
writer.Write( PersonName );
writer.RenderEndTag();
base.RenderEndTag( writer );
if ( !string.IsNullOrWhiteSpace( Role ) )
{
writer.RenderBeginTag(HtmlTextWriterTag.Small);
writer.Write( " (" );
writer.Write( Role );
writer.Write( ")" );
writer.RenderEndTag();
}
string script = @"
$('.popover-person').popover({
placement: 'right',
trigger: 'manual',
delay: 500,
html: true,
content: function() {
var dataUrl = Rock.settings.get('baseUrl') + 'api/People/PopupHtml/' + $(this).attr('personid');
var result = $.ajax({
type: 'GET',
url: dataUrl,
dataType: 'json',
contentType: 'application/json; charset=utf-8',
async: false }).responseText;
var resultObject = jQuery.parseJSON(result);
return resultObject.PickerItemDetailsHtml;
}
}).on('mouseenter', function () {
var _this = this;
$(this).popover('show');
$(this).siblings('.popover').on('mouseleave', function () {
$(_this).popover('hide');
});
}).on('mouseleave', function () {
var _this = this;
setTimeout(function () {
if (!$('.popover:hover').length) {
$(_this).popover('hide')
}
}, 100);
});
";
ScriptManager.RegisterStartupScript( this, this.GetType(), "person-link-popover", script, true );
}