mrfabulous / ucsf_panichd
Laravel(5至9版本)的工单系统。仅允许通过表单创建新工单。包括文件附件、工单标签、筛选、调度和电子邮件通知。x
Requires
- doctrine/dbal: ^3.6
- illuminate/support: ^5.1|^6.0|^7.0|^8.0|^9.0|^10.0
- intervention/image: ^2.5
- jenssegers/date: ^4.0
- laravel/framework: ^5.1|^6.0|^7.0|^8.0|^9.0|^10.0
- mews/purifier: ^2.0|^3.2
- spatie/laravel-html: ^2.30
- yajra/laravel-datatables-oracle: ^6.0 || ^7.0 || ^8.0 || ^9.11
This package is auto-updated.
Last update: 2024-09-27 20:02:48 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" 表的 required seeder
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等在线社区工作的朋友们表示感谢,他们每天都在尽力帮助像我这样的人解决日常编码中的难题。