Compare commits

..

64 Commits

Author SHA1 Message Date
1780bfaee6
supress confirmation prompts
All checks were successful
Intranet Deployment / Deploy Project files (push) Successful in 2m0s
2024-08-14 12:31:59 -05:00
ee91fa9954
correct vars context
Some checks failed
Intranet Deployment / Deploy Project files (push) Failing after 52s
2024-08-14 12:22:14 -05:00
69a42df8c6
echo deploy dir
Some checks failed
Intranet Deployment / Deploy Project files (push) Has been cancelled
2024-08-14 12:21:24 -05:00
c2c82a1191
formatting change
All checks were successful
Intranet Deployment / Deploy Project files (push) Successful in 1m3s
2024-08-14 12:14:51 -05:00
5124b6139b
flow test
All checks were successful
Gitea Actions Demo / Deploy Project files (push) Successful in 52s
2024-08-14 12:08:22 -05:00
aee592e023
copy command restruct
All checks were successful
Gitea Actions Demo / Deploy Project files (push) Successful in 53s
2024-08-14 10:59:09 -05:00
32307aa504
rename deploy flow
All checks were successful
Gitea Actions Demo / Deploy Project files (push) Successful in 48s
2024-08-14 10:45:52 -05:00
063e8fc113
remove faulty mkdir call 2024-08-14 10:43:55 -05:00
7493e43424 add deploy runner status badge
All checks were successful
Gitea Actions Demo / Deploy Project files (push) Successful in 50s
2024-08-14 15:31:50 +00:00
326c7fe1aa Merge pull request 'Implement Article navbutton fix' (#2) from navbar-fix into master
All checks were successful
Gitea Actions Demo / Deploy Project files (push) Successful in 51s
Reviewed-on: #2
2024-08-14 15:20:29 +00:00
031367fb2c
resolve merge issue 2024-08-14 10:06:24 -05:00
168dee0259
remove redundant cache refresh 2024-08-14 10:05:58 -05:00
9951d2ee77
require symfony runtime 2024-08-14 10:05:19 -05:00
d172aec5e0
remove redundant cache refresh
All checks were successful
Gitea Actions Demo / Deploy Project files (push) Successful in 47s
2024-08-14 10:03:13 -05:00
a301f19bf8
require symfony runtime 2024-08-14 10:02:49 -05:00
5ee2f09bac
Revert "set composer work dir"
This reverts commit 98af5499db2772106f73fba36d7aaa0d4319ce47.
2024-08-14 10:01:28 -05:00
fa2fe652a8
set composer work dir
Some checks failed
Gitea Actions Demo / Deploy Project files (push) Failing after 52s
2024-08-14 10:00:43 -05:00
98af5499db
set composer work dir 2024-08-14 09:59:59 -05:00
d7ad9f88b7
correct var access context 2024-08-14 09:50:49 -05:00
d9398b994c
completed deployment workflow 2024-08-14 09:50:49 -05:00
478fa849d0
gitea issues plugin config 2024-08-14 09:50:48 -05:00
7698f94869
host key officially good 2024-08-14 09:50:48 -05:00
ae4451fbb0
nothing new 2024-08-14 09:50:48 -05:00
8b73484275
another host attempt 2024-08-14 09:50:48 -05:00
139e370e24
correct public host key 2024-08-14 09:50:48 -05:00
01f150b1ce
add gitea public key to known hosts 2024-08-14 09:50:48 -05:00
Audrey Jensen
44cde46169
disable strict checking 2024-08-14 09:50:48 -05:00
Audrey Jensen
4027a396fe
set correct known hosts 2024-08-14 09:50:47 -05:00
Audrey Jensen
821a161a3a
set known hosts 2024-08-14 09:50:47 -05:00
Audrey Jensen
08e7593f5d
no strict ssh host 2024-08-14 09:50:47 -05:00
Audrey Jensen
6647ec36aa
read deploy key 2024-08-14 09:50:47 -05:00
Audrey Jensen
6fe415f6cf
fix trigger 2024-08-14 09:50:47 -05:00
Audrey Jensen
3b98d508e7
remove demo 2024-08-14 09:50:47 -05:00
Audrey Jensen
5d69219d71
testing repo pull 2024-08-14 09:50:46 -05:00
Audrey Jensen
1ffe8975b1
fix label 2024-08-14 09:50:46 -05:00
Audrey Jensen
c6ddddc0e1
demo runner 2024-08-14 09:50:46 -05:00
afaefb7978
correct var access context
Some checks failed
Gitea Actions Demo / Deploy Project files (push) Failing after 7m33s
2024-08-14 09:43:47 -05:00
f859b7bfd4
completed deployment workflow
Some checks failed
Gitea Actions Demo / Deploy Project files (push) Failing after 56s
2024-08-14 09:38:03 -05:00
3195e8e00e
gitea issues plugin config 2024-08-14 09:37:58 -05:00
85ad3fc91f
host key officially good 2024-08-14 08:48:35 -05:00
044e1077da
nothing new
All checks were successful
Gitea Actions Demo / Deploy (push) Successful in 1m8s
2024-08-14 08:41:47 -05:00
2dc2bf95dd
another host attempt
Some checks are pending
Gitea Actions Demo / Deploy (push) Waiting to run
2024-08-14 08:38:27 -05:00
f04dae3da0
correct public host key
Some checks failed
Gitea Actions Demo / Deploy (push) Has been cancelled
2024-08-14 08:22:12 -05:00
1357d3c211
add gitea public key to known hosts
Some checks failed
Gitea Actions Demo / Deploy (push) Has been cancelled
2024-08-14 08:17:00 -05:00
Audrey Jensen
90f5d20100
disable strict checking
Some checks failed
Gitea Actions Demo / Deploy (push) Has been cancelled
2024-08-13 15:53:57 -05:00
Audrey Jensen
ba7fc83cef
set correct known hosts
Some checks failed
Gitea Actions Demo / Deploy (push) Failing after 54s
2024-08-13 15:52:32 -05:00
Audrey Jensen
5ac9649ef8
set known hosts 2024-08-13 15:51:05 -05:00
Audrey Jensen
97afd7358b
no strict ssh host
All checks were successful
Gitea Actions Demo / Deploy (push) Successful in 58s
2024-08-13 15:34:39 -05:00
Audrey Jensen
576ccdd9eb
read deploy key
Some checks failed
Gitea Actions Demo / Deploy (push) Has been cancelled
2024-08-13 15:33:06 -05:00
Audrey Jensen
e6c34925ef
fix trigger
Some checks failed
Gitea Actions Demo / Deploy (push) Failing after 59s
2024-08-13 15:13:39 -05:00
Audrey Jensen
5af977dd31
remove demo 2024-08-13 15:12:29 -05:00
Audrey Jensen
ae7adb2d91
testing repo pull
Some checks are pending
Gitea Actions Demo / Explore-Gitea-Actions (push) Waiting to run
2024-08-13 15:10:42 -05:00
Audrey Jensen
e86ff3ebdc
fix label
Some checks failed
Gitea Actions Demo / Explore-Gitea-Actions (push) Failing after 46s
2024-08-13 14:56:56 -05:00
Audrey Jensen
f81bb0e88e
demo runner
Some checks are pending
Gitea Actions Demo / Explore-Gitea-Actions (push) Waiting to run
2024-08-13 14:55:54 -05:00
Audrey Jensen
4b77e11308
hardcode forklift links into template 2024-08-13 14:08:28 -05:00
Audrey Jensen
a8d9e372a3
Revert "add external link support and add forklift links"
This reverts commit 4a5d3060aafb814a12f961a8bde6a42eea07d37b.
2024-08-13 14:04:07 -05:00
Audrey Jensen
ec836a8669
Revert "allow external links"
This reverts commit f05b29675d17479a706ef6129fe45ddddb84b669.
2024-08-13 14:03:13 -05:00
4a5d3060aa add external link support and add forklift links 2024-08-12 19:04:17 +00:00
f05b29675d allow external links 2024-08-12 19:03:21 +00:00
bbbc9e1e1b Chainge complaint to comment 2023-10-24 11:23:44 -05:00
50f03619d1
change complaint to comment 2023-10-19 15:45:17 +00:00
eb72070dbf Merge pull request 'Handle no tickets results returned from search' (#13) from ticket-no-results into master
Reviewed-on: https://gitea/IT/intranet/pulls/13
2023-09-20 16:22:14 -05:00
Audrey Jensen
8620af8c10 keyword search includes id 2023-09-20 21:20:38 +00:00
Audrey Jensen
d6e700ca4b handle no tickets results returned from search 2023-09-20 21:06:14 +00:00
14 changed files with 141 additions and 350 deletions

View File

@ -14,7 +14,4 @@ MESSENGER_TRANSPORT_DSN=doctrine://default?auto_setup=0 #Leave this alone unless
MAILER_DSN=smtp://jv-com.mail.protection.outlook.com:25
#Anonymous Complaints Email Settings
COMPLAINT_RECIPIENT_ADDRESS=chris@jv.com
COMPLAINT_RECIPIENT_NAME="Chris Weiser"
#Safety Quiz Result Recipients
#Enter full email addresses, separated by commas
RESULT_INBOXES=""
COMPLAINT_RECIPIENT_NAME="Chris Weiser"

View File

@ -0,0 +1,23 @@
name: Intranet Deployment
on:
push:
branches:
- master
jobs:
Deploy:
name: Deploy Project files
runs-on: intranet
steps:
- name: Check out repository code
uses: actions/checkout@v4
with:
SSH-KEY: ${{secrets.read_key}}
SSH-KNOWN-HOSTS: gitea.jv.com,192.168.0.214 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBHsv90d6ofdNgJx0W6zPTVpouqDeF/qv/L0guzFBg6YON4jiubCovUZ0h7M8ipg/kXACHLfNBWAmNvsaGrPpHNU=
SSH-STRICT: 'false'
- name: Copy files to project dir
run: xcopy /E /I /Y /V . ${{ vars.PROD_DEPLOY_DIR }}
- name: Update Composer Packages
working-directory: ${{ vars.PROD_DEPLOY_DIR }}
run: composer update --no-interaction --working-dir=${{ vars.PROD_DEPLOY_DIR }}

5
.vscode/settings.json vendored Normal file
View File

@ -0,0 +1,5 @@
{
"gitea.owner": "audrey",
"gitea.repo": "intranet",
"gitea.instanceURL": "https://gitea.jv.com"
}

View File

@ -1,3 +1,5 @@
![Deployed](https://gitea.jv.com/audrey/intranet/actions/workflows/deploy.yaml/badge.svg)
[Install](#install)
[Configuring IIS](#iis-configuration)
[Updating](#updating)

View File

@ -39,8 +39,7 @@
"symfony/validator": "6.3.*",
"symfony/web-link": "6.3.*",
"symfony/yaml": "6.3.*",
"twig/cssinliner-extra": "^3.7",
"twig/extra-bundle": "^3.7",
"twig/extra-bundle": "^2.12|^3.0",
"twig/twig": "^2.12|^3.0"
},
"config": {

282
composer.lock generated
View File

@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "94525144f340c9dc7dd003c8b43372f0",
"content-hash": "6c9cd0fccf203daf66cab2a05cf2e389",
"packages": [
{
"name": "doctrine/annotations",
@ -2641,71 +2641,6 @@
],
"time": "2023-05-29T12:49:39+00:00"
},
{
"name": "symfony/css-selector",
"version": "v6.3.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/css-selector.git",
"reference": "88453e64cd86c5b60e8d2fb2c6f953bbc353ffbf"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/css-selector/zipball/88453e64cd86c5b60e8d2fb2c6f953bbc353ffbf",
"reference": "88453e64cd86c5b60e8d2fb2c6f953bbc353ffbf",
"shasum": ""
},
"require": {
"php": ">=8.1"
},
"type": "library",
"autoload": {
"psr-4": {
"Symfony\\Component\\CssSelector\\": ""
},
"exclude-from-classmap": [
"/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
},
{
"name": "Jean-François Simon",
"email": "jeanfrancois.simon@sensiolabs.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Converts CSS selectors to XPath expressions",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/css-selector/tree/v6.3.0"
},
"funding": [
{
"url": "https://symfony.com/sponsor",
"type": "custom"
},
{
"url": "https://github.com/fabpot",
"type": "github"
},
{
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift"
}
],
"time": "2023-03-20T16:43:42+00:00"
},
{
"name": "symfony/dependency-injection",
"version": "v6.3.1",
@ -5706,16 +5641,16 @@
},
{
"name": "symfony/runtime",
"version": "v6.3.1",
"version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/runtime.git",
"reference": "8e83b5d8e0ace903e1a91dedfe08a84ed2a54b0d"
"reference": "a8d2b8f6033a33c224b43065a10bab5e4f0be486"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/runtime/zipball/8e83b5d8e0ace903e1a91dedfe08a84ed2a54b0d",
"reference": "8e83b5d8e0ace903e1a91dedfe08a84ed2a54b0d",
"url": "https://api.github.com/repos/symfony/runtime/zipball/a8d2b8f6033a33c224b43065a10bab5e4f0be486",
"reference": "a8d2b8f6033a33c224b43065a10bab5e4f0be486",
"shasum": ""
},
"require": {
@ -5765,7 +5700,7 @@
"runtime"
],
"support": {
"source": "https://github.com/symfony/runtime/tree/v6.3.1"
"source": "https://github.com/symfony/runtime/tree/v6.3.12"
},
"funding": [
{
@ -5781,7 +5716,7 @@
"type": "tidelift"
}
],
"time": "2023-06-21T12:08:28+00:00"
"time": "2024-01-23T14:35:58+00:00"
},
{
"name": "symfony/security-bundle",
@ -7225,147 +7160,29 @@
],
"time": "2023-04-28T13:28:14+00:00"
},
{
"name": "tijsverkoyen/css-to-inline-styles",
"version": "2.2.6",
"source": {
"type": "git",
"url": "https://github.com/tijsverkoyen/CssToInlineStyles.git",
"reference": "c42125b83a4fa63b187fdf29f9c93cb7733da30c"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/c42125b83a4fa63b187fdf29f9c93cb7733da30c",
"reference": "c42125b83a4fa63b187fdf29f9c93cb7733da30c",
"shasum": ""
},
"require": {
"ext-dom": "*",
"ext-libxml": "*",
"php": "^5.5 || ^7.0 || ^8.0",
"symfony/css-selector": "^2.7 || ^3.0 || ^4.0 || ^5.0 || ^6.0"
},
"require-dev": {
"phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0 || ^7.5 || ^8.5.21 || ^9.5.10"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.2.x-dev"
}
},
"autoload": {
"psr-4": {
"TijsVerkoyen\\CssToInlineStyles\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
"authors": [
{
"name": "Tijs Verkoyen",
"email": "css_to_inline_styles@verkoyen.eu",
"role": "Developer"
}
],
"description": "CssToInlineStyles is a class that enables you to convert HTML-pages/files into HTML-pages/files with inline styles. This is very useful when you're sending emails.",
"homepage": "https://github.com/tijsverkoyen/CssToInlineStyles",
"support": {
"issues": "https://github.com/tijsverkoyen/CssToInlineStyles/issues",
"source": "https://github.com/tijsverkoyen/CssToInlineStyles/tree/2.2.6"
},
"time": "2023-01-03T09:29:04+00:00"
},
{
"name": "twig/cssinliner-extra",
"version": "v3.7.1",
"source": {
"type": "git",
"url": "https://github.com/twigphp/cssinliner-extra.git",
"reference": "59d107afea4ca58be35ae1386bd90b53424f3b34"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/twigphp/cssinliner-extra/zipball/59d107afea4ca58be35ae1386bd90b53424f3b34",
"reference": "59d107afea4ca58be35ae1386bd90b53424f3b34",
"shasum": ""
},
"require": {
"php": ">=7.1.3",
"tijsverkoyen/css-to-inline-styles": "^2.0",
"twig/twig": "^2.7|^3.0"
},
"require-dev": {
"symfony/phpunit-bridge": "^5.4|^6.3"
},
"type": "library",
"autoload": {
"psr-4": {
"Twig\\Extra\\CssInliner\\": ""
},
"exclude-from-classmap": [
"/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com",
"homepage": "http://fabien.potencier.org",
"role": "Lead Developer"
}
],
"description": "A Twig extension to allow inlining CSS",
"homepage": "https://twig.symfony.com",
"keywords": [
"css",
"inlining",
"twig"
],
"support": {
"source": "https://github.com/twigphp/cssinliner-extra/tree/v3.7.1"
},
"funding": [
{
"url": "https://github.com/fabpot",
"type": "github"
},
{
"url": "https://tidelift.com/funding/github/packagist/twig/twig",
"type": "tidelift"
}
],
"time": "2023-07-29T15:34:56+00:00"
},
{
"name": "twig/extra-bundle",
"version": "v3.7.1",
"version": "v3.6.1",
"source": {
"type": "git",
"url": "https://github.com/twigphp/twig-extra-bundle.git",
"reference": "f10baafe6eb0ecd615d52d5cbfb713a39f68e8f3"
"reference": "802cc2dd46ec88285d6c7fa85c26ab7f2cd5bc49"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/twigphp/twig-extra-bundle/zipball/f10baafe6eb0ecd615d52d5cbfb713a39f68e8f3",
"reference": "f10baafe6eb0ecd615d52d5cbfb713a39f68e8f3",
"url": "https://api.github.com/repos/twigphp/twig-extra-bundle/zipball/802cc2dd46ec88285d6c7fa85c26ab7f2cd5bc49",
"reference": "802cc2dd46ec88285d6c7fa85c26ab7f2cd5bc49",
"shasum": ""
},
"require": {
"php": ">=7.2.5",
"symfony/framework-bundle": "^5.4|^6.0",
"symfony/twig-bundle": "^5.4|^6.0",
"symfony/framework-bundle": "^4.4|^5.0|^6.0",
"symfony/twig-bundle": "^4.4|^5.0|^6.0",
"twig/twig": "^2.7|^3.0"
},
"require-dev": {
"league/commonmark": "^1.0|^2.0",
"symfony/phpunit-bridge": "^5.4|^6.3",
"symfony/phpunit-bridge": "^4.4.9|^5.0.9|^6.0",
"twig/cache-extra": "^3.0",
"twig/cssinliner-extra": "^2.12|^3.0",
"twig/html-extra": "^2.12|^3.0",
@ -7403,7 +7220,7 @@
"twig"
],
"support": {
"source": "https://github.com/twigphp/twig-extra-bundle/tree/v3.7.1"
"source": "https://github.com/twigphp/twig-extra-bundle/tree/v3.6.1"
},
"funding": [
{
@ -7415,7 +7232,7 @@
"type": "tidelift"
}
],
"time": "2023-07-29T15:34:56+00:00"
"time": "2023-05-06T11:11:46+00:00"
},
{
"name": "twig/twig",
@ -9294,6 +9111,71 @@
],
"time": "2023-04-25T10:46:17+00:00"
},
{
"name": "symfony/css-selector",
"version": "v6.3.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/css-selector.git",
"reference": "88453e64cd86c5b60e8d2fb2c6f953bbc353ffbf"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/css-selector/zipball/88453e64cd86c5b60e8d2fb2c6f953bbc353ffbf",
"reference": "88453e64cd86c5b60e8d2fb2c6f953bbc353ffbf",
"shasum": ""
},
"require": {
"php": ">=8.1"
},
"type": "library",
"autoload": {
"psr-4": {
"Symfony\\Component\\CssSelector\\": ""
},
"exclude-from-classmap": [
"/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
},
{
"name": "Jean-François Simon",
"email": "jeanfrancois.simon@sensiolabs.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Converts CSS selectors to XPath expressions",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/css-selector/tree/v6.3.0"
},
"funding": [
{
"url": "https://symfony.com/sponsor",
"type": "custom"
},
{
"url": "https://github.com/fabpot",
"type": "github"
},
{
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift"
}
],
"time": "2023-03-20T16:43:42+00:00"
},
{
"name": "symfony/debug-bundle",
"version": "v6.3.0",
@ -9752,5 +9634,5 @@
"ext-iconv": "*"
},
"platform-dev": [],
"plugin-api-version": "2.3.0"
"plugin-api-version": "2.2.0"
}

View File

@ -7,12 +7,12 @@ Questions:
# Choices:
# - {Label: "[Text for this label]", Value: [True/False representing if this is the correct answer]}
# - {Label: "[Text for this label]", Value: [True/False representing if this is the correct answer]}
Q1:
Question_1:
Text: "Some safety topics in J.V. Manufacturing Safety Orientation Training are General Safety, Safe Lifting, Fall Protection and Forklift Training."
Choices:
- {Label: "True", Value: true}
- {Label: "False", Value: false}
Q2:
Question2:
Text: "Accidents are caused by:"
Choices:
- {Label: "Unsafe acts of another employee.", Value: False}

View File

@ -16,7 +16,7 @@ framework:
# sync: 'sync://'
routing:
#Symfony\Component\Mailer\Messenger\SendEmailMessage: async
Symfony\Component\Mailer\Messenger\SendEmailMessage: async
Symfony\Component\Notifier\Message\ChatMessage: async
Symfony\Component\Notifier\Message\SmsMessage: async

View File

@ -34,12 +34,14 @@ class CSPController extends AbstractController
$searchQuery = $ticketsRepo->getByKeyword($searchKeywords);
$paginator = new \Doctrine\ORM\Tools\Pagination\Paginator($searchQuery);
$ticketsPerPage = count($paginator);
//If no tickets were found, return a special page.
//NOTE: we set page information to 1 of 1. Paginator has no tickets, which we're letting the twig template deal with.
return $this->render('cspViewer.html.twig',['tickets' => $paginator, 'portal' => $portal, 'pageNum' => 1, 'pageCount' => 1, 'form' => $form]);
}
else
{
$paginator = new \Doctrine\ORM\Tools\Pagination\Paginator($query);
}
//Pagination
$totalItems = count($paginator);
$pageCount = ceil($totalItems / $ticketsPerPage);

View File

@ -2,9 +2,6 @@
namespace App\Controller;
use App\Form\SafetyQuizType;
use Egulias\EmailValidator\Warning\Warning;
use Error;
use phpDocumentor\Reflection\Types\Boolean;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
@ -12,12 +9,6 @@ use Symfony\Component\Yaml\Yaml;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Psr\Log\LoggerInterface;
use Symfony\Component\Form\FormInterface;
use Symfony\Component\Mime\Address;
use Symfony\Bridge\Twig\Mime\TemplatedEmail;
use Symfony\Component\DependencyInjection\Exception\EnvParameterException;
use Symfony\Component\Mailer\Exception\TransportExceptionInterface;
use Symfony\Component\Mailer\MailerInterface;
use function PHPUnit\Framework\containsIdentical;
@ -30,7 +21,7 @@ class SafetyController extends AbstractController
return $this->render('Training/Safety/safetyHome.html.twig',['content' => $contentFile]);
}
#[Route('/training/safety/quiz')]
public function Quiz(Request $request, LoggerInterface $log, MailerInterface $mailer)
public function Quiz(Request $request, LoggerInterface $log)
{
$form = $this->createForm(SafetyQuizType::class);
$form->handleRequest($request);
@ -49,7 +40,6 @@ class SafetyController extends AbstractController
}
}
$log->Debug($testerName . ' quiz answers correct: ' . $correctAnswers);
$this->sendQuizResults($correctAnswers, $form, $mailer, $log);
return $this->render('Training/Safety/quizResults.html.twig', ['testerName'=>$testerName,
'correctAnswers'=>$correctAnswers, 'totalAnswers'=>count($data)]);
}
@ -114,74 +104,4 @@ class SafetyController extends AbstractController
return new Response($header . $navButtons . $contents);
}
//Send an email with the quiz results
public function sendQuizResults(int $answersCorrect, FormInterface $submittedQuiz, MailerInterface $mailer, LoggerInterface $log)
{
//Fetch array of mail inboxes to send messages to.
//If env var doesn't exist then fail gracefully
$recipients = []; //X: keep in method's scope
try
{
$recipients = explode(",", $_SERVER['RESULT_INBOXES']);
}
catch (EnvParameterException $e)
{
$log->warning("safety Quiz Submission: Environment Variable RESULT_INBOXES not configured. Quiz results will not be emailed.");
return;
}
//If no inboxes configured, cancel
if(count($recipients) <= 0)
{
$log->warning("Safety Quiz Submission: No email recipients configured");
return;
}
//Prepare payload data
$submittedData = $submittedQuiz->getData();
$submission = [];
$quiz = Yaml::parseFile('../config/SafetyQuiz.yaml', 2, 2, Yaml::PARSE_OBJECT_FOR_MAP)['Questions'];
$questionKeys = array_keys($quiz);
foreach($questionKeys as $key)
{
$questionData = [];
$questionData += ['key'=>$key, 'text'=>$quiz[$key]['Text']];
$answer = null;
foreach($quiz[$key]['Choices'] as $choice)
{
if($choice['Value'])
{
$answer = $choice;
break;
}
}
$questionData += ['answer'=>$answer, 'submittedAnswer'=>$submittedData[$key]];
$submission += $questionData;
$quiz[$key] += ['submittedAnswer'=>$submittedData[$key], 'answer'=>$answer];
}
//var_dump($submission);
//Build & send the email
$email = (new TemplatedEmail())
->from(new Address('noreply@jv.com', 'Internal'))
->to(new Address("ajensen@jv.com"))
->subject('Safety Quiz Submission')
->htmlTemplate('Emails/safetyQuizResults.html.twig')
->context([
'submission' => $quiz,
'answersCorrect' => $answersCorrect,
'totalQuestions' => count($questionKeys),
'submitterName' => $submittedData['Name']])
;
try
{
$log->info("Sending Quiz Results...");
$mailer->send($email);
}
catch (TransportExceptionInterface $e)
{
$log->error("Failed to email quiz results");
$log->error($e);
}
}
}

View File

@ -49,6 +49,7 @@ class TicketRepository extends EntityRepository
{
$qb->andwhere('t.description LIKE :keyword'.$i)
->orwhere('t.summary LIKE :keyword'.$i)
->orwhere('t.id LIKE :keyword'.$i)
->setParameter('keyword'.$i, '%'.$keyword.'%');
}
return $qb

View File

@ -1,53 +0,0 @@
{% apply inline_css %}
<style>
.correct
{
background-color: #9dff96;
}
.incorrect
{
background-color: #ff9696;
}
</style>
<h1>A Quiz-taker has submitted the J.V. Safety Quiz <h1>
<h2> {{ submitterName }} has completed the quiz, scoring {{answersCorrect}}/{{totalQuestions}} correct.</h2>
<table>
<thead>
<tr>
<td colspan="1">#</td>
<td colspan="4">Question</td>
<td colspan="2">Submitted Answer</td>
<td colspan="2">Correct Answer</td>
</tr>
</thead>
<tbody>
{% for key,question in submission %}
<tr>
<td>
{% if key != null %}
{{key}}</td>
{% else %}
N/A
{% endif %}
<td>
{% if question["Text"] != null %}
{{question["Text"]}}
{% else %}
N/A
{% endif %}
</td>
<td class="{{ (question['submittedAnswer']==true)? 'correct': 'incorrect' }}">
{{question['submittedAnswer']}}
</td>
<td>
{% if question['answer']['Label'] != null %}
{{question['answer']['Label']}}
{% else %}
N/A
{% endif %}
</td>
</tr>
{% endfor %}
</tbody>
</table>
{% endapply %}

View File

@ -37,11 +37,24 @@
</div>
</div>
{% endfor %}
</div>
</div>
{# Forklift Training #}
<div class="card-group">
<div class="card text-center service-card">
<div class="card-body">
<div class="card-header">
<h5 class="card-title">Forklift Training</h5>
</div>
<div class="card-text">
<ul class="list-group list-group-flush">
<a class="list-group-item list-group-item-action list-item" href="https://sunbeltrentals.csod.com/login/render.aspx?id=defaultclp">Account Creation</a>
<a class="list-group-item list-group-item-action list-item" href="https://www.sunbeltrentals.com/training/safety/">Training</a>
</ul>
</div>
</div>
</div>
</div>
</div>
</body>
</html>

View File

@ -6,12 +6,12 @@
<body>
{{ include('_navbar.html.twig')}}
<div class="container">
<h2>Anonymous Complaint Page
<h2>Anonymous Comment Page
<h4 class="text-bold">Instructions</h4>
<p>Type your complaint or problem into the message box below and click "Submit".
<br>Messages will be sent directly to {{ complaintReceiverName }}'s email account.
<br>Messages will be completely anonymous so complaints cannot be traced to a specific person.
<br>Messages will be completely anonymous so comments cannot be traced to a specific person.
<br> Feel free to submit any problem or concern.
<br><strong>Note: If you add personally identifying information (such as your name) then this won't be anonymous. Avoid this, unless you want your identity to be known</strong>
</p>