public override void RenderControl( HtmlTextWriter writer )
{
if ( CSSClass != string.Empty )
{
writer.AddAttribute( HtmlTextWriterAttribute.Class, "note " + CSSClass );
}
else
{
writer.AddAttribute( HtmlTextWriterAttribute.Class, "note" );
}
if ( this.NoteId.HasValue )
{
writer.AddAttribute( "rel", this.NoteId.Value.ToStringSafe() );
}
writer.RenderBeginTag( HtmlTextWriterTag.Div );
// Edit Mode HTML...
writer.AddAttribute( HtmlTextWriterAttribute.Class, "panel panel-noteentry" );
if ( NoteId.HasValue || !AddAlwaysVisible )
{
writer.AddStyleAttribute( HtmlTextWriterStyle.Display, "none" );
}
writer.RenderBeginTag( HtmlTextWriterTag.Div );
writer.AddAttribute( HtmlTextWriterAttribute.Class, "panel-body" );
writer.RenderBeginTag( HtmlTextWriterTag.Div );
if ( DisplayType == NoteDisplayType.Full && UsePersonIcon )
{
writer.Write( Person.GetPersonPhotoImageTag( CreatedByPersonId, CreatedByPhotoId, null, CreatedByGender, null, 50, 50) );
}
writer.AddAttribute(HtmlTextWriterAttribute.Class, "noteentry-control");
writer.RenderBeginTag(HtmlTextWriterTag.Div);
_ddlNoteType.RenderControl( writer );
_tbNote.RenderControl( writer );
writer.RenderEndTag();
// The optional create date text box, but only for new notes...
if (ShowCreateDateInput && !NoteId.HasValue)
{
writer.AddAttribute(HtmlTextWriterAttribute.Class, "createDate clearfix");
writer.RenderBeginTag(HtmlTextWriterTag.Div);
_dtCreateDate.RenderControl(writer);
writer.RenderEndTag(); // createDate div
}
if (DisplayType == NoteDisplayType.Full)
{
// Options
writer.AddAttribute( HtmlTextWriterAttribute.Class, "settings clearfix" );
writer.RenderBeginTag( HtmlTextWriterTag.Div );
writer.AddAttribute( HtmlTextWriterAttribute.Class, "options pull-left" );
writer.RenderBeginTag( HtmlTextWriterTag.Div );
if ( ShowAlertCheckBox )
{
_cbAlert.RenderControl( writer );
}
if ( ShowPrivateCheckBox )
{
_cbPrivate.RenderControl( writer );
}
writer.RenderEndTag();
if ( ShowSecurityButton && this.NoteId.HasValue )
{
_sbSecurity.EntityId = this.NoteId.Value;
_sbSecurity.Title = this.Label;
_sbSecurity.RenderControl( writer );
}
writer.RenderEndTag(); // settings div
}
writer.RenderEndTag(); // panel body
writer.AddAttribute( HtmlTextWriterAttribute.Class, "panel-footer" );
writer.RenderBeginTag( HtmlTextWriterTag.Div );
_lbSaveNote.Text = "Save " + Label;
_lbSaveNote.RenderControl( writer );
if ( NoteId.HasValue || !AddAlwaysVisible )
{
writer.AddAttribute( HtmlTextWriterAttribute.Class, "edit-note-cancel btn btn-link btn-xs" );
writer.RenderBeginTag( HtmlTextWriterTag.A );
writer.Write( "Cancel" );
writer.RenderEndTag();
}
writer.RenderEndTag(); // panel-footer div
writer.RenderEndTag(); // note-entry div
if ( NoteId.HasValue )
{
// View Mode HTML...
writer.AddAttribute( HtmlTextWriterAttribute.Class, ArticleClass );
writer.RenderBeginTag( "article" );
if ( DisplayType == NoteDisplayType.Full )
{
if ( UsePersonIcon )
{
writer.Write( Person.GetPersonPhotoImageTag( CreatedByPersonId, CreatedByPhotoId, CreatedByAge, CreatedByGender, null, 50, 50) );
}
else
{
writer.AddAttribute( HtmlTextWriterAttribute.Class, IconClass );
writer.RenderBeginTag( HtmlTextWriterTag.I );
writer.RenderEndTag();
}
}
writer.AddAttribute( HtmlTextWriterAttribute.Class, "details" );
writer.RenderBeginTag( HtmlTextWriterTag.Div );
// first, encode the text to ensure html tags get encoded
string renderedText = Text.EncodeHtml();
// convert any http, etc text into clickable links (do this before applying Markdown)
renderedText = renderedText.Linkify();
// convert any markdown into HTML, and convert into crlf into <br />
renderedText = renderedText.ConvertMarkdownToHtml( true );
if ( DisplayType == NoteDisplayType.Full )
{
// Heading
writer.RenderBeginTag( HtmlTextWriterTag.H5 );
string heading = Caption;
if ( string.IsNullOrWhiteSpace( Caption ) )
{
heading = CreatedByName;
}
writer.Write( heading.EncodeHtml() );
if ( CreatedDateTime.HasValue )
{
writer.Write( " " );
writer.AddAttribute( "class", "date" );
writer.RenderBeginTag( HtmlTextWriterTag.Span );
writer.Write( CreatedDateTime.Value.ToRelativeDateString( 6 ) );
writer.RenderEndTag();
}
writer.RenderEndTag();
writer.Write( renderedText );
}
else
{
writer.Write( renderedText );
writer.Write( " - " );
if ( !string.IsNullOrWhiteSpace( CreatedByName ) )
{
writer.AddAttribute( "class", "note-author" );
writer.RenderBeginTag( HtmlTextWriterTag.Span );
writer.Write( CreatedByName );
writer.RenderEndTag();
writer.Write( " " );
}
if ( CreatedDateTime.HasValue )
{
writer.AddAttribute( "class", "note-created" );
writer.RenderBeginTag( HtmlTextWriterTag.Span );
writer.Write( CreatedDateTime.Value.ToRelativeDateString( 6 ) );
writer.RenderEndTag();
}
}
writer.RenderEndTag(); // Details Div
if ( CanEdit )
{
writer.AddAttribute( HtmlTextWriterAttribute.Class, "actions rollover-item" );
writer.RenderBeginTag( HtmlTextWriterTag.Div );
_lbDeleteNote.RenderControl( writer );
writer.AddAttribute( HtmlTextWriterAttribute.Class, "edit-note" );
writer.AddAttribute( HtmlTextWriterAttribute.Href, "#" );
writer.RenderBeginTag( HtmlTextWriterTag.A );
writer.AddAttribute( HtmlTextWriterAttribute.Class, "fa fa-pencil" );
writer.RenderBeginTag( HtmlTextWriterTag.I );
writer.RenderEndTag();
writer.RenderEndTag(); // A
writer.RenderEndTag(); // actions
}
writer.RenderEndTag(); // article
}
writer.RenderEndTag();
}