适用于plone内容类型的通用标签视图。
项目描述
简介
本软件包为plone提供了一个具有多个标签页的通用视图。它基于ftw.table,提供了一个用于在表中列出内容的通用基础标签页。
特性
安装
默认表格实现
将ftw.tabbedview添加到您的buildout(或作为自定义egg的依赖项)
[buildout] parts = instance ... [instance] ... eggs += Plone ftw.tabbedview
在portal_setup中安装默认配置文件。
Ext JS表格实现
将ftw.tabbedview添加到您的buildout(或作为自定义egg的依赖项),使用extjs附加要求
[buildout] parts = instance ... [instance] ... eggs += Plone ftw.tabbedview[extjs]
在portal_setup中安装extjs配置文件。
Quickupload插件实现
quickupload插件将collective.quickupload包集成到标签页视图中。
将ftw.tabbedview添加到您的buildout(或作为自定义egg的依赖项),使用quickupload附加要求
[buildout] parts = instance ... [instance] ... eggs += Plone ftw.tabbedview[quickupload]
在portal_setup中安装quickupload配置文件。
为了在上下文中激活quickupload插件,请确保上下文提供了ITabbedviewUploadable接口。
用法
我们使用包example.conference``_作为示例,展示如何使用ftw.tabbedview。
在任何容器上使用@@tabbed_view。
在内容类型FTI上定义操作(例如:profiles/default/types/example.conference.program.xml)
<?xml version="1.0"?> <object name="example.conference.program" meta_type="Dexterity FTI" i18n:domain="example.conference" xmlns:i18n="http://xml.zope.org/namespaces/i18n"> <property name="default_view">tabbed_view</property> <property name="view_methods"> <element value="tabbed_view"/> </property> <action title="Sessions" action_id="sessions" category="tabbedview-tabs" condition_expr="" url_expr="string:${object_url}?view=sessions" visible="True"> <permission value="View"/> </action> </object>
创建“标签页”视图(例如:browser/tabs.py)
>>> from ftw.tabbedview.browser.listing import CatalogListingView >>> from ftw.table import helper >>> from example.conference import _ >>> >>> class SessionsTab(CatalogListingView): ... """A tabbed-view tab listing sessions on a program. ... """ ... ... types = ['example.conference.session'] ... sort_on = 'sortable_title' ... ... show_selects = False ... ... columns = ( ... {'column': 'Title', ... 'sort_index': 'sortable_title', ... 'column_title': _(u'Title'), ... 'helper': helper.linked}, ... ... {'column': 'Track', ... 'column_title': _(u"Track")}, ... )
使用ZCML注册视图,确保将其命名为tabbedview_view-${action id}(例如:browser/configure.zcml)
<configure xmlns="http://namespaces.zope.org/zope" xmlns:browser="http://namespaces.zope.org/browser"> <browser:page for="example.conference.program.IProgram" name="tabbedview_view-sessions" class=".tabs.SessionsTab" permission="zope2.View" /> </configure>
替代列出源
可以使用替代源列出标签页。表格使用ftw.table生成,标签页是一个ftw.table.interfaces.ITableSourceConfig,它允许ftw.table找到合适的源。通过继承ITableSourceConfig并注册自定义ITableSource多适配器,可以使用如sqlalchemy或结构化Python数据(例如本地角色)等替代数据源。有关更多详细信息,请参阅ftw.table文档。
屏幕截图
使用默认表格实现的示例标签页视图的屏幕截图
使用extjs表格实现相同列出的屏幕截图
缓存
ftw.tabbedview提供了一个名为tabbedview的plone.app.caching etag适配器。此etag可以用于缓存配置中,以便在更改默认标签时刷新缓存。
为了启用此功能,您需要将其添加到您的缓存配置中。根据您在项目中如何设置缓存,您可能需要将etag添加到您的规则集中。您可以在registry.xml中完成此操作。
<?xml version="1.0"?>
<registry>
<record name="plone.app.caching.weakCaching.plone.content.itemView.etags">
<value purge="False">
<element>tabbedview</element>
</value>
</record>
<record name="plone.app.caching.weakCaching.plone.content.folderView.etags">
<value purge="False">
<element>tabbedview</element>
</value>
</record>
</registry>
链接
许可
本软件包遵循GPL版本2发布。请注意,当使用包含extjs扩展功能的软件包时,会安装Ext JS,它有不同的许可政策。详情请见http://www.sencha.com/products/extjs/license/。
版权
本软件包的版权属于4teamwork。
ftw.tabbedview遵循GNU通用公共许可证,版本2。
变更日志
4.2.1 (2020-10-23)
修复了空操作列表导致标签无法渲染的bug。[lgraf]
4.2.0 (2019-11-26)
放弃对Plone 4.2的支持。[jone]
修复CSS(引号)以使与Plone 5的兼容性更好。[jone]
4.1.3 (2019-08-08)
在法语中显示“全部”选择的项数。[njohner]
4.1.2 (2018-10-24)
在选择标签时更好地支持触摸设备。[Kevin Bieri]
4.1.1 (2018-04-27)
修复了存储网格状态后不可排序的列变得可排序的bug。[jone]
4.1.0 (2018-02-16)
修复了在IE中使用清除字段按钮时的过滤器。[Kevin Bieri]
添加了对Plone 5.1的支持。[njohner]
4.0.0 (2018-01-24)
为批处理模板使用类而不是ID,以防止重复的ID。[elioschmutz]
异步加载tabbedview本身。[Rotonen]
3.8.3 (2017-08-02)
修复:避免计算操作菜单按钮三次。[buchi]
3.8.2 (2017-06-27)
修复:在备用视图中不再将viewname作为HTML渲染。[mathias.leimgruber]
3.8.1 (2017-04-24)
重构DefaultGridStateStorageKeyGenerator,以改进在更具体的实现中的可覆盖性。[elioschmutz]
3.8.0 (2017-03-22)
在文件夹操作菜单中向CSS类追加动作对象名称/ID。[Rotonen]
3.7.2 (2017-03-13)
修复了匿名用户的缓存键/默认标签生成。[jone]
3.7.1 (2017-03-13)
修复了在非tabbedview上计算etag值时的错误。[jone]
3.7.0 (2017-03-02)
添加了包含用户默认标签的plone.app.caching etag值适配器。为了从中受益,您需要更新您的缓存配置。请参阅readme以获取说明。[jone]
3.6.2 (2017-03-02)
修复了HTTPS的默认标签。[mbaechtold]
3.6.1 (2017-03-01)
修复了HTTPS的默认标签。[jone]
3.6.0 (2016-12-06)
更改批处理标记的标记,以便更容易地对其进行样式化。[mbaechtold]
模板API破坏性更改 - 将槽“content-title”重命名为“tabbedview-content-title” [Rotonen]
轻微的Chameleon兼容性修复。[Rotonen]
3.5.4 (2016-10-18)
修复了tabbedview历史记录。[Kevin Bieri]
3.5.3 (2016-09-27)
修复了tabebdview宏中的NameError。[jone]
3.5.2 (2016-09-26)
Chameleon支持:使宏访问延迟。[jone]
当tabbedview页面重新加载时,检查搜索框值。[phgross]
3.5.1 (2016-08-23)
将tabbedview的允许属性提取到一个接口中。[phgross]
将uploadbox移至tabbedview菜单上方 [Kevin Bieri]
在parse_param中更改正则表达式。仅匹配十进制字符,因为parseFloat在遇到整数时可能会返回错误结果。[tschanzt]
3.5.0 (2016-03-07)
放弃对Plone 4.1.x的支持。[deiferni]
在标签查找期间尊重标签上定义的权限。用遍历来替换适配器查找,以确保尊重标签上定义的权限。[deiferni]
处理客户端从与tabbed-view不同的来源收到响应的情况。默认情况下显示一条消息,表明无法成功加载标签。这可以通过注册不同的事件处理程序来自定义。[deiferni]
3.4.3 (2016-02-15)
防止请求不存在的标签时发生重新加载循环。[jone]
3.4.2 (2015-09-01)
在tabbedview初始化时添加备用,当传入的一个BeforeClick事件索引不正确时。[phgross]
修复了IE10中未定义默认索引时的javascript错误。[Kevin Bieri]
3.4.1 (2015-08-03)
移除内容标题周围的空间。[deiferni]
3.4.0 (2015-05-26)
将tabbedview特定样式从plonetheme.onegov移动到此软件包。[lknoepfel]
修复了初始标签标记(default-tab)[phgross]
3.3.13 (2014-08-28)
添加了before-tab槽。[mathias.leimgruber]
3.3.12 (2014-08-07)
JS:使用基本URL为set_default_tab构建绝对URL。[lgraf]
3.3.11 (2014-05-28)
为IE > 9启用tabbedview的拖放上传。[mathias.leimgruber]
3.3.10 (2014-05-26)
使TabbedView标题可通过自定义tabbedview模板进行自定义。[phgross]
替换了旧的旋转器图像。[Julian Infanger]
使用bind()代替on()以恢复jQuery < 1.7的兼容性。[lgraf]
3.3.9 (2014-03-28)
修复了默认标签设置有时不工作的问题。[jone]
修复了未关闭的脚本标签。[lknoepfel]
仅在tabbed.pt上加载与extjs相关的JS资源,因此在不使用标签页的视图中节省了700KB的JS。[mathias.leimgruber]
3.3.8 (2013-11-28)
替换了tabbedview菜单标题中的unicode字符。使用图标代替,因为unicode字符在IE上不起作用。[Julian Infanger]
3.3.7 (2013-08-26)
将listing.py中的table_options初始化从__call__移动到__init__。否则,不先调用视图,更新方法将不起作用。[mathias.leimgruber]
修复了过时的quickupload接口导入。[jone]
3.3.6 (2013-07-18)
过滤字段:添加占位符。[jone]
修复了tabbedview按钮中的标记并添加了一个类来识别按钮。[Julian Infanger]
如果搜索框被禁用,则使用disabledSearchBox类标记tabbedview标题。[Julian Infanger]
3.3.5 (2013-04-17)
使用removeAttr (jQuery 1.7.x)。[mathias.leimgruber]
修复了重置表配置操作。[mathias.leimgruber]
使用Batch.fromPagenumber。[mathias.leimgruber]
3.3.4 (2013-01-25)
添加INoExtJS标记接口,在tabbview和标签提供extjs时禁用extjs。[mathias.leimgruber]
3.3.3 (2013-01-21)
添加默认动态批处理表单到批处理模板。[jone]
修复了ExtJS配置中的javascript顺序。[jone]
通过强制重绘修复IE7元素定位问题。[jone]
不要隐藏右侧的portlet列。[Julian Infanger]
修复了由“匿名访问”更改引入的失败测试。还特别测试了匿名extjs配置。[jone]
3.3.2 (2012-10-26)
基本支持匿名使用标签页视图。对于匿名用户,ExtJS不受支持且自动禁用。[jone]
调整javascript:使用$而不是过时的jq。[phgross]
如果文本被拖放到网站上,则添加不显示uploadbox的条件。[Julian Infanger, jone]
默认情况下,在匿名访问标签页视图时使用第一个标签页。[jone]
3.3.1 (2012-10-16)
清理readme。[mathias.leimgruber]
3.3 (2012-10-16)
仅在tabbedview上加载上传功能。[mathias.leimgruber]
tabbedview:重新排序时不刷新所有参数,而只刷新相关参数。这允许在排序时保留附加参数(例如过滤器)。[jone]
在更改标签之前重置view_name参数。[mathias.leimgruber]
将min_height添加到tabbedview-body。在加载新标签时使tabbedview-body变灰。[Julian Infanger]
修复默认标签键存储,使其包括用户ID。[jone]
调整法语翻译。[philippegross]
添加英语翻译。[jone]
添加设置标签页视图默认标签的功能。[jone]
将dictstorage更改为适应IBrowserView而不是IListingView。[jone]
为重置extjs表格状态等操作添加每个标签的菜单。[jone]
在过滤器框中移动光标时不要重新加载。[jone]
在加载标签时保持高度。这减少了内容高度闪烁。[jone]
Quickupload:限制并发上传数为1(顺序),以避免数据库冲突。[lgraf]
在js-action中防止默认的ViewChooser-links。[Julian Infanger]
修复了与plone4.2rc2及更高版本兼容的批处理表达式。[jone]
修复了ITabbedView.quickupload_addable_types模式定义:List字段始终需要一个value_type。[lukasg]
3.2.6 (2012-05-24)
使quickupload在代理后面工作(隐藏字段的值中的url不会被重写)。[mathias.leimgruber]
3.2.5 (2012-05-24)
修复了IE8的upload js。[mathias.leimgruber]
3.2.4 (2012-05-22)
错误修复:当排序错误时修复网格状态中的排序。[jone]
3.2.3 (2012-05-09)
在批处理中像plone一样使用相同的标记。[Julian Infanger]
为zcml:conditions添加meta:provides ftw.tabbedview3。[jone]
在ListingView响应中设置‘X-Theme-Disabled’标题,对于HTML片段。[lgraf]
添加了列出请求中的‘ajax_load’参数。[lgraf]
为从ListingView的JSON响应设置正确的Content-Type标题。[lgraf]
3.2.2 (2012-04-23)
为 batching.pt 中的方括号添加CSS类,指示当前页面。[mathias.leimgruber]
3.2.1 (2012-04-05)
在tabbedview.js中将一些$替换为jq。[mathias.leimgruber]
3.2 (2012-04-02)
错误修复:修复了检查quickupload是否可用的错误。[mathias.leimgruber]
添加了Quickupload插件,它提供了拖放多文件上传功能。[phgross]
3.1.5 (2012-03-28)
使用extjs GS配置启用portal_registry中的extjs。[jone]
3.1.4 (2012-03-19)
移除了集成工具提示。如果您仍然需要工具提示,请使用 ftw.tooltip [mathias.leimgruber]
3.1.3 (2012-03-12)
禁用 tabbedview_search 而不是隐藏。 [Julian Infanger]
添加新旋转器,更新旋转器位置并添加辅助函数。 [jone]
3.1.2 (2012-03-05)
在新标签页加载内容后切换标签页,加载时添加“loading_tab”类。 [jone]
过滤列表:不要刷新所有参数,只刷新页码。 [jone]
隐藏“筛选”框的标签,但出于可访问性的原因保持它。 [jone]
使搜索功能更健壮,以便可以在输入搜索词时从非列表视图切换到列表视图。 [jone]
修复列表菜单生成器中的错误。 [jone]
添加默认的“重置表格配置”folder_contents操作(仅在标签页视图中可见)。 [jone]
3.1.1 (2012-02-28)
调整 MANIFEST.in:为 rst 文件(reamde.rst)添加 include。 [phgross]
3.1 (2012-02-27)
添加了一些法语翻译 [ttschanz]
修复子菜单点击事件绑定。不要使用 live(click)。 [mathias.leimgruber]
实现 show_menu 条件。 [mathias.leimgruber]
将表单验证器添加到列表表单中。 [jone]
修复了在尝试访问排序信息时持久化 ext-js 网格状态中的错误。在某些情况下,排序信息可能不存在。 [jone]
删除旧的 i18n 目录。 #3 [jone]
使 JS 实现(默认和 extjs)在同一个分支上工作
在标签页视图中更好地使用 ftwtable jquery 插件。
注册默认的 tabbedview dictstorage,存储在 plone 站点上。
修复 extjs 实现的标记。 [phgross]
实现默认实现的选择和菜单支持。
尊重注册中的 extjs-config 以决定是否加载 extjs JS。 [mathias.leimgruber]
删除来自自定义项目的非 ftw.tabbedview 翻译。 [mathias.leimgruber]
各种清理和小的错误修复。
[jone]
3.0 (2011-11-17)
将隐藏的输入元素 移动到 tabbedview_form 中,以确保它始终被提交。 [lgraf]
实现了动态批处理框,用于批量列表视图,允许动态更改批处理大小(每个站点上的命中数)。 [phgross]
在过滤时自动重置批处理(使用文本过滤器)。 [phgross]
使设置空字典作为网格状态配置成为可能 [phgross]
添加从 tabbeview-menu 操作调用javascript函数的可能性。默认情况下,每个 tabbedview_menu 链接仅提交表单。用于 reset_tableconfiguration 操作。 [phgross]
3.0b9 (2011-10-04)
添加了更多链接(显示所有链接)支持,用于具有框的概述列表。现在,每个“显示所有”链接都会自动加载相应的标签页。 [phgross]
3.0b8 (2011-107-12)
修复了 select_all 方法(现在也可以通过直接调用工作) [phgross]
删除了半实现的变量 batching_enabled fixed select_all 函数 [phgross]
3.0b7
删除了不属于这里的某些翻译 [ttschanz]
3.0b6
略微改变了 HTML 结构,使其更容易进行样式化 [fsprenger]
3.0b5
修复了翻译文件 [jbaumann]
3.0b4
在“全选”链接中显示匹配数量。 [jbaumann]
3.0b3
启用分组时启用批处理。这解决了在大型表格上的性能问题。 [jbaumann]
修复了分组状态破坏表格的错误。 [jbaumann]
3.0b2
从网格存储中读取 sort_on 属性 [jbaumann]
3.0b1
实现了与 ftw.dictstorage 的网格状态存储功能 [jbaumann]
实现了服务器端列表表的分组 [jbaumann]
添加了操作权限检查 [mathias.leimgruber]
2.1
从 master 分支标记而不是 plone4 兼容分支。您应该真正使用这个 [mathias.leimgruber]
1.0c2
将最小页码更改为 1。小页码对于轻松测试是必要的。 [jbaumann]
修复了全选:现在它将选择标签页中的所有项目,而不仅仅是可见的。还修复了排序和重复。 [jbaumann]
现在使用 jQueryUI 是可选的。使用“jqueryui”extras_require 启用 UI。 [jbaumann]
重新构建标签视图,以确保仅在标签视图显示时执行标签视图的js操作
在setup.py中正确添加维护者[jbaumann]
1.0c1
删除toLoverCase,因为它实际上并不需要且容易出错[vbaumann]
1.0a5
timesheet-tabbedview:添加了一些翻译[phgross]
1.0a4
翻译[fsprenger]
添加翻译[phgross]
1.0a3
筛选框功能(带有手风琴视图)[phgross]
自动筛选框功能(带有手风琴视图)[phgross]
自动计数功能[phgross]
纠正了全选操作[phgross]
为SolrListingView添加了排序功能[phgross]
添加了标签标题的翻译[jbaumann]
项目详情
ftw.tabbedview-4.2.1.tar.gz的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 3a51e1e75711f712bdb7e5dc4dd8c54e9a273160fa681842f1ae58353cee7f2f |
|
MD5 | df7898e71bff4c9af5e4f9c6efba882f |
|
BLAKE2b-256 | 26eb96659d8c67c0ab8b9be64aa15b194a4c19139a19e777ebc740fb9e878ee6 |