]> git.ipfire.org Git - people/shoehn/ipfire.org.git/blob - webapp/handlers_talk.py
adjust touch target on mobile Feature page
[people/shoehn/ipfire.org.git] / webapp / handlers_talk.py
1 #!/usr/bin/python
2
3 import tornado.web
4
5 from handlers_base import *
6
7 class TalkIndexHandler(BaseHandler):
8 @tornado.web.authenticated
9 def get(self):
10 call_log = self.talk.get_call_log(self.current_user, limit=6)
11 favourite_contacts = self.talk.get_favourite_contacts(self.current_user)
12
13 if self.current_user.is_admin():
14 ongoing_calls = self.talk.get_ongoing_calls()
15 else:
16 ongoing_calls = self.talk.get_ongoing_calls(self.current_user)
17
18 self.render("talk/index.html", call_log=call_log,
19 favourite_contacts=favourite_contacts, ongoing_calls=ongoing_calls)
20
21
22 class TalkPhonebookHandler(BaseHandler):
23 @tornado.web.authenticated
24 def get(self):
25 phonebook = self.talk.get_phonebook(self.current_user)
26
27 self.render("talk/phonebook.html", phonebook=phonebook)
28
29
30 class TalkPhonebookAccountHandler(BaseHandler):
31 @tornado.web.authenticated
32 def get(self, uid):
33 account = self.accounts.find(uid)
34 if not account:
35 raise tornado.web.HTTPError(404, "Account not found: %s" % uid)
36
37 self.render("talk/phonebook-contact.html", account=account)
38
39
40 class TalkDiagnosisHandler(BaseHandler):
41 @tornado.web.authenticated
42 def get(self):
43 return self.render("talk/diagnosis.html")
44
45
46 class TalkConferencesHandler(BaseHandler):
47 @tornado.web.authenticated
48 def get(self):
49 return self.render("talk/conferences.html",
50 conferences=self.talk.conferences)
51
52
53 class TalkConferencesInviteHandler(BaseHandler):
54 @tornado.web.authenticated
55 def get(self, conference_id, invitee_id):
56 # Check for the conference room
57 conference = self.talk.get_conference(conference_id)
58 if not conference:
59 raise tornado.web.HTTPError(400)
60
61 # Ccheck for the invitee
62 invitee = self.accounts.get_by_sip_id(invitee_id)
63 if not invitee:
64 raise tornado.web.HTTPError(400)
65
66 # Initiate call
67 self.talk.initiate_call(invitee.sip_id, conference_id)
68
69 self.render("talk/conference-invite.html", invitee=invitee,
70 conference=conference)
71
72
73 class TalkInitiateCallHandler(BaseHandler):
74 @tornado.web.authenticated
75 def get(self, called_id, caller=None):
76 if not self.current_user.sip_id:
77 raise tornado.web.HTTPError(400)
78
79 called = self.accounts.get_by_sip_id(called_id)
80
81 self.talk.initiate_call(self.current_user.sip_id, called_id)
82
83 next = self.get_argument("next", None)
84 if next is None:
85 next = self.request.headers.get("Referer")
86
87 self.render("talk/initiate-call.html", caller=self.current_user,
88 called=called, called_id=called_id, next=next)
89
90
91 class TalkProfileHandler(BaseHandler):
92 @tornado.web.authenticated
93 def get(self):
94 return self.redirect("/phonebook/%s" % self.current_user.uid)