Browse Source

add views for mobiles (currently only detects BlackBerries, need more browser strings...)

Natenom/support-murmur-13-1446181288462
Michael Ziegler 15 years ago
parent
commit
4fef7f9e95
  1. 10
      htdocs/templatestyle.css
  2. 14
      pyweb/mumble/urls.py
  3. 46
      pyweb/mumble/views.py
  4. 24
      template/mobile_index.htm
  5. 14
      template/mumble/mobile_list.htm
  6. 9
      template/mumble/mobile_mumble.htm

10
htdocs/templatestyle.css

@ -6,6 +6,16 @@
border: 2px solid grey;
}
#mobilecontent {
background-color: white;
width: 90%;
margin: 25px auto;
border: 2px solid grey;
padding: 0;
padding-top: 10px;
padding-bottom: 10px;
}
#headpanel {
position: relative;
padding: 45px 2em 1em 20px;

14
pyweb/mumble/urls.py

@ -18,10 +18,12 @@ from django.conf.urls.defaults import *
urlpatterns = patterns(
'mumble.views',
( r'djangousers', 'djangousers' ),
( r'(?P<server>\d+)/users', 'users' ),
( r'(?P<server>\d+)/(?P<userid>\d+)/texture.png', 'showTexture' ),
( r'(?P<server>\d+)/texture.png', 'showTexture' ),
( r'(?P<server>\d+)', 'show' ),
( r'$', 'mumbles' ),
( r'djangousers', 'djangousers' ),
( r'(?P<server>\d+)/users', 'users' ),
( r'(?P<server>\d+)/(?P<userid>\d+)/texture.png', 'showTexture' ),
( r'(?P<server>\d+)/texture.png', 'showTexture' ),
( r'mobile/(?P<server>\d+)', 'mobile_show' ),
( r'mobile/?$', 'mobile_mumbles' ),
( r'(?P<server>\d+)', 'show' ),
( r'$', 'mumbles' ),
)

46
pyweb/mumble/views.py

@ -35,7 +35,10 @@ from mmobjects import *
def redir( request ):
""" Redirect to the servers list. """
return HttpResponseRedirect( reverse( mumbles ) );
if request.META['HTTP_USER_AGENT'].startswith( 'BlackBerry' ):
return HttpResponseRedirect( reverse( mobile_mumbles ) );
else:
return HttpResponseRedirect( reverse( mumbles ) );
def mumbles( request ):
""" Display a list of all configured Mumble servers, or redirect if only one configured. """
@ -53,6 +56,22 @@ def mumbles( request ):
context_instance = RequestContext(request)
);
def mobile_mumbles( request ):
""" Display a list of all configured Mumble servers, or redirect if only one configured. """
mumbles = get_list_or_404( Mumble );
if len(mumbles) == 1:
return HttpResponseRedirect( reverse( mobile_show, kwargs={ 'server': mumbles[0].id, } ) );
return render_to_response(
'mumble/mobile_list.htm',
{ 'MumbleObjects': mumbles,
'MumbleActive': True,
'MEDIA_URL': settings.MEDIA_URL,
},
context_instance = RequestContext(request)
);
def show( request, server ):
"""Display the channel list for the given Server ID.
@ -169,6 +188,31 @@ def show( request, server ):
context_instance = RequestContext(request)
);
def mobile_show( request, server ):
""" Display the channel list for the given Server ID. """
srv = get_object_or_404( Mumble, id=server );
user = None;
if request.user.is_authenticated():
try:
user = MumbleUser.objects.get( server=srv, owner=request.user );
except MumbleUser.DoesNotExist:
pass;
return render_to_response(
'mumble/mobile_mumble.htm',
{
'MEDIA_URL': settings.MEDIA_URL,
'DBaseObject': srv,
'MumbleActive': True,
'MumbleAccount':user,
},
context_instance = RequestContext(request)
);
def showTexture( request, server, userid = None ):
""" Pack the given user's texture into an HttpResponse.

24
template/mobile_index.htm

@ -0,0 +1,24 @@
<html>
<head>
<title>Mumble Administration</title>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="{{ MEDIA_URL }}/style.css" />
<link rel="stylesheet" type="text/css" href="{{ MEDIA_URL }}/templatestyle.css" />
<link rel="stylesheet" type="text/css" href="{{ MEDIA_URL }}/mumble/style.css" />
<link rel="shortcut icon" type="image/png" href="{{ MEDIA_URL }}/mumble/mumble.16x16.png" />
{% block HeadTag %}
{% endblock %}
</head>
<body bgcolor="#3B69AD">
<div id="mobilecontent">
{% block LeftColumn %}
{% endblock %}
</div>
<!-- footer -->
<div id="footerpanel">
<a href="http://bitbucket.org/Svedrin/mumble-django" target="_blank">Mumble-Django</a>
</div>
</body>
</html>

14
template/mumble/mobile_list.htm

@ -0,0 +1,14 @@
{% extends "mobile_index.htm" %}
{% load mumble_extras %}
{% block Headline %}
Configured Mumble Servers
{% endblock %}
{% block Content %}
<div class="rahmen">
<ul>
{% for mumble in MumbleObjects %}
<li><a href="{% url mumble.views.show mumble.id %}">{{mumble.name}}</a></li>
{% endfor %}
</ul>
</div>
{% endblock %}

9
template/mumble/mobile_mumble.htm

@ -0,0 +1,9 @@
{% extends "mobile_index.htm" %}
{% load mumble_extras %}
{% load i18n %}
{% block Headline %}
{{ DBaseObject.name }}
{% endblock %}
{% block LeftColumn %}
{{ DBaseObject|chanview:MumbleAccount }}
{% endblock %}
Loading…
Cancel
Save