void BindComments()
		{
			if (CommentPage > CurrentThread.LastPage)
				CommentPage = CurrentThread.LastPage;

			CommentSet Comments = CurrentThread.GetPagedCommentSet(CurrentThread.CommentsQ, CommentPage);
			
			ThreadSubject2.Text = CurrentThread.Subject;

			if (CurrentThread.TotalComments == 1)
				CommentsSubjectH1.InnerText = "Comment";
			else
				CommentsSubjectH1.InnerText = "Comments";

			if (CurrentThread.IsReview)
			{
				InitialCommentH1.InnerText = "Review";
				CommentsSubjectH1.InnerText = "Review";
			}
			else if (CurrentThread.IsNews)
			{
				InitialCommentH1.InnerText = "News";
				CommentsSubjectH1.InnerText = "News";
			}

			SubjectPanel1.Visible = true;
			SubjectPanel2.Visible = true;

			if (CommentPage > 1)
			{
				InitialCommentPanel.Visible = true;
				CommentSet csInitial = CurrentThread.GetPagedCommentSet(new Q(Comment.Columns.K, CurrentThread.FirstComment.K), 1);
				InitialCommentDataList.DataSource = csInitial;
				InitialCommentDataList.ItemTemplate = this.LoadTemplate("/Templates/Comments/Default.ascx");
				InitialCommentDataList.DataBind();
				ThreadSubject1.Text = CurrentThread.Subject;
				CommentsSubjectH1.InnerText = "Replies";
				SubjectPanel2.Visible = false;
			}
			else
				InitialCommentPanel.Visible = false;


			if (CurrentThread.ParentObjectType.Equals(Model.Entities.ObjectType.Photo))
			{
				SubjectPanel1.Visible = false;
				SubjectPanel2.Visible = false;
			}

			if (CommentPage==1 && CurrentThread.LastPage==1)
			{
				CommentsPageTopHolder.Visible = false;
				CommentsPageBottomHolder.Visible = false;
				CommentsPageP1.Visible = false;
				CommentsPageP2.Visible = false;
			}
			else
			{
				CommentsPageP1.Visible = true;
				CommentsPageP2.Visible = true;

				object prevPage = null;
				if (CommentPage > 2)
					prevPage = CommentPage - 1;

				CommentsNextPageLink1.Enabled = CommentPage < CurrentThread.LastPage;
				CommentsNextPageLink1.NavigateUrl = ContainerPage.Url.CurrentUrl("c", ((int)(CommentPage + 1)).ToString()) + "#Comments";
				CommentsPrevPageLink1.Enabled = CommentPage > 1;
				CommentsPrevPageLink1.NavigateUrl = ContainerPage.Url.CurrentUrl("c", prevPage) + "#Comments";

				CommentsNextPageLink2.Enabled = CommentPage < CurrentThread.LastPage;
				CommentsNextPageLink2.NavigateUrl = ContainerPage.Url.CurrentUrl("c", ((int)(CommentPage + 1)).ToString()) + "#Comments";
				CommentsPrevPageLink2.Enabled = CommentPage > 1;
				CommentsPrevPageLink2.NavigateUrl = ContainerPage.Url.CurrentUrl("c", prevPage) + "#Comments";

				if (!CommentsNextPageLink1.Enabled)
					CommentsNextPageLink1.CssClass = "DisabledAnchor";
				if (!CommentsNextPageLink2.Enabled)
					CommentsNextPageLink2.CssClass = "DisabledAnchor";
				if (!CommentsPrevPageLink1.Enabled)
					CommentsPrevPageLink1.CssClass = "DisabledAnchor";
				if (!CommentsPrevPageLink2.Enabled)
					CommentsPrevPageLink2.CssClass = "DisabledAnchor";

				CurrentThreadUsr = null;
				doneFirstUnreadPage = false;
				doneViewComments = false;
				int endLinks = 3;
				int midLinks = 4;
				int midLinksUnread = 2;
				PageLinkWriter p = new PageLinkWriter();
				p.LastPage = CurrentThread.LastPage;
				p.CurrentPageForLinks = CommentPage;
				p.Zones.Add(new PageLinkWriter.Zone(1, endLinks));
				p.Zones.Add(new PageLinkWriter.Zone(CurrentThread.LastPage - endLinks + 1, CurrentThread.LastPage));
				if (FirstUnreadPage > 0)
				{
					p.Zones.Add(new PageLinkWriter.Zone(FirstUnreadPage - midLinksUnread, FirstUnreadPage + midLinksUnread - 1));
				}
				p.Zones.Add(new PageLinkWriter.Zone(CommentPage - midLinks, CommentPage + midLinks));
				StringBuilder sb = new StringBuilder();
				sb.Append("Pages: ");
				p.Build(new PageLinkWriter.LinkWriter(PageLinkWriter), new PageLinkWriter.SeperatorWriter(PageSeperatorWriter), sb);
				CommentsPageP1.Controls.Clear();
				CommentsPageP2.Controls.Clear();
				CommentsPageP1.Controls.Add(new LiteralControl(sb.ToString()));
				CommentsPageP2.Controls.Add(new LiteralControl(sb.ToString()));
			}

			if (CommentPage * Vars.CommentsPerPage > CurrentThread.TotalComments)
				CurrentThread.SetThreadUsr(CurrentThread.TotalComments);
			else
				CurrentThread.SetThreadUsr(CommentPage * Vars.CommentsPerPage);

			CommentsDataList.DataSource = Comments;
			CommentsDataList.ItemTemplate = this.LoadTemplate("/Templates/Comments/Default.ascx");
			CommentsDataList.DataBind();

		}
		public override void DataBind()
		{
			if (CurrentThread == null || CurrentThread.TotalComments == 0)
			{
				this.uiCommentsPanel.Style["display"] = "none";
			}
			else
			{
				if (CurrentPage > CurrentThread.LastPage)
					CurrentPage = CurrentThread.LastPage;

				CommentSet Comments = CurrentThread.GetPagedCommentSet(CurrentThread.CommentsQ, CurrentPage);

				this.uiCommentsPanel.Style["display"] = "";
				this.CommentsSubjectH1InnerText = "Comments";

				if (CurrentThread.IsReview)
				{
					InitialCommentH1.InnerText = "Review";
					this.CommentsSubjectH1InnerText = "Review";
				}
				else if (CurrentThread.IsNews)
				{
					InitialCommentH1.InnerText = "News";
					this.CommentsSubjectH1InnerText = "News";
				}

				if (CurrentPage > 1)
				{
					uiInitialCommentPanel.Style["display"] = "";
					CommentSet csInitial = CurrentThread.GetPagedCommentSet(new Q(Comment.Columns.K, CurrentThread.FirstComment.K), 1);
					uiInitialCommentDataList.DataSource = csInitial;
					uiInitialCommentDataList.ItemTemplate = this.LoadTemplate("/Templates/Comments/Default.ascx");
					uiInitialCommentDataList.DataBind();
					this.CommentsSubjectH1InnerText = "Replies";
				}
				else
					uiInitialCommentPanel.Style["display"] = "none";


				if (CurrentPage == 1 && CurrentThread.LastPage == 1)
				{
					CommentsPageP2.Visible = false;
					CommentsPageP1.Visible = false;
				}
				else
				{
					CommentsPageP2.Visible = true;
					CommentsPageP1.Visible = true;

					object prevPage = null;
					if (CurrentPage > 2)
						prevPage = CurrentPage - 1;


					CommentsNextPageLink1.Enabled = CurrentPage < CurrentThread.LastPage;
					CommentsNextPageLink1.NavigateUrl = GetCommentPageUrl(CurrentPage + 1);
					CommentsPrevPageLink1.Enabled = CurrentPage > 1;
					CommentsPrevPageLink1.NavigateUrl = GetCommentPageUrl(prevPage);

					CommentsNextPageLink.Enabled = CurrentPage < CurrentThread.LastPage;
					CommentsNextPageLink.NavigateUrl = GetCommentPageUrl(CurrentPage + 1);
					CommentsPrevPageLink.Enabled = CurrentPage > 1;
					CommentsPrevPageLink.NavigateUrl = GetCommentPageUrl(prevPage);

					CommentsNextPageLink1.CssClass = CommentsNextPageLink1.Enabled ? "" : "DisabledAnchor";
					CommentsNextPageLink.CssClass = CommentsNextPageLink.Enabled ? "" : "DisabledAnchor";
					CommentsPrevPageLink1.CssClass = CommentsPrevPageLink1.Enabled ? "" : "DisabledAnchor";
					CommentsPrevPageLink.CssClass = CommentsPrevPageLink.Enabled ? "" : "DisabledAnchor";

					CurrentThreadUsr = null;
					doneFirstUnreadPage = false;
					doneViewComments = false;
					int endLinks = 3;
					int midLinks = 4;
					int midLinksUread = 2;
					PageLinkWriter p = new PageLinkWriter();
					p.LastPage = CurrentThread.LastPage;
					p.CurrentPageForLinks = CurrentPage;
					p.Zones.Add(new PageLinkWriter.Zone(1, endLinks));
					p.Zones.Add(new PageLinkWriter.Zone(CurrentThread.LastPage - endLinks + 1, CurrentThread.LastPage));
					if (FirstUnreadPage > 0)
					{
						p.Zones.Add(new PageLinkWriter.Zone(FirstUnreadPage - midLinksUread, FirstUnreadPage + midLinksUread - 1));
					}
					p.Zones.Add(new PageLinkWriter.Zone(CurrentPage - midLinks, CurrentPage + midLinks));
					StringBuilder sb = new StringBuilder();
					sb.Append("Pages: ");
					p.Build(new PageLinkWriter.LinkWriter(PageLinkWriter), new PageLinkWriter.SeperatorWriter(PageSeperatorWriter), sb);
					CommentsPagesP1.Controls.Clear();
					CommentsPagesP2.Controls.Clear();
					CommentsPagesP1.Controls.Add(new LiteralControl(sb.ToString()));
					CommentsPagesP2.Controls.Add(new LiteralControl(sb.ToString()));
				}

				if (CurrentPage*Vars.CommentsPerPage > CurrentThread.TotalComments)
					CurrentThread.SetThreadUsr(CurrentThread.TotalComments);
				else
					CurrentThread.SetThreadUsr(CurrentPage*Vars.CommentsPerPage);

				CommentsDataList.DataSource = Comments;
				CommentsDataList.ItemTemplate = this.LoadTemplate("/Templates/Comments/Default.ascx");
				CommentsDataList.DataBind();
			}
		}
Example #3
0
		public void BindNewsDataGrid()
		{
			int perPage = 10;

			Query q = new Query();

			q.Paging.RecordsPerPage = perPage;
			q.Paging.RequestedPage = NewsThreadsPage;

			q.Columns = new ColumnSet(
				Thread.Columns.K,
				Thread.Columns.Private,
				Thread.Columns.GroupPrivate,
				Thread.Columns.PrivateGroup,
				Thread.Columns.Subject,
				Thread.Columns.LastPost,
				Thread.Columns.TotalComments,
				Thread.Columns.TotalParticipants,
				Thread.Columns.TotalWatching,
				Thread.Columns.IsNews,
				Thread.Columns.IsReview,
				Thread.Columns.ParentObjectType,
				Thread.Columns.ParentObjectK,
				Thread.Columns.GroupK,
				Thread.Columns.UsrK,
				new JoinedColumnSet(Thread.Columns.UsrK, Usr.LinkColumns),
				Thread.Columns.LastPostUsrK,
				new JoinedColumnSet(Thread.Columns.LastPostUsrK, Usr.LinkColumns)
				);

			q.OrderBy = new OrderBy(Thread.Columns.DateTime);

			q.TableElement = new TableElement(TablesEnum.Thread);

			q.TableElement = new Bobs.Join(
				q.TableElement,
				new TableElement(new Column(Thread.Columns.UsrK, Usr.Columns.K)),
				QueryJoinType.Left,
				Thread.Columns.UsrK,
				new Column(Thread.Columns.UsrK, Usr.Columns.K));

			q.TableElement = new Bobs.Join(
				q.TableElement,
				new TableElement(new Column(Thread.Columns.LastPostUsrK, Usr.Columns.K)),
				QueryJoinType.Left,
				Thread.Columns.LastPostUsrK,
				new Column(Thread.Columns.LastPostUsrK, Usr.Columns.K));

			q.QueryCondition = new And(new Q(Thread.Columns.NewsStatus, Thread.NewsStatusEnum.Recommended), new Q(Thread.Columns.GroupK, CurrentGroup.K));

			ThreadSet ts = new ThreadSet(q);

			if (ts.Count > 0)
			{
				NewsThreadsPage = ts.Paging.ReturnedPage;


				NewsDataGrid.DataSource = ts;
				NewsDataGrid.DataBind();


				Query qTot = new Query();
				qTot.QueryCondition = new And(new Q(Thread.Columns.NewsStatus, Thread.NewsStatusEnum.Recommended), new Q(Thread.Columns.GroupK, CurrentGroup.K));
				qTot.ReturnCountOnly = true;
				ThreadSet tCount = new ThreadSet(qTot);


				int endLinks = 4;
				int midLinks = 4;
				PageLinkWriter p = new PageLinkWriter();
				p.SetLastPage(perPage, tCount.Count);
				p.CurrentPageForLinks = NewsThreadsPage;
				p.Zones.Add(new PageLinkWriter.Zone(1, endLinks));
				p.Zones.Add(new PageLinkWriter.Zone(p.LastPage - endLinks + 1, p.LastPage));
				p.Zones.Add(new PageLinkWriter.Zone(NewsThreadsPage - midLinks, NewsThreadsPage + midLinks));
				StringBuilder sb = new StringBuilder();
				sb.Append("Pages: ");
				p.Build(new PageLinkWriter.LinkWriter(NewsPageLinkWriter), new PageLinkWriter.SeperatorWriter(NewsPageSeperatorWriter), sb);
				NewsPageP.Controls.Clear();
				if (p.LastPage > 1)
					NewsPageP.Controls.Add(new LiteralControl(sb.ToString()));
				else
					NewsPageP.Visible = false;
			}
			else
			{
				NewsDataGrid.Visible = false;
				NewsPageP.InnerHtml = "<small>No news suggestions</small>";
			}
		}
Example #4
0
		void BindPhotos()
		{
			Query q = new Query();

			q.Paging.RecordsPerPage = Vars.GalleryPageSize;
			q.Paging.RequestedPage = CurrentPage;

			q.Columns = Templates.Photos.Default.Columns;
			q.TableElement = Templates.Photos.Default.PerformJoins(new TableElement(TablesEnum.Photo));
			q.OrderBy = Photo.DateTimeOrder(OrderBy.OrderDirection.Ascending);
			q.QueryCondition = new And(new Q(Photo.Columns.GalleryK, GalleryK), Photo.EnabledQueryCondition);

			PhotoSet ps = new PhotoSet(q);

			CurrentPage = ps.Paging.ReturnedPage;

			if (ps.Paging.ShowNoLinks)
			{
				PhotoPageLinksP.Visible = false;
				PhotoPageLinksP1.Visible = false;
			}
			else
			{
				int endLinks = 5;
				int midLinks = 4;
				PageLinkWriter p = new PageLinkWriter();
				p.SetLastPage(Vars.GalleryPageSize, CurrentGallery.LivePhotos);
				p.CurrentPageForLinks = CurrentPage;
				p.Zones.Add(new PageLinkWriter.Zone(1, endLinks));
				p.Zones.Add(new PageLinkWriter.Zone(p.LastPage - endLinks + 1, p.LastPage));
				p.Zones.Add(new PageLinkWriter.Zone(CurrentPage - midLinks, CurrentPage + midLinks));
				StringBuilder sb = new StringBuilder();
				sb.Append("Pages: ");
				p.Build(new PageLinkWriter.LinkWriter(PageLinkWriter), new PageLinkWriter.SeperatorWriter(PageSeperatorWriter), sb);
				PhotoPageLinksP.Controls.Clear();
				PhotoPageLinksP1.Controls.Clear();
				PhotoPageLinksP.Controls.Add(new LiteralControl(sb.ToString()));
				PhotoPageLinksP1.Controls.Add(new LiteralControl(sb.ToString()));
			}


			PhotosDataList.DataSource = ps;
			PhotosDataList.ItemTemplate = this.LoadTemplate("/Templates/Photos/Default.ascx");
			PhotosDataList.DataBind();

		}