diff --git a/deluge/ui/webui/webui_plugin/page_decorators.py b/deluge/ui/webui/webui_plugin/page_decorators.py index a9bfabb25..a99aebacd 100644 --- a/deluge/ui/webui/webui_plugin/page_decorators.py +++ b/deluge/ui/webui/webui_plugin/page_decorators.py @@ -3,7 +3,7 @@ decorators for html-pages. """ #relative imports from render import render -from webserver_common import ws, log +from webserver_common import ws, log, proxy from utils import * #/relative @@ -35,7 +35,7 @@ def check_session(func): vars = web.input(redir_after_login = None) ck = cookies() if ck.has_key("session_id") and ck["session_id"] in ws.SESSIONS: - return func(self, name) #ok, continue.. + return func(self, name) #check_session:ok elif vars.redir_after_login: seeother(url("/login",redir=self_url())) else: @@ -43,9 +43,26 @@ def check_session(func): deco.__name__ = func.__name__ return deco +def check_connected(func): + def deco(self, name = None): + connected = False + try: + proxy.ping() + connected = True + except: + pass + if connected: + return func(self, name) #check_connected:ok + else: + seeother("/connect") + + + deco.__name__ = func.__name__ + return deco + def deluge_page(func): - "deluge_page_noauth+check_session" - return check_session(deluge_page_noauth(func)) + "deluge_page_noauth+check_session+check connected" + return check_session(check_connected(deluge_page_noauth(func))) #combi-deco's: #decorators to use in combination with the ones above. diff --git a/deluge/ui/webui/webui_plugin/pages.py b/deluge/ui/webui/webui_plugin/pages.py index 212258054..c13dd652c 100644 --- a/deluge/ui/webui/webui_plugin/pages.py +++ b/deluge/ui/webui/webui_plugin/pages.py @@ -319,12 +319,13 @@ class logout: seeother('/login') class connect: - @deco.deluge_page + @deco.check_session + @deco.deluge_page_noauth def GET(self, name): - #if proxy.connected(): - # error = _("Not Connected to a daemon") - #else: - error = None + if proxy.connected(): + error = _("Not Connected to a daemon") + else: + error = None connect_list = ["http://localhost:58846"] return render.connect(connect_list, error) @@ -338,7 +339,7 @@ class connect: else: uri = vars.uri #TODO: more error-handling - ws.init_06(uri) + proxy.set_core_uri(uri) do_redirect() diff --git a/deluge/ui/webui/webui_plugin/templates/deluge/connect.html b/deluge/ui/webui/webui_plugin/templates/deluge/connect.html new file mode 100644 index 000000000..f13eda6d2 --- /dev/null +++ b/deluge/ui/webui/webui_plugin/templates/deluge/connect.html @@ -0,0 +1,26 @@ +$def with (connect_list, error) + +$:render.header(_("Connect to Daemon")) +
+$if error: +
$error
+ +
+$for i, uri in enumerate(connect_list): +

$uri

+

+ $_("Other"): + +

+ + + + +
+
+ +
+$:render.footer()