]> git.ipfire.org Git - people/shoehn/ipfire.org.git/blame - webapp/handlers_talk.py
fireinfo: Fix regex for AMD APUs
[people/shoehn/ipfire.org.git] / webapp / handlers_talk.py
CommitLineData
66862195
MT
1#!/usr/bin/python
2
3import tornado.web
4
5from handlers_base import *
6
7class 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
22class 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
30class 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 # Get the call log, currently registered lines and ongoing calls
38 if self.current_user == account or self.current_user.is_admin():
39 call_log = self.talk.get_call_log(account)
40 lines = self.talk.get_lines(account)
41 ongoing_calls = self.talk.get_ongoing_calls(account)
42 else:
43 call_log = None
44 lines = None
45 ongoing_calls = None
46
47 self.render("talk/phonebook-contact.html", account=account,
48 ongoing_calls=ongoing_calls, call_log=call_log, lines=lines)
49
50
51class TalkTrunksHandler(BaseHandler):
52 @tornado.web.authenticated
53 def get(self):
54 if not self.current_user.is_admin():
55 raise tornado.web.HTTPError(403)
56
57 trunks = self.talk.get_trunks()
58
59 self.render("talk/trunks.html", trunks=trunks)
60
61
62class TalkDiagnosisHandler(BaseHandler):
63 @tornado.web.authenticated
64 def get(self):
65 return self.render("talk/diagnosis.html")
66
67
68class TalkConferencesHandler(BaseHandler):
69 @tornado.web.authenticated
70 def get(self):
71 return self.render("talk/conferences.html",
72 conferences=self.talk.conferences)
73
74
75class TalkConferencesInviteHandler(BaseHandler):
76 @tornado.web.authenticated
77 def get(self, conference_id, invitee_id):
78 # Check for the conference room
79 conference = self.talk.get_conference(conference_id)
80 if not conference:
81 raise tornado.web.HTTPError(400)
82
83 # Ccheck for the invitee
84 invitee = self.accounts.get_by_sip_id(invitee_id)
85 if not invitee:
86 raise tornado.web.HTTPError(400)
87
88 # Initiate call
89 self.talk.initiate_call(invitee.sip_id, conference_id)
90
91 self.render("talk/conference-invite.html", invitee=invitee,
92 conference=conference)
93
94
95class TalkInitiateCallHandler(BaseHandler):
96 @tornado.web.authenticated
97 def get(self, called_id, caller=None):
98 if not self.current_user.sip_id:
99 raise tornado.web.HTTPError(400)
100
101 called = self.accounts.get_by_sip_id(called_id)
102
103 self.talk.initiate_call(self.current_user.sip_id, called_id)
104
105 next = self.get_argument("next", None)
106 if next is None:
107 next = self.request.headers.get("Referer")
108
109 self.render("talk/initiate-call.html", caller=self.current_user,
110 called=called, called_id=called_id, next=next)
111
112
113class TalkProfileHandler(BaseHandler):
114 @tornado.web.authenticated
115 def get(self):
116 return self.redirect("/phonebook/%s" % self.current_user.uid)