senguild / panichd
基于 panichd/panichd 的工单系统
Requires
- doctrine/dbal: ^2.10
- illuminate/support: ^5.1|^6.0|^7.0|^8.0
- intervention/image: ^2.5
- jenssegers/date: ^4.0
- laravel/framework: ^5.1|^6.0|^7.0|^8.0
- laravelcollective/html: ^5.1|^6.0
- mews/purifier: ^2.0|^3.2
- yajra/laravel-datatables-oracle: ^6.0 || ^7.0 || ^8.0 || ^9.11
This package is not auto-updated.
Last update: 2024-09-30 04:06:55 UTC
README
这是一个适用于 Laravel PHP 框架(版本 5 到 8)的工单系统:它基于 Kordy/Ticketit。我们保留了几乎所有的 ticketit 功能,并添加了许多额外的功能,如文件附件、工单标签、调度、过滤和高级搜索表单。此包使用自己的路由 "/PanicHD",在安装后可以修改,因此它可以在您的现有 Laravel 项目中安装。
目录
描述
概述
Panic 帮助台是一个可以在任何 Laravel 应用程序中集成的工单系统。一个“工单”可以是任何特定问题、线程、错误或您需要的任何内容。它包含一些可能有助于分类的一般字段,并且用户和工单管理员之间有一些交互功能。
这个工单系统实际上是用于企业支持环境的,以下是原因:
- 只有注册用户或工单管理员才能添加工单。对于任何管理员,工单只能分配给已注册的所有者。
- 我们已将所有必需的资产文件包含在包结构中,因为我们希望即使在没有互联网连接的局域网中也能使用(想想 IT 企业支持)
翻译
此包包含到巴西葡萄牙语、加泰罗尼亚语、英语和西班牙语的最新翻译。还包括更多翻译,但它们较旧,某些菜单可能尚未翻译。
PanicHD 使用的语言将是您在 Laravel 中配置的语言。
您还可以创建自己的语言文件。我们鼓励您制作自己的语言包,并将其添加到我们的 dev 分支中,以便您国家的其他 PanicHD 成员可以使用。
工单一步步示例
- 用户为特定问题注册新工单
- 工单自动分配给代理(工单管理员),并且代理会收到电子邮件通知。
- 代理联系用户以提供支持。在支持任务完成后,将工单保留在“用户待定”状态,因为需要确认问题已解决
- 用户在工单中确认问题已解决。他可以直接完成工单或添加新评论来完成
- 在任何情况下,代理都会收到包含用户更新的电子邮件通知
- 如果工单被保留为活动状态,代理将完成它
- 代理和用户都将看到工单在完成的列表中,以供将来参考。
功能
这是 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
- 打开位于 Laravel 根目录的 composer.json 文件。在 "require" 部分删除引用 kordy/ticketit 的行
- 打开 config/app.php。删除包含 "TicketitServiceProvider" 的行
- 在 Laravel 根目录的命令行中执行:
composer update kordy/ticketit
- 删除 Laravel 项目中可能存在的所有可能的引用和文件(已发布的文件?Laravel 文件中的引用?)
3- 添加并启用 PanicHD 包
-
在 Laravel 文件夹中打开命令行并输入:
composer require panichd/panichd
-
如果您正在使用 Laravel 5.4 或更低版本,您必须添加服务提供者。在这种情况下,打开 config/app.php。在 "Providers" 部分,添加
PanicHD\PanicHD\PanicHDServiceProvider::class,
4- 配置它
此时,如果您认为您已经输入了足够的命令,那么 web 安装程序 就会为您提供帮助 ;) 但如果您是一位坚韧且经验丰富的 Laravel 开发者,请忘记这一点,跳转到 使用命令行完成安装 部分。
选项 A:使用我们的 web 安装程序
要访问 web 安装程序,您只需
- 通过网页浏览器登录 Laravel 应用程序
- 访问 URL http://your-laravel-app-URL/panichd
- 阅读并按照安装步骤操作
选项 B:使用命令行(高级用户)
B.1- 创建附件文件夹
- 访问 Laravel 根目录内的 "storage" 文件夹并创建子文件夹:
panichd_attachments
- 访问 storage\app\public 并创建子文件夹:
panichd_thumbnails
B.2- 执行以下命令
-
发布并安装迁移
1.1 发布迁移:
php artisan vendor:publish --tag=panichd-db
1.2 执行迁移:
php artisan migrate
-
使用默认值填充 "panichd_settings" 表
php artisan db:seed --class=PanicHD\\PanicHD\\Seeds\\SettingsTableSeeder
-
如果已安装 Kordy/Ticketit,则使用以下命令修补设置表
php artisan db:seed --class=PanicHD\\PanicHD\\Seeds\\SettingsPatch
-
启用 "panichd_thumbnails" 文件夹访问
php artisan storage:link
-
发布包含的资产
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 集成
- 工单参数:所有工单分类字段都是可定制的,如优先级、状态...以及在其自己的“包”菜单中。
- 设置
- 维基中详细说明的Laravel集成:
- 从您的Laravel应用程序创建工单
- 您可以为创建自定义Member模型,例如,允许使用除“users”表之外的其他表来使用PanicHD成员。
- 在您的应用程序中使用任何配置设置
贡献
请阅读我们的贡献参考。
构建工具
- Laravel:这是我们的基础PHP框架
- jQuery:javascript框架。请不要告诉我您不知道
- Bootstrap:CSS框架
- TheKordy/Ticketit:PanicHD构建在其上的工单Laravel包。它还包括
- Yajra Datatables。一个用于使用Datatables的Laravel包
- Codemirror
- Summernote编辑器
- Select2:jQuery脚本,它将HTML选择元素替换为更功能化的选择元素
- Photoswipe:我们找到的最好的免费javascript图像画廊
- Bootstrap Colorpicker Plus:PanicHD中每个可定制颜色的javascript颜色选择器
- Bootstrap Datetimepicker:一个出色的javascript日历选择器
- 使用的Google字体
- jCrop:一个实用的旧式javascript图像裁剪库
如果有一天这个包对某人来说像其他一些包对我们一样有用,我们的债务无疑仍然会很大,但我们也会非常高兴!
致谢
感谢Kordy和他的合作者构建了Kordy/Ticketit并将其分享到GitHub。没有它,Panic Help Desk将无法存在。
还要感谢所有在在线社区(如 StackOverflow)的成员们,他们每天都在尽最大努力帮助像我这样的人解决日常编程难题。