|
From: <mas...@us...> - 2007-07-24 13:26:55
|
Revision: 48
http://svn.sourceforge.net/mp-webinterface/?rev=48&view=rev
Author: maschine
Date: 2007-07-24 06:26:50 -0700 (Tue, 24 Jul 2007)
Log Message:
-----------
Adding ProgramDetail page and improvements to guide and now/next.
Modified Paths:
--------------
trunk/Version2/Web App/MPW/Default.aspx.cs
trunk/Version2/Web App/MPW/NowNext.aspx
trunk/Version2/Web App/MPW/NowNext.aspx.cs
Added Paths:
-----------
trunk/Version2/Web App/MPW/ProgramDetail.aspx
trunk/Version2/Web App/MPW/ProgramDetail.aspx.cs
Modified: trunk/Version2/Web App/MPW/Default.aspx.cs
===================================================================
--- trunk/Version2/Web App/MPW/Default.aspx.cs 2007-07-17 17:25:09 UTC (rev 47)
+++ trunk/Version2/Web App/MPW/Default.aspx.cs 2007-07-24 13:26:50 UTC (rev 48)
@@ -65,6 +65,7 @@
TableCell cell_channel = new TableCell();
TableCell cell_program = new TableCell();
cell_program.ColumnSpan = 3;
+ cell_program.Height = 80;
cell_channel.CssClass = "logocell";
@@ -102,7 +103,7 @@
int width = Int32.Parse(widthTime.Hours.ToString()) * 60;
width += Int32.Parse(widthTime.Minutes.ToString());
firstcell.ColumnSpan = width / 2;
- firstcell.Text = current.Title + " " + width.ToString();
+ firstcell.Text = "<a href=\"ProgramDetail.aspx?idProgram=" + current.IdProgram + "\">" + current.Title + "</a>";
programsRow.Cells.Add(firstcell);
bool more = true;
@@ -119,7 +120,7 @@
width = Int32.Parse(widthTime.Hours.ToString()) * 60;
width += Int32.Parse(widthTime.Minutes.ToString());
nextcell.ColumnSpan = width / 2;
- nextcell.Text = next.Title + " " + width.ToString();
+ nextcell.Text = "<a href=\"ProgramDetail.aspx?idProgram=" + next.IdProgram + "\">" + next.Title + "</a>";
programsRow.Cells.Add(nextcell);
current = next;
if (next.EndTime == guideEnd)
@@ -136,7 +137,7 @@
width = Int32.Parse(widthTime.Hours.ToString()) * 60;
width += Int32.Parse(widthTime.Minutes.ToString());
nextcell.ColumnSpan = width / 2;
- nextcell.Text = next.Title + " " + width.ToString();
+ nextcell.Text = "<a href=\"ProgramDetail.aspx?idProgram=" + next.IdProgram + "\">" + next.Title + "</a>";
programsRow.Cells.Add(nextcell);
more = false;
}
Modified: trunk/Version2/Web App/MPW/NowNext.aspx
===================================================================
--- trunk/Version2/Web App/MPW/NowNext.aspx 2007-07-17 17:25:09 UTC (rev 47)
+++ trunk/Version2/Web App/MPW/NowNext.aspx 2007-07-24 13:26:50 UTC (rev 48)
@@ -7,31 +7,6 @@
<asp:Panel ID="NowNextPanel" runat="server">
</asp:Panel>
</div>
- <asp:Panel ID="DetailsPanel" runat="server" Visible="false" CssClass="detailsPanel">
- <div>
- <div style="width: 75px; height: 85px; float: left;">
- <asp:Image ID="detailChannelLogo" runat="server" />
- <br />
- <asp:Label ID="detailChannelName" runat="server" Text="Channel Name"></asp:Label></div>
- <div style="float: left;">
- <asp:Label ID="detailShowName" runat="server" Text="Show Name" CssClass="detailShowTitle"></asp:Label>
- <br />
- <asp:Label ID="detailShowTime" runat="server" Text="Time"></asp:Label>
- </div>
- <div style="float:right;width:20px;">
- <asp:ImageButton ID="CloseDetails" runat="server" CausesValidation="False" ImageAlign="Middle" ImageUrl="~/Images/redx.gif" OnClick="closeDetails" PostBackUrl="~/NowNext.aspx" />
- </div>
- </div>
- <div class="recordingoptions">
- <asp:Label ID="Label1" runat="server" Text="<%$ Resources:Resource, RecordThis %>"></asp:Label>
- <asp:DropDownList ID="ScheduleType" runat="server">
- </asp:DropDownList>
- <asp:HiddenField ID="HiddenFieldProgramID" runat="server" />
- <asp:Button ID="Button1" runat="server" Text="Button" OnClick="addSchedule" /></div>
- <div class="description">
- <asp:Label ID="detailShowDesc" runat="server" Text="Show Description"></asp:Label>
- </div>
- </asp:Panel>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
Modified: trunk/Version2/Web App/MPW/NowNext.aspx.cs
===================================================================
--- trunk/Version2/Web App/MPW/NowNext.aspx.cs 2007-07-17 17:25:09 UTC (rev 47)
+++ trunk/Version2/Web App/MPW/NowNext.aspx.cs 2007-07-24 13:26:50 UTC (rev 48)
@@ -44,65 +44,7 @@
updateContents();
}
- /// <summary>
- /// Opens the popup with details for a show.
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- protected void openDetails(object sender, CommandEventArgs e)
- {
- int idProgram = int.Parse(e.CommandArgument.ToString());
- prepareDetails(idProgram);
- DetailsPanel.Visible = true;
- }
-
- /// <summary>
- /// Adds a new Schedule from the details panel.
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- protected void addSchedule(object sender, EventArgs e)
- {
- int idProgram = int.Parse(HiddenFieldProgramID.Value);
- int recTypeNr = int.Parse(ScheduleType.SelectedValue);
- ScheduleRecordingType recType = (ScheduleRecordingType)recTypeNr;
- if (MPWUtils.addSchedule(idProgram, recType))
- {
- DetailsPanel.Visible = false;
- updateContents();
- }
- //TODO: Implement error handling
- }
-
- /// <summary>
- /// Closes the popup with details for a show.
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- protected void closeDetails(object sender, ImageClickEventArgs e)
- {
- DetailsPanel.Visible = false;
- }
-
- /// <summary>
- /// Prepares the contents of the Details panel
- /// </summary>
- /// <param name="idProgram">The program ID of the selected show.</param>
- protected void prepareDetails(int idProgram)
- {
-
- Program p = Program.Retrieve(idProgram);
- Channel c = Channel.Retrieve(p.IdChannel);
- detailChannelName.Text = c.Name;
- detailChannelLogo.ImageUrl = MPWUtils.getChannelLogoPath(this.Server.MapPath("~/TVLogos/"), c.Name);
- detailShowName.Text = p.Title;
- detailShowTime.Text = "(" + p.StartTime.ToShortTimeString() + " - " + p.EndTime.ToShortTimeString() + ")";
- detailShowDesc.Text = p.Description;
- HiddenFieldProgramID.Value = idProgram.ToString();
- MPWUtils.prepareScheduleTypeDropDown(ScheduleType);
- }
-
- /// <summary>
+ /// <summary>
/// Updates the now and next program rows.
/// </summary>
protected void updateContents()
@@ -188,10 +130,8 @@
TableCell cell_program = new TableCell();
cell_program.CssClass = "detailscell";
- Label lbl_program_now_1 = new Label();
- Label lbl_program_now_2 = new Label();
- Label lbl_program_next_1 = new Label();
- Label lbl_program_next_2 = new Label();
+ Label lbl_program_now = new Label();
+ Label lbl_program_next = new Label();
try
{
@@ -200,19 +140,12 @@
Program next = channel.GetProgramAt(now.EndTime.AddMinutes(2));
bool[] nextRec = IsRecording(next);
- lbl_program_now_1.Text = "<span class=\"nownext\">" + Resources.Resource.Now + ": </span>";
- cell_program.Controls.Add(lbl_program_now_1);
+ lbl_program_now.Text = "<span class=\"nownext\">" + Resources.Resource.Now + ": </span>";
+ lbl_program_now.Text += "<a href=\"ProgramDetail.aspx?idProgram=" + now.IdProgram + "\">" + now.Title + "</a>"; ;
+ lbl_program_now.Text += " (" + now.StartTime.ToShortTimeString() + " - ";
+ lbl_program_now.Text += now.EndTime.ToShortTimeString() + ")";
+ cell_program.Controls.Add(lbl_program_now);
- LinkButton nowLink = new LinkButton();
- nowLink.Text = now.Title;
- nowLink.CommandArgument = now.IdProgram.ToString();
- nowLink.Command += new CommandEventHandler(openDetails);
- cell_program.Controls.Add(nowLink);
-
- lbl_program_now_2.Text = " (" + now.StartTime.ToShortTimeString() + " - ";
- lbl_program_now_2.Text += now.EndTime.ToShortTimeString() + ")";
- cell_program.Controls.Add(lbl_program_now_2);
-
if (nowRec[0])
{
Image recIcon = new Image();
@@ -224,13 +157,13 @@
cell_program.Controls.Add(recIcon);
}
- lbl_program_next_1.Text = "<br /> <br />";
+ lbl_program_next.Text = "<br /> <br />";
- lbl_program_next_1.Text += "<span class=\"nownext\">" + Resources.Resource.Next + ": </span>";
- lbl_program_next_1.Text += next.Title;
- lbl_program_next_1.Text += " (" + next.StartTime.ToShortTimeString() + " - ";
- lbl_program_next_1.Text += next.EndTime.ToShortTimeString() + ")";
- cell_program.Controls.Add(lbl_program_next_1);
+ lbl_program_next.Text += "<span class=\"nownext\">" + Resources.Resource.Next + ": </span>";
+ lbl_program_next.Text += next.Title;
+ lbl_program_next.Text += " (" + next.StartTime.ToShortTimeString() + " - ";
+ lbl_program_next.Text += next.EndTime.ToShortTimeString() + ")";
+ cell_program.Controls.Add(lbl_program_next);
if (nextRec[0])
{
@@ -246,8 +179,8 @@
}
catch
{
- lbl_program_now_1.Text = Resources.Resource.NoEPGInfo;
- cell_program.Controls.Add(lbl_program_now_1);
+ lbl_program_now.Text = Resources.Resource.NoEPGInfo;
+ cell_program.Controls.Add(lbl_program_now);
}
channelRow.Cells.Add(cell_channel);
Added: trunk/Version2/Web App/MPW/ProgramDetail.aspx
===================================================================
--- trunk/Version2/Web App/MPW/ProgramDetail.aspx (rev 0)
+++ trunk/Version2/Web App/MPW/ProgramDetail.aspx 2007-07-24 13:26:50 UTC (rev 48)
@@ -0,0 +1,35 @@
+<%@ Page Language="C#" MasterPageFile="~/MPW.master" AutoEventWireup="true" CodeFile="ProgramDetail.aspx.cs" Inherits="Default2" Title="Untitled Page" %>
+
+<asp:Content ID="ProgramDetail" ContentPlaceHolderID="MPWContent" runat="Server">
+ <asp:UpdatePanel ID="ContentUpdatePanel" runat="server" UpdateMode="Always">
+ <ContentTemplate>
+ <div>
+ <asp:Panel ID="DetailsPanel" runat="server">
+ <div>
+ <div style="width: 75px; height: 100px; float: left; text-align:center">
+ <asp:Image ID="detailChannelLogo" runat="server" />
+ <br />
+ <asp:Label ID="detailChannelName" runat="server" Text="Channel Name"></asp:Label></div>
+ <div style="float: left; padding-left:20px">
+ <asp:Label ID="detailShowName" runat="server" Text="Show Name" CssClass="detailShowTitle"></asp:Label>
+ <br /> <br />
+ <asp:Label ID="detailShowTime" runat="server" Text="Time"></asp:Label>
+ </div>
+ <div style="float:right;width:20px;">
+ <asp:Image ID="Dots" runat="server" />
+ </div>
+ </div>
+ <div class="recordingoptions">
+ <asp:Label ID="Label1" runat="server" Text="<%$ Resources:Resource, RecordThis %>"></asp:Label>
+ <asp:DropDownList ID="ScheduleType" runat="server">
+ </asp:DropDownList>
+ <asp:HiddenField ID="HiddenFieldProgramID" runat="server" />
+ <asp:Button ID="Button1" runat="server" Text="Button" OnClick="addSchedule" /></div>
+ <div class="description">
+ <asp:Label ID="detailShowDesc" runat="server" Text="Show Description"></asp:Label>
+ </div>
+ </asp:Panel>
+ </ContentTemplate>
+ </asp:UpdatePanel>
+</asp:Content>
+
Added: trunk/Version2/Web App/MPW/ProgramDetail.aspx.cs
===================================================================
--- trunk/Version2/Web App/MPW/ProgramDetail.aspx.cs (rev 0)
+++ trunk/Version2/Web App/MPW/ProgramDetail.aspx.cs 2007-07-24 13:26:50 UTC (rev 48)
@@ -0,0 +1,127 @@
+using System;
+using System.Data;
+using System.Configuration;
+using System.Collections;
+using System.Web;
+using System.Web.Security;
+using System.Web.UI;
+using System.Web.UI.WebControls;
+using System.Web.UI.WebControls.WebParts;
+using System.Web.UI.HtmlControls;
+
+using TvDatabase;
+using MPW;
+using System.Collections.Generic;
+
+public partial class Default2 : System.Web.UI.Page
+{
+ IList _schedules;
+ int idProgram;
+
+ /// <summary>
+ /// Checks if a program is scheduled as single / series recording
+ /// </summary>
+ /// <param name="program">The program to check</param>
+ /// <returns>A bool array with meaning [isScheduled, isSeries]</returns>
+ protected bool[] IsRecording(Program program)
+ {
+ bool[] result = { false, false };
+ foreach (Schedule schedule in _schedules)
+ {
+ if (schedule.IsRecordingProgram(program, true))
+ {
+ result[0] = true;
+ if (schedule.ScheduleType != 0)
+ result[1] = true; ;
+ }
+ }
+ return result;
+ }
+
+ protected void Page_Load(object sender, EventArgs e)
+ {
+ MPWMaster m = (MPWMaster)Page.Master;
+ m.Sectiontitle = Resources.Resource.NowNext;
+ updateContents();
+ }
+
+
+ /// <summary>
+ /// Adds a new Schedule from the details panel.
+ /// </summary>
+ /// <param name="sender"></param>
+ /// <param name="e"></param>
+ protected void addSchedule(object sender, EventArgs e)
+ {
+ int idProgram = int.Parse(HiddenFieldProgramID.Value);
+ int recTypeNr = int.Parse(ScheduleType.SelectedValue);
+ ScheduleRecordingType recType = (ScheduleRecordingType)recTypeNr;
+ if (MPWUtils.addSchedule(idProgram, recType))
+ {
+ DetailsPanel.Visible = false;
+ updateContents();
+ }
+ //TODO: Implement error handling
+ }
+
+
+ /// <summary>
+ /// Updates the now and next program rows.
+ /// </summary>
+ protected void updateContents()
+ {
+
+ //Establish the connection to the TV Server and the DB.
+ MPWUtils.SetupConnection();
+
+ //A new Businesslayer
+ TvBusinessLayer layer = new TvBusinessLayer();
+
+ //Get all schedules
+ _schedules = Schedule.ListAll();
+
+ //Get the program ID from teh URL
+ try
+ {
+ idProgram = int.Parse(Request.QueryString.Get("idProgram"));
+ }
+ catch (Exception)
+ {
+ //Ung\xFCltige idProgram
+ }
+
+ try
+ {
+ Program p = Program.Retrieve(idProgram);
+ Channel c = Channel.Retrieve(p.IdChannel);
+ detailChannelName.Text = c.Name;
+ bool[] isRec = IsRecording(p);
+
+ if (isRec[0])
+ {
+ if (isRec[1])
+ Dots.ImageUrl = "Images/rec_series.png";
+ else
+ Dots.ImageUrl = "Images/rec_single.png";
+ }
+ else
+ {
+ Dots = null;
+ }
+
+ detailChannelLogo.ImageUrl = MPWUtils.getChannelLogoPath(this.Server.MapPath("~/TVLogos/"), c.Name);
+ detailShowName.Text = p.Title;
+ detailShowTime.Text = "(" + p.StartTime.ToShortTimeString() + " - " + p.EndTime.ToShortTimeString() + ")";
+ detailShowDesc.Text = p.Description;
+ HiddenFieldProgramID.Value = idProgram.ToString();
+ MPWUtils.prepareScheduleTypeDropDown(ScheduleType);
+ }
+ catch (Exception)
+ {
+ //Fehler beim detailShowDesc holen.
+ }
+
+
+ }
+}
+
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|