Exemplo n.º 1
0
 /// <summary>
 /// Gets or sets the NoteOptions for note type list.
 /// </summary>
 /// <value>
 /// The note type list.
 /// </value>
 public void SetNoteTypes(List <NoteTypeCache> noteTypeList)
 {
     NoteOptions.SetNoteTypes(noteTypeList);
 }
Exemplo n.º 2
0
        /// <summary>
        /// Writes the <see cref="T:System.Web.UI.WebControls.CompositeControl" /> content to the specified <see cref="T:System.Web.UI.HtmlTextWriter" /> object, for display on the client.
        /// </summary>
        /// <param name="writer">An <see cref="T:System.Web.UI.HtmlTextWriter" /> that represents the output stream to render HTML content on the client.</param>
        public override void RenderControl(HtmlTextWriter writer)
        {
            if (this.Visible)
            {
                var  currentPerson     = (this.Page as RockPage)?.CurrentPerson;
                var  editableNoteTypes = NoteOptions.GetEditableNoteTypes(currentPerson);
                bool canAdd            = AddAllowed &&
                                         editableNoteTypes.Any() &&
                                         (AllowAnonymousEntry || currentPerson != null);

                string cssClass = "panel panel-note js-notecontainer" +
                                  (this.NoteOptions.DisplayType == NoteDisplayType.Light ? " panel-note-light" : string.Empty);

                writer.AddAttribute(HtmlTextWriterAttribute.Class, cssClass);
                writer.AddAttribute("data-sortdirection", this.SortDirection.ConvertToString(false));
                writer.RenderBeginTag("section");

                // Heading
                if (ShowHeading)
                {
                    writer.AddAttribute(HtmlTextWriterAttribute.Class, "panel-heading clearfix");
                    writer.RenderBeginTag(HtmlTextWriterTag.Div);

                    if (!string.IsNullOrWhiteSpace(TitleIconCssClass) ||
                        !string.IsNullOrWhiteSpace(Title))
                    {
                        writer.AddAttribute(HtmlTextWriterAttribute.Class, "panel-title");
                        writer.RenderBeginTag(HtmlTextWriterTag.H3);

                        if (!string.IsNullOrWhiteSpace(TitleIconCssClass))
                        {
                            writer.AddAttribute(HtmlTextWriterAttribute.Class, TitleIconCssClass);
                            writer.RenderBeginTag(HtmlTextWriterTag.I);
                            writer.RenderEndTag();      // I
                        }

                        if (!string.IsNullOrWhiteSpace(Title))
                        {
                            writer.Write(" ");
                            writer.Write(Title);
                        }

                        writer.RenderEndTag();
                    }

                    if (!NoteOptions.AddAlwaysVisible && canAdd && SortDirection == ListSortDirection.Descending)
                    {
                        RenderAddButton(writer);
                    }

                    writer.RenderEndTag();
                }

                writer.AddAttribute(HtmlTextWriterAttribute.Class, "panel-body");
                writer.RenderBeginTag(HtmlTextWriterTag.Div);

                _noteEditor.ShowEditMode = NoteOptions.AddAlwaysVisible;

                if (canAdd && SortDirection == ListSortDirection.Descending)
                {
                    if (!ShowHeading && !NoteOptions.AddAlwaysVisible)
                    {
                        RenderAddButton(writer);
                    }

                    _noteEditor.RenderControl(writer);
                }

                _hfCurrentNoteId.RenderControl(writer);
                _hfExpandedNoteIds.RenderControl(writer);
                _lbDeleteNote.RenderControl(writer);
                _mdDeleteWarning.RenderControl(writer);
                using (var rockContext = new RockContext())
                {
                    List <Note> viewableNoteList = GetViewableNoteList(rockContext, currentPerson);

                    this.ShowMoreOption = (SortDirection == ListSortDirection.Descending) && (viewableNoteList.Count > this.DisplayCount);
                    if (this.ShowMoreOption)
                    {
                        viewableNoteList = viewableNoteList.Take(this.DisplayCount).ToList();
                    }

                    var rockBlock       = this.RockBlock();
                    var noteMergeFields = LavaHelper.GetCommonMergeFields(rockBlock?.RockPage, currentPerson, new CommonMergeFieldsOptions {
                        GetLegacyGlobalMergeFields = false
                    });
                    noteMergeFields.Add("NoteOptions", this.NoteOptions);
                    noteMergeFields.Add("NoteList", viewableNoteList);
                    List <int> expandedNoteIdList = _hfExpandedNoteIds.Value.SplitDelimitedValues().AsIntegerList();
                    noteMergeFields.Add("ExpandedNoteIds", expandedNoteIdList);

                    var noteTreeHtml = this.NoteOptions.NoteViewLavaTemplate.ResolveMergeFields(noteMergeFields).ResolveClientIds(this.ParentUpdatePanel()?.ClientID);
                    writer.Write(noteTreeHtml);
                }

                if (canAdd && SortDirection == ListSortDirection.Ascending)
                {
                    if (!NoteOptions.AddAlwaysVisible)
                    {
                        RenderAddButton(writer);
                    }

                    _noteEditor.RenderControl(writer);
                }
                else
                {
                    if (ShowMoreOption)
                    {
                        writer.AddAttribute(HtmlTextWriterAttribute.Class, "load-more-container");
                        writer.RenderBeginTag(HtmlTextWriterTag.Div);
                        _lbShowMore.RenderControl(writer);
                        writer.RenderEndTag();
                    }
                }

                writer.RenderEndTag();

                writer.RenderEndTag();
            }
        }
Exemplo n.º 3
0
 /// <summary>
 /// Sets the note options.
 /// </summary>
 /// <param name="noteOptions">The note options.</param>
 public void SetNoteOptions(NoteOptions noteOptions)
 {
     this.NoteOptions = noteOptions;
     this.BindNoteTypes();
     this.NoteOptions.NoteTypesChange += NoteOptions_NoteTypesChange;
 }