[mythtv] [PATCH] Server Status Episode Descriptions

Brett Lucey brett at happykoala.com
Sun Nov 9 01:15:14 EST 2003


Here's a quick patch which will allow you to click on a program title (in the web status screen) to pop-up the description of the episode being taped.

-Brett




Index: programs/mythbackend/mainserver.cpp
===================================================================
RCS file: /var/lib/mythcvs/mythtv/programs/mythbackend/mainserver.cpp,v
retrieving revision 1.88
diff -u -r1.88 mainserver.cpp
--- programs/mythbackend/mainserver.cpp 1 Nov 2003 18:08:35 -0000       1.88
+++ programs/mythbackend/mainserver.cpp 9 Nov 2003 06:15:11 -0000
@@ -2356,6 +2356,37 @@
     playbackList.push_back(masterServer);
 }

+string MainServer::escapeString(string source)
+{
+   unsigned int i;
+   string result = "";
+
+   for (i = 0; i < source.length(); i++) {
+
+      switch(source[i]) {
+
+         case '\\':
+            result += "\\\\"; break;
+         case '>':
+            result += "&gt;"; break;
+         case '<':
+            result += "&lt;"; break;
+         case '&':
+            result += "&amp;"; break;
+         case '\"':
+            result += "&quot;"; break;
+         case '\'':
+            result += "\\\'"; break;
+         default:
+            result += source[i];
+      }
+   }
+
+   return result;
+}
+
+
+
 void MainServer::PrintStatus(QSocket *socket)
 {
     QTextStream os(socket);
@@ -2451,6 +2482,15 @@
           << " that " << (iNum == 1 ? "is" : "are")
           << " scheduled for recording:<BR>\r\n";

+       os << "<Script language=JavaScript>";
+       os << "function dispDesc(txt) {\r\n";
+       os << "wnd=window.open(\"\", \"min\",\"width=250 height=180\");";
+       os << "wnd.document.write(\"<font face=helvetica size=-1>\");";
+       os << "wnd.document.write(txt);";
+       os << "wnd.document.write(\"</font>\");";
+       os << "}";
+       os << "</script>";
+
        os << "<TABLE BORDER WIDTH=80%>\r\n";
        os << "<TR><TH>Start Time</TH><TH>Show</TH><TH>Encoder</TH></TR>\r\n";
        list<ProgramInfo *>::iterator iter = recordinglist->begin();
@@ -2467,7 +2507,9 @@
                os << "<TR " << ((i % 2 == 0) ? "BGCOLOR=EEEEEE" : "") << ">"
                   << "<TD>" << ((*iter)->startts).toString(shortdateformat)
                   << " " << ((*iter)->startts).toString(timeformat) << "</TD>"
-                  << "<TD>" << (*iter)->title << "</TD>"
+                  << "<TD>" << "<a href=\"javascript:dispDesc('" <<
+                        escapeString((*iter)->description) << "')\">"
+                  << (*iter)->title << "</a></TD>"
                   << "<TD>" << (*iter)->cardid << "</TD></TR>\r\n";
            }
        }
Index: programs/mythbackend/mainserver.h
===================================================================
RCS file: /var/lib/mythcvs/mythtv/programs/mythbackend/mainserver.h,v
retrieving revision 1.35
diff -u -r1.35 mainserver.h
--- programs/mythbackend/mainserver.h   1 Nov 2003 18:08:35 -0000       1.35
+++ programs/mythbackend/mainserver.h   9 Nov 2003 06:15:11 -0000
@@ -29,6 +29,7 @@
    ~MainServer();

     void customEvent(QCustomEvent *e);
+    string escapeString(string);
     void PrintStatus(QSocket *socket);

     void ProcessRequest(QSocket *sock);
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mythtv.org/pipermail/mythtv-dev/attachments/20031109/3b4d5aa2/attachment-0001.html


More information about the mythtv-dev mailing list