JS 客户端消息插件,支持 Djangocontrib.messages 应用
项目描述
jQuery Django 消息用户界面
JS 客户端消息插件,支持 Django contrib.messages 应用程序
入门
django-messages-ui 可以用作独立的 jQuery 插件来添加和删除客户端消息,或者用作 Django 附加组件以额外支持 Django contrib.messages 应用程序。它应该在消息列表元素上调用,并接受消息选择器、瞬态消息(在单击或按键时消失)和关闭链接的选项。消息本身应使用 CSS 进行样式设置。
消息可以通过Handlebars.js、ICanHaz.js或任何其他创建预编译可调用模板 fns 的模板引擎动态添加。如果用作 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 请求的消息的自动处理,请将 “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)
合并来自 shinglyu/http204 的拉取请求 #5(处理没有内容类型标头的响应)
合并来自 support-lazy-messages 的拉取请求 #4(将消息正文强制转换为文本)
2.0.1 (2014.03.20)
如果不使用默认值,则延迟实例化 Handlebars 以防止错误。
2.0.0 (2014.03.20)
BACKWARDS INCOMPATIBLE:接受可调用模板 fn 而不是命名空间和 tplName。
1.1.1 (2014.03.18)
添加 bower.json。
1.1.0 (2014.02.14)
添加模板名称选项。
使模板引擎不可知,只要模板是预编译的并且可以调用 fn。
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)
修复 Python 3 和 JSON 响应的 AjaxMessagesMiddleware 编码问题。
使用 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)
使用方法插件架构重写;更简单的“添加”方法来添加味精。
添加选项以在消息内容中显示未转义的 HTML。
0.2.0 (2013.01.11)
添加选项以使用 Handlebars.js(新默认)而不是 ICanHaz.js。
0.1.8 (2013.01.03)
使关闭链接选择器特定于消息中;使用防止默认值。
0.1.7 (2012.11.06)
JS 在关闭链接单击时停止瞬态消息淡入淡出。
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)
初始发行。