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. |