panichd / panichd
Laravel(从5到8版本)的工单系统。仅通过表单创建新工单。包括文件附件、工单标签、过滤、排程和电子邮件通知。
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-23 11:19:32 UTC
README
这是一个Laravel PHP框架(从版本5到8)的工单系统:它基于Kordy/Ticketit。我们保留了几乎所有的ticketit功能,并添加了许多额外的功能,如文件附件、工单标签、排程、过滤和高级搜索表单。此包使用一个自己的路由"/PanicHD",在安装后可以修改,因此它可以安装在您的现有Laravel项目中。
目录
描述
概述
Panic Help Desk是一个可以集成在任何Laravel应用程序上的工单系统。一个“工单”可以是任何特定的问题、线程、错误或您需要的任何内容。它包括一些一般字段,可以帮助对其进行分类,并有一些用户与工单管理员之间的交互方式。
这个工单系统实际上是打算用于企业支持环境的,以下是一些原因
- 只有注册用户或工单管理员可以添加工单。对于任何管理员,一个工单只能分配给一个已注册的所有者。
- 我们已将所有必需的资产文件包含在包结构中,因为我们希望它即使在没有工作互联网连接的情况下也能在我们的LAN上使用(想想IT企业支持)
翻译
此包已更新到巴西葡萄牙语、加泰罗尼亚语、英语和西班牙语的翻译。还包括其他翻译,但它们较旧,有些菜单可能尚未翻译。
PanicHD使用的语言将是您在Laravel中配置的语言。
您也可以创建自己的语言文件。我们鼓励您制作自己的语言包,并将pull request添加到我们的dev
分支,以便让其他国家的PanicHD成员也能使用它。
工单一步步示例
- 用户为特定问题注册新的工单
- 工单自动分配给一个代理(工单管理员),该代理会收到电子邮件通知。
- 代理与用户联系以提供支持。在支持任务完成后,将工单状态留在“用户待定”,因为需要确认问题已解决
- 用户在工单中确认问题已解决。他可以直接完成工单或添加新的评论来完成它
- 在任何情况下,代理都会收到关于用户更新的电子邮件通知
- 如果工单被留在活动状态,代理会将其完成
- 代理人和用户都将在“完整列表”中看到该票据,以供将来参考。
功能
这是PanicHD主要功能的概述。有关详细描述、示例截图和一般参考,请阅读我们的wiki中的当前功能页面
-
三个用户角色:成员、代理和管理员
-
PanicHD票据字段
-
基本设置,任何成员在注册新票据时都可以填写
- 主题
- 描述:可以包含文本、html,甚至可以直接粘贴的截图
- 分类
- 附件文件
-
分类字段,例如:优先级、状态、标签
-
时间相关字段
- 开始日期:票据活动可能开始的时间。默认为创建日期
- 限制日期:票据到期时间。用于安排票据过滤
-
任何票据管理员都可以查看/编辑所有票据字段
-
管理员可以添加票据并将其分配给任何所有者(任何注册用户)
-
管理员可以添加隐藏的票据给用户(或将可见的票据切换为隐藏)
- 它也可以分配给任何所有者
- 所有者(如果它不是票据类别的代理)将无法查看票据
- 这类所有者将不会收到任何电子邮件通知
-
-
用户/管理员沟通
- 通过他们在一张票据卡中添加的评论
- 通过电子邮件通知:他们都会收到与他们相关的任何人对票据进行的任何更改的通知
- 管理员可以添加用户隐藏的消息,称为“内部笔记”。如果票据分配给另一位代理,他也将收到相关的电子邮件通知
-
票据过滤器
- 所有票据列表都包含一个过滤器面板,允许您在相关字段中使用特定标准(日历、分类、代理)
- 这些过滤器将保留在用户会话中,直到您更改或删除它们
- 只有拥有至少管理一个分类权限的成员才能使用过滤器面板
- 您可以通过URL激活一个字段,正如我们在wiki中解释的那样
-
票据搜索
- 有一个专门的搜索表单,您可以指定任何与票据相关的字段
- 我们添加了一些高级搜索选项,例如搜索任何字段中的文本、评论中的文本、附件字段中的文本、按特定日期标准搜索...
- 执行搜索后,您将有一个按钮,它具有到搜索的永久链接,该链接包含URL中的所有指定参数和值
- 对所有拥有权限的成员都启用了此功能
-
对于管理员
- 任何分类元素都可以编辑
- 他们可以轻松管理分类和分配的代理
-
对于开发者
-
有一个配置设置菜单,它直接来自Ticketit。它非常实用且灵活,可以配置包以满足自己的需求,甚至无需更改包文件
-
我们添加了一些有用的Artisan命令,以帮助您进行本地测试。点击链接或在Laravel控制台中键入以下命令
php artisan panichd
-
安装
1- 要求
-
Laravel 5.1或更高版本
- Laravel auth 至少注册一个用户
- Model App\User.php 使用users表。它默认通过Laravel auth添加,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 installer就出现了;但如果你是一个强大和经验丰富的Laravel开发者,请忽略这一点,跳转到使用命令行进行完整安装部分。
选项A:使用我们的web installer
要访问web installer,您只需
- 通过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应用程序创建工单
- 您可以为创建自定义成员模型,例如,允许使用不同于“users”的表来为PanicHD成员。
- 在您的应用程序中使用任何配置设置
贡献
请阅读我们的贡献参考。
构建工具
- Laravel:这是我们基于的PHP框架
- jQuery:javascript框架。请不要告诉我您不知道
- Bootstrap:CSS框架
- TheKordy/Ticketit:PanicHD构建在其上的工单Laravel软件包。它还包括
- Yajra Datatables。一个Laravel软件包,用于使用Datatables
- Codemirror
- Summernote编辑器
- Select2:用于替换HTML选择元素的jQuery脚本,使其更加功能化
- Photoswipe:我们找到的最好的免费javascript图片画廊之一
- Bootstrap Colorpicker Plus:PanicHD中每个可自定义颜色所使用的javascript颜色选择器
- Bootstrap Datetimepicker:一个出色的javascript日历选择器
- 使用的Google字体
- jCrop:一个有用的旧javascript图像裁剪库
如果有一天这个软件包对某人的用处像其他一些软件包对我们一样有用,我们欠的债务肯定会很大,但我们也会非常高兴!
致谢
感谢Kordy和他的合作者构建了Kordy/Ticketit并将其分享到GitHub。没有它,Panic Help Desk将根本不存在。
还要向所有在在线社区如StackOverflow的伙伴们表示感谢,他们每天都在尽最大努力帮助像我这样的人解决日常编码难题。