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 查看哈希值)