跳转到主要内容

JS客户端消息插件,支持Django contrib.messages应用程序

项目描述

jQuery Django Messages UI

https://travis-ci.org/jgerigmeyer/jquery-django-messages-ui.svg?branch=master https://cdn.gruntjs.com/builtwith.png

JS客户端消息插件,支持Django contrib.messages应用程序

入门指南

django-messages-ui可以用作独立的jQuery插件,用于添加和删除客户端消息,也可以作为Django插件,以支持Django contrib.messages应用程序。它应该在消息列表元素上调用,并接受消息选择器、短暂消息(点击或按键时消失)和关闭链接的选项。消息本身应该使用CSS进行样式设置。

可以通过Handlebars.jsICanHaz.js或任何其他创建预编译可调用模板函数的模板引擎动态添加消息。如果用作Django插件,则有一个Python中间件可以自动将请求中的消息添加到Ajax JSON响应中。

依赖项

作为独立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)

  • 添加AjaxMessagesMiddlewarehandleAjax插件选项。

0.1.1 (2011.06.27)

  • 更新HTML模板(删除<aside>并将#messages移动到<ul>)。

0.1.0 (2011.06.25)

  • 首次发布。

项目详情


下载文件

下载适合您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

django-messages-ui-2.0.2.tar.gz (13.0 kB 查看散列)

上传时间

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面