johndoh / swipe
为Roundcube的消息列表添加滑动操作
Requires
- php: >=5.4.0
- roundcube/plugin-installer: >=0.1.2
This package is auto-updated.
Last update: 2024-09-13 08:14:11 UTC
README
此插件为触摸设备(平板电脑/手机)上的消息列表条目添加左右/下滑动操作。
注意
这只是一个来自GIT仓库的快照,不是Swipe的稳定版本。它旨在与Roundcube的GIT-master版本一起使用,并且可能不与旧版本兼容。Swipe的稳定版本可以从Roundcube插件仓库(适用于1.4及以上版本)或GitHub仓库的发布部分获取。
许可证
此插件在GNU通用公共许可证版本3+下发布。
即使皮肤可能包含一些编程工作,它们也不被视为插件的一部分,因此皮肤不不属于GPL许可证的适用范围。有关皮肤许可证的详细信息,请参阅核心皮肤文件夹中的README文件。
安装
- 将此插件文件夹放置到Roundcube的插件目录中
- 在您的Roundcube配置中添加swipe到$config['plugins']
注意:从GitHub下载插件时,您需要创建一个名为skin的目录并将文件放置其中,忽略下载归档中的根目录。
支持的皮肤
- Elastic
支持的浏览器
此插件依赖于指针事件并且应该在支持这些的任何浏览器中工作。垂直滑动操作需要touch-action: pan-down;
支持。不支持Legacy Edge或Internet Explorer。
配置
要设置默认操作,请将以下内容添加到您的Roundcube配置文件中
$config['swipe_actions'] = [ 'messagelist' => [ 'left' => '<action>', 'right' => '<action>', 'down' => '<action>' ], 'contactlist' => [ 'left' => '<action>', 'right' => '<action>', 'down' => 'none' ] ];
将以下代码中的<action>
替换为以下列表中您希望的操作。用户可以从“列表选项”菜单配置操作,以覆盖默认操作。
支持的操作
消息列表:以下操作可用于左右滑动
archive
- 归档消息(需要Roundcube归档插件)delete
- 删除消息forward
- 转发消息markasjunk
- 将消息标记为垃圾邮件(需要Roundcube Markasjunk插件)move
- 将消息移动到所选文件夹reply
- 回复消息reply-all
- 对所有人回复消息swipe-flagged
- 标记/取消标记消息swipe-read
- 标记/取消标记消息为已读swipe-select
- 选择/取消选择消息none
- 禁用滑动
以下操作可用于向下滑动
checkmail
- 在当前文件夹中检查新消息none
- 禁用滑动
联系人列表:以下操作可用于左右滑动
vcard_attachments
- 将联系人作为vCard附加到新消息(需要Roundcube Vcard_attachments插件)compose
- 为此联系人创建新消息delete
- 删除联系人swipe-select
- 选择/取消选择联系人none
- 禁用滑动
以下操作可用于向下滑动
none
- 禁用滑动
disabled_actions和dont_override
此插件尊重Roundcube命令的disabled_actions配置选项。为了防止用户覆盖滑动配置,您可以将以下任何一项添加到dont_override中。
swipe_actions
- 防止覆盖所有滑动配置swipe_actions.list
- 例如swipe_actions.mesasgelist
防止覆盖特定列表(例如mesasgelist)上的滑动操作swipe_actions.list.direction
- 例如swipe_actions.mesasgelist.left
防止覆盖特定列表和方向上的滑动操作
与其他插件的交互
当插件在列表选项菜单启动时,会触发swipe_actions
钩子。参数:
- list_type - 执行滑动操作的列表名称,例如messagelist,用于选择/保存配置
- actions - 此列表的动作数组,格式如下
$args['actions'] = [ 'list_name' => '*JS list object name*', 'selection_id' => '*JS element identifier e.g. UID*', 'vertical' => [ '*action_name*' => ['label' => '*display name*'], ... ], 'horizontal' => [ '*action_name*' => ['label' => '*display name*'], ... ] ];
返回值
- list_type
- actions
当执行滑动操作时,会触发swipe-action
JS事件。返回false
以取消操作或返回如下JSON对象以分配操作
{ 'class': '<class name for the action box>', 'text': '<text displayed in the action box>', 'callback': function(p) { <your action here> }, 'command': '<roundcube command>' };
注意:只需提供回调或命令中的一个。如果没有定义回调,则将命令传递到标准的滑动回调函数。
自定义Elastic皮肤
此插件使用的颜色和样式可以通过将_custom.less
文件添加到该插件的skins/elastic
子文件夹中,然后重新编译CSS来自定义。