From be49c8246c58f9aef127224414e5b3558aff46b5 Mon Sep 17 00:00:00 2001 From: jordancj Date: Wed, 29 Jan 2025 12:47:12 +1100 Subject: [PATCH 1/8] added hotkeys for ops log, radio log, create incident and view incident log --- .github/workflows/linter.yml | 18 ----------------- .github/workflows/publish_dev.yml | 31 ------------------------------ .github/workflows/publish_prod.yml | 29 ---------------------------- src/injectscripts/all.js | 23 ++++++++++++++++++++-- 4 files changed, 21 insertions(+), 80 deletions(-) delete mode 100644 .github/workflows/linter.yml delete mode 100644 .github/workflows/publish_dev.yml delete mode 100644 .github/workflows/publish_prod.yml diff --git a/.github/workflows/linter.yml b/.github/workflows/linter.yml deleted file mode 100644 index cdb40f73..00000000 --- a/.github/workflows/linter.yml +++ /dev/null @@ -1,18 +0,0 @@ -name: Linter -on: - pull_request: - branches: - - master -jobs: - lint: - name: Lint Code Base - runs-on: ubuntu-latest - steps: - - name: Checkout Code - uses: actions/checkout@v3 - with: - fetch-depth: 0 - - name: Install modules - run: npm install - - name: Lint - run: npm run lint \ No newline at end of file diff --git a/.github/workflows/publish_dev.yml b/.github/workflows/publish_dev.yml deleted file mode 100644 index 65b08d58..00000000 --- a/.github/workflows/publish_dev.yml +++ /dev/null @@ -1,31 +0,0 @@ -name: Publish Dev Preview to Chrome Store -on: - push: - branches: - - master - - main -jobs: - lintandpublish: - name: Publish Dev - runs-on: ubuntu-latest - steps: - - name: Checkout Code - uses: actions/checkout@v3 - with: - fetch-depth: 0 - - name: Install modules - run: npm install - - name: Lint - run: npm run lint - - name: Build package - run: npm run dev - - name: Chrome extension upload action - uses: mnao305/chrome-extension-upload@v4.0.1 - with: - file-path: build/*.zip - extension-id: ${{ secrets.CHROMESTORE_DEV_ID }} - client-id: ${{ secrets.CHROMESTORE_CLIENT_ID }} - client-secret: ${{ secrets.CHROMESTORE_CLIENT_SECRET }} - refresh-token: ${{ secrets.CHROMESTORE_REFRESH_TOKEN }} - publish: false - glob: true \ No newline at end of file diff --git a/.github/workflows/publish_prod.yml b/.github/workflows/publish_prod.yml deleted file mode 100644 index 33d709c0..00000000 --- a/.github/workflows/publish_prod.yml +++ /dev/null @@ -1,29 +0,0 @@ -name: Publish Prod to Chrome Store -on: - release: - types: [published] -jobs: - lintandpublish: - name: Publish Prod - runs-on: ubuntu-latest - steps: - - name: Checkout Code - uses: actions/checkout@v3 - with: - fetch-depth: 0 - - name: Install modules - run: npm install - - name: Lint - run: npm run lint - - name: Build Package - run: npm run prod - - name: Chrome extension upload action - uses: mnao305/chrome-extension-upload@v4.0.1 - with: - file-path: build/*.zip - extension-id: ${{ secrets.CHROMESTORE_PROD_ID }} - client-id: ${{ secrets.CHROMESTORE_CLIENT_ID }} - client-secret: ${{ secrets.CHROMESTORE_CLIENT_SECRET }} - refresh-token: ${{ secrets.CHROMESTORE_REFRESH_TOKEN }} - publish: false - glob: true \ No newline at end of file diff --git a/src/injectscripts/all.js b/src/injectscripts/all.js index 2e1b9355..9968e25a 100644 --- a/src/injectscripts/all.js +++ b/src/injectscripts/all.js @@ -11,13 +11,33 @@ window.postMessage( document.addEventListener('keydown', function(event) { - if (event.ctrlKey && event.shiftKey && event.key.toLowerCase() === 'l') { + if (event.altKey && event.key.toLowerCase() === 'r') { event.preventDefault(); // Prevents the default action (e.g., focusing on the address bar) layout.createRadioEntry(); // Add your custom logic here } }); +document.addEventListener('keydown', function(event) { + if (event.altKey && event.key.toLowerCase() === 'o') { + event.preventDefault(); // Prevents the default action (e.g., focusing on the address bar) + layout.createEntry(); + // Add your custom logic here + } +}); + +document.addEventListener('keydown', function(event) { + if (event.altKey && event.key.toLowerCase() === 'i') { + window.location = "/jobs/create"; + } +}); + +document.addEventListener('keydown', function(event) { + if (event.altKey && event.shiftKey && event.key.toLowerCase() === 'i') { + event.preventDefault(); + window.location = "/jobs"; + } +}); window.addEventListener('message', function (event) { // We only accept messages from content scrip if (event.source !== window) return; @@ -29,7 +49,6 @@ window.addEventListener('message', function (event) { } } }); - whenWeAreReady(function () { if (typeof urls.Base == 'undefined') { urls.Base = 'https://' + location.hostname; From 6ac5a0e8df8fb14851ea8e2a0dfe6a8bdfe99481 Mon Sep 17 00:00:00 2001 From: jordancj Date: Wed, 29 Jan 2025 12:54:45 +1100 Subject: [PATCH 2/8] readded workflows --- .github/workflows/linter.yml | 18 +++++++++++++++++ .github/workflows/publish_dev.yml | 31 ++++++++++++++++++++++++++++++ .github/workflows/publish_prod.yml | 29 ++++++++++++++++++++++++++++ 3 files changed, 78 insertions(+) create mode 100644 .github/workflows/linter.yml create mode 100644 .github/workflows/publish_dev.yml create mode 100644 .github/workflows/publish_prod.yml diff --git a/.github/workflows/linter.yml b/.github/workflows/linter.yml new file mode 100644 index 00000000..cdb40f73 --- /dev/null +++ b/.github/workflows/linter.yml @@ -0,0 +1,18 @@ +name: Linter +on: + pull_request: + branches: + - master +jobs: + lint: + name: Lint Code Base + runs-on: ubuntu-latest + steps: + - name: Checkout Code + uses: actions/checkout@v3 + with: + fetch-depth: 0 + - name: Install modules + run: npm install + - name: Lint + run: npm run lint \ No newline at end of file diff --git a/.github/workflows/publish_dev.yml b/.github/workflows/publish_dev.yml new file mode 100644 index 00000000..65b08d58 --- /dev/null +++ b/.github/workflows/publish_dev.yml @@ -0,0 +1,31 @@ +name: Publish Dev Preview to Chrome Store +on: + push: + branches: + - master + - main +jobs: + lintandpublish: + name: Publish Dev + runs-on: ubuntu-latest + steps: + - name: Checkout Code + uses: actions/checkout@v3 + with: + fetch-depth: 0 + - name: Install modules + run: npm install + - name: Lint + run: npm run lint + - name: Build package + run: npm run dev + - name: Chrome extension upload action + uses: mnao305/chrome-extension-upload@v4.0.1 + with: + file-path: build/*.zip + extension-id: ${{ secrets.CHROMESTORE_DEV_ID }} + client-id: ${{ secrets.CHROMESTORE_CLIENT_ID }} + client-secret: ${{ secrets.CHROMESTORE_CLIENT_SECRET }} + refresh-token: ${{ secrets.CHROMESTORE_REFRESH_TOKEN }} + publish: false + glob: true \ No newline at end of file diff --git a/.github/workflows/publish_prod.yml b/.github/workflows/publish_prod.yml new file mode 100644 index 00000000..33d709c0 --- /dev/null +++ b/.github/workflows/publish_prod.yml @@ -0,0 +1,29 @@ +name: Publish Prod to Chrome Store +on: + release: + types: [published] +jobs: + lintandpublish: + name: Publish Prod + runs-on: ubuntu-latest + steps: + - name: Checkout Code + uses: actions/checkout@v3 + with: + fetch-depth: 0 + - name: Install modules + run: npm install + - name: Lint + run: npm run lint + - name: Build Package + run: npm run prod + - name: Chrome extension upload action + uses: mnao305/chrome-extension-upload@v4.0.1 + with: + file-path: build/*.zip + extension-id: ${{ secrets.CHROMESTORE_PROD_ID }} + client-id: ${{ secrets.CHROMESTORE_CLIENT_ID }} + client-secret: ${{ secrets.CHROMESTORE_CLIENT_SECRET }} + refresh-token: ${{ secrets.CHROMESTORE_REFRESH_TOKEN }} + publish: false + glob: true \ No newline at end of file From 7d68dd5125eaf47b3e5ece54fb6ebd4e19a85ba0 Mon Sep 17 00:00:00 2001 From: jordancj Date: Wed, 29 Jan 2025 12:56:59 +1100 Subject: [PATCH 3/8] edited back to original hotkey for radio log --- src/injectscripts/all.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/injectscripts/all.js b/src/injectscripts/all.js index 9968e25a..1c044b2d 100644 --- a/src/injectscripts/all.js +++ b/src/injectscripts/all.js @@ -11,7 +11,7 @@ window.postMessage( document.addEventListener('keydown', function(event) { - if (event.altKey && event.key.toLowerCase() === 'r') { + if (event.ctrlKey && event.shiftKey && event.key.toLowerCase() === 'l') { event.preventDefault(); // Prevents the default action (e.g., focusing on the address bar) layout.createRadioEntry(); // Add your custom logic here From 0959c42c7aa45b479af3381a516e9f14e01739b0 Mon Sep 17 00:00:00 2001 From: jordancj Date: Wed, 29 Jan 2025 13:12:37 +1100 Subject: [PATCH 4/8] added more hotkeys --- src/injectscripts/all.js | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/src/injectscripts/all.js b/src/injectscripts/all.js index 1c044b2d..58959265 100644 --- a/src/injectscripts/all.js +++ b/src/injectscripts/all.js @@ -38,6 +38,33 @@ document.addEventListener('keydown', function(event) { window.location = "/jobs"; } }); + +document.addEventListener('keydown', function(event) { + if (event.altKey && event.key.toLowerCase() === 'm') { + event.preventDefault(); + window.location = "/Messages/Create"; + } +}); +document.addEventListener('keydown', function(event) { + if (event.altKey && event.shiftKey && event.key.toLowerCase() === 'm') { + event.preventDefault(); + window.location = "/Messages"; + } +}); + +document.addEventListener('keydown', function(event) { + if (event.altKey && event.key.toLowerCase() === 'h') { + event.preventDefault(); + window.location = "/Headquarters/Manage"; + } +}); + +document.addEventListener('keydown', function(event) { + if (event.altKey && event.key.toLowerCase() === 'c') { + event.preventDefault(); + window.location = "/ContactGroup"; + } +}); window.addEventListener('message', function (event) { // We only accept messages from content scrip if (event.source !== window) return; From dbf41c282874d3019a6a096900b4f75cced767b6 Mon Sep 17 00:00:00 2001 From: jordancj Date: Wed, 29 Jan 2025 14:39:02 +1100 Subject: [PATCH 5/8] tidied up code --- src/injectscripts/all.js | 61 +++++++++++++--------------------------- 1 file changed, 19 insertions(+), 42 deletions(-) diff --git a/src/injectscripts/all.js b/src/injectscripts/all.js index 58959265..f9fc50ae 100644 --- a/src/injectscripts/all.js +++ b/src/injectscripts/all.js @@ -14,57 +14,34 @@ document.addEventListener('keydown', function(event) { if (event.ctrlKey && event.shiftKey && event.key.toLowerCase() === 'l') { event.preventDefault(); // Prevents the default action (e.g., focusing on the address bar) layout.createRadioEntry(); - // Add your custom logic here - } -}); - -document.addEventListener('keydown', function(event) { - if (event.altKey && event.key.toLowerCase() === 'o') { - event.preventDefault(); // Prevents the default action (e.g., focusing on the address bar) - layout.createEntry(); - // Add your custom logic here - } -}); - -document.addEventListener('keydown', function(event) { - if (event.altKey && event.key.toLowerCase() === 'i') { + // Add your custom logic here + } else if (event.altKey && event.shiftKey && event.key.toLowerCase() === 'o') { + event.preventDefault(); + window.location = "/OperationsLog"; + } else if (event.altKey && event.key.toLowerCase() === 'o') { + event.preventDefault(); + layout.createEntry(); + } else if (event.altKey && event.shiftKey && event.key.toLowerCase() === 'i') { + event.preventDefault(); + window.location = "/jobs"; + } else if (event.altKey && event.key.toLowerCase() === 'i') { + event.preventDefault(); window.location = "/jobs/create"; - } -}); - -document.addEventListener('keydown', function(event) { - if (event.altKey && event.shiftKey && event.key.toLowerCase() === 'i') { - event.preventDefault(); - window.location = "/jobs"; - } -}); - -document.addEventListener('keydown', function(event) { - if (event.altKey && event.key.toLowerCase() === 'm') { + } else if (event.altKey && event.shiftKey && event.key.toLowerCase() === 'm') { + event.preventDefault(); + window.location = "/Messages"; + } else if (event.altKey && event.key.toLowerCase() === 'm') { event.preventDefault(); window.location = "/Messages/Create"; - } -}); -document.addEventListener('keydown', function(event) { - if (event.altKey && event.shiftKey && event.key.toLowerCase() === 'm') { - event.preventDefault(); - window.location = "/Messages"; - } -}); - -document.addEventListener('keydown', function(event) { - if (event.altKey && event.key.toLowerCase() === 'h') { + } else if (event.altKey && event.key.toLowerCase() === 'h') { event.preventDefault(); window.location = "/Headquarters/Manage"; - } -}); - -document.addEventListener('keydown', function(event) { - if (event.altKey && event.key.toLowerCase() === 'c') { + } else if (event.altKey && event.key.toLowerCase() === 'c') { event.preventDefault(); window.location = "/ContactGroup"; } }); + window.addEventListener('message', function (event) { // We only accept messages from content scrip if (event.source !== window) return; From 06893d9faa7d308379bebebbb45156261c08921d Mon Sep 17 00:00:00 2001 From: jordancj Date: Wed, 29 Jan 2025 17:08:22 +1100 Subject: [PATCH 6/8] added icems shortcuts --- src/injectscripts/all.js | 32 +++++++++++++++++++++++++------- 1 file changed, 25 insertions(+), 7 deletions(-) diff --git a/src/injectscripts/all.js b/src/injectscripts/all.js index f9fc50ae..f27c9d0d 100644 --- a/src/injectscripts/all.js +++ b/src/injectscripts/all.js @@ -12,9 +12,8 @@ window.postMessage( document.addEventListener('keydown', function(event) { if (event.ctrlKey && event.shiftKey && event.key.toLowerCase() === 'l') { - event.preventDefault(); // Prevents the default action (e.g., focusing on the address bar) - layout.createRadioEntry(); - // Add your custom logic here + event.preventDefault(); + layout.createRadioEntry(); } else if (event.altKey && event.shiftKey && event.key.toLowerCase() === 'o') { event.preventDefault(); window.location = "/OperationsLog"; @@ -22,14 +21,14 @@ document.addEventListener('keydown', function(event) { event.preventDefault(); layout.createEntry(); } else if (event.altKey && event.shiftKey && event.key.toLowerCase() === 'i') { - event.preventDefault(); - window.location = "/jobs"; + event.preventDefault(); + window.location = "/jobs"; } else if (event.altKey && event.key.toLowerCase() === 'i') { event.preventDefault(); window.location = "/jobs/create"; } else if (event.altKey && event.shiftKey && event.key.toLowerCase() === 'm') { - event.preventDefault(); - window.location = "/Messages"; + event.preventDefault(); + window.location = "/Messages"; } else if (event.altKey && event.key.toLowerCase() === 'm') { event.preventDefault(); window.location = "/Messages/Create"; @@ -39,9 +38,28 @@ document.addEventListener('keydown', function(event) { } else if (event.altKey && event.key.toLowerCase() === 'c') { event.preventDefault(); window.location = "/ContactGroup"; + } else if (event.altKey && event.key.toLowerCase() === 'z') { //ICEMS IAR shortcut + event.preventDefault(); + var button = document.querySelector(".btn-success[data-bind*='requestAgency']"); + if (button && button.offsetParent !== null) { + button.click(); + } else { + console.log("Error: Button not found or hidden!"); + return; + } + } else if (event.altKey && event.key.toLowerCase() === 'x') { //ICEMS IUM shortcut + event.preventDefault(); + var button = document.querySelector(".btn-acknowledge[data-bind*='showIUMModal']"); + if (button && button.offsetParent !== null) { + button.click(); + } else { + console.log("Error: Button not found or hidden!"); + return; + } } }); + window.addEventListener('message', function (event) { // We only accept messages from content scrip if (event.source !== window) return; From a29fc6e156cab6541f237b59dc7707f1393841a3 Mon Sep 17 00:00:00 2001 From: jordancj Date: Wed, 29 Jan 2025 18:24:59 +1100 Subject: [PATCH 7/8] added comments --- src/injectscripts/all.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/injectscripts/all.js b/src/injectscripts/all.js index f27c9d0d..525ed2b4 100644 --- a/src/injectscripts/all.js +++ b/src/injectscripts/all.js @@ -11,13 +11,13 @@ window.postMessage( document.addEventListener('keydown', function(event) { - if (event.ctrlKey && event.shiftKey && event.key.toLowerCase() === 'l') { + if (event.ctrlKey && event.shiftKey && event.key.toLowerCase() === 'l') { //create radio event.preventDefault(); layout.createRadioEntry(); } else if (event.altKey && event.shiftKey && event.key.toLowerCase() === 'o') { event.preventDefault(); window.location = "/OperationsLog"; - } else if (event.altKey && event.key.toLowerCase() === 'o') { + } else if (event.altKey && event.key.toLowerCase() === 'o') { //create ops log event.preventDefault(); layout.createEntry(); } else if (event.altKey && event.shiftKey && event.key.toLowerCase() === 'i') { @@ -38,7 +38,7 @@ document.addEventListener('keydown', function(event) { } else if (event.altKey && event.key.toLowerCase() === 'c') { event.preventDefault(); window.location = "/ContactGroup"; - } else if (event.altKey && event.key.toLowerCase() === 'z') { //ICEMS IAR shortcut + } else if (event.altKey && event.key.toLowerCase() === 'z') { //ICEMS IAR event.preventDefault(); var button = document.querySelector(".btn-success[data-bind*='requestAgency']"); if (button && button.offsetParent !== null) { @@ -47,7 +47,7 @@ document.addEventListener('keydown', function(event) { console.log("Error: Button not found or hidden!"); return; } - } else if (event.altKey && event.key.toLowerCase() === 'x') { //ICEMS IUM shortcut + } else if (event.altKey && event.key.toLowerCase() === 'x') { //ICEMS IUM event.preventDefault(); var button = document.querySelector(".btn-acknowledge[data-bind*='showIUMModal']"); if (button && button.offsetParent !== null) { From a4722d2d40a1b83dae9babf67ac494f88230426e Mon Sep 17 00:00:00 2001 From: jordancj Date: Thu, 30 Jan 2025 16:38:23 +1100 Subject: [PATCH 8/8] added mac compatibility --- src/injectscripts/all.js | 28 +++++++++++----------------- 1 file changed, 11 insertions(+), 17 deletions(-) diff --git a/src/injectscripts/all.js b/src/injectscripts/all.js index 525ed2b4..dd507a8c 100644 --- a/src/injectscripts/all.js +++ b/src/injectscripts/all.js @@ -14,47 +14,41 @@ document.addEventListener('keydown', function(event) { if (event.ctrlKey && event.shiftKey && event.key.toLowerCase() === 'l') { //create radio event.preventDefault(); layout.createRadioEntry(); - } else if (event.altKey && event.shiftKey && event.key.toLowerCase() === 'o') { + } else if (event.altKey && event.shiftKey && event.code === "KeyO") { event.preventDefault(); window.location = "/OperationsLog"; - } else if (event.altKey && event.key.toLowerCase() === 'o') { //create ops log + } else if (event.altKey && event.code === "KeyO") { //create ops log event.preventDefault(); layout.createEntry(); - } else if (event.altKey && event.shiftKey && event.key.toLowerCase() === 'i') { + } else if (event.altKey && event.shiftKey && event.code === "KeyI") { event.preventDefault(); window.location = "/jobs"; - } else if (event.altKey && event.key.toLowerCase() === 'i') { + } else if (event.altKey && event.code === "KeyI") { event.preventDefault(); window.location = "/jobs/create"; - } else if (event.altKey && event.shiftKey && event.key.toLowerCase() === 'm') { + } else if (event.altKey && event.shiftKey && event.code === "KeyM") { event.preventDefault(); window.location = "/Messages"; - } else if (event.altKey && event.key.toLowerCase() === 'm') { + } else if (event.altKey && event.code === "KeyM") { event.preventDefault(); window.location = "/Messages/Create"; - } else if (event.altKey && event.key.toLowerCase() === 'h') { + } else if (event.altKey && event.code === "KeyH") { event.preventDefault(); window.location = "/Headquarters/Manage"; - } else if (event.altKey && event.key.toLowerCase() === 'c') { + } else if (event.altKey && event.code === "KeyC") { event.preventDefault(); window.location = "/ContactGroup"; - } else if (event.altKey && event.key.toLowerCase() === 'z') { //ICEMS IAR + } else if (event.altKey && event.code === "KeyZ") { //ICEMS IAR event.preventDefault(); var button = document.querySelector(".btn-success[data-bind*='requestAgency']"); if (button && button.offsetParent !== null) { button.click(); - } else { - console.log("Error: Button not found or hidden!"); - return; } - } else if (event.altKey && event.key.toLowerCase() === 'x') { //ICEMS IUM + } else if (event.altKey && event.code === "KeyX") { //ICEMS IUM event.preventDefault(); - var button = document.querySelector(".btn-acknowledge[data-bind*='showIUMModal']"); + button = document.querySelector(".btn-acknowledge[data-bind*='showIUMModal']"); if (button && button.offsetParent !== null) { button.click(); - } else { - console.log("Error: Button not found or hidden!"); - return; } } });