JS客户端消息插件,支持Django contrib.messages应用程序
项目描述
jQuery Django Messages UI
JS客户端消息插件,支持Django contrib.messages应用程序
入门指南
django-messages-ui可以用作独立的jQuery插件,用于添加和删除客户端消息,也可以作为Django插件,以支持Django contrib.messages应用程序。它应该在消息列表元素上调用,并接受消息选择器、短暂消息(点击或按键时消失)和关闭链接的选项。消息本身应该使用CSS进行样式设置。
可以通过Handlebars.js、ICanHaz.js或任何其他创建预编译可调用模板函数的模板引擎动态添加消息。如果用作Django插件,则有一个Python中间件可以自动将请求中的消息添加到Ajax JSON响应中。
依赖项
(可选)handlebars.runtime.js 1.0.0
(可选)ICanHaz.js
(可选)django-icanhaz 0.2.0+
作为独立jQuery插件的安装
如果作为独立的jQuery插件使用,请下载生产版本或开发版本,以及Handlebars.js预编译模板或ICanHaz.js模板。
链接JS
<script src="dist/django-messages-ui.min.js"></script>
如果需要,还可以包含预编译JS模板
<script src="messages_ui/static/messages_ui/message.js"></script>
要覆盖默认JS模板,请通过选项template传递您自己的预编译模板函数。
如果使用ICanHaz.js,请将ICanHaz.js模板(或如果您不想使用默认模板,则使用您自己的自定义模板)包裹在一个<script id="message" type="text/html">标签中,并将其包含在您的HTML中,或者使用ich.addTemplate('message', YOUR_TEMPLATE_STRING)在JS中导入。然后传递预编译的模板:template: ich.message。
与Django一起安装
如果与Django一起使用,只需pip install django-messages-ui进行安装(或从PyPI下载tarball,解压它,然后运行python setup.py install)。在您的Django项目设置中,将"messages_ui"添加到您的INSTALLED_APPS设置。
链接JS
<script src="{% static 'messages_ui/django-messages-ui.js' %}"></script>
如果需要,还可以包含预编译的JS模板
<script src="{% static 'messages_ui/message.js' %}"></script>
如果使用ICanHaz.js在客户端插入消息,请使用此模板,并传递预编译的模板:template: ich.message
{% include "messages_ui/_messages_ich.html" %}
要覆盖默认JS模板,请通过选项template传递您自己的预编译模板函数。
Ajax
要启用自动处理Ajax请求中的消息,请将"messages_ui.middleware.AjaxMessagesMiddleware"添加到您的MIDDLEWARE_CLASSES设置(在django.contrib.messages.middleware.MessageMiddleware之后直接),并在插件初始化时传递handleAjax: true。
用法
调用插件
$('#messages').messages();
使用各种选项显式配置为它们的默认值来调用插件
$('#messages').messages({ message: '.message', // Selector for individual messages closeLink: '.close', // Selector for link to close message // ...set to ``false`` to disable closeCallback: // Fn called when closeLink is clicked function (el) { el.stop().fadeOut('fast', function () { el.remove(); }); }, transientMessage: '.success', // Selector for transient messages transientDelay: 500, // Transient message callback delay (ms) transientCallback: // Fn called after transientDelay function (el) { el.fadeOut(2000, function () { el.remove(); }); }, handleAjax: false, // Enable automatic AJAX handling template: Handlebars.templates.message, // Callable precompiled template fn. escapeHTML: true // Set ``false`` to display unescaped // ...HTML in message content });
在JS中添加消息
$('#messages').messages('add', {message: "Sample Message", tags: "info"});
在JS中添加包含未转义HTML的消息
$('#messages').messages( 'add', { message: "<a href='/'>Sample Message</a>", tags: "info" }, { escapeHTML: false } );
变更
2.0.2 (2015.03.01)
合并pull request #5 from shinglyu/http204(处理没有content-type头的响应)
合并pull request #4 from support-lazy-messages(将消息体转换为文本)
2.0.1 (2014.03.20)
延迟实例化Handlebars,以防止未使用默认值时的错误。
2.0.0 (2014.03.20)
向后不兼容:接受可调用模板函数而不是命名空间和tplName。
1.1.1 (2014.03.18)
添加bower.json。
1.1.0 (2014.02.14)
添加模板名称选项。
与模板引擎无关,只要模板是预编译并可调用的函数。
1.0.3 (2013.10.29)
添加Handlebars模板的全局命名空间选项。
1.0.2 (2013.10.27)
添加缺失的__init__.py文件。
1.0.1 (2013.10.27)
修复manifest.in以包含包json文件。
1.0.0 (2013.10.27)
作为独立的jQuery插件发布。添加JS单元测试。
向后不兼容:js文件名从jquery.messages-ui.js更改为django-messages-ui.js
0.2.7 (2013.09.25)
在滚动时移除临时消息(也包含mousedown、keydown、mouseover)。
0.2.6 (2013.06.05)
修复AjaxMessagesMiddleware与Python 3和JSON响应的编码问题。
使用1.0.0版本预编译Handlebars模板。
0.2.5 (2013.05.23)
使用1.0.0-rc.4版本预编译Handlebars模板。
使AjaxMessagesMiddleware兼容Py3。
0.2.4 (2013.01.28)
添加在点击closeLink后调用的函数选项。
0.2.3 (2013.01.24)
添加在transientDelay后对临时消息调用的函数选项。
0.2.2 (2013.01.21)
添加response.no_messages选项以禁用中间件。
0.2.1 (2013.01.14)
使用方法插件架构重写;添加消息的更简单的‘add’方法。
添加在消息内容中显示未转义HTML的选项。
0.2.0 (2013.01.11)
添加使用Handlebars.js(新默认)而不是ICanHaz.js的选项。
0.1.8 (2013.01.03)
使close-link选择器特定于消息内部;使用preventDefault。
0.1.7 (2012.11.06)
JS在点击close-link时停止临时消息的淡出。
0.1.6 (2012.10.05)
JS不解析非JSON。
0.1.5 (2012.07.23)
不要触摸非200响应。
0.1.4 (2011.07.14)
JS清理;添加JSLint选项。
0.1.3 (2011.06.28)
添加closeLink: false插件选项。
在同一元素上的后续插件调用默认为先前选项,除非明确覆盖。
0.1.2 (2011.06.27)
添加AjaxMessagesMiddleware和handleAjax插件选项。
0.1.1 (2011.06.27)
更新HTML模板(删除<aside>并将#messages移动到<ul>)。
0.1.0 (2011.06.25)
首次发布。