TurboGears 扩展,提供增强的闪存消息显示功能。
项目描述
此软件包提供 turbogears.flash() 函数的增强版本,为用户提供更美观的消息框,这些消息框可以根据消息的状态改变外观。启用JavaScript后,消息可以在超时后淡出或由用户通过鼠标点击来关闭。
这是通过在目标页面的模板中将消息进行JSON编码和解码来实现的。这是完全自动处理的,程序员只需使用功能接口即可,例如 fancyflash.error("Duh!")。
此外,您还可以通过简单的JavaScript函数调用来显示消息,例如在处理 loadJSONDoc 的回调函数中处理AJAX调用的结果时。
更多信息请参阅 fancyflash 软件包的源代码,epydoc生成的 API 文档 和 FancyFlashExample 应用程序。
安装
要从Cheeseshop安装 TurboFancyFlash,请使用 easy_install。
[sudo] easy_install TurboFancyFlash
这需要安装setuptools包。如果您还没有安装,请下载ez_setup.py脚本并运行它以安装setuptools。
用法
控制器(controllers.py)
# Import TurboGears
from turbogears import controllers, expose, redirect, validate, validators
# Import fancyflash package
import fancyflash as ff
# Set the default timeout for message box display
ff.set_default_flash_timeout(5)
# Let FancyFlashWidget be included on every page
ff.register_flash_widget()
class FlashTestController(controllers.Controller):
@expose('templates.welcome')
def index(self, timeout=0):
return {}
@expose()
def info(self):
ff.info("Hello TurboGears!")
redirect('/')
@expose()
@validate(validators=dict(timeout=validators.Int))
def success(self, timeout=0, tg_errors=None):
ff.success("Hello TurboGears!", timeout)
redirect('/')
@expose()
@validate(validators=dict(status=validators.String))
def message(self, status="info", tg_errors=None):
ff.statusmessage("Hello TurboGears!", status)
redirect('/')
主模板(master.kid)
<div id="main_content">
<div py:replace="tg_fancyflashwidget(tg_flash)">Status message
appears here</div>
<div py:replace="[item.text]+item[:]"/>
...
</div>
致谢
此小部件的想法基于Lee McFadden的博客文章
待办事项
在IE中测试
在Safari中测试不透明度
如果有时间的话
添加对话框位置的参数(通过动态编写CSS实现)。
非Gecko浏览器的圆角框
添加AJAX小部件,以显示loadJSONDoc的结果作为时尚的状态消息。
项目详情
下载文件
下载您平台上的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源代码分发
TurboFancyFlash-0.1a.zip (164.2 KB 查看哈希值)
TurboFancyFlash-0.1a.tar.bz2 (107.9 KB 查看哈希值)
构建分发
TurboFancyFlash-0.1a-py2.5.egg (94.0 KB 查看哈希值)