senguild / panichd

基于 panichd/panichd 的工单系统

维护者

详细信息

github.com/nhatanhit/panichd

源代码

安装: 19

依赖者: 0

建议者: 0

安全: 0

星星: 0

关注者: 1

分支: 41

语言:JavaScript

类型:laravel-package

v0.26.0 2022-05-29 16:47 UTC

README

这是一个适用于 Laravel PHP 框架(版本 5 到 8)的工单系统:它基于 Kordy/Ticketit。我们保留了几乎所有的 ticketit 功能,并添加了许多额外的功能,如文件附件、工单标签、调度、过滤和高级搜索表单。此包使用自己的路由 "/PanicHD",在安装后可以修改,因此它可以在您的现有 Laravel 项目中安装。

目录

描述

概述

Panic 帮助台是一个可以在任何 Laravel 应用程序中集成的工单系统。一个“工单”可以是任何特定问题、线程、错误或您需要的任何内容。它包含一些可能有助于分类的一般字段,并且用户和工单管理员之间有一些交互功能。

General view

这个工单系统实际上是用于企业支持环境的,以下是原因:

  • 只有注册用户或工单管理员才能添加工单。对于任何管理员,工单只能分配给已注册的所有者。
  • 我们已将所有必需的资产文件包含在包结构中,因为我们希望即使在没有互联网连接的局域网中也能使用(想想 IT 企业支持)

翻译

此包包含到巴西葡萄牙语、加泰罗尼亚语、英语和西班牙语的最新翻译。还包括更多翻译,但它们较旧,某些菜单可能尚未翻译。

PanicHD 使用的语言将是您在 Laravel 中配置的语言。

您还可以创建自己的语言文件。我们鼓励您制作自己的语言包,并将其添加到我们的 dev 分支中,以便您国家的其他 PanicHD 成员可以使用。

工单一步步示例

  1. 用户为特定问题注册新工单
  2. 工单自动分配给代理(工单管理员),并且代理会收到电子邮件通知。
  3. 代理联系用户以提供支持。在支持任务完成后,将工单保留在“用户待定”状态,因为需要确认问题已解决
  4. 用户在工单中确认问题已解决。他可以直接完成工单或添加新评论来完成
  5. 在任何情况下,代理都会收到包含用户更新的电子邮件通知
  6. 如果工单被保留为活动状态,代理将完成它
  7. 代理和用户都将看到工单在完成的列表中,以供将来参考。

功能

这是 PanicHD 主要功能的概要。有关详细描述、示例截图和一般参考,请阅读我们的 Wiki 中的当前功能页面

  • 三个用户角色:成员、代理和管理员

  • PanicHD 工单字段

    • 任何成员在注册新工单时都可以填写的基本集合

      • 主题
      • 描述:可能包含文本、HTML,甚至直接粘贴的截图
      • 类别
      • 附件文件
    • 分类字段,例如:优先级、状态、标签

    • 时间相关字段

      • 开始日期:活动可能开始的时间。默认为创建日期
      • 限制日期:票据到期时间。用于安排票据过滤
    • 任何票据管理员都可以查看/编辑所有票据字段

    • 管理员可以添加票据,将其分配给任何所有者(任何注册用户)

    • 管理员可以添加隐藏的票据用户(或将可见的票据切换为隐藏)

      • 也可以分配给任何所有者
      • 所有者(如果它不是票据类别的代理)将无法查看票据
      • 这种所有者将不会收到任何电子邮件通知
  • 用户/管理员沟通

    • 通过他们在一个票据卡片中添加的评论
    • 通过电子邮件通知:他们都将收到与他们相关的任何一方对票据所做的相关更改的通知
    • 管理员可以添加用户隐藏的消息,称为“内部笔记”。如果票据分配给了另一个代理,他也将收到相关的电子邮件通知
  • 票据过滤器

    • 所有票据列表都包含一个过滤面板,允许您在相关字段中使用特定标准(日历、类别、代理)
    • 这些过滤器将保存在用户会话中,直到您更改或删除它们
    • 只有具有管理至少一个类别的权限的成员才能使用过滤面板
    • 您可以通过URL激活一个字段,正如我们在维基中解释的那样
  • 票据搜索

    • 有一个专门的搜索表单,您可以指定它为任何与票据相关的字段
    • 我们添加了一些高级搜索选项,例如在任意字段中搜索文本、在评论中搜索文本、在附件字段中搜索文本、按特定日期标准搜索...
    • 执行搜索后,您将有一个按钮,该按钮具有指向该搜索的永久链接,其中包含URL中的所有指定参数和值
    • 为所有具有权限的成员启用
  • 对于管理员

    • 任何分类元素都可以编辑
    • 他们可以轻松管理类别和分配的代理
  • 对于开发者

    • 有一个配置设置菜单,该菜单直接来自Ticketit。它非常实用且灵活,可以按自己的意愿配置软件包,甚至无需更改软件包文件

    • 我们添加了一些有用的Artisan命令,以帮助您进行本地测试。点击链接或在Laravel控制台中输入以下命令

      php artisan panichd

安装

1- 要求

  • Laravel 5.1或更高版本包括

    • Laravel认证以及至少一个注册用户
    • 模型App\User.php使用用户表。它默认由Laravel认证添加,PanicHD需要它存在。似乎一些管理面板将其更改为App\Models\User.php或其他路由。
    • 有效的电子邮件配置(PanicHD通知电子邮件所需)
  • Composer(PHP依赖管理器)

  • MySQL 5.7或8.x,已禁用“严格模式”或指定所有或所需MySQL模式(除“ONLY_FULL_GROUP_BY”外)。对于任一选项,打开Laravel的config\database.php,转到“connections” -> “mysql”,然后

    • 要禁用严格模式:将 "strict" 设置为 "false"
    • 指定 MySQL 模式
      • 保持 "strict" 为 "true"
      • 如果不存在,则添加 "modes" 键
      • 如果 "modes" 不存在,添加所有 MySQL 模式,除了 ONLY_FULL_GROUP_BY。
      • 如果 "modes" 已经配置,只需注释或删除 "ONLY_FULL_GROUP_BY"。

2- 如果已安装 Kordy/Ticketit

如果它安装在与您想要安装 Panic Help Desk 相同的 Laravel 项目中,Panic Help Desk 将会替换它,重用其数据库表并保留已注册的工单。在安装 PanicHD 之前,您必须按照以下步骤卸载 Kordy/Ticketit

  1. 打开位于 Laravel 根目录的 composer.json 文件。在 "require" 部分删除引用 kordy/ticketit 的行
  2. 打开 config/app.php。删除包含 "TicketitServiceProvider" 的行
  3. 在 Laravel 根目录的命令行中执行:composer update kordy/ticketit
  4. 删除 Laravel 项目中可能存在的所有可能的引用和文件(已发布的文件?Laravel 文件中的引用?)

3- 添加并启用 PanicHD 包

  1. 在 Laravel 文件夹中打开命令行并输入:composer require panichd/panichd

  2. 如果您正在使用 Laravel 5.4 或更低版本,您必须添加服务提供者。在这种情况下,打开 config/app.php。在 "Providers" 部分,添加

    PanicHD\PanicHD\PanicHDServiceProvider::class,

4- 配置它

此时,如果您认为您已经输入了足够的命令,那么 web 安装程序 就会为您提供帮助 ;) 但如果您是一位坚韧且经验丰富的 Laravel 开发者,请忘记这一点,跳转到 使用命令行完成安装 部分。

选项 A:使用我们的 web 安装程序

要访问 web 安装程序,您只需

  1. 通过网页浏览器登录 Laravel 应用程序
  2. 访问 URL http://your-laravel-app-URL/panichd
  3. 阅读并按照安装步骤操作

选项 B:使用命令行(高级用户)

B.1- 创建附件文件夹

  1. 访问 Laravel 根目录内的 "storage" 文件夹并创建子文件夹:panichd_attachments
  2. 访问 storage\app\public 并创建子文件夹:panichd_thumbnails

B.2- 执行以下命令

  1. 发布并安装迁移

    1.1 发布迁移:php artisan vendor:publish --tag=panichd-db

    1.2 执行迁移:php artisan migrate

  2. 使用默认值填充 "panichd_settings" 表

    php artisan db:seed --class=PanicHD\\PanicHD\\Seeds\\SettingsTableSeeder

  3. 如果已安装 Kordy/Ticketit,则使用以下命令修补设置表

php artisan db:seed --class=PanicHD\\PanicHD\\Seeds\\SettingsPatch

  1. 启用 "panichd_thumbnails" 文件夹访问

    php artisan storage:link

  2. 发布包含的资产

    php artisan vendor:publish --tag=panichd-public

B.3- 如果您已执行了干净的 PanicHD 安装,您必须至少为它启用一个管理员,通过将用户表的行 "panichd_admin" 字段值设置为 1 来实现。

B.4- 在您的浏览器中访问 http://your-laravel-app-URL/panichd

5- 应用程序启动

添加演示数据

您可以使用 我们的演示数据生成器 来快速测试该包。以下命令创建了一些虚假用户、工单和其他内容,您可以选择浏览、编辑或执行任何操作

 `php artisan db:seed --class=PanicHD\\PanicHD\\Seeds\\DemoDataSeeder`

删除所有 PanicHD 演示内容,请使用此命令

php artisan panichd:demo-rollback

添加我们的基本参数设置

在您创建工单之前,您必须至少添加一个优先级、一个状态和一个类别。您可以使用我们的基本填充器来填充这些列表,以默认元素供通用使用。所有添加的项目都可以编辑。要使用它,请输入以下命令

php artisan db:seed --class=PanicHD\\PanicHD\\Seeds\\Basic

配置和 Laravel 集成

贡献

请阅读我们的贡献参考

构建工具

如果有一天这个包对某人来说像其他一些包对我们一样有用,我们的债务无疑仍然会很大,但我们也会非常高兴!

致谢

感谢Kordy和他的合作者构建了Kordy/Ticketit并将其分享到GitHub。没有它,Panic Help Desk将无法存在。

还要感谢所有在在线社区(如 StackOverflow)的成员们,他们每天都在尽最大努力帮助像我这样的人解决日常编程难题。