commit a056dd80347fbd002c9c68c246d35f0037509232
parent f3ee0bc4e439ad43b9109c4f471a2cbbf50328a8
Author: Brian C. Lane <bcl@brianlane.com>
Date:   Thu,  4 Mar 2010 20:38:07 -0800
Added editing of Media Sources
Diffstat:
2 files changed, 85 insertions(+), 0 deletions(-)
diff --git a/server/hms/hms.py b/server/hms/hms.py
@@ -665,7 +665,54 @@ class LogoutHandler(BaseHandler):
     def get(self):
         self.set_secure_cookie("user", "")
         self.redirect("/login")
+
+class SourceEditHandler(BaseHandler):
+    """
+    Handle Editing the Media sources
+    """
+    @tornado.web.authenticated
+    def get(self, id):
+        if self.current_user != 'admin':
+            self.redirect("/")
+
+        conn = sqlite3.connect(options.database)
+        conn.row_factory = sqlite3.Row
+        cur = conn.cursor()
+        cur.execute("select * from source where id=?", (id,))
+	row = cur.fetchone()
+        cur.close()
+        conn.close()
+
+        name = tornado.escape.xhtml_escape(self.current_user)
+        self.render(os.path.join("templates","sourceedit.html"), 
+                    source=row,
+                    name=name)
+ 
+    @tornado.web.authenticated
+    def post(self, id):
+        if self.current_user != 'admin':
+            self.redirect("/")
+            return
+
+        sql_set = []
+        sql_args = []
+        for field in self.request.arguments:
+            if field[0] == "_":
+                continue
+            sql_set.append("%s=?" % (field))
+            sql_args.append(self.get_argument(field))
+
+        sql_args.append(int(id))
+        sql = "update source set %s where id=?" % ",".join(sql_set)
         
+        conn = sqlite3.connect(options.database)
+        conn.row_factory = sqlite3.Row
+        cur = conn.cursor()
+        cur.execute(sql, sql_args)
+        conn.commit()
+       
+	self.redirect("/source/") 
+  
 
 class SourceHandler(BaseHandler):
     """
@@ -1320,6 +1367,7 @@ def main():
         (r"/", MainHandler),
         (r"/login", LoginHandler),
         (r"/logout", LogoutHandler),
+	(r"/source/edit/(.*)", SourceEditHandler),
         (r"/source/(.*)", SourceHandler),
         (r"/media/list/(.*)/(.*)", MediaListHandler),
         (r"/media/edit/(.*)", MediaEditHandler),
diff --git a/server/hms/templates/sourceedit.html b/server/hms/templates/sourceedit.html
@@ -0,0 +1,37 @@
+{% extends "base.html" %}
+
+{% block title %}Edit Media Source{% end %}
+
+{% block body %}
+<div id="Source">
+<fieldset>
+<legend>Edit Media Source</legend>
+<form action="{{ request.path }}" method="post" id="sourceForm">
+    <div class="form-input">
+    <label for="name">{{ _("Source Name") }}</label>
+    <input type="text" name="name" id="name" size="40" value="{{ source["name"] }}"/>
+    </div>
+    
+    <div class="form-input">
+    <label for="type">{{ _("Type") }}</label>
+    <select name="type" id="type">
+    <option value="local" {% if source["type"] == "local" %}selected{% end %}>Local Directory</option>
+    <option value="remote" {% if source["type"] == "remote" %}selected{% end %}>Remote URL</option>
+    </select>
+    </div>
+    
+    <div class="form-input">
+    <label for="path">{{ _("Path") }}</label>
+    <input type="text" name="path" id="path" size="40" value="{{ source["path"] }}"/>
+    </div>
+    
+    <div class="submit">
+    <input type="submit" value="{{ _("Update") }}"/>
+    </div>
+    {{ xsrf_form_html() }}
+</form>
+</fieldset>
+
+</div>
+
+{% end %}