johndoh/swipe

为Roundcube的消息列表添加滑动操作

安装数: 3,685

依赖: 0

建议者: 0

安全: 0

星标: 11

关注者: 6

分支: 5

开放问题: 1

语言:JavaScript

类型:roundcube插件

0.5 2022-06-18 07:06 UTC

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来自定义。