From 0326d87261631a77ac6719d75c0d605d941b8801 Mon Sep 17 00:00:00 2001 From: Your Name Date: Fri, 16 May 2025 17:14:05 -0400 Subject: [PATCH] Migrated from Sprockets to Propshaft. --- .DS_Store | Bin 8196 -> 8196 bytes .cursorrules | 3 +- Gemfile | 19 +- Gemfile.lock | 53 +- README.md | 13 +- app/assets/config/manifest.js | 12 +- app/assets/javascripts/admin.js.coffee | 3 - app/assets/javascripts/api.js.coffee | 3 - app/assets/javascripts/application.js | 51 +- app/assets/javascripts/matches.js.coffee | 4 - app/assets/javascripts/mats.js.coffee | 3 - app/assets/javascripts/schools.js.coffee | 3 - app/assets/javascripts/static_pages.js.coffee | 3 - app/assets/javascripts/tournaments.js.coffee | 3 - app/assets/javascripts/weights.js.coffee | 3 - app/assets/javascripts/wrestlers.js.coffee | 3 - app/assets/stylesheets/admin.css | 3 - app/assets/stylesheets/api.css | 4 - app/assets/stylesheets/application.css | 48 +- app/assets/stylesheets/matches.css | 3 - app/assets/stylesheets/mats.css | 3 - app/assets/stylesheets/schools.css | 3 - app/assets/stylesheets/static_pages.css | 3 - app/assets/stylesheets/tournaments.css | 3 - app/assets/stylesheets/weights.css | 3 - app/assets/stylesheets/wrestlers.css | 3 - app/views/layouts/application.html.erb | 9 +- app/views/matches/_matchstats.html.erb | 12 +- .../_matchstats_variable_score_input.html.erb | 4 +- app/views/matches/spectate.html.erb | 23 +- config/application.rb | 2 +- config/environments/development.rb | 3 + config/importmap.rb | 24 + config/initializers/assets.rb | 12 - .../03-pool_to_bracket_tournament_setup.cy.js | 30 + .../e2e/05-matstats_realtime_updates.cy.js | 2 +- deploy/rails-prod-Dockerfile | 7 +- ...fest-9fd6d23105fac664dad8fed5934602ea.json | 1 - ...c20458f542a17234f934ea53d16e0e1899fda5e.js | 510 - ...458f542a17234f934ea53d16e0e1899fda5e.js.gz | Bin 3844 -> 0 bytes ...47c2bafa655caaa5d13fa34e9bf361c1c2aedb7.js | 512 - ...2bafa655caaa5d13fa34e9bf361c1c2aedb7.js.gz | Bin 3612 -> 0 bytes ...b2718ef0a4a8399bc1949280d76e308a795be6e.js | 884 - ...18ef0a4a8399bc1949280d76e308a795be6e.js.gz | Bin 6554 -> 0 bytes ...9965ba3e0d76c7ac6c97ef80a5dfec240795708.js | 911 - ...5ba3e0d76c7ac6c97ef80a5dfec240795708.js.gz | Bin 6452 -> 0 bytes ...f6c6956e04e31da358a7661a16fea46775b3cc2.js | 830 - ...6956e04e31da358a7661a16fea46775b3cc2.js.gz | Bin 6371 -> 0 bytes ...7ee87325b56054627c1b736725d69f247f79992.js | 848 - ...87325b56054627c1b736725d69f247f79992.js.gz | Bin 6140 -> 0 bytes ...a2d2e222ad088aef866823f772241c1db423402.js | 4 - ...2e222ad088aef866823f772241c1db423402.js.gz | Bin 51 -> 0 bytes ...d6e61c4f13bed00a3552615dfb13d5345525fe.css | 3 - ...61c4f13bed00a3552615dfb13d5345525fe.css.gz | Bin 152 -> 0 bytes ...8ba69492e60a912b2f33d542858195c1ee5291.css | 4 - ...69492e60a912b2f33d542858195c1ee5291.css.gz | Bin 120 -> 0 bytes ...a2d2e222ad088aef866823f772241c1db423402.js | 4 - ...2e222ad088aef866823f772241c1db423402.js.gz | Bin 51 -> 0 bytes ...cf46cef6389735bdfa4561bb370eb8e163f01b1.js | 12322 -------------- ...6cef6389735bdfa4561bb370eb8e163f01b1.js.gz | Bin 141272 -> 0 bytes ...70f2d1d9558f5d7da3c7bb512d4b66423575df.css | 4447 ----- ...2d1d9558f5d7da3c7bb512d4b66423575df.css.gz | Bin 35631 -> 0 bytes ...df09e33e7f3d7b84cec0241a795b5533c110bc.css | 17 - ...9e33e7f3d7b84cec0241a795b5533c110bc.css.gz | Bin 332 -> 0 bytes ...531aa7e15e8af32fd4ce2e98ef278d385bac.woff2 | Bin 118684 -> 0 bytes ...27335d580a5989a0e3a614d87a934b58b0e2a8.ttf | Bin 210792 -> 0 bytes ...35d580a5989a0e3a614d87a934b58b0e2a8.ttf.gz | Bin 122659 -> 0 bytes ...a494228887c26255da15c70c7cff5b31e107.woff2 | Bin 25472 -> 0 bytes ...12af363185a3ffdb62b54e6d42b61fadf5eb18.ttf | Bin 68064 -> 0 bytes ...f363185a3ffdb62b54e6d42b61fadf5eb18.ttf.gz | Bin 26721 -> 0 bytes ...3cc44a21b5dca68bea163842cf2f88741b53fc.ttf | Bin 426112 -> 0 bytes ...44a21b5dca68bea163842cf2f88741b53fc.ttf.gz | Bin 172712 -> 0 bytes ...06337eccbc40c088f7f5bc4e42b361d162a8.woff2 | Bin 158220 -> 0 bytes ...b3c1361c0583026cdf35d6a2921bccaea835331.js | 3 - ...1361c0583026cdf35d6a2921bccaea835331.js.gz | Bin 23 -> 0 bytes ...7ee1ea48536d0652ec4295136600a9b6d7991d.css | 3 - ...1ea48536d0652ec4295136600a9b6d7991d.css.gz | Bin 153 -> 0 bytes ...a2d2e222ad088aef866823f772241c1db423402.js | 4 - ...2e222ad088aef866823f772241c1db423402.js.gz | Bin 51 -> 0 bytes ...e10b54140823ac2968387a220c12b685793078.css | 3 - ...b54140823ac2968387a220c12b685793078.css.gz | Bin 151 -> 0 bytes ...a2d2e222ad088aef866823f772241c1db423402.js | 4 - ...2e222ad088aef866823f772241c1db423402.js.gz | Bin 51 -> 0 bytes ...aa61f6055001897367125a0aedab0e64cdbc4f.css | 69 - ...1f6055001897367125a0aedab0e64cdbc4f.css.gz | Bin 422 -> 0 bytes ...5911458fa86bebba72e165eadcb9ea46c9426e.css | 3 - ...1458fa86bebba72e165eadcb9ea46c9426e.css.gz | Bin 153 -> 0 bytes ...a2d2e222ad088aef866823f772241c1db423402.js | 4 - ...2e222ad088aef866823f772241c1db423402.js.gz | Bin 51 -> 0 bytes ...a2d2e222ad088aef866823f772241c1db423402.js | 4 - ...2e222ad088aef866823f772241c1db423402.js.gz | Bin 51 -> 0 bytes ...797d38066bc3cc16cf11b96ff32fd1dbe64de0.css | 3 - ...d38066bc3cc16cf11b96ff32fd1dbe64de0.css.gz | Bin 156 -> 0 bytes ...a2d2e222ad088aef866823f772241c1db423402.js | 4 - ...2e222ad088aef866823f772241c1db423402.js.gz | Bin 51 -> 0 bytes ...22921104f8cf6478b1d3ced42590dc3581a4dd.css | 3 - ...21104f8cf6478b1d3ced42590dc3581a4dd.css.gz | Bin 155 -> 0 bytes ...3e2a81f4ed2cb745aec0e8f198e70ddf292774.css | 470 - ...a81f4ed2cb745aec0e8f198e70ddf292774.css.gz | Bin 4196 -> 0 bytes ...b8ad8908099faa351e0cd3bcf9dc24b510c3a91.js | 13743 ---------------- ...d8908099faa351e0cd3bcf9dc24b510c3a91.js.gz | Bin 99756 -> 0 bytes ...c9a6ea6cd00ff9c505a7645f6fc56a2273532d.css | 3 - ...6ea6cd00ff9c505a7645f6fc56a2273532d.css.gz | Bin 153 -> 0 bytes ...a2d2e222ad088aef866823f772241c1db423402.js | 4 - ...2e222ad088aef866823f772241c1db423402.js.gz | Bin 51 -> 0 bytes ...a2d2e222ad088aef866823f772241c1db423402.js | 4 - ...2e222ad088aef866823f772241c1db423402.js.gz | Bin 51 -> 0 bytes ...50dc4e268007b1fc751ecb7ec4641fdf23ee5e.css | 3 - ...c4e268007b1fc751ecb7ec4641fdf23ee5e.css.gz | Bin 155 -> 0 bytes .../stylesheets/webfonts/fa-brands-400.eot | Bin 0 -> 125320 bytes .../stylesheets/webfonts/fa-brands-400.svg | 3300 ++++ .../stylesheets/webfonts/fa-brands-400.ttf | Bin 0 -> 125016 bytes .../stylesheets/webfonts/fa-brands-400.woff | Bin 0 -> 84568 bytes .../stylesheets/webfonts/fa-brands-400.woff2 | Bin 0 -> 72148 bytes .../stylesheets/webfonts/fa-regular-400.eot | Bin 0 -> 34388 bytes .../stylesheets/webfonts/fa-regular-400.svg | 803 + .../stylesheets/webfonts/fa-regular-400.ttf | Bin 0 -> 34092 bytes .../stylesheets/webfonts/fa-regular-400.woff | Bin 0 -> 16812 bytes .../stylesheets/webfonts/fa-regular-400.woff2 | Bin 0 -> 13608 bytes .../stylesheets/webfonts/fa-solid-900.eot | Bin 0 -> 186512 bytes .../stylesheets/webfonts/fa-solid-900.svg | 4520 +++++ .../stylesheets/webfonts/fa-solid-900.ttf | Bin 0 -> 186228 bytes .../stylesheets/webfonts/fa-solid-900.woff | Bin 0 -> 96248 bytes .../stylesheets/webfonts/fa-solid-900.woff2 | Bin 0 -> 74320 bytes 124 files changed, 8796 insertions(+), 35841 deletions(-) delete mode 100644 app/assets/javascripts/admin.js.coffee delete mode 100644 app/assets/javascripts/api.js.coffee delete mode 100644 app/assets/javascripts/matches.js.coffee delete mode 100644 app/assets/javascripts/mats.js.coffee delete mode 100644 app/assets/javascripts/schools.js.coffee delete mode 100644 app/assets/javascripts/static_pages.js.coffee delete mode 100644 app/assets/javascripts/tournaments.js.coffee delete mode 100644 app/assets/javascripts/weights.js.coffee delete mode 100644 app/assets/javascripts/wrestlers.js.coffee delete mode 100644 app/assets/stylesheets/admin.css delete mode 100644 app/assets/stylesheets/api.css delete mode 100644 app/assets/stylesheets/matches.css delete mode 100644 app/assets/stylesheets/mats.css delete mode 100644 app/assets/stylesheets/schools.css delete mode 100644 app/assets/stylesheets/static_pages.css delete mode 100644 app/assets/stylesheets/tournaments.css delete mode 100644 app/assets/stylesheets/weights.css delete mode 100644 app/assets/stylesheets/wrestlers.css create mode 100644 config/importmap.rb delete mode 100644 config/initializers/assets.rb delete mode 100644 public/assets/.sprockets-manifest-9fd6d23105fac664dad8fed5934602ea.json delete mode 100644 public/assets/actioncable-323d156a10054ee2c94ba8a17c20458f542a17234f934ea53d16e0e1899fda5e.js delete mode 100644 public/assets/actioncable-323d156a10054ee2c94ba8a17c20458f542a17234f934ea53d16e0e1899fda5e.js.gz delete mode 100644 public/assets/actioncable.esm-b66d83871f0a453b10ba8b4c147c2bafa655caaa5d13fa34e9bf361c1c2aedb7.js delete mode 100644 public/assets/actioncable.esm-b66d83871f0a453b10ba8b4c147c2bafa655caaa5d13fa34e9bf361c1c2aedb7.js.gz delete mode 100644 public/assets/actiontext-0bc07717019da448e4a7abda9b2718ef0a4a8399bc1949280d76e308a795be6e.js delete mode 100644 public/assets/actiontext-0bc07717019da448e4a7abda9b2718ef0a4a8399bc1949280d76e308a795be6e.js.gz delete mode 100644 public/assets/actiontext.esm-8386a561a026b3cbe8b226bf99965ba3e0d76c7ac6c97ef80a5dfec240795708.js delete mode 100644 public/assets/actiontext.esm-8386a561a026b3cbe8b226bf99965ba3e0d76c7ac6c97ef80a5dfec240795708.js.gz delete mode 100644 public/assets/activestorage-b739665c00c484e89aa1fbed0f6c6956e04e31da358a7661a16fea46775b3cc2.js delete mode 100644 public/assets/activestorage-b739665c00c484e89aa1fbed0f6c6956e04e31da358a7661a16fea46775b3cc2.js.gz delete mode 100644 public/assets/activestorage.esm-67701f2a2743709337889a5447ee87325b56054627c1b736725d69f247f79992.js delete mode 100644 public/assets/activestorage.esm-67701f2a2743709337889a5447ee87325b56054627c1b736725d69f247f79992.js.gz delete mode 100644 public/assets/admin-27cfb9694c5e92d25d972c2b4a2d2e222ad088aef866823f772241c1db423402.js delete mode 100644 public/assets/admin-27cfb9694c5e92d25d972c2b4a2d2e222ad088aef866823f772241c1db423402.js.gz delete mode 100644 public/assets/admin-28e13a5c33b5806df5a7234660d6e61c4f13bed00a3552615dfb13d5345525fe.css delete mode 100644 public/assets/admin-28e13a5c33b5806df5a7234660d6e61c4f13bed00a3552615dfb13d5345525fe.css.gz delete mode 100644 public/assets/api-1bae5d1d93533e477246a74e3a8ba69492e60a912b2f33d542858195c1ee5291.css delete mode 100644 public/assets/api-1bae5d1d93533e477246a74e3a8ba69492e60a912b2f33d542858195c1ee5291.css.gz delete mode 100644 public/assets/api-27cfb9694c5e92d25d972c2b4a2d2e222ad088aef866823f772241c1db423402.js delete mode 100644 public/assets/api-27cfb9694c5e92d25d972c2b4a2d2e222ad088aef866823f772241c1db423402.js.gz delete mode 100644 public/assets/application-2e6812692d93f358303ef37afcf46cef6389735bdfa4561bb370eb8e163f01b1.js delete mode 100644 public/assets/application-2e6812692d93f358303ef37afcf46cef6389735bdfa4561bb370eb8e163f01b1.js.gz delete mode 100644 public/assets/application-9cca995c4cc3937e34cf71332d70f2d1d9558f5d7da3c7bb512d4b66423575df.css delete mode 100644 public/assets/application-9cca995c4cc3937e34cf71332d70f2d1d9558f5d7da3c7bb512d4b66423575df.css.gz delete mode 100644 public/assets/custom-e25a1c001bb518b043ed7f5394df09e33e7f3d7b84cec0241a795b5533c110bc.css delete mode 100644 public/assets/custom-e25a1c001bb518b043ed7f5394df09e33e7f3d7b84cec0241a795b5533c110bc.css.gz delete mode 100644 public/assets/font-awesome/fa-brands-400-1f56bc1732fed207bf092be076fd531aa7e15e8af32fd4ce2e98ef278d385bac.woff2 delete mode 100644 public/assets/font-awesome/fa-brands-400-89694cccd89936fa505b71253427335d580a5989a0e3a614d87a934b58b0e2a8.ttf delete mode 100644 public/assets/font-awesome/fa-brands-400-89694cccd89936fa505b71253427335d580a5989a0e3a614d87a934b58b0e2a8.ttf.gz delete mode 100644 public/assets/font-awesome/fa-regular-400-1cd36d00df15fd48055bbc42daf8a494228887c26255da15c70c7cff5b31e107.woff2 delete mode 100644 public/assets/font-awesome/fa-regular-400-f8fbc72fd51ef0b8ecca0cbc0212af363185a3ffdb62b54e6d42b61fadf5eb18.ttf delete mode 100644 public/assets/font-awesome/fa-regular-400-f8fbc72fd51ef0b8ecca0cbc0212af363185a3ffdb62b54e6d42b61fadf5eb18.ttf.gz delete mode 100644 public/assets/font-awesome/fa-solid-900-44ef3d6557f63579b379a863e53cc44a21b5dca68bea163842cf2f88741b53fc.ttf delete mode 100644 public/assets/font-awesome/fa-solid-900-44ef3d6557f63579b379a863e53cc44a21b5dca68bea163842cf2f88741b53fc.ttf.gz delete mode 100644 public/assets/font-awesome/fa-solid-900-64214b0a6635e69b2722c690f29506337eccbc40c088f7f5bc4e42b361d162a8.woff2 delete mode 100644 public/assets/manifest-dad05bf766af0fe3d79dd746db3c1361c0583026cdf35d6a2921bccaea835331.js delete mode 100644 public/assets/manifest-dad05bf766af0fe3d79dd746db3c1361c0583026cdf35d6a2921bccaea835331.js.gz delete mode 100644 public/assets/matches-187a52546352e28a5b10d631ff7ee1ea48536d0652ec4295136600a9b6d7991d.css delete mode 100644 public/assets/matches-187a52546352e28a5b10d631ff7ee1ea48536d0652ec4295136600a9b6d7991d.css.gz delete mode 100644 public/assets/matches-27cfb9694c5e92d25d972c2b4a2d2e222ad088aef866823f772241c1db423402.js delete mode 100644 public/assets/matches-27cfb9694c5e92d25d972c2b4a2d2e222ad088aef866823f772241c1db423402.js.gz delete mode 100644 public/assets/mats-0ad2675da032f54288ee9dec7ce10b54140823ac2968387a220c12b685793078.css delete mode 100644 public/assets/mats-0ad2675da032f54288ee9dec7ce10b54140823ac2968387a220c12b685793078.css.gz delete mode 100644 public/assets/mats-27cfb9694c5e92d25d972c2b4a2d2e222ad088aef866823f772241c1db423402.js delete mode 100644 public/assets/mats-27cfb9694c5e92d25d972c2b4a2d2e222ad088aef866823f772241c1db423402.js.gz delete mode 100644 public/assets/scaffolds-58fb4d3936e2e229fb80e33ad9aa61f6055001897367125a0aedab0e64cdbc4f.css delete mode 100644 public/assets/scaffolds-58fb4d3936e2e229fb80e33ad9aa61f6055001897367125a0aedab0e64cdbc4f.css.gz delete mode 100644 public/assets/schools-12309619646d0cc065366100d55911458fa86bebba72e165eadcb9ea46c9426e.css delete mode 100644 public/assets/schools-12309619646d0cc065366100d55911458fa86bebba72e165eadcb9ea46c9426e.css.gz delete mode 100644 public/assets/schools-27cfb9694c5e92d25d972c2b4a2d2e222ad088aef866823f772241c1db423402.js delete mode 100644 public/assets/schools-27cfb9694c5e92d25d972c2b4a2d2e222ad088aef866823f772241c1db423402.js.gz delete mode 100644 public/assets/static_pages-27cfb9694c5e92d25d972c2b4a2d2e222ad088aef866823f772241c1db423402.js delete mode 100644 public/assets/static_pages-27cfb9694c5e92d25d972c2b4a2d2e222ad088aef866823f772241c1db423402.js.gz delete mode 100644 public/assets/static_pages-973a28d4fd8c557f50ef8f2e26797d38066bc3cc16cf11b96ff32fd1dbe64de0.css delete mode 100644 public/assets/static_pages-973a28d4fd8c557f50ef8f2e26797d38066bc3cc16cf11b96ff32fd1dbe64de0.css.gz delete mode 100644 public/assets/tournaments-27cfb9694c5e92d25d972c2b4a2d2e222ad088aef866823f772241c1db423402.js delete mode 100644 public/assets/tournaments-27cfb9694c5e92d25d972c2b4a2d2e222ad088aef866823f772241c1db423402.js.gz delete mode 100644 public/assets/tournaments-77ece46f1fc3cde46f6561530a22921104f8cf6478b1d3ced42590dc3581a4dd.css delete mode 100644 public/assets/tournaments-77ece46f1fc3cde46f6561530a22921104f8cf6478b1d3ced42590dc3581a4dd.css.gz delete mode 100644 public/assets/trix-27b67936197943926cb14d19903e2a81f4ed2cb745aec0e8f198e70ddf292774.css delete mode 100644 public/assets/trix-27b67936197943926cb14d19903e2a81f4ed2cb745aec0e8f198e70ddf292774.css.gz delete mode 100644 public/assets/trix-7440030d033208cfbb65a8d2bb8ad8908099faa351e0cd3bcf9dc24b510c3a91.js delete mode 100644 public/assets/trix-7440030d033208cfbb65a8d2bb8ad8908099faa351e0cd3bcf9dc24b510c3a91.js.gz delete mode 100644 public/assets/weights-03f6a76cb75c23f565d9b01a92c9a6ea6cd00ff9c505a7645f6fc56a2273532d.css delete mode 100644 public/assets/weights-03f6a76cb75c23f565d9b01a92c9a6ea6cd00ff9c505a7645f6fc56a2273532d.css.gz delete mode 100644 public/assets/weights-27cfb9694c5e92d25d972c2b4a2d2e222ad088aef866823f772241c1db423402.js delete mode 100644 public/assets/weights-27cfb9694c5e92d25d972c2b4a2d2e222ad088aef866823f772241c1db423402.js.gz delete mode 100644 public/assets/wrestlers-27cfb9694c5e92d25d972c2b4a2d2e222ad088aef866823f772241c1db423402.js delete mode 100644 public/assets/wrestlers-27cfb9694c5e92d25d972c2b4a2d2e222ad088aef866823f772241c1db423402.js.gz delete mode 100644 public/assets/wrestlers-719b71dbc80b2770c61b44d78950dc4e268007b1fc751ecb7ec4641fdf23ee5e.css delete mode 100644 public/assets/wrestlers-719b71dbc80b2770c61b44d78950dc4e268007b1fc751ecb7ec4641fdf23ee5e.css.gz create mode 100644 vendor/assets/stylesheets/webfonts/fa-brands-400.eot create mode 100644 vendor/assets/stylesheets/webfonts/fa-brands-400.svg create mode 100644 vendor/assets/stylesheets/webfonts/fa-brands-400.ttf create mode 100644 vendor/assets/stylesheets/webfonts/fa-brands-400.woff create mode 100644 vendor/assets/stylesheets/webfonts/fa-brands-400.woff2 create mode 100644 vendor/assets/stylesheets/webfonts/fa-regular-400.eot create mode 100644 vendor/assets/stylesheets/webfonts/fa-regular-400.svg create mode 100644 vendor/assets/stylesheets/webfonts/fa-regular-400.ttf create mode 100644 vendor/assets/stylesheets/webfonts/fa-regular-400.woff create mode 100644 vendor/assets/stylesheets/webfonts/fa-regular-400.woff2 create mode 100644 vendor/assets/stylesheets/webfonts/fa-solid-900.eot create mode 100644 vendor/assets/stylesheets/webfonts/fa-solid-900.svg create mode 100644 vendor/assets/stylesheets/webfonts/fa-solid-900.ttf create mode 100644 vendor/assets/stylesheets/webfonts/fa-solid-900.woff create mode 100644 vendor/assets/stylesheets/webfonts/fa-solid-900.woff2 diff --git a/.DS_Store b/.DS_Store index 6d2c6989ee5df14d7d0efced02aa68db5beecd5e..3d93dff24b36e8ec3d4e88fcb8222d4868cecc54 100644 GIT binary patch delta 50 zcmZp1XmOa}&nUeyU^hRb^kg1^>dDapygX&WMR_^-dFc!c42+vw1k%|zvrBwq+5Aw1 Gof!a&c@H@N delta 39 vcmZp1XmOa}&nUGqU^hRb)MOrk>dlJ= 2.1", :group => :development -# Use Uglifier as compressor for JavaScript assets -gem 'uglifier' -# Use CoffeeScript for .js.coffee assets and views -gem 'coffee-rails' +# JavaScript and CSS related gems +# Uglifier is not used with Propshaft by default +# CoffeeScript (.js.coffee) files need to be converted to .js as Propshaft doesn't compile them + # See https://github.com/sstephenson/execjs#readme for more supported runtimes # gem 'therubyracer', platforms: :ruby # Use jquery as the JavaScript library gem 'jquery-rails' -# Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks -gem 'turbolinks' +# Turbo for modern page interactions +gem 'turbo-rails' # Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder gem 'jbuilder' # bundle exec rake doc:rails generates the API under doc/api. @@ -90,5 +91,3 @@ group :development, :test do gem 'rails-controller-testing' end -gem 'font-awesome-sass' - diff --git a/Gemfile.lock b/Gemfile.lock index dccb5f8..76ba936 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -88,13 +88,6 @@ GEM bundler (>= 1.2.0, < 3) thor (~> 1.0) cancancan (3.6.1) - coffee-rails (5.0.0) - coffee-script (>= 2.2.0) - railties (>= 5.2.0) - coffee-script (2.4.1) - coffee-script-source - execjs - coffee-script-source (1.12.2) concurrent-ruby (1.3.5) connection_pool (2.5.3) crass (1.0.6) @@ -104,17 +97,6 @@ GEM erubi (1.13.1) et-orbi (1.2.11) tzinfo - execjs (2.10.0) - ffi (1.17.2-aarch64-linux-gnu) - ffi (1.17.2-aarch64-linux-musl) - ffi (1.17.2-arm-linux-gnu) - ffi (1.17.2-arm-linux-musl) - ffi (1.17.2-arm64-darwin) - ffi (1.17.2-x86_64-darwin) - ffi (1.17.2-x86_64-linux-gnu) - ffi (1.17.2-x86_64-linux-musl) - font-awesome-sass (6.7.2) - sassc (~> 2.0) fugit (1.11.1) et-orbi (~> 1, >= 1.2.11) raabro (~> 1.4) @@ -122,6 +104,10 @@ GEM activesupport (>= 6.1) i18n (1.14.7) concurrent-ruby (~> 1.0) + importmap-rails (2.1.0) + actionpack (>= 6.0.0) + activesupport (>= 6.0.0) + railties (>= 6.0.0) influxdb (0.8.1) influxdb-rails (1.0.3) influxdb (~> 0.6, >= 0.6.4) @@ -183,6 +169,11 @@ GEM pp (0.6.2) prettyprint prettyprint (0.2.0) + propshaft (1.1.0) + actionpack (>= 7.0.0) + activesupport (>= 7.0.0) + rack + railties (>= 7.0.0) psych (5.2.6) date stringio @@ -244,8 +235,6 @@ GEM io-console (~> 0.5) round_robin_tournament (0.1.2) ruby2_keywords (0.0.5) - sassc (2.4.0) - ffi (~> 1.9) sdoc (2.6.1) rdoc (>= 5.0) securerandom (0.4.1) @@ -266,14 +255,6 @@ GEM railties (>= 7.1) thor (~> 1.3.1) spring (4.3.0) - sprockets (4.2.2) - concurrent-ruby (~> 1.0) - logger - rack (>= 2.2.4, < 4) - sprockets-rails (3.5.2) - actionpack (>= 6.1) - activesupport (>= 6.1) - sprockets (>= 3.0.0) sqlite3 (2.6.0-aarch64-linux-gnu) sqlite3 (2.6.0-aarch64-linux-musl) sqlite3 (2.6.0-arm-linux-gnu) @@ -285,15 +266,13 @@ GEM stringio (3.1.7) thor (1.3.2) timeout (0.4.3) - turbolinks (5.2.1) - turbolinks-source (~> 5.2) - turbolinks-source (5.2.0) + turbo-rails (2.0.13) + actionpack (>= 7.1.0) + railties (>= 7.1.0) tzinfo (2.0.6) concurrent-ruby (~> 1.0) tzinfo-data (1.2025.2) tzinfo (>= 1.0.0) - uglifier (4.2.1) - execjs (>= 0.3.0, < 3) uniform_notifier (1.17.0) uri (1.0.3) useragent (0.16.11) @@ -320,14 +299,14 @@ DEPENDENCIES bullet bundler-audit cancancan - coffee-rails daemons - font-awesome-sass + importmap-rails influxdb-rails jbuilder jquery-rails mocha mysql2 + propshaft puma rails (= 8.0.2) rails-controller-testing @@ -340,11 +319,9 @@ DEPENDENCIES solid_cache solid_queue spring - sprockets-rails sqlite3 (>= 2.1) - turbolinks + turbo-rails tzinfo-data - uglifier RUBY VERSION ruby 3.2.0p0 diff --git a/README.md b/README.md index c56d2a7..a94bdab 100644 --- a/README.md +++ b/README.md @@ -174,4 +174,15 @@ SolidQueue plugin enabled in Puma See `SOLID_QUEUE.md` for details about the job system configuration. -This project provides multiple ways to develop and deploy, with Docker being the primary method. \ No newline at end of file +This project provides multiple ways to develop and deploy, with Docker being the primary method. + +# Sprockets to Propshaft Migration + +- Propshaft will automatically include in its search paths the folders vendor/assets, lib/assets and app/assets of your project and of all the gems in your Gemfile. You can see all included files by using the reveal rake task: `rake assets:reveal`. When importing you'll use the relative path from this command. +- All css files are imported via `app/assets/stylesheets/application.css`. This is imported on `app/views/layouts/application.html.erb`. + - Bootstrap and fontawesome have been downloaded locally to `vendor/` +- All js files are imported with a combination of "pinning" with `config/importmaps.rb` and `app/assets/javascript/application.js` and imported to `app/views/layouts/application.html.erb` + - Jquery, bootstrap, datatables have been downloaded locally to `vendor/` + - Turbo and action cable are gems and get pathed properly by propshaft. +- development is "nobuild" with `config.assets.build_assets = false` in `config/environments/development.rb` +- production needs to run rake assets:precompile. This is done in the `deploy/rails-prod-Dockerfile`. \ No newline at end of file diff --git a/app/assets/config/manifest.js b/app/assets/config/manifest.js index b16e53d..75ce659 100644 --- a/app/assets/config/manifest.js +++ b/app/assets/config/manifest.js @@ -1,3 +1,11 @@ //= link_tree ../images -//= link_directory ../javascripts .js -//= link_directory ../stylesheets .css + +// Link all .js files from app/javascript for importmap, and vendor/javascript if needed directly +//= link_tree ../../javascript .js +//= link_tree ../../../vendor/assets/javascripts .js + +// Explicitly link all .css files from app/assets/stylesheets and vendor/assets/stylesheets +//= link_tree ../stylesheets .css +//= link_tree ../../../vendor/assets/stylesheets .css + +//= link_tree ../../../vendor/assets/webfonts diff --git a/app/assets/javascripts/admin.js.coffee b/app/assets/javascripts/admin.js.coffee deleted file mode 100644 index 24f83d1..0000000 --- a/app/assets/javascripts/admin.js.coffee +++ /dev/null @@ -1,3 +0,0 @@ -# Place all the behaviors and hooks related to the matching controller here. -# All this logic will automatically be available in application.js. -# You can use CoffeeScript in this file: http://coffeescript.org/ diff --git a/app/assets/javascripts/api.js.coffee b/app/assets/javascripts/api.js.coffee deleted file mode 100644 index 24f83d1..0000000 --- a/app/assets/javascripts/api.js.coffee +++ /dev/null @@ -1,3 +0,0 @@ -# Place all the behaviors and hooks related to the matching controller here. -# All this logic will automatically be available in application.js. -# You can use CoffeeScript in this file: http://coffeescript.org/ diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js index 38834d7..4baac29 100644 --- a/app/assets/javascripts/application.js +++ b/app/assets/javascripts/application.js @@ -1,32 +1,27 @@ -// This is a manifest file that'll be compiled into application.js, which will include all the files -// listed below. -// -// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts, -// or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path. -// -// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the -// compiled file. -// -// Read Sprockets README (https://github.com/sstephenson/sprockets#sprockets-directives) for details -// about supported directives. -// -//= require jquery -//= require jquery_ujs -// Bootstrap 3.3.6 in vendor/assets/javascripts -//= require bootstrap.min.js -// Data Tables 1.10.6 in vendor/assets/javascripts -//= require jquery.dataTables.min.js -//= require turbolinks -// -//= require actioncable -//= require_self -//= require_tree . +// Entry point for your JavaScript application -// Create the Action Cable consumer instance +// These are pinned in config/importmap.rb +import "@hotwired/turbo-rails"; +import { createConsumer } from "@rails/actioncable"; // Import createConsumer directly +import "jquery"; +import "bootstrap"; +import "datatables.net"; + +// Your existing Action Cable consumer setup (function() { - this.App || (this.App = {}); - - App.cable = ActionCable.createConsumer(); - + try { + window.App || (window.App = {}); + window.App.cable = createConsumer(); // Use the imported createConsumer + console.log('Action Cable Consumer Created via app/javascript/application.js'); + } catch (e) { + console.error('Error creating ActionCable consumer:', e); + console.error('ActionCable not loaded or createConsumer failed, App.cable not created.'); + } }).call(this); +console.log("Propshaft/Importmap application.js initialized with jQuery, Bootstrap, and DataTables."); + +// If you have custom JavaScript files in app/javascript/ that were previously +// handled by Sprockets `require_tree`, you'll need to import them here explicitly. +// For example: +// import "./my_custom_logic"; \ No newline at end of file diff --git a/app/assets/javascripts/matches.js.coffee b/app/assets/javascripts/matches.js.coffee deleted file mode 100644 index 43d766d..0000000 --- a/app/assets/javascripts/matches.js.coffee +++ /dev/null @@ -1,4 +0,0 @@ -# Place all the behaviors and hooks related to the matching controller here. -# All this logic will automatically be available in application.js. -# You can use CoffeeScript in this file: http://coffeescript.org/ - diff --git a/app/assets/javascripts/mats.js.coffee b/app/assets/javascripts/mats.js.coffee deleted file mode 100644 index 24f83d1..0000000 --- a/app/assets/javascripts/mats.js.coffee +++ /dev/null @@ -1,3 +0,0 @@ -# Place all the behaviors and hooks related to the matching controller here. -# All this logic will automatically be available in application.js. -# You can use CoffeeScript in this file: http://coffeescript.org/ diff --git a/app/assets/javascripts/schools.js.coffee b/app/assets/javascripts/schools.js.coffee deleted file mode 100644 index 24f83d1..0000000 --- a/app/assets/javascripts/schools.js.coffee +++ /dev/null @@ -1,3 +0,0 @@ -# Place all the behaviors and hooks related to the matching controller here. -# All this logic will automatically be available in application.js. -# You can use CoffeeScript in this file: http://coffeescript.org/ diff --git a/app/assets/javascripts/static_pages.js.coffee b/app/assets/javascripts/static_pages.js.coffee deleted file mode 100644 index 24f83d1..0000000 --- a/app/assets/javascripts/static_pages.js.coffee +++ /dev/null @@ -1,3 +0,0 @@ -# Place all the behaviors and hooks related to the matching controller here. -# All this logic will automatically be available in application.js. -# You can use CoffeeScript in this file: http://coffeescript.org/ diff --git a/app/assets/javascripts/tournaments.js.coffee b/app/assets/javascripts/tournaments.js.coffee deleted file mode 100644 index 24f83d1..0000000 --- a/app/assets/javascripts/tournaments.js.coffee +++ /dev/null @@ -1,3 +0,0 @@ -# Place all the behaviors and hooks related to the matching controller here. -# All this logic will automatically be available in application.js. -# You can use CoffeeScript in this file: http://coffeescript.org/ diff --git a/app/assets/javascripts/weights.js.coffee b/app/assets/javascripts/weights.js.coffee deleted file mode 100644 index 24f83d1..0000000 --- a/app/assets/javascripts/weights.js.coffee +++ /dev/null @@ -1,3 +0,0 @@ -# Place all the behaviors and hooks related to the matching controller here. -# All this logic will automatically be available in application.js. -# You can use CoffeeScript in this file: http://coffeescript.org/ diff --git a/app/assets/javascripts/wrestlers.js.coffee b/app/assets/javascripts/wrestlers.js.coffee deleted file mode 100644 index 24f83d1..0000000 --- a/app/assets/javascripts/wrestlers.js.coffee +++ /dev/null @@ -1,3 +0,0 @@ -# Place all the behaviors and hooks related to the matching controller here. -# All this logic will automatically be available in application.js. -# You can use CoffeeScript in this file: http://coffeescript.org/ diff --git a/app/assets/stylesheets/admin.css b/app/assets/stylesheets/admin.css deleted file mode 100644 index 0f4f3b2..0000000 --- a/app/assets/stylesheets/admin.css +++ /dev/null @@ -1,3 +0,0 @@ -// Place all the styles related to the Admin controller here. -// They will automatically be included in application.css. -// You can use Sass (SCSS) here: http://sass-lang.com/ diff --git a/app/assets/stylesheets/api.css b/app/assets/stylesheets/api.css deleted file mode 100644 index afad32d..0000000 --- a/app/assets/stylesheets/api.css +++ /dev/null @@ -1,4 +0,0 @@ -/* - Place all the styles related to the matching controller here. - They will automatically be included in application.css. -*/ diff --git a/app/assets/stylesheets/application.css b/app/assets/stylesheets/application.css index 7b5ab14..852b4f1 100644 --- a/app/assets/stylesheets/application.css +++ b/app/assets/stylesheets/application.css @@ -1,35 +1,17 @@ -/* - * This is a manifest file that'll be compiled into application.css, which will include all the files - * listed below. - * - * Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets, - * or vendor/assets/stylesheets of plugins, if any, can be referenced here using a relative path. - * - * You're free to add application-wide styles to this file and they'll appear at the bottom of the - * compiled file so the styles you add here take precedence over styles defined in any styles - * defined in the other CSS/SCSS files in this directory. It is generally better to create a new - * file per style scope. - * - * For some reason this needs to be above bootstrap for the zindex of the main navbar to work. - * With it lower, bootstraps css overrides it. - *= require custom - * Bootstrap 3.3.6 in vendor/assets/stylesheets - *= require bootstrap.min.css - *= require bootstrap-theme.min.css - * Font Awesome 5.7.1 in vendor/assets/stylesheets/fontawesome - *= require fontawesome/all - *= require_tree . - *= require_self - */ +/* relative pathing from /vender/assets/stylesheets = / */ +@import url("/bootstrap.min.css"); +@import url("/bootstrap-theme.min.css"); +@import url("/fontawesome/all.css"); +@import url("/custom.css"); +@import url("/scaffolds.css"); @font-face { - font-family: 'Font Awesome 5 Brands'; - /* other properties */ - src: url("/webfonts/fa-brands-400.eot"); - src: url("/webfonts/fa-brands-400.eot?#iefix") format("embedded-opentype"), - url("/webfonts/fa-brands-400.woff2") format("woff2"), - url("/webfonts/fa-brands-400.woff") format("woff"), - url("/webfonts/fa-brands-400.ttf") format("truetype"), - url("/webfonts/fa-brands-400.svg#fontawesome") format("svg"); -} - + font-family: 'Font Awesome 5 Brands'; + /* relative pathing from /vender/assets/stylesheets = / */ + src: url("/webfonts/fa-brands-400.eot"); + src: url("/webfonts/fa-brands-400.eot?#iefix") format("embedded-opentype"), + url("/webfonts/fa-brands-400.woff2") format("woff2"), + url("/webfonts/fa-brands-400.woff") format("woff"), + url("/webfonts/fa-brands-400.ttf") format("truetype"), + url("/webfonts/fa-brands-400.svg#fontawesome") format("svg"); + } diff --git a/app/assets/stylesheets/matches.css b/app/assets/stylesheets/matches.css deleted file mode 100644 index 9b13d59..0000000 --- a/app/assets/stylesheets/matches.css +++ /dev/null @@ -1,3 +0,0 @@ -// Place all the styles related to the Matches controller here. -// They will automatically be included in application.css. -// You can use Sass (SCSS) here: http://sass-lang.com/ diff --git a/app/assets/stylesheets/mats.css b/app/assets/stylesheets/mats.css deleted file mode 100644 index 92a20d9..0000000 --- a/app/assets/stylesheets/mats.css +++ /dev/null @@ -1,3 +0,0 @@ -// Place all the styles related to the Mats controller here. -// They will automatically be included in application.css. -// You can use Sass (SCSS) here: http://sass-lang.com/ diff --git a/app/assets/stylesheets/schools.css b/app/assets/stylesheets/schools.css deleted file mode 100644 index 813d2d0..0000000 --- a/app/assets/stylesheets/schools.css +++ /dev/null @@ -1,3 +0,0 @@ -// Place all the styles related to the Schools controller here. -// They will automatically be included in application.css. -// You can use Sass (SCSS) here: http://sass-lang.com/ diff --git a/app/assets/stylesheets/static_pages.css b/app/assets/stylesheets/static_pages.css deleted file mode 100644 index d55836c..0000000 --- a/app/assets/stylesheets/static_pages.css +++ /dev/null @@ -1,3 +0,0 @@ -// Place all the styles related to the StaticPages controller here. -// They will automatically be included in application.css. -// You can use Sass (SCSS) here: http://sass-lang.com/ diff --git a/app/assets/stylesheets/tournaments.css b/app/assets/stylesheets/tournaments.css deleted file mode 100644 index e372b90..0000000 --- a/app/assets/stylesheets/tournaments.css +++ /dev/null @@ -1,3 +0,0 @@ -// Place all the styles related to the tournaments controller here. -// They will automatically be included in application.css. -// You can use Sass (SCSS) here: http://sass-lang.com/ diff --git a/app/assets/stylesheets/weights.css b/app/assets/stylesheets/weights.css deleted file mode 100644 index 90a4fae..0000000 --- a/app/assets/stylesheets/weights.css +++ /dev/null @@ -1,3 +0,0 @@ -// Place all the styles related to the Weights controller here. -// They will automatically be included in application.css. -// You can use Sass (SCSS) here: http://sass-lang.com/ diff --git a/app/assets/stylesheets/wrestlers.css b/app/assets/stylesheets/wrestlers.css deleted file mode 100644 index 6a79218..0000000 --- a/app/assets/stylesheets/wrestlers.css +++ /dev/null @@ -1,3 +0,0 @@ -// Place all the styles related to the Wrestlers controller here. -// They will automatically be included in application.css. -// You can use Sass (SCSS) here: http://sass-lang.com/ diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb index d3cf640..5f2f651 100644 --- a/app/views/layouts/application.html.erb +++ b/app/views/layouts/application.html.erb @@ -5,9 +5,8 @@ <%= csrf_meta_tags %> <%= action_cable_meta_tag %> WrestlingDev - <%= stylesheet_link_tag "application", media: "all", - "data-turbolinks-track" => true %> - <%= javascript_include_tag "application", "data-turbolinks-track" => true %> + <%= stylesheet_link_tag "application", media: "all", "data-turbo-track": "reload" %> + <%= javascript_importmap_tags %> <%= render 'layouts/cdn' %> <%= render 'layouts/shim' %> @@ -22,8 +21,8 @@ <% if Rails.env.production? %> <%= render 'layouts/analytics' %> <% end %> - <%= stylesheet_link_tag "application" %> - <%= javascript_include_tag "application" %> + <%= stylesheet_link_tag "application", media: "all", "data-turbo-track": "reload" %> + <%= javascript_importmap_tags %> <%= csrf_meta_tags %> <%= render 'layouts/cdn' %> <%= render 'layouts/shim' %> diff --git a/app/views/matches/_matchstats.html.erb b/app/views/matches/_matchstats.html.erb index 279565e..0f7181f 100644 --- a/app/views/matches/_matchstats.html.erb +++ b/app/views/matches/_matchstats.html.erb @@ -384,7 +384,7 @@ function initializeFromLocalStorage() { } // ############### ACTION CABLE LIFECYCLE (Define Before Listeners) ############# -var matchSubscription = null; // Use var for safety with Turbolinks re-evaluation +var matchSubscription = null; // Use var for safety with Turbo re-evaluation / page navigation function cleanupSubscription() { if (matchSubscription) { @@ -484,8 +484,8 @@ function setupSubscription(matchId) { // ############### EVENT LISTENERS (Define Last) ############# -document.addEventListener("turbolinks:load", () => { - console.log("Stats Event: turbolinks:load fired."); +document.addEventListener("turbo:load", () => { + console.log("Stats Event: turbo:load fired."); // --- Check if we are actually on the match stats page --- const statsElementCheck = document.getElementById('match_w1_stat'); // Check for stats textarea @@ -507,12 +507,12 @@ document.addEventListener("turbolinks:load", () => { if (matchId) { setupSubscription(matchId); } else { - console.warn("Stats Event: turbolinks:load - Could not determine match ID for AC setup."); + console.warn("Stats Event: turbo:load - Could not determine match ID for AC setup."); } }); -document.addEventListener("turbolinks:before-cache", () => { - console.log("Event: turbolinks:before-cache fired. Cleaning up subscription."); +document.addEventListener("turbo:before-cache", () => { + console.log("Event: turbo:before-cache fired. Cleaning up subscription."); cleanupSubscription(); }); diff --git a/app/views/matches/_matchstats_variable_score_input.html.erb b/app/views/matches/_matchstats_variable_score_input.html.erb index 3d1b171..9e9b23e 100644 --- a/app/views/matches/_matchstats_variable_score_input.html.erb +++ b/app/views/matches/_matchstats_variable_score_input.html.erb @@ -238,7 +238,7 @@ function createTextInput(id, placeholder, label) { return container; } -// Initialize on both DOMContentLoaded and turbolinks:load +// Initialize on both DOMContentLoaded and turbo:load document.addEventListener("DOMContentLoaded", initializeScoreFields); -document.addEventListener("turbolinks:load", initializeScoreFields); +document.addEventListener("turbo:load", initializeScoreFields); diff --git a/app/views/matches/spectate.html.erb b/app/views/matches/spectate.html.erb index 6fe59c1..f9c589c 100644 --- a/app/views/matches/spectate.html.erb +++ b/app/views/matches/spectate.html.erb @@ -78,8 +78,8 @@