default.py
@auth.requires_login()
def load_home():
loader = """$('#right-side').html("<i style='font-size:24px;' class='fa
fa-spinner fa-spin'></i>")"""
websocket_send('http://127.0.0.1:8888', loader, 'mykey', 'home%s' %
auth.user.id)
remove_class1 = "$('#bk').removeClass('active')" #books
remove_class2 = "$('#ls').removeClass('active')" #lecture slides
remove_class3 = "$('#pq').removeClass('active')" #past questions
remove_class4 = "$('#cs').removeClass('active')" #courses
remove_class5 = "$('#bl').removeClass('active')" #blogs
remove_class6 = "$('#nt').removeClass('active')" #notes
remove_class7 = "$('#fr').removeClass('active')" #friends
add_class = "$('#hm').addClass('active')" #home
websocket_send('http://127.0.0.1:8888', remove_class1, 'mykey',
'home%s' % auth.user.id)
websocket_send('http://127.0.0.1:8888', remove_class2, 'mykey',
'home%s' % auth.user.id)
websocket_send('http://127.0.0.1:8888', remove_class3, 'mykey',
'home%s' % auth.user.id)
websocket_send('http://127.0.0.1:8888', remove_class4, 'mykey',
'home%s' % auth.user.id)
websocket_send('http://127.0.0.1:8888', remove_class5, 'mykey',
'home%s' % auth.user.id)
websocket_send('http://127.0.0.1:8888', remove_class6, 'mykey',
'home%s' % auth.user.id)
websocket_send('http://127.0.0.1:8888', remove_class7, 'mykey',
'home%s' % auth.user.id)
websocket_send('http://127.0.0.1:8888', add_class, 'mykey', 'home%s' %
auth.user.id)
message = """<section class='content'><br/><div class='row'><div
class='col-md-4'><div class='grid box-profile bg-red'><div
class='grid-body'><img src='%s' class='img-circle' alt='User
Profile'><h3>%s</h3><span>Lorem ipsum dolor sit amet consectetur
adipisicing elit sed do eiusmod</span></div><div class='footer clearfix
bg-red'><div class='col-xs-4'><div class='grid-body full'><h3><i class='fa
fa-facebook-square'></i> 823k</h3></div></div><div class='col-xs-4'><div
class='grid-body full'><h3><i class='fa fa-twitter'></i>
402k</h3></div></div><div class='col-xs-4'><div class='grid-body
full'><h3><i class='fa fa-linkedin-square'></i>
97k</h3></div></div></div></div></div> <div class='col-md-8
pull-right'><div class='grid'><div class='grid-header'><img
style='height:30px;' src='%s' class='img-polaroid pull-left' alt='User
Profile'><span class='grid-title'>Status</span></div><div class='grid-body'
id='sf'></div></div></div></div></section>""" % (URL('download',
args=[auth.user.profile_picture]) if auth.user.profile_picture else
"../static/nb/html/assets/img/logo.png", auth.user.full_name,
URL('download', args=[auth.user.profile_picture]) if
auth.user.profile_picture else "../static/nb/html/assets/img/logo.png")
message = message.strip().replace("'", '"')
message = message.strip().replace("\n", "")
message = message.strip().replace("\r", "")
message = message.strip().replace("\t", "")
message =
"$('#right-side').html($('%s').fadeIn('slow').slideDown('slow'))" % message
websocket_send('http://127.0.0.1:8888', message, 'mykey', 'home%s' %
auth.user.id)
form = LOAD(c='default', f='statusform', ajax=True, content=XML('<i
style="font-size:24px;" class="fa fa-cog fa-spin"></i>'))
form = "$('#sf').html($('%s').fadeIn('slow').slideDown('slow'))" % form
websocket_send('http://127.0.0.1:8888', form, 'mykey', 'home%s' %
auth.user.id)
def statusform():
status = crud.create(db.statuses)
msg = status.element('textarea', _name="status")
msg['_class'] = "form-control"
msg['_style'] = "height: 40px; width:45vw; margin-bottom:5px;"
user_id = status.element('input', _name='user_id')
user_id['_type'] = 'hidden'
user_id['_value'] = auth.user.id
submit = status.element('input', _type="submit")
submit['_class'] = "btn btn-primary pull-right"
submit['_value'] = "Post"
if status.process().accepted:
userPic=db(db.auth_user.id==request.post_vars.user_id).select().first().profile_picture
now = prettydate(datetime.datetime.now())
message1 = """<div class="col-md-8 pull-right"
style="width:51.9vw;"><div class="grid"><div class="grid-header"><img
style="height:30px; width: 30px;" src="%s" class="img-polaroid pull-left"
alt="User Profile"><span class="grid-title">%s</span><div class="pull-right
grid-tools"><a data-widget="collapse"
title="Collapse">%s</a></div></div><div
class="grid-body">%s</div></div></div>""" % (URL('download',
args=[userPic]) if userPic else "../static/nb/html/assets/img/logo.png",
db(db.auth_user.id ==
request.post_vars.user_id).select().first().full_name, now,
request.post_vars.status)
message1 = message1.strip().replace("\n", "<br/>")
message1 = message1.strip().replace("\r", "")
script1 =
"""$('#statuses1').prepend($('%s').fadeIn('slow').slideDown('slow'))""" %
message1
script2 = "$('#statuses1').show('slow')"
message2 = """<div class="col-md-8 pull-right"
style="width:95vw;"><div class="grid"><div class="grid-header"><img
style="height:30px; width: 30px;" src="%s" class="img-polaroid pull-left"
alt="User Profile"><span class="grid-title">%s</span><div class="pull-right
grid-tools"><a data-widget="collapse"
title="Collapse">%s</a></div></div><div
class="grid-body">%s</div></div></div>""" % (URL('download',
args=[userPic]) if userPic else "../static/nb/html/assets/img/logo.png",
db(db.auth_user.id ==
request.post_vars.user_id).select().first().full_name, now,
request.post_vars.status)
message2 = message2.strip().replace("\n", "<br/>")
message2 = message2.strip().replace("\r", "")
script3 =
"""$('#statuses2').prepend($('%s').fadeIn('slow').slideDown('slow'))""" %
message2
script4 = "$('#statuses2').show('slow')"
websocket_send('http://127.0.0.1:8888', script1, 'mykey', 'mygroup')
websocket_send('http://127.0.0.1:8888', script2, 'mykey', 'mygroup')
websocket_send('http://127.0.0.1:8888', script3, 'mykey', 'mygroup')
websocket_send('http://127.0.0.1:8888', script4, 'mykey', 'mygroup')
return status
home.html
<ul class="sidebar-menu">
<li class="active" id="hm" onclick="ajax('load_home', [], 'mmmm');">
<a href="#">
<i class="fa fa-home"></i><span>Home</span>
</a>
</li>
...
</ul>
...
<aside class="right-side" id="right-side">
</aside>
I'm using ajax to call the function *load_home* and load_home is supposed
to return a form using LOAD with ajax=True. The normal home function in the
controller returns form using LOAD with ajax=True and that works just fine.
But now I'm also using websocket_messaging.py to load parts of the page for
navigation without whole page reloads, chats, etc. I'm trying to use the
same mechanism to reload the home page when the "Home" link is clicked.
The problem here is that when I use ajax=False in the load_home function
form = LOAD(c='default', f='statusform', ajax=False, content=XML('<i
style="font-size:24px;" class="fa fa-cog fa-spin"></i>'))
The form appears just fine (but even that when someone submits the form, it
doesn't save the details in the db), but when ajax=True
form = LOAD(c='default', f='statusform', ajax=True, content=XML('<i
style="font-size:24px;" class="fa fa-cog fa-spin"></i>'))
The cog icon keeps spinning.
How can I accomplish what I'm aiming at...
--
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
---
You received this message because you are subscribed to the Google Groups
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.