一个Archetypes小部件,用于控制编辑页面上其他字段的词汇或显示
项目描述
概述
这是一个原型小部件,用于控制编辑页面上的词汇或其他字段的显示。它需要提供有关要控制哪些字段及其控制方式的信息。
要安装它,只需将其提取到您的产品目录中,重启zope,然后使用快速安装程序进行安装。
用法
要使用它,只需创建一个字段如下:
StringField( name='master_field', default='', vocabulary=DisplayList( (('week', 'Week'), ('wedding','Wedding'), ('winona','Winona'), ('winter', 'Winter'), ('weather','Weather'), ('cow', 'Cow'), ), ), widget=MasterSelectWidget( label='Test Widget', description='Test this', slave_fields=( {'name': 'slave_field_name', 'action': 'vocabulary', 'vocab_method': 'mySlaveVocabularyMethod', 'control_param': 'my_method_parameter', }, ), ), ),
您可以使用与正常选择小部件兼容的任何字段类型。您还可以使用正常的SelectWidget参数(除‘format’外,必须设置为‘select’)。它将像正常的选择小部件一样显示和操作,但此小部件中的更改将影响由slave_fields参数描述的小部件。
参数
所有的魔法都在slave_fields参数中发生,它应该是一个映射序列。每个映射是该主字段控制的字段的描述
- name
当选择改变时,要控制的字段的名称。受控字段/小部件可以是任何类型,除非使用‘vocabulary’或‘value’动作。当操作为‘vocabulary’时,字段必须使用多选小部件、选择小部件或主选择小部件中的任何一个,并且这些小部件必须将‘format’参数设置为‘select’(这是主选择小部件的唯一默认设置)。对于‘value’,小部件必须足够简单,可以使用element.value或elem.selectedIndex更改当前值(StringWidget、SelectionWidget、AutoCompleteWidget等)。
- action
在从字段上执行的操作类型。这可以是“vocabulary”,它通过XMLHttpRequest调用更改从字段的词汇;‘hide’或‘show’设置从字段的可见性样式属性;‘enable’或‘disable’将目标小部件标记为启用或禁用;或者‘value’在更改选择时通过XMLHttpRequest调用更改另一个简单小部件(StringWidget)的值。要使用‘vocabulary’动作,从字段必须满足上述小部件要求。要使用‘enable’/’disable’动作,字段必须使用可以启用/禁用的HTML小部件。
- vocab_method
用于检索从字段动态词汇的方法的名称,或当使用‘value’时用于从字段的值。对于‘vocabulary’,这必须返回一个DisplayList。对于‘value’,它必须返回一个字符串或msg_id。该方法必须接受一个参数,该参数将用于传递在主小部件中选择的新的值。此参数的名称默认为‘master_value’,但可以使用任何名称,只要它使用control_param元素指定。仅在‘action’:‘vocabulary’或‘action’:‘value’时使用。当与archetypes.schemaextender一起使用时,可以在架构扩展类上定义词汇方法。
- toggle_method
当满足切换从字段激活或可见性的条件时,将调用的方法的名称返回True。该方法必须接受一个参数,该参数将用于传递在主小部件中选择的新的值。此参数的名称默认为‘master_value’,但可以使用任何名称,只要它使用control_param元素指定。仅在‘action’:‘hide’、‘action’:‘show’、‘action’:‘enable’、‘action’:‘disable’时使用。当与archetypes.schemaextender一起使用时,可以在架构扩展类上定义切换方法。
- control_param
如上所述,这是在调用vocab_method时使用的参数的名称。仅在‘action’:‘vocabulary’或‘action’:‘value’时使用。
- hide_values
当在主小部件中选择时导致从字段/小部件被隐藏、显示或禁用的值的序列。使用的方法由‘action’元素确定。仅在‘action’:‘hide’、‘action’:‘enable’、‘action’:‘disable’或‘action’:‘show’时使用。
单个MasterSelectWidget可以控制任意数量的从字段,通过向slave_fields列表/元组中添加新的映射来控制新字段。目标是MasterSelectWidget动作的字段本身也可以使用MasterSelectWidget来控制其他字段。
本包还提供了一个MasterMultiSelectWidget,它为多选小部件提供了相同的功能。
MasterSelectDemo类型包含多个主从小部件,配置不同。
要启用演示类型,请转到portal_setup,点击“导入”选项卡,选择“MasterSelectWidget 演示”配置文件,然后点击底部的“导入所有步骤”按钮。
享受吧!
致谢
- 作者
Alec Mitchell: apm13@columbia.edu
- 贡献者
Dorneles Tremea: deo@plonesolutions.com
变更日志
0.4.9 (2017-02-03)
修复了 @@masterselect-jsonvalue-vocabulary 无法输出标签的问题。[mitakas]
0.4.8 (2015-08-06)
修复了 'hide_values' 参数转换。[sdelcourt]
0.4.7 (2015-08-06)
添加了机器人测试。[sdelcourt]
修复了启用/禁用功能。[sdelcourt]
添加了MasterMultiSelectWidget。[sdelcourt]
0.4.6 (2014-06-10)
使用“快速”jQuery过渡来显示/隐藏从属字段。
初始化时不要检查未定义的复选框(jQuery > 1.6 需要)(修复了 https://github.com/plone/Products.MasterSelectWidget/issues/1)[fRiSi]
0.4.5 (2011-10-10)
尝试使用嵌入的json(Python 2.6+)[thomasdesvenain]
避免启动时的警告。[thomasdesvenain]
修复了ajax词汇值翻译。[thomasdesvenain]
词汇ajax方法可以在archetypes.schemaextender扩展类中定义。[thomasdesvenain]
0.4.4 - 2010-04-16
修复了由于jQuery更改而在Plone 4.0中出现的master布尔小部件问题。(修复了 http://plone.org/products/masterselectwidget/issues/1)[alecm]
修复了演示内容(由于registerType和FTI中的产品名称不同,自0.4.3以来无法添加)[fRiSi]
0.4.3 - 2010-03-15
在从属字段中正确返回选定的值。[danipessanha]
与最新的archetypes版本兼容(registerType的package参数不再是可选的,请参阅 http://dev.plone.org/archetypes/changeset/11184#file4)[fRiSi]
0.4.2 - 2009-04-01
修复了 .browser.MasterSelectJSONValue.getVocabulary中返回的值丢失问题。[alecm]
0.4.1 - 2009-03-24
重新发布,坏蛋上传。[elro]
0.4 - 2009-03-24
允许更容易地对视图进行子类化。[elro]
0.3 - 2009-03-19
转换为egg。[mj]
将配置(皮肤、演示类型)移动到GenericSetup配置文件。[mj]
在演示中添加了MasterBooleanWidget。[mj]
重构javascript以使用jQuery和视图来显示AJAX结果。[mj]
添加了对更新kupu从属字段的基本支持。[ender]
添加了MasterBooleanWidget。[gawel]
用浏览器视图替换了旧的dtml。[gawel]
更新了文档,进行了一些一般性的小清理,并添加了新“显示”/“启用”动作的示例。[deo]
添加了新的“启用”动作,当在主字段中选择特定值时,它只会激活从属字段。[deo]
添加了新的“显示”动作,当在主字段中选择特定值时,它只会显示从属字段。[deo]
确保在使用动态词汇时保留最初选定的值。[deo]
0.2.2 - 2005-11-09
修复了一些IE错误,并使用display="none"隐藏,从而将元素从页面中删除。感谢Yuta Kashino指出这些问题。[alecm]
添加了新的动作,用于使用简单小部件更改StringFields中的值。感谢Joachim Koenig-Baltes提出这个想法和补丁。[alecm]
0.2.1 - 2005-06-17
修复了导致隐藏某些小部件类型时出现不必要的js警告的错误。[alecm]
0.2 - 2005-06-16
添加了对隐藏和禁用复合小部件(如布尔和InAndOut)的支持。[alecm]
允许单个主字段对单个从属字段应用多个动作。现在主小部件可以同时隐藏和更改从属字段的词汇。只需为每个所需动作向slave_fields添加一个条目即可。[alecm]
使getXMLSelectVocab接受返回列表或元组的函数,而不仅仅是DisplayLists。尽管如此,DisplayLists是首选的。[alecm]
0.1 - 2005-06-15
初步检查,准备测试。[alecm]
项目详细信息
Products.MasterSelectWidget-0.4.9.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 34ccb459b457ea9827db7f1f3c5424a81b20b0d9a39bed5263ed4cc12dea2358 |
|
MD5 | 4289d64435abd4fb50a3542a28415fd1 |
|
BLAKE2b-256 | e44d2aacb8f5366a427c602833f08f4bdde44ff9a72b6b570ba735dfa7f0f970 |