majiid / panichd-majiid
Laravel(从5到8版本)的工单系统。仅允许通过表单创建新的工单。包括文件附件、工单标签、过滤、排程和电子邮件通知。
Requires
- doctrine/dbal: ^2.10
- illuminate/support: ^5.1|^6.0|^7.0|^8.0|^9.0|^10.0|^11.0
- intervention/image: ^2.5
- jenssegers/date: ^4.0
- laravel/framework: ^5.1|^6.0|^7.0|^8.0|^9.0|^10.0|^11.0
- mews/purifier: ^2.0|^3.2
- yajra/laravel-datatables-oracle: ^6.0 || ^7.0 || ^8.0 || ^9.11
This package is auto-updated.
Last update: 2024-09-29 12:32:41 UTC
README
这是一个用于Laravel PHP框架(从版本5到8)的工单系统:它基于Kordy/Ticketit。我们保留了几乎所有的ticketit功能,并添加了许多额外的功能,如文件附件、工单标签、排程、过滤和高级搜索表单。此包使用自己的路由"/PanicHD",在安装后可以进行修改,因此它可以安装在现有的Laravel项目中。
目录
描述
概述
Panic Help Desk是一个可以在任何Laravel应用程序中集成的工单系统。"工单"可以是任何特定问题、线程、错误或您需要的东西。它包含一些通用字段,可以用于分类,并有一些用户与工单管理员之间的交互可能性。
这个工单系统实际上是为企业支持环境而设计的,以下是原因
- 只有注册用户或工单管理员才能添加工单。对于任何管理员,工单只能分配给已注册的所有者。
- 我们已将所有必需的资产文件包含在包结构中,因为我们希望它可以在我们的局域网中即使没有互联网连接也能使用(想想IT企业支持)
翻译
此包具有最新的巴西葡萄牙语、加泰罗尼亚语、英语和西班牙语翻译。还包括其他翻译,但它们较旧,有些菜单可能尚未翻译。
PanicHD使用的语言将是您在Laravel中配置的语言。
您也可以创建自己的语言文件。我们鼓励您制作自己的语言包,并向我们的dev分支提交拉取请求,以便您国家的其他PanicHD成员可以使用它。
工单逐步示例
- 用户注册一个针对特定问题的新工单
- 工单会自动分配给一个代理(工单管理员),并会收到电子邮件通知。
- 代理联系用户以提供支持。在支持任务完成后,将工单状态保留为"用户待处理",因为需要确认问题已解决
- 用户在工单中确认问题已解决。他可以直接完成工单或添加新的评论来完成它
- 在任何情况下,代理都将收到包含用户更新的电子邮件通知
- 如果工单被保留为活动状态,代理将完成它
- 代理和用户都将在完成的列表中看到工单,以便将来参考。
功能
以下是PanicHD主要功能的概要。如需详细说明、示例截图和一般参考,请阅读我们的维基百科中的当前功能页面
-
三种用户角色:成员、代理和管理员
-
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应用程序创建工单
- 您可以为创建自定义成员模型,例如,允许使用不同于“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)的男孩们,他们每天都在尽力帮助像我这样的人解决日常编码中的问题。